如何做到电机故障自动切换到下一台电机

现在手上有个项目,是控制水泵的循环供水的,简单的讲有A,B,C,D,E五台水泵,正常工作时间隔四小时切换到下一台电机,具体见流程A-->B-->C-->D-->E-->A,如果B有问题,就直接其他四台电机运行。
现在在编程上遇到了问题,就是如果保证中间有台故障时,保证其他四台能正常的按间隔时间运行呢,哪个师傅在我程序上修改一下。
我的程序现在有点问题就是,有电机故障时,可能两台电机同时工作,且可能不能循环工作。详见程序。

TITLE=程序注释
Network 1 // 定时
LD     I0.0
A      SM0.5
EU
LD     C4
ON     I0.0
CTU    C4, 10
Network 2 
LD     I0.0
A      C4
EU
LD     C5
ON     I0.0
CTU    C5, 5
Network 3 
LD     I0.0
LPS
AW=    C5, 0
=      M31.0
LRD
AW=    C5, 1
=      M31.1
LRD
AW=    C5, 2
=      M31.2
LRD
AW=    C5, 3
=      M31.3
LPP
AW=    C5, 4
=      M31.4
Network 4 // 网络标题
// 网络注释
LD     I0.0
LD     M31.0
O      I0.5
ALD
AN     I0.1
=      Q0.0
Network 5 // 网络标题
// 网络注释
LD     I0.0
LD     M31.1
O      M0.0
ALD
AN     I0.2
=      Q0.1
Network 6 // 网络标题
// 网络注释
LD     I0.0
LD     M31.2
O      M0.1
ALD
AN     I0.3
=      Q0.2
Network 7 // 网络标题
// 网络注释
LD     I0.0
LD     M31.3
O      M0.2
ALD
AN     I0.4
=      Q0.3
Network 8 // 网络标题
// 网络注释
LD     I0.0
LD     M31.4
O      M0.3
ALD
AN     I0.5
=      Q0.4
Network 9 
LD     I0.1
LDN    I0.2
LD     I0.2
AN     I0.3
OLD
LD     I0.2
A      I0.3
AN     I0.4
OLD
LD     I0.2
A      I0.3
A      I0.4
AN     I0.5
OLD
ALD
=      M0.0
Network 10 
LD     I0.2
LDN    I0.3
LD     I0.3
AN     I0.4
OLD
LD     I0.3
A      I0.4
AN     I0.5
OLD
LD     I0.3
A      I0.4
A      I0.5
AN     I0.1
OLD
ALD
=      M0.1
Network 11 
LD     I0.3
LDN    I0.4
LD     I0.4
AN     I0.5
OLD
LD     I0.4
A      I0.5
AN     I0.1
OLD
LD     I0.4
A      I0.5
A      I0.1
AN     I0.2
OLD
ALD
=      M0.2
Network 12 
LD     I0.4
LDN    I0.5
LD     I0.5
AN     I0.1
OLD
LD     I0.5
A      I0.1
AN     I0.2
OLD
LD     I0.5
A      I0.1
A      I0.2
AN     I0.3
OLD
ALD
=      M0.3
Network 13 
Network 14

最佳答案

没有PLC,楼主自己实验一下吧!

ORGANIZATION_BLOCK 主程序:OB1
TITLE=I0.0  循环运行控制
// I0.1  1#电机故障位
// I0.2  2#电机故障位
// I0.3  3#电机故障位
// I0.4  4#电机故障位
// I0.5  5#电机故障位
// 
// Q0.0 1#电机控制位
// Q0.0 2#电机控制位
// Q0.0 3#电机控制位
// Q0.0 4#电机控制位
// Q0.0 5#电机控制位
// 
BEGIN
Network 1 
LD     I0.0
A      SM0.5
EU
LD     C4
ON     I0.0
CTU    C4, 10
Network 2 
LD     I0.0
A      C4
EU
LD     C5
ON     I0.0
CTU    C5, 5
Network 3 
// 判断电机是否故障,如果故障则跳转到下一台
LD     I0.0
LPS
AW=    C5, 0
LPS
AN     I0.1
=      Q0.0
LPP
A      I0.1
MOVW   1, C5
LRD
AW=    C5, 1
LPS
AN     I0.2
=      Q0.1
LPP
A      I0.2
MOVW   2, C5
LRD
AW=    C5, 2
LPS
AN     I0.3
=      Q0.2
LPP
A      I0.3
MOVW   3, C5
LRD
AW=    C5, 3
LPS
AN     I0.4
=      Q0.3
LPP
A      I0.4
MOVW   4, C5
LPP
AW=    C5, 4
LPS
AN     I0.5
=      Q0.4
LPP
A      I0.5
MOVW   0, C5
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK

提问者对于答案的评价:
非常感谢。。能满足我的需求。。也学会了这个思路

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc306643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐