西門子S7-1200PLC編程及應(yīng)用教程 課件 第4、5章 S7-1200 PLC 基本指令(LAD)、S7-1200 PLC擴(kuò)展指令(LAD)_第1頁
西門子S7-1200PLC編程及應(yīng)用教程 課件 第4、5章 S7-1200 PLC 基本指令(LAD)、S7-1200 PLC擴(kuò)展指令(LAD)_第2頁
西門子S7-1200PLC編程及應(yīng)用教程 課件 第4、5章 S7-1200 PLC 基本指令(LAD)、S7-1200 PLC擴(kuò)展指令(LAD)_第3頁
西門子S7-1200PLC編程及應(yīng)用教程 課件 第4、5章 S7-1200 PLC 基本指令(LAD)、S7-1200 PLC擴(kuò)展指令(LAD)_第4頁
西門子S7-1200PLC編程及應(yīng)用教程 課件 第4、5章 S7-1200 PLC 基本指令(LAD)、S7-1200 PLC擴(kuò)展指令(LAD)_第5頁
已閱讀5頁,還剩212頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第四章

S7-1200PLC

基本指令(LAD)位邏輯運(yùn)算1定時器操作2計數(shù)器操作3比較操作指令4數(shù)學(xué)函數(shù)5移動操作6轉(zhuǎn)換操作7程序控制指令8字邏輯運(yùn)算9移位和循環(huán)10第四章

S7-1200PLC

基本指令(LAD)理論課程電動機(jī)正反轉(zhuǎn)連續(xù)運(yùn)行控制1三相異步電動機(jī)Y-△降壓啟動控制2車庫出入口閘機(jī)控制3十字路口交通燈控制4數(shù)學(xué)運(yùn)算指令的綜合應(yīng)用5一個數(shù)碼管顯示9秒的倒計時控制6深度測量傳感器模擬量控制7多液體混合裝置控制8圓盤工件箱捷徑傳送控制9八層霓虹燈塔控制10第四章

S7-1200PLC

基本指令(LAD)實(shí)踐操作4.1位邏輯運(yùn)算常開觸點(diǎn)(┫┣)、常閉觸點(diǎn)(┫/┣)觸點(diǎn)分為常開觸點(diǎn)和常閉觸點(diǎn)。常開觸點(diǎn)是指在指定的位為1狀態(tài)(ON)時接通,為0狀態(tài)(OFF)時斷開的觸點(diǎn)。常閉觸點(diǎn)是指在指定的位為1狀態(tài)(ON)時斷開,為0狀態(tài)(OFF)時接通的觸點(diǎn)。兩個觸點(diǎn)串聯(lián)將進(jìn)行邏輯“與”運(yùn)算,兩個觸點(diǎn)并聯(lián)將進(jìn)行邏輯“或”運(yùn)算。觸點(diǎn)指令中變量的數(shù)據(jù)類型為BOOL型,值只能為“1”或“0”。程序段1中當(dāng)I0.0的常開觸點(diǎn)閉合(按下按鈕SB1),即I0.0接通,則Q0.0得電(綠燈亮);當(dāng)I0.0的常開觸點(diǎn)斷開(松開按鈕SB1),則Q0.0失電(綠燈滅)。程序段2中當(dāng)I0.1的常閉觸點(diǎn)閉合(初始狀態(tài):松開按鈕SB2時),即I0.1接通,則Q0.1得電(紅燈亮);當(dāng)I0.1的常閉觸點(diǎn)斷開(按下按鈕SB2),則Q0.0失電(紅燈滅)。4.1位邏輯運(yùn)算取反RLO觸點(diǎn)(┫NOT┣)

取反RLO觸點(diǎn)用來轉(zhuǎn)換能流流入的邏輯狀態(tài)。如果沒有能流流入取反RLO觸點(diǎn),則有能流流出;如果有能流流入取反RLO觸點(diǎn),則沒有能流流出。如果M10.0斷開,M10.1接通,則無能流流入取反RLO觸點(diǎn),經(jīng)過取反RLO觸點(diǎn)后,有能流流向Q0.3(Q0.3得電,黃燈亮);如果M10.0接通,M10.1接通,則有能流流入取反RLO觸點(diǎn),經(jīng)過取反RLO觸點(diǎn)后,無能流流向Q0.3(Q0.3失電,黃燈滅)。4.1位邏輯運(yùn)算賦值指令(-()-)

線圈得電時寫入“1”,線圈失電時寫入“0”。有能流流入Q0.3,則Q0.3得電,值為“1”;無能流流入Q0.3,則Q0.3失電,值為“0”。賦值取反指令(-(/)-)

有能流流入取反線圈,則其值為“0”;無能流流入取反線圈,則其值為“1”。無能流流入取反線圈,則Q0.0得電(綠燈亮);有能流流入取反線圈,則Q0.0失電(綠燈滅)。4.1位邏輯運(yùn)算置位指令(-(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位邏輯運(yùn)算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位邏輯運(yùn)算SR:置位/復(fù)位觸發(fā)器、RS:復(fù)位/置位觸發(fā)器置位/復(fù)位觸發(fā)器(SR)復(fù)位/置位觸發(fā)器(RS)SR1輸出(Q)RS1輸出(Q)00保持前一狀態(tài)00保持前一狀態(tài)0100111011001101114.1位邏輯運(yùn)算置位/復(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位邏輯運(yùn)算4.1位邏輯運(yùn)算掃描操作數(shù)的信號上升沿指令、掃描操作數(shù)的信號下降沿指令當(dāng)P觸點(diǎn)上方的輸入信號M10.0由“0”變?yōu)椤?”時,Q0.0接通一個掃描周期;P觸點(diǎn)下方的M20.0為邊沿存儲位,用來存儲上一個掃描循環(huán)時M10.0的狀態(tài);P觸點(diǎn)不可放在程序段的結(jié)尾處。當(dāng)N觸點(diǎn)上方的輸入信號M10.1由“1”變?yōu)椤?”時,Q0.1接通一個掃描周期;N觸點(diǎn)下方的M20.1為邊沿存儲位,用來存儲上一個掃描循環(huán)時M10.1的狀態(tài);N觸點(diǎn)也同樣不可放在程序段的結(jié)尾處。4.1位邏輯運(yùn)算在信號上升沿置位操作數(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線圈指令不會影響邏輯運(yùn)算結(jié)果,即M30.0接通,Q0.3得電。4.1位邏輯運(yùn)算掃描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位邏輯運(yùn)算檢測信號上升沿指令、檢測信號下降沿指令檢測信號上升沿指令即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實(shí)操案例1:電動機(jī)正反轉(zhuǎn)連續(xù)運(yùn)行控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)電動機(jī)正反轉(zhuǎn)連續(xù)運(yùn)行控制。控制要求:1.按下正向啟動按鈕SB1,交流接觸器KM1得電,控制電動機(jī)正轉(zhuǎn);按下停止按鈕SB3,電動機(jī)停止轉(zhuǎn)動;按下反向啟動按鈕SB2,交流接觸器KM2得電,控制電動機(jī)反轉(zhuǎn)。2.若電動機(jī)正轉(zhuǎn)運(yùn)行時,按下反轉(zhuǎn)啟動按鈕SB2,電動機(jī)將變成反轉(zhuǎn)運(yùn)行;若電動機(jī)反轉(zhuǎn)運(yùn)行時,按下正轉(zhuǎn)啟動按鈕SB1,電動機(jī)將變成正轉(zhuǎn)運(yùn)行。注意:電動機(jī)任何時候不能同時正轉(zhuǎn)和反轉(zhuǎn),否則會造成短路現(xiàn)象。4.1.6實(shí)操案例1:電動機(jī)正反轉(zhuǎn)連續(xù)運(yùn)行控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表:輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱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實(shí)操案例1:電動機(jī)正反轉(zhuǎn)連續(xù)運(yùn)行控制

根據(jù)控制要求及I/O分配表,結(jié)合實(shí)際情況,停止按鈕用常閉,其接線圖如圖所示。由于PLC的相應(yīng)速度過快,所以在正轉(zhuǎn)與反轉(zhuǎn)控制電路中我們加入了物理聯(lián)鎖機(jī)制,以確??焖贀Q向時不短路。4.1.6實(shí)操案例1:電動機(jī)正反轉(zhuǎn)連續(xù)運(yùn)行控制編寫程序4.1.6實(shí)操案例1:電動機(jī)正反轉(zhuǎn)連續(xù)運(yùn)行控制調(diào)試程序

單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。按下正向啟動按鈕SB1,觀察電動機(jī)是否正轉(zhuǎn),再按下反向啟動按鈕SB2,觀察電動機(jī)能否反轉(zhuǎn)。同時按下正反轉(zhuǎn)啟動按鈕,看看電動機(jī)是否運(yù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的邏輯運(yùn)算結(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運(yùn)行8分鐘后自動停止工作。若中途有游客感到不適,工作人員可按下I0.1停止按鈕讓其停止工作,程序如圖所示。4.2定時器操作TON:接通延時定時器可以使用“生成接通延時”(GenerateOn-Delay)指令將Q輸出的設(shè)置延時設(shè)定的時間PT。當(dāng)輸入IN的邏輯運(yùn)算結(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】兩臺電機(jī)的控制,當(dāng)工作人員按下I0.0啟動按鈕,M1電機(jī)啟動運(yùn)行8秒后M2電機(jī)再自動運(yùn)行,當(dāng)按下I0.1兩臺電機(jī)同時停止工作。程序如圖所示。4.2定時器操作TOF:關(guān)斷延時定時器可以使用“生成關(guān)斷延時”(GenerateOff-Delay)指令將Q輸出的復(fù)位延時設(shè)定的時間PT。當(dāng)輸入IN的邏輯運(yùn)算結(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)扇電機(jī)延時控制,當(dāng)工作人員按下I0.0啟動按鈕,M1主電機(jī)和M2風(fēng)扇電機(jī)同時啟動運(yùn)行,當(dāng)按下I0.1停止按鈕后,主軸電機(jī)停止工作,風(fēng)扇電機(jī)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實(shí)操案例2:三相異步電動機(jī)Y-△降壓啟動控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)機(jī)床主軸降壓啟動控制,降壓運(yùn)行5秒后轉(zhuǎn)至全壓運(yùn)行。為了保護(hù)機(jī)床加工車削,主軸電機(jī)啟動的同時冷卻液電機(jī)一同工作,主軸電機(jī)停止后,冷卻液電機(jī)繼續(xù)工作6秒后自動停止工作。4.2.5實(shí)操案例2:三相異步電動機(jī)Y-△降壓啟動控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示:輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱I0.0啟動按鈕Q0.0主軸電機(jī)KM1I0.1停止按鈕Q0.1主軸星形KM2I0.2主軸電機(jī)熱過載FR1Q0.2主軸三角形KM3I0.3冷卻液電機(jī)熱過載FR2Q0.3冷卻液電機(jī)KM44.2.5實(shí)操案例2:三相異步電動機(jī)Y-△降壓啟動控制根據(jù)控制要求及I/O分配表,結(jié)合實(shí)際情況,停止按鈕用常閉、熱過載用常閉,此書后續(xù)項(xiàng)目無特殊說明也將主電路省略,其接線圖如圖所示。4.2.5實(shí)操案例2:三相異步電動機(jī)Y-△降壓啟動控制編寫程序4.2.5實(shí)操案例2:三相異步電動機(jī)Y-△降壓啟動控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。Bool變量為“0”狀態(tài)和“1”狀態(tài)時,它們的常開觸點(diǎn)和線圈分別用藍(lán)色虛線和綠色實(shí)線來表示。4.2.5實(shí)操案例2:三相異步電動機(jī)Y-△降壓啟動控制其開關(guān)觸點(diǎ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實(shí)操案例3:車庫出入口閘機(jī)控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)電動機(jī)正反轉(zhuǎn)斷續(xù)運(yùn)行控制??刂埔笕缦拢?.要求分別用紅、綠、黃燈表示地下車庫車位數(shù)量的顯示,本車庫共有20個車位。2.系統(tǒng)工作時,若空余車位大于10個亮綠燈,空余車位在1~10個亮黃燈,無空余車位亮紅燈。3.車庫有閘機(jī)入口攝像頭控制閘機(jī)入口電機(jī)和閘機(jī)出口攝像頭控制閘機(jī)出口電機(jī)的車輛進(jìn)出。當(dāng)綠燈和黃燈亮?xí)r,汽車進(jìn)入閘機(jī)可開啟,當(dāng)紅燈亮起時入口閘機(jī)禁止抬起。(這里攝像頭控制閥門我們模擬用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實(shí)操案例3:車庫出入口閘機(jī)控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱I0.0閘機(jī)入口攝像頭Q0.0閘機(jī)入口電機(jī)I0.1閘機(jī)出口攝像頭Q0.1閘機(jī)出口電機(jī)I0.2計數(shù)清零按鈕Q0.2紅燈指示I0.3計數(shù)調(diào)節(jié)按鈕Q0.3綠燈指示--Q0.4黃燈指示4.3.4實(shí)操案例3:車庫出入口閘機(jī)控制根據(jù)控制要求及I/O分配表,結(jié)合實(shí)際情況,其接線圖如圖所示。4.3.4實(shí)操案例3:車庫出入口閘機(jī)控制編寫程序4.3.4實(shí)操案例3:車庫出入口閘機(jī)控制4.3.4實(shí)操案例3:車庫出入口閘機(jī)控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO)。我們用開關(guān)來模擬閘機(jī)入口攝像頭和閘機(jī)出口攝像頭的處理信號,至于入口攝像頭存儲車牌信息、出口繳費(fèi)判斷等內(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í)一下該指令的運(yùn)用方法。4.4比較操作指令CMP==:等于CMP<>:不等于CMP>=:大于等于CMP<=:小于等于CMP>:大于CMP<:小于比較指令用來比較數(shù)據(jù)類型相同的兩個操作數(shù)的大小。滿足比較關(guān)系式給出的條件時,等效觸點(diǎn)接通。操作數(shù)可以是I、Q、M、L、D存儲區(qū)中的變量或常數(shù)。比較指令需要設(shè)置數(shù)據(jù)類型,相比較的兩個數(shù)的數(shù)據(jù)類型必須相同,可以設(shè)置比較條件。比較兩個字符串時,實(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ù)(浮點(diǎn)數(shù)),如果是實(shí)數(shù),則OK觸點(diǎn)接通,如果不是實(shí)數(shù),則NOT_OK觸點(diǎn)接通。如果MD30為有效實(shí)數(shù),則OK觸點(diǎn)接通,NOT_OK觸點(diǎn)不接通,Q0.0得電,Q0.1失電。4.4.4實(shí)操案例4:十字路口交通燈控制任務(wù):使用S7-1200PLC實(shí)現(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實(shí)操案例4:十字路口交通燈控制根據(jù)PLC控制要求,沒有輸入點(diǎn),根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸出點(diǎn)輸出繼電器名稱輸出繼電器名稱Q0.0東西方向紅燈Q0.3南北方向紅燈Q0.1東西方向綠燈Q0.4南北方向綠燈Q0.2東西方向黃燈Q0.5南北方向黃燈4.4.4實(shí)操案例4:十字路口交通燈控制根據(jù)控制要求及I/O分配表,結(jié)合實(shí)際情況,畫出其接線圖如圖所示。4.4.4實(shí)操案例4:十字路口交通燈控制編寫程序4.4.4實(shí)操案例4:十字路口交通燈控制4.4.4實(shí)操案例4:十字路口交通燈控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。有些同學(xué)覺得1Hz的閃爍可以用PLC的“系統(tǒng)和時鐘存儲器”里的1Hz,但使用后卻發(fā)現(xiàn),程序與實(shí)際使用時會出現(xiàn),四面紅燈的現(xiàn)象,但從時間范圍來算卻沒有錯。這是因?yàn)橄到y(tǒng)和時鐘存儲器里的1Hz它是根據(jù)PLC的時鐘來控制的,我們程序運(yùn)行時間不可能與PLC的時鐘脈沖同步的,故此要么快一些、要么慢一些,差額應(yīng)該在±1000ms以內(nèi)。4.5數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)又叫數(shù)學(xué)運(yùn)算指令。主要包括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:減法加法指令如所示,用于實(shí)現(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)相同。減法指令的用法與加法指令的用法類似,如圖所示,用于實(shí)現(xiàn)IN1-IN2=OUT。注意IN1、IN2和OUT的數(shù)據(jù)類型應(yīng)相同。4.5數(shù)學(xué)函數(shù)MUL:乘法、DIV:除法乘法指令的用法與加法指令的用法類似,如圖所示,用于實(shí)現(xiàn)IN1*IN2

=OUT。注意IN1、IN2和OUT的數(shù)據(jù)類型應(yīng)相同。除法指令的用法如圖所示,用于實(shí)現(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ù),不能為浮點(diǎn)數(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實(shí)操案例5:數(shù)學(xué)運(yùn)算指令的綜合應(yīng)用編程實(shí)現(xiàn)

的運(yù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ù)。可增減輸出參數(shù)的個數(shù)。4.6移動操作塊移動(MOVE_BLK)指令塊移動(MOVE_BLK)指令是將一個存儲區(qū)的內(nèi)容復(fù)制到另一個存儲區(qū)。如圖所示,M12.1的常開觸點(diǎn)接通時,塊移動(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實(shí)操案例6:一個數(shù)碼管顯示9秒的倒計時控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)一個數(shù)碼管顯示9秒的倒計時控制??刂埔笫钱?dāng)按鈕I0.0按下后,數(shù)碼管顯示9、8、7、6、5、4、3、2、1、0,熄滅。數(shù)字切換間隔1秒。4.6.8實(shí)操案例6:一個數(shù)碼管顯示9秒的倒計時控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱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實(shí)操案例6:一個數(shù)碼管顯示9秒的倒計時控制根據(jù)控制要求及I/O分配表,一個數(shù)碼管顯示9秒的倒計時控制的I/O接線圖如圖所示,本案例數(shù)碼管以集成電壓驅(qū)動,輸入電壓直流12V。4.6.8實(shí)操案例6:一個數(shù)碼管顯示9秒的倒計時控制編寫程序4.6.8實(shí)操案例6:一個數(shù)碼管顯示9秒的倒計時控制4.6.8實(shí)操案例6:一個數(shù)碼管顯示9秒的倒計時控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO)。當(dāng)按下按鈕后,運(yùn)行輔助置位并給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)換成浮點(diǎn)數(shù)10.0保存在MD42中。4.7轉(zhuǎn)換操作ROUND:取整取整(ROUND)指令是將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)。浮點(diǎn)數(shù)的小數(shù)部分舍入為最接近的整數(shù)。如果浮點(diǎn)數(shù)剛好是兩個連續(xù)整數(shù)的一半,則浮點(diǎn)數(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:浮點(diǎn)數(shù)向上取整、FLOOR:浮點(diǎn)數(shù)向下取整浮點(diǎn)數(shù)向上取整(CELL)指令將浮點(diǎn)數(shù)轉(zhuǎn)換為大于等于該實(shí)數(shù)的最小整數(shù)。浮點(diǎn)數(shù)向下取整(FLOOR)指令將浮點(diǎn)數(shù)轉(zhuǎn)換為小于等于該實(shí)數(shù)的最大整數(shù)。4.7轉(zhuǎn)換操作TRUNC:截尾取整、SCALE_X:縮放、NORM_X:標(biāo)準(zhǔn)化截尾取整(TRUNC)指令將浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù),浮點(diǎn)數(shù)的小數(shù)部分被截取成零??s放(SCALE_X)指令是將浮點(diǎn)數(shù)輸入值VALUE(0.0≤VALUE≤1.0)被線性轉(zhuǎn)換(映射)為MIN和MAX定義的數(shù)值范圍之間的實(shí)數(shù)。各變量的線性關(guān)系公式為:OUT=VALUE×(MAX-MIN)+MIN標(biāo)準(zhǔn)化(NORM_X)指令是將實(shí)數(shù)輸入值VALUE(MIN≤VALUE≤MAX)線性轉(zhuǎn)換(標(biāo)準(zhǔn)化)為0.0~1.0之間的浮點(diǎn)數(shù)。各變量的線性關(guān)系公式為:OUT=(VALUE-MIN)/(MAX-MIN)4.7.8實(shí)操案例7:深度測量傳感器模擬量控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)一個深度測量傳感器模擬量控制??刂埔螅荷疃葴y量傳感器可以10cm的深度,其電流信號為0~20mA,通過PLC獲取信號模擬量并進(jìn)行轉(zhuǎn)換深度值。根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱IW64深度傳感器--4.7.8實(shí)操案例7:深度測量傳感器模擬量控制根據(jù)控制要求及I/O分配表,深度測量傳感器模擬量控制PLC外部接線圖如圖所示。4.7.8實(shí)操案例7:深度測量傳感器模擬量控制編寫程序4.7.8實(shí)操案例7:深度測量傳感器模擬量控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。如果用戶沒有模擬量傳感器,我們可以對%IW64:P進(jìn)行強(qiáng)制輸入某個值來驗(yà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)行比較??梢詾槊總€輸入選擇比較運(yùn)算符。當(dāng)M10.0接通時,K的值先與第一個比較(是否等于1),不滿足,繼續(xù)和第二個比較(大于3),滿足,則程序跳轉(zhuǎn)至DEST1所指定的標(biāo)簽BBB處開始執(zhí)行。4.8.7實(shí)操案例8:多液體混合裝置控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)一個多液體混合裝置控制。控制要求如下:1.當(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后,攪拌電動機(jī)啟動運(yùn)行:正轉(zhuǎn)控制5秒、反轉(zhuǎn)控制8秒、停3秒,連續(xù)5次。4.當(dāng)攪拌電機(jī)攪拌5次完成后,打開電磁閥YV3,放出混合液體,當(dāng)液體低于液面?zhèn)鞲衅鱏L3時,繼續(xù)放液10s,流程結(jié)束。5.任何時候按下停止按鈕設(shè)備立即停止工作,所有電磁閥關(guān)閉。4.8.7實(shí)操案例8:多液體混合裝置控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱I0.0啟動按鈕Q0.0電動機(jī)正轉(zhuǎn)控制KM1I0.1停止按鈕Q0.1電動機(jī)反轉(zhuǎn)控制KM2I0.2傳感器SL1Q0.5電磁閥YV1I0.3傳感器SL2Q0.6電磁閥YV2I0.4傳感器SL3Q0.7電磁閥YV34.8.7實(shí)操案例8:多液體混合裝置控制根據(jù)控制要求及I/O分配表,多液體混合裝置控制PLC外部接線圖如圖所示。4.8.7實(shí)操案例8:多液體混合裝置控制編寫程序4.8.7實(shí)操案例8:多液體混合裝置控制4.8.7實(shí)操案例8:多液體混合裝置控制4.8.7實(shí)操案例8:多液體混合裝置控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。我們對于傳感器接通與斷開一定要按照實(shí)際情況進(jìn)行仿真運(yùn)行調(diào)試,否則程序可能會出現(xiàn)錯誤。4.9字邏輯運(yùn)算AND:“與”運(yùn)算、OR:“或”運(yùn)算、XOR:“異或”運(yùn)算、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字邏輯運(yùn)算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字邏輯運(yùn)算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字邏輯運(yùn)算DEMUX:多路分用如圖所示,當(dāng)K為0時將IN的值傳給OUT0,K為1時將IN的值傳給OUT1,K為2時將IN的值傳給OUT2,依此類推,如果K的值超過允許的范圍,將IN的值輸出參數(shù)到ELSE指定的地址中,同時輸出ENO的信號狀態(tài)將為0。參數(shù)K的數(shù)據(jù)類型只能是整數(shù)。4.9.10實(shí)操案例9:圓盤工件箱捷徑傳送控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)一個圓盤工件箱捷徑傳送控制。根據(jù)圖所示,周圍均勻分布8個工位(分別為0#~7#),在每一工位安裝有一個接近開關(guān),用于檢測位置信號和一個內(nèi)置信號燈的按鈕,工作臺上有一個工件箱,箱子下方安裝一個磁鋼,當(dāng)磁鋼轉(zhuǎn)到接近開關(guān)上部時,接近開關(guān)動作。當(dāng)某一工位按下按鈕時,對應(yīng)的指示燈亮,要求無論工件箱在哪一工位,工件箱應(yīng)沿著最近距離轉(zhuǎn)動,到該工位自動停止,當(dāng)工件箱到該工位時指示燈滅。4.9.10實(shí)操案例9:圓盤工件箱捷徑傳送控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱I0.0~I(xiàn)0.7SB0~SB7Q0.0~Q0.7HL0~HL7I2.0~I(xiàn)2.7SQ0~SQ7Q1.0圓盤正轉(zhuǎn)KM1--Q1.1圓盤反轉(zhuǎn)KM24.9.10實(shí)操案例9:圓盤工件箱捷徑傳送控制根據(jù)控制要求及I/O分配表,圓盤工件箱捷徑傳送控制PLC外部接線圖如圖所示。4.9.10實(shí)操案例9:圓盤工件箱捷徑傳送控制編寫程序4.9.10實(shí)操案例9:圓盤工件箱捷徑傳送控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。程序段1主要是把工位檢測數(shù)據(jù)和工位呼叫數(shù)據(jù)分別給“ENCO”指令進(jìn)行編碼,獲取用戶撥動或當(dāng)前工位的編號數(shù)字,然后在用指令“SUB”減法進(jìn)行計算獲取呼叫編號與當(dāng)前工位編號的差值是多少,我們重點(diǎn)需要看的數(shù)據(jù)MB5的低4位,即M5.3、M5.2、M5.1、M5.0,四個數(shù)字,M5.3為符號位,M5.2為運(yùn)轉(zhuǎn)條件,當(dāng)M5.2=1時裝盤正轉(zhuǎn),反之為反轉(zhuǎn)。程序段2主要是判斷驅(qū)動條件來驅(qū)動轉(zhuǎn)盤正轉(zhuǎn)還是反正,同時還有信號燈的顯示與熄滅控制。撥通開關(guān)模擬調(diào)試時要嚴(yán)格按照實(shí)際情況來撥動開關(guān),例如正轉(zhuǎn)時需要向正轉(zhuǎn)方向撥動SQ(即I2.0~I(xiàn)2.7)。4.10移位和循環(huán)SHR:右移、SHL:左移右移(SHR)指令是將輸入?yún)?shù)IN指定的存儲單元的整個內(nèi)容逐位右移N位,移位后的結(jié)果保存到輸出參數(shù)OUT指定的地址中。有符號數(shù)右移后空出來的位用符號位填充,正數(shù)的符號位為0,負(fù)數(shù)的符號位為1。無符號數(shù)移位后空出來的位用0填充。左移(SHL)指令是將輸入?yún)?shù)IN指定的存儲單元的整個內(nèi)容逐位左移N位,移位后的結(jié)果保存到輸出參數(shù)OUT指定的地址中。4.10移位和循環(huán)ROR:循環(huán)右移、ROL:循環(huán)左移循環(huán)右移(ROR)指令將輸入?yún)?shù)IN指定的存儲單元的整個內(nèi)容逐位循環(huán)右移N位,移出來的位又送回存儲單元另一端空出來的位,原始的位不會丟失。移位的結(jié)果保存在輸出參數(shù)OUT指定的地址。移位位數(shù)N可以大于被移位存儲單元的位數(shù)。循環(huán)左移(ROR)指令將輸入?yún)?shù)IN指定的存儲單元的整個內(nèi)容逐位循環(huán)左移N位,移出來的位又送回存儲單元另一端空出來的位,原始的位不會丟失。移位的結(jié)果保存在輸出參數(shù)OUT指定的地址。移位位數(shù)N可以大于被移位存儲單元的位數(shù)。4.10.5實(shí)操案例10:八層霓虹燈塔控制任務(wù):使用S7-1200PLC實(shí)現(xiàn)八層霓虹燈塔控制,其設(shè)計要求如下:1.每層燈塔安裝一組霓虹燈,即每層用一個Q點(diǎn);2.每層/每個動畫均由1秒動作,即Clock_1Hz;3.動畫效果是一層亮(其它層滅)、二層亮(其它層滅)、三層亮(其它層滅)、四層亮(其它層滅)、五層亮(其它層滅)、六層亮(其它層滅)、七層亮(其它層滅)、八層亮(其它層滅);4.當(dāng)八層亮后保持亮,依次序號3的動作直至七層亮,保持八層與七層亮,依次序號3的動作直至六層……依次類推。5.當(dāng)一層至八層全亮后,全部熄滅,依次序號3的動作如此循環(huán)。4.10.5實(shí)操案例10:八層霓虹燈塔控制根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸入點(diǎn)輸出點(diǎn)輸繼電器名稱輸出繼電器名稱--Q0.0~Q0.7燈組1~燈組84.10.5實(shí)操案例10:八層霓虹燈塔控制根據(jù)控制要求及I/O分配表,八層霓虹燈塔控制的I/O接線圖如圖所示。4.10.5實(shí)操案例10:八層霓虹燈塔控制編寫程序4.10.5實(shí)操案例10:八層霓虹燈塔控制4.10.5實(shí)操案例10:八層霓虹燈塔控制4.10.5實(shí)操案例10:八層霓虹燈塔控制調(diào)試程序單擊程序編輯器工具欄上的

按鈕,程序狀態(tài)進(jìn)入監(jiān)視運(yùn)行,該狀態(tài)可以顯示程序中操作數(shù)和網(wǎng)絡(luò)的邏輯運(yùn)行結(jié)果(RLO),同時可以查看用戶程序中某些變量值的變化。從程序段1可以看到它主要是賦值,在不同樓層點(diǎn)亮燈組時賦值1給MB10做下一步處理的初始化工作。利用Clock_1Hz的頻率脈沖接通瞬間控制程序段2,斷開控制程序段3。程序段2為逐一點(diǎn)亮樓層燈組,程序段3為位移中間變量和完成后的處理工作。起立,下課!第五章

S7-1200PLC擴(kuò)展指令(LAD)日期和時間1字符串+字符2中斷3思考與練習(xí)4理論課程第五章

S7-1200PLC擴(kuò)展指令(LAD)定時啟停水泵及保養(yǎng)提醒服務(wù)1將PLC當(dāng)前日期和時間內(nèi)容發(fā)送給上位機(jī)2流水線檢測與統(tǒng)計裝置3第五章

S7-1200PLC擴(kuò)展指令(LAD)實(shí)踐操作5.1日期和時間S7-1200PLC可以通過相應(yīng)的時間功能指令可實(shí)現(xiàn)對其系統(tǒng)或本地時間的操作,大致可以完成以下功能:1、讀取CPU的系統(tǒng)/本地時鐘。2、設(shè)置的系統(tǒng)/本地時鐘。3、設(shè)置的時區(qū)。4、設(shè)置、啟動、停止和讀取CPU的32位運(yùn)行小時計數(shù)器。系統(tǒng)/本地時間的區(qū)別:1、系統(tǒng)時間(SystemTime):UTC標(biāo)準(zhǔn)時間(一般指國際標(biāo)準(zhǔn)時間)。2、本地時間(LocalTime):根據(jù)S7-1200CPU所處時區(qū)設(shè)置的本地標(biāo)準(zhǔn)時間(一般我們設(shè)置為北京時間)。3、夏令時:我國在1992年就開始停止實(shí)行,所以一般國內(nèi)使用不需要勾選,如果出口到個別國家時要主要是否需要夏令時。5.1日期和時間T_CONV:轉(zhuǎn)換時間并提取使用指令“T_CONV”將IN輸入?yún)?shù)的數(shù)據(jù)類型轉(zhuǎn)換為OUT輸出上輸出的數(shù)據(jù)類型。從輸入和輸出的指令框中選擇進(jìn)行轉(zhuǎn)換的數(shù)據(jù)格式。在3.2.6時間和日期數(shù)據(jù)類型中我們學(xué)習(xí)了關(guān)于時間的數(shù)據(jù)類型,其中DTL數(shù)據(jù)類型它是一個組合時間長型,其中包含了年、月、日、星期、時、分、秒、納秒。Byte組件名稱數(shù)據(jù)類型取值范圍0YEARUInt1970到255412MONTHUSInt1到123DAYUSInt1到314WEEKDAYUSInt1(星期日)到7(星期六)5HOURUSInt0到236MINUTEUSInt0到597SECONDUSInt0到598NANOSECONDUDInt0到999999999910115.1日期和時間T_CONV:轉(zhuǎn)換時間并提取【例5-1】當(dāng)M0.0觸點(diǎn)接通后,提取DB1數(shù)據(jù)塊中DTL1變量中的年月日數(shù)據(jù)內(nèi)容放入DATE1變量中,同時也提取DB1數(shù)據(jù)塊中DTL1變量中的時分秒數(shù)據(jù)內(nèi)容放入TOD1變量中。5.1日期和時間T_COMBINE:組合時間使用指令“T_COMBINE”將合并日期值和時間值,并生成一個合并日期時間值。日期在輸入?yún)?shù)IN1中輸入。對于數(shù)據(jù)類型DATE,值的取值范圍請使用1990-01-01至2089-12-31之間的值(系統(tǒng)不會對此進(jìn)行檢查)。此時間在IN2輸入值(TOD數(shù)據(jù)類型)中輸入。合并后的日期和時間值數(shù)據(jù)類型在OUT輸出值中輸出。5.1日期和時間T_COMBINE:組合時間【例5-2】當(dāng)M0.1觸點(diǎn)接通后,將DB1數(shù)據(jù)塊中DATE1變量中的數(shù)據(jù)與DB1數(shù)據(jù)塊中TOD1變量中的數(shù)據(jù)進(jìn)行數(shù)據(jù)整合,整合到DB1數(shù)據(jù)塊中的DTL2變量中。5.1日期和時間T_ADD:時間加運(yùn)算使用指令“T_ADD”將IN1輸入中的時間信息加到IN2輸入中的時間信息上。可以在OUT輸出參數(shù)中查詢結(jié)果。它有兩種格式的相加操作:1、將一個時間段加到另一個時間段上。將一個TIME數(shù)據(jù)類型加到另一個TIME數(shù)據(jù)類型上。2、將一個時間段加到某個時間上。將一個TIME數(shù)據(jù)類型加到DTL數(shù)據(jù)類型上。在指令框中可以選擇輸入IN1的數(shù)據(jù)類型,輸出參數(shù)OUT中的值將對應(yīng)IN1的數(shù)據(jù)類型。在IN2輸入?yún)?shù)中,只能指定TIME格式的時間信息。5.1日期和時間T_ADD:時間加運(yùn)算【例5-3】設(shè)備系統(tǒng)時間實(shí)時傳送至DB1數(shù)據(jù)塊DTL1變量中,隨著時間的推移,用戶發(fā)現(xiàn)系統(tǒng)時間與當(dāng)前實(shí)際時間有慢5秒鐘,請設(shè)計一個程序讓其校正時間。5.1日期和時間T_SUB:時間相減使用指令“T_SUB”將IN1輸入?yún)?shù)中的時間值減去IN2輸入?yún)?shù)中的時間值??赏ㄟ^輸出參數(shù)OUT查詢差值。它有兩種格式的相加操作:1、將時間段減去另一個時間段。將數(shù)據(jù)類型為TIME的時間段減去數(shù)據(jù)類型為TIME的另一個時間段。結(jié)果可輸出到TIME格式的變量中。2、從某個時間中減去時間段:將數(shù)據(jù)類型為TIME的時間段減去數(shù)據(jù)類型為DTL的時間。結(jié)果可輸出到DTL格式的變量中。在指令框中可以選擇輸入IN1的數(shù)據(jù)類型,輸出參數(shù)OUT中的值將對應(yīng)IN1的數(shù)據(jù)類型。在IN2輸入?yún)?shù)中,只能指定TIME格式的時間信息。5.1日期和時間T_SUB:時間相減【例5-4】設(shè)備系統(tǒng)時間實(shí)時傳送至DB1數(shù)據(jù)塊DTL2變量中,隨著時間的推移,用戶發(fā)現(xiàn)系統(tǒng)時間與當(dāng)前實(shí)際時間有快3秒鐘,請設(shè)計一個程序讓其校正時間。5.1日期和時間T_DIFF:時間值相減使用指令“T_DIFF”將IN1輸入?yún)?shù)中的時間值減去IN2輸入?yún)?shù)中的時間值。結(jié)果將發(fā)送到輸出參數(shù)OUT中。如果IN2輸入?yún)?shù)中的時間值大于IN1輸入?yún)?shù)中的時間值,則OUT輸出參數(shù)中將輸出一個負(fù)數(shù)結(jié)果。如果減法運(yùn)算的結(jié)果超出TIME值范圍,則使能輸出ENO的值為“0”。根據(jù)所用的數(shù)據(jù)類型,獲得的結(jié)果值截斷或?yàn)椤?”(0:00)。如果選擇DTL數(shù)據(jù)類型的被減數(shù)和減數(shù),則計算結(jié)果的數(shù)據(jù)類型為TIME。不能大于24天,否則使能輸出ENO的值為“0”,且結(jié)果為“0”。在指令框中可以選擇輸入IN1的數(shù)據(jù)類型,輸出參數(shù)OUT中的值將對應(yīng)IN1的數(shù)據(jù)類型。在IN2輸入?yún)?shù)中,只能指定TIME格式的時間信息。5.1日期和時間T_DIFF:時間值相減【例5-5】計算當(dāng)前時間與夜間0點(diǎn)還有多少時間,將結(jié)果傳送至DB1數(shù)據(jù)塊Time1中,請設(shè)計一個程序。5.1日期和時間WR_SYS_T:設(shè)置時間使用指令“WR_SYS_T”,可設(shè)置CPU時鐘的日期和時間(模塊時間)。在輸入?yún)?shù)IN中輸入日期和時間。輸入DTL值必須介于以下范圍內(nèi):最小為DTL#1970-01-01-00:00:00.0,最大為DTL#2200-12-31-23:59:59.999999999。可以在RET_VAL輸出參數(shù)中查詢在執(zhí)行該指令期間是否發(fā)生了錯誤。5.1日期和時間RD_SYS_T:讀取時間使用指令“RD_SYS_T”,可以讀取CPU時鐘的當(dāng)前日期和當(dāng)前時間(模塊時間)。在此指令的OUT輸出參數(shù)中輸出讀取的日期。可以在RET_VAL輸出參數(shù)中查詢在執(zhí)行該指令期間是否發(fā)生了錯誤。5.1日期和時間WR_LOC_T:寫入本地時間使用指令“WR_LOC_T”,可設(shè)置CPU時鐘的日期和時間。在輸入?yún)?shù)LOCTIME中,輸入日期和時間作為本地時間。輸入DTL值必須介于以下范圍內(nèi):最小值為DTL#1970-01-01-00:00:00.0,最大值為DTL#2200-12-3123:59:59.999999999。可以在RET_VAL輸出參數(shù)中查詢在執(zhí)行該指令期間是否發(fā)生了錯誤。5.1日期和時間RD_LOC_T:讀取本地時間使用指令“RD_LOC_T”,可以從CPU時鐘讀取當(dāng)前本地時間,并將此時間在OUT輸出中輸出。在輸出本地時間時,會用到夏令時和標(biāo)準(zhǔn)時間的時區(qū)和開始時間(已在CPU時鐘的組態(tài)中設(shè)置)的相關(guān)信息??梢栽赗ET_VAL輸出參數(shù)中查詢在執(zhí)行該指令期間是否發(fā)生了錯誤。5.1.10實(shí)操案例11:定時啟停水泵及保養(yǎng)提醒服務(wù)任務(wù):使用S7-1200PLC實(shí)現(xiàn)水泵定時啟停及保養(yǎng)提醒功能控制。每周一至周五的08:30-11:30和14:30-17:00啟動水泵,其它時間水泵停止工作;每周六至周日的08:00-20:00啟動水泵,其它時間水泵停止工作;每月的5日工作時間08:00-12:00提醒指示燈以1Hz進(jìn)行閃爍,若工人維修保養(yǎng)設(shè)備可人工復(fù)位指示燈。5.1.10實(shí)操案例11:定時啟停水泵及保養(yǎng)提醒服務(wù)根據(jù)PLC控制要求,根據(jù)S7-1200硬件輸入/輸出點(diǎn)分配如表所示。輸入點(diǎn)輸出點(diǎn)輸入繼電器名稱輸出繼電器名稱I0.0啟動按鈕Q0.0水泵設(shè)備I0.1停止按鈕Q0.1保養(yǎng)指示燈I0.2復(fù)位按鈕

5.1.10實(shí)操案例11:定時啟停水泵及保養(yǎng)提醒服務(wù)根據(jù)控制要求及I/O分配表,結(jié)合實(shí)際情況,停止按鈕用常閉,輸入點(diǎn)并沒有熱過載元件,所以該元件將硬件接入輸出點(diǎn)設(shè)備上,其接線圖如圖所示。5.1.10實(shí)操案例11:定時啟停水泵及保養(yǎng)提醒服務(wù)編寫程序5.1.10實(shí)操案例11:定時啟停水泵及保養(yǎng)提醒服務(wù)5.1.10實(shí)操案例11:定時啟停水泵及保養(yǎng)提醒服務(wù)調(diào)試程序由于條件時間等待過于長久,我們在DB1數(shù)據(jù)塊中新建一個DTL數(shù)據(jù)類型和錯誤顯示1的INT數(shù)據(jù)類型,可以通過“WR_LOC_T”指令對系統(tǒng)進(jìn)行人為設(shè)定時間,例如設(shè)定DTL#2024-04-05-07:59:50,等待10秒鐘看其跳入8點(diǎn)正,水泵保養(yǎng)提醒服務(wù)是否會接通。也可以設(shè)定一個離開水泵運(yùn)行時間值,看水泵是否會從運(yùn)行自動切換為停止工作。5.2字符串+字符S_MOVE:移動字符串使用指令“S_MOVE”將參數(shù)IN中字符串(W)STRING的內(nèi)容寫入在參數(shù)OUT中指定的數(shù)據(jù)區(qū)域。要復(fù)制數(shù)據(jù)類型為ARRAY的變量時,可使用指令“MOVE_BLK”和“UMOVE_BLK”。當(dāng)“Start”開關(guān)接通時,IN引腳的內(nèi)容未傳送給OUT;當(dāng)“Start”開關(guān)接通時,“DB1”.StringValueOUT存儲了’我愛你,中國!’字符串;當(dāng)“Start”開關(guān)再次斷開,“DB1”.StringValueOUT依舊存儲了’我愛你,中國!’字符串。5.2字符串+字符S_CONV:轉(zhuǎn)換字符串(轉(zhuǎn)換為數(shù)值)使用指令“S_CONV”將IN輸入中的值轉(zhuǎn)換為OUT輸出中指定的數(shù)據(jù)格式。通過為OUT輸出參數(shù)選擇數(shù)據(jù)類型,確定轉(zhuǎn)換的輸出格式。5.2字符串+字符S_CONV:轉(zhuǎn)換字符串(轉(zhuǎn)換為字符串)使用指令“S_CONV”將IN輸入中的值轉(zhuǎn)換為OUT輸出中指定的數(shù)據(jù)格式。通過為OUT輸出參數(shù)選擇數(shù)據(jù)類型,確定轉(zhuǎn)換的輸出格式。5.2字符串+字符STRG_VAL:將字符串轉(zhuǎn)換為數(shù)字值使用指令“STRG_VAL”將將字符串轉(zhuǎn)換為整數(shù)或浮點(diǎn)數(shù)。在IN輸入?yún)?shù)中指定要轉(zhuǎn)換的字符串,通過為OUT輸出參數(shù)選擇數(shù)據(jù)類型,確定輸出值的格式。轉(zhuǎn)換從字符串IN中的字符偏移量P位置開始,并一直進(jìn)行到字符串的結(jié)尾,或者一直進(jìn)行到遇到第一個不是“+”、“-”、“.”、“,”、“e”、“E”或“0”到“9”的字符為止。結(jié)果放置在參數(shù)OUT中指定的位置。如果發(fā)現(xiàn)無效字符,將取消轉(zhuǎn)換過程即ENO狀態(tài)為0。5.2字符串+字符STRG_VAL:將字符串轉(zhuǎn)換為數(shù)字值FORMATPOUT(值)ENO狀態(tài)FORMATPOUT(值)ENO狀態(tài)000000.00000100.001-12345.011-12.3451212345.01212.345132345.0132.34514345.0140.34515345.015345.01645.01645.0175.0175.0180.0080.005.2字符串+字符VAL_STRG:將數(shù)字值轉(zhuǎn)換為字符串使用指令“VAL_STRG”將數(shù)字值轉(zhuǎn)換為字符串。在IN輸入?yún)?shù)中指定要轉(zhuǎn)換的值。通過選擇數(shù)據(jù)類型來決定數(shù)字值的格式。可以在OUT輸出參數(shù)中查詢轉(zhuǎn)換結(jié)果。轉(zhuǎn)換允許的字符包括數(shù)字“0”到“9”、小數(shù)點(diǎn)、小數(shù)撇、計數(shù)制“E”和“e”,以及加減號字符。無效字符將中斷轉(zhuǎn)換過程。使用P參數(shù)指定從字符串中的哪個字符開始寫入結(jié)果。例如,如果P參數(shù)中指定值“2”,則從字符串的第二個字符開始保存轉(zhuǎn)換值。使用SIZE參數(shù)指定待寫入字符串的字符數(shù)。這從P參數(shù)中指定的字符開始計數(shù)。如果輸出值比指定長度短,則結(jié)果將以右對齊方式寫入字符串??兆址恢脤⑻钊肟崭?。使用FORMAT參數(shù),指定轉(zhuǎn)換期間如何解釋數(shù)字值以及如何將其寫入字符串。只能在USINT參數(shù)中指定FORMAT數(shù)據(jù)類型的變量。5.2字符串+字符VAL_STRG:將數(shù)字值轉(zhuǎn)換為字符串5.2字符串+字符VAL_STRG:將數(shù)字值轉(zhuǎn)換為字符串5.2字符串+字符Strg_TO_Chars:將字符串轉(zhuǎn)換為ArrayofCHAR使用指令“Strg_TO_Chars”,可將數(shù)據(jù)類型為STRING的字符串復(fù)制到ArrayofCHAR或ArrayofBYTE中;或?qū)?shù)據(jù)類型為WSTRING的字符串復(fù)制到ArrayofWCHAR或Ar

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論