发布于 2007-08-29 22:11:16
0楼
再谢鼠老爹,延时不是主要的,还有其他功能要执行.下面是我的这部分程序.再次请教
ORGANIZATION_BLOCK 主程序:OB1
Network 1
LD SM0.5
= M10.0
Network 2
LD SM0.0
NOT
= M8.0
Network 3
LD SM0.0
CALL SBR7, 1, 10, M8.0, I0.0, Q0.0, VB0, VB20, V50.0
CALL SBR7, 1, 10, M8.0, I0.1, Q0.1, VB1, VB21, V50.1
CALL SBR7, 1, 10, M8.0, I0.2, Q0.2, VB2, VB22, V50.2
CALL SBR7, 0, 10, M8.0, M8.0, Q0.3, VB3, VB23, V50.3
CALL SBR7, 1, 10, M8.0, I0.4, Q0.4, VB4, VB24, V50.4
CALL SBR7, 1, 10, M8.0, I0.5, Q0.5, VB5, VB25, V50.5
CALL SBR7, 1, 10, M8.0, I0.6, Q0.6, VB6, VB26, V50.6
CALL SBR7, 1, 10, M8.0, I0.7, Q0.7, VB7, VB27, V50.7
Network 4
LD SM0.0
CALL SBR7, 2, 10, I1.7, I1.6, Q1.0, VB8, VB28, V51.0
CALL SBR7, 2, 10, I2.1, I2.0, Q1.1, VB9, VB29, V51.1
CALL SBR7, 2, 10, I2.3, I2.2, Q1.2, VB10, VB30, V51.2
CALL SBR7, 0, 10, M8.0, M8.0, Q1.3, VB11, VB31, V51.3
CALL SBR7, 0, 10, M8.0, M8.0, Q1.4, VB12, VB32, V51.4
CALL SBR7, 0, 10, M8.0, M8.0, Q1.5, VB13, VB33, V51.5
CALL SBR7, 0, 10, M8.0, M8.0, Q1.6, VB14, VB34, V51.6
CALL SBR7, 0, 10, M8.0, M8.0, Q1.7, VB15, VB35, V51.7
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK Digital:SBR7
VAR_INPUT
IN0:BYTE; //反馈类型:0-无馈;1-单反馈;2-双反馈
IN1:BYTE; //延时设定时间(秒)
IN2:BOOL; //关反馈,M8.0为常"0"
IN3:BOOL; //开反馈
END_VAR
VAR_IN_OUT
IO5:BOOL; //物理输出
IO6:BYTE; //阀门状态
IO7:BYTE; //实际延时(秒)
END_VAR
VAR_OUTPUT
OUT4:BOOL; //报警输出
END_VAR
BEGIN
Network 1
LD SM0.0
MOVB LB3, MB2
Network 2
LD SM0.0
LDB= LB0, 2
A L2.0
LDB= LB0, 1
AN L2.1
OLD
LDB= LB0, 0
AN L2.2
OLD
ALD
= M2.6
Network 3
LD SM0.0
LDB= LB0, 0
A L2.1
LDB= LB0, 0
A L2.2
OLD
ALD
= M2.7
Network 4
LD SM0.0
LPS
A M2.2
AN M2.0
S M2.0, 1
LPP
A M2.2
A M2.0
R M2.0, 1
Network 5
LD M2.1
A M2.0
LD M2.4
AN M2.0
OLD
= L2.2
Network 6
LD L2.2
LDN M2.7
O M2.6
ALD
LDN L2.2
LDN M2.6
O M2.7
ALD
OLD
= M2.3
Network 7
LD M2.3
AN M2.5
A M10.0
INCB LB4
Network 8
LD SM0.0
AB>= LB4, LB1
= M2.5
= L5.0
Network 9
LDN M2.3
MOVB 0, LB4
Network 10
LD SM0.0
MOVB MB2, LB3
END_SUBROUTINE_BLOCK
学如逆水行舟,不进则退