【萬泉河】為什么PLC程序中不要用M和T,為什么要推廣PLC編程標(biāo)準(zhǔn)化?
這倆問題我今天嘗試用一篇文章講清楚。
先說一個結(jié)論, 前一個問題是后一個問題的基礎(chǔ),沒解決前一個問題,就不可能實現(xiàn)后一個問題。
即要搞PLC編程標(biāo)準(zhǔn)化, 一個重要的前提是程序中不要用M和T。 實現(xiàn)邏輯的時候,不要使用全局變量的M和T來作為其中的狀態(tài)傳遞和功能實現(xiàn)。
M和T的本質(zhì)是全局變量,這是德系PLC中常用的代號,那么換到日系, 會是D,H等等,以及純標(biāo)簽編程的,就是人為定義的字符。 都是全局變量,都在要避免的范圍內(nèi)。
如果程序中用了M和T ,那么這個程序就只能用于當(dāng)下這個項目,當(dāng)下這個PLC模塊私有,就無法重復(fù)使用到以后的項目中,以后的項目中哪怕功能和這里一模一樣, 你也不能直接使用,而是至少要做一些變量的沖突審查。然后3個4個…..100個項目, 只要需要你重新做程序,而不是直接拿一套現(xiàn)成的程序直接下載就是用的項目,都需要審查,調(diào)試,都需要你細(xì)心不要遺忘。 只要遺忘了就要你好看,就會讓你吃盡苦頭。
所以,這兩個問題的答案是同一個,即:痛點。
因為使用中感覺到痛了, 不舒服了,所以就要想辦法找到避免痛的方法,而不是一輩子這么忍著,即便痛點苦點,也這么一直忍下去。
講一個親身經(jīng)歷的故事。
大約3-4年前,我一直給做顧問的公司,一個工程師辭職了,然后新的工程師還沒招上來,他曾經(jīng)干過的項目,已經(jīng)交付運行了1-2年的設(shè)備,出問題了?蛻舴从衬骋徊糠止δ懿缓糜茫詣舆\行時設(shè)備亂跳。
這個項目,這個類型的設(shè)備工藝 ,是他們公司的傳統(tǒng),其中的主要邏輯, 是我在N年前幫他們做了一個項目后的樣板,后來的十幾年,他們就一直使用我那套樣板改過來改過去的用,已經(jīng)用到了上百套設(shè)備上面了,所以工程師的能力絕對不會有問題,不至于做爛。
因為人手緊張, 老板就求我?guī)兔ε芤惶耍椖吭谔旖蚪伎h,然后我就買了機票直奔天津,到了機場直接租了個車,開過去了。
到了現(xiàn)場,了解了一下具體的功能,故障現(xiàn)象,又問下主事的設(shè)備主管, 這個功能以前有沒有用過,是否好用?主管回答設(shè)備驗收后一直在用其他的模式,唯獨這個功能從來沒用過,這是最近生產(chǎn)計劃改變,才需要用到,然后用了就發(fā)現(xiàn)不能用。
然后我就問,全工在當(dāng)時調(diào)試的時候, 這部分功能有沒有驗證過?答:好像沒有。
然后我就明白了。因為這部分功能不是主要的功能,就有可能調(diào)試時沒有注意到里面的變量使用,留下了bug。
打開程序, 找到相關(guān)的程序塊,順著邏輯捋了一下,再查一下變量的交叉引用,很快就找到了一個使用沖突的M變量。改了一下,再讓客戶開機驗證, 立馬好了。
前后不過半小時。
然而天色已晚,工廠還在遠(yuǎn)郊區(qū),客戶給我安排了宿舍, 讓我住了一晚,第二天買了機票回家了。
花費兩天時間,往返機票費租車費近2000元, 就解決了一個M點的疏漏問題。什么叫痛?這就叫痛。
前面的工程師為什么離職?常年出差,常年除了干工程項目,其余的時間就是天南海北沒完沒了處理這些類似的問題。 基本上來說,一年當(dāng)中,就很少有老老實實呆在家里朝九晚五上班的時間。因為公司的運轉(zhuǎn)離不了你, 所以也不能給你晉升的機會,所以就只能十幾年幾十年如一日的無限重復(fù)這樣的工作。
換誰誰不痛? 如果還不能理解其中痛點的,請點擊窗口右上角的X,請退出不要看后面的了,后面的與你更無關(guān),更看不懂。
有人會質(zhì)疑說,這不就是一個粗心的問題嗎,只要小心一點,仔細(xì)一點,現(xiàn)場調(diào)試的時候別偷懶每一個功能都顧及到,都測試到,就不會出這樣的問題了。
我只能說,這樣的想法太幼稚了。客戶生產(chǎn)系統(tǒng)一旦有可能運行,就會全力保障生產(chǎn),就沒有機會配合你做全方位調(diào)試。如果要調(diào)試輔助功能?等條件吧, 十天半個月的,生產(chǎn)有了條件,再給你機會試。然后怎么辦,項目正常的調(diào)試也就十天, 你在哪兒再干等10天等條件?像我去天津處理的這個功能,客戶放了快兩年才用得到,才發(fā)現(xiàn)。 你猜他們會給你機會?
完全細(xì)心的人有沒有?有。 這位工程師的主管領(lǐng)導(dǎo),我的徒弟。 那就是個非常極度細(xì)心的人,比我要細(xì)心100倍。他做項目的時候, 每個項目,每個點位,他都要重復(fù)4-5遍的審核,校對。 多少次不無得意的跟我吹噓,他干過的項目絕對穩(wěn)定可靠,很少有離開后再次去第二次的。 贏得了客戶極大的信任。
然而這其中的代價呢,他媳婦都跟我親自抱怨, 為了做項目,他十幾年每天都是熬夜到后半夜1-2點。年紀(jì)比我還小幾歲,然而十多年前就早就滿頭白發(fā)了。
這苦不苦,痛不痛?
如果還沒有理解痛點的,請點擊一下右上角X。
然而痛點結(jié)束了嗎?沒有。
像上面離職的工程師的工作狀態(tài)應(yīng)該是大有人在吧?然后大家工作十幾年如一日,覺得辛苦,就希望老板漲工資,漲一兩次還不行, 最好是年年漲,每年漲一次,翻倍。 這種要求非常合理,可以理解。
然而,站在老板角度, 十年前的你和十年后的你,工作內(nèi)容是一樣的, 工作量是一樣的,為公司的貢獻也是一樣的,而十幾年下來,市場形勢可能已經(jīng)逆轉(zhuǎn), 采購成本大幅度提高,項目競爭厲害, 拿到項目的利潤已經(jīng)今非昔比了。簡單說你為公司創(chuàng)造的效益并沒有提高,反而有可能有所減少,十幾年老板肯定已經(jīng)為你漲過幾次工資了,你這兒還獅子大開口,還不滿足, 還繼續(xù)翻倍的要, 老板那兒都想開了你,換個剛畢業(yè)的年輕人來呢!人家工資要求可沒你那么高。
你可能會說,切!新畢業(yè)的大學(xué)生啥都不會,怎么能趕上我一個十幾年工作經(jīng)驗的老工程師?然而你好像忘了,十幾年前,你也剛畢業(yè),老板重用你,還不是照樣頂下來干到現(xiàn)在?
更何況,前面的設(shè)備工藝沒那么成熟,現(xiàn)在早成熟的透透的了,根本用不上這樣富有經(jīng)驗的頂級高手了。
所以你如果為工資收入感到痛, 老板同時還為你收入高,貢獻不匹配也在痛。 如果現(xiàn)在還不痛, 那就終有一天被裁員了,才真的感到痛嗎?
右上角有個X…….
要解決最后這個痛點, 可不僅僅是減少bug就夠的。 通常在職場上,這唯一的途徑是升職。工作中做出一定的業(yè)績,被領(lǐng)導(dǎo)賞識,然后有機會提拔,上升到管理層,就可以極大程度跳離出差長工資低的苦海。然而對大部分純粹的技術(shù)人員來說,通常不諳人情世故,因而很難有機會做管理的。那么唯一的途徑是提高自己的工作效率。
比方說, 如果你是車間的車工, 你原本一小時能加工10個零件, 如果你肯動腦,善鉆研,設(shè)計一個好的工裝,一小時能加工100個零件了, 不光自己的效率提高了,別的車工使用了你的工裝后,效率也提高了, 這些所有人的提高的效率,都是你的業(yè)績。 那么公司為你漲工資提待遇是水到渠成的事。
而對于自動化工程師的工作來說,這個工裝就是程序標(biāo)準(zhǔn)化。而其實對于有機會升職到管理層的,其最好的業(yè)績也是為公司打造一個標(biāo)準(zhǔn)化體系。
通過建立公司設(shè)備程序的標(biāo)準(zhǔn)化體系,可以大幅度的提高工作效率,減少出差時間。
然而我們的同行中, 很多看了我各種文章的讀者,非但自己沒有能力建立標(biāo)準(zhǔn)化, 甚至連標(biāo)準(zhǔn)化的意思都不知道。 我們所指的PLC編程標(biāo)準(zhǔn)化, 不是去跑到PLC廠家為他們制定一套通用的標(biāo)準(zhǔn)化工具,直接嵌入到PLC廠家發(fā)布的軟件系統(tǒng)中, 從而限制PLC的使用者的編程方式, 以逼迫他們不能任性的使用全局變量, 不能寫垃圾程序,沒辦法寫出低效率的程序, 被逼無奈只能設(shè)計出來高效率的標(biāo)準(zhǔn)化程序。
對于這樣的理解的人, 我只能說,你們想的太美了。 盡管一些人因此而恨我,恨我限制了他們的制造垃圾程序的特權(quán),我仍然告訴你們的是, 天底下根本沒有這樣的好事。右上角有個X,那是你的去處。
我們所說的PLC標(biāo)準(zhǔn)化編程方法,是指工程師把PLC作為工具, 在所產(chǎn)出的作品,即你的設(shè)備程序,使用標(biāo)準(zhǔn)化模塊化的方法搭建而成。 如何叫做標(biāo)準(zhǔn)化模塊化, 不是你程序中把功能分成了若干個模塊單元就可以的, 而是這些模塊要能重復(fù)使用。 即一旦開發(fā)完成, 在本公司,本行業(yè)將來的大多數(shù)項目中,都可以直接簡單使用。
簡單到什么程度?
簡單到最高極致,完全按照高內(nèi)聚低耦合的目標(biāo),留給組裝環(huán)節(jié)的工作量只剩下簡單耦合, 這種耦合沒有任何技術(shù)含量,任何一個沒有設(shè)計基礎(chǔ)的電工,應(yīng)屆畢業(yè)生,辦公室文員,都可以通過30分鐘的培訓(xùn),就可以完成。
那么,在最極致的情況下,一旦對某個工藝設(shè)備的邏輯開發(fā)成熟,后面的工程就不再需要工程師到現(xiàn)場出差,現(xiàn)場的安裝工人按照設(shè)計部門給付的設(shè)計資料,稍微整理下裝程序即可。 下裝后程序邏輯即可可靠運行, 不再需要試車, 不再需要現(xiàn)場調(diào)試。
當(dāng)然,上面所述是終極目標(biāo)。 在終極目標(biāo)達到之前,工程師可能還需要偶爾出差,有可能只是為了到場安撫客戶,讓習(xí)慣上看著工程師調(diào)試動輒一個月的客戶心理有些安全感。然而這時候的出差,對工程師來說基本上就是商務(wù)旅游了, 沒有什么壓力, 去了以后大部分時間也就協(xié)調(diào)配合。時間也極短,原本一個月兩個月的調(diào)試時間, 現(xiàn)在3-5天就完成了。
然后, 原本一個工程師,一年能干5-6個項目的, 現(xiàn)在一年干20-30個也不在話下。 而且勞動強度還降低了。 這種情況下,這樣的高效率,老板如果不給漲工資, 合天理嗎?
估計能有耐心看到這里,并看懂的自動化工程師,可能已經(jīng)為數(shù)不多了。
這個時候,有人會舉手說, 萬老師,你的思想我懂了。 你的標(biāo)準(zhǔn)化的思想我絕對支持,然而有個建議, 你能不能。。。。?
STOP!
你支持我,我還未必支持你呢!
對于反對我的人,我自然毫不留情地否定,然而對那些只是口頭上支持, 其實未必真正了解的,我也是不畏懼說真話的。
標(biāo)準(zhǔn)化編程方法, 其實不是一種什么思想,他的實現(xiàn)方法很簡單, 4個字, 面向?qū)ο蟆?如果懂的人自然早就已經(jīng)懂了。
然而標(biāo)準(zhǔn)化編程,其實是一種能力。
拿我自己來說, 我在十幾年前就開始研究琢磨標(biāo)準(zhǔn)化編程的方法,然而自己一直沒能全部打通。10年前在S7-300中已經(jīng)做到了程序中不使用M和T,然而系統(tǒng)還是需要長時間的現(xiàn)場調(diào)試,因為疏忽造成的bug顯著減少, 返廠次數(shù)少了。然而總體效率提高并不明顯。
這個時候我整體技能還不成熟, 同時也缺少一個關(guān)鍵點的推力。 然后在5年前開始使用S7-1500, V13, V14, V15。到V15的時候, 突然發(fā)現(xiàn)它可以比以前更好的支持面向?qū)ο罅!然后如開掛一般,除了搞出了S7-1500標(biāo)準(zhǔn)化應(yīng)用, 甚至還倒回去在S7-200 SMART中實現(xiàn)了標(biāo)準(zhǔn)化架構(gòu)。
按說S7-200的標(biāo)準(zhǔn)化與S7-1500根本沒有關(guān)系。 S7-200早就存在了20年,我早用的滾瓜爛熟,為啥之前我搞不出呢, 為啥在S7-300時搞不出呢? 還是自己能力不夠嘛!
我在最后一個公司上班時,公司別的部門成立項目組要搞標(biāo)準(zhǔn)化,那個時候公司用的是S7-300。 我自己既然沒有這個能力, 自然也幫不上什么忙。 我認(rèn)為搞不出,他們也不相信。 然后就由他們自己搞了。
上個月, 我問了一下以前的那位同事,你們當(dāng)年搞的標(biāo)準(zhǔn)化,怎么樣了?
回答說, 搞了一堆函數(shù)庫,但根本沒人用。 廢棄。
我說, 這很正常。以我當(dāng)年的認(rèn)知,都自認(rèn)為沒有能力搞成, 我也頂多給公司做個樣板工程, 給同事們打個樣,以后同樣工程可以參考而已。 你們技術(shù)部都沒有現(xiàn)場調(diào)試經(jīng)驗的, 僅憑臨時學(xué)一下STEP7,不會的地方還要逐步向我請教的,就能一步到位做出標(biāo)準(zhǔn)化開發(fā)?天方夜譚呢!
所以看出來了吧, 能力以及能力的成長才是第一主要的。
我也經(jīng)常看到一些公司說早好幾年就在搞標(biāo)準(zhǔn)化設(shè)計,有的公司甚至專門成立了標(biāo)準(zhǔn)化研究院。我就首先問,是從哪一年開始的,什么版本。
如果年代比我還久遠(yuǎn),如果PORTAL版本在V15之前, 那我就有數(shù)了,基本上是個失敗的標(biāo)準(zhǔn)化。
他們的人的能力咱不知曉,但V15之前的版本, 對開發(fā)者的能力的要求是翻倍的。按我的估計,在S7-300時代,或者PORTAL V13/14的階段,要搞標(biāo)準(zhǔn)化,需要開發(fā)者具備的能力可遠(yuǎn)比我從V15開始的時候的難度大。就好比我都在充分掌握了各種原理技巧的情況下, 開發(fā)三菱和OMRON的標(biāo)準(zhǔn)化都要1-2個月,過程中隨時遇到要失敗退出的選擇項。所以如果換做我來承接這樣的任務(wù), 以當(dāng)時的我的能力來看,我是做不出的。而即便到今天,整個業(yè)界還都是我自己一個人在為標(biāo)準(zhǔn)化吶喊,如果他們當(dāng)時都成功了,業(yè)界不可能沒有任何風(fēng)聲,現(xiàn)在也不至于只有我一個人在孤軍奮戰(zhàn)。
標(biāo)準(zhǔn)化的程序架構(gòu),在整個行業(yè)前面發(fā)展的40年里, 是從來沒有出現(xiàn)的。 所以,所有同行,之前并沒有見過這樣的項目案例,所入門學(xué)習(xí)的參考資料, 全都是過去傳統(tǒng)模式的架構(gòu)。所以自然有很多很多人持懷疑態(tài)度。
懷疑者的心態(tài),我猜有兩種。
第一種,不相信在PLC行業(yè)能做出標(biāo)準(zhǔn)化的程序, 甚至有的人都一直不相信可以做出不使用全局變量的程序。
第二種,相信客觀世界能,但不相信我有這個能力做出來,或者不相信我所做的標(biāo)準(zhǔn)化程序和他們以往所做的和見到過的程序有什么不一樣。
這兩撥人,總是一副挑戰(zhàn)的心態(tài), 以激將法來問我要程序。說什么你敢拿出個例子程序來嗎,除非你拿出來給我看了我才相信你。
呸!上面的話看到了嗎?連相信我的人我都從來不去討好, 我憑什么要去贏得你的相信?你的相信與不相信與我有毛關(guān)系?你相信不相信, 那只代表了當(dāng)下時刻你的認(rèn)知水平。 而于我毫無價值。
這些人是不是抱有這樣的心態(tài): 你的標(biāo)準(zhǔn)化好不好, 我們有投票權(quán), 不征得我們大多數(shù)人的同意,你的標(biāo)準(zhǔn)就推廣不下去, 就是廢紙一張。
經(jīng)過本文的分析,大家現(xiàn)在應(yīng)該都明白了吧,標(biāo)準(zhǔn)化是企業(yè)的標(biāo)準(zhǔn)化,是每位自動化同行所在的公司的標(biāo)準(zhǔn)化,與PLC廠家沒有任何毛關(guān)系。 企業(yè)是否做到標(biāo)準(zhǔn)化, 與工程師個人的效率,工作量,出差辛苦程度,薪資水平這些所有加起來的痛點有關(guān)系,而與我并沒有多少直接關(guān)系。
我現(xiàn)在就在期待,看一些公司的招聘信息, 看到他們要招聘能出差的有能力的自動化工程師卻找不到的時候,然后我來出手幫他們提高效率解決人手不足的問題。
像最開始的故事里, 那位離職的工程師, 在外面飄了2年之后,又回來跟老板聯(lián)系,有意再回公司工作,繼續(xù)出差也愿意。 然而被老板很冷淡的拒絕了。 他當(dāng)初是和另一個工程師幾乎同時辭職的, 現(xiàn)在,這樣的崗位不缺人了。因為我已經(jīng)輔導(dǎo)他們實現(xiàn)了標(biāo)準(zhǔn)化設(shè)計,就那些老是大同小異的重復(fù)性的工程項目,一個工程師足夠了。有一些小項目,電工在現(xiàn)場也就干了。 都不需要工程師去了。
所以,這其中效率提高了多少, 大家都能基本有數(shù)了吧!