好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MODBUS通讯协议.doc

20页
  • 卖家[上传人]:ni****g
  • 文档编号:429697846
  • 上传时间:2023-06-07
  • 文档格式:DOC
  • 文档大小:253.51KB
  • / 20 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • MODBUS通讯协议 目录1. 协议简介 42. 接口方式 43. 协议格式 43.1. RTU模式 43.2. ASCII模式: 53.3. 字符的连续传输 53.4. 帧类型 63.4.1. 请求帧 63.4.2. 应答帧 73.4.3. 错误帧三种 74. 功能码描述 74.1. ModBus功能码 74.2. 元件的寻址方式描述 74.3. 错误代码描述 95. 数据和控制码的具体描述 105.1. 读取线圈状态(0x01 Read Coil Status) 105.2. 读取离散量输入状态(0x02 Read Input Status) 105.3. 读取寄存器(0x03 Read Holding Registers) 115.4. 强置(写)单线圈(0x05 Force Single Coil) 115.5. 预置(写)单寄存器(0x06 Preset Single Register) 125.6. 回送诊断校验 125.6.1. 请求帧返回 135.6.2. 重新启动通信选项 135.6.3. 从机进入LISTEN ONLY 模式 135.6.4. 清计数器和诊断寄存器 145.6.5. 返回总线报文计数 145.6.6. CRC错误计数值 155.6.7. 返回从站异常差错计数 155.6.8. 返回从站报文计数 155.6.9. 返回从站无响应计数 165.6.10. 从站收到字符超限计数值 165.7. 强置(写)多线圈(0x0F Hex )Force Multiple Coils 175.8. 预置(写)多寄存器(10 Hex) Preset Multiple Registers 175.9. 故障响应帧(0x80+功能码) 175.10. MODBUS通信控制举例 185.10.1. 读取双字元件的处理 185.10.2. 读取LONG INT类型数据的处理 195.10.3. 对元件读取的处理 195.11. 对广播的描述 201. 协议简介Modbus 协议是应用于控制器上的一种通用语言。

      通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信它已经成为一通用工业标准本规范主要描述了modbus协议在GCM中的实现通讯采用应答方式,由主机发起请求,从机执行请求并且应答GCM作为从机通过地址设置加以区分, GCM系列PLC自己组网时,最多允许30个从站,并且从机可设置地址范围为1~31GCM系列PLC作为主站与其他设备(做从站)组网,没有地址范围限制,但也最多允许30个从站GCM系列PLC支持广播方式,广播地址为002. 接口方式RS485或RS232接口:异步,半双工默认数据格式: 8位数据位、偶校验、一位停止位,19200 bps,RTU可设置为38,400波特率、19,200 bps、9,600 bps、4,800 bps、2,400 bps、1,200 bps;最高可设置波特率为38,400bps数据域:支持2×252个字节(ASII模式)、252字节(RTU模式)GCM系列PLC有两个通信口,其通信口0(也作为编程口)支持MODBUS从站,通信口1支持MODBUS主站和从站(可有后台软件设置)3. 协议格式3.1. RTU模式起始(至少3.5个字符空闲)从机地址功能代码数据CRC高字节CRC低字节结束(至少3.5个字符空闲)消息发送至少要以3.5个字符时间的停顿间隔开始。

      在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束一个新的消息可在此停顿后开始整个消息帧必须作为一连续的流转输如果在帧完成之前两个字符间有超过1.5个字符时间的停顿时间,认为帧错误,停止接收,清缓冲,直到通信主循环中,清错误标志(与PLC寄存器无关),重新启动接收也就是要保证两个帧间的间隔至少大于3.5个字符的时间,3.5个字符的时间与具体的通信波特率有关,计算方法如下:假如通信波特率为19200,那么1.5个字符间隔 = 1/19200 *11*1.5*1000=0.86ms,3.5个字符间隔 = 1/19200 *11*3.5*1000=2ms下面是请求帧为读取1号机的002参数的数据帧:地址功能码寄存器地址读取字数校验和0x010x030x000x020x000x010x250xCA下面是为1号机的响应帧:地址功能码应答字节数寄存器内容校验和0x010x030x000x020x130x880xE90x5C3.2. ASCII模式:起始字符0x3A从机地址功能码数据域LRC高字节LRC低字节结束字符0DH,0AHASCII方式下:帧头为“0x3A”,帧尾为”0x0D””0x0A”。

      消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误在ASCII方式下,数据字节全部以ASCII码方式发送,先发送高4位位元组,然后发送低4位位元组例如:01,会传输30,31两个ASCII字符此时数据采用LRC校验,校验涵盖从从机地址到数据的信息部分校验和等于所有参与校验数据的字符和(舍弃进位位)的补码+1ASCII方式Modbus数据帧举例如下:写入4000(0xFA0)到从机1的内部寄存器002如下表:LRC校验=(01+06+00+02+0x0F+0xA0)的补码=0x48帧头地址功能码寄存器地址写入内容LRC校验帧尾字符:010600020FA048CRLFASCII3A30313036303030313046413034380D0A地址域消息帧的地址域包含两个字符(ASCII)或8Bit(RTU)主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应地址0是用作广播地址,以使所有的从设备都能认识3.3. 字符的连续传输 当消息在标准的Modbus系列网络传输时,每个字符或字节以如下方式发送(从左到右): 最低有效位...最高有效位 ASCII传输模式:采用10位传输,一定是7位的数据位,位序如下.有奇偶校验 只能1个停止位启始位1234567奇偶位停止位无奇偶校验 必须是2个停止位启始位1234567停止位停止位图4. 位顺序(ASCII) RTU传输模式,采用11位传输,一定是8位数据位,位的序列是: 有奇偶校验 启始位12345678奇偶位停止位无奇偶校验 启始位12345678停止位停止位3.4. 帧类型MODBUS的帧结构分为三种,请求帧、应答帧、错误帧三种。

      主站的询问可能有以下几种情况:(1) 从站收到了无通讯错误的请求,并进行正常处理,从站返回应答(正常帧)(2) 从站收到的请求,但有通讯错误,则不进行返回,主站认为超时(3) 从站收到了无通讯错误的请求,但不能处理这一通讯请求则返回错误帧3.4.1. 请求帧功能代码数据3.4.2. 应答帧功能代码数据功能码域复制请求帧的功能码3.4.3. 错误帧三种功能代码错误代码功能码是截获搜请求帧的功能码+0x80 4. 功能码描述4.1. ModBus功能码我们支持的功能码如下:功能码名称作用协议支持0x01读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)○0x 02读取输入状态取得一组开关输入的当前状态(ON/OFF)○0x 03读取寄存器在一个或多个寄存器中取得当前的二进制值○0x 05强置(写)单线圈写一个逻辑线圈的通断状态○0x 06预置(写)单寄存器把具体二进值装入一个数据寄存器○0x 08回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴○0x0f强置(写)多线圈强置(写)一串连续逻辑线圈的通断○0x10预置(写)多寄存器把具体的二进制值装入一串连续的寄存器○4.2. 元件的寻址方式描述位元件的寻址00001~00256 Y0~Y377 (Discrete Output)按八进制存储(Y0-Y7,Y10-Y17)01201~01456 X0~X377 (Discrete Input) 按八进制存储02001~04000 M0~M1999 (Discrete M Relay) 04401~04656 SM0~SM255 (Discrete M Relay)06001~06992 S0~S991 (Discrete S Relay) 08001~08256 T0~T255 (Status of T0~T255) 09201~09456 C0~C255 (Status of C0~C255) 离散量输入的寻址(针对X位元件)00001-00256字元件的寻址00001~08000 D0~D7999 08001~08256 SD0~SD255 08501~08516 Z0~Z1509001~09256 T0~T255 (Current Value of T0~T255) 09501~09700 C0~C199 (Current Value of C0~C199,16-bit) 09701~09812 C200~C255 (Current Value of C200~C255,32-bit) 以上的地址是面向用户地址,例如触摸屏,输入逻辑地址1,对地址0寻址(发送按照协议地址0发送);但是当用户使用GCM系列的PLC作主站,需要自己组织发送的数据报文,那么用户需要输入实际的协议地址,例如用户需要读取Y0,Y0的协议地址是0,用户需要组的帧01 01 00 00 00 01,第一个01是地址(可设的),第二个01功能码,接下来的00 00表示起始地址(Y0的地址),00 01是读取的个数1个。

      1)读写元件功能码和与内存映射:功能码功能码名称Modicon数据地址可操作元件类型注释01读线圈0:xxxxY、X、M、SM、S、T、C读位02读离散量输入1:xxxxX读位03读保存寄存器4:xxxxD、SD、Z、T、C读字05写单个线圈0:xxxxY、M、SM、S、T、C写位06写单个寄存器4:xxxxD、SD、Z、T、C写字15写多个线圈0:xxxxY、M、SM、S、T、C写位16写多个寄存器4:xxxxD、SD、Z、T、C写字注:0表示线圈,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.