MODBUS协议蓄电池组在线监测Word格式文档下载.docx

上传人:b****2 文档编号:15183950 上传时间:2022-10-28 格式:DOCX 页数:38 大小:1.01MB
下载 相关 举报
MODBUS协议蓄电池组在线监测Word格式文档下载.docx_第1页
第1页 / 共38页
MODBUS协议蓄电池组在线监测Word格式文档下载.docx_第2页
第2页 / 共38页
MODBUS协议蓄电池组在线监测Word格式文档下载.docx_第3页
第3页 / 共38页
MODBUS协议蓄电池组在线监测Word格式文档下载.docx_第4页
第4页 / 共38页
MODBUS协议蓄电池组在线监测Word格式文档下载.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

MODBUS协议蓄电池组在线监测Word格式文档下载.docx

《MODBUS协议蓄电池组在线监测Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MODBUS协议蓄电池组在线监测Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。

MODBUS协议蓄电池组在线监测Word格式文档下载.docx

在这种模式,一个Modbus事务处理包含2个报文:

一个来自主节点的请求,一个来自子节点的应答。

每个子节点必须有唯一的地址(1到247),这样才能区别于其它节点被独立的寻址。

在广播模式,主节点向所有的子节点发送请求。

对于主节点广播的请求没有应答返回。

广播请求一般用于写命令。

所有设备必须接受广播模式的写

功能。

地址0是专门用于表示广播数据的。

单播和广播模式的区别在一个多点的结构下(如RS485)更加易于理解。

3.2Modbus地址规则

Modbus寻址空间有256个不同地址。

0

1~47

55~248

广播地址

子节点单独地址

保留

Modbus主节点没有地址,只有子节点必须有一个地址。

该地址必须在Modbus串行总线上唯

一。

图解如下:

3.3串行链路数据帧格式

3.3.1Modbus帧描述

MODBUS协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。

特定总线或网络上

的MODBUS协议映射能够在应用数据单元(ADU)上引入一些附加域。

表3-2数据帧格式表

字段

字节数

描述

设备地址

1

BYTE型数据,对象的地址。

范围1~247。

每组蓄电池分配

一个访问地址,默认情况下组1地址为1,组2地址为组1

地址加1,以此类推。

监测多少组蓄电池,就占用连续的多

少个地址。

组1地址可以前台修改,相应组2地址也会在组

1地址上增1。

功能码

BYTE型数据。

见“命令解析”。

正常情况下发送和应答的

功能码一致,异常情况下参见“异常应答机制”。

数据区

N

校验

2

CRC16校验,校验生成函数参考附录七。

帧格式图解

在Modbus串行链路,地址域只含有子节点地址。

如前文所述,合法的子节点地址为十进制0–247。

每个子设备被赋予1–247范围中的地址。

主节点通过将子节点的地址放到报文的地址域对子节点寻址。

当子节点返回应答时,它将自己的地

址放到应答报文的地址域以让主节点知道哪个子节点在回答。

功能码指明服务器要执行的动作。

功能码后面可跟有表示含有请求和响应参数的数据域。

错误检验域是对报文内容执行"

冗余校验"

的计算结果。

根据不同的传输模式(RTUorASCII)

使用两种不同的计算方法。

4.串行传输模式RTU

它定义了报文域的位内容在线路上串行的传送。

它确定了信息如何打包为报文和解码。

Modbus串行链路上所有设备的传输模式(和串行口参数)必须相同。

4.1RTU传输模式

串行链路上第一个MODBUS执行的长度约束限制了MODBUSPDU大小(最大RS485ADU=256

字节)。

因此,对串行链路通信来说,MODBUSPDU=256-服务器地址(1字节)-CRC(2字节)=253

字节。

帧描述:

ModbusRTU帧最大为256字节。

4.2Modbus报文RTU帧

由发送设备将Modbus报文构造为带有已知起始和结束标记的帧。

这使设备可以在报文的开始接收

新帧,并且知道何时报文结束。

不完整的报文必须能够被检测到而错误标志必须作为结果被设置。

在RTU模式,报文帧由时长至少为3.5个字符时间的空闲间隔区分。

在后续的部分,这个时间区

间被称作t3.5。

整个报文帧必须以连续的字符流发送。

如果两个字符之间的空闲间隔大于1.5个字符时间,则报文帧被认为不完整应该被接收节点丢弃。

串通讯的数据帧格式图解

4.3.1///*****************串口传输设置********************

串口通信输出格式为:

1位起始位,8位数据位,1位停止位,奇校验。

默认波特率为2400bps,可调节为1200bps,2400bps,4800bps,9600bps。

编码系统:

8–位二进制

报文中每个8位字节含有两个4位十六进制字符(0–9,A–F)

BitsperByte:

1起始位

8数据位,首先发送最低有效位

1位作为奇偶校验

1停止位

偶校验是要求的,其它模式(奇校验,无校验)也可以使用。

为了保证与其它产品的最大兼

容性,同时支持无校验模式是建议的。

默认校验模式模式必须为偶校验。

注:

使用无校验要求2个停止位。

字符是如何串行传送的:

每个字符或字节均由此顺序发送(从左到右):

最低有效位(LSB)...最高有效位(MSB)

4.3.2///*****************RTU数据格式********************

下行数据结构(主机发送到从机数据协议)

起始码地址码功能码数据区CRC校验停止码

||||||

-------------------------------------------------------------------------------------------------------------

1、数据格式:

【起始码:

0xEB0x900xEB0x90】

起始码:

+从机地址码

(1)+【命令码】

(1)+【起始地址

(2)+寄存器数

(2)】+CRC16校验

(2)+停止码

(2)    (括号内为字节数)

 CRC16高字节在前低字节在后

2、从机地址码为0表示广播方式,所有从机都能收到并处理,否则地址码与从机地址相同时从机才响应;

因此从机地址范围:

1~247

三.上行数据结构(从机发送到主机数据协议)

起始码地址码功能码数据区CRC校验停止码

--------------------------------------------------------------------------------------------------------------

2、数据格式:

(1)+【寄存器数

(2)+N个数据】+CRC16校验

(2)+停止码

(2)    

(括号内为字节数)

 CRC16高字节在前低字节在后

4.4帧检验域:

循环冗余校验(CRC)

在RTU模式包含一个对全部报文内容执行的,基于循环冗余校验(CRC-CyclicalRedundancy

Checking)算法的错误检验域。

CRC域检验整个报文的内容。

不管报文有无奇偶校验,均执行此检

验。

CRC包含由两个8位字节组成的一个16位值。

CRC域作为报文的最后的域附加在报文之后。

计算后,首先附加低字节,然后是高字节。

CRC

高字节为报文发送的最后一个子节。

附加在报文后面的CRC的值由发送设备计算。

接收设备在接收报文时重新计算CRC的值,

并将计算结果于实际接收到的CRC值相比较。

如果两个值不相等,则为错误。

CRC的计算,开始对一个16位寄存器预装全1。

然后将报文中的连续的8位子节对其进行后

续的计算。

只有字符中的8个数据位参与生成CRC的运算,起始位,停止位和校验位不参与CRC

计算。

CRC的生成过程中,每个8–位字符与寄存器中的值异或。

然后结果向最低有效位(LSB)方向

移动(Shift)1位,而最高有效位(MSB)位置充零。

然后提取并检查LSB:

如果LSB为1,则寄存

器中的值与一个固定的预置值异或;

如果LSB为0,则不进行异或操作。

这个过程将重复直到执行完8次移位。

完成最后一次(第8次)移位及相关操作后,下一个8

位字节与寄存器的当前值异或,然后又同上面描述过的一样重复8次。

当所有报文中子节都运算之

后得到的寄存器忠的最终值,就是CRC。

5数据存储和传输顺序

5.116bit数据类型字节存储及传输顺序

MODBUS使用一个‘big-Endian’,对于16bit数据类型,先传输高字节,再传输低字节。

例如3A56H,先传送3AH,再传送56H。

输入寄存器和保持寄存器都是16bit寻址的寄存器。

可以认为单个寄存器的位存储顺序也是高字节在前,低子字节在后。

5.232bit数据类型字存储及传输顺序

MODBUS使用一个‘big-Endian’,对于32bit浮点型、32bit整型等32bit数据类型,先传输高16bit字,再传输低16bit字。

比如8DF377A2H数据,先传输8DF3H,再传输77A2H。

在输入寄存器和保持寄存器中,32bit数据占用连续的两个寄存器地址。

相应低地址存储高16位,高地址存放低16位。

8DF377A2H数值如果用地址12、13连个寄存器来存放,则地址12寄存器存放8DF3H,地址13寄存器存放77A2H。

5.3字符串数据类型存储及传输顺序

字符串数据传输时先传输较靠前的字符。

字符串数据类型在输入寄存器和保持寄存器存储时,顺序上较靠前的字符存储在较低地址的寄存器中。

在一个寄存器中,较靠前的8bit字符存储在高字节上,较靠后的8bit字符存储在低字节上。

5.4.布尔型数据类型存储及传输顺序

布尔型数据主要分布在离散输入寄存器中。

离散输入寄存器实际以字节为单位存储和传输。

较低地址的寄存器存储在一个字节的较低位上。

传输时,先传输较低地址的寄存器值。

存储较低地址的8个寄存器的字节先于

存储较高地址的8个寄存器的字节传输。

例如:

连续的16个离散输入寄存器的值从低地址到高地址依次为:

1,1,0,1,1,1,

0,0,1,1,0,1,1,1,0,1。

传输时分两个字节传输,先传输二进制1,1,0,1,1,

1,0,0八个位,实际存储的值为二进制00111011(注意低位先传),即3BH。

再传送1,

1,0,1,1,1,0,1八个位,实际存储的值为10111011B,即BBH。

6.MODBUS应用层协议:

命令解析和“数据区”定义

命令解析

本章中所罗列的发送接收数据内容仅指“命令结构”一节中所提到的“数据区”。

6.1.标准MODBUS命令

6.1.1.读离散输入寄存器02H

在一个远程设备中,使用该功能码读取离散量输入的1至2000连续状态。

请求PDU详细说明

了起始地址,即指定的第一个输入地址和输入编号。

从零开始寻址输入。

因此寻址输入1-16为0-15。

根据数据域的每个比特将响应报文中的离散量输入分成为一个输入。

指示状态为1=ON和0=

OFF。

第一个数据字节的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1