一. PLC的定義
PLC問世以來,盡管時間不長,但發展迅速。為了使其生產和發展標準化,美國電氣制造商協會NEMA經過四年的調查工作,于1984年首先將其正式命名為PC,并給PC作了如下定義:
“PC是一個數字式的電子裝置,它使用了可編程序的記憶體儲存指令。用來執行諸如邏輯,順序,計時,計數與演算等功能,并通過數字或類似的輸入/輸出模塊,以控制各種機械或工作程序。一部數字電子計算機若是從事執行PC之功能著,亦被視為PC,但不包括鼓式或類似的機械式順序控制器。”
以后國際電工委員會(IEC)又先后頒布了PLC標準的草案稿,第二稿,并在1987年2月通過了對它的定義:
“可編程控制器是一種數字運算操作的電子系統,專為在工業環境應用而設計的。它采用一類可編程的存儲器,用于其內部存儲程序,執行邏輯運算,順序控制,定時,計數與算術操作等面向用戶的指令,并通過數字或模擬式輸入/輸出控制各種類型的機械或生產過程。可編程控制器及其有關外部設備,都按易于與工業控制系統聯成一個整體,易于擴充其功能的原則設計。”
總之,可編程控制器是一臺計算機,它是專為工業環境應用而設計制造的計算機。它具有豐富的輸入/輸出接口,并且具有較強的驅動能力。但可編程控制器產品并不針對某一具體工業應用,在實際應用時,其硬件需根據實際需要進行選用配置,其軟件需根據控制要求進行設計編制。
二. PLC的特點
PLC的主要特點: 1、高可靠性;2、豐富的I/O接口模塊;3、采用模塊化結構;4、編程簡單易學;5、安裝簡單,維修方便
PLC的功能:1、邏輯控制;2、定時控制;3、計數控制;4、步進(順序)控制;5、PID控制;6、數據控制:PLC具有數據處理能力。7、通信和聯網;8、其它:PLC還有許多特殊功能模塊,適用于各種特殊控制的要求
三、PLC的分類
1、小型PLC
小型PLC的I/O點數一般在128點以下,其特點是體積小、結構緊湊,整個硬件融為一體,除了開關量I/O以外,還可以連接模擬量I/O以及其他各種特殊功能模塊。它能執行包括邏輯運算、計時、計數、算術運算、數據處理和傳送、通訊聯網以及各種應用指令。
2、中型PLC
中型PLC采用模塊化結構,其I/O點數一般在256~1024點之間。I/O的處理方式除了采用一般PLC通用的掃描處理方式外,還能采用直接處理方式,即在掃描用戶程序的過程中,直接讀輸入,刷新輸出。它能聯接各種特殊功能模塊,
通訊聯網功能更強,指令系統更豐富,內存容量更大,掃描速度更快。
3、大型PLC
一般I/O點數在1024點以上的稱為大型PLC。大型PLC的軟、硬件功能極強。具有極強的自診斷功能。通訊聯網功能強,有各種通訊聯網的模塊,可以構成三級通訊網,實現工廠生產管理自動化。大型PLC還可以采用三CPU構成表決式系統,使機器的可靠性更高。
四. PLC的基本結構
PLC實質是一種專用于工業控制的計算機,其硬件結構基本上與微型計算機相同,
1、中央處理單元(CPU)
中央處理單元(CPU)是PLC的控制中樞。它按照PLC系統程序賦予的功能接收并存儲從編程器鍵入的用戶程序和數據;檢查電源、存儲器、I/O以及警戒定時器的狀態,并能診斷用戶程序中的語法錯誤。為了進一步提高PLC的可靠性,近年來對大型PLC還采用雙CPU構成冗余系統,或采用三CPU的表決式系統。這樣,即使某個CPU出現故障,整個系統仍能正常運行。
2、存儲器
存放系統軟件的存儲器稱為系統程序存儲器。存放應用軟件的存儲器稱為用戶程序存儲器。
PLC存儲空間的分配
雖然各種PLC的CPU的大尋址空間各不相同,但是根據PLC的工作原理,其存儲空間一般包括以下三個區域:
(1)系統程序存儲區
(2)系統RAM存儲區(包括I/O映象區和系統軟設備等)
(3)用戶程序存儲區
系統程序存儲區:在系統程序存儲區中存放著相當于計算機操作系統的系統程序。包括監控程序、管理程序、命令解釋程序、功能子程序、系統診斷子程序等。系統RAM存儲區:系統RAM存儲區包括I/O映象區以及各類軟設備。
(1)I/O映象區:由于PLC投入運行后,只是在輸入采樣階段才依次讀入各輸入狀態和數據,在輸出刷新階段才將輸出的狀態和數據送至相應的外設。因此,它需要一定數量的存儲單元(RAM)以存放I/O的狀態和數據,這些單元稱作I/O映象區。一個開關量I/O占用存儲單元中的一個位(bit),一個模擬量I/O占用存儲單元中的一個字(16個bit)。因此整個I/O映象區可看作兩個部分組成:開關量I/O映象區;模擬量I/O映象區。
(2)系統軟設備存儲區 :除了I/O映象區區以外,系統RAM存儲區還包括PLC內部各類軟設備(邏輯線圈、計時器、計數器、數據寄存器和累加器等)的存儲區。該存儲區又分為具有失電保持的存儲區域和無失電保持的存儲區域,前者在PLC斷電時,由內部的鋰電池供電,數據不會遺失;后者當PLC斷電時,數據被清零。
1)邏輯線圈
與開關輸出一樣,每個邏輯線圈占用系統RAM存儲區中的一個位,但不能直接驅動外設,只供用戶在編程中使用,其作用類似于電器控制線路中的繼電器。 另外,不同的PLC還提供數量不等的特殊邏輯線圈,具有不同的功能。
2)數據寄存器
與模擬量I/O一樣,每個數據寄存器占用系統RAM存儲區中的一個字(16 bits)。 另外,PLC還提供數量不等的特殊數據寄存器,具有不同的功能。
3)計時器
4)計數器
用戶程序存儲區
用戶程序存儲區存放用戶編制的用戶程序。不同類型的PLC,其存儲容量各不相同。
3、電源
PLC的電源在整個系統中起著十分重要得作用。如果沒有一個良好的、可靠得電源系統是無法正常工作的,因此PLC的制造商對電源的設計和制造也十分重視。一般交流電壓波動在+10%(+15%)范圍內,可以不采取其它措施而將PLC直接連接到交流電網上去。
從上述概念可知,假如我們在線修改程序,被修改的塊存放在工作存儲器中,當把程序上載到編程器時,就從工作存儲器傳到編程器。由于斷電會導致RAM數據的丟失,所以假如要安全保存被修改的程序,就必須保存在FEPROM或硬盤上。
硬件組態和參數分配
一些概念:組態就是指在硬件組態的站窗口中分配機架、塊可分布式I/O,可從硬件目錄中選擇部件;參數分配就是建立可分配參數模塊的特性,例如啟動特性、保持區等;設定組態就是設定好的硬件組態和參數分配;實際組態指已存在的實際組態和參數分配,一般是在已裝配的系統中,從PLC的CPU中讀出來的。
組態過程:
啟動硬件組態:新建一個項目(PROJECT),選擇該項目,并插入(INSERT)一個站(STATION),在SIMATIC管理器中選擇硬件站(HARDWARE)雙擊OPEN即可,我們同時可以打開硬件目錄——VIEW-CATALOG,如果選擇標準硬件目錄庫,它會提供所有的機架、模塊和接口模塊。
產生硬件組態:主要選擇機架,指定模塊如何在機架擺放。具體是:
1、 在硬件目錄中打開一個SIMATIC300站的RACK-300(例如是300),雙擊或拖到左邊窗口。這樣在左邊的窗口中就出現兩個機架表:上面的部分顯示一個簡表,下面的部分顯示帶有定貨號、MPI地址和I/O地址的詳細信息。
2、 電源:雙擊或拖拉目錄中的“PS-300”模塊,放到表中的一號槽位上。
3、 CPU:從CPU-300的目錄中選擇你所配置的CPU,列入2號槽位。
4、 3號槽—一般接口模塊保留(用于多層組態),在實際配置中,如果這個位置要保留以后安裝接口模塊,在安裝時就必須插入一個占位模塊。
5、 信號模塊:從4號槽位開始多可以插入八塊信號模塊(SM卡),包括通訊處理器(CP)和功能模塊(FM)。
CPU——屬性包括通用屬性General(主要提供模塊的類型,位置和MPI地址—如果要把幾個PLC通過MPI接口組成網絡,每個CPU分配不同的MPI地址);啟動項目START.UP(主要選擇三種啟動方式,HOT—從斷電時的語句,也就是程序斷電處開始,WARM—從頭,也就是程序步開始,COLD—冷啟動;監視時間包括從模塊讀準備的信息時間和傳遞參數到模塊的時間;可保存數量Retentive Memory:用來指定當出現斷電或從STOP到RUN切換時需要保持的存儲器區域;循環/時鐘存儲器;保護功能(設定鑰匙權限和各種級別及口令);診斷/時鐘。
保存下載及上傳:經過上述設置以后,我們就可以保存、編譯、一致性檢查后,把設定組態下載到PLC中。當然,對實際運行的PLC,我們也可以通過上傳(Upload Station)把實際組態讀到編程器。
硬件診斷及組態中可能出現的問題:在SIMATIC管理器中可以用PLC-Diagnose Hardware來獲得PLC的診斷狀態。在實際組態過程中可能出現的問題是以下幾點:
1、 在S7-300中,組態中有空位置,此時組態不能編譯通過;
2、 不正確的CPU(例如:是CPU 315-2DP,不是CPU 314)此時組態不能下載;
3、 模擬量模塊分配到不正確的槽位置,此時CPU會因為參數分配錯誤進入STOP模式;
4、模擬量模塊不正確的測量范圍,導致模擬量模塊組態錯誤。
塊的編輯
STEP 7編程語言:LAD 梯形圖/FBD功能塊圖/STL語句表,更加豐富,更加靈活,但對初學者比較難以理解,當然某些語言不能用LAD表達。
塊編輯的啟動:選擇所需編程語言,雙擊打開需編輯的塊,如OB1或FC1等。當采用LAD或FBD編程語言時,可用工具條來插入簡單的程序文件,當采用STL,則可用在線幫助得到有關語言的語法和功能——HELP-Help on STL。
編程器組成:聲明表:屬于塊,為塊聲明變量和參數;代碼區:包含程序本身;編程元件:可選打開或關閉,內容依賴于所選擇的編程語言,雙擊插入或拖拉插入。
VIEW菜單:可切換到另一種語言,并可實現LAD/FBD/STL之間的轉換,要知道,LAD/FBD轉換成STL的,在語句表中可能不是有效程序。而STL轉換成其他則不一定行,轉換不了的仍用語句表示,轉換過程絕不會丟失程序。
其他菜單由于篇幅較大,請好結合教材及軟件自己熟悉。
在討論調用塊前先介紹一下OB1塊——主循環塊,不能改名或刪除,它是由操作系統循環調用,可以訪問其他的S7程序塊,它包括自身程序和其他塊的調用。所以,當我們編輯好一個塊以后,如FC1,為了讓新塊集成在CPU中的循環程序中,必須在OB1中調用。即在OB1中CALL F1。 子程序(新塊FC 1)執行的條件有以下三個:已經下載到PLC中,必須在OB1調用,PLC處于運行狀態。 下載到實際的PLC時,我們可以選擇所有塊或其中的一個或幾個,再Download到PLC中。
程序的執行過程:當PLC得電或從STOP切換到RUN模式,CPU會執行一次全啟動(使用OB100)在全啟動期間,操作系統清除非保持位存儲器、定時器和計數器,刪除中斷堆箋和塊堆箋,復位所有保存的硬件中斷,并啟動掃描循環監視時間。
CPU的循環操作包括三個主要部分:CPU檢查輸入信號的狀態并刷新過程影象輸入表(PII..);執行用戶程序,也就是OB1中的程序及一些事件(中斷等);把過程輸出影象輸出表(PIQ)寫到輸出模塊。上面所提到的PII/PIQ是CPU中特定的存儲器,用來保存輸入模塊/輸出模塊的信號,在用戶程序中檢查時,可以保證在一個掃描周期內為同樣的信號狀態。
程序結構:上面曾經提到過,一個比較簡單的程序,我們可以不用各種子程序塊(如FC.FB),而是直接把整個程序直接寫在一個塊上(通常是OB1主塊上),CPU逐條的處理指令,我們稱這種叫線形編程;而對稍微有點復雜的程序,我們可以把它分成幾個塊,每塊包含處理一部分任務的程序,在每一個塊中可以進一步分解、成幾個段,可以為相同類型的段生成段模塊,組織塊OB1包含按順序調用其他塊的指令,我們把這種方法叫分塊編程;另外,對可重復使用的功能裝入單個塊中,OB1(或其他塊)調用這些塊并傳遞相關參數,這種方法叫結構化編程。用戶塊(程序塊)包括程序代碼和用戶數據,在結構化程序中,一些塊循環調用處理,一些塊需要時才調用。程序塊共有組織塊(OB)、功能塊(FB)、功能(FC)、系統功能塊(SFB)和系統功能(FC)5種,其中系統塊是在CPU操作系統中預先定義好的功能和功能塊,這些塊不占用用戶程序空間。