plc的基本組成可分為兩大部分:硬件系統(tǒng)和軟件系統(tǒng)。
硬件系統(tǒng)是指組成plc的所有物理電子電路,其中主要有:中央處理器(cpu)、存儲器、輸入/輸出(input/output)接口、通信接口、編程器和電源等部分,此外還有擴展設(shè)備和eprom的讀寫板和打印機等選配的設(shè)備。為了維護(hù)、修理的方便,許多plc采用模塊結(jié)構(gòu)。由中央處理器、存儲器組成主控模塊,輸入單元組成輸入模塊,輸出單元組成輸出模塊,三者通過專用總線構(gòu)成主機,并由電源模塊集中對其提供電能。
編程器可采用袖珍式編程器,也可采用安裝有專門plc編程軟件的通用計算機,通過編程口對plc進(jìn)行編程。
軟件系統(tǒng)是指管理、控制、使用plc,確保plc正常工作的一整套程序。這些程序有的來自plc生產(chǎn)廠家,也有的來自用戶。一般稱前者為系統(tǒng)程序,后者為用戶程序。系統(tǒng)程序是指控制和完成plc各種功能的程序,側(cè)重于管理plc的各種資源、控制和協(xié)調(diào)各硬件的正常動作及關(guān)系,以便充分發(fā)揮整個可編程控制器的使用效率,方便廣大用戶的直接使用。用戶程序是指使用者根據(jù)生產(chǎn)工藝要求編寫的控制程序,它側(cè)重于應(yīng)用,以及輸入、輸出之間的邏輯控制關(guān)系。
plc等效電路中的繼電器并不是實際的物理繼電器,它實質(zhì)上是存儲器單元的一個“位”寄存器?!拔弧奔拇嫫鞯臓顟B(tài)為“1”時,相當(dāng)于繼電器接通;“位”寄存器的狀態(tài)為“0”時,則相當(dāng)于繼電器斷開。因此,稱這些繼電器為“軟繼電器”。
plc是采用“順序掃描,不斷循環(huán)”的方式進(jìn)行工作的,即在plc運行時,cpu根據(jù)用戶按控制要求事先編制好并保存于用戶程序存儲器中的程序,按指令步序號(或地址號)作周期性循環(huán)掃描,如無跳轉(zhuǎn)指令,則從第一條指令開始逐條順序執(zhí)行用戶程序,直至程序結(jié)束,然后重新返回第一條指令,開始下一輪新的掃描。在每次掃描過程中,還要完成對輸入信號的采樣和對輸出狀態(tài)的刷新等工作。
plc的一個掃描周期必須經(jīng)過輸入采樣、程序執(zhí)行和輸出刷新三個階段及其他一些輔助階段,其中的輸入采樣和輸出刷新在有的場合也稱為i/o刷新。
輸入采樣階段:首先以掃描方式將所有輸入端子的通(on)斷(off)狀態(tài)轉(zhuǎn)換成電平的高低狀態(tài)“1”或“0”并保存入輸入鎖存器中;然后,將其寫入各自對應(yīng)的輸入狀態(tài)寄存器中,即刷新輸入;隨即關(guān)閉輸入端口,進(jìn)入程序執(zhí)行階段。
程序執(zhí)行階段:按用戶程序指令存放的先后順序掃描執(zhí)行每條指令,經(jīng)相應(yīng)的運算和處理后,其結(jié)果再寫入輸出狀態(tài)寄存器中,輸出狀態(tài)寄存器中所有的內(nèi)容隨著程序的執(zhí)行而改變。
輸出刷新階段:當(dāng)所有指令執(zhí)行完畢,輸出狀態(tài)寄存器的通(on)斷(off)狀態(tài)在輸出刷新階段送至輸出鎖存器中,并通過一定的方式(繼電器、晶體管或晶閘管)輸出,驅(qū)動相應(yīng)被控設(shè)備工作。
plc的上述工作方式稱之為掃描工作方式,即plc運行時,需要進(jìn)行大量的操作,這使得plc中的cpu只能根據(jù)分時操作原理,按一定的順序,每一時刻執(zhí)行一個操作。當(dāng)plc運行時,在經(jīng)過初始化后,即進(jìn)入掃描工作方式,且周而復(fù)始地重復(fù)進(jìn)行,因此也稱plc的工作方式為“循環(huán)掃描工作方式”。
可以看出,plc在初始化后,進(jìn)入循環(huán)掃描。plc一次掃描的過程,包括公共處理、執(zhí)行程序、循環(huán)時間計算處理、i/o刷新、rs-232端口服務(wù)和外設(shè)端口服務(wù)共五個階段,其所需時間稱為一個工作周期(或掃描周期)。顯然,plc的掃描周期與用戶程序的長短和該plc的掃描速度緊密相關(guān)。
plc在進(jìn)入循環(huán)掃描前的初始化過程,主要是將所有輸入/輸出、內(nèi)部輔助、特殊輔助、輔助記憶繼電器區(qū)域清零,并完成定時器預(yù)置,識別擴展單元等任務(wù),以保證它們在進(jìn)入循環(huán)掃描后,正確無誤地工作。
進(jìn)入循環(huán)掃描后,在公共處理階段,復(fù)位監(jiān)視定時器,進(jìn)行硬件和用戶內(nèi)存檢查等。一切正常后,才能進(jìn)行下一步的操作。如果有異常情況,則根據(jù)錯誤的嚴(yán)重程度發(fā)出報警或錯誤警示,甚至停止plc運行。
在程序執(zhí)行階段,cpu按從左向右,自上而下的順序?qū)γ織l指令進(jìn)行解釋、執(zhí)行,cpu從輸入映像寄存器(每個輸入繼電器對應(yīng)一個輸入映像寄存器,其通/斷狀態(tài)對應(yīng)為“1/0”)和元件映像寄存器(即與各種內(nèi)部繼電器、輸出繼電器對應(yīng)的寄存器)中讀出各繼電器的狀態(tài),根據(jù)用戶程序給出的邏輯關(guān)系[串(與)并(或)關(guān)系等]進(jìn)行邏輯運算,并將運算結(jié)果再寫入元件映像寄存器中。
在掃描周期計算處理階段,若設(shè)定掃描周期為固定值(可由用戶通過dm6619設(shè)定),則進(jìn)入等待循環(huán),直到該指定值到達(dá),再往下進(jìn)行;若設(shè)定掃描周期為不定值(即決定于用戶程序的長短等),則進(jìn)行掃描周期的計算。
在i/o刷新階段,進(jìn)行i/o刷新。cpu從輸入電路中讀取各輸入點狀態(tài),并將此狀態(tài)寫入輸入映像寄存器中;同時將元件映像寄存器的狀態(tài)(1/0)傳送到輸出鎖存電路,再經(jīng)輸出電路隔離和功率放大,驅(qū)動外部負(fù)載。
在外設(shè)端口服務(wù)階段,完成與外設(shè)端口連接的外圍設(shè)備或通信適配器的通信處理。循環(huán)掃描的工作方式,既簡單直觀,又便于用戶程序的設(shè)計,且為plc的可靠運行提供了可靠地保障。這種工作方式,使plc一旦掃描到用戶程序某一指令,經(jīng)處理后,其處理結(jié)果就可立即被用戶程序中后續(xù)掃描到的指令所應(yīng)用,而且plc可通過cpu內(nèi)部設(shè)置的監(jiān)視定時器,監(jiān)視每次掃描是否超過規(guī)定時間,以便有效地避免因cpu內(nèi)部故障而導(dǎo)致程序進(jìn)入死循環(huán)的情況。