搞懂SMART 200与宇电温控器的Modbus实战
西门子SMART 200 modbus rtu通讯宇电温控器例程 所需硬件:西门子smart 200 plc ,mcgs触摸屏(需带网口),宇电516温控器。 功能实现 :运行/停止的控制及指示;温度设定,上下限报警设定 ; 测量温度,设定温度,上下限报警等值的读取。 更多功能可以参考宇电通讯手册添加修改。 注意事项:发送内容包括plc和触摸屏程序(plc程序有注释),西门子smart 200 通讯教程。
最近在车间折腾西门子SMART 200和宇电温控器的通讯,实测可行方案分享给大家。这组合特别适合中小型温度控制场景,手头有SMART200 PLC、MCGS触摸屏(必须带网口)和宇电516温控器的可以直接抄作业。
硬件接线别马虎
先解决物理连接问题。SMART200的RS485口(DB9接口)接温控器的A/B端子,注意别接反了。推荐用带屏蔽的双绞线,现场干扰大的时候在PLC端加个120Ω终端电阻。宇电温控器的通讯参数出厂默认是9600波特率、8数据位、无校验,记得在PLC程序里参数要对应。
// PLC端口初始化 MOV_B 16#09, SMB30 // 设置9600波特率、8数据位、无校验PLC程序核心逻辑
先整两个定时器做轮询,一个读测量温度,一个读设定参数。别把所有数据一股脑往总线上怼,容易通讯超时。
// 主程序片段 Network1: LD SM0.0 CALL MBUS_CTRL:SBR1, 1, 1000, &VB1000, M0.0, MB1 Network2: LDN T37 TON T37, 50 // 200ms间隔读PV值 Network3: LD T37 CALL MBUS_MSG:SBR2, 1, 3, 40001, 6, &VB200, M2.0, MB2这段代码亮点在于分时处理:用T37定时器控制读取间隔,40001对应宇电的PV测量值首地址(注意宇电地址要转Modbus地址,具体规则看手册)。VB200开头的6个字节正好存PV、SV等参数。
地址转换坑点提醒
宇电的通讯地址手册看着头大,实测这个转换公式靠谱:
西门子SMART 200 modbus rtu通讯宇电温控器例程 所需硬件:西门子smart 200 plc ,mcgs触摸屏(需带网口),宇电516温控器。 功能实现 :运行/停止的控制及指示;温度设定,上下限报警设定 ; 测量温度,设定温度,上下限报警等值的读取。 更多功能可以参考宇电通讯手册添加修改。 注意事项:发送内容包括plc和触摸屏程序(plc程序有注释),西门子smart 200 通讯教程。
温控器显示地址(比如PV=1)→ Modbus地址 = 十六进制地址+1 → 转十进制。举个栗子:
- 测量温度PV(地址1)→ 40001
- 设定温度SV(地址2)→ 40002
- 上限报警(地址21)→ 40022
触摸屏配置妙招
MCGS这边走网口连接PLC,新建三个关键页面:
- 运行监控页:绑定M0.0做运行状态,VW202对应实时温度
- 参数设定页:VW300映射设定温度,写入时自动触发PLC的写指令
- 报警显示区:VB500开始的字节处理报警状态
!触摸屏界面示意图
// 写参数示例 LD M10.1 // 触摸屏写入触发 CALL MBUS_MSG:SBR3, 1, 6, 40002, 1, &VB300, M3.0, MB3注意写操作要用功能码06,别和读操作的03混用。写完后加个1秒延时,防止手抖连击。
避坑指南
- 温控器通讯灯不闪?检查接线顺序,A对A、B对B别接反
- 数据时有时无:把PLC的MBUS_CTRL的Timeout设到150ms以上
- 数值显示乱跳:在MCGS里加个一阶滤波,采样周期设300ms
- 突然通讯中断:检查温控器接地,别和动力线走同一线槽
完整工程文件已打包(含带注释的PLC程序和MCGS工程),关注后回复【宇电通讯】获取。下期准备讲讲怎么用这个架构做PID温度控制,想看的朋友评论区敲个1。
