張 旭,姚 璋,袁友汶,黃 鵬
(中國核動力研究設(shè)計院 核反應堆系統(tǒng)設(shè)計技術(shù)重點實驗室,成都 610213)
隨著電氣設(shè)計行業(yè)的發(fā)展,計算機軟件在現(xiàn)代電氣產(chǎn)品的設(shè)計制造過程中的作用越來越大。計算機輔助設(shè)計(Computer Aided Design,CAD)軟件最早應用于機械設(shè)計,后逐漸用于電氣設(shè)計,取代了電氣手工繪圖。使用計算機軟件輔助設(shè)計可提高設(shè)計效率,減少重復工作,使得設(shè)計更加規(guī)范,便于優(yōu)化設(shè)計和設(shè)計成果的重復使用。同時,該應用也大幅減輕設(shè)計人員的工作負荷,減少人因差錯的數(shù)量。傳統(tǒng)的CAD 軟件通過繪制簡單圖形來完成電氣原理設(shè)計,未賦予電氣設(shè)備電氣屬性,后期在進行圖樣修改、設(shè)備命名、線號編制及物料統(tǒng)計時會帶給設(shè)計人員大量繁瑣的工作。隨著制造能力的發(fā)展和產(chǎn)品設(shè)計復雜程度的提高,計算機輔助工程(Computer Aided Engineering,CAE)逐漸取代了傳統(tǒng)的CAD 設(shè)計。CAE 軟件可以更好地滿足自動化設(shè)計的整體需求,輔助工程項目的整體實施,提供高效的電氣設(shè)計與管理。
Eplan 軟件作為較早被引入國內(nèi)的專業(yè)CAE 軟件,在專業(yè)設(shè)計平臺的標準化工作上體現(xiàn)很好的效果,涵蓋了大量標準的符號庫、部件庫和圖框等,作為基于數(shù)據(jù)庫的專業(yè)電氣設(shè)計軟件,對設(shè)計數(shù)據(jù)進行了統(tǒng)一化管理[1]。但是,面對不同使用者在設(shè)計過程中的特殊需求,Eplan 在功能上無法給予完全適合的響應,此時可對Eplan 進行二次開發(fā),增加相應合適的功能。輔助設(shè)計工具的開發(fā)可以極大地便利設(shè)計人員,提高設(shè)計效率和質(zhì)量。本文以幾種不同功能需求為例,分別針對自動畫圖、中斷點批量編輯、邏輯仿真交互、快速增加云狀圖標識和標簽標識表自動生成功能,有效地解決了大量重復性、機械性的作業(yè),借助計算機來規(guī)避設(shè)計人員可能由于疏忽造成的錯誤。
基于DCS 電氣設(shè)計人員日常設(shè)計過程中的反饋,自動畫圖、中斷點批量編輯、邏輯仿真交互、快速增加云狀圖標識和標簽標識表自動生成等功能,存在較為強烈的開發(fā)需求。
對于一些冗余性較強的系統(tǒng),其電氣圖紙中存在大量重復、相似的線路內(nèi)容。傳統(tǒng)的畫圖方法可以由設(shè)計人員在以其他類似已完成項目的圖紙基礎(chǔ)上進行修改,或手動插入頁宏后進行修改,但這樣工作量較大,設(shè)計人員更希望能夠通過自動化的方式,實現(xiàn)格式固定的圖紙的生成。應用二次開發(fā)的方式,可以更加高效地進行使用頁宏,實現(xiàn)自動畫圖、快速畫圖的目的[2]。
Eplan 軟件中自帶有表格式編輯的功能,能夠有效地提高設(shè)計效率。表格式編輯是Eplan 中針對批量元件的屬性進行修改時提供的快速編輯的功能,使用時可同時選取多個元件,如端子、連接點等在屬性列表中進行修改。表格式編輯與Excel 軟件同時使用,可充分利用Excel 軟件對于表格數(shù)據(jù)強大的處理能力,將處理好的數(shù)據(jù)直接粘貼回Eplan 中,實現(xiàn)快速填充。
Eplan 通過中斷點在同一頁面或不同頁面內(nèi)實現(xiàn)信號的連續(xù),在電氣設(shè)計中的應用十分普遍。某些頁面會通過大量中斷點的使用,來避免電氣線路的錯綜交叉。但Eplan對于中斷點沒有提供表格式批量編輯的功能,當涉及到大量中斷點修改時,設(shè)計人員的工作會尤為繁瑣,因此設(shè)計人員對中斷點進行批量表格式編輯存在迫切的開發(fā)需求。
電氣設(shè)計圖紙中包括大量硬件元器件搭接的硬邏輯子模塊。Eplan 軟件本身不具備仿真運算功能,這為驗證硬邏輯電路搭接是否正確帶來了困難。對于復雜的硬邏輯功能,設(shè)計人員難以在設(shè)計過程中及時進行驗證。輔助工具可以提供此方面的功能,通過與其他仿真軟件的耦合來實現(xiàn)快速邏輯仿真的需求。
按照工程設(shè)計要求,在進行電氣設(shè)計圖紙升版或變更時需要對修改部分用“云狀圖”進行標識。設(shè)計人員反映在進行云圖標識時工作量較大,需要根據(jù)修改部分選取合適的區(qū)域,增加方框后再修改屬性為云狀圖。若能夠開發(fā)快速云圖編輯工具高效地對待標識區(qū)域進行標記,可有效地減輕設(shè)計人員負擔。
在DCS 電氣設(shè)計的布置圖中,主要完成機柜及其內(nèi)部設(shè)備的布置,同時完成設(shè)備的標簽信息匯總。標簽信息主要對機柜內(nèi)部需要貼標的機箱、模塊等設(shè)備的標簽內(nèi)容進行詳細說明,用于確認機柜中各設(shè)備標簽詳細信息。標簽列表通常包含了標簽信息和設(shè)備描述,所有標簽按標簽編碼順序從上到下、從左到右依次排列。傳統(tǒng)的做法由設(shè)計人員根據(jù)安裝板上布置的設(shè)備,按順序手動填寫標簽信息,其步驟較為繁瑣。如能通過輔助工具讀取設(shè)備信息后,自動生成標簽匯總表,可以有效提高設(shè)計效率。
本文以上述需求為例,開發(fā)了一套電氣輔助設(shè)計工具集,覆蓋了上述功能需求,體現(xiàn)了Eplan 二次開發(fā)技術(shù)在電氣設(shè)計中的應用。
宏是經(jīng)常反復使用的部分電路或典型電路方案,是模塊化設(shè)計的基礎(chǔ)數(shù)據(jù)。在設(shè)計過程中,可以將經(jīng)常使用的電路保存為宏,在未來使用時直接插入宏文件。Eplan 中的宏包括符號宏、窗口宏和頁宏,符號宏通常為一個設(shè)備,窗口宏可以是一個簡單的電路或一個單線或多線設(shè)備,頁宏則包括了一頁或多頁的圖紙。宏的使用將設(shè)計模式由傳統(tǒng)的圖形化設(shè)計改進為模塊化設(shè)計,有效避免了繁重的重復性工作,節(jié)約了設(shè)計時間。
自動畫圖通過調(diào)用頁宏的方式實現(xiàn),其步驟如圖1 所示,包括:
1)讀取輸入信息,分析得到圖紙的頁數(shù)和選用的頁宏種類。
2)調(diào)用頁宏,將輸入信息填入頁宏中的對應元件。
3)刪除多余元件,添加缺少的元件。
4)逐頁實現(xiàn)圖紙的繪制。
其中,采用C#語言編寫的插入頁宏的代碼如下:
Insert i = new Insert();

圖1 自動畫圖工具實現(xiàn)流程Fig.1 Implementation process of automatic drawing tool
i.PageMacro(@"C:UsersPublicEPLAN 宏fan.emp",page, pj, true) ;
自動畫圖工具可實現(xiàn)在Eplan 環(huán)境下,根據(jù)提供的輸入信息自動調(diào)用不同類型的頁宏,生成的圖表滿足項目及規(guī)范要求,且支持批量處理功能。
本文實現(xiàn)了一種中斷點批量編輯的工具,對同頁面的中斷點進行批量表格式編輯,該工具的開發(fā)流程如圖2 所示。
該功能的入口方式采用右鍵點擊菜單的入口方式,借助Form 控件為框架制作人機界面對話框,供用戶操作,如圖3、圖4 所示。
實現(xiàn)流程及主要功能代碼如下:
1)獲取選擇元件集合代碼
SelectionSetss = new SelectionSet();
StorableObject[] SelectedFuns = ss.Selection;
2)篩選中斷點代碼
if (SelectedFuns[i].GetType().Name == "InterruptionPoint"){……}
結(jié)合用戶實際使用的情況,用戶要填入Form 上的表格控件中的內(nèi)容多是由MS Excel 軟件中復制而來的,如果在Form 控件上直接進行Ctrl+V 操作,會被Eplan 軟件誤認為用戶想要復制圖紙的內(nèi)容,而不是來自Excel 的內(nèi)容。考慮到Eplan 軟件的上述特性,故不能采用Ctrl+V 的方式粘貼,因而設(shè)置“粘貼”按鈕實現(xiàn)粘貼功能。
選擇待粘貼區(qū)域的左上角或選擇完整的粘貼區(qū)域,再點擊“粘貼”按鈕,此時剪切板上的內(nèi)容會粘貼到Form 上的表格控件上。用戶點擊“確認”按鈕后,遍歷表格控件的每行,獲取用戶輸入的中斷點信息,并回填Eplan 圖紙中。隨后清空中斷點信息,結(jié)束本次操作。

圖2 中斷點批量編輯工具實現(xiàn)流程Fig.2 Breakpoint batch editing tool implementation process

圖3 中斷點批量編輯功能入口Fig.3 Function entry for batch editing of breakpoints
Form 的三列中,“原標識符”不可修改,用于為用戶直觀地對應每個元件。新標識符默認填充原標識符相同的信息,可以修改。連接點描述信息對應中斷點的連接點描述屬性,該屬性也是常用的填充屬性之一。新標識符和連接點描述信息在點擊確認后,會填入Eplan。
借助Simulink 等仿真軟件或自研的仿真邏輯運算程序,可實現(xiàn)邏輯仿真交互功能。為了實現(xiàn)和仿真軟件的對接,應對Eplan 二次開發(fā)兩種功能,即導出硬邏輯信息的功能和與仿真程序數(shù)據(jù)交互的功能。
2.3.1 導出硬邏輯信息的功能
導出信息包括元部件信息、連接線信息,見表1、表2。
2.3.2 與仿真程序交互數(shù)據(jù)功能
利用進程間通信技術(shù),實現(xiàn)兩個軟件的數(shù)據(jù)交互。如圖5 所示,采用共享內(nèi)存的方法,二者共同維護共享內(nèi)存的數(shù)據(jù),實現(xiàn)輸入數(shù)據(jù)的賦值和輸出數(shù)據(jù)的讀取。

圖4 中斷點批量編輯界面Fig.4 Batch editing interface of breakpoints

圖5 仿真程序數(shù)據(jù)交互示意圖Fig.5 Simulation program data interaction diagram
圖6為Eplan 中通過繼電器搭接的邏輯“與”電路,與仿真程序交互后,可在圖中K1、K2 和300UM 元件旁直接看到邏輯運算結(jié)果。
本文實現(xiàn)了一種快捷工具可以對圖紙中修改部分進行云狀圖標識,流程圖如圖7 所示。
實現(xiàn)流程及部分代碼如下:
1)獲取選中元件集合
StorableObject[] SelectedFuns = ss.Selection;
2)遍歷各元件位置坐標
foreach (StorableObject f in SelectedFuns){……}
3)按類別獲取元件位置坐標
if (f.GetType().Name == "InterruptionPoint"){
x = ((InterruptionPoint)f).Location.X;

表1 元部件信息表Table 1 Component information table

表2 連線信息表Table 2 Connection information table

圖6 邏輯“與”電路Fig.6 The circuit of logical "and"
y = ((InterruptionPoint)f).Location.Y;
}
else if (f.GetType().Name == "Text"){
x = ((Text)f).Location.X;
y = ((Text)f).Location.Y;
}
else if (f.GetType().Name == "Function"){
x = ((Function)f).Location.X;
y = ((Function)f).Location.Y;
}
4)插入矩形,修改線型
Rectangle rec = new Rectangle();
rec.Create((Page)ss.Document);
Pen pen = new Pen();
pen.ColorId = Color.Id.Green;
pen.StyleId = 41;
rec.Pen = pen;

圖7 快速增加云狀圖工具實現(xiàn)流程Fig.7 Implementation process of rapidly adding cloud graph tool

圖8 標簽標識表自動生成實現(xiàn)流程Fig.8 Implementation process of automatic generation of label identification table

圖9 自動生成的標簽標識表Fig.9 Automatic label generation table
本文實現(xiàn)了一種快捷工具可以自動生成標簽標識表,流程圖如圖8 所示。
獲取布置圖中元件的名稱的代碼如下:
foreach (ArticleReference a in f.ArticleReferences){
string name = (a.IdentifyingName.Contains("-")) ?a.IdentifyingName.Split('-')[1]: a.IdentifyingName;
……}
該工具自動生成的標簽標識表如圖9 所示。
針對電氣設(shè)計軟件Eplan 的二次開發(fā)可以有效地解決軟件在實際項目中的不足。本文使用C#語言編寫了動態(tài)鏈接庫格式的函數(shù)庫,通過Eplan 中的API 接口加載運行,設(shè)計并實現(xiàn)了幾種輔助設(shè)計工具,針對DCS 系統(tǒng)電氣設(shè)計中的實際問題而開發(fā),幾種輔助工具的應用均取得了良好的效果。