何啟海
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 263 個
工控威望: 383 點(diǎn)
下載積分: 1358 分
在線時(shí)間: 141(小時(shí))
注冊時(shí)間: 2017-02-20
最后登錄: 2024-10-09
查看何啟海的 主題 / 回貼
樓主  發(fā)表于: 2023-07-23 14:34
話說中斷大家都用過,一般邏輯程序都是放在主程序里面,這時(shí)候降低程序的掃描周期,有沒有誰把程序?qū)戇M(jìn)中斷里面的啊,例如西門子中大型機(jī),直接把FC塊拉進(jìn)OB中斷里面。例如中斷時(shí)間設(shè)置成10ms,這時(shí)候疑問來了,例如原本程序需要80毫秒掃碼一次,把所有的塊都拉進(jìn)中斷里面時(shí),是10ms掃碼一次,還是80ms掃碼一次呢?
曾以為80毫秒的掃描時(shí)間很短,但是到達(dá)執(zhí)行元件時(shí)已經(jīng)是輕舟已過萬重山了。
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 747 個
工控威望: 1125 點(diǎn)
下載積分: 353 分
在線時(shí)間: 587(小時(shí))
注冊時(shí)間: 2019-09-22
最后登錄: 2024-11-08
查看gxtmdb82164的 主題 / 回貼
1樓  發(fā)表于: 2023-08-01 15:38
主要還是現(xiàn)在PLC的速度足夠快,絕大多數(shù)情況下沒有中斷重入的問題,加上本身PLC底層會做一定的保護(hù),真在單片機(jī)裸機(jī)環(huán)境下,在中斷里面胡寫八寫,或者中斷源沒有管理好,遇到中斷重入,肯定是會出問題的.

1L的例子其實(shí)是非常好的,估計(jì)有的人還沒看懂,正常循環(huán)執(zhí)行的程序,本身就需要80ms去執(zhí)行的代碼,放到中斷中每10ms啟動一次,怎么可能執(zhí)行的完呢?(假設(shè)這個80ms是純粹的程序掃描時(shí)間,不是后臺處理)

按照大部分小型PLC的編程范式要求進(jìn)中斷以后關(guān)總中斷,出中斷開總中斷是一種典型的處理方式(主動丟棄),
還有一些PLC會在底層處理,這個要看手冊,一般都是中斷掛起的方式(被動丟棄),總之是不能重入的,這個看一下中斷嵌套會加深理解