天玺体育最火网上大全

西门子 PLC 与 Modbus 485 通讯:数据传输接收全攻略

出处:网络整理 发布于:2025-08-20 10:45:25

在工业自动化领域,PLC(可编程逻辑控制器)的应用十分广泛,而西门子 PLC 更是其中的佼佼者。西门子在 EP 7 - Micro/WIN SMART 中正式推出了 Modbus RTU 主站协议库(西门子标准库指令),这使得 PLC 能够通过 modbus 方式控制其他器件,实现对 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器的读写操作。下面将详细介绍西门子 PLC 使用 Modbus 485 通讯传输接收数据的具体步骤。

准备工作


首先要准备好相关设备和工具,包括、S7 - 200smart st30 以及 485 通讯线。这里将以 S7 - 200smart 作为主站,电脑调试助手作为从站进行操作演示。关于接线部分,本文暂不详细阐述。

写梯形图

1. MBus_CTRL


调用 Modbus RTU 主站初始化和控制子程序,使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制。各参数意义如下:


  • EN(使能):必须保证每一扫描周期都被使能,通常使用 SM0.0。
  • Mode(模式):为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议。
  • Baud(波特率):支持的通讯波特率有 1200、2400、4800、9600、19200、38400、57600、115200。
  • Parity(校验):有多种校验方式可供选择,0 表示无校验(通常默认选择),1 表示奇校验,2 表示偶校验。
  • Port(端口号):0 代表 集成的 RS 485 通讯口,1 代表可选 CM 01 信号板。
  • Timeout(超时):主站等待从站响应的时间,以毫秒为单位,典型设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。需要注意的是,这个值必须设置足够大以保证从站有时间响应。
  • Done(完成位):初始化完成后,此位会自动置 1。
  • Error:表示有错误。

2. MBus_MSG


调用 Modbus RTU 主站读写子程序 MBUS_MSG,发送一个 Modbus 请求。各参数意义如下:


  • EN(使能):同一时刻只能有一个读写功能(即 MBUS_MSG)使能。建议每一个读写功能都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有读写指令循环进行。
  • First(读写请求位):每一个新的读写请求必须使用脉冲触发。
  • Slave(从站地址):可选择的范围是 1 - 247。
  • RW(读写请求):0 表示读,1 表示写。
  • Addr(读写从站的数据地址):可以选择读写的数据类型,如 00001 至 0xxxx 表示数字量输出,10001 至 1xxxx 表示数字量输入,30001 至 3xxxx 表示模拟量输入,40001 至 4xxxx 表示保持寄存器。
  • Count(数据个数):通讯的数据个数(位或字的个数)。需要注意的是,Modbus 主站可读 / 写的数据量为 120 个字(是指每一个 MBUS_MSG 指令)。
  • DataPtr(数据指针):如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。
  • Done(完成位):读写功能完成位。
  • Error(错误代码):只有在 Done 位为 1 时,错误代码才有效,不同的错误代码代表不同的错误情况。

使用难点与解答


通常支持 485 通讯的器件给的使用说明书,其指令是 16 进制的字符串代码,很难与当前 PLC 库指令对应起来,尤其是命令地址。以 IAI 马达给的使用说明书为例,该示例是 PLC 通过 modbus 去读取马达的位置,读取控制器地址 9000 这个寄存器里面的数据。RW 填 0,表示去读取数据。Plc 库里面需要填的 Addr(e)是十进制,需要将 16 进制的 9000 转成十进制,通过得知:16#9000 = 36864,但实际使用读取寄存器地址的时候需要 + 1,即 36865。由于这里是读取寄存器,所以 Addr = 436865。count 是寄存器数量,按照示例,这里有 2 个寄存器,所以 count 填 2。


通过串口调试助手来测试,接通 M15.0 发送信号,串口调试助手收到了 PLC 发送的信号,且收到的数据与 IAI 操作手册示例一致,测试成功。

注意事项


  1. 只有在操作被控方寄存器的时候(无论读取还是写入),转换的成十进制的地址后位需要加个 4。
  2. 注意发送命令和读取命令的字符长度,需要正确填写。
  3. 需要注意波特率要填写正确,与被控方保持一致,否则发出去的信号与收到的信号不相符。
  4. 发出去的内容填写到 DataPtr 中。

通过 MB_MSG,向 1 号从站读取从 36865(Addr)这个地址开始 2 位(Count)的数据,并把读取到的数据写入 VB2000;如果是写入,则是将 PLC 的 VB2000 开始的 2 位寄存器内的数据,写入到 1 号从站的 36865 寄存器中。






总之,掌握西门子 PLC 使用 Modbus 485 通讯传输接收数据的方法,对于工业自动化系统的设计和维护具有重要意义。在实际应用中,要严格按照步骤操作,并注意相关的注意事项,以确保通讯的稳定和数据的准确传输。

关键词:西门子

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//lahealthsma.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

西门子PLC通电无反应维修全过程
广告
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
 一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
 9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!