它的工作有兩個(gè)要點(diǎn):入出信息變換、可靠物理實(shí)現(xiàn)。
入出信息變換主要由運(yùn)行存儲(chǔ)于PLC內(nèi)存中的程序?qū)崿F(xiàn)。這程序既有系統(tǒng)的(這程序又稱監(jiān)控程序,或操作系統(tǒng)),又有用戶的。系統(tǒng)程序?yàn)橛脩舫绦蛱峁┚庉嬇c運(yùn)行平臺(tái),同時(shí),還進(jìn)行必要的公共處理,如自檢,I/O刷新,與外設(shè)、上位計(jì)算機(jī)或其它PLC通訊等處理。用戶程序由用戶按照控制的要求進(jìn)行設(shè)計(jì)。什么樣的控制,就有什么樣的用戶程序。
可靠物理實(shí)現(xiàn)主要通過輸入(I, INPUT)及輸出(O, OUTPUT)電路。每一輸入點(diǎn)或輸出點(diǎn)就有一個(gè)I或O電路。而且,總是把若干個(gè)這樣電路集成在一個(gè)模塊(或箱體)中,然后再由若干個(gè)模塊(或箱體)集成為PLC完整的I/O系統(tǒng)(電路)。盡管這些模塊相當(dāng)多,占了PLC體積的大部分,但由于它們都是由高度集成化的,所以,PLC的體積還是不太大的。
輸入電路時(shí)刻監(jiān)視著輸入點(diǎn)的(通、ON或斷、OFF)狀態(tài),并將此狀態(tài)暫存于它的輸入暫存器(還可能有別的稱謂)中。每一輸入點(diǎn)都有一個(gè)與其對(duì)應(yīng)的輸入暫存器。
輸出電路有輸出鎖存器(還可能有別的稱謂)。它也有兩個(gè)狀態(tài),高、低電位狀態(tài),并可鎖存。同時(shí),它還有相應(yīng)的物理電路,可把這個(gè)高、低電位的狀態(tài)傳送給輸出點(diǎn)。每一輸出點(diǎn)都有一個(gè)與其對(duì)應(yīng)的輸出鎖存器。
這里的輸入暫存器及輸出鎖存器實(shí)際是PLC的I/O電路的寄存器。它們與PLC內(nèi)存交換信息通過PLC I/O總線及運(yùn)行PLC的系統(tǒng)程序?qū)崿F(xiàn)。
把輸入暫存器的信息讀到PLC的內(nèi)存中,稱輸入刷新。PLC內(nèi)存有專門開辟的存放輸入信息的映射區(qū)。這個(gè)區(qū)的每一對(duì)應(yīng)位(bit)稱為輸入繼電器,或稱軟觸點(diǎn),或稱為過程映射輸入寄存器(the process-image input register)。這些位(bit)置成1,表示觸點(diǎn)通,置成0為觸點(diǎn)斷。由于它的狀態(tài)是由輸入刷新得到的,所以,它反映的就是輸入點(diǎn)的狀態(tài)。
輸出鎖存器與PLC內(nèi)存中的輸出映射區(qū)也是對(duì)應(yīng)的。一個(gè)輸出鎖存器也有一個(gè)內(nèi)存位(bit)與其對(duì)應(yīng),這個(gè)位稱為輸出繼電器,或稱輸出線圈,或稱為過程映射輸出寄存器(the process-image output register)。通過PLC I/O總線及運(yùn)行系統(tǒng)程序,輸出繼電器的狀態(tài)將映射給輸出鎖存器。這個(gè)映射的完成也稱輸出刷新。
PLC除了有可接收開關(guān)信號(hào)的輸入電路,有時(shí),還有接收模擬信號(hào)的輸入電路(稱模擬量輸入單元或模塊)。只是后者先要進(jìn)行模、數(shù)轉(zhuǎn)換,然后,再把轉(zhuǎn)換后的數(shù)據(jù)存入PLC相應(yīng)的內(nèi)存單元中。
如要產(chǎn)生模擬量輸出,則要配有模擬量輸出電路(稱模擬量輸出模塊或單元)??克鼘?duì)PLC相應(yīng)的內(nèi)存單元的內(nèi)容進(jìn)行數(shù)、模轉(zhuǎn)換,并產(chǎn)生輸出。
這樣,用戶所要編的程序只是,PLC輸入有關(guān)的內(nèi)存區(qū)到輸出有關(guān)的內(nèi)存區(qū)的變換。這是一個(gè)數(shù)據(jù)及邏輯處理問題。由于PLC有強(qiáng)大的指令系統(tǒng),編寫出滿足這個(gè)要求的程序是完全可能的。
圖1-1對(duì)以上敘述作了說明。其中框圖代表信息存儲(chǔ)的地點(diǎn),箭頭代表信息的流向及實(shí)現(xiàn)信息流動(dòng)的手段。這個(gè)圖,既反映了PLC實(shí)現(xiàn)控制的兩個(gè)基本要點(diǎn),同時(shí)也反映了信息在PLC中的空間關(guān)系。
簡(jiǎn)單地說,PLC工作過程是:輸入刷新---運(yùn)行用戶程序---輸出刷新,再輸入刷新---再運(yùn)行用戶程序---再輸出刷新⋯⋯永不停止地循環(huán)反復(fù)地進(jìn)行著。
圖2所示的流程圖反映的就是上述過程。它也反映了信息間的時(shí)間關(guān)系。
a- 簡(jiǎn)化工作流程圖b – 實(shí)際工作流程圖
圖1-2 PLC工作流程圖
有了上述過程,用PLC實(shí)現(xiàn)控制顯然是可能的。因?yàn)椋河辛溯斎胨⑿?,可把輸入電路監(jiān)視得到的輸入信息存入PLC的輸入映射區(qū);經(jīng)運(yùn)行用戶程序,輸出映射區(qū)將得到變換后的信息;再經(jīng)輸出刷新,輸出鎖存器將反映輸出映射區(qū)的狀態(tài),并通過輸出電路產(chǎn)生相應(yīng)的輸出。又由于這個(gè)過程是永不停止地循環(huán)反復(fù)地進(jìn)行著,所以,輸出總是反映輸入的變化。只是響應(yīng)的時(shí)間上,略有滯后。但由于PLC的工作速度很快,所以,這個(gè)“略有滯后”的時(shí)間是很短的,一般也就是幾豪秒、幾十豪秒,最多也不會(huì)超過100到200毫秒。
圖1-2a所示的是簡(jiǎn)化的過程,實(shí)際的PLC工作過程還要復(fù)雜些。除了I/O刷新及運(yùn)行用戶程序,還要做些其它的公共處理工作。公共處理工作有:循環(huán)時(shí)間監(jiān)視、外設(shè)服務(wù)及通訊處理等。
監(jiān)視循環(huán)時(shí)間的目的是避免用戶程序“死循環(huán)”,保證PLC能正常工作。為避免用戶程序“死循環(huán)”的辦法是用“看門狗”(Watching dog),即設(shè)一個(gè)定時(shí)器,監(jiān)測(cè)用戶程序的運(yùn)行時(shí)間。只要循環(huán)超時(shí),即報(bào)警,或作相應(yīng)處理。
外設(shè)服務(wù)是讓PLC可接受編程器對(duì)它的操作,或向編程器輸出數(shù)據(jù)。
通訊處理是實(shí)現(xiàn)與計(jì)算機(jī),或與其它PLC,或與智能操作器、傳感器進(jìn)行信息交換的。這也是增強(qiáng)PLC控制能力的需要。
也就是說,實(shí)際的PLC工作過程總是:公共處理——I/O刷新——運(yùn)行用戶程序——再公共處理——⋯反復(fù)不停地重復(fù)著。圖1-2b所示的是實(shí)際的過程。
此外,PLC上電后,也要進(jìn)行系統(tǒng)自檢及內(nèi)存的初始化工作,為PLC的正常運(yùn)行做好準(zhǔn)備。
用這種不斷地重復(fù)運(yùn)行程序以實(shí)現(xiàn)控制,稱掃描方式工作。是PLC基本的工作方式。
此外,為了應(yīng)對(duì)緊急任務(wù),PLC還有中斷工作方式。在中斷方式下,需處理的任務(wù)先申請(qǐng)中斷,被響應(yīng)后停止正運(yùn)行的程序,轉(zhuǎn)而去處理中斷工作(運(yùn)行有關(guān)中斷的服務(wù)程序)。待處理完中斷,又返回運(yùn)行原來程序。
PLC的中斷方式的任務(wù),或稱事件,是分等級(jí)的。同時(shí)出現(xiàn)兩個(gè)或多個(gè)中斷事件,則優(yōu)先級(jí)高的先處理,繼而處理低的。直到全部處理完中斷任務(wù),再轉(zhuǎn)為執(zhí)行掃描程序。
PLC對(duì)大量控制都用掃描方式工作,而對(duì)個(gè)別急需的處理,則用中斷方式。這樣,既可做到所有的控制都能照顧到,而個(gè)別應(yīng)急的任務(wù)也能及時(shí)進(jìn)行處理。
當(dāng)然,PLC的實(shí)際工作過程比這里講的還要復(fù)雜一些,分析其基本原理,也還有一些理論問題。但如果能弄清上面介紹的思路,也可知到PLC是怎么工作的了。