可編程序控制器的普通計(jì)數(shù)器的計(jì)數(shù)過(guò)程與掃描工作方式有關(guān),CPU通過(guò)每一掃描周讀取一次被測(cè)信號(hào)的方法來(lái)捕捉被測(cè)信號(hào)的上升沿,被測(cè)信號(hào)的頻率較高時(shí),會(huì)丟失計(jì)數(shù)脈沖,因此普通計(jì)數(shù)器的工作頻率很低,一般僅有幾十赫茲。高速計(jì)數(shù)器可以對(duì)普通計(jì)數(shù)器無(wú)能為力的事件進(jìn)行計(jì)數(shù),CPU221和CPU222有4個(gè)高速計(jì)數(shù)器,其余的CPU有6個(gè)高速計(jì)數(shù)器,{zg}計(jì)數(shù)頻率為30 kHz,可設(shè)置多達(dá)12種不同的操作模式。
一般來(lái)說(shuō),高速計(jì)數(shù)器與鼓形定時(shí)器配套使用,該設(shè)備有一個(gè)安裝了增量式編碼器的軸,它以恒定的轉(zhuǎn)速旋轉(zhuǎn)。編碼器每圈發(fā)出一定數(shù)量的計(jì)數(shù)時(shí)鐘脈沖和一個(gè)復(fù)位脈沖,作為高速計(jì)數(shù)器的輸入。高速計(jì)數(shù)器有一組預(yù)置值,開(kāi)始運(yùn)行時(shí)裝入{dy}個(gè)預(yù)置值,當(dāng)前計(jì)數(shù)值小于當(dāng)前預(yù)置值時(shí),設(shè)置的輸出有效。當(dāng)前計(jì)數(shù)值等于預(yù)置值或有外部復(fù)位信號(hào)時(shí),產(chǎn)生中斷。發(fā)生當(dāng)前計(jì)數(shù)值等于預(yù)置值的中斷時(shí),裝載入新的預(yù)置值,并設(shè)置下一階段的輸出。有復(fù)位中斷事件發(fā)生時(shí),設(shè)置{dy}個(gè)預(yù)置值和{dy}個(gè)輸出狀態(tài),循環(huán)又重新開(kāi)始。
因?yàn)橹袛嗍录a(chǎn)生的速率遠(yuǎn)遠(yuǎn)低于高速計(jì)數(shù)器計(jì)數(shù)脈沖的速率,所以用高速計(jì)數(shù)器可實(shí)現(xiàn)高速運(yùn)動(dòng)的jq控制,并且與可編程序控制器的掃描周期的關(guān)系不大。
可用定時(shí)中斷來(lái)執(zhí)行一個(gè)周期性的操作,以1 ms為增量,周期的時(shí)間可取1~255 ms。定時(shí)中斷0和中斷1的時(shí)間間隔分別寫(xiě)入特殊存儲(chǔ)器字節(jié)SMB34和SMB35。每當(dāng)定時(shí)器的定時(shí)時(shí)間到時(shí),執(zhí)行相應(yīng)的定時(shí)中斷程序,例如可以用定時(shí)中斷來(lái)采集模擬量和執(zhí)行PID程序。如果定時(shí)中斷事件已被連接到一個(gè)定時(shí)中斷程序,為了改變定時(shí)中斷的時(shí)間間隔,首先必須修改SMB34或SMB35的值然后重新把中斷程序連接到定時(shí)中斷事件上。重新連接時(shí),定時(shí)中斷功能qc前一次連接的定時(shí)值,并用新的定時(shí)值重新開(kāi)始定時(shí)。
定時(shí)中斷一旦被允許,中斷就會(huì)周期性地不斷產(chǎn)生,每當(dāng)定時(shí)時(shí)間到時(shí),就會(huì)執(zhí)行被連接的中斷程序。如果退出RUN狀態(tài)或定時(shí)中斷被分離,則定時(shí)中斷被禁止。如果執(zhí)行了全局中斷禁止指令,則定時(shí)中斷事件仍會(huì)連續(xù)出現(xiàn),每個(gè)定時(shí)中斷事件都會(huì)進(jìn)入中斷隊(duì)列,直到中斷隊(duì)列滿。
定時(shí)器T32/T96中斷允許及時(shí)地響應(yīng)一個(gè)給定的時(shí)間間隔,這些中斷只支持1 ms分辨率的通電延時(shí)定時(shí)器(TON)和斷電延時(shí)定時(shí)器(TOF)即T32和T96。一旦中斷允許,當(dāng)定時(shí)器的當(dāng)前值等于設(shè)定值時(shí),在CPU的1 ms定時(shí)刷新中,將執(zhí)行被連接的中斷程序。
【例】 定時(shí)中斷的定時(shí)時(shí)間最長(zhǎng)為255 ms,用定時(shí)中斷1實(shí)現(xiàn)周期為2s的高精度定時(shí)。