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