MODBUS规约说明.doc_第1页
MODBUS规约说明.doc_第2页
MODBUS规约说明.doc_第3页
MODBUS规约说明.doc_第4页
MODBUS规约说明.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Modbus规约介绍-MODBUS规约说明发送方式:characteristicasciirtuCoding systemHexadecimal8 bit binaryStart bits11Data bits78Stop bits1or21or2parityOdd,even or noneOdd,even or noneError checkingLRC(Longitudinal redundancy check)CRC(Cyclical redundancy checkCRC-16 ERROR CHECKING:X16+X15+X2+1LRC ERROR CHECKING: The error check is an 8 bit binary number represented and transmitted as two hexadecimal characters.The error check is produced by converting hexadecimal characters to binary,adding the binary characters without wrap around carry,and twos complementing the result.ASCII Framing:Beg of frameaddressfunctiondataError checkLF:2-Char16-Bits2-char16-bitsN*2-charN*16-bits2-char16-bitsCR LFRTU Framing:T1 T2 T3addressfunctiondatacheckT1 T2 T38-BITS8-BITSN*8-BITS16-BITSFunction Field:codemeaningaction01Read coil status遥信02Read input status遥信03Read holding registers遥测04Read input registers遥测05Force single registers遥控波特率:1200,2400,4800,9600,或19200主站发送报文如下:3A 30 35 30 31 30 31 30 30 30 30 30 41 45 46 0D 0A 10个遥信请求,起地址为2563A 30 35 30 31 30 31 30 30 30 30 30 41 45 46 0D 0A 3A 30 35 30 31 30 31 30 30 30 30 30 41 45 46 0D 0A3A 30 35 30 34 30 30 30 41 30 30 30 41 45 33 0D 0A 10个遥测请求,起地址为103A 30 35 30 34 30 30 30 41 30 30 30 41 45 33 0D 0A 3A 30 35 30 34 30 30 30 41 30 30 30 41 45 33 0D 0A 附录:MODBUS规约 功能码报文帧格式Modbus数据请求报文由地址、功能码、数据和校验码组成。若要求从站应答,该地址必须与通过设置确定的地址中的一个相匹配并且校验码必须正确。帧格式可看作为:1字节从机地址(必须与ADRESSn设置中的一个相匹配)1字节功能码(支持的功能码见下)n字节与功能码相关的信息2字节报文的CRC-16校验码如果操作成功,其应答报文与请求报文的格式相同;如果出错,则应答报文的格式如下:1字节从机地址(回显接收的地址)1字节例外功能码(将功能码的高位置位)1字节例外码(见下)2字节报文的CRC-16校验码在Modbus上传输多字节数据时,总是高位字节在前。功能码是:01h读线圈状态02h读输入状态03h读保持寄存器04h读输入寄存器05h约束单个线圈06h设置单个线圈10h设置多个线圈11h报告从机ID读线圈状态(功能码01h)用功能码01h来读取各种位的状态。一次最多可读取1000位。主机的请求必须具有下列格式:1字节从机地址1字节功能码(01h)2字节位起始地址2字节读取位的数量2字节报文的CRC-16校验码成功的应答格式如下:1字节从机地址1字节功能码(01h)1字节字节计数器n字节数据2字节报文CRC-16校验码应答报文中每字节包含8个位,第一个字节的最低位对应位起始地址。读输入状态(功能码02h)功能码02h的用法与上述的功能码01h相似。绝大多数主机对该功能码采用1X引用方法,1X引用为一5位数地址,即上述指定的位地址加上100001即可。读保持寄存器(功能码03h)采用功能码03h来直接读取数据库。该功能码允许用户一次读取125个寄存器。绝大多数主机对该功能码采用4X引用方法,这是个5位数地址,是数据库地址上加上40001。Modbus主机当读取数据库的地址超过9999(270Fh)时,要采用六位数地址,以免冲掉第一位的类型标识符4,例如数据库中用户数据区的第一个寄存器地位为F800h,转换为6位数的地址为463489。如果要采用5位数地址读取用户区,可采用功能码04h,它采用3X寻址方法存取继电器。主机的请求必须具有下列格式:1字节从机地址1字节功能码(03h)2字节数据库起始地址2字节读取寄存器的数量2字节报文的CRC-16校验码成功的应答格式如下:1字节从机地址1字节功能码(03h)1字节字节计数器(应为读寄存器数的2倍)n字节计数器指定字节个数据2字节报文CRC-16校验码读输入寄存器(功能码04h)采用功能码04来读取Modbus指定的内存映像。该内存具有各特定地址的各种类型数据,独立于与用户的设置。用户仅需将数据采集到某些数据区,即能在内存映像中看到这些数据。在内存映像中,用户还可根据设置。选择采取标准的浮点数映像,或是纯整数映像。该功能码允许一次读取125个寄存器。主机的请求必须具有下列格式:1字节从机地址1字节功能码(04h)2字节数据库起始地址2字节读取寄存器的数量2字节报文的CRC-16校验码成功的应答格式如下:1字节从机地址1字节功能码(04h)1字节字节计数器(应为读寄存器数的2倍)n字节计数器指定字节个数据2字节报文CRC-16校验码约束单个线圈(功能码05h)采用这个功能码来实现各种数据控制,特别是,可通过该功能码来清除存档数据、保持数据记录副本、释放数据记录副本、控制断路器和遥控位元件。主机的请求必须具有下列格式:1字节从机地址1字节功能码(05h)2字节线圈引用2字节操作码2字节报文的CRC-16校验码发送某个线圈ON(操作码FF00h)将该位置位,发送OFF(操作码0000h)复位该位。对大多数主机,线圈号应设置为比指定的线圈引用大1。设置单个线圈(功能码06h)通过该功能码让Modbus直接写数据库寄存器。主机的请求必须具有下列格式:1字节从机地址1字节功能码(06h)2字节寄存器地址2字节数据2字节报文的CRC-16校验码如果操作成功,即回送请求报文。设置多个线圈(功能码10h)通过该功能码让Modbus直接写数据库寄存器,一次操作最多可同时写120个寄存器。一般来说,该功能码仅用于用户区。假如用户户对该功能码的4X引用比较熟悉的话,只需在标准的数据库地址上加4000001即可得到一个6位数的地址。主机的请求必须具有下列格式:1字节从机地址1字节功能码(10h)2字节起始地址2字节写寄存器数1字节字节计数器(应为写寄存器数2倍)n字节计数器中指定字节的数据2字节报文的CRC-16校验码成功的应答格式如下:1字节从机地址1字节功能码(10h)2字节起始地址2字节写寄存器数2字节报文的CRC-16校验码出错处理Modbus端口能检测和处理一部分错误情况。如果检测到帧格式错误(报文的从机地址或长度不符)和CRC校验码不匹配,从站将不予应答。如果收到报文是合法的,但是不能被处理,从站会如上述的报文帧格式所描述的,响应一条出错报文。下面列出了一些可能的例外码:01 - ILLEGAL FUNCTION接收到的功能码不支持02 - ILLEGAL DATA ADDRESS请求的寄存器中的一部分没定义或无效。对于写操作,这可能表示寄存器是只读的;对于约束单线圈操作,可能是地址不是一有效数据区的起始地址03

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论