一种列车网络控制系统逻辑图的图形自动生成方法与流程

文档序号:11154978阅读:1030来源:国知局
一种列车网络控制系统逻辑图的图形自动生成方法与制造工艺

本发明涉及列车网络控制技术领域,尤其涉及一种列车网络控制系统逻辑图的图形自动生成方法。



背景技术:

TCMS(Train Control and Management System,列车网络控制系统)由车辆控制单元(VCMe)、数据记录单元(EDRM)、中继器(REP)、数字量输入输出单元(DXMe)、数字量输入单元(DIMe)、模拟量输入输出单元(AXMe)、人机接口单元(HMI)等功能模块组成,各功能模块通过WTB、MVB总线进行连接,完成列车整车控制、信息传递、状态监视与故障诊断等功能。以城轨列车为例,按照不同的功能与硬件配置分为带司机室的拖车Tc车、动车M两种车型的TCMS。VCMe作为TCMS的核心模块,主要实现车辆的控制和总线的管理,运行于VCMe模块的逻辑控制程序是列车网络控制系统的关键,因而需要获取其对应的控制逻辑图作为VCMe程序设计的依据,逻辑图同时也是用户在列车运维中重要的技术资料。

列车网络控制系统的VCMe模块是采用PLC(Programmable Logic Controller,可编程控制器)体系结构,其采用MultiProg作为编程工具,目前获取逻辑图通常都是利用MultiProg的逻辑图导出功能,MultiProg包括两种导出方式:第一种是导出符合PLC open协议的XML文件,该文件保存逻辑图图元的位置、形状、连接点等信息,但专业性强、无可视化图形,难于阅读、理解;第二种是利用MultiProg的打印功能,将逻辑图按A4纸、纵向格式输出到打印机或PDF文档,但该导出方式是先将逻辑图绘制在画布(Canvas)上,然后根据输出设备的尺寸将画布机械的从上到下、从左至右分割成多张图片;该类逻辑图导出方式由于未考虑逻辑图之间的连接关系,一方面不能自动换行,当逻辑图的宽度超过A4纸的打印范围时,超出部分打印在后续的纸张中,而针对不同的PLC程序,逻辑图复杂度及篇幅相差很大,使得很多表单往往都会超出A4纸的输出范围;另一方面无法判断图元跨页的情况,会出现一个图元导出至两张图的情况,因此所得到的逻辑图完整性差,非常不便于阅读、理解。



技术实现要素:

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、能够实现逻辑图的自动生成,且所导出的逻辑图完整性好、便于阅读和理解以及生成效率高的优点。

为解决上述技术问题,本发明提出的技术方案为:

一种列车网络控制系统逻辑图的图形自动生成方法,步骤包括:

1)获取列车网络控制系统的逻辑图源数据文件并进行解析,得到多个含有由注释、变量以及功能块构成的图元、以及连接关系的表单文件;

2)读取各个所述表单文件进行处理,每个所述表单文件进行处理时,依次获取所述表单文件中各个图元以及对应的连接关系,在指定输出页面上生成对应的图形;每个所述图元的图形生成时,根据当前绘图位置以及所需的图形空间位置,确定当前图元在所述输出页面中的图形位置,使得各所述图元按照连接关系能够在所述输出页面中形成整体;在当前图元的图形生成完成后更新当前绘图位置。

作为本发明的进一步改进:所述步骤2)中每个所述表单文件进行处理的具体步骤为:

2.1)将所述表单文件中所有图元按照各功能块的位置进行排序,形成图元列表;

2.2)获取所述图元列表中一个图元作为当前图元,转入执行步骤2.3);

2.3)判断当前图元的类型,如果为变量,转入执行步骤2.6),否则转入执行步骤2.4);

2.4)计算当前图元所需的图形空间位置,根据当前绘图位置以及计算得到的所需的图形空间位置,判断当前图元是否会超出当前输出页面的边界,如果是,调整绘图位置并生成当前图元的图形,否则在当前绘图位置生成当前图元的图形;图形生成完成后,更新当前绘图位置;判断当前图元是否为功能块,如果是,转入执行步骤2.5),否则转入执行步骤2.6);

2.5)判断当前图元是否有连接,如果有且为变量,生成所连接变量、连接线的图形并更新当前绘图位置,转入执行步骤2.6);如果有且为功能块,将所连接的功能块作为当前图元,返回执行步骤2.4),如果无连接,转入执行步骤2.6);

2.6)获取所述图元列表中下一个图元作为当前图元,返回执行步骤2.3),直至遍历所述图元列表中所有图元。

作为本发明的进一步改进:所述步骤2.4)中调整绘图位置并生成当前图元的图形的具体步骤为:如果为超过当前输出页面的横向边界,调整至当前绘图位置的下一行位置生成当前图元的图形;如果为超过当前输出页面的纵向边界,则调整至下一个输出页面生成当前图元的图形。

作为本发明的进一步改进,所述调整至当前绘图位置的下一行位置生成当前图元的图形的具体步骤为:

2.4.1)预先定义用于执行换行的换行结构体,所述换行结构体包括用于存储需要换行的图元所对应信息的变量;

2.4.2)当需要调整至下一行位置进行换行时,增加所述换行结构体作为换行信息,并根据当前图元对所述换行结构体中各变量进行设置;根据所述换行结构体中各变量生成当前图元的图形。

作为本发明的进一步改进:所述换行结构体中变量具体包括用于存储当前换行编号的linkNo变量、用于存储当前需要执行换行图元的item变量、用于存储是否已生成图形完成绘制标志的drawFlag变量、用于存储图元中编号是否绘制在前端的numIsFront变量以及用于存储靠近图元端的连接线是否取反标志的isNer变量。

作为本发明的进一步改进:所述步骤2.5)中生成所连接的变量、连接线的图形的具体步骤为:计算所连接的变量所需的图形空间位置,根据当前绘图位置以及计算得到的所需的图形空间位置,判断所连接的变量是否会超出当前输出页面的边界,如果会超过,调整至当前绘图位置的下一行位置生成所连接的变量、连接线的图形,如果不会超过,在当前绘图位置生成所连接的变量、连接线的图形。

作为本发明的进一步改进,若当前图元为功能块,所述步骤2.4)中生成当前图元的图形的具体步骤为:预先定义用于生成功能块图形的图形绘制递归函数,通过递归调用所述图形绘制递归函数生成当前图元的图形。

作为本发明的进一步改进:所述图形绘制递归函数具体包括用于设置当前待绘制功能块的item参数、用于设置当前待绘制功能块的左上角点坐标的参数、用于设置是否完成绘制的标志flag参数以及用于设置绘制比例的scale参数。

作为本发明的进一步改进,所述步骤2.1)的具体步骤为:

2.1)预先分别为所述图元、连接关系定义一个类,得到对应图元的DesignerItem类和对应连接关系的Connetion类,且所述DesignerItem类、Connetion类的数据结构分别与所述图元、连接关系所包含的属性一一对应;

2.2)由所述表单文件中各所述图元、连接关系分别对所述DesignerItem类、Connetion类进行初始化,以将所述表单中各图元按照各功能块的位置形成图元列表。

作为本发明的进一步改进:所述图元包括图元左边距逻辑图左边界距离、图元顶部距逻辑图左边界距离、高度、宽度、方向、图元类型、ID号、图元所在图层、图元参数地址、变量类型、左右两侧连接点相对位置以及左右两侧连接的变量中任意一种或多种属性;所述连接关系包括连接线起点图元ID号、连接线终点图元ID号、起点连接名称、终点连接名称、起点是否取反、连接线图层、连接线点集合、起点相对坐标以及终点相对坐标的任意一种或多种属性。

与现有技术相比,本发明的优点在于:

1)本发明列车网络控制系统逻辑图的图形自动生成方法,通过获取列车网络控制系统的逻辑图源数据文件进行解析以及对解析得到的各表单文件进行处理,能够自动完成逻辑图的生成过程,且逻辑图生成时,充分考虑了图元与图元之间的连接关系以及图元所需的图形空间位置,通过确定图元在输出页面中的图形位置,使得各图元按照连接关系能够在输出页面中形成整体,避免图元生成时超过页面范围或跨页等情况,实现方法简单,所生成的逻辑图完整性好,便于阅读、理解;

2)本发明列车网络控制系统逻辑图的图形自动生成方法,进一步通过遍历图元列表中各图元以及连接关系,对不同类型图元执行不同图形生成处理,能够按照功能块位置以及连接关系依次进行图形生成,同时在图形生成过程中,通过判断图元是否会超出当前输出页面的边界调整绘图位置,所生成的图形完整性好,图元不会出现超过页面边界;

3)本发明列车网络控制系统逻辑图的图形自动生成方法,进一步通过定义递归函数绘制功能块的图形,基于递归算法实现功能块的图形生成,程序编程实现简单且运行效率高;

4)本发明列车网络控制系统逻辑图的图形自动生成方法,进一步可以通过插入位图文件的方式实现图形生成,通用性强且便于复用。

附图说明

图1是本实施例列车网络控制系统逻辑图的图形自动生成方法的实现流程示意图。

图2是本实施例中步骤2)的实现流程示意图。

图3是本发明具体实施例中步骤2)的具体实现流程示意图。

图4是本发明具体实施例中所生成得到的逻辑图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

如图1所示,本实施例列车网络控制系统逻辑图的图形自动生成方法,步骤包括:

1)获取列车网络控制系统的逻辑图源数据文件并进行解析,得到多个含有由注释、变量以及功能块构成的图元、以及连接关系的表单文件;

2)读取各个表单文件进行处理,每个表单文件进行处理时,依次获取表单文件中各个图元以及对应的连接关系,在指定输出页面上生成对应的图形;每个图元的图形生成时,根据当前绘图位置以及所需的图形空间位置,确定当前图元在输出页面中的图形位置,使得各图元按照连接关系在所述输出页面中形成整体;在当前图元的图形生成完成后更新当前绘图位置。

本实施例通过获取列车网络控制系统的逻辑图源数据文件进行解析以及对解析得到的各表单文件进行处理,能够自动完成逻辑图的生成过程,且逻辑图生成时,充分考虑了图元与图元之间的连接关系以及图元所需的图形空间位置,通过确定图元在输出页面中的图形位置,使得各图元按照连接关系能够在输出页面中形成整体,避免图元生成时超过页面范围或跨页等情况,实现方法简单,所生成的逻辑图完整性好,便于阅读、理解。

MultiProg导出的XML文件的数据结构符合PLC open协议,其组织方式是按POU(功能)分组,每个POU包含若干个表单,表单中包含了变量、功能块、注释及连接关系等信息。本实施例具体获取MultiProg导出的XML文件作为逻辑图源数据文件,再根根PLC open协议,解析所获取到的逻辑图源数据文件,以表单作为基本单位,得到保存有各个表单中所有图元及连接关系的多个表单文件。

本实施例表单文件包括两种元素:

①图元(DesignerItem),包括注释、变量、功能块三种类型,其中常量是作为一种特殊变量,由ValueType属性标示,图元的属性具体包括图元与图元左边距逻辑图左边界距离属性、图元顶部距逻辑图左边界距离、高度、宽度、方向、图元类型、ID号、图元所在图层、图元参数地址、变量类型、左右两侧连接点相对位置以及左右两侧连接的变量等,具体如下所示:

②连接关系(Connetion),表示图元与图元之间的连接关系,如图3所示,包括连接线起点图元ID号、连接线终点图元ID号、起点连接名称、终点连接名称、起点是否取反、连接线图层、连接线点集合、起点相对坐标以及终点相对坐标等,具体如下所示:

本实施例表单文件具体以XML格式保存,并按照所属的POU对表单文件以按功能分组。

本实施例具体通过读取表单文件中的图元、连接关系保存到内存中,结合GDI与绘图技术,将逻辑图绘制到位图文件,然后再将位图插入到word文档中,生成得到逻辑图的图形文件,实现逻辑图的导出功能。

本实施例中,步骤2)中每个表单文件进行处理的具体步骤为:

2.1)将表单文件中所有图元按照各功能块的位置进行排序,形成图元列表;

2.2)获取图元列表中一个图元作为当前图元,转入执行步骤2.3);

2.3)判断当前图元的类型,如果为变量,转入执行步骤2.6),否则转入执行步骤2.4);

2.4)计算当前图元所需的图形空间位置,根据当前绘图位置以及计算得到的所需的图形空间位置,判断当前图元是否会超出当前输出页面的边界,如果是,调整绘图位置并生成当前图元的图形,否则在当前绘图位置生成当前图元的图形;图形生成完成后,更新当前绘图位置;判断当前图元是否为功能块,如果是,转入执行步骤2.5),否则转入执行步骤2.6);

2.5)判断当前图元是否有连接,如果有且为变量,生成所连接变量、连接线的图形并更新当前绘图位置,转入执行步骤2.6);如果有且为功能块,将所连接的功能块作为当前图元,返回执行步骤2.4),如果无连接,转入执行步骤2.6);

2.6)获取图元列表中下一个图元作为当前图元,返回执行步骤2.3),直至遍历图元列表中所有图元。

本实施例通过遍历图元列表中各图元以及连接关系,根据图元的类型对图元进行图形生成处理,能够按照功能块位置的顺序,以及按照功能块、功能块左侧连接(变量或功能块)、功能块右侧连接(变量或功能块)依次进行图形生成,同时在图形生成过程中,通过判断图元是否会超出当前输出页面的边界调整绘图位置,所生成的图形完整性好,且其中图元不会出现超过页面边界。

本实施例中,步骤2.1)的具体步骤为:

2.1)预先分别为图元、连接关系定义一个类,得到对应图元的DesignerItem类和对应连接关系的Connetion类,且DesignerItem类、Connetion类的数据结构分别与图元、连接关系所包含的属性一一对应;

2.2)由表单文件中各图元、连接关系分别对DesignerItem类、Connetion类进行初始化,以将表单中各图元按照各功能块的位置形成图元列表。

本实施例分别为图元(DesignerItem)、连接关系(Connetion)两种元素定义一个类,即DesignerItem和Connetion,且所定义的类的数据结构分别与对应元素的属性一一对应,图元、连接关系的属性具体如上所述;对表单文件进行处理,即初始化基于DesignerItem、Connetion两个类的对象列表,将表单中所有图元添加到图元列表,然后将图元列表中的元素按照图元左边距逻辑图左边界距离(Top)属性、图元顶部距逻辑图左边界距离(Left)属性值从小到大(从上到下、从左到右)排序,得到形成的图元列表。

本实施例中,步骤2.4)中调整绘图位置并生成当前图元的图形的具体步骤为:如果为超过当前输出页面的横向边界,调整至当前绘图位置的下一行位置生成当前图元的图形;如果为超过当前输出页面的纵向边界,则调整至下一个输出页面生成当前图元的图形。调整至当前绘图位置的下一行位置即为需要执行换行,调整至下一个输出页面即为需要执行换页处理,通过对图元空间位置的超界判断,能够自动执行换行、换页操作,避免图元超过页面范围以及跨页等。

如图2所示,本实施例步骤2)具体首先载入整个工程的表单文件,并建立一个待输出的Word文档作为输出页面,遍历处理每个表单文件,初始化DesignerItem、Connection对象列表,得到形成的图元列表;初始化完成后,创建位图文件,遍历图元对象列表,在位图文件中绘制图元以生成图元的图形,然后绘制与图元的连接、与图元相连接的图元。在图元图形生成过程中,判断图元是否超过输出页面的边界,如果是横向超过边界,即左、右超界,则调整至当前绘图位置的下一行位置以执行换行处理;如果是纵向超界,即底部超界,则通过保存当前位图文件并建立一个新的位图文件,将图元调整至下一个输出页面以执行换页处理,如此反复,直至所有图元处理完毕,完成逻辑图的图形生成。

本实施例遍历图元列表时,当图元是变量(valueType=12),直接跳过不作处理,在处理与该变量相连的功能块时绘制此变量;当图元是注释时(valueType=13),因注释是单个独立的图元,在判断是否超界后直接生成对应的图形;当图元是功能块时(valueType=11),则采用递归调用功能块递归函数生成对应的图形。

本实施例中,若当前图元为功能块,步骤2.4)中生成当前图元的图形的具体步骤为:预先定义用于生成功能块图形的图形绘制递归函数,通过调用图形绘制递归函数生成当前图元的图形。通过图形绘制递归函数,基于递归算法实现功能块的图形生成,程序编程实现简单且运行效率高。

本实施例中,图形绘制递归函数具体包括用于设置当前待绘制功能块的item变量、用于设置当前待绘制功能块的左上角点坐标的变量、用于设置是否完成绘制的标志flag变量以及用于设置绘制比例的scale变量。图形绘制递归函数的具体格式为:DrawBlock(ref DesignerItem item,int x,int y,int flag,float scale),其中,item为待绘制功能块,x、y分别为当前绘制功能块左上角点的坐标,flag为绘制标志,其中flag为0对应为正常的遍历绘制,flag为1对应在遍历左连接中的绘制,flag为2对应在遍历右连接中的绘制;scale为绘制比率,scale为1.0时对应正常比例,当功能块太大时,scale取小于0(具体为0.6)以缩小进行绘制。

本实施例中,调整至当前绘图位置的下一行位置生成当前图元的图形的具体步骤为:

2.4.1)预先定义用于执行换行的换行结构体,换行结构体包括用于存储需要换行的图元所对应信息的变量;

2.4.2)当需要调整至下一行位置进行换行时,增加换行结构体作为换行信息,并根据当前图元对换行结构体中各变量进行设置;根据换行结构体中各变量生成当前图元的图形。

本实施例绘制换行信息时,具体自动计算换行所需宽度,在位图中居中绘制,当换行的图元是功能块时,需递归调用图形绘制递归函数绘制图元对应的图形。

本实施例中,换行结构体中变量具体包括用于存储当前换行编号的linkNo变量、用于存储当前需要执行换行图元的item变量、用于存储是否已生成图形完成绘制标志的drawFlag变量、用于存储图元中编号是否绘制在前端的numIsFront变量以及用于存储靠近图元端的连接线是否取反标志的isNer变量,换行结构体具体定义为:

本实施例中,步骤2.5)中生成所连接的变量、连接线的图形的具体步骤为:计算所连接的变量所需的图形空间位置,根据当前绘图位置以及计算得到的所需的图形空间位置,判断所连接的变量是否会超出当前输出页面的边界,如果会超过,调整至当前绘图位置的下一行位置生成所连接的变量、连接线的图形,如果不会超过,在当前绘图位置生成所连接的变量、连接线的图形。

如图3所示,本发明具体实施例中读取一个图元信息后,若未绘制,则判断图元类型,当valueType=12,表明图元为变量;当valueType=13,表明图元为注释;当valueType=11,表明为功能块,各类型的处理流程为:

变量:直接跳过不作处理,在处理与该变量相连的功能块时绘制此变量;

注释:判断注释内容是否超长,如果超长,则对内容进行分行调整,计算注释所需的高度、宽度,如果横向(左右)超界,则插入换行信息并更新当前绘图位置;如果纵向(底部)超界,则保存当前位图、创新新位置并更新当前绘图位置,绘制注释后置注释已绘制标志,如果有换行信息,则绘制换行的图元、连接线以及换行编号;

功能块:根据图元大小以及当前绘图位置计算所需的最小图形空间,并判断是否超界,如果(左右)超界,则增加一条换行信息,并置换行编号是否在前的标志,且换行编号递增;如果纵向(底部)超界,执行换页操作,即保存当前位图、创建新位图并初始化图元的新绘图位置,绘制完成功能块后置功能块已绘制标志并更新当前绘图位置;绘制完功能块后,判断是否有连接,如果无连接则退出,如果有且为变量时,根据变量的相对位置判断变量是否会超界,如果会超界,则添加换行信息,置换行编号在前标志且换行编号递增,绘制编号以及连接线,如果不会超界,直接绘制变量及连接线并置变量已绘制标志;如果连接为功能块,则返回执行以递归绘制连接的功能块。

如图4所示,本发明具体实施例中所生成得到的逻辑图,以R_TRIG_1功能块为例,其生成过程具体为:首先绘制R_TRIG_1功能块,参数x为该功能块的Left属性值按绘图比例、平移坐标计算得出,y值为当前页的起始绘图位置;flag为0(遍历绘制);scale为1.0。调用图形绘制递归函数DrawBlock函数生成R_TRIG_1功能块的图形的流程为:

①根据R_TRIG_1功能块的宽度、起始坐标及其左右连接关系判断是否左右超界,如果超界就添加换行信息;

②根据R_TRIG_1功能块的高度及起始坐标判断是否底部超界,如超界执行换页、重新初始化y参数;如均不超界,绘制R_TRIG_1功能块的外部轮廓以生成对应的图形;

③绘制R_TRIG_1功能块的左侧连接线及连接的图元,即常量TURE(特殊变量);

④绘制R_TRIG_1的右侧的连接线及连接的图元,即TP_2功能块,TP_2功能块图形生成时递归调用DrawBlock函数,其中参数item为TP_2,参数x、y为R_TRIG_1的起始坐标加上相对平移坐标,即两功能块的Left、Top属性值差,参数flag为2,参数scale为1.0;

⑤绘制此期间添加的换行信息。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1