一段小程序疑惑

百度上搜索了一段关于一个按钮控制电机正反转的程序,按一下正转,再按一下反转,先把程序写成
LD     SM0.0
LPS
MOVW   C0, MW0
AN     M0.0
AN     Q0.1
=      Q0.0
LPP
A      M0.0
AN     Q0.0
=      Q0.1

调试不成功,监控后发现每按一次I0.0时,计数器和MW0都是加一的,但M0.0就是不转换,凭着直觉把程序改成
LD     SM0.0
LPS
MOVW   C0, MW0
AN     M2.0
AN     Q0.1
=      Q0.0
LPP
A      M2.0
AN     Q0.0
=      Q0.1

LD     SM0.0
MOVW   MW0, MW2
加了这一步后,程序运行正常,功能实现,但还是不太清楚原因,不知道为什么。

另外还有个问题,200的步进指令LSCR用法,比如我的自动控制部分用步进指令,在故障情况下,进入自动或称为进入步进的条件丢失了,自动停止,当故障恢复时,自动条件再次满足,能从上次步进结束的步继续进行么,就是说步进循环中断后,下次满足步进循环条件时能记住上次的步骤么,若不能,有没有什么办法可以让实现,我印象中300编程时用GRAPH是可以记住上次中断时的步骤的,有个项目上也实现了,但不知道200如何。

最佳答案

1、第一段程序把m0.0改为m1.0就可以了。西门子存储单元是“地址低字节”所以m1.0才是MW0的最低位。如图1。
2、个人认为,不对见谅啊!200里面如果一个步被激活的话,不用结束指令的话这一步是一直激活的,即SCR段在退出前保持激励状态。就是说这一步内产生了中断,但这一步是一直激活着的,中断回来,满足转换条件还是会继续往下执行的。

图片说明:

一段小程序疑惑  

提问者对于答案的评价:
谢谢。

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月10日
下一篇 2017年12月10日

相关推荐