Modbus poll和Modbus Slave使用心得
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
=====================
=====================
=====================