STEP 7(TIA博途) 中,怎样在 -2147483648 到 +2147483647 范围内向前或向后计数?

说明
图1显示了在组织块 OB "CountMain"中调用功能块 FB "Dcount" ,连接了全局DB "Count"中的变量. 计数程序是在FB块中实现的,并且有德语和英语的注释。

STEP 7(TIA博途) 中,怎样在 -2147483648 到 +2147483647 范围内向前或向后计数?
图1
在 -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 (Scan 1)检测到盒子进入传送带区域,输入点E0.0 (I0.0)接入计数增加,"count"输出计数加"1"。
  • 探测器2(Scan 2)检测到盒子移出传送带区域,输入点 E0.1(I0.1) 接入计数减少,"count"输出计数减"1"。
  • 如果盒子太短或由于运输原因被移除了,探测器2没有检测到盒子出传送区域,每次异常都会造成计数误差增加1,这样就可以在 "compare"比较中设定20个盒子,如果异常计数达到20, 输出A0.0(Q0.0)就会置1. 这个值就是异常的盒子数或者说丢失掉的盒子数。

通过一个插件(不包含在下载程序中)可以通过输出A0.0的信号使传送带停止。

STEP 7(TIA博途) 中,怎样在 -2147483648 到 +2147483647 范围内向前或向后计数?
图2
您可以添加库文件到S7-1200 / S7-1500和S7-300库中使用。库文件副本的文件夹包含两个文件夹。每个子文件夹中都包含FB“DCount”背景DB块,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博途) 中,怎样在 -2147483648 到 +2147483647 范围内向前或向后计数? 39309294_Dcount_Lib_STEP7_TIA_Portal_V13.zip (1,1 MB)

创建环境
图. 1 和FAQ 下载由STEP 7 (TIA Portal) V13+SP1创建。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论