首页 > 其他分享 >【Modbus】转发:Modbus通讯模拟仿真环境的搭建

【Modbus】转发:Modbus通讯模拟仿真环境的搭建

时间:2024-05-17 19:18:45浏览次数:11  
标签:仿真 寄存器 转发 如下 Modbus 虚拟 串口 所示

文章目录
一、概要
二、所需工具介绍
三、搭建虚拟仿真环境
1.Modbus RTU虚拟仿真环境搭建
1.1.虚拟串口工具(VSPD)使用
1.2.虚拟从站工具(ModSim32)使用
1.3.虚拟主站工具(Modscan32)使用
1.4.更改虚拟从站工具(ModSim32)的Modbus寄存器的值
1.5.更改虚拟主站工具(Modscan32)的Modbus寄存器的值
2. Modbus TCP虚拟仿真环境搭建
2.1.虚拟从站工具(ModSim32)使用
2.2.虚拟主站工具(Modscan32)使用
2.3.更改虚拟从站工具(ModSim32)的Modbus寄存器的值
2.4.更改虚拟主站工具(Modscan32)的Modbus寄存器的值
3.其他功能介绍
四、总结
一、概要
在我们工作学习当中,由于没有硬件实物的支持从而会导致我们的学习或者调试工作无法完成。而Modbus协议又是工业自动化中最常用的一个协议。基于其开放性,通用性、经济性的特点,我们在工业自动化设计中经常性的用到。那么下边就针对于无硬件基础的情况下搭建虚拟Modbus通讯环境进行介绍(包括MODBUS RTU和MODBUS TCP)。

二、所需工具介绍
工具下载地址:百度网盘下载(原文有链接,手机APP可以下载)

电脑PC
虚拟串口工具:Virtual Serial Port Driver(VSPD)
Virtual Serial Port Driver(VSPD) 是由 Eltima Software 开发的软件包,其功能如同 Windows机器上的虚拟 COM 端口仿真器。该软件使你可以创建虚拟 COM 端口,你能使用虚拟零调制解调器电缆成对连接。你所创建的每个虚拟串口都将与你的串行应用程序进行通信,就好像它们是实际物理端口一样。

虚拟从站工具:ModSim32.exe
ModSim32用来模拟从设备,它可以模拟采集Modbus协议的智能终端,主要用在HMI组态开发中,通过ModSim32改动寄存器的值,模拟智能终端的数据变化,来观察HMI画面的变化,从而使用得画面的变量配置正确

虚拟主站工具:ModScan32.exe
ModScan32用来模拟主设备,它可以发送指令到从机设备(使用Modbus协议的之智能仪表终端设备)中,从机响应之后,就可以在界面上显示寄存器数据。

三、搭建虚拟仿真环境
1.Modbus RTU虚拟仿真环境搭建
需要用到的软件:Virtual Serial Port Driver(VSPD)、ModSim32.exe和ModSim32.exe
Modbus RTU虚拟仿真环境的搭建其实就是搭建虚拟仿真的Modbus RTU硬件设备,而在Modbus RTU中最重要的就是串口设备(PLC的RS232/485接口、智能仪表的RS232/485接口等),在没有串口设备的情况下,我们需要通过虚拟串口工具(VSPD)在电脑中建立虚拟的串口(即:COM口)。

1.1.虚拟串口工具(VSPD)使用
①虚拟串口工具(VSPD)安装和汉化
第一步:下载虚拟串口工具,如下所示。

 第二步:安装虚拟串口工具,如下图所示

 

 第三步:复制不补丁里的两个补丁文件到虚拟串口工具安装目录,如下图所示。

 

 ②虚拟串口工!具(VSPD)的使用

打开虚拟串口工具,如下图1所示,点击“添加端口”按钮,即可在PC上增加一组虚拟串口(COM1/COM2)(可修改)(如图2所示),而添加的这组串口是接通的,相当于在实际设备中用通讯线相连接的一组COM口。

 图1

 图2

 

③通过串口助手测试虚拟串口创建出来的COM1和COM2。
如果串口1和串口2连接上将会如下图所示。

 

如下图所示,从串口1发送“111”到串口2,和从串口2发送“222”到串口1。

 我们可以看到串口1接收可以看到“222”,串口2接收可以看到“111”。

④关闭串口调试助手连接
至此,虚拟串口部分就搭建完成。接下来就可以使用Modscan和Modsim进行下一步测试。

1.2.虚拟从站工具(ModSim32)使用
首先打开Modsim32软件,文件 --> 新建,如下图所示,设备从站地址为1,modbus寄存器地址为1,寄存器长度为8,寄存器选中“03:HOLDING REGISTER”。

 

同理,新建线圈、输入状态和输入寄存器,如下图所示,参数一样。

 连接设置 --> 连接 --> 端口1,设置协议格式、设置波特率、数据位、停止位、奇偶校验如下图所示,然后点击确定。

 


1.3.虚拟主站工具(Modscan32)使用
首先打开Modscan32软件,文件 --> 新建,如下图所示,设备从站地址为1,modbus寄存器地址为1,寄存器长度为8,寄存器选中“03:HOLDING REGISTER”。

 同理,新建线圈、输入状态和输入寄存器,如下图所示,参数一样。

 连接设置 --> 连接 --> 端口2,设置波特率、数据位、停止位、奇偶校验,等参数设置与ModSim32上设置保持一致,如下图所示,然后点击确定。

 

 如下图所示,发送量与接收量一直再变化则表明通讯正常。一般情况下发送量与接收量相等。

1.4.更改虚拟从站工具(ModSim32)的Modbus寄存器的值
在Modsim32软件中,如下图所示,双击00001地址,在弹出的对话框中更改“值”为“开”,点击更新。

 同理,如下图所示,分别双击“10001”地址、“40001”地址和“30001”地址, 设置值分别为“开”,“1234”和“4321”。

返回Modscan32中可以看到00001、10001、30001和40001地址的值也随之改变,如下图所示。,如下图所示。

 1.5.更改虚拟主站工具(Modscan32)的Modbus寄存器的值

在Modscan32软件中,如下图所示,双击00001地址,在弹出的对话框中更改“值”为“关”,点击更新。

 

同理,如下图所示, “40001”地址, 设置值为“1111”,作为主站不能更改输入状态和输入寄存器,因为它们对于主站来说是只读的。

返回ModSim32中可以看到00001地址和40001的值也随之改变,如下图所示。

 2. Modbus TCP虚拟仿真环境搭建

2.1.虚拟从站工具(ModSim32)使用
首先打开Modsim32软件,文件 --> 新建,如下图所示,设备从站地址为1,modbus寄存器地址为1,寄存器长度为8,寄存器选中“03:HOLDING REGISTER”。

同理,新建线圈、输入状态和输入寄存器,如下图所示,参数一样。

连接设置 --> 连接 -->Modbus/TCP服务器,设置Modbus/TCP服务端口为502,如下图所示,然后点击确定。

 2.2.虚拟主站工具(Modscan32)使用

首先打开Modscan32软件,文件 --> 新建,如下图所示,设备从站地址为1,modbus寄存器地址为1,寄存器长度为8,寄存器选中“03:HOLDING REGISTER”。

 同理,新建线圈、输入状态和输入寄存器,如下图所示,参数一样。

连接设置 --> 连接 -->Remote modbus TCP Server,设置IP Adrress为127.0.0.1(本机IP),端口为502,等参数设置与ModSim32上设置保持一致,如下图所示,然后点击确定。

 

如下图所示,发送量与接收量一直再变化则表明通讯正常。一般情况下发送量与接收量相等。

 2.3.更改虚拟从站工具(ModSim32)的Modbus寄存器的值

在Modsim32软件中,如下图所示,双击00001地址,在弹出的对话框中更改“值”为“开”,点击更新。

 同理,如下图所示,分别双击“10001”地址、“40001”地址和“30001”地址, 设置值分别为“开”,“1234”和“4321”。

 

 返回Modscan32中可以看到00001、10001、30001和40001地址的值也随之改变,如下图所示。

 

2.4.更改虚拟主站工具(Modscan32)的Modbus寄存器的值

在Modscan32软件中,如下图所示,双击00001地址,在弹出的对话框中更改“值”为“关”,点击更新。

 

同理,如下图所示, “40001”地址, 设置值为“1111”,作为主站不能更改输入状态和输入寄存器,因为它们对于主站来说是只读的。

 3.其他功能介绍

在Modscan32和Modsim32中支持显示数据类型的转换及显示数据与显示数据流的切换。在16进制的数据类型下选择显示数据流,则可清晰的看到Modbus协议发送和接收的报文。如图所示。

 

具体操作如下:Modscan:配置 -->显示选项 --> 十六进制(此时数据均显示为16进制,同理二进制、浮点数等也一样)。

然后,配置 -->显示选项 --> 显示数据流,在此可以看到Modbus发送与接收的报文信息,如下所示。

 

Modsim:显示 --> 十六进制(此时数据均显示为16进制,同理二进制、浮点数等也一样)。然后,显示 --> 显示数据流,在此可以看到Modbus发送与接收的报文信息。其与Modscan类似,不再冗述。

四、总结
基于该模拟仿真环境,像一些上位机、触摸屏等都可以在线进行模拟学习调试,也可以作为上位机使用,调试从机设备等。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_41542513/article/details/134282402

标签:仿真,寄存器,转发,如下,Modbus,虚拟,串口,所示
From: https://www.cnblogs.com/excellentHellen/p/18198443

相关文章

  • 三维工厂仿真软件-离散物流机器人编程与PLC
    在智能制造的发展进程中,3D仿真技术已经成为推动产业升级、优化生产流程的关键工具。其中,VisualComponents软件以其优异的表现和广泛应用,成为了倍受诸多制造型企业青睐的三维工厂仿真与物流规划解决方案。本文为您揭示其如何在离散物流仿真,机器人编程以及PLC调试等领域发挥关键作......
  • m基于Q-Learning强化学习的路线规划和避障策略matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:      2.算法涉及理论知识概要      Q-Learning是强化学习中的一种重要算法,它属于无模型(model-free)学习方法,能够使智能体在未知环境中学习最优策略,无需环境的具体模型。将Q-Learning应用于路线规划和避障策略中,智能......
  • ModbusRTU从站扫描工具 python实现
    扫描指定串口下,有哪些modbusRTU服务端[1-247]frompymodbus.clientimportModbusSerialClientasModbusClientfrompymodbus.exceptionsimportModbusIOException,ConnectionException,NoSuchSlaveExceptionimporttimedefread_holding_registers(client,slave_addres......
  • 初识上位机(上):搭建PLC模拟仿真环境
    大家好,我是Edison。作为一个工业自动化领域的程序员,不懂点PLC和上位机,貌似有点说不过去。这里我用两篇小文带你快速进入上位机开发领域。后续,我会考虑再出一个系列文章一起玩工控上位机。什么是上位机上位机,通常是指在数据采集与控制系统中位于较高层级、具有较强数据处理能力......
  • ModbusTCP从站(服务端)扫描工具 python实现
    扫描指定IP网络下,有哪些modbusTCP服务端[1-247]frompymodbus.clientimportModbusTcpClientfrompymodbus.exceptionsimportModbusIOException,ConnectionException,NoSuchSlaveExceptionimporttimedefread_holding_registers(client,slave_address):""&quo......
  • 基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览优化前    优化后     2.算法运行软件版本matlab2022a  3.算法理论概述       时间序列回归预测是数据分析的重要领域,旨在根据历史数据预测未来时刻的数值。近年来,深度学习模型如卷积神经网络(ConvolutionalNeuralN......
  • Windows 10开启免密ssh登录&远程端口转发
    安装OpenSSH服务端设置-系统-可选功能-添加功能-在这里搜索OpenSSH服务端,然后开始安装即可开启sshd服务端可以使用图形界面使用命令行执行services.msc找到服务启动即可,并将其设置为自动。可以使用powershell执行命令启动服务启动服务:Start-Servicesshd查看状态:Get-Service......
  • 工业通讯协议(三)- Modbus
    一.概念Modbus是一种应用层协议,主要用于工业环境中,允许不同设备之间的通信,例如传感器、控制器、仪表等。它是最早的现场总线之一,由Modicon公司(现为施耐德电气的一部分)在1979年为其可编程逻辑控制器(PLC)开发。Modbus协议基于简单的请求/响应模型,并且可以运行在不同类型的物理层上......
  • 谈谈仿真云应用和重要组成技术
    云仿真技术正在各个领域展现出强大的应用潜力,它通过将计算和仿真资源移至云端,为用户提供高效、灵活和可靠的仿真环境。无论是建筑、医疗、娱乐还是教育培训,云仿真都为各行业带来了前所未有的机遇和挑战,本文将深入探讨云仿真的基本概念以及云仿真平台适合的应用场景有哪些,通过对仿......
  • springmvc中的转发和重定向
    转发和重定向的区别转发是一个请求一次响应,重定向是两次请求两次响应;转发地址栏不发生变化,重定向地址栏发生变化(会显示重定向后的地址);转发只能转发到本项目中其他控制器(在学习JavaWeb的时候,说的是:转发只能转发到本项目中其他Servlet),重定向不仅能重定向到本项目中的其......