DotNetty 实现 Modbus TCP 系列 (一) 报文类

Modbus TCP/IP 报文

640?wx_fmt=png

  • 报文最大长度为 260 byte (ADU = 7 byte MBAP Header + 253 byte PDU)

  • Length = Unit Identifier 长度 + PDU 长度

MBAP Header

640?wx_fmt=png

PDU

PDU 由两部分构成:Function Code(功能码) 和 Data 组成

Function Code

部分功能码:

640?wx_fmt=png

报文类

ModbusHeader

640?wx_fmt=png

ModbusHeader 对应 MBAP Header,包含两个构造函数:第一个构造函数用于从缓冲区解析消息头,第二个构造函数用来请求/响应时手动构造消息头。Encode 方法用于在传输前对消息头进行编码。

ModbusFunction

640?wx_fmt=png

ModbusFunction 对应 PDU,该类为抽象类,所有的请求/相应的 PDU 均继承自该类。实际使用中根据 FunctionCode 实例化具体的子类对象。其中 CalculateLength 方法用来计算 Data 部分的长度,Decode 方法用于从缓冲区解析 Data,Encode 方法用于在传输前对 Data 编码。

ModbusFrame

640?wx_fmt=png

ModbusFrame 对应 ADU。Encode 方法用于在传输前对 ADU 编码。

开源地址:https://github.com/VictorBu/modbus-tcp

原文地址:https://www.cnblogs.com/victorbu/p/10369919.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg


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

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

相关文章

专题突破三之并查集Ⅰ——Portal,parity,食物链,程序自动分析,Almost Union-Find,洞穴勘测

文章目录Portalparity[NOI2001] 食物链程序自动分析UVA11987 Almost Union-Find[SDOI2008] 洞穴勘测Portal source 百度翻译简直就是个鬼…(((m -__-)m 离线 将边和询问按权值排序,指针,将所有权值不超过当前询问iii的边全加进去 答案路径自然是不连…

C# 未来新特性:静态委托和函数指针

C# 每发布一次新版本,都会增加一些底层相关的新特性, 这些特性对大多数商业程序来说并没什么实际用处,主要用于那些对性能有很高要求的代码,如图形处理、机器学习以及数学工具包,等等。接下来的两个提案,主…

JavaWeb --第一章Web基本概念

JavaWeb --第一章Web基本概念 文章目录基本概念前言web开发:web应用程序静态web动态webweb服务器技术讲解web服务器基本概念 前言 web开发: web,网页的意思静态web a. html,css b. 提供给所有人看的数据始终不会发生改变动态we…

DotNetty 实现 Modbus TCP 系列 (二) ModbusFunction 类图及继承举例

DotNetty 实现 Modbus TCP 系列 (一) 报文类ModbusFunction 类图如下:如前文所述,所有请求/相应的 PDU 均继承自 ModbusFunction,其子类传入对应的 Function Code 并实现三个方法:CalculateLength:Data 部分的长度(该方…

专题突破三之并查集Ⅱ——星球大战,In Touch,方格染色,Junk-Mail Filter,关押罪犯,Silver Woods,Must Be Rectangular!

文章目录[JSOI2008]星球大战In Touch方格染色Junk-Mail Filter[NOIP2010 提高组] 关押罪犯Silver WoodsMust Be Rectangular![JSOI2008]星球大战 source 非常套路的,正着打击星球,逆着就是添加星球以及关系,并查集维护此时连通块个数 就是…

JavaWeb --第二章 Tomact详情

JavaWeb --第二章 Tomact详情 文章目录Tomcat安装TomcatTomcat启动和配置配置发布一个web网站Tomcat 安装Tomcat 去官方下载 https://tomcat.apache.org Tomcat启动和配置 文件夹作用: 启动/关闭 Tomcat: 文件夹bin/startup.bat 开启 网址&#x…

开源的类似于Apache ab的压力测试命令行工具SuperBenchmarker

SuperBenchmarker 是ㄧ个开源的类似于Apache ab的压力测试命令行工具。可以在 .NET 4.52 或者 .NET Core 2.0 平台上运行。可支持Get、Post、Put、Delete这些调用方式,调用时能指定Concurrent user、Request数、Header template…等。可以从Github、Chocolatey这两种…

如何优雅的利用Windows服务来部署ASP.NET Core程序

上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能。但是美中不足的是需要借助第三方软件nssm来进行,那么…

JavaWeb --第四章Maven详解

JavaWeb --第四章Maven详解 文章目录MavenMaven架构管理工具下载安装Maven配置环境变量阿里云镜像本地仓库在IDEA中使用Maven创建一个普通的Maven项目在IDEA中标记文件夹功能在IDEA中配置tomcatpom文件IDEA操作解决遇到的问题Maven 为什么要学这个技术? 在javaweb…

用StyleCop规范团队代码

前言编码风格,每个人都是有不同的特点,风格各异,而且一个人在不同的时期,编码风格的差异也可能是非常大的,好比学生时代,刚工作的时候,工作一段时间后等。在一个团队中,或一个项目中…

一键发布部署vs插件[AntDeploy],让net开发者更幸福

一键发布工具(ant deploy tool)插件下载地址:https://marketplace.visualstudio.com/items?itemNamenainaigu.AntDeploy1.iis一键发布自动部署 (iis deploy support)支持netcore 和 netframework发布 (支持mvc webapi)支持website自动创建ps:需要在windows 服务器上…

计算几何全家桶

文章目录前言精度点/向量相关表示向量基本运算角度相关向量夹角旋转直线/线段相关表示点与线求点到直线垂足求点关于直线的对称点点与直线的位置关系点与直线的距离线与线直线与直线的位置关系共线与垂直判断线段与线段是否相交求直线与直线的交点角平分线中垂线多边形表示求多…

什么是量子计算机?用一个简单例子来解释

译者:王亮 作者:YK Sugi 原文:http://t.cn/EZAElk0Hi,大家好!不久前,我参观了加拿大温哥华的D-Wave Systems公司,这是一家制造前沿量子计算机的公司。我在那里学到了很多关于量子计算机的知识&a…

解决Azure DevOps部署到Azure后.NET Core网站无法启动的问题

点击上方蓝字关注“汪宇杰博客”最近我遭遇了一个奇怪的问题。使用Azure DevOps配置CI/CD管线,自动部署到Azure App Service以后,.NET Core的网站竟然会启动失败。我们来看看如何解决这个问题。查找问题首先,幸好,这是个staging环…

Acwing 135 最大子序和

Acwing 135 最大子序和 题目: 输入一个长度为 n 的整数序列,从中找出一段长度不超过 m 的连续子序列,使得子序列中所有数的和最大。 题解: 我们把这个问题的集合分成n份,第k份表示以A[k]结尾的最大连续子序列是多少…

.net core自定义高性能的Web API服务网关

网关对于服务起到一个统一控制处理的作用,也便于客户端更好的调用;通过网关可以灵活地控制服务应用接口负载,故障迁移,安全控制,监控跟踪和日志处理等。由于网关在性能和可靠性上都要求非常严格,所以针对业…

微软宣布 Visual Studio 2019 将于4月2日正式发布

微软于去年发布了 Visual Studio 2019 预览版。今天,该公司宣布 Visual Studio 2019 正式版将于4月2日发布。微软在公告中表示:“欢迎加入我们在4月2号当天举办的 VS 2019 线上发布活动,这是一款更加现代化、创新且实用的生产力工具”。据悉&…

DotNetty 实现 Modbus TCP 系列 (三) Codecs Handler

DotNetty 实现 Modbus TCP 系列 (一) 报文类DotNetty 实现 Modbus TCP 系列 (二) ModbusFunction 类图及继承举例DotNetty 作为一个半成品,我们不需要关注细节的实现,只需要关注自己的业务即可,所以最主要的就是处理 Codecs 和 Handler。所有…

Acwing -- 单调队列优化的DP问题

文章目录引入acwing154 滑动窗口应用135 最大子序和1088.旅行问题AcWing 1087. 修剪草坪28AcWing 1089. 烽火传递AcWing 1090. 绿色通道AcWing 1091. 理想的正方形引入 acwing154 滑动窗口 题目链接 题解 应用 闫氏最优化问题分析法 135 最大子序和 题目: 输入…

模板:半平面交(计算几何)

所谓半平面交,就是和“半平先生”当面交谈。顾名思义,这是一个源于日本的算法。 (逃) 前言 感觉应用很灵活的一个算法,一切有两个变量的线性规划问题都可以转化为半平面交。 有时可能要注意取等问题(指射…