0
点赞
收藏
分享

微信扫一扫

各种协议总结

非凡兔 2022-01-07 阅读 56

声明

本文主要是用于自己的学习总结,作为一个善忘者,在此记录一下学习或者工作过的协议。文中会有大量网上搜索来的我认为比较好的图片和内容,由于引用的比较多很难一一列举。如有侵权请联系我,我会删除相关内容。

目录

声明

TCP/IP协议簇

工业控制协议

modbus

简介

Modbus TCP

帧结构PDU

功能码

硬件通讯协议

相关引用连接:


TCP/IP协议簇

OSI七层协议示意图:

工业控制协议

modbus

modbus

简介

modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。1996年施耐德公司推出基于以太网TCP/IP的modbus协议:modbusTCP。Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。

标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网接口

采用master/slave方式通信。

Modbus RTU

Modbus RTU协议通过将从站设备地址(或广播)、定义请求操作的功能码、要发送的数据和CRC校验放入主机查询中来建立查询报文;从站设备的响应消息也是使用Modbus RTU报文结构,包括从站设备地址、请求操作的功能码、要发送的数据和CRC校验;如果在接收消息时发生错误、或者从站设备无法执行请求的操作,从站设备将发送一个异常消息作为响应。Modbus RTU数据帧结构如下:

 

Modbus TCP

MBAP

ModbusTCP的数据帧可分为两部分:MBAP+PDU。

MBAP为报文头,长度为7字节,组成如下:

事务处理标识

协议标识

长度

单元标识符

2字节

2字节

2字节

1字节

报文的序列号(每次通讯+1)

00 00表示ModbusTCP协议

数据长度 单位为字节

设备地址

事务处理标识 :可以理解为报文的序列号,一般每次通信之后就要加1以区别不同的通信数据报文。

协议标识符 :00 00表示ModbusTCP协议。

长度 :表示接下来的数据长度,单位为字节。

单元标识符 :可以理解为设备地址。

帧结构PDU

PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。

功能码

modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。

线圈:PLC的输出位,开关量,在MODBUS中可读可写

离散量:PLC的输入位,开关量,在MODBUS中只读

输入寄存器:PLC中只能从模拟量输入端改变的寄存器,在MODBUS中只读

保持寄存器:PLC中用于输出模拟量信号的寄存器,在MODBUS中可读可写

根据对象的不同,modbus的功能码有:

0x01:读线圈

0x05:写单个线圈

0x0F:写多个线圈

0x02:读离散量输入

0x04:读输入寄存器

0x03:读保持寄存器

0x06:写单个保持寄存器

0x10:写多个保持寄存器

硬件通讯协议

相关引用连接:

(10条消息) ISO七层协议模型架构、各层的解析及其协议_肥嘟嘟的左卫门-CSDN博客_osi七层模型

举报

相关推荐

0 条评论