1. 项目背景与核心需求
在工业自动化与能源管理领域,Modbus RTU协议因其简单可靠的特点,成为设备间通讯的黄金标准。最近接手的一个厂区电力监控系统改造项目,需要实现西门子Smart200 PLC与42台安科瑞多功能电度表的数据采集。这个看似常规的任务,在实际落地时却遇到了几个关键挑战:
- 设备数量与布线复杂度:42台电表分布在厂区6个配电间,最远距离超过800米,RS485总线需要分段中继
- 数据实时性要求:需同时采集电压、电流、功率、电能等20余个参数,轮询周期需控制在10秒以内
- 协议兼容性问题:不同批次安科瑞电表存在寄存器地址差异,部分老型号支持Modbus RTU但不完全兼容标准协议
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件架构设计要点
2.1 通讯物理层搭建
RS485网络采用"手拉手"总线拓扑,关键配置参数:
plaintext复制波特率:9600bps(长距离传输的稳定性优先)
数据位:8位
停止位:1位
校验位:Even(安科瑞设备默认设置)
重要提示:实际施工中发现,当总线长度超过400米时,必须在中间位置增加RS485中继器。我们选用带隔离保护的型号,有效解决了信号衰减问题。
2.2 设备地址规划策略
为避免地址冲突,采用分层编码方案:
- 1-20号:A配电间电表(地址1-20)
- 21-35号:B配电间电表(地址21-35)
- 36-42号:C配电间电表(地址36-42)
地址设置通过电表面板按钮完成,需注意:
- 先断开通讯线再修改地址
- 修改后需重启电表生效
- 用调试软件验证地址是否设置成功
3. PLC程序开发详解
3.1 西门子Smart200配置步骤
-
硬件组态:
- 添加CM01通讯模块
- 设置端口参数与总线设备一致
- 启用RS485终端电阻(仅末端设备)
-
指令块使用技巧:
stl复制// 主站轮询程序示例
NETWORK 1
LD SM0.0
MOV_B 1, VB100 // 起始站号
MOV_B 42, VB101 // 结束站号
NETWORK 2
LD SM0.5 // 秒脉冲
EU
CALL SBR1 // 执行轮询子程序
