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