在SIMATIC S7中,用戶的程序都維護在一個個的邏輯塊中。Block是用戶程序最重要的組成部分。STEP 7有三大類塊: 1、邏輯塊 Logic blocks:OB、FB、FC、SFB、SFC五種 2、數據塊 Data blocks:DB、SDB 3、用戶自定義數據類型 User-defined data types:UDT 今天,我們一起探討一下OB塊,并著重介紹一下OB1。 OB即組織塊(Organization block)。它是指CPU的操作系統與用戶程序之間的接口。OB用于執行特定的程序段:
組織塊按照已分配的優先級來執行。 OB塊大致可以分為以下幾類:
等等。。。 Siemens的S7系列CPU,提供了豐富的組織塊,我們可以根據實際需求,靈活的調用相應的組織塊,完成既定的控制目標。 程序循環組織塊OB1 OB1是S7程序的入口,它與C語言中的main()函數有些許類似。系統上電、自檢、啟動完成后,系統會周期性的執行OB1。我們用戶可以在OB1中編寫控制程序,處理輸入數據、控制輸出設備,以完成生產控制要求。 在所有的OB塊中,OB1的優先級最低,除了OB90外的所有其他OB塊都能中斷OB1的執行。 OB1執行后,系統會發送全局數據。在再次執行OB1之前,系統會做以下三件事:
S7會監控程序的掃描時間。系統預設的最大掃描周期為150ms(改時間可更改),同時通過調用SFC43可以重啟時間監控。如果OB1的程序執行時間超過了最大掃描周期,系統會調用OB80(時間錯誤中斷),進行中斷響應。如果OB80沒有專門編程,CPU則會進入STOP模式。 系統除了最大掃描周期之外,還有最小掃描周期。如果OB1程序太小,執行完一次后,仍未達到最小掃描周期,程序會停止執行,直到其達到最小掃描周期。 一個良好的編程習慣是,每類現場設備的控制程序最好編寫在獨立的FB塊或FC塊中,然后在OB1中根據需要,隨時調用相應的塊即可。 下一篇我們將匯總一下FB塊、FC塊以及DB塊的功能和編程要點,盡請期待。 |
|