- 電氣控制與西門子S7-300PLC編程技術
- 劉忠超 田金云
- 4386字
- 2020-04-07 16:46:50
2.3 PLC編程環境和工作原理
2.3.1 PLC編程環境
PLC的編程環境是由PLC生產廠家設計的,它包含用戶環境和能把用戶環境與PLC系統聯結起來的編程軟件。只有熟悉了編程環境,了解了編程環境,才能適應編程環境,才能在編程環境中編寫出PLC的用戶程序。
用戶環境包括用戶數據結構、用戶元件區、用戶程序存儲區、用戶參數和文件存儲區等。
(1)用戶數據結構
用戶數據結構分為位數據、字節數據、字數據和混合型數據4類。
第一類為位數據,這是一類邏輯量(1位二進制數),其值為0或1,它表示觸點的通或斷。觸點接通狀態為ON,觸點斷開狀態為OFF。例如,I0.0的值表示在輸入映像區中的一位二進制數的狀態,Q0.0的值則表示在輸出映像區中的一位二進制數的狀態。
第二類為字節數據,其位長為8位,其數制形式有多種形式。一個字節可以表示8位二進制數、兩位十六進制數。例如,IB0的值表示在輸入映像區中的連續8位二進制數的狀態,QB0的值則表示在輸出映像區中的連續8位二進制數的狀態。
第三類為字數據,其數制、位長和形式都有很多。一個字可以表示16位二進制數、4位十六進制數、4位十進制數。十進制數據通常都用BCD碼表示,書寫時有時在前面加上K字符,例如K789;十六進制數據,書寫時會在前面加上H字符,例如H78F。二進制數,書寫時會在前面加上B字符,例如B0111_1000_1111。實際處理時還可選用八進制和ASCII碼的形式。再如IW0表示在輸入映像區中的連續16位二進制數的狀態,QW0則表示在輸出映像區中的連續16位二進制數的狀態。由于對控制精度的要求越來越高,不少PLC開始采用了浮點數,這樣極大地提高了數據運算的精度。
第四類為混合型數據,即同一個元件既有位數據又有字數據,例如T(定時器)和C(計數器),它們的觸點只有ON和OFF兩種狀態,是位數據,而它們的設定值和當前值寄存器又為字數據。
(2)用戶數據存儲區
用戶使用的每個輸入/輸出端,以及內部的每一個存儲單元都稱為元件。各種元件都有其固定的存儲區(例如輸入/輸出映像區),即存儲地址。給PLC中的輸入/輸出元件賦予地址的過程叫作編址。不同的PLC輸入/輸出的編址方法不完全相同,如CQM1的輸入端地址可以為000,001,……通道,輸出端地址為100,101,……通道。
PLC的內部資源,如內部繼電器、定時器、計數器和數據區等,各個不同的PLC之間也有一些差異。這些內部資源都按一定的數據結構存儲在用戶數據存儲區,正確使用用戶數據存儲區的資源才能編好用戶程序。
(3)用戶程序結構
用戶程序是PLC的使用者編制的針對具體工程的應用程序。用戶程序是線性地存儲在PLC的存儲區間內,它的最大容量也是由具體的PLC限制的。
用戶程序結構大致可以分為3種,一是線性程序,這種結構是把一個工程分成多個小的程序塊,這些程序塊被依次排放在一個主程序中;二是分塊程序,這種結構是把一個工程中的各個程序塊獨立于主程序之外,工作時要由主程序一個個有序地去調用;三是結構化程序,這種結構是把一個工程中的具有相同功能的程序寫成通用功能程序塊,工程中的各個程序塊都可以隨時調用這些通用功能程序塊。
2.3.2 PLC編程語言及編程軟件
可編程控制器是通過程序來實現控制的,編寫程序時所用的語言就是PLC的編程語言,PLC編程語言有多種,它是用PLC的編程語言或某種PLC指令的助記符編制而成的。各個元件的助記符隨PLC型號的不同而略有不同。國際電工委員會(IEC)1994年5月公布IEC1131-3標準(PLC的編程語言標準,也是至今唯一的工業控制系統的編程語言標準)中詳細地說明了句法、語義和下述5種編程語言:語句表(Statement List,STL)、梯形圖(Ladder Diagram,LAD)、功能塊圖(Function Block Diagram,FBD)、結構文本(Structured Text,ST)、順序功能圖(Sequential FunctionChart,SFC)。其中梯形圖和語句表編程語言在實際中用的最多,下面著重介紹這兩種語言。
(1)梯形圖(LAD)
梯形圖(LAD)是最常用的PLC編程語言。梯形圖與繼電器的電路圖很相似,它是從繼電器控制系統原理圖演變而來的,是一種類似于繼電器控制線路圖的一種語言。其畫法是從左母線開始,經過觸點和線圈,終止于右母線,具有直觀、易學、易懂的優點,而且很容易被熟悉繼電器控制的工廠電氣技術人員所掌握。西門子PLC的梯形圖具有以下幾個特點。
①梯形圖是一種圖形語言,沿用繼電器控制中的觸點、線圈、串并聯等專業術語和圖形符號。
②梯形圖中的觸點有常開觸點和常閉觸點兩種,觸點可以是PLC輸入點接的開關,也可以是內部繼電器的觸點或內部寄存器、計數器的狀態。
③觸點可以串聯或并聯,但線圈只能并聯,不能串聯。
④觸點和線圈等組成的獨立電路稱為網絡(Network)或程序段。
⑤在程序段號的右邊可以加上程序段的標題,在程序段號的下邊可以加上注釋。
⑥內部繼電器、計數器、寄存器都不能直接控制外部負載,只能作為中間結果供CPU內部使用。圖2-4是啟保停電路的梯形圖。

圖2-4 啟保停電路梯形圖
(2)語句表(STL)
語句表(STL)類似于計算機的匯編語言,但比匯編語言通俗易懂,是PLC的基本編程語言。它用助記符來表示各種指令的功能,指令語句是PLC程序的基本元素,多條語句組合起來就構成了語句表。在編程器的鍵盤上或利用編程軟件的語句表格式都可以進行語句表編程。一般情況下語句表和梯形圖是可以相互轉換的,例如西門子S7-300PLC的STEP7編程軟件在視圖選項中就可以進行語句表和梯形圖的相互轉換?;蛘哂谩綜trl+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提供很好的編程環境和仿真。
③西門子公司設計的STEP7Micro/WIN32編程軟件可以為S7-200系列PLC提供編程環境。
④西門子公司設計的SIMATIC Manager編程軟件可以為S7-300/400系列PLC提供編程環境。
編程軟件在使用前一定要把其裝入滿足條件的計算機中,同時要用專用的通信電纜把計算機和PLC連接好,在確認通信無誤的情況下才能運行編程軟件。
在編程環境中,可以打開編程窗口、監控程序運行窗口、保存程序窗口和設定系統數據窗口,并進行相應的操作。
(4)仿真軟件
隨著計算機技術的發展,PLC的編程環境越來越完善。很多PLC生產廠家不僅設計了方便的編程軟件,而且設計了相應的仿真軟件。只要把仿真軟件嵌入到編程軟件當中,就可以在沒有具體的PLC的情況下利用仿真軟件直接運行和修改PLC程序,使PLC的學習、設計和調試更方便、快捷。如西門子公司設計的S7_PLCSIM仿真軟件就是專門為S7-300/400PLC設計的仿真軟件,S7_200SIM是專門為S7-200PLC設計的仿真軟件,利用這些仿真軟件可以直接運行S7-200和S7-300/400的PLC程序。
2.3.3 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刷新階段集中輸入和集中輸出,所以必然會產生輸出信號相對輸入信號的滯后現象。掃描周期越長,滯后現象就越嚴重。但是一般掃描周期只有十幾毫秒,因此在慢速控制系統中,可以認為輸入信號一旦發生變化就能立即進入輸入映像寄存器中,其對應的輸出信號也可以認為是會及時發生變化的。當某些設備需要輸出對輸入做出快速響應時,可以采取快速響應模塊、高速計數模塊以及中斷處理等措施來盡量減少滯后時間。