首页 > 其他分享 >Modbus poll和Modbus Slave使用心得

Modbus poll和Modbus Slave使用心得

时间:2023-10-07 11:33:05浏览次数:33  
标签:03 Slave 报文 数据类型 Modbus 寄存器 poll 数据

Modbus poll和Modbus Slave使用心得

====================

1.Modbus Poll使用

1.1程序主窗口

Tx = 0表示向主站发送数据帧次数,图中为0次;

Error = 0表示通讯错误次数,图中为0次;

ID = 1表示模拟的Modbus子设备的设备地址,图中地址为1;

F = 03表示所使用的Modbus功能码,图中为03功能码;

SR = 1000ms表示扫描周期。红字部分,表示当前的错误状态,“No Connection”表示未连接状态。

1.2参数设置

单击菜单【Setup】中【Read/Write Definition.. F8】进行参数设置,会弹出参数设置对话框。

Slave ID为要访问的Modbus从站(从机)的地址,对应主窗口(主画面)中的ID值,默认为1;

Function为寄存器功能码的选择,共四种,分别对应关系如下:

功能码 寄存器范围 对应紫金桥的寄存器类型
01/05 00001~09999 DO
02 10001~19999 DI
04 30001~39999 AR
03/06/10 40001~49999 HR

紫金桥软件常用为03功能码。

Address 为寄存器起始地址,默认从0开始;

Quantity为寄存器连续个数,默认为10个,对应组态软件的通道数量;

Scan Rate为读取数据周期,单位毫秒,默认为1000ms;

Rows指的是软件界面的寄存器显示多少行。

设置完成单击OK按钮,模拟窗口将显示定义的寄存器列表。

1.3显示设置

数据显示方式设置:

默认情况下,寄存器数据的显示方式为Signed方式(16进制无符号二进制),数据范围为-32768~32767。如果要以其他数值方式显示,可以通过菜单【Display】进行选择设置,如下图所示:

Long为长整数据类型,占四个字节;

Float为单精度型浮点数据类型,占四个字节,指数范围为-127~128;

Double为双精度型浮点数据类型,占八个字节,指数范围为-1023~1024;

Long Inverse、Float Inverse、Double Inverse为对应数据类型的逆向型,当确定数据类型选择正确但数据显示不正常时,可考虑为该数据类型的逆向型,选择Inverse类型显示。

报文数据显示方式设置:

通过点击菜单【Display】下的最后一个“Communication Traffic”按钮,可以显示出当前发送命令和接收的数据报文。

其中前6位为数据帧的序号,Tx为当前主站发送的数据报文,Rx为从站接收的数据报文。

发送分析:01表示从机地址;03表示modbus功能码;00 00表示寄存器起始地址;00 0A表示读取的寄存器个数(十六进制转换为十进制为10个);C5 CD为CRC校验码。

接收分析:01表示从机地址;03表示modbus功能码;14表示后面数据的字节数(十六进制转换为十进制为20字节);后面数据00 0A为一个寄存器的数据(一个寄存器占俩个字节,00为一个字节,0A也为一个字节);00 08也为一个寄存器的数据,以此类推共有10个寄存器的数据(与上面发送报文里的读取寄存器个数一致);最后BE 97也为CRC校验码。

综上,图中发送报文含义是主机使用03功能码,向地址为01的从机发起询问,询问从起始地址为0的寄存器开始的十个寄存器的数据;接收报文含义是地址为01的从机使用03功能码应答主机的询问,依次回复总计为二十个字节的十个寄存器的数据。

其中,若01 03后面为0X 80则为错误响应,说明连接错误。

1.4通讯连接

单击菜单【Connection】中【Connect.. F3】进行通讯连接,如下图 :

Serial Port表示使用的串口(COM3),根据实际情况选择串口或者TCP/IP进行连接;

Mode,表示Modbus协议模式,使用串口时分为RTU和ASCIIl两种;使用TCP/IP时自动为TCP模式;

Response Timeout,表示读取超时时间,从站在超时时间内没有返回数据,则认为通讯失败;

Delay Between Polls,每次扫描的最小间隔时间,默认为10ms;

IP Address,表示TCP/IP模式时从站IP地址。 ;

Port,表示TCP模式时从站网络端口。

根据需要对参数进行设置,默认为:串口1、波特率9600、数据位8位、无校验位、1位停止位。确认设置后点击OK按钮即可。如果连接并读取正确,此时主窗口将显示读取寄存器的相关信息。

1.5寄存器值改变

在主窗口寄存器地址上双击鼠标,弹出修改对话框:

在Value框中输入修改的值点击“Send”。范围为-32768——32767。

Slave ID为要访问的Modbus从站的地址,对应主画面中的ID值,默认为1。 ;

Address 为当前操作的寄存器的地址。图中为对寄存器40002操作;Use Function为所使用的功能码,可以选择06或16功能码进行写入。

1.6断开连接

点击【Disconnect F4】即可断开连接结束测试,此时主窗口中出现红色的“No Connection”表示未连接状态。

2.Modbus Slave使用

2.1程序主窗口

ID = 1表示模拟的Modbus子设备的设备地址,图中地址为1;

F = 03表示所使用的Modbus功能码,图中为03功能码。

此时处于“No connection”未连接状态。

2.2参数设置

点击菜单“Setup”中“Slave Definition.. F2”进行参数设置,会弹出设置框。

Slave ID为Modbus从站地址,对应主画面中的ID值,默认为1;

Function 为寄存器功能码的选择,共四种,分别对应关系如下:

紫金桥软件常用功能码为03功能码;

Address 为寄存器起始地址。默认从1开始;

quantity为寄存器连续个数。默认为10个;

Rows指的是软件界面的寄存器显示多少行。

设置OK按钮,模拟窗口将显示定义的寄存器列表。

2.3显示设置

数据显示方式设置:

默认情况下,寄存器数据的显示方式为Signed方式(16进制无符号二进制),数据范围为-32768——32767。如果要以其他数值方式显示,可以通过菜单“Display”进行选择设置,如下图所示:

Long为长整数据类型,占四个字节;

Float为单精度型浮点数据类型,占四个字节,指数范围为-127~128;

Double为双精度型浮点数据类型,占八个字节,指数范围为-1023~1024;

Long Inverse、Float Inverse、Double Inverse为对应数据类型的逆向型,当确定数据类型选择正确但数据显示不正常时,可考虑为该数据类型的逆向型,选择Inverse类型显示。

报文数据显示方式设置:

通过点击菜单【Display】下的最后一个“Communication Traffic”按钮,可以显示出当前发送命令和接收的数据报文。

其中前6位为数据帧的序号,Tx为当前主站发送的数据报文,Rx为从站接收的数据报文。

其报文发送分析及接收分析同上文1.3中的发送分析及接收分析。

2.4通讯连接

点击菜单“Connection”中“Connect.. F3”进行连接。弹出连接对话框:

Connection中的“Serial Port”表示使用的串口(COM2),根据实际情况选择不同的串口、TCP/IP或者UDP/IP进行连接;

Mode,表示Modbus协议模式,使用串口时有RTU和ASCII两种;使用TCP/IP时自动为TCP模式;

用户可根据需要对串口参数进行设置,默认为:串口1,波特率9600,数据位8位,无校验位,1位停止位。确认设置后点击“OK”按钮即可。此时主窗口中红色的“No connection”表示未连接状态的信息消失,表明从站处于正常连接状态。

2.5寄存器值改变

在主窗口寄存器地址上双击鼠标,弹出修改对话框:

在Value框中输入修改的值点击“OK”。范围为-32768——32767。

2.6断开连接

点击“Disconnect F4”即可断开连接结束测试,此时主窗口中出现红色的“No connection”表示未连接状态。

3.Modbus主机/从机模拟程序测试

3.1添加端口

通过工具添加COM2和COM3两个端口。

3.2配置modbus poll和modbus slave

打开已经安装的modbuspoll和modbus slave软件,根据测试需求分别配置主从端的相关配置,如图:

以上配置的是10个寄存器从机设备ID为1但只读取前6个计数器的数据,可根据测试需求设置。

2、接下来分别进行连接,注意要修改连接界面的端口,poll为主机,slave为从机,分别选择com2和com3端口,其他选项如波特率9600,比特位8,校验位1,无等价位等根据实际情况修改,然后点击确定进行连接。未连接成功窗口第二行会给出提示信息, 如果两个软件中都没有出现红字错误提示信息,黑字数据是不断的变化即连接成功。

通讯开始,主机端显示TX=232,Err=0,ID=1,F=03,SR=1000ms。意思是,发送232次命令,错误次数0,从机ID为1,使用03功能码,轮询间隔为1000ms。

使用工具栏的”Communication Traffic”按钮,可以显示出当前发送和接收的数据报文。

其报文发送分析及接收分析同上文1.3中的发送分析及接收分析。

4.实例

=====================

https://blog.csdn.net/yiyantangad/article/details/131431022

=====================

 

=====================

 

=====================

 

标签:03,Slave,报文,数据类型,Modbus,寄存器,poll,数据
From: https://www.cnblogs.com/emanlee/p/17626527.html

相关文章

  • Modbus RTU 协议
    ModbusRTU协议 一、简介MODBUSRTU协议是一种开放的、主要基于串行链路(RS232C或RS485)的通信协议,也有在TCP或者UDP方式下使用这种标准通信协议的,名称中的RTU是英文"RemoteTerminalUnit"的缩写,即"远程终端设备",支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上......
  • 简单配置,快速集成!钡铼BL124助您实现Modbus转Ethernet/IP!
    钡铼技术BL124Modbus转Ethernet/IP协议网关是一款专为工业自动化领域而设计的先进设备。它提供了可靠的通信解决方案,能够将Modbus通信协议与Ethernet/IP通信协议进行高效转换,实现不同类型设备之间的无缝集成和通信。  添加图片注释,不超过140字(可选)钡铼......
  • 软件设计开发笔记6:基于QT的Modbus RTU从站
      Modbus是一种常见的工业系统通讯协议。在我们的设计开发工作中经常使用到它。作为一种主从协议,在上一篇我们实现了MobusRTU主站工具,接下来这一篇中我们将简单实现一个基于QT的MobusRTU从站工具。1、概述  ModbusRTU从站应用很常见,有一些是通用的,有一些是专用的。而这里......
  • 2023年最新版Apollo保姆级使用手册(超级详尽版本)
    目录Apollo操作说明前言Apollo环境部署一、环境构建二、官方地址三、数据库脚本使用四、配置Apollo文件五、启动Apollo六、访问ApolloApollo产品使用一、修改部门二、应用操作三、用户操作四、系统权限管理1、创建应用权限配置2、创建应用权限配置3、与旧版比对五、系统参数1、Por......
  • pollard-rho
    补写算法流程。生日悖论:值域为\(n\),时,期望随机\(O(\sqrt{n})\)(OI-wiki上给的是\(\sqrt{2n\ln2}\))个数有数字相同。(感觉有点奇怪,原表述是这么多次有数字相同的概率是\(\frac{1}{2}\)。)算法流程:尝试分解\(n\)的最小非平凡因子\(m\)设\(f(x)=x^2+c\),所有运算模......
  • Modbus动态链接库供多语言使用 | Go
    Modbus协议控制动态链接库应用场景基于各门语言都有各自的modbus协议库,且良莠不齐,而且在具体的框架下可能存在版本依赖问题,而且对modbus协议存在比较多的细节处理,可以查看modbusslave、或者modbuspoll中相关的配置可知,数据类型对应读写寄存器个数、大小端的处理等等细节,所以......
  • modbus转can网关上行协议支持CAN OPEN JAE1939
    ModbusRTU协议转换网关是一种常见的设备,用于将ModbusRTU协议转换为其他通信协议。而CANopen是一种基于CAN总线的通信协议,主要用于工业自动化和控制系统中。本文将介绍ModbusRTU协议转换网关如何支持CANopen协议,以及该功能的应用场景和优势。ModbusRTU协议转换网关可以通过软件......
  • C# Modbus开发
    Modbus主机/从机模拟程序Modbuspoll和Modbusslave是一组Modbus仿真软件,可以实现ModbusRTU、TCP、串口仿真等。仿真软件网址:https://modbustools.com/download.html在ModbusTCP中,Modbuspoll作为客户端请求数据,Modbusslave作为服务器端处理请求。使用c语言编写客户端连接Mo......
  • Modbus 协议简介
    Modbus协议简介Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为ModbusMaste......
  • ModBus协议原理、Modbus Slave以及基于C++和Qt的代码实现
    ModBus协议目的:规定与PLC交互的指令,其数据帧包括两部分:报文头(MBAP)和帧结构(PDU)。报文头(MBAP)(分为6个部分):1.事务处理标识:即报文序列号,一般每次通信之后就要加1以区别不同的通信数据报文,长度2字节。2.协议标识符:有串口的RTU协议和TCP协议,如0000表示ModbusTCP......