西门子200smart和昆仑通态锅炉换热站程序项目实例程序内有利用模拟量读取运算时间自动切换水泵一用一备故障自动切换自动时间段加热时间段设定温度电能读取及算法 modbus通讯控制变频器。锅炉房里蹲了三天调完这套系统摸着滚烫的PLC外壳突然想来聊聊这个项目。西门子200smart搭昆仑通态触摸屏的锅炉换热系统典型的小型工业自动化项目但里边藏着不少实用技巧。模拟量采集是基本功但这里玩出了新花样。热电阻接EM AM03模块程序里直接上SCALE指令转换工程量。有个骚操作是在线监测模块故障时自动切换运算周期看这段代码LD SM0.5 //秒脉冲 MOVR VD200, VD204 //原运算周期 AENO MOVR VD208, VD200 //故障时切换运算周期其实就是利用时间戳比对当检测到AI通道异常时自动从1秒运算切换成5秒均值计算防止数据剧烈抖动把PID搞崩了。水泵一用一备的切换逻辑才是真考验。程序里搞了个状态矩阵用字节移位实现故障记忆Network1 | I0.0 M10.0 |----| |----( ) | M10.0 T37 |----| |----(TON) //泵1故障计时当运行泵电流超过设定值15秒自动切到备用泵同时触发触摸屏的弹窗报警。这里有个坑是接触器互锁必须做在硬件回路里光靠程序互锁容易炸机。西门子200smart和昆仑通态锅炉换热站程序项目实例程序内有利用模拟量读取运算时间自动切换水泵一用一备故障自动切换自动时间段加热时间段设定温度电能读取及算法 modbus通讯控制变频器。时间分段控温才是甲方爸爸的最爱。昆仑通态屏上做了个仿手机闹钟的UI每个时段能单独设温度。PLC里用时钟指令配合SFC20块搬指令把屏上的时间参数存到V区MOVB 16#05, VB100 //时段数 BLKMOV VB101, VB200, 20 //搬移时段参数凌晨低谷时段自动升温到75℃白天峰时降到65℃省电费效果立竿见影。Modbus控变频器这块西门子的库指令用着还行但要注意RTU模式下的校验延时。调试时用这个代码抓过数据MOVB 16#01, VB500 //变频器地址 MOVW 16#1001, VW502 //写频率指令 MOVR 35.5, VD504 //设定频率 XMT VB500, 0 //触发发送实际测试发现施耐德ATV312变频器对03功能码响应更快改完通讯周期后终于不丢包了。电能计量用的DL/T645规约转Modbus网关在PLC里做积分运算时要注意32位浮点处理不然累计电度会溢出。这套系统跑了大半年热力公司最近还要求加远程监控。果然做自动化项目最稳定的永远是甲方的新需求...代码编辑器突然报错溜了溜了