0909 【萬泉河】PLC編程煙臺方法升級:萬線圈技術(shù)
有一些小的道理本來是不明而喻的, 但是由于受眾群體理解力大不不同,所以有時候看起來很淺顯的道理也仍然需要反復闡述,才可以逐漸形成最大共識。
所以,有可能顯得有些啰嗦且沒有技術(shù)含量,那么一些先行者敬請忍一忍,慢下來等一等后來者也是你修行的一部分。
比如,技術(shù)的進步通常不是一蹴而就的,而是需要許許多多技術(shù)細節(jié)的不斷提升和打磨,最終才能徹底實現(xiàn)。
我在很多個場合提到過,煙臺方法是一種全新的PLC程序設計思想和方法,學習的難度非常高。而現(xiàn)有的學員的經(jīng)歷也在證實這一點。第一批參加的學員從2018年就開始了學習,到現(xiàn)在已經(jīng)接近4年,徹底實現(xiàn)了自己公司的標準化設計,并且完美程度能跟我交給他們的樣板設計同樣級別的,估計不會很多。而我自己因為一開始的疏忽大意, 設計中也有一點點小的缺憾,所以不能算滿分,但我在注釋中已經(jīng)詳細著名,解決方案也已經(jīng)在后面的文章中反復闡述。真要我改進的話,所需要花費的時間不需要超過半個小時。所以,四舍五入可以認為無限接近滿分了。
當然,學員們到目前為止沒有1個人就這一點對我發(fā)難的。 畢竟,我?guī)Ыo他們的新知識新技能繁雜豐富到眼花繚亂,夠他們學習很久了。 而他們自己可以把學習到的技能逐漸應用到自己的設計工作中,即便達不到和我一樣的程度,也已經(jīng)終生受益了。工作效率已經(jīng)得到了極大程度的提高。
所以有一些人把我說的難學給理解成,既然難學,學不會,那就索性不學。 學和不學一個樣。這樣屬于惡性誤讀。
而另一個方面, 煙臺方法本身也不是靜止不動的, 也是在持續(xù)進步成長中。 有一些是把過去無意中使用過的技能總結(jié)歸納為理論, 而有一些則是隨著新的應用新的工藝遇到的新的邏輯需求,而產(chǎn)生的。
比如近幾個月來, 實現(xiàn)了在國產(chǎn)小型PLC中的標準化設計方法, 僅僅依靠原有的技術(shù)理論顯然是不夠的。除了思想方式有改進,具體的實踐環(huán)節(jié),也是有一些新技術(shù)創(chuàng)新點。
其中,比較重要的是對雙線圈原理的解讀。寫了好多篇文章, 還做了好幾場講座。通過從原理上對PLC行業(yè)原有的雙線圈問題的解讀,另辟蹊徑, 以原本傳統(tǒng)上許多人避之不及的看起來貌似會發(fā)生雙線圈錯誤的編程方法,反而更高效更優(yōu)雅地實現(xiàn)了某些特定邏輯功能。
這些文章和觀點在同行中也引起了不小的反響。 一些同行反應大有收獲。 這么簡單的道理以前沒有深入想過,從中深受啟發(fā)。
而與此對應的是另外一批同行,可能以前寫的好多文章涉及的技術(shù)點他們不怎么熟悉, 而談及雙線圈,不管懂不懂文章在說了什么,至少詞匯懂啊!入門級的概念,在學校的時候老師可能都教過的啊!然后萬老師竟然最基本的錯誤都敢冒犯,可笑可笑。
然后這些人聚集越來越多,竟然還形成了一個小團體,還組了個過百人的微信群,專門看我笑話呢!然后他們以討論學習為理由還邀請我進群,我進群之后就發(fā)現(xiàn)氣氛根本不對,那些人起的名字都五花八門,專門針對萬某以及雙線圈的。 然后我就跟他們的群主表示,他們不是反感我割韭菜嘛,那我就割一把。想讓我做講座,可以。除群主之外,每人繳費10元,湊齊了以后就給他們做講座好好把雙線圈問題講講清楚。
然后這事自然就不了了之了。
然而他們那群人或自嘲, 或起哄, 給他們自己和給我起的外號都挺有意思的。 最有意思的把我搞到笑翻的是稱為∞線圈,我太喜歡了!然而很可惜, 這個按倒的8發(fā)音不方便讀,要讀“無窮大”,我說那就直接叫萬線圈好了。
萬線圈技術(shù), 萬線圈方法。 也正好貼合了萬某的名號。
既然他們的本意是嘲笑我, 那我就順勢笑納了。 但愿以后不要再有人跳出來表達反對意見,再認為我沒有那個資格獨占這一技術(shù)方法的命名權(quán)。
那就太不講究了。
我們對雙線圈的定義,是因為不當?shù)囟啻问褂镁圈指令,導致程序功能錯誤,所以雙線圈是錯誤。
而如果我們能精確把握PLC程序中的線圈指令,以及許多貌似線圈的其他指令,最終雖然貌似有雙線圈錯誤的嫌疑,然而程序功能是可以成功達到預期目的的,同一線圈可以無限次重復使用,可以80次,可以一萬次,可以無窮大次,那么我們統(tǒng)一稱之為萬線圈。
所以,程序中有雙線圈是一種錯誤程序, 而程序中有萬線圈是一種有意為之的正確程序。
貼一下我做過的信捷PLC程序標準化架構(gòu)中的一段程序:
前面一篇文章中曾經(jīng)貼過這段代碼,有人不以為然嘲笑我這樣的平淡無奇的程序也好意思貼出來。
那么請注意看程序雙線圈檢查的結(jié)果:
這些變量都是疑似雙線圈,而實際上我們現(xiàn)在可以稱他們?yōu)槿f線圈。
最后再補充一點,程序中對M211,M212,M213等的變量的使用方法, 其實是相當于把它們當做了FB的INOUT管腳。 信捷PLC的子程序只有CALL,沒有參數(shù),而我這里則通過萬線圈方法,不僅讓它們有了INPUT ,OUTPUT, 甚至INOUT, TEMP, STATIC都是可以實現(xiàn)的了。
當然, 這些技能是參考了匯編語言的處理方法。曾經(jīng)反編譯某個EXE,讀取其匯編邏輯的時候,獲得的技能。