广告招募

当前位置:全球装备网 > 技术中心 > 所有分类

S7-200 SMART Modbus RTU主站编程

2025年02月03日 08:42:08      来源:云南昌晖仪表制造有限公司 >> 进入该公司展台      阅读量:72

分享:

SIMATIC S7‑200 SMART

1、Modbus通信概述

作为一个标准的工业协议,其的串行通信部分仅规定了在串行线路的基本数据传输格式,在OSI七层协议模型中只到1层和2层。Modbus具有两种串行传输模式,ASCII和RTU。它们定义了数据如何打包、解码的不同方式。支持Modbus协议的设备一般都支持RTU格式。

Modbus是一种单主站的主/从通信模式。Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,从站的地址范围为0-247,其中0为广播地址。


Modbus通信标准协议可以通过各种传输方式传播,如RS232C、RS485、光纤、无线电等。
详细的协议和规范,请访问Modbus组织的网站:

1.1 Modbus主站寻址

Modbus数据区地址为五到六位数,包含了数据类型和地址值。

不同的Modbus数据区地址通过不同的功能码来读取或者写入,Modbus数据区地址定义如下:

◆00001至09999是离散量输出(线圈)
◆10001至19999是离散量输入(触点)
◆30001至39999是输入寄存器(通常是模拟量输入)
◆40001至49999和400001至465535是保持寄存器
所有Modbus数据区地址均从xxxx1(或者xxxxx1)开始,不同的设备支持不同的数据类型和地址范围。

1.2 Modbus主站读取和写入功能

Modbus主站指令使用Modbus数据区地址读取或写入Modbus数据,相应的从站设备必须要支持对应的功能码,如表1所示。

表1  Modbus数据区地址对应Modbus从站需要支持的功能码

Modbus数据区地址对应Modbus从站需要支持的功能码

S7-200 SMART CPU通过串行端口进行Modbus RTU通信,借助STEP 7‑Micro/WIN SMART软件中的库指令,简化了与Modbus设备的通信。


2、Modbus RTU库

Modbus RTU库
图1 西门子标准指令库(STEP 7-Micro/WIN SMART)


STEP 7-Micro/WIN SMART支持主站和从站设备通过RS485(集成端口0和可选信号板端口1)和RS232(可选信号板端口1)进行Modbus通信, S7-200 SMART最多可以配置2个Modbus RTU主站。软件本身集成了指令库,如图1所示。


3、Modbus RTU主站功能编程

调用Modbus RTU主站初始化和控制子程序。

调用主站初始化MBUS_CTRL指令
图2  调用主站初始化MBUS_CTRL指令


①使用SM0.0调用MBUS_CTRL完成主站的初始化,并启动其功能控制:


表2 MBUS_CTRL指令参数意义

MBUS_CTRL指令参数意义

②调用Modbus RTU主站读写子程序MBUS_MSG,发送一个Modbus请求:

调用主站读写子程序MBUS_MSG指令
图3  调用主站读写子程序MBUS_MSG指令


表3 MBUS_MSG指令参数意义

MBUS_MSG指令参数意义

③库存储器分配

Modbus Master指令库需要一个286个字节的全局V存储区。
调用STEP 7-Micro/WIN SMART指令库需要分配库指令数据区。该数据区是相应库的子程序和中断程序所要用到的变量存储空间。
如果在编程时不分配库指令数据区,编译时会产生许多相同的错误。

操作步骤:

a、在指令树的Project(项目)中,以鼠标右键单击Program Block(程序块),在弹出的快捷菜单中选择Library Memory(库存储器…)。如图4所示:

“库存储器”按钮
图4 “库存储器”按钮


b、在弹出的选项卡中设置库指令数据区,如图5所示

库存储器地址分配
图5 库存储器地址分配


4、注意事项

①S7 200 SMART CPU一共支持两个Modbus RTU主站。如果您在项目中使用两个主站,则要确保MBUS_CTRL/MBUS_MSG和MB_CTRL2/ MBUS_MSG2成对使用,并采用不同的端口号做区分,如果只有一个主站则使用任意一对指令均可以。

②S7-200 SMART CPU支持的Modbus消息为每条最多240个字节(1920位或120个寄存器)的数据。


③通常Modbus协议的保持寄存器范围在40001到49999之间,这个范围对于多数应用来说已经足够了,但有些Modbus从站保持寄存器区的地址会超出该范围,此时主站协议库也支持400001到465536的地址范围,如果Modbus从站地址在该范围内,只需在调用MBUS_MSG / MBUS_MSG2时给Addr参数赋相应的值即可,如416768。


④库存储器分配,可以自定义起始地址,或者使用 “建议地址” 设置数据区,但要注意应当确保该地址不与其他任何已使用的数据区重叠、冲突,这些数据区既包括一般寻址,还应该考虑间接寻址访问的地址。


⑤Modbus数据区地址和S7-200 SMART存储区地址的映射举例。

Modbus数据区地址和S7-200 SMART存储区地址的映射举例

版权与免责声明:
1.凡本网注明"来源:全球装备网"的所有作品,版权均属于全球装备网,转载请必须注明全球装备网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。