西門子S12電源模塊6SL3120-2TE21-0AA4詳解
址—如果要把幾個PLC通過MPI接口組成網(wǎng)絡,每個CPU分配不同的MPI地址);啟動項目START.UP(主要選擇三種啟動方式,HOT—從斷電時的語句,也就是程序斷電處開始,WARM—從頭,也就是程序第一步開始,COLD—冷啟動;監(jiān)視時間包括從模塊讀準備的信息時間和傳遞參數(shù)到模塊的時間;可保存數(shù)量Retentive Memory:用來當出現(xiàn)斷電或從STOP到RUN切換時需要保持的存儲器區(qū)域;循環(huán)/時鐘存儲器;保護功能(設定鑰匙權限和各種級別及口令);診斷/時鐘。
保存下載及上傳:經(jīng)過上述設置以后,我們就可以保存、編譯、一致性檢查后,把設定組態(tài)下載到PLC中。當然,對實際運行的PLC,我們也可以通過上傳(Upload Station)把實際組態(tài)讀到編程器。
硬件診斷及組態(tài)中可能出現(xiàn)的問題:在SIMATIC管理器中可以用PLC-Diagnose Hardware來獲得PLC的診斷狀態(tài)。在實際組態(tài)過程中最可能出現(xiàn)的問題是以下幾點:
1、 在S7-300中,組態(tài)中有空位置,此時組態(tài)不能編譯通過;
2、 不正確的CPU(例如:是CPU 315-2DP,不是CPU 314)此時組態(tài)不能下載;
3、 模擬量模塊分配到不正確的槽位置,此時CPU會因為參數(shù)分配錯誤進入STOP模式;
4、模擬量模塊不正確的測量范圍,導致模擬量模塊組態(tài)錯誤。
塊的編輯
STEP 7編程語言:LAD 梯形圖/FBD功能塊圖/STL語句表,更加豐富,更加靈活,但對初學者比較難以理解,當然某些語言不能用LAD表達。
塊編輯的啟動:選擇所需編程語言,雙擊打開需編輯的塊,如OB1或FC1等。當采用LAD或FBD編程語言時,可用工具條來插入簡單的程序文件,當采用STL,則可用在線幫助得到有關語言的語法和功能——HELP-Help on STL。
編程器組成:聲明表:屬于塊,為塊聲明變量和參數(shù);代碼區(qū):包含程序本身;編程元件:可選打開或關閉,內容依賴于所選擇的編程語言,雙擊插入或拖拉插入。
VIEW菜單:可切換到另一種語言,并可實現(xiàn)LAD/FBD/STL之間的轉換,要知道,LAD/FBD轉換成STL的,在語句表中可能不是程序。而STL轉換成其他則不一定行,轉換不了的仍用語句表示,轉換過程絕不會丟失程序。
其他菜單由于篇幅較大,請最好結合教材及軟件自己熟悉。
在討論調用塊前先介紹一下OB1塊——主循環(huán)塊,絕對不能改名或刪除,它是由操作系統(tǒng)循環(huán)調用,可以訪問其他的S7程序塊,它包括自身程序和其他塊的調用。所以,當我們編輯好一個塊以后,如FC1,為了讓新塊集成在CPU中的循環(huán)程序中,必須在OB1中調用。即在OB1中CALL F1。 子程序(新塊FC 1)執(zhí)行的條件有以下三個:已經(jīng)下載到PLC中,必須在OB1調用,PLC處于運行狀態(tài)。 下載到實際的PLC時,我們可以選擇所有塊或其中的一個或幾個,再Download到PLC中。
程序的執(zhí)行過程:當PLC得電或從STOP切換到RUN模式,CPU會執(zhí)行一次全啟動(使用OB100)在全啟動期間,操作系統(tǒng)清除非保持位存儲器、定時器和計數(shù)器,刪除中斷堆箋和塊堆箋,復位所有保存的硬件中斷,并啟動掃描循環(huán)監(jiān)視時間。
CPU的循環(huán)操作包括三個主要部分:CPU檢查輸入信號的狀態(tài)并刷新過程影象輸入表(PII..);執(zhí)行用戶程序,也就是OB1中的程序及一些事件(中斷等);把過程輸出影象輸出表(PIQ)寫到輸出模塊。上面所提到的PII/PIQ是CPU中特定的存儲器,用來保存輸入模塊/輸出模塊的信號,在用戶程序中檢查時,可以保證在一個掃描周期內為同樣的信號狀態(tài)。
程序結構:上面曾經(jīng)提到過,一個比較簡單的程序,我們可以不用各種子程序塊(如FC.FB),而是直接把整個程序直接寫在一個塊上(通常是OB1主塊上),CPU逐條的處理指令,我們稱這種叫線形編程;而對稍微有點復雜的程序,我們可以把它分成幾個塊,每塊包含處理一部分任務的程序,在每一個塊中可以進一步分解、成幾個段,可以為相同類型的段生成段模塊,組織塊OB1包含按順序調用其他塊的指令,我們把這種方法叫分塊編程;另外,對可重復使用的功能裝入單個塊中,OB1(或其他塊)調用這些塊并傳遞相關參數(shù),這種方法叫結構化編程。用戶塊(程序塊)包括程序代碼和用戶數(shù)據(jù),在結構化程序中,一些塊循環(huán)調用處理,一些塊需要時才調用。程序塊共有組織塊(OB)、功能塊(FB)、功能(FC)、系統(tǒng)功能塊(SFB)和系統(tǒng)功能(FC)5種,其中系統(tǒng)塊是在CPU操作系統(tǒng)中預先定義好的功能和功能塊,這些塊不占用用戶程序空間。
在下節(jié)討論位指令前先討論一下SIEMENS的模塊地址:在不帶DP口的S7-300和不組態(tài)的S7-400采用固定槽位編址,使用帶DP口的S7-300和S7-400,可以分配模塊的起始地址。但要注意,由于CPU存儲器復位后,參數(shù)和地址會丟失,這就意味著所有地址都回到和槽位有關的地址或是缺省地址。我們還是以S7-300為例,在S7-300中,機架上的插槽號簡化了模塊地址,模塊的第一個地址由機架上的模塊地址決定。一般槽1給電源,槽2是CPU,槽3為IM(接口模板)所用,4~11為I/O卡、CP卡和FM卡。他們的固定地址就是為每個槽位保留4個字節(jié)——就是說,槽4(第一塊I/O卡),地址為0.0~3.7(共32位),槽5(第二塊I/O卡)地址為4.0~7.7,假設第一卡是DI,那么他們的地址就是I0.0、I0.1、、、I3.7,若第二卡為DO卡,地址為Q4.0、Q4.1、、、、Q7.7,請注意,當使用16通道的DI/DO模塊時,每個槽位就會失去兩個字節(jié)(16位)。
基本邏輯指令
與 &(FBD) A(STL) (AND指令)
或 >=1(FBD) O (STL) (OR指令)
異或 XOR(FBD) X(STL) (XOR指令)
注意:異或操作是指:當兩個信號中僅有一個滿足時,輸出狀態(tài)才是“1",這個指令不能使用于多個地址的異或邏輯操作(N個中有一個1時才是1),所以三個及三個以上的異或指令,舊的RLO(邏輯操作結果)和另一個輸入作異或運算。
賦值語句 =
置位 S 光是置位,一直保持到它被另一個指令復位為止。
復位 R 光是復位,一直保持到它被另一個指令置位為止。
觸發(fā)器的置位復位:同時有置位輸入和復位輸入,如果兩個輸入端同時出現(xiàn)RLO=1,根據(jù)優(yōu)先級。在LAD/FBD中,分別有置位優(yōu)先和復位優(yōu)先的不同符號,在STL中,最后編寫的指令具有高優(yōu)先權。
注意:如果用置位命令把輸出置位,當CPU全啟動時它被復位,但如果聲明保持,則當CPU全啟動時,它就一直保持置位狀態(tài)。
連接器:M0.0(#),為中間賦值元件,它把當前RLO保存到地址,當它和其他元件串聯(lián)時,連接器指令和觸點一樣插入。
注意連接器不能:
直接連接到電源母線
直接跟一個分支;
用在分支末尾。
但連接器可以用“NOT"元件對它進行取反操作。
影響RLO的指令:
NOT=取反;CLR=復位(僅用在STL中);SET=置位(僅用在STL中);SAVE=把RLO保存到狀態(tài)寄存器中的“BR";BR=用來重新檢查保存的RLO。
主控繼電器功能 MCR:是一個用來接通或斷開電流的邏輯主開關。如果MCR條件不滿足:0分配給輸出線圈,置位線圈和復位線圈指令不改變當前值,MOVE指令把0傳到目的地址。MCRA指令啟動主控繼電器功能/MCRD指令取消MCR功能,直到另一個MCRA指令起作用。
無條件轉移(不依賴于RLO) JMP
在LAD/FBD中,在線圈符號上面輸入作為表示的標號或符號,如NEW1,NEW2等,標號最多有4個字符,第一個字符必須使用字母或“_"。
跳轉規(guī)則:可以向前或向后跳轉,跳轉指令和跳轉目的必須在同一個塊中(最大跳轉長度為64K字節(jié));在一個塊中跳轉目的只能出現(xiàn)一次;跳轉指令可以用在FB、FC和OB中。
條件跳轉:有兩個:JC——當RLO=1時,JC才執(zhí)行,當RLO=0時,不跳轉,繼續(xù)執(zhí)行下面的程序,但置RLO=1。 JCN——當RLO=0時,JCN才執(zhí)行,當RLO=1時,不跳轉。
邊沿檢測:RLO-邊沿檢測和信號-邊沿檢測。
RLO-邊沿檢測:當邏輯操作結果變化時,產生RLO邊沿。檢測正邊沿FP——RLO從“0"變化到“1",“FP"檢查指令產生一個“掃描周期"的信號“1";檢測負邊沿FN,則RLO從“1"變化到“0",“FN"檢查指令產生一個“掃描周期"的信號“1"。上述兩個結果保存在“FP(FN)"位存儲器中或數(shù)據(jù)位中,如M 1.0…,同時,可以輸出在其他線圈。
信號-邊沿檢測:同上面的RLO指令類似,當信號變化時,產生信號邊沿,也有正/負邊沿之分:POS/NEG。
上述各種指令,最好請結合實際軟件,掌握其方法、特性和不同之處,其他復雜指令請參考各種高級編程手冊。