1、編程需要堅強的毅力和足夠的耐心

人各有所長。有些人把編程看作一項冗長而枯燥的工作;有些人把編程看作一項趣味的智力遊戲。如果你是前者,強烈建議你遠離這份工作。畢竟編程工作是對人的毅力和耐心的挑戰。我所在實驗室中,很多學生看到我編程序就會驚訝於我面對這一堆堆符號所表現出的專註。其實,這是興趣使然。興趣使我具備了足夠的毅力和耐心。經過無數次失敗後,當看到一個個符號按我的思路整齊的排列,PLC按我的要求有條不紊的運行時,興趣得到了極大的滿足,如同打通了一個遊戲的關口。所以,我告訴這些學生:你們看到的是一堆枯燥怪異的符號,我看到的卻是一群熱情奔放的舞者,而我則是她們的導演。

2、編程需要敢於實踐的信心

只有不斷地在PLC上運行這些指令,觀察運行的結果,才能弄清PLC指令的作用

很多初學者對PLC一臉的迷茫,往往是出於一種畏懼,擔心損壞設備。而這些畏懼是沒有任何道理的。仔細的閱讀手冊是非常重要的,但是僅靠讀書是成不了一個工程師的。更何況手冊上的內容並非面面俱到。我在接觸到那些不熟悉的指令時,喜歡單獨編一個小程序,讓PLC運行。然後逐個修改條件,觀察運行的結果(MicroWin為用戶提供了非常好的監控手段),反過來再重新理解手冊的描述,這樣就可以非常直觀的理解這些指令的作用和使用方法。不必擔心自己寫的程序會有什麼問題,會影響PLC的正常工作。程序有沒有問題,只有讓PLC運行了才能發現。而發現問題並解決問題就是對自己能力的提高。撇開硬體操作不談,單就軟體來說,我還真沒有遇到過由於軟體問題而損壞PLC的事。在這裡不必擔心繼電器電路接錯線可能造成的後果。所以,大膽的實踐是PLC編程的必由之路。

當然,大膽實踐並不是野蠻操作,而是必須遵循必要的規範。還有一個要注意的,在程序未經可靠性證實之前,千萬不要掛接負載,以免造成不必要的損失。數字量的輸出有LED顯示;而模擬量處理可以採用一些硬體或軟體模擬手段來解決。

3、編程需要有縝密的邏輯思維

編程本身就是一種邏輯思維過程。在高級語言中,使用最多的是if then else、select這些條件判別語句,這就是邏輯中的因果關係。PLC程序就是由這些因果關係組成的:判別條件是否成立,進而決定執行相應的指令。最初的PLC是用來替代繼電器邏輯電路的,所以繼承了繼電器電路以觸點作為觸發條件的描述方式。在PLC中,以虛擬觸點代替了繼電器的金屬觸點,而繼電器電路所表達的邏輯關係還是被完整的保留下來。即使引入了繼電器電路難以勝任的數值處理過程,PLC從根本上還是在執行一個個因果關係。所以,理順對象的各個事件之間的邏輯關係,是編程之前必須精心做好的準備工作。我在接到一項任務後,第一件事就是整理出一份邏輯關係圖,與用戶反覆商討,取得用戶的認可,然後才真正進入程序的編寫過程。

4、不可或缺的相關知識

PLC的程序是直接作用於對象的具體工藝過程,那麼對對象具體工藝過程的理解是非常重要的的。我在與用戶的交流過程中,會用我所掌握的Unit Operation的知識分析用戶的工藝過程,協助用戶整理過程式控制制中的各個邏輯關係,甚至包括各種儀錶、硬體的配置。這得益於我原本所學的專業。當然,不能要求所有搞PLC程序的工程師都有我這樣的經歷。但是有兩門知識卻是不可或缺的:一是過程儀錶的硬體知識,包括感測器、變送器(二次儀錶)和PLC本身,這是構建控制系統的基礎;二是過程式控制制理論,包括各種控制模型的原理和應用,其中最重要的是二位調節和PID調節模型。PID調節是目前用得最廣泛的過程式控制制手段,且變化多端。學習PID最好的方法就是讀書。幾乎所有講解過程式控制制的書籍都有關於PID的內容,多讀基本相關的書籍對理解PID是很有益處的。我發現不少網友在進入PLC領域時,缺乏這些相關知識。這並不可怕;可怕的是當事者不能靜下心來彌補知識的缺陷。我們不要怪罪學校沒有教授這些內容,而是要注重自己如何去學習這些知識。工作中遇到的許多問題是學校里沒講過的,這不能成為我們拒絕工作的理由,而應該以積極的態度去應對這些問題。我的體會是,為了解決工作中的問題而學習的知識,比課堂上學的東西更容易記住。

5、養成良好的編程習慣

每個人編程都會有不同的習慣和特點,不能強求一致。但是一些好的習慣還是應該為大多數人所遵循。一是理順邏輯關係、時序關係,編製程序框圖;二是合理分配主程序、子程序和中斷程序;三是合理分配寄存器,編製寄存器符號表。

PLC編程更接近於單片機,或者說PLC就是模塊化的單片機。因此PLC的很多操作都是直接針對寄存器的,如果在程序中出現不合理的寄存器地址重疊,一定會出現不可預想的後果。編製寄存器符號表不僅可以避免上述問題(MicroWin會有問題提示),而且可以使程序具備更好的可讀性。這和VB中定義變數有異曲同工之處。

VB編程中關注的是事件,不強調主程序和子程序的觀念,因為VB主程序的工作是由PC的操作系統完成的。PLC則不然。PLC程序是以主程序為主幹的,CPU不斷的循環執行主程序,只有觸發條件成立時才會調用子程序或中斷程序。即子程序和中斷程序所執行的任務不是全時需要的。如果把這些任務都放在主程序中會不斷增加主程序的工作量,降低程序的效率。這點和單片機的編程思路是一致的。子程序的使用可以使整個程序的邏輯更清晰。而且子程序可以分開編寫、調試,最後「安裝」到主程序上。這樣你可以一個一個解決問題。

PLC編程,無論是LAD,抑或STL,都不如VB那麼直觀、有趣,更不如CAD那麼形象。但比單片機的彙編語言的可視性強多了。對於初學者,LAD(梯形圖)的編程相對直觀,更容易上手。

最後,PLC提供了豐富的指令、模塊,比單片機方便了很多。但是初學者編程時應盡量先使用簡單的指令達到目的。儘管看上去有點土,卻不失為一個入門的好途徑,且對你理解那些較為複雜的指令會有幫助。具備了一定經驗後,應該考慮掌握複雜指令的應用,以及程序的優化。


最近看越來越多的人來知乎問如何快速的學習PLC了,唉。殊不知這是一個看經驗的工作,編的越多,懂得越多。問題碰到的越多,解決問題的能力就越強。剛開始學習編程的時候,我建議是買一套小型的PLC並且找一個能夠解答你疑問的老師,讓他教你最基本的,然後給你出題,你碰到什麼問題就找他幫你解答。當然我說的小型PLC最好是符合IEC標準的編程語言,這樣學習一個品牌就等於學習了幾個品牌。靠不斷的實踐來快速提高,除此之外想不出有什麼能快速提高的,那些培訓班一般培訓的都是基本PLC,還有一個老師對很多學生,我不太推薦。我覺得要是自己沉下心學習,肯定比培訓班的學得快。


1. 軟體怎麼用,基礎的如怎麼新建工程吧啦吧啦

2. 遇到不會的多看help文檔

3. 實現簡單的動作,控制軸運動巴拉巴拉

4. 找一份比較標準的模板程序,照著學

OK,差不多就會了,也沒啥複雜的,越用越熟罷了


TB買最便宜的 國產的也行,然後買按鈕指示燈繼電器,自己搭電路,自己寫程序


我覺得有三樣,一個是搞定邏輯,這個要多寫,還有就是plc開發軟體應用熟練度,這個多練多看教程,屬於熟練工。最後就是你自己把硬體連接起來,能把輸入輸出全都連對


看你要學到什麼程度了,如果只是簡單的輸入輸出,只要你有電路基礎,那真是沒有困難。如果要運動控制和通信,那就有點難。。。。。只有靠項目來練手


實踐出真知!重要的還是要去實踐。


快速地學習、要多快、2-3個月速成?這麼說吧、一開始先別摸程序、先把硬體都搞清楚、正常的電機、星形/三角形線怎麼接、然後、接觸器、繼電器、接近開關、光電開關、行程開關、溫度感測器巴拉巴拉一堆常用的看看怎麼接、在plc裡面是什麼量、開關量還是模擬量、這個要區分清楚(說白了就是要看電路圖)、硬體掌握差不多之後、在開始摸plc、當然你自己要搞清楚你用的什麼品牌plc、接線方法有差異、對應的硬體用NPN還是PNP的、再想想西門子接NPN的硬體怎麼接、三菱的怎麼接、自己多想想、再然後、一開始別看具體的程序、別糾結於為什麼用sr還是rs觸發器這一類問題、、就看邏輯結構、這一步實現什麼功能、下一步實現什麼功能、一步一步怎麼來的、梯形圖、SCL語言都要看、你可以先看梯形圖、簡單易懂、看多了、在看書看具體程序、不需要扒著書看每一個指令、就看程序、程序裡面看到的指令你就再返回去翻書、就這樣保持2-3個月、你已經基本入門了。再之後就是觸摸屏、上位機、慢慢進階、這行吃經驗、但是入門門檻很低,樓主要入行之前考慮清楚。


跟著老員工,先硬體後軟體,軟體寫不來就多看別人怎麼寫的,久而久之就會寫了。


推薦閱讀:
相关文章