2. 收尘器系统控制功能块 (FB_DustCollectorSystem)
这是系统的核心功能块,实现三台收尘器的交替控制逻辑。
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| INPUT // 系统控制 SystemStart : BOOL; // 系统启动命令 SystemStop : BOOL; // 系统停止命令 // 交替时间参数 AlternateTime : TIME; // 交替运行时间 // 收尘器1限位信号 DC1_InValve_OpenLimit : BOOL; DC1_InValve_CloseLimit : BOOL; DC1_OutValve_OpenLimit : BOOL; DC1_OutValve_CloseLimit : BOOL; // 收尘器2限位信号 DC2_InValve_OpenLimit : BOOL; DC2_InValve_CloseLimit : BOOL; DC2_OutValve_OpenLimit : BOOL; DC2_OutValve_CloseLimit : BOOL; // 收尘器3限位信号 DC3_InValve_OpenLimit : BOOL; DC3_InValve_CloseLimit : BOOL; DC3_OutValve_OpenLimit : BOOL; DC3_OutValve_CloseLimit : BOOL; // 下料命令 DC1_DischargeCmd : BOOL; DC2_DischargeCmd : BOOL; DC3_DischargeCmd : BOOL; // 公共参数 ValveTimeout : TIME; // 阀门操作超时时间 OUTPUT // 收尘器1输出 DC1_InValveOpen : BOOL; DC1_InValveClose : BOOL; DC1_OutValveOpen : BOOL; DC1_OutValveClose : BOOL; DC1_DischargeValve : BOOL; // 收尘器2输出 DC2_InValveOpen : BOOL; DC2_InValveClose : BOOL; DC2_OutValveOpen : BOOL; DC2_OutValveClose : BOOL; DC2_DischargeValve : BOOL; // 收尘器3输出 DC3_InValveOpen : BOOL; DC3_InValveClose : BOOL; DC3_OutValveOpen : BOOL; DC3_OutValveClose : BOOL; DC3_DischargeValve : BOOL; // 风机输出 FanRun : BOOL; // 风机运行 // 系统状态 SystemRunning : BOOL; // 系统运行状态 CurrentActiveDC : INT; // 当前活动的收尘器编号(1-3) DC1_Fault : BOOL; // 收尘器1故障 DC2_Fault : BOOL; // 收尘器2故障 DC3_Fault : BOOL; // 收尘器3故障 // 系统状态 SystemState : INT := 0; // 0:停止, 1:启动中, 2:运行中, 3:停止中 // 交替计时器 AlternateTimer : TON; // 交替运行计时器 // 当前活动的收尘器索引 ActiveDCIndex : INT := 1; // 1,2,3 // 收尘器实例数据 DC1_ValveTimer : TON; DC1_Status_ValvesOpened : BOOL; DC1_Status_ValvesClosed : BOOL; DC1_Status_Fault : BOOL; DC2_ValveTimer : TON; DC2_Status_ValvesOpened : BOOL; DC2_Status_ValvesClosed : BOOL; DC2_Status_Fault : BOOL; DC3_ValveTimer : TON; DC3_Status_ValvesOpened : BOOL; DC3_Status_ValvesClosed : BOOL; DC3_Status_Fault : BOOL; // 内部命令 DC1_OpenCmd : BOOL; DC1_CloseCmd : BOOL; DC2_OpenCmd : BOOL; DC2_CloseCmd : BOOL; DC3_OpenCmd : BOOL; DC3_CloseCmd : BOOL;
==================== 系统状态控制 ==================== 


==================== 调用单个收尘器功能块 ==================== 收尘器1
收尘器2
收尘器3
|
3. FB中的调用流程示例




实现思路解析
1. 程序架构设计
这个控制系统采用了分层设计的思想:
- 底层 :FC_DustCollector 负责单个收尘器的具体控制逻辑
- 上层 :FB_DustCollectorSystem 负责整个系统的协调控制和交替逻辑
- 顶层:I/O映射FC2 负责 I/O 映射和功能块调用(网上可以学习别人映射方法更简洁,个人习惯)




2. 核心控制逻辑
单个收尘器控制
- 同步控制:进料阀和出气阀同步开关,确保工艺要求
- 安全互锁:只有阀门完全关闭时才能下料
- 故障检测:超时检测、命令冲突检测、限位异常检测
系统交替控制
- 状态机设计:系统分为停止、启动中、运行中、停止中四个状态
- 交替逻辑:使用计时器控制收尘器的切换时间,交替时间可自由设置
- 故障处理:当前收尘器故障时自动切换到下一个
- 风机控制:全局风机与系统运行状态联动
3. 关键技术点
- FB 与 FC 的结合使用:FC 用于无状态的功能逻辑,FB 用于有状态的设备控制
- TON 计时器:用于阀门超时检测和交替时间控制
- CASE 语句:实现状态机和收尘器选择逻辑
- 模块化设计:便于维护和扩展
使用说明
1. 参数配置
在 OB1 中配置以下关键参数:
|----------------------------------------------------------------------------------------------------------------|
| AlternateTime_Setting : TIME := T#5M; // 交替时间,可设置为T#1M, T#10M等 ValveTimeout_Setting : TIME := T#30S; // 阀门超时时间 |
2. I/O 映射
根据实际硬件配置修改变量的地址映射:
3. 系统操作
- 启动系统:按下启动按钮,系统将启动风机,然后依次打开收尘器 1 的阀门
- 交替运行:达到交替时间后,系统自动切换到下一个收尘器
- 下料操作:在收尘器停止进料后,可以按下对应的下料按钮进行下料
- 停止系统:按下停止按钮,系统将关闭所有收尘器,然后关闭风机
4. 故障处理
系统会自动检测以下故障:
- 阀门操作超时
- 限位信号异常(开限位和关限位同时为真)
- 命令冲突
当检测到故障时,系统会自动切换到下一个收尘器,并点亮对应的故障指示灯。
总结
- 分层设计:采用 FC 实现单个收尘器控制,FB 实现系统协调,使程序结构清晰、易于维护。
- 状态机控制:系统状态机确保了安全的启动和停止顺序,以及可靠的交替运行逻辑。
- 安全机制:包含阀门同步控制、下料互锁、故障检测等多重安全保护措施,保障系统稳定运行。
这套程序完全满足你的需求,实现了三台收尘器的交替运行控制,交替时间可自由设置,并且包含完善的安全保护和故障处理机制。

