張 旭,姚 璋,袁友汶,黃 鵬
(中國(guó)核動(dòng)力研究設(shè)計(jì)院 核反應(yīng)堆系統(tǒng)設(shè)計(jì)技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都 610213)
隨著電氣設(shè)計(jì)行業(yè)的發(fā)展,計(jì)算機(jī)軟件在現(xiàn)代電氣產(chǎn)品的設(shè)計(jì)制造過程中的作用越來越大。計(jì)算機(jī)輔助設(shè)計(jì)(Computer Aided Design,CAD)軟件最早應(yīng)用于機(jī)械設(shè)計(jì),后逐漸用于電氣設(shè)計(jì),取代了電氣手工繪圖。使用計(jì)算機(jī)軟件輔助設(shè)計(jì)可提高設(shè)計(jì)效率,減少重復(fù)工作,使得設(shè)計(jì)更加規(guī)范,便于優(yōu)化設(shè)計(jì)和設(shè)計(jì)成果的重復(fù)使用。同時(shí),該應(yīng)用也大幅減輕設(shè)計(jì)人員的工作負(fù)荷,減少人因差錯(cuò)的數(shù)量。傳統(tǒng)的CAD 軟件通過繪制簡(jiǎn)單圖形來完成電氣原理設(shè)計(jì),未賦予電氣設(shè)備電氣屬性,后期在進(jìn)行圖樣修改、設(shè)備命名、線號(hào)編制及物料統(tǒng)計(jì)時(shí)會(huì)帶給設(shè)計(jì)人員大量繁瑣的工作。隨著制造能力的發(fā)展和產(chǎn)品設(shè)計(jì)復(fù)雜程度的提高,計(jì)算機(jī)輔助工程(Computer Aided Engineering,CAE)逐漸取代了傳統(tǒng)的CAD 設(shè)計(jì)。CAE 軟件可以更好地滿足自動(dòng)化設(shè)計(jì)的整體需求,輔助工程項(xiàng)目的整體實(shí)施,提供高效的電氣設(shè)計(jì)與管理。
Eplan 軟件作為較早被引入國(guó)內(nèi)的專業(yè)CAE 軟件,在專業(yè)設(shè)計(jì)平臺(tái)的標(biāo)準(zhǔn)化工作上體現(xiàn)很好的效果,涵蓋了大量標(biāo)準(zhǔn)的符號(hào)庫(kù)、部件庫(kù)和圖框等,作為基于數(shù)據(jù)庫(kù)的專業(yè)電氣設(shè)計(jì)軟件,對(duì)設(shè)計(jì)數(shù)據(jù)進(jìn)行了統(tǒng)一化管理[1]。但是,面對(duì)不同使用者在設(shè)計(jì)過程中的特殊需求,Eplan 在功能上無(wú)法給予完全適合的響應(yīng),此時(shí)可對(duì)Eplan 進(jìn)行二次開發(fā),增加相應(yīng)合適的功能。輔助設(shè)計(jì)工具的開發(fā)可以極大地便利設(shè)計(jì)人員,提高設(shè)計(jì)效率和質(zhì)量。本文以幾種不同功能需求為例,分別針對(duì)自動(dòng)畫圖、中斷點(diǎn)批量編輯、邏輯仿真交互、快速增加云狀圖標(biāo)識(shí)和標(biāo)簽標(biāo)識(shí)表自動(dòng)生成功能,有效地解決了大量重復(fù)性、機(jī)械性的作業(yè),借助計(jì)算機(jī)來規(guī)避設(shè)計(jì)人員可能由于疏忽造成的錯(cuò)誤。
基于DCS 電氣設(shè)計(jì)人員日常設(shè)計(jì)過程中的反饋,自動(dòng)畫圖、中斷點(diǎn)批量編輯、邏輯仿真交互、快速增加云狀圖標(biāo)識(shí)和標(biāo)簽標(biāo)識(shí)表自動(dòng)生成等功能,存在較為強(qiáng)烈的開發(fā)需求。
對(duì)于一些冗余性較強(qiáng)的系統(tǒng),其電氣圖紙中存在大量重復(fù)、相似的線路內(nèi)容。傳統(tǒng)的畫圖方法可以由設(shè)計(jì)人員在以其他類似已完成項(xiàng)目的圖紙基礎(chǔ)上進(jìn)行修改,或手動(dòng)插入頁(yè)宏后進(jìn)行修改,但這樣工作量較大,設(shè)計(jì)人員更希望能夠通過自動(dòng)化的方式,實(shí)現(xiàn)格式固定的圖紙的生成。應(yīng)用二次開發(fā)的方式,可以更加高效地進(jìn)行使用頁(yè)宏,實(shí)現(xiàn)自動(dòng)畫圖、快速畫圖的目的[2]。
Eplan 軟件中自帶有表格式編輯的功能,能夠有效地提高設(shè)計(jì)效率。表格式編輯是Eplan 中針對(duì)批量元件的屬性進(jìn)行修改時(shí)提供的快速編輯的功能,使用時(shí)可同時(shí)選取多個(gè)元件,如端子、連接點(diǎn)等在屬性列表中進(jìn)行修改。表格式編輯與Excel 軟件同時(shí)使用,可充分利用Excel 軟件對(duì)于表格數(shù)據(jù)強(qiáng)大的處理能力,將處理好的數(shù)據(jù)直接粘貼回Eplan 中,實(shí)現(xiàn)快速填充。
Eplan 通過中斷點(diǎn)在同一頁(yè)面或不同頁(yè)面內(nèi)實(shí)現(xiàn)信號(hào)的連續(xù),在電氣設(shè)計(jì)中的應(yīng)用十分普遍。某些頁(yè)面會(huì)通過大量中斷點(diǎn)的使用,來避免電氣線路的錯(cuò)綜交叉。但Eplan對(duì)于中斷點(diǎn)沒有提供表格式批量編輯的功能,當(dāng)涉及到大量中斷點(diǎn)修改時(shí),設(shè)計(jì)人員的工作會(huì)尤為繁瑣,因此設(shè)計(jì)人員對(duì)中斷點(diǎn)進(jìn)行批量表格式編輯存在迫切的開發(fā)需求。
電氣設(shè)計(jì)圖紙中包括大量硬件元器件搭接的硬邏輯子模塊。Eplan 軟件本身不具備仿真運(yùn)算功能,這為驗(yàn)證硬邏輯電路搭接是否正確帶來了困難。對(duì)于復(fù)雜的硬邏輯功能,設(shè)計(jì)人員難以在設(shè)計(jì)過程中及時(shí)進(jìn)行驗(yàn)證。輔助工具可以提供此方面的功能,通過與其他仿真軟件的耦合來實(shí)現(xiàn)快速邏輯仿真的需求。
按照工程設(shè)計(jì)要求,在進(jìn)行電氣設(shè)計(jì)圖紙升版或變更時(shí)需要對(duì)修改部分用“云狀圖”進(jìn)行標(biāo)識(shí)。設(shè)計(jì)人員反映在進(jìn)行云圖標(biāo)識(shí)時(shí)工作量較大,需要根據(jù)修改部分選取合適的區(qū)域,增加方框后再修改屬性為云狀圖。若能夠開發(fā)快速云圖編輯工具高效地對(duì)待標(biāo)識(shí)區(qū)域進(jìn)行標(biāo)記,可有效地減輕設(shè)計(jì)人員負(fù)擔(dān)。
在DCS 電氣設(shè)計(jì)的布置圖中,主要完成機(jī)柜及其內(nèi)部設(shè)備的布置,同時(shí)完成設(shè)備的標(biāo)簽信息匯總。標(biāo)簽信息主要對(duì)機(jī)柜內(nèi)部需要貼標(biāo)的機(jī)箱、模塊等設(shè)備的標(biāo)簽內(nèi)容進(jìn)行詳細(xì)說明,用于確認(rèn)機(jī)柜中各設(shè)備標(biāo)簽詳細(xì)信息。標(biāo)簽列表通常包含了標(biāo)簽信息和設(shè)備描述,所有標(biāo)簽按標(biāo)簽編碼順序從上到下、從左到右依次排列。傳統(tǒng)的做法由設(shè)計(jì)人員根據(jù)安裝板上布置的設(shè)備,按順序手動(dòng)填寫標(biāo)簽信息,其步驟較為繁瑣。如能通過輔助工具讀取設(shè)備信息后,自動(dòng)生成標(biāo)簽匯總表,可以有效提高設(shè)計(jì)效率。
本文以上述需求為例,開發(fā)了一套電氣輔助設(shè)計(jì)工具集,覆蓋了上述功能需求,體現(xiàn)了Eplan 二次開發(fā)技術(shù)在電氣設(shè)計(jì)中的應(yīng)用。
宏是經(jīng)常反復(fù)使用的部分電路或典型電路方案,是模塊化設(shè)計(jì)的基礎(chǔ)數(shù)據(jù)。在設(shè)計(jì)過程中,可以將經(jīng)常使用的電路保存為宏,在未來使用時(shí)直接插入宏文件。Eplan 中的宏包括符號(hào)宏、窗口宏和頁(yè)宏,符號(hào)宏通常為一個(gè)設(shè)備,窗口宏可以是一個(gè)簡(jiǎn)單的電路或一個(gè)單線或多線設(shè)備,頁(yè)宏則包括了一頁(yè)或多頁(yè)的圖紙。宏的使用將設(shè)計(jì)模式由傳統(tǒng)的圖形化設(shè)計(jì)改進(jìn)為模塊化設(shè)計(jì),有效避免了繁重的重復(fù)性工作,節(jié)約了設(shè)計(jì)時(shí)間。
自動(dòng)畫圖通過調(diào)用頁(yè)宏的方式實(shí)現(xiàn),其步驟如圖1 所示,包括:
1)讀取輸入信息,分析得到圖紙的頁(yè)數(shù)和選用的頁(yè)宏種類。
2)調(diào)用頁(yè)宏,將輸入信息填入頁(yè)宏中的對(duì)應(yīng)元件。
3)刪除多余元件,添加缺少的元件。
4)逐頁(yè)實(shí)現(xiàn)圖紙的繪制。
其中,采用C#語(yǔ)言編寫的插入頁(yè)宏的代碼如下:
Insert i = new Insert();
圖1 自動(dòng)畫圖工具實(shí)現(xiàn)流程Fig.1 Implementation process of automatic drawing tool
i.PageMacro(@"C:UsersPublicEPLAN 宏fan.emp",page, pj, true) ;
自動(dòng)畫圖工具可實(shí)現(xiàn)在Eplan 環(huán)境下,根據(jù)提供的輸入信息自動(dòng)調(diào)用不同類型的頁(yè)宏,生成的圖表滿足項(xiàng)目及規(guī)范要求,且支持批量處理功能。
本文實(shí)現(xiàn)了一種中斷點(diǎn)批量編輯的工具,對(duì)同頁(yè)面的中斷點(diǎn)進(jìn)行批量表格式編輯,該工具的開發(fā)流程如圖2 所示。
該功能的入口方式采用右鍵點(diǎn)擊菜單的入口方式,借助Form 控件為框架制作人機(jī)界面對(duì)話框,供用戶操作,如圖3、圖4 所示。
實(shí)現(xiàn)流程及主要功能代碼如下:
1)獲取選擇元件集合代碼
SelectionSetss = new SelectionSet();
StorableObject[] SelectedFuns = ss.Selection;
2)篩選中斷點(diǎn)代碼
if (SelectedFuns[i].GetType().Name == "InterruptionPoint"){……}
結(jié)合用戶實(shí)際使用的情況,用戶要填入Form 上的表格控件中的內(nèi)容多是由MS Excel 軟件中復(fù)制而來的,如果在Form 控件上直接進(jìn)行Ctrl+V 操作,會(huì)被Eplan 軟件誤認(rèn)為用戶想要復(fù)制圖紙的內(nèi)容,而不是來自Excel 的內(nèi)容??紤]到Eplan 軟件的上述特性,故不能采用Ctrl+V 的方式粘貼,因而設(shè)置“粘貼”按鈕實(shí)現(xiàn)粘貼功能。
選擇待粘貼區(qū)域的左上角或選擇完整的粘貼區(qū)域,再點(diǎn)擊“粘貼”按鈕,此時(shí)剪切板上的內(nèi)容會(huì)粘貼到Form 上的表格控件上。用戶點(diǎn)擊“確認(rèn)”按鈕后,遍歷表格控件的每行,獲取用戶輸入的中斷點(diǎn)信息,并回填Eplan 圖紙中。隨后清空中斷點(diǎn)信息,結(jié)束本次操作。
圖2 中斷點(diǎn)批量編輯工具實(shí)現(xiàn)流程Fig.2 Breakpoint batch editing tool implementation process
圖3 中斷點(diǎn)批量編輯功能入口Fig.3 Function entry for batch editing of breakpoints
Form 的三列中,“原標(biāo)識(shí)符”不可修改,用于為用戶直觀地對(duì)應(yīng)每個(gè)元件。新標(biāo)識(shí)符默認(rèn)填充原標(biāo)識(shí)符相同的信息,可以修改。連接點(diǎn)描述信息對(duì)應(yīng)中斷點(diǎn)的連接點(diǎn)描述屬性,該屬性也是常用的填充屬性之一。新標(biāo)識(shí)符和連接點(diǎn)描述信息在點(diǎn)擊確認(rèn)后,會(huì)填入Eplan。
借助Simulink 等仿真軟件或自研的仿真邏輯運(yùn)算程序,可實(shí)現(xiàn)邏輯仿真交互功能。為了實(shí)現(xiàn)和仿真軟件的對(duì)接,應(yīng)對(duì)Eplan 二次開發(fā)兩種功能,即導(dǎo)出硬邏輯信息的功能和與仿真程序數(shù)據(jù)交互的功能。
2.3.1 導(dǎo)出硬邏輯信息的功能
導(dǎo)出信息包括元部件信息、連接線信息,見表1、表2。
2.3.2 與仿真程序交互數(shù)據(jù)功能
利用進(jìn)程間通信技術(shù),實(shí)現(xiàn)兩個(gè)軟件的數(shù)據(jù)交互。如圖5 所示,采用共享內(nèi)存的方法,二者共同維護(hù)共享內(nèi)存的數(shù)據(jù),實(shí)現(xiàn)輸入數(shù)據(jù)的賦值和輸出數(shù)據(jù)的讀取。
圖4 中斷點(diǎn)批量編輯界面Fig.4 Batch editing interface of breakpoints
圖5 仿真程序數(shù)據(jù)交互示意圖Fig.5 Simulation program data interaction diagram
圖6為Eplan 中通過繼電器搭接的邏輯“與”電路,與仿真程序交互后,可在圖中K1、K2 和300UM 元件旁直接看到邏輯運(yùn)算結(jié)果。
本文實(shí)現(xiàn)了一種快捷工具可以對(duì)圖紙中修改部分進(jìn)行云狀圖標(biāo)識(shí),流程圖如圖7 所示。
實(shí)現(xiàn)流程及部分代碼如下:
1)獲取選中元件集合
StorableObject[] SelectedFuns = ss.Selection;
2)遍歷各元件位置坐標(biāo)
foreach (StorableObject f in SelectedFuns){……}
3)按類別獲取元件位置坐標(biāo)
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 快速增加云狀圖工具實(shí)現(xiàn)流程Fig.7 Implementation process of rapidly adding cloud graph tool
圖8 標(biāo)簽標(biāo)識(shí)表自動(dòng)生成實(shí)現(xiàn)流程Fig.8 Implementation process of automatic generation of label identification table
圖9 自動(dòng)生成的標(biāo)簽標(biāo)識(shí)表Fig.9 Automatic label generation table
本文實(shí)現(xiàn)了一種快捷工具可以自動(dòng)生成標(biāo)簽標(biāo)識(shí)表,流程圖如圖8 所示。
獲取布置圖中元件的名稱的代碼如下:
foreach (ArticleReference a in f.ArticleReferences){
string name = (a.IdentifyingName.Contains("-")) ?a.IdentifyingName.Split('-')[1]: a.IdentifyingName;
……}
該工具自動(dòng)生成的標(biāo)簽標(biāo)識(shí)表如圖9 所示。
針對(duì)電氣設(shè)計(jì)軟件Eplan 的二次開發(fā)可以有效地解決軟件在實(shí)際項(xiàng)目中的不足。本文使用C#語(yǔ)言編寫了動(dòng)態(tài)鏈接庫(kù)格式的函數(shù)庫(kù),通過Eplan 中的API 接口加載運(yùn)行,設(shè)計(jì)并實(shí)現(xiàn)了幾種輔助設(shè)計(jì)工具,針對(duì)DCS 系統(tǒng)電氣設(shè)計(jì)中的實(shí)際問題而開發(fā),幾種輔助工具的應(yīng)用均取得了良好的效果。