萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug

freefree技术Resources

这篇内容可直接阅读,适合用于基础学习和Search引流。

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 1.system需求
  2. 2. 硬件
  3. 3. Operationsystem
  4. 4. 语言
  5. 5. 安装
  6. 6. 安装
  7. 7. Windows 防火墙设置
  8. 8. Function特性
  9. 9. 通信协议
  10. 10. connect
  11. 11. 可作为不同的通信角色工作
  12. 12. 用户设置记忆Function
  13. 13. developer实用Tools
  14. 14. 设置参数验证Function
  15. 15. 个性化界面设置
  16. 16. 页面和导航
  17. 17. connect页面
  18. 18. 通信页面
  19. 19. Tools页面
  20. 20. 设置页面
  21. 21. 萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug

前言

“ Modbus Tools集”是萧育青工作室根据多年工程实践,在整合了当前Related软件的长处和不足 的基础上自主研发的Tools应用软件, 用于 Modbus 设备的通信仿真及debug。

V 5.0.0 更新

  • 用户界面 (UI) 框架提升为最新的 Windows UI 库 (WinUI) 3 ;
  • 目标框架提升为 .NET 7.0;
  • 支持多语言:中文(简体)、英语、法语和德语;
  • 修复了其它缺陷。

近期更新

  • 为满足一次访问不同Type和format的register data的场合,提升了data设置Function。可分别定义data列表中各data项的Type、format和Coding;
  • 全面提升了message收发及校验机制;
  • 以主站/客户端运行时增加了自由协议,用于支持本应用未提供的 Modbus 公共function code、Modbus 用户Customizationfunction code和 Modbus 之外的“自由口”通信。

Download链接

为方便不同用户的需求, 提供了“百度网盘”的Download链接;底部进行Comments,即 可获得最新版本的Download链接。

1.system需求

硬件

  • 处理器 1 GHz
  • 内存 512 MB
  • 磁盘空间(minimum)4.5 GB

Operationsystem

  • Windows 11
  • Windows 10

◼ 目标版本:Windows 10 版本 2004 (内部版本 19041) 或更高版本;

◼ 最低版本:Windows 10 版本 1809 (内部版本 17763) 。

语言

用户界面支持下列语言:

  • 中文(简体)
  • 英语
  • 法语
  • 德语

安装

安装

  • 双击已Download的自解压安装包文件“Modbus_Toolkit_V5.x.x.exe”,解压缩到指定安装文件夹;
  • 在安装文件夹中双击文件“setup.exe”,开始本应用软件的安装。如图 2-1 所示:
萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图

图 2 -1. 安装向导

Windows 防火墙设置

首次作为 TCP/UDP 服务器“打开”时,Windows 会提示 “安全中心警报”。如图 2-2 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图1

图 2 -2. Windows 安全中心警报

请将“专用网络”和“公用网络”均勾选后单击“允许访问”。

Function特性

通信协议

支持所有 Modbus 标准协议:

◼ Modbus RTU

◼ Modbus ASCII

◼ Modbus TCP/IP

  • Free / “自由”协议(仅主站/客户端可用):用于支持 Modbus 之外的“自由口”通信和本应用未提供的 Modbus 公共function code、Modbus 用户Customizationfunction code。

connect

  • 除 Modbus 标准的connect方式(Serial Port 和 TCP/IP)之外,扩展了 UDP/IP connect;
  • 对于 TCP/IP 和 UDP/IP connect,支持上述所有协议;
  • 对于 Serial Port connect,仅支持 Modbus RTU 、Modbus ASCII 和 Free 协议。

可作为不同的通信角色工作

  • connect为”Serial Port”时可分别作为主站或从站工作;
  • connect为”TCP/IP”或”UDP/IP”时时可分别作为客户端或服务器工作。

用户设置记忆Function

  • 自动保存用户所做的设置修改,再次运行时将恢复用户环境;
  • 设有“恢复缺省设置”button,用以将所有设置参数恢复为出厂值。

developer实用Tools

  • Modbus RTU message、Modbus ASCII message和 Modbus TCP/IP message间的相互转换,自动计算校验码 CRC/LRC;
  • “messageaddress”和“Device address”间的相互转换;
  • 不同data type的decimalformat与hexadecimalformat、binaryformat间的相互转换;
  • ASCII 码对照表;
  • 本机 IP address;
  • 本机串口设备。

设置参数验证Function

当修改各设置参数时,根据规范对所输入的参数进行合法性验证。

  • 若输入的参数非法,将在该参数上方弹出Error提示;
  • 若输入的参数合法但不安全,仅在顶部状态栏予以警告;
  • 至少有一个参数非法时将禁止“connect”/“启动”。

参数验证示例如图 3-1 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图2

图 3 -1. 参数验证例

个性化界面设置

允许个性化设置应用的界面,并自动保存设置参数。

  • 应用的主题;
  • 应用的界面语言;
  • 应用的窗口尺寸。

页面和导航

本应用采用了基于页面的导航system, 界面直观清晰。如图 4-1 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图3

其中:

① 导航栏:含有链接到各页面的导航button,用于导航至各页面;

②“汉堡包”(Hamburger)button,用于展开/折叠导航栏;

③返回button,用于返回前一个页面;

④ 信息栏:显示各类报警消息;

⑤ 状态栏:显示当前connect状态及运行状态

  • connect状态指示: – Connected, – Not connected;
  • 协议指示:Modbus RTU / Modbus ASCII / Modbus TCP/IP;
  • 运行角色指示:

➢ 对于 Modbus RTU /Modbus ASCII 协议,角色为主站/从站;

➢ 对于 Modbus TCP/IP 协议,角色为客户端/服务器。

  • 通信节点指示:

➢ 对于 Serial Port connect总是@,通信节点总是本地串口设备;

➢ 对于 TCP/IP 和 UDP/IP connect,角色为服务器时指示为@,通信节点为本地

网络终结点(IP address和端口号);角色为客户端时指示为 ,通信节点为

远程网络终结点(IP address和端口号)。

  • 通信节点参数:

➢ 对于 Serial Port connect指示:[通信端口]Baud rate-data bit-check digit-stop bit。

例如:[COM1]19200-8-even parity-1;

➢ 对于 TCP/IP 和 UDP/IP connect指示:connect[IP address]:端口号。

例如:TCP/IP [192.168.0.104]:502。

  • slave address/单元标识指示,例如:address:1;
  • 运行状态指示: — 停止; — 启动

⑥ 通信选项栏(仅当运行角色为主站/客户端时可见):用于设置各通信选项,详见通

信页面章节;

⑦ Operationbutton:详见connect页面/通信页面章节。

当将鼠标置于各button处,将自动弹出提示信息。

connect页面

connect页面用于设置connect方式、通信协议、运行角色及connect参数。如图 4-2 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图4

其中:

①(主站或客户端)connect/(从站或服务器)打开button;

②(Windows 11)/ (Windows 10):(主站或客户端)断开/(从站或服务器)Closebutton。

注意:除“time参数”外,其它各设置栏仅当断开/Closeconnect时方可更改!

connect

由下拉菜单选择connect方式。

  • Serial Port

当运行角色为从站时,同一时刻仅允许一个主站访问!若多个主站同时与同一从站通信可能导致Error!

  • TCP/IP

当运行角色为服务器时,可同时处理的客户端quantity由“最大客户端数”(详见“服务器设置”一节)设置;

  • UDP/IP

当运行角色为服务器时,可同时处理的客户端quantity不限(仅受system资源限制)。

运行角色

  • connect为”Serial Port”时可分别作为主站或从站工作

允许打开多个实例(执行多次本应用程序),分别作为主站或从站同时工作。

  • connect为”TCP/IP”或”UDP/IP”时时可分别作为客户端或服务器工作

◼ 允许打开多个实例(多次执行本应用程序),分别作为客户端或服务器同时工

作;

◼ 打开多个实例时,一个客户端可访问多个(本机或网络)服务器,一个服务器

可服务于多个(本机或网络)客户端。

协议

由下拉菜单选择通信协议。

  • 当“connect”为“TCP/IP”或“UDP/IP”时,可选项为:

◼ Modbus RTU;

◼ Modbus ASCII;

◼ Modbus TCP/IP。

  • 当“connect”为“Serial Port”时,可选项为:

◼ Modbus RTU;

◼ Modbus ASCII。

  • 当“运行角色”为“主站” / “客户端”时,可选项增加“Free”(自由协议)

◼ 自由协议用于支持本应用未提供的 Modbus 公共function code、Modbus 用户Customization

function code和 Modbus 之外的“自由口”通信;

◼ 自由协议下,用户须manual input“Requestmessage”,且本应用不做任何验证;

◼ 自由协议下,仅显示收/发的message,不做其它处理。

time参数

本节中各time参数的单位均为毫秒(ms)。

  • 轮询间隔time(仅用于客户端/主站)

客户端/主站Complete一次查询后距下次sendRequest的延时time。

100 ≤ 轮询time ≤ 2147483647

  • Response超时(仅用于客户端/主站)

客户端/主站sendRequest后等待服务器/从站Response的最大time。若在此time内未收到响

应则认为通信故障,提示报警信息。

1000 ≤ Response超时 ≤ 2147483647

注意

当客户端/主站查询的参数较多或通信速率(Baud rate/网速)较低时,可能发生“超
时”报警!可适当增大“Response超时”解决,但“Response超时”若过大本应用将无法监测可
能的通信故障。
  • connect超时(仅用于 TCP/IP connect)

◼ 对于 TCP 客户端:发起connect后等待服务器Confirm的最大time。若在此time内未

收到服务器Confirm则认为通信故障并提示报警信息。

500 ≤ (客户端)connect超时 ≤ 2147483647

◼ 对于 TCP 服务器:客户端connect建立后,将周期性receive客户端sendRequest。connect超

为查询客户端sendRequest的周期time,用以判断客户端的“活动”状态。若等待

客户端sendRequest的time超出connect超时则将该客户端标记为“非活动”。通常,连

接超时应大于客户端的轮询间隔time。

1000 ≤ (服务器)connect超时 ≤ 2147483647

串口设置

电脑无串口且需要与串行链路通信时,可connect“USB-RS232/485 转换器”以扩展串口。 电脑无串口需要本机模拟测试时,可使用“虚拟串口”软件以扩展虚拟串口。

 串口标识:仅列本地可用串口(自动识别)。 

 data bit

根据 Modbus 规范,对于 Modbus RTU 协议,  data bit必须为 8;

根据 Modbus 规范,对于 Modbus ASCII 协议, data bit必须为 7;

对于自由协议(Free),data bit可为 7 或 8。

stop bit与校验

对于 Modbus RTU / Modbus ASCII 协议:

当校验为“奇/偶”时,stop bit必须为 1;

当校验为“无”时, stop bit必须为 2。

对于自由协议(Free)不做限制:

校验可选 None, Odd, Even, Mark, Space;

stop bit可选:无 ,1 , 2 , 1.5。

本地串口设备

提供本地串口(包括硬件串口和虚拟串口)的标识,以方便当装有多个串口设备时
选择。
注意, 虚拟串口仅用于本地机进程间通信,不可用于与外部设备间的通信。

服务器设置

服务器connect

仅当“协议”为“Modbus TCP/IP”时可见,用于设置服务器的connect方式。

直接connect: 服务器直接connect到网络;


通过网桥或网关connect:服务器connect到串行链路子网,并通过网桥或网关来寻址。

 IP address支持 IPv4  和  IPv6  寻址模式;

任何address(作为服务器运行时)

当选中时, 服务器将Response本地所有 IP address收到的客户端Request。“任何address”显示为: [0.0.0.0](IPv4)或 [::](IPv6)。

 最大客户端数(仅用于 TCP/IP connect且运行角色为服务器时)

TCP 服务器可同时处理的客户端quantity上限 。根据设备Type,该参数的值可以从 1 到 16。
当connectquantity达到同时connect上限且又收到新的客户端connectRequest时:

若existence“非活动”的客户端,则断开最先的“非活动”的客户端并接受新的客户端;

若does not exist“ 非活动”的客户端,则拒绝新的客户端connectRequest。

远程 IP address(作为客户端运行时)

可在下拉菜单“远程 IP address”中键入要访问的服务器 IP address。新键入的服务器 IP address 将被自动记忆, 再次connect该 IP address时可直接在下拉菜单“远程 IP address”中选择即可, 不必重复键入;

本地 IP address(作为服务器运行时)

可在下拉菜单中选择 IP address,“本地 IP address”为自动识别 。为方便在一台电脑上 同时运行服务器和客户端以测试,列表中附加了本地主机(localhost)的“回送地 址”(IPv4: [127.0.0.1]/ IPv6: [::1])。“回送address” 为主机 IP堆栈内部的 IP address,主 要用于网络软件测试以及本地机进程间通信,不进行任何网络传输。

端口

根据“RFC1122”,允许的端口: 1  ≤  端口  ≤  49151;

对于  Modbus TCP/IP  协议, TCP 端口 502 是为 Modbus 通信保留的。在默认状 态下,强制监听此端口。然而,某些市售产品或应用程序可能需要另一个端口专 用于 TCP 上的 MODBUS。鉴于此,本应用也允许指定缺省端口(502)之外的端 口,仅给出警告信息;

对于  Modbus RTU  和  Modbus ASCII  协议,为安全计, 建议  2000   ≤  端口  ≤ 5000,为了适应某些市售产品或应用的需要,本应用也允许指定此范围之外的端 口,仅给出警告信息。

本地网络适配器

提供本地网络适配器(硬件适配器和虚拟适配器)的标识及 IP address(包括“回送address”)。 注意, 虚拟网络适配器仅用于本地机进程间通信,不可用于与外部设备间的通信。

通信页面

通信页面用于 Modbus Communication parameters设置、通信data的读写及通信message的显示。

 采用了“分割窗口”布局, 通过拖动分割条, 可以改变各分栏的尺寸, 以适应不同的 需求;

 可将“data列表”和“通信”栏弹出到独立窗口,以方便对照观察。

通信页面如图 4-3 和图 4-4 所示:

图 4 -3. 通信页面:服务器/从站

8

6

1

3

2
4

12

11

10

9

7

5

图 4 -4. 通信页面:客户端/主站
其中:

:“单次”复选框,选中时点击启动button时仅进行一次查询对话;

: “Responsedata”复选框,选中时在“通信”栏输出由ResponsemessageParse得到的data;

:“预览”复选框,选中时在“Requestmessage”显示由“MODBUS 设置”生成的Requestmessage; ④

:启动button , 当(connect页面) connect/打开无误时effective,用于启动通信对话;
⑤ 0:停止button , 当通信对话已启动时effective,用于终止通信对话; ⑥

:“Requestmessage”擦除button,Clear“Requestmessage”的当前内容;
⑦ C:“Requestmessage”refreshbutton,点击时根据当前“ MODBUS 设置”refreshRequestmessage; ⑧

:“通信”弹出button,将“通信”栏弹出到独立窗口, 弹出窗口如图 4-5 所示; ⑨

:“通信”擦除button,Clear“通信”的当前内容, 并将message计数复位;
⑩ 横向分割条:拖动其可改变横向分栏的尺寸;

:“data列表”弹出button,将“data列表”栏弹出到独立窗口, 弹出窗口如图 4-6 所 示;
⑫ 纵向分割条:拖动其可改变纵向分栏的尺寸。

图 4 -5. “通信”弹出窗口

图 4 -6. “data列表”弹出窗口

Modbus 设置

注意:当运行角色为“主站”/“客户端”时,某些参数仅当通信对话未启动时方可更改!

  • Function

运行角色为“主站”/“客户端”时用于选择“Function”。支持的 Modbus Function如表 4-1 所示:

function code描述
01 (0x01)读多个线圈(0*)
02 (0x02)读多个离散量输入(1*)
03 (0x03)读多个保持register(4*)
04 (0x04)读多个输入register(3*)
05 (0x05)写单个线圈(0*)
06 (0x06)写单个保持register(4*)
15 (0x0F)写多个线圈(0*)
16 (0x10)写多个保持register(4*)
表 4-1. 支持的 Modbus Function

data块

运行角色为“从站”/“服务器”时用于选择data块。data块选项如表 4-2 所示:

data块描述
线圈(0*)Coil
离散输入(1*)Discrete Input
保持register(4*)Holding Register
输入register(3*)Input Register
表 4-2. Modbus 标准data块


表 4-1. 支持的 Modbus Function

运行角色为“从站”/“服务器”时用于选择data块 。data块选项如表 4-2 所示:
data块
线圈(0) 离散输入(1
保持register(4) 输入register(3
表 4-2. Modbus 标准data块

slave address

当“协议”为“Modbus RTU”或“Modbus ASCII”(通常connect为“Serial Port”) 时,从站地 址用于设置串行链路上从站的标识。

运行角色为“从站”时为本站的唯一标识。slave address取值范围: 1  ≤(本地)slave address  ≤  247;

运行角色为“主站”时用于指定对其sendRequest的slave address: 0  ≤(远程)slave address  ≤  247。

其中, slave address 0 专用于“广播模式”,即, 主站向所有从站sendRequest。从站对 于主站的广播Request没有应答返回,广播Request一般用于写命令。

单元标识

当“协议”为“Modbus TCP/IP”(通常connect为“TCP/IP”)时,单元标识用于在 Modbus+ 或 Modbus 串行线路子网上寻址设备时的路由目的。在这种情况下,单元标识携 带远程设备的 Modbus 从address 。Modbus TCP/IP 通信结构如图 4-7 所示。

如果 Modbus 服务器connect到 Modbus+或 Modbus 串行链路子网,并通过网桥 或网关来寻址,单元标识对识别connect到网桥或网关后的子网的从站设备是必需 的。单元标识采用effective的 Modbus slave address(1 … 247)。目的 IP address识别网 桥或网关, 而网桥或网关则使用单元标识将Request转交给相应的从站设备;

对于直接connect到 TCP/IP 或 UDP/IP 网络上的服务器,以“IP address”寻址服务器, 因此单元标识是无用的。建议单元标识不要使用effective的  Modbus  slave address

(1 … 247)。否则, 在自动化system中重新分配 IP address的情况下,使用effective从 站address可能会由于网关的路由不畅而引起麻烦!应使用Invalid的slave address(0 或 248 … 255), 网关将简单地忽略 Modbus PDU,而不引起任何麻烦。建议采用 255(0xFF)或 0(0x00)作为“单元标识”的Invalid值。

图 4 -7. Modbus TCP/IP 通信结构

start(message)address和start(设备)address

datastarting address支持双formataddress: message(协议) address和Device address;

选中“startmessageaddress”时,可设置“startmessageaddress”,自动同步映射到“start设备地 址”,“data列表”按messageaddress显示;

选中“startDevice address”时,可设置“startDevice address”,自动同步映射到“startmessage地 址”,“data列表”按Device address显示;

Requestmessage中的datastarting address均为message(协议) address;

message(协议)address范围对于所有data块均为: 0 ~ 65535;

Device address支持“5 位寻址”(对应messageaddress 0~9998)/ “6 位寻址”(对应message地 址 9999~65535),其范围因data块不同。 如表 4-3 所示:

当然可以,以下是您提供的data块及其5位和6位寻址范围所对应的表格:

data块5 位寻址范围6 位寻址范围
线圈(0*)1 ~ 999910000 ~ 65536
离散输入(1*)10001 ~ 19999110000 ~ 165536
保持register(4*)40001 ~ 49999410000 ~ 465536
输入register(3*)30001 ~ 39999310000 ~ 365536
表 4-3. Device address范围

data设置

1) 线圈或离散Input data设置

当选择Function/data块为线圈(0)或离散输入(1)访问时,data设置如图 4-8 所示:

图 4 -8. 线圈或离散输入访问的data设置

quantity

查询/Response的线圈或离散输入的quantity。

byte count

只读。对于主站/客户端,为实际send的byte count量;对于从站/服务器,为data块所 实际占用的byte count量。

2) 保持register或输入register data设置

当选择Function/data块为保持register(4)或输入register(3)访问时, data设置如图 4-9 所 示:

图 4 -9. 保持register或输入register访问的data设置

quantity

查询/Response“data ”的quantity。
注意
对于register读写Function(data块:3* / 4*),此处所设置的 “dataquantity”不同于实际 Modbus message中的“number of registers ”!
一个data所占用的number of registers因data type而不同(详见表 4-5)。

对于主站/客户端,查询的最大(message)quantity因Function而不同,如表 4-4 所示:

当然可以,以下是您提供的Modbusfunction code、data块和最大查询messagequantity的表格:

function codedata块最大查询messagequantity
01 (0x01)线圈(0*)2000 线圈
02 (0x02)离散输入(1*)2000 输入
03 (0x03)保持register(4*)125 register
04 (0x04)输入register(3*)125 register
05 (0x05)线圈(0*)1 线圈
06 (0x06)保持register(4*)1 register
15 (0x0F)线圈(0*)1968 线圈
16(0x10)保持register(4*)123 register
表 4-4. 不同Function的最大查询messagequantity
对于从站/服务器,quantitymaximum  = 65535。

注意
无论主站/客户端或从站/服务器,均应满足: starting address + quantity ≤ address范围

register

只读。由“data”的quantity和data type所决定的实际number of registers。

统一的data type

所有data项的data type、data format和dataCoding均相同,由“data设置”直接统一设置。

独自的data type
可分别定义data列表中各data项的data type、data format和dataCoding。 单击button

可弹出register data设置窗口用于分别设置,如图 4-10 所示。
注意,当主站/客户端选择“读register”Function(03/04) 时, register data设置窗口中的 “numerical value”为只读!

图 4 -10. register data设置窗口

选择通信交换data的data type。支持的data type如表 4-5 所示:

data type说明Length,byte占用register
Int16带符号 16 位整型21
UInt16无符号 16 位整型21
Int32带符号 32 位整型42
UInt32无符号 32 位整型42
Int64带符号 64 位整型84
UInt64无符号 64 位整型84
Single32 位浮点型42
Double64 位浮点型84
表 4-5. 支持的data type


表 4-5. 支持的data type
对于“写单个保持register”Function(06),仅允许占用 1 个register(Length为 2 bytes) 的data Type。

data format

选择通信交换data的Display format。支持的data format如表 4-6 所示:

data format说明例子(130, Int16, 大端format)
Decimaldecimal130
Hexhexadecimal00 82
Binarybinary00000000 10000010
表 4-6. 支持的data format


dataCoding

支持 2 种dataCoding

 大端format(Big-endian,首先传送最高effectivebyte);
 小端format(Little-endian,首先传送最低effectivebyte)。

根据《基于 Modbus protocol的Automation网络规范  GB-T19582.1-2008》,对于 address和data,Modbus 使用“大端format”,即,当传送的data大于一个byte时, 首先传送最高effectivebyte;

为了适应某些市售产品或应用的dataCoding为“小端format”的场合, 本应用允许选 择“dataCoding”为“小端format”以正确ParseResponsedata;

dataCoding仅影响Register value的显示,  不影响线圈/离散Input data、"quantity"和"地 址"。

“data列表”和“Responsedata”将按选定的“data type” 、“data format”和“dataCoding”显示。

data列表

通信交换data列表, 用于设置输出的data/显示输入的data。

 项数由“MODBUS 设置”中的“quantity”设定;

 Display format: [address]               (如: [40003]                 )。 其中:

[address]由“MODBUS 设置”中的“start(message)address”/“start(设备)address”选项设 定;

              的显示由“MODBUS 设置”中的“data type”,“data format”和“dataCoding”设 定。


 设置data: 以鼠标点击              ,即可直接键入。。 作为主站/客户端运行时:

numerical value

 当选择“读”Function(function code  = 1 ,2,3,4) 时, data列表为只读;

 当选择“Free”(自由协议) 时,不显示“data列表”。

通信

用于通信对话(message、Responsedata、通信状态)的显示。

  • connect信息(仅当connect为 TCP/IP 或 UDP/IP 时effective)

◼ format:“Remote:[IP address:端口号],Local:[IP address:端口号]”;

◼ 对于服务器:

◆ 由于一个服务器可服务于多个客户端,每当receivemessage的send方改变时显示;

◆ 当选中“任何address”时,IP address = “0.0.0.0”(IPv4)/ “::”(IPv6)。

◼ 对于客户端:仅当“启动”时显示。

  • send的messageformat:“xxxx-Txd: HH HH …”。“xxxx”:对话的计数(Serial number),“Txd”:send标识,“HH HH …”:hexadecimalformat的message;
  • receive的messageformat:“xxxx-Rxd: HH HH …”。“xxxx”:对话的计数(Serial number),“Rxd”:receive标识,“HH HH …”:hexadecimalformat的message;
  • Responsedata/sendregister数:“xxxx-Val / Qty: DD,DD, …”,“xxxx”:对话的计数(Serial number),“Val”:Responsedata标识,“Qty”:sendregister数标识,“DD,DD, …”:decimalformat的Responsedata/sendregister数;
  • Modbus Exception Response:“xxxx-Err: 异常信息”。异常信息与从站/服务器返回的Exception ResponsemessageRelated;
  • Click“通信”擦除button可随时Clear“通信”的当前内容,并将message计数复位。

Requestmessage

当选择“Free”(自由协议)或选中“预览”选项时可见。

  • 选择“Free”(自由协议)时,用于manual inputRequestmessage(不做任何验证);
  • 选中“预览”选项时,用于“预览”由“Modbus 设置”生成的Requestmessage;
  • Click“Requestmessage”擦除button可Clear“Requestmessage”的当前内容;
  • Click“Requestmessage”refreshbutton时根据当前“MODBUS 设置”refreshRequestmessage。

自由协议界面

自由协议用于支持本应用未提供的 Modbus 公共function code、 Modbus 用户Customizationfunction code和 Modbus 之外的“自由口”通信。
用户须manual input“Requestmessage”,除Input format外本应用不做任何验证。
当“运行角色”为“主站”/“客户端”且选择“Free”(自由协议) 时, 不显示“data列表” 、 “ Modbus设置”和“data设置”栏。 页面如图 4-11 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图5

图 4 -11. 自由协议界面
其中:
① :向“Requestmessage”添加 CRC verification码button。点击此button时,将根据当前“请 求message”自动生成 CRC verification码并附在“Requestmessage”末尾。

Tools页面

提供了各种developer实用Tools。

message和address转换

如图 4-12 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图6

其中:
①弹出button, 可弹出到独立窗口。

  • Modbus RTU message、Modbus ASCII message和 Modbus TCP/IP message间的相互转换

每种协议均提供了 2 种format的message:

◼ Complete message(ADU/应用data单元);

◼ 部分message:只含address(单元标识)和协议data单元(PDU)。自动计算 CRC/LRC 等,

并自动填充首尾field。

当message输入Complete后必须按 Enter 键以提交。

◼ 若输入的message合法,所有其它message将同步更新;

◼ 若输入的message非法,将在其上方弹出Error提示。

  • messageaddress和Device address间的相互转换

下拉菜单“data块”用于选择data寻址空间。

◼ 在“messageaddress”中输入address,若输入的address合法,“Device address”将同步更新;

◼ 在“Device address”中输入address,若输入的address合法,“messageaddress”将同步更新;

◼ 若输入的address非法,将在其上方弹出Error提示。

数制转换

不同data typenumerical value的decimalformat与hexadecimalformat、binaryformat间的相互转换 。如图 4-13 所 示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图7

图 4 -13. 数制转换
其中:
① 弹出button, 可弹出到独立窗口。

data type说明Length,byte
SByte带符号 8 位整型1
Byte无符号 8 位整型1
Int16带符号 16 位整型2
UInt16无符号 16 位整型2
Int32带符号 32 位整型4
UInt32无符号 32 位整型4
Int64带符号 64 位整型8
UInt64无符号 64 位整型8
Single32 位浮点型4
Double64 位浮点型8
表 4-7.支持的data type
  • “decimal”、“hexadecimal”和“binary”field用于Enter numerical value

◼ 若输入的numerical value合法,所有其它field将同步更新;

◼ 若输入的numerical value非法,将在其上方弹出Error提示。

  • Switch“dataCoding”时,所有field将自动改变。

ASCII 代码表

提供标准 ASCII 码表 。如图 4-14 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图8

其中,
① 弹出button, 可弹出到独立窗口。

本地网络适配器

提供本地所有网络适配器的标识及 IP address。如图 4-15 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图9

其中,
① 弹出button, 可弹出到独立窗口。

本地串口设备

本地串口(包括虚拟串口)的标识。 如图 4-16 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图10

其中,
① 弹出button, 可弹出到独立窗口.

设置页面

设置页面用于个性化设置本应用的主题、语言及恢复出厂默认设置参数。如图 4-17 所示:

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图11

个性化

  • “主题”:设置本应用的主题。选中“默认”时,本应用的主题将与Operationsystem的“Windows设置”/“个性化”/“主题”一致;
  • “语言”:设置本应用的语言。支持的语言:中文(简体)、英语、法语和德语。

个性化示例如图 4-18 所示。

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图12

恢复默认设置

单击button 可将本应用的所有设置参数恢复为出厂默认设置参数。
注意: 仅当connect断开时允许Operation。

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug插图13

萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug

Published 2023年11月15日 更新time 2024年4月22日
已经回复?refresh
技术术语(共 11 个)—— 点击展开
Modbus RTU基于串行链路的Modbus协议,使用binaryCoding和CRC check
Modbus TCP基于以太网的Modbus协议变体,使用TCP/IP传输
Modbus ASCII使用ASCII字符传输的Modbus协议,以冒号开头、CR/LF结尾
RS232点对点串行通信标准,常用于短距离设备通信
function codeModbusfunction code指定读/写OperationType,如01读线圈、03读保持register
registerModbus register存储data单元,分线圈/离散输入/保持/输入register四类
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
网关协议转换设备,如 Modbus RTU ↔ Modbus TCP
串口计算机与外部设备进行串行通信的物理接口
线圈Modbus位可读写data,address从00001开始
保持registerModbus 16位可读写data,address从40001开始
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbus通信协议技术社区 Category Modbus DebuggingTools 字数 10861 字 · 阅读约 28 分钟 更新 2024-04-22 永久链接 https://www.modbus.cn/25794.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时通信debug、register读写、线圈控制、data监控和message分析。 无需安装,微信Search「Modbus DebuggingAssistant」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇Resources用于真实项目?

进入Tools中心进行messageParse、CRC verification和设备debug,或Submit requirements获取选型与接入建议。

工程师member

把这篇文章变成可执行的debugResources

开通后可使用高级messageParse、Resources包Download、Code Example、工程案例和优先Technical Support,适合真实项目交付。

高级Tools不限次
Resources包与代码包
Complete Engineering Case Library
优先Technical Support入口

《 “萧育青工作室“ Modbus Tools集”,用于 Modbus 设备的通信仿真及debug” 》 有 257 条Comments

发表回复

您的邮箱address不会被公开。 必填项已用 * 标注