西门子S7-1200 PLC支持两种主流的Modbus通信基于RS485串口的Modbus RTU和基于以太网的Modbus TCP。前者适合现场短距离、抗干扰要求高的设备连接后者便于集成到工厂以太网络实现远程监控。以下分别介绍两种方式的核心配置步骤你可以根据实际设备和网络选型参考。方案一Modbus RTU (RS485串行通信)这是S7-1200与变频器、仪表、伺服等现场设备最常用的连接方式通常需要额外硬件模块。通信的两条核心指令均可在TIA Portal的“指令 通信 通信处理器”中找到。硬件准备CPU本体不带RS485接口需在左侧加装CM1241 (RS485)通信模块或在CPU正面安装CB1241通信板物理连接采用3线制连接A B 地线屏蔽层建议在首尾端接终端电阻1. 从站参数配置以伺服/仪表为例通信是双向的PLC发起请求设备需响应。在调试PLC程序前务必使用设备配套软件如伺服厂商的调试软件确认以下从站参数与PLC端完全一致从站地址唯一不重复如设为1波特率常用9600或19200如设为9600数据格式常用8数据位、无校验、1停止位8-N-12. PLC主站编程步骤S7-1200作为主站Master主动发起读写请求这是最常见的应用场景。第一步端口初始化 (MB_COMM_LOAD)只需执行一次。建议放在OB100启动组织块中仅在CPU上电时运行一次。PORT选硬件标识符如269 需在设备组态中查看BAUD波特率必须与从站一致如9600PARITY校验方式必须与从站一致如0 无校验MB_DB指定后续MB_MASTER指令的背景DB块第二步数据读写 (MB_MASTER)触发执行。通常在OB1主循环组织块中通过定时器或上一条指令完成位来轮询触发。REQ上升沿触发建议用0.1~1秒的时钟脉冲MB_ADDR从站地址如1 需与设备设置一致MODE0读1写DATA_ADDRModbus地址注意地址映射规则参考下方说明DATA_LEN数据长度读写字数DATA_PTR数据指针指向PLC的DB或M地址特别注意DATA_ADDR地址映射现场设备说明书通常给出地址如40001保持寄存器或30001输入寄存器。访问40001DATA_ADDR填40001MODE选0或1有些说明书只给偏移量如06十六进制对应十进制6此时Modbus地址是40007或40007取决于协议规范3. 轮询多从站/多数据的技巧一台PLC需读取多个变频器数据时必须采用轮询机制无法同时触发所有MB_MASTER指令正确做法第一条指令的Done完成位串联触发第二条指令的REQ如此循环往复可读取最多31个从站方案二Modbus TCP (以太网通信)直接利用CPU本体网口适合与上位机、触摸屏或串口服务器通信编程比RTU简单很多。硬件准备仅需标准网线无需额外通信模块IP配置确保PLC与上位机/服务器在同一网段编程步骤S7-1200作为服务器Server等待客户端连接常用于将PLC数据开放给上位机系统。调用MB_SERVER指令背景数据块中需配置端口号通常为502Modbus TCP默认端口并关联一个存放数据的寄存器区如含100个Word的Array下载与测试下载程序后用PC软件如Modbus Poll设置同网段IP端口502即可读取PLC内数据常见问题与排查建议读取数据为0或错误码8382等检查硬件/接线A、B线是否接反屏蔽层是否接地尤其电机变频器附近干扰大时校验参数波特率、校验位三个关键参数两边必须完全一致差一位都无法通信地址偏移有些设备说明书地址为0对应Modbus地址40001需注意±1的偏移ERROR位有时为1查看STATUS输出值。常见如0x80C8表示从站无响应查接线和地址0x80D6表示数据地址越界查DATA_ADDRCM1241模块指示灯不亮或红灯表明模块未组态或通信中断检查设备视图是否插入了该模块且硬件标识符与程序一致