CN109491660B - 一种机车事件数据动态解析方法 - Google Patents
一种机车事件数据动态解析方法 Download PDFInfo
- Publication number
- CN109491660B CN109491660B CN201811161957.9A CN201811161957A CN109491660B CN 109491660 B CN109491660 B CN 109491660B CN 201811161957 A CN201811161957 A CN 201811161957A CN 109491660 B CN109491660 B CN 109491660B
- Authority
- CN
- China
- Prior art keywords
- data
- event
- variable
- data frame
- locomotive
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种机车事件数据动态解析方法,适用于机车事件数据录取及处理系统,利用机车描述文件存储通讯总线类型、通讯端口号、数据帧识别码组、变量位置、数据处理公式、处置条件等描述信息,各描述信息对应各类总线及总线的数据传输协议,地面设备读取描述信息并传输至车载设备,车载设备根据描述信息创建数据帧管理类、数据变量管理类、事件管理类及全局管理数据字典后提取处理并存储机车事件信息。当机车上的数据传输格式更新时,修改机车描述文件即可满足数据解析需求,无需修改软件,降低了机车数据改变后的测试要求,节约成本,且能使机车集成单位与数据录取及处理系统供货单位之间的业务界限更为清晰,降低了机车集成单位的泄密风险。
Description
技术领域
本发明涉及机车数据通讯处理技术领域,尤其涉及一种机车事件数据动态解析方法。
背景技术
目前的机车事件数据获取工作中,先设计机车事件数据的获取方法,编写对应的嵌入式软件,当软件捕获到机车事件数据所在的通讯帧时,调用对应的一系列处理函数,完成数据提取、事件判别和变量联动。当更改机车事件数据设置时,比如在数据帧的前部增加了某些数据或删除了某些数据,开发人员需要重复上述流程,即更改嵌入式软件,更改处理函数。工程量大,周期长,变更设计需要修改程序,会对软件其他部分产生影响,容易引入bug,往往需要启动机车运行来配合系统测试,测试代价非常大,费用高,而且要求由专业的软件开发人员负责软件修改,存在机车总体负责单位与软件开发单位之间的商业信息保密问题。
发明内容
本发明提供一种机车事件数据动态解析方法,包括以下步骤,
S1:地面设备读取机车描述文件,提取包括通讯总线类型、通讯端口号、数据帧识别码组、变量名称、变量位置、数据处理公式、处置条件的描述信息,将描述信息编译生成描述码流,经以太网方式传输至车载设备;
S2:车载设备根据描述码流创建数据帧管理类、数据变量管理类、事件管理类及全局管理数据字典;
S3:车载设备启动包括多个线程的线程群,每个所述线程监测一路传输机车测试数据的总线并读取所述总线上的测试数据流,检测测试数据流中的数据帧识别码组,判定测试数据流里两个数据帧识别码组之间的数据是否为完整数据帧,存储完整数据帧,舍弃非完整数据帧;
S4:根据创建的数据帧管理类、数据变量管理类及事件管理类,解析数据帧的报文内容,提取关联数据,填充全局管理数据字典;然后在全局管理数据字典范围内,执行数据变量管理类与事件管理类的动态解释描述脚本,实现数据变量或事件触发的动态操作;
S5:将动态操作结果进行工程量程转换存储到数据变量管理类中供后续程序进一步处理。
进一步地,所述机车描述文件是excel文件,机车描述文件的每一个sheet页包括一种机车类型的全部总线通讯数据描述信息,描述信息包括机车数据有效判定条件、数据帧结构、数据变量名和事件触发信号,每个条目的信息包括通讯总线类型、通讯端口索引、数据帧识别码组、变量名称、变量在数据帧的位置、工程变换算式以及该变量需要联动动作时的执行软件脚本。
进一步地,数据帧管理类的属性成员包括数据帧的识别码组序列、数据帧编号、数据帧长度、数据帧内容、数据帧码组掩码、数据帧所含检测参数索引、数据帧所含检测事件索引及数据帧变动指示;数据帧管理类的方法成员包括更新数据帧管理类的实例对象含数据内容、获取所含检测参数索引、获取所含检测事件索引及生产数据帧掩码。
数据变量管理类的属性成员包括全局编号、总线类型、总线接口索引号、变量名称字符串、所属数据帧的识别码序列、数据类型、据变量管理类的实例对象在数据帧报文中的起始字节、起始字节中的起始位、数据变量管理类的实例对象的位长度、字节序、总线最大值、总线最小值、工程量最大值、工程量最小值、变动滤波阈值、生效判定函数脚本、变换表达式函数脚本、默认返回值、当前最新值、变动指示标志与需要转换标志;数据变量管理类的方法成员包括类对象赋值重载方法与类打印输出重载方法。
触发事件管理类的属性成员包括全局事件编号、总线类型、总线接口索引号、事件模式、所属数据帧识别码序列、数据类型、触发事件管理类的实例对象在数据帧报文中的起始字节、起始字节中的起始位、位长度、字节序、事件判定函数脚本、事件名称、事件ID码值及当前事件状态;触发事件管理类的方法成员包括类对象赋值重载方法与类打印输出重载方法。
全局管理数据字典包括用于联动多总线、多端口数据变量的全局检测变量参数字典和全局事件字典,全局检测变量参数字典的索引(Key)是变量的名称,全局检测变量参数字典的内容(body)是变量的类对象,全局事件字典的索引(Key)是事件的名称,全局事件字典的内容(body)是事件的类对象。
本发明提供一种机车事件数据动态解析方法,适用于机车事件数据录取及处理系统,利用机车描述文件存储通讯总线类型、通讯端口号、数据帧识别码组、变量名称、变量位置、数据处理公式、处置条件等描述信息,各描述信息对应各类总线及总线的数据传输协议,由地面设备读取机车描述文件中的信息并传输至车载设备,车载设备根据描述信息创建数据帧管理类、数据变量管理类、事件管理类及全局管理数据字典后提取处理并存储机车事件信息。当机车上的数据采集系统调整时,只要修改机车描述文件就可以满足数据解析需求,无需修改车载设备及地面设备的软件,降低了数据录取及处理系统的测试要求,节约成本,且能使机车集成单位与数据录取及处理系统供货单位之间的业务界限更为清晰,降低了机车集成单位的泄密风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供一种机车事件数据动态解析方法,包括以下步骤,
S1:地面设备读取机车描述文件,提取包括通讯总线类型、通讯端口号、数据帧识别码组、变量名称、变量位置、数据处理公式、处置条件的描述信息,将描述信息编译生成描述码流,经以太网方式传输至车载设备;
S2:车载设备根据描述码流创建数据帧管理类、数据变量管理类、事件管理类及全局管理数据字典;
S3:车载设备启动包括多个线程的线程群,每个所述线程监测一路传输机车测试数据的总线并读取所述总线上的测试数据流,检测测试数据流中的数据帧识别码组,判定测试数据流里两个数据帧识别码组之间的数据是否为完整数据帧,存储完整数据帧,舍弃非完整数据帧;
S4:根据创建的数据帧管理类、数据变量管理类及事件管理类,解析数据帧的报文内容,提取关联数据,填充全局管理数据字典;然后在全局管理数据字典范围内,执行数据变量管理类与事件管理类的动态解释描述脚本,实现数据变量或事件触发的动态操作;
S5:将动态操作结果进行工程量程转换存储到数据变量管理类中供后续程序进一步处理。
本发明提供一种机车事件数据动态解析方法,适用于机车事件数据录取及处理系统,利用机车描述文件存储通讯总线类型、通讯端口号、数据帧识别码组、变量名称、变量位置、数据处理公式、处置条件等描述信息,各描述信息对应各类总线及总线的数据传输协议,由地面设备读取机车描述文件中的信息并传输至车载设备,车载设备根据描述信息创建数据帧管理类、数据变量管理类、事件管理类及全局管理数据字典后提取处理并存储机车事件信息。当机车上的数据采集系统调整时,只要修改机车描述文件就可以满足数据解析需求,无需修改车载设备及地面设备的软件,降低了数据录取及处理系统的测试要求,节约成本,且能使机车集成单位与数据录取及处理系统供货单位之间的业务界限更为清晰,降低了机车集成单位的泄密风险。
进一步地,所述机车描述文件是excel文件,机车描述文件的每一个sheet页包括一种机车类型的全部总线通讯数据描述信息,描述信息包括机车数据有效判定条件、数据帧结构、数据变量名和事件触发信号,每个条目的信息包括通讯总线类型、通讯端口索引、数据帧识别码组、变量名称、变量在数据帧的位置、工程变换算式以及该变量需要联动动作时的执行软件脚本。
如表1所示,当类型是device时,描述的是车载设备本身,当该行有效条件表达式成立的时候,即alm[“alm1”]==1,也就是名称为alm1的事件发生时,车载设备开始记录。当类型是msg时,描述的是总线上的数据帧,该行的端口类别描述该数据帧的总线类型,可以是CAN总线、以太网总线、RS485总线或MVB总线;数据帧识别码组描述的是该帧的识别信息,例如CAN数据帧是CAN帧ID,以太网数据包是TRDP协议的comID,或其他协议的识别字;MVB总线是MVB的源端口信息等。模式信息描述的是该帧的数据部分字节长度。当类型是status时,每行描述的是一个机车参数变量,端口类别描述的是该参数变量来自哪种总线,数据帧识别码组描述的是该参数变量来自那个数据帧,模式用于描述取得该参数变量的字节序(大端顺序还是小端顺序),变量名称用于描述该参数变量的工程使用名称,方便人的识别;数据类型描述该参数变量的类型;起始字节描述的是该参数变量在所属数据帧中的起始字节位置;起始位描述的是该参数变量在起始字节中的起始位序;位长度描述该参数变量的数据位长度;有效条件表达式描述的是该参数变量生效的判定表达式,例如名称为status3的参数变量的条件判定表达式status[“status1”]==1描述的是,当名称为status1的参数变量值为1的时候status3有效,否则无效。数值联动表达式描述的是该参数变量与其他参数变量联动或数学转换的脚本函数,例如与名称为status3对应的数值联动表达式status["status1"]*2+status[“status2”]表示status3是status1的两倍与status2之和,常用计算均可编写在描述文件中,当机车上的数据关系变化或数据变换器更新时,只需修改描述文件即可适应。当类型是alm时,描述的是触发事件,描述内容基本与status类型相似,区别在于模式字段描述分为RT、FT和EQ三种,分别代表位变量的上升沿触发、下降沿触发和任意变量的表达式判定条件。用户只需根据设计文档,填充这个描述文件就可以实现任意端口、任意变量、任意事件的解析,并可通过便捷脚本函数实现变量、事件之间的联动操作。
表1机车描述文件一个sheet页的部分信息
进一步地,数据帧管理类的属性成员包括数据帧的识别码组序列、数据帧编号、数据帧长度、数据帧内容、数据帧码组掩码、数据帧所含检测参数索引、数据帧所含检测事件索引及数据帧变动指示;数据帧管理类的方法成员包括更新数据帧管理类的实例对象所含数据内容、获取所含检测参数索引、获取所含检测事件索引及生产数据帧掩码。
数据变量管理类的属性成员包括全局编号、总线类型、总线接口索引号、变量名称字符串、所属数据帧的识别码序列、数据类型、据变量管理类的实例对象在数据帧报文中的起始字节、起始字节中的起始位、数据变量管理类的实例对象的位长度、字节序、总线最大值、总线最小值、工程量最大值、工程量最小值、变动滤波阈值、生效判定函数脚本、变换表达式函数脚本、默认返回值、当前最新值、变动指示标志与需要转换标志;数据变量管理类的方法成员包括类对象赋值重载方法与类打印输出重载方法。
触发事件管理类的属性成员包括全局事件编号、总线类型、总线接口索引号、事件模式、所属数据帧识别码序列、数据类型、触发事件管理类的实例对象在数据帧报文中的起始字节、起始字节中的起始位、位长度、字节序、事件判定函数脚本、事件名称、事件ID码值及当前事件状态;触发事件管理类的方法成员包括类对象赋值重载方法与类打印输出重载方法。
全局管理数据字典包括用于联动多总线、多端口数据变量的全局检测变量参数字典和全局事件字典,全局检测变量参数字典的索引(Key)是变量的名称,全局检测变量参数字典的内容(body)是变量的类对象,全局事件字典的索引(Key)是事件的名称,全局事件字典的内容(body)是事件的类对象。
类的结构属性设计最大限度与机车网络工程设计人员对通讯参数设计定义一致,使用名称一致,可以降低工程设计人员对描述文件学习的复杂度。数据帧、变量参数(信号)、事件都进行了类层次的抽象,从该抽象可以实例化任意多个对象,这样对同一个类的处理实现了统一化。由于同一个对象内存结构一致,一些内存搬运处理可以更加快速高效。进行类统一定义后,如果未来需要通讯参数调整,只需要在类中修改属性或者修改方法即可对应各种变化,程序修改量最小。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (2)
1.一种机车事件数据动态解析方法,其特征在于,包括以下步骤,
S1:地面设备读取机车描述文件,提取包括通讯总线类型、通讯端口号、数据帧识别码组、变量名称、变量位置、数据处理公式、处置条件的描述信息,将所述描述信息编译生成描述码流,经以太网方式传输至车载设备;
S2:车载设备根据所述描述码流创建数据帧管理类、数据变量管理类、触发事件管理类及全局管理数据字典;
S3:车载设备启动包括多个线程的线程群,每个所述线程监测一路传输机车测试数据的总线并读取所述总线上的测试数据流,检测测试数据流中的数据帧识别码组,判定所述测试数据流里两个数据帧识别码组之间的数据是否为完整数据帧,存储完整数据帧,舍弃非完整数据帧;
S4:根据创建的所述数据帧管理类、数据变量管理类及触发事件管理类,解析所述完整数据帧的报文内容,提取关联数据,填充所述全局管理数据字典;然后在所述全局管理数据字典范围内,执行所述数据变量管理类与触发事件管理类的动态解释描述脚本,实现数据变量或事件触发的动态操作;
S5:将动态操作结果进行工程量程转换存储到所述数据变量管理类中供后续程序进一步处理;
所述数据帧管理类的属性成员包括数据帧的识别码组序列、数据帧编号、数据帧长度、数据帧内容、数据帧码组掩码、数据帧所含检测参数索引、数据帧所含检测事件索引及数据帧变动指示;所述数据帧管理类的方法成员包括更新本类实例对象所含数据内容、获取本类实例对象所含检测参数索引、获取本类实例对象所含检测事件索引及生产数据帧掩码;
所述数据变量管理类的属性成员包括全局编号、总线类型、总线接口索引号、变量名称字符串、所属数据帧的识别码序列、数据类型、数据变量管理类的实例对象在数据帧报文中的起始字节、起始字节中的起始位、数据变量管理类的实例对象的位长度、字节序、总线最大值、总线最小值、工程量最大值、工程量最小值、变动滤波阈值、生效判定函数脚本、变换表达式函数脚本、默认返回值、当前最新值、变动指示标志与需要转换标志;所述数据变量管理类的方法成员包括类对象赋值重载方法与类打印输出重载方法;
所述触发事件管理类的属性成员包括全局事件编号、总线类型、总线接口索引号、事件模式、所属数据帧识别码序列、数据类型、触发事件管理类的实例对象在数据帧报文中的起始字节、起始字节中的起始位、位长度、字节序、事件判定函数脚本、事件名称、事件ID码值及当前事件状态;所述触发事件管理类的方法成员包括类对象赋值重载方法与类打印输出重载方法;
所述全局管理数据字典包括用于联动多总线、多端口数据变量的全局检测变量参数字典和全局事件字典,所述全局检测变量参数字典的索引是变量的名称,所述全局检测变量参数字典的内容是变量的类对象,所述全局事件字典的索引是事件的名称,所述全局事件字典的内容是事件的类对象。
2.根据权利要求1所述的一种机车事件数据动态解析方法,其特征在于,所述机车描述文件是excel文件,所述机车描述文件的每一个sheet页包括一种机车类型的全部总线通讯数据描述信息,所述描述信息包括机车数据有效判定条件、数据帧结构、数据变量名和事件触发信号,每个条目的信息包括通讯总线类型、通讯端口索引、数据帧识别码组、变量名称、变量在数据帧的位置、工程变换算式以及该变量需要联动动作时的执行软件脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811161957.9A CN109491660B (zh) | 2018-09-30 | 2018-09-30 | 一种机车事件数据动态解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811161957.9A CN109491660B (zh) | 2018-09-30 | 2018-09-30 | 一种机车事件数据动态解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109491660A CN109491660A (zh) | 2019-03-19 |
CN109491660B true CN109491660B (zh) | 2021-10-29 |
Family
ID=65690083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811161957.9A Active CN109491660B (zh) | 2018-09-30 | 2018-09-30 | 一种机车事件数据动态解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491660B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694988B (zh) * | 2020-06-09 | 2022-10-28 | 中国民用航空飞行学院 | Ae300航空发动机事件记录文件解析方法及设备 |
CN112596501B (zh) * | 2020-12-17 | 2022-04-29 | 河南嘉晨智能控制股份有限公司 | 一种处理器、车辆远程诊断系统和方法 |
CN117294552B (zh) * | 2023-11-24 | 2024-02-13 | 中汽研汽车检验中心(天津)有限公司 | 一种基于hj1239标准的数据完整性测试的方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2754159C (en) * | 2009-08-11 | 2012-05-15 | Certusview Technologies, Llc | Systems and methods for complex event processing of vehicle-related information |
KR101543069B1 (ko) * | 2013-06-07 | 2015-08-07 | 현대자동차주식회사 | 차량 데이터 수집 시스템 |
CN105224447B (zh) * | 2014-06-11 | 2017-11-14 | 联创汽车电子有限公司 | 发动机控制器软件诊断模块测试方法及测试系统 |
CN104980516A (zh) * | 2015-06-26 | 2015-10-14 | 武汉光庭科技有限公司 | 一种面向多车型的车身信息采集系统的可配置方法 |
CN105512097A (zh) * | 2015-11-26 | 2016-04-20 | 普华基础软件股份有限公司 | 一种文件解析方法 |
DE102015226147B4 (de) * | 2015-12-21 | 2023-08-31 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren, Prozessorvorrichtung, Kraftfahrzeug mit einer solchen Prozessorvorrichtung und Telematiksystem für die automatische Konfiguration telematischer Datenübermittlungen des Kraftfahrzeugs |
CN107132832B (zh) * | 2016-02-29 | 2019-10-11 | 株洲南车时代电气股份有限公司 | 一种基于can通讯的dbc文件解析及其程序设计方法 |
US10210674B2 (en) * | 2016-04-08 | 2019-02-19 | New York Air Brake, LLC | Train handling rules compliance system |
CN107656520B (zh) * | 2017-10-24 | 2021-04-02 | 厦门市福工动力技术有限公司 | Can总线数据解析方法及计算机可读存储介质 |
CN108600192B (zh) * | 2018-04-03 | 2021-03-30 | 南京越博动力系统股份有限公司 | 一种基于正则表达式的dbc文件解析及报文分析方法 |
-
2018
- 2018-09-30 CN CN201811161957.9A patent/CN109491660B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109491660A (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491660B (zh) | 一种机车事件数据动态解析方法 | |
CN110262783B (zh) | 一种接口生成方法、装置及终端设备 | |
US20010037492A1 (en) | Method and apparatus for automatically extracting verification models | |
CN111970353A (zh) | 云计算平台物联网中异构设备的数据处理方法及装置 | |
CN112328226B (zh) | 一种嵌入式系统自动化测试代码生成方法及装置 | |
CN111585344B (zh) | 一种基于全站ied仿真的变电站智能校核方法及装置 | |
CN111556074A (zh) | 基于opc ua的通信协议配置方法及装置 | |
CN110909168B (zh) | 知识图谱的更新方法和装置、存储介质及电子装置 | |
CN111367547A (zh) | 接口代码自动同步方法、装置及存储介质 | |
CN106095376A (zh) | 一种快速组态监控画面的实现方法 | |
CN112286575A (zh) | 基于图匹配模型的智能合约相似度检测方法及系统 | |
CN110096264A (zh) | 一种代码运行方法及装置 | |
CN103200203B (zh) | 基于执行轨迹的语义级协议格式推断方法 | |
CN102063470B (zh) | 一种适用于无线传感器网络的节点实时数据解析方法 | |
CN111464515A (zh) | 一种数据转换方法、装置、设备及存储介质 | |
CN110855459A (zh) | 网络配置方法、装置及系统 | |
CN113238937A (zh) | 一种基于代码精简与误报过滤的编译器模糊测试方法 | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN108259284A (zh) | 一种可配置的车辆数据采集系统及解析方法 | |
US20040153871A1 (en) | Automatic analysis of the properties of a system based on runtime logs | |
CN107291435B (zh) | 一种不确定性环境下混成aadl模型量化分析方法 | |
CN110853327B (zh) | 一种基于单片机的船舶机舱设备数据现场调试采集方法及装置 | |
CN109240672B (zh) | 数字飞行器单机部件信息传输源代码的人工智能书写方法 | |
CN105335153A (zh) | 一种自动生成动态脚本的方法 | |
KR100289047B1 (ko) | 프레임워크 식별 시스템 및 프레임워크 식별방법 |
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 |