一、 導(dǎo)讀
(1)定時(shí)器的分類(lèi)
在西門(mén)子S7-200SMART CPU中分別有接通延時(shí)定時(shí)器TON、保持型接通延時(shí)定時(shí)器TONR、關(guān)斷延時(shí)定時(shí)器TOF三種。但由于在 STEP 7 Micro/WIN SMART里定時(shí)器的調(diào)用總數(shù)限制在256,并且S7-200 SMART子程序多次調(diào)用時(shí)不能使用定時(shí)器;因此可以使用開(kāi)始間隔時(shí)間指令(BGN_ITIME)和計(jì)算間隔時(shí)間指令CAL_ITIME兩條指令,可實(shí)現(xiàn)對(duì)位信號(hào)的計(jì)時(shí)功能;并且可以在子程序中進(jìn)行多次調(diào)用。
(2)認(rèn)識(shí)時(shí)間間隔定時(shí)器
圖1:時(shí)間間隔定時(shí)器(左側(cè)為開(kāi)始間隔時(shí)間指令,右側(cè)為計(jì)算間隔時(shí)間指令)
①開(kāi)始間隔時(shí)間指令:當(dāng)指令EN端條件滿(mǎn)足時(shí)(需要使用沿脈沖信號(hào))捕捉EN接通的時(shí)刻,讀取內(nèi)置 1 毫秒計(jì)數(shù)器的當(dāng)前值,并將該值存儲(chǔ)在 OUT 中;其數(shù)據(jù)類(lèi)型為DWORD。
②計(jì)算間隔時(shí)間指令:計(jì)算當(dāng)前時(shí)間與 IN 端地址中提供的時(shí)間差,然后將差值存儲(chǔ)在 OUT 中;其數(shù)據(jù)類(lèi)型亦為DWORD。雙字毫秒值的最大計(jì)時(shí)間隔為2^32或 49.7 天。 根據(jù) BGN_ITIM 指令的執(zhí)行時(shí)間,CAL_CITIM 指令會(huì)自動(dòng)處理在最大間隔內(nèi)發(fā)生的一毫秒定時(shí)器翻轉(zhuǎn)。
二、定時(shí)器應(yīng)用
接下來(lái)我們通過(guò)一個(gè)簡(jiǎn)單的應(yīng)用程序來(lái)充分理解時(shí)間間隔指令;如圖2所示。
當(dāng)程序段1中BGN_ITIM指令的EN導(dǎo)通一個(gè)掃描周期時(shí),系統(tǒng)將會(huì)讀取該掃描周期內(nèi)接通的具體時(shí)間,存放在OUT地址VD0中。同時(shí)程序段2中 CAL_CITIM指令會(huì)計(jì)算OUT中地址VD4和IN端地址VD0的差值,從而得到EN端接通的實(shí)際時(shí)間,并且該時(shí)間單位為毫秒。
圖2:LAD控制圖
三、定時(shí)器在子程序中的應(yīng)用
在很多實(shí)際應(yīng)用中會(huì)建立子程序用于多次調(diào)用,并且會(huì)用到定時(shí)器、計(jì)數(shù)器等指令。但由于200SMART系列PLC的定時(shí)器不能用于子程序的多次調(diào)用,此時(shí)就可以用到時(shí)間間隔指令了;具體操作我們可以參考以下示例程序。
(1) 打開(kāi)STEP 7 Micro/WIN SMART軟件創(chuàng)建一個(gè)SBR_0的子程序,在子程序變量表中,建立變量,如圖3所示。
圖3:子程序變量表
(2) 在子程序程序編輯區(qū)調(diào)用BGN_ITIM 指令和CAL_CITIM 指令,如圖4所示。注意,在子程序中不能使用沿脈沖信號(hào),因此需要在MAIN主程序中使用沿脈沖信號(hào)。
圖4:子程序
(3) 選擇MAIN主程序,打開(kāi)項(xiàng)目樹(shù)中的“調(diào)用子程序”將建好的子程序SBR_0拖至MAIN主程序中,并給各形式參數(shù)分配實(shí)參,并且可以實(shí)現(xiàn)多次調(diào)用;執(zhí)行不同的條件,便可以實(shí)現(xiàn)對(duì)應(yīng)的時(shí)間記錄如圖5所示。
圖5:MAIN主程序
該程序?qū)崿F(xiàn)的功能是:
程序段1:V20.0 從接通到斷開(kāi)這一過(guò)程的計(jì)時(shí),計(jì)時(shí)結(jié)果(單位:毫秒)在VD4 中查看。
程序段2:V20.1 從接通到斷開(kāi)這一過(guò)程的計(jì)時(shí),計(jì)時(shí)結(jié)果(單位:毫秒)在VD12 中查看。
四、結(jié)語(yǔ)
時(shí)間間隔指令實(shí)際應(yīng)用比較少,通過(guò)子程序進(jìn)行時(shí)間的記錄,采用時(shí)間間隔指令是其中一種方法,在使用該方法時(shí),需要注意兩點(diǎn):一是在BGN_ITIM 指令的EN端需要使用脈脈沖信號(hào)觸發(fā),而在子程序中又不能使用沿脈沖信號(hào),因此在主程序?qū)υ撔问絽?shù)賦實(shí)參時(shí),務(wù)必加沿脈沖指令,否則CAL_CITIM指令OUT將沒(méi)有值。二是CAL_CITIM指令OUT地址為DWORD數(shù)據(jù)類(lèi)型,并且單位為毫秒,需要進(jìn)行二次運(yùn)算后才是我們實(shí)際需要的運(yùn)行時(shí)間。
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。