modbus TCP 应用

news2024/11/24 16:30:25

Modbus TCP 应用介绍

一、原理

Modbus TCP/IP 协议是工业通信系统领域的基石。它是一种与以太网结合使用的应用层消息传递协议,可实现不同类型网络上连接的设备之间的客户端/服务器通信。Modbus 最初是一种 Modbus 串行协议 (Modbus RTU),现已发展到包含 TCP/IP 等现代技术,在从楼宇自动化和能源管理系统到复杂的工业自动化流程等领域发挥着至关重要的作用。该协议注重简单性和稳健性,由于其易用性、开放性以及将不同设备集成到网络中的能力而得到广泛采用,使其成为许多应用程序的首选协议。
Modbus TCP/IP 是对成熟的 Modbus 协议的改编,可在 TCP/IP 网络上使用。它提供标准化的 TCP 接口,允许 Modbus 设备通过以太网进行无缝通信,从而实现高效可靠的数据交换。因此,其主要功能是为基于以太网的系统上的 Modbus 通信建立一座桥梁,而以太网系统在当今的互联世界中无处不在。
Modbus TCP/IP 消息协议继承了原始 Modbus 协议的简单性和鲁棒性(通过保留消息结构、基于寄存器的通信等),增加了 TCP/IP 的可靠性和互操作性。它将传统的 Modbus 数据封装在 TCP/IP 数据包中,使数据能够通过标准网络基础设施进行传输。
Modbus TCP/IP 使用 TCP(传输控制协议)作为底层传输协议。TCP 通过提供数据分段、确认和重传等功能,确保 Modbus 消息在网络上可靠且有序地传送。
该协议依赖于 IP 层(互联网层)来进行寻址、路由和数据包传送。它使用 IP 地址来识别网络中的源设备和目标设备。IP 确保 Modbus TCP/IP 消息在连接到以太网的设备之间正确路由。
客户端/服务器架构:Modbus 消息传递结构是一种命令/响应协议,需要一个请求数据的客户端(也称为 TCP 客户端)和一个处理请求并返回响应的服务器。
基于寄存器的通信:在 Modbus 领域中,数据存储在四个基本数据实体中,即离散输入、线圈、输入寄存器和保持寄存器。这些实体对于 Modbus 系统内数据的组织和解释至关重要。离散输入和线圈处理二进制信息,而输入和保持寄存器处理数字数据。
寻址:Modbus 采用简单的寻址方案来识别正在访问的寄存器。寻址通常使用数值来指定起始寄存器地址以及要读取或写入的寄存器的数量。
基于功能代码的读/写操作:Modbus 中的数据访问由 Modbus 数据帧中的功能代码字段定义。这些功能代码至关重要,因为它们指定要对数据实体执行的操作类型。操作的范围可以从读取和写入到数据操作功能。
面向事务:Modbus 的一个基本原则是其面向事务的性质。Modbus 客户端发出的每个请求都独立于所有其他请求。这种事务属性使 Modbus 能够用于广泛的应用和用例。
一、协议
数据帧包含报文头、功能代码和数据三部分
在这里插入图片描述

1、 MBAP报文头:
Modbus TCP/IP协议包含一个7字节报文头
在这里插入图片描述
单元识别符可在仪表上设置。
2、功能代码
在这里插入图片描述

3、数据
根据不同的功能,都有不同数据格式内容,下面介绍最常用的功能码03:
在这里插入图片描述其它功能码方面,可要网上查询。

二、仪表上的应用

仪表做TCP服务器,客户端以TCP soket 形式与服务器通讯。通讯内容按Modbus TCP协议规范执行。
二.1、重要参数
IP:仪表的IP
端口:4000
设备地址:PC参数中的地址
注:仪表属TCP服务器模式,若超过5秒没有收到所连接设备(如PLC)的数据时,则仪表会判定连接失效,并断开TCP连接,之后应用设备需重新连接。
二.2、数字仪表寄存器

在这里插入图片描述
协议:(选用此协议)
接收: 00 2F 00 00 00 06 01 03 00 02 00 004
00 2F:每次通讯+1计数,如下一包就是00 30
00 06: 表示后面有几个字节
01 03 00 02 00 004:同RS232的modbus RTU数据包,但少了CRC校验
举例:
1、读重量与内码
指令:5F EA 00 00 00 06 01 03 00 00 00 28
应答: 5F EA 00 00 00 53 01 03 50 10 34 00 00 00 00 00 00 00 00 00 00 47 79 C3 0E AA 8D C3 7B 9F D0 C3 24 7B DD C2 D8 1A A3 C2 F6 A0 55 C3 03 E4 8D C3 17 75 D6 C2 6A 17 88 C3 73 8A 5E C2 BF 3B 31 C3 1A 12 6C C3 37 D3 50 C3 5E EA B1 C3 11 B0 65 C2 D0 D0 CD C2 C6 00 00 00 00
2、置零
指令:90 78 00 00 00 06 01 06 00 01 00 01
应答:90 78 00 00 00 06 01 06 00 01 00 01
三、现场测试方法
第一步打开软件:
在这里插入图片描述

第二步配置通讯方式:
在这里插入图片描述

第三步: 读寄存器
在这里插入图片描述

第四步:看数据
重量与内码数据为float格式,需按以下设置.应用程序开发,也需按此解码
在这里插入图片描述

第五步:最终效果
在这里插入图片描述

四、仪表操作设置

以D2008-W为例
此网络指的是RJ45网络接口参数,与modbus TCP相关参数是IP、NAP及GATE,modbus TCP
的服务端口固定为4000。(与以下端口无关)
在这里插入图片描述
以D38-3为例
在这里插入图片描述

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

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

相关文章

[笔记] iperf3.1.3源码下载与交叉编译

由于需要测试一款40G网卡,下载了 iperf3.1.3 用于性能测试。 iperf3.1.3 源码下载 可以在 iperf 官网 下载源代码: 交叉编译 需要运行在 aarch64 linux 环境下,所以需要交叉编译。 进入iperf3 目录下,运行 ./configure 脚本…

java项目dependences下面报错,红色波浪线

1,问题:java项目dependences下面波浪线 方法一:重新加载maven依赖(未解决) 报错: [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ----------------…

Leetcode—230.二叉搜索树中第K小的元素【中等】

2023每日刷题(六十) Leetcode—230.二叉搜索树中第K小的元素 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nul…

智能优化算法应用:基于狮群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于狮群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于狮群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.狮群算法4.实验参数设定5.算法结果6.参考文献7.MA…

三、创建型模式——工厂方法模式

微信公众号转载,关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 注意工厂方法模式中工厂的方法不是静态的 简单工厂模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要…

luttuce(RedisTempate)实现hash expire lua脚本

话不多说先放脚本: local argv ARGV local length #argv if length > 0 then local unpackArgs {} for i 1, length - 1 dotable.insert(unpackArgs, argv[i]) end if redis.call(exists, KEYS[1]) 1 thenredis.call(del, KEYS[1])redis.call(hset, KEYS[…

程序员自由创业周记#16:备案和十月收支

程序员自由创业周记#16:备案和十月收支 政策 众所周知,从今年9月26日开始,新App必须在工信部备案获得备案号才能在Apple Store上架,之前上架的App需要在24年3月31之前完成备案。消息一出,国内独立开发者纷纷嚷着要出海…

Java版企业电子招标采购系统源码—鸿鹄电子招投标系统-企业战略布局下的采购寻源

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审…

【STM32】USART串口协议

1 通信接口 通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统 通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 USRT:TX是数据发送引脚,RX是数据接受引脚; I2C&#xf…

基于SSM的高校疫情管理系统设计与实现论文

摘 要 当下疫情不容松懈,此次新冠肺炎疫情是传播速度最快、感染范围最广、防控难度最大的一次重大突发公共卫生事件,疫情防控尤为重要,传统的基于纸质文本的疫情信息管理模式,效率低,无法满足管理需求,所以…

node-sass@4.14.1 postinstall: `node scripts/build.js`

遇到一个前端项目安装node-sass依赖的问题:node-sass4.14.1 postinstall: node scripts/build.js 提供一个解决思路: 1、把package.json中node-sass这一行删掉 2、Terminal中执行 npm i node-sass -D 重新安装 3、package.json中会新增一个匹配当前n…

椋鸟C语言笔记#26:数据在内存中的存储(大小端字节序)、浮点数的存储(IEEE754)

萌新的学习笔记,写错了恳请斧正。 目录 大小端字节序 什么是大小端 写一个判断大小端的程序 浮点数在内存中的存储(IEEE 754规则) 引入 存储规则解释 读取规则解释 1.阶码不全为0或全为1(规格化数) 2.阶码全为…

代码随想录27期|Python|Day15|二叉树|层序遍历|对称二叉树|翻转二叉树

本文图片来源:代码随想录 层序遍历(图论中的广度优先遍历) 这一部分有10道题,全部可以套用相同的层序遍历方法,但是需要在每一层进行处理或者修改。 102. 二叉树的层序遍历 - 力扣(LeetCode) 层…

root登录提示:Access denied

一、问题: 在使用xshell工具用root账号登录服务器时提示Access denied,拒绝访问,SSH服务器拒绝了密码,但用其它用户又可以连接. 二、原因 是因为sshd的设置不允许root用户用密码远程登录的问题 三、解决办法 使用可以登录的账…

Parade Series - Message Interaction

if (true) {Swal.fire("节目发布", "发布完毕", "success");event.preventDefault(); } if (false) {Swal.fire("节目发布", "发布失败", "error");event.preventDefault(); }if (true) {for (var i 0; i < b…

Matlab论文插图绘制模板第130期—函数曲面图

在之前的文章中&#xff0c;分享了Matlab函数折线图的绘制模板&#xff1a; 函数三维折线图&#xff1a; 函数网格曲面图&#xff1a; 进一步&#xff0c;再来分享一下函数曲面图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&a…

DBCA创建RAC的过程截图

以下错误是由于配置的内存较大&#xff0c;而大页&#xff08;HugePage&#xff09;配置较小导致&#xff0c;调整大页后就好了。

Luminar Neo:超强AI图像编辑器,助力你轻松创作完美照片!

如果你是一位热爱摄影和图像编辑的人&#xff0c;那么我相信你一定会喜欢 Luminar Neo&#xff08;超强AI图像编辑器&#xff09;&#xff01;不仅仅是一款普通的图像编辑软件&#xff0c;Luminar Neo融合了人工智能技术&#xff0c;让你在编辑照片时拥有更多可能性和创意。 L…

Python小程序 - 表格数值统计

题设&#xff1a;Excel表格中&#xff0c;计算如下图所示不同颜色&#xff08;蓝、黄、桔&#xff09;单元格值&#xff1a;各颜色填涂的单元格值的总和条件&#xff1a; - Excle表格中 - 分色标记&#xff0c;单元格有值 - 开始列&#xff08;当前为D&#xff09;&#xff0c;…

基于SSM的咖啡销售系统vue论文

摘 要 现代社会是计算机技术普遍发展与应用的社会&#xff0c;甚至无网不成行&#xff0c;由此可见信息网络已经在商家活动或者人们生活中占据非常重要的地位&#xff0c;成为各行业不可割舍的重要组成。而随着网络地位的越来越突出&#xff0c;网络平台已经超越电视、报纸等传…