CN101645886A - 电文数据的自动解包与校验方法 - Google Patents
电文数据的自动解包与校验方法 Download PDFInfo
- Publication number
- CN101645886A CN101645886A CN200910055118A CN200910055118A CN101645886A CN 101645886 A CN101645886 A CN 101645886A CN 200910055118 A CN200910055118 A CN 200910055118A CN 200910055118 A CN200910055118 A CN 200910055118A CN 101645886 A CN101645886 A CN 101645886A
- Authority
- CN
- China
- Prior art keywords
- message
- text data
- information
- data
- message specification
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
电文数据的自动解包与校验方法,包括以下步骤:(1)设定一由电文规格组成的电文规格数据库,所述电文规格包括电文号、序号、数据类型、长度信息;接收电文号,根据接收的电文号从所述电文规格数据库中读取相同电文号的电文规格,根据电文规格的序号顺序形成与该电文号相对应的规格数组;(2)接收电文数据,根据所述规格数组中电文项的长度信息,从接收到的电文数据中截取电文数据;(3)根据电文项的数据类型、取值范围,检查电文项对应的电文数据值,当存在电文项对应的电文数据值不在取值范围内或者无法转换成规定的数据数据类型时,报告失败;否则报告成功。本发明能够快速、准确的解包接收到的电文,具有通用性与扩展性。
Description
技术领域
本发明涉及冶金行业的过程控制系统的网络通信,特别涉及冶金行业的过程控制系统中的电文通信方法。
背景技术
电文通信是TCP/IP通信的一种应用,也是冶金领域的过程控制系统与外部系统、外部设备之间通信的主要方式之一。
电文的实质是一串具有特定含义的二进制数据流。根据二进制流的识别意义进一步可以分为二进制电文和文本电文。比如整形数1000以二进制表现就是03E8,占有2个字节,以文本形式表示为“1000”四个字节(假设长度指定为4个字节)。如果是浮点数,发送方一般需要先放大一个系数,接受方收到后再缩小。如123.45发送方先放大系数1000,则变为文本“123450”,接收方收到“123450”后,根据双方约定的系数缩小1000,则又变为123.34。
文本形式的电文要求发送方将各种待发送的数据类型全部转变为指定长度的文本,而接收方则需要做相反的工作。一般要发送的数据类型有以下几种:整形数(包括2个字节、4个字节)、浮点数(包括单精度、双精度)、日期时间(一般固定为“YYYYMMDDhhmiss”14个字符)、字符串等数据类型等。
如果发送方和接受方需要传输多个数据(每个数据称为电文项),当发送方将各电文项组织成为一个长字符串即电文,则接收方需要识别电文每一项的意思,即解包电文。比如电文“2010138”究竟怎么理解?实际上无论是发送方组织电文还是接收方解包电文都不是随意的,双方在通信前必须约定通信规格。通信规格需要指明电文项的长度、数据类型、值允许的范围(这是可选的)、系数等信息。为了通信方便,一般为某个特定的通信规格命名:电文号。
在冶金行业的过程控制系统中往往需要约定20种左右的文本电文通信规格,一个通信规格内最多包括600多个电文项。由于各种复杂的原因,发送方发送的电文与接收方接收的电文可能会不一致,发送方组织电文可能数据有误等,所以对于每条电文进行校验是不可少的。
接收方接收到发送方的电文后必须严格按照通信规格进行解包、验证,传统的解包、验证方法比较机械、繁琐。首先进行人工核对:逐一查看每一个电文项的数据,确保发送方和接收方对于电文规格的理解是一致的;其次接收方编写解包、检查程序,对接收到电文逐一解包、手动加入验证代码。这样做不仅工作量大,考验耐心(长的电文有8000个字节)。最关键的是通信规格经常发生变化,比如增加了电文项或者修改了电文项的数据类型,这个时候需要重新核对,解包、检查程序还要进行修改,效率不高,容易出错。实际工程经验表明通信双方光是进行通信规格的核对、校验至少需要一周的时间。
虽然现有技术中存在一些校验方法,但无法用于本发明的冶金行业的过程控制系统的网络通信过程中。如中国专利号为00129953.0的专利文献中公开了一种基于IP应用的抗误码编解码方法:于发送侧,对经脉冲编码调制(PCM)后的语音或音乐数据流按段进行校验并插入校验信息,再进行因特网传输层协议(TCP或UDP)打包及因特网(IP)打包后发送;于接收侧,对经IP解包和TCP或UDP解包后的数据流及校验信息按段进行校验,确定出错段位置,并对其进行恢复处理,然后再作PCM解码输出。本发明通过在语音或音乐编码帧中加入校验信息,从而增强其在传输过程中的抗突发错误能力,进而提高传输质量。
但这与冶金行业的过程控制系统的网络通信中电文数据的解包与校验方法不同的是:
1、解包和校验的数据不同。文献中解包和校验的数据针对语音或音乐数据,不能应用于冶金行业的过程控制系统的文本电文数据。
2、实现方式不一样。文献中校验的方法是在发送方就插入了校验信息,接收方对接收到的数据按段校验并与发送方的校验信息比对。而本发明中校验方法对发送方不做任何修改,接收方依靠电文规格进行解包、语义检查,如有错误,其报错率是100%的。
发明内容
本发明的目的在于,提供一种电文数据的自动解包与校验方法,以解决现有冶金行业的过程控制系统中的电文通信效率低,容易出错的技术问题。
本发明采用如技术方案:
一种电文数据的自动解包与校验方法,包括以下步骤:
(1)设定一由电文规格组成的电文规格数据库,所述电文规格包括电文号、序号、数据类型、长度信息;接收电文号,根据接收的电文号从所述电文规格数据库中读取相同电文号的电文规格,根据电文规格的序号顺序形成与该电文号相对应的规格数组;
(2)接收电文数据,根据所述规格数组中电文项的长度信息,从接收到的电文数据中截取电文数据;
(3)根据电文项的数据类型、取值范围,检查电文项对应的电文数据值,当存在电文项对应的电文数据值不在取值范围内或者无法转换成规定的数据数据类型时,报告失败;否则报告成功。
进一步地,所述电文规格中设有该电文规格的重复次数信息,该重复次数信息为一个规格重复多次或一组规格重复多次信息,所述步骤(1)还包括一扩展步骤,在形成与该电文号相对应的规格数组后,根据重复次数信息进行扩展,形成新的规格数组。
进一步地,在所述步骤(2)中,还包括一存储步骤,在接收电文数据后,存储该电文数据。
进一步地,在所述步骤(2)中,还包括一数据类型转换步骤,用于将截取的电文数据转换为对应电文项的数据类型。
进一步地,在所述步骤(3)中还包括未通过电文项的打印步骤,所述电文规格中还包括中文信息或者英文信息,打印未通过电文项的中文信息或者英文信息。
进一步地,还包括校验索引表,所述校验索引表中包括有检验索引名、上限、下限、文本值信息,所述电文规格中还包括校验索引名信息,所述步骤(3)中根据所述电文规格中的校验索引名检索所述校验索引表,以检查电文项对应的电文数据值是否在取值范围内。
进一步地,所述步骤(2)中从接收到的电文数据中截取电文数据的方法为,记录累计偏移量,获取指定长度的文本。
进一步地,所述扩展步骤为:检查电文规格的重复次数信息是否有大于1的,若有,则扩展为与电文规格的重复次数信息相同数量的电文项。
进一步地,所述电文规格中的序号信息包括主序号和组内序号,所述步骤(1)中依次根据电文规格的主序号、组内序号进行排序形成与该电文号相对应的规格数组。
本发明提供的电文数据的自动解包与校验方法,它能够快速、准确的解包接收到的电文,并且能够按照通信规格逐一核查电文项是否合法,给出检查报告、定位错误,更加重要的是它具有通用性与扩展性,处理不同规格的电文以及电文规格发生变化时,不需要做任何变动,提高了生产效率。
以下结合附图及实施例进一步说明本发明。
附图说明
图1为本发明电文数据的自动解包与校验方法流程图。
具体实施方式
如图1所示,一种电文数据的自动解包与校验方法,包括以下步骤:
(1)设定一由电文规格组成的电文规格数据库,所述电文规格包括电文号、序号、数据类型、长度等信息;接收电文号,根据接收的电文号从所述电文规格数据库中读取相同电文号的电文规格,根据电文规格的序号顺序形成与该电文号相对应的规格数组;
(2)接收电文数据,根据所述规格数组中电文项的长度信息,从接收到的电文数据中截取电文数据;具体截取方法可以是记录累计偏移量,获取指定长度的文本等方式;
(3)根据所述规格数组中电文项的取值范围信息,检查电文项对应的电文数据值,当存在电文项对应的电文数据值不在取值范围内时,报告失败;否则报告成功。即对截取电文数据给出“通过”或“不通过”的结果,可以定位到错误项,若接收到的电文有一项不通过则表明整个电文数据是不符合要求的。
进一步地,所述电文规格中设有该电文规格的重复次数信息,所述步骤(1)还包括一扩展步骤,在形成与该电文号相对应的规格数组后,根据重复次数信息进行扩展,形成新的规格数组。具体扩展方法为:检查电文规格的重复次数信息是否有大于1的,若有,则扩展为与电文规格的重复次数信息相同数量的电文项。
进一步地,在所述步骤(2)中,还可包括一存储步骤(图1中未示),在接收电文数据后,存储该电文数据。通过将接收到的电文数据保存到一数据库中,以后根据需要读入到内存进行自动解包、验证,这样可以实现离线的电文的自动解包与校验,实现历史信息的重演。
进一步地,在所述步骤(2)中,还包括一数据类型转换步骤(图1中未示),用于将截取的电文数据转换为对应电文项的数据类型。
进一步地,在所述步骤(3)中还包括未通过电文项的打印步骤(图1中未示),所述电文规格中还包括中文信息或者英文信息,打印未通过电文项的中文信息或者英文信息。
其中,所述电文规格数据库中的电文规格具体说明如下:
由于一个完整的电文是由很多电文项按照顺序组成,而每个电文项必须描述其在电文中序号、原始数据类型、长度、系数等信息。有些复杂电文会出现某个项重复多次的情况,比如带钢温度重复20次;更加复杂的是,某几个电文项成为一组需要重复多次,比如冷轧带钢的缺陷信息包括缺陷开始位置、缺陷开始位置、缺陷表面等,这些数据可能需要重复数次。如果反复定义不仅是机械重复,最关键的是,当有变化可能会出现不一致现象。为本实施例中优选采用在电文规格中增加“重复次数”信息,并且因此可能会出现电文规格只定义了600项数据,而实际电文数据中却有800项数据,这就是因为当中有重复项。
本实施例中的一个电文规格即可以是一个电文项的描述信息,也可以是多个重复数次的电文项的描述信息。可先将电文规格用电子表格(可使用Excel等电子表格软件制作)定义下来,形成电文规格表格,进而形成电文规格数据库。通信双方在约定通信规格时,直接生成此电文规格定义的电子表格,如下表1所示:
表1
电文号 | 主序号 | 组内序号 | 重复次数 | 英文 | 中文 | 数据类型 | 长度 | 系数 | 校验索引名 |
WW | 1 | 0 | 1 | Width | 宽度 | N | 4 | 10 | LL1 |
WW | 2 | 0 | 1 | Type | 种类 | C | 5 | 1 | LL2 |
WW | 3 | 1 | 20 | Start | 开始 | N | 4 | 1 | |
WW | 3 | 2 | 20 | End | 结束 | N | 4 | 1 | |
WW | 3 | 3 | 20 | Surface | 结束 | C | 1 | 1 | LL3 |
WW | 4 | 0 | 1 | ......... |
表1中每一条电文规格中包括:电文号、主序号、组内序号(处理多组数据重复)、重复次数(组的重复次数)、数据类型、长度、系数等信息。其中电文号信息表示该电文规格的电文号归属;主序号信息表示该电文规格在电文中的顺序;组内序号信息表示存在多组相同的主序号的电文规格在电文中的先后顺序;重复次数表示该电文规格在电文中的重复次数。
此外,为了方便程序设计和报错,还进一步增加了电文项的英文名、中文名信息。为了方便说明某个电文项的取值范围,在电文规格中还包括校验索引名,以及对应校验索引名的校验索引表,(同样可使用Excel等电子表格软件制作),如下表2所示:
表2
校验索引名 | 下限 | 上限 | 文本值 |
LL1 | 100 | 250 | |
LL2 | AA1,AA2,AA3 | ||
LL3 | 0,1 |
该表2记录了某个电文项的取值范围。如电文项需要对值进行校验,则增加校验索引名信息。例如,对于数值则检查其上下限,对于文本则检查其值的范围,对于日期则检查其格式。
与现有技术相比,本发明具有以下优点:
1、通过对电文规格的格式化定义,将通信规格书里面的信息充分体现到电文的规格的定义中,方便程序的设计和报错;
2、可以方便地实现对文本电文的加载和扩展,在实际应用中,不同规格的电文、电文规格发生变化都不需要变动加载程序;
3、可以方便地实现对文本电文的自动解包,不同规格的电文、电文规格发生变化都不需要变动解包程序;
4、可以实现对文本电文的自动校验和定位错误,不同规格的电文、电文规格发生变化都不需要变动自动验证程序。
5、还可以实现对文本电文的离线解包、校验,可以进行历史信息的重演。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。
Claims (9)
1、一种电文数据的自动解包与校验方法,其特征在于包括以下步骤:
(1)设定一由电文规格组成的电文规格数据库,所述电文规格包括电文号、序号、数据类型、长度信息;接收电文号,根据接收的电文号从所述电文规格数据库中读取相同电文号的电文规格,根据电文规格的序号顺序形成与该电文号相对应的规格数组;
(2)接收电文数据,根据所述规格数组中电文项的长度信息,从接收到的电文数据中截取电文数据;
(3)根据电文项的数据类型、取值范围,检查电文项对应的电文数据值,当存在电文项对应的电文数据值不在取值范围内或者无法转换成规定的数据数据类型时,报告失败;否则报告成功。
2、根据权利要求1所述的电文数据的自动解包与校验方法,其特征在于:
所述电文规格中设有该电文规格的重复次数信息,该重复次数信息为一个规格重复多次或一组规格重复多次信息,所述步骤(1)还包括一扩展步骤,在形成与该电文号相对应的规格数组后,根据重复次数信息进行扩展,形成新的规格数组。
3、根据权利要求1或2所述的电文数据的自动解包与校验方法,其特征在于:
在所述步骤(2)中,还包括一存储步骤,在接收电文数据后,存储该电文数据。
4、根据权利要求3所述的电文数据的自动解包与校验方法,其特征在于:
在所述步骤(2)中,还包括一数据类型转换步骤,用于将截取的电文数据转换为对应电文项的数据类型。
5、根据权利要求4所述的电文数据的自动解包与校验方法,其特征在于:
在所述步骤(3)中还包括未通过电文项的打印步骤,所述电文规格中还包括中文信息或者英文信息,打印未通过电文项的中文信息或者英文信息。
6、根据权利要求5所述的电文数据的自动解包与校验方法,其特征在于:
还包括校验索引表,所述校验索引表中包括有检验索引名、上限、下限、文本值信息,所述电文规格中还包括校验索引名信息,所述步骤(3)中根据所述电文规格中的校验索引名检索所述校验索引表,以检查电文项对应的电文数据值是否在取值范围内。
7、根据权利要求6所述的电文数据的自动解包与校验方法,其特征在于:
所述步骤(2)中从接收到的电文数据中截取电文数据的方法为,记录累计偏移量,获取指定长度的文本。
8、根据权利要求7所述的电文数据的自动解包与校验方法,其特征在于:
所述扩展步骤为:检查电文规格的重复次数信息是否有大于1的,若有,则扩展为与电文规格的重复次数信息相同数量的电文项。
9、根据权利要求8所述的电文数据的自动解包与校验方法,其特征在于:
所述电文规格中的序号信息包括主序号和组内序号,所述步骤(1)中依次根据电文规格的主序号、组内序号进行排序形成与该电文号相对应的规格数组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910055118A CN101645886A (zh) | 2009-07-21 | 2009-07-21 | 电文数据的自动解包与校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910055118A CN101645886A (zh) | 2009-07-21 | 2009-07-21 | 电文数据的自动解包与校验方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101645886A true CN101645886A (zh) | 2010-02-10 |
Family
ID=41657606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910055118A Pending CN101645886A (zh) | 2009-07-21 | 2009-07-21 | 电文数据的自动解包与校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101645886A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868691A (zh) * | 2012-09-13 | 2013-01-09 | 北京佰能电气技术有限公司 | 一种全配置化数据通信方法及系统 |
CN103699022A (zh) * | 2012-09-27 | 2014-04-02 | 株式会社日立制作所 | 电文控制通信装置 |
CN109738920A (zh) * | 2019-01-17 | 2019-05-10 | 上海华测导航技术股份有限公司 | 一种通用的导航电文提取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1471260A (zh) * | 2002-07-22 | 2004-01-28 | 华为技术有限公司 | 一种实现用户业务远程验证拨号协议的编码和解码方法 |
CN101014007A (zh) * | 2007-01-31 | 2007-08-08 | 华为技术有限公司 | 数据传输方法及发送装置及接收装置 |
CN101042796A (zh) * | 2006-03-23 | 2007-09-26 | 上海宝信软件股份有限公司 | 工业现场设备的过程数据采集方法 |
CN101119583A (zh) * | 2006-08-01 | 2008-02-06 | 华为技术有限公司 | 多业务流传送方法、基站及用户终端 |
-
2009
- 2009-07-21 CN CN200910055118A patent/CN101645886A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1471260A (zh) * | 2002-07-22 | 2004-01-28 | 华为技术有限公司 | 一种实现用户业务远程验证拨号协议的编码和解码方法 |
CN101042796A (zh) * | 2006-03-23 | 2007-09-26 | 上海宝信软件股份有限公司 | 工业现场设备的过程数据采集方法 |
CN101119583A (zh) * | 2006-08-01 | 2008-02-06 | 华为技术有限公司 | 多业务流传送方法、基站及用户终端 |
CN101014007A (zh) * | 2007-01-31 | 2007-08-08 | 华为技术有限公司 | 数据传输方法及发送装置及接收装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868691A (zh) * | 2012-09-13 | 2013-01-09 | 北京佰能电气技术有限公司 | 一种全配置化数据通信方法及系统 |
CN102868691B (zh) * | 2012-09-13 | 2015-09-09 | 北京佰能电气技术有限公司 | 一种全配置化数据通信方法及系统 |
CN103699022A (zh) * | 2012-09-27 | 2014-04-02 | 株式会社日立制作所 | 电文控制通信装置 |
CN103699022B (zh) * | 2012-09-27 | 2016-08-10 | 株式会社日立制作所 | 电文控制通信装置 |
CN109738920A (zh) * | 2019-01-17 | 2019-05-10 | 上海华测导航技术股份有限公司 | 一种通用的导航电文提取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102098131B (zh) | 一种基于动态参数配置的串口数据帧通用组帧解帧方法 | |
CN103346800B (zh) | 一种数据压缩方法及装置 | |
US11178212B2 (en) | Compressing and transmitting structured information | |
CN105354020A (zh) | 一种Json格式数据解析方法及数据接收端 | |
CN109460219A (zh) | 快速序列化接口控制文件的方法 | |
CN101283349A (zh) | 用Golomb码压缩语言模型 | |
CN113238936B (zh) | 一种可扩展的通用嵌入式软件通信接口测试方法及装置 | |
CN109962711B (zh) | 一种数据压缩方法、电子设备及存储介质 | |
CN105450712A (zh) | 一种数据传输方法及装置 | |
CN112468369B (zh) | 汽车的can通信矩阵的检错方法 | |
CN115757483A (zh) | 一种自动化测试方法、装置、电子设备和存储介质 | |
CN101645886A (zh) | 电文数据的自动解包与校验方法 | |
CN111176991A (zh) | 一种嵌入式软件接口用例自动化生成方法 | |
CN111338869B (zh) | 配置参数管理方法、装置、设备及存储介质 | |
CN103036641A (zh) | 数据交换方法、系统及反序列化方法 | |
CN111290998A (zh) | 迁移数据的校对方法、装置、设备及存储介质 | |
US20200008019A1 (en) | Efficient short message compression | |
CN114461193B (zh) | 一种通信协议代码的生成方法、装置、设备及存储介质 | |
JP5490101B2 (ja) | ディジタル形式で伝送される情報を訂正する方法と装置 | |
CN108011693B (zh) | 一种基于arinc429总线通信的通用数据组码方法 | |
CN114676054A (zh) | 一种测试数据生成方法、装置、设备、介质及产品 | |
CN103631983A (zh) | 一种战术数据报文模拟方法及系统 | |
US20110252169A1 (en) | Method for Data Exchange | |
CN114006678B (zh) | 一种fc-ae设备快速获取接收帧来源的方法 | |
CN111813769A (zh) | 数据加工方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100210 |