发布于 2003-01-15 23:42:53
0楼
就程序而言,必须考虑执行周期,下列情况中,每次I0.0,I0.1跃变时只执行两行程序一次(一个周期),则没有预期的结果:
//主程序
//MAIN
NETWORK 1
LD I0.0
EU
LDN I0.0
EU
OLD
LD I0.1
EU
OLD
LDN I0.1
EU
OLD
CALL SBR_0
//子程序
//SBR0
NETWORK 1
LD I0.0
AN Q1.1
=I Q1.0
NETWORK 2
LD I0.1
AN Q1.0
=I Q1.1
至于在这个实例中,如果你的电机功率很大而且惯性大,我认为不仅要做软硬件互锁,还要做Q1.0,Q1.1的下降沿一定时间的延时,因为在电机往一个方向转时加上要使它往另一个方向转的电压会产生相当大的电流而烧坏电机,延时程序如下:
NETWORK 1
LD I0.0
AN I0.1
A T33
= Q1.0
NETWORK 2
LD I0.1
AN I1.0
A T34
= Q1.1
NETWORK 3 //5s Delay
//
LDN Q1.0
TON T33, W#+500
NETWORK 4
LDN Q1.1
TON T34, W#+500
如果电机可以,而且控制触点电流小或者有灭弧,则不必加电路互锁和延时,因为你的程序已经有一定程度的互锁了。