各位大师傅:
我想用STL或者SCL语言实现一个功能,我不想用梯形图做,想学习一下别的方式,所以想用语句实现,还请各位赐教:
行程开关检测开关:I0.0
工件光电检测开关:I0.1
当光电检测开关为1时,同时检测行程开关的状态,若行程开关的状态也为1,则将这个结果1保存起来,若
光电检测开关为0时且行程开关的状态为1,则将这个结果0也保存起来,如此反复判断工位上的工件有无,就是左移(0000000000000000----0000000000000001),我需要将这些结果保留16次,存放于一个字MW0中,再去取这个字MW0中的位的状态来使用,
例如我想每次用这个字中的BIT3位为1时触发我的一个外部输出
用STL或SCL如何写程序?对于你们来说可能太简单了吧,呵呵
--------行程开关信号和光电信号相与,做上升沿和下降沿,在上升沿和下降沿都移位MW0,再把行程开关和光电的逻辑结果写入MW0最后一位
AI0.0
AI0.1
=L0.0
FP M10.0
JCN M001
L MW0
SLW 1
A L0.0
= M0.0
M001: NOP 0
A L0.0
FN M10.1
JCN M002
L MW0
SLW 1
A L0.0
= M0.0
M002: NOP 0
LD I0.0
EU
S M1.0, 1
LD I0.1
EU
A M1.0
S M1.1, 1
LD I0.0
ED
SHRB M1.1, V100.0, +16
LD I0.0
ED
R M1.0, 2
要的位输出在VW100中。
--------先弄明白算法,再输出代码。
---------虽然不知道楼主是什么处理工艺,感觉用字逻辑运算好点吧
----------程序修改了一下,之前没有测试过。至于I0.0与I0.1之间的逻辑怎么配合,楼主可以自己根据实际情况而定,我只是给出了移位方法
A I 0.0
A I 0.1
= L 0.0
FP M 10.0
JCN M001
L MW 0
SLW 1
T MW 0
A L 0.0
= M 1.0
M001: NOP 0
A L 0.0
FN M 10.1
JCN M002
L MW 0
SLW 1
T MW 0
A L 0.0
= M 1.0
M002: NOP 0
欢迎光临 工控编程吧 (https://www.gkbc8.com/) | Powered by Discuz! X3.4 |