如何快速生成Modbus指令?教程来啦

描述

适用型号

该笔记适用于标准Modbus协议产品(MA01系列、ME31系列、M31系列、ME15-AXAX8080)。
 

 

功能简介

功能说明:Modbus指令快速生成教程旨在帮助用户快速生成Modbus通信指令,实现设备之间的数据传输。通过确定通信方式、选择功能码、确定起始地址和数据长度等步骤,用户可以轻松生成符合Modbus协议规范的指令。常用的功能码包括读取保持寄存器、写单个保持寄存器等,用于读取或写入设备的数据。通过本教程,用户可以快速了解如何生成Modbus指令,并在工业控制等领域中应用,实现设备间的高效通信与数据交换。

 

相关知识:

Modbus是一种主/从通讯模式,主站在Modbus网络上没有地址,从站的地址范围为0-247,其中0为广播地址,从站的实际地址范围为1-247。

Modbus寄存器种类说明:

线圈状态:输出端口,可设定端口的输出状态,也可以读取该位的输出状态;

离散输入状态:输入端口,通过外部设定改变输入状态,可读但不可写;

保持寄存器:控制器运行时被设定的某些参数,可读可写;

输入寄存器:控制器运行时从外部设备获得的某些参数,可读不可写。

Modbus功能码:

通信

 

功能应用

(1)软件清单

软件:UartAssist

(2)Modbus指令调试界面介绍

首先双击打开此软件,如图所示:

通信

 

点击左上角图标,然后会出现新的菜单栏,选择点击工具,然后会继续出现新的菜单栏,选择点击Modbus调试器,在右侧就会出现一个Modbus指令生成框,如图所示:

通信

 

(3)从页面中我们可以发现:

第一栏为协议类型选择,其中协议包含Modbus-RTU、Modbus-ASCII、Modbus-TCP,我们常用的协议为Modbus-RTU、Modbus-TCP,Modbus-RTU通常对应串口通讯使用,Modbus-TCP通常对应网口通讯使用;

第二栏为从设备ID,对应设备的Modbus地址;

第三栏为功能号选择,其中包含01功能码读线圈,02功能码读离散量输入,03功能码读保持寄存器,04功能码读输入寄存器,05功能码写单个线圈,06功能码写单个寄存器,15功能码写多个线圈,16功能码写多个寄存器;

第四栏是寄存器地址,相应寄存器地址可在手册寄存器章节查询;

第五栏根据不同的功能号,会出现不同的描述,具体可见指令生成章节。

注:输入地址和数值可以为十进制数或0x打头的十六进制形式。

通信

 

指令生成

示例将以M31系列分布式IO为例,Modbus地址设置为1,协议类型选择Modbus RTU进行讲解。

 

(1)DI(1区)相关指令生成示例

读取DI状态指令:查询手册可知,DI的寄存器起始地址为0x0000(10001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:02读离散量输入

寄存器地址:0x0000(为寄存器起始地址,0就代表从第一路开始读取)

读数据长度:1(如果需要同时读取4路,将此值改为4即可)

填写相关数据后,点击更新。

 

(2)DO(0区)相关指令生成示例

读取DO状态指令:查询手册可知,DO的寄存器起始地址为0x0000(00001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:01读线圈

寄存器地址:0x0000(为寄存器起始地址)

读数据长度:1(如果需要同时读取4路,将此值改为4即可)

填写相关数据后,点击更新。

 

控制单个DO状态指令:查询手册可知,DO的寄存器起始地址为0x0000(00001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:05写单个线圈

寄存器地址:0x0000(为寄存器起始地址)

线圈状态值:On为打开,off为关闭

填写相关数据后,点击更新。

 

控制多个DO状态指令:查询手册可知,DO的寄存器起始地址为0x0000(00001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:15写多个线圈

寄存器地址:0x0000(为寄存器起始地址)

线圈状态值:1 0 1 0(1为打开,0为关闭,1 0 1 0表示控制1,3路打开,2,4路关闭;多个线圈的状态值用空格符分隔)

填写相关数据后,点击更新。

 

(3)AI(3区)相关指令生成示例

读取AI数据指令:查询手册可知,AI的工程量的寄存器起始地址为0x0000(30001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:04读输入寄存器

寄存器地址:0x0000(为寄存器起始地址)

读数据长度:1(如果需要同时读取4路,将此值改为4;如果需要同时读取4路浮点类型,将此值改为8)

填写相关数据后,点击更新。

 

(4)AO(4区)相关指令生成示例

读取AO数据指令:查询手册可知,AO的寄存器起始地址为0x0000(40001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:03读保持寄存器

寄存器地址:0x0000(为寄存器起始地址)

读数据长度:1(如果需要同时读取4路,将此值改为4;如果需要同时读取4路浮点类型,将此值改为8)

填写相关数据后,点击更新。

 

控制单个AO数据指令:查询手册可知,AO的寄存器起始地址为0x0000(40001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:06写单个寄存器

寄存器地址:0x0000(为寄存器起始地址)

寄存器数据:1(此值为修改AO的数据)

填写相关数据后,点击更新。

 

控制多个AO数据指令:查询手册可知,DO的寄存器起始地址为0x0000(00001),由此如图所示:

通信

从设备ID号(Modbus地址):1(具体以现场使用而定)
 

功能号选择:16写多个寄存器

寄存器地址:0x0000(为寄存器起始地址)

寄存器数据:100 200 300 400(100 200 300 400表示修改AO的数据第一路为100,第二路200,第三路300,第四路400;多个寄存器数据用空格符分隔)

填写相关数据后,点击更新。

 

产品推荐

通信

亿佰特无线通信设备产品涵盖无线数传电台、工业路由器、串口服务器、遥控开关、CAN总线、无线网关、远程IO模块、工业信号传输等。设备广泛应用于数据远程采集控制、水电气抄表、PLC无线通信、智慧农业等场景。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分