麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種列車網絡控制系統邏輯圖的圖形自動生成方法與流程

文檔序號:11154978閱讀:1281來源:國知局
一種列車網絡控制系統邏輯圖的圖形自動生成方法與制造工藝

本發明涉及列車網絡控制技術領域,尤其涉及一種列車網絡控制系統邏輯圖的圖形自動生成方法。



背景技術:

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
主站蜘蛛池模板: 太仆寺旗| 年辖:市辖区| 广安市| 罗山县| 涟源市| 香格里拉县| 涿鹿县| 富平县| 岳西县| 山阴县| 保靖县| 盱眙县| 宜川县| 太和县| 罗源县| 旬邑县| 准格尔旗| 酒泉市| 永川市| 二手房| 宁陵县| 商都县| 老河口市| 沭阳县| 桑植县| 区。| 永吉县| 连平县| 承德县| 屯留县| 章丘市| 广灵县| 当雄县| 图们市| 浮梁县| 独山县| 武山县| 台北县| 龙门县| 东兰县| 玛多县|