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