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


    一、概要

    在我们工作学习当中,由于没有硬件实物的支持从而会导致我们的学习或者调试工作无法完成。而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类似,不再冗述。

    四、总结

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

  • 相关阅读:
    NC20242 [SCOI2005]最大子矩阵
    css点击文字(非按钮) 能自动改变颜色。
    浅谈OCR图片表格识别与目标检测的关系、异同与互相利用情况
    Panda3d如何获取到可用的模型?Maya、3D Max、OBJ等3D格式转换为egg、gltf文件
    Maven快速上手
    threejs: layers实现图层的显示隐藏切换
    【flutter上传图片】
    docker的再定义镜像和上传阿里云
    PAT(甲级)2022年春季考试
    数据机房中智能小母线与列头柜方案的对比与分析
  • 原文地址:https://blog.csdn.net/weixin_41542513/article/details/134282402