CN102148825B - 一种动态协议的配置与解析方法及装置 - Google Patents

一种动态协议的配置与解析方法及装置 Download PDF

Info

Publication number
CN102148825B
CN102148825B CN 201110031937 CN201110031937A CN102148825B CN 102148825 B CN102148825 B CN 102148825B CN 201110031937 CN201110031937 CN 201110031937 CN 201110031937 A CN201110031937 A CN 201110031937A CN 102148825 B CN102148825 B CN 102148825B
Authority
CN
China
Prior art keywords
blank character
order
effective information
property
property value
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
CN 201110031937
Other languages
English (en)
Other versions
CN102148825A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN 201110031937 priority Critical patent/CN102148825B/zh
Publication of CN102148825A publication Critical patent/CN102148825A/zh
Priority to PCT/CN2011/081935 priority patent/WO2012100576A1/zh
Application granted granted Critical
Publication of CN102148825B publication Critical patent/CN102148825B/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

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

Abstract

本发明提出一种动态协议的配置与解析方法,包括如下步骤:配置并保存动态协议的命令的有效信息提取方式和命令的解析方式;根据所述有效信息提取方式提取所述命令的有效信息;根据所述命令的解析方式解析所述命令的有效信息,并根据解析结果执行相应的仿真动作。本发明实可以对复杂的通信命令格式和数据帧进行配置,并且可以将复杂的命令格式和数据帧的不同有效信息动态的解析出来,且通用性强,配置过程简单,克服了不同通信模式传输数据格式的归一化问题。本发明还提出了一种动态协议的配置与解析装置。

Description

一种动态协议的配置与解析方法及装置
技术领域
本发明涉及计算机应用和集成电路装备技术领域,特别涉及一种动态协议的配置与解析方法及装置。
背景技术
随着集成电路芯片集成度的不断提升和芯片功能的不断提高,人们对工艺的要求越来越高。在半导体制造装备的研究、开发和测试工作中,包括硬件和软件的研发。开发软件中大部分是设备控制软件,这些软件在进行测试时,需要首先在仿真环境下进行验证,而单纯为某一个项目开发软件测试平台不仅耗时过大而且可重用性很差,为了提高软件测试的效率和准确定位系统所存在问题,迫切需要一个通用的软件测试平台系统。需要提供各项目使用的所有硬件的仿真程序,使开发出来的软件能在此基础之上运行,从而进行测试。
在半导体制造装备的研究、开发和测试工作中,仿真具有重要作用。一方面,由于生产过程控制本身的复杂性,对理论研究不断提出新的要求,而理论研究需提高设备的利用率。要借助于仿真工具;另一方面,面对各种系统控制软件包,需要现成的仿真平台,全面反映算法在实际生产运行中的效果,得到有指导意义的算法改进策略、参数在线调整方法等。仿真平台的使用,能够准确测试设备控制系统软件,可以减少控制系统软件执行与集成电路制造工艺过程的失败,能解决集成电路工艺设备的工艺稳定性,工艺可靠性,减少设备维修时间,最大程度的提高设备的利用率。
在半导体制造装备中,半导体设备的控制端与设备端的通信模式有多种方式,并且通信模式的命令格式与数据帧是不断变化的,没有一种固定的模式,因此不便于仿真设备与控制端通信的管理。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别提出一种通用性强、配置简单的动态协议的配置与解析方法及装置。
为达到上述目的,本发明第一方面的实施例提供了一种动态协议的配置与解析方法,包括如下步骤:
配置并保存动态协议的命令的有效信息提取方式和命令的解析方式,其中,所述命令以所述动态协议规定的格式发送;
根据所述有效信息提取方式提取所述命令的有效信息;以及
根据所述命令的解析方式解析所述命令的有效信息,并根据解析结果执行相应的仿真动作。
根据本发明实施例的动态协议的配置与解析方法,可以对复杂的通信命令格式和数据帧进行配置,并且可以将复杂的命令格式和数据帧的不同有效信息动态的解析出来。本发明的动态协议的配置与解析方法通用性强,配置过程简单,克服了不同通信模式传输数据格式的归一化问题。
本发明第二方面的实施例提供了一种动态协议的配置与解析装置,包括配置模块,所述配置模块用于配置并保存动态协议的命令的有效信息提取方式和命令的解析方式,其中,所述命令以所述动态协议规定的格式发送;提取模块,所述提取模块用于根据所述有效信息提取方式提取所述命令的有效信息;以及解析模块,所述解析模块用于根据所述命令的解析方式解析所述命令的有效信息,并根据解析结果执行相应的仿真动作。
根据本发明实施例的动态协议的配置与解析装置,可以对复杂的通信命令格式和数据帧进行配置,并且可以将复杂的命令格式和数据帧的不同有效信息动态的解析出来。本发明的动态协议的配置与解析装置通用性强,配置简单,克服了不同通信模式传输数据格式的归一化问题。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的动态协议的配置与解析方法的流程图;
图2为根据本发明实施例的动态协议的配置流程图;
图3为根据本发明实施例的有效信息提取方式的配置示意图;
图4为根据本发明实施例的命令包含属性名称和属性值的命令的解析方式的配置示意图;
图5为根据本发明实施例的只包含属性值的命令的解析方式的配置示意图;
图6为根据本发明实施例的有效信息提取的流程图;
图7为根据本发明实施例的命令运行的流程图;
图8为根据本发明实施例的动态协议的解析流程图;以及
图9为根据本发明实施例的动态协议的配置与解析装置的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明提供的动态协议的配置与解析方法是基于Windows XP操作系统,采用Visual C#实现的。该动态协议的配置与解析方法可以运用于半导体制造装备功能仿真平台,可以完成半导体设备通信命令格式归一化配置与解析功能,并且在配置界面可以配置不同复杂命令的特殊格式以及有效信息,能够正确实时的解析这些命令。当然本领域技术人员可以理解的是,本发明提供的动态协议的配置与解析方法不限于此,还可以运用于其它仿真平台。
在半导体制造装备的仿真平台中采用下述五种动态协议:以太网协议、串口协议、模拟IO协议、数字IO协议、DeviceNet协议。由于模拟IO协议、数字IO协议和DeviceNet协议均由规范的命令格式和数据帧,因此不属于复杂的命令。以太网协议和串口协议根据不同的设备具有不同的命令格式。表1示出了一种命令格式。
表1
  通信命令   0x0D字符
通信命令+0x0d结尾组成了一条完整的命令。而对于不同的通信命令,长度和有效信息是不同的。
下面参考图1至图8描述根据本发明实施例的动态协议的配置与解析方法。
如图1所示,根据本发明实施例的动态协议的配置与解析方法,包括如下步骤:
S101:配置并保存动态协议的命令的有效信息提取方式和命令的解析方式;
在本发明的实施例中,用户可以通过配置界面进行可视化操作。
如图2所示,对于动态协议的配置包括两部分:配置如何提取命令有效信息和配置命令的解析方式。其中,命令是以动态协议规定的格式发送。
S1011:进入动态协议配置界面;
首先进入动态协议的配置界面,开始对动态协议进行配置。
S1012:配置命令的有效信息提取方式;
一条命令包含有很多信息,其中包括用户需要的有效信息和用户不需要的无效信息。用户需要从众多信息中提取对自己有用的有效信息。在本步骤中,实现对提取这部分有效信息的提取方式的配置。具体而言,如图3所示,配置以下三个部分:结束符(Stoptype)、间隔符(Interval)和开始字节(Start)。
1)结束符(Stoptype)
在仿真端,将结束符配置在命令的结束端,结束符用于指示该命令已经结束。命令例如为GOTO N 2+0x0d,0x0d表示该条命令的结束符。在解析该条命令时,当读取到结束符(如0x0d)时,则在结束符之前的信息内容即为一条完整的命令。当命令中不包含由结束符时,可以将结束符设置为空。
2)间隔符(Interval)
由于在一条命令中包含有很多信息,对于不同的信息需要利用特殊符号进行分隔。因此,在仿真端将间隔符配置在命令的不同信息之间,间隔符用于对该条命令中的不同信息进行分隔。命令例如为GOTO N 2R EX,其中,GOTO表示该条命令的命令名称,N和R表示设备的属性名称,2和EX表示对应属性名称的属性值。命令名称、属性名称和属性值为不同的信息,需要在它们之间插入间隔符。在该条命令中,间隔符为“空格”。当然本领域技术人员可以理解的是,间隔符不限于此。通过设置间隔符,可以方便的提取命令中的有效信息。
3)开始字节
在仿真端,除了需要配置指示命令结束的结束符,还需要配置指示命令开始的开始字节,开始字节配置在命令的开始端。当检测到开始字节时,判断该条命令开始。在本发明的一个实施例中,采用数字(如1,2,3...)指定开始字节的位置。命令例如为GOTO N 2R EX,当开始字节设置为1时,则从第一个字节“G”开始提取命令的有效信息。当开始字节设置为2时,则从第二个字节“O”开始提取命令的有效信息,以此类推。
S1013:配置命令的解析方式。
对于复杂的控制命令,命令中的信息内容不断变化,没有固定的规律。命令具有多种情况,如命令中同时携带有属性名称和属性值、命令中只携带有属性值或者命令中只携带有命令名称等。
根据命令中信息内容的不同情况,提供以下两种命令的解析方式进行配置。
1)当命令同时携带有属性名称和属性值时,配置命令的解析方式为:
$m+n=¥p+q,
其中,$表示属性名称,¥表示属性值,第m+i*n-1个间隔符和第m+i*n个间隔符之间的信息为属性名称,第p+j*q-1个间隔符和第p+j*q个间隔符之间的信息为属性值,其中,i和j均为零或正整数,m、n、p、q均为正整数。
如图4所示,下面以GOTO N 2 R EX T UP命令进行说明,其中,GOTO为命令名称,N、R、T为属性名称,2、EX、UP为属性值。该条命令用于将N赋值2,R赋值EX以及将T赋值UP。为实现上述命令,配置如下命令解析方式,$2+2=¥3+2,即m=2,n=2,p=3,q=2。其中,$2表示第1个间隔符和第2个间隔符之间的信息内容为属性名称,+2表示第4,第6,第8......以此类推,在$2的基础上,加上2的整数倍的位置的间隔符与相应的前一个间隔符之间的信息内容均为属性名称;¥3表示第2个间隔符和第3个间隔符之间的信息内容为属性值,+2表示第5,第7......以此类推,在¥3的基础上,加上2的整数倍的位置的间隔符与相应的前一个间隔符之间的信息均为属性值。“=”表示将第3个位置上的属性值赋予第2个位置上的属性名称,第5个位置上的属性值赋予第4个位置上的属性名称,以此类推,从而完整的解析出该命令所表示的含义。
命令例如为GOTO N 2,则命令的解析方式配置为:$2+0=¥3+0,其中m=2,n=0,p=3,q=0。其中,$2表示第1个间隔符和第2个间隔符中的信息内容为属性名称;¥3表示第2个间隔符和第3个间隔符之间的信息内容为属性值。“=”表示将第3个位置上的属性值赋予第2个位置上的属性名称。
2)当命令只携带有属性值时,首先配置命令的属性名称,然后根据命令属性名称和属性值,配置命令的解析方式为:
属性名称=¥u,
其中,¥表示属性值,第u-1个间隔符和第u个间隔符之间的信息为属性值,“=”表示将第u-1个间隔符和第u个间隔符之间的属性值赋值给属性名称P,其中,属性名称可以为一个或多个,u为正整数。
如图5所示,下面HOME 100 200 300命令进行说明,其中HOME为命令名称,100、200和300分别为属性值。该条命令所要执行的动作为将属性值100赋予属性名称P1,属性值200赋予属性名称P2,属性值300赋予属性名称P3,P1、P2和P3为预先配置完成的属性名称。为实现上述命令的动作,配置如下的命令解析方式:P1=¥2、P2=¥3、P3=¥4,即对于属性名称P1,u=2;对于属性名称P2,u=3;对于属性名称P3,u=3。¥2表示第1个间隔符和第2个间隔符之间的信息内容为属性值,¥3表示第2个间隔符和第3个间隔符之间的信息内容为属性值,¥4表示第3个间隔符和第4个间隔符之间的信息内容为属性值。P1=¥2表示将属性值100赋予属性名称P1,P2=¥3表示将属性值200赋予属性名称P2,P3=¥4表示将属性值300赋予属性名称P3。
根据命令的不同复杂程度及不同的复杂要求,上述两种命令解析方式可以任意组合。在本发明的一个实施例中,命令的解析方式可以为以上两种方式中的至少一种。
将上述配置完成的命令的有效信息和命令的解析方式采用简明且易维护的配置文件格式进行管理和保存。在本发明的一个实施例中,对配置信息采用XML格式进行管理和保存,从而方便用户查找和读取。当然本领域技术人员可以理解的是,配置信息也可以采用其他简明、易维护的文件格式进行管理和保存。
S102:根据有效信息提取方式提取命令的有效信息;
如图6所示,根据步骤101中配置的有效信息提取方式提取命令的有效信息包括如下步骤:
S1021:查找开始字节;
首先对命令进行轮询,查找符合配置的开始字节。
S1022:查找结束符;
根据查找到的开始字节,向后查找直到找到符合配置的结束符。如果在命令中没有查找到符合配置的开始字节和结束符,则不做任何处理。
S1023:提取开始字节与结束符之间的内容;
提取开始字节与结束符之间的信息内容。
S1024:查找间隔符;
在步骤1023中提取得到的信息内容中,查找符合配置的间隔符。
S1025:将间隔符之间的有效信息提取出来放入链表;
将间隔符之间的有效信息、第一个间隔符之前的有效信息以及最后一个间隔符之后的有消息性能提取出来存在有效信息链表中。
S1026:传递有效信息链表,等待解析。
传递上述有效信息链表,等待下一步的解析过程。
S103:根据命令的解析方式解析命令的有效信息,并根据解析结果执行相应的仿真动作。
根据已配置的命令的解析方式解析命令的有效信息,即设备根据该命令需要执行的动作。
如图7所示,首先执行步骤1031,解析命令的有效信息,然后执行步骤1032,由设备根据解析后的命令的有效信息执行相应的动作。
下面参考图8对解析命令的有效信息的过程进行说明。
A1:判断命令中是否包括属性名称,当判断命令中包含属性名称时,执行A11;否则执行A21;
当判断命令中包括属性名称时,采用$m+n=¥p+q的命令的解析方式对命令进行解析。
A11:提取第一个$m+n对应的有效信息;
在有效信息链表中提取第m-1个间隔符和第m个间隔符之间的属性名称。
A12:判断该有效信息是否为设备属性名称,如果有效信息为设备属性名称,则执行A13;否则结束解析过程;
A13:获得该属性类型;
A14:提取第一个¥p+q对应的有效信息;
在有效信息链表中提取第p-1个间隔符和第p个间隔符之间的属性值。
A15:将该有效信息转换为对应的属性值类型;
将提取得到的第p-1个间隔符和第p个间隔符之间的属性值转换为与第m-1个间隔符和第m个间隔符之间的属性名称对应的属性值类型。
A16:将转换后的有效信息赋值给对应的属性;
将第p-1个间隔符和第p个间隔符之间的属性值赋值给第m-1个间隔符和第m个间隔符之间的属性名称。
A17:提取第二个$m+n对应的有效信息;
在有效信息链表中提取第m+n-1个间隔符和第m+n个间隔符之间的属性名称。
采用如上所述方法提取第二个¥p+q对应的有效信息,即第p+q-1个间隔符和第p+q个间隔符之间的属性值,将该属性值转换为与m+n-1个间隔符和第m+n个间隔符之间的属性名称对应的属性值类型。相应的将第p+q-1个间隔符和第p+q个间隔符之间的属性值赋值给第m+n-1个间隔符和第m+n个间隔符之间的属性名称。
A18:将转换后的有效信息赋值给对应的属性;
采用如上所述的方法,将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为相应的第m+i*n-1个间隔符和第m+i*n个间隔符之间的属性名称的属性值类型,并将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的属性名称。
下面以GOTO N 2 R EX T UP命令进行说明,其中命令的解析方式为$2+2=¥3+2,其中有效信息GOTO、N、2、R、EX、T、UP已经被提取出来存放在有效信息链表中。首先提取$2对应的有效信息N,然后在配置过的设备属性中查找是否存在N这个属性名称,如果没有则直接结束解析过程;如果有,则先获取该属性对应的属性值类型(如INT、STRING、FLOAT、DOUBLE...),然后提取¥3对应的有效信息2,将2转换为N对应的属性类型,最后将转换后的属性值赋值给属性名称N。解析之后N的值为2,以此类推,执行R=EX、T=UP。
A21:提取第一个¥p+q对应的有效信息;
在有效信息链表中提取第p-1个间隔符和第p个间隔符之间的属性值。
A22:获得该有效信息对应的属性值类型;
A23:将该有效信息转换为对应的属性值类型;
将提取得到的第p-1个间隔符和第p个间隔符之间的属性值转换为与属性名称对应的属性值类型。
A24:将转换后的有效信息赋值给对应的属性;
将转换后的第p-1个间隔符和第p个间隔符之间的属性值赋值给对应的属性名称。
A25:提取第二个¥p+q对应的有效信息;
在有效信息链表中提取第p+q-1个间隔符和第p+q个间隔符之间的属性值,获得该有效信息对应的属性值类型,将提取得到的第p+q-1个间隔符和第p+q个间隔符之间的属性值转换为与属性名称对应的属性值类型,将转换后的第p+q-1个间隔符和第p+q个间隔符之间的属性值赋值给对应的属性名称。
A26:将转换后的有效信息赋值给对应的属性。
采用如上所述的方法,将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为相应的属性名称对应的属性值类型,并将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的属性名称。
下面以HOME 100 200 300命令进行说明,其中命令的解析方式为P1=¥2,P2=¥3,P3=¥4。其中,有效信息HOME、100、200和300已经被提取出来存放在有效信息链表中。首先提取¥2对应的有效信息100,然后获取P1对应的属性值类型(如INT、STRING、FLOAT、DOUBLE...),然后将属性值100转换为P1对应的属性类型,最后将转换之后的值赋予属性名称P1,解析之后P1=100,相应的有,P2=200、P3=300。
根据本发明实施例的动态协议的配置与解析方法,可以对复杂的通信命令格式和数据帧进行配置,并且可以将复杂的命令格式和数据帧的不同有效信息动态的解析出来。本发明的动态协议的配置与解析方法通用性强,配置过程简单,克服了不同通信模式传输数据格式的归一化问题。
下面参考图9描述根据本发明实施例的动态协议的配置与解析装置900。
本发明提供的动态协议的配置与解析装置900基于Windows XP操作系统,采用Visual C#实现。该动态协议的配置与解析装置900可以运用于半导体制造装备功能仿真平台,可以完成半导体设备通信命令格式归一化配置与解析功能,并且在配置界面可以配置不同复杂命令的特殊格式以及有效信息,能够正确实时的解析这些命令。当然本领域技术人员可以理解的是,本发明提供的动态协议的配置与解析装置900不限于此,还可以运用于其它仿真平台。
在半导体制造装备的仿真平台中采用下述五种动态协议:以太网协议、串口协议、模拟IO协议、数字IO协议、DeviceNet协议。
如图9所示,本发明实施例的动态协议的配置与解析装置900,包括配置模块910,其中配置模块910用于配置并保存动态协议的命令的有效信息提取方式和命令的解析方式,其中,命令是以动态协议规定的格式发送;提取模块920,其中提取模块920用于根据有效信息提取方式提取命令的有效信息;以及解析模块930,其中解析模块930用于根据命令的解析方式解析所述命令的有效信息,并根据解析结果执行相应的仿真动作。
配置模块910对议的命令的有效信息提取方式和命令的解析方式进行配置,在本发明的一个实施例中,配置模块910可以为界面形式呈现,方便用户进行可视化操作。
配置模块910首先对有效信息的提取方式进行配置。具体而言,配置以下三个部分:结束符(Stoptype)、间隔符(Interval)和开始字节(Start)。
1)结束符(Stoptype)
在仿真端,配置模块910将结束符配置在命令的结束端,结束符用于指示该命令已经结束。命令例如为GOTO N 2+0x0d,0x0d表示该条命令的结束符。在解析该条命令时,当读取到结束符(如0x0d)时,则在结束符之前的信息内容即为一条完整的命令。当命令中不包含由结束符时,可以将结束符设置为空。
2)间隔符(Interval)
由于在一条命令中包含有很多信息,对于不同的信息需要利用特殊符号进行分隔。因此,在仿真端配置模块910将间隔符配置在命令的不同信息之间,间隔符用于对该条命令中的不同信息进行分隔。命令例如为GOTO N 2 R EX,其中,GOTO表示该条命令的命令名称,N和R表示设备的属性名称,2和EX表示对应属性名称的属性值。命令名称、属性名称和属性值为不同的信息,需要在它们之间插入间隔符。在该条命令中,间隔符为“空格”。当然本领域技术人员可以理解的是,间隔符不限于此。通过设置间隔符,可以方便的提取命令中的有效信息。
3)开始字节
在仿真端,配置模块910除了需要配置指示命令结束的结束符,还需要配置指示命令开始的开始字节,开始字节配置在命令的开始端。当检测到开始字节时,判断该条命令开始。在本发明的一个实施例中,采用数字(如1,2,3...)指定开始字节的位置。命令例如为GOTO N 2 R EX,当开始字节设置为1时,则从第一个字节“G”开始提取命令的有效信息。当开始字节设置为2时,则从第二个字节“O”开始提取命令的有效信息,以此类推。
对于复杂的控制命令,命令中的信息内容不断变化,没有固定的规律。命令具有多种情况,如命令中同时携带有属性名称和属性值、命令中只携带有属性值或者命令中只携带有命令名称等。
根据命令中信息内容的不同情况,配置模块910提供以下两种命令的解析方式进行配置。
1)当命令同时携带有属性名称和属性值时,配置模块910配置命令的解析方式为:
$m+n=¥p+q,
其中,$表示属性名称,¥表示属性值,第m+i*n-1个间隔符和第m+i*n个间隔符之间的信息为属性名称,第p+j*q-1个间隔符和第p+j*q个间隔符之间的信息为属性值,其中,i和j均为零或正整数,m、n、p、q均为正整数。
如图4所示,下面以GOTO N 2 R EX T UP命令进行说明,其中,GOTO为命令名称,N、R、T为属性名称,2、EX、UP为属性值。该条命令用于将N赋值2,R赋值EX以及将T赋值UP。为实现上述命令,配置模块910配置如下命令解析方式,$2+2=¥3+2,即m=2,n=2,p=3,q=2。其中,$2表示第1个间隔符和第2个间隔符之间的信息内容为属性名称,+2表示第4,第6,第8......以此类推,在$2的基础上,加上2的整数倍的位置的间隔符与相应的前一个间隔符之间的信息内容均为属性名称;¥3表示第2个间隔符和第3个间隔符之间的信息内容为属性值,+2表示第5,第7......以此类推,在¥3的基础上,加上2的整数倍的位置的间隔符与相应的前一个间隔符之间的信息均为属性值。“=”表示将第3个位置上的属性值赋予第2个位置上的属性名称,第5个位置上的属性值赋予第4个位置上的属性名称,以此类推,从而完整的解析出该命令所表示的含义。
命令例如为GOTO N 2,则配置模块910配置命令的解析方式为:$2+0=¥3+0,其中m=2,n=0,p=3,q=0。其中,$2表示第1个间隔符和第2个间隔符中的信息内容为属性名称;¥3表示第2个间隔符和第3个间隔符之间的信息内容为属性值。“=”表示将第3个位置上的属性值赋予第2个位置上的属性名称。
2)当命令只携带有属性值时,配置模块910首先配置命令的属性名称,然后根据命令属性名称和属性值,配置模块910配置命令的解析方式为:
属性名称=¥u,
其中,¥表示属性值,第u-1个间隔符和第u个间隔符之间的信息为属性值,“=”表示将第u-1个间隔符和第u个间隔符之间的属性值赋值给属性名称P,其中,属性名称可以为一个或多个,u为正整数。
如图5所示,下面HOME 100 200 300命令进行说明,其中HOME为命令名称,100、200和300分别为属性值。该条命令所要执行的动作为将属性值100赋予属性名称P1,属性值200赋予属性名称P2,属性值300赋予属性名称P3,P1、P2和P3为预先配置完成的属性名称。为实现上述命令的动作,配置模块910配置如下的命令解析方式:P1=¥2、P2=¥3、P3=¥4,即对于属性名称P1,u=2;对于属性名称P2,u=3;对于属性名称P3,u=3。¥2表示第1个间隔符和第2个间隔符之间的信息内容为属性值,¥3表示第2个间隔符和第3个间隔符之间的信息内容为属性值,¥4表示第3个间隔符和第4个间隔符之间的信息内容为属性值。P1=¥2表示将属性值100赋予属性名称P1,P2=¥3表示将属性值200赋予属性名称P2,P3=¥4表示将属性值300赋予属性名称P3。
根据命令的不同复杂程度及不同的复杂要求,上述两种命令解析方式可以任意组合。在本发明的一个实施例中,命令的解析方式可以为以上两种方式中的至少一种。
配置模块910将上述配置完成的命令的有效信息和命令的解析方式采用简明且易维护的配置文件格式进行管理和保存。在本发明的一个实施例中,配置模块910对配置信息采用XML格式进行管理和保存,从而方便用户查找和读取。当然本领域技术人员可以理解的是,配置信息也可以采用其他简明、易维护的文件格式进行管理和保存。
提取模块920首先对命令进行轮询,查找符合配置的开始字节。根据查找到的开始字节,向后查找直到找到符合配置的结束符,如果在命令中没有查找到符合配置的开始字节和结束符,则不做任何处理。提取模块920然后提取开始字节与结束符之间的信息内容,在提取得到的信息内容中,查找符合配置的间隔符,将间隔符之间的有效信息、第一个间隔符之前的有效信息以及最后一个间隔符之后的有消息性能提取出来存在有效信息链表中,传递上述有效信息链表,等待下一步的解析过程。
解析模块930根据已配置的命令的解析方式解析命令的有效信息,即设备根据该命令需要执行的动作。解析模块930首先解析命令的有效信息,然后由根据解析后的命令的有效信息执行相应的动作。
解析模块930判断命令中是否包括属性名称,当判断命令中包括属性名称时,采用$m+n=¥p+q的命令的解析方式对命令进行解析。首先,解析模块930提取第一个$m+n对应的有效信息,即在有效信息链表中提取第m-1个间隔符和第m个间隔符之间的属性名称,判断该有效信息是否为设备属性名称,如果有效信息为设备属性名称,则获得该属性类型,否则结束解析过程。解析模块930提取第一个¥p+q对应的有效信息,即在有效信息链表中提取第p-1个间隔符和第p个间隔符之间的属性值。将提取得到的第p-1个间隔符和第p个间隔符之间的属性值转换为与第m-1个间隔符和第m个间隔符之间的属性名称对应的属性值类型。解析模块930将转换后的有效信息赋值给对应的属性,即将第p-1个间隔符和第p个间隔符之间的属性值赋值给第m-1个间隔符和第m个间隔符之间的属性名称。然后解析模块930采用如上所述的方法,将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为相应的第m+i*n-1个间隔符和第m+i*n个间隔符之间的属性名称的属性值类型,并将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的属性名称。
下面以GOTO N 2 R EX T UP命令进行说明,其中命令的解析方式为$2+2=¥3+2,其中有效信息GOTO、N、2、R、EX、T、UP已经被提取出来存放在有效信息链表中。解析模块930首先提取$2对应的有效信息N,然后在配置过的设备属性中查找是否存在N这个属性名称,如果没有则直接结束解析过程;如果有,则先获取该属性对应的属性值类型(如INT、STRING、FLOAT、DOUBLE...),然后解析模块930提取¥3对应的有效信息2,将2转换为N对应的属性类型,最后将转换后的属性值赋值给属性名称N。解析之后N的值为2,以此类推,执行R=EX、T=UP。
当判断命令中不包括属性名称时,解析模块930采用属性名称=¥u的命令的解析方式对命令进行解析。解析模块930提取第一个¥p+q对应的有效信息,即在有效信息链表中提取第p-1个间隔符和第p个间隔符之间的属性值,获得该有效信息对应的属性值类型。并将该有效信息转换为对应的属性值类型,即将提取得到的第p-1个间隔符和第p个间隔符之间的属性值转换为与属性名称对应的属性值类型。将转换后的第p-1个间隔符和第p个间隔符之间的属性值赋值给对应的属性名称。解析模块930采用如上所述的方法,将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为相应的属性名称对应的属性值类型,并将第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的属性名称。
下面以HOME 100 200 300命令进行说明,其中命令的解析方式为P1=¥2,P2=¥3,P3=¥4。其中,有效信息HOME、100、200和300已经被提取出来存放在有效信息链表中。解析模块930首先提取¥2对应的有效信息100,然后获取P1对应的属性值类型(如INT、STRING、FLOAT、DOUBLE...),然后解析模块930将属性值100转换为P1对应的属性类型,最后将转换之后的值赋予属性名称P1,解析之后P1=100,相应的有,P2=200、P3=300。
根据本发明实施例的动态协议的配置与解析装置,可以对复杂的通信命令格式和数据帧进行配置,并且可以将复杂的命令格式和数据帧的不同有效信息动态的解析出来。本发明的动态协议的配置与解析装置通用性强,配置简单,克服了不同通信模式传输数据格式的归一化问题。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (8)

1.一种动态协议的配置与解析方法,其特征在于,包括如下步骤:
配置并保存动态协议的命令的有效信息提取方式和命令的解析方式,其中,所述命令以所述动态协议规定的格式发送,所述动态协议包括以太网协议、串口协议、模拟IO协议、数字IO协议和DeviceNet协议;
根据所述有效信息提取方式提取所述命令的有效信息,所述配置所述命令的有效信息提取方式,包括如下步骤:
将结束符配置在所述命令的结束端,所述结束符用于指示所述命令已结束;
将间隔符配置在所述命令的不同信息之间,所述间隔符用于对所述命令中的不同信息进行分隔;
将开始字节配置在所述命令的开始端,所述开始字节用于指示所述命令已开始;以及
根据所述命令的解析方式解析所述命令的有效信息,并根据解析结果执行相应的仿真动作,所述命令的解析方式包括以下两种方式中的至少一种:
1)当所述命令包括属性名称和属性值时,所述命令的解析方式为:
$m+n=¥p+q,
其中,$表示属性名称,¥表示属性值,第m+i*n-1个间隔符和第m+i*n个间隔符之间的信息为属性名称,第p+j*q-1个间隔符和第p+j*q个间隔符之间的信息为属性值,其中,i和j均为零或正整数,m、n、p、q均为正整数;
2)当所述命令只包括属性值时,配置所述命令的属性名称,根据所述命令属性名称和属性值,所述命令的解析方式为:
属性名称=¥u,
其中,¥表示属性值,第u-1个间隔符和第u个间隔符之间的信息为属性值,“=”表示将第u-1个间隔符和第u个间隔符之间的属性值赋值给属性名称P,其中,所述属性名称为一个或多个,u为正整数。
2.如权利要求1所述的配置与解析方法,其特征在于,所述根据有效信息提取方式提取所述命令的有效信息包括如下步骤:
在所述命令中查找所述开始字节和所述结束符,提取所述开始字节和所述结束符之间的信息;
在提取得到的所述开始字节和所述结束符之间的信息中查找所述间隔符,进一步提取所述命令的有效信息,其中所述命令的有效信息包括第一个间隔符之前的有效信息、最后一个间隔符之后的有效信息以及各个间隔符之间的有效信息;
将提取得到的所述有效信息存入有效信息链表。
3.如权利要求2所述的配置与解析方法,其特征在于,所述根据命令的解析方式解析所述命令的有效信息,包括如下步骤:
判断所述命令中是否包括属性名称;
当判断所述命令中包括属性名称时,采用$m+n=¥p+q的命令的解析方式对所述命令进行解析,包括在所述有效信息链表中提取第m+i*n-1个间隔符和第m+i*n个间隔符之间的属性名称以及第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值,将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为相应的属性名称对应的属性值类型,并将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的属性名称;
当判断所述命令中不包括属性名称时,提取第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值,获取已配置的命令的属性名称对应的属性值类型,根据所述属性值类型,将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为与所述属性名称对应的属性值类型,并将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的所述属性名称。
4.如权利要求1所述的配置与解析方法,其特征在于,所述命令的有效信息和命令的解析方式以XML格式进行保存。
5.一种动态协议的配置与解析装置,其特征在于,包括:
配置模块,所述配置模块用于配置并保存动态协议的命令的有效信息提取方式和命令的解析方式,其中,所述命令以所述动态协议规定的格式发送,所述动态协议包括以太网协议、串口协议、模拟IO协议、数字IO协议和DeviceNet协议,所述配置模块将结束符配置在所述命令的结束端,其中,所述结束符用于指示所述命令已结束,所述配置模块将间隔符配置在所述命令的不同信息之间,其中,所述间隔符用于对所述命令中的不同信息进行分隔,所述配置模块将开始字节配置在所述命令的开始端,其中,所述开始字节用于指示所述命令已开始,
所述配置模块配置所述命令的解析方式包括以下两种方式中的至少一种:
1)当所述命令包括属性名称和属性值时,所述配置模块配置所述命令的解析方式为:
$m+n=¥p+q,
其中,$表示属性名称,¥表示属性值,第m+i*n-1个间隔符和第m+i*n个间隔符之间的信息为属性名称,第p+j*q-1个间隔符和第p+j*q个间隔符之间的信息为属性值,其中,i和j均为零或正整数,m、n、p、q均为正整数;
2)当所述命令只包括属性值时,所述配置模块配置所述命令的属性名称,根据所述命令属性名称和属性值,配置所述命令的解析方式为:
属性名称=¥u,
其中,¥表示属性值,第u-1个间隔符和第u个间隔符之间的信息为属性值,“=”表示将第u-1个间隔符和第u个间隔符之间的属性值赋值给属性名称P,其中,所述属性名称为一个或多个,u为正整数;
提取模块,所述提取模块用于根据所述有效信息提取方式提取所述命令的有效信息;以及
解析模块,所述解析模块用于根据所述命令的解析方式解析所述命令的有效信息,并根据解析结果执行相应的仿真动作。
6.如权利要求5所述的配置与解析装置,其特征在于,所述提取模块在所述命令中查找所述开始字节和所述结束符,提取所述开始字节和所述结束符之间的信息,并在提取得到的所述开始字节和所述结束符之间的信息中查找所述间隔符,进一步提取所述命令的有效信息,其中所述命令的有效信息包括第一个间隔符之前的有效信息、最后一个间隔符之后的有效信息以及各个间隔符之间的有效信息,所述提取模块将提取得到的所述有效信息存入有效信息链表。
7.如权利要求6所述的配置与解析装置,其特征在于,所述解析模块判断所述命令中是否包括属性名称;
当所述解析模块判断所述命令中包括属性名称时,采用$m+n=¥p+q的命令的解析方式对所述命令进行解析,包括在所述有效信息链表中提取第m+i*n-1个间隔符和第m+i*n个间隔符之间的属性名称以及第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值,将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为相应的属性名称对应的属性值类型,并将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的属性名称;
当所述解析模块判断所述命令中不包括属性名称时,提取第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值,获取已配置的命令的属性名称对应的属性值类型,根据所述属性值类型,将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值转换为与所述属性名称对应的属性值类型,并将所述第p+j*q-1个间隔符和第p+j*q个间隔符之间的属性值赋值给对应的所述属性名称。
8.如权利要求5所述的配置与解析装置,其特征在于,所述配置模块将所述命令的有效信息和命令的解析方式以XML格式进行保存。
CN 201110031937 2011-01-28 2011-01-28 一种动态协议的配置与解析方法及装置 Active CN102148825B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN 201110031937 CN102148825B (zh) 2011-01-28 2011-01-28 一种动态协议的配置与解析方法及装置
PCT/CN2011/081935 WO2012100576A1 (zh) 2011-01-28 2011-11-08 一种动态协议的配置与解析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110031937 CN102148825B (zh) 2011-01-28 2011-01-28 一种动态协议的配置与解析方法及装置

Publications (2)

Publication Number Publication Date
CN102148825A CN102148825A (zh) 2011-08-10
CN102148825B true CN102148825B (zh) 2013-07-31

Family

ID=44422819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110031937 Active CN102148825B (zh) 2011-01-28 2011-01-28 一种动态协议的配置与解析方法及装置

Country Status (2)

Country Link
CN (1) CN102148825B (zh)
WO (1) WO2012100576A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148825B (zh) * 2011-01-28 2013-07-31 清华大学 一种动态协议的配置与解析方法及装置
CN102169456A (zh) * 2011-02-24 2011-08-31 清华大学 用于解析半导体设备的通信命令的方法及系统
CN108696381B (zh) * 2017-04-12 2020-07-03 腾讯科技(深圳)有限公司 一种协议配置方法及装置
CN108255725B (zh) * 2018-01-18 2021-02-19 银联商务股份有限公司 测试方法及装置
CN108469935A (zh) * 2018-03-26 2018-08-31 新疆乾坤信息技术有限公司 一种配置汽车衡的方法、装置及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601969A (zh) * 2003-09-24 2005-03-30 华为技术有限公司 一种设备配置信息解析方法
CN101262304A (zh) * 2008-04-24 2008-09-10 浙江大学 一种基于通用通讯数据格式的数据流解析方法
CN101777791A (zh) * 2009-12-18 2010-07-14 深圳市科陆电子科技股份有限公司 一种同时兼容多种电力负控系统通信协议的方法及其系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262494A (zh) * 2008-01-23 2008-09-10 华为技术有限公司 对发布信息进行处理的方法、客户端、服务器和系统
CN102148825B (zh) * 2011-01-28 2013-07-31 清华大学 一种动态协议的配置与解析方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601969A (zh) * 2003-09-24 2005-03-30 华为技术有限公司 一种设备配置信息解析方法
CN101262304A (zh) * 2008-04-24 2008-09-10 浙江大学 一种基于通用通讯数据格式的数据流解析方法
CN101777791A (zh) * 2009-12-18 2010-07-14 深圳市科陆电子科技股份有限公司 一种同时兼容多种电力负控系统通信协议的方法及其系统

Also Published As

Publication number Publication date
WO2012100576A1 (zh) 2012-08-02
CN102148825A (zh) 2011-08-10

Similar Documents

Publication Publication Date Title
CN102148825B (zh) 一种动态协议的配置与解析方法及装置
CN109933035A (zh) 一种基于数字孪生的生产线控制系统、方法及生产系统
CN101751028B (zh) 汽车电控单元通用标定系统及实现方法
CN104778124B (zh) 一种软件应用自动化测试方法
JP6758274B2 (ja) スキーマで表される必要条件を用いた自動プロセス制御ハードウェア工学
EP3042254B1 (en) Systems and methods for virtualizing a programmable logic controller
CN102736565B (zh) 一种基于上、下位机结构的自动化控制设备的通信方法
US10375152B2 (en) Data capture on a serial device
US20130338800A1 (en) Method for Connecting a Switching Station Automation Device According to IEC61850 to an Industry Automation Field Bus
CN104700962A (zh) 用于制造电线束的方法
CN107817703B (zh) 一种实现工业控制上位机对下位机进行控制的方法
CN104461516A (zh) 一种数据处理方法和装置
US11645438B2 (en) Generating a template-driven schematic from a netlist of electronic circuits
CN112507449B (zh) 一种基于xml的车辆性能仿真数据架构方法
CN104978307A (zh) 一种清单处理方法及装置
CN103377406A (zh) 测试文件管理系统及方法
CN104199723A (zh) 基于虚拟设备的摄像头映射方法
CN103777858A (zh) 文本框显示方法和装置
CN110460473B (zh) 组态软件的通信配置方法、装置和计算机可读存储介质
CN113505054B (zh) 一种无人机控制站的网络数据静态测试系统和测试方法
CN103365709A (zh) Recipe管理方法和系统以及半导体设备控制系统
CN101242305B (zh) 网络设备的参数配置方法及装置
CN111506686A (zh) 一种基于房产cad图形与数据关联的处理方法及装置
CN112269588B (zh) 算法的升级方法、装置、终端和计算机可读存储介质
CN102566493B (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
C14 Grant of patent or utility model
GR01 Patent grant