评估活动位在标记字中的位置
"Bit_Pos" 功能计算一个标记字中的活动位,例如,如果用一个DWORD数据类型的DB变量为顺序过程编写一个顺序控制程序,那么在这个双字中在任一时刻只有一个位与当前顺序活动步是对应的。使用位计数可以在一个可视化系统中通过符号列表以明文的形势显示活动步。例如,对于可视化来说,这样能更好的接收当前位置值,把当前的活动步作为一个双整数值显示更直观了。
图. 1
注意:
对于"BitPos" 功能在任何时刻只能设置或改变一个位的状态。下面是相关公式:
2X = Y
X = lnY / ln2
这里 X 是位位置,Y 是标记字的值。位位置必须要 X 按1递增。此外,"Bit_Pos" 功能考虑了两种特殊情况,Y 不能为 0 或负数。
图. 2 显示了一个"BitPos"块的应用范例。
图. 2
注意
根据功能块的应用,也可以使用“ENCO”系统功能块。使用此指令读取最低置位位的位数,并将其输出到输出参数中。更多信息参考STEP 7 (TIA Portal手册ENCO: Encode。
32 位区域监视
为监视进来和离去事件的32位区域,可以使用FB "Monitor_Bit" 功能通过监视上升沿和下降沿查询位。然而, 正如上面描述的例子,在这里输入参数 "monitorField" 定义为 DINT,并作置位计算。
FB "Monitor_Bit" 实现以下功能:
- 为了从任何数量的位中筛选出在这个周期状态改变了的位,在上个周期和当前周期的值之间使用双字异或操作。异或根据两个值中对应位值的不同来进行置位。
- 使用另一个 AND 查询那个位是进来信号还是离去信号。
- 如果这个双整数中只有一个位置位,那么应用 2X = Y 。
图. 3
下表显示两个块”bitpos”和“monitorbit”输入和输出参数与相关的数据类型。
参数名称 | 接口 | 数据类型 | 描述 |
---|---|---|---|
FC "BitPos" | |||
dataField | Input | DWord | 输入变量类型为双字 |
bitPosition | Output | DInt | 输出某位的位置 |
FB "MonitorBit" | |||
monitorField | Input | DInt | 输入变量的实际值 |
reset | Input | Bool | 将变量复位成0 |
come | Output | Bool | 标志位: 1 为进入的事件 |
go | Output | Bool | 标志位: 1为离开的事件 |
bitPosition | Output | DInt | 输出某位的位置 |
注意
可以从位 1 到位 31 中任意的位确定进入和离开事件,值的范围可应用为 0 到 +2147483647。位 32 为符号位。 如果位 32 接收信号状态 1, 输出置位的位 32 的编号("BitPositin"),并且置位 "come"输出位 (表示进入事件)。然而,如果要继续使用这个功能来确定更多的进入和离去事件,必须要预先复位位 32。
下载
在一个独立的目录下解压缩ZIP文件。然后可以使用STEP 7 (TIA Portal) 打开和编辑库文件。
注意
只能使用STEP 7 (TIA Portal) 打开盒编辑该库。更多关于打开库的信息参考条目 ID: 37364723
这两个块FC”bitpos“ 和 FB”monitorbit”是用SCL写的,并有德语和英语的注释。
48816937_BitDiag_Lib_STEP7_TIA-Portal_V13.zip (1,1 MB)
创建环境
这个FAQ中用到的截图和下载创建软件为 STEP 7 (TIA Portal) V13+SP1版本.
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322707.html