感谢https://blog.csdn.net/byxdaz/article/details/77979114原创,由于CSDN经常调整,故再编辑收藏,并修改了部分BUG。

一、介绍

Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支持ModbusRTU、ASCII、TCP/IP。用来帮助开发人员测试Modbus从设备,或者其它Modbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改变一个单独的寄存器,简单地双击这个值即可。或者你可以改变多个寄存器/线圈值。提供数据的多种格式方式,比如浮点、双精度、长整型(可以字节序列交换)。

Modbus Slave: Modbus从设备仿真器,可以仿真32个从设备/地址域。每个接口都提供了对EXCEL报表的OLE自动化支持。主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。可以32个窗口中模拟多达32个Modbus子设备。与Modbus Poll的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22和23,监视串口数据。

二、Modbus Poll使用

1)、安装注册: 

安装完毕,在桌面能够看到ModbusPoll的快捷方式,双击该快捷方式,打开软件,打开后界面如下图所示。

单击Connection->Connect,弹出注册窗口;打开压缩包解压后的readme文件,复制ModbusPoll的序列号5A5742575C5D10,粘贴到注册窗口的注册栏,如下图所示,点击OK,注册完毕。

modbus poll 4.3.4程序主窗口介绍

其中:Tx = 4表示向主站发送数据帧次数,图中为4次; Error = 0表示通讯错误次数,图中为0次; ID = 1表示模拟的Modbus子设备的设备地址,图中地址为1;F = 03表示所使用的Modbus功能码,图中为03功能码; SR = 1000ms表示扫描周期。红字部分,表示当前的错误状态,“No Connection”表示未连接状态。

3)、参数设置:

单击菜单【Setup】中【Read/Write Definition.. F8】进行参数设置,会弹出参数设置对话框。

其中:A. Slave为要访问的Modbus从站(从机)的地址,对应主窗口(主画面)中的ID值,默认为1。  B. Function 为寄存器功能码的选择,共四种,分别对应关系如下:

代码

名称

寄存器PLC地址

位操作/字操作

操作数量

01

Read/Write  位 状态

00001-09999

位 bit

单个或多个

02

Read (输入)位

10001-19999

位 bit

单个或多个

03

Read/Write (保存)字

40001-49999

字 word

单个或多个

04

Read (输入)字

30001-39999

字 wrod

单个或多个

05

写单个线圈

00001-09999

位 bit

单个

06

写单个保持寄存器

40001-49999

字 word

单个

15

写多个线圈

00001-09999

位 bit

多个

16

写多个保持寄存器

40001-49999

字 word

多个

C. Address 为寄存器起始地址,默认从0开始。

D. Length为寄存器连续个数,默认为10个,对应组态软件的通道数量。 

E. Scan Rate为读取数据周期,单位毫秒,默认为1000ms。  

设置完成单击OK按钮,模拟窗口将显示定义的寄存器列表。

4)、显示设置: 

数据显示方式设置:

默认情况下,寄存器数据的显示方式为Signed方式(16进制有符号二进制),数据范围为-32768~32767。如果用户要以其他数值方式显示,可以通过菜单【Display】进行选择设置,如下图所示:

地址格式设置: Modbus Slave默认使用PLC地址,【Display】菜单中【PLC Addresses(Base 1)】为默认选中状态,默认寄存器的起始地址为1开始,此点与组态软件的Modbus串口和TCP数据转发驱动是相同的。如果测试时需要设置起始地址为0开始,可选择【Protocol Addresses(Base 0)】。一般情况下使用默认PLC地址即可。

使用工具栏的”Communication Traffic”按钮,可以显示出当前发送命令和接受的数据。

5)、串口连接: 

单击菜单【Connection】中【Connect.. F3】进行串口连接,如下图 :

其中:Port3,表示使用的串口(COM3),根据实际情况选择不同的串口或者TCP/IP进行连接。Mode,表示Modbus协议模式,使用串口时有效;使用TCP/IP时自动为TCP模式。Response Timeout,表示读取超时时间,从站在超时时间内没有返回数据,则认为通讯失败。Delay Between Polls,每次扫描的最小间隔时间,默认为10ms。Remote Server,表示TCP/IP模式时的终端从站设备的网络设置。IP Address,表示TCP/IP模式时从站IP地址。  Port,表示TCP模式时从站网络端口。用户可根据需要对参数进行设置,默认为:串口1、波特率9600、数据位8位、无校验位、1位停止位。确认设置后点击OK按钮即可。如果连接并读取正确,此时主窗口将显示读取寄存器的相关信息。

6)、寄存器值改变: 

在主窗口寄存器地址上双击鼠标,弹出修改对话框,如下图:

在Value输入框中输入值确认即可。范围为-32768——32767。 

其中:Slave为要访问的Modbus从站的地址,对应主画面中的ID值,默认为1。  Address 为当前操作的寄存器的地址。图中为对寄存器40001操作。  Use Function为所使用的功能码,可以选择06或16功能码进行写入。

7)、查看通讯数据帧: 

单击【Display】菜单中的【Communication…】或者单击工具栏上【101】按钮,可以调出串口收发数据帧监视信息对话框“CommunicationTraffic”,用来查看分析收发的数据帧。如下图所示:

其中:前6位为数据帧的序号。  Rx表示接收的数据帧。  Tx表示发送的数据帧。

8)、断开连接: 

点击【Disconnect  F4】即可断开连接结束测试,此时主窗口中出现红色的“No Connection”表示未连接状态。

三、Modbus Slave使用

1)、安装注册:
安装软件,安装完成之后,双击执行ModbusSlave快捷方式即可。

注册方法:单击Connection->Connect,弹出注册窗口;打开压缩包解压后的readme文件,复制ModbusPoll的序列号,粘贴到注册窗口的注册栏,点击OK,破解完毕。ModbusSlave的安装破解与ModbusPoll类似,在此不再赘述。

2)、主窗口:
软件主窗口如下图所示:

此时处于“Noconnection”未连接状态,如果只测试“04输出保持寄存器”,则可直接点击跳到第3.步,直接进行连接即可。

3)、参数设置:
点击菜单“Setup”中“Slave Definition.. F2”进行参数设置,会弹出如下图对话框。

其中:A.Slave为Modbus从站地址,对应主画面中的ID值,默认为1。
B. Function 为寄存器功能码的选择,共四种,分别对应关系如下:

代码

中文名称

寄存器PLC地址

位操作/字操作

操作数量

01

读线圈状态

00001-09999

位操作

单个或多个

02

读离散输入状态

10001-19999

位操作

单个或多个

03

读保持寄存器

40001-49999

字操作

单个或多个

04

读输入寄存器

30001-39999

字操作

单个或多个

05

写单个线圈

00001-09999

位操作

单个

06

写单个保持寄存器

40001-49999

字操作

单个

15

写多个线圈

00001-09999

位操作

多个

16

写多个保持寄存器

40001-49999

字操作

多个

C. Address 为寄存器起始地址。默认从1开始。
D. Length为寄存器连续个数。默认为10个。

设置OK按钮,模拟窗口将显示定义的寄存器列表:

其中:ID,表示模拟的Modbus子设备的设备地址;F,表示功能码
点击对应的寄存器,即可修改对应寄存器的值或者状态。比如2寄存器值修改成9,9寄存器值修改成100。

4)、显示设置:
数据显示方式设置:
默认情况下,寄存器数据的显示方式为Signed方式(16进制无符号二进制),数据范围为范围为-32768——32767。如果用户要以其他数值方式显示,可以通过菜单“Display”进行选择设置,如下图所示:

地址格式设置:
Modbus Slave默认使用PLC地址,“Display”菜单中“PLC Addresses(Base 1)”为默认选中状态,默认寄存器的起始地址为1开始,此点与组态软件的Modbus串口和TCP数据转发驱动是相同的。如果测试时需要设置起始地址为0开始,可选择“Protocol Addresses(Base 0)”。一般情况下使用默认PLC地址即可。

5)、连接:
点击菜单“Connection”中“Connect.. F3”进行连接。弹出连接对话框:

其中:Port2,表示使用的串口(COM2),根据实际情况选择不同的串口或者TCP/IP进行连接
Mode,表示Modbus协议模式,使用串口时有效;使用TCP/IP时自动为TCP模式
Flow Control,表示流控制,串口模式时有效;
Ignore Unit ID,表示TCP模式时忽略无效的组编号
用户可根据需要对串口参数进行设置,默认为:串口1,波特率9600,数据位8位,无校验位,1位停止位。确认设置后点击“OK”按钮即可。此时主窗口中红色的“No connection”表示未连接状态的信息消失,表明从站处于正常连接状态。

6)、寄存器值改变:
在主窗口寄存器地址上双击鼠标,弹出修改对话框,如下图:

在输入框中输入值确认即可。范围为-32768——32767。
其中:Auto increment选项钩选上后,对应寄存器的值可以每1秒种增加1。

7)、查看通讯数据帧:
点击“Display”菜单中的“Communication…”,可以调出串口收发数据帧监视信息对话框,用来查看分析收发的数据帧。如下图所示:

其中:前6位为数据帧的序号。
Rx:表示接收数据帧。
Tx: 表示发送数据帧。

8)、断开连接:
点击“Disconnect F4”即可断开连接结束测试,此时主窗口中出现红色的“No connection”表示未连接状态。

四、Modbus主机/从机模拟程序

1)、安装vspd虚拟串口工具。通过工具添加COM2和COM3两个端口。

2)、接下来打开已经安装的modbuspoll和modbus slave软件,分别按“F8”配置主从端的相关配置,如图:


以上配置的是10个计数器从机设备ID为1但只读取前6个计数器的数据,可根据自己的情况设置。

2、接下来按分别按“F3”进行连接,注意修改连接界面的端口,主从机分别选择我们虚拟出来的com2和com3端口,因为我只用到了RTU模式,所以其他选项如波特率9600,比特位8,校验位1,无等价位等可以保持不变,然后点击确定进行连接,未连接成功窗口第二行会给出提示信息。

通讯开始,主机端显示:TX=232,Err=0,ID=1,F=03,SR=1000ms。意思是,发送232次命令,错误次数,从机ID,功能号,轮询间隔。

使用工具栏的”Communication Traffic”按钮,可以显示出当前发送命令和接受的数据。

Modbus Poll 主站4.3.4 :http://www.cr173.com/soft/21405.html

Modbus Slave 工具:http://www.cr173.com/soft/21410.html

Modbus调试精灵 7.04绿色版:http://www.cr173.com/soft/5480.html

Modbus测试工具ModbusPoll与Modbus Slave使用方法的更多相关文章

  1. Modbus测试工具 :Modbus Poll,Modbus Slave

    源:http://blog.sina.com.cn/s/blog_49352090010138e7.html Modbus测试工具 :Modbus Poll,Modbus Slave

  2. Appscan_web安全测试工具 (含修改启动浏览器的方法)

    安全测试应该是测试中非常重要的一部分,但他常常最容易被忽视掉. 尽管国内经常出现各种安全事件,但没有真正的引起人们的注意.不管是开发还是测试都不太关注产品的安全.当然,这也不能怪我们苦B的“民工兄弟” ...

  3. Modbus tcp 格式说明 通讯机制 附C#测试工具用于学习,测试

    前言: 之前的博客介绍了如何用C#来读写modbus tcp服务器的数据,文章:http://www.cnblogs.com/dathlin/p/7885368.html 当然也有如何创建一个服务器文 ...

  4. C# 开发Modbus Rtu客户端 modbus测试Demo,Modbus 串口通信 , 虚拟MODBUS-RTU测试

    前言 本文将使用一个NuGet公开的组件技术来实现一个ModBus RTU的客户端,方便的对Modbus rtu的服务器进行读写,这个服务器可以是电脑端C#设计的,也可以是PLC实现的,也可以是其他任 ...

  5. Modbus软件开发实战指南 之 开发自己的Modbus Poll工具 - 2

    接上一篇文章的内容. 看了前面需求提到的复杂的命令行解析功能,很多人立马开始发怵,其实大可不必. 我们都知道,Linux下的程序往往都提供了复杂的命令行参数处理机制,因为这是与 其他程序或用户进行交互 ...

  6. Modbus软件开发实战指南 之 开发自己的Modbus Poll工具 - 3

    Modbus-RTU 一.数据分析       两个设备(单片机)通讯,用的是Modbus协议.      在单片机中拿出一部分内存(RAM)进行两个设备通讯,例如: 说明: OX[20]   代表是 ...

  7. 高并发压力测试工具Locust(蝗虫)

    What is Locust? Locust is an easy-to-use, distributed, user load testing tool. It is intended for lo ...

  8. 面向Web应用的并发压力测试工具——Locust实用攻略

    1. 概述 该方案写作目的在于描述一个基于Locust实现的压力测试,文中详细地描述了如何利用locustfile.py文件定义期望达成的测试用例,并利用Locust对目标站点进行并发压力测试. 特别 ...

  9. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

随机推荐

  1. 网络最大流增广路模板(EK & Dinic)

    EK算法: int fir[maxn]; int u[maxm],v[maxm],cap[maxm],flow[maxm],nex[maxm]; int e_max; int p[maxn],q[ma ...

  2. mysql正则表达式及应用

    mysql where子句的模式匹配 今天在应用中遇到了这样的一个问题,有一个字段 t1,其中的值类似于:1,1,1,2,3,3,4,4,5,5,2,4,3,2,1,2 需要从里面搜索出比如说:第一个 ...

  3. Restful WebService简介

    RESTful Web Services已经渐渐開始流行, 主要是用于解决异构系统之间的通信问题.非常多站点和应用提供的API,都是基于RESTful风格的Web Services,比較就有Googl ...

  4. WEB端应该使用DataTable/DataSet吗?

    有一次和同事讨论起具体的技术细节,同事说不要用什么实体类,从数据库访问到的数据,直接用DataTable.DataSet 就好.理由是,从获取到的数据集转换成实体类,有一定的性能损耗. 呵呵,性能.我 ...

  5. Ubuntu 安装Consolas字体

    下载 YaHei.Consolas https://code.google.com/p/uigroupcode/downloads/list 安装 1.创建文件夹 sudo mkdir -p /usr ...

  6. 【附论文】Facebook推面部识别软件 精准度高达97.25%

    论文下载链接:http://pan.baidu.com/s/1gd86HXp 以下转载自36kr. 认脸对于人来说不是什么难事,除非是韩国小姐才需要最强大脑.但是计算机做同样的事情就要困难得多了.不过 ...

  7. linux centos7 安装mysql-5.7.17教程(图解)

    1系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql 2下 ...

  8. iOS组件化开发入门 —— 提交自己的私有库

    前言:本人也是初次接触组件化开发,感觉现有的资料太繁杂,就简单整理了一下,在此跟大家分享一些入手的经验,主要就是描述cocoapods的私有库封装和提交.组件化开发是个大的议题,涉及到架构思路.设计模 ...

  9. 堆和栈的区别【以java为例潜入分析】

     Java的堆是一个运行时数据区,类的对象从中分配空间,这些对象通过new等指令建立. 堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动 ...

  10. 赋予option元素点击事件后,点击select时却触发了option事件。如何解决?

    将select的优先级提到option之前就可以了. 方法:为select元素添加position:relative: <select class="adt" name=&q ...