说明
图1显示了在组织块 OB "CountMain"中调用功能块 FB "Dcount" ,连接了全局DB "Count"中的变量. 计数程序是在FB块中实现的,并且有德语和英语的注释。
STEP 7(TIA博途) V11中,怎样在 -2147483648 到 +2147483647 范围内向前或向后计数
在 -2147483648 到 +2147483647 之间的向前和向后计数,是分别通过输入管脚的 "up" 和 "down"的变量沿变化触发的。
- 如果 "up" 管脚有一个上升沿, "count"输出值加"1".
- 如果 "down" 管脚有一个上升沿, "count"输出值减"1".
- 如果 "lPreset" 管脚有一个上升沿,将预设值 "preset"中的值给到输出 端"count" .
- 可以在输入端"compare"设置一个比较值.
- 如果输出的计数值"count" 大于等于比较值"compare" , 那么 "qCompare" 输出"1".
注意
FB "Dcount" 是用SCL创建的,例如下面的SCL:
IF #statCount >= #compare THEN
#qCompare := true;
ELSE
#qCompare := false;
END_IF;
为了优化程序,可以直接用大于等于的关系式代替IF指令结构,如下:
#qCompare := #statCount >= #compare;
下表列出了FB“Dcount”的输入输出参数详细说明和数据类型。
up
输入
Bool
计数增加
down
输入
Bool
计数减少
compare
输入
DInt
输入比较值
preset
输入
DInt
预设计数值
lPreset
输入
Bool
预设值设定允许
count
输出
DInt
输出计数值
qCompare
输出
Bool
当计数值大于等于比较值时为1
示例应用:
在传送带上将盒子从A点传送到B点。
- 探测器1 检测到盒子进入传送带区域,输入点E0.0 接入计数增加,"count"输出计数加"1"。
- 探测器2检测到盒子移出传送带区域,输入点 E0.1 接入计数减少,"count"输出计数减"1"。
- 如果盒子太短或由于运输原因被移除了,探测器2没有检测到盒子出传送区域,每次异常都会造成计数误差增加1, 这样就可以在 "compare"比较中设定20个盒子,如果异常计数达到20, 输出A0.0就会置1. 这个值就是异常的盒子数或者说丢失掉的盒子数。
通过一个插件(不包含在下载程序中)可以通过输出a0.0的信号使传送带停止。
STEP 7(TIA博途) V11中,怎样在 -2147483648 到 +2147483647 范围内向前或向后计数
您可以添加库文件到S7-1200 / S7-1500和S7-300库中使用。库文件副本的文件夹包含两个文件夹。每个子文件夹中都包含FB“DCount”实例数据库,OB”countmain”和全局数DB“Count”。
- 如果使用的是 S7-1200 或S7-1500, 可以直接从 "S7-1200/S7-1500" 文件夹中将块拖进程序文件夹。
- 如果是s7-300, 可以从"S7-300" 文件夹中将块拖进程序,同样也适用 于S7-400。
下载
附件中包含 STEP 7 (TIA Portal) 库文件 "39309294_Dcount_Lib_STEP7_TIA_Portal_V13.zip" ,文件夹详细见上文说明。将文件复制到一个单独的目录中,然后双击打开, 在 STEP 7 (TIA Portal)中所有相关的子目录会自动提取,然后就可以使用STEP 7 (TIA Portal) 打开和编辑解压的库文件了。