X01-7西门子200SMART水处理程序案例,具体为120吨双级反渗透程序加混床程序实例项目,内有程序画面和电气原理图,供初学者学习和研究。 程序有注释。
刚拿到这套120吨双级反渗透水处理项目时,我对着控制柜里整整齐齐的SMART200 PLC数了五秒输入输出点——这玩意儿真不是新手村的配置。好在程序注释写得比大多数自嗨式代码强多了,至少能看懂每个子程序块在搞什么飞机。
先看主程序结构,典型的模块化设计。主OB1里直接调用三个子程序,这波操作对维护人员相当友好。重点看RO反渗透控制部分的SBR_0,里边用了个挺有意思的定时器接力方案:
// 一级RO冲洗计时 TON(T101, 30); // 30秒正冲 TON(T102, 45); // 45秒反冲 IF T101.DN THEN Q0.3 := 0; // 关闭正冲电磁阀 T102.IN := 1; END_IF;这里用两个定时器实现自动切换冲洗模式,比单个长定时器分段控制更灵活。新手可以注意下TON指令的使能端处理,很多人在仿真时容易卡在这——记得在调试模式手动触发T102.IN的复位。
混床再生程序里有个水量累计的小设计挺实用。流量计脉冲信号接入I0.4,用下面这段做累计:
MOVW AIW16, VW200; // 读取瞬时流量 ITD VW200, VD202; // 转双整数 DTR VD202, VD206; // 转实数 MUL 0.1, VD206; // 量程转换 A I0.4, EU; // 检测上升沿 +R VD206, VD210; // 累计总水量这里有个细节要注意,流量计信号建议加硬件滤波,之前现场遇到过电磁阀动作导致脉冲信号抖动,结果半小时累计出三天的用水量...后来在程序里补了个上升沿延时检测才解决。
X01-7西门子200SMART水处理程序案例,具体为120吨双级反渗透程序加混床程序实例项目,内有程序画面和电气原理图,供初学者学习和研究。 程序有注释。
程序画面里有个动态效果挺有意思——用柱状图模拟RO膜压力变化。关键代码在HMI连接里:
MOVR VD300, HMI1.压力显示; // 实时压力值 CMPR VD300 > 1.5, 50; // 超压报警但实际调试发现压力传感器量程和画面显示范围没对齐,导致柱状图动不动就顶格。后来在数据块里加了标度变换才正常,所以说HMI组态和程序变量一定要对表操作。
电气图部分重点关注反渗透高压泵的星三角启动回路,程序里对应的输出点Q1.2和Q1.3有互锁保护。有个隐藏知识点:在PLC输出端并接的RC吸收回路,现场维护时别手贱拆了,上次有个学徒工觉得那玩意儿没用,结果一个月烧了三个接触器线圈。
这套程序最值得学的是异常处理逻辑,比如在SBR_2里用状态字实现了分级报警。当VW500的某位置1时,不只是简单触发报警,还会执行对应的降级运行模式。这种设计比单纯亮故障灯高明得多,特别是看到用异或指令做报警确认的地方:
XORW 16#0001, VW500; // 确认一级报警最后给个实战建议:拿仿真器跑程序时,先把所有的M0.0强制置1,不然你会发现所有自动流程都动不了——这个急停复位信号在真实项目里通常接硬线,仿真时容易漏掉。
源码里还有几个没启用的PID控制块,估计是给升级预留的。有兴趣的可以试着把混床的PH值控制改成闭环,记得把FB41的背景数据块分配好,别直接调用,SMART200的PID挺挑食的。