版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第四章
S7-1200PLC
基本指令(LAD)位邏輯運算1定時器操作2計數(shù)器操作3比較操作指令4數(shù)學(xué)函數(shù)5移動操作6轉(zhuǎn)換操作7程序控制指令8字邏輯運算9移位和循環(huán)10第四章
S7-1200PLC
基本指令(LAD)理論課程電動機正反轉(zhuǎn)連續(xù)運行控制1三相異步電動機Y-△降壓啟動控制2車庫出入口閘機控制3十字路口交通燈控制4數(shù)學(xué)運算指令的綜合應(yīng)用5一個數(shù)碼管顯示9秒的倒計時控制6深度測量傳感器模擬量控制7多液體混合裝置控制8圓盤工件箱捷徑傳送控制9八層霓虹燈塔控制10第四章
S7-1200PLC
基本指令(LAD)實踐操作4.1位邏輯運算常開觸點(┫┣)、常閉觸點(┫/┣)觸點分為常開觸點和常閉觸點。常開觸點是指在指定的位為1狀態(tài)(ON)時接通,為0狀態(tài)(OFF)時斷開的觸點。常閉觸點是指在指定的位為1狀態(tài)(ON)時斷開,為0狀態(tài)(OFF)時接通的觸點。兩個觸點串聯(lián)將進(jìn)行邏輯“與”運算,兩個觸點并聯(lián)將進(jìn)行邏輯“或”運算。觸點指令中變量的數(shù)據(jù)類型為BOOL型,值只能為“1”或“0”。程序段1中當(dāng)I0.0的常開觸點閉合(按下按鈕SB1),即I0.0接通,則Q0.0得電(綠燈亮);當(dāng)I0.0的常開觸點斷開(松開按鈕SB1),則Q0.0失電(綠燈滅)。程序段2中當(dāng)I0.1的常閉觸點閉合(初始狀態(tài):松開按鈕SB2時),即I0.1接通,則Q0.1得電(紅燈亮);當(dāng)I0.1的常閉觸點斷開(按下按鈕SB2),則Q0.0失電(紅燈滅)。4.1位邏輯運算取反RLO觸點(┫NOT┣)
取反RLO觸點用來轉(zhuǎn)換能流流入的邏輯狀態(tài)。如果沒有能流流入取反RLO觸點,則有能流流出;如果有能流流入取反RLO觸點,則沒有能流流出。如果M10.0斷開,M10.1接通,則無能流流入取反RLO觸點,經(jīng)過取反RLO觸點后,有能流流向Q0.3(Q0.3得電,黃燈亮);如果M10.0接通,M10.1接通,則有能流流入取反RLO觸點,經(jīng)過取反RLO觸點后,無能流流向Q0.3(Q0.3失電,黃燈滅)。4.1位邏輯運算賦值指令(-()-)
線圈得電時寫入“1”,線圈失電時寫入“0”。有能流流入Q0.3,則Q0.3得電,值為“1”;無能流流入Q0.3,則Q0.3失電,值為“0”。賦值取反指令(-(/)-)
有能流流入取反線圈,則其值為“0”;無能流流入取反線圈,則其值為“1”。無能流流入取反線圈,則Q0.0得電(綠燈亮);有能流流入取反線圈,則Q0.0失電(綠燈滅)。4.1位邏輯運算置位指令(-(S)-)、復(fù)位指令(-(R)-)S(Set,置位輸出)指令將指定的地址位置位(變?yōu)椤?”并保持,直到它被另一個指令復(fù)位為止)。R(Reset,復(fù)位輸出)指令將指定的地址位復(fù)位(變?yōu)椤?”并保持,直到它被另一個指令置位為止)。M10.0接通,有能流流入Q0.0,Q0.0被置位為“1”(綠燈亮)。即使M10.0斷開,Q0.0也還是“1”狀態(tài),直到M10.2接通,Q0.0被復(fù)位,Q0.0的狀態(tài)才變?yōu)椤?”。4.1位邏輯運算SET_BF:置位位域、RESET_BF:復(fù)位位域SET_BF(置位位域)指令將指定的地址開始的連續(xù)若干位地址置位(變?yōu)椤?”狀態(tài)并保持)。RESET_BF(復(fù)位位域)指令將指定的地址開始的連續(xù)若干位地址復(fù)位(變?yōu)椤?”狀態(tài)并保持)。如果M10.0接通,則從Q0.0開始的連續(xù)4個位被置位為“1”狀態(tài)并保持,即Q0.0、Q0.1、Q0.2、Q0.3被同時置位;如果M10.1接通,則從Q0.6開始的連續(xù)4個位被復(fù)位為“0”狀態(tài)并保持,即Q0.6、Q0.7、Q1.0、Q1.1被同時復(fù)位。4.1位邏輯運算SR:置位/復(fù)位觸發(fā)器、RS:復(fù)位/置位觸發(fā)器置位/復(fù)位觸發(fā)器(SR)復(fù)位/置位觸發(fā)器(RS)SR1輸出(Q)RS1輸出(Q)00保持前一狀態(tài)00保持前一狀態(tài)0100111011001101114.1位邏輯運算置位/復(fù)位觸發(fā)器(SR)和復(fù)位/置位觸發(fā)器(RS)如圖所示,這兩種觸發(fā)器都有兩個輸入端,當(dāng)M10.O為“0”,M10.1為“1”時,SR觸發(fā)器的輸出端無能流流出,RS觸發(fā)器的輸出端有能流流出;觸發(fā)器指令上的M20.0和M20.1稱為標(biāo)志位,觸發(fā)器指令首先對標(biāo)志位進(jìn)行置位和復(fù)位,再將標(biāo)志位的狀態(tài)傳輸?shù)捷敵龆?。SR又叫復(fù)位優(yōu)先,RS又叫置位優(yōu)先。SR:置位/復(fù)位觸發(fā)器、RS:復(fù)位/置位觸發(fā)器上升沿指令
掃描操作數(shù)的信號上升沿指令在信號上升沿置位操作數(shù)指令掃描RLO的信號上升沿指令檢測信號上升沿指令上升沿和下降沿下降沿指令掃描操作數(shù)的信號下降沿指令在信號下降沿置位操作數(shù)指令掃描RLO的信號下降沿指令檢測信號下降沿指令4.1位邏輯運算4.1位邏輯運算掃描操作數(shù)的信號上升沿指令、掃描操作數(shù)的信號下降沿指令當(dāng)P觸點上方的輸入信號M10.0由“0”變?yōu)椤?”時,Q0.0接通一個掃描周期;P觸點下方的M20.0為邊沿存儲位,用來存儲上一個掃描循環(huán)時M10.0的狀態(tài);P觸點不可放在程序段的結(jié)尾處。當(dāng)N觸點上方的輸入信號M10.1由“1”變?yōu)椤?”時,Q0.1接通一個掃描周期;N觸點下方的M20.1為邊沿存儲位,用來存儲上一個掃描循環(huán)時M10.1的狀態(tài);N觸點也同樣不可放在程序段的結(jié)尾處。4.1位邏輯運算在信號上升沿置位操作數(shù)指令和在信號下降沿置位操作數(shù)指令P線圈指令,當(dāng)檢測到進(jìn)入線圈中的能流為上升沿時,線圈對應(yīng)的位地址接通一個掃描周期。N線圈指令,當(dāng)檢測到進(jìn)入線圈中的能流為下降沿時,線圈對應(yīng)的位地址接通一個掃描周期。
當(dāng)M30.0由“0”變?yōu)椤?”(上升沿)時,M40.0接通一個掃描周期,Q0.4被置位;當(dāng)M30.O由“1”變?yōu)椤?”(下降沿)時,M40.2接通一個掃描周期,Q0.5被置位。P線圈指令和N線圈指令不會影響邏輯運算結(jié)果,即M30.0接通,Q0.3得電。4.1位邏輯運算掃描RLO的信號上升沿指令、掃描RLO的信號下降沿指令掃描RLO的信號上升沿指令即P_TRIG指令,當(dāng)在CLK輸入端檢測到上升沿時,輸出端接通一個掃描周期。如圖所示,當(dāng)M10.0從0到1時,Q0.0接通一個掃描周期,指令框下方的M10.1是脈沖存儲位。掃描RLO的信號下降沿指令即N_TRIG指令,當(dāng)在CLK輸入端檢測到下降沿時,輸出端接通一個掃描周期。如圖所示,當(dāng)M10.2從1到0時,Q0.0接通一個掃描周期,指令框下方的M10.3是脈沖存儲位。4.1位邏輯運算檢測信號上升沿指令、檢測信號下降沿指令檢測信號上升沿指令即R_TRIG指令,該指令是函數(shù)塊,在調(diào)用時可自動生成背景數(shù)據(jù)塊。該指令將CLK輸入端的當(dāng)前狀態(tài)與背景數(shù)據(jù)塊中的邊沿存儲位保存的上一個掃描周期的CLK的狀態(tài)進(jìn)行比較,如果指令檢測到CLK的上升沿,將會通過Q端輸出一個掃描周期的脈沖。檢測信號下降沿指令即F_TRIG指令,該指令也是函數(shù)塊,在調(diào)用時可自動生成背景數(shù)據(jù)塊。該指令將CLK輸入端的當(dāng)前狀態(tài)與背景數(shù)據(jù)塊中的邊沿存儲位保存的上一個掃描周期的CLK的狀態(tài)進(jìn)行比較,如果指令檢測到CLK的下降沿,將會通過Q端輸出一個掃描周期的脈沖。4.1.6實操案例1:電動機正反轉(zhuǎn)連續(xù)運行控制任務(wù):使用S7-1200PLC實現(xiàn)電動機正反轉(zhuǎn)連續(xù)運行控制??刂埔螅?.按下正向啟動按鈕SB1,交流接觸器KM1得電,控制電動機正轉(zhuǎn);按下停止按鈕SB3,電動機停止轉(zhuǎn)動;按下反向啟動按鈕SB2,交流接觸器KM2得電,控制電動機反轉(zhuǎn)。2.若電動機正轉(zhuǎn)運行時,按下反轉(zhuǎn)啟動按鈕SB2,電動機將變成反轉(zhuǎn)運行;若電動機反轉(zhuǎn)運行時,按下正轉(zhuǎn)啟動按鈕SB1,電動機將變成正轉(zhuǎn)運行。注意:電動機任何時候不能同時正轉(zhuǎn)和反轉(zhuǎn),否則會造成短路現(xiàn)象。4.1.6實操案例1:電動機正反轉(zhuǎn)連續(xù)運行控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點分配如表:輸入點輸出點輸入繼電器名稱輸出繼電器名稱I0.0正轉(zhuǎn)啟動SB1Q0.0正轉(zhuǎn)控制KM1I0.1反轉(zhuǎn)啟動SB2Q0.1反轉(zhuǎn)控制KM2I0.2停止按鈕SB3--I0.3熱過載FR--4.1.6實操案例1:電動機正反轉(zhuǎn)連續(xù)運行控制
根據(jù)控制要求及I/O分配表,結(jié)合實際情況,停止按鈕用常閉,其接線圖如圖所示。由于PLC的相應(yīng)速度過快,所以在正轉(zhuǎn)與反轉(zhuǎn)控制電路中我們加入了物理聯(lián)鎖機制,以確保快速換向時不短路。4.1.6實操案例1:電動機正反轉(zhuǎn)連續(xù)運行控制編寫程序4.1.6實操案例1:電動機正反轉(zhuǎn)連續(xù)運行控制調(diào)試程序
單擊程序編輯器工具欄上的
按鈕,程序狀態(tài)進(jìn)入監(jiān)視運行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。按下正向啟動按鈕SB1,觀察電動機是否正轉(zhuǎn),再按下反向啟動按鈕SB2,觀察電動機能否反轉(zhuǎn)。同時按下正反轉(zhuǎn)啟動按鈕,看看電動機是否運行工作。4.2定時器操作名稱LAD功能框LAD線圈說明脈沖定時器(TP)
TP定時器可生成具有預(yù)設(shè)寬度時間的脈沖。接通延時定時器(TON)
TON定時器在預(yù)設(shè)的延時過后將輸出Q設(shè)置為ON。關(guān)斷延時定時器(TOF)
TOF定時器在預(yù)設(shè)的延時過后將輸出Q重置為OFF。保持型接通延時定時器(TONR)
TONR定時器在預(yù)設(shè)的延時過后將輸出Q設(shè)置為ON。在使用R輸入重置經(jīng)過的時間之前,會跨越多個定時時段一直累加經(jīng)過的時間。4.2定時器操作TP:脈沖定時器使用“生成脈沖”(GeneratePulse)指令,可以將輸出Q置位為預(yù)設(shè)的一段時間。當(dāng)輸入IN的邏輯運算結(jié)果(RLO)從“0”變?yōu)椤?”(信號上升沿)時,啟動該指令。指令啟動時,預(yù)設(shè)的時間PT即開始計時。無論后續(xù)輸入信號的狀態(tài)如何變化,都將輸出Q置位由PT指定的一段時間。PT持續(xù)時間正在計時時,即使檢測到新的信號上升沿,輸出Q的信號狀態(tài)也不會受到影響。4.2定時器操作TP:脈沖定時器1)啟動:當(dāng)IN端(I0.0)從0→1時,定時器啟動,此時ET端開始計時且輸出Q端也置1。當(dāng)ET=PT時,輸出Q端清0。2)輸出:在定時器定時過程中,輸出Q端為1,定時器停止計時,即不論是保持當(dāng)前值還是清零,當(dāng)前值其輸出Q端皆為0。3)復(fù)位:在任何時候按下I0.1,讓定時器復(fù)位線圈(RT)接通,將對“%DB1”指定的定時器數(shù)據(jù)復(fù)位。若IN端為0時,ET=0;Q=0。區(qū)域條件結(jié)果AIN=1ET端開始計時,Q=1IN=1,ET=PTET端數(shù)據(jù)保持,Q=0IN=0ET端數(shù)據(jù)清空,Q=0BIN=1ET端開始計時,Q=1IN=0ET端仍然計時,Q=1IN=1ET端仍然計時,Q=1IN=0,ET=PTET端數(shù)據(jù)清空,Q=0CIN=1ET端開始計時,Q=1IN=0,RT=1ET端數(shù)據(jù)清空,Q=0DIN=1ET端開始計時,Q=1IN=1,RT=1ET端數(shù)據(jù)清空,Q=1IN=1,RT=0ET端又開始計時,Q=1IN=0,ET=PTET端數(shù)據(jù)清空,Q=04.2定時器操作TP:脈沖定時器【例4-1】游樂場設(shè)備,當(dāng)工作人員按下I0.0啟動按鈕,設(shè)備Q0.0運行8分鐘后自動停止工作。若中途有游客感到不適,工作人員可按下I0.1停止按鈕讓其停止工作,程序如圖所示。4.2定時器操作TON:接通延時定時器可以使用“生成接通延時”(GenerateOn-Delay)指令將Q輸出的設(shè)置延時設(shè)定的時間PT。當(dāng)輸入IN的邏輯運算結(jié)果(RLO)從“0”變?yōu)椤?”(信號上升沿)時,啟動該指令。指令啟動時,預(yù)定的時間PT即開始計時。超出時間PT之后,輸出Q的信號狀態(tài)將變?yōu)椤?”。只要啟動輸入仍為“1”,輸出Q就保持置位。啟動輸入的信號狀態(tài)從“1”變?yōu)椤?”時,將復(fù)位輸出Q。在啟動輸入檢測到新的信號上升沿時,該定時器功能將再次啟動。4.2定時器操作TON:接通延時定時器1)啟動:當(dāng)IN端(I0.0)從0→1時,定時器啟動,此時ET端開始計時,當(dāng)IN端(I0.0)從1→0時,定時器停止計時,此時ET端數(shù)據(jù)清空。2)輸出:當(dāng)定時器ET=PT時,輸出Q端為1,定時器停止計時ET保持等于PT的數(shù)據(jù)。3)復(fù)位:在任何時候按下I0.1,讓定時器復(fù)位線圈(RT)接通,將對“%DB2”指定的定時器數(shù)據(jù)復(fù)位。若IN端為0時,ET=0;Q=0。區(qū)域條件結(jié)果AIN=1ET端開始計時,Q=0IN=1,ET=PTET端數(shù)據(jù)保持,Q=1IN=0ET端數(shù)據(jù)清空,Q=0BIN=1ET端開始計時,Q=0ET<PT,IN=0ET端數(shù)據(jù)清空,Q=0CIN=1ET端開始計時,Q=0IN=1,RT=1,ET<PTET端數(shù)據(jù)清空,Q=0IN=1,RT=0ET端重新計時,Q=0IN=1,RT=0,ET=PTET端數(shù)據(jù)保持,Q=1IN=0ET端數(shù)據(jù)清空,Q=04.2定時器操作TON:接通延時定時器【例4-2】兩臺電機的控制,當(dāng)工作人員按下I0.0啟動按鈕,M1電機啟動運行8秒后M2電機再自動運行,當(dāng)按下I0.1兩臺電機同時停止工作。程序如圖所示。4.2定時器操作TOF:關(guān)斷延時定時器可以使用“生成關(guān)斷延時”(GenerateOff-Delay)指令將Q輸出的復(fù)位延時設(shè)定的時間PT。當(dāng)輸入IN的邏輯運算結(jié)果(RLO)從“0”變?yōu)椤?”(信號上升沿)時,將置位Q輸出。當(dāng)輸入IN處的信號狀態(tài)變回“0”時,預(yù)設(shè)的時間PT開始計時。只要PT持續(xù)時間仍在計時,輸出Q就保持置位。持續(xù)時間PT計時結(jié)束后,將復(fù)位輸出Q。如果輸入IN的信號狀態(tài)在持續(xù)時間PT計時結(jié)束之前變?yōu)椤?”,則復(fù)位定時器。輸出Q的信號狀態(tài)仍將為“1”。4.2定時器操作TOF:關(guān)斷延時定時器1)啟動:當(dāng)IN端(I0.0)從0→1時,定時器Q端為1,此時ET端并未計時,當(dāng)IN端(I0.0)從1→0時,定時器啟動計時,此時Q端保持為1。2)輸出:當(dāng)定時器ET=PT時,輸出Q端為0,定時器停止計時ET保持等于PT的數(shù)據(jù)。3)復(fù)位:若IN端為0時按下I0.1,讓定時器復(fù)位線圈(RT)接通,將對“%DB3”指定的定時器數(shù)據(jù)復(fù)位,ET=0;Q=0。若IN端為1時按下I0.1,ET=0;Q=1。區(qū)域條件結(jié)果AIN=1(0→1)ET端未計時,Q=1IN=0(1→0)ET端開始計時,Q=1IN=0,ET=PTET端數(shù)據(jù)保持,Q=0BIN=1(0→1)ET端未計時,Q=1IN=0(1→0)ET端開始計時,Q=1IN=1(0→1)ET端數(shù)據(jù)清空,Q=1IN=0(1→0)ET端重新計時,Q=1IN=0,RT=1ET端數(shù)據(jù)清空,Q=0CIN=1ET端未計時,Q=1IN=1,RT=1ET端未計時,Q=14.2定時器操作TOF:斷電延時定時器【例4-3】設(shè)備風(fēng)扇電機延時控制,當(dāng)工作人員按下I0.0啟動按鈕,M1主電機和M2風(fēng)扇電機同時啟動運行,當(dāng)按下I0.1停止按鈕后,主軸電機停止工作,風(fēng)扇電機1分鐘后停止工作。程序如圖所示。4.2定時器操作TONR:累加型定時器可以使用“時間累加器”指令來累加由參數(shù)PT設(shè)定的時間段內(nèi)的時間值。輸入IN的信號狀態(tài)從“0”變?yōu)椤?”(信號上升沿)時,將執(zhí)行該指令,同時時間值PT開始計時。當(dāng)PT正在計時時,加上在IN輸入的信號狀態(tài)為“1”時記錄的時間值。累加得到的時間值將寫入輸出ET中,并可以在此進(jìn)行查詢。持續(xù)時間PT計時結(jié)束后,輸出Q的信號狀態(tài)為“1”。即使IN參數(shù)的信號狀態(tài)從“1”變?yōu)椤?”(信號下降沿),Q參數(shù)仍將保持置位為“1”。無論啟動輸入的信號狀態(tài)如何,輸入R都將復(fù)位輸出ET和Q。4.2定時器操作TONR:累加型定時器1)啟動:當(dāng)IN端(I0.0)從0→1時,定時器啟動,此時ET端開始計時,當(dāng)IN端(I0.0)從1→0時,定時器停止計時,此時ET端數(shù)據(jù)保持當(dāng)前值,當(dāng)IN端(I0.0)又從0→1時,定時器再次啟動,此時ET端繼續(xù)計時。2)輸出:當(dāng)定時器ET=PT時,輸出Q端為1,定時器停止計時ET保持等于PT的數(shù)據(jù)。3)復(fù)位:在任何時候按下I0.1,讓定時器R端(I0.1)從0→1時,將對“%DB4”指定的定時器數(shù)據(jù)復(fù)位。區(qū)域條件結(jié)果AIN=1ET端開始計時,Q=0IN=0ET端數(shù)據(jù)保持,Q=0IN=1ET端繼續(xù)計時,Q=0IN=1,ET=PTET端數(shù)據(jù)保持,Q=1BIN=0,ET=PTET端數(shù)據(jù)保持,Q=1IN=0,R=1ET端數(shù)據(jù)清空,Q=04.2.5實操案例2:三相異步電動機Y-△降壓啟動控制任務(wù):使用S7-1200PLC實現(xiàn)機床主軸降壓啟動控制,降壓運行5秒后轉(zhuǎn)至全壓運行。為了保護(hù)機床加工車削,主軸電機啟動的同時冷卻液電機一同工作,主軸電機停止后,冷卻液電機繼續(xù)工作6秒后自動停止工作。4.2.5實操案例2:三相異步電動機Y-△降壓啟動控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點分配如表所示:輸入點輸出點輸入繼電器名稱輸出繼電器名稱I0.0啟動按鈕Q0.0主軸電機KM1I0.1停止按鈕Q0.1主軸星形KM2I0.2主軸電機熱過載FR1Q0.2主軸三角形KM3I0.3冷卻液電機熱過載FR2Q0.3冷卻液電機KM44.2.5實操案例2:三相異步電動機Y-△降壓啟動控制根據(jù)控制要求及I/O分配表,結(jié)合實際情況,停止按鈕用常閉、熱過載用常閉,此書后續(xù)項目無特殊說明也將主電路省略,其接線圖如圖所示。4.2.5實操案例2:三相異步電動機Y-△降壓啟動控制編寫程序4.2.5實操案例2:三相異步電動機Y-△降壓啟動控制調(diào)試程序單擊程序編輯器工具欄上的
按鈕,程序狀態(tài)進(jìn)入監(jiān)視運行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。Bool變量為“0”狀態(tài)和“1”狀態(tài)時,它們的常開觸點和線圈分別用藍(lán)色虛線和綠色實線來表示。4.2.5實操案例2:三相異步電動機Y-△降壓啟動控制其開關(guān)觸點我們可以通過右鍵進(jìn)行Bool變量修改“0”或“1”的狀態(tài),也可對某個數(shù)據(jù)進(jìn)行內(nèi)容修改。1加計數(shù)器2減計數(shù)器3加減計數(shù)器-39-4.3計數(shù)器操作4.3計數(shù)器操作加計數(shù)器CTUCU為“加計數(shù)輸入”,R為“復(fù)位輸入”,PV為“預(yù)設(shè)計數(shù)值”,CV為“當(dāng)前計數(shù)器值”,Q為“輸出”。4.3計數(shù)器操作減計數(shù)器CTDCD為“減計數(shù)輸入”,LD為“裝載輸入”,PV為“預(yù)設(shè)計數(shù)值”,CV為“當(dāng)前計數(shù)器值”,Q為“輸出”。4.3計數(shù)器操作加減計數(shù)器CTUD4.3.4實操案例3:車庫出入口閘機控制任務(wù):使用S7-1200PLC實現(xiàn)電動機正反轉(zhuǎn)斷續(xù)運行控制。控制要求如下:1.要求分別用紅、綠、黃燈表示地下車庫車位數(shù)量的顯示,本車庫共有20個車位。2.系統(tǒng)工作時,若空余車位大于10個亮綠燈,空余車位在1~10個亮黃燈,無空余車位亮紅燈。3.車庫有閘機入口攝像頭控制閘機入口電機和閘機出口攝像頭控制閘機出口電機的車輛進(jìn)出。當(dāng)綠燈和黃燈亮?xí)r,汽車進(jìn)入閘機可開啟,當(dāng)紅燈亮起時入口閘機禁止抬起。(這里攝像頭控制閥門我們模擬用I0.0和I0.1來代替)4.控制室里有兩個按鈕,一個是計數(shù)清零按鈕,另一個是計數(shù)調(diào)節(jié)按鈕。5.當(dāng)工作人員按下計數(shù)清零按鈕時,計數(shù)器清空里面的數(shù)值,此時所有車輛無法進(jìn)入。6.當(dāng)工作人員按下計數(shù)調(diào)節(jié)按鈕N次,3秒后計數(shù)值當(dāng)前值為N次,1-20循環(huán),即按22次為2次。4.3.4實操案例3:車庫出入口閘機控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點分配如表所示。輸入點輸出點輸入繼電器名稱輸出繼電器名稱I0.0閘機入口攝像頭Q0.0閘機入口電機I0.1閘機出口攝像頭Q0.1閘機出口電機I0.2計數(shù)清零按鈕Q0.2紅燈指示I0.3計數(shù)調(diào)節(jié)按鈕Q0.3綠燈指示--Q0.4黃燈指示4.3.4實操案例3:車庫出入口閘機控制根據(jù)控制要求及I/O分配表,結(jié)合實際情況,其接線圖如圖所示。4.3.4實操案例3:車庫出入口閘機控制編寫程序4.3.4實操案例3:車庫出入口閘機控制4.3.4實操案例3:車庫出入口閘機控制調(diào)試程序單擊程序編輯器工具欄上的
按鈕,程序狀態(tài)進(jìn)入監(jiān)視運行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運行結(jié)果(RLO)。我們用開關(guān)來模擬閘機入口攝像頭和閘機出口攝像頭的處理信號,至于入口攝像頭存儲車牌信息、出口繳費判斷等內(nèi)容不再本案例考慮范圍內(nèi)。本案例有三個未學(xué)習(xí)過的指令,“MOVE”指令在4.6.2小節(jié)、“IN_RANGE”指令在4.4.2小節(jié)、“CMP<>、CMP==、CMP>”指令在4.4.1小節(jié),請同學(xué)自行先預(yù)習(xí)一下該指令的運用方法。4.4比較操作指令CMP==:等于CMP<>:不等于CMP>=:大于等于CMP<=:小于等于CMP>:大于CMP<:小于比較指令用來比較數(shù)據(jù)類型相同的兩個操作數(shù)的大小。滿足比較關(guān)系式給出的條件時,等效觸點接通。操作數(shù)可以是I、Q、M、L、D存儲區(qū)中的變量或常數(shù)。比較指令需要設(shè)置數(shù)據(jù)類型,相比較的兩個數(shù)的數(shù)據(jù)類型必須相同,可以設(shè)置比較條件。比較兩個字符串時,實際上比較的是它們各自對應(yīng)字符的ASCII碼的大小,第一個不相同的字符決定了比較的結(jié)果。4.4比較操作指令按下啟動按鈕SB1(I0.0),燈(Q0.0)亮5S,滅5S,如此循環(huán)。按下停止按鈕SB2(I0.1),燈(Q0.0)熄滅,循環(huán)停止。4.4比較操作指令I(lǐng)N_Range:值在范圍內(nèi)、OUT_Range:值在范圍外如果M10.0閉合,有能流流入IN_RANGE指令框,則執(zhí)行比較,如果參數(shù)VAL的值滿足MIN≤VAL≤MAX(-100
≤
MW20
≤
100),則有能流流出,Q0.5得電;反之無能流,失電。如果M10.1閉合,有能流流入OUT_RANGE指令框,則執(zhí)行比較,如果參數(shù)VAL的值滿足VAL<MIN或VAL>MAX(MD30<0.0或MD30>300.1),則有能流流出,Q0.6得電;反之亦然。4.4比較操作指令┫OK┣:檢查有效性、┫NOT_OK┣:檢查無效性O(shè)K和NOT_OK指令用來檢查輸入的數(shù)據(jù)是否是實數(shù)(浮點數(shù)),如果是實數(shù),則OK觸點接通,如果不是實數(shù),則NOT_OK觸點接通。如果MD30為有效實數(shù),則OK觸點接通,NOT_OK觸點不接通,Q0.0得電,Q0.1失電。4.4.4實操案例4:十字路口交通燈控制任務(wù):使用S7-1200PLC實現(xiàn)十字路口交通燈控制系統(tǒng)??刂埔笕缦拢?.東西方向紅、綠、黃聯(lián)控、南北方向紅、綠、黃聯(lián)控。2.東西方向:先綠燈亮20秒(后3秒以1Hz閃爍),再黃燈常亮3秒,最后紅燈亮,當(dāng)東西方向的紅燈亮?xí)r,南北方向由紅燈切換為綠燈亮(工作),待南北方向由黃燈切換為紅燈時,回到綠燈亮,如此循環(huán)。3.南北方向:先紅燈亮,等待東西方向的紅燈亮?xí)r,綠燈亮30秒(后3秒以1Hz閃爍),再黃燈常量3秒,回到紅燈亮?xí)r東西方向紅燈切換為綠燈亮(工作)如此循環(huán)。4.四個方向不能同時出現(xiàn)紅燈、綠燈、黃燈亮的情況。4.4.4實操案例4:十字路口交通燈控制根據(jù)PLC控制要求,沒有輸入點,根據(jù)S7-1200硬件輸入/輸出點分配如表所示。輸出點輸出繼電器名稱輸出繼電器名稱Q0.0東西方向紅燈Q0.3南北方向紅燈Q0.1東西方向綠燈Q0.4南北方向綠燈Q0.2東西方向黃燈Q0.5南北方向黃燈4.4.4實操案例4:十字路口交通燈控制根據(jù)控制要求及I/O分配表,結(jié)合實際情況,畫出其接線圖如圖所示。4.4.4實操案例4:十字路口交通燈控制編寫程序4.4.4實操案例4:十字路口交通燈控制4.4.4實操案例4:十字路口交通燈控制調(diào)試程序單擊程序編輯器工具欄上的
按鈕,程序狀態(tài)進(jìn)入監(jiān)視運行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。有些同學(xué)覺得1Hz的閃爍可以用PLC的“系統(tǒng)和時鐘存儲器”里的1Hz,但使用后卻發(fā)現(xiàn),程序與實際使用時會出現(xiàn),四面紅燈的現(xiàn)象,但從時間范圍來算卻沒有錯。這是因為系統(tǒng)和時鐘存儲器里的1Hz它是根據(jù)PLC的時鐘來控制的,我們程序運行時間不可能與PLC的時鐘脈沖同步的,故此要么快一些、要么慢一些,差額應(yīng)該在±1000ms以內(nèi)。4.5數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)又叫數(shù)學(xué)運算指令。主要包括ADD(加法)、SUB(減法)、MUL(乘法)、DIV(除法)、MOD(取余)、NEG(取反)、ABS(計算絕對值)、INC(遞增)、DEC(遞減)、MIN(獲取最小值)、MAX(獲取最大值)、LIMIT(設(shè)置限值)、SQR(計算平方)、SQRT(計算平方根)、LN(計算自然對數(shù))、EXP(計算指數(shù)值)、SIN(計算正弦值)、COS(計算余弦值)、TAN(計算正切值)、ASIN(計算反正弦值)、ACOS(計算反余弦值)、ATAN(計算反正切值)、FRAC(返回小數(shù))、EXPT(取冪)等指令。4.5數(shù)學(xué)函數(shù)ADD:加法、SUB:減法加法指令如所示,用于實現(xiàn)IN1
+
IN2
=OUT。操作數(shù)的數(shù)據(jù)類型可選Int、DInt、Real、LReal、USInt
、UInt、SInt、UDInt,IN1和IN2也可以是常數(shù),但要注意IN1、IN2和OUT的數(shù)據(jù)類型應(yīng)相同。減法指令的用法與加法指令的用法類似,如圖所示,用于實現(xiàn)IN1-IN2=OUT。注意IN1、IN2和OUT的數(shù)據(jù)類型應(yīng)相同。4.5數(shù)學(xué)函數(shù)MUL:乘法、DIV:除法乘法指令的用法與加法指令的用法類似,如圖所示,用于實現(xiàn)IN1*IN2
=OUT。注意IN1、IN2和OUT的數(shù)據(jù)類型應(yīng)相同。除法指令的用法如圖所示,用于實現(xiàn)IN1/
IN2
=OUT。注意IN1、IN2和OUT的數(shù)據(jù)類型應(yīng)相同。如果輸入端(IN1、IN2)是整數(shù),那么將得到的商截位取整后,作為整數(shù)格式輸出到參數(shù)OUT中。如10
DIV
3=3,9DIV2=4。4.5數(shù)學(xué)函數(shù)MOD:取余、NEG:取反、ABS:計算絕對值整數(shù)除法用除法指令只能得到整數(shù)的商,余數(shù)會被丟掉。可以使用取余(MOD)指令來求除法的余數(shù)。操作數(shù)的數(shù)據(jù)類型可選Int、DInt、USInt、UInt、SInt、UDInt,不能為Real、LReal。取余指令的用法如圖所示,用于求IN1/IN2的余數(shù),將其保存在輸出OUT中。取反(NEG)指令用于將輸入IN的值的符號取反,保存在輸出OUT中,IN和OUT的數(shù)據(jù)類型可以是Int、DInt、SInt、Real、LReal,不能為USInt、UInt、UDInt。取反指令的用法如圖所示。絕對值(ABS)指令用于求輸入IN的值的絕對值,保存在輸出OUT中。IN和OUT的數(shù)據(jù)類型應(yīng)相同,可以是Int、DInt、SInt、Real、LReal,不能為USInt、UInt、UDInt。4.5數(shù)學(xué)函數(shù)INC:遞增、DEC:遞減
遞增(INC)指令或遞減(DEC)指令用于將變量IN/OUT的值加1或減1后保存在自己的變量中。數(shù)據(jù)類型可以為有符號或無符號的整數(shù),不能為浮點數(shù)(Real、LReal)。如圖所示,指令的輸入端(EN)需接上升沿指令,每檢測到一個上升沿時,IN/OUT(MW62)的值加1或減1。4.5數(shù)學(xué)函數(shù)MIN:獲取最小值、MAX:獲取最大值最小值(MIN)或最大值(MAX)指令用于比較輸入端IN1、IN2(可增加更多的輸入變量)值的大小,將其中的最小值或最大值保存在輸出OUT中。IN1和IN2的數(shù)據(jù)類型應(yīng)相同,才可進(jìn)行比較,數(shù)據(jù)類型可以是Int、DInt、SInt、Real、LReal、USInt、UInt、UDInt、DTL。4.5數(shù)學(xué)函數(shù)SQR:計算平方和SQRT:計算平方根4.5數(shù)學(xué)函數(shù)LIMIT:設(shè)置限值、LN:計算自然對數(shù)、EXP:計算指數(shù)值4.5數(shù)學(xué)函數(shù)SIN:計算正弦值、COS:計算余弦值、TAN:計算正切值A(chǔ)SIN:計算反正弦值、ACOS:計算反余弦值、ATAN:計算反正切值4.5數(shù)學(xué)函數(shù)FRAC:返回小數(shù)、EXPT:取冪4.5.25實操案例5:數(shù)學(xué)運算指令的綜合應(yīng)用編程實現(xiàn)
的運算結(jié)果,結(jié)果保存在MD200中。4.6移動操作SWAP:交換交換(SWAP)指令用于交換字或雙字中的字節(jié)。如果IN和OUT的數(shù)據(jù)類型為Word型時,SWAP指令交換IN輸入值的高、低字節(jié)中的數(shù)據(jù)后,將結(jié)果保存到OUT中;如果IN和OUT的數(shù)據(jù)類型為DWord型時,SWAP指令交換IN輸入值的4個字節(jié)中的數(shù)據(jù)的順序后,將結(jié)果保存到OUT中。4.6移動操作MOVE:移動值移動(MOVE)指令用于將IN輸入的源數(shù)據(jù)傳送給OUT1輸出的目的地址,并且轉(zhuǎn)換為OUT1允許的數(shù)據(jù)類型(與是否進(jìn)行IEC檢查有關(guān)),源數(shù)據(jù)保持不變。MOVE指令的IN和OUT1可以是BOOL量之外所有的基本數(shù)據(jù)類型和數(shù)據(jù)類型DTL、Struct、Array,IN還可以是常數(shù)??稍鰷p輸出參數(shù)的個數(shù)。4.6移動操作塊移動(MOVE_BLK)指令塊移動(MOVE_BLK)指令是將一個存儲區(qū)的內(nèi)容復(fù)制到另一個存儲區(qū)。如圖所示,M12.1的常開觸點接通時,塊移動(MOVE_BLK)指令將源區(qū)域(源數(shù)據(jù)塊的數(shù)組源數(shù)組)的0號元素開始的20個Int元素的值,復(fù)制給目標(biāo)區(qū)域(目標(biāo)數(shù)據(jù)塊的目標(biāo)數(shù)組)的0號元素開始的20個元素。復(fù)制操作按地址增大的方向進(jìn)行。IN和OUT是待復(fù)制的源區(qū)域和目標(biāo)區(qū)域中的首個元素。COUNT為復(fù)制的數(shù)組元素的個數(shù)。4.6移動操作4.6移動操作移動塊(MOVE_BLK_VARIANT)指令移動塊(MOVE_BLK_VARIANT)指令將一個存儲區(qū)(源范圍)的數(shù)據(jù)移動到另一個存儲區(qū)(目標(biāo)范圍)中。可以將一個完整的ARRAY或ARRAY的元素復(fù)制到另一個相同數(shù)據(jù)類型的ARRAY中。源ARRAY和目標(biāo)ARRAY的大小(元素個數(shù))可能會不同。可以復(fù)制一個ARRAY內(nèi)的多個或單個元素,要復(fù)制的元素數(shù)量不得超過所選源范圍或目標(biāo)范圍。4.6移動操作4.6移動操作填充塊(FILL_BLK)指令填充塊(FILL_BLK)指令是將IN輸入的值填充輸出到參數(shù)OUT指定起始地址的目標(biāo)存儲區(qū)。IN可以是數(shù)據(jù)塊中的數(shù)組元素,也可以是常數(shù);OUT必須是數(shù)據(jù)塊中的元素;COUNT為移動的數(shù)組元素的個數(shù)。4.6移動操作將位序列解析為單個位(SCATTER)指令SCATTER指令將數(shù)據(jù)類型為BYTE、WORD、DWORD或LWORD的變量解析為單個位,并保存在ARRAYofBOOL或僅包含有布爾型元素的PLC數(shù)據(jù)類型中。4.6移動操作將ARRAYof<位序列>中的元素解析為單個位(SCATTER_BLK)指令SCATTER_BLK指令用于將BYTE、WORD、DWORD或LWORD數(shù)據(jù)類型的ARRAY分解為單個位,并保存在元素類型僅為布爾型的ARRAYofBOOL或PLC數(shù)據(jù)類型中。在COUNT_IN參數(shù)中,可指定待解析源ARRAY中的元素數(shù)目。4.6移動操作將各個位組合為位序列(GATHER)指令GATHER指令用于將僅包含布爾型元素的ARRAYofBOOL、匿名STRUCT或PLC數(shù)據(jù)類型中的各個位組合為一個位序列。位序列保存在數(shù)據(jù)類型為BYTE、WORD、DWORD或LWORD的變量中。4.6移動操作將單個位合并到ARRAYof<位序列>的多個元素中(GATHER_BLK)指令GATHER_BLK指令用于將僅包含布爾型元素的ARRAYofBOOL、匿名STRUCT或PLC數(shù)據(jù)類型中的各個位組合為ARRAYof<位序列>中的一個或多個元素。可以在COUNT_OUT參數(shù)中指定要寫入的目標(biāo)ARRAY元素數(shù)量。4.6移動操作讀出VARIANT變量值(VariantGet)指令VariantGet指令用于讀取SRC參數(shù)的VARIANT指向的變量值,并將其寫入DST參數(shù)的變量。SRC參數(shù)具有VARIANT數(shù)據(jù)類型??梢栽贒ST參數(shù)上指定除VARIANT外的任何數(shù)據(jù)類型。DST參數(shù)變量的數(shù)據(jù)類型必須與VARIANT指向的數(shù)據(jù)類型相匹配。4.6移動操作寫入VARIANT變量值(VariantPut)指令VariantPut指令將SRC參數(shù)的變量值寫入VARIANT所指向的DST參數(shù)存儲區(qū)中。DST參數(shù)具有VARIANT數(shù)據(jù)類型??梢栽赟RC參數(shù)上指定除VARIANT外的任何數(shù)據(jù)類型。SRC參數(shù)變量的數(shù)據(jù)類型必須與VARIANT指向的數(shù)據(jù)類型相匹配。4.6移動操作獲取ARRAY元素個數(shù)(CountOfElements)指令CountOfElements指令用于查詢VARIANT指針?biāo)腁RRAY元素數(shù)量。參數(shù)IN的數(shù)據(jù)類型是VARIANT,參數(shù)RET_VAL的數(shù)據(jù)類型是UDINT。如果是一維ARRAY,則輸出ARRAY元素的個數(shù)。(上限與下限+1的差值)。如果是多維ARRAY,則輸出所有維的數(shù)量。4.6移動操作讀取ARRAY的上限(UPPER_BOUND)指令UPPER_BOUND指令用于讀取ARRAY的變量上限。在函數(shù)塊或函數(shù)的塊接口中,可聲明ARRAY[*]數(shù)據(jù)類型的變量。這些局部變量可讀取ARRAY限值。此時,需要在DIM參數(shù)中指定維數(shù)。使能輸入EN=0或輸入DIM處指定的維數(shù)不存在,使能輸出ENO將返回信號狀態(tài)“0”。4.6移動操作讀取ARRAY的下限(LOWER_BOUND)指令LOWER_BOUND指令用于讀取ARRAY的變量下限。在函數(shù)塊或函數(shù)的塊接口中,可聲明ARRAY[*]數(shù)據(jù)類型的變量。這些局部變量可讀取ARRAY限值。此時,需要在DIM參數(shù)中指定維數(shù)。使能輸入EN=0或輸入DIM處指定的維數(shù)不存在,使能輸出ENO將返回信號狀態(tài)“0”。4.6.8實操案例6:一個數(shù)碼管顯示9秒的倒計時控制任務(wù):使用S7-1200PLC實現(xiàn)一個數(shù)碼管顯示9秒的倒計時控制。控制要求是當(dāng)按鈕I0.0按下后,數(shù)碼管顯示9、8、7、6、5、4、3、2、1、0,熄滅。數(shù)字切換間隔1秒。4.6.8實操案例6:一個數(shù)碼管顯示9秒的倒計時控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點分配如表所示。輸入點輸出點輸入繼電器名稱輸出繼電器名稱I0.0按鈕Q0.0數(shù)碼管a引腳--Q0.1數(shù)碼管b引腳--Q0.2數(shù)碼管c引腳--Q0.3數(shù)碼管d引腳--Q0.4數(shù)碼管e引腳--Q0.5數(shù)碼管f引腳--Q0.6數(shù)碼管g引腳4.6.8實操案例6:一個數(shù)碼管顯示9秒的倒計時控制根據(jù)控制要求及I/O分配表,一個數(shù)碼管顯示9秒的倒計時控制的I/O接線圖如圖所示,本案例數(shù)碼管以集成電壓驅(qū)動,輸入電壓直流12V。4.6.8實操案例6:一個數(shù)碼管顯示9秒的倒計時控制編寫程序4.6.8實操案例6:一個數(shù)碼管顯示9秒的倒計時控制4.6.8實操案例6:一個數(shù)碼管顯示9秒的倒計時控制調(diào)試程序單擊程序編輯器工具欄上的
按鈕,程序狀態(tài)進(jìn)入監(jiān)視運行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運行結(jié)果(RLO)。當(dāng)按下按鈕后,運行輔助置位并給MB1賦值10。M0.0接通后啟動定時器1秒周期循環(huán)計時,同時給MB1進(jìn)行脈沖自減一;當(dāng)MB1等于-1時關(guān)斷M0.0和數(shù)碼管清除顯示。每當(dāng)定時器1秒計時完成后進(jìn)行比較MB1等于幾,等于幾就傳送顯示數(shù)值給QB0。4.7轉(zhuǎn)換操作CONVERT:轉(zhuǎn)換值轉(zhuǎn)換(CONVERT)指令,簡寫為CONV,是將數(shù)據(jù)從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。參數(shù)IN、OUT可以設(shè)置十多種數(shù)據(jù)類型,IN還可以是常數(shù)。數(shù)據(jù)類型BCD16只能轉(zhuǎn)換為Int,BCD32只能轉(zhuǎn)換為DInt。當(dāng)M30.0接通時,CONV指令將存儲在MW40中的整數(shù)10轉(zhuǎn)換成浮點數(shù)10.0保存在MD42中。4.7轉(zhuǎn)換操作ROUND:取整取整(ROUND)指令是將浮點數(shù)轉(zhuǎn)換為整數(shù)。浮點數(shù)的小數(shù)部分舍入為最接近的整數(shù)。如果浮點數(shù)剛好是兩個連續(xù)整數(shù)的一半,則浮點數(shù)舍入為偶數(shù)。當(dāng)M30.1接通時,ROUND指令將20.5轉(zhuǎn)換成整數(shù)20保存在MW46中;將21.5轉(zhuǎn)換成整數(shù)22保存在MW48中。4.7轉(zhuǎn)換操作CEIL:浮點數(shù)向上取整、FLOOR:浮點數(shù)向下取整浮點數(shù)向上取整(CELL)指令將浮點數(shù)轉(zhuǎn)換為大于等于該實數(shù)的最小整數(shù)。浮點數(shù)向下取整(FLOOR)指令將浮點數(shù)轉(zhuǎn)換為小于等于該實數(shù)的最大整數(shù)。4.7轉(zhuǎn)換操作TRUNC:截尾取整、SCALE_X:縮放、NORM_X:標(biāo)準(zhǔn)化截尾取整(TRUNC)指令將浮點數(shù)轉(zhuǎn)換成整數(shù),浮點數(shù)的小數(shù)部分被截取成零??s放(SCALE_X)指令是將浮點數(shù)輸入值VALUE(0.0≤VALUE≤1.0)被線性轉(zhuǎn)換(映射)為MIN和MAX定義的數(shù)值范圍之間的實數(shù)。各變量的線性關(guān)系公式為:OUT=VALUE×(MAX-MIN)+MIN標(biāo)準(zhǔn)化(NORM_X)指令是將實數(shù)輸入值VALUE(MIN≤VALUE≤MAX)線性轉(zhuǎn)換(標(biāo)準(zhǔn)化)為0.0~1.0之間的浮點數(shù)。各變量的線性關(guān)系公式為:OUT=(VALUE-MIN)/(MAX-MIN)4.7.8實操案例7:深度測量傳感器模擬量控制任務(wù):使用S7-1200PLC實現(xiàn)一個深度測量傳感器模擬量控制??刂埔螅荷疃葴y量傳感器可以10cm的深度,其電流信號為0~20mA,通過PLC獲取信號模擬量并進(jìn)行轉(zhuǎn)換深度值。根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點分配如表所示。輸入點輸出點輸入繼電器名稱輸出繼電器名稱IW64深度傳感器--4.7.8實操案例7:深度測量傳感器模擬量控制根據(jù)控制要求及I/O分配表,深度測量傳感器模擬量控制PLC外部接線圖如圖所示。4.7.8實操案例7:深度測量傳感器模擬量控制編寫程序4.7.8實操案例7:深度測量傳感器模擬量控制調(diào)試程序單擊程序編輯器工具欄上的
按鈕,程序狀態(tài)進(jìn)入監(jiān)視運行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。如果用戶沒有模擬量傳感器,我們可以對%IW64:P進(jìn)行強制輸入某個值來驗證程序的有效性。4.8程序控制指令(JMP):若RLO="1"則跳轉(zhuǎn)跳轉(zhuǎn)(JMP)指令用于中止程序的順序執(zhí)行,跳轉(zhuǎn)到指令中的跳轉(zhuǎn)標(biāo)簽(LABEL)所在的目的地址。跳轉(zhuǎn)時不執(zhí)行跳轉(zhuǎn)指令和標(biāo)簽之間的程序。跳轉(zhuǎn)指令可以向前或向后跳轉(zhuǎn),但只能在同一個代碼塊內(nèi)跳轉(zhuǎn)。在一個塊內(nèi),跳轉(zhuǎn)標(biāo)簽的名稱只能使用一次。如果跳轉(zhuǎn)條件不滿足,將繼續(xù)執(zhí)行跳轉(zhuǎn)指令之后的程序。如果M10.0閉合,JMP為1,則跳轉(zhuǎn)執(zhí)行,程序執(zhí)行時將跳過程序段2(程序段2不執(zhí)行,梯形圖為灰色),執(zhí)行程序段3。4.8程序控制指令(JMPN):若RLO="0"則跳轉(zhuǎn)JMPN指令是為0時跳轉(zhuǎn),即該指令的線圈斷電時,跳轉(zhuǎn)到相應(yīng)的標(biāo)簽(LABEL)處,然后執(zhí)行標(biāo)簽之后的程序。如圖所示,如果M10.0斷開,JMPN為0,則跳轉(zhuǎn)執(zhí)行,程序執(zhí)行時將跳過程序段2(程序段2不執(zhí)行,梯形圖為灰色),執(zhí)行程序段3。4.8程序控制指令JMP_LIST:定義跳轉(zhuǎn)列表、SWITCH:跳轉(zhuǎn)分支指令定義跳轉(zhuǎn)列表(JMP_LIST)指令用于定義多個有條件的跳轉(zhuǎn),由參數(shù)K指定跳轉(zhuǎn)的目的地址。默認(rèn)的跳轉(zhuǎn)標(biāo)簽是DEST0和DEST1(可根據(jù)需要最多增加到32個)。如圖所示,當(dāng)M10.0接通時,K=2,程序跳轉(zhuǎn)至DEST2所指定的標(biāo)簽CCC處開始執(zhí)行。跳轉(zhuǎn)分支(SWITCH)指令可根據(jù)一個或多個比較指令的結(jié)果,定義要執(zhí)行的多個程序跳轉(zhuǎn)。在參數(shù)K中指定要比較的值,將該值與各個輸入值進(jìn)行比較。可以為每個輸入選擇比較運算符。當(dāng)M10.0接通時,K的值先與第一個比較(是否等于1),不滿足,繼續(xù)和第二個比較(大于3),滿足,則程序跳轉(zhuǎn)至DEST1所指定的標(biāo)簽BBB處開始執(zhí)行。4.8.7實操案例8:多液體混合裝置控制任務(wù):使用S7-1200PLC實現(xiàn)一個多液體混合裝置控制??刂埔笕缦拢?.當(dāng)用戶按下啟動按鈕后,電池閥YV3打開10秒,用于放空混合裝置里的液體,時間到了YV3關(guān)閉閥門,YV1電池閥打開放入液體A。2.當(dāng)放入液體A到達(dá)液面?zhèn)鞲衅鱏L2時,電池閥YV1關(guān)閉,電池閥YV2打開放入液體B至液面?zhèn)鞲衅鱏L1,關(guān)閉電磁閥YV2。3.當(dāng)關(guān)閉電磁閥YV2后,攪拌電動機啟動運行:正轉(zhuǎn)控制5秒、反轉(zhuǎn)控制8秒、停3秒,連續(xù)5次。4.當(dāng)攪拌電機攪拌5次完成后,打開電磁閥YV3,放出混合液體,當(dāng)液體低于液面?zhèn)鞲衅鱏L3時,繼續(xù)放液10s,流程結(jié)束。5.任何時候按下停止按鈕設(shè)備立即停止工作,所有電磁閥關(guān)閉。4.8.7實操案例8:多液體混合裝置控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點分配如表所示。輸入點輸出點輸入繼電器名稱輸出繼電器名稱I0.0啟動按鈕Q0.0電動機正轉(zhuǎn)控制KM1I0.1停止按鈕Q0.1電動機反轉(zhuǎn)控制KM2I0.2傳感器SL1Q0.5電磁閥YV1I0.3傳感器SL2Q0.6電磁閥YV2I0.4傳感器SL3Q0.7電磁閥YV34.8.7實操案例8:多液體混合裝置控制根據(jù)控制要求及I/O分配表,多液體混合裝置控制PLC外部接線圖如圖所示。4.8.7實操案例8:多液體混合裝置控制編寫程序4.8.7實操案例8:多液體混合裝置控制4.8.7實操案例8:多液體混合裝置控制4.8.7實操案例8:多液體混合裝置控制調(diào)試程序單擊程序編輯器工具欄上的
按鈕,程序狀態(tài)進(jìn)入監(jiān)視運行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。我們對于傳感器接通與斷開一定要按照實際情況進(jìn)行仿真運行調(diào)試,否則程序可能會出現(xiàn)錯誤。4.9字邏輯運算AND:“與”運算、OR:“或”運算、XOR:“異或”運算、INVERT:求反碼參數(shù)數(shù)值(2進(jìn)制)IN1M10.7M10.6M10.5M10.4M10.3M10.2M10.1M10.000100110IN2M20.7M20.6M20.5M20.4M20.3M20.2M20.1M20.001000111AND(MB30)00000110OR(MB40)01100111XOR(MB50)01100001INV(IN為MB10)110110014.9字邏輯運算DECO:解碼、ENCO:編碼如果輸入?yún)?shù)IN的值為n,解碼(DECO)指令將輸出參數(shù)OUT的第n位置位為1,其余各位置0.利用解碼指令可以用輸入IN的值控制OUT中的指定位。如果輸入IN的值大于31,則將IN的值除以32后,用余數(shù)來進(jìn)行解碼操作。IN的值為5時,OUT輸出為16#20(2#00100000),僅第5位為1;IN的值為7時,OUT輸出為16#80(2#10000000),僅第7位為1。編碼(ENCO)指令與解碼指令相反,將輸入IN中為1的最低位的位數(shù)輸出到參數(shù)OUT指定的地址中。如果IN為16#0026(2#00100110),編碼結(jié)果為1;如果IN為1或0,編碼結(jié)果為0。4.9字邏輯運算SEL:選擇、MUX:多路復(fù)用選擇(SEL)指令根據(jù)BOOL型輸入?yún)?shù)G的值做選擇,值為0時選擇IN0,值為1時選擇IN1,并將結(jié)果輸出保存到OUT指定的地址中。多路復(fù)用(MUX)指令根據(jù)輸入?yún)?shù)K的值,選擇某個輸入數(shù)據(jù)(可增加IN的數(shù)量),并將選擇的結(jié)果傳輸?shù)絆UT指定的地址中。如圖所示,當(dāng)K為0時選擇IN0,K為1時選擇IN1,K為2時選擇IN2,依此類推,如果K的值超過允許的范圍,將選擇輸出參數(shù)ELSE中的數(shù)據(jù),同時輸出ENO的信號狀態(tài)將為0。4.9字邏輯運算DEMUX:多路分用如圖所示,當(dāng)K為0時將IN的值傳給OUT0,K為1時將IN的值傳給OUT1,K為2時將IN的值傳給OUT2,依此類推,如果K的值超過允許的范圍,將IN的值輸出參數(shù)到ELSE指定的地址中,同時輸出EN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨裝值班員操作規(guī)程知識考核試卷含答案
- 有色礦石磨細(xì)工安全宣教知識考核試卷含答案
- 飼料配方師班組管理考核試卷含答案
- 會展服務(wù)師安全生產(chǎn)意識強化考核試卷含答案
- 高爐上料工安全宣貫測試考核試卷含答案
- 重冶固體原料輸送工安全專項評優(yōu)考核試卷含答案
- 輕冶沉降工復(fù)試競賽考核試卷含答案
- 2024年山東省濟寧教育學(xué)院輔導(dǎo)員考試參考題庫附答案
- 粉末冶金制品制造工崗前理論能力考核試卷含答案
- 催化劑制造工安全文化能力考核試卷含答案
- 2026年重慶市江津區(qū)社區(qū)專職人員招聘(642人)考試參考題庫及答案解析
- 2026年1月福建廈門市集美區(qū)后溪鎮(zhèn)衛(wèi)生院補充編外人員招聘16人筆試模擬試題及答案解析
- 2026年長治職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫附答案解析
- 新華資產(chǎn)招聘筆試題庫2026
- 2026年丹東市人力資源和社會保障局公開選聘法律顧問備考題庫及完整答案詳解一套
- 2026年干部綜合能力高頻知識點測試題附解析
- GB/T 46544-2025航空航天用螺栓連接橫向振動防松試驗方法
- 炎德·英才大聯(lián)考長沙市一中2026屆高三月考(五)歷史試卷(含答案詳解)
- 零售行業(yè)采購經(jīng)理商品采購與庫存管理績效考核表
- 2025年語文合格考試題庫及答案
評論
0/150
提交評論