COUNT FB介绍

<< 点击显示目录 >>

主页  轴控开发使用手册 > 轴控应用 > 18.ACOPOS功能块 >

COUNT FB介绍

 

1.基本信息

编写人

穆珊珊

审核人

(检查,测试,注释)

应用归属

运动控制

软件信息

 

硬件信息


其他

 

版本信息

修改内容

修改人

V1.00

创建

穆珊珊

 

 

 

 

2. 简介

COUNT:计数器

该功能块可以对事件进行计数。事件类型和计数方向由模式确定。

 

3. ParID

ParID名字

缩写

访问方式

数据类型

数据范围

初始值

描述

COUNT_MODE

m

RD,WR

UI2

0..6

+16

+32

+256

0

功能模式,激活功能块

Bit0..5:事件模式

Bit8:计数模式,0:加计数,1:减计数

COUNT_ENABLE_PARID

*en

RD,WR

UI2

<ParID>

ONE

使能输入的ParID(指向使能输入值,整数类型。
默认值为CONST_I4_ONE)

COUNT_EV1_PARID

*ev1

RD,WR

UI2

<ParID>,0

 

输入1计数事件的ParID(指向事件1,整数类型)

COUNT_EV2_PARID

*ev2

RD,WR

UI2

<ParID>,0

 

输入2计数事件的ParID(指向事件2,整数类型)

COUNT_SET_TRIG_PARID

*set

RD,WR

UI2

<ParID>,0

 

触发输入的ParID(指向触发事件,整数类型)

COUNT_SET_VALUE

set_cnt

RD,WR

UI4

 

0

计数器的置位值。当触发输入为高电平时应用。

COUNT_MAX_VALUE

max

RD,WR

UI4

 

2^32-1

计数器的最大值

COUNT_CMP_VALUE

cmp

RD,WR

UI4

 

0

比较器,和计数器比较的值

COUNT_VALUE

cnt

RD,WR

UI4

 

0

结果,计数值(输出)

写访问可以对该值初始化

COUNT_CMP_STATUS

cmpst

RD

UI1

0,1

0

比较器状态。和计数值比较的结果(输出)

COUNT_EV_STATUS

evst

RD

UI1

0,1

0

事件状态,计数事件激活(输出)

 

4. 功能

4.1 计数功能

加法计数:

Bit8=0:每个事件发生时,计数器会加1。当到达最大值时,会发生溢出,然后计数器重新从0开始计数。

clip0175

减法计数:

模式Bit8=1:每个事件发生时,计数器会减1。当减到0时,会发生溢出,然后计数器重新从最大值开始计数。

clip0176

比较输出:

如果计数值和比较值相同,那么输出cmpst会置1,否则置为0。

计数器置位:

trigger输入端*set的值不为0时,会将计数器置位为set_cnt设置的值,此时计数器的功能还是激活的。

trigger输入在事件计数前先行处理。因此,比较器输出cmpst直接反馈到trigger输入端就足以使预设值生效。计数器输出允许写访问,所以当计数器初始化时或者运算过程中执行复位时,允许写入任何值到计数器输出中。需要注意,当打开或关闭功能块时计数器值不会改变。

使能:

使能输入*en设置为0,会暂停已使能功能块的输入处理,从而“冻结”输出。这意味着,计数事件和设置计数器的trigger不会被处理。而即便在这种“关闭”状态下,计数器输出依然允许直接写入。

在没有通过m=0关闭功能块的情况下,*en输入端一个不为0的值会使能功能块输入的处理。从“关闭”到“使能”的转变,不会创建计数事件。默认设置*en=1.

 

4.2 事件产生和功能模式

可以设定比较运算符和边沿检测方式,来生成计数事件。*ev1和*ev2这两个输入的带符号整型值会进行比较。当关联无符号参数时,需要注意,这些无符号数会按带符号整型数处理,并且在231到232-1之间会呈现为负值。比较条件由Bit0..Bit3确定。边沿检测由Bit4和Bit5确定。

+0 电平检测:条件满足时,在每个扫描周期“Ta”内都会产生一个计数事件;

+16 上升沿检测:只有在条件最初满足时才会产生一个计数事件;

+32 下降沿检测:只有在条件最终结束时才会产生一个计数事件;

+16+32 边沿检测:在条件最初满足和最终结束时各产生一个计数事件;

模式

条件

电平,边沿检测

说明

计数方向

0

 

 

m=0时功能块将关闭,当前的结果值会“冻结”

 

1

17

33

49

ev1 < ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1小于value2

加计数

2

18

34

50

ev1 == ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1等于value2

加计数

3

19

35

51

ev1 <= ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1小于等于value2

加计数

4

20

36

52

ev1 > ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1大于value2

加计数

5

21

36

52

ev1 != ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1不等于value2

加计数

6

22

38

54

ev1 >= ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1大于等于value2

加计数

257

273

289

305

ev1 < ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1小于value2

减计数

258

274

290

306

ev1 == ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1等于value2

减计数

259

275

291

307

ev1 <= ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1小于等于value2

减计数

260

276

292

308

ev1 > ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1大于value2

减计数

261

277

293

309

ev1 != ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1不等于value2

减计数

262

278

294

310

ev1 >= ev2

电平检测

上升沿检测

下降沿检测

边沿检测

value1大于等于value2

减计数

 

我们使用下面这样一条输入曲线来解释对于比较运算符ev1>ev2的模式设置,即不同的边沿检测下的事件状态输出结果。

clip0177

对于二进制条件这样的简单使用,只需要配置第一个事件输入*ev1,第二个事件输入默认设置为0就可以了:

模式

说明

计数方向

0

功能块关闭

加计数

5

电平检测ev1 != 0

加计数

21

上升沿检测ev1从0变为非0

加计数

37

下降沿检测ev1从非0变为0

加计数

53

边沿检测

加计数

261

电平检测ev1 != 0

减计数

277

上升沿检测ev1从0变为非0

减计数

293

下降沿检测ev1从非0变为0

减计数

309

边沿检测

减计数

 

事件状态可以输出到事件状态输出端evst,计数器加1或减1的每个周期该输出都会等于1。

4.3 在线更改

当功能块使能时,所有写参数都允许在线更改。

ParID名称

说明

COUNT_MODE

使能或关闭功能块,切换计数模式和事件模式。当使能功能块或切换模式时,边沿检测事件不会触发。

COUNT_ENABLE_PARID

迅速切换使能的信号源

COUNT_EV1_PARID

迅速切换事件1的信号源或关闭该事件输入(置为0)。注意:切换模式可能导致计数事件发生。

COUNT_EV2_PARID

迅速切换事件2的信号源或关闭该事件输入(置为0)。注意:切换模式可能导致计数事件发生。

COUNT_SET_TRIG_PARID

迅速切换计数器输出复位的trigger信号源

COUNT_SET_VALUE

更改复位值,通常用于减计数

COUNT_MAX_VALUE

更改计数器的最大值

COUNT_CMP_VALUE

更改比较值

COUNT_VALUE

用于初始化,和设定计数器状态

 

5. 例子

统计设定位置超过某个设定临界值的次数,当次数达到一定的数量后计数器复位。

clip0178

clip0179

 

clip0180