李可成
(廣西工業(yè)職業(yè)技術(shù)學院 智能制造學院,南寧 530001)
嵌入式系統(tǒng)是一種專用型計算機處理系統(tǒng),以計算機技術(shù)作為構(gòu)建基礎(chǔ),在軟硬件方面具有獨立可裁剪的能力,對程序可靠性、程序功能等因素具有嚴格要求。SOC片上系統(tǒng)是嵌入式系統(tǒng)的重要組成形式,可以將包括CPU元件在內(nèi)的多種外設(shè)控制器設(shè)備集成在幾個獨立芯片結(jié)構(gòu)之上,故而SOC嵌入式系統(tǒng)的體積相對較小、功耗成本相對較低,能夠適應(yīng)多種不同的互聯(lián)網(wǎng)應(yīng)用環(huán)境[1]。PLC作為設(shè)備和裝置的核心控制器設(shè)備,能夠借助I/O組件安裝在機架結(jié)構(gòu)之上,并可以按照智能化編程原則,改寫系統(tǒng)主機內(nèi)的原有程序編碼原則,從而使得下級設(shè)備部件的無縫連通能力大幅提升。由于PLC控制體系的運行需要多個應(yīng)用部件的共同配合,所以在更換另一種硬件設(shè)備時,也需要重新編寫相關(guān)軟件執(zhí)行程序[2]。
軟PLC在保留傳統(tǒng)PLC應(yīng)用功能的基礎(chǔ)上,采用面向現(xiàn)場總線網(wǎng)絡(luò)的體系設(shè)計結(jié)構(gòu),全面開放了高速串口、通信接口等以太網(wǎng)連接通路,通過多語言編程的處理方式,修改原有執(zhí)行程序的編譯形式,從而將多個數(shù)據(jù)開放通路同時轉(zhuǎn)接至TCP/IP網(wǎng)絡(luò)之中[3]。然而對于PC端主機而言,若所生成指令程序不能滿足PLC控制原則,則會使PLC編程器的邏輯編譯能力大幅下降,從而造成網(wǎng)絡(luò)體系出現(xiàn)混亂運行狀態(tài)。文獻[4]設(shè)計了基于工控業(yè)務(wù)仿真的高交互可編程邏輯控制器蜜罐系統(tǒng),設(shè)置了過程仿真循環(huán)與服務(wù)仿真循環(huán)閉環(huán)體系,又在Matlab/Simulink應(yīng)用軟件的作用下,完善了主機端元件與執(zhí)行端元件之間的協(xié)同工作模式。然而在指令程序較為復(fù)雜的情況下,該系統(tǒng)并不能確保程序樣本的編碼形式完全符合PLC控制原則,因此,其對于編程器元件邏輯編譯能力的保障作用也就無法達到實際需求標準。為此,設(shè)計了基于嵌入式軟PLC分布式控制系統(tǒng)。
嵌入式軟PLC應(yīng)用技術(shù)可以在更改系統(tǒng)結(jié)構(gòu)布局形式的同時,完善基礎(chǔ)工作執(zhí)行機制,本章節(jié)將針對上述內(nèi)容展開研究。
嵌入式軟PLC系統(tǒng)的實現(xiàn)需要嵌入式系統(tǒng)組件、軟PLC系統(tǒng)組件的共同配合,簡單來說,就是利用軟PLC技術(shù)控制嵌入式系統(tǒng)平臺,再利用軟件編程為PLC邏輯結(jié)構(gòu)提供基礎(chǔ)運算環(huán)境,最后將處理后的軟件程序完整封裝進嵌入式系統(tǒng)執(zhí)行平臺,以用于對下級應(yīng)用元件進行控制[5]。由于嵌入式軟PLC系統(tǒng)包含嵌入式系統(tǒng)、軟PLC系統(tǒng)的全部運行特點,所以定義其模式特征時應(yīng)注意如下幾方面內(nèi)容:
1)開放式控制平臺與相關(guān)軟件控制程序必須遵循相同的編碼原則,在軟PLC控制端口閉合的情況下,嵌入式端口也應(yīng)隨之進入閉合狀態(tài),且兩個端口之間的數(shù)據(jù)信息樣本不可以出現(xiàn)誤傳、反傳行為,即控制程序運行指令只能由一個端口指向另一個端口,且這種指向性指令傳輸行為運行模式不具備可逆性。
2)當軟PLC控制程序植入嵌入式系統(tǒng)后,PLC邏輯結(jié)構(gòu)的運行模式會發(fā)生變化,當前情況下,分布式主機對于控制執(zhí)行指令的編碼速率較快,軟PLC控制端口內(nèi)的數(shù)據(jù)信息樣本被快速消耗,故而整個PLC控制系統(tǒng)的運行速度也相對較快[6]。
3)在多類型軟件程序同時存在的情況下,嵌入式系統(tǒng)主機運行速率始終比軟PLC系統(tǒng)主機運行速率更快,當控制指令累積量達到數(shù)據(jù)庫主機最大編碼條件時,兩類系統(tǒng)運行速率同時下降,直至已累計指令樣本被PLC編碼軟件完全消耗。
嵌入式軟PLC分布式控制系統(tǒng)由硬件、軟件兩部分共同組成。硬件部分是系統(tǒng)的應(yīng)用基礎(chǔ),主要包括I/O組件、CPU設(shè)備、PLC內(nèi)核、軟移植內(nèi)核等多種應(yīng)用設(shè)備;軟件部分是控制功能實現(xiàn)的關(guān)鍵,可以按照相關(guān)硬件設(shè)備的運行狀態(tài),制定必要的控制任務(wù)執(zhí)行指令[7]。分布式控制系統(tǒng)基本布局如圖1所示。
圖1 嵌入式軟PLC分布式控制系統(tǒng)結(jié)構(gòu)組成圖
I/O組件是嵌入式軟PLC分布式控制系統(tǒng)硬件的核心,負責分析PLC軟件程序,并可以根據(jù)控制指令約束條件,完成數(shù)據(jù)樣本的處理。嵌入式存儲器設(shè)備直接控制下級ROM結(jié)構(gòu),其內(nèi)核組件上集合了多個外設(shè)接口,能夠滿足軟PLC系統(tǒng)多種不同的控制需求,由于訪問中間件、I/O驅(qū)動器設(shè)備、ROM結(jié)構(gòu)之間保持穩(wěn)定的并列連接關(guān)系,所以PLC內(nèi)核、軟移植內(nèi)核、嵌入式存儲器單元的任何指令行為都不會對下級設(shè)備結(jié)構(gòu)的應(yīng)用能力造成影響[8]。隨著嵌入式軟PLC系統(tǒng)所承擔控制指令任務(wù)量的增大,應(yīng)用軟件層內(nèi)控制任務(wù)的定義量也會不斷增大,直至指令運行量達到系統(tǒng)數(shù)據(jù)庫主機的最大存儲條件。
簡單來說,分布式控制系統(tǒng)工作執(zhí)行機制就是將嵌入式系統(tǒng)輸出的指令程序改寫成符合軟PLC系統(tǒng)運行需求的編碼形式,但由于軟PLC定義標準會隨著控制指令累積量的增大而改變,所以初始化控制系統(tǒng)時,要求代碼執(zhí)行文件樣本、控制程序編輯序列必須使用相同的定義模板。控制系統(tǒng)開發(fā)環(huán)境與運行環(huán)境是兩個完全獨立的執(zhí)行體系,前者通過配置嵌入式硬件設(shè)備的方式,確定PLC控制網(wǎng)絡(luò)內(nèi)編譯文本的設(shè)置規(guī)則,再聯(lián)合待編輯的控制程序,生成完整的代碼執(zhí)行文件,以供系統(tǒng)控制主機的直接調(diào)取與利用;后者可以在初始化控制系統(tǒng)的同時,實施對PLC程序的編碼,并可以根據(jù)程序代碼掃描文件中樣本序列的定義規(guī)則,判斷輸出代碼文件與系統(tǒng)控制需求之間的匹配性關(guān)系[9-10]。系統(tǒng)開發(fā)環(huán)境與運行環(huán)境之間工作執(zhí)行機制的對應(yīng)標準如圖2所示。
圖2 分布式控制系統(tǒng)執(zhí)行機制詳解圖
由于一個嵌入式硬件設(shè)備所輸出的控制指令需要供給多個運行程序選擇,所以開發(fā)環(huán)境與運行環(huán)境之間的對應(yīng)關(guān)系并不滿足單一性原則。
基于嵌入式軟PLC分布式控制系統(tǒng)的設(shè)計,需借助I/O組件完成對PLC程序的編寫及CODESYS工程的設(shè)置,但由于分布式運行體系不僅模式相對較為復(fù)雜,所以為實現(xiàn)對組件設(shè)備間連接關(guān)系的判斷,還要考慮I/O驅(qū)動程序的開發(fā)與編譯原則。
分布式運行體系是指主機對象與服務(wù)器對象分別對應(yīng)的系統(tǒng)運行模式,一般來說,嵌入式硬件應(yīng)用平臺中的主機對象與服務(wù)器對象只能保持一一對應(yīng)關(guān)系,即隨著PLC控制程序輸出量的增大,對應(yīng)映射關(guān)系的存在組別數(shù)量也會不斷增大[11]。在軟PLC控制系統(tǒng)中,分布式運行體系布局形式如圖3所示。
圖3 軟PLC系統(tǒng)分布式運行體系的基礎(chǔ)架構(gòu)
可以將已編碼、未編碼的指令程序區(qū)分開來,其中已編碼的程序指令直接反饋至服務(wù)器單元,以供其對嵌入式系統(tǒng)運行模式進行準確辨別;未編碼程序指令則會在主機單元中進行二次加工,當前實時編碼格式滿足PLC控制標準后,這些程序指令則可以經(jīng)由反饋信道,傳輸至服務(wù)器單元。假設(shè)Client主機輸出的指令文件為“1”,在分布式運行體系作用下,服務(wù)器主機所接收到的指令文件也為“1”。若將此模式應(yīng)用到基于嵌入式軟PLC分布式控制系統(tǒng)中,就可以認為PC端主機所生成指令程序的編碼形式,與PLC編程器所接收到的指令程序編碼形式保持一致,且無論I/O組件運行模式是否發(fā)生改變,這種分布式編碼對應(yīng)關(guān)系都不會發(fā)生變化[12]。
I/O驅(qū)動開發(fā)就是調(diào)動軟PLC分布式控制系統(tǒng)在嵌入式運行體系內(nèi)的作用能力,在控制程序定義標準不同的情況下,I/O組件的驅(qū)動性越強,就表示待執(zhí)行控制程序的累積量越大,當前情況下,驅(qū)動條件對于控制程序的適應(yīng)能力較弱[13-14]。設(shè)α、δ表示兩個隨機選取的PLC控制向量,且α≠δ的不等式取值條件恒成立,qα表示基于向量α的I/O組件驅(qū)動指標,qδ表示基于向量δ的I/O組件驅(qū)動指標,其求解表達式為:
(1)
(2)
基于I/O組件驅(qū)動指標值,推導(dǎo)軟PLC分布式控制系統(tǒng)的I/O驅(qū)動程序開發(fā)表達式為:
(3)
式中,β表示PLC控制程序規(guī)劃系數(shù),且系數(shù)β取值恒大于自然數(shù)1。
在基于嵌入式軟PLC分布式控制系統(tǒng)中,驅(qū)動系數(shù)與驅(qū)動向量的變化趨勢保持一致,但當其取值超過額定限度標準后,這種取值規(guī)則不成立。
通過以上步驟完成I/O驅(qū)動開發(fā)過程,提高軟PLC分布式控制系統(tǒng)的調(diào)動能力。
PLC程序編寫是解決PC端主機所生成指令程序編碼格式不統(tǒng)一的必要方法,可以按照I/O驅(qū)動開發(fā)原則,確定軟PLC控制系統(tǒng)指令程序的初始傳輸位置與目標傳輸位置[15-16]。對于嵌入式系統(tǒng)組件而言,軟PLC分布式控制系統(tǒng)執(zhí)行指令會隨著運行時間的延長而不斷累積,故而PLC程序編寫文本定義標準并不唯一,而是會隨著執(zhí)行指令累積量的增大而不斷改變。設(shè)φ表示PLC控制指令初始傳輸位置定義條件,φ′表示控制指令目標傳輸位置定義條件,I/O驅(qū)動開發(fā)原則要求,φ′>φ的不等式條件恒成立,ε表示控制指令編譯系數(shù),在上述物理量的支持下,聯(lián)立式(3),可將PLC程序編寫表達式定義為:
(4)
設(shè)置軟PLC分布式控制系統(tǒng)CODESYS工程之前,需要確認編譯好的PLC控制程序描述文件安裝是否正確,在嵌入式系統(tǒng)運行模式中,只有正確的PLC程序描述文件能夠得到CODESYS工程的認證,而錯誤的PLC程序描述文件則會被系統(tǒng)數(shù)據(jù)庫主機直接存儲[17]。CODESYS工程可以在系統(tǒng)控制指令中添加一個獨立賦值任務(wù),當任務(wù)優(yōu)先級審核標準為“1”時,控制指令直接被PLC編程器執(zhí)行,當任務(wù)優(yōu)先級審核標準為“0”時,控制指令經(jīng)過I/O組件的再次開發(fā),直至其審核標準等于“1”(基于嵌入式軟PLC分布式控制系統(tǒng)作為計算機應(yīng)用系統(tǒng)的一種,所以其在處理控制指令時遵循二進制原則)[18]。
基于PLC程序編寫原則的CODESYS工程設(shè)置條件滿足式(5):
(5)
在I/O組件結(jié)構(gòu)的作用下,控制實時內(nèi)核的進入與退出作用,再通過規(guī)劃分時映像區(qū)的方式,推導(dǎo)控制指令邏輯棧表達式,從而實現(xiàn)基于嵌入式軟PLC分布式控制系統(tǒng)的設(shè)計。
實時內(nèi)核進入與退出是兩個完全相反的執(zhí)行流程,前者意在將嵌入式軟PLC控制程序植入分布式執(zhí)行主機,而后者則可以將已植入控制程序再次移出分布式執(zhí)行主機,從而釋放系統(tǒng)緩存壓力,使得PLC編程器運行速率加快,PC端主機輸出的指令文件能夠得到加密與編輯處理[19]。實時內(nèi)核是一個實體編程結(jié)構(gòu),可以更改PLC程序指令信息的編碼形式,但為了保證嵌入式軟PLC分布式控制系統(tǒng)的執(zhí)行一致性,內(nèi)核進入與退出過程所遵循的編碼原則完全一致。
實時內(nèi)核進入編碼原則為:
(6)
式中,smin表示軟PLC控制程序植入特征最小值,smax表示軟PLC控制程序植入特征最大值,κmin表示分布式植入系數(shù)最小值,κmax表示分布式植入系數(shù)最大值。
實時內(nèi)核退出編碼原則為:
(7)
(8)
式(8)取值為零,表示分時映像區(qū)覆蓋空間極小,并不代表嵌入式軟PLC分布式控制系統(tǒng)中不存在分時映像區(qū)空間。
控制指令邏輯棧也叫軟PLC分布式控制程序的執(zhí)行協(xié)議棧。在嵌入式系統(tǒng)執(zhí)行環(huán)境中,棧文本是具有邏輯約束作用的程序指令,但單一的棧文本并不能決定分布式主機對軟PLC執(zhí)行程序的作用能力,故而控制指令邏輯棧的運行還需要I/O組件及相關(guān)硬件主機的共同配合[23-24]。
嵌入式軟PLC分布式控制系統(tǒng)控制指令邏輯棧作用表達式推導(dǎo)結(jié)果滿足式(9):
(9)
為了驗證設(shè)計的基于嵌入式軟PLC分布式控制系統(tǒng)的有效性,首先,通過式(1)和式(2)計算得到的I/O組件驅(qū)動指標值,在Windows主機中輸入所設(shè)計的基于嵌入式軟PLC分布式控制系統(tǒng)的PLC程序編寫表達式,記錄PC端主機所生成指令程序的編碼形式,使其滿足式(5)的CODESYS工程設(shè)置條件,將其與給定的編碼原則進行對比,總結(jié)出實驗組控制指令的編碼原則;然后,將各項顯示參數(shù)歸零,斷開PLC編程器的所有連線,將PC端主機還原至初始連接狀態(tài);其次,根據(jù)I/O驅(qū)動開發(fā)原則,在Windows主機中輸入文獻[4]系統(tǒng)的PLC程序編寫表達式,記錄PC端主機所生成指令程序的編碼形式,判斷其是否滿足CODESYS工程設(shè)置條件,總結(jié)出對照組控制指令的編碼原則;最后,對比實驗組、對照組編碼原則,總結(jié)實驗規(guī)律。
在PLC編程器連接回路中,所有應(yīng)用開關(guān)的連接狀態(tài)均保持一致,所以PC端主機所生成指令是影響控制程序編碼原則的唯一條件。
利用SoftPLC-C650PLC軟件監(jiān)測PLC編程器的運行情況,當相關(guān)配置欄顯示情況如圖4所示時,閉合控制開關(guān),進行實驗。
圖4 SoftPLC-C650PLC軟件配置
為避免錯誤識別行為的出現(xiàn),SoftPLC-C650PLC軟件每次只查看一條指令程序的編碼情況。
本次實驗選取10條PC端主機指令程序,及其在PLC控制原則下的編碼結(jié)果,指令程序編碼原則如表1所示。
表1 指令程序編碼原則
在實驗組、對照組控制系統(tǒng)作用下,所選定10條指令的編碼結(jié)果分別如圖5和圖6所示。
圖5 實驗組控制系統(tǒng)指令編碼
圖6 對照組控制系統(tǒng)指令編碼
分析圖5可知,在實驗組控制系統(tǒng)作用下,PC端主機所生成指令程序的編碼結(jié)果與表1給定標準完全一致,即實驗組控制系統(tǒng)的編碼能力與PLC控制原則相符合。
分析圖6可知,當PC端主機所生成指令程序為X0011、X0013、X0014、Y3301、Y3303時,對照組控制系統(tǒng)所輸出程序的編碼結(jié)果與表1給定標準完全一致;當PC端主機所生成指令程序為X0012、Y3304、Y3305時,對照組控制系統(tǒng)所輸出程序雖然能夠顯示出編碼結(jié)果,但其編碼形式卻與給定PLC控制原則不符合;當PC端主機所生成指令程序為X0015、Y3302時,對照組控制系統(tǒng)所輸出程序不能顯示出編碼結(jié)果,即對于所選定10條指令,因為設(shè)計系統(tǒng)通過式(4)對控制系統(tǒng)進行PLC程序編寫,使PC端主機所生成指令程序編碼格式相統(tǒng)一。而對照組控制系統(tǒng)只能保證5條指令的編碼結(jié)果與PLC控制原則相符合。
在此基礎(chǔ)上,對實驗組、對照組控制系統(tǒng)指令編碼準確性進行統(tǒng)計,具體實驗結(jié)果如圖7所示。
圖7 實驗組、對照組控制系統(tǒng)指令編碼準確性
根據(jù)圖7可知,整個實驗過程中,實驗組、對照組控制系統(tǒng)指令編碼準確性均保持相對穩(wěn)定的數(shù)值狀態(tài)。當測試時間為100 min時,實驗組、對照組控制系統(tǒng)平均指令編碼準確性分別為91.6%和80.5%。由此可知,實驗組控制系統(tǒng)平均指令編碼準確性明顯大于對照組控制系統(tǒng)平均指令編碼準確性,因為實驗組設(shè)計了I/O驅(qū)動開發(fā)過程,提高了軟PLC分布式控制系統(tǒng)的調(diào)度能力,有效提高指令編碼準確性。
綜上可知,在基于嵌入式軟PLC分布式控制系統(tǒng)的作用下,PC端主機所生成的10條指令程序均滿足PLC控制原則,對于保障PLC編程器的邏輯編譯能力可以起到一定的促進性影響作用,且能夠有效提高指令編碼準確性。
本文設(shè)計了基于嵌入式軟PLC分布式控制系統(tǒng),能夠根據(jù)軟PLC定義標準,確定PC端主機的工作執(zhí)行機制,再按照分布式運行框架,分析I/O驅(qū)動組件的開發(fā)能力,又聯(lián)合PLC應(yīng)用程序,判斷CODESYS工程的運行現(xiàn)狀是否符合設(shè)計需求。由于實時內(nèi)核的進入與退出是兩個完全不同的指令執(zhí)行流程,所以分時映像區(qū)結(jié)構(gòu)的取值條件將直接影響控制指令邏輯棧的表達形式。在實際應(yīng)用方面,該系統(tǒng)可以使PC端主機所生成指令程序滿足PLC控制原則,符合保障PLC編程器邏輯編譯能力的實際應(yīng)用需求,并能夠有效提高指令編碼準確性。