當(dāng)由于 TP、TON、TOF 或 TONR 指令的輸入上出現(xiàn)沿跳變而啟動(dòng)定時(shí)器時(shí),連續(xù)運(yùn)行的
內(nèi)部 CPU 定時(shí)器的值將被復(fù)制到為該定時(shí)器指令分配的 DB 結(jié)構(gòu)的 START 成員中。 該起
始值在定時(shí)器繼續(xù)運(yùn)行期間將保持不變,隨后將在每次更新定時(shí)器時(shí)使用。 每次啟動(dòng)定時(shí)
器時(shí),都會(huì)從內(nèi)部 CPU 定時(shí)器將一個(gè)新的起始值加載到定時(shí)器結(jié)構(gòu)中。
更新定時(shí)器時(shí),將從內(nèi)部 CPU 定時(shí)器的當(dāng)前值中減去上述起始值以確定經(jīng)過的時(shí)間。 再將
經(jīng)過的時(shí)間與預(yù)設(shè)值進(jìn)行比較以確定定時(shí)器 Q 位的狀態(tài)。 然后在為該定時(shí)器分配的 DB 結(jié)
構(gòu)中,更新 ELAPSED 和 Q 成員。 注意,經(jīng)過的時(shí)間將停留在預(yù)設(shè)值上(達(dá)到預(yù)設(shè)值后定
時(shí)器便不會(huì)繼續(xù)累加經(jīng)過的時(shí)間)。
6ES7972-0BA12-OXAO
當(dāng)且僅當(dāng)滿足以下條件時(shí)才會(huì)執(zhí)行定時(shí)器更新:
●
已執(zhí)行定時(shí)器指令(TP、TON、TOF 或 TONR)
●
某個(gè)指令直接引用 DB 中定時(shí)器結(jié)構(gòu)的“ELAPSED”成員
●
某個(gè)指令直接引用 DB 中定時(shí)器結(jié)構(gòu)的“Q”成員
定時(shí)器編程
規(guī)劃和創(chuàng)建用戶程序時(shí)應(yīng)考慮以下定時(shí)器運(yùn)行說明:
●
可在同一個(gè)掃描周期內(nèi)多次更新定時(shí)器。 每次執(zhí)行定時(shí)器指令(TP、TON、TOF、
TONR)和每次將定時(shí)器結(jié)構(gòu)的 ELAPSED 或 Q 成員用作其它已執(zhí)行指令的參數(shù)時(shí),都
會(huì)更新定時(shí)器。 這在需要時(shí)間數(shù)據(jù)(本質(zhì)上是立即讀取定時(shí)器)時(shí)會(huì)是一項(xiàng)優(yōu)點(diǎn)。
但是,如果希望在整個(gè)程序掃描周期內(nèi)保持一致的值,則請將定時(shí)器指令放置在需要這
些值的其它所有指令之前,并使用定時(shí)器指令的 Q 和 ET 輸出中的變量而不是定時(shí)器 DB
結(jié)構(gòu)的 ELAPSED 和 Q 成員。
●
掃描期間可以不執(zhí)行定時(shí)器更新。 可以在函數(shù)中啟動(dòng)定時(shí)器,然后在一個(gè)或多個(gè)掃描周
期內(nèi)不再調(diào)用該函數(shù)。 如果沒有執(zhí)行引用定時(shí)器結(jié)構(gòu)中 ELAPSED 或 Q 成員的其它指令,
則不會(huì)更新定時(shí)器。 直到再次執(zhí)行定時(shí)器指令或執(zhí)行將定時(shí)器結(jié)構(gòu)的 ELAPSED 或 Q 用
作參數(shù)的其它指令時(shí),才會(huì)再次更新定時(shí)器。