设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
控制专题
›
『数控/电机控制/运动控制/工业总线』
›
Modbus-RTU常用功能码03,06,16介绍
返回列表
发新帖
Modbus-RTU常用功能码03,06,16介绍
[复制链接]
58633
|
1
|
2024-1-31 16:12:16
|
显示全部楼层
|
阅读模式
组态王软件是工业自动化行业应用的界面软件,主要面向现场应用适合现场工程人员、FAE等编程,内置常用的通讯模块、常用的界面组件等。通过RS232接口、RS485接口和以太网口可以和其他设备完成数据通信。Modbus协议主要有两个版本RTU和TCP/IP,RTU可以通过RS485接口实现,TCP/IP可以通过以太网口实现,这两种协议都是工控行业、自动化行业常用的。下面以RS485接口、Modbu-RTU来介绍数据通信的过程。
Modub-RTU协议的具体内容
该协议是主从方式的通讯方式,有一个主机可以挂接多个从机,每个从机具有唯一的地址用来辨识身份,并通过不通的功能码来实现所要读取/写入的内容。作为简单的应用,主要涉及到0x03读保持寄存器功能码、0x06预置单个寄存器功能码、0x10预置多个寄存器功能码等。读保持寄存器功能码0x03当主机发送03功能码时,表明主要想要获取从机某个寄存器里的内容,一条完成的命令包括主机发送的数据和从机回复的数据,分别举例如下:主机发送: 01 03 00 32 00 02 xx xx主机回复: 01 03 04 a5 d4 1812 xx xx数据和字节含义如下图所示。
主机所发送的命令表示,想要读取1号从机从0x32开始的2个寄存器的内容,而从机回复0x32和0x33寄存器内的数据,总共4个字节。最后两个字节是校验码。预置单个寄存器功能码0x0606功能码是主机用来向从机的某个寄存器写数据的,一次智能操作一个寄存器。主机所发送的数据举例如下:主机发送:01 06 00 32 12 32 xx xx主机发送的数据和字节含义如下图所示。
该功能码,从机所回复的数据和主机下发的数据是一致的。该条指令的含义为:主机想给1号从机的0x32寄存器中写入0x1232数据,最后所跟的是校验码。预置多个寄存器功能码0x1016功能码也是写寄存器但是与06所不同的是,该功能码可以连续写多个寄存器,主机下发的数据结构为:地址、功能码、寄存器起始地址、寄存器个数、要写入数据的字节数、数据、校验码等。从机回复的数据格式为:地址、功能码、寄存器起始地址、寄存器个数、校验码等。数据格式举例和字节含义如下图所示。
所表示的含义是,从0x0034开始连续写入四个字节的数据到2个寄存器中,最后两个字节是校验码。以上三个功能码都是非常常用的,除此之外,还有很多个功能码,每个功能码都代表不通的含义,以上数据都是需要编程来实现的。精彩推荐:主流协议族TCP/IP协议,对此你了解多少
什么是TCP/IP协议?
上位机软件,如何通过Modbus协议和设备通信?
RS485是硬件接口,那么他是怎么实现数据通讯的呢?Modbus-RTU协议解析
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
我是向磊
|
2024-2-1 13:39:05
|
显示全部楼层
谢谢 学习了
回复
支持
反对
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
admin
回复楼主
返回列表
『数控/电机控制/运动控制/工业总线』
『机器视觉/AI/IoT/机器人论坛』
『高级语言/组态软件/触摸屏』
『操作系统xp/xin7/win10/linux』