当前位置: 首页 > news >正文

北京网站开发工程师旅游主题网站策划书

北京网站开发工程师,旅游主题网站策划书,济南信息网,中标公告在哪里查询文章目录 0 背景1 协议介绍1.1 modbusRTU协议1.1.1 简介1.1.2 RS485和modbusRTU的关系1.1.3 modbusRTU 协议格式1.1.3.1 0x10写多个保持寄存器1.1.3.2 0x02读多个离散输入寄存器1.1.3.3 0x03读多个保持寄存器1.1.3.4 0x04读多个输入寄存器 1.2 ModbusTCP协议1.2.1 ModbusTCP协议…

文章目录

  • 0 背景
  • 1 协议介绍
    • 1.1 modbusRTU协议
      • 1.1.1 简介
      • 1.1.2 RS485和modbusRTU的关系
      • 1.1.3 modbusRTU 协议格式
        • 1.1.3.1 0x10写多个保持寄存器
        • 1.1.3.2 0x02读多个离散输入寄存器
        • 1.1.3.3 0x03读多个保持寄存器
        • 1.1.3.4 0x04读多个输入寄存器
    • 1.2 ModbusTCP协议
      • 1.2.1 ModbusTCP协议介绍
      • 1.2.2 ModbusTCP协议和 modbusRTU 协议区别
      • 1.2.3 ModbusTCP协议格式
  • 2 实践
    • 2.1 使用modbus RTU协议
    • 2.2 使用modbus TCP协议
    • 2.1 计算CRC校验(modbus TCP不需要计算)
  • 参考

0 背景

因为需要使用TCP与RS485串口的仪表设备进行通信,所以查阅相关资料,进行实验测试通过后,记录通信过程。

1 协议介绍

1,上位机电脑与RS485串口的设备硬件仪表设备直接通信,使用的是modbusRTU协议。

2,上位机电脑如果使用TCP协议,与RS485串口的设备硬件仪表设备间接通信,则需要借助ModbusTCP协议。然后中间设备把ModbusTCP协议协议中的包体拆解为ModbusRTU协议的内容,传递给硬件仪表设备。

1.1 modbusRTU协议

使用的如下设备,使用四路PWM信号输出的波形信号来驱动仪表。
在这里插入图片描述

1.1.1 简介

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider
Electric)于 1979 年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工
业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。

Modbus-RTU协议是一种总线协议,采用一主多从的结构。即同一个总线网络中,只能一
个主机(主站),多个从机(从站)。

通讯时采用一问一答的方式,主动发送请求帧的是主机,被动回复响应帧的是从机,从机
不会主动发送数据。

1.1.2 RS485和modbusRTU的关系

RS485 是一种传输数据的通讯方式,modbusRTU是一种通讯协议。

两者的关系类似声音和语言的关系,RS485是声音,ModbusRTU是其中一种语言,两个人说话,能听到对方的声音,但是听不懂对方的语言,是无法交流理解的。

1.1.3 modbusRTU 协议格式

设备地址:设备的通讯地址、站号。
功能码:对数据帧的功能编号。
寄存器:存放某类数据的内存区域。一个设备可能有多种寄存器,不同的寄存器存
放不同类别的数据。
寄存器地址:某个数据在寄存器里的编号。不同的设备定义不同。

1.1.3.1 0x10写多个保持寄存器

在这里插入图片描述

在这里插入图片描述

1.1.3.2 0x02读多个离散输入寄存器

在这里插入图片描述

在这里插入图片描述

1.1.3.3 0x03读多个保持寄存器

在这里插入图片描述
在这里插入图片描述

1.1.3.4 0x04读多个输入寄存器

在这里插入图片描述
举例:读取设备地址0x01,从输入寄存器0x0000开始,连续读0x0002个寄
存器
请求帧:01 04 00 00 00 02 71 CB
响应帧: 01 04 04 01 60 01 61 3A 1E

数据长度0x04个字节,因为一个寄存器2个字节
第1个寄存器 = 0x0160 = 352
第2个寄存器 = 0x0161 = 353

1.2 ModbusTCP协议

使用如下设备(有人物联网),通过设置做服务器,设置ip和通信方式。

在这里插入图片描述

设置ip、端口和协议相关信息。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.2.1 ModbusTCP协议介绍

ModbusTCP是一种基于以太网的通信协议.ModbusTCP协议由施耐德公司在1996年推出,它继承了ModbusRTU协议的核心功能,但主要通过TCP/IP以太网进行数据传输,实现了设备之间的主从式通信。

对于ModbusTCP,我们通过使用服务器/客户端来定义双方的角色。

1.2.2 ModbusTCP协议和 modbusRTU 协议区别

在这里插入图片描述
从上图中,我们可以看到ModbusTCP在Modbus串行通信的基础上,去除了差错校验和附加地址(即从站地址),然后加上MBAP报文头(7 Bytes)。

因为

  • 1,ModbusTCP协议一般用 于TCP或UDP通信,而TCP和UDP本身就具备数据校验,因此不需要再加校验了;
  • 2,ModbusTCP主要用于以太网通信,因此,不再需要通过附加地址(即从站地址) 来区分不同的设备,因为以太网设备一般会使用IP地址来区分。

1.2.3 ModbusTCP协议格式

在这里插入图片描述

2 实践

2.1 使用modbus RTU协议

例如我们要给RS485硬件设备发送01 10 00 04 00 02 04 00 00 00 01 33 9C的数据(modbusRTU协议的硬件数据)。

01 10 00 04 00 02 04 00 00 00 01 33 9C数据中,按照modbusRTU协议解析可以得到:01为设备地址,10为功能码,00 04为修改寄存器的起始地址,00 02为修改的寄存器个数, 00 00 00 01为数据长度(一个寄存器,两个字节),33 9C为校验地址。

计算CRC校验的方法见后文。

测试工具:

1,RS485线,;
在这里插入图片描述
2,示波器;

在这里插入图片描述

2.2 使用modbus TCP协议

例如我们要给RS485硬件设备发送01 10 00 04 00 02 04 00 00 00 01 33 9C的数据(modbus RTU协议的硬件数据),但是我们使用modbus TCP协议(上位机做客户端,转发硬件左服务器)。需要对数据进行再次封装。在01 10 00 04 00 02 04 00 00 00 01 33 9C的基础上,去掉差错校验和附加地址,变为10 00 04 00 02 04 00 00 00 01(长度为10个字节),再加上modbus TCP协议的MBAP报文头(00 01 00 00 00 0B 01),得到TCP最终发送的数据为:00 01 00 00 00 0B 01 10 00 04 00 02 04 00 00 00 01

2.1 计算CRC校验(modbus TCP不需要计算)

uint16_t crc16Two(unsigned char *data) {unsigned char i,j;unsigned short crc = 0xffff;for(i = 0; i < 11; i++){crc = crc^*data;for(j = 0;j < 8;j++){if(crc&0x01){crc = (crc>>1)^0xa001;//多项式a001}else{crc= (crc>>1);}}data++;}return crc;
}QByteArray calculateCrc(QByteArray data) {// 计算 CRCunsigned char *data2  = (unsigned char *)data.data();uint16_t crc = crc16Two(data2);return charExpressionToByteArray(QString::number(crc, 16).toUpper().rightJustified(4, '0')); // 转换为大写十六进制并补零
}

因为协议里,是按照大端字节序的顺序,因此还需要把计算出来的字节翻转一下。

     QByteArray frameTail = calculateCrc(resData);std::reverse(frameTail.begin(), frameTail.end());//翻转数据

在这里插入图片描述

参考

ModbusTCP通信协议分析

MODBUS TCP协议实例数据帧详细分析

ModbusTCPPC端测试工具

大端模式、小端模式、高字节序、低字节序、MSB、LSB

终于有人把Modbus说明白了

通透!终于把ModbusRTU弄明白了

终于有人把RS485说清楚了

http://www.yayakq.cn/news/387333/

相关文章:

  • dede网站地图xml帮人做网站一个多少钱
  • 如何用phpstudy做网站企业邮箱注册登录入口
  • 企业网站建设步骤不用备案的网站
  • 全球做网站最好企业型网站建设怎样收费
  • 电子商务网站建设的步骤一般为(网站建设的一般流程是
  • 社区网站的建设苏州营销型网站制作多少钱
  • 怎样给网站做企业网站源码网
  • 网站制作优化推广网站备案很麻烦吗
  • 个人网站免费做wordpress路径
  • 个人网站设计风格东莞人才市场招聘官网
  • 做粤菜的视频网站做网站报价
  • 网站属性设置企业网站的优点
  • 做系统网站信息检索网站淘宝店铺怎么运营
  • 网站页面设计风格微信引流神器手机电影网站怎么做
  • 乐清定制网站建设wordpress子主题数量
  • 手表查询网站文安网站建设
  • 化妆品 网站模板装企erp管理系统
  • 江西建网站如何制作一个二维码
  • wordpress手机图片站wordpress首页文章列表只显示摘要
  • 义乌网站建设微信开发儿童 网站 设计
  • 上海企业制作网站wordpress4.9.4 模版修改
  • wordpress 4.9.5北京关键词优化
  • 如何用wordpress做网站金泉网站建设开发
  • 网站代码组件柯桥建设局网站首页
  • 廊坊外贸网站建设广西长长路桥建设有限公司网站
  • 环保部网站官网建设项目审批做个购物网站多少钱
  • 网站建站策划建设银行网站用户名怎么查
  • ppt网站超链接怎么做有了自己的网站怎么赚钱
  • 郑州做网站建设公司哪家好wordpress会员注册怎样更改
  • 鲜花拍卖网站建设市场分析互联网营销的优势