[西门子] S7-200SMART Modbus RTU通讯指令介绍

[复制链接]
查看197 | 回复0 | 2024-4-23 19:20:21 | 显示全部楼层 |阅读模式
西门子在 STEP 7-Micro/WIN SMART 中正式推出 Modbus RTU 主站协议库。

西门子标准指令库
注:1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对 CPU 集成的 RS 485 通讯口 和 CM 01 信号板有效。该指令库将设置通信口工作在自由口模式下。
2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。
3. Modbus RTU 主站指令库可以同时应用于CPU 集成的 RS 485 通讯口 和 CM01 信号板,此时集成的RS 485口使用Modbus RTU Master(v2.0)中指令,CM01信号板使用Modbus RTU Master2(v2.0)中指令,如果只有一个主站则不做区分。
使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器。
Modbus RTU 主站功能编程
1. 调用 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 = CPU 集成的 RS 485 通讯口 ;1 = 可选 CM 01 信号板 。
Timeout 超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。
注意:这个值必须设置足够大以保证从站有时间响应。
Done  完成位:初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作
Error   初始化错误代码(只有在 Done 位为1时有效):
0= 无错误、1= 校验选择非法、2= 波特率选择非法、3= 超时无效
4= 模式选择非法、9= 端口无效、10= 信号板端口 1 缺失或未组态
2. 调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;

各参数意义如下:
EN 使能:同一时刻只能有一个读写功能(即 MBUS_MSG)使能
注意:建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有读写指令循环进行
First 读写请求位:每一个新的读写请求必须使用脉冲触发
Slave 从站地址:可选择的范围   1 - 247
RW 读写请求:0 = 读, 1 = 写
注意:1. 数字量输出和保持寄存器支持读和写功能、
            2. 数字量输入和模拟量输入只支持读功能
Addr 读写从站的 选择读写的数据类型
数据地址:
00001 至 0xxxx - 数字量输出
10001 至 1xxxx - 数字量输入
30001 至 3xxxx - 模拟量输入
40001 至 4xxxx - 保持寄存器
Count  数据个数:通讯的数据个数(位或字的个数)
注意:Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)
DataPtr 数据指针:
1. 如果是读指令,读回的数据放到这个数据区中
2. 如果是写指令,要写出的数据放到这个数据区中
Done 完成位:读写功能完成位
Error 错误代码:只有在 Done 位为1时,错误代码才有效 0 = 无错误
            1 = 响应校验错误等,其他错误代码请查阅说明书。
3. 在 CPU 的 V 数据区中为库指令分配存储区(Library Memory)
Modbus Master 指令库需要一个286个字节的全局 V 存储区。
调用STEP 7 - Mciro/WIN SMART Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。
如果在编程时不分配库指令数据区,编译时会产生许多相同的错误。
操作步骤:
1)在指令树的Project(项目)中,以鼠标右键单击Program Block(程序块),在弹出的快捷菜单中选择Library Memory。如图所示:

2)在弹出的选项卡中设置库指令数据区,如图所示:

指令调用示例:






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则