因为使用施耐德屏幕,里面没有西门子专有的S5TIME变量类型。
只能输入INT,然后依次转换并调用FC40,最后转换成S5TIME
我觉得这样的程序很长,又是调用什么的。
所以想着 我是否可以利用时钟周期来做?这样的程序有没有影响?程序中,255.0是0.1s的脉冲周期
A M 10.1
A M 255.0
FP M 10.2
JNB _001
L MW 0
L 1
+I
T MW 0
_001: NOP 0
L MW 0
L 100
>=I
= L 22.0
A L 22.0
JNB _002
L 0
T MW 0
_002: NOP 0
A L 22.0
BLD 102
S M 10.0
问题补充:
我想把这段程序做成功能块,已实现。但是有个问题,我做成功能块后,定时器的启动输出,只有利用IN和OUT添加的位。有没有办法利用调用此FC时的EN 和 ENO。就是怎么在功能块里把EN读取出来利用,把ENO作为定时器到达时间后的输出?像S_ODT那样
最佳答案
没问题,我们也经常利用系统时钟然后计数的方式实现定时器的功能。这种做法还有一个好处,就是程序封装比较方便,在移植到另一个项目时不用考虑定时器的资源和冲突情况。
提问者对于答案的评价:
谢谢,我就想知道有没有不好的地方
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc243098.html