AutoCAD二次開發在電力系統運行模擬輸出電站工作位置圖中
【摘 要】 將Visual Basic語言在AutoCAD上的二次開發應用于電力系統運行模擬繪制電站工作位置圖。該方法在對系統進行運行模擬,計算出各電站在系統逐月典型日24h負荷曲線上的工作位置和工作容量后,通過編寫接口程序啟動AutoCAD軟件,根據已得出的工作位置和工作容量,啟動AutoCAD繪制出電站工作位置圖。該方法采用VB可視化界面對AutoCAD進行操作,使繪圖更便捷,效率更高。實例計算表明了該方法的有效性和適用性。
關鍵詞 電力系統運行模擬 電站工作位置圖 Visual Basic語言 二次開發
1 引言
隨著國民經濟的發展,電力系統用戶對電力和電能的需要不斷增加,必須新建電源。可是應該在何時、何地、建何種電廠、規模多大才最為經濟合理,這便是電源規劃所要解決的問題。規劃的合理與否,直接影響系統運行的可靠性、經濟性、電能質量,網絡結構和今后的發展。因此電源規劃是電力系統電源布局的戰略決策,在電力系統規劃中處于十分重要的地位。而電力系統運行模擬是對電力系統規劃設計中常用的電力電量平衡分析的發展,是電力系統規劃設計中的一項經常而重要的工作。電力系統運行模擬的基本任務是:從電力系統整體的實際出發,充分考慮電力系統中各類電站(包括水電、火電、核電、抽水蓄能以及調峰電站等)的特點,充分利用水電等“限能電站”(這里的所謂限能電站是指那些發電用能有一定限制的電站)的容量和電量,模擬系統全年逐月的運行方式,以校驗系統的裝機容量是否滿足系統負荷的需求,并確定各電站在系統逐月典型日24h負荷曲線上的工作位置和工作容量。為了從圖形上能夠清楚地看出各類型電站所處的工作位置以及最關心的電站(即指定電站)工作位置以利于對電站的運行和控制,需要將系統逐月典型日24h負荷曲線通過軟件繪制出來。并將各類型電站的工作位置在圖形上面用不同的圖例區別。而AutoCAD軟件是一種得到普遍應用的工程制圖軟件,具有很多優越性。為了把AutoCAD的二次開發應用到電力系統運行模擬輸出電站工作位置圖中,需要首先編寫接口程序啟動AutoCAD軟件,然后進行圖形繪制工作。
為了達到上述目的,本文著重討論在Windows操作平臺上,利用基于Visual Basic語言的AutoCAD二次開發將電力系統運行模擬后在日負荷曲線上確定的各水電、火電、核電、抽水蓄能以及調峰電站等的工作位置(即各個電站在日負荷曲線上的位置上、下限)通過接口程序繪制成電站工作位置圖。
2 ViSual Basic與AutoCAD概述
Visual Basic(簡稱VB)是美國微軟(Microsoft)公司推出的Windows環境下的軟件開發工具,它是一種可視化編程軟件。在VB中引入了控件的概念,如各種各樣的按鈕、文本框、復選框等等。VB把這些控件模式化,并且每個控件都由若干屬性來控制其外觀、工作方法。這樣,采用VB軟件無需編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的控件加到屏幕上。VB提供動態數據交換編程技術,可以在應用程序中實現與其他應用程序之間進行通信的功能,例如本文要討論的VB和AutoCAD之間的接口通信。VB還具有很強的數據庫管理功能,不僅可以管理MS Access格式數據庫,還能訪問其他外部數據庫。使用VB可以感受到Windows帶來的新技術、新概念和新的開發方法,因為它是目前眾多Windows軟件開發工具中效率最高的一個,可以既快又簡單地開發Windows應用軟件。
AutoCAD是美國Autodesk公司開發的人機對話式的圖形軟件,它被用來進行計算機輔助設計與繪圖,并且在機械設計、土木建筑、電子線路、動畫制作、城市規劃等領域得到廣泛的應用。AutoCAD軟件是一種功能很強、在微機中應用比較廣泛的繪圖軟件。它提供了豐富的作圖功能,操作方便,用戶通過操作能迅速、準確地繪出圖形;它具有很強的手工繪圖無法實現的圖形編輯功能,能使用戶對現有圖形進行編輯。它還有編程功能,利用內部嵌有的Auto Lisp語言使繪圖工作程序化、自動化;它還有執行DOS命令的接口、與高級語言的接口(例如VB語言),因而處理圖形的功能大大增強。
3 應用ActiveX Automation技術進行AutoCAD的二次開發
眾所周知,AutoCAD是一種極其靈活的應用系統,用戶可以通過編程的方式對其進行定制。在以往的AutoCAD系統開發中,最常用的是AutoLisp和ADS,但AutoLisp不如編程語言方便,在開發較大項目時力不從心,而ADS雖由功能強大的C語言編制,但較為復雜,不適應當前可視化編程的需要。幸運的是,在最新推出的AutoCAD r14版本中,Autodesk公司對AutoCAD本身加入了ActiveX自動化服務功能(ActiveX Automation Server Capabilities),使得用戶可以通過可視化編程工具,如VB、Delphi等對AutoCAD進行系統開發,極大地提高了工作效率。
4 程序的工作步驟和模塊設計
4.1 工作步驟
圖1給出了繪制電力系統運行模擬電站工作位置圖的程序工作步驟。
本程序采用VB6.0語言作為開發工具,因為這種工具簡單易學,編程界面友好,而且還比較容易開發出基于Windows的高質量軟件。軟件界面采用菜單式結構設計,且具有操作方便的工具條和中文對話功能,操作簡單,結合該語言對AutoCAD進行二次開發,通過編寫接口程序實現數據對AutoCAD的圖形輸出,提高了數據的直觀性。本文著重討論二次開發繪制電站工作位置圖部分的開發和實現。主要分三大模塊,即數據輸入模塊、軟件接口模塊、圖形繪制模塊。
關鍵詞 電力系統運行模擬 電站工作位置圖 Visual Basic語言 二次開發
1 引言
隨著國民經濟的發展,電力系統用戶對電力和電能的需要不斷增加,必須新建電源。可是應該在何時、何地、建何種電廠、規模多大才最為經濟合理,這便是電源規劃所要解決的問題。規劃的合理與否,直接影響系統運行的可靠性、經濟性、電能質量,網絡結構和今后的發展。因此電源規劃是電力系統電源布局的戰略決策,在電力系統規劃中處于十分重要的地位。而電力系統運行模擬是對電力系統規劃設計中常用的電力電量平衡分析的發展,是電力系統規劃設計中的一項經常而重要的工作。電力系統運行模擬的基本任務是:從電力系統整體的實際出發,充分考慮電力系統中各類電站(包括水電、火電、核電、抽水蓄能以及調峰電站等)的特點,充分利用水電等“限能電站”(這里的所謂限能電站是指那些發電用能有一定限制的電站)的容量和電量,模擬系統全年逐月的運行方式,以校驗系統的裝機容量是否滿足系統負荷的需求,并確定各電站在系統逐月典型日24h負荷曲線上的工作位置和工作容量。為了從圖形上能夠清楚地看出各類型電站所處的工作位置以及最關心的電站(即指定電站)工作位置以利于對電站的運行和控制,需要將系統逐月典型日24h負荷曲線通過軟件繪制出來。并將各類型電站的工作位置在圖形上面用不同的圖例區別。而AutoCAD軟件是一種得到普遍應用的工程制圖軟件,具有很多優越性。為了把AutoCAD的二次開發應用到電力系統運行模擬輸出電站工作位置圖中,需要首先編寫接口程序啟動AutoCAD軟件,然后進行圖形繪制工作。
為了達到上述目的,本文著重討論在Windows操作平臺上,利用基于Visual Basic語言的AutoCAD二次開發將電力系統運行模擬后在日負荷曲線上確定的各水電、火電、核電、抽水蓄能以及調峰電站等的工作位置(即各個電站在日負荷曲線上的位置上、下限)通過接口程序繪制成電站工作位置圖。
2 ViSual Basic與AutoCAD概述
Visual Basic(簡稱VB)是美國微軟(Microsoft)公司推出的Windows環境下的軟件開發工具,它是一種可視化編程軟件。在VB中引入了控件的概念,如各種各樣的按鈕、文本框、復選框等等。VB把這些控件模式化,并且每個控件都由若干屬性來控制其外觀、工作方法。這樣,采用VB軟件無需編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的控件加到屏幕上。VB提供動態數據交換編程技術,可以在應用程序中實現與其他應用程序之間進行通信的功能,例如本文要討論的VB和AutoCAD之間的接口通信。VB還具有很強的數據庫管理功能,不僅可以管理MS Access格式數據庫,還能訪問其他外部數據庫。使用VB可以感受到Windows帶來的新技術、新概念和新的開發方法,因為它是目前眾多Windows軟件開發工具中效率最高的一個,可以既快又簡單地開發Windows應用軟件。
AutoCAD是美國Autodesk公司開發的人機對話式的圖形軟件,它被用來進行計算機輔助設計與繪圖,并且在機械設計、土木建筑、電子線路、動畫制作、城市規劃等領域得到廣泛的應用。AutoCAD軟件是一種功能很強、在微機中應用比較廣泛的繪圖軟件。它提供了豐富的作圖功能,操作方便,用戶通過操作能迅速、準確地繪出圖形;它具有很強的手工繪圖無法實現的圖形編輯功能,能使用戶對現有圖形進行編輯。它還有編程功能,利用內部嵌有的Auto Lisp語言使繪圖工作程序化、自動化;它還有執行DOS命令的接口、與高級語言的接口(例如VB語言),因而處理圖形的功能大大增強。
3 應用ActiveX Automation技術進行AutoCAD的二次開發
眾所周知,AutoCAD是一種極其靈活的應用系統,用戶可以通過編程的方式對其進行定制。在以往的AutoCAD系統開發中,最常用的是AutoLisp和ADS,但AutoLisp不如編程語言方便,在開發較大項目時力不從心,而ADS雖由功能強大的C語言編制,但較為復雜,不適應當前可視化編程的需要。幸運的是,在最新推出的AutoCAD r14版本中,Autodesk公司對AutoCAD本身加入了ActiveX自動化服務功能(ActiveX Automation Server Capabilities),使得用戶可以通過可視化編程工具,如VB、Delphi等對AutoCAD進行系統開發,極大地提高了工作效率。
4 程序的工作步驟和模塊設計
4.1 工作步驟
圖1給出了繪制電力系統運行模擬電站工作位置圖的程序工作步驟。
本程序采用VB6.0語言作為開發工具,因為這種工具簡單易學,編程界面友好,而且還比較容易開發出基于Windows的高質量軟件。軟件界面采用菜單式結構設計,且具有操作方便的工具條和中文對話功能,操作簡單,結合該語言對AutoCAD進行二次開發,通過編寫接口程序實現數據對AutoCAD的圖形輸出,提高了數據的直觀性。本文著重討論二次開發繪制電站工作位置圖部分的開發和實現。主要分三大模塊,即數據輸入模塊、軟件接口模塊、圖形繪制模塊。
4.2 各模塊功能和實現方法
(1)數據輸入模塊 該模塊的制作參見文獻。數據輸入模塊窗口的主界面如圖2所示。該模塊需要選擇一些選項例如:分區、月份、圖名、備注、單位、彩色,并可以選擇查看用戶最關心的電站工作位置,即指定電站,程序設置最多指定5個電站,其中每種電站最多指定3個,各類電站和各個指定電站都用不同的圖例進行區分,以便于觀察,選擇“確定”按鈕后程序就根據運行模擬后的電站工作位置數據自動啟動AutoCAD軟件,并將圖形繪出,此部分內容參見文獻。若需要打印成紙張形式也可由Windows默認打印機打印輸出屏幕上模擬顯示的電站工作位置圖。
(2)軟件接口模塊 編寫接口程序即實現在VB中連接AutoCAD。具體步驟如下:
1)啟動VB,引用AutoCAD類型庫。從“工程”菜單中選擇“引用”選項,啟動“引用”對話框。在“引用”對話框中,選擇AutoCAD類型庫,然后單擊“確定”。
2)定義模塊級變量AutoCAD應用程序(acadApp)和當前的文檔(acadDoc)。如果AutoCAD正在運行,使用GetObject函數將檢索AutoCADApplication對象。如果AutoCAD沒有運行,使用CreateObject函數試圖創建一個AutoCAD Application對象。如果創建成功,會啟動AutoCAD;如果失敗,則會發生錯誤。如果同時運行有多個AutoCAD任務,GetObject函數會返回Windows運行對象表中的第一個AutoCAD實例。如果要顯示AutoCAD圖形窗口,需要將AutoCAD應用程序的Visible特性設置為TRUE,否則設置為FALSE,在本程序開始階段把AutoCAD應用程序的Visible特性設置為FALSE,即只啟動AutoCAD而不顯示出來,在繪圖完畢后再將AutoCAD應用程序的Visible特性設置為TRUE,即顯示圖形,目的是避免過多地占用計算機的內存。接口程序示例如下:
Dim acadApp As AcadApplication
Dim acadDoc as AcadDocument
Sub ConnectToAcad ()
On Error Resume Next
Set acadApp=GetObject (,” AutoCAD.Application”)
If Err Then
Err. Clear
Set acadApp=CreateObject (” AutoCAD.Application”)
If Err Then End
End If
acadApp. Visible=FALSE
Set acadDoc=acadApp.ActiveDocument
End Sub
(3)圖形繪制模塊 在VB與AutoCAD的二次開發中,進行圖形繪制即需要對AutoCAD的對象模型(AutoCAD Object Model)進行操作。對象本身包含自己的方法和屬性。通過方法可以實現對象的一些操作,而對象狀態信息的收集或改變則是通過屬性完成的。例如,線段是AutoCAD中的一個對象,它的屬性可以是線形、起始點坐標、所在層等性質,方法則有復制、鏡像等操作。Model Space是當前圖形文件中圖形實體,如線段、圓、多義線等的集合,每個實體即是一個對象,可通過屬性和方法改變實體或生成新實體,可以通過該對象實現圖形的繪制工作。例如,在定義了兩點dot1和dot2以及線段lineObj并給定這兩點的位置坐標之后可以繪制出一條線段,基本編程語句為:
Set lineObj=acadapp.ActiveDocument.ModelSpace.AddLine(dot1,dot2)
坐標系是由一條條線段構成的,通過對線段兩個端點坐標的設置可以繪出所需位置的線段,本文基于這個思想實現了對坐標子程序的編寫。
而安排各類電站在圖形中的工作位置(即填充陰影)則也是對AutoCAD的對象模型進行操作。陰影為用圖案填充圖形中的指定區域。當創建陰影時,最先操作不是指定填充的區域。首先用戶必須創建Hatch對象,做完這一步后,用戶可指定外部的封閉回路,也就是陰影的最外邊界。所以首先定義矩形邊界對象outerLoopobj(1)~outerLoopobj(4)和陰影對象hatchobj以及矩形邊角的四個點pointl~point4并給定這四個點的位置坐標,再根據四個點來確定需填充陰影矩形的四條邊界線段,然后根據不同類型電站對矩形填充不同的陰影圖案(通過設置陰影對象hatchobj的屬性值實現),基本編程語句為:
Set outerLoop (1) = acadapp.ActiveDocument
ModelS-pace.AddLine(point1, point2)
Set outerLoop (2) = acadapp.ActiveDocument
ModelS-pace.AddLine (point2, point3)
Set outerLoop (3) = acadapp.ActiveDocument
ModelS-pace.AddLine (point3,point4)
Set outerLoop (4) = acadapp.ActiveDocument
ModelS-pace.AddLine (point4,pointl)
hatchobj.AppendOuterLoop (outerLoop)
hatchobj.PatternSpace=0.5
hatchobj.PatternAngle=0
hatchobj.Linetype=“Hidden2”
hatchobj.LinetypeScale=0.2
hatchobj.Evaluate
acadapp. ActiveDocument. Regen True
根據這個思想可以依次將各類型電站(例如:核電站、水電站、火電站等等,指定電站也可采用同樣方法)在日負荷曲線上用不同陰影圖案填充,這樣就基本完成了圖形繪制工作。
5 算例分析
本文以2010年某地區枯水年為例,利用本文方法對其進行運行模擬并輸出電站工作位置圖。整個地區水電站有58臺,火電站有74臺,核電站有5臺,調峰電站有13臺,抽水蓄能電站有10臺,其中選取某省6月份進行模擬計算輸出電站工作位置圖。
最終打印輸出AutoCAD圖形如圖3所示,部分電站數據列于下表,火電和指定電站數據未列出,其中虛線為分區潮流。
通過算例分析計算可知,在對基本數據運行模擬后,本文方法能夠迅速繪制出坐標系統(包括橫坐標、縱坐標、刻度以及標注)、系統典型日負荷曲線、各電站工作位置區域和圖例,負荷曲線對電力系統的規劃設計和運行十分有用,電力系統的計劃生產主要是建立在預測的負荷曲線基礎上的。繪制電站工作位置圖的作用也很明顯,從中能夠清楚地看出各類型負荷所處的工作位置以及最關心的電站(即指定電站)工作位置,以利于電站的運行和控制。
6 結束語
本文將VB語言在AutoCAD上的二次開發應用于電力系統運行模擬繪制電站工作位置圖。該方法用V B語言編程,軟件界面采用菜單式結構設計,且具有操作方便的工具條和中文對話功能,操作簡單,結合該語言對AutoCAD進行二次開發,通過編寫接口程序實現數據對AutoCAD的圖形輸出,提高了數據的直觀性,使繪圖更便捷,效率更高。該方法在繪圖完畢后生成dwg格式文件,它是AutoCAD圖形文件,具有很強的通用性,能方便地進行工程制圖、打印等操作,而且該方法所繪制的圖形效果優于用VB軟件直接繪圖。在圖形上能夠清楚地看出各類型負荷所處的工作位置以及最關心的電站(即指定電站)工作位置,以利于電站的運行和控制。實例計算表明了該方法的有效性。
文章版權歸西部工控xbgk所有,未經許可不得轉載。