现在手上有个项目,是控制水泵的循环供水的,简单的讲有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