學plc,最好是要有一定的二次電路基礎(chǔ),否則就無從談起,然后需要從實踐中來,邊做邊學,第三就是要有程序設(shè)計的理念和思路,這是大的學習思路,從實際操作上講,可以分下面這么幾步。
1.作為預備性的課程,需要具備二次(控制)電路原理知識,包括繼電器控制電路的基本原理,常見的控制回路識圖、畫圖的能力,最好有實際接線和調(diào)試的經(jīng)驗。這方面不是單純可以靠看書掌握的,但是最好能找一本比如低壓電器控制回路之類的書籍邊看邊實踐。打好基礎(chǔ),掌握繼電器、計數(shù)器、定時器這些基本概念。因為plc從最初的設(shè)計理念上就是要替代和簡化繼電器線路的。
2.作為實物投資,個人建議買一個入門的plc用來練手,這個成本我個人認為是值得付出的,有了實物在理解和練習上都要直觀很多。從性價比和上手的難易程度看,西門子的小型plc在工業(yè)市場始終占據(jù)著不可替代的地位。在當前的實際下,s7-200 smart或者s7-1200上手最好,這兩者之中更推薦s7-1200,一方面因為和更高級的s7-1500都采用同樣的tia平臺,另一方面tia平臺也是西門子軟件大平臺的發(fā)展方向(不過安裝tia要有心理準備,它可以讓任意配置的電腦慢的慘不忍睹)。s7-200雖然應(yīng)用廣泛,但畢竟是落在時代背后一大截了。
3.基礎(chǔ)篇,流行的教材中以廖常初的最為流行和通順,正好他也是主要教西門子系列的(不確定是不是有1200系列的教材,我猜應(yīng)該是有的。至少他的200和300系列的書都不錯)。要了解plc的基本結(jié)構(gòu),但是不要在這方面太過執(zhí)著,適可而止的了解,或者說是基本了解、一知半解即可。在以后的應(yīng)用中有足夠時間可以深入了解;深入了解lad梯形圖的畫法,對基本概念比如線圈、節(jié)點、計數(shù)器、定時器、移位、比較、計算、上升沿下降沿等等,務(wù)必要熟練掌握;對于其他類型的編程語言,如果有可能,最好能學習了解一下,比如stl或者fbd,這些并不是華而不實的炫技,而是一方面能加深對plc的理解,第二能方便快速實現(xiàn)某些功能,第三能夠很好的與高級文本語言相輔相成互相促進。
4.學習方法上,如果能找到一個肯用實際項目帶你的師傅是最好的,因為市面上關(guān)于plc的教材基本上都是只教基本使用,完全沒有涉及實際項目案例的。如果有機會(這個可能性很?。╅喿x一些優(yōu)秀的程序,對自己編程習慣的提高和編程理念的提升都是很有幫助的。如果沒有,那么就需要盡可能從教材中有限的案例比如跑馬燈、紅綠燈、流水線這些實驗性質(zhì)的案例中得到實踐,自己動手接接線、寫程序和調(diào)試,能自力更生把這些功能調(diào)試出來,再結(jié)合一些傳感器,實現(xiàn)模擬量輸入輸出的功能,基本上基礎(chǔ)就算打好了。
5.更高一些的使用技巧包括程序的組織和功能的實現(xiàn)兩部分,程序組織方面,要試著理解fb、fc、db這些塊的功能,了解系統(tǒng)ob的含義和用法,嘗試著把程序按照塊來組織,通過調(diào)用減少重復工作,提高復用性,使程序更清晰可讀,這是提高編程水平,組織大型程序的基礎(chǔ)。功能實現(xiàn)方面,學習和了解一些常用的編程模式很有必要,比如順序轉(zhuǎn)換的編程結(jié)構(gòu),pid調(diào)節(jié)、步進電機控制等一些功能的原理、實現(xiàn)方法以及系統(tǒng)內(nèi)置的工藝模塊的用法,有可能的話嘗試自己不用系統(tǒng)塊寫一個pid調(diào)節(jié)或者運動控制的功能,這些都是從熟手到高手的分水嶺。我認識的很多工程師,都卡在這個關(guān)節(jié)到了技術(shù)瓶頸。這個瓶頸的形成有很多原因,平時項目用不到太多高級功能是一部分原因,但我個人認為主要還在于單純從plc角度學習的話,到一定程度上技術(shù)天花板的形成主要是看法和理念的限制,既然說到了plc的學習,那么對這一個分水嶺的突破也談一下理解和看法。
6.越過分水嶺。如果說plc入門一端的基礎(chǔ)是繼電器組成的硬件回路,那么其通往高手之路的另外一端則與軟件工程息息相關(guān)。雖然plc是從繼電器回路抽象出來的,但隨著抽象完成,他也就成了一個軟件的工程,而工程師們所做的plc編程,本質(zhì)上也就是軟件設(shè)計的一種,從根本上,依然離不開軟件工程的指導。diangon.com只是從事plc程序設(shè)計的大部分是工程師,并不具備專業(yè)的軟件工程訓練,因此無法從認知上的到提高。fc、fb、db這些塊要實現(xiàn)的,也是軟件工程中非常重要的邏輯和數(shù)據(jù)分離,模型與實例獨立的思想,而被封裝起來的工藝塊,很多也已經(jīng)是基于面向?qū)ο蟮乃伎挤绞骄帉懗鰜淼?。因此,掌握軟件工程的基本思路和方法,如果有可能,去學習一門高級語言,而不是糾纏在各種組態(tài)軟件、觸摸屏的軟件使用和所謂的腳本編寫上。這些軟件是面向工程師設(shè)計的,但其對于個人認識和水平的提高意義及其有限。因此,掌握一門高級語言才是根本。我個人傾向于python,因為人生苦短,需要python這樣高效率的語言,但是從上手難易程度和見效快的方面,還是推薦學習c#入手。
7.其他補充的技術(shù)和知識。除了軟件工程,如果真的要想成為plc高手,我想再沒有比自己設(shè)計一款plc更有挑戰(zhàn)性的了。這包括:集成電路的設(shè)計和嵌入式系統(tǒng)軟件設(shè)計,需要電子電路的基礎(chǔ)和電路板設(shè)計的能力,需要編寫一套可運行的嵌入式系統(tǒng),同時需要一個pc端的編譯器,把梯形圖轉(zhuǎn)換成plc端嵌入式處理器可以理解的語言。這里面涉及到的學科和內(nèi)容,我想都是一個自動化工程師在技術(shù)方面最全面的體現(xiàn),能夠做到這一步,我想就可以稱得上是plc專家了。