如何學習PLC—PLC從基礎到專家的進階過程

學plc,最好是要有一定的二次電路基礎,否則就無從談起,然後需要從實踐中來,邊做邊學,第三就是要有程序設計的理念和思路,這是大的學習思路,從實際操作上講,可以分下面這麼幾步。

1.作為預備性的課程,需要具備二次(控制)電路原理知識,包括繼電器控制電路的基本原理,常見的控制迴路識圖、畫圖的能力,最好有實際接線和調試的經驗。這方面不是單純可以靠看書掌握的,但是最好能找一本比如低壓電器控制迴路之類的書籍邊看邊實踐。打好基礎,掌握繼電器、計數器、定時器這些基本概念。因為PLC從最初的設計理念上就是要替代和簡化繼電器線路的。

2.作為實物投資,個人建議買一個入門的PLC用來練手,這個成本我個人認為是值得付出的,有了實物在理解和練習上都要直觀很多。從性價比和上手的難易程度看,西門子的小型PLC在工業市場始終佔據著不可替代的地位。在當前的實際下,S7-200 smart或者S7-1200上手最好,這兩者之中更推薦S7-1200,一方面因為和更高級的S7-1500都採用同樣的TIA平臺,另一方面TIA平臺也是西門子軟件大平臺的發展方向(不過安裝TIA要有心理準備,它可以讓任意配置的電腦慢的慘不忍睹)。S7-200雖然應用廣泛,但畢竟是落在時代背後一大截了。

如何學習PLC—PLC從基礎到專家的進階過程

3.基礎篇,流行的教材中以廖常初的最為流行和通順,正好他也是主要教西門子系列的(不確定是不是有1200系列的教材,我猜應該是有的。至少他的200和300系列的書都不錯)。要了解PLC的基本結構,但是不要在這方面太過執著,適可而止的瞭解,或者說是基本瞭解、一知半解即可。在以後的應用中有足夠時間可以深入瞭解;深入瞭解LAD梯形圖的畫法,對基本概念比如線圈、節點、計數器、定時器、移位、比較、計算、上升沿下降沿等等,務必要熟練掌握;對於其他類型的編程語言,如果有可能,最好能學習瞭解一下,比如STL或者FBD,這些並不是華而不實的炫技,而是一方面能加深對PLC的理解,第二能方便快速實現某些功能,第三能夠很好的與高級文本語言相輔相成互相促進。

4.學習方法上,如果能找到一個肯用實際項目帶你的師傅是最好的,因為市面上關於PLC的教材基本上都是隻教基本使用,完全沒有涉及實際項目案例的。如果有機會(這個可能性很小)閱讀一些優秀的程序,對自己編程習慣的提高和編程理念的提升都是很有幫助的。如果沒有,那麼就需要儘可能從教材中有限的案例比如跑馬燈、紅綠燈、流水線這些實驗性質的案例中得到實踐,自己動手接接線、寫程序和調試,能自力更生把這些功能調試出來,再結合一些傳感器,實現模擬量輸入輸出的功能,基本上基礎就算打好了。

5.更高一些的使用技巧包括程序的組織和功能的實現兩部分,程序組織方面,要試著理解FB、FC、DB這些塊的功能,瞭解系統OB的含義和用法,嘗試著把程序按照塊來組織,通過調用減少重複工作,提高複用性,使程序更清晰可讀,這是提高編程水平,組織大型程序的基礎。功能實現方面,學習和了解一些常用的編程模式很有必要,比如順序轉換的編程結構,PID調節、步進電機控制等一些功能的原理、實現方法以及系統內置的工藝模塊的用法,有可能的話嘗試自己不用系統塊寫一個PID調節或者運動控制的功能,這些都是從熟手到高手的分水嶺。我認識的很多工程師,都卡在這個關節到了技術瓶頸。這個瓶頸的形成有很多原因,平時項目用不到太多高級功能是一部分原因,但我個人認為主要還在於單純從PLC角度學習的話,到一定程度上技術天花板的形成主要是看法和理念的限制,既然說到了PLC的學習,那麼對這一個分水嶺的突破也談一下理解和看法。

6.越過分水嶺。如果說PLC入門一端的基礎是繼電器組成的硬件迴路,那麼其通往高手之路的另外一端則與軟件工程息息相關。雖然PLC是從繼電器迴路抽象出來的,但隨著抽象完成,他也就成了一個軟件的工程,而工程師們所做的plc編程,本質上也就是軟件設計的一種,從根本上,依然離不開軟件工程的指導。diangon.com只是從事PLC程序設計的大部分是工程師,並不具備專業的軟件工程訓練,因此無法從認知上的到提高。FC、FB、DB這些塊要實現的,也是軟件工程中非常重要的邏輯和數據分離,模型與實例獨立的思想,而被封裝起來的工藝塊,很多也已經是基於面向對象的思考方式編寫出來的。因此,掌握軟件工程的基本思路和方法,如果有可能,去學習一門高級語言,而不是糾纏在各種組態軟件、觸摸屏的軟件使用和所謂的腳本編寫上。這些軟件是面向工程師設計的,但其對於個人認識和水平的提高意義及其有限。因此,掌握一門高級語言才是根本。我個人傾向於Python,因為人生苦短,需要Python這樣高效率的語言,但是從上手難易程度和見效快的方面,還是推薦學習C#入手。

7.其他補充的技術和知識。除了軟件工程,如果真的要想成為PLC高手,我想再沒有比自己設計一款PLC更有挑戰性的了。這包括:集成電路的設計和嵌入式系統軟件設計,需要電子電路的基礎和電路板設計的能力,需要編寫一套可運行的嵌入式系統,同時需要一個PC端的編譯器,把梯形圖轉換成PLC端嵌入式處理器可以理解的語言。這裡面涉及到的學科和內容,我想都是一個自動化工程師在技術方面最全面的體現,能夠做到這一步,我想就可以稱得上是PLC專家了。


分享到:


相關文章: