引用“瀚宇凌枫”网友的:
我今把这块程序放到PLC中运行,无法实现楼主的目标!按我分析:就ldi y0 out y0 语句根本就无法实现输出状态的自锁,他只能保持一个扫描状态周期,当Y0为ON时,则LDI Y0为OFF 断开状态,该如何保持Y0一直ON?
回复“瀚宇凌枫”网友: 我现在结合图片给你解释
见“图9”:当X0为ON的前沿发生时M0 会ON一个周期,在这个周期中程序的第3步开始的“条”所定义的跳转是不执行的,这是因为跳转的条件为OFF。如果这时Y0=“0”,那么,程序的第7步Y0的B触点为“ON”,在第8步就驱动Y0,使Y0=“1”。程序执行“END”命令时,Y0=“1”的结果就寄存在“输出锁存寄存器”中,在没有以新的内容刷新它(且PLC继续处于RUN状态)时,这个锁存寄存器会一直保持这个状态。第一个周期过后(条件是X0没有再次从OFF跃迁到ON)M0=“0”,所以M0的B触点使跳转条件成立,程序跳转到以指针P0所指定的第10步去执行“END”命令,从而不会执行程序第7第8两步。故Y0可以(在PLC处于RUN期间)一直保持“ON”!
如果再次当X0导通的前沿发生时,由于Y0已经是等于“1”的,则,程序执行第7第8步使Y0=“0”,在程序执行“END”命令时以“Y0=‘0’”的新内容去刷新“输出锁存寄存器”。从而实现了“摁一下按钮,Y0就仅改变一次状态”!