【工具使用】Modbus Poll软件使用详解

2023-05-16

软件介绍

         Modbus Poll是一个模拟Modbus协议主机的上位机软件,主要用于模拟测试跟其他从机设备通信的过程。与之成套存在的另一个软件--Modbus Slave,则是模拟Modbus协议从机的上位机软件。该软件内部封装标准Modbus协议栈,通过图形化界面使得操作更为简便。目前软件支持01、02、03、04、05、06、15、16功能码,异常报文检测,原始报文查看,数据记录等功能,是调试Modbus协议栈的好帮手。

        本文用于演示的软件版本是7.0.1,更高版本会有更多、更完善的功能,但基础功能大同小异。另外文章只谈及工具的使用,对于Modbus本身通信协议的具体内容,请移步Modbus通信协议详解。

下载链接

链接:https://pan.baidu.com/s/1WUQJUc2FRWhomi_BhL4gZw 
提取码:lft0

软件使用

常用功能介绍

连接

        两种方式,一种普通连接,一种是快速连接。

普通连接

        点击菜单栏"Connection"->"Connect..."(或者按快捷键F3)弹出连接配置窗口。

        在连接选项那里选择"Serial Port",表示当前是用串口通信,如果使用的是Modbus/TCP,则选择“TCP/IP”

串口配置:

        在配置窗口中配置好端口号、波特率、数据位、校验位、停止位,一般是9600波特率(9600 Baud),8个数据位(8 Data bits),无校验位(None Parity),1个停止位(1 Stop Bit)。当然这个是要根据实际通信的从机设备进行匹配设置。这个版本以上的软件有个好处,就是会自动识别当前使用了哪些端口,这里会把使用过的端口重命名,方便识别。

        根据通信的从机设备选择使用RTU模式或ASCII模式,工业应用的话一般使用RTU模式,很少使用ASCII模式。

        再设置下超时时间和帧间隔时间(实际就是每个窗口之间的发送间隔),超时时间可以按默认1s就行,Modbus国标规定是200ms到1s。帧间隔时间按默认20ms设置即可。

        设置完点OK即可完成设置进行连接。

TCP配置:

        设置好IP及端口号,Modbus/TCP的默认端口号为502。实际根据从机设备的IP和端口号来设置。

        设置连接超时时间,按一般默认3000ms即可。

快速连接

        点击菜单栏"Connection"->"Quick Connect"(或者按快捷键F5),或者点击图标进行快速连接。快速连接就是不需要再去设置连接参数,直接根据当前配置开启连接。

新建及保存窗口

        点击"File"->"New",或者点击图标 可以新建一个通信窗口。

         点击"File"->"Save",或者点击图标进行窗口保存。"File"->"Save as..."则可以另存为一个文件。保存窗口可以把窗口的配置信息一并保存下来。

        一个窗口对应的是一条通信指令,具体通信的从机地址、读写功能码、读写的寄存器/线圈地址、读写的寄存器/线圈个数、超时时间都是可以独立设置的。

配置窗口信息

        点击"Setup"->"Read/Write Definition...",或者按快捷键F8,或者在要设置的窗口单击右键,选择"Read/Write Definition...",可以打开窗口信息配置界面。

        Slave ID:可以配置从机地址

        Function:可以配置功能码

        Address:可以配置读/写的寄存器/线圈起始地址

        Quantity:可以配置读/写的寄存器/线圈个数

        Scan Rate:可以配置帧的扫描周期

        Disable:有两个勾选项,"Read/Write Disabled"可以选择是否禁止读写,"Disable on error"可以选择是否一出错就停止读写。

        Rows:可以选择该窗口一列可以显示多少行,数字是对应的行数,最后一个选项"Fit to Quantity"是可以根据前面设置的"Quantity"数量自动匹配行数。

        Hide Alias Columns:可以选择是否隐藏"Alias"列。

        PLC Addresses(Base 1):可以选择通信的基地址是从0开始还是从1开始。

        Address in Cell:可以选择是否在每个单元格中显示地址。

        Enron/Daniel Mode:增加了浮点的数据类型扩展,读写一个寄存器是4个字节,主要用于跟支持该模式的设备通信用的。

        设置完成点"OK"或"Apply"应用即可。

窗口操作

        发送写指令:双击数据的位置,可快速调出编辑写指令的窗口,默认按当前窗口配置的寄存器类型所使用的单个写功能码,输入需要修改的数值,点击发送,即可完成一次寄存器/线圈的写入。

        "Close dialog on "Response ok""可选择发送后如果正常响应,则关闭此窗口。

        "Use Function"可选择使用什么功能码发送,保持寄存器类型的,只提供06和16功能码选择,线圈类型的,只提供05和15功能码选择。

        修改寄存器描述:双击数据前的空白区域(Alias列),可对其进行修改,根据实际寄存器/线圈的数据含义,可以此进行备注,方便调试时查看。

        数据类型修改:点击需要修改的数据(可以批量选择),右键单击,选择"Format",根据使用的场景选择不同的数据类型。

        窗口配置修改:在当前窗口区域右键单击,选择(或直接使用快捷键F8),即可弹出配置窗口。

        背景色及文字颜色修改:选择要修改的颜色的数据,右键,选择"Colors...",在弹出的窗口中,"Normal Colors"可以设置正常情况下的数据颜色,"Rule1"和"Rule2"用于设置当数据满足什么条件时,显示特定颜色。

        设置文字字体及大小:选择要修改的数据,右键选择"Font...",在弹出的窗口里选择字体、字形及大小,确认即可修改。

窗口状态栏

        Tx:表示发送的帧数

        Err:表示错误的帧数,包括超时未响应的帧

        ID:表示当前窗口通信的从机地址(Slave ID)

        F:表示当前窗口的功能码(Function)

        SR:表示帧的扫描周期(Scan Rate)

        No Connection等红字:表示当前窗口的异常通信状态,下文有详细说明。

常见异常

No connection

        这个其实不算异常,就是正常未连接的状态,正常COM口未被占用的情况下连接即可消除。

Timeout

        这个应该算是最让人头疼的异常了,所有由软件发出指令,从机设备未回复的情况,都会显示Timeout。而从机设备不回复,可能性有很多,比如:

        1、连接配置错误,主机的波特率、Slave ID等信息跟从机设备对应不上,从机就不会回。

        2、线路异常,电脑跟从机设备之前的通信线存在异常,也是无法正常收到回复。

        3、从机设备解析异常不回复,这个具体可以查看Modbus协议详解。

Write error/Read error

        如果使用的是USB转485的工具,调换485的A、B线,可能会出现这种情况。

        如果使用的是USB转232或TTL的工具,则短接Tx和Rx就会出现这种情况。

        另外在发送的过程中,收到数据,即总线上数据冲突,也会出现类似的错误。

Checksum Error

        从机设备返回的CRC校验不正确。

        通信总线上存在干扰。

        连接配置里的校验码、数据位、停止位配置错误。

Insufficient bytes received

        接收的字节数不完整,可能由于线路或某种原因,导致返回的指令长度与理论上返回的指令长度对不上,则会报些错误。

Illegal Function

        功能码异常,一般是当访问的从机设备不存在可操作的功能码时,会返回不存在此功能码不存在的01异常码,软件接收到此指令时就会报出这个错误。

Illegal Data Address

        地址异常,一般是当访问的从机设备不存在要读取的寄存器/线圈地址时,会返回不存在此地址的02异常码,软件接收到此指令时就会报出这个错误。

Illegal Data Value

        数据异常,一般是当前所要读/写的数据,从机设备不允许此地址数据的操作,会返回数据不可操作的03异常码,软件接收到此指令时就会报出这个错误。

Slave Device Busy

        从机繁忙,一般是从机设备回复了06的异常码 ,软件接收到此指令时就会报出这个错误。

Response Error

        响应异常,一般是从机设备回复了一些无法识别的指令,就会报这个异常,另外一个不知道算不算是这个软件的Bug,一般广播指令(0地址)是不可以读数据,只能广播写,但这个软件可以设置用广播指令读取,当这样设置时,就会出现这个"Response Error"的异常。

保存打开工程

        这个可以理解为是多个窗口打包保存了打开,比如现在建了20个窗口,那保存这个工程后,下次打开工程就直接打开20个窗口了,而不用自己一个个窗口去打开。

查看收发报文

        选择"Display"->"Communication..."或点击按键,可打开查看收发报文的窗口。通过这个窗口可以查看当前的原始收发报文,有助于异常的分析。

        不过需要注意一点,就是这里显示的报文不是完全从COM口读回来的,而是经过这个软件过滤过一层的,像一些很异常的报文,这个窗口可能不会显示出来,此时需要使用另外的工具,如串口调试助手来查看。

查看错误统计

        点击"Display"->"Error Counters"可以查看当前窗口的错误类型次数统计。

数据记录

        数据记录有两种,一种是保存读取回来的数据,保存至Excel中,另一种是直接保存收发的原始报文,保存至txt文档中。

Excel:选择要记录的窗口,点击"Setup"->"Excel Log...",要结束记录时,需要点击"Setup"->"Excel Logging Off"。

Txt:选择要记录的窗口,点击"Setup"->"Log...",要结束记录时,需要点击"Setup"->"Logging Off"。

清除统计

        点击"Setup"->"Reset Counters",或快捷键F12,可以清除当前窗口的收发统计;点击"Setup"->"Reset All Counters",或快捷键Shift+F12,可以清除所有窗口的收发统计。

串口调试功能

        点击"Function"->"Test Center",或点击按键,可以打开串口调试功能的窗口。通过这个窗口可以自己编辑发送的报文。

使用注意

        1、工具所保存的窗口文件,不同版本的窗口文件只能做到向上兼容,也就是低版本做的窗口文件,可以在高版本的软件里打开,但高版本的软件做的窗口文件,则无法在低版本软件中打开。

        2、如有更新版本的需要,注意不要在打开软件的情况下卸载旧版本,这样会导致卸载不彻底,在这种情况下安装新版本软件后,配置正常连接后也无法正常通信。一直报"Write Error"/"Read Error"。

        3、软件内的保护机制并不全,比如软件下发一条读10个寄存器的指令,从机设备给它回复100个寄存器的CRC校验正常的指令,软件并不会报错。如果要做一些保护设计,可以参考FreeModbus的设计,相对较全。

        4、这个工具上的一些时间设置,当时间设置较短时,可能不准。比如以前试过把每一帧的发送间隔时间调成1ms,但实际用示波器抓到的数据,间隔大概100ms左右,基本低于100ms的都实现不了。这个可能跟电脑本身性能有关系,所以要注意不要太过于相信这里面的时间设置,最好以实际的为主。

        5、正常连接通信的情况下,直接断开当前通信Com口的USB线,有些电脑可能会死机蓝屏。如果没死机,再把USB线插回去,在不重连的情况下,当前窗口可能会保持原本的错误通信状态。

        6、因为这个软件是在window系统上运行的,当系统卡顿时,可能会影响软件的运行,表现出来就是查看的报文有异常。Modbus Slave或其他串口调试工具也会有类似的问题。

相关知识

        Modbus通信协议、串口通信协议、FreeModbus、CRC、Modbus Slave、Modscan32、Modsim32

文章知识点与官方知识档案匹配,可进一步学习相关知识
网络技能树首页概览 28838 人正在系统学习中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【工具使用】Modbus Poll软件使用详解 的相关文章

  • 解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver

    问题解决 终端输入 xff1a nvidia smi NVIDIA span class token operator span SMI has failed because it couldn span class token numbe
  • Mysql 事务(标贝科技)

    文章目录 事务InnoDB对ACID的支持隔离级别不同隔离级别下读读取数据可能出现的情况不可重复读和幻读区别 redo log xff08 共享表空间 xff09 redo log block刷redo log策略 xff1a innodb
  • Ubuntu20.04运行Vins-fusion

    因已安装ROS noetic xff0c eigen xff0c opencv及ceres等库 xff0c 这部分环境配置就不细讲 xff0c 直接下载VINS FUSION的代码库 下载编译 cd span class token ope
  • 坐标系之间的转换关系(ECEF、LLA、ENU)

    一 坐标系简介 1 ECEF坐标系 也叫地心地固直角坐标系 其原点为地球的质心 xff0c x轴延伸通过本初子午线 xff08 0度经度 xff09 和赤道 xff08 0deglatitude xff09 的交点 z轴延伸通过的北极 xf
  • Python画图常用的颜色及标识

    matplotlib中color可用的颜色 xff1a aliceblue F0F8FF antiquewhite FAEBD7 aqua 00FFFF aquamarine 7FFFD4 azure F0FFFF beige F5F5DC
  • .npy文件打开方式

    在用evo评测slam算法定位精度时 xff0c 使用 save results a zip 生成的结果中包含的 npy文件 xff0c 如果要查看里面详细的数值 xff0c 则可通过以下方式打开文件并查看 1 xff09 找到要查看的 n
  • IMU误差模型简介及VINS使用说明

    1 IMU误差来源 2 IMU噪声模型 Noise and Bias kalibr中的imu noise model 参考 xff1a https github com ethz asl kalibr wiki IMU Noise Mode
  • 泰勒公式(泰勒展开式)通俗介绍+本质详解

    比较通俗地讲解一下泰勒公式是什么 泰勒公式 xff0c 也称泰勒展开式 是用一个函数在某点的信息 xff0c 描述其附近取值的公式 如果函数足够平滑 xff0c 在已知函数在某一点的各阶导数值的情况下 xff0c 泰勒公式可以利用这些导数值
  • Leetcode ->94 二叉树的中序遍历

    题目 算法思路及代码实现 span class token macro property span class token directive hash span span class token directive keyword inc
  • Unix、UTC、GPS时间戳及转换

    UTC时间 UTC时间的英文全称 xff1a Universal Time Coordinated xff0c 中文名称 xff1a 协调世界时 俗的理解为 xff0c 这个时间是全世界通用的 xff0c 即全世界都公用的一个时间 可以认为
  • 自动驾驶中地图匹配定位技术总结

    引言 汽车定位是让自动驾驶汽车知道自身确切位置的技术 xff0c 在自动驾驶系统中担负着相当重要的职责 汽车定位涉及多种传感器类型和相关技术 xff0c 主要可分为卫星定位 惯性导航定位 地图匹配定位以及多传感器融合定位几大类 其中地图匹配
  • Firefox 常用扩展插件及脚本推荐 打造你不一样的Firefox

    前言 xff1a 进入2011年以来 xff0c 整个浏览器领域的竞争越发激烈 xff0c 随着IE9正式版的发布 Chrome Opera等浏览器厂商也相继更新 发布了新的版本 经过多次跳票之后 xff0c FireFox4 0正式版终于
  • mysql 锁(标贝科技)

    标贝科技 https ai data baker com source 61 qwer12 填写邀请码fwwqgs xff0c 每日免费调用量还可以翻倍 mysql 锁 锁类型 类型 表级锁 xff1a 开销小 xff0c 加锁快 xff1
  • STM32G4学习笔记之DAC+FMAC

    1 高性能DAC G4系列一共有四个DAC 前两个为低速采集DAC xff08 1MHz xff09 xff0c 后两个为高速 可达15MHz DAC1 DAC2的采样速率最大为1MHz xff0c DAC3 DAC4的采样速率最大为15M
  • 逆变电路之单极性调制与双极性调制

    就调制脉冲的极性而言 单相全桥逆变器pwm调制技术主要分为单极性调制与双极性调制 下面就其调制原理分别做简单的介绍 1 单极性调制 单极性调制的原理如图所示 调制信号ur为正弦波 载波uc在ur的正半周为正极性的三角波 在ur的负半周 为负
  • OTL电路与OCL功放电路的区别

    一 OTL电路 OTL xff08 Outputtransformerless xff09 电路是一种没有输出变压器的功率放大电路 过去大功率的功率放大器多采用变压器耦合方式 xff0c 以解决阻抗变换问题 xff0c 使电路得到最佳负载值
  • 运放失真罪魁祸首之压摆率和增益带宽积

    1 什么叫压摆率 xff1f 做1pps驱动电路 1 xff0c 1PPS xff1a 秒脉冲英文全称 xff1a Pulse Per Second 1pps概念 要求上升沿 5ns xff0c FPGA输出的信号用运放跟随增强驱动后 xf
  • 电源反馈电路设计经验(PC817光耦隔离+TL431)

    身边的很多小伙伴好像都对电源的反馈电路的计算以及原理不太了解 xff0c 这里给大家系统的讲解一下 xff1a 废话不都说 xff0c 咱们直接上干货 在分析电路前需要注意的关键点 1 光耦的输入端 xff08 二极管端 xff09 的电流
  • 一分钟带你了解常用的V-I、I-V转换电路

    下面我将给大家介绍6种常用的V I I V转换电路 1 0 xff0d 5V 0 xff0d 10mA的V I变换电路 图1是由运放和阻容等元件组成的V I变换电路 xff0c 能将0 5V的直流电压信号线性地转换成0 xff0d 10mA
  • 奈奎斯特采样定理-为什么采样率需要时被测信号最高频率的两倍

    奈奎斯特采样定理 采样定理在1928年由美国电信工程师H 奈奎斯特首先提出来的 xff0c 因此称为奈奎斯特采样定理 1933年由苏联工程师科捷利尼科夫首次用公式严格地表述这一定理 xff0c 因此在苏联文献中称为科捷利尼科夫采样定理 19

随机推荐

  • 傅里叶变换简单解析

    这里有两个频率 一个是信号本身的频率 位1 3sec 一个下面矢量绕圆的频率 为1 0 79sec 下面这个频率是我们可以改变的 这就是所谓的窗 即我们选取多长的一段信号用来进行傅里叶变换分析 当截取的窗的周期等于信号周期1 3sec时 就
  • 组合逻辑与时序逻辑

    我前段时间对这两个逻辑的概念有点混淆 xff0c 所以就百度查看了一下 xff0c 排名第一的结果就出现了这样的解释 xff1a 数字电路根据逻辑功能的不同特点 xff0c 可以分成两大类 xff0c 一类叫组合逻辑电路 xff08 简称组
  • AD2020如何安装库

    首先快捷键op打开下面界面 然后找到库的位置安装就可以了
  • 白话Android音频系统原理(上)(标贝科技)

    白话Android音频系统原理 xff08 上 xff09 一 基本原理二 初始化准备工作三 播放流程四 录音流程 标贝科技 https ai data baker com source 61 qwer12 填写邀请码fwwqgs xff0
  • keil 工程头文件包涵及结构体重定义问题

    最近在写一个太阳能电池控制板的项目 xff0c 这两天真是收获颇丰 xff0c 把指针又从新学了一遍 xff0c 还是项目坑死人啊啊啊啊啊 下面是我在建立工程时遇到的问题 xff1a 1 头文件包涵问题 xff1a 原先写的程序都是小程序
  • Openmediavault 4.1.3 镜像下载地址

    Openmediavault 4 1 3 镜像下载地址 https nchc dl sourceforge net project openmediavault 4 1 3 openmediavault 4 1 3 amd64 iso
  • 【leetcode】【77】Combinations

    一 问题描述 Given two integers n and k return all possible combinations of k numbers out of 1 n For example If n 61 4 and k 6
  • 激光雷达介绍

    全球汽车行业正在进行自动化变革 xff0c 这将彻底改变交通运输的安全和效率水平 戴姆勒在S级豪华车型中引入L3级自动驾驶 xff08 L3 xff0c 在特定条件下自动驾驶 xff0c 人类驾驶员一旦被请求就会随时接管 xff09 是自动
  • get请求 包括username和password

    方法一 xff1a public static String wisdomNetMessagePlat String sn String encoding throws Exception String result 61 34 34 St
  • Arduino控制L298N

    一般做智能小车或者DIY开发的童鞋需要用到Arduino这狂开发板 xff0c 作为一名好奇心很强的软件开发人员 xff0c 我自然也想尝尝鲜特别是利用Arduino做一些人机交互的项目 xff0c 如果结合了Kinect AR增强现实 x
  • gitlab打tag的作用,以及如何基于tag切分支

    在 GitLab 中 xff0c Tag 是将 Git 项目中特定的提交标记为版本的一种方式 Tag 能够用于标记发布的版本 xff0c 以便于对代码的每个版本进行管理和追踪 打 Tag 的作用主要有以下几点 xff1a 标记版本发布 xf
  • 解析包含用户名密码的FTPURL

    include lt stdio h gt include lt string h gt void parse ftpurl char url char user char passwd char ipaddr uint port char
  • nvidia jetson xavier nx Deepstream Yolov3示例模型运行

    最近在玩nvidia jetson xavier nx的板子 xff0c 特在此做一些笔记 1 进入sample目录 cd opt nvidia deepstream deepstream sources objectDetector Yo
  • go-mysql-elasticsearch+mysql 同步 ElasticSearch(标贝科技)

    标贝科技 https ai data baker com source 61 qwer12 填写邀请码fwwqgs xff0c 每日免费调用量还可以翻倍 一 Elasticsearch xff1a https www elastic co
  • Intel Realsense D400系列相机自校准细节,减少踩坑!!

    自校准 xff08 对任意环境非白墙 注意距离0 4 2米之间 xff0c 深度 xff08 相机拍摄内容中物体所占空间 xff09 50 xff09 xff1a 打开Intel realSense viewer xff1a 连接设备 xf
  • QT实现NMea截取指定片段字符串——$GNGGA(小白第一次编,后期有机会完善代码,高勿)

    总体思路 xff1a 1 读取所有数据 xff08 readAll xff08 xff09 xff09 QByteArray readbuf 61 serial gt readAll 2 查找标志位 xff08 QString中使用inde
  • linux c&&c++关于赋值问题(char*传给另一个char*)

    仅列出四种 xff0c 欢迎补充 xff01 方法一 xff1a 直接 char buf1 61 char buf2 xff0c xff08 xff01 xff01 xff01 这里的赋值是将buf2的地址赋给了buf1 xff0c 此后b
  • B6AC使用说明

    1 接线方式 接线如下图所示 xff0c 如果电池是XT60 xff0c 可以用接鳄鱼夹子的T插夹在XT60的接口上 2 设置方法 2 1 锂电池充电 1 xff09 Batt Type gt 切换选择 LiPo BATT gt Enter
  • 整数转换为字符串

    include lt stdio h gt 反转字符串 char reverse char s char temp char p 61 s p指向s的头部 char q 61 s q指向s的尾部 while q 43 43 q q 交换移动
  • 【工具使用】Modbus Poll软件使用详解

    软件介绍 Modbus Poll是一个模拟Modbus协议主机的上位机软件 xff0c 主要用于模拟测试跟其他从机设备通信的过程 与之成套存在的另一个软件 Modbus Slave xff0c 则是模拟Modbus协议从机的上位机软件 该软