CN110061896A - 一种modbus-rtu总线地址冲突检测方法 - Google Patents
一种modbus-rtu总线地址冲突检测方法 Download PDFInfo
- Publication number
- CN110061896A CN110061896A CN201910371471.6A CN201910371471A CN110061896A CN 110061896 A CN110061896 A CN 110061896A CN 201910371471 A CN201910371471 A CN 201910371471A CN 110061896 A CN110061896 A CN 110061896A
- Authority
- CN
- China
- Prior art keywords
- address
- modbus
- code
- data
- correct
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种MODBUS‑RTU总线地址冲突检测方法,包括向指定地址的MODBUS从机发送数据并等待MODBUS从机应答,在预定时间内判断是否接收到应答数据包,如果没有收到数据包则进入超时处理;否则进入数据包分析处理:将接收到的实际数据长度L1与已知从设备需要回应的数据长度L0进行比较,当L1小于L0时,判定为数据异常;当L1等于L0时逐一判断地址码、功能码和校验码是否正确,若地址码和功能码正确但校验码错误时判定为MODBUS从机存在地址冲突,否则判定为数据异常。避免了现有技术中简单的将异常数据进行丢弃的判断,提升了MODBUS‑RTU总线的易用性、可靠性。
Description
技术领域
本发明涉及属于MODBUS-RTU总线技术领域,尤其涉及一种用于检测种MODBUS-RTU总线地址冲突的技术。
背景技术
MODBUS-RTU总线是一种RTU(Remote Terminal Unit,远程终端单元)串行通信协议。此协议采用master/slave架构,每个MODBUS-RTU总线有且只有一个master节点,其他使用MODBUS协议参与通信的节点是slave节点,每一个slave设备(MODBUS从机)需要有一个唯一的地址。一个MODBUS命令包含了打算执行的设备的MODBUS地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的MODBUS命令包含了校验码,以确定到达的命令没有被破坏。通常基本的MODBUS命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。
现有技术中,MODBUS-RTU总线中MODBUS-Master(MODBUS主机)和
MODBUS-Slave(MODBUS从机)的数据处理方式如图1所示,其数据接收和处理过程如下,MODBUS-Master准备对指定地址设备发送数据,MODBUS-Master发送应用数据单元,等待MODBUS-Slave应答,如果MODBUS-Master未在预定时间内接收到应答数据包,直接进行超时处理。如果MODBUS-Master在预定时间内收到应答数据包,则对应答数据包进行分析,判断长度是否正确,地址是否正确,功能码是否正确,校验码是否正确。如果都正确则判定数据正常,并对其进行解析;如果有任意一个不正确则判定数据异常,不处理。在目前的现有技术中,针对数据异常的情况均为进行分析,无法判断是什么原因造成的数据异常。
发明内容
本发明针对现有技术中的不足,提供了一种MODBUS-RTU总线地址冲突检测方法,包括:向指定地址的MODBUS从机发送数据并等待MODBUS从机应答;在预定时间内判断是否接收到应答数据包,如果没有收到数据包则进入超时处理;否则进入数据包分析处理:将接收到的实际数据长度L1与已知从设备需要回应的数据长度L0进行比较,当L1小于L0时,判定为数据异常;当L1等于L0时逐一判断地址码、功能码和校验码是否正确,若地址码和功能码正确但校验码错误时判定为MODBUS从机存在地址冲突,否则判定为数据异常;当L1大于L0时判断地址码是否正确,若地址码正确时判定MODBUS从机存在地址冲突,否则判定为数据异常。
优选的,当L1等于L0时,若地址码不正确则判定为数据异常。
优选的,当L1等于L0时,若地址码正确则再判断功能码是否正确,如果功能码不正确则判定为数据异常,否则当功能码正确时再判断校验码是否正确;如果校验码正确则判定数据正常并解析,如果校验码错误则判定MODBUS从机存在地址冲突。
优选的,所述步骤当L1大于L0时判断地址码是否正确,若地址码正确时判定MODBUS从机存在地址冲突,否则判定为数据异常,在首次确认L1大于L0且地址正确时,再至少一次重复比较L1与L0以及判断地址码信息,当L1均大于L0且地址均正确时,判定MODBUS从机存在地址冲突。
优选的,所述步骤当L1大于L0时判断地址码是否正确,若地址码正确时判定MODBUS从机存在地址冲突,否则判定为数据异常,具体可包括:如果当L1大于L0,但L1小于2倍L0时,若地址码正确时判定MODBUS从机存在地址冲突;如果当L1大于或等于2倍L0时,则判定MODBUS从机存在地址冲突。
优选的,当L1大于或等于2倍L0时,判定MODBUS从机存在地址冲突,并根据地址码位置和从设备需回应数据长度L0将此应答数据包拆分解析为两个MODBUS从机应答数据。
优选的,当L1大于或等于2倍L0时,对首部L0长度数据逐一判断地址码、功能码和校验码是否正确,若正确则判定该部分数据正常并解析。
本发明还公开了一种控制装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述MODBUS-RTU总线地址冲突检测方法的步骤。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述MODBUS-RTU总线地址冲突检测方法的步骤。
本发明通过将接收到的应答数据包实际数据长度与已知从设备需要回应的数据长度进行比较,并辅助以对数据长度、地址、功能码、校验的分析,实现MODBUS-RTU总线中的MODBUS-Slave地址冲突检测,在基本不增加资源消耗的前提下分辨出地址冲突故障,提升了对数据异常时的故障诊断。同时在增加判断时间的条件下,可以进一步提升故障诊断的可靠性。避免了现有技术中,简单的将异常数据进行丢弃的判断,深度判断了由MODBUS-Slave地址冲突引起的数据异常,提升了MODBUS-RTU总线的易用性、可靠性。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1现有技术中MODBUS数据接收处理过程;
图2为本发明实施例中MODBUS-RTU总线地址冲突检测方法的步骤示意图;
图3为本发明实施例中MODBUS-RTU总线地址冲突检测方法的数据接收处理过程;
图4为本发明实施例中当应答数据包L1=L0时的数据叠加示意图;
图5为本发明实施例中当应答数据包L1>L0时的数据叠加示意图。
图6为本发明实施例中当应答数据包L1>2L0时的数据叠加示意图。
图7为本发明实施例中多次地址确认处理过程;
图8为本发明实施例中控制装置的原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明中,除非另有明确的规定和限定,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
附图2为实施例公开的一种MODBUS-RTU总线地址冲突检测方法的流程示意图,MODBUS-RTU总线是一种RTU(Remote Terminal Unit,远程终端单元)串行通信协议,该协议采用master/slave架构,每个MODBUS-RTU总线有且只有一个master节点,其他使用MODBUS协议参与通信的节点是slave节点,每一个slave设备(MODBUS从机)需要有一个唯一的地址。一个MODBUS命令包含了打算执行的设备的MODBUS地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令,所有的MODBUS命令包含了校验码,以确定到达的命令没有被破坏。通常基本的MODBUS命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。MODBUS-RTU总线地址冲突检测用于检测MODBUS-RTU总线的两个及两个以上MODBUS-Slave中的地址冲突的技术,为了提升MODBUS-RTU总线地址冲突检测的易用性、可靠性,本发明公开了一种MODBUS-RTU总线地址冲突检测方法,很好的解决了现有技术中的缺点,方法简洁可靠。在本方法中,使用嵌入式代码实现MODBUS-RTU总线地址冲突检测。MODBUS-Master发送应用数据单元,
MODBUS-Slave应答。如果存在多个地址相同的MODBUS-Slave从机,它们所回应的数据会相互干扰,MODBUS-Master通过判断MODBUS-Slave应答包的长度、地址码、功能码,可以确定MODBUS-Slave是否出现地址冲突。该该方法具体包括:
步骤S1,向指定地址的MODBUS从机发送数据并等待MODBUS从机应答。
MODBUS-Master准备对指定地址设备发送数据,MODBUS-Master发送应用数据单元,等待MODBUS-Slave应答。其中MODBUS-Master为采用MODBUS-RTU通信协议的串行通信主机,MODBUS-Slave为采用MODBUS-RTU通信协议的串行通信从机。
步骤S21,在预定时间内判断是否接收到应答数据包。
MODBUS-Master在预定时间内判断是否接收到应答数据包,其中在本实施例中MODBUS-Slave应答数据包具体为:地址1字节,功能码1字节,数据包长度已知因其可根据具体命令计算出来,校验2字节。
步骤S22,如果没有收到数据包则进入超时处理.
如果MODBUS-Master在预定时间内没有收到数据包,则进入超时处理,可重新再次向指定地址的MODBUS从机发送数据或者直接报错。
步骤S3,如果收到数据包则进入数据包分析处理,将接收到的实际数据长度L1与已知从设备需要回应的数据长度L0进行比较。
如果MODBUS-Master在预定时间内收到数据包,则对收到的数据包进行分析处理,具体是先对收到的数据包长度进行判断,将接收到的实际数据长度L1与已知从设备需要回应的数据长度L0进行比较,其中L0为已知从设备MODBUS-Slave需要回应的数据长度,以字节为单位;L1为主设备MODBUS-Master接收到的实际数据长度,以字节为单位。
步骤S41,当L1小于L0时,判定为数据异常.
步骤S42,当L1等于L0时逐一判断地址码、功能码和校验码是否正确,若地址码和功能码正确但校验码错误时判定为MODBUS从机存在地址冲突,否则判定为数据异常。具体的,当L1等于L0时,若地址码不正确则判定为数据异常。当L1等于L0时,若地址码正确则再判断功能码是否正确,如果功能码不正确则判定为数据异常,否则当功能码正确时再判断校验码是否正确;如果校验码正确则判定数据正常并解析,如果校验码错误则判定MODBUS从机存在地址冲突。
步骤S43,当L1大于L0时判断地址码是否正确,若地址码正确时判定MODBUS从机存在地址冲突,否则判定为数据异常。
本实施例公开的MODBUS-RTU总线地址冲突检测方法,通过将接收到的应答数据包实际数据长度与已知从设备需要回应的数据长度进行比较,并辅助以对数据长度、地址、功能码、校验的分析,实现MODBUS-RTU总线中的MODBUS-Slave地址冲突检测,在基本不增加资源消耗的前提下分辨出地址冲突故障,提升了对数据异常时的故障诊断。同时在增加判断时间的条件下,可以进一步提升故障诊断的可靠性。避免了现有技术中,简单的将异常数据进行丢弃的判断,深度判断了由MODBUS-Slave地址冲突引起的数据异常,提升了MODBUS-RTU总线的易用性、可靠性。
附图3公开了一个MODBUS-RTU总线地址冲突检测方法的具体实施例,
MODBUS-Master准备对指定地址设备发送数据,MODBUS-Master发送应用数据单元,等待MODBUS-Slave应答。MODBUS-Master在预定时间内判断是否接收到应答数据包,没有收到数据包,进入超时处理;收到数据包,进入数据包分析处理。在数据包分析中,先进行数据包长度判断,判断数据包长度L1是否大于L0。当L1不大于L0时,再判断L1是否等于L0。当L1不等于L0时,直接判定为数据异常,丢弃;当L1等于L0时,再判断地址是否正确。当地址不正确时,直接判定为数据异常,丢弃;当地址正确时,再判断功能码是否正确。当功能码不正确时,直接判定为数据异常,丢弃;当功能码正确时,在判断校验是否正确。当校验正确时,数据正常,解析;当校验错误时,判定为MODBUS-Slave存在地址冲突。当L1大于L0时,再判断地址是否正确。当地址不正确时,直接判定为数据异常,丢弃;当地址正确时,判定为MODBUS-Slave存在地址冲突。
附图4-6公开了两个MODBUS-Slave设备地址冲突时的MODBUS-RTU总线地址冲突检测方法,MODBUS-Slave设备A和MODBUS-Slave设备B在接收到MODBUS-Master发送的数据后都在指定时间内发回应答数据包。如附图4所示,当应答数据包长度L1等于L0,由于MODBUS-Master发送的数据包相同,因此MODBUS-Slave设备A和MODBUS-Slave设备B回复的地址和功能码完全相同(因为在MODBUS协议里,功能码就是命令码,用来表示数据包属性,以一个字节来表示,协议格式里规定应答数据包里包含该字节),但它们是两个不同的设备,因此回复的数据不同,校验码也不同。MODBUS-Slave设备A和MODBUS-Slave设备B数据重叠组合后,地址和功能码保持不变,数据和校验码会出现变化。因此再判断到地址正确,功能码正确,校验码错误时,可以判定为Modbus-Slave设备存在地址冲突。
当应答数据包长度L1大于L0时,需分情况处理。如附图5所示,当L1大于L0,但L1小于2倍L0时,此时MODBUS-Slave设备A和MODBUS-Slave设备B回复的数据包有部分重叠,由于地址码位于首位,并且只有1个字节,因此如果能判断地址码正确,则此时可以判定为Modbus-Slave设备存在地址冲突。如附图6所示,当L1大于或等于2倍L0时,此时MODBUS-Slave设备A和
MODBUS-Slave设备B回复的数据包无重叠内容,相当于两包独立的应答数据包,此时可以判定为Modbus-Slave设备存在地址冲突。并且由于每个独立的应答数据包都是正确的,可以按照正常数据进行解析,并根据实际情况来判断数据是否可用。具体的,每个独立的数据包都有固定格式,可以根据MODBUS协议进行解析,并通过校验字节来保证数据的完整性,比如:主设备需要获取5号设备的保持寄存器(功能码为03)起始地址从0开始的2个寄存器数据内容。主设备请求数据包内容:0x05 0x03 0x00 0x00 0x00 0x02 0xC5 0x8F,其中0xC5 0x8F是0x05 0x03 0x00 0x00 0x00 0x02数据的CRC校验值,而从设备应答数据包内容:0x05 0x03 0x04 0x01 0x02 0x03 0x04 0x1E 0xFC,其中0x1E 0xFC是0x05 0x030x04 0x01 0x02 0x03 0x04的数据的CRC校验值。通过根据地址码位置和从设备需回应数据长度L0将此应答数据包拆分解析为两个MODBUS从机应答数据,具体的可根据地址码位置分辨出两回复数据的起始位置,再根据需回应数据长度L0从当应答数据包中分离出两设备的回复数据,根据各数据尾部的校验码来验证数据的完整性,如无误即可分别对两回复数据进行解析。通过对L1>2*L0的情况下的应答数据包的数据分离,不仅可以判断出MODBUS-Slave地址冲突检测,还可同时解析里面的数据;避免了现有技术中简单的将异常数据进行丢弃的判断,提升了MODBUS-RTU总线的易用性、可靠性。而在另一些具体实施例中,当L1大于或等于2倍L0时,也可对首部L0长度数据逐一判断地址码、功能码和校验码是否正确,若正确则判定该部分数据正常并解析,即先从应答数据包中根据L0分离出位于数据包前部的一个Modbus-Slave设备回复数据,对该回复数据分别通过地址码、功能码和校验码的判断来判定该数据是否无误,如无误即可对其进行解析以获取信息。保证了在L1>2*L0的情况下的对应答数据包的数据的有效利用,提升了MODBUS-RTU总线的传输高效性和实时性,避免了现有技术中简单的将异常数据进行丢弃的处理方式。
跟前述实施例类似,当存在三个或其它数量的MODBUS-Slave设备地址冲突时,也可采用类似上述实施例中的方式进行MODBUS-RTU总线地址冲突的检测和对存在地址冲突的应答数据包内的数据内容的解析,上述方法可以扩展到任意多个MODBUS-Slave地址冲突检测。
例如在另一些实施例中,当收到的应答数据包长度L1>2*L0的情况下,首先截取首部L0长度数据,逐一判断地址码、功能码和校验码是否正确,若都正确则判定该部分数据正常并解析,作为第一Modbus-Slave设备数据。即先从应答数据包中根据L0长度分离出位于数据包前部的一个Modbus-Slave设备回复数据,对该回复数据分别通过地址码、功能码和校验码的判断来判定该数据是否无误,如无误即可对其进行解析以获取信息。然后对将第一Modbus-Slave设备数据从L1中删除后的剩余数据进行分析,根据地址码等获取剩余数据中的有效数据的起始位置后截取长度L0的数据对其分别通过地址码、功能码和校验码进行逐一判定,若地址码、功能码和校验码都正确则解析该部分数据作为第二Modbus-Slave设备数据。如果在分离出第二Modbus-Slave设备数据后的应答数据包序列中还存在剩余数据,则继续根据上述步骤对剩余数据进行判断和解析,直至对所需判断的数据中出现地址码、功能码或校验码任一错误,或剩余数据长度小于L0时为止。通过对应答数据包长度大于两倍L0时的数据依次进行分离解析,可完整获取存在地址冲突的各设备应答数据,可对充分获取应答数据包里的设备数据,提高了对应答数据包的数据的有效利用率,提升了MODBUS-RTU总线的传输高效性和实时性,避免了现有技术中简单的将异常数据进行丢弃的处理方式。
如附图7所示,在对诊断的可靠性要求非常高,而对数据实时性要求较低的场合,可以增加多次确认机制。经过地址判断后进入多次确认机制,比如可采用连续3次判断出现错误,则认为存在地址冲突,只要期间有一次正常,则需要重新判断的机制。只有当连续多次都判断到L1>L0,并且地址正确的条件下,才可以判定为Modbus-Slave设备存在地址冲突。例如在首次确认L1大于L0且地址正确时,再至少一次重复比较L1与L0以及判断地址码信息,当L1均大于L0且地址均正确时,判定MODBUS从机存在地址冲突。其中多次确认的次数可配置,次数配置越大,可靠性越高,实时性越差。可根据应用场合进行选择。
附图8为实施例公开的一种是控制装置的原理示意图。所述控制装置1包括存储器11、处理器12以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如电子批记录软件。所述处理器执行所述计算机程序时实现上述各个MODBUS-RTU总线地址冲突检测方法实施例中的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述控制器中的执行过程。所述控制器可包括,但不仅限于处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是控制器的示例,并不构成对控制器设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述控制器设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述服务器设备的控制中心,利用各种接口和线路连接整个服务器设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述服务器设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述MODBUS-RTU总线地址冲突检测方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (9)
1.一种MODBUS-RTU总线地址冲突检测方法,其特征在于,包括:
向指定地址的MODBUS从机发送数据并等待MODBUS从机应答;
在预定时间内判断是否接收到应答数据包,如果没有收到数据包则进入超时处理;
否则进入数据包分析处理:将接收到的实际数据长度L1与已知从设备需要回应的数据长度L0进行比较,当L1小于L0时,判定为数据异常;当L1等于L0时逐一判断地址码、功能码和校验码是否正确,若地址码和功能码正确但校验码错误时判定为MODBUS从机存在地址冲突,否则判定为数据异常;当L1大于L0时判断地址码是否正确,若地址码正确时判定MODBUS从机存在地址冲突,否则判定为数据异常。
2.根据权利要求1所述的MODBUS-RTU总线地址冲突检测方法,其特征在于:当L1等于L0时,若地址码不正确则判定为数据异常。
3.根据权利要求1所述的MODBUS-RTU总线地址冲突检测方法,其特征在于:
当L1等于L0时,若地址码正确则再判断功能码是否正确,如果功能码不正确则判定为数据异常,否则当功能码正确时再判断校验码是否正确;
如果校验码正确则判定数据正常并解析,如果校验码错误则判定MODBUS从机存在地址冲突。
4.根据权利要求1-3任一所述的MODBUS-RTU总线地址冲突检测方法,其特征在于:所述步骤当L1大于L0时判断地址码是否正确,若地址码正确时判定MODBUS从机存在地址冲突,否则判定为数据异常,
在首次确认L1大于L0且地址正确时,再至少一次重复比较L1与L0以及判断地址码信息,当L1均大于L0且地址均正确时,判定MODBUS从机存在地址冲突。
5.根据权利要求1-3任一所述的MODBUS-RTU总线地址冲突检测方法,其特征在于,所述步骤当L1大于L0时判断地址码是否正确,若地址码正确时判定MODBUS从机存在地址冲突,否则判定为数据异常,具体可包括:
如果当L1大于L0,但L1小于2倍L0时,若地址码正确时判定MODBUS从机存在地址冲突;
如果当L1大于或等于2倍L0时,则判定MODBUS从机存在地址冲突。
6.根据权利要求5所述的MODBUS-RTU总线地址冲突检测方法,其特征在于:当L1大于或等于2倍L0时,判定MODBUS从机存在地址冲突,并根据地址码位置和从设备需回应数据长度L0将此应答数据包拆分解析为两个MODBUS从机应答数据。
7.根据权利要求6所述的MODBUS-RTU总线地址冲突检测方法,其特征在于:当L1大于或等于2倍L0时,对首部L0长度数据逐一判断地址码、功能码和校验码是否正确,若正确则判定该部分数据正常并解析。
8.一种控制装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-7任一所述MODBUS-RTU总线地址冲突检测方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7任一所述MODBUS-RTU总线地址冲突检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910371471.6A CN110061896B (zh) | 2019-05-06 | 2019-05-06 | 一种modbus-rtu总线地址冲突检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910371471.6A CN110061896B (zh) | 2019-05-06 | 2019-05-06 | 一种modbus-rtu总线地址冲突检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110061896A true CN110061896A (zh) | 2019-07-26 |
CN110061896B CN110061896B (zh) | 2021-04-13 |
Family
ID=67322237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910371471.6A Active CN110061896B (zh) | 2019-05-06 | 2019-05-06 | 一种modbus-rtu总线地址冲突检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110061896B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111092967A (zh) * | 2019-12-31 | 2020-05-01 | 重庆菲莫科技有限公司 | 一种设备地址冲突处理方法及系统 |
CN111162983A (zh) * | 2019-12-18 | 2020-05-15 | 珠海格力电器股份有限公司 | 设备数据的采集方法及装置、存储介质和电子装置 |
CN111245694A (zh) * | 2019-09-17 | 2020-06-05 | 浙江中自机电控制技术有限公司 | 一种基于Modbus扩展通讯的故障处理方法 |
CN111427397A (zh) * | 2020-04-21 | 2020-07-17 | 西安和其光电科技股份有限公司 | 一种基于arm的温控系统及控温方法 |
CN112180837A (zh) * | 2020-08-31 | 2021-01-05 | 深圳市优必选科技股份有限公司 | 一种设备冲突检测方法、装置及机器人 |
CN112367148A (zh) * | 2020-10-22 | 2021-02-12 | 华南农业大学 | 大面积山地果园LoRa无线传输丢帧检测方法和装置 |
CN114584630A (zh) * | 2020-11-18 | 2022-06-03 | 中移物联网有限公司 | 一种基于现场总线协议的通信方法及设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4152699A1 (en) * | 2021-09-20 | 2023-03-22 | CAME S.p.A. | Detecting configuration errors in a bus control system |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970177A (zh) * | 2012-10-19 | 2013-03-13 | 深圳市计通智能技术有限公司 | 一种计算机监控系统通讯数据误码分析和过滤方法 |
CN103248547A (zh) * | 2013-04-28 | 2013-08-14 | 西南大学 | Modbus RTU从站快速捕获数据的方法及从站 |
CN103746783A (zh) * | 2013-11-29 | 2014-04-23 | 国电南瑞科技股份有限公司 | 一种基于Modbus通讯协议的扩展型通讯方法 |
CN103856578A (zh) * | 2014-01-03 | 2014-06-11 | 西南大学 | Modbus RTU从站自动获取站地址方法及从站 |
US20140173013A1 (en) * | 2012-12-19 | 2014-06-19 | Motech Industries, Inc. | Method for setting addresses of slave devices in communication network |
CN104038499A (zh) * | 2014-06-17 | 2014-09-10 | 宁波三星电气股份有限公司 | 基于modbus rtu协议的数据传输方法 |
EP2541846B1 (en) * | 2011-06-27 | 2015-09-23 | LSIS Co., Ltd. | Communication method of gateway device supporting CAN - and Modbus protocol conversion and gateway device using the same |
CN105429963A (zh) * | 2015-11-04 | 2016-03-23 | 北京工业大学 | 基于Modbus/Tcp的入侵检测分析方法 |
-
2019
- 2019-05-06 CN CN201910371471.6A patent/CN110061896B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2541846B1 (en) * | 2011-06-27 | 2015-09-23 | LSIS Co., Ltd. | Communication method of gateway device supporting CAN - and Modbus protocol conversion and gateway device using the same |
CN102970177A (zh) * | 2012-10-19 | 2013-03-13 | 深圳市计通智能技术有限公司 | 一种计算机监控系统通讯数据误码分析和过滤方法 |
US20140173013A1 (en) * | 2012-12-19 | 2014-06-19 | Motech Industries, Inc. | Method for setting addresses of slave devices in communication network |
CN103248547A (zh) * | 2013-04-28 | 2013-08-14 | 西南大学 | Modbus RTU从站快速捕获数据的方法及从站 |
CN103746783A (zh) * | 2013-11-29 | 2014-04-23 | 国电南瑞科技股份有限公司 | 一种基于Modbus通讯协议的扩展型通讯方法 |
CN103856578A (zh) * | 2014-01-03 | 2014-06-11 | 西南大学 | Modbus RTU从站自动获取站地址方法及从站 |
CN104038499A (zh) * | 2014-06-17 | 2014-09-10 | 宁波三星电气股份有限公司 | 基于modbus rtu协议的数据传输方法 |
CN105429963A (zh) * | 2015-11-04 | 2016-03-23 | 北京工业大学 | 基于Modbus/Tcp的入侵检测分析方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245694A (zh) * | 2019-09-17 | 2020-06-05 | 浙江中自机电控制技术有限公司 | 一种基于Modbus扩展通讯的故障处理方法 |
CN111245694B (zh) * | 2019-09-17 | 2021-11-23 | 浙江中自机电控制技术有限公司 | 一种基于Modbus扩展通讯的故障处理方法 |
CN111162983A (zh) * | 2019-12-18 | 2020-05-15 | 珠海格力电器股份有限公司 | 设备数据的采集方法及装置、存储介质和电子装置 |
CN111092967A (zh) * | 2019-12-31 | 2020-05-01 | 重庆菲莫科技有限公司 | 一种设备地址冲突处理方法及系统 |
CN111427397A (zh) * | 2020-04-21 | 2020-07-17 | 西安和其光电科技股份有限公司 | 一种基于arm的温控系统及控温方法 |
CN112180837A (zh) * | 2020-08-31 | 2021-01-05 | 深圳市优必选科技股份有限公司 | 一种设备冲突检测方法、装置及机器人 |
CN112367148A (zh) * | 2020-10-22 | 2021-02-12 | 华南农业大学 | 大面积山地果园LoRa无线传输丢帧检测方法和装置 |
CN112367148B (zh) * | 2020-10-22 | 2022-05-17 | 华南农业大学 | 大面积山地果园LoRa无线传输丢帧检测方法和装置 |
CN114584630A (zh) * | 2020-11-18 | 2022-06-03 | 中移物联网有限公司 | 一种基于现场总线协议的通信方法及设备 |
CN114584630B (zh) * | 2020-11-18 | 2023-10-27 | 中移物联网有限公司 | 一种基于现场总线协议的通信方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110061896B (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110061896A (zh) | 一种modbus-rtu总线地址冲突检测方法 | |
CN105259806B (zh) | 控制器升级方法和系统及主控制器和从控制器 | |
CN106330483B (zh) | 信息获取方法、客户端设备和服务端设备 | |
CN104734911A (zh) | 一种can总线网络管理测试系统及方法 | |
CN107195131A (zh) | 一种模拟硬件设备的方法及装置 | |
CN108763071A (zh) | 一种网页测试方法及终端设备 | |
CN113608518B (zh) | 数据生成方法、装置、终端设备及介质 | |
CN109218407A (zh) | 基于日志监控技术的代码管控方法及终端设备 | |
CN111106989B (zh) | 车辆can总线协议确定方法及装置 | |
CN114788199A (zh) | 一种数据校验方法及装置 | |
CN116614326A (zh) | 一种基于单通道多设备的modbus通信方法 | |
CN106411660A (zh) | 一种通话质量检测方法及终端 | |
CN113835946B (zh) | 数据交换的压力测试方法 | |
CN112214237A (zh) | 基于特征分组的cbtc子系统功能配置方法和装置 | |
CN113728607A (zh) | 激光雷达的配置方法、设备及存储介质 | |
CN111953540A (zh) | 一种报文生成方法、装置、电子设备及存储介质 | |
CN111679841A (zh) | 一种摄像模组的烧录系统、方法及装置 | |
CN110519120A (zh) | 通道检测、报文发送方法、装置、线卡板、设备及介质 | |
CN114553871B (zh) | 向车载应用推送消息的方法、装置、设备及存储介质 | |
CN116016271A (zh) | 一种基于微服务网关mock测试方法、装置及存储介质 | |
CN116302785A (zh) | 一种软硬件综合检测方法、系统、设备及介质 | |
CN113660057A (zh) | 监护数据的传输方法和装置 | |
CN117714323A (zh) | 诊断协议栈自动化测试的方法、装置和电子设备 | |
CN116405156A (zh) | 通信故障诊断方法、装置、控制单元以及车辆 | |
CN116089468A (zh) | 数据处理方法、装置、存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310056 room 1701, 17th floor, building 3, No. 316, Jianghong South Road, Changhe street, Binjiang District, Hangzhou, Zhejiang Patentee after: Mingdu Zhiyun (Zhejiang) Technology Co.,Ltd. Address before: 310000 1, 3 building, No. 316 Jianghong Road, Changhe street, Binjiang District, Hangzhou, Zhejiang. Patentee before: ZHEJIANG MINGDU INTELLIGENT CONTROL TECHNOLOGY Co.,Ltd. |