Modbus通讯模拟仿真环境的搭建

news2024/11/25 20:33:06

文章目录

    • 一、概要
    • 二、所需工具介绍
    • 三、搭建虚拟仿真环境
      • 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)。

二、所需工具介绍

  1. 电脑PC
  2. 虚拟串口工具:Virtual Serial Port Driver(VSPD)

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

  1. 虚拟从站工具:ModSim32.exe

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

  1. 虚拟主站工具: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类似,不再冗述。

四、总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何处理数据集内的缺失值?

照片 奥坎耶尼贡 由Pierre Bamin在Unsplash上拍摄 一、说明 也许数据科学或机器学习问题研究中要求最高的阶段是数据预处理阶段,其目的是最终创建有用的数据集。如果说处理很酷的机器学习模型是阿喀琉斯的热门,那么数据预处理就是被诅咒的西西弗斯。…

Git的高效使用 git的基础 高级用法

Git的高效使用 git的基础 高级用法 前言 什么是Git 在日常的软件开发过程中,软件版本的管理都离不开使用Git,Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linu…

认识EPLAN软件中的各种“点”

原文是网络上的一篇文章,内容有很多错字,我重新编辑了一下发出来,供参考。 在 EPLAN 中,有很多"点",不同的点的具体含义各有不同,只有弄清楚了不同点的含义,在软件应用中才会得心应手…

【爬虫】Java爬虫爬取某招聘网站招聘信息

目录 前言 一、爬虫程序的基本架构 二、如何获取目标网站的页面内容 三、解析HTML页面,提取所需信息 四、代理IP的使用 五、完整代码 总结 前言 随着互联网的普及,越来越多的人开始关注网络上的招聘信息,而传统的求职方式愈发显得不够…

壹基金防灾减灾宣传进社区 提升家庭安全能力

11月7日,瑞金市赋能济困公益协会、蓝天救援队等联合沙洲坝镇红都新城社区一起走进梦想家园小区,开展家庭安全计划社区活动包挑战赛活动暨壹基金安全家园项目防灾减灾宣传社区行活动。 活动中,志愿者针对从洪涝灾害、风灾、火灾、雪灾、地质灾…

k8s:kubectl 详解

目录 1 kubectl 2 基本信息查看 2.1 查看 master 节点状态 2.2 查看命名空间 2.3 查看default命名空间的所有资源 2.4 创建命名空间app 2.5 删除命名空间app 2.6 在命名空间kube-public 创建副本控制器(deployment)来启动Pod(nginx-wl…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(二)

新增员工功能开发 1. 新增员工1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码开发1.2.1 设计DTO类1.2.2 Controller层1.2.3 Service层接口1.2.4 Service层实现类1.2.5 Mapper层 1.3 功能测试1.3.1 接口文档测试 1.4 代码完善1.4.1 问题一1.4.2 问题二1.…

从零开始的C++(十四)

继承: 作用:减少重复代码,简化程序。 用法: class b:public a {//...b中成员 } 在如上代码中,b类以public的方式继承了a类。规定a类是父类、基类,b类是子类、派生类。 关于继承方式&#xf…

Tcl语言:SDC约束命令create_generated_clock详解(下)

相关阅读 Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 设定生成时钟特性 前文的末尾提到,当使用-divide by或-multiply_by选项创建生成时钟时,会根据master clock的时钟周期派生出生成时钟的周期&am…

【Java 进阶篇】Java Filter 快速入门

欢迎来到这篇有关 Java Filter 的快速入门指南!如果你是一名 Java 开发者或者正在学习 Java Web 开发,Filter 是一个强大的工具,可以帮助你管理和控制 Web 应用程序中的请求和响应。本文将向你解释 Filter 的基本概念,如何创建和配…

安全认证框架Shiro入门学习(shiro概述和shiro入门小案例);后续整合SpringBoot,应用程序安全;

权限概述 什么是权限 什么是权限 权限管理,一般指根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。 权限管理再系统中一般分…

小米6安装Ubuntu Touch系统也不是很难嘛

序言 这个文章是用来解说,小米6如何安装Ubuntu Touch系统 正文 安装这个系统需要注意的几点 1.手机必须已经解BL锁 2.没了 安装步骤 先双击打开压缩包查看,按照第一步第二步来进行执行,下面是解压图片 第一步 1.打开第一个文件夹 复制刷入rec的命令.txt里面的内容,然后打开红…

pytorch(小土堆)深度学习

第五节课讲项目的创建和对比 第六节:Dataset,Dataloader Dataset提供一种方式区获取数据及其label(如何获取每一个数据及其label,告诉我们总共有多少的数据) Dataloader为后面的网络提供不同的数据形式 第七节:Dataset类代码实战 显示图片 f…

挑战100天 AI In LeetCode Day05(热题+面试经典150题)

挑战100天 AI In LeetCode Day05(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-72.1 题目2.2 题解 三、面试经典 150 题-73.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&am…

开源的全能维护 U 盘工具:Ventoy

开源的全能维护 U 盘工具:Ventoy 本篇文章聊聊迄今为止,我用着最舒服的一款开源 U 盘启动工具,Ventoy。 写在前面 好久不见,接下来计划写一个比较连续的内容,就先从最小的处着手吧。 经过长久的折腾,除…

Docker本地镜像发布到阿里云或私有库

本地镜像发布到阿里云流程 : 1.自己生成个要传的镜像 2.将本地镜像推送到阿里云: 阿里云开发者平台:开放云原生应用-云原生(Cloud Native)-云原生介绍 - 阿里云 2.1.创建仓库镜像: 2.1.1 选择控制台,进入容器镜像服…

Makefile 总述

目录 一、Makefile 里有什么? 1、显式规则 2、隐晦规则 3、变量的定义 4、文件指示 5、注释 二、Makefile 的文件名 三、引用其它的 Makefile 四、环境变量 MAKEFILES 五、make 的工作方式 一、Makefile 里有什么? Makefile 里主要包含了五个东…

Ps:图层蒙版的基本操作

点击图层蒙版缩览图选中图层蒙版之后,方可进行图层蒙版的操作。 反相蒙版 Invert 将图层蒙版上的白色转换为黑色,黑色转换为白色。 方法一: Ps菜单:图像/调整/反相 Adjustments/Invert 方法二: 快捷键:Ctrl…

window10单机部署hbase-2.5.5-hadoop3

一、介绍 hbase是什么,Hbase是一个分布式,可扩展,支持海量数据存储的noSQL数据库 二、下载hbase https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.5.6/ 三、配置hbase环境变量 三、修改hbase配置文件 在hbase-env.cmd添加如下配置…

【算法-链表2】反转链表 和 两两交换链表节点

今天,带来链表相关算法的讲解。文中不足错漏之处望请斧正! 理论基础点这里 反转链表 1. 思路 链表操作的本质是修改连接关系,本题我们需要反转链表,也就是每次都让当前节点的next指向自己的上一个。而题目给的是单链表&#xf…