news 2026/5/3 0:54:08

西门子S7-1200PLC-Modbus 串行通信应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
西门子S7-1200PLC-Modbus 串行通信应用

西门子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-1

2. PLC主站编程步骤

S7-1200作为主站(Master)主动发起读写请求,这是最常见的应用场景。

第一步:端口初始化 (MB_COMM_LOAD)
只需执行一次。建议放在OB100(启动组织块)中,仅在CPU上电时运行一次。

  • PORT:选硬件标识符(如269, 需在设备组态中查看)

  • BAUD:波特率(必须与从站一致,如9600

  • PARITY:校验方式(必须与从站一致,如0= 无校验)

  • MB_DB:指定后续MB_MASTER指令的背景DB块

第二步:数据读写 (MB_MASTER)
触发执行。通常在OB1(主循环组织块)中通过定时器或上一条指令完成位来轮询触发。

  • REQ:上升沿触发(建议用0.1~1秒的时钟脉冲)

  • MB_ADDR:从站地址(如1, 需与设备设置一致)

  • MODE0=读,1=写

  • DATA_ADDR:Modbus地址(注意地址映射规则,参考下方说明)

  • DATA_LEN:数据长度(读写字数)

  • DATA_PTR:数据指针(指向PLC的DB或M地址)

特别注意:DATA_ADDR地址映射
现场设备说明书通常给出地址如40001(保持寄存器)或30001(输入寄存器)。

  • 访问40001DATA_ADDR40001MODE01

  • 有些说明书只给偏移量如06(十六进制),对应十进制6,此时Modbus地址是4000740007(取决于协议规范)

3. 轮询多从站/多数据的技巧

一台PLC需读取多个变频器数据时,必须采用轮询机制

  • 无法同时触发所有MB_MASTER指令

  • 正确做法:第一条指令的Done完成位,串联触发第二条指令的REQ

  • 如此循环往复,可读取最多31个从站


方案二:Modbus TCP (以太网通信)

直接利用CPU本体网口,适合与上位机、触摸屏或串口服务器通信,编程比RTU简单很多。

  • 硬件准备:仅需标准网线,无需额外通信模块

  • IP配置:确保PLC与上位机/服务器在同一网段

编程步骤

S7-1200作为服务器(Server)等待客户端连接,常用于将PLC数据开放给上位机系统。

  • 调用MB_SERVER指令:背景数据块中需配置端口号(通常为502,Modbus TCP默认端口),并关联一个存放数据的寄存器区(如含100个Word的Array)

  • 下载与测试:下载程序后,用PC软件(如Modbus Poll)设置同网段IP,端口502,即可读取PLC内数据


常见问题与排查建议

  1. 读取数据为0或错误码8382等

    • 检查硬件/接线:A、B线是否接反,屏蔽层是否接地(尤其电机变频器附近干扰大时)

    • 校验参数波特率、校验位三个关键参数,两边必须完全一致,差一位都无法通信

    • 地址偏移:有些设备说明书地址为0,对应Modbus地址40001,需注意±1的偏移

  2. ERROR位有时为1

    • 查看STATUS输出值。常见如0x80C8表示从站无响应(查接线和地址);0x80D6表示数据地址越界(查DATA_ADDR)

  3. CM1241模块指示灯不亮或红灯

    • 表明模块未组态或通信中断,检查设备视图是否插入了该模块,且硬件标识符与程序一致

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 0:45:38

图神经网络在欺诈检测中的应用:从原理到实践

1. 项目概述:图欺诈检测研究的知识图谱在数据驱动的时代,欺诈行为如同潜藏在复杂网络中的幽灵,从金融交易、社交网络到电商平台,无处不在。传统的基于规则或简单统计模型的检测方法,在面对日益组织化、隐蔽化的欺诈团伙…

作者头像 李华
网站建设 2026/5/3 0:44:32

扩散模型噪声补偿:提升图像生成质量的实践方案

1. 项目背景与核心问题在图像生成领域,扩散模型近年来展现出惊人的创造力。但当我们把这类模型部署到真实场景时,经常会遇到一个棘手问题:输入数据中难以避免的高斯噪声会导致生成质量显著下降。我在最近的一个医疗影像生成项目中就深刻体会到…

作者头像 李华