首先要吐槽下西门子‘找答案’平台,也得让问答者互动一下啊,
只好把最开始的问题再贴过来如下:
有个应用用梯形图编程可以实现,但我觉得用STL更优,故请教這方面的能手给我露两手:
有48组DINT 格式数据:DB1504.DBD0~DB1504.DBD188, 当M1101.5 为ON, 进行比较MD1200 与48组数据哪组相同,且比较顺序由DBD188开始往下,当比较到相同数值时候把DB1504.DBDXXX数据清零,且把M11.2置1,动作完成。
大侠们请帮忙帮忙,ljm713028@126.com
根据‘艾星若尘’的帮助,做了一下程序:
OPN DB1504
A M 1101.5
JNB NON9
A(
L MD 1200
L L#0
>D
)
JNB NON9
L L#188
SLD 3
T MD 1230
L 48
back: L MW 1222
L DBD [MD 1230]
L MD 1200
==D
JC next
L MD 1230
L L#32
-D
T MD 1230
L MW 1222
LOOP back
next: L L#0
T DBD [MD 1230]
S M 11.2
NON9: NOP 0
模拟一会后CPU 会STOP,同时貌似有点小问题,请艾星及各位解答下!
问题补充:
非常感谢‘艾星若尘’!
因为数值肯定是最先从188开始的,总共有48个DBD,
图片说明:
最佳答案
今天上班的时候,时间不是很充足,比较匆忙,没有好好的进行测试;确实没有写好,新写好的,不妨再试试看:
OPN DB 1504
L 188
SLD 3
T MD 200
L 48
_010: T MW 300
L DBD [MD 200]
L MD 1200
<>D
JC _011
L 0
T DBD [MD 200]
S M 11.2
JU _012
_011: L MD 200
L 32
-D
T MD 200
L MW 300
LOOP _010
_012: NOP 0
提问者对于答案的评价:
感谢‘艾星落尘’的解答,能达到我的效果!
‘ LJCLWYF’的解答也是非常专业非常感谢!
最佳答案作者回复:
能帮到你,我也很高兴!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc227384.html