国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Excel中VBA實(shí)現(xiàn)配電系統(tǒng)備自投控制器代碼自動(dòng)生成軟件開發(fā)

2022-03-31 09:35郭書英秦兆杰胡雪松李世杰趙立勝
關(guān)鍵詞:饋線代碼編程

郭書英,秦兆杰,胡雪松,李世杰,趙立勝

(河北電力裝備有限公司,河北 邯鄲 056000)

0 引言

在一些重要的用電場合,配電系統(tǒng)須配備兩路進(jìn)線電源,并且要求進(jìn)線電源控制器具有自動(dòng)投切功能和數(shù)據(jù)采集、處理及傳輸功能,此進(jìn)線電源控制器即備自投控制器。備自投控制器一般通過控制兩段進(jìn)線斷路器及母聯(lián)斷路器實(shí)現(xiàn)電源的自動(dòng)投切,同時(shí)控制器還擔(dān)負(fù)著采集并處理兩段內(nèi)的饋線柜各饋線回路電量數(shù)據(jù)的任務(wù)[1]。

在典型配電系統(tǒng)中,一般每段配備有18臺(tái)柜子,每個(gè)柜子包含了9個(gè)饋線回路,每個(gè)饋線回路的電量數(shù)據(jù)包括三相電壓、三相電流、有功功率、無功功率、頻率、正向有功電能、正向無功電能等共計(jì)十余項(xiàng),以此計(jì)算,每個(gè)配電系統(tǒng)兩段母線共計(jì)會(huì)有三千五百余數(shù)據(jù)需要采集處理,以地鐵為例,全線所有配電場所用電累積會(huì)有六萬余數(shù)據(jù)需要采集處理。為實(shí)現(xiàn)控制功能和數(shù)據(jù)的批量處理功能,需要為此編寫大量程序。然而通過對控制器程序的詳細(xì)梳理,歸納并總結(jié)出控制器中的程序數(shù)量雖大,但有規(guī)律可循,這些完成特定功能的程序中用到了大量重復(fù)性語句,而重復(fù)性語句則可以通過設(shè)計(jì)一款簡易的軟件,編程人員只需根據(jù)配電系統(tǒng)圖在軟件接口界面對應(yīng)位置填入相關(guān)數(shù)據(jù),即可生產(chǎn)完成代碼的自動(dòng)生成。在非常有效地節(jié)省編程人員的工作量、提高編程效率的同時(shí),使控制器程序的編譯通過率也大大提高,程序的運(yùn)行效果更加完美。由軟件生成的代碼嚴(yán)格遵守編程相關(guān)規(guī)范,同時(shí)規(guī)范的程序代碼也會(huì)對后續(xù)的維護(hù)和升級提供良好的基礎(chǔ)[2]。

1 軟件開發(fā)分析

本軟件著力解決控制器開發(fā)人員對于編程過程中重復(fù)性語句的編寫,針對數(shù)據(jù)采集及處理功能塊中的程序語句編寫及運(yùn)行流程進(jìn)行梳理、歸納、總結(jié),對程序架構(gòu)做充分優(yōu)化,軟件的需求如下:

(1)要有輸入?yún)?shù)的界面,該界面可以允許使用者根據(jù)配電系統(tǒng)中饋線回路數(shù)量的不同,輸入不同參數(shù)的接口,界面要簡單易懂。

(2)具備根據(jù)配電系統(tǒng)中饋線回路的數(shù)據(jù)采集和處理的數(shù)量不同,自動(dòng)生成對應(yīng)功能模塊程序代碼的功能。

(3)提供針對控制器開發(fā)初學(xué)者的快捷生成代碼的方法,降低對控制器開發(fā)人員在程序編寫及調(diào)試方面的難度。

(4)移植性好,在不同類型電腦上使用方便,免安裝等特點(diǎn)。

2 設(shè)計(jì)思路

大多數(shù)用戶的電腦中辦公軟件為office或者WPS,其中的Excel具備VBA編程開發(fā)的功能,Excel各表格可以通過VBA或者宏編程實(shí)現(xiàn)對不同Sheet中的Cells進(jìn)行填充。Excel中的控件類型豐富,VBA語法簡單,結(jié)構(gòu)清晰,編程功能強(qiáng)大,使用簡單方便。二者結(jié)合可以滿足大部分的開發(fā)需求,所開發(fā)出的軟件體量輕,功能強(qiáng),能夠方便的解決編程工作中的多種問題,極大提升編程開發(fā)效率。

通過總結(jié)需求,將備自投控制器中有關(guān)數(shù)據(jù)采集和處理的功能進(jìn)行分類匯總,分別建立相應(yīng)的sheet,利用VBA編程功能編寫代碼,實(shí)現(xiàn)對Sheet中Cells的數(shù)據(jù)讀取和填充,并結(jié)合Excel的按鈕控件,實(shí)現(xiàn)備自投控制器代碼的一鍵自動(dòng)生成。

在Excel的VBA編程環(huán)境下,針對需求精確設(shè)計(jì)了多個(gè)子函數(shù),并在主程序中進(jìn)行調(diào)用,以實(shí)現(xiàn)既定功能。子函數(shù)主要包括:饋線柜通訊狀態(tài)循環(huán)1、饋線柜通訊狀態(tài)循環(huán)2、饋線回路數(shù)據(jù)狀態(tài)循環(huán)1、饋線回路數(shù)據(jù)狀態(tài)循環(huán)2、饋線回路通訊狀態(tài)循環(huán)1、饋線回路通訊狀態(tài)循環(huán)2、操作報(bào)警記錄循環(huán)1、操作報(bào)警記錄循環(huán)2等。

3 設(shè)計(jì)內(nèi)容及方法

3.1 建立參數(shù)輸入和一鍵生成代碼界面

參照配電系統(tǒng)圖,按照兩段配電,每段最多20臺(tái)柜子,每個(gè)柜子最多9個(gè)饋線回路,設(shè)計(jì)好通用的Excel接口表格,這個(gè)表格是本軟件的接口界面,通過將配電柜數(shù)量、饋線回路按順序固定下來,在加上三級負(fù)荷和計(jì)量回路的選型,并在頁面左上角添加生成代碼按鈕控件,用戶通過在接口界面的指定位置填入系統(tǒng)中的配電柜饋線回路數(shù)量、三級負(fù)荷開關(guān)、計(jì)量回路等關(guān)鍵參數(shù),然后點(diǎn)擊生成代碼按鈕即可完成操作[3]。接口界面如圖1所示。

圖1 接口界面

3.2 編寫?zhàn)伨€回路數(shù)據(jù)采集與處理主程序函數(shù)及各子程序函數(shù)

通過編寫?zhàn)伨€回路數(shù)據(jù)采集和處理的各子程序函數(shù),并在主程序函數(shù)中進(jìn)行調(diào)用,最終完成對控制器代碼的自動(dòng)生成工作,典型子程序函數(shù)聲明如下:

KuiXianGuiComStatus_loop1(GNum,LNum,THNum,MCNum, LNum)

該類型子函數(shù)主要通過內(nèi)部循環(huán)函數(shù)完成對控制器內(nèi)部程序代碼自動(dòng)編寫。首先將配電回路分為兩段,分段遍歷各饋線回路,根據(jù)饋線回路自動(dòng)生成相關(guān)代碼,并自動(dòng)添加代碼語句結(jié)束符,之后將代碼按照控制器編程規(guī)則填充到表格的對應(yīng)單元格中。

完成子函數(shù)的編寫后,在主函數(shù)中,通過For循環(huán)語句調(diào)用各功能塊子函數(shù),從而完成對接口表格中的饋線柜饋線回路數(shù)量、三級負(fù)荷所在回路號、計(jì)量回路所在回路號等變量的遍歷,同時(shí)通過Dim語句定義EasyComNum 、LoopNum、MeasurementCircutNum 、ThirdLoadNum、CodeLineNum、CodeColumnNum、CodeColumnNum1、bit 、bitNum、TelemeteringNum、ElectricalDegreeNum等多個(gè)接口變量,完成饋線回路數(shù)及程序中bit的位的自增與清零工作[4]。

典型For循環(huán)函數(shù)結(jié)構(gòu)體如下:

For m = 2 To LNum Step 1

If THNum = 1 Then

If MCNum = m Then

Else

End If

Else

If MCNum = m Then

Else

End If

End If

Next m

典型主函數(shù)結(jié)構(gòu)體如下:

Private Sub CommandButton1_Click()

Dim EasyComNum As Integer

Dim LoopNum As Integer

Dim ElectricalDegreeNum As Integer

For n = 1 To 38 Step 1

LoopNum = Sheet1.Cells(n +3, 4)

ThirdLoadNum = Sheet1.Cells(n + 3, 6)

MeasurementCircutNum = Sheet1.Cells(n + 3, 5)

If LoopNum <= 1 Then

Else

If n < 20 Then 'I段回路

Call KuiXianGuiComStatus_loop1(n, LoopNum, ThirdLoadNum, MeasurementCircutNum, CodeLineNum)

Call SwitchStateDate_loop1(n, LoopNum, ThirdLoadNum, MeasurementCircutNum, CodeColumnNum, CodeColumnNum1, bit, bitNum, TelemeteringNum, ElectricalDegreeNum)

End If

If n >= 20 Then 'II段回路

Call KuiXianGuiComStatus_loop2(n, LoopNum, ThirdLoadNum, MeasurementCircutNum, CodeLineNum)

End If

CodeLineNum = CodeLineNum + 1

CodeColumnNum = CodeColumnNum + LoopNum

CodeColumnNum1 = CodeColumnNum1 + (LoopNum * 2)

End If

Next n

End Sub

3.3 完成控制器代碼編寫

通過單擊接口界面的代碼生成按鈕控件,最終完成備自投控制器程序代碼的自動(dòng)編寫,控制器開發(fā)人員可以將各個(gè)Sheet中的代碼直接復(fù)制,粘貼到控制器編程軟件,編譯通過即可。表格代碼界面如圖2。備自投控制器編程軟件代碼界面如圖3。編譯通過的界面如圖4。

圖2 表格中自動(dòng)生成的代碼

圖3 移植備自投控制器編程軟件中的代碼

圖4 備自投控制器代碼編譯結(jié)果

4 結(jié)束語

本軟件利用Excel的VBA功能,并結(jié)合按鈕控件,一鍵生成配電系統(tǒng)控制器代碼,解決了降低控制器開發(fā)人員的工作量,提高工作效率和編程的準(zhǔn)確率的問題,并使得控制器的程序格式規(guī)范而統(tǒng)一,架構(gòu)清晰而簡潔。配電系統(tǒng)備自投控制器編程代碼自動(dòng)生成軟件從實(shí)戰(zhàn)出發(fā),立足初學(xué)者的角度,對需求進(jìn)行充分理解和論證,結(jié)合控制器架構(gòu)設(shè)計(jì),最終實(shí)現(xiàn)既定目標(biāo);同時(shí)軟件留出數(shù)據(jù)余量及擴(kuò)展接口,方便后續(xù)升級更新,為之后擴(kuò)展提供了技術(shù)方面的支持和保障;本軟件對于其他系統(tǒng)及部門的技術(shù)人員也有相當(dāng)大的借鑒和推廣作用。

猜你喜歡
饋線代碼編程
中波八塔天線饋線制作
基于充電樁選擇策略的雙饋線負(fù)荷優(yōu)化和削峰潛力分析
編程,是一種態(tài)度
元征X-431實(shí)測:奔馳發(fā)動(dòng)機(jī)編程
編程小能手
紡織機(jī)上誕生的編程
配電智能分布式饋線自動(dòng)化調(diào)試方案的研究
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
崇阳县| 昌乐县| 日土县| 杂多县| 崇州市| 佛山市| 栖霞市| 天气| 射阳县| 贡嘎县| 伊通| 颍上县| 渝中区| 镇原县| 呼和浩特市| 泾源县| 萝北县| 苏尼特左旗| 舒兰市| 江华| 日土县| 浦江县| 阳原县| 阿拉尔市| 东丽区| 南木林县| 团风县| 喀喇沁旗| 阿克陶县| 家居| 桂东县| 曲阳县| 阳新县| 石泉县| 襄汾县| 哈巴河县| 孟州市| 商城县| 昌邑市| 永定县| 安远县|