西門子模塊6ES7216-2AD23-0XB8參數(shù)詳細(xì)
西門子模塊6ES7216-2AD23-0XB8參數(shù)詳細(xì)
CPU——屬性包括通用屬性General(主要提供模塊的類型,位置和MPI地址—如果要把幾個(gè)PLC通過MPI接口組成網(wǎng)絡(luò),每個(gè)CPU分配不同的MPI地址);啟動(dòng)項(xiàng)目START.UP(主要選擇三種啟動(dòng)方式,HOT—從斷電時(shí)的語句,也就是程序斷電處開始,WARM—從頭,也就是程序第一步開始,COLD—冷啟動(dòng);監(jiān)視時(shí)間包括從模塊讀準(zhǔn)備的信息時(shí)間和傳遞參數(shù)到模塊的時(shí)間;可保存數(shù)量Retentive Memory:用來當(dāng)出現(xiàn)斷電或從STOP到RUN切換時(shí)需要保持的存儲(chǔ)器區(qū)域;循環(huán)/時(shí)鐘存儲(chǔ)器;保護(hù)功能(設(shè)定鑰匙權(quán)限和各種級(jí)別及口令);診斷/時(shí)鐘。
保存下載及上傳:經(jīng)過上述設(shè)置以后,我們就可以保存、編譯、一致性檢查后,把設(shè)定組態(tài)下載到PLC中。當(dāng)然,對(duì)實(shí)際運(yùn)行的PLC,我們也可以通過上傳(Upload Station)把實(shí)際組態(tài)讀到編程器。
硬件診斷及組態(tài)中可能出現(xiàn)的問題:在SIMATIC管理器中可以用PLC-Diagnose Hardware來獲得PLC的診斷狀態(tài)。在實(shí)際組態(tài)過程中最可能出現(xiàn)的問題是以下幾點(diǎn):
1、 在S7-300中,組態(tài)中有空位置,此時(shí)組態(tài)不能編譯通過;
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編程語言:LAD 梯形圖/FBD功能塊圖/STL語句表,更加豐富,更加靈活,但對(duì)初學(xué)者比較難以理解,當(dāng)然某些語言不能用LAD表達(dá)。
塊編輯的啟動(dòng):選擇所需編程語言,雙擊打開需編輯的塊,如OB1或FC1等。當(dāng)采用LAD或FBD編程語言時(shí),可用工具條來插入簡單的程序文件,當(dāng)采用STL,則可用在線幫助得到有關(guān)語言的語法和功能——HELP-Help on STL。
編程器組成:聲明表:屬于塊,為塊聲明變量和參數(shù);代碼區(qū):包含程序本身;編程元件:可選打開或關(guān)閉,內(nèi)容依賴于所選擇的編程語言,雙擊插入或拖拉插入。
VIEW菜單:可切換到另一種語言,并可實(shí)現(xiàn)LAD/FBD/STL之間的轉(zhuǎn)換,要知道,LAD/FBD轉(zhuǎn)換成STL的,在語句表中可能不是程序。而STL轉(zhuǎn)換成其他則不一定行,轉(zhuǎn)換不了的仍用語句表示,轉(zhuǎn)換過程絕不會(huì)丟失程序。
其他菜單由于篇幅較大,請(qǐng)最好結(jié)合教材及軟件自己熟悉。
在討論調(diào)用塊前先介紹一下OB1塊——主循環(huán)塊,絕對(duì)不能改名或刪除,它是由操作系統(tǒng)循環(huán)調(diào)用,可以訪問其他的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í)行過程:當(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)并刷新過程影象輸入表(PII..);執(zhí)行用戶程序,也就是OB1中的程序及一些事件(中斷等);把過程輸出影象輸出表(PIQ)寫到輸出模塊。上面所提到的PII/PIQ是CPU中特定的存儲(chǔ)器,用來保存輸入模塊/輸出模塊的信號(hào),在用戶程序中檢查時(shí),可以保證在一個(gè)掃描周期內(nèi)為同樣的信號(hào)狀態(tài)。
程序結(jié)構(gòu):上面曾經(jīng)提到過,一個(gè)比較簡單的程序,我們可以不用各種子程序塊(如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ù)先定義好的功能和功能塊,這些塊不占用用戶程序空間。
在下節(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)簡化了模塊地址,模塊的第一個(gè)地址由機(jī)架上的模塊地址決定。一般槽1給電源,槽2是CPU,槽3為IM(接口模板)所用,4~11為I/O卡、CP卡和FM卡。他們的固定地址就是為每個(gè)槽位保留4個(gè)字節(jié)——就是說,槽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指令)
或 >=1(FBD) 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)算。
賦值語句 =
置位 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中,最后編寫的指令具有高優(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=用來重新檢查保存的RLO。
主控繼電器功能 MCR:是一個(gè)用來接通或斷開電流的邏輯主開關(guān)。如果MCR條件不滿足:0分配給輸出線圈,置位線圈和復(fù)位線圈指令不改變當(dāng)前值,MOVE指令把0傳到目的地址。MCRA指令啟動(dòng)主控繼電器功能/MCRD指令取消MCR功能,直到另一個(gè)MCRA指令起作用。
無條件轉(zhuǎn)移(不依賴于RLO) JMP
在LAD/FBD中,在線圈符號(hào)上面輸入作為表示的標(biāo)號(hào)或符號(hào),如NEW1,NEW2等,標(biāo)號(hào)最多有4個(gè)字符,第一個(gè)字符必須使用字母或“_"。
跳轉(zhuǎn)規(guī)則:可以向前或向后跳轉(zhuǎn),跳轉(zhuǎn)指令和跳轉(zhuǎn)目的必須在同一個(gè)塊中(最大跳轉(zhuǎn)長度為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指令類似,當(dāng)信號(hào)變化時(shí),產(chǎn)生信號(hào)邊沿,也有正/負(fù)邊沿之分:POS/NEG。
上述各種指令,最好請(qǐng)結(jié)合實(shí)際軟件,掌握其方法、特性和不同之處,其他復(fù)雜指令請(qǐng)參考各種高級(jí)編程手冊(cè)。
數(shù)字指令
在討論數(shù)字指令前先了解一下各種數(shù)據(jù)格式,關(guān)于二進(jìn)制、十進(jìn)制及其他數(shù)的表示方法,在其他地方都有介紹,這里就不再重復(fù)。
一、數(shù)據(jù)格式(16位):數(shù)據(jù)類型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)樽畲鬄?,所以需要四位二進(jìn)制才能表示出來(十進(jìn)制的9=1001二進(jìn)制),要注意,從0~9的十進(jìn)制數(shù)的BCD碼表示與二進(jìn)制數(shù)表示相同,但BCD碼一般用作顯示,并非二進(jìn)制。上面的INT(整數(shù))主要是用來運(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)則可以簡單的表示為1111,0100,0001,0011。
二、數(shù)據(jù)格式(32位):DINT類型的數(shù)據(jù)——帶符號(hào)位的32-位整數(shù),定義為“雙整數(shù)"或“長整數(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位(即最高位),低位的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無關(guān),數(shù)據(jù)通過累加器交換,裝載指令把右邊源地址的值寫到累加器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位的累加器。在裝載過程中,ACCU 1中的值先移入ACCU 2,在新值寫入前先清零,然后在把要裝入的值寫入ACCU 1,傳遞時(shí)則從ACCU 1中讀出。裝載和傳遞指令可以32位中的一個(gè)字節(jié)或是字及雙字,如果僅傳遞一個(gè)字節(jié),只使用右邊的8位。在LAD/FBD中,我們可以使用MOVE的允許輸入(EN)把裝載和傳遞操作和RLO聯(lián)系起來,在STL中,則總是執(zhí)行裝載和傳遞操作,而和RLO無關(guān),但是,我們可以利用條件跳轉(zhuǎn)指令來執(zhí)行和RLO有關(guān)的裝入和傳遞功能。
定時(shí)器:STEP 7中,CPU為定時(shí)器保留了一個(gè)特殊存儲(chǔ)器,這個(gè)區(qū)專門為每個(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ù)來表示(此時(shí)時(shí)間基準(zhǔn)自動(dòng)由系統(tǒng)自動(dòng)分配),例如S5T#100ms,S5T#2h2m2s20ms。
S5定時(shí)器格式:時(shí)間的可以如上述所說直接輸入固定的時(shí)間常數(shù),或由操作人員用撥輪按扭改變或和存儲(chǔ)器字或數(shù)據(jù)字中的時(shí)間值有關(guān)的過程和配方。在使用中可以用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)以來的經(jīng)過時(shí)間。
帶保持接通延時(shí)定時(shí)器(SS):與上面SD定時(shí)器基本一致,不同的就是具有保持功能,也就是說:一旦S輸入端的RLO從0變到1,定時(shí)器便啟動(dòng),即使定時(shí)過程中出現(xiàn)輸入S端=0,定時(shí)器仍繼續(xù)記時(shí)。但有一點(diǎn),在保持過程中,如果S輸入端再次從0變1,則定時(shí)器重新開始。
關(guān)斷延時(shí)定時(shí)器(SF):從某些方面說,和上面提到的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(最多一個(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í)器也可以用簡單的位指令啟動(dòng),這種方法和前面討論的定時(shí)器功能的相似處在于:啟動(dòng)條件在S端,時(shí)間值,復(fù)位條件在R端輸入,信號(hào)響應(yīng)在Q端。不同的是(對(duì)LAD/FBD)不能檢查當(dāng)前時(shí)間值(沒有BI/BCD輸出)