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