SUBROUTINE_BLOCK FSC_CTL:SBR0
TITLE=风机控制功能块
VAR_INPUT
A_Is_Run:BOOL; // 运行反馈
A_Is_Err:BOOL; // 故障反馈
A_Is_Auto:BOOL; // 自动反馈
A_SB_Start:BOOL; // 启动按钮
A_SB_Stop:BOOL; // 停止按钮
A_Is_PHI:BOOL; // 压差高
RF_Is_Run:BOOL;
CCQ_IsRun:BOOL; // 除尘器运行反馈
END_VAR
VAR_IN_OUT
A_Is_PHi_T:BYTE; // 压差高计时
WaitReq:BYTE; // 等待条件满足
CCQ_ReqRun:BOOL; // 除尘器要求运行
RF_ReqRun:BOOL; // 中继风机要求运行
END_VAR
VAR_OUTPUT
A_Out_CTL:BOOL; // A碎纸风机控制输出
ALM:BOOL; // 报警输出
END_VAR
VAR
Enable_Run:BOOL; // 允许运行
END_VAR
BEGIN
Network 1 // 初使化
LD SM0.1
MOVB 0, LB1
MOVB 0, LB2
R L3.0, 1
R L3.1, 1
R L3.2, 1
R L3.3, 1
Network 2 // A压差高
// 压差高计时
// 每秒种进行判断,如果压差高就计时
LD SM0.5
EU
LPS
A L0.5
AB< LB1, 100
INCB LB1
LPP
AN L0.5
MOVB 0, LB1
Network 3 // 允许启动
// 允许启动,按下启动按钮后,判断其它两个,启动条件,进入等待
LD L0.2
AN L0.1
AB< LB1, 10
LPS
= L3.4
A L0.3
LPS
A L0.7
MOVB 10, LB2
LPP
AN L0.7
MOVB 60, LB2
LPP
NOT
MOVB 0, LB2
Network 4 // 启动倒计时
// //
LD SM0.5
EU
AB> LB2, 1
DECB LB2
Network 5 // 启动
LD L3.4
AB> LB2, 0
LPS
A L0.7
LPS
A L0.6
S L3.2, 1
LPP
AN L0.6
S L3.1, 1
LPP
AN L0.7
S L3.0, 1
Network 6
// 如果已经运行,或等待时间到,则取消请求
LD SM0.0
LPS
LD L0.7
OB= LB2, 1
ALD
R L3.0, 1
LPP
LD L0.6
A L0.0
OB= LB2, 1
ALD
R L3.1, 1
Network 7
LD L0.4
ON L3.4
R L3.0, 1
R L3.1, 1
R L3.2, 1
MOVB 0, LB2
Network 8 // 如果中继风机或除尘器关闭,则取消命令输出
LDN L0.7
ON L0.6
R L3.2, 1
Network 9 // 报警
LDB>= LB1, 10
O L0.1
= L3.3
END_SUBROUTINE_BLOCK