设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
S7-200SMART Modbus RTU通讯指令介绍
返回列表
发新帖
[西门子]
S7-200SMART Modbus RTU通讯指令介绍
[复制链接]
189
|
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
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
博图TIA
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』