CN112822083B - 面向modbus应用层的数据校验方法和系统 - Google Patents

面向modbus应用层的数据校验方法和系统 Download PDF

Info

Publication number
CN112822083B
CN112822083B CN202110099736.9A CN202110099736A CN112822083B CN 112822083 B CN112822083 B CN 112822083B CN 202110099736 A CN202110099736 A CN 202110099736A CN 112822083 B CN112822083 B CN 112822083B
Authority
CN
China
Prior art keywords
data
modbus
application layer
check
communication parties
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.)
Active
Application number
CN202110099736.9A
Other languages
English (en)
Other versions
CN112822083A (zh
Inventor
倪睿
邱冬
黄金梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huadian Ge Aero Gas Turbine Equipment Co ltd
Original Assignee
Huadian Ge Aero Gas Turbine Equipment Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huadian Ge Aero Gas Turbine Equipment Co ltd filed Critical Huadian Ge Aero Gas Turbine Equipment Co ltd
Priority to CN202110099736.9A priority Critical patent/CN112822083B/zh
Publication of CN112822083A publication Critical patent/CN112822083A/zh
Application granted granted Critical
Publication of CN112822083B publication Critical patent/CN112822083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40228Modbus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种面向MODBUS应用层的数据校验方法和系统,包括:步骤1:通讯双方共同定义MODBUS应用层数据校验位;步骤2:通讯双方将数据校验位插入MODBUS地址表中;步骤3:通讯双方根据插入校验位后的MODBUS地址表,将数据写入MODBUS地址空间;步骤4:MODBUS数据读取方的应用层从MODBUS地址空间读取数据,并根据通讯双方的校验码进行数据校验。本发明采用的校验方法,对MODBUS应用层的数据提供一定程度的校验,减少MODBUS传输过程中常见的数据错位现象,避免因此导致的应用层数据误引用。

Description

面向MODBUS应用层的数据校验方法和系统
技术领域
本发明涉及数据校验技术领域,具体地,涉及一种面向MODBUS应用层的数据校验方法和系统。
背景技术
MODBUS通讯协议的机制保证了协议层(对于MODBUSTCP而言指传输层;对于MODBUSRTU而言指数据链路层)的数据正确性。但对于应用层传输的数据本体,MODBUS无法判断其正确性。冗长的数据表带来潜在的数据错位可能,数据表的更新或MODBUS驱动的更新提高了通讯过程中通讯双方数据定义不匹配的可能性。若无针对性的校验方法,错误数据可能被视为有效数据被应用层程序采用,进而造成意料外的后果。
专利文献CN106506307(申请号:CN201611198341.X)公开了一种Modbus帧格式自描述方法,包括寄存器数据类型可自描述;寄存器地址低字节在前还是高字节在前可自描述;寄存器数据低字节在前还是高字节在前可自描述;寄存器、继电器、开入量读写支持的功能码可自描述;寄存器、继电器、开入量起始地址定义可自描述;寄存器、继电器、开入量数量可自描述;CRC校验低字节在前还是高字节在前可自描述。下位机增加Modbus帧格式自描述信息,上位机通过指令召唤下位机自描述信息,根据下位机的自描述信息去召唤数据和解析数据,即可轻松实现通信匹配和数据解析匹配。该专利针对的是modbus协议层,采用该方法需通讯双方同时更改modbus驱动程序。该专利无法对所传输的数据本体进行校验。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种面向MODBUS应用层的数据校验方法和系统。
根据本发明提供的面向MODBUS应用层的数据校验方法,包括:
步骤1:通讯双方共同定义MODBUS应用层数据校验位;
步骤2:通讯双方将数据校验位插入MODBUS地址表中;
步骤3:通讯双方根据插入校验位后的MODBUS地址表,将数据写入MODBUS地址空间;
步骤4:MODBUS数据读取方的应用层从MODBUS地址空间读取数据,并根据通讯双方的校验码进行数据校验。
优选的,所述步骤1包括:设置通讯地址表中数据总长度为L,定义通讯双方地址表中第10*n+1位为数据校验位,n=1,2,3,4…,n≤0.11*L,数据校验位中的校验码为~binary(10*n+1),即校验位地址二进制按位取反。
优选的,所述步骤4包括:若校验码符合校验规则,则判定该组数据有效,应用层根据该组数据进行应用处理;若不符合校验规则,应用层进行故障处理。
根据本发明提供的面向MODBUS应用层的数据校验系统,包括:
模块M1:通讯双方共同定义MODBUS应用层数据校验位;
模块M2:通讯双方将数据校验位插入MODBUS地址表中;
模块M3:通讯双方根据插入校验位后的MODBUS地址表,将数据写入MODBUS地址空间;
模块M4:MODBUS数据读取方的应用层从MODBUS地址空间读取数据,并根据通讯双方的校验码进行数据校验。
优选的,所述模块M1包括:设置通讯地址表中数据总长度为L,定义通讯双方地址表中第10*n+1位为数据校验位,n=1,2,3,4…,n≤0.11*L,数据校验位中的校验码为~binary(10*n+1),即校验位地址二进制按位取反。
优选的,所述模块M4包括:若校验码符合校验规则,则判定该组数据有效,应用层根据该组数据进行应用处理;若不符合校验规则,应用层进行故障处理。
与现有技术相比,本发明具有如下的有益效果:
1、本发明采用的校验方法,对MODBUS应用层的数据提供一定程度的校验,减少MODBUS传输过程中常见的数据错位现象,避免因此导致的应用层数据误引用;
2、针对不同MODBUS通讯组采用不同的校验方法,可有效减少多组MODBUS通讯场景下的数据误采集;
3、采用本方法无需更改MODBUS驱动程序,仅需应用层进行数据校验;
4、按照本方法实施数据校验过程中,可以根据通讯双方对校验强度的需求调整校验位的定义,更严格的校验位定义将要求应用程序消耗更多的计算资源。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为原数据表图;
图2为插入校验位后数据表图;
图3为MODBUS应用层数据(读取)校验流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
在应用程序通过MODBUS协议传输数据时,将通讯双方共同定义的数据校验位插入数据地址表中,数据接收方根据校验位判断所接收的数据是否有效。本发明在使用过程中需要通讯双方,至少是数据接收方具有应用层的编辑权限和编辑能力,能够编程实现对数据校验规则的判断。
如图3,根据本发明提供的面向MODBUS应用层的数据校验方法,包括:
步骤1:通讯双方共同定义MODBUS应用层数据校验位,如图1,为原数据表图;
设通讯地址表中某类数据(coil,holdingregister等)总长度为L,通讯双方定义地址表中第10*n+1位为数据校验位,n=1,2,3,4…,n≤0.11*L,数据校验位中的校验码为~binary(10*n+1),即校验位地址二进制按位取反。
步骤2:通讯双方将数据校验位插入MODBUS地址表中,如图2,为插入校验位后数据表图;
将校验位插入长度为50的MODBUSholdingregister地址表中;
步骤3:通讯双方(对于MODBUSTCP而言,通讯双方指server和client;对于MODBUSRTU而言,通讯双方指slave和master)根据插入校验位后的数据表将数据写入MODBUS地址空间;
步骤4:MODBUS数据读取方的应用层从MODBUS地址空间读取数据,并根据双方定义的校验码进行数据校验。若相应的校验码符合定义的校验规则,则认定该组数据有效,应用层可根据该组数据进行应用处理;若不符合校验规则,应用层转而进行故障处理。
根据本发明提供的面向MODBUS应用层的数据校验系统,包括:
模块M1:通讯双方共同定义MODBUS应用层数据校验位;
模块M2:通讯双方将数据校验位插入MODBUS地址表中;
模块M3:通讯双方根据插入校验位后的MODBUS地址表,将数据写入MODBUS地址空间;
模块M4:MODBUS数据读取方的应用层从MODBUS地址空间读取数据,并根据通讯双方的校验码进行数据校验。
优选的,所述模块M1包括:设置通讯地址表中数据总长度为L,定义通讯双方地址表中第10*n+1位为数据校验位,n=1,2,3,4…,n≤0.11*L,数据校验位中的校验码为~binary(10*n+1),即校验位地址二进制按位取反。
优选的,所述模块M2包括:将校验位插入长度为50的MODBUS地址表中。
优选的,对于MODBUSTCP而言,通讯双方为服务器server和客户机client;
对于MODBUSRTU而言,通讯双方为从盘slave和主盘master。
优选的,所述模块M4包括:若校验码符合校验规则,则判定该组数据有效,应用层根据该组数据进行应用处理;若不符合校验规则,应用层进行故障处理。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (4)

1.一种面向MODBUS应用层的数据校验方法,其特征在于,包括:
步骤1:通讯双方共同定义MODBUS应用层数据校验位;
步骤2:通讯双方将数据校验位插入MODBUS地址表中;
步骤3:通讯双方根据插入校验位后的MODBUS地址表,将数据写入MODBUS地址空间;
步骤4:MODBUS数据读取方的应用层从MODBUS地址空间读取数据,并根据通讯双方的校验码进行数据校验;
所述步骤1包括:设置通讯地址表中数据总长度为L,定义通讯双方地址表中第10*n+1位为数据校验位,n=1,2,3,4…,n≤0.11*L,数据校验位中的校验码为~binary(10*n+1),即校验位地址二进制按位取反。
2.根据权利要求1所述的面向MODBUS应用层的数据校验方法,其特征在于,所述步骤4包括:若校验码符合校验规则,则判定该组数据有效,应用层根据该组数据进行应用处理;若不符合校验规则,应用层进行故障处理。
3.一种面向MODBUS应用层的数据校验系统,其特征在于,包括:
模块M1:通讯双方共同定义MODBUS应用层数据校验位;
模块M2:通讯双方将数据校验位插入MODBUS地址表中;
模块M3:通讯双方根据插入校验位后的MODBUS地址表,将数据写入MODBUS地址空间;
模块M4:MODBUS数据读取方的应用层从MODBUS地址空间读取数据,并根据通讯双方的校验码进行数据校验;
所述模块M1包括:设置通讯地址表中数据总长度为L,定义通讯双方地址表中第10*n+1位为数据校验位,n=1,2,3,4…,n≤0.11*L,数据校验位中的校验码为~binary(10*n+1),即校验位地址二进制按位取反。
4.根据权利要求3 所述的面向MODBUS应用层的数据校验系统,其特征在于,所述模块M4包括:若校验码符合校验规则,则判定该组数据有效,应用层根据该组数据进行应用处理;若不符合校验规则,应用层进行故障处理。
CN202110099736.9A 2021-01-25 2021-01-25 面向modbus应用层的数据校验方法和系统 Active CN112822083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110099736.9A CN112822083B (zh) 2021-01-25 2021-01-25 面向modbus应用层的数据校验方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110099736.9A CN112822083B (zh) 2021-01-25 2021-01-25 面向modbus应用层的数据校验方法和系统

Publications (2)

Publication Number Publication Date
CN112822083A CN112822083A (zh) 2021-05-18
CN112822083B true CN112822083B (zh) 2022-03-01

Family

ID=75859247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110099736.9A Active CN112822083B (zh) 2021-01-25 2021-01-25 面向modbus应用层的数据校验方法和系统

Country Status (1)

Country Link
CN (1) CN112822083B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691540B (zh) * 2022-03-22 2023-03-31 无锡雪浪数制科技有限公司 一种优化modbus协议读取数据的方法、系统和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0290111A2 (en) * 1981-05-22 1988-11-09 Data General Corporation Digital data processing system
CN101677277A (zh) * 2008-09-17 2010-03-24 许昌开普电器检测研究院 Modbus-rtu协议一致性测试方法
CN106506307A (zh) * 2016-12-22 2017-03-15 南京因泰莱电器股份有限公司 一种Modbus帧格式自描述方法
CN111404945A (zh) * 2020-03-19 2020-07-10 厦门铁博士电子有限公司 自适应通信协议的方法及称重传感器
CN111708513A (zh) * 2020-05-15 2020-09-25 深圳和而泰智能家电控制器有限公司 一种伪随机数种子生成方法及相关产品

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190697B2 (en) * 2009-05-20 2012-05-29 Square D Company Automated configuration of device communication settings
CN101572702B (zh) * 2009-05-27 2012-07-25 大连理工计算机控制工程有限公司 高速总线主从网络通信调度方法
CN106569440A (zh) * 2016-10-25 2017-04-19 宁波中车新能源科技有限公司 一种基于modbus‑rtu协议实现微处理器与触摸屏通讯的方法
CN108490884B (zh) * 2018-03-22 2021-02-12 合肥工业大学 一种数控机床实验教学装置
CN111818060B (zh) * 2020-07-09 2023-04-07 厦门海为科技有限公司 一种支持混合及离散数据传输的通讯协议、方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0290111A2 (en) * 1981-05-22 1988-11-09 Data General Corporation Digital data processing system
CN101677277A (zh) * 2008-09-17 2010-03-24 许昌开普电器检测研究院 Modbus-rtu协议一致性测试方法
CN106506307A (zh) * 2016-12-22 2017-03-15 南京因泰莱电器股份有限公司 一种Modbus帧格式自描述方法
CN111404945A (zh) * 2020-03-19 2020-07-10 厦门铁博士电子有限公司 自适应通信协议的方法及称重传感器
CN111708513A (zh) * 2020-05-15 2020-09-25 深圳和而泰智能家电控制器有限公司 一种伪随机数种子生成方法及相关产品

Also Published As

Publication number Publication date
CN112822083A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
CN108337120A (zh) 一种物联网终端设备的远程升级方法
CN112822083B (zh) 面向modbus应用层的数据校验方法和系统
JP2003229875A (ja) Can−コントローラ内部のデータ伝送におけるエラーの認識方法,can−コントローラ,プログラム,記録媒体,及び制御装置
US11715337B2 (en) Controller diagnostic device and method thereof
CN111736866A (zh) 兼容一对一和一对多的在线升级方法及终端设备
CN103281160B (zh) 一种控制器局域网帧传输验证方法
US20050257101A1 (en) Optimized-incrementing, time-gap defect detection apparatus and method
CN101620662B (zh) 一种基于闪速存储器的智能卡下载数据的方法
CN113806153B (zh) 一种芯片验证方法
CN112277841B (zh) 一种车型配置识别方法、车辆控制方法、行车电脑及汽车
CN114531314B (zh) 航天领域大数据可靠传输的方法、电子设备及存储介质
EP3647961A1 (en) Arithmetic processing apparatus and control method of arithmetic processing apparatus
CN111722858A (zh) 在线升级方法及终端设备
US6393595B1 (en) Method of communication with improved acknowledgement of reception
CN113259108A (zh) 证书更新方法、物联网平台及物联网设备
CN210536666U (zh) FastLIN总线接口设备
CN112148659B (zh) 数据传输电路
CN100484042C (zh) 报文净荷透传逻辑的验证方法及装置
CN210518379U (zh) Lin总线接口设备
CN114928377B (zh) 降低usb数据透传带宽的输出传输方法、装置及设备
CN110471865B (zh) 一种模拟spi通信实现控制器与驱动器通信的方法
CN117857249A (zh) 基于Modbus协议的数据传输方法
CN111026686B (zh) 一种基于fpga的pci总线控制器及控制方法
US6771716B1 (en) Method of communication with coherence checking and device for the implementation thereof
TW202132981A (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