电文数据的自动解包与校验方法

文档序号:7697404阅读:288来源:国知局

专利名称::电文数据的自动解包与校验方法
技术领域
:本发明涉及冶金行业的过程控制系统的网络通信,特别涉及冶金行业的过程控制系统中的电文通信方法。
背景技术
:电文通信是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等电子表格软件制作)定义下来,形成电文规格表格,进而形成电文规格数据库。通信双方在约定通信规格时,直接生成此电文规格定义的电子表格,如下表l所示表l<table>tableseeoriginaldocumentpage8</column></row><table>表1中每一条电文规格中包括电文号、主序号、组内序号(处理多组数据重复)、重复次数(组的重复次数)、数据类型、长度、系数等信息。其中电文号信息表示该电文规格的电文号归属;主序号信息表示该电文规格在电文中的顺序;组内序号信息表示存在多组相同的主序号的电文规格在电文中的先后顺序;重复次数表示该电文规格在电文中的重复次数。此外,为了方便程序设计和报错,还进一步增加了电文项的英文名、中文名信息。为了方便说明某个电文项的取值范围,在电文规格中还包括校验索引名,以及对应校验索引名的校验索引表,(同样可使用Excel等电子表格软件制作),如下表2所示表2<table>tableseeoriginaldocumentpage8</column></row><table>该表2记录了某个电文项的取值范围。如电文项需要对值进行校验,则增加校验索引名信息。例如,对于数值则检査其上下限,对于文本则检査其值的范围,对于日期则检査其格式。与现有技术相比,本发明具有以下优点-1、通过对电文规格的格式化定义,将通信规格书里面的信息充分体现到电文的规格的定义中,方便程序的设计和报错;2、可以方便地实现对文本电文的加载和扩展,在实际应用中,不同规格的电文、电文规格发生变化都不需要变动加载程序;3、可以方便地实现对文本电文的自动解包,不同规格的电文、电文规格发生变化都不需要变动解包程序;4、可以实现对文本电文的自动校验和定位错误,不同规格的电文、电文规格发生变化都不需要变动自动验证程序。5、还可以实现对文本电文的离线解包、校验,可以进行历史信息的重演。以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。权利要求1、一种电文数据的自动解包与校验方法,其特征在于包括以下步骤(1)设定一由电文规格组成的电文规格数据库,所述电文规格包括电文号、序号、数据类型、长度信息;接收电文号,根据接收的电文号从所述电文规格数据库中读取相同电文号的电文规格,根据电文规格的序号顺序形成与该电文号相对应的规格数组;(2)接收电文数据,根据所述规格数组中电文项的长度信息,从接收到的电文数据中截取电文数据;(3)根据电文项的数据类型、取值范围,检查电文项对应的电文数据值,当存在电文项对应的电文数据值不在取值范围内或者无法转换成规定的数据数据类型时,报告失败;否则报告成功。2、根据权利要求l所述的电文数据的自动解包与校验方法,其特征在于所述电文规格中设有该电文规格的重复次数信息,该重复次数信息为一个规格重复多次或一组规格重复多次信息,所述步骤(1)还包括一扩展步骤,在形成与该电文号相对应的规格数组后,根据重复次数信息进行扩展,形成新的规格数组。3、根据权利要求1或2所述的电文数据的自动解包与校验方法,其特征在于在所述步骤(2)中,还包括一存储步骤,在接收电文数据后,存储该电文数据。4、根据权利要求3所述的电文数据的自动解包与校验方法,其特征在于在所述步骤(2)中,还包括一数据类型转换步骤,用于将截取的电文数据转换为对应电文项的数据类型。5、根据权利要求4所述的电文数据的自动解包与校验方法,其特征在于在所述步骤(3)中还包括未通过电文项的打印步骤,所述电文规格中还包括中文信息或者英文信息,打印未通过电文项的中文信息或者英文信息。6、根据权利要求5所述的电文数据的自动解包与校验方法,其特征在于还包括校验索引表,所述校验索引表中包括有检验索引名、上限、下限、文本值信息,所述电文规格中还包括校验索引名信息,所述步骤(3)中根据所述电文规格中的校验索引名检索所述校验索引表,以检查电文项对应的电文数据值是否在取值范围内。7、根据权利要求6所述的电文数据的自动解包与校验方法,其特征在于所述步骤(2)中从接收到的电文数据中截取电文数据的方法为,记录累计偏移量,获取指定长度的文本。8、根据权利要求7所述的电文数据的自动解包与校验方法,其特征在于所述扩展步骤为检查电文规格的重复次数信息是否有大于1的,若有,则扩展为与电文规格的重复次数信息相同数量的电文项。9、根据权利要求8所述的电文数据的自动解包与校验方法,其特征在于所述电文规格中的序号信息包括主序号和组内序号,所述步骤(1)中依次根据电文规格的主序号、组内序号进行排序形成与该电文号相对应的规格数组。全文摘要电文数据的自动解包与校验方法,包括以下步骤(1)设定一由电文规格组成的电文规格数据库,所述电文规格包括电文号、序号、数据类型、长度信息;接收电文号,根据接收的电文号从所述电文规格数据库中读取相同电文号的电文规格,根据电文规格的序号顺序形成与该电文号相对应的规格数组;(2)接收电文数据,根据所述规格数组中电文项的长度信息,从接收到的电文数据中截取电文数据;(3)根据电文项的数据类型、取值范围,检查电文项对应的电文数据值,当存在电文项对应的电文数据值不在取值范围内或者无法转换成规定的数据数据类型时,报告失败;否则报告成功。本发明能够快速、准确的解包接收到的电文,具有通用性与扩展性。文档编号H04L29/06GK101645886SQ200910055118公开日2010年2月10日申请日期2009年7月21日优先权日2009年7月21日发明者傅贤栋,尉晟煜,徐长盛申请人:上海宝信软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1