MODBUS协议-蓄电池组在线监测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蓄电池组在线监测装置
MODBUS通信协议
1 MODBUS通信协议原理
2 物理层接口
蓄电池组在线监测装置,采用RS485 线路进行通信。
3 Modbus 串行数据链路层协议
3.1 Modbus主站/从站协议原理
Modbus 串行链路协议是一个主-从协议。在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为247 ) 连接于同一个串行总线。Modbus 通信总是由主节点发起。子节点在没
有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只
会发起一个Modbus 事务处理。
主节点以两种模式对子节点发出Modbus 请求:
→ 在单播模式,主节点以特定地址访问某个子节点,子节点接到并处理完请求后,子节点向主节
点返回一个报文(一个'应答')。在这种模式,一个Modbus 事务处理包含2 个报文:一个来自主节点的请求,一个来自子节点的应答。
每个子节点必须有唯一的地址(1 到247),这样才能区别于其它节点被独立的寻址。
→ 在广播模式,主节点向所有的子节点发送请求。
对于主节点广播的请求没有应答返回。广播请求一般用于写命令。所有设备必须接受广播模式的写
功能。地址0 是专门用于表示广播数据的。
单播和广播模式的区别在一个多点的结构下(如RS485)更加易于理解。
3.2 Modbus地址规则
Modbus 寻址空间有256 个不同地址。
0 1~47 55~248
广播地址子节点单独地址保留
Modbus 主节点没有地址,只有子节点必须有一个地址。该地址必须在Modbus 串行总线上唯
一。
图解如下:
3.3 串行链路数据帧格式
3.3.1 Modbus帧描述
MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上
的MODBUS 协议映射能够在应用数据单元(ADU)上引入一些附加域。
表3-2 数据帧格式表
字段字节数描述
设备地址1BYTE 型数据,对象的地址。范围
1~247。每组蓄电池分配
一个访问地址,默认情况下组1 地址
为1,组2 地址为组1
地址加1,以此类推。监测多少组蓄
电池,就占用连续的多
少个地址。组1 地址可以前台修改,
相应组2 地址也会在组
1 地址上增1。
功能码 1 BYTE 型数据。见“命令解析”。正常
情况下发送和应答的
功能码一致,异常情况下参见“异常
应答机制”。
数据区N见“命令解析”。
校验 2 CRC16 校验,校验生成函数参考附录
七。
帧格式图解
▪ 在Modbus 串行链路,地址域只含有子节点地址。
如前文所述,合法的子节点地址为十进制0 –247。每个子设备被赋予1 –247 范围中的地址。
主节点通过将子节点的地址放到报文的地址域对子节点寻址。当子节点返回应答时,它将自己的地址放到应答报文的地址域以让主节点知道哪个子节点在回答。
▪ 功能码指明服务器要执行的动作。功能码后面可跟有表示含有请求和响应参数的数据域。
▪ 错误检验域是对报文内容执行"冗余校验" 的计算结果。根据不同的传输模式(RTU or ASCII)
使用两种不同的计算方法。
4.串行传输模式RTU
它定义了报文域的位内容在线路上串行的传送。它确定了信息如何打包为报文和解码。Modbus 串行链路上所有设备的传输模式(和串行口参数) 必须相同。
4.1 RTU传输模式
串行链路上第一个MODBUS执行的长度约束限制了MODBUS PDU大小(最大RS485ADU=256
字节)。
因此,对串行链路通信来说,MODBUS PDU=256-服务器地址(1字节)-CRC(2 字节)=253
字节。帧描述:
→ Modbus RTU 帧最大为256 字节。
4.2 Modbus 报文RTU帧
由发送设备将Modbus 报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收新帧,并且知道何时报文结束。不完整的报文必须能够被检测到而错误标志必须作为结果被设置。在RTU 模式,报文帧由时长至少为3.5 个字符时间的空闲间隔区分。在后续的部分,这个时间区间被称作t3.5。
整个报文帧必须以连续的字符流发送。
如果两个字符之间的空闲间隔大于1.5 个字符时间,则报文帧被认为不完整应该被接收节点丢弃。
串通讯的数据帧格式图解
4.3.1///*****************串口传输设置********************
蓄电池组在线监测装置,采用RS485 线路进行通信。串口通信输出格式为:1 位起始位,8 位数据位,1 位停止位,奇校验。默认波特率为2400bps,可调节为1200bps, 2400bps,4800bps, 9600bps。
编码系统: 8–位二进制
报文中每个8 位字节含有两个4 位十六进制字符(0–9,A–F)
Bits per Byte: 1 起始位
8 数据位,首先发送最低有效位
1 位作为奇偶校验
1 停止位
偶校验是要求的,其它模式( 奇校验,无校验) 也可以使用。为了保证与其它产品的最大兼
容性,同时支持无校验模式是建议的。默认校验模式模式必须为偶校验。
注: 使用无校验要求2 个停止位。
字符是如何串行传送的:
每个字符或字节均由此顺序发送(从左到右):
最低有效位(LSB) . . . 最高有效位(MSB)