*節(jié) PLC概念 1、PLC的基本概念 可編程控制器Programmable Controller是計(jì)算機(jī)家族中的一員,,是為工業(yè)控制應(yīng)用而設(shè)計(jì)制造的,。早期的可編程控制器稱(chēng)作可編程邏輯控制器Programmable Logic Controller,,簡(jiǎn)稱(chēng)PLC,它主要用來(lái)代替繼電器實(shí)現(xiàn)邏輯控制,。隨著技術(shù)的發(fā)展,,這種裝置的功能已經(jīng)大大超過(guò)了邏輯控制的范圍,因此,,今天這種裝置稱(chēng)作可編程控制器,,簡(jiǎn)稱(chēng)PC,。但是為了避免與個(gè)人計(jì)算機(jī)Personal Computer的簡(jiǎn)稱(chēng)混淆,所以將可編程控制器簡(jiǎn)稱(chēng)PLC 2,、PLC的基本結(jié)構(gòu) PLC實(shí)質(zhì)是一種于工業(yè)控制的計(jì)算機(jī),,其硬件結(jié)構(gòu)基本上與微型計(jì)算機(jī)相同,如圖所示: a. *處理單元CPU *處理單元CPU是PLC的控制中樞,。它按照PLC系統(tǒng)程序賦予的功能接收并存儲(chǔ)從編程器鍵入的用戶程序和數(shù)據(jù),;檢查電源、存儲(chǔ)器,、I/O以及警戒定時(shí)器的狀態(tài),,并能診斷用戶程序中的語(yǔ)法錯(cuò)誤。當(dāng)PLC投入運(yùn)行時(shí),,首先它以掃描的方式接收現(xiàn)場(chǎng)各輸入裝置的狀態(tài)和數(shù)據(jù),,并分別存入I/O映象區(qū),然后從用戶程序存儲(chǔ)器中逐條讀取用戶程序,,經(jīng)過(guò)命令解釋后按指令的規(guī)定執(zhí)行邏輯或算數(shù)運(yùn)算的結(jié)果送入I/O映象區(qū)或數(shù)據(jù)寄存器內(nèi),。等所有的用戶程序執(zhí)行完畢之后,z后將I/O映象區(qū)的各輸出狀態(tài)或輸出寄存器內(nèi)的數(shù)據(jù)傳送到相應(yīng)的輸出裝置,,如此循環(huán)運(yùn)行到停止運(yùn)行,。 為了進(jìn)一步提高PLC的可*性,近年來(lái)對(duì)大型PLC還采用雙CPU構(gòu)成冗余系統(tǒng),,或采用三CPU的表決式系統(tǒng),。這樣,即使某個(gè)CPU出現(xiàn)故障,,整個(gè)系統(tǒng)仍能正常運(yùn)行,。 b、存儲(chǔ)器 存放系統(tǒng)軟件的存儲(chǔ)器稱(chēng)為系統(tǒng)程序存儲(chǔ)器,。 存放應(yīng)用軟件的存儲(chǔ)器稱(chēng)為用戶程序存儲(chǔ)器,。 C、電源 PLC的電源在整個(gè)系統(tǒng)中起著十分重要得作用,。如果沒(méi)有一個(gè)良好的,、可*得電源系統(tǒng)是無(wú)法正常工作的,因此PLC的制造商對(duì)電源的設(shè)計(jì)和制造也十分重視,。一般交流電壓波動(dòng)在+10%+15%范圍內(nèi),,可以不采取其它措施而將PLC直接連接到交流電網(wǎng)上去。 3,、PLC的工作原理 一. 掃描技術(shù) 當(dāng)PLC投入運(yùn)行后,,其工作過(guò)程一般分為三個(gè)階段,即輸入采樣、用戶程序執(zhí)行和輸出刷新三個(gè)階段,。完成上述三個(gè)階段稱(chēng)作一個(gè)掃描周期,。在整個(gè)運(yùn)行期間,PLC的CPU以一定的掃描速度重復(fù)執(zhí)行上述三個(gè)階段,。 一 輸入采樣階段 在輸入采樣階段,,PLC以掃描方式依次地讀入所有輸入狀態(tài)和數(shù)據(jù),并將它們存入I/O映象區(qū)中的相應(yīng)得單元內(nèi),。輸入采樣結(jié)束后,,轉(zhuǎn)入用戶程序執(zhí)行和輸出刷新階段。在這兩個(gè)階段中,,即使輸入狀態(tài)和數(shù)據(jù)發(fā)生變化,,I/O映象區(qū)中的相應(yīng)單元的狀態(tài)和數(shù)據(jù)也不會(huì)改變,。因此,,如果輸入是脈沖信號(hào),則該脈沖信號(hào)的寬度必須大于一個(gè)掃描周期,,才能保證在任何情況下,,該輸入均能被讀入。 二 用戶程序執(zhí)行階段 在用戶程序執(zhí)行階段,,PLC總是按由上而下的順序依次地掃描用戶程序梯形圖,。在掃描每一條梯形圖時(shí),又總是先掃描梯形圖左邊的由各觸點(diǎn)構(gòu)成的控制線路,,并按先左后右,、先上后下的順序?qū)τ捎|點(diǎn)構(gòu)成的控制線路進(jìn)行邏輯運(yùn)算,然后根據(jù)邏輯運(yùn)算的結(jié)果,,刷新該邏輯線圈在系統(tǒng)RAM存儲(chǔ)區(qū)中對(duì)應(yīng)位的狀態(tài),;或者刷新該輸出線圈在I/O映象區(qū)中對(duì)應(yīng)位的狀態(tài);或者確定是否要執(zhí)行該梯形圖所規(guī)定的特殊功能指令,。 即,,在用戶程序執(zhí)行過(guò)程中,只有輸入點(diǎn)在I/O映象區(qū)內(nèi)的狀態(tài)和數(shù)據(jù)不會(huì)發(fā)生變化,,而其他輸出點(diǎn)和軟設(shè)備在I/O映象區(qū)或系統(tǒng)RAM存儲(chǔ)區(qū)內(nèi)的狀態(tài)和數(shù)據(jù)都有可能發(fā)生變化,,而且排在上面的梯形圖,其程序執(zhí)行結(jié)果會(huì)對(duì)排在下面的凡是用到這些線圈或數(shù)據(jù)的梯形圖起作用,;相反,,排在下面的梯形圖,其被刷新的邏輯線圈的狀態(tài)或數(shù)據(jù)只能到下一個(gè)掃描周期才能對(duì)排在其上面的程序起作用,。 三 輸出刷新階段
當(dāng)掃描用戶程序結(jié)束后,,PLC就進(jìn)入輸出刷新階段。在此期間,CPU按照I/O映象區(qū)內(nèi)對(duì)應(yīng)的狀態(tài)和數(shù)據(jù)刷新所有的輸出鎖存電路,,再經(jīng)輸出電路驅(qū)動(dòng)相應(yīng)的外設(shè),。這時(shí),才是PLC的真正輸出,。
比較下二個(gè)程序的異同:
程序1:
程序2:
這兩段程序執(zhí)行的結(jié)果*一樣,,但在PLC中執(zhí)行的過(guò)程卻不一樣。
※ 程序1只用一次掃描周期,,就可完成對(duì)%M4的刷新,;
※ 程序2要用四次掃描周期,才能完成對(duì)%M4的刷新,。
這兩個(gè)例子說(shuō)明:同樣的若干條梯形圖,,其排列次序不同,執(zhí)行的結(jié)果也不同,。另外,,也可以看到:采用掃描用戶程序的運(yùn)行結(jié)果與繼電器控制裝置的硬邏輯并行運(yùn)行的結(jié)果有所區(qū)別。當(dāng)然,,如果掃描周期所占用的時(shí)間對(duì)整個(gè)運(yùn)行來(lái)說(shuō)可以忽略,,那么二者之間就沒(méi)有什么區(qū)別了。
一般來(lái)說(shuō),,PLC的掃描周期包括自診斷,、通訊等,如下圖所示,,即一個(gè)掃描周期等于自診斷,、通訊、輸入采樣,、用戶程序執(zhí)行,、輸出刷新等所有時(shí)間的總和。
二. PLC的I/O響應(yīng)時(shí)間
為了增強(qiáng)PLC的抗*力,,提高其可*性,,PLC的每個(gè)開(kāi)關(guān)量輸入端都采用光電隔離等技術(shù)。
為了能實(shí)現(xiàn)繼電器控制線路的硬邏輯并行控制,,PLC采用了不同于一般微型計(jì)算機(jī)的運(yùn)行方式掃描技術(shù),。
以上兩個(gè)主要原因,使得PLC得I/O響應(yīng)比一般微型計(jì)算機(jī)構(gòu)成的工業(yè)控制系統(tǒng)滿的多,,其響應(yīng)時(shí)間至少等于一個(gè)掃描周期,,一般均大于一個(gè)掃描周期甚至更長(zhǎng)。
所謂I/O響應(yīng)時(shí)間指從PLC的某一輸入信號(hào)變化開(kāi)始到系統(tǒng)有關(guān)輸出端信號(hào)的改變所需的時(shí)間,。其z短的I/O響應(yīng)時(shí)間與z長(zhǎng)的I/O響應(yīng)時(shí)間如圖所示: 第n-1個(gè)
掃描周期
z短I/O響應(yīng)時(shí)間:
z長(zhǎng)I/O響應(yīng)時(shí)間 SIEMENS PLC在中國(guó)的產(chǎn)品,,根據(jù)規(guī)模和性能的大小,主要有 S7-200 S7-300 和S7-400三種,下面就簡(jiǎn)單介紹一下該三種產(chǎn)品的一些特性,。
S7-200
針對(duì)低性能要求的摸塊化小控制系統(tǒng),,它z多可有7個(gè)模塊的擴(kuò)展能力,在模塊中集成背板總線,,它的網(wǎng)絡(luò)聯(lián)接有RS-485通訊接口和PROFIBUS兩種,,可通過(guò)編程器PG訪問(wèn)所有模塊,帶有電源,、CPU和I/O的一體化單元設(shè)備,。
其中的擴(kuò)展模塊(EM)有以下幾種:數(shù)字量輸入模塊(DI)——24VDC 和 120/230VAC;數(shù)字量輸出(DO)——24VDC 和 繼電器,;模擬量輸入模塊(AI)——電壓,、電流、電阻和熱電偶,;模擬量輸出模塊——電壓和電流,。 還有一個(gè)比較特殊的模塊-通訊處理器(CP)——該塊的功能是可以把S7-200作為主站連接到AS-接口(傳感器和執(zhí)行器接口),通過(guò)AS-接口的從站可以控制多達(dá)248個(gè)設(shè)備,,這樣就可以顯著的擴(kuò)展S7-200的輸入和輸出點(diǎn)數(shù),。
CPU設(shè)計(jì)
有3種手動(dòng)選擇操作模式:STOP——停機(jī)模式,,不執(zhí)行程序,;TERM——運(yùn)行程序,可以通過(guò)編程器進(jìn)行讀/寫(xiě)訪問(wèn),;RUN——運(yùn)行程序,,通過(guò)編程器僅能進(jìn)行讀操作。
狀態(tài)指示器(LED):SF——系統(tǒng)錯(cuò)誤或(和)CPU內(nèi)部錯(cuò)誤,;RUN——運(yùn)行模式,,綠燈;STOP——停機(jī)模式,,黃燈,;DP——分布式I/O(僅對(duì)CPU-215)。
存儲(chǔ)器卡——用來(lái)在沒(méi)電的情況下不需要電池就可以保存用戶程序,。PPI口用來(lái)連接編程設(shè)備,、文本顯示器或其他CPU。
S7-300
相比較S7-200,,S7-300針對(duì)的是中小系統(tǒng),,他的模塊可以擴(kuò)展多達(dá)32個(gè)模塊,背板總線也在模塊內(nèi)集成,,它的網(wǎng)絡(luò)連接已比較成熟和流行,,有MPI(多點(diǎn)接口)、PROFIBUS和工業(yè)以太網(wǎng),使通訊和編程變的簡(jiǎn)單和多選性,,并可以借助于HWConfig工具可以進(jìn)行組態(tài)和設(shè)置參數(shù),。
S7-300的模塊稍微多一點(diǎn),除了信號(hào)模塊(SM)和200的EM模塊同類(lèi)型之外,,它還有接口模塊(IM)——用來(lái)進(jìn)行多層組態(tài),,把總線從一層傳到另一層;占位模塊(DM)——為沒(méi)有設(shè)置參數(shù)的信號(hào)模塊保留一個(gè)插槽或?yàn)橐院蟀惭b的接口模塊保留一個(gè)插槽,;功能模塊(FM)——執(zhí)行特殊功能,,如計(jì)數(shù)、定位,、閉環(huán)控制相當(dāng)于對(duì)CPU功能的一個(gè)擴(kuò)展或補(bǔ)充,;通訊處理器(CP)——提供點(diǎn)對(duì)點(diǎn)連接、PROFIBUS和工業(yè)以太網(wǎng),。
CPU設(shè)計(jì)
模式選擇器有:MRES=模塊復(fù)位功能,;STOP=停止模式,程序不執(zhí)行,;RUN=程序執(zhí)行,,編程器只讀操作;RUN-P=程序執(zhí)行,,編程器可讀寫(xiě)操作,。
狀態(tài)指示器:SF,BATF=電池故障,;DC5V=內(nèi)部5 V DC電壓指示,;FRCE=表示至少有一個(gè)輸入或輸出被強(qiáng)制;RUN=當(dāng)CPU啟動(dòng)時(shí)閃爍,,在運(yùn)行模式下常亮,;STOP=在停止模式下常亮,有存儲(chǔ)器復(fù)位請(qǐng)求時(shí)慢速閃爍,,正在執(zhí)行復(fù)位時(shí)快速閃爍,。
MPI接口用來(lái)連接到編程設(shè)備或其他設(shè)備,DP接口用來(lái)直接連接到分布式I/O,。
S7-400
同300的區(qū)別主要是規(guī)模和性能上更強(qiáng)大,,啟動(dòng)類(lèi)型有冷啟動(dòng)(CRST)和熱啟動(dòng)(WRST)之分,其他基本一樣,。哦,,它還有一個(gè)外部的電池電源接口,當(dāng)在線更換電池時(shí)可以向RAM提供后備電源,。 編程設(shè)備 編程設(shè)備主要有PG720 PG740 PG760——可以理解成裝有編程軟件的手提電腦,;也可以直接用安裝有STEP7(SIEMENS的編程軟件)的PC來(lái)完成,。而實(shí)現(xiàn)通訊(要編程首先要和PLC的CPU通訊上)的要求主要在于接口:1.可以在PC上裝CP5611卡——上面有MPI口,可用電纜直接連接,。2.加個(gè)PC適配器,,把MPI口轉(zhuǎn)換成RS-232口后接到PC上。3.PLC加CP343卡,,使它具有以太網(wǎng)口,。一個(gè)工程的建立 項(xiàng)目管理 每個(gè)自動(dòng)化過(guò)程都是由許多較小的部分和子過(guò)程組成,所以工程建立的*個(gè)任務(wù)是分解子任務(wù),。而每個(gè)子任務(wù)定義了自動(dòng)化系統(tǒng)要完成的硬件和軟件要求,。其中硬件包括輸入/輸出數(shù)目和類(lèi)型,對(duì)應(yīng)模塊序號(hào)和類(lèi)型,,所用機(jī)架號(hào),,CPU型號(hào)和容量,HMI(人機(jī)界面)系統(tǒng),,網(wǎng)絡(luò)系統(tǒng),。軟件方面主要是程序結(jié)構(gòu),自動(dòng)化過(guò)程中的數(shù)據(jù)管理,,組態(tài)數(shù)據(jù),、通訊數(shù)據(jù)及程序和項(xiàng)目文檔。在SIEMENS的S7中,,上述工作都在項(xiàng)目管理(SIMATIC 管理器),,包括必須的硬件(+組態(tài)),網(wǎng)絡(luò)(+組態(tài)),,所有程序和自動(dòng)化解決方案的數(shù)據(jù)管理,。 F1在線幫助,。 SIMATIC管理器管理STEP 7項(xiàng)目,,編寫(xiě) STEP 7用戶程序的工具,有梯形圖LAD,,語(yǔ)句表STL,,和功能塊圖FBD,編程語(yǔ)言,。利用編程器或外部編程器可以把用戶程序保存到EPROM卡上,。 SIMATIC管理器是一個(gè)在線/離線編輯S7對(duì)象的圖形化用戶界面,這些對(duì)象包括項(xiàng)目,、用戶程序,、快、硬件站和工具,。此管理器的用戶界面中工具條和WINDOWS差不多,,就是多了幾個(gè)PLC菜單——顯示訪問(wèn)節(jié)點(diǎn),、存儲(chǔ)器卡、下載,、仿真模塊,。
注::由于目前主流系統(tǒng)是S7-300,所以下面的操作基本以S7-300為主,,而實(shí)際過(guò)程由于配置的不同可能會(huì)有所不同,。
STEP 7項(xiàng)目結(jié)構(gòu):項(xiàng)目中,數(shù)據(jù)以對(duì)象形式存儲(chǔ),,按樹(shù)型結(jié)構(gòu)組織,。 *級(jí):包含項(xiàng)目圖表,每個(gè)項(xiàng)目代表和項(xiàng)目存儲(chǔ)有關(guān)的一個(gè)數(shù)據(jù)結(jié)構(gòu),。 第二級(jí):站(如S7-300)用于存放硬件組態(tài)和模塊參數(shù)等信息,,站是組態(tài)硬件的起點(diǎn)。 S7程序文件夾是編寫(xiě)程序的起點(diǎn),,所有S7系列的軟件均放在S7程序文件夾下,,它包含程序塊文件和源文件夾。 SIMATIC的網(wǎng)絡(luò)圖表(MPI,、PROFIBUS,、工業(yè)以太網(wǎng)) 第三級(jí)和其他級(jí):和上級(jí)對(duì)象類(lèi)型有關(guān)。編程器可離線/在線查看項(xiàng)目——OFFLINE:編程器硬盤(pán)上的內(nèi)容,;ONLINE:通過(guò)網(wǎng)線從PLC讀到的內(nèi)容,。 菜單選項(xiàng): 在OPTIONS-CUSTOMIZE 設(shè)置語(yǔ)言、助記符,、常用特性(存儲(chǔ)位置,、系統(tǒng)信息顯示)。 創(chuàng)建一個(gè)項(xiàng)目:FILE NEW NEW PROJECT 插入 S7程序塊:INSERT PROGRAM S7 PROGRAM 插入 S7 塊: INSERT S7 BLOCK 然后可選:1:組織塊(OB)被操作系統(tǒng)調(diào)用,,他們是操作系統(tǒng)和用戶程序的接口,。 2:功能FC和功能塊FB是實(shí)際的用戶程序利用他們可以 把復(fù)雜的程序分解成小的,易于調(diào)試的單元,。3:數(shù)據(jù)塊存儲(chǔ)用戶的數(shù)據(jù),。選擇所需塊類(lèi)型后,會(huì)打開(kāi)一個(gè)屬性對(duì)話框,,其中可輸入塊序號(hào)和要使用的編程語(yǔ)言,,及其他設(shè)置。 補(bǔ)充一下: 1,、內(nèi)存總清——MRES=MEMORY RESET,,經(jīng)過(guò)MRES的模塊相當(dāng)于一個(gè)新模塊,所以請(qǐng)務(wù)必謹(jǐn)慎,。方法是:放在MRES足夠時(shí)間,,到STOP指示燈閃2下,;彈回到STOP再迅速放到MRES,此時(shí)STOP快速閃6下——內(nèi)存清空,,將刪除所有用戶程序數(shù)據(jù),,硬件測(cè)試和初始化,如果此時(shí)裝有EPROM卡,,把卡內(nèi)容COPY到內(nèi)部RAM區(qū),。 2、SIEMENS的信號(hào)模塊(SM)結(jié)構(gòu)設(shè)計(jì),,接線非常方便,,更換摸板無(wú)需接線(可拔下來(lái))。固定方式有彈簧和螺釘連接兩3,、對(duì)于軟件的*:在光盤(pán)安裝后以后,,一定要用軟盤(pán)(權(quán)盤(pán))*,對(duì)于重裝系統(tǒng)或軟件的,,一定要先”收回“權(quán)到軟盤(pán)以后,,才進(jìn)行,以便重裝以后再次*,,否則只能西門(mén)子了,。硬件組態(tài)和存儲(chǔ)器概念 S7-300的存儲(chǔ)器概念: 裝載存儲(chǔ)器是一個(gè)可編程模塊,它包括建立在編程設(shè)備上的裝載對(duì)象(邏輯塊,、數(shù)據(jù)塊和其他信息),,它可以是存儲(chǔ)器卡或內(nèi)部集成的RAM。存儲(chǔ)器卡一般有兩種,,其中,,當(dāng)采用RAM存儲(chǔ)器卡時(shí),系統(tǒng)必須配備電池,,當(dāng)采用Flash EPROM存儲(chǔ)器卡時(shí),,則斷電不會(huì)丟失,但內(nèi)部RAM中的數(shù)據(jù)仍需電池保持,。工作存儲(chǔ)器僅包含和運(yùn)行時(shí)間使用的程序和數(shù)據(jù),,RAM工作存儲(chǔ)器集成在CPU中,通過(guò)后備電池保持,。系統(tǒng)存儲(chǔ)器包括過(guò)程映象輸入和輸出表(PII,PIQ),,位存儲(chǔ)器,,定時(shí)器,計(jì)數(shù)器和局部堆踐,。保持存儲(chǔ)器是非揮發(fā)的RAM,,即使沒(méi)有安裝后備電池也可用來(lái)保持某些數(shù)據(jù),,設(shè)置CPU參數(shù)時(shí)要保持的區(qū)域。 從上述概念可知,,假如我們?cè)诰€修改程序,,被修改的塊存放在工作存儲(chǔ)器中,當(dāng)把程序上載到編程器時(shí),,就從工作存儲(chǔ)器傳到編程器,。由于斷電會(huì)導(dǎo)致RAM數(shù)據(jù)的丟失,所以假如要安全保存被修改的程序,,就必須保存在FEPROM或硬盤(pán)上,。 硬件組態(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)始z多可以插入八塊信號(hào)模塊(SM卡),,包括通訊處理器(CP)和功能模塊(FM),。 6、CP卡(通訊處理卡):如以太網(wǎng)卡CP-343,,PROFIBUS CP-341,、342等。當(dāng)然我們也可以直接用CPU上的MPI口,,省錢(qián)但速度相對(duì)慢點(diǎn),。 分配參數(shù):按要求對(duì)各種模塊參數(shù)進(jìn)行設(shè)置。雙擊模塊打開(kāi)屬性對(duì)話框(Properties) CPU——屬性包括通用屬性General(主要提供模塊的類(lèi)型,,位置和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ò)程中z可能出現(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ǔ)句表中可能不是z有效程序,。而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)寫(xiě)到輸出模塊,。上面所提到的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è)程序直接寫(xiě)在一個(gè)塊上(通常是OB1主塊上),,CPU逐條的處理指令,我們稱(chēng)這種叫線形編程,;而對(duì)稍微有點(diǎn)復(fù)雜的程序,,我們可以把它分成幾個(gè)塊,每塊包含處理一部分任務(wù)的程序,,在每一個(gè)塊中可以進(jìn)一步分解,、成幾個(gè)段,,可以為相同類(lèi)型的段生成段模塊,,組織塊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ù)先定義好的功能和功能塊,,這些塊不占用用戶程序空間。 在下節(jié)討論位指令前先討論一下SIEMENS的模塊地址:在不帶DP口的S7-300和不組態(tài)的S7-400采用固定槽位編址,,使用帶DP口的S7-300和S7-400,,可以分配模塊的起始地址。但要注意,,由于CPU存儲(chǔ)器復(fù)位后,,參數(shù)和地址會(huì)丟失,這就意味著所有地址都回到和槽位有關(guān)的地址或是缺省地址,。我們還是以S7-300為例,,在S7-300中,機(jī)架上的插槽號(hào)簡(jiǎn)化了模塊地址,,模塊的*個(gè)地址由機(jī)架上的模塊地址決定,。一般槽1給電源,槽2是CPU,,槽3為IM(接口模板)所用,,4~11為I/O卡、CP卡和FM卡。他們的固定地址就是為每個(gè)槽位保留4個(gè)字節(jié)——就是說(shuō),,槽4(*塊I/O卡),,地址為0.0~3.7(共32位),槽5(第二塊I/O卡)地址為4.0~7.7,,假設(shè)*卡是DI,,那么他們的地址就是I0.0、I0.1,、,、、I3.7,,若第二卡為DO卡,,地址為Q4.0、Q4.1,、,、、,、Q7.7,,請(qǐng)注意,當(dāng)使用16通道的DI/DO模塊時(shí),,每個(gè)槽位就會(huì)失去兩個(gè)字節(jié)(16位),。 基本邏輯指令 與 &(FBD) A(STL) (AND指令) 或 >=1FBD O STL OR指令 異或 XOR(FBD) X(STL) (XOR指令) 注意:異或操作是指:當(dāng)兩個(gè)信號(hào)中僅有一個(gè)滿足時(shí),輸出狀態(tài)才是“1”,,這個(gè)指令不能使用于多個(gè)地址的異或邏輯操作(N個(gè)中有一個(gè)1時(shí)才是1),,所以三個(gè)及三個(gè)以上的異或指令,舊的RLO(邏輯操作結(jié)果)和另一個(gè)輸入作異或運(yùn)算,。 賦值語(yǔ)句 = 置位 S 光是置位,,一直保持到它被另一個(gè)指令復(fù)位為止。 復(fù)位 R 光是復(fù)位,,一直保持到它被另一個(gè)指令置位為止,。 觸發(fā)器的置位復(fù)位:同時(shí)有置位輸入和復(fù)位輸入,如果兩個(gè)輸入端同時(shí)出現(xiàn)RLO=1,,根據(jù)優(yōu)先級(jí),。在LAD/FBD中,分別有置位優(yōu)先和復(fù)位優(yōu)先的不同符號(hào),,在STL中,,z后編寫(xiě)的指令具有高優(yōu)先權(quán)。 注意:如果用置位命令把輸出置位,,當(dāng)CPU全啟動(dòng)時(shí)它被復(fù)位,,但如果聲明保持,,則當(dāng)CPU全啟動(dòng)時(shí),它就一直保持置位狀態(tài),。 連接器:M0.0(#),,為中間賦值元件,它把當(dāng)前RLO保存到地址,,當(dāng)它和其他元件串聯(lián)時(shí),,連接器指令和觸點(diǎn)一樣插入。 注意連接器不能: 直接連接到電源母線 直接跟一個(gè)分支,; 用在分支末尾,。 但連接器可以用“NOT”元件對(duì)它進(jìn)行取反操作。 影響RLO的指令: NOT=取反,;CLR=復(fù)位(僅用在STL中),;SET=置位(僅用在STL中);SAVE=把RLO保存到狀態(tài)寄存器中的“BR”,;BR=用來(lái)重新檢查保存的RLO。 主控繼電器功能 MCR:是一個(gè)用來(lái)接通或斷開(kāi)電流的邏輯主開(kāi)關(guān),。如果MCR條件不滿足:0分配給輸出線圈,,置位線圈和復(fù)位線圈指令不改變當(dāng)前值,MOVE指令把0傳到目的地址,。MCRA指令啟動(dòng)主控繼電器功能/MCRD指令取消MCR功能,,直到另一個(gè)MCRA指令起作用。 無(wú)條件轉(zhuǎn)移(不依賴于RLO) JMP 在LAD/FBD中,,在線圈符號(hào)上面輸入作為表示的標(biāo)號(hào)或符號(hào),,如NEW1,NEW2等,,標(biāo)號(hào)z多有4個(gè)字符,,*個(gè)字符必須使用字母或“_”。 跳轉(zhuǎn)規(guī)則:可以向前或向后跳轉(zhuǎn),,跳轉(zhuǎn)指令和跳轉(zhuǎn)目的必須在同一個(gè)塊中(z大跳轉(zhuǎn)長(zhǎng)度為64K字節(jié)),;在一個(gè)塊中跳轉(zhuǎn)目的只能出現(xiàn)一次;跳轉(zhuǎn)指令可以用在FB,、FC和OB中,。 條件跳轉(zhuǎn):有兩個(gè):JC——當(dāng)RLO=1時(shí),JC才執(zhí)行,,當(dāng)RLO=0時(shí),,不跳轉(zhuǎn),繼續(xù)執(zhí)行下面的程序,,但置RLO=1,。 JCN——當(dāng)RLO=0時(shí),,JCN才執(zhí)行,當(dāng)RLO=1時(shí),,不跳轉(zhuǎn),。 邊沿檢測(cè):RLO-邊沿檢測(cè)和信號(hào)-邊沿檢測(cè)。 RLO-邊沿檢測(cè):當(dāng)邏輯操作結(jié)果變化時(shí),,產(chǎn)生RLO邊沿,。檢測(cè)正邊沿FP——RLO從“0”變化到“1”,“FP”檢查指令產(chǎn)生一個(gè)“掃描周期”的信號(hào)“1”,;檢測(cè)負(fù)邊沿FN,,則RLO從“1”變化到“0”,“FN”檢查指令產(chǎn)生一個(gè)“掃描周期”的信號(hào)“1”,。上述兩個(gè)結(jié)果保存在“FP(FN)”位存儲(chǔ)器中或數(shù)據(jù)位中,,如M 1.0…,同時(shí),,可以輸出在其他線圈,。 信號(hào)-邊沿檢測(cè):同上面的RLO指令類(lèi)似,當(dāng)信號(hào)變化時(shí),,產(chǎn)生信號(hào)邊沿,,也有正/負(fù)邊沿之分:POS/NEG。 上述各種指令,,請(qǐng)結(jié)合實(shí)際軟件,,掌握其方法、特性和不同之處,,其他復(fù)雜指令請(qǐng)參考各種編程手冊(cè),。數(shù)字指令 在討論數(shù)字指令前先了解一下各種數(shù)據(jù)格式,關(guān)于二進(jìn)制,、十進(jìn)制及其他數(shù)的表示方法,,在其他地方都有介紹,這里就不再重復(fù),。 一,、數(shù)據(jù)格式(16位):數(shù)據(jù)類(lèi)型INT是整數(shù)(16位),其中符號(hào)(位15)表示是正數(shù)或是負(fù)數(shù)(“0”=正數(shù),,“1”=負(fù)數(shù)),,16位整數(shù)的數(shù)值范圍是-32768~+32767。在二進(jìn)制格式中,,整數(shù)的負(fù)數(shù)形式用正數(shù)的二進(jìn)制補(bǔ)碼表示,。(二進(jìn)制補(bǔ)碼利用取反加1得到) 負(fù)數(shù)的位格式,對(duì)零的位置加權(quán)求和,,再加1,,然后在前面放一個(gè)負(fù)號(hào),。 BCD碼:十進(jìn)制的每一位用四個(gè)二進(jìn)制數(shù)表示,因?yàn)閦大為9,,所以需要四位二進(jìn)制才能表示出來(lái)(十進(jìn)制的9=1001二進(jìn)制),,要注意,從0~9的十進(jìn)制數(shù)的BCD碼表示與二進(jìn)制數(shù)表示相同,,但BCD碼一般用作顯示,,并非二進(jìn)制。上面的INT(整數(shù))主要是用來(lái)運(yùn)算,。 如BCD碼W#16#296,,在CPU中表現(xiàn)為0000,0010,,1001,,0110(直接為+,2,,9,,6=+296);而整數(shù)+296則表示為0000,,0001,,0010,1000(即28+25+23=296),,再例如整數(shù)-413表示為1111,1110,,0110,,0011(因?yàn)槭秦?fù)數(shù),所以用補(bǔ)碼,,取反加1,,所以上面的二進(jìn)制數(shù)=-(28+27+24+23+22+1)=“-413”,而在BCD碼該數(shù)(W#16#F413)則可以簡(jiǎn)單的表示為1111,,0100,,0001,0011,。 二,、數(shù)據(jù)格式(32位):DINT類(lèi)型的數(shù)據(jù)——帶符號(hào)位的32-位整數(shù),定義為“雙整數(shù)”或“長(zhǎng)整數(shù)”,,它的表示方法及范圍是:L#-2147483648~L#+2147483647,;還有一個(gè)是實(shí)數(shù)型REAL型(也叫浮點(diǎn)數(shù)),是1.175495*10-38~3402823*1038之間,,實(shí)數(shù)的通用格式為(Sign)*(1.f)*(2e-127),,其中Sign為符號(hào)位第31位(即z位),,低位的0~22位為f=底數(shù)位,23~30為e=指數(shù),。STEP 7中的實(shí)數(shù)是按照IEEE標(biāo)準(zhǔn)表示的,。 數(shù)據(jù)的裝入和傳遞:MOVE(LAD/FBD)或L和T(STL):如果輸入EN有效,輸入“IN”處的值拷貝到輸出“OUT”,。裝載和傳遞指令的執(zhí)行與RLO無(wú)關(guān),,數(shù)據(jù)通過(guò)累加器交換,裝載指令把右邊源地址的值寫(xiě)到累加器1(不夠32位用0補(bǔ)齊),,傳遞指令拷貝累加器中一些或所有內(nèi)容到的目的地址,。如先裝載L +5 / L L#523312 / L B#16#EF (分別為裝載一個(gè)整數(shù)+5/一個(gè)雙整數(shù)523312/一個(gè)十六進(jìn)制數(shù)EF)到*累加器(ACCU1),然后再傳輸?shù)侥康牡?,如T MB5等,。累加器是CPU中的輔助存儲(chǔ)器,它們用于不同地址之間的數(shù)據(jù)交換,、比較和數(shù)學(xué)運(yùn)算操作,。S7-300有兩個(gè)32位的累加器,S7-400有四個(gè)32位的累加器,。在裝載過(guò)程中,,ACCU 1中的值先移入ACCU 2,在新值寫(xiě)入前先清零,,然后在把要裝入的值寫(xiě)入ACCU 1,,傳遞時(shí)則從ACCU 1中讀出。裝載和傳遞指令可以32位中的一個(gè)字節(jié)或是字及雙字,,如果僅傳遞一個(gè)字節(jié),,只使用右邊的8位。在LAD/FBD中,,我們可以使用MOVE的允許輸入(EN)把裝載和傳遞操作和RLO起來(lái),,在STL中,則總是執(zhí)行裝載和傳遞操作,,而和RLO無(wú)關(guān),,但是,我們可以利用條件跳轉(zhuǎn)指令來(lái)執(zhí)行和RLO有關(guān)的裝入和傳遞功能,。 定時(shí)器:STEP 7中,,CPU為定時(shí)器保留了一個(gè)特殊存儲(chǔ)器,這個(gè)區(qū)專(zhuān)門(mén)為每個(gè)定時(shí)器地址保留一個(gè)16位字,。定時(shí)器的位0~9包含用二進(jìn)制表示的時(shí)間值,,12、13位為時(shí)間基準(zhǔn)——0表示10ms,,1表示100ms,,2=1秒,,3=10秒,時(shí)間基準(zhǔn)定義的是一個(gè)單位代表的時(shí)間間隔,。時(shí)間值可以直接用常數(shù)來(lái)表示(此時(shí)時(shí)間基準(zhǔn)自動(dòng)由系統(tǒng)自動(dòng)分配),,例如S5T#100ms,S5T#2h2m2s20ms,。 S5定時(shí)器格式:時(shí)間的可以如上述所說(shuō)直接輸入固定的時(shí)間常數(shù),,或由操作人員用撥輪按扭改變或和存儲(chǔ)器字或數(shù)據(jù)字中的時(shí)間值有關(guān)的過(guò)程和配方。在使用中可以用L命令(讀出)定時(shí)器BI輸出端的地址(包含10位二進(jìn)制數(shù)表示的時(shí)間值,,不帶時(shí)間基準(zhǔn)),,如 L T5;也可以用LC命令讀出定時(shí)器BCD端的地址(3位BCD數(shù)表示的時(shí)間值和12,、13位的時(shí)間基準(zhǔn)),。具體介紹幾種常用的定時(shí)器:下面只介紹功能,具體符號(hào)可以在元件表中找,。 接通延時(shí)(SD)定時(shí)器:當(dāng)定時(shí)器的“S”輸入端的RLO從0變到1時(shí),,定時(shí)器啟動(dòng)。只要輸入S=1,,定時(shí)器起作用,,當(dāng)?shù)竭_(dá)的TV值(預(yù)設(shè)值)時(shí)定時(shí)器啟動(dòng)(輸出Q=1),同時(shí)該定位器還有一個(gè)復(fù)位端R端,,當(dāng)?shù)扔?時(shí),,就清除定時(shí)值并且復(fù)位Q輸出。當(dāng)前時(shí)間可以在BI輸出端以二進(jìn)制數(shù)讀出,,在BCD端以BCD碼形式讀出,,當(dāng)前時(shí)間值是TV的初始值減定時(shí)器啟動(dòng)以來(lái)的經(jīng)過(guò)時(shí)間。 帶保持接通延時(shí)定時(shí)器(SS):與上面SD定時(shí)器基本一致,,*不同的就是具有保持功能,也就是說(shuō):一旦S輸入端的RLO從0變到1,,定時(shí)器便啟動(dòng),,即使定時(shí)過(guò)程中出現(xiàn)輸入S端=0,定時(shí)器仍繼續(xù)記時(shí),。但有一點(diǎn),,在保持過(guò)程中,如果S輸入端再次從0變1,,則定時(shí)器重新開(kāi)始,。 關(guān)斷延時(shí)定時(shí)器(SF):從某些方面說(shuō),和上面提到的SD接通延時(shí)定時(shí)器狀態(tài)正好相反,。當(dāng)定時(shí)器的S輸入端的RLO從“1”變到“0”時(shí),,定時(shí)器啟動(dòng),,輸出信號(hào)Q=0,其他功能和輸出與SD一樣,。個(gè)人理解,,是否SD接通延時(shí)定時(shí)器,較多的用于正邏輯,,而SF更多的用于事故安全型(有時(shí)也叫反邏輯,,就是在正常的工況中,輸入輸出都為1或是帶電情況)中,。 脈沖(SP):這個(gè)比較好理解,,當(dāng)“S”輸入端從0變到1時(shí),啟動(dòng)定時(shí)器,,輸出Q=1(z多一個(gè)脈沖,。輸出Q復(fù)位的情況為:定時(shí)器時(shí)間到或啟動(dòng)信號(hào)從1變到0或復(fù)位輸入R信號(hào)=1。 擴(kuò)展脈沖(SE):當(dāng)輸入端的RLO從0變到1時(shí),,定時(shí)器啟動(dòng),,輸出Q置1,即使當(dāng)中S端輸入變到0,,輸出Q仍保持1,。當(dāng)定時(shí)器正在運(yùn)行,如果啟動(dòng)信號(hào)從0變到1,,定時(shí)器被再次啟動(dòng),。它的復(fù)位情況是定時(shí)器時(shí)間到或復(fù)位R端有信號(hào)1。位指令定時(shí)器:所有的定時(shí)器也可以用簡(jiǎn)單的位指令啟動(dòng),,這種方法和前面討論的定時(shí)器功能的相似處在于:?jiǎn)?dòng)條件在S端,,時(shí)間值,復(fù)位條件在R端輸入,,信號(hào)響應(yīng)在Q端,。不同的是(對(duì)LAD/FBD)不能檢查當(dāng)前時(shí)間值(沒(méi)有BI/BCD輸出)。 |