发布于 2015-01-29 23:06:18
4楼
PLC内部遍地都是触点和线圈,假定楼主的线圈特指Q输出。
Q输出方式有两种:普通输出和立即输出。
1、普通输出,指令执行时,Q输出值是存在输出映象区,并不出现在物理的输出端口,要到扫描结束后,由系统把映象区的值输出至物理端口。
所以在同一个扫描期间,你可以对Q作N次写入,都不会影响到物理端口的值,等到尘埃落定,扫描结束,此时的Q值才反映至端口。这就是游戏规则。
这个特性有用吗?有用。简单地说,你可以把一个逻辑式分散在各处,分别执行。你可在任何地点把Q捡起来操作一翻,再放回去。
举个例子:一个程序已经写完了,已调试完了,现在要对Q0.0增加一个条件,当M0.0=1时,Q0.0输出为0(相当于增加一个停止条件),而当M0.0=0时,原逻辑不变。但你又不想去改前面的程序,或者程序是别人写的,可气别人把操作Q0.0的子程序加密了,怎么办?你就在程序后面(结尾处吧)加上这一段:
LDN M0.0
A Q0.0
= Q0.0
这相当于在原逻辑中串入了(not M0.0)。
2、立即输出指令,当把值写入Q映象寄存器的同时,也立即输出至物理端口。双线圈、N线圈的目的,除了及时之外,就是想在物理端口上输出每一个值。
也举个例吧:晶体管输出,每个扫描周期在Q0.0上输出一个脉冲(是一个脉冲,不是翻转一次),你可以这样写
.
.
.
LD SM0.0
=I Q0.0
.
.
插入其它指令、程序,作一些延时
.
.
LDN SM0.0
=I Q0.0
.
.