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