我刚接触西门子的PLC,我试了编写了一个子程序调用的程序。
目的是这样的,控制6个输出按照顺序启动,前面的一个输出锁后面的输出,就是I0.0的没有的打开的话,后面的IO.1就无法打开。关闭的时候IO.1没有关闭的时候,IO.O就不能关闭。启动采用的是一键控制。
一键启动部分我仿照之前三菱PLC编的那个,应该是能能行的。
然后我就用调用带参数的子程序。
但是现在发现只要第一个启动按钮一按下,后面的输出就全部由了。停止的时候也是的,按一下停止,所有的就全部停止。
我猜想应该是子程序这边除了问题。还请大家指教。
对了,我在主程序中多次调用了该子程序,一个输出就调用一次。不知道是否有问题呢?
如何长传程序梯形图呢?
指令表语句
LD Always_On:SM0.0
= L60.0
LDN 手动or自动:I3.3
= L63.7
LD SB风机:I0.0
EU
= L63.6
LD FR风机:I0.7
= L63.5
LD SA急停:I3.4
= L63.4
LD L60.0
CALL 手动操作:SBR10, L63.7, L63.6, L63.5, L63.4, 全室风机:Q0.0, HL风机:Q1.0, Alarm全室风机:M30.0
LDN 手动or自动:I3.3
= L60.0
LDN 手动or自动:I3.3
= L63.7
LD SB分离器:I0.1
AN 提升机:Q0.2
A 全室风机:Q0.0
EU
= L63.6
LD FR分离器:I1.0
= L63.5
LD SA急停:I3.4
= L63.4
LD L60.0
CALL 手动操作:SBR10, L63.7, L63.6, L63.5, L63.4, 分离器:Q0.1, HL分离器:Q1.1, Alarm分离器:M30.1
子程序的
LD #手动:L0.0
A #启停信号:L0.1
AN #过载信号:L0.2
AN #急停信号:L0.3
= #中继b:L1.0
LD #手动:L0.0
LD #中继b:L1.0
AN #输出:L0.4
LDN #中继b:L1.0
A #输出:L0.4
OLD
ALD
AN #过载信号:L0.2
AN #急停信号:L0.3
= #输出:L0.4
LD #过载信号:L0.2
= #故障:L0.5
= #内故障:L0.6