modbus协议 Mthings模拟器使用

进制转换

HEX 16进制 (0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F表示0-15)    

dec 10进制

n(16进制) -> 10

abcd.efg(n) = d*n^0 + c*n^1 + b*n^2 + a*n^3 + e*n^-1 + f*n^-2 + g*n^-3(10)

10 -> n(16进制)

Modbus基础概念

高位为NUM_H,低位为NUM_L

2F 3D

S7协议对接遇到的问题:

平台s7协议轮训取数据,连接不上设备,一直断开链接。

原因:有模拟软件连接着设备,故平台连接不上。关闭模拟软件等几分钟即可。

1.Modbus按照一般维度分为Modbus Rtu、Modbus ASCII、Modbus TCP三种模式。从接口类型维度来说,Modbus Rtu和ASCII基于串行链路(串行传输),属于串行通讯口(serial port)[ 各种介质,如有线RS-232-/422/485等串口连接线,接DTU设备(将RS485数据转为tcp数据双向)进行无线传输 ],Mobus tcp基于TCP/IP协议,属于网络(以太网)通讯口[以太网网线、无线4G传输等]。 高速令牌传输网络,相应的通信模式是Modbus PLUS。

协议分为硬件协议和软件协议。而通讯协议属于软件协议,它包含报头包围的格式,MODBUS是应用层的通讯协议,主要用于传送和接收文件包的格式。而RS232,RS485是物理层的串行接口,它可以支持几十种通讯协议,MODBUS只是其中的一种。RS232、RS485是一个工业常用的物理接口,是物理层的硬件设备(串口)

Modbus通讯物理接口可以选用串口(包括RS232和RS485)也可以选择以太网口

2.串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。所以485的使用范围广,通用性强。典型的串行通讯标准是RS232和RS485。

3.DTU串口服务器

(1)DTU是一种现代物联网行业广泛使用的无线数据终端设备,DTU 支持数据的双向转换,支持将 RS232、RS485、RS422 等常见的串口数据与 TCP/IP 数据进行相互转换,并通过无线通信网络进行传输dtu串口服务器可实现跨网段传输 

对于不方便拉宽带线或则无法随时拉宽带联网却要实现连网远程监控控制就需要到了同时具备工业4G路由器联网和串口转4G/WIFI模块的DTU

工业4G路由器实现串口转4G/WiFi/以太网过程中需要到一种网络通信传输协议叫TCP/IP.( TCP 握手 UDP 不握手 )

4.常见有线通信协议

(1)USB

(2)串口连接线(RS485/RS232):

(3)以太网网线

5.MODBUS是一种标准的工业控制数据交换协议,可以通过RTU和ASCII交换协议数据。RTU通过二进制数据直接传输数据,而TCP通过将每个字节的二进制数据转换成固定的二位十六进制字符串,然后依次串联,以TCP代码的形式传输数据。RTU通常使用最多比较简单。

Modbus协议属于应用层(OSI模型第7层)协议,TCP/UDP协议属于传输层(OSI模型第4层)协议

Modbus TCP协议则是在RTU协议上加一个MBAP报文头,

由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码,用一句比较通俗的话说就是:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK.虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了

iot.modbus.client 数据采集服务,传输层通过tcp传输,顶层应用层协议是modbus。(tcp双向连接协议。udp单向无连接协议)

如果你这个硬件设备支持modbus tcp可以不用dtu,用dtu主要就是把485信号转成tcp

1.MODBUS RTU

Modbus设备一般通过dtu,连接modbus采集服务(将485信号转为tcp),配置dtu服务器的目标ip和目标端口为10.1.1.115、60001(dtu作为tcp客户端连接到115的60001)。 此方式由于dtu串口服务器可实现跨网段传输,故可在内网使用,也可以在外网通过域名使用。

dtu作为tcp客户端通过tcp与modbus采集服务通讯,进行数据传输。

2.MODBUS TCP
通过tcp协议通道,iot.modbus.client 采集服务作为tcp客户端,配置目标ip和端口,连接到modbus设备主机上(此时其作为tcp服务器端)。

注意:此方式只能用于内网使用。

PS:路由器一般都提供内网透传功能:比如tp-link 可以将内网端口映射到外网端口上,可以通过外网端口进行访问。

配置tp-link:传输控制-NAT设置-虚拟服务器。增加iot.modbus.client映射60001,ecmaster 8088映射,mqtt 8083(ws) 1883(mqtt)映射。并配置环回地址:10.0.0.0/8

Modbus通信协议原理具备如下的特征:

一次只有一个主机(Master)连接到网络

只有主设备(Master)可以启动通信并向从设备(Slave)发送请求

主设备(Master)可以使用其特定地址单独寻址每个从设备(Slave),也可以使用地址0(广播)同时寻址所有从设备(Slave)

从设备(Slave)只能向主设备(Master)发送回复

从设备(Slave)无法启动与主设备(Master)或其他从设备(Slave)的通信

Modbus通信协议  RTU通讯案例

温湿度变送器(485)为例

1 通讯基本参数

编 码

8位二进制

数据位

8位

奇偶校验位

停止位

1位

错误校验

CRC(冗余循环码)

波特率

2400bit/s、4800bit/s、9600 bit/s可设,出厂默认为4800bit/s

2 通讯基本参数

采用Modbus-RTU通讯规约,格式如下:

初始结构 ≥4 字节的时间

地址码 = 1 字节

功能码 = 1 字节

数据区 = N 字节

错误校验 = 16 位CRC 码

结束结构 ≥4 字节的时间

地址码:为变送器的地址,在通讯网络中是唯一的(出厂默认0x01)。

功能码:主机所发指令功能指示,本变送器只用到功能码0x03(读取寄存器数据)。

数据区:数据区是具体通讯数据,注意16bits数据高字节在前!

CRC码:二字节的校验码。

主机问询帧结构:

地址码

功能码

寄存器起始地址

寄存器长度

校验码低位

校验码高位

1字节

1字节

2字节

2字节

1字节

1字节

从机应答帧结构:

地址码

功能码

有效字节数

数据一区

第二数据区

第N数据区

校验码

1字节

1字节

1字节

2字节

2字节

2字节

2字节

3 寄存器地址

寄存器地址(16进制)

PLC或组态地址

内容

操作

0000H

40001

湿度(实际值10倍)

只读

0001H

40002

温度(实际值10倍)

只读

0050H

40081

温度校准(实际值10倍)

读写

0051H

40082

湿度校准(实际值10倍)

读写

07D0H

42001

设备地址

读写

07D1H

42002

设备波特率

读写

4 通讯协议实例以及解释

举例:读取设备地址0x01(十进制地址为1)的温湿度值

问询帧(十六进制):

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x01

0x03

0x00 0x00

0x00 0x02

0xC4

0x0B

 应答帧(十六进制): (例如读到湿度为65.8%RH,温度为15.5℃)

地址码

功能码

返回有效字节数

湿度值

温度值

校验码低位

校验码高位

0x01

0x03

0x04

0x02 0x92

0x00 0x9B

0x5A

0x3D

温度计算:

温度:009BH(十六进制)=155=>温度=15.5℃

湿度计算:

湿度:292H(十六进制)=658=>湿度=65.8%RH

关于通信速率问题

MODBUS 协议本身没有规定最大通信速率。甚至也没有规定电气协议,一般使用 RS232

或者 RS485 的电气协议。

RS485 协议的通讯速率可以达到 10M 以上的,所以理论上,注意是理论上,MODBUS

通讯速率是可以做到十几兆的。

由于 MODBUS 属于总线协议,总线上的所有站点要求有相同的通信速率(及相同的奇偶校

验设置),最大的通信速率自然由总线上最慢的站点决定。

使用Mthings模拟器 进行modbus数据模拟测试

mthings官网下载安装即可

1.通道配置

2.从机设备创建

注意:此步骤中批量添加的数据,要与下图中配置的批量数据读取数量一致。

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

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

相关文章

飞腾平台Arm NN软件栈安装使用指南

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…

基于JavaSpringboot个人博客

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库&#xf…

鸿蒙next ui安全区域适配(刘海屏、摄像头挖空等)

目录 相关api 团结引擎对于鸿蒙的适配已经做了安全区域的适配,也考虑到了刘海屏和摄像机挖孔的情况,在团结引擎内可以直接使用Screen.safeArea 相关api

【GPTs】Gif-PT:DALL·E制作创意动图与精灵动画

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 💯GPTs指令💯前言💯Gif-PT主要功能适用场景优点缺点 💯小结 💯GPTs指令 中文翻译: 使用Dalle生成用户请求的精灵图动画&#…

JMeter初体验:从入门到入门的性能测试之旅

一、关于性能测试 1、性能测试概述 性能测试是一种非功能测试,旨在评估系统在不同负载条件下的性能表现。它包括负载测试、压力测试、稳定性测试和基准测试等。性能测试的目的是确保系统在预期的负载下能够正常运行,并满足用户对响应时间、吞吐量和其他…

MongoDB新版本安装配置教程(7.0.15版本-zip下载)

找了半天MongoDB新版本怎么解决没有mongo命令,都没有很好的解决方法 现在分享一下: 首先下载: 然后手动创建 data 和 log 两个文件夹 然后再系统变量配置环境变量 在data的目录下,创建一个db文件 然后:在bin目录下cmd执行: mongod --dbpath D:\MongoDB\data\db …

解决虚拟机未被自动分配ip

文章目录 1. 背景2. 解决步骤 1. 背景 从vulnhub下载的靶场文件,网络适配器模式设置为nat模式之后,启动虚拟机之后发现没有成功分配动态ip。推测是虚拟机分配的网卡名称和原先靶机作者设置网络配置文件 网络接口名称不一致导致。 2. 解决步骤 解决办法就…

路径规划——RRT-Connect算法

路径规划——RRT-Connect算法 算法原理 RRT-Connect算法是在RRT算法的基础上进行的扩展,引入了双树生长,分别以起点和目标点为树的根节点同时扩展随机树从而实现对状态空间的快速搜索。在此算法中以两棵随机树建立连接为路径规划成功的条件。并且&…

2024游戏陪玩app源码的功能介绍/线上陪玩交友上线即可运营软件平台源码搭建流程

一个完整的陪玩交友系统从概念到实现再到维护的全过程得以清晰展现。每一步都需要团队的紧密协作与细致规划,以确保系统既满足用户需求,又具备良好的稳定性和可扩展性。 基础框架 移动端开发框架:如uniapp,它支持多平台开发&…

缓冲式线程池C++简易实现

前言 : 代码也比较短&#xff0c;简单说一下代码结构&#xff0c;是这样的&#xff1a; SyncQueue.hpp封装了一个大小为MaxTaskCount的同步队列&#xff0c;这是一个模板类&#xff0c;它在线程池中承担了存放任务等待线程组中的线程来执行的角色。最底层是std::list<T>…

Unity资源打包Addressable AA包

从零到一 很多资料都是通过一步步设置讲解的&#xff0c;有时很想先快速实现&#xff0c;再了解细节。 下面就是远程加载Cube.prefab然后实例化简单的代码。 代码中可以不需要远程的网址&#xff0c;不需要资源下载的位置&#xff0c;不需要判断是否已经下载到本地。 那是如…

MySQL之索引(2)(B树、B+树、索引分类、聚集索引、二级索引、回表查询)

目录 一、B树结构索引&#xff08;B-树&#xff09; &#xff08;1&#xff09;特点。 &#xff08;2&#xff09;问题&#xff1a;范围查询效率&#xff1f;&#xff1f; &#xff08;3&#xff09;缺点。 1、查询的不稳定性。 2、各叶子节点无联系。 3、IO资源的消耗较多。 二…

翼鸥教育:从OceanBase V3.1.4 到 V4.2.1,8套核心集群升级实践

引言&#xff1a;自2021年起&#xff0c;翼鸥教育便开始应用OceanBase社区版&#xff0c;两年间&#xff0c;先后部署了总计12套生产集群&#xff0c;其中核心集群占比超过四分之三&#xff0c;所承载的数据量已突破30TB。自2022年10月&#xff0c;OceanBase 社区发布了4.2.x 版…

ubuntu使用DeepSpeech进行语音识别(包含交叉编译)

文章目录 前言一、DeepSpeech编译二、DeepSpeech使用示例三、核心代码分析1.创建模型核心代码2.识别过程核心代码 四、交叉编译1.交叉编译2.使用 总结 前言 由于工作需要语音识别的功能&#xff0c;环境是在linux arm版上&#xff0c;所以想先在ubuntu上跑起来看一看&#xff…

Go语言入门教案

文章目录 一、教学目标二、教学重难点&#xff08;一&#xff09;重点&#xff08;二&#xff09;难点 三、教学方法四、教学过程&#xff08;一&#xff09;Go语言简介&#xff08;二&#xff09;环境搭建1. 下载和安装Go语言开发环境2. 配置Go语言环境变量3. 命令行查看Go语言…

普通人如何做好AI数字人直播带货月入10W?

在科技飞速发展的今天&#xff0c;AI数字人直播正以惊人的速度崛起&#xff0c;为直播领域带来了一场前所未有的变革。那到底AI数字人直播前景怎么样&#xff0c;是怎样一个形式&#xff0c;普通人能够利用Ai数字人直播赚取到收益吗&#xff1f; 首先讲到AI数字人直播很多人想的…

飞牛私有云访问外网

飞牛私有云 fnOS NAS 是一款有着卓越的性能以及强大的兼容性和智能化的管理界面&#xff0c;它之所以能在 NAS 市场中脱颖而出&#xff0c;是因为 fnOS 基于最新的 Linux 内核&#xff08;Debian发行版&#xff09;深度开发&#xff0c;不仅兼容主流 x86 硬件&#xff0c;还支持…

论文 | The Capacity for Moral Self-Correction in LargeLanguage Models

概述 论文探讨了大规模语言模型是否具备“道德自我校正”的能力&#xff0c;即在收到相应指令时避免产生有害或偏见输出的能力。研究发现&#xff0c;当模型参数达到一定规模&#xff08;至少22B参数&#xff09;并经过人类反馈强化学习&#xff08;RLHF&#xff09;训练后&…

计算机毕业设计Python+大模型农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

一文窥见神经网络

一文窥见神经网络 1.初识神经元1.1 生物神经元1.2 人工神经元1.3 权重的作用1.4 偏置的作用1.5 激活函数的作用1.5.1 线性激活函数1.5.2 非线性激活函数 2. 神经元模型2.1 多输入单神经元模型2.2 一层神经元模型2.3 神经网络&#xff08;多层神经元&#xff09;模型 3. 神经网络…