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