林滔
(上海電子信息職業(yè)技術(shù)學(xué)院,上海 201411)
PLC是一種可編程控制器,它是一種數(shù)字操作的電子學(xué)系統(tǒng),特別適用于工業(yè)環(huán)境中的自動(dòng)控制[1]。PLC從單機(jī)到整條生產(chǎn)線,甚至對(duì)整條生產(chǎn)線的自動(dòng)化都起到了很好的作用。為了降低PLC在控制系統(tǒng)中的占用空間,同時(shí)保證PLC控制指令的執(zhí)行與傳輸效率,大多采用嵌入式的方式將其安裝在被控制對(duì)象內(nèi)部。嵌入式系統(tǒng)是基于計(jì)算機(jī)技術(shù),通過(guò)對(duì)軟硬件的剪裁來(lái)滿足用戶對(duì)功能、體積和功耗等方面的需求。相對(duì)于傳統(tǒng)PLC,嵌入式PLC的硬件架構(gòu)更開(kāi)放,指令集也更多,便于用戶編程,因此應(yīng)用范圍更廣、應(yīng)用頻率更高。
從當(dāng)前關(guān)于嵌入式PLC智能控制的研究成果方面來(lái)看,各研究單位加強(qiáng)了對(duì)嵌入式小型 PLC 技術(shù)的研究,也形成了一些技術(shù)積累。但是,由于技術(shù)還不是很完善,因此存在控制效果不佳的問(wèn)題,主要體現(xiàn)在開(kāi)關(guān)量和模擬量?jī)蓚€(gè)方面。為了解決當(dāng)前小型PLC智能控制模塊存在的問(wèn)題,本文深入研究嵌入式技術(shù),對(duì)小型PLC控制模塊加以改進(jìn)。
在嵌入式技術(shù)的支持下,應(yīng)用小型PLC為智能控制模塊核心處理部件[2]。此次小型PLC智能控制模塊的設(shè)計(jì)分為硬件設(shè)備設(shè)計(jì)和智能控制模塊的邏輯設(shè)計(jì)兩個(gè)部分。在硬件設(shè)備和模塊設(shè)計(jì)的交互作用下,完成嵌入式PLC智能控制模塊的邏輯構(gòu)建。具體的嵌入式PLC智能控制模塊邏輯圖如圖1所示。

圖1 嵌入式PLC智能控制模塊邏輯圖
此次以嵌入式技術(shù)為基礎(chǔ)的小型PLC智能控制模塊,選擇MCS8051型號(hào)的PLC作為模塊的核心處理部件,能夠進(jìn)行硬件除法、分支預(yù)測(cè)等處理任務(wù),其內(nèi)部結(jié)構(gòu)如圖2所示。

圖2 模塊內(nèi)部結(jié)構(gòu)圖
圖2所示的PLC是一個(gè)8位二進(jìn)制的中心處理器,即以字節(jié)為單位進(jìn)行數(shù)據(jù)的處理[3]。PLC主要包括三大模塊:運(yùn)算邏輯模塊、定時(shí)控制模塊以及專用寄存器模塊。算術(shù)邏輯單位可以進(jìn)行加、減、乘、除、與、或、非、異或等的邏輯操作指令[4]。
小型PLC由電源、微控制器、存儲(chǔ)器和輸入輸出接口集成電路等部分構(gòu)成,圖3表示的是PLC的基本結(jié)構(gòu)。

圖3 PLC硬件組成框圖
根據(jù)MCS8051的工作模式以及PLC的編程與控制原理,調(diào)整其接口電路。以輸入電路為例,由于設(shè)備輸入界面包含了數(shù)字和模擬量,因此,在進(jìn)行數(shù)據(jù)輸入與采樣時(shí)應(yīng)分別考慮模擬和數(shù)字兩種情況[5]。具體的接口電路調(diào)整結(jié)果如圖4所示。

圖4 PLC設(shè)備輸入接口電路圖
圖4中的Va是通過(guò)信號(hào)調(diào)節(jié)器與線性光耦合器HCNR200進(jìn)行光電絕緣并由AD1輸出的傳感器信號(hào)[6]。對(duì)嵌入式 PLC輸出、LCD等改裝調(diào)整。
按照存儲(chǔ)的控制命令格式,將存儲(chǔ)單元?jiǎng)澐譃閄區(qū)、Y區(qū)、M區(qū)、T區(qū)、VD區(qū)等區(qū)域。X區(qū)存儲(chǔ)從接收外部單元發(fā)送的信號(hào),Y區(qū)存儲(chǔ)要進(jìn)行端口輸出的信號(hào),M區(qū)存儲(chǔ)輔助繼電器信號(hào),VD區(qū)用來(lái)存儲(chǔ)數(shù)據(jù)和執(zhí)行結(jié)果,T區(qū)存儲(chǔ)計(jì)時(shí)器信息[7]。
小型PLC智能控制模塊的任務(wù)工作流程可以分為輸入采樣、用戶程序執(zhí)行、輸出刷新3個(gè)階段[8]。其中,用戶控制任務(wù)調(diào)度算法的具體流程設(shè)計(jì)如圖5所示。

圖5 小型PLC智能控制模塊的工作流程圖
完成梯形圖的掃描后,PLC更新全部鎖存回路,通過(guò)輸出回路驅(qū)動(dòng)外部器件[9]。每次掃描時(shí),PLC還會(huì)執(zhí)行自我診斷程序,檢查各個(gè)輸入、輸出點(diǎn)、內(nèi)存等。再與編程程序通信,以完成相應(yīng)的處理[10]。輸入現(xiàn)場(chǎng)資料,依次進(jìn)行用戶編程、輸出控制信號(hào)、完成一次掃描,進(jìn)入PLC自診斷程序,輸出最終的刷新結(jié)果。實(shí)際的用戶控制任務(wù)調(diào)度處理過(guò)程如下。
計(jì)算當(dāng)前嵌入式PLC的處理能力:
(1)
式中Tn和Ti分別為用戶輸入控制任務(wù)在標(biāo)準(zhǔn)處理器和嵌入式PLC設(shè)備上的執(zhí)行時(shí)間。若λi的計(jì)算結(jié)果高于0.8,則確定當(dāng)前嵌入式PLC設(shè)備具有處理當(dāng)前控制任務(wù)的能力。輸出控制指令轉(zhuǎn)換過(guò)程表示為
(2)
式中VIN和VREF分別為輸入的模擬量電壓和參考電壓。按上述方式轉(zhuǎn)換模塊中所有的控制任務(wù),并計(jì)算各個(gè)控制任務(wù)的動(dòng)態(tài)價(jià)值密度與執(zhí)行緊迫性,計(jì)算公式如式(3)所示。
(3)

完成控制任務(wù)調(diào)度后,對(duì)小型PLC智能控制模塊的控制算法進(jìn)行設(shè)計(jì),其具體流程如圖6所示。

圖6 小型PLC智能控制模塊的控制算法流程圖
從開(kāi)關(guān)量和數(shù)字量?jī)蓚€(gè)方面,實(shí)現(xiàn)小型PLC模塊的智能控制功能。開(kāi)關(guān)量控制過(guò)程也就是被控制對(duì)象啟動(dòng)或停止的控制過(guò)程,開(kāi)關(guān)量取值為“0”或“1”。通過(guò)開(kāi)關(guān)量數(shù)值的切換,實(shí)現(xiàn)被控對(duì)象工作狀態(tài)的控制,而數(shù)字量的控制則是被控對(duì)象運(yùn)行參數(shù)的控制,具體包括速度、位置以及工作頻率等[12]。在開(kāi)關(guān)量的控制過(guò)程中,切換開(kāi)關(guān)量取值并利用控制器驅(qū)動(dòng)相應(yīng)按鈕,實(shí)現(xiàn)對(duì)開(kāi)關(guān)量的控制。控制數(shù)字量需在PLC中將輸入的控制信號(hào)的標(biāo)度進(jìn)行變換處理,標(biāo)度變換過(guò)程為
(4)
式中:X、XF和XV分別為控制信號(hào)的采樣值及其上、下限;M為被控對(duì)象的量程;y0和y對(duì)應(yīng)的是控制參數(shù)的初始值和標(biāo)稱值。以速度參數(shù)控制任務(wù)為例,假設(shè)被控對(duì)象的實(shí)際速度值為νt,速度的控制目標(biāo)為νa,則加減速控制過(guò)程為
(5)
式中:Δ為速度控制量;a為加速值;t為速度參數(shù)的控制時(shí)間。按照上述方式,可實(shí)現(xiàn)參數(shù)控制,若無(wú)其他控制指令,輸出PLC智能控制結(jié)果。
以測(cè)試嵌入式小型PLC智能控制模塊的應(yīng)用效果為目的,設(shè)計(jì)驗(yàn)證實(shí)驗(yàn),并通過(guò)與傳統(tǒng)控制模塊的對(duì)比,體現(xiàn)出優(yōu)化設(shè)計(jì)模塊在智能控制方面的性能優(yōu)勢(shì)。
1)控制對(duì)象
此次實(shí)驗(yàn)選擇機(jī)械生產(chǎn)場(chǎng)景作為研究環(huán)境,選擇機(jī)械工廠中VMC855和STC50型號(hào)的數(shù)控機(jī)床及其內(nèi)部的自動(dòng)加工機(jī)械設(shè)備作為控制對(duì)象。開(kāi)始實(shí)驗(yàn)前,需確定準(zhǔn)備的控制對(duì)象上安裝的驅(qū)動(dòng)設(shè)備正常運(yùn)行。
2)控制任務(wù)樣本
根據(jù)本文小型PLC智能控制模塊的構(gòu)建結(jié)果,分別從開(kāi)關(guān)量控制和數(shù)字量控制兩個(gè)方面設(shè)置實(shí)驗(yàn)控制任務(wù),其中部分控制任務(wù)的設(shè)置情況如表1所示。

表1 控制任務(wù)樣本設(shè)置表
為保證實(shí)驗(yàn)結(jié)果可信度,設(shè)置控制任務(wù)樣本數(shù)量共800個(gè),平均分為5組,且每組控制任務(wù)內(nèi)容均不相同。
3)模塊開(kāi)發(fā)與運(yùn)行環(huán)境
除PLC設(shè)備外,在實(shí)驗(yàn)環(huán)境中還需安裝上位機(jī)設(shè)備,以顯示小型PLC智能控制模塊的智能控制效果。在上位機(jī)中配置BorlandC++Builder編程環(huán)境,支持C++和JAVA兩種編程語(yǔ)言,為編程任務(wù)提供軟件支持。
實(shí)驗(yàn)元件包含TLP521光電耦合器件、ATMEGA169型嵌入式微處理器、線性光耦合器HCNR200、MCS8051型號(hào)單片機(jī)、編碼器等。編寫特定硬件環(huán)境的初始化代碼及系統(tǒng)主要功能模塊,使用預(yù)定義關(guān)鍵字編寫主要實(shí)現(xiàn)代碼,最后編寫應(yīng)用程序主代碼。
完成初始化代碼的編寫、任務(wù)代碼的創(chuàng)建后,執(zhí)行任務(wù)調(diào)度程序。調(diào)度800個(gè)任務(wù),運(yùn)行結(jié)束后,成為一個(gè)新建的任務(wù),并立即進(jìn)入就緒狀態(tài),用該方法模擬繁重的系統(tǒng)應(yīng)用任務(wù)。根據(jù)硬件優(yōu)化結(jié)果,實(shí)現(xiàn)嵌入式小型PLC智能控制模塊的設(shè)定,實(shí)現(xiàn)過(guò)程如圖7所示。

圖7 PLC智能控制模塊編碼實(shí)現(xiàn)過(guò)程
編譯梯形圖,把已編譯的用戶控制任務(wù)程序下載到PLC的內(nèi)存中,由單片機(jī)以周期掃描方式讀取、執(zhí)行用戶程序,實(shí)現(xiàn)預(yù)定的監(jiān)控控制功能。若經(jīng)過(guò)調(diào)試上位機(jī)界面能夠輸出預(yù)期結(jié)果,證明嵌入式小型PLC智能控制模塊調(diào)試成功,可執(zhí)行實(shí)驗(yàn)中的控制任務(wù),否則需重新安裝硬件和軟件程序,直至輸出預(yù)期界面。
在構(gòu)建并調(diào)試完成的基礎(chǔ)上,以自動(dòng)輸入的方式逐條導(dǎo)入準(zhǔn)備的控制任務(wù)指令,利用PLC模塊的編譯功能將控制任務(wù)轉(zhuǎn)換成控制進(jìn)程。在硬件設(shè)備與軟件程序的協(xié)同作用下,得出控制任務(wù)的執(zhí)行結(jié)果。圖8顯示了01號(hào)開(kāi)關(guān)量控制任務(wù)和04號(hào)數(shù)字量控制任務(wù)的輸出結(jié)果。

圖8 嵌入式小型PLC智能控制模塊輸出結(jié)果
實(shí)驗(yàn)中設(shè)置傳統(tǒng)的基于Fuzzy-PID雙模的控制模塊作為實(shí)驗(yàn)的對(duì)比模塊,保證對(duì)比模塊的運(yùn)行環(huán)境與執(zhí)行控制任務(wù)相同。為體現(xiàn)設(shè)計(jì)模塊在控制效果方面的優(yōu)勢(shì),分別設(shè)置開(kāi)關(guān)量控制任務(wù)執(zhí)行成功率、模擬量控制任務(wù)控制誤差和吞吐量3個(gè)指標(biāo)為測(cè)試指標(biāo),其中控制任務(wù)的執(zhí)行成功率的數(shù)值結(jié)果表示為
(6)
式中Nsuccess和Nswitch分別表示模塊成功執(zhí)行的開(kāi)關(guān)控制任務(wù)量和任務(wù)設(shè)置總量。模擬量控制任務(wù)的控制誤差的數(shù)值結(jié)果表示為
εnumber=∑|xtarget-xcontrol|
(7)
式中xtarget和xcontrol對(duì)應(yīng)的是目標(biāo)參數(shù)值和實(shí)際控制值。最終計(jì)算得出ηswitch的值越高、εnumber越小,證明對(duì)應(yīng)模塊的控制效果越好。吞吐量結(jié)果表示為
(8)
式中:T為時(shí)間;numtask為模塊并發(fā)處理的控制任務(wù)量。TPS取值越大,相應(yīng)模塊的控制性能越高。
通過(guò)對(duì)實(shí)時(shí)控制數(shù)據(jù)的讀取,得出嵌入式小型PLC智能控制模塊性能的測(cè)試結(jié)果,其中模塊控制精度的量化測(cè)試結(jié)果如表2所示。

表2 開(kāi)關(guān)量控制任務(wù)測(cè)試數(shù)據(jù)表 單位:個(gè)
將表2中的數(shù)據(jù)代入式(6),可以得出兩個(gè)控制模塊開(kāi)關(guān)量控制任務(wù)運(yùn)行成功率的平均值分別為93.25%和99.63%。模塊數(shù)字量控制結(jié)果如表3所示。

表3 數(shù)字量控制任務(wù)測(cè)試數(shù)據(jù)表 單位:個(gè)
由于模塊控制的參數(shù)單位不同,故控制誤差的測(cè)試結(jié)果以數(shù)值方式表示。將表3數(shù)據(jù)代入到式(7)中得出兩個(gè)模塊平均控制誤差分別為3.2和0.4。綜合開(kāi)關(guān)量和數(shù)字量?jī)煞N類型的控制任務(wù),可確定優(yōu)化設(shè)計(jì)的智能控制模塊的控制效果更優(yōu)。通過(guò)式(8)的計(jì)算得出模塊吞吐量的測(cè)試結(jié)果,如圖9所示。

圖9 嵌入式小型PLC智能控制模塊吞吐量對(duì)比曲線
從圖9中可以直觀地看出,優(yōu)化嵌入式小型PLC智能控制模塊的吞吐量始終高于傳統(tǒng)模塊,即本文設(shè)計(jì)的模塊在控制性能方面更加具有優(yōu)勢(shì)。
在計(jì)算機(jī)網(wǎng)絡(luò)快速發(fā)展的大背景下,PLC的控制技術(shù)也在不斷地革新,并逐步完善。通過(guò)嵌入式技術(shù)的應(yīng)用,有效地改善PLC的智能控制模塊的性能和功能,為今后自動(dòng)控制方面的推廣應(yīng)用打下良好的基礎(chǔ)。