编程要求:“开始时按下按钮(I0.0),使M0.0得电,表示小车在初始状态准备好。
按下启动按钮(I0.1),Q0.0得电,小车电动机正转。
碰到限位开关(I0.2),Q0.1得电,小车电动机反转。
小车后退碰到限位开关(I0.3)后,小车停止。
再次按下按钮(I0.1),小车重复上述过程。 ”
若是用如图没有“程序段”这几个字的程序(即M0.2输出在第3个程序段),会出现错误如图:在按下I0.3之后,m0.0和m0.1为1,q0.1为1.正确的预期结果(如图)应为:位寄存器中只有M0.0为1,所有的Q均为0. 能达到预期结果的正确的程序如图(有“程序段”这几个字的图片)。 两个程序的不同只是程序段顺序的不同。
问题补充:
请问出错程序错在哪里? 为什么那样的程序顺序不行? 谢谢
图片说明:
最佳答案
不要小瞧程序段顺序的不同,这跟PLC的从下往下,从左往右的扫瞄方式有关系,不带:“程序段”的M0.2在M0.0之前,之前M0.2已经为1,当M0.0=1时,不会再对之前的M0.2产生作用了,由于顺序关系,不是由M0.0在影响M0.2,而是M0.2在影响着M0.0。再说楼主这种编程方式本来不规范,不要使用双线圈,建议M0.0的两段程序合并在一个段当中。
补充:因为在不带“程序段”的程序中最后一个M0.0为1的时候,PLC输出就最后一个M0.0为1状态为准,而第一段的M0.0仍然为0,所以在第三段M0.0不会使得M0.2断开为0,若是第四段的M0.0放在第三段之前,就能断开M0.2。所以建议不要使用双线圈,可以使用Set加Reset指令。
提问者对于答案的评价:
谢谢 讲的很仔细
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc142533.html