加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 中文MODBUS协议

中文MODBUS协议.pdf

中文MODBUS协议

信控科技
2012-04-24 0人阅读 举报 0 0 暂无简介

简介:本文档为《中文MODBUS协议pdf》,可适用于IT/计算机领域

第一章Modbus协议□□介绍Modbus协议介绍□□两种串行传输模式□□信息帧□□错误检查方法PIMBUSModbusProtocolwwwplcworldcnModbus协议介绍Modbus可编程控制器之间可相互通讯也可与不同网络上的其他设备进行通讯支撑网络有Modicon的Modbus和Modbus工业网络。网络信息存取可由控制器内置的端口网络适配器以及Modicon提供的模块选件和网关等设备实现对OEM(机械设备制造商)来说Modicon可为合作伙伴提供现有的程序可使Modbus网络紧密地集成到他们的产品设计中去。Modicon的各种控制器使用的公共语言被称为Modbus协议该协议定义了控制器能识别和使用的信息结构。当在Modbus网络上进行通讯时协议能使每一台控制器知道它本身的设备地址并识别对它寻址的数据决定应起作用的类型取出包含在信息中的数据和资料等控制器也可组织回答信息并使用Modbus协议将此信息传送出去。在其他网络上使用时数据包和数据帧中也包含着Modbus协议。如Modbus或MAP网络控制器中有相应的应用程序库和驱动程序实现嵌入式Modbus协议信息与此网络中用子节点设备间通讯的特殊信息帧的数据转换。该转换也可扩展处理节点地址路由和每一个特殊网络的错误检查方法。如包含在Modbus协议中的设备地址在信息发送前就转换成节点地址错误检查区也用于数据包与每个网络的协议一致最后一点是需用Modbus协议写入嵌入的信息定义应处理的动作。ModbusProtocolPIMBUSwwwplcworldcn图说明了采用不同通讯技术的多层网络中设备的互连方法。在信息交换中嵌入到每个网络数据包中的Modbus协议提供了设备间能够交换数据的公共的语言。主处理器(去MB)S(去MAP)编程器ATHC和HOSTMMHIATHC和HOSTMMHISAB和个Modus设备或网络编程器图:Modbus协议应用示意图*MB为ModbusPIMBUSwwwplcworldcnModbusProtocolModbus上的数据传输Modicon控制器上的标准Modbus端口是使用一个RS兼容的串行接口定义了连接器接线电缆信号等级传输波特率和奇偶校验控制器可直接或通过调制解调器(以后简称Modems)接入总线(网络)。控制器通讯使用主从技术即主机能起动数据传输称查询。而其它设备(从机)应返回对查询作出的响应或处理查询所要求的动作。典应的主机设备应包括主处理器和编程器。典应的从机包括可编程控制器。主机可对各从机寻址发出广播信息从机返回信息作为对查询的响应。从机对于主机的广播查询无响应返回Modbus协议报据设备地址请求功能代码发送数据错误校验码建立了主机查询格式从机的响应信息也用Modbus协议组织它包括确认动作的代码返回数据和错误校验码。若在接收信息时出现一个错误或从机不能执行要求的动作时从机会组织一个错误信息。并向主机发送作为响应。在其它总线上传输数据除标准的Modbus功能外有些Modcon控制器内置端口或总线适配器在Modbus总线上实现通讯或使用网络适配器在MAP网络上通讯。在这些总线上控制器间采用对等的技术进行通讯即任意一个控制器可向其它控制器启动数据传送。因此一台控制器既可作为从机也可作为主机常提供多重的内部通道允许并列处理主机和从机传输数据在信息级尽管网络通讯方法是对等的但Modbus协议仍采用主从方式若一台控制器作为主机设备发送一个信息则可从一台从机设备返回一个响应类似当一台控制器接受信息时它就组织一个从机设备的响应信息并返回至原发送信息的控制器。查询响应周期:错数功设错数功码设主机查询信息查询:查询中的码将查询错误校验区的响应:从机正常则修改功能码ModbusPwwwplcworldcn功从一响roto误校验据字节能机些应指c位能代备地址从机图:代码为被寻址的从机设备并读保持寄存器。并用寄信息为从机提供一种校时响应功能码是查询功明为错误响应。并在数据ol误校验据字节响主验能字位能代码备地址应信息从查询响应周期应执行的动作类型。数据字节中包含从机须执行功能的各附加信息如功能代存器的内容作响应。该数据区必须含有告之从机读取寄存器的起始地址及数量方法以保证信息内容的完整性。码的应答数据字节包含从机采集的数据如寄存器值或状态。如出现错误节中含有一个代码来说明错误错误检查区允许主机确认有效的信息内容。PIMBUS两种串行传输模式控制器可使用ASCII或RTU通讯模式在标准Modbus上通讯。在配置每台控制器时用户须选择通讯模式以及串行口的通讯参数。(波特率奇偶校验等)在Modbus总线上的所有设备应具有相同的通讯模式和串行通讯参数。选择ASCII或RTU模式用于标准的Modbus总线。它定义了总线上串行传输信息区的“位”的含义决定信息打包及解码方法。如在MAP和Modbus总线上时Modbus信息以帧的方式出现并与串行传输无关如请求读保持寄存器可以在Modbus上的两个控制器之间处理而与使用的控制器的Modbus端口无关。ASCII模式当控制器以ASCII模式在Modbus总线上进行通讯时一个信息中的每位字节作为个ASCII字符传输的这种模式的主要优点是允许字符之间的时间间隔长达IS也不会出现错误。ASCII码每一个字节的格式:编码系统:进制ASCII字符,AF个进制数据位:起始位位数据低位先送奇偶校验时位无奇偶校验时位(LRC)位带校验停止位无校验止位错误校验区:纵向冗余校验RTU模式控制器以RTU模式在Modbus总线上进行通讯时信息中的每位字节分成个位进制的字符该模式的主要优点是在相同波特率下其传输的字符的密度高于ASCII模式每个信息必须连续传输。RTU模式中每个字节的格式:编码系统:位二进制十六进制AF数据位:起始位位数据低位先送奇偶校验时位无奇偶校验时位停止位位(带校验)停止位位(无校验)带校验时位停止位无校验时位停止位错误校验区:循环冗余校验(CRC)Modbus信息帧何论是ASCII模式还是RTU模式Modbus信息以帧的方式传输每帧有确定的起始点和结束点使接收设备在信息的起点开始读地址并确定要寻址的设备(广播时对全部设备)以及信息传输的结束时间。可检测部分信息错误可作为一种结果设定。对MAP或Modbus协议可对信息帧的起始和结束点标记进行处理也可管理发送至目的地的信息此时信息传输中Modbus数据帧内的目的地址已无关紧要因为Modbus地址已由发送者或它的网络适配器把它转换成网络节点地址和路由。ASCII帧在ASCII模式中以(:)号(ASCIIAH)表示信息开始以回撤一换行键(CRLF)(ASCIIOD和OAH)表示信息结束。对其它的区允许发送的字符为进制字符,AF。网络中设备连续检测并接收一个冒号(:)时每台设备对地址区解码找出要寻址的设备。字符之间的最大间隔为S,若大于S则接收设备认为出现了一个错误。典型的信息帧见下表开始地址功能数据纵向冗余检查结束字符字符字符n字符字符字符PIMBUSModbusProtocolwwwplcworldcnModbusProtocolPIMBUS:图ASCII信息帧例外:对于和ABX控制器一个ASCII信息可在LRC区后正常终止而不需发送CRLF字符此时出现>IS的时间间隔控制器也将认为是正常中断。RTU帧RTU模式中信息开始至少需要有个字符的静止时间依据使用的波特率很容易计算这个静止的时间(如下图中的TTTT)。接着第一个区的数据为设备地址。各个区允许发送的字符均为进制的,AF。网络上的设备连续监测网络上的信息包括静止时间。当接收第一个地址数据时每台设备立即对它解码以决定是否是自己的地址。发送完最后一个字符号后也有一个个字符的静止时间然后才能发送一个新的信息。整个信息必须连续发送。如果在发送帧信息期间出现大于个字符的静止时间时则接收设备刷新不完整的信息并假设下一个地址数据。同样一个信息后立即发送的一个新信息(若无。个字符的静止时间)这将会产生一个错误。是因为合并信息的CRC校验码无效而产生的错误。开始地址功能数据校验终止TTTTB位SB位SN×B位SB位STTTT图RTU信息帧Modbus信息帧(Continued)地址设置信息地址包括个字符(ASCII)或位(RTU)有效的从机设备地址范围,(十进制)各从机设备的寻址范围为。主机把从机地址放入信息帧的地址区并向从机寻址。从机响应时把自己的地址放入响应信息的地址区让主机识别已作出响应的从机地址。地址为于广播地址所有从机均能识别。当Modbus协议用于高级网络时则不允许广播或其它方式替代。如Modbus使用令牌循环自动更新共享的数据库。功能码设置信息帧功能代码包括字符(ASCII)或位(RTU)。有效码范围(十进制)其中有些代码适用全部型号的Modicon控制器而有些代码仅适用于某些型号的控制器。还有一些代码留作将来使用有关功能代替码的设置将在第章说明。当主机向从句发送信息时功能代码向从机说明应执行的动作。如读一组离散式线圈或输入信号的ONOFF状态读一组寄存器的数据读从机的诊断状态写线圈(或寄存器)允许下截、记录、确认从机内的程序等。当从机响应主机时功能代码可说明从机正常响应或出现错误(即不正常响应)正常响应时从句简单返回原始功能代码不正常响应时从机返回与原始代码相等效的一个码并把最高有效位设定为“”。如主机要求从机读一组保持寄存器时则发送信息的功能码为:(十六进制)若从机正确接收请求的动作信息后则返回相同的代码值作为正常响应。发现错时则返回一个不正常响信息:(十六进制)从机对功能代码作为了修改此外还把一个特殊码放入响应信息的数据区中告诉主机出现的错误类型和不正常响应的原因。主机设备的应用程序负责处理不正常响应典型处理过程是主机把对信息的测试和诊断送给从机并通知操作者。数据区的内容数据区有个进制的数据位数据范围为FF(进制)根据网络串行传输的方式数据区可由一对ASCII字符组成或由一个RTU字符组成。wwwplcworldcnAdministrator高亮Administrator高亮主机向从机设备发送的信息数据中包含了从机执行主机功能代码中规定的请求动作如离散量寄存器地址处理对象的数目以及实际的数据字节数等。举例说明若主机请求从机读一组寄存器(功能代码)该数据规定了寄存器的起始地址以及寄存器的数量。又如主机要在一从机中写一组寄存器(则功能代码为H)。该数据区规定了要写入寄存区的起始地址寄存器的数量数据的字节数以及要写入到寄存器的数据。若无错误出现从机向主机的响应信息中包含了请求数据若有错误出现则数据中有一个不正常代码使主机能判断并作出下一步的动作。数据区的长度可为“零”以表示某类信息如主机要求从机响应它的通讯事件记录(功能代码OBH)。此时从机不需要其他附加的信息功能代码只规定了该动作。信息帧错误校验标准Modbus总线SDCII使用ASCII方式时束符为CRLF字符。RTU使用RTU方式时校验信息帧是最后的一个串行传送信息在标准的Modbus上最低有效位:(LSB)ASCII数据帧位序:图ASCII位序RTU数据帧位序:带图RTU位序错误校验方法标准的Modbus串行CRC)适用整个信息的校验程中校验每个字符和整个PIMBUSwwwplcworldcn有两类错误检查方法错误检查区的内容按使用的错误检查方法填写。错误校验码为个ASCII字符错误校验字符是LRC校验结果。校验时起始符为(:)冒号结错误校验码为一个位的值个位字节。错误校验值是对信息内容执行CRC校验结果。CRC数据得到的校验码先送低位字节后送高位字节所以CRC码的高位字节是最后被传送的信息。传送的信息中每个字符或字节按由左向右的次序传送:最高有效位:(MSB)带无无奇偶校验奇偶校验奇偶校验奇偶校验通讯网络采用两种错误校验方法奇偶校验(奇或偶)可用于校验每一个字符信息帧校验(LRC或字符校验和信息帧校验均由主机设备产生并在传送前加到信息中去。从机设备在接收信息过信息。ModbusProtocolAdministrator高亮Administrator高亮Administrator高亮Administrator高亮Administrator高亮Administrator高亮Administrator高亮主机可由用户设置的一个预定时间间隔确定是否放弃传送信息。该间隔应有足够的时间来满足从机的正常响应。若主机检测到传输错误时则传输的信息无效。从机不再向主机返回响应信息。此时主机会产生一个超时信息并允许主机程序处理该错误信号。注意:主机向实际并未存在的从机发送信息时也会引起超时出错信号。在MAP或Modbus等其它网骆上使用时采用比Modbus更高一级的数据帧校验方法。在这些网络中不再运用Modbus中的LRC或CRC校验方法。当出现发送错误时网络中的通讯协议通知发送设备有错误出现并允许根据设置的情况重试或放弃信息发送。若信息已发送但从机设备未作响应则主机通过程序检查后发出一个超时错误。奇偶校验用户可设置奇偶校验或无校验以此决定每个字符发送时的奇偶校验位的状态。何论是奇或偶校验它均会计算每个字符数据中值为“”的位数ASCII方式为位数据RTU方式为位数据。并根据“”的位数值(奇数或偶数)来设定为“”或“”如一个RTU数据帧中位数据位为:在该帧中值为“”的总位数为即偶数。如采用奇校验方式时则“”的总位数为奇数即。发送信息时计算奇偶位并加到数据帧中接收设备统计位值为“”的数量若与该设备要求的不一致时产生一个错误。在Modbus总线上的所有设备必须采用相同的奇偶校验方式。注意:奇偶校验只能检测到数据帧在传输过程中丢失奇数“位”时才产生的错误。如采用奇数校验方式时一个包含个“”位的数据丢失个“”位时其结果仍然是奇数。若无奇偶校验方式时传输中不作实际的校验应附加一个停止位。LRC校验ASCII方式时数据中包含错误校验码采用LRC校验方法时LRC校验信息以冒号“:”开始以CRLF字符作为结束。它忽略了单个字符数据的奇偶校验的方法。LRC校验码为个字节位二进制值由发送设备计算LRC值。接收设备在接收信息时计算LRC校验码。并与收到的LRC的实际值进行比较若二者不一致亦产生一个错误。在梯形图中CKSM函数可计算数据信息中LRC的校验。用于主计算机时请查阅附录C中的一个实例它详细说明LRC的校验的过程。错误校验方法CRC校验RTU方式时采用CRC方法计算错误校验码CRC校验传送的全部数据。它忽略信息中单个字符数据的奇偶校验方法。CRC码为个字节位的二进制值。由发送设备计算CRC值并把它附到信息中去。接收设备在接收信息过程中再次计算CRC值并与CRC的实际值进行比较若二者不一致亦产生一个错误校验开始时把位寄存器的各位都置为“”然后把信息中的相邻个位字节数据放到当前寄存器中处理只有每个字符的位数据用于CRC处理。起始位停止位和校验位不参与CRC计算。CRC校验时每个位数据与该寄存器的内容进行异或运算然后向最低有效位(LSB)方向移位用零填入最高有效位(MSB)后再对LSB检查若LSB=则寄存器与预置的固定值异或若LSB=不作异或运算。重复上述处理过程直至移位次最后一次(第次)移位后下一个位字节数据与寄存器的当前值异或再重复上述过程。全部处理完信息中的数据字节后最终得到的寄存器值为CRC值。CRC值附加到信息时低位在先高位在后。在梯形图中CKSM函数计算信息中的CRC值。用于主计算机时可查阅附录C中的一个实例它详细说明了CRC的校验。第二章数据和控制功能ˆModbus功能代码格式ˆModbus功能代码总结ModbusProtocolPIMBUSwwwplcworldcnPIMBUSModbusProtocolˆModbus功能代码说明wwwplcworldcn功能代码格式数字值表达若无特殊说明在此节文中用+进制值表示图中的数据区则用十六进制表示。Modbus信息中的数据地址Modbus信息中的所有数据地址以零作为基准各项数据的第一个数据地址的编号为如:ˆ在可编程控制器中“coil”在Modbus信息中其地址值表示为ˆCoil(十进制)在Modbus信息中则为EH(十进制)ˆ保持寄存器在信息中数据地址为寄存器。功能代码区为保持寄存器类型规定的操作因此“XXXX”是缺省的地址类型。ˆ保持寄存器寻址寄存器地址为Bhex(+进制)Modbus信息中区内容图为一个例子说明了Modbus的查询信息图为正常响应的例子这两例子中的数据均是进制的也表示了以ASCLL或RTU方式构成数据帧的方法。主机查询是读保持寄存器被请求的从机地址是读取的数据来自地址从至个保持寄有器。注意该信息规定了寄存器的起始地址为(BH)。从机响应返回该功能代码说明是正常响应字节数“Bylecount”中说明有多少个位字节被返回。因无论是ASCII方式还是RTU方式它表明了附在数据区中位字节的数量。ASCII方式时字节数为数据中ASCII字符实际数的一半每个位的进制值需要一个ASCII字符表示因此在数据中应由个ASCII字符来表示一个位的字节。如RTU方式时H用一个字节()发送而用ASCII方式时发送需个字节即ASCII“”()和ASCII“”()。个位为一个单位计算“字节数”它忽略了信息帧用(ASCII或RTU)组成的方法。字节数使用方法:当在缓冲区组织响应信息时“字节数”区域中的值应与该信息中数据区的字节数相等。QUERYFieldNameExample(Hex)ASCIICharactersRTUBitFieldHeader页眉:(colon)NoneSlaveAddress从机地址Function功能StartingAddressHi开始高地址StartingAddressLo开始低地址BBNoofRegistersHiNoofRegistersLoErrorCheckTrailerTotalBytes:LRC(chars)CRLFCRC(bits)None图说明“字节数”区在一个贡型响应中的应用。RESPONSEFieldNameHeader页眉Example(Hex)ASCIICharacters:(colon)RTUBitFieldNoneSlaveAddress从机地址Function功能代码ByteCount计算位DataHiDataLoBBDataHiDataLoDataHiDataLoErrorCheckTrailerTotalBytes:LRC(chars)CRLFCRC(bits)None图:从机采用ASCIIRTU方式响应ModbusProtocolPIMBUSwwwplcworldcnModbus数据内容在Modbus网络发送的Modbus信息应需嵌入到LLC(逻辑连接控制)级数据帧Modbus信息区由位字节的数据组成类似于RTU中的信息组成。由发送设备把从机地址转换成Modbus路由地址CRC数据不在Modbus信息中发送因为会在更高级的数据链路控制层(HDLC)中进行CRC校验。其余的信息与原标准格式一致应用软件(控制器中的MSTR或主机中的ModcomIII)可将这些信息帧组成数据包。图示例说明了如何将读寄存器值的请求嵌入到+Modbus网络的数据帧中。前导工作标记广播地址MACLLC区CRC结束标志HDLC级MAC级:目的地址原地址MAC功能字节数LLC区LLC级:输出路由路由器传送次序路由MODBUS信息帧计数器从机地址功能代码高位起始低位起始高位寄低位寄地址地址存器数量存器数量MODBUS信息:图:Modbus数据内容控制器支持的功能代码下表列出Modicon控制器支持的功能代码:以十进制表示。“Y”表示支持“N”表示不支持。代码名称M读线圈状态YYYYYY读输入状态YYYYYY读线保持寄存器YYYYYY读输入寄存器YYYYYY强制单个线圈YYYYYY预置单个寄存器YYYYYY读不正常状态YYYYYY诊断(见第章)程序NYNNNN查询NYNNNN通讯事件控制YNYNNY通讯事件记录YNYNNY程序控制器YNYNNY查询控制器YNYNNY强制多个寄存器YYYYYY预置多个寄存器YYYYYY报告从机IDYYYYYY程序MNNNYYNPIMBUSModbusProtocolwwwplcworldcn通讯链路复位NNNYYN读通用参考值NNYNNY写通用参考值NNYNNYMaskWriteXRegisterNNNNN()ReadWriteXRegistersNNNNN()ReadFIFO队列NNNNN()()功能代码仅由控制器支持读线圈状态描述读从机离散量输出口的ONOFF状态不支持广播。附录B列出由不同控制器型号支持最大的参数清单。查询查询信息规定了要读的起始线圈和线圈量线圈的起始地址为零个线圈的寻址地址分为。例:请求从机设备读线圈。QUERYFieldNameSlaveAddress从机地址Example(Hex)Function功能代码StartingAddressHi开始高地址StartingAddressLo开始低地址NoofPointsHiNoofRointsLo查讯寄存器数量ErrorCheck(LRCorCRC)图:读线圈状态-查询响应响应信息中的各线圈的状态与数据区的每一位的值相对应=ON=OFF。第一个数据字节的LSB(最低有效字符)为查询中的寻址地址其他的线圈按顺序在该字节中由低位向高位排列直至个为止下一个字节也是从低位向高位排例。若返回的线圈数不是的倍数则在最后的数据字节中的剩余位至字节的最高位全部填零字节数区说明全部数据的字节数。RESPONSEFieldNameExample(Hex)SlaveAddress从机地址Function功能代码ByteCount计数位(位=个)Data(Coils)CDData(Coils)BData(Coils)BData(Coils)EData(Coils)BErrorCheck(LRCorCRC)图:读线圈状态-响应线圈的状态用CDH表示二进制值为该字节的MCB(内存控制块)为线圈LSB(最低有效字ModbusProtocolPIMBUSwwwplcworldcnPIMBUSModbusProtocol符)为。线圈从左()向右()状态分别为ONONOFFOFFONONOFFON因此第一个字节中的线圈从左到右应是。下一个字节的线圈应为至。位数据串行转输从低位到高位即⋯⋯。最后一个数据字节中线圈的状态为BH(或二进制)线圈是左数第位线圈是该字节的最低位所线圈至的状态分别为ONONOFFONON注意个剩余位(至最高位的数)全部填。读输入位状态说明读从机离散量输入信号的ONOFF状态。不支持广播。附录B列出各种型号控制器所支持的最大参数量。查询查询信息规定了要读的输入起始地址以及输入信号的数量。输入起始地址为个输入口的地址分别为。例:请求读从机设备的的输入位状态。QUERYFieldNameExample(Hex)SlaveAddress从机地址Function功能代码StartingAddressHi开始高地址StartingAddressLo开始低地址CNoofPointsHiNoofRointsLo查讯寄存器数量ErrorCheck(LRCorCRC)图:读输入位状态-查询。响应响应信息中的各输入口的状态分别对应于数据区中的每一位值=ON=OFF第一个数据字节的LSB(最低有效字符)为查询中的寻址地址其他输入口按顺序在该字节中由低位向高位排列直至个位为止。下一个字节中的个输入位也是从低位到高位排列。若返回的输入位数不是的倍数则在最后的数据字节中的剩余位直至字节的最高位全部填零。字节的最高位字节数区。说明了全部数据的字节数。例:对查询作出响应(参见上页)。RESPONSEFieldNameExample(Hex)SlaveAddress从机地址Function功能代码ByteCount计算数Data(Inputs)ACData(Inputs)DBData(Inputs)ErrorCheck(LRCorCRC)图:读输入位状态-响应。输入位的状态用H(或二进制)表示。输入位为左数第位输入位为LSB(最低有效字符)输入位的状态分别为ONONOFFONOFFON注意最位还有个剩余位需填零。wwwplcworldcn读保持寄存器说明读从机保持寄存器的二进制数据不支持广播附录B列出了由各种型号控制器所支持的最大的参数量查询查询信息规定了要读的寄存器起始地址及寄存器的数量寄存器寻址起始地址为寄存器所对应的地址分别为QUERYFieldNameExample(Hex)SlaveAddress从机地址Function功能代码StartingAddressHi开始高地址StartingAddressLo开始低地址BNoofPointsHiNoofRointsLo查讯寄存器数量ErrorCheck(LRCorCRC)图:读保持寄存器查询响应响应信息中的寄存器数据为二进制数据每个寄存器分别对应个字节第一个字节为高位值数据第二个字节为低位数据。对XX型控制器(如等)扫描数据的速率为每次个寄存器。对其它控制器型号的扫描速率为每次个寄存器全部数据完成组合后返回响应信息。例按查询要求返回响应。RESPONSEFieldNameExample(Hex)SlaveAddress从机地址Function功能代码ByteCount计算数DataHi(Register)DataLo(Register)BDataHi(Register)DataLo(Register)DataHi(Register)DataLo(Register)ErrorCheck(LRCorCRC)图:读寄存器响应寄存器的数据用BH个字节(或用十进制)表示寄存器中的数据为和H(十进制时为和)读输入寄存器说明读从机输入寄存器(X类型)中的二进制数据不支持广播附录B列出了由各种型号控制器所支持的最大的参数量查询查询信息规定了要读的寄存器的起始地址及寄存器的数量寻止起始地址为寄存器所对应的地址分别为。ModbusProtocolPIMBUSwwwplcworldcnPIMBUSModbusProtocol例:请求读从机设备中的寄存器。QUERYFieldNameSlaveAddressFunctionStartingAddressHiStartingAddressLoNoofPointsHiNoofRointsLoErrorCheck(LRCorCRC)Example(Hex)图:读输入寄存器查询响应响应信息中的寄存器数据为每个寄存器分别对应个字节第一个字节为高位数据第二个字节为低位数据。对XX型控制器(如等)扫描数据的速率为每次个寄存器对其它型号的控制器为每次个寄存器。数据完成组合后返回响应信息。例按查询要求返回响应RESPONSEFieldNameSlaveAddressFunctionByteCountDataHi(Register)DataLo(Register)ErrorCheck(LRCorCRC)Example(Hex)A图:读寄存器响应寄存器中的数据用AH个字节(或用十进制)表示wwwplcworldcn强制单个线圈说明强制单个线圈(X类型)为ON或OFF状态。广播时该功能可强制所有从机中同一类型的线圈均为ON或OFF状态。e注意:该功能可越过控制器内存的保护状态和线圈的禁止状态。线圈强制状态一直保持有效直至下一个控制逻辑作用于线圈为止。控制逻辑中无线圈程序时则线圈处于强制状态。附录B中列出了由各种型号控制器所支持的最大的参数量。查询查询信息规定了需要强制线圈的类型线圈起始地址为线圈的寻址地址为由查询数据区中的一个常量。规定被请求线圈的ONOFF状态FFH值请求线圈处于ON状态H值请求线圈处于OFF状态其它值对线圈无效不起作用。例:强制从机设备中的线圈为ON状态QUERYFieldNameSlaveAddressFunctionCoilAddressHiCoilAddressLoForceDataHiForceDataLoErrorCheck(LRCorCRC)Example(Hex)ACFF图:强制单个线圈查询响应线圈为强制状态后即返回正常响应例:按查询要求返回响应RESPONSEFieldNameSlaveAddressFunctionCoilAddressHiCoilAddressLoForceDataHiForceDataLoErrorCheck(LRCorCRC)Example(Hex)ACFF图:强制单个线圈ModbusProtocolPIMBUSwwwplcworldcn预置单个寄存器说明把一个值预置到一个X类型保持寄存器中。广播时该功能把值预置到所有从机的相同类型的寄存器中。e注意:该功能可越过控制器的内存保护。使寄存器中的预置值保持有效。只能由控制器的下一个逻辑信号来处理该预置值。若控制逻辑中无寄存器程序时则寄存器中的值保持不变。附录B中列出了各种型号控制器所支持的最大的参数量查询查询信息规定了要预置寄存器的类型寄存器寻址起始地址为寄存器所对应的地址为。请求的预置值在查询数据区M或控制器使用一个位二进制值其中高位设定为而其它类型的控制器使用位值。例:请求把从机设备中的寄存器预置为H值。QUERYFieldNameSlaveAddressFunctionRegisterAddressHiRegisterAddressLoPresetDataHiPresetDataLoErrorCheck(LRCorCRC)Example(Hex)图:预置单个寄存器查询响应寄存器内容被预置后返回正常响应例:按查询要求返回响应RESPONSEFieldNameSlaveAddressFunctionRegisterAddressHiRegisterAddressLoPresetDataHiPresetDataLoErrorCheck(LRCorCRC)Example(Hex)图:预置单个寄存器响应读不正常状态说明读从中机中个不正常状态线圈的数据某些线圈号已在不同型号的控制器中预定义而其它的线圈由用户编程作为有关控制器的状态信息如“machineONOFF”“headsretraced”(缩回标题)“safetiessatisfied”(安全性满意)“errorconditions”(存在错误条件)或其它用户定义的标志等。该功能码不支持广播。该功能代码为存取该类信息提供了一种简单的方法不正常线圈的类型是已知的(在功能代码中不需要线圈类型)预定义的不正常线圈号如下:控制器型号线圈设定M,,,用户定义电池状态用户定义电池状态内存保护状态PIMBUSModbusProtocolwwwplcworldcnR工况状态用户预定义查询例请求读从机设备中的不正常状态QUERYFieldNameSlaveAddressFunctionErrorCheck(LRCorCRC)Example(Hex)图:读不正常状态查询响应正常响应包含个不正常的线圈状态为一个数据字节每个线圈一位。LSB对应为最低线圈类型的状态。例:按查询要求返回响应:QUERYFieldNameSlaveAddressFunctionErrorCheck(LRCorCRC)Example(Hex)B图:读不正常状态响应该例子中线圈数据为DH(二进制,)从左到右(最高位至最低位)的线圈状态分别为:OFF–ON–ON–OFF–ON–ON–OFF–ON。若控制器型号为这些位表示线圈至的状态若控制器型号为则表示线圈至的状态。(BHex)取通讯事件计数器说明由从机通讯事件计数器返回一个状态字和事件数依据一串信息前后读取的当前数值由主机决定其信息是否已被从机正常处理该功能代码不支持广播。信息成功完成次使控制器的事件计数器加不正常响应查询命令或取事件计数器命令等对计数值不起作用。通过诊断功能代码()(若重起动通讯选择子功能代码)或计数器和诊断寄存清零器代码(A)等可对事件计数器复位。查询例:请求读取从机设备的通讯事件计数器QUERYFieldNameSlaveAddressFunctionErrorCheck(LRCorCRC)Example(Hex)B图:读取通讯事件计数器查询响应正常响应含一个带个字节的状态字和一个双字节的事件数若从机还未处理完以前发出的程序值状态字中的各位。均为(FFFFH)处理完时各位值均为(H)。ModbusProtocolPIMBUSwwwplcworldcn例:按查询要求返回响应QUERYFieldNameSlaveAddressFunctionStatusHiStatusLoEventCountHiEventCountLoErrorCheck(LRCorCRC)Example(Hex)BFFFF图:读取通讯事件计数器响应该列子中状态字是FFFFH说明从机还在处理程序控制器计算的事件数为(H)(CHex)读取通讯事件记录说明由从机返回一个状态字事件数信息数和一个事件的数据区。不支持广播状态字和事件数与读取通讯事件计数器功能代码(,OBH)返回值相同。信息计数器包含从机处理(最后一次再起动计数器清零操作或通电)的信息量该值与由诊断功能代码()总线信息数子功能代码(,BH)返回的值相同。事件数据区包含个字节。每个字节对应Modbus送出的一个状态或子机接收操作的一个状态。由子机把事件送到顺序排列的区域。字节为最新的事件最大新的确字节刷新该区域的最老的字节。查询例:请求从机设备读取通讯事件记录QUERYFieldNameSlaveAddressFunctionErrorCheck(LRCorCRC)Example(Hex)C图:读取通讯事件记录查询响应正常响应含一个个字

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/14

中文MODBUS协议

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利