超轻巧modbus调试助手使用说明
一、使用说明
1.1 数据格式
- 和其他的modbus采集工具一样,本组件也支持各种数据格式,其实就是高字节低字节的顺序。
- 一般是2字节表示一个数据,后面又有4字节表示一个数据,目前好像还有8字节表示一个数据的设备。
- 不同厂家的设备对应的字节顺序可能不同,要求可以自定义顺序,以便满足各种设备的接入。
- 4字节的数据可以是长整型,也可能是浮点数,按照标准规则计算出浮点值。面对浮点数的采集,很多国内的厂商的做法是以长整型数据发出,再除以一个值比如1000进行换算,因为下位机往往是单片机,单片机对浮点数运算很鸡肋很吃力。
- 最终的数据解析还要区分有符号和无符号,一般都是有符号,因为可以表示负数,比如温度就有负数。目前本组件都是按照有符号进行运算,后面有场景需要可以增加无符号的支持。
- 如果发现数据解析不对,可以调整对应的顺序试试。
- Short_AB,短整型数据,总共2字节,正序,高字节在前,低字节在后。
- Short_BA,短整型数据,总共2字节,反序,低字节在前,高字节在后。
- Long_ABCD,长整型数据,总共4字节,大端模式正序。
- Long_DCBA,长整型数据,总共4字节,小端模式正序。
- Long_BADC,长整型数据,总共4字节,大端模式反序。
- Long_CDAB,长整型数据,总共4字节,小端模式反序。
- Float_ABCD,浮点型数据,总共4字节,大端模式正序。
- Float_DCBA,浮点型数据,总共4字节,小端模式正序。
- Float_BADC,浮点型数据,总共4字节,大端模式反序。
- Float_CDAB,浮点型数据,总共4字节,小端模式反序。
1.2 数据采集
- 第一步,协议类型选择,本组件支持多种协议类型,如果选择的com,则需要填写串口号和波特率,选择的网络比如TCP,需要填写主机和端口号。
- 第二步,选择轮询间隔,默认1s轮询一次。
- 第三步,选择超时次数,默认3次,表示轮询3次还没有收到数据就离线。
- 第四步,添加要采集的设备地址,起始地址和采集数量。默认会有三个地址,可以直接在表格中修改后再单击保存。
- 单击添加按钮,会生成一个默认值的新行,直接修改值,单击保存。
- 单击删除按钮,会将当前选中的行删除,删除后自动保存。
- 单击保存按钮,将表格中的所有数据保存到配置文件。
- 单击清空按钮,将表格中的所有数据清空,自动保存。
- 第一列填设备地址,1个字节,范围值1-247,切记这里是从1开始的。在RTU协议中对应在第一个字节,在TCP协议中对应在第六个字节。
- 第二列填寄存器开始地址,2个字节,范围值0-65535,切记这里是从0开始的,0表示第一个寄存器。
- 第三列填采集的数量,2个字节,和开始地址组合使用,开始地址+数量<=65535。
- 如果开始地址填0,采集数量填2,则表示采集寄存器1、寄存器2共2个寄存器的数据。
- 如果开始地址填7,采集数量填4,则表示采集寄存器8、寄存器9、寄存器10、寄存器11共4个寄存器的数据。
- 第四列填数据顺序格式,见上面数据格式说明。一般填Short_BA、Long_DCBA。
- 单击启动服务按钮,会自动启动采集线程,如果采集设备存在则会显示对应采集到的数据。
- 单击重新读取按钮,会立即复位设备离线状态,全部设备重新采集。为什么需要这个?因为一般在modbus采集过程中,都是按照轮询的方式采集的,但是实际场景中有些设备坏了或者根本没有,那每次都占用一次轮询时间是不是很浪费呢?这就需要自动跳过离线的设备,加快轮询速度。但是可能后面设备又接上去了,这个时候要么等待重连时间到了去采集,要么单击这个重新读取按钮立即触发。联调过程中往往喜欢单击这个按钮去立即触发一次,因为重连时间可能会比较大,傻傻的等待也不是个事。
- 单击清空数据按钮,会清空左侧显示的数据,双击左侧的显示栏也会自动清空。
- 所有收发的数据也会打印显示在左侧,方便查阅分析问题,也可以看到采集到的最终的值。
1.3 数据写入
- 第一步,生成寄存器复选框和微调框,数量下拉框选择要生成的数量,单击一键生成。复选框的作用是用于单个写入数据,勾选了则表示该寄存器需要写入数据。
- 第二步,填写好设备地址,从1开始,也就是对哪个设备写入数据。
- 第三步,单击写入数据/单个写入按钮,对勾选的寄存器地址写入对应微调框的值。
- 第四步,如果需要连续写入,还需要设置开始地址和写入数量,再单击连续写入按钮。
- 单个写入对应功能码0x06,连续写入对应功能码0x10。
- 写入动作和写入成功在左侧都有打印显示,一般是深绿色颜色显示,关键字写寄存器。
二、功能特点
- 支持多种物联网通信协议,包括modbus和mqtt。
- 协议方式支持串口com通信、网络tcp通信、网络udp通信、网络websocket通信。
- 数据规则支持rtu模式和网络模式,网络rtu模式也就是modbus rtu over tcp/udp/websocket。相当于modbus串口协议数据走网络方式通信。
- 支持批量连续写入寄存器数值和单个写入寄存器数值。
- 支持数据顺序格式的设置,比如大端小端,高字节在前低字节在前的设置。支持Short_AB、Short_BA、Long_ABCD、Long_CDAB、Long_BADC、Long_DCBA、Float_ABCD、Float_CDAB、Float_BADC、Float_DCBA等。
- 支持数据位字节数设置,比如短整型、长整型、浮点型等。常规的一般是2字节表示一个数据位,也有设备是4字节表示一个数据位,还有4字节浮点数的形式。后期可能还有8字节一个数据位。
- 支持mqtt协议,可设置主机地址和端口、协议版本、唯一标号、用户名称、用户密码。
- 支持mqtt发布主题、订阅主题、取消订阅。
- 定时自动发布主题,可设置保活时间、超时时间、过期时间。mqtt通信自动重连。
- mqtt模拟数据收发支持多种格式,文本、json、base64、hex等。
- mqtt同时支持websocket方式,还支持ssl方式通信。
- 支持多种采集通讯方式,包括串口和网络等,可自由拓展其他方式。可同时采集多路。
- 自定义采集间隔(精确到毫秒)和超时次数,超时后自动将离线的文件从轮询队列中移除,加快轮询速度。
- 可设置最大超时重连间隔,将离线的设备重新探测一次,保证设备恢复正常后能够重新加入轮询队列。
- 同时提供了设备模拟工具,支持各种协议,支持设定多个设备的数据值。
- 模拟工具可随机切换模拟数据值,要正常随机数据就模拟生成正常范围的数据,要报警数据就模拟生成报警范围的数据。方便测试。
- 多线程采集和解析数据,以信号的方式发送解析结果,不卡主线程。
- 架构采用基类继承方式,通用处理在基类,极易拓展其他通信方式。
- 接口友好,使用非常简单,设置要采集的地址集合、开始索引集合、采集数量集合、数据顺序格式四个参数即可。会自动组装对应协议的数据发送。
- 采集后的数据以统一格式的信号发出来,非常简单易用。支持浮点型数据。
- 采集指令有优先级,如果有自定义的数据需要优先执行。可以将优先级高的指令调用append方法插入即可。可批量采集也可单个采集。
- 支持利用现有的通信链路发送自定义数据,这个数据可以不是标准的modbus协议,比如有时候需要一些私有协议数据,利用现有链路发送下去执行。
- 多线程高并发,每个端口采集都是一个独立的线程,互不干扰,支持成千上万个设备采集。
- 代码做了兼容,支持各种编译器,同时支持Qt4、Qt5、Qt6。
- 跨平台,支持windows、linux、mac、嵌入式linux、android、各种国产系统和开发板等。
三、相关链接
- 体验地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取码:o05q 文件名:bin_iottool.zip
- 国内站点:https://gitee.com/feiyangqingyun
- 国际站点:https://github.com/feiyangqingyun
相关文章:

超轻巧modbus调试助手使用说明
一、使用说明 1.1 数据格式 和其他的modbus采集工具一样,本组件也支持各种数据格式,其实就是高字节低字节的顺序。一般是2字节表示一个数据,后面又有4字节表示一个数据,目前好像还有8字节表示一个数据的设备。不同厂家的设备对应…...

Percona Monitoring and Management
Percona Monitoring and Management (PMM)是一款开源的专用于管理和监控MySQL、MongoDB、PostgreSQL...
WarehouseController
目录 1、 WarehouseController 1.1、 //仓库信息设置 1.2、 /// 查询 1.3、 /// 删除 WarehouseController using QXQPS.Models; using QXQPS.Vo; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mv…...
基于 STM32 单片机的温室物理无害生长系统
摘要 : 本系统主要由六大部分组成,分别为 STM32单片机控制模块、温湿度检测模块、风扇、臭氧消毒、温室补光灯、水利灌溉通道等基本设施。单片机可以通过 MOS 管这类的电力电子器件来实现对某些大功率设施的控制如温室内风扇通风系统、温室内定时补光、根据土壤温湿检测来进行…...

新版pycharm如何导入自定义环境
我们新的版本的pycharm的ui更改了,但是我不会导入新的环境了 我们先点击右上角的add interpreter 然后点击添加本地编译器 先导入这个bat文件 再点击load 我们就可以选择我们需要的环境了...

一文彻底搞懂多模态 - 多模态理解+视觉大模型+多模态检索
文章目录 技术交流多模态理解一、图像描述1. 基于编码器-解码器的方法2. 基于注意力机制的方法3. 基于生成对抗网络的方法 二、视频描述三、视觉问答 视觉大模型一、通用图像理解模型二、通用图像生成模型 多模态检索一、单模态检索二、多模态检索三、跨模态检索 最近这一两周看…...
提升效率的编程世界探索与体验
--- 在如今这个信息爆炸、竞争激烈的时代,工作效率对于程序员来说显得尤为重要。为了在日益繁忙的工作环境中脱颖而出,选择合适的编程工具成为了一个关键的决定。不同的工具各有其优势,有的擅长简化代码编写,有的则擅长自动化任…...

VMware tools菜单为灰色无法安装
这个工具之前为灰色,无法安装,导致无法实现跟主机的共享文件夹等操作。极为不便。 根据其他教程提示:看到软件是这个配置。 修改为自动检测,tools就可以安装了。之前没注意到。 也有说dvd光盘也要设置。但是经过我测试。只设置软…...

不相同的二叉搜索树
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1 输出:1提…...

毕业论文设计javaweb+VUE高校教师信息管理系统
目录 一、系统概述 二、功能详解 1. 教师管理 2. 部门管理 3. 奖惩管理 4. 业绩管理 5. 培训管理 6. 报表查询 三、总结 四、示例代码 1 前端VUE 2 后端SpringBootjava 3 数据库表 随着教育信息化的发展,传统的手工管理方式已经不能满足现代学校对教师…...

L0-Python-关卡材料提交
Python wordcount 函数的调试笔记 输入文本中的多行字符串处理 确保 text 使用了正确的三引号 “”",以便读取完整的多行字符串,而不是单行。字符串分割:split() 使用 split() 默认按空格分割单词,确保分割后每个元素都是字…...

【unity进阶知识6】Resources的使用,如何封装一个Resources资源管理器
文章目录 一、Unity资源加载的几种方式1、Inspector窗口拖拽2、Resources3、AssetBundle4、Addressables(可寻址资源系统)5、AssetDatabase 二、准备三、同步加载Resources资源1、Resources.Load同步加载单个资源1.1、基本加载1.2、加载指定类型的资源1.…...

ThreadLocal内存泄漏分析
一、ThreadLocal内存泄漏分析 1.1 ThreadLocal实现原理 1.1.1、set(T value)方法 查看ThreadLocal源码的 set(T value)方法,可以发现数据是存在了ThreadLocalMap的静态内部类Entry里面 其中key为使用弱引用的ThreadLocal实例,value为set传入的值。核…...
第 30 章 XML
第 30 章 XML 1.IE 中的 XML 2.DOM2 中的 XML 3.跨浏览器处理 XML 随着互联网的发展,Web 应用程序的丰富,开发人员越来越希望能够使用客户端来操作 XML 技术。而 XML 技术一度成为存储和传输结构化数据的标准。所以,本章就详细探讨一下 Ja…...

VMware下的ubuntu显示文字太小的自适应显示调整
我的情况 我使用的是4K的32寸显示器,分辨率为 3840 x 2160,ubuntu版本为18.04,默认的情况下系统分辨率为 3466 x 1842。 此时,显示的文字很小,虽然可以看清,但也比较吃力,在VMware窗口…...

外贸网站怎么搭建对谷歌seo比较好?
外贸网站怎么搭建对谷歌seo比较好?搭建一个网站自然不复杂,但要想搭建一个符合谷歌seo规范的网站,那就要多注意了,你的网站做的再酷炫,再花里胡哨,但如果页面都是js代码,或者页面没有源代码内容…...
如何创建网络白名单
网络白名单(Whitelist)是指允许通过网络访问的特定设备、IP地址、应用程序或网站。与黑名单(Blacklist)相反,白名单机制默认阻止所有连接,只有在白名单中明确允许的访问才能通过。这种策略可以提高网络的安…...
前端动态创建svg不起效果?
document.createElement(path);诸如此类的创建一般都是不太行的 我在创建这个之后,虽然在网页上是有相应的结构,但是完全不显示 一般正确的创建方式为 document.createElementNS(http://www.w3.org/2000/svg,path);在使用document.createElementNS(“ht…...
三、Drf request对象
3.1django和drf中的request的区别 django中的request:用户请求对象和参数 drf中的request:将django中的request加了一层封装,又加了一些其它的参数 drf中的request._requestdjango中的request 3.2创建url路由和CBV class UserView(APIView):def get(self,requ…...

CMIS5.2_光模块切应用(Application Selection and Instantiation)
目录 重要概念 DP配置、应用声明、应用码的区别 Control Set Provision 和 Commission ApplyDPInit 和 ApplyImmediate 判断应用是否切换成功 以800G光模块的3个应用对应的DP配置举例 1*800G应用: 2*400G应用: 8*100G应用: 应用声明…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...