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