- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. ModBus 的 Client/Server 模型
2. 数据包格式及 MBAP header (MODBUS Application Protocol header)
3. 大小端转换
4. 事务标识和缓冲清理
5. 示例代码
1. ModBus 的 Client/Server 模型
Client 与 Server 之间有两种通讯方式:一种是 TCP/IP,另一种是通过串口
(Serial Port) ,本文重点介绍第一种通讯方式。第二种方式留了接口,暂时还
没有实现。
2. 数据包格式及 MBAP header (MODBUS Application Protocol header)
数据包格式
数据交换过程中,数据包的格式由三部分组成:协议头 + 功能码 + 数据 ( 请
求或接受的数据 ) 。
这里主要用到下列两个功能码(十进制):
3: 读取寄存器中的值( Read Multiple Register )
16: 往寄存器中写值( Write Multiple Register )
MBAP header
协议头具体包括下列 4 个字段:
(1) Transaction Identifier :事务 ID 标识, Client 每发送一个 Request 数
据包的时候,需要带上该标识;当 Server 响应该请求的时候,会把该标识复制
到 Response 中;这样客户端就可以进行容错判断,防止数据包发串了。
(2) Protocal Identifier :协议标识, ModBus协议中,该值为 0;
(3) Length :整个数据包中,从当个前这个字节之后开始计算,后续数据量的
大小 ( 按 byte 计算 ) 。
(4) Unit Identifier :-_-
3. 大小端转换
ModBus 使用 Big-Endian 表示地址和数据项。因此在发送或者接受数据的过程
中,需要对数据进行转换。
判断大小端
对于整数 1,在两种机器上有两种不同的标示方式,如上图所示;因此,我们
可以用 操作符来取其地址,再转换成指向 byte 的指针 (byte*) ,最后再取该指
针的值;若得到的 byte 值为 1,则为 Little-Endian ,否则为 Big-Endian 。
1: unsafe
2: {
3: int tester = 1;
4: bool littleEndian = (*( byte *)(tester)) == ( byte )1;
5: }
整数 / 浮点数转换成 Byte 数组
.Net 提供了现成的 API ,可以 (value) 和(Byte[] data) 来进行转换。下面的代
码对该转换进行了封装,加入了 Little-Endian 转 Big-Endian 的处理(以 int
为例):
1: public class ValueHelper 事务标识和缓冲处理
Transaction Identifier
上面节中提到, Client 每发送一个 Request 数据包的时候,需要带上一个标
识;当 Server 响应该请求的时候,会把该标识复制到 Response 中,返回给
Client 。这样 Client 就可以用来判断数据包有没有发串。在程序中,可以可以
用一个变量及记录该标识:
1:
您可能关注的文档
- ARCGIS克里金插值法.pdf
- archivetemp(答案)师范大学333预测卷(一)参考答案.pdf
- ARP功能故障处理.pdf
- arp协议实现的功能是什么.pdf
- ASSET印章管理办法.pdf
- as引导让步状语从句的倒装形式.pdf
- aunitinatoyshop教案集体备课教案.pdf
- AutoCAD测试题及答案01.pdf
- A公司集团创新劳动定额定员标准实践.pdf
- A股上市公司参与设立并购基金模式及案例研究.pdf
- 2025年石家庄医学高等专科学校高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- [池州]安徽池州市贵池区主城区街道社区卫生服务中心(中心药房)选调专业技术人员笔试历年典型考点(频考.docx
- 2025年石嘴山工贸职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年湖南有色金属职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- [武汉]2024年湖北武汉经开外国语学校高中招聘笔试历年典型考点(频考版试卷)附带答案详解.docx
- 2025年喀什职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年江西婺源茶业职业学院高职单招职业技能测验历年参考题库频考版含答案解析.docx
- 2025年湖北中医药高等专科学校高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年蚌埠经济技术职业学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年中国全息彩色多普勒超声诊断系统市场调查研究报告.docx
最近下载
- 三国志9吧剧本制作教科书.pdf
- 苏教版四年级上册数学四年级上册数学第四单元《统计表和条形统计图(一)》专项练习(含答案).pdf VIP
- 温州市普通高中2025届高三第一次适应性考试(一模) 数学试卷(含答案详解)原卷.pdf
- 临床安全用药药品合理使用培训.docx
- 装配式钢结构住宅.pptx VIP
- 2023-2024学年浙江省金华市武义、永康、磐安县九年级(上)期末科学试卷.pdf
- 《面向对象程序设计C++》期末试卷及标准答案 .pdf VIP
- 五年级下-1000道口算.docx
- 九省联考2024届高三新高考适应性测试数学试题(解析版).docx
- 河南省郑州一中2024届数学八上期末调研模拟试题含解析.doc VIP
文档评论(0)