0926 【萬泉河】關于UDT,只怪自己腦洞不夠大
上一篇文章《0917 【萬泉河】關于PLC中UDT和FB的迷思》,是針對更早一篇文章
《0820 【萬泉河】就是要為不用UDT而不用UDT》所引發(fā)的網(wǎng)友爭論所寫。
文中主要的結論:
UDT本質上是數(shù)據(jù)類型,而FB本質上也是數(shù)據(jù)類型。
從接口的角度,UDT和FB同樣都可以作為接口。
而從類的角度,UDT和FB也都同樣可以作為類。
文章發(fā)出后,這回的反響就比較好了,沒了那么多反對爭論的聲音,連帶那個討論的帖子,過程也不那么激烈了。
因為我一再表示,我發(fā)表這些觀點不是拋磚引玉供大家辯駁的,而是立下個標志,供大家可以在很長時間里學習理解的。我根本沒有要和同行討論的意思。 所以不需要來和我討論乃至爭論。 除非有人能和我一樣寫出來系列文章,并且發(fā)表出有理有據(jù)的更深刻的觀點。
然而有群友讀懂了之后就在群里問我, 既然UDT和FB都是數(shù)據(jù)類型, 那么FB是否可以作為UDT的數(shù)據(jù)元素呢?
我以多年西門子PLC的經驗,做出的第一反應是,不能,絕不可能!
然后說出口之后立馬感覺自己有些唐突了。 這要是說錯了話, 這要是被整天跟在腳后跟后面盯著咬腳后跟的家伙抓著了把柄, 不得興奮跳腳好幾年。‘斎, 以他們的智力水平,這一段的技能已經遠遠超越了他們的認知上限,即便放個破綻給他們,他們也沒那么容易叼到。
所以,說完之后,我趕緊在PORTAL V17里面驗證了一下,先松一口氣,當然是不可以。 在UDT中建立數(shù)據(jù)元素的時候,可選的數(shù)據(jù)類型有各種基本數(shù)據(jù)類型,也有已經存在的UDT,但已經存在的FB卻并沒有出現(xiàn)在可選列表中。
注意看這個時候的表達,是要嚴謹包括軟件版本的。 更新版本的V18我還沒有用過,所以暫時無從驗證。 而未來保不齊在哪一個版本中會支持,在當下這還是懸而未決的懸案,需要未來驗證。
然后,我就順手在正在使用的倍福TC2的軟件中試了一下, 驚掉下巴的事情出現(xiàn)了: CODESYS中竟然可以!
CODESYS中的UDT的數(shù)據(jù)類型,竟然可以選擇系統(tǒng)FB和自定義的FB作為其數(shù)據(jù)元素。
而且,當天也就有了報應。
我承接的一個公司的非標設備的PLC程序的標準化改造,他們的PLC主要使用倍福,所以我還在逐字逐句解讀他們原來的TC2程序。 然后當天下午,在閱讀到某一數(shù)據(jù)類型的數(shù)據(jù)結構時,赫然發(fā)現(xiàn)了其中定義的R_TRIG , 就是相當于SFB啊
TYPE ST_calcpointw :
STRUCT
limitswitch:BOOL;
point1:BOOL;
point2:BOOL;
rise_tf:R_TRIG;
rise_fs:R_TRIG;
rise_cs:R_TRIG;
rise_fw:R_TRIG;
END_STRUCT
END_TYPE
怎么說呢, 對我來說,只能怪自己腦洞不夠大了!
我們這兒還各個角度各種理論論證各種數(shù)據(jù)類型的區(qū)別呢,殊不知早有人在用著了。 當然,我相信他們老大即便無意中發(fā)現(xiàn)了這個功能可以使用就順手用的時候, 也完全沒有想到在屋子外面有眾人會因為其背后的理論吵吵鬧鬧,扭作一團。
也當然啦, 他們的老大雖然早就掌握了在UDT數(shù)據(jù)元素中使用FB的技能,寫程序的方法仍然基于傳統(tǒng)方法的,雖然一直在謀求實現(xiàn)設備規(guī)格的標準化,但最終結果卻離標準化模塊化越來越遠,去年他們出廠的非標設備類型統(tǒng)計下來達到了50個機型之后,PLC程序版本管理就完全失控了,設計人員開始疲于奔命,被一個接一個的項目推著走。 公司嚴重缺人手, 然而新招的人手短時間內還不能承擔起工作任務,完全惡性循環(huán)中。所以想到了要我來輔導實現(xiàn)設備程序設計的標準化。 對倍福的PLC,調試細節(jié)我不夠熟悉,但由于我N年前已經完成了倍福PLC的標準化,所以對其標準化架構還是比較了解的。 這是我敢承攬的主要原因。
同時也做一個預告,《三菱PLC標準化編程煙臺方法》的書稿已經通過了出版社審核,預期會在年底之前出版發(fā)行。 而我計劃的下一本書,就會是針對倍福和CODESYS的。會在輔導的倍福標準化項目有點眉目的時候就同步開始攥寫。
書名會叫做《倍福/CODESYS PLC 標準化編程煙臺方法》, 既然倍福PLC是基于CODESYS平臺的, 那么在寫倍福時也就順便將CODESYS的內容一起包含了。 如果還有其它的使用CODESYS平臺的PLC廠家希望搭便車, 在書中同時體現(xiàn), 請私下與我聯(lián)系。