MODBUS通讯协议.doc
《MODBUS通讯协议.doc》由会员分享,可在线阅读,更多相关《MODBUS通讯协议.doc(20页珍藏版)》请在三一办公上搜索。
1、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.强置(写)单线圈(0x
2、05 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 Coils17
3、5.8.预置(写)多寄存器(10 Hex) Preset Multiple Registers175.9.故障响应帧(0x80+功能码)175.10.MODBUS通信控制举例185.10.1.读取双字元件的处理185.10.2.读取LONG INT类型数据的处理195.10.3.对元件读取的处理195.11.对广播的描述201. 协议简介Modbus 协议是应用于控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。它已经成为一通用工业标准。本规范主要描述了modbus协议在GCM中的实现。通讯采用应答方式,由主机发起请求,从机执行请求并且应答。GCM作为从
4、机通过地址设置加以区分, GCM系列PLC自己组网时,最多允许30个从站,并且从机可设置地址范围为131。GCM系列PLC作为主站与其他设备(做从站)组网,没有地址范围限制,但也最多允许30个从站。GCM系列PLC支持广播方式,广播地址为00。2. 接口方式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。数据域:支持2252个字节(ASII模式)、252字节(
5、RTU模式)GCM系列PLC有两个通信口,其通信口0(也作为编程口)支持MODBUS从站,通信口1支持MODBUS主站和从站(可有后台软件设置)。3. 协议格式3.1. RTU模式起始(至少3.5个字符空闲)从机地址功能代码数据CRC高字节CRC低字节结束(至少3.5个字符空闲)消息发送至少要以3.5个字符时间的停顿间隔开始。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输。如果在帧完成之前两个字符间有超过1.5个字符时间的停顿时间,认为帧错误,停止接收,清缓冲,直到通信主循环中,清错误标志(与PLC寄存器无
6、关),重新启动接收。也就是要保证两个帧间的间隔至少大于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
7、模式:起始字符0x3A从机地址功能码数据域LRC高字节LRC低字节结束字符0DH,0AHASCII方式下:帧头为“0x3A”,帧尾为”0x0D”0x0A”。消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。在ASCII方式下,数据字节全部以ASCII码方式发送,先发送高4位位元组,然后发送低4位位元组。例如:01,会传输30,31两个ASCII字符。此时数据采用LRC校验,校验涵盖从从机地址到数据的信息部分。校验和等于所有参与校验数据的字符和(舍弃进位位)的补码+1。ASCII方式Modbus数据帧举例如下:写入4000(0xFA0)到从机1的内部寄存器002如下表:L
8、RC校验=(01+06+00+02+0x0F+0xA0)的补码=0x48帧头地址功能码寄存器地址写入内容LRC校验帧尾字符:010600020FA048CRLFASCII3A30313036303030313046413034380D0A地址域消息帧的地址域包含两个字符(ASCII)或8Bit(RTU)。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。地址0是用作广播地址,以使所有的从设备都能认识。3.3. 字符的连续传输 当消息在标准的Modbus系列网络传输时,每个字符或字节以如下
9、方式发送(从左到右): 最低有效位.最高有效位 ASCII传输模式:采用10位传输,一定是7位的数据位,位序如下.有奇偶校验 只能1个停止位启始位1234567奇偶位停止位无奇偶校验 必须是2个停止位启始位1234567停止位停止位图4. 位顺序(ASCII) RTU传输模式,采用11位传输,一定是8位数据位,位的序列是: 有奇偶校验 启始位12345678奇偶位停止位无奇偶校验 启始位12345678停止位停止位3.4. 帧类型MODBUS的帧结构分为三种,请求帧、应答帧、错误帧三种。主站的询问可能有以下几种情况:(1) 从站收到了无通讯错误的请求,并进行正常处理,从站返回应答(正常帧)(2
10、) 从站收到的请求,但有通讯错误,则不进行返回,主站认为超时(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强置(写)单线圈写
11、一个逻辑线圈的通断状态0x 06预置(写)单寄存器把具体二进值装入一个数据寄存器0x 08回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴0x0f强置(写)多线圈强置(写)一串连续逻辑线圈的通断0x10预置(写)多寄存器把具体的二进制值装入一串连续的寄存器4.2. 元件的寻址方式描述位元件的寻址0000100256 Y0Y377 (Discrete Output)按八进制存储(Y0-Y7,Y10-Y17)0120101456 X0X377 (Discrete Input) 按八进制存储0200104000 M0M1999 (Discrete M Relay) 0440104656 SM0
12、SM255 (Discrete M Relay)0600106992 S0S991 (Discrete S Relay) 0800108256 T0T255 (Status of T0T255) 0920109456 C0C255 (Status of C0C255) 离散量输入的寻址(针对X位元件)00001-00256字元件的寻址0000108000 D0D7999 0800108256 SD0SD255 0850108516 Z0Z150900109256 T0T255 (Current Value of T0T255) 0950109700 C0C199 (Current Value
13、of C0C199,16-bit) 0970109812 C200C255 (Current Value of C200C255,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)读写元件功能码和与内存映射:功能码功能码名
14、称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表示线圈,1表示离散量输入,4表示寄存器,xxxx表示范围1-9999,每一种类型有独立的逻辑地址范围就是1-9999(协议地址是从0开始的),0、1、4并不具备物理上的意义,不参加实际的寻址。用户不
15、应该使用05、15功能码对X元件写入,如果用户执行了这样的操作,即使范围和数据都是允许的,系统也不会执行任何操作。(2)PLC元件与Modbus传输中的协议地址的对应关系:元件类型物理元件协议地址支持的功能码注释YY0-Y377(八进制)共256点0000-025501、05、15输出的状态XX0-X377(八进制)共256点1200-014550000-025501、05、1502输入的状态,支持两种地址MM0-M19992000-399901、05、15SMSM0-SM2554400-465501、05、15SS0-S9916000-699101、05、15TT0-T2558000-825
16、501、05、15T元件的状态CC0-C2559200-945501、05、15C元件的状态DD0-D79990000-799903、06、16SDSD0-SD2558000-825503、06、16ZZ0-Z158500-851503、06、16TT0-T2559000-925503、06、16T元件的当前值CC0-C1999500-969903、06、16C元件(WORD)的当前值CC200-C2559700-981103、16C元件(DWORD)的当前值注:协议地址与Modicon的数据的逻辑地址有对应关系,协议地址是从0开始,Modicon的数据的逻辑地址是从1开始的,也就是说协议地址
17、+1=Modicon的数据的逻辑地址,例如:M0协议地址是2000,它对应的Modicon的数据的逻辑地址是0:2001,在实际对M0的读写是通过协议地址完成,例如对M2000元件的读取帧(主站发出):01 01 07 D0 00 01 FD 4701代表站号;01代表功能码;07 D0 代表起始地址,07D0的十进制为2000;00 01 代表读取的元件个数;FD 47 是CRC校验码;特别注意:对SD、SM的写入是要看SD、SM的读写属性(参看编译规约),如果该特殊元件不是可写入的,从站对该报文不作处理,但会返回正确的应答。4.3. 错误代码描述异常代码异常代码意义实现0x01非法功能码。
18、0x02非法寄存器地址。0x03非法数据。5. 数据和控制码的具体描述5.1. 读取线圈状态(0x01 Read Coil Status)读取从站的位元件的状态,不支持广播。最多支持2000个位元件。参考软元件的地址划分,每次读取的元件类型为1类,例如不能在一帧中将X和Y元件(两种类型)一起读回来;读取该类软元件的地址和数据范围不能超过协议中规定的范围,例如:Y元件的协议地址范围00000255( Y0Y377),如果读取的起始地址是1,读取的元件个数是256,则会返回地址错误(异常码02),因为从1起始的Y元件只有255个;读取的起始地址是0,读取的元件个数是257,则会返回数据错误(异常码
19、03),因为读取元件的个数超过了256,实际只定义了256个Y元件;读取的起始地址为0,读取元件的个数是256则会返回256个元件的状态;而在读取M元件时,M元件的协议地址范围是20003999(M0M1999),如果读取的起始地址是2000,那么读取的元件个数是2000个就会返回2000个M元件的状态。也就是必须保证读取的元件是实际定义的(在范围内)。(1) 请求帧 AddressFunction code(01H)起始地址元件个数校验码(CRC或LRC)HLHL(2)响应帧如果读取的地址不是8的倍数,剩下的位由0填充(由高位开始填充)。AddressFunction code(01H)Nu
20、mber of byte read读取的元件个数(字节数)(n)Read data读取的数据No.1 Read data读取的数据No.n校验码(CRC或LRC)B7 B6B5B4 B3B2 B1 B05.2. 读取离散量输入状态(0x02 Read Input Status)读取从站的位元件的状态,不支持广播。最多支持256个位元件(目前的型号只定义256个X元件)。(2) 请求帧 AddressFunction code(02H)起始地址元件个数校验码(CRC或LRC)HLHL(2)响应帧如果读取的地址不是8的倍数,剩下的位由0填充(由高位开始填充)。AddressFunction cod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MODBUS 通讯 协议

链接地址:https://www.31ppt.com/p-4140977.html