Modbus协议-------RS485

Modbus协议-------RS485

一、Modbus协议介绍

1、主要特点:

​ 1、主从结构:网络中有一个主设备向多个从设备发起请求,从设备响应请求

​ 2、功能码:Modbus协议定义了一系列功能码,每个功能码对应一种操作,如读取线圈状态、寄存器值,写入线圈状态、寄存器值等。

​ 3、数据组织:Modbus协议中的数据传输包括设备地址、功能码、数据区和校验码。

​ 4、数据传输模式:Modbus支持ASCII、RTU和TCP/IP三种传输模式。其中ASCII模式适合于低速听信和易于调试,RTU模式适用于高速通信且效率较高,TCP/IP模式则支持在网络环境中传输Modbus协议。

二、Modbus协议的数据帧结构:

  • RTU模式:包含设备地址、功能码、数据区(长度根据功能码决定)、CRC校验码。
  • ASCII模式:在RTU模式基础上增加了起始字符、结束字符、和LRC校验码。
  • TCP/IP模式:以TCP报文的形式封装Modbus数据,包含设备地址(在TCP连接中隐含,不再在报文中携带)、功能码、数据区、CRC校验码(TCP层不需要,MODBUS-TCP层可选)。

三、Modbus常用功能码:

功能码名称作用
01读取线圈状态取得一组逻辑线圈当前的状态
02读取输入状态取得一组开关输入的当前状态
03读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值
04读取输入寄存器在一个或多个输入寄存器中取得当前的呃二进制值
05强置单线圈强置一个逻辑线圈的通断状态
06预置单寄存器把具体二进制值装入一个保持寄存器
15强置多线圈强置一串连续逻辑线圈的通断
16预置多寄存器把具体的二进制值装入一串连续的保持寄存器

上述功能码可以分为位操作和字操作两类,其中,位操作的是线圈和离散输入,两者区别在于,线圈是可读可写的,而离散输入是只读。字操作的是保持寄存器和输入寄存器,两者区别在于,保持寄存器事可读可写的,而输入寄存器是只读的。

四、线圈

读线圈功能码01

主节点发送帧格式(其中MSB为高字节,LSB为低字节):

序号01234567
字段定义ADDRCMDMSBLSBMSBLSBLSBMSB
解释从节点地址命令类型线圈起始地址线圈个数CRC校验

从节点正常应答帧格式:

序号01234...L+2L+3L+4
字段定义ADDRCMDLengthData1Data2...DataNLSBMSB
解释从节点地址命令类型发送字节数L=n/8+(1)第一个字节数据值第二个字节数据值...第N个字节数据值CRC校验

注:数据从低位开始填充,填充完成后还有剩余的高位则全部补0.

从节点异常应答格式:

76543210
线圈值首地址+7首地址+6首地址+5首地址+4首地址+3首地址+2首地址+1首地址

写单个线圈功能码05

主节点发送帧格式:

序号01234567
字段定义ADDRCMDMSBLSBMSBLSBLSBMSB
解释从节点地址命令类型线圈地址数据CRC校验

注:数据为0xFF00表示设置线圈状态为ON,数据为0x0000表示设置线圈状态为OFF。

从节点正常应答帧格式(同发送帧):

序号01234567
字段定义ADDRCMDMSBLSBMSBLSBLSBMSB
解释从节点地址命令类型线圈地址数据CRC校验

从节点异常应答格式:

序号01234
字段字义ADDRCMD+128ErrCodeLSBMSB
解释 从节点地址命令类型+128错误码CRC校验

写多个线圈功能码15

主节点发送帧格式:

序号01234567...L+6L+7L+8
字段定义ADDRCMDMSBLSBMSBLSBLengthData1...DataNLSBMSB
解释从节点地址命令类型 起始线圈地址线圈数n发送字节数L=n/8+(1)第一个字节数据值...第N个字节数据值CRC校验

字节数据值的定义:

76543210
线圈值首地址+7首地址+6首地址+5首地址+4首地址+3首地址+2首地址+1首地址

注:数据从低位开始填充,填充完成后还有剩余的高位全部补0。

从节点正常应答帧格式:

序号01234567
字段定义ADDRCMDMSBLSBMSBLSBLSBMSB
解释从节点地址命令类型线圈起始地址线圈个数CRC校验

从节点异常应答格式:

序号01234
字段字义ADDRCMD+128ErrCodeLSBMSB
解释 从节点地址命令类型+128错误码CRC校验

读保持寄存器功能码03,可读单个或多个

主节点发送帧格式:

序号01234567
字段定义ADDRCMDMSBLSBMSBLSBLSBMSB
解释从节点地址命令类型寄存器起始地址寄存器个数CRC校验

从节点正常应答帧格式:

序号01234...L+1L+2L+3L+4
字段定义ADDRCMDLengthMSBLSB...MSBLSBLSBMSB
解释从节点地址命令类型 发送字节数L=n*2第一个寄存器值...第N个寄存器值CRC校验

从节点异常应答格式:

序号01234
字段字义ADDRCMD+128ErrCodeLSBMSB
解释 从节点地址命令类型+128错误码CRC校验

RS485介绍

RS485特点:

  • 支持多节点:一般最大支持32个节点。
  • 传输距离远:最远通讯距离可达1200米。
  • 抗干扰能力强:差分信号传输。
  • 电平标准:逻辑“1”时,A相对于B为正,逻辑“0”时相反,典型差分电压范围为±200mV至±2V
  • 通讯速率:最高可达10Mbps,但常用速率通常在9600bps至115200bps之间。
  • 接口安全性:接口电平低,相对其他标准更不容易损坏芯片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值