Modbus协议基于modscan 的设备数据收发过程模拟
- 一、基本介绍
- 二、工具使用说明
- 2.1 Modsim32的使用 - 模拟从设备 - 生成设备数据
- 2.1.1 新建虚拟设备 - modsim文件
- 2.1.2 打开虚拟设备 - modsim文件
- 2.1.3 连接设置
- 2.1.3.1 modbus /tcp连接
- 2.1.3.2 COM连接
- 2.1.4 配置 - 设置数据自变更
- 2.1.5 完成模拟
- 2.2 ModScan32的使用 - 模拟主设备
- 2.2.1 新建设备
- 2.2.2 连接设置
- 2.2.3 设置寄存器节点号与地址
- 2.2.4 完成模拟
- 2.3 虚拟串口工具VSPD(Virtual Serial Port Driver)
- 2.3.1 VSPD安装
- 2.3.2 VSPD使用
- 2.3.2.1 添加虚拟串口
- 2.3.2.2 删除虚拟串口
- 三、串口调试方法和步骤实例
- 3.1 通过VSPD创建的成对串口COM3和COM4
- 3.2 ModSim32创建的虚拟设备连接到COM4
- 3.3 modscan与Modsim32进行通讯
- 四、采集异常问题排除
回到目录 回到末尾
一、基本介绍
Modbus采用主从式通信,日常使用较多的是Modbus RTU和Modbus TCP/IP两种协议。Modbus RTU是使用串口通讯最广泛的协议之一,市面上有大量的Modbus协议调试工具,本文推荐使用Modscan32和Modsim32,其中,Modscan32作为Modbus主站(模拟上位机软件),Modsim32用来模拟Modbus从站,也就是模拟工业现场的Modbus设备。
- ModScan32用来模拟主设备。它可以发送指令到从机设备(使用Modbus协议的智能仪表终端设备)中,从机响应之后,就可以在界面上返回相应寄存器的数据。
- ModSim32用来模拟从设备。 它可以模拟采用ModBus协议的智能终端。主要用在HMI组态开发中,通过ModSim32改变寄存器状态的值,模拟智能终端的状态变化,来观察HMI画面的变化。使得画面的变量配置正确。
ModSim32和ModScan32可以在同一台电脑中运行,用来模拟采用了Modbus协议的设备的数据收发过程,本文先介绍了虚拟串口工具VSPD(Virtual Serial Port Driver)、Modscan32和Modsim32的使用,再通过实际案例说明了串口调试工具、方法和步骤。
回到目录 回到末尾
二、工具使用说明
2.1 Modsim32的使用 - 模拟从设备 - 生成设备数据
- 进入modsim32目录:
modscan安装包目录/Modsim32/
- 点击
ModSim32
应用程序,进入软件
2.1.1 新建虚拟设备 - modsim文件
需要特别注意的是,Modsim32每个文件仅能同时模拟一个寄存器范围,例如,要同时模拟一个Modbus设备的01线圈和03保持寄存器,需要新建两个设备并进行配置。
初次打开ModSim32需要新建一个虚拟设备
点击文件(File)->新建(new)
Modsim32支持同时新建多台模拟设备,新建完成后,输入:
(1)从站的地址(Device id)
(2)寄存器起始地址(Address)
(3)寄存器数量(Length)
modsim文件默认保存到modscan安装包目录/Modsim32/
目录下。
2.1.2 打开虚拟设备 - modsim文件
点击文件(File)->打开(open),选择对应的modsim文件:
2.1.3 连接设置
配置完成后,点击连接设置(Connect)连接串口:
2.1.3.1 modbus /tcp连接
点击:连接设置(Connect)-> modbus/tcp
输入对应的服务端口
2.1.3.2 COM连接
点击:连接设置(Connect)-> 端口号(COM 号)
输入串口的波特率等参数。当然,ModSim32也支持通过物理串口模拟Modbus设备。
2.1.4 配置 - 设置数据自变更
ModSim32支持设置寄存器值,可以通过固定值、随机值和递增、递减四种方式设置寄存器值。双击某个寄存器,可以设置其对应值:
(1)如果要设置固定值,只需要修改Value值并选择Update按钮进行更新;
(2)如果要进行更高级的模拟,需要点击Auto Simulation,选择Random(随机)或者Increment(递增)Decrement(递减)方式,并且配置最大最小值。
双击数据项,设置属性:
英文版为:
2.1.5 完成模拟
- 模拟完成后,断开串口连接:
点击:连接设置(Connection)-> 断开连接(Disconnect),点击对应的协议端口断开。 - Modsim配置可以保存在文件中,以免进行复杂的模拟时,每次打开Modsim32都需要逐个重新配置。
回到目录 回到末尾
2.2 ModScan32的使用 - 模拟主设备
【工具使用】Modscan32软件使用详解
Modscan32的使用与Modsim32非常类似。
- 进入moscan32目录:
modscan安装包目录/
- 双击
ModScan32
应用程序,进入软件
2.2.1 新建设备
- 如果没有设备,新建设备:点击文件(File)->新建(new)
- 支持同时新建多台模拟设备,新建完成后,输入:
(1)从站的地址(Device id)
(2)寄存器起始地址(Address)
(3)寄存器数量(Length)
编辑完成后,点击 保存图标,自定义文件名,选择合适的位置存储。
2. 如果已经有配置好的设备:
点击文件(File)->打开(open),选择对应的modscan文件打开。
2.2.2 连接设置
配置完成后,连接串口:
点击:连接设置(Connect)-> 连接(Connect)
- 点击下拉框,选择对应的协议类型
- 输入端口号
- 如果是COM,还需要输入正确的配置,波特率等参数
Modbus的类型选择:在Modbus Point Type就是要读取的寄存器区
“01:COIL STATUS”指1#命令DO寄存器
“02:INPUT STATUS”指2#命令DI寄存器
“03:HOLDING REGISERT”指3#命令保存寄存器
“04:INPUT REGISTER”指4#命令输入寄存器
- 点击:确认
如下所示,表明正常连接:
如下所示,等一会后出现弹框,表明连接异常,没连接上。
2.2.3 设置寄存器节点号与地址
2.2.4 完成模拟
- 模拟完成后,断开连接:
点击:连接设置(Connection)-> 断开连接(Disconnect),点击对应的协议端口断开。 - ModsCAN配置可以保存在文件中,以免进行复杂的模拟时,每次打开Modscan都需要逐个重新配置。
编辑完成后,点击 保存图标,自定义文件名,选择合适的位置存储。
回到目录 回到末尾
2.3 虚拟串口工具VSPD(Virtual Serial Port Driver)
串口是基于硬件的物理设备,一般用于计算机和现场控制器、控制器与控制器、控制器与仪表等设备之间的通讯和数据交换,但工业设备一般都安装在工业现场,需要到现场才可以进行调试。
上位机调试串口时,有时是没有硬件设备的,只能虚拟串口,为了验证程序的正确性,在进行实际调试前可以使用虚拟串口工具进行一些模拟和测试。
vspd 一次虚拟2个串口,一个读,一个发,然后连接起来实现自发自收调试,让你的程序读一个串口,另外一个串口你就用来串口调试工具。
下载VSPD:VSPD6.9
2.3.1 VSPD安装
解压缩后,右键单击VSPD.exe,选择以管理员身份运行,选择默认语言English(暂无中文版),选择安装路径(需要记住安装路径,后续步骤要用)。
安装完成后,复制解压缩目录/Cracked
下的vspdctl.dll
文件,并粘贴到前面的安装文件夹下,覆盖目标文件即可完成安装。
回到目录 回到末尾
2.3.2 VSPD使用
VSPD可以成对创建相互连通的虚拟串口。两个串口分别用来模拟相互连接的串口设备(例如,一个串口模拟主站,另一个模拟从站)。
2.3.2.1 添加虚拟串口
这里以COM3和COM4为一对虚拟串口为例:
- 首先添加端口映射,在VSPD中选择确认虚拟串口的名称并选择Add pair以成对添加串口。
- 添加完成后在VSPD中可以看到虚拟串口(virtual ports下,设备的物理串口列举在Physical ports下),在Windows的设备管理器中也能看到Virtual ports虚拟串口。
2.3.2.2 删除虚拟串口
虚拟串口(virtual ports下,设备的物理串口列举在Physical ports下),在Windows的设备管理器中也能看到Virtual ports虚拟串口。
如果要删除虚拟窗口,点击左侧虚拟串口链表里的串口,右侧会出现delete选项,点击delete pair进行删除:
注意:在卸载VSPD前,务必通过Delete ports删除虚拟串口。
回到目录 回到末尾
三、串口调试方法和步骤实例
本例在同一台电脑中运行、模拟采用了Modbus协议的设备的数据收发过程。本例以COM3和COM4为一对虚拟串口为例,将ModSim32创建的虚拟设备连接到COM4,步骤如下:
3.1 通过VSPD创建的成对串口COM3和COM4
点击进入查看如何通过VSPD创建的成对串口COM3和COM4
3.2 ModSim32创建的虚拟设备连接到COM4
需要特别注意的是,Modsim32每个文件仅能同时模拟一个寄存器范围,例如,要同时模拟一个Modbus设备的01线圈和03保持寄存器,需要新建两个设备并进行配置。
-
新建两个虚拟设备文件:本例新建了设备id为1和2两台虚拟设备并都连接在虚拟串口COM4上
-
虚拟设备连接到COM4,输入串口的波特率等参数。
连接成功:
- 设置寄存器值:
3.3 modscan与Modsim32进行通讯
- 通过modscan新建模拟文件,配置要访问的从站设备id地址与寄存器范围:、
- 连接并配置串口参数,与Modsim32进行通讯,连接成对串口的另一个(COM3),并保证两个串口参数一致。
- 连接完成后,Modscan32就可以与前节的Modsim32创建的modbus设备进行通讯了。
如果要修改某个线圈或者寄存器地址,只要双击该地址并进行设置即可,在Modscan中修改后,在Modsim中可以看到修改后的参数值。退出Modscan32前,需要先断开连接。
回到目录 回到末尾
四、采集异常问题排除
在实际开发、应用中,如果没有采集到数据,需要判断是哪里出的问题,可以通过以下步骤进行排查:
- 一、 moscan连接测试:
新建moscan设备,配置对应的属性信息,通过连接设置判断是否能正常连通。
点击查看如何进行modscan连接测试 - 二、 网络及端口是否连通:
ping IP地址
**
(1)能成功ping通网络,说明不是网络问题
(2)ping不同,说明网络存在故障
- 查验端口是否开放:
- cmd窗口输入:
telnet IP地址 端口号
回到目录 回到末尾