由于PLC采用批次刷新方式,也就是在输入刷新阶段一次性将输入信号信息扫描到输入映象区,而在程序执行过程中,PLC只根据输入映象区内输入点的状态进行判断执行,新的输入信号信息PLC是不进行理会的。输出同样是在输出刷新阶段,将映象区内的输出点状态一次性反映到实际输出。在程序执行过程中输出点的实际状态是不随映象区状态变化而变化。
此种工作方式就造成了PLC程序不能及时处理输入点最新的信息变化,也不能立刻将输出运算结果反映到实际输出。解决的办法就是PLC中提供的输入输出刷新指令“REF”。编程示例如下:
输入刷新指令:
LD M8000
REF X0 K8
M8000在PLC运行时为常闭继电器,当执行到“REF X0 K8”指令时,PLC将X0---X7的外部输入信息扫描到输入映象区,以取得最新的输入信息(注意:只是在执行该指令时,PLC输入刷新一次,以后仍然按照输入映象区的状态执行程序)。K8可以是K16,K24。必须是8的倍数。
要说明的是,虽然执行该指令时立即读取输入信息而刷新输入映象区,但是由于PLC的输入滤波滞后的原因,PLC只能读在执行该指令前10ms的输入信息
输出刷新指令:
LD M8000
REF Y0 K8
M8000在PLC运行时为常闭继电器,当执行到“REF Y0 K8”指令时,PLC根据输出映象区内Y0---Y7的状态改变相应的实际输出(注意:只是在执行该指令时,PLC输出刷新一次,以后仍然是执行到END指令时刷新输出)。K8可以是K16,K24。必须是8的倍数。
前面提到输入滤波滞后的问题,其目的是为了防止输入接点的振动或是干扰而造成采集到错误的输入信息。PLC的滤波时间一般都设为10ms,但是这个时间是可以人为改变的。您可以用“REFF”指令或是改变D8020寄存器的值来减少滤波时间,从而达到输入信息的快速反应,但是PLC的抗干扰能力就减弱了。普通的顺序控制是没有必要改变此滤波时间的,如果您的工程需要减少滤波时间,就一定要提高线路的抗干扰能力!
-
-
-
szzunzheng | 当前状态:离线
总积分:180 2024年可用积分:0
注册时间: 2007-06-06
最后登录时间: 2009-10-12
-
szzunzheng 发表于 2007/9/10 14:52:22
引用 szzunzheng 2007/9/10 14:52:22 发表于2楼的内容
-
-
引用 钟灵山 2007/10/12 12:37:55 发表于3楼的内容