何啟海
級別: 略有小成
|
話說中斷大家都用過,一般邏輯程序都是放在主程序里面,這時候降低程序的掃描周期,有沒有誰把程序寫進中斷里面的啊,例如西門子中大型機,直接把FC塊拉進OB中斷里面。例如中斷時間設置成10ms,這時候疑問來了,例如原本程序需要80毫秒掃碼一次,把所有的塊都拉進中斷里面時,是10ms掃碼一次,還是80ms掃碼一次呢? 曾以為80毫秒的掃描時間很短,但是到達執行元件時已經是輕舟已過萬重山了。 |
---|---|
|
gxtmdb82164
級別: 論壇先鋒
|
主要還是現在PLC的速度足夠快,絕大多數情況下沒有中斷重入的問題,加上本身PLC底層會做一定的保護,真在單片機裸機環境下,在中斷里面胡寫八寫,或者中斷源沒有管理好,遇到中斷重入,肯定是會出問題的. 1L的例子其實是非常好的,估計有的人還沒看懂,正常循環執行的程序,本身就需要80ms去執行的代碼,放到中斷中每10ms啟動一次,怎么可能執行的完呢?(假設這個80ms是純粹的程序掃描時間,不是后臺處理) 按照大部分小型PLC的編程范式要求進中斷以后關總中斷,出中斷開總中斷是一種典型的處理方式(主動丟棄), 還有一些PLC會在底層處理,這個要看手冊,一般都是中斷掛起的方式(被動丟棄),總之是不能重入的,這個看一下中斷嵌套會加深理解 |
---|---|
|