甘建水
【摘 要】論文旨在探討在工業(yè)控制領(lǐng)域PLC程序的智能化開發(fā)問題。通過對羅克韋爾Logix平臺的研究與分析,在掌握了RSLogix 5000工程文件的格式和編碼規(guī)范的基礎(chǔ)上,以軌道交通BAS系統(tǒng)PLC開發(fā)為應(yīng)用例子,采用Microsoft C#語言實現(xiàn)了BAS系統(tǒng)的智能化開發(fā)。
【Abstract】The paper aims to explore the intelligent development of the PLC program in the field of industrial control. Through researching and analyzing the Logix platform of Rockwell, and on the basis of mastering the format and encoding specifications of RSLogix5000 project file, the paper takes the PLC development of rail transit BAS system as an application example, and realizes the intelligent development of BAS system by using Microsoft C # language.
【關(guān)鍵詞】PLC;智能開發(fā);Logix平臺;工業(yè)控制
【Keywords】PLC; intelligent development; Logix platform; industrial control
【中圖分類號】TP273 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻標志碼】B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號】1673-1069(2019)02-0170-02
1 引言
在工業(yè)控制系統(tǒng)內(nèi),一個PLC控制器往往需要對幾百甚至上千個設(shè)備進行監(jiān)控,每個設(shè)備又有若干個不同的監(jiān)控點。PLC編程的過程中,需要將這些設(shè)備的監(jiān)控點規(guī)劃分配到PLC程序里,這將是一件極度煩瑣而又容易出錯的工作。傳統(tǒng)的工業(yè)控制PLC系統(tǒng)開發(fā)流程是先在Excel文檔里對所有的監(jiān)控點進行規(guī)劃分配,然后再將規(guī)劃好的設(shè)備監(jiān)控點填入到PLC程序里[1]。
2 Logix平臺簡介
羅克韋爾自動化Logix平臺提供了單一的集成化控制構(gòu)架,能夠?qū)崿F(xiàn)離散、傳動、運動以及過程控制。這種集成式的Logix控制構(gòu)架提供了通用的控制引擎、軟件編程環(huán)境和跨多硬件平臺的通訊支持。
3 工程定義
工程定義主要由工程本身屬性定義、用戶數(shù)據(jù)類型、模塊組態(tài)定義、用戶指令、TAG變量、PLC程序、PLC任務(wù)等組成,格式為:CONTROLLER 工程名稱 (ProcessorType := “控制器類型”,Major := 程序主版本號,[其他工程屬性 := 屬性定義]),[用戶數(shù)據(jù)類型]、[模塊組態(tài)定義]、[用戶指令]、[TAG變量]、[PLC程序]、[PLC任務(wù)]、[其他定義]、END_CONTROLLER,其中工程本身屬性定義包括指定工程名稱、控制器類型、程序主版本號等。
第一,用戶數(shù)據(jù)類型,格式為:DATATYPE 用戶數(shù)據(jù)類型名稱,[各數(shù)據(jù)成員定義]、END_DATATYPE;其中各數(shù)據(jù)成員定義格式為:數(shù)據(jù)類型 : 成員名稱;數(shù)據(jù)類型可以是內(nèi)置類型(BOOL、INT、DINT、COUNTER、TIMER、CONTROL等)也可以是用戶定義的數(shù)據(jù)類型。
第二,模塊組態(tài)定義,格式為:MODULE 模塊名稱 (Parent := “父節(jié)點模塊名稱”,CatalogNumber := “模塊型號”,[其他模塊屬性 := 屬性定義]);[模塊配置等定義]、END_MODULE;模塊以屬性Parent說明模塊關(guān)聯(lián)的父節(jié)點模塊。PLC控制器模塊名稱默認為與工程一致,Parent屬性默認為Local,本地模塊的Parent皆為Local。
第三,用戶指令,格式為:、ADD_ON_INSTRUCTION_DEF
INITION 指令名稱([指令創(chuàng)建信息]),PARAMETERS,[各指令參數(shù)定義],END_PARAMETERS,LOCAL_TAGS,[各本地標簽定義],END_LOCAL_TAGS,ROUTINE Logic,[例程各邏輯定義],END_ROUTINE,END_ADD_ON_INSTRUCTION_DEFINIT
ION,其中參數(shù)定義和本地標簽定義格式見下面TAG變量定義部分。例程每一行邏輯以“N:”開始,以“;”結(jié)束。
第四,TAG變量,格式為:變量名 : 數(shù)據(jù)類型(顯示樣式) := 默認值;其中數(shù)據(jù)類型可以是內(nèi)置類型或者用戶定義類型。
第五,PLC程序,格式為:PROGRAM MainProgram (MAIN := "主例程名稱")TAG,[各本地TAG變量],END_TAG,ROUTINE 例程名稱,[例程各邏輯定義],END_ROUTINE,END_PROGRAM,各本地TAG變量定義見TAG變量定義部分,例程每一行邏輯以“N:”開始,以“;”結(jié)束。
第六,PLC任務(wù),格式為:TASK MainTask (Type := 任務(wù)類型),[任務(wù)內(nèi)各程序];,END_TASK
任務(wù)類型分為三種:連續(xù)性任務(wù)、周期性任務(wù)和事件觸發(fā)任務(wù)。任務(wù)內(nèi)程序必須是PLC程序部分定義了的程序名稱。
4 編程實現(xiàn)PLC智能開發(fā)系統(tǒng)
在軌道交通BAS系統(tǒng)中,BAS系統(tǒng)的PLC除了對它們進行實時監(jiān)控外還需要向綜合監(jiān)控系統(tǒng)上傳設(shè)備的狀態(tài)信息,同時接收綜合監(jiān)控系統(tǒng)命令并下發(fā)給設(shè)備以執(zhí)行相應(yīng)動作[2]。因此BAS系統(tǒng)的設(shè)計開發(fā)流程需要統(tǒng)一規(guī)范,一般分為以下幾個工作:①將設(shè)計院藍圖設(shè)計好的監(jiān)控設(shè)備點分配到指定的遠程IO控制箱具體模塊點位上,形成設(shè)備監(jiān)控點表文件,此為BAS-設(shè)備IO映射過程;②分門別類規(guī)劃好各種設(shè)備在綜合監(jiān)控系統(tǒng)上的地址,形成數(shù)據(jù)點表文件,此為綜合監(jiān)控-BAS IO映射過程;③設(shè)計各種設(shè)備PLC驅(qū)動程序,程序以功能塊形式封裝,方便調(diào)用;④根據(jù)遠程IO箱的模塊配置信息組態(tài)IO模塊;⑤將①和②映射好的數(shù)據(jù)分別填到設(shè)備驅(qū)動功能塊參數(shù)上,至此基本完成一個完整的BAS PLC程序。
BAS智能開發(fā)系統(tǒng)主要就是對以上的④和⑤實現(xiàn)自動化。
4.1 實現(xiàn)自動組態(tài)
系統(tǒng)自動組態(tài)的前提條件是獲取IO模塊組態(tài)信息,以下提供了一種最簡單的模塊組態(tài)信息定義格式:
[DI,DO,CE,AI,AO; DI,DO,CE,AI,AO]
其中,中括號將不同的遠程IO箱模塊隔開,IO箱內(nèi)以“;”間隔每個通信模塊上的IO模塊(往往一個通信模塊會帶若干個IO模塊),而每個模塊的類型又以DI、DO、AI、AO或CE形式表示,并以“,”隔開,其中CE表示的是模塊之間連接的擴展電纜。
智能開發(fā)系統(tǒng)讀取模塊組態(tài)信息,通過圖1所以流程完成對模塊組態(tài)信息的分析,并最終形成RSLogix 5000工程文件模塊組態(tài)定義部分。
4.2 實現(xiàn)自動編程
PLC程序設(shè)備驅(qū)動功能塊一般都包括輸入輸出參數(shù),輸入?yún)?shù)對應(yīng)BAS-設(shè)備IO映射數(shù)據(jù),輸出參數(shù)對應(yīng)綜合監(jiān)控-BAS IO映射數(shù)據(jù)。功能塊內(nèi)部邏輯程序以文本的形式固化在程序模板上。因此,將IO映射數(shù)據(jù)填寫到相應(yīng)的功能塊輸入輸出參數(shù)上便實現(xiàn)了BAS系統(tǒng)PLC的自動化編程。具體流程如圖2所示。圖3所示為采用Microsoft C#語言實現(xiàn)的BAS智能開發(fā)系統(tǒng)的軟件界面。經(jīng)過現(xiàn)場實地使用,發(fā)現(xiàn)軟件大大提高了工程開發(fā)和調(diào)試的效率,PLC程序出錯率大大降低。
5 結(jié)論及展望
①通過對RSLogix 5000工程文件的格式以及規(guī)律的分析,結(jié)合現(xiàn)有的BAS系統(tǒng)設(shè)計開發(fā)流程,實現(xiàn)了BAS系統(tǒng)的智能化開發(fā)[3]。②在實際應(yīng)用過程中,智能開發(fā)系統(tǒng)能夠極大降低BAS系統(tǒng)開發(fā)過程的重復(fù)勞動,從而提高工作效率,減少邏輯程序出錯的概率。③本文僅僅實現(xiàn)了Logix平臺的智能化開發(fā),由于標準不統(tǒng)一,不同的自動控制系統(tǒng)平臺有著不同的工程文件格式,后續(xù)的工作應(yīng)該努力將智能化開發(fā)應(yīng)用到多種平臺上。
【參考文獻】
【1】薛迎成.羅克韋爾PLC技術(shù)基礎(chǔ)及應(yīng)用[M].北京:中國電力出版社,2009.
【2】鄧李.ControlLogix系統(tǒng)實用手冊[M].北京: 機械工業(yè)出版社,2008.
【3】黃允凱,談英姿. 深入淺出NetLinx網(wǎng)絡(luò)架構(gòu)[M].北京: 機械工業(yè)出版社,2009.