1. 工业自动化中的Modbus RTU通讯实战
在工厂配电监控系统中,我们经常需要采集多块电表的实时数据。最近我完成了一个项目,使用西门子Smart200 PLC通过Modbus RTU协议同时采集42块安科瑞多功能电度表的数据。这个方案相比传统的单表采集方式,可以节省大量硬件成本和布线工作量。下面我就详细分享这个项目的完整实现过程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 硬件选型与拓扑结构
我们选用西门子Smart200 PLC作为主站,安科瑞DTSD1352系列多功能电表作为从站。这种电表支持标准的Modbus RTU协议,可以直接读取电压、电流、功率等50多个电气参数。
系统采用典型的RS485总线结构:
- 1台Smart200 PLC(带RS485接口)
- 42台安科瑞电表
- 1条屏蔽双绞线(RVSP 2×1.0mm²)
- 2个120Ω终端电阻
所有设备通过手拉手方式连接,最远距离控制在800米以内。这种结构布线简单,抗干扰能力强,特别适合工厂车间的长距离通讯。
2.2 通讯参数配置
主站和所有从站必须使用相同的通讯参数:
- 波特率:9600bps(实测在42个节点下稳定可靠)
- 数据位:8位
- 停止位:1位
- 校验位:无校验
- 从站地址:1-42(每个电表需单独设置)
注意:安科瑞电表的地址需要通过面板按钮设置,修改后需断电重启生效。建议在安装前就规划好地址分配方案。
3. 硬件连接细节
3.1 RS485接线规范
正确的接线是通讯稳定的基础。我们采用以下接线方式:
- 使用双色双绞线,红色接所有设备的A+端子,黑色接B-端子
- 在总线两端的设备上并联120Ω终端电阻
- 屏蔽层单端接地(通常在PLC端接地)
常见的接线错误包括:
- A、B线接反
- 终端电阻漏接或多接
- 屏蔽层两端都接地形成地环路
3.2 电源与隔离
为提高抗干扰能力,建议:
- 为每台电表单独供电,避免共模干扰
- 在PLC的RS485端口加装光电隔离器
- 通讯线与动力线保持至少30cm距离,交叉时垂直走线
我们项目中使用了一款国产的RS485隔离器,实测可以有效抑制变频器带来的干扰。
4. PLC程序设计
4.1 变量定义与初始化
在Smart200
