首页 > 编程知识 正文

modbus通讯协议报文,modbus通讯协议和串口协议

时间:2023-05-06 12:18:47 阅读:125482 作者:4135

“只要想做好事,就一定会利用那个器皿”。 在研究开源Modbus协议FreeMODBUS之前,介绍一种主要用于Modbus协议仿真和Modbus从设备开发的Modbus Poll软件。 本文用图解说明了Modbus Poll软件对Modbus协议的仿真过程。

首先,在计算机上使用“虚拟串行驱动程序”软件虚拟化两个互连的串行端口。 一个串行端口与Modbus Poll软件相连,以模拟Modbus协议的主设备。 串行端口连接到Modbus Slave并模拟Modbus从站,如图1所示。 在“端口1”和“端口2”中选择需要虚拟化的两个端口,作者选择COM2和COM3。 然后单击“添加端口”,在左侧的“虚拟端口”中显示虚拟端口,并可以从“我的电脑”的“设备管理器”中查看虚拟端口。

图1

然后运行Modbus Slave软件,首先设定从站设备的属性。 单击" Setup "中的" Slave Definition "开始设定。 作者对读写线圈的模拟设定如图2所示。 每个字段的含义如下:

Slave ID (从站设备的ID号码,即Modbus协议的地址代码;

功能:由于当前模拟的Modbus功能,例如01 Coil Status模拟线圈的读写操作;

地址:从站设备中连续单元的起始地址,在本设定中为0000;

质量(从属设备内的连续单元数,在本设定中为10个,其地址为0000至0009;

Rows是左侧显示单元中每列的显示单元的个数;

显示:单元格数据的显示格式。

设置完成后,单击“确定”。

图2

设定串行通信,点击“Connection”的“Connection Setup”,操作者采用RTU模式的模拟设定如图3所示,各字段的含义如下。

pt; margin:0cm 0cm 0pt"> Connection:采用Serial Port方式;

Mode:Modbus协议有RTU和ASCII两种模式;

Flow Control:流控制方式,如果所有的方式都不勾选,则不使用流控制;

串口配置:有串口号(Port3),波特率(9600),数据位(8位),奇偶校验(无),停止位(1位)。

设置完毕后,单击“OK”,从设备建立连接,等到主设备进行查询。

图3

   从设备内部单元值的设置,如图4所示,内部单元列表中显示的是单元值,通过双击某单元可以修改单元值,图4是作者将0000地址线圈值设置为自动变化,勾选“Auto change”后,线圈单元的值会自动在0与1之间变化

图4

接下来运行Modbus Poll软件,与Modbus Slave软件类似,首先要对主设备的属性进行设置,单击“Setup”中的“Read/Write Definition”开始设置,作者对读线圈的模拟仿真设置如图5所示,各字段的含义如下:

Slave ID:为目标从设备的ID号;

Fuction:为功能码,在本设置中为01 Read Coils;

Scan Rate:为Modbus协议中的通信周期,在本设置中为100ms;

Address,Quantity,Rows,Display字段含义与Modbus Slave软件中含义相同。

设置完毕后,单击“OK”。

图5

再对串口通信进行设置,单击“Connection”中的“Connection Setup”,作者采用RTU模式的仿真设置如图6所示,各字段含义如下:

Connection、Mode、串口信息、Advanced中的Flow Control中的含义和设置都和Modbus Slave软件中的含义和设置一致;

Response Timeout:响应超时,在本设置中为1000ms,如果机灵的黑猫 从设备没有做出响应,就产生超时错误。

设置完毕后,单击“OK”。

 

图6

设置完毕后的模拟仿真效果如图7所示。

单击工具栏上的图标,可以显示通讯过程中的数据帧,如图8所示,单击“Stop”按键后,用户可以保存或复制数据帧。

用户可以通过设置其他的功能来模拟Modbus其他的通讯过程。

(全文完)

图7

图8

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。