「原創經驗」小心西門子S7-1200的第一次掃描(firstscan)標誌!

幾乎所有PLC都有第一次掃描的概念,用於執行程序的初始化操作。對於西門子PLC,OB100和第一次掃描標誌都讓用戶有機會執行自己的操作。

但是,最近發現S7-1200的CPU(不確定其他型號PLC的情況),不管是OB100,還是第一次掃描標誌出現時,都不是真正意義上的PLC完全準備好,交給用戶使用的狀態。

下面的語句用於讀取CPU的硬件信息,在PLC上電時,卻無法得到任何信息。但是,在上電完畢,編程器將CPU停止再啟動時(非斷電),就可以讀到信息了,這說明:CPU上電後,程序開始運行,但是,部分硬件並沒有完全準備好

「原創經驗」小心西門子S7-1200的第一次掃描(firstscan)標誌!

因此,程序開發時要注意這個問題,我的做法:

1、對於硬件信息讀取,不斷判斷讀取結果,如果沒有信息,則再讀一次。

「原創經驗」小心西門子S7-1200的第一次掃描(firstscan)標誌!

2、對於模擬量的讀取,要在啟動的前幾秒裡,將一個安全替代值交給後續程序使用。延時後,再直接使用系統的結果。

3、對於各種開機邏輯,要充分考慮各外部設備的啟動準備時間,因此,最好是延時一個安全時間後,再允許外部動作。


2019年1月5日

說明:

1、本文是實踐經驗,非嚴格論文,與相關產品和理論可能不完全相符。

2、如需控制、三電相關幫助,交流,請關注本人,並加入技術討論QQ群:877456127,那裡有很多熱心同行。


分享到:


相關文章: