【Modbus】转发: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707899.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习项目-MobileNetV2水果识别模型

本项目旨在研究利用深度学习模型进行水果图像分类的方法,具体包括两个主要任务:一是使用卷积神经网络(CNN)模型进行水果图片的分类,二是探索轻量级神经网络模型MobileNetV2在水果图像分类中的应用。FruitRecognition DeepLearning深度学习小项目,利用CNN和MobileNetV2搭建…

celery异步框架

celery 介绍 https://github.com/celery/celery/ https://docs.celeryq.dev/en/stable/celery是一个分布式异步任务框架,是一个灵活且可靠的,处理大量消息的分布式系统,可以在多个节点之间处理某个任务,是一个专注于实时处理的任务队列,支持任务调度,所以 celery 本质上是…

北航研究生算法期末复习整理

算法设计与分析 数据结构 二叉树 线索二叉树(Threaded Binary Tree) 利用二叉链表中空的指针域指出结点在某种遍历序列中的直接前驱或直接后继 指向前驱和后继的指针称为线索 实现不用栈的树深度优先遍历算法 二叉查找树(Binary Search Tree, BST) 左子树都更小,右子树都更大…

让你的电脑准时“打个盹”:Win10定时休眠

哈喽,大家好,我是木头左!一、Windows 10任务计划程序 在快节奏的工作生活中,常常需要让电脑在特定时间执行某些任务,而Windows 10的任务计划程序就是为此而生的神器。它不仅可以自动更新系统、备份文件,甚至还能帮你管理休息时间。想象一下,工作到深夜,电脑突然自己进入…

说说JavaScript中的事件模型

一、事件与事件流 javascript中的事件,可以理解就是在HTML文档或者浏览器中发生的一种交互操作,使得网页具备互动性, 常见的有加载事件、鼠标事件、自定义事件等 由于DOM是一个树结构,如果在父子节点绑定事件时候,当触发子节点的时候,就存在一个顺序问题,这就涉及到了事…

数据库系统概念 B+树 学习笔记

因为画图所以是纸质的,在这留个档本文来自博客园,作者:lei_yu,转载请注明原文链接:https://www.cnblogs.com/lytql/p/18198419

完整的牛津3000词汇表及牛津5000词汇表

Oxford 3000(牛津3000词)列出了每个英语学习者需要掌握的3000个核心词汇。根据牛津英语语料库中的频率和与英语学习者的相关性进行选择;涵盖CEFR等级A1-B2学习者需要掌握的总单词的75%左右;每个单词都与CEFR等级对标,指导学习者明确所处等级应该掌握的单词;权威专家指导—…

Redis 的安装与配置详解【Redis系列一】

本文介绍了什么是 Redis,安装,以及详细的配置项的介绍。〇、前言 关于 Redis 在日常开发中还是用的比较多的,特别是在秒杀、消息队列、排行榜等数据交互时效要求较高的场景,Redis 都可以轻松应对。 本文将针对 Redis 进行简单介绍,以及如何安装,并罗列下全部配置项。后续…

【土地效能大探秘】低效利用土地如何认定?

在快速推进的城市化进程中,土地资源的有效利用成为了关乎经济可持续发展的关键议题。今天,我们就来深入探讨一个核心问题:低效利用土地是如何被认定的?这不仅关系到土地资源的优化配置,也是提升城市发展质量的关键一环。低效利用土地的定义首先,我们需要明确“低效利用土…

Android 15 的新功能与适配

Android 15 的新功能与适配前台服务变化 前台服务一直是比较损耗电池寿命的操作,在 Android 15 Beta 2 里,**dataSync 和 mediaProcessing 的前台服务类型现在有大约 6 小时的超时时间**,之后系统将调用 Android 15 新的 Service.onTimeout(int, int)方法,之后该服务就不会…

Django自定义模板标签与过滤器

title: Django自定义模板标签与过滤器 date: 2024/5/17 18:00:02 updated: 2024/5/17 18:00:02 categories:后端开发tags:Django模版 自定义标签 过滤器开发 模板语法 Python后端 前端集成 Web组件Django模板系统基础 1. Django模板语言概述 Django模板语言(DTL)是一种用于在…