【萬泉河】三菱PLC中的多重背景
多重背景在PLC的應用中,在標準化編程中,在煙臺方法中,有非常重要的地位。
然而屬于非常非常基礎的基本功的技能。
比我所總結歸納的工控行業五連鞭:萬線圈, 不用MT, 不用交叉索引, 不用IO映射, 不用UDT。那本來是煙臺方法的基本功, 而多重背景比五連鞭還要低出來至少N個層級。
所以,所有PLC的學習者,都首先一步要掌握多重背景的使用方法。 不管是否要學習,也不管什么品牌的PLC。 而經常見到很多初學者表示,雖然看過了示例和教程,但仍然對多重背景的機制不能理解,感覺有些燒腦。 那就說明入門之路還很漫長,還有很長的路要走。 也就暫時不必要考慮學習煙臺方法,先把基本功打好再說。
然而, 多重背景的這種叫法只是西門子中的稱謂,英文單詞叫做Multi-instance ,講的是多個FB塊的多重嵌套機制。 即,一個FB1原本它被系統調用的時候,會產生單獨的背景數據塊,然而它如果不是被系統直接調用,而是嵌套在另一個FB2中調用它時,會在FB2的靜態變量中生成FB1的實例背景數據。最終FB2被系統調用并實例化的時候, 所生成的背景數據塊實例里面,包含了FB1的數據。
假設FB2中調用3次FB1,而最終OB1調用了2次FB2,那么在得到的FB2的2個實例的背景數據塊IDB中,每一個里面均有3套FB1的數據信息, 而整個系統中有3*2=6套FB1的數據信息。
我這里不去講入門的基本功的多重背景的原理,因為讀者在網上隨便搜索多重背景+FB的關鍵詞,都可以搜索到很多文章。 而且,即便你加上三菱的關鍵詞,搜到的文章也全部是西門子的。 并沒有三菱的相關的文章出現。
所以可以證明,只有西門子中稱之為多重背景,而要么是三菱的語境中有別的不被知曉的稱謂方法,要么在三菱生態中還沒有發展到這一步。
然而, 我在編著《三菱標準化編程煙臺方法》的新書的時候,對這一塊的詞匯就特別困擾。 專門搜索過相關的資料,然而沒有得到準確的答案。所以,在書中還是仍然按照西門子的叫法來稱謂了。
包括背景數據本身,西門子中叫做IDB, 那么在之外的其他系統中也直接稱之為IDB了。 有見過我書的目錄的讀者,跟我糾正說, 在三菱中根本不存在DB,FB的實例也不叫IDB,而是有另外的叫法。
我當然知道他們不叫IDB, 叫啥呢?叫標簽, 全局標簽中的一個普通的標簽, 和你建立一個INT或者BOOL類型的數據標簽稱謂上并沒有什么區別。
而那些簡單數據變量,我們稱之為變量,在全局標簽中的變量,即為全局變量。 對于所使用的內存地址是隱式的系統,雖然只有名字,但我們也認為和西門子系統中的M變量相當,是屬于煙臺方法編程中用不到的東西。 即五連鞭中的第二鞭。
不使用全局變量M的理念,可以擴大到全局DB也不使用,但顯然就不能再引申擴大到IDB了,否則程序都沒有存在的基石了。
所以,即便在三菱系統中對多重背景和背景數據塊盡管沒有找到他們家更專業的稱謂,盡管也有可能找到,但我還是繼續沿用在西門子的叫法了。
這樣更便于讀者把同一個原理方法理解到不同的系統架構中,而不會因為語境不同,又帶來沒必要的歧義。
所以,其實我想倡導的是, 這種同一概念同一邏輯的詞匯用法,各廠家應該盡量統一一致,最好是有個標準來規范使用。
這貌似應該是IEC 61131的內容,然而我從IEC標準中并沒有發現這方面的約定。
所以,應該建議IEC標準把這方面的詞匯加以統一規定。