




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工业无线工业私有云工业安全工业服务器工业组态软件 伟联科技Wisdom Industrial Solution Consultant伟联科技Modbus协议简介1. Modbus 概述5. Modbus 事务处理2. Modbus 协议规范3. Modbus 数据模型4. Modbus 功能码6. Modbus 故障诊断7. Modbus 仿真8. Q & Au Modbus是Modicon(现为施耐德电气公司的一个品牌)在1979年开发的一项在ISO模型第7层的应用层报文传输协议,在过去几十年已被大量地应用于工业控制领域的开放的、标准的、免费的网络通信协议。Modbus 协议概述u Modb
2、us是最早的串行链路上的国际标准。在串行链路上取决于TIA/EIA标准(232-F和485-A)。u 1997年施耐德在TCP/IPIETF标准(RFC793和RFC791)上实现了Modbus协议。u 2004年,Modbus成为我国国家标准:GB/T 19582-2008基于Modbus协议的工业自动化网络规范。u Modbus RTU/ASCII Modbus TCP/IP Modbus PLUS。Modbus 通讯栈EIA/TIA-232EIA/TIA-485MASTER/SLAVEETHERNET RJ45PHYSICAL LAYERETHERNET II/802.3Modbus R
3、TU/ASCIIIPTCPPHYSICAL LAYERDATALINK LAYERNETWORK LAYERTRANSPORT LAYERSESSION LAYERPRESENTATION LAYERAPPLICATION LAYEROSI ModelLayerProtocol data unit (PDU)FunctionHostlayers7. ApplicationDataHigh-level APIs, including resource sharing, remote file access6. PresentationTranslation of data between a n
4、etworking service and an application; including character encoding, data compression andencryption/decryption5. SessionManaging communication sessions, i.e. continuous exchange of information in the form of multiple back-and-forth transmissions between two nodes4. TransportSegment, DatagramReliable
5、transmission of data segments between points on a network, including segmentation, acknowledgement and multiplexingMedialayers3. NetworkPacketStructuring and managing a multi-node network, including addressing,routing and traffic control2. Data linkFrameReliable transmission of data frames between t
6、wo nodes connected by a physical layer1. PhysicalSymbolTransmission and reception of raw bit streams over a physical mediumDescription of OSI layersRS-232、RS-422与RS-485通讯特性对照表 主机数 接设备(从站)最大数 通讯最大距离(米) 最大传输速(bps) 终端电阻位置 终端电阻阻值() 接线方式 RS-232112020k-与DB头针(孔)数有关 RS-4221101219(在100kbps速率以下) 10M(在100米以下)
7、最远端(在300米以下不接) 100四线、地线 RS-4851321219(在100kbps速率以下) 10M(在100米以下) 两端(在300米以下不接) 120二线/四线、地线 01协议简介协议简介02数据帧格式数据帧格式03数据模型数据模型04功能码功能码MODBUS05事务处理事务处理01Modbus协议简介协议简介Modbus 协议简介l Modbus协议是主从站通讯协议;l 网络上的每个从站必须有唯一的地址(范围从1到247); l 从站地址用于寻址从站设备,由主站发起;l 地址0用于广播模式,不需要响应;l 串行链路上的Modbus 传输模式分为Modbus RTU 和 Modb
8、us ASCIIRS485 / TCP Modbus请求:地址100开始读20个字Modbus响应:地址100至119的20个字的值主站从站Modbus RTU传输模式特性RTU编码系统十六进制每个字符的位数起始位1位数据位8位奇偶校验位0或1位停止位1或2位校验和CRC(循环冗余校验) Modbus RTU传输特性:地址域地址域功能码功能码数据数据差错校验差错校验PDU=Function Code + Data地址域: 单个设备的地址范围是1247;网络上的每个从设备必须具有唯一的地址;主设备通过将要联络的从设备的地址放入消息中的地址域来选通设备;当从设备发送回应消息时,它把自己的地址放入回
9、应的地址域中,以便主设备知道是哪一个设备作出回应。 地址0是用作广播地址,以使所有的从设备都能认识,不需要响应。功能码:作为主机的请求发送时,通过功能码告诉从机执行什么动作;数据:随功能码的不同,数据区也发生变化。差错校验: CRC-16(循环冗余错误校验),用于RTU模式; LRC(纵向冗余错误校验),用于ASCII模式。Modbus RTU传输模式ADU=Address + PDU + Error CheckModbus最初是在串行链路上实现的,由于RS485链路上最大的ADU为256个字节,因此限制了Modbus PDU的长度,也就限制了一条Modbus能够传输的最大数据量对串行链路来讲
10、,Modbus PDU=256-从站地址(1字节)-CRC校验(2字节)=253字节,因此一条Modbus报文最多可以传输126个字的数据。TCP的Modbus ADU=249字节+MBAP(7字节)=256个字节,因此一条Modbus TCP报文最大可以传输124个字的数据。Modbus RTU传输模式 M B A P 报 文 头 功 能 码 数 据 M o d b u s T C P /IP P D U P D U 02Modbus数据帧格式数据帧格式Modbus 数据帧格式在RTU模式,报文帧由时长至少为3.5个字符时间的空闲间隔区分,小于3.5字符被认为是一条报文 t0 至少 3.5
11、个字符 帧 1 帧 2 至少 3.5 个字符 帧 3 4.5 个字符 3.5 个字符 整个报文帧必须由连续的数据流发送两个字符之间小于1.5个字符间隔,超过1.5个字符则报文帧被认为不完整而被接收站点丢弃 t0 1.5 个 字 符 帧 1 正正 常常 帧 2 不不 正正 常常 1.5 个 字 符 报文必须以“ : ”开始;报文必须以“LFCR”结束;数据用十六进制ASCII码值表示;使用LRC进行差错校验;每个字符字节需要有两个字符编码,数据域最大数据长度为2252个字符,Modbus ASCII帧的最大长度为513个字符Modbus 数据帧格式Modbus ASCII模式起始地址功能码数据L
12、RC结束符1个字符:两个字符2个字符0-2252个字符2个字符2个字符CR、LFNameLength FunctionStart1Starts with colon : (ASCII hex value is 3A)Address2Station addressFunction2Indicates the function codes like read coils / inputsDatan 2Data + length will be filled depending on the message typeLRC2Checksum (Longitudinal redundancy chec
13、k)End2Carriage return line feed (CR/LF) pair (ASCII values of 0D, 0A)增加MBAP报文头;无差错校验;Modbus 数据帧格式Modbus TCP模式域长度描述客户机服务器事务处理标识符2字节Modbus请求/响应事务处理的识别客户机启动服务器从接收的请求中重新复制协议标识符2字节0=Modbus协议客户机启动服务器从接收的请求中重新复制长度2字节随后字节的数量客户机启动(请求)服务器(响应)启动单元标识符1字节串行链路或其它总线上连接的远程从站的识别客户机启动服务器从接收的请求中重新复制03Modbus数据模型数据模型Mod
14、bus 数据模型Object typeAccessSizeData AddressData AddressCoilRead-write1 bit0 x0001-0 x99990 x00000-0 x65535Discrete inputRead-only1 bit1x0001-0 x99991x00000-0 x65535Input registerRead-only16 bits 3x0001-0 x99993x00000-0 x65535Holding registerRead-write16 bits 4x0001-0 x99994x00000-0 x65535l Coil:线圈,开关量
15、输出,可读可写l Discrete Input:开关量输入,只读l Input Register:输入寄存器,只读l Holding Register:保持寄存器,可读可写;04Modbus功能码功能码功能码名称作用01读取开出状态(Read Coil Status)取得一组开关量输出的当前状态02读取开入状态(Read Input Status)取得一组开关量输入的当前状态03读取模出状态(Read Holding Registers)取得一组模拟量输出的当前状态04读取模入状态(Read Input Registers) 取得一组模拟量输入的当前状态05强制单路开出(Force Singl
16、e Coil)强制设定某个开关量输出的值06强制单路模出(Preset Single Register)强制设定某个模拟量输出的值15强制多路开出(Force Multiple Coils)强制设定从站几个开关量输出的值16强制多路模出(Preset Multiple Regs)强制设定从站几个模拟量输出的值Modbus 功能码Modbus 功能码-01从站地址功能码起始地址高位起始地址低位数据线圈数高位数据线圈数低位校验和CRC11H01H00H13H00H25H0EH 84H从站地址功能码字节计数数据校验和CRC11H01H05HCDH 6BH B2H 0EH 1BH45H E6H应答RT
17、U帧(Response)询问RTU帧(Query)读取开出状态(功能码读取开出状态(功能码01) 本功能可使主站获得被编址从站的开关量输出的通断状态。起始地址是指从哪一路开关量开始(编号从0开始),数据线圈数是指读取几路。应答帧中的数据是按上述要求读取的开关量数据(每路一位,每8位组成一个字节,最后一个字节的不足部分补0).例:读取17号从站开关量输出020-056的状态,读出的37位组成5个字节,最后一个字节的高三位补0.Modbus 功能码-02从站地址功能码起始地址高位起始地址低位数据线圈数高位数据线圈数低位校验和CRC11H02H00HC4H00H16HBAH A9H从站地址功能码字节
18、计数数据校验和CRC11H02H03HACH DBH 35H20H 18H应答RTU帧(Response)询问RTU帧(Query)读取开入状态(功能码读取开入状态(功能码02) 本功能可使主站获得被编址从站的开关量输入的通断状态。起始地址是指从哪一路开关量开始(编号从0开始),数据线圈数是指读取几路。应答帧中的数据是按上述要求读取的开关量数据(每路一位,每8位组成一个字节,最后一个字节的不足部分补0).例:读取17号从站开关量输入0197-0218的状态,读出的22位组成3个字节,最后一个字节的高2位补0。Modbus 功能码-03从站地址功能码起始地址高位起始地址低位寄存器数高位寄存器数低
19、位校验和CRC11H03H00H6BH00H03H76H 87H从站地址功能码字节计数数据校验和CRC11H03H06H02H 2BH 00H 00H 00H 64H20H 18H应答RTU帧(Response)询问RTU帧(Query)读取模出状态(功能码读取模出状态(功能码03) 本功能可使主站获得被编址从站的模拟量输出的通断状态。起始地址是指从哪一路模拟量开始(编号从0开始),寄存器数是指读取几路模拟量(每路模拟量2个字节,高位在前,低位在后)。应答帧中的数据是按上述要求读取的模拟量数据。例:读取17号从站模出点0108-0110的状态。应答数据高字节在前。108是555,109是0,1
20、10是100。Modbus 功能码-04从站地址功能码起始地址高位起始地址低位寄存器数高位寄存器数低位校验和CRC11H04H00H6BH00H03HC3H 47H从站地址功能码字节计数数据校验和CRC11H04H06H02H 2BH 00H 00H 00H 64H5CH 89H应答RTU帧(Response)询问RTU帧(Query)读取模入状态(功能码读取模入状态(功能码04) 本功能可使主站获得被编址从站的模拟量输入值。起始地址是指从哪一路模拟量开始(编号从0开始),寄存器数是指读取几路模拟量(每路模拟量2个字节,高位在前,低位在后)。应答帧中的数据是按上述要求读取的模拟量数据。例:读取
21、17号节点的模入点0108-0110的状态。应答数据高字节在前。108是555,109是0,110是100。Modbus 功能码-05从站地址功能码起始地址高位起始地址低位数据开关原状态校验和CRC11H05H00HACHFFH00H4EH 8BH应答RTU帧(Response)询问RTU帧(Query)强制单路开出(功能码强制单路开出(功能码05) 本功能可使主站强行设定被编址从站某路开关量输出的通断状态。从站内部的任何一路开关量均能被强制。起始地址是指设定开关量的哪一路(编号从0开始),数据用于设定开或关:FF为开,0为关,其他值为非法值。正常应答是将报文原文发回。例:强制17号从站开出点
22、173为ON。从站地址功能码起始地址高位起始地址低位数据开关原状态校验和CRC11H05H00HACHFFH00H4EH 8BHModbus 功能码-06从站地址功能码起始地址高位起始地址低位数据高位数据低位校验和CRC11H06H00H87H03H9EHBAH 2BH应答RTU帧(Response)询问RTU帧(Query)强制单路模出(功能码强制单路模出(功能码06) 本功能可使主站强行设定被编址从站某路模拟量输出的值。从站内部的任何一路模拟量均能被强制。起始地址是指设定哪一路模拟量(编号从0开始),数据用于设定该模拟量的值(高位在前,低位在后)。正常应答是将报文原文发回。例:强制17号从
23、站模出点136为039EH。从站地址功能码起始地址高位起始地址低位数据开关原状态校验和CRC11H06H00H87H03H9EHBAH 2BHModbus 功能码-15从站地址功能码起始地址高位起始地址低位寄存器数高位寄存器数低位字节计数数据校验和CRC11H0FH00H13H00H0AH02HCDH 00H7EH CBH应答RTU帧(Response)询问RTU帧(Query)强制多路开出(功能码强制多路开出(功能码15) 本功能可使主站强行设定被编址从站一组连续开关量输出的通断状态。从站内部的任何开出量均能被强制。起始地址是从哪一路开关量开始(编号从0开始),寄存器数是指设定几路。字节计数
24、是指随后的线圈状态(开关量设定值)的字节数。线圈状态是设定的开出值,每一路开出占用一位(1为开,0为关),每八位组成一个字节,最后一个字节的不足部分补0。正常应答内容是回送从站地址、功能码、起始地址和强置的开关量数。从站地址功能码起始地址高位起始地址低位寄存器数高位寄存器数低位校验和CRC11H0FH00H13H03H0AH26H 99H例:强置17号从站开关量输出0020-0029的状态,设定值CD(11001101)和00(00000000)表示开关量输出的第27、26、23、22和20将被强置为开状态。 Modbus 功能码-16从站地址功能码起始地址高位起始地址低位寄存器数高位寄存器数
25、低位字节计数数据校验和CRC11H10H00H87H00H02H04H00H 0AH 01H 02H7EH CBH应答RTU帧(Response)询问RTU帧(Query)强制多路模出(功能码强制多路模出(功能码16) 本功能可使主站强行设定被编址从站一组连续模拟量输出的值。从站内部的任何模出量均能被强制。起始地址是从哪一路模拟量开始(编号从0开始),寄存器数是指设定几路。字节计数是指随后的数据(模拟量设定值)的字节数。数据是设定的模出值,每一路模出两个字节(高位在前,低位在后)。正常应答内容是回送从站地址、功能码、起始地址和强置的模拟量数。从站地址功能码起始地址高位起始地址低位寄存器数高位寄
26、存器数低位校验和CRC11H10H00H87H00H02HF3H 71H例:强置17号从站模拟量输出0136-0137的状态,设定值0136为000A,设定0137为0102。05Modbus 事务处理事务处理Modbus事务处理正常响应当从站对主站响应时,当从站对主站响应时,Modbus通过功能码域来指示通讯是否正常;通过功能码域来指示通讯是否正常;对于正常响应,从站会复制主站功能码,加入到响应报文对于正常响应,从站会复制主站功能码,加入到响应报文对于异常响应,从站会将功能码域最高位置对于异常响应,从站会将功能码域最高位置“1”,异常码指示错误类型,异常码指示错误类型启动请求接收响应功能码数
27、据请求执行操作启动响应功能码数据响应启动请求接收响应功能码数据请求执行操作启动差错异常功能码异常码01 03 00 00 00 10 01 03 10 xx 01 03 00 00 00 10 01 83 02 Modbus事务处理常见错误码CodeTextDetails1Illegal FunctionFunction code received in the query is not recognized or allowed by slave2Illegal Data AddressData address of some or all the required entities are
28、 not allowed or do not exist in slave3Illegal Data ValueValue is not accepted by slave4Slave Device FailureUnrecoverable error occurred while slave was attempting to perform requested action5AcknowledgeSlave has accepted request and is processing it, but a long duration of time is required. This response is returned to prevent a timeout error from occurring in the master. Master
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB45-T 2605-2022 地理标志产品 横县茉莉花栽培技术规程
- 国网山东公司招聘考试真题2024
- 2025年创业者如何高效签订合同
- 2025年购买合同范本
- 湖北襄高控股发展有限公司招聘笔试题库2025
- 2025劳务派遣合同范本
- 2025年国家电网《安规》考试抢答题库及答案(共60题)
- 湘少版(新版)三年级上册英语教案
- 2025年中国留学生日本打工合同明确规定真实可靠
- 医院dip分值付费培训考试题及答案
- 一例感染性休克患者护理查房汇报
- 电池热管理机组知识
- 《电力行业职业技能标准 农网配电营业工》
- 《戏曲服饰欣赏》课件
- 《公共基础知识》贵州省黔南布依族苗族自治州都匀市2024年事业单位考试统考试题含解析
- 电力营销业务培训课件
- 技术方案评审表
- 人教版九年级数学下册第二十六章反比例函数-作业设计
- 人美小学美术五上《第1课:肖像艺术》课件
- 湘美版五年级上册美术全册教案
- 浙江省通用安装工程预算定额第八册
评论
0/150
提交评论