Modbus协议基于modscan 的设备数据收发过程模拟

news2024/11/25 1:37:51


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的使用 - 模拟从设备 - 生成设备数据

  1. 进入modsim32目录:modscan安装包目录/Modsim32/
  2. 点击ModSim32应用程序,进入软件
    1

2.1.1 新建虚拟设备 - modsim文件

  需要特别注意的是,Modsim32每个文件仅能同时模拟一个寄存器范围,例如,要同时模拟一个Modbus设备的01线圈和03保持寄存器,需要新建两个设备并进行配置。

初次打开ModSim32需要新建一个虚拟设备

点击文件(File)->新建(new)
1
Modsim32支持同时新建多台模拟设备,新建完成后,输入:
(1)从站的地址(Device id)
(2)寄存器起始地址(Address)
(3)寄存器数量(Length)
modsim文件默认保存到modscan安装包目录/Modsim32/目录下。

2.1.2 打开虚拟设备 - modsim文件

点击文件(File)->打开(open),选择对应的modsim文件:
2

2.1.3 连接设置

配置完成后,点击连接设置(Connect)连接串口:

2.1.3.1 modbus /tcp连接

点击:连接设置(Connect)-> modbus/tcp
输入对应的服务端口
2

2.1.3.2 COM连接

点击:连接设置(Connect)-> 端口号(COM 号)
  输入串口的波特率等参数。当然,ModSim32也支持通过物理串口模拟Modbus设备。
1

2.1.4 配置 - 设置数据自变更

  ModSim32支持设置寄存器值,可以通过固定值、随机值和递增、递减四种方式设置寄存器值。双击某个寄存器,可以设置其对应值:
(1)如果要设置固定值,只需要修改Value值并选择Update按钮进行更新;
(2)如果要进行更高级的模拟,需要点击Auto Simulation,选择Random(随机)或者Increment(递增)Decrement(递减)方式,并且配置最大最小值。
双击数据项,设置属性:
1
2
英文版为:
1

2.1.5 完成模拟

  1. 模拟完成后,断开串口连接:
    点击:连接设置(Connection)-> 断开连接(Disconnect),点击对应的协议端口断开。
  2. Modsim配置可以保存在文件中,以免进行复杂的模拟时,每次打开Modsim32都需要逐个重新配置。

回到目录    回到末尾

2.2 ModScan32的使用 - 模拟主设备

【工具使用】Modscan32软件使用详解


  Modscan32的使用与Modsim32非常类似。

  1. 进入moscan32目录:modscan安装包目录/
  2. 双击ModScan32应用程序,进入软件
    1
    1

2.2.1 新建设备

  1. 如果没有设备,新建设备:点击文件(File)->新建(new)
    1
  2. 支持同时新建多台模拟设备,新建完成后,输入:
    (1)从站的地址(Device id)
    (2)寄存器起始地址(Address)
    (3)寄存器数量(Length)
    2

编辑完成后,点击 保存图标,自定义文件名,选择合适的位置存储。
1
2. 如果已经有配置好的设备:
点击文件(File)->打开(open),选择对应的modscan文件打开。

2.2.2 连接设置

配置完成后,连接串口:
点击:连接设置(Connect)-> 连接(Connect)

  1. 点击下拉框,选择对应的协议类型
    1
  2. 输入端口号
  3. 如果是COM,还需要输入正确的配置,波特率等参数
    1
    2
    3
    Modbus的类型选择:在Modbus Point Type就是要读取的寄存器区
“01:COIL STATUS”指1#命令DO寄存器
“02:INPUT STATUS”指2#命令DI寄存器
“03:HOLDING REGISERT”指3#命令保存寄存器
“04:INPUT REGISTER”指4#命令输入寄存器
  1. 点击:确认
    如下所示,表明正常连接:
    `
    如下所示,等一会后出现弹框,表明连接异常,没连接上。
    2

2.2.3 设置寄存器节点号与地址

1

2.2.4 完成模拟

  1. 模拟完成后,断开连接:
    点击:连接设置(Connection)-> 断开连接(Disconnect),点击对应的协议端口断开。
  2. ModsCAN配置可以保存在文件中,以免进行复杂的模拟时,每次打开Modscan都需要逐个重新配置。
    编辑完成后,点击 保存图标,自定义文件名,选择合适的位置存储。
    1
    回到目录    回到末尾

2.3 虚拟串口工具VSPD(Virtual Serial Port Driver)

  串口是基于硬件的物理设备,一般用于计算机和现场控制器、控制器与控制器、控制器与仪表等设备之间的通讯和数据交换,但工业设备一般都安装在工业现场,需要到现场才可以进行调试。
  上位机调试串口时,有时是没有硬件设备的,只能虚拟串口,为了验证程序的正确性,在进行实际调试前可以使用虚拟串口工具进行一些模拟和测试。
  vspd 一次虚拟2个串口,一个读,一个发,然后连接起来实现自发自收调试,让你的程序读一个串口,另外一个串口你就用来串口调试工具。
下载VSPD:VSPD6.9

2.3.1 VSPD安装

  解压缩后,右键单击VSPD.exe,选择以管理员身份运行,选择默认语言English(暂无中文版),选择安装路径(需要记住安装路径,后续步骤要用)。
1
2
3
4
5
6
7

安装完成后,复制解压缩目录/Cracked下的vspdctl.dll文件,并粘贴到前面的安装文件夹下,覆盖目标文件即可完成安装。

回到目录    回到末尾

2.3.2 VSPD使用

  VSPD可以成对创建相互连通的虚拟串口。两个串口分别用来模拟相互连接的串口设备(例如,一个串口模拟主站,另一个模拟从站)。

2.3.2.1 添加虚拟串口


这里以COM3和COM4为一对虚拟串口为例:

  1. 首先添加端口映射,在VSPD中选择确认虚拟串口的名称并选择Add pair以成对添加串口。
    1
  2. 添加完成后在VSPD中可以看到虚拟串口(virtual ports下,设备的物理串口列举在Physical ports下),在Windows的设备管理器中也能看到Virtual ports虚拟串口。
    1

2.3.2.2 删除虚拟串口

  虚拟串口(virtual ports下,设备的物理串口列举在Physical ports下),在Windows的设备管理器中也能看到Virtual ports虚拟串口。
1
  如果要删除虚拟窗口,点击左侧虚拟串口链表里的串口,右侧会出现delete选项,点击delete pair进行删除:
在这里插入图片描述
注意:在卸载VSPD前,务必通过Delete ports删除虚拟串口。

回到目录    回到末尾

三、串口调试方法和步骤实例

  本例在同一台电脑中运行、模拟采用了Modbus协议的设备的数据收发过程。本例以COM3和COM4为一对虚拟串口为例,将ModSim32创建的虚拟设备连接到COM4,步骤如下:

3.1 通过VSPD创建的成对串口COM3和COM4

点击进入查看如何通过VSPD创建的成对串口COM3和COM4
1

3.2 ModSim32创建的虚拟设备连接到COM4

  需要特别注意的是,Modsim32每个文件仅能同时模拟一个寄存器范围,例如,要同时模拟一个Modbus设备的01线圈和03保持寄存器,需要新建两个设备并进行配置。

  1. 新建两个虚拟设备文件:本例新建了设备id为1和2两台虚拟设备并都连接在虚拟串口COM4上
    1

  2. 虚拟设备连接到COM4,输入串口的波特率等参数。
    1

连接成功:
1

  1. 设置寄存器值:
    1
    2

3.3 modscan与Modsim32进行通讯

  1. 通过modscan新建模拟文件,配置要访问的从站设备id地址与寄存器范围:、
    2
  2. 连接并配置串口参数,与Modsim32进行通讯,连接成对串口的另一个(COM3),并保证两个串口参数一致。
    1
  3. 连接完成后,Modscan32就可以与前节的Modsim32创建的modbus设备进行通讯了。
    ·
      如果要修改某个线圈或者寄存器地址,只要双击该地址并进行设置即可,在Modscan中修改后,在Modsim中可以看到修改后的参数值。退出Modscan32前,需要先断开连接。
    1
    回到目录    回到末尾

四、采集异常问题排除

  在实际开发、应用中,如果没有采集到数据,需要判断是哪里出的问题,可以通过以下步骤进行排查:

  • 一、 moscan连接测试
    新建moscan设备,配置对应的属性信息,通过连接设置判断是否能正常连通。
    点击查看如何进行modscan连接测试
  • 二、 网络及端口是否连通:
  1. ping IP地址**
    (1)能成功ping通网络,说明不是网络问题
    1
    (2)ping不同,说明网络存在故障
    2
  2. 查验端口是否开放:
  • cmd窗口输入:telnet IP地址 端口号

回到目录    回到末尾

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

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

相关文章

python 加速(1)

文章目录 简单步骤像Python一样做torch 的一切安装Cmake安装 Torch (GPU)CMakeLists.txt试用小样设置 CLion 环境 Cuda配置VS C 环境建上手的文件step1: interpolation.cppstep2: interpolation_kernel.custep3: include/ utils.hstep4: setup.pystep5: …

FPGA_学习_08_有限状态机

状态机是FPGA编程必学内容之一,因为状态机在项目用的特别多。 那为什么状态机这么重要呢? 在写这篇blog之前,搜到CSDN一位大佬的博客,有一句话令我醍醐灌顶: “FPGA不同于CPU的一点特点就是CPU是顺序执行的&#xff0c…

操作系统页面置换算法详解(OPT算法、FIFO算法、LRU算法解释+缺页数计算)

名人说:一花独放不是春,百花齐放花满园。——《增广贤文》 作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 〇、页面置换算法是什么?一、OPT算法1、算法介绍2、举例二、FIFO算法1、…

【嵌入式模型转换】算能盒子SE5 芯片板子BM1684

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.环境准备2. 开发机安装环境 前言 官网文档指引:https://doc.sophgo.com/sdk-docs/v23.03.01/docs_latest_release/docs/SophonSDK_doc/zh/html/c…

ffmpeg capture decklink

确保decklink设备已经接入 lspci | grep Blackm02:00.0 Multimedia video controller: Blackmagic Design DeckLink SDI Micro 确保decklink驱动已经正确安装 lsmod | grep blackmagicblackmagic_io 2068480 2 确保ffmpeg已经启用decklink,如何配置之前的博文已经…

高磁场型霍尔效应测试系统

高磁场型霍尔效应测试系统由:电磁铁、电磁铁电源、高精度恒流源高精度电压表、高斯计、霍尔效应样品支架、标准样品、系统软件。用于测量半导体材料的载流子浓度、迁移率、电阻率、霍尔系数等重要参数,而这些参数是了解半导体材料电学特性必须预先掌控的…

conda下jupyter lab 多kernel

1.安装ipykernel pip install ipykernel2.手动添加 --kernel python -m ipykernel install --name tensorflow --display-name "tensroflow"3. 查看创建的kernel jupyter kernelspec list4. 修改配置文件kernel.json,使得已创建的kernel匹配 5. 修改配…

【Axure教程】根据标签数自动调整尺寸的多选下拉列表

​多选下拉列表常用于需要用户从一组选项中选择多个选项的情况。它提供了一个下拉菜单,用户可以点击展开并选择他们感兴趣的多个选项。多选下拉列表可以用于展示可选标签,并允许用户选择多个标签。例如,在一个博客发布界面上,可以…

【Flutter】如何在 Flutter 中获取设备 ID

文章目录 一、 前言二、 设备 ID 的重要性1. 什么是设备 ID2. 设备 ID 的作用 三、 在 Flutter 中获取设备 ID1. 需要的工具和库2. 简单代码示例3. 完整可以运行的代码 四、 注意事项1. 权限问题2. 设备兼容性问题 五、 总结 一、 前言 在移动应用开发中,有时我们需…

飞书小程序开发教程——获取app_access_token

前言 最近在玩飞书小程序,真是受够了某信的小程序,一坨坨的限制加恶心人的手段。体验了飞书加飞书文档的功能真的还是飞书好用,又可以定制机器人啥的真方便。 但是飞书除了开发者文档真没啥资料,估计没啥人写吧…本专栏后续就慢慢…

DVPP媒体数据处理视频编码问题案例

DVPP(Digital Vision Pre-Processing)是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要功能包括图像编解码、视频编解码、图像抠图缩放等。 本期就分享几个关于DVPP视频编码问题…

未磁科技全球首台64通道无液氦心磁图仪及首个培训基地落户北京安贞医院

【全球首台64通道无液氦心磁图仪在北京安贞医院举行开机仪式】 近日,在北京安贞医院举行了未磁科技全球首台64通道无液氦心磁图仪开机仪式,中国医学装备协会赵自林理事长、北京安贞医院纪智礼书记、张宏家院长、宋现涛教授,以及未磁科技蔡宾…

【离散化+枚举】代码源每日一题div2 全部相等

全部相等 - 题目 - Daimayuan Online Judge 题意: 思路: 首先,子序列最长,想到了DP,但是子序列DP,D不出来,所以要放弃想法 不难发现,这道题和顺序没有关系,所以可以说…

Vision Pro,难成初代iPhone

“一个全新的增强显示平台,一个革命性的新产品”,这是苹果CEO库克给Apple Vision Pro的评价。 当苹果拿出Vision Pro时,想必整个科技行业都感到震惊。这不仅是因为苹果时隔十六年后,再次在WWDC带来“革命性产品”,更是…

Ai 赋能|这 6 款免安装的工具,功能超神~

今天小呆给小伙伴们分享几款小巧好用的工具,功能非常实用,而且全都免费,值得大家使用! 1、Pix Fix 修复画质损坏的图像 Pix Fix 是一个免费的线上图片工具,可以对过度压缩造成损毁的图片以算法为基础进行噪点的修复&…

【枚举+数学】代码源每日一题div2 数学

数学 - 题目 - Daimayuan Online Judge 题意: 思路: 首先把条件理一下 gcd(s1,s2)K 按照惯用套路 设 s1k1*K s2k2*K 那么就是(k1k2)*Ksum 所以K是sum的一个因子 因此只需要枚举sum的因子即可 但是注意数据范围:1e9 说明不能直接枚…

MySQL数据库加密

有时候为防止别人攻击数据库,直接读取修改数据,我们会对数据库数据进行加密。 一:AES_ENCRYPT(需要加密的数据,密钥) AES_DECRYPT(需要解密的数据,刚才的密钥) 如:update area set jiamiAES_ENCRYPT(test数据加密,miyao) where …

Python基础知识掌握之 字符串格式化

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 为了确保字符串按预期显示,我们可以使用 format() 方法对结果进行格式化。 字符串 format() format() 方法允许您格式化字符串的选定部分。 有时文本的一部分是你无法控制的,也许它们来自数据…

分享几个免费设计生成工具 (第二期)

今天来给大家分享几个国外免费的设计生成工具 A. Tools https://www.a.tools/ 一个免费实用的在线工具箱,提供了 85 个特色工具,包含图形图像、日期和时间、文本编辑器、解密和加密、编程与设计、图表生成器等等,还有热门的 AI聊天提示生成器…

freemarker学习记录

freemarker 介绍 FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库&#xff0c…