- 西門子S7:300400 PLC編程入門及工程實例
- 劉忠超 蓋曉華主編
- 3305字
- 2020-05-20 15:25:41
2.3 PLC開發環境和工作原理
2.3.1 PLC編程語言及編程軟件
可編程控制器是通過程序來實現控制的,編寫程序時所用的語言就是PLC的編程語言,PLC編程語言有多種,它是用PLC的編程語言或某種PLC指令的助記符編制而成的。各個元件的助記符隨PLC型號的不同而略有不同。PLC編程語言根據生產廠商的不同而不同。因為目前沒有統一的通用編程語言,所以在使用不同廠商的PLC時,同一種編程語言也有所不同。在PLC控制系統設計中,要求設計人員不但要了解PLC的硬件性能,還要了解PLC對編程語言支持的種類。
國際電工委員會(IEC)1994年5月公布的IEC6 1131-3標準(PLC的編程語言標準,也是至今唯一的工業控制系統的編程語言標準)中詳細地說明了句法、語義和下述5種編程語言:語句表(Statement List,STL)、梯形圖(Ladder Diagram,LAD)、功能塊圖(Function Block Diagram,FBD)、結構文本(Structured Text,ST)、順序功能圖(Sequential Function Chart,SFC)。其中梯形圖和語句表編程語言在實際中用得最多,下面著重介紹這兩種語言。
(1)梯形圖(LAD)
梯形圖(LAD)是最常用的PLC編程語言。梯形圖與繼電器的電路圖很相似,它是從繼電器控制系統原理圖演變而來的,是一種類似于繼電器控制線路圖的一種語言。其畫法是從左母線開始,經過觸點和線圈,終止于右母線,具有直觀、易學、易懂的優點,而且很容易被熟悉繼電器控制的工廠電氣技術人員所掌握。西門子PLC的梯形圖具有以下幾個特點:
①梯形圖是一種圖形語言,沿用繼電器控制中的觸點、線圈、串并聯等專業術語和圖形符號;
②梯形圖中的觸點有常開觸點和常閉觸點兩種,觸點可以是PLC輸入點接的開關,也可以是內部繼電器的觸點或內部寄存器、計數器的狀態;
③觸點可以串聯或并聯,但線圈只能并聯,不能串聯;
④觸點和線圈等組成的獨立電路稱為網絡(Network)或程序段;
⑤在程序段號的右邊可以加上程序段的標題,在程序段號的下邊可以加上注釋;
⑥內部繼電器、計數器、寄存器都不能直接控制外部負載,只能作為中間結果供CPU內部使用。圖2-4是啟保停電路的梯形圖表示。

圖2-4 啟保停電路梯形圖
(2)語句表(STL)
語句表(STL)類似于計算機的匯編語言,但比匯編語言通俗易懂,是PLC的基本編程語言。它用助記符來表示各種指令的功能,指令語句是PLC程序的基本元素,多條語句組合起來就構成了語句表。在編程器的鍵盤上或利用編程軟件的語句表格式都可以進行語句表編程。一般情況下語句表和梯形圖是可以相互轉換的,例如西門子S7-300 PLC的STEP 7編程軟件在視圖選項中就可以進行語句表和梯形圖的相互轉換。或者用快捷鍵“Ctrl+1/2”就可以實現語句表和梯形圖的相互轉換。要說明的是部分語句表是沒有梯形圖與之相對應的。啟保停電路的梯形圖所對應的語句表如圖2-5所示。

圖2-5 語句表
(3)編程軟件
編程器是PLC重要的編程設備,它不僅可以用來編寫程序,還可以用來輸入數據,以及檢查和監控PLC的運行。一般情況下,編程器只在PLC編程和檢查時使用,在PLC正式運行后往往把編程器卸掉。
隨著計算機技術的發展,PLC生產廠家越來越傾向于設計一些滿足某些PLC的編程、監控和設計要求的編程軟件,這類編程軟件可以在專用的編程器上運行,也可以在普通的個人計算機上運行。這類編程軟件利用了計算機的屏幕大、輸入/輸出信息量多的優勢,使PLC的編程環境更加完美。在很多情況下,裝有編程軟件的計算機在PLC正式運行后還可以掛在系統上,作為PLC的監控設備使用。比如有下列編程軟件。
①OMRON公司設計的CX-P編程軟件可以為OMRON C系列PLC提供很好的編程環境。
②松下電工設計的FPWin_GR編程軟件可以為FP系列PLC提供很好的編程環境和仿真。
③西門子公司設計的STEP 7 Micro/WIN 32編程軟件可以為S7-200系列PLC提供編程環境。
④西門子公司設計的SIMATIC Manager編程軟件可以為S7-300/400系列PLC提供編程環境。
編程軟件在使用前一定要把其裝入滿足條件的計算機中,同時要用專用的通信電纜把計算機和PLC連接好,在確認通信無誤的情況下才能運行編程軟件。
在編程環境中,可以打開編程窗口、監控程序運行窗口、保存程序窗口和設定系統數據窗口,并進行相應的操作。
(4)仿真軟件
隨著計算機技術的發展,PLC的編程環境越來越完善。很多PLC生產廠家不僅設計了方便的編程軟件,而且設計了相應的仿真軟件。只要把仿真軟件嵌入到編程軟件當中,就可以在沒有具體的PLC的情況下利用仿真軟件直接運行和修改PLC程序,使PLC的學習、設計和調試更方便、快捷。西門子公司設計的S7-PLCSIM仿真軟件就是專門為S7-300/400 PLC設計的仿真軟件,S7-200SIM是專門為S7-200 PLC設計的仿真軟件,利用這些仿真軟件可以直接運行S7-200和S7-300/400的PLC程序。
2.3.2 PLC的工作原理
PLC是一種工業控制用的計算機,它的外形不像個人計算機,工作方式也與計算機差別很大。編程語言甚至工作原理都與個人計算機有所不同。
PLC上電后首先要對硬件和軟件進行初始化,當其進入運行狀態后,PLC則采用循環掃描的方式工作。在PLC執行用戶程序時,CPU對程序采取自上而下、自左向右的順序逐次進行掃描,即程序的執行是按語句排列的先后順序進行的。每一次循環掃描所經歷的時間稱為一個掃描周期。每個掃描周期又主要包括輸入刷新、用戶程序執行、輸出刷新三個階段。當PLC初始化后,就會重復執行以上三個階段。在進行用戶程序執行階段時,還包括系統自診斷、通信處理、中斷處理、立即I/O處理等過程。圖2-6所示為PLC的循環掃描工作過程圖。

圖2-6 PLC的循環掃描工作過程圖
(1)輸入刷新(采樣)階段
在輸入刷新階段,PLC以掃描的方式順序讀入所有輸入端子的狀態,并將此狀態存入輸入鎖存器。如果輸入端子上外接電器的觸點閉合,鎖存器中與端子編號相同的那一位就置“1”,否則為“0”。把輸入各端子的狀態全部掃描完畢后,PLC將輸入鎖存器的內容輸入到輸入映像寄存器中。輸入映像寄存器中的內容則直接反映了各輸入端子此刻的狀態。這一過程就是輸入刷新階段。隨著輸入數據輸入到輸入映像寄存器,標志著輸入刷新階段的結束。所以輸入映像寄存器中的內容只是本次輸入刷新時各端子的狀態。在輸入刷新階段結束后,PLC接著進入執行用戶程序階段。在用戶程序執行和輸出刷新期間,輸入端子與輸入鎖存器之間的聯系被中斷,在下一個掃描周期的輸入刷新階段到來之前,無論輸入端子的狀態如何變化,輸入鎖存器的內容都始終保持不變。
(2)用戶程序執行階段
輸入刷新階段結束后,PLC進入用戶程序執行階段。在用戶程序執行階段,PLC總是按照自上而下、自左向右的順序依次執行用戶程序的每條指令。從輸入映像寄存器中讀取輸入端子和內部元件寄存器的狀態,按照控制程序的要求進行邏輯運算和算術運算,并將運算的結果寫入輸出映像寄存器中,如果此時程序運行過程中需要讀入某輸出狀態或中間狀態,則會從輸出映像寄存器中讀入,然后進行邏輯運算,運算后的結果再存入輸出映像寄存器中。對于每個元件,反映各輸出元件狀態的輸出映像寄存器中所存儲的內容,會隨著程序的執行而發生變化,當所有程序都執行完畢后,輸出映像寄存器中的內容也就固定了下來。
(3)輸出刷新階段
當用戶程序的所有指令都執行完后,PLC就進入輸出刷新階段。輸出刷新階段將輸出映像寄存器中的內容存入輸出鎖存器后,再驅動外部設備工作。與輸入刷新階段一樣,PLC對所有外部信號的輸出是統一進行的。在用戶程序執行階段,如果輸出映像寄存器的內容發生改變,將不會影響外部設備的工作,直到輸出刷新階段將輸出映像寄存器的內容集中送出,外部設備的狀態才會發生相應的改變。
由PLC的工作過程可以看出,在輸入刷新期間,如果輸入變量的狀態發生變化,則在本次掃描過程中,改變的狀態會被掃描到輸入映像寄存器中,在PLC的輸出端也會發生相應的變化。如果變量的狀態變化不是發生在輸入刷新階段,則在本次掃描期間PLC的輸出保持不變,等到下一次掃描后輸出才會發生變化。也就是說只有在輸入刷新階段,輸入信號才被采集到輸入映像寄存器中,其他時刻輸入信號的變化不會影響輸入映像寄存器中的內容。
由于PLC采用循環掃描的工作方式,并且對輸入、輸出信號只在每個掃描周期的I/O刷新階段集中輸入和集中輸出,因此必然會產生輸出信號相對輸入信號的滯后現象。掃描周期越長,滯后現象就越嚴重。但是一般掃描周期只有十幾毫秒,因此在慢速控制系統中,可以認為輸入信號一旦發生變化就能立即進入輸入映像寄存器中,其對應的輸出信號也可以認為是會及時發生變化的。當某些設備需要輸出對輸入做出快速響應時,可以采取快速響應模塊、高速計數模塊以及中斷處理等措施來盡量減少滯后時間。