Modbus通讯模拟环境的搭建(一)

—— Modscan与Modsim的应用

一、前言

在我们工作学习当中,由于没有硬件实物的支持从而会导致我们的学习或者调试工作无法完成。而Modbus协议又是工业自动化中最常用的一个协议。基于其开放性,通用性、经济性的特点,我们在工业自动化设计中经常性的用到。那么下边就针对于无硬件基础的情况下如果搭建虚拟Modbus通讯环境进行介绍。

二、所需工具

1.电脑PC

2.虚拟串口工具:Configure Virtual Serial Port Driver(VSPD)

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

4.虚拟主站工具:ModScan32.exe

三、搭建虚拟环境

虚拟环境的搭建其实就是搭建虚拟的硬件设备,而在Modbus中最重要的就是串口设备(PLC的RS232/485接口、智能仪表的RS232/485接口)。那么虚拟串口工具(VSPD)就是在电脑中建立虚拟的串口(即:COM口)。如图1所示,点击Add pair按钮,即可在PC上增加一组虚拟串口(COM1/COM2)(可修改)(如图2所示),而添加的这组串口是接通的,相当于在实际设备中用通讯线相连接的一组COM口。

图1

图2

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

首先打开Modsim软件,文件 --> 新建,即显示图3所示

图3

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

图4

打开Modscan软件,设置站地址为5,起始地址为1,长度为4(注意,在此模拟环境下该长度无论大小均不会影响到正常通讯,但在实际调试应用中该长度不宜过大),寄存器类型选择3保持性寄存器。然后,连接设置 --> 连接,在弹出的对话框中(图6),设置端口号为COM2,波特率、字长、停止位、奇偶校验等参数设置与图4保持一致。然后点击确认。

图5

图6

图7

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

下面在Modsim软件中,如图8所示,双击40001地址,在弹出的对话框中更改“值”为10,点击更新(或者选择自动模拟)。然后返回Modscan中可以看到40001地址的值也随之改变,如图9所示。

图8

图9

四、其他功能介绍

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

Modscan:配置 -->显示选项 --> 十六进制(此时数据均显示为16进制,同理二进制、浮点数等也一样)(如图11)。然后,配置 -->显示选项 --> 显示数据流,在此可以看到Modbus发送与接收的报文信息(如图10)。

图10

图11

五、报文解析

浅色部分即为Modscan发送的报文:

01 03 00 00 00 0A C5 CD 其中,

01 从站地址

03 Modbus功能码

00 00 为所要读取的Modbus从站的起始地址

00 0A 为所要读取的寄存器长度,即所要读取的为10个字。40001——40010

C5 CD为指令的CRC校验

深色部分即为Modscan接收的报文:

01 03 14 00 0A 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A 29 33

01 从站地址

03 Modbus功能码

14指令中所包含的数据数量,即14H(十进制即20)个字

00 0A 40001地址寄存器的值(16进制)

00 02 40002地址寄存器的值(16进制)

00 03 40003地址寄存器的值(16进制)

00 04 40004地址寄存器的值(16进制)

00 05 40005地址寄存器的值(16进制)

00 06 40006地址寄存器的值(16进制)

00 07 40007地址寄存器的值(16进制)

00 08 40008地址寄存器的值(16进制)

00 09 40009地址寄存器的值(16进制)

00 0A 40010地址寄存器的值(16进制)

29 33为指令的CRC校验

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

六、结束语:

基于该模拟环境,像一些上位机、触摸屏等都可以在线进行模拟学习调试等。另外,本文仅对Modbus RTU 进行了描述,而在此模拟环境下,Modbus TCP协议同样可以进行模拟,操作与此类似,在此不再冗述。另外,后续再讲上位机及触摸屏应该如何在线仿真。

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

虚拟从站工具:ModSim32.exe

虚拟主站工具:ModScan32.exe

欢迎大家留言讨论!!

Modbus通讯模拟环境的搭建(一) —— Modscan与Modsim的应用相关推荐

  1. modbus通讯失败_技成周报38期 | SMART PLC Modbus通讯、组态、模拟量等常见问题

    西门子S7-200SMART PLC 问:ET200是什么? 答:SIMATIC (西门子) ET200 是分布式远程I/O系统,支持PN通讯 问:西门子S7-200SMART PLC能不能控制两个步 ...

  2. 2019年大学生智能车大赛室外光电组+在ROS下搭建仿真模拟环境,编程控制小车完成定位导航仿真

    2019年大学生智能车大赛室外光电组+在ROS下搭建仿真模拟环境,编程控制小车完成定位导航仿真 一.前言 二.准备工作 1.创建工作空间 2.下载racecar源代码包,并编译工程 三.启动仿真 1. ...

  3. 物联网设备固件分析:Firmadyne固件模拟环境搭建

    0x01 前言 本文介绍了在对固件进行分析的环境准备部分,主要是对Firmadyne这个工具的环境搭建,最后搭建完用Netgear的路由器固件进行测试. 更新:直接看评论,用配好的docker镜像: ...

  4. 2019年大学生智能车大赛室外光电组+在ROS下搭建仿真模拟环境,编程控制小车,按照给定赛道完成比赛

    大学生智能车大赛室外光电组,在ROS下搭建仿真模拟环境 一.前言 二.效果图 三.准备工作 [1.在Ubuntu上安装ROS Kinetic](https://blog.csdn.net/qq_425 ...

  5. 西门子PLC伺服大型20轴程序modbus通讯RS232通讯MES通讯气缸,通讯,机械手,模拟量等,各种FB块

    西门子PLC伺服大型20轴程序modbus通讯RS232通讯MES通讯气缸,通讯,机械手,模拟量等,各种FB块 PTO控制20多个轴,100多个气缸,控制2台机器人. 5台PLC智能IO通讯,Modb ...

  6. 路由器固件模拟环境搭建(超详细)

    路由器固件模拟环境搭建 0X01 想说的话

  7. rknn3399pro 2小时入门指南(三)在PC上搭建RKNN模拟环境、 模型转换代码、RK3399 pro使用

    目录 1.前言 官方论坛说明 2.PC-ubuntu系统下tensorflow+keras虚拟环境搭建 3.在PC-ubuntu下搭建rknn模拟环境搭建 4.相关转化代码 (1) h5 -> ...

  8. 西门子Siemens PLc自动配料称重系统,托尼多称,modbus通讯,变频器控制,温度模拟量处理,Pid控制,配料重量处理

    西门子Siemens PLc自动配料称重系统,托尼多称,modbus通讯,变频器控制,温度模拟量处理,Pid控制,配料重量处理,博途V14 V15 V16,V17版 ID:38156735203482 ...

  9. 在windows上模拟linux环境,MSYS2——Windows平台下模拟linux环境的搭建-Go语言中文社区...

    最近从MSYS1.0迁移到了MSYS2.0,简单讲,MSYS2.0功能更强大,其环境模拟更加符合linux.虽然本身来自cygwin,但其集成了pacman软件管理工具,很有linux范,并且可以直接 ...

  10. 三菱fx2n做从站的modbus通讯_三菱FX2N与昆仑通态(MCGS)无线通讯例程

    三菱FX2N与昆仑通泰(MCGS) 无线通讯例程 1系统组成 昆仑通态使用三菱PLC FX2N 通信口扩展 485 接口通过专用协议对 PLC 站点相应寄存器进行读写操作, 从而实现对站点工作状态的控 ...

最新文章

  1. 什么是 Python 的 「内存管理机制」?
  2. 1.html5究竟是什么
  3. python外星人入侵游戏图片_跪求一个问题@关于外星人入侵游戏(《python编程基础从入门到实...
  4. 028_jdbc-mysql大文本
  5. pytorch 之 加载不同形式的预训练模型
  6. 第四单元用计算机写作,计算机复习题
  7. springboot怎么返回404_深度分析:SpringBoot异常捕获与封装处理,看完你学会了吗?...
  8. 【linux】linux 安装 redis
  9. 两台redhat7虚拟机配置ssh免密访问
  10. Bat如何制作菜单选择
  11. 云服务器流量是什么东西_云服务器带宽与流量都有什么关系?不限制流量服务器...
  12. 程序员不好好写报告的结果是很严重的
  13. VSCode格式化XML
  14. Linux环境创建oracle数据库
  15. macOS输入法导致系统卡住鼠标圈圈问题/风火轮
  16. 小说《小城恋情》第三十三章
  17. php聊天动图,聊天室技术 -- 贴图的实现_PHP教程
  18. 【JokerのLabView】VI嵌套。
  19. 【shell笔记】Linux Shell脚本编程入门知识点全面涵盖
  20. Typora自定义主题#简约风主题

热门文章

  1. C#反混淆脱壳工具de4dot的使用(转)
  2. .net reactor 学习系列(五)---.net reactor针对De4Dot脱壳工具的应对
  3. 音视频即时通讯开发功能介绍
  4. c语言 fft程序,FFT算法的使用说明与C语言版实现源码
  5. ToStringBuilder.reflectionToString
  6. eclipse adt bundle不显示Android SDK菜单
  7. eclipse-最新具体汉化教程
  8. oracle视频经典教程,甲骨论经典版课程 Oracle DBA视频教程 超经典Oracle视频教程 博森瑞...
  9. 《JSP程序设计》手机销售网
  10. 计算机服务器安装系统安装教程,Windows Server操作系统安装教程