quote:以下是引用yanxiao在2006-10-09 21:32:41的发言:
这段程序显然是LAD翻过来的
汗,的确如此,才入手做PLC,老板只要成果,用LAD容易上手。
帮助文档里是这样说明的。
“输出(=)指令将输出位的新数值写入过程映像寄存器。在LAD和FBD中,当输出指令被执行时,S7-200将过程映像寄存器中的输出位打开或关闭。对于LAD和FBD,指定的位被设为等于使能位。在STL,位于堆栈顶端的数值被复制至指定的位。”
“设置(S)和复原(R)指令设置(打开)或复原指定的点数(N),从指定的地址(位)开始。您可以设置和复原1至255个点。”
我理解在本程序中输出(=)指令是在一个扫描周期内,根据用户程序将数值写入输出过程映像寄存器,待到写输出时,根据输出映像寄存器的值动作输出继电器。
设置(S)指令不是很明白,没有说设置了某位后,写输出时输出继电器是根据什么动作,但是实际调试下面这个句中发现松开按钮后输出继电器是保持的,那是不是,一旦设置了输出映像寄存器某位的值那每次写输出的时候,值都能保持并能使输出继电器动作。
I1.2 Q1.6
----------( S )
而换做输出(=)指令则不能保持继电器的动作。每次扫描都是读入—>执行程序->通讯->自诊->写输出,鉴于写输出是必定的步骤,那是不是只有输出映像寄存器位的值被清0了,才使输出继电器还原到原来状态去了?
I1.2 Q1.6
----------( )