西门子S7-200SMART_PLC基于RS485通讯恒压供水一拖二程序样例,采样PLC+sm...
西门子S7-200SMART_PLC基于RS485通讯恒压供水一拖二程序样例采样PLCsmart700触摸屏与ABB变频器MdbusRTU_rs485通讯执行变频器PID实现恒压供水,程序为实际项目案例程序带有注释说明恒压供水动作说明ABB变频器参数设置说明施工用电路图纸。刚拆完一个恒压供水项目用S7-200 SMART带两台水泵切换运行。这活儿核心在RS485通讯这块ABB的ACS550变频器走Modbus RTU协议PLC和触摸屏都得跟它唠明白。现场实测通讯成功率得控制在99%以上不然水压一抖业主就得炸锅。西门子S7-200SMART_PLC基于RS485通讯恒压供水一拖二程序样例采样PLCsmart700触摸屏与ABB变频器MdbusRTU_rs485通讯执行变频器PID实现恒压供水,程序为实际项目案例程序带有注释说明恒压供水动作说明ABB变频器参数设置说明施工用电路图纸。硬件组合挺利索PLCSR30自带485口省了EM277模块触摸屏Smart 700 IE V3配红色按钮界面变频器ABB ACS550 7.5kW两台压力变送器4-20mA量程0-1.6MPa先看PLC的Modbus初始化程序//主站初始化 LD SM0.1 MOVB 9, SMB30 //9600波特率/无校验 MOVB 4, MBUS_CTRLMode //启用Modbus主站 MOVB 3, MBUS_CTRLBaud //对应SMB30设置 MOVB 0, MBUS_CTRLParity重点在定时轮询策略——两秒读一次变频器状态避免总线堵塞LDN T37 TON T37, 200 LD T37 MOVW 16#0103, VB100 //读保持寄存器指令 MOVD VB100, P#DB1.DBX0.0 //指令存储区 MBUS_MSG VB200:16, 1, 40001, 2 //读40001-40002寄存器触摸屏组态有个坑浮点数处理得用IEEE754转换。比如显示实际压力值时//HMI变量处理脚本 float pressure (GetTagWord(VW202) 16) | GetTagWord(VW204); SetTagFloat(Pressure_Actual, pressure/100.0);变频器参数必须按顺序设置否则PID自整定会抽风99021应用宏PID控制10011外部1启停11020DI1默认11031DI2正转400120%PID给定值对应0.3MPa水泵切换逻辑最考验时序控制。这段代码处理一拖二切换LDW VW500, 1 //1#泵运行标志 AW VW502, 0 //2#泵停止 TON T38, 300 //延时3秒启动备泵 LD T38 S Q0.2, 1 //启动2#泵接触器线路施工要死磕三点485总线必须手拉手接线AB线别反变频器EMC滤波器接地铜排单独走线压力变送器屏蔽层在PLC侧单端接地调试时遇过灵异事件——半夜水压突然飙到1MPa。后来抓包发现是触摸屏的写入指令地址漂移加了个通讯看门狗搞定LD SM0.5 EU INCW VW800 //通讯心跳计数 LDD VD800, 600 //10分钟无响应 R M0.0, 1 //急停输出这套方案实测压力波动±0.02MPa比老式压力开关方案节能23%。关键点在于把PLC的扫描周期压缩到15ms以内避免PID响应滞后。程序里还藏了个水量预测算法根据小时用水量自动调整PID参数这个下回再唠。