萬泉河
WX:ZHO6371995,歡迎+
級(jí)別: 略有小成
|
0208 【萬泉河】終于被松下PLC打敗 2月2日上周四,進(jìn)行了LBP培訓(xùn)課程講座的第一課,生成了課件,已經(jīng)參加的學(xué)員如果在當(dāng)堂沒有聽懂看懂,可以再參考課件內(nèi)容,逐步自己實(shí)現(xiàn)。所以, 如果沒有來得及報(bào)名而想要學(xué)習(xí)LBP的同行,也仍然隨時(shí)可以報(bào)名參加。就不需要等開課時(shí)間了,直接一步到位收到課件,跟隨課件學(xué)習(xí)。 總的來說,我做LBP的培訓(xùn)就是手把手帶大家演練如何實(shí)現(xiàn)LBP的應(yīng)用。做好了一次, 以后就永遠(yuǎn)有用。 那么一些入行還不夠深,現(xiàn)在還沒有認(rèn)識(shí)到自己有學(xué)習(xí)使用LBP的需求的,可以在將來,比如N年之后發(fā)現(xiàn)了自己達(dá)到了那個(gè)層級(jí)了,想要使用LBP框架,卻發(fā)現(xiàn)自己掌握LBP有困難的時(shí)候,再來報(bào)名學(xué)習(xí)也不遲。 而我自己,完成第一堂課之后到現(xiàn)在銷聲匿跡了將近一周時(shí)間,做啥去了? 做松下PLC的標(biāo)準(zhǔn)化去了。 松下FP-XH PLC的編程軟件FPWIN PRO7,我以前研究過,只是確認(rèn)了可行性,就沒有繼續(xù)再做。 所以,在培訓(xùn)課程的欄目里,要求的是先學(xué)習(xí)OMRON或者三菱的標(biāo)準(zhǔn)化,然后自行研究升級(jí)到松下PLC實(shí)現(xiàn)。 然而我忽視了系統(tǒng)軟件平臺(tái)的性能,或者說沒能參透松下軟件開發(fā)者的腦回路,然后鬧了烏龍,翻車了。 起因是這樣,有一個(gè)同行,數(shù)次跟我聯(lián)系想學(xué)煙臺(tái)方法,然而對(duì)我提及的不管西門子還是歐姆龍,三菱都不感興趣。因?yàn)樗紱]有碰過。現(xiàn)在的公司只使用松下FP-XH的PLC。所以要他先去學(xué)會(huì)其他品牌,再學(xué)透,再學(xué)會(huì)在松下PLC的應(yīng)用,就有點(diǎn)難度太大。 于是他就提出先交一半定金,等我專門做成松下PLC的標(biāo)準(zhǔn)化程序之后,再付另一半。 也寄了一臺(tái)他手頭的PLC硬件給我,供我開發(fā)時(shí)測(cè)試用。正好,講座完成的次日,就收到了快遞,所以就開始做煙臺(tái)方法的程序遷移了。 這位朋友不會(huì)ST編程語言,只會(huì)梯形圖,為了方便他將來的學(xué)習(xí)理解,我就沒有從現(xiàn)成的ST程序中移植,而是從頭用LAD搭建的FB塊庫函數(shù)。當(dāng)然, 參照了一部分SMART200的煙臺(tái)方法的程序,以及《三菱PLC標(biāo)準(zhǔn)化編程煙臺(tái)方法》書稿的樣例程序以及我進(jìn)一兩年寫的文章中提到的一些庫函數(shù)。 差不多3天時(shí)間,底層庫函數(shù)基本完成,然后分別建立了一些實(shí)例,開始拼裝,開始準(zhǔn)備做自動(dòng)部分了。 然后就發(fā)現(xiàn)了問題。 編譯不通過,報(bào)錯(cuò)誤為: 錯(cuò)誤:PLC中沒有足夠的可用子程序數(shù)量,請(qǐng)刪減調(diào)用的用戶自定義的FUN和FB的數(shù)量,或改變成具體有更多子程序的PLC機(jī)型。 被這個(gè)錯(cuò)誤提示直接給干懵逼了。分析了很久后找到了原因。 原來松下PRO7的平臺(tái),在編譯我們做的FB/FC程序的時(shí)候,并不是給做成真正意義上的重復(fù)調(diào)用的函數(shù),而是對(duì)每一次調(diào)用,都給把參數(shù)的實(shí)際變量的地址代入,做了個(gè)一次性的函數(shù)跳轉(zhuǎn)。即一個(gè)FB如果調(diào)用10次,那么就生成了10個(gè)不同編號(hào)的SUB,分次調(diào)用。 就好比,你總結(jié)了一個(gè)A+B+C=D的數(shù)學(xué)公式,但到了松下的系統(tǒng)里面,他不給你列公式,而是把可能用到的算式全部給列在里面了: 1+1+1=3 1+2+3=6 2+2+2=6 2+3+4=9 3+3+4=10 等等等等。 原本,這種方法除了浪費(fèi)一點(diǎn)程序空間,編譯代碼量增大之外,別的也無所謂。然而FP-XH的PLC, SUB的編號(hào)最大只到255,即最多只能有256個(gè)函數(shù)調(diào)用。 這就難倒我了。 標(biāo)準(zhǔn)化的基礎(chǔ)是程序功能的模塊化,通過把相同的功能封裝成塊,通過重復(fù)調(diào)用,減少了咱們?nèi)斯さ闹貜?fù)工作量。 比如,我現(xiàn)在比較在意的一個(gè)數(shù)據(jù)格式是設(shè)備時(shí)間參數(shù)格式都使用以S為單位的浮點(diǎn)數(shù)。這樣在數(shù)據(jù)交互過程中就少一個(gè)數(shù)據(jù)類型和數(shù)據(jù)轉(zhuǎn)換的過程。 所以,我通常開頭第一步,是對(duì)原本定時(shí)器功能做一個(gè)封裝,設(shè)定值和運(yùn)行值都改為浮點(diǎn)數(shù),然后程序塊中所有需要用到定時(shí)器的地方,統(tǒng)一使用自己新封裝的定時(shí)器。 有人一直對(duì)煙臺(tái)方法不理解,以為我在推行強(qiáng)制編程標(biāo)準(zhǔn)。其實(shí)如果有的話,對(duì)定時(shí)器數(shù)據(jù)格式的統(tǒng)一,可以算作一項(xiàng),可能也是僅有的一項(xiàng)了。但也只是對(duì)我自己和煙臺(tái)方法學(xué)員的一種倡議。 這在平常的PLC系統(tǒng),原本都沒有問題的。然而到了松下,問題就出來了。 我這種對(duì)定時(shí)器的封裝方法,如果對(duì)應(yīng)到過去傳統(tǒng)垃圾程序的寫法,一套系統(tǒng)用到256個(gè)定時(shí)器會(huì)把定時(shí)器資源耗光的話,我這里就是一步到位同時(shí)把子程序資源也耗光了。得,我啥子程序都不用寫了。還做什么模塊化,標(biāo)準(zhǔn)化! 如果我現(xiàn)在真的要做這樣的項(xiàng)目,那方法就是把所有的封裝全部拆掉,比如定時(shí)器,所有程序中用到的地方,再不厭其煩地前面加入REAL到TIME的轉(zhuǎn)換,后端需要監(jiān)測(cè)運(yùn)行值ET時(shí)再做TIME到REAL的轉(zhuǎn)換,程序不做嵌套,所有FB塊都一氣呵成,大概也能做成標(biāo)準(zhǔn)化的架構(gòu)。 那對(duì)我來說就太惡心了。 原本,松下PLC還有個(gè)舊一點(diǎn)的軟件FPWIN GR7,同一款PLC也仍然可以在那個(gè)平臺(tái)上編程,那個(gè)平臺(tái)是和我研究過的信捷XD一樣,沒有現(xiàn)成的FB/FC功能,所謂子程序全年都靠著跳轉(zhuǎn)來實(shí)現(xiàn)的。我如果非要自己部署規(guī)劃,和當(dāng)時(shí)在信捷中實(shí)現(xiàn)的一樣的方法,也能做好。 然而也會(huì)吃和信捷同樣的虧。信捷XD PLC新版軟件開始具備了FB/FC功能,我做的超前研究?jī)r(jià)值被清零了,而松下這里既然已經(jīng)有了高版本的軟件,如果我在低版本里面做,那么只要廠家隨時(shí)把PRO7的軟件做個(gè)升級(jí),改變編譯方法,比如到PRO8之后這個(gè)問題就解決了,那我就又白做了。 所以,思考一個(gè)晚上后,昨天早上還是跟對(duì)方工程師聯(lián)系,退款給他了。 認(rèn)敗,才是更好更體面的退出方式。 由此我想到了歷史上曾經(jīng)的WINTEL聯(lián)盟,微軟和英特爾兩家公司互相配合互相促進(jìn)和提高,互相給對(duì)方提出更高的需求,而自己提供更高級(jí)的產(chǎn)品,最終促進(jìn)了整個(gè)IT行業(yè)的飛速發(fā)展。 而在工控行業(yè),需要有更多和我一樣的PLC應(yīng)用工程師,從應(yīng)用角度,對(duì)PLC廠家軟硬件平臺(tái)提出更貼合應(yīng)用實(shí)際的需求,他們改進(jìn)提高之后,也可以促進(jìn)提高我們的應(yīng)用水平。 由此實(shí)現(xiàn)相得益彰的TIKTOK滴答。 所以,總有一些同樣的PLC應(yīng)用工程師,從個(gè)人聲譽(yù)的角度要爭(zhēng)什么行業(yè)大佬資格,從而互相碾壓攻擊,你們?nèi)绻心菢拥睦硐耄?/font>不如多做些基礎(chǔ)的研究工作,提出更高的問題,為行業(yè)集體發(fā)出一些呼吁的聲音,最終才能促進(jìn)行業(yè)的發(fā)展。想爭(zhēng)第一的名份的,先看看自己手里有多少翻車的教訓(xùn),有提出過多少新的理論方法貢獻(xiàn)給行業(yè)。 我一個(gè)人的聲音顯然太微弱了些。 |
---|---|
本帖最近評(píng)分記錄: |
祈12345
級(jí)別: 正式會(huì)員
|
建議直接去西門子論壇發(fā)表,他肯定會(huì)回復(fù)你 |
---|---|
|
愚公移山
可解FPX,F(xiàn)PXH,F(xiàn)P0R,F(xiàn)P0H
級(jí)別: 論壇先鋒
|
用松下FP7試一試 |
---|---|
|
abcde12345
級(jí)別: 論壇先鋒
|
PLC本身就是一個(gè)標(biāo)準(zhǔn)化的東西,如果想自己搞個(gè)標(biāo)準(zhǔn)化,可以用高性能單片機(jī)加RTOS,這樣自由度很大,性能也會(huì)發(fā)揮到最好 |
---|---|
|
萬泉河
WX:ZHO6371995,歡迎+
級(jí)別: 略有小成
|
沒看到有人提問什么問題需要回復(fù)。 不過最近受到些啟發(fā),松下PRO7也有可能可以做了。 |
---|---|
|
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
|
有那時(shí)間,去開發(fā)一款CODESYS 吧, 整天整遺臭萬年的東東。 |
|
---|---|---|
|