電氣控制及S7-1200 PLC應(yīng)用技術(shù)(第二版)課件 第4章 S7-1200 PLC基本指令及程序設(shè)計_第1頁
電氣控制及S7-1200 PLC應(yīng)用技術(shù)(第二版)課件 第4章 S7-1200 PLC基本指令及程序設(shè)計_第2頁
電氣控制及S7-1200 PLC應(yīng)用技術(shù)(第二版)課件 第4章 S7-1200 PLC基本指令及程序設(shè)計_第3頁
電氣控制及S7-1200 PLC應(yīng)用技術(shù)(第二版)課件 第4章 S7-1200 PLC基本指令及程序設(shè)計_第4頁
電氣控制及S7-1200 PLC應(yīng)用技術(shù)(第二版)課件 第4章 S7-1200 PLC基本指令及程序設(shè)計_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第4章S7-1200PLC基本指令及程序設(shè)計主要內(nèi)容:4.1位邏輯指令4.2定時器與計數(shù)器指令4.3程序控制指令4.4數(shù)據(jù)處理指令4.5數(shù)學(xué)運算和邏輯運算指令4.6PLC程序的基礎(chǔ)設(shè)計法及應(yīng)用實例電氣控制及S7-1200PLC應(yīng)用技術(shù)位邏輯指令主要包括觸點和線圈指令、位操作指令和位檢測指令等17種。24.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.觸點指令和線圈指令

觸點指令有常開和常閉觸點,線圈指令包括輸出線圈、取反線圈、置位輸出線圈及復(fù)位輸出線圈等,這些是構(gòu)成邏輯的基本元件和要素。(1)觸點指令常開觸點:其狀態(tài)取決于操作數(shù)bit對應(yīng)的映像寄存器狀態(tài)。當(dāng)映像寄存器的值為1時,常開觸點閉合;當(dāng)映像寄存器的值為0時,常開觸點斷開。常閉觸點:其狀態(tài)取決于操作數(shù)bit對應(yīng)的映像寄存器狀態(tài)。當(dāng)映像寄存器的值為1時,常閉觸點斷開;當(dāng)映像寄存器的值為0時,常閉觸點閉合。取反指令:對邏輯運算結(jié)果(ResultofLogicOperation,RLO)的信號狀態(tài)進行取反操作。如果該指令輸入為1,則輸出為0;如果該指令輸入為0,則輸出為1。34.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)(1)觸點指令

舉例:I0.1映像寄存器的值為1時,常開觸點閉合,Q0.1線圈得電;M0.0映像寄存器的值為0時,常閉觸點閉合,M0.1線圈得電,取反后M0.2線圈失電。

注意:在輸入過程映像寄存器I地址的后面加“:P”(如I0.1:P),可以跳過輸入過程映像寄存器(不更新),立即直接讀取外部物理輸入狀態(tài)。44.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)(2)線圈指令輸出線圈:其狀態(tài)取決于線圈輸入端的邏輯運算結(jié)果。如果線圈輸入的邏輯運算結(jié)果為1,則輸出線圈得電,對應(yīng)映像寄存器的值寫入1;如果線圈輸入的信號狀態(tài)為0,則輸出線圈失電,對應(yīng)映像寄存器的值寫入0。取反線圈:其狀態(tài)取決于線圈輸入端的邏輯運算結(jié)果的取反。如果線圈輸入的邏輯運算結(jié)果為1,則輸出線圈失電,對應(yīng)映像寄存器的值寫入0;如果線圈輸入的信號狀態(tài)為0,則輸出線圈得電,對應(yīng)映像寄存器的值寫入1。舉例:54.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)(3)觸點串、并聯(lián)指令觸點串聯(lián):對應(yīng)于“與”邏輯。如果串聯(lián)回路中的所有觸點均閉合,該回路中有能流流過,即當(dāng)所有的輸入信號都為1,則輸出信號為1;只要輸入信號有一個不為1,則輸出信號為0。觸點并聯(lián):對應(yīng)于“或”邏輯。如果并聯(lián)回路中的一個或一個以上觸點閉合,該回路中有能流流過,即:只要有一個輸入信號為1,則輸出信號為1;所有輸入信號都為0,則輸出信號為0。舉例:64.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.置位和復(fù)位指令置位(Set)和復(fù)位(Reset)指令的LAD形式及功能說明:74.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.置位和復(fù)位指令

(1)置位輸出、復(fù)位輸出指令使用置位輸出指令,可將指定操作數(shù)bit位的信號狀態(tài)置位為1,在對該位進行復(fù)位操作前,其將保持置位狀態(tài)。線圈輸入端的邏輯運算結(jié)果為1時,執(zhí)行該指令。使用復(fù)位輸出指令,可將指定操作數(shù)bit位的信號狀態(tài)復(fù)位為0,在對該位進行置位操作前,其將保持復(fù)位狀態(tài)。線圈輸入端的邏輯運算結(jié)果為1時,執(zhí)行該指令。舉例:I0.0閉合后,Q0.0線圈被置位為1(始終得電);I0.1閉合后,Q0.0線圈被復(fù)位為0(始終失電)。84.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.置位和復(fù)位指令

(2)置位位域、復(fù)位位域指令使用置位位域指令,可對一塊連續(xù)位域中的所有位同時進行置位。需要置位位域的首位地址和位數(shù)分別由操作數(shù)bit位和N值指定,若N值大于所選字節(jié)的位數(shù),則將對下一字節(jié)的位進行置位。在對該N個位進行復(fù)位操作前,它們將保持置位狀態(tài)。線圈輸入端的邏輯運算結(jié)果為1時,執(zhí)行該指令。使用復(fù)位位域指令,可對一塊連續(xù)位域中的所有位同時進行復(fù)位。需要復(fù)位位域的首位地址和位數(shù)分別由操作數(shù)bit位和N值指定,若N值大于所選字節(jié)的位數(shù),則將對下一字節(jié)的位進行復(fù)位。在對該N個位進行置位操作前,它們將保持復(fù)位狀態(tài)。線圈輸入端的邏輯運算結(jié)果為1時,執(zhí)行該指令。94.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.置位和復(fù)位指令

(2)置位位域、復(fù)位位域指令

舉例:I0.0和I0.1同時閉合后,M2.0、M2.1及M2.2三個線圈(M2.0開始的3個位)同時被置位為1,線圈保持得電狀態(tài);I0.0和I0.2同時閉合后,M2.0、M2.1及M2.2三個線圈同時被復(fù)位為0,線圈保持失電狀態(tài)。104.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.置位和復(fù)位指令

(3)使用說明對位元件來說,一旦被置位,就保持在通電狀態(tài),除非對它進行復(fù)位;而位元件一旦被復(fù)位就保持在斷電狀態(tài),除非對它進行置位;因此,置位/復(fù)位指令往往成對出現(xiàn)在同一程序中。S/R指令可以互換次序使用,但由于PLC采用循環(huán)掃描的工作方式,所以寫在后面的指令具有優(yōu)先權(quán)。在下圖中,若I0.0和I0.1同時閉合,則Q0.0線圈最終執(zhí)行復(fù)位操作而失電,對應(yīng)映像寄存器中的狀態(tài)為0。114.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)3.觸發(fā)器指令SR觸發(fā)器和RS觸發(fā)器指令的LAD形式及功能說明:

124.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)3.觸發(fā)器指令(1)SR觸發(fā)器使用SR觸發(fā)器指令,可以對指定操作數(shù)bit進行置位或復(fù)位操作。如果置位輸入信號S和復(fù)位輸入信號R1都為0,則不執(zhí)行該指令;如果置位輸入信號S和復(fù)位輸入信號R1只有一個有效(為1),則執(zhí)行有效輸入信號對應(yīng)的操作;如果置位輸入信號S和復(fù)位輸入信號R1同時有效(均為1),則優(yōu)先執(zhí)行復(fù)位操作。操作數(shù)bit的當(dāng)前狀態(tài)同步被傳送到輸出端Q。(2)RS觸發(fā)器指令使用RS觸發(fā)器指令,可以對指定操作數(shù)bit進行置位或復(fù)位操作。如果置位輸入信號S1和復(fù)位輸入信號R都為0,則不執(zhí)行該指令;如果置位輸入信號S1和復(fù)位輸入信號R只有一個有效(為1),則執(zhí)行有效輸入信號對應(yīng)的操作;如果置位輸入信號S1和復(fù)位輸入信號R同時有效(均為1),則優(yōu)先執(zhí)行置位操作。操作數(shù)bit的當(dāng)前狀態(tài)同步被傳送到輸出端Q。134.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)3.觸發(fā)器指令觸發(fā)器指令的真值表如表所示。144.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)3.觸發(fā)器指令舉例:I0.0和I0.1分別作為SR觸發(fā)器的置位輸入和復(fù)位輸入信號,對Q0.0線圈進行優(yōu)先復(fù)位操作;I0.0和I0.1也分別作為RS觸發(fā)器的置位輸入和復(fù)位輸入信號,對Q0.1線圈進行優(yōu)先置位操作;由時序圖可知:若只有I0.0有效,則Q0.0和Q0.1被置位;若只有I0.1有效,則Q0.0和Q0.1被復(fù)位;若I0.0和I0.1同時有效,則Q0.0被優(yōu)先復(fù)位、Q0.1被優(yōu)先置位。154.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令當(dāng)信號狀態(tài)發(fā)生變化時,將產(chǎn)生跳變沿(上升沿或下降沿)。如圖所示,當(dāng)Q0.0線圈由0變?yōu)?時,產(chǎn)生一個正跳變的上升沿(EdgeUp);當(dāng)Q0.0線圈由1變?yōu)?時,產(chǎn)生一個負跳變的下降沿(EdgeDown)。S7-1200執(zhí)行邊沿指令時,在每個掃描周期中把信號狀態(tài)和它在上一掃描周期的狀態(tài)(存儲在邊沿存儲器位中)進行比較,如果不同則表明出現(xiàn)了上升沿或下降沿。

164.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令信號邊沿指令的LAD形式及功能如表所示。

174.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(1)邊沿檢測觸點指令使用上升沿檢測觸點指令,可以根據(jù)操作數(shù)bit有無上升沿來控制觸點通斷。當(dāng)操作數(shù)bit出現(xiàn)上升沿時,該觸點導(dǎo)通一個掃描周期。邊沿存儲器位M_bit用于存放操作數(shù)bit在上一掃描周期的狀態(tài),通過比較操作數(shù)bit的當(dāng)前狀態(tài)與上一掃描周期的狀態(tài),來確定是否存在上升沿。使用下降沿檢測觸點指令,可以根據(jù)操作數(shù)bit有無下降沿來控制觸點通斷。當(dāng)操作數(shù)bit出現(xiàn)下降沿時,該觸點導(dǎo)通一個掃描周期。邊沿存儲器位M_bit用于存放操作數(shù)bit在上一掃描周期的狀態(tài),通過比較操作數(shù)bit的當(dāng)前狀態(tài)與上一掃描周期的狀態(tài),來確定是否存在下降沿。

184.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(1)邊沿檢測觸點指令使用說明:邊沿檢測觸點指令不能放在邏輯塊結(jié)束處。只能使用全局DB、FB中的靜態(tài)變量或位存儲區(qū)M作為邊沿存儲器位M_bit。邊沿存儲器位M_bit的地址在程序中只能使用一次,否則會導(dǎo)致結(jié)果出錯。舉例:

194.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(2)邊沿檢測線圈指令使用上升沿檢測線圈指令,可以根據(jù)線圈輸入端信號有無上升沿來控制線圈通斷。當(dāng)線圈輸入信號出現(xiàn)上升沿時,操作數(shù)bit對應(yīng)的線圈導(dǎo)通一個掃描周期。邊沿存儲器位M_bit用于存放線圈輸入信號在上一掃描周期的狀態(tài),通過比較線圈輸入信號的當(dāng)前狀態(tài)與上一掃描周期的狀態(tài),來確定是否存在上升沿。使用下降沿檢測線圈指令,可以根據(jù)線圈輸入端信號有無下降沿來控制線圈通斷。當(dāng)線圈輸入信號出現(xiàn)下降沿時,操作數(shù)bit對應(yīng)的線圈導(dǎo)通一個掃描周期。邊沿存儲器位M_bit用于存放線圈輸入信號在上一掃描周期的狀態(tài),通過比較線圈輸入信號的當(dāng)前狀態(tài)與上一掃描周期的狀態(tài),來確定是否存在下降沿。

204.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(2)邊沿檢測線圈指令使用說明:邊沿檢測線圈指令可以放在邏輯塊中間或結(jié)束處。只能使用全局DB、FB中的靜態(tài)變量或位存儲區(qū)M作為邊沿存儲器位M_bit。邊沿存儲器位M_bit的地址在程序中只能使用一次,否則會導(dǎo)致結(jié)果出錯。邊沿檢測線圈指令放在邏輯塊中間時,不會影響邏輯塊的邏輯運算結(jié)果,它將輸入端的邏輯運算結(jié)果直接送給線圈的輸出端。舉例:

214.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(3)掃描RLO的邊沿指令使用掃描RLO的上升沿指令,可以根據(jù)指令輸入端的邏輯運算結(jié)果RLO有無上升沿來控制輸出Q的通斷。當(dāng)輸入端RLO出現(xiàn)上升沿時,輸出Q導(dǎo)通一個掃描周期。邊沿存儲器位M_bit用于存放輸入端RLO在上一掃描周期的狀態(tài),通過比較輸入端RLO的當(dāng)前狀態(tài)與上一掃描周期的狀態(tài),來確定是否存在上升沿。使用掃描RLO的下降沿指令,可以根據(jù)指令輸入端的邏輯運算結(jié)果RLO有無下降沿來控制輸出Q的通斷。當(dāng)輸入端RLO出現(xiàn)下降沿時,輸出Q導(dǎo)通一個掃描周期。邊沿存儲器位M_bit用于存放輸入端RLO在上一掃描周期的狀態(tài),通過比較輸入端RLO的當(dāng)前狀態(tài)與上一掃描周期的狀態(tài),來確定是否存在下降沿。224.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(3)掃描RLO的邊沿指令使用說明:掃描RLO的邊沿指令不能放在邏輯塊的開始和結(jié)束處。只能使用全局DB、FB中的靜態(tài)變量或位存儲區(qū)M作為邊沿存儲器位M_bit。邊沿存儲器位M_bit的地址在程序中只能使用一次,否則會導(dǎo)致結(jié)果出錯。舉例:234.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(4)邊沿檢測功能塊指令使用上升沿檢測功能塊指令,可以在EN輸入端有效時,根據(jù)CLK輸入端的邏輯運算結(jié)果RLO有無上升沿來控制輸出Q的通斷。CLK輸入端出現(xiàn)上升沿時,輸出Q導(dǎo)通一個掃描周期。CLK輸入端RLO在上一掃描周期的狀態(tài)保存在背景數(shù)據(jù)塊中。使用下降沿檢測功能塊指令,可以在EN輸入端有效時,根據(jù)CLK輸入端的邏輯運算結(jié)果RLO有無下降沿來控制輸出Q的通斷。CLK輸入端出現(xiàn)下降沿時,輸出Q導(dǎo)通一個掃描周期。CLK輸入端RLO在上一掃描周期的狀態(tài)保存在背景數(shù)據(jù)塊中。244.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)4.信號邊沿指令(4)邊沿檢測功能塊指令使用說明:邊沿檢測功能塊指令本質(zhì)為功能塊FB,調(diào)用該指令時會自動生成背景數(shù)據(jù)塊??衫肊N輸入端啟用邊沿檢測功能,一般EN輸入端始終有效。

舉例:254.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)5.比較指令

264.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)5.比較指令實際應(yīng)用中,比較指令多用于實現(xiàn)數(shù)值大小比較和上、下限幅控制。舉例:

圖(a)中,當(dāng)計數(shù)器當(dāng)前值"C0".CV大于等于100時,置位Q0.0;當(dāng)MD0小于MD40的數(shù)值時,復(fù)位Q0.0。

圖(b)中,當(dāng)MD10中的操作數(shù)為實數(shù)時,并且MD20中的實數(shù)型操作數(shù)在[0.0,1.0]范圍時,將MD10與MD20的操作數(shù)相乘,并將結(jié)果存放在MD30中。274.1位邏輯指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令定時器指令用于完成與時間有關(guān)的控制要求,是PLC中最常用的指令之一。定時器在使用時需提前輸入設(shè)定值,啟動定時后,當(dāng)前值從0或上次的保持值開始增加,當(dāng)定時器的當(dāng)前值達到設(shè)定值后(定時時間到),定時器發(fā)生動作,進而完成后續(xù)各種定時邏輯。

S7-1200PLC支持4種類型的功能塊型定時器和對應(yīng)的線圈型定時器,此外還包含更新設(shè)定值指令PT和復(fù)位定時器指令RT。

284.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令

294.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令功能塊型定時器中,TP、TON和TOF具有相同的輸入和輸出參數(shù),TONR定時器具有外部復(fù)位輸入?yún)?shù)R。各定時器指令的參數(shù)說明見下表。

304.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(1)脈沖定時器TP使用脈沖定時器指令,可以產(chǎn)生預(yù)設(shè)時間間隔的脈沖。上電周期或首次掃描時,定時器當(dāng)前值和輸出端Q均為0。輸入端IN出現(xiàn)上升沿后,輸出端Q導(dǎo)通;同時啟動定時器,當(dāng)前值ET由0增加,當(dāng)前值達到設(shè)定值PT時(定時時間到),輸出端Q斷開,即輸出端Q導(dǎo)通時間取決于設(shè)定值PT。使用說明:輸入端出現(xiàn)上升沿時,啟動定時器;在當(dāng)前值未達到設(shè)定之前,輸入端信號斷開或檢測到新的上升沿信號,均不會影響輸出端Q的導(dǎo)通時間。當(dāng)前值達到設(shè)定值PT時,如果輸入端IN為1,則當(dāng)前值保持在設(shè)定值;如果輸入端IN為0,則當(dāng)前值復(fù)位為0。

314.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(1)脈沖定時器TP舉例:

上圖中,為脈沖定時器TP指定了默認名稱為“IEC_Timer_0_DB”的背景數(shù)據(jù)塊DB1(相當(dāng)于定時器的名字,該名稱可以根據(jù)需要修改,但只能指定給唯一的定時器)。I0.0出現(xiàn)上升沿時,Q0.0線圈維持得電。MD0中裝載定時器的當(dāng)前值,在當(dāng)前值未達到設(shè)定值5s之前,即使輸入端I0.0斷開或再次出現(xiàn)上升沿,對Q0.0線圈的得電時間均不產(chǎn)生影響。當(dāng)前值達到設(shè)定值后,輸出端Q斷開,Q0.0線圈失電,若此時I0.0仍閉合,當(dāng)前值維持在設(shè)定值;若I0.0斷開,則定時器復(fù)位。

324.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(2)接通延時定時器TON使用接通延時定時器指令,可以將輸出端Q延遲指定時間后導(dǎo)通。上電周期或首次掃描時,定時器當(dāng)前值和輸出端Q均為0。輸入端IN由0變?yōu)?(出現(xiàn)上升沿),啟動定時器,當(dāng)前值ET由0增加,當(dāng)前值達到設(shè)定值PT時(定時時間到),輸出端Q導(dǎo)通,即輸出端Q延遲導(dǎo)通時間取決于設(shè)定值PT。輸入端IN在任意時刻由1變?yōu)?時,定時器自動復(fù)位,當(dāng)前值為0,輸出端Q斷開。使用說明:輸入端IN斷開時,接通延時定時器將自動復(fù)位。該指令用于對單段時間進行定時;并且為了保證定時時間到,輸入端IN的閉合時間應(yīng)不小于設(shè)定時間。當(dāng)前值達到設(shè)定值PT后,如果輸入端IN為1,則當(dāng)前值保持在設(shè)定值;如果輸入端IN為0,則當(dāng)前值復(fù)位為0。

334.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(2)接通延時定時器TON舉例:

上圖中,為接通延時定時器TON指定了名稱為“數(shù)據(jù)塊_1.接通延時定時器”的全局DB變量。輸入端I1.0由OFF變?yōu)镺N后,啟動定時器,MD0中裝載的定時器當(dāng)前值由0開始增加,當(dāng)前值達到設(shè)定值后,輸出端Q接通,Q0.0線圈得電。輸入端I1.0由ON變?yōu)镺FF后,定時器復(fù)位,當(dāng)前值ET為0,輸出端Q斷開。

344.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(2)接通延時定時器TON【例4-1】按下啟動按鈕I0.0,延時10s后電動機Q0.0起動;按下停止按鈕I0.1,延時5s后電動機Q0.0停止。解:在設(shè)計時應(yīng)該注意以下兩點問題:①外部控制信號發(fā)出后,系統(tǒng)延時動作,需要用到定時器指令。采用TP、TON、TONR和TOF均能實現(xiàn)定時功能,本題選擇TON較為簡單。②外部按鈕默認選擇為常開型的自復(fù)位按鈕,提供的是短脈沖型啟動信號,需要利用中間變量M將其轉(zhuǎn)化為長電平信號(可以用啟保停電路或置復(fù)位指令),以維持TON定時器線圈的持續(xù)得電。

354.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(2)接通延時定時器TON

【例4-1】

364.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(2)接通延時定時器TON【例4-2】要求TON定時時間到,產(chǎn)生寬度為單個掃描周期的脈沖。解:例4-1采用啟保停結(jié)構(gòu)編寫的程序中,需要對定時器進行及時、可靠復(fù)位。一般定時器定時時間到,我們將在下一掃描周期將其復(fù)位。具體做法是:定時時間到,產(chǎn)生寬度為一個掃描周期的脈沖(如上例中的M10.0和M10.1),在下一掃描周期內(nèi),利用該脈沖的常閉觸點斷開,實現(xiàn)定時器的復(fù)位。注意:S7-1200定時器的刷新(更新定時器當(dāng)前值)方式和S7-200、S7-300中的定時器刷新方式有所不同。

374.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(2)接通延時定時器TONS7-1200定時器在以下任一情況發(fā)生時均會更新當(dāng)前值:①程序執(zhí)行到功能塊型定時器的輸出端Q或ET時;②程序執(zhí)行到定時器的背景數(shù)據(jù)塊(或IEC_TIMER類型的變量)中的Q或ET時。所以,如果程序中多次使用同一背景數(shù)據(jù)塊的輸出Q;或者既使用功能塊型定時器的Q或ET連接變量,又使用背景數(shù)據(jù)塊的Q,以上兩種情況都會造成定時器在一個掃描周期內(nèi)的多次更新,可能造成定時器不能正常使用的情況。

384.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(2)接通延時定時器TON

394.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(3)保持型接通延時定時器TONR使用保持型接通延時定時器指令,可以將輸出端Q延遲指定的有效時間后導(dǎo)通。上電周期或首次掃描時,定時器當(dāng)前值和輸出端Q均為上次掉電前狀態(tài)。輸入端IN由0變?yōu)?時,啟動定時器,當(dāng)前值ET從上次的保持值繼續(xù)增加,當(dāng)前值達到設(shè)定值PT時,輸出端Q導(dǎo)通,即輸出端Q延遲導(dǎo)通的有效時間取決于設(shè)定值PT。輸入端IN由1變?yōu)?時,定時器停止計時并保持當(dāng)前值,待輸入端IN再次由0變?yōu)?時,當(dāng)前值繼續(xù)增加。使用說明:輸入端IN斷開時,保持型接通延時定時器不復(fù)位,而是停止在當(dāng)前狀態(tài)。該指令用于對多段時間進行累計定時,可以實現(xiàn)某個設(shè)備的累計運行時間;輸入端IN的單次閉合時間與設(shè)定時間無關(guān)。定時時間到后,當(dāng)前值保持在設(shè)定值,需要通過外部復(fù)位輸入端R對該定時器進行手動復(fù)位。

404.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(3)保持型接通延時定時器TONR舉例:

上圖中,保持型接通延時定時器TONR定時時間為8s。輸入端I0.0每次由OFF變?yōu)镺N后,啟動定時器,MD0中的當(dāng)前值從上次保持值繼續(xù)增加;輸入端I0.0每次由ON變?yōu)镺FF后,暫停定時器,當(dāng)前值保持;當(dāng)前值達到設(shè)定值后,輸出端Q導(dǎo)通,Q0.0線圈保持得電。復(fù)位信號I0.1由OFF變?yōu)镺N后,定時器復(fù)位,當(dāng)前值為0,輸出端Q斷開。

414.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(4)斷開延時定時器TOF使用斷開延時定時器指令,可將輸出端Q延遲指定時間后斷開。上電周期或首次掃描時,定時器當(dāng)前值和輸出端Q均為0。輸入端IN由1變?yōu)?時,啟動定時器,當(dāng)前值由0增加,當(dāng)前值達到設(shè)定值PT時,輸出端Q斷開,即輸出端Q延遲斷開時間取決于設(shè)定值PT。輸入端IN在任意時刻由0變?yōu)?時,定時器自動復(fù)位,當(dāng)前值為0,輸出端Q導(dǎo)通。使用說明:輸入端IN閉合時,斷開延時定時器將自動復(fù)位。該指令用于對單段時間進行定時,可以實現(xiàn)某個設(shè)備停機后的延時(如電動機停機后延時關(guān)閉風(fēng)機);為了保證定時時間到,輸入端IN的斷開時間應(yīng)不小于設(shè)定時間。當(dāng)前值達到設(shè)定值PT后,如果輸入端IN為0,則當(dāng)前值保持在設(shè)定值;如果輸入端IN為1,則當(dāng)前值復(fù)位為0。

424.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(4)斷開延時定時器TOF舉例:

上圖中,斷開延時定時器TOF定時時間為4s。輸入端I0.0由OFF變?yōu)镺N后,定時器復(fù)位,MD0中裝載的定時器當(dāng)前值為0,輸出端Q接通,Q0.0線圈得電。輸入端I0.0由ON變?yōu)镺FF后,啟動定時器,當(dāng)前值由0開始增加,當(dāng)前值達到設(shè)定值后,輸出端Q斷開,Q0.0線圈失電。

434.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(5)線圈型定時器指令對于同一類型的定時器,功能塊指令和線圈指令在原理上是完全一樣的,具體使用時有幾點細微區(qū)別:功能塊型定時器可以直接輸出Q或ET,程序中可以不必出現(xiàn)背景數(shù)據(jù)塊(或IEC_TIMER類型變量)中的Q或ET;而線圈型定時器必須首先自定義背景數(shù)據(jù)塊或IEC_TIMER類型變量,再調(diào)用輸出Q或ET。功能塊型定時器在使用時可以自動生成背景數(shù)據(jù)塊,也可選擇手動建立;而線圈型定時器只能手動建立所需的背景數(shù)據(jù)塊。線圈型定時器放在邏輯塊中間時,不會影響邏輯塊的邏輯運算結(jié)果,它將輸入端的邏輯運算結(jié)果直接送給線圈的輸出端。

444.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(5)線圈型定時器指令舉例:

上圖中,采用線圈型的TONR定時器對Q0.0進行延時控制,假設(shè)I0.0代表電動機運行信號,當(dāng)累積運行5s后,定時時間到,定時器輸出Q導(dǎo)通,Q0.0線圈得電(可控制指示燈等后續(xù)邏輯)。I0.1為復(fù)位信號,若I0.1閉合,將TONR定時器當(dāng)前值清0,定時器輸出Q斷開,Q0.0線圈失電,為下次延時控制做好準備。454.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(6)定時器使用注意事項1)IEC定時器不計時的原因定時器輸入端IN只有在檢測到電平信號的跳變時,才會開始計時。TP、TON和TONR在輸入端IN由0變?yōu)?時啟動,TOF在輸入端IN由1變?yōu)?時啟動。如果把始終保持不變的信號作為輸入端,定時器不會計時。同一背景數(shù)據(jù)塊或IEC_TIMER變量多次指定給不同的定時器,即定時器的背景數(shù)據(jù)塊存在重復(fù)使用情況時,定時器不會計時。只有在功能塊型定時器的輸出端Q或ET連接至實際變量,或者在程序中使用背景數(shù)據(jù)塊(或IEC_TIMER變量)中的輸出Q或ET時,定時器才會開始計時,并會更新定時時間。464.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.定時器指令(6)定時器使用注意事項2)IEC定時器刷新方式程序執(zhí)行到功能塊型定時器的輸出端Q或ET時,將更新定時時間;程序執(zhí)行到定時器的背景數(shù)據(jù)塊(或IEC_TIMER變量)中的輸出Q或ET時,將更新定時時間;如果程序中多次使用同一背景數(shù)據(jù)塊(或IEC_TIMER變量)中的輸出Q;或者既使用功能塊型定時器的Q或ET連接變量,又使用背景數(shù)據(jù)塊的Q;以上兩種情況都會造成定時器在一個掃描周期內(nèi)的多次更新,可能造成定時器不能正常使用的情況。474.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.計數(shù)器指令計數(shù)器指令用于累計外部輸入脈沖的個數(shù),常見于產(chǎn)品計數(shù)或其他復(fù)雜的邏輯控制場合,是PLC中最常用的指令之一。S7-1200PLC支持3種類型的計數(shù)器指令:增計數(shù)器CTU、減計數(shù)器CTD和增減計數(shù)器CTUD。

484.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.計數(shù)器指令計數(shù)器指令的參數(shù)說明見下表。

494.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.計數(shù)器指令(1)計數(shù)器使用注意事項S7-1200PLC采用的是功能塊型計數(shù)器,使用時應(yīng)注意以下3個問題:需要設(shè)置計數(shù)值的數(shù)據(jù)類型,如上表中PV和CV的6種數(shù)據(jù)類型,計數(shù)值的數(shù)值范圍取決于所選的數(shù)據(jù)類型。如果計數(shù)值是無符號整數(shù)類型,當(dāng)前值可以減到0或增到上限值;如果計數(shù)值是有符號整數(shù)類型,當(dāng)前值可以減到負整數(shù)的下限值或增到正整數(shù)的上限值。與定時器指令類似,需要給每個計數(shù)器分配唯一的背景數(shù)據(jù)塊或者系統(tǒng)數(shù)據(jù)類型為IEC_COUNTER(或IEC_UCOUNTER、IEC_SCOUNTER、IEC_USCOUNTER等,根據(jù)計數(shù)值的數(shù)據(jù)類型而定)的數(shù)據(jù)塊變量(相當(dāng)于計數(shù)器的名字)。本節(jié)所介紹的計數(shù)器屬于普通計數(shù)器,最高計數(shù)頻率將受限于其所在的程序循環(huán)組織塊的掃描周期。如果需要對頻率很高的脈沖(如軸編碼器)進行計數(shù),可以使用高速計數(shù)器(HSC)。

504.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.計數(shù)器指令(2)增計數(shù)器CTU上電周期或首次掃描時,增計數(shù)器當(dāng)前值CV為0,輸出端Q斷開。脈沖輸入端CU每次由0變?yōu)?(出現(xiàn)上升沿)時,當(dāng)前值CV加1,當(dāng)前值CV最大可達到所選數(shù)據(jù)類型的上限值,達到上限值后,CU輸入端再來脈沖上升沿,CV值也不再增加。當(dāng)前值CV大于等于設(shè)定值PV時,輸出端Q導(dǎo)通;復(fù)位輸入端R為1時,復(fù)位增計數(shù)器,當(dāng)前值為0,輸出端Q斷開。舉例:

514.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.計數(shù)器指令(3)減計數(shù)器CTD上電周期或首次掃描時,減計數(shù)器當(dāng)前值CV為0,輸出端Q閉合。脈沖輸入端CD每次由0變?yōu)?(出現(xiàn)上升沿)時,當(dāng)前值CV減1,當(dāng)前值CV最小可達到所選數(shù)據(jù)類型的下限值,達到下限值后,CD輸入端再來脈沖上升沿,CV值也不再減小。當(dāng)前值CV小于等于0時,輸出端Q導(dǎo)通;裝載輸入端LD為1時,把設(shè)定值PV裝載到當(dāng)前值CV中,輸出端Q斷開(相當(dāng)于復(fù)位減計數(shù)器)。實際使用減計數(shù)器前,建議首先使能裝載輸入端LD,對減計數(shù)器進行復(fù)位,然后再啟動計數(shù)功能。舉例:

524.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.計數(shù)器指令(4)增減計數(shù)器CTUD上電周期或首次掃描時,增減計數(shù)器當(dāng)前值CV為0,輸出端QU斷開、QD導(dǎo)通。脈沖輸入端CU每次出現(xiàn)上升沿時,當(dāng)前值CV加1,當(dāng)前值CV最大可達到所選數(shù)據(jù)類型的上限值,達到上限值后,CU輸入端再來脈沖上升沿,CV值也不再增加。脈沖輸入端CD每次出現(xiàn)上升沿時,當(dāng)前值CV減1,當(dāng)前值CV最小可達到所選數(shù)據(jù)類型的下限值,達到下限值后,CD輸入端再來脈沖上升沿,CV值也不再減小。如果脈沖輸入端CU和CD同時出現(xiàn)上升沿,則當(dāng)前值CV保持不變。

當(dāng)前值CV大于等于設(shè)定值PV時,輸出端QU導(dǎo)通,反之?dāng)嚅_;當(dāng)前值CV小于等于0時,輸出端QD導(dǎo)通,反之?dāng)嚅_。

534.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.計數(shù)器指令(4)增減計數(shù)器CTUD復(fù)位輸入端R為1時,復(fù)位增減計數(shù)器,當(dāng)前值為0,輸出端QU斷開、QD導(dǎo)通。復(fù)位輸入端優(yōu)先級最高,即:R輸入端有效時,CU、CD以及LD等輸入端均不起作用。裝載輸入端LD為1時,重新裝載增減計數(shù)器,當(dāng)前值為設(shè)定值,輸出端QU導(dǎo)通、QD斷開。舉例:

544.2定時器及計數(shù)器指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.基本程序控制指令(1)高電平/低電平跳轉(zhuǎn)及標(biāo)簽指令使用高電平跳轉(zhuǎn)指令,當(dāng)線圈輸入端的邏輯運算結(jié)果RLO為1時,跳轉(zhuǎn)到指定的目標(biāo)標(biāo)簽后的第一條指令,繼續(xù)以線性掃描方式執(zhí)行程序。使用低電平跳轉(zhuǎn)指令,當(dāng)線圈輸入端的邏輯運算結(jié)果RLO為0時,跳轉(zhuǎn)到指定的目標(biāo)標(biāo)簽后的第一條指令,繼續(xù)以線性掃描方式執(zhí)行程序。使用標(biāo)簽指令,可以事先為JMP或JMPN指令定義對應(yīng)的目標(biāo)標(biāo)簽。使用說明:只能在同一個程序塊內(nèi)跳轉(zhuǎn),即跳轉(zhuǎn)指令和目標(biāo)標(biāo)簽應(yīng)在同一個程序塊中,且每個目標(biāo)標(biāo)簽只能出現(xiàn)一次。被跳過的程序在本掃描周期不會被執(zhí)行,待下一掃描周期再根據(jù)條件決定是否執(zhí)行。目標(biāo)標(biāo)簽的第一個字符必須是字母,其余的可以是字母、數(shù)字和下劃線。

554.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.基本程序控制指令(1)高電平/低電平跳轉(zhuǎn)及標(biāo)簽指令舉例:上圖中,如果I0.0閉合,高電平跳轉(zhuǎn)線圈得電,程序直接跳轉(zhuǎn)到標(biāo)號LBL1后的第一條指令繼續(xù)執(zhí)行;如果M0.0斷開,低電平跳轉(zhuǎn)線圈失電,程序直接跳轉(zhuǎn)到標(biāo)號LBL2后的第一條指令繼續(xù)執(zhí)行。

564.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.基本程序控制指令(2)定義跳轉(zhuǎn)列表與跳轉(zhuǎn)分支指令使用定義跳轉(zhuǎn)列表指令,同時定義多個有條件跳轉(zhuǎn),輸入端EN為1時,跳轉(zhuǎn)到由參數(shù)K指定的目標(biāo)標(biāo)簽后第一條指令繼續(xù)執(zhí)行。使用跳轉(zhuǎn)分支指令,可以將多個輸入信號與參數(shù)K進行不同類型的比較,根據(jù)比較結(jié)果,執(zhí)行對應(yīng)分支的跳轉(zhuǎn)。舉例:

574.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.基本程序控制指令(2)定義跳轉(zhuǎn)列表與跳轉(zhuǎn)分支指令

使用說明:對于定義跳轉(zhuǎn)列表指令,可手動增減輸出端(目標(biāo)標(biāo)簽),輸出端編號從0開始,每增加一個新輸出,編號會自動升序連續(xù)遞增,S7-1200最多可以聲明32個輸出。如果參數(shù)K的值大于可用的輸出編號,則不執(zhí)行跳轉(zhuǎn),繼續(xù)執(zhí)行原程序塊中的下一段程序。對于跳轉(zhuǎn)分支指令,也可手動增減輸出端,編號從0開始,新增的輸出編號自動升序連續(xù)遞增,S7-1200最多可以聲明32個輸出(外加1個ELSE輸出)。進行比較的操作數(shù)數(shù)據(jù)類型可以是位字符串、整數(shù)、浮點數(shù)、TIME、DATE等。對于跳轉(zhuǎn)分支指令,按輸入端從上向下依次進行比較,直到滿足條件為止,如果滿足比較條件,后續(xù)比較將不執(zhí)行;如果條件均不滿足,則執(zhí)行輸出端ELSE處的跳轉(zhuǎn),如果ELSE中未定義跳轉(zhuǎn)的目標(biāo)標(biāo)簽,則不執(zhí)行任何跳轉(zhuǎn),繼續(xù)向下執(zhí)行。

584.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.基本程序控制指令(3)返回指令使用返回指令,線圈通電后,停止執(zhí)行當(dāng)前的程序塊,并返回至調(diào)用它的程序塊中繼續(xù)執(zhí)行。使用時應(yīng)為該指令指定位存儲區(qū),用以存放塊的返回值(Bool類型)。如果當(dāng)前的塊是OB,返回值被忽略;如果當(dāng)前的塊是FC或FB,返回值作為FC或FB的ENO值傳送給調(diào)用它的塊。返回指令主要用于根據(jù)條件提前結(jié)束正在執(zhí)行的程序塊,如不需要提前結(jié)束,可以不調(diào)用該指令,操作系統(tǒng)會自動在用戶程序后加上無條件返回指令。

594.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.擴展程序控制指令(了解)擴展程序控制指令包括重置循環(huán)監(jiān)視時間、停止運行、查詢錯誤信息、查詢錯誤ID以及測量運行時間。

604.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.擴展程序控制指令(了解)(1)重置循環(huán)監(jiān)視時間指令RE_TRIGR使用重置循環(huán)監(jiān)視時間指令,可以延長循環(huán)監(jiān)視定時器(看門狗)的時間。正常工作時,最大掃描循環(huán)時間小于監(jiān)視定時器的時間設(shè)定值,監(jiān)視定時器不起作用,每次掃描循環(huán)將自動復(fù)位監(jiān)視定時器一次。當(dāng)出現(xiàn)用戶程序過長、一個掃描周期內(nèi)執(zhí)行中斷程序的時間過長或者循環(huán)指令執(zhí)行時間過長等情況時,一個掃描周期的循環(huán)時間可能大于監(jiān)視定時器的設(shè)定時間,監(jiān)視定時器將會起作用。此時可以在程序塊任意位置使用該指令來復(fù)位監(jiān)視定時器。該指令僅在優(yōu)先級為1的程序循環(huán)OB和它調(diào)用的塊中起作用;該指令在硬件中斷、診斷中斷或循環(huán)中斷OB等優(yōu)先級較高的塊中將不會被執(zhí)行。在組態(tài)CPU時,可以利用“常規(guī)”→“周期”→“循環(huán)周期監(jiān)視時間”參數(shù)設(shè)置最大掃描循環(huán)時間,默認值為150ms。

614.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.擴展程序控制指令(了解)(2)停止運行指令STP使用停止運行指令,輸入端EN有效時,設(shè)置CPU為STOP模式。STP指令執(zhí)行后,CPU本機以及擴展單元的數(shù)字量/模擬量輸出進入到組態(tài)時設(shè)置安全狀態(tài)??梢允馆敵鰞鼋Y(jié)在最后的狀態(tài),或用替代值設(shè)置為安全狀態(tài)。默認情況下,數(shù)字量輸出狀態(tài)和模擬量輸出值為0。(3)查詢錯誤信息指令GET_ERROR和查詢錯誤ID指令GET_ERR_ID使用查詢錯誤信息指令,當(dāng)輸入端EN有效時,輸出程序塊執(zhí)行時出錯的信息。錯誤信息通過輸出端ERROR保存到預(yù)定義的ErrorStruct數(shù)據(jù)類型的變量中??衫贸绦?qū)﹀e誤信息進行分析和處理,第一個錯誤消失后,輸出下一個錯誤的信息。使用查詢錯誤ID指令,當(dāng)輸入端EN有效且執(zhí)行程序塊出錯時,僅顯示錯誤ID。第一個錯誤ID輸出到ID對應(yīng)的地址中,第一個錯誤消失后,輸出下一個錯誤ID。

624.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.擴展程序控制指令(了解)(4)測量運行時間RUNTIME使用測量運行時間指令,當(dāng)輸入端EN有效時,可以測量整個程序、單個程序塊或命令序列的運行時間。第一次調(diào)用RUNTIME指令設(shè)置時間測量的起始點并且存儲在輸入端MEM對應(yīng)的LReal數(shù)據(jù)類型的變量中,同時作為第二次調(diào)用的參考點;然后調(diào)用需要測量運行時間的程序塊;程序塊執(zhí)行完后,第二次調(diào)用RUNTIME指令將計算出該程序塊的運行時間,并將結(jié)果保存在輸出端Ret_Val對應(yīng)的LReal數(shù)據(jù)類型的變量中。

634.3程序控制指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.傳送指令

傳送指令包括傳送、填充以及字節(jié)交換指令。

644.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.傳送指令(1)傳送指令使用單一傳送指令MOVE,輸入端EN有效時,將輸入端IN對應(yīng)的數(shù)據(jù)類型轉(zhuǎn)換為OUT1所對應(yīng)的數(shù)據(jù)類型,并存放在OUT1指定的存儲單元中,輸入端IN的源數(shù)據(jù)保持不變。IN和OUT1的操作數(shù)可以是除Bool類型之外的所有基本數(shù)據(jù)類型,也可以是DTL、Struct和Array數(shù)據(jù)類型。IN也可以是常數(shù)。使用塊傳送指令MOVE_BLK,輸入端EN有效時,將輸入端IN對應(yīng)的Array結(jié)構(gòu)體起始元素開始的若干個元素(由COUNT數(shù)值決定),依次傳送到OUT所指定的Array結(jié)構(gòu)體起始元素開始的若干個地址。使用不可中斷的塊傳送指令UMOVE_BLK,其功能與塊傳送MOVE_BLK指令基本相同,但該操作不會被操作系統(tǒng)的其它任務(wù)中斷。

654.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.傳送指令(1)傳送指令使用說明:傳送指令MOVE中,IN和OUT1的數(shù)據(jù)類型可以相同,也可以不同。例如可以將MW0中的數(shù)據(jù)傳送至MD4,此時MW0存放在MD4的低位字(MW6)中,高位字MW4中補零;也可以將MD4中的數(shù)據(jù)傳送至MW0,此時只將低位字MW6中的數(shù)據(jù)存放在MW0中,高位字MW4則會丟失,應(yīng)盡量避免此類傳送方式。塊傳送指令MOVE_BLK中,IN和OUT1必須是數(shù)據(jù)塊DB或局部數(shù)據(jù)區(qū)L中的數(shù)組元素。COUNT為傳送數(shù)組元素的個數(shù),其數(shù)據(jù)類型為USINT、UINT、UDINT或常數(shù)。

664.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.傳送指令(1)傳送指令舉例:上圖中,I0.0閉合后,將MD0中的數(shù)據(jù)傳送給MD10;然后將數(shù)組#a_array中第3個元素開始的4個元素,依次傳送到數(shù)組#b_array中第4個元素開始的4個變量中。

674.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.傳送指令(2)填充塊指令使用填充塊指令FILL_BLK,輸入端EN有效時,將輸入端IN的數(shù)據(jù)填充到OUT所指定的Array結(jié)構(gòu)體起始元素開始的若干個地址(由COUNT數(shù)值決定)。使用不可中斷的填充塊指令UFILL_BLK,其功能與填充塊FILL_BLK指令基本相同,但該操作不會被操作系統(tǒng)的其它任務(wù)中斷。使用說明:填充塊指令FILL_BLK中,IN的數(shù)據(jù)類型可以是各種基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型,也可以是常數(shù);OUT必須是數(shù)據(jù)塊DB或局部數(shù)據(jù)區(qū)L中的數(shù)組元素;COUNT為填充塊的次數(shù),其數(shù)據(jù)類型為USINT、UINT、UDINT或常數(shù)。不可中斷的填充塊指令UFILL_BLK中,操作數(shù)的數(shù)據(jù)類型與FILL_BLK指令相同,唯一區(qū)別在于UFILL_BLK不會被操作系統(tǒng)的其它任務(wù)中斷。

684.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.傳送指令(2)填充塊指令舉例:上圖中,I0.0閉合后,將輸入端IN的常數(shù)0填充到數(shù)組#a_array中第1個元素開始的10個變量中;然后將數(shù)組#b_array中第1個元素填充到數(shù)組#c_array中第1個元素開始的4個變量中。

694.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.傳送指令(3)字節(jié)交換指令使用字節(jié)交換指令SWAP,輸入端EN有效時,將輸入端IN的數(shù)據(jù)按照字節(jié)進行順序交換,結(jié)果存放在OUT所指定的存儲單元中。IN和OUT為Word數(shù)據(jù)類型時,將輸入端IN的高、低字節(jié)交換后,存放在OUT指定的字地址中;IN和OUT為DWord數(shù)據(jù)類型時,將輸入端IN的4個字節(jié)依次交換順序后,存放在OUT指定的雙字地址中。舉例:

704.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.移位和循環(huán)指令移位和循環(huán)指令包括左移、右移、循環(huán)左移以及循環(huán)右移指令。

714.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.移位和循環(huán)指令(1)移位指令使用左移指令SHL和右移指令SHR,可以將輸入端IN的數(shù)據(jù)逐位左移或右移若干位(由N值決定),移位完的結(jié)果存放在輸出端OUT指定的存儲單元中。對于無符號數(shù)進行左移/右移時,空位補0;對于有符號數(shù)進行左移時,空位補0,對于有符號數(shù)進行右移時,最高位(符號位)為空位,該位保持符號位不變。如果N為0時不移位,直接將輸入端IN的數(shù)據(jù)存放在OUT指定的地址中;如果N大于移位操作數(shù)的位數(shù),原來的所有位均被移除,結(jié)果為0。舉例:

724.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.移位和循環(huán)指令(1)移位指令上圖中,I0.0閉合后,將MB10中的數(shù)據(jù)左移4位,并將結(jié)果存放于MB20中,若MB10=2#1010_1111,則執(zhí)行后MB20=2#1111_0000。再將MW30的數(shù)據(jù)右移2位后存放在MW40中,若MW30=2#1111_0000_1010_0101,則執(zhí)行后MW40=2#1111_1100_0010_1001。

734.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.移位和循環(huán)指令(2)循環(huán)移位指令使用循環(huán)左移指令ROL和循環(huán)右移指令ROR,可以將輸入端IN的數(shù)據(jù)逐位循環(huán)左移或循環(huán)右移若干位(由N值決定),即移出位補到另一端的空位中,移位完的結(jié)果存放在輸出端OUT指定的存儲單元中。如果N為0時不移位,直接將輸入端IN的數(shù)據(jù)存放在OUT指定的地址中;如果N大于移位操作數(shù)的位數(shù),將執(zhí)行N次循環(huán)移位操作。舉例:

744.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.移位和循環(huán)指令(2)循環(huán)移位指令上圖中,I0.0閉合后,將MB0中的數(shù)據(jù)循環(huán)左移5位,結(jié)果存放于MB1中,若MB0=2#1111_0000,則MB1=2#0001_1110。再將MW10中的數(shù)據(jù)循環(huán)右移3位后存放在MW20中,若MW10=2#1111_0000_1010_0101,則MW20=2#1011_1110_0001_0100。

754.4數(shù)據(jù)處理指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(1)四則運算指令

764.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(1)四則運算指令使用說明:四則運算指令默認包含2個輸入操作數(shù),其中加法和乘法可以擴展輸入個數(shù)。

同一運算指令的所有IN和OUT的數(shù)據(jù)類型應(yīng)相同,可選數(shù)據(jù)類型有SInt、Int、DInt、USInt、UInt、UDInt、Real、LReal;輸入IN可以是變量,也可以是常數(shù)。整數(shù)除法指令在計算時,只保留商,余數(shù)將丟失。使用計算器指令CALCULATE,用戶可以靈活定義計算表達式。IN和OUT1的操作數(shù)可以是除Bool類型之外的所有基本數(shù)據(jù)類型;根據(jù)操作數(shù)數(shù)據(jù)類型的不同,用戶自定義的表達式支持不同的數(shù)學(xué)運算。

774.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(1)四則運算指令舉例:上圖中,I0.0閉合后,將MW10和MW12數(shù)據(jù)相加并存放在MW14,然后將MW14與MW16數(shù)據(jù)相乘,存放在MW18中。如果MW10=25、MW12=55、MW16=100,則運算后MW14=80,MW18=8000。

784.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(1)四則運算指令舉例:上圖(b)可以實現(xiàn)與圖(a)相同的運算結(jié)果,但結(jié)構(gòu)更為簡單、直觀。注意:整數(shù)相乘時,容易出現(xiàn)乘積結(jié)果超過整數(shù)所能表示的最大范圍,導(dǎo)致運算結(jié)果不正確的情況。為了防止該問題,可以結(jié)合轉(zhuǎn)換指令將操作數(shù)轉(zhuǎn)換為浮點數(shù)再相乘。

794.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(2)其他數(shù)學(xué)運算指令

804.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(2)其他數(shù)學(xué)運算指令使用說明:取余指令MOD主要為了解決整數(shù)相除只保留商的問題,其操作數(shù)必須是整數(shù),輸入也可以是常數(shù)。取反指令NEG和取絕對值指令A(yù)BS數(shù)據(jù)類型必須是有符號數(shù),如SInt、Int、DInt、Real和LReal,輸入也可以是常數(shù)。遞增指令I(lǐng)NC和遞減指令DEC的數(shù)據(jù)類型必須是整數(shù),如SInt、USInt、Int、UInt、DInt和UDInt。取最小值指令MIN和取最大值指令MAX的數(shù)據(jù)類型可以是整數(shù)或浮點數(shù),如SInt、USInt、Int、UInt、DInt、UDInt、Real和LReal,輸入也可以是常數(shù)。它們的輸入個數(shù)可以擴展。設(shè)置限值指令LIMIT的數(shù)據(jù)類型可以是整數(shù)或浮點數(shù),如SInt、USInt、Int、UInt、DInt、UDInt、Real和LReal,輸入也可以是常數(shù)。

814.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(2)其他數(shù)學(xué)運算指令舉例:I0.0閉合后,將IW64的值取絕對值(相當(dāng)于將雙極性信號轉(zhuǎn)換為單極性信號),并限制該值在正常范圍0~27648之內(nèi)。

824.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(3)浮點數(shù)函數(shù)運算指令

834.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(3)浮點數(shù)函數(shù)運算指令使用說明:所有的浮點數(shù)函數(shù)運算指令,操作數(shù)IN和OUT的數(shù)據(jù)類型均為Real或LReal。自然對數(shù)指令LN和指數(shù)指令EXP中,底數(shù)均為e=2.71828。平方根指令SQRT和自然對數(shù)指令LN的輸入端IN如果小于0,輸出OUT返回一個無效的浮點數(shù)。三角函數(shù)和反三角函數(shù)指令的輸入端IN均應(yīng)為浮點數(shù)格式下的弧度。使用返回小數(shù)指令FRAC,輸入端EN有效時,提取輸入端IN的小數(shù)位,存放在OUT指定的輸出地址中。使用取冪指令EXPT,用來計算以IN1為底、IN2為指數(shù)的冪,輸出OUT=IN1IN2,底數(shù)IN1和OUT的數(shù)據(jù)類型均為Real或LReal,指數(shù)IN2可選7種數(shù)據(jù)類型。844.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)1.數(shù)學(xué)運算指令(3)浮點數(shù)函數(shù)運算指令舉例:上圖中為計算角度的正弦值程序。I0.0閉合后,需要先將MD0中的角度值轉(zhuǎn)換為弧度值,然后進行正弦計算,結(jié)果存放在MD10中。

854.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.邏輯運算指令邏輯運算指令包括邏輯與、或、異或、取反、編碼、譯碼、選擇、多路復(fù)用以及分路分用指令。

864.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.邏輯運算指令使用說明:與指令A(yù)ND、或指令OR和異或指令XOR的操作數(shù)的數(shù)據(jù)類型可以是十六進制下的Byte、Word和DWord。與運算時,兩個位均為1時輸出為1,否則輸出為0;或運算時,兩個位均為0時輸出為0,否則輸出為1;異或運算時,兩個位相同時輸出為0,否則輸出為1。上述3個指令的輸入個數(shù)可以靈活擴展。取反指令I(lǐng)NV的操作數(shù)的數(shù)據(jù)類型可以是Byte、Word和DWord,也可以是各種類型的整數(shù)。取反運算時,將輸入操作數(shù)逐位取反,即0變成1,1變成0。使用編碼指令ENCO,輸入端EN有效時,將輸入IN的最低有效位(值為1的位)的位號存放在OUT指定的輸出地址中。輸入端IN的數(shù)據(jù)類型是十六進制下的Byte、Word和DWord;輸出端OUT的數(shù)據(jù)類型是Int。

874.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.邏輯運算指令使用說明:使用譯碼指令DECO,與編碼指令相反,輸入端EN有效時,將輸入IN的數(shù)據(jù)作為OUT輸出變量的最低有效位(假設(shè)IN的數(shù)據(jù)為n,則將OUT對應(yīng)輸出變量的第n位置1,其余位置0)。輸入端IN的數(shù)據(jù)類型是UInt;輸出端OUT的數(shù)據(jù)類型是Byte、Word和DWord。當(dāng)IN的值為0~7時,OUT的數(shù)據(jù)類型為Byte;當(dāng)IN的值為0~15時,OUT的數(shù)據(jù)類型為Word;當(dāng)IN的值為0~31時,OUT的數(shù)據(jù)類型為DWord;如果IN的值大于31,則將IN的值除以32以后,用余數(shù)來進行譯碼。

884.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.邏輯運算指令使用說明:使用選擇指令SEL,輸入端EN有效時,利用輸入端G(Bool型)對輸入信號進行選擇性輸出。若G為0,輸出IN0;反之輸出IN1。輸入端G只能為Bool型,其他操作數(shù)的數(shù)據(jù)類型可以是除了Bool之外的所有基本數(shù)據(jù)類型。使用多路復(fù)用指令MUX和分路分用指令DEMUX,可以對輸入輸出信號進行靈活選擇。輸入端K的數(shù)據(jù)類型為UInt,其他操作數(shù)的數(shù)據(jù)類型可以是除了Bool之外的所有基本數(shù)據(jù)類型。上述2個指令的輸入個數(shù)可以靈活擴展。

894.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)2.邏輯運算指令舉例:編碼和譯碼指令實例I0.0閉合后,MW10的值為4,MB20的值為2#0100_0000。舉例:多路復(fù)用和分路分用指令實例

上圖中,I0.0閉合后,多路復(fù)用指令中的K為1,將IN1對應(yīng)的MW2輸出至MW10中;分路分用指令中的K為3,將IN輸入的常數(shù)100輸出至ELSE對應(yīng)的MW60中。

904.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)3.轉(zhuǎn)換指令

914.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)3.轉(zhuǎn)換指令使用說明:使用數(shù)據(jù)類型轉(zhuǎn)換指令CONV,可以將操作數(shù)由一種數(shù)據(jù)類型轉(zhuǎn)化為另一種數(shù)據(jù)類型。操作數(shù)的數(shù)據(jù)類型可以是DWord、SInt、Int、DInt、USInt、UInt、UDInt、BCD16、BCD32、Real、LReal以及Char,輸入IN也可以是常數(shù)。BCD16類型只能轉(zhuǎn)化為Int類型,BCD32類型只能轉(zhuǎn)化為DInt類型。使用取整指令ROUND、截尾取整指令TRUNC、向上取整指令CEIL和向下取整指令FLOOR,均可以將浮點數(shù)(Real和LReal)轉(zhuǎn)化為整數(shù),ROUND指令使用較多。使用比例縮放指令SCALE_X,輸入端EN有效時,將輸入端VALUE對應(yīng)的浮點數(shù)數(shù)據(jù)(應(yīng)在0.0~1.0范圍內(nèi))線性轉(zhuǎn)化為MIN~MAX范圍內(nèi)的整數(shù)或浮點數(shù)(通常轉(zhuǎn)化為整數(shù),作為QW輸出),并將結(jié)果存放在OUT指定的輸出地址中。參數(shù)MIN、MAX和OUT的數(shù)據(jù)類型應(yīng)相同,可以是SInt、Int、DInt、USInt、UInt、UDInt、Real和LReal;MIN、MAX也可以是常數(shù)。

924.5數(shù)學(xué)運算和邏輯運算指令電氣控制及S7-1200PLC應(yīng)用技術(shù)3.轉(zhuǎn)換指令

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論