技術分享,一位電氣人的PLC編程入門心得
從一頭霧水到熟練掌握,是一個漫長的過場,不過好在一般的PLC編程人員都會有一定(ding)的(de)基礎知識,學習起來會少走彎路,并(bing)且減少故(gu)障出(chu)現幾(ji)率(lv)。不過很多實(shi)際(ji)工作(zuo)中遇(yu)到的(de)情(qing)況是沒有在(zai)課本(ben)上學習過的(de),那么在(zai)此,先粗略(lve)的(de)總結一下(xia)我的(de)學習之路,供(gong)讀者們參考一下(xia)吧(ba)。
1、編(bian)程需要堅(jian)強的(de)毅力足夠的(de)耐(nai)心
人(ren)各有所長,有些人(ren)把編(bian)程看(kan)作(zuo)(zuo)一(yi)項(xiang)冗(rong)長而枯(ku)燥的(de)工(gong)(gong)作(zuo)(zuo);有些人(ren)把編(bian)程看(kan)作(zuo)(zuo)一(yi)項(xiang)趣(qu)味的(de)智力游戲。如果你(ni)是前者(zhe),強烈建(jian)議你(ni)遠(yuan)離(li)這(zhe)(zhe)份工(gong)(gong)作(zuo)(zuo)。畢竟編(bian)程工(gong)(gong)作(zuo)(zuo)是對(dui)人(ren)的(de)毅(yi)力和耐心的(de)挑戰。我(wo)所在實驗室中(zhong),很多(duo)學生(sheng)看(kan)到我(wo)編(bian)程序(xu)就(jiu)會驚訝于我(wo)面對(dui)這(zhe)(zhe)一(yi)堆(dui)堆(dui)符號所表現出(chu)的(de)專注。
其實,這是興(xing)趣使(shi)然(ran)。興(xing)趣使(shi)我(wo)(wo)具(ju)備了足夠的(de)毅力和(he)耐心。經過(guo)無數(shu)次失敗(bai)后,當看(kan)到一(yi)個個符號按(an)我(wo)(wo)的(de)思(si)路整齊(qi)的(de)排列,PLC按(an)我(wo)(wo)的(de)要求有(you)條不紊的(de)運行時,興(xing)趣得到了極大的(de)滿足,如(ru)同打通了一(yi)個游(you)戲的(de)關口。所以(yi),我(wo)(wo)告訴這些(xie)學生:你(ni)們(men)看(kan)到的(de)是一(yi)堆枯燥(zao)怪異的(de)符號,我(wo)(wo)看(kan)到的(de)卻是一(yi)群熱情(qing)奔放的(de)舞者,而我(wo)(wo)則是她們(men)的(de)導演(yan)。
2、編(bian)程需要敢于實踐的信心(xin)
只有(you)不斷地在PLC上(shang)運行這些指令,觀察運行的(de)(de)(de)結果,才能弄清PLC指令的(de)(de)(de)作(zuo)用(yong)。很多初學者對PLC一臉的(de)(de)(de)迷茫,往(wang)往(wang)是出于(yu)一種畏(wei)懼(ju),擔心損壞(huai)設(she)備。而這些畏(wei)懼(ju)是沒有(you)任何道理的(de)(de)(de)。仔細的(de)(de)(de)閱(yue)讀手(shou)冊(ce)是非常重要(yao)的(de)(de)(de),但是僅靠讀書是成(cheng)不了一個工程師(shi)的(de)(de)(de)。更(geng)何況手(shou)冊(ce)上(shang)的(de)(de)(de)內容并非面(mian)面(mian)俱(ju)到。
我在(zai)接(jie)觸到那(nei)些不熟悉的(de)(de)(de)(de)指(zhi)令時,喜歡單獨編一個小程序(xu),讓PLC運(yun)行。然(ran)后逐個修改條件,觀(guan)察運(yun)行的(de)(de)(de)(de)結果(MicroWin為用(yong)戶提供(gong)了(le)非常好的(de)(de)(de)(de)監(jian)控手段),反過來再重新理(li)解(jie)手冊的(de)(de)(de)(de)描(miao)述,這樣就可(ke)以非常直觀(guan)的(de)(de)(de)(de)理(li)解(jie)這些指(zhi)令的(de)(de)(de)(de)作用(yong)和使用(yong)方法。
不(bu)必擔(dan)心(xin)(xin)自己(ji)寫的(de)(de)程(cheng)序會有(you)(you)什么問(wen)(wen)題(ti),會影(ying)響PLC的(de)(de)正常工作。程(cheng)序有(you)(you)沒有(you)(you)問(wen)(wen)題(ti),只有(you)(you)讓PLC運(yun)行(xing)了才能(neng)發現。而發現問(wen)(wen)題(ti)并解決問(wen)(wen)題(ti)就是對(dui)自己(ji)能(neng)力的(de)(de)提高。撇開(kai)硬件(jian)(jian)操作不(bu)談(tan),單就軟件(jian)(jian)來說,我還(huan)真沒有(you)(you)遇(yu)到過由于軟件(jian)(jian)問(wen)(wen)題(ti)而損(sun)壞(huai)PLC的(de)(de)事。 在這里不(bu)必擔(dan)心(xin)(xin)繼電器電路接(jie)錯線(xian)可能(neng)造(zao)成的(de)(de)后果(guo)。所以,大膽的(de)(de)實(shi)踐是PLC編(bian)程(cheng)的(de)(de)必由之路。
當然,大膽實踐并不是(shi)野蠻操(cao)作,而是(shi)必須遵循必要(yao)的(de)(de)規范。還(huan)有(you)一個要(yao)注(zhu)意的(de)(de),在(zai)程序未經可靠性(xing)證實之(zhi)前(qian),千萬(wan)不要(yao)掛(gua)接負載,以免造成不必要(yao)的(de)(de)損失。數(shu)字量(liang)的(de)(de)輸出有(you)LED顯示;而模擬量(liang)處理(li)可以采用(yong)一些硬件或軟件模擬手段來解決。
3、編程(cheng)需要有(you)縝密的邏輯思維
編(bian)程本身(shen)就是一種邏輯(ji)思維(wei)過程。在(zai)高級語(yu)言中(zhong),使用最(zui)多的(de)是ifthenelse、select這些條件判別(bie)語(yu)句,這就是邏輯(ji)中(zhong)的(de)因果(guo)關系。
PLC程序(xu)就是由(you)這些因果關系組(zu)成的(de)(de):判別條(tiao)件是否成立(li),進而(er)決定執行(xing)相應的(de)(de)指令。最(zui)初的(de)(de)PLC是用來替(ti)代(dai)繼(ji)電(dian)器(qi)邏(luo)輯電(dian)路的(de)(de),所以(yi)(yi)繼(ji)承了(le)繼(ji)電(dian)器(qi)電(dian)路以(yi)(yi)觸(chu)(chu)(chu)點作為觸(chu)(chu)(chu)發條(tiao)件的(de)(de)描述方式。 在PLC中,以(yi)(yi)虛擬觸(chu)(chu)(chu)點代(dai)替(ti)了(le)繼(ji)電(dian)器(qi)的(de)(de)金屬觸(chu)(chu)(chu)點,而(er)繼(ji)電(dian)器(qi)電(dian)路所表達的(de)(de)邏(luo)輯關系還是被完整的(de)(de)保留下來。即使引入(ru)了(le)繼(ji)電(dian)器(qi)電(dian)路難以(yi)(yi)勝任的(de)(de)數值處理過(guo)程,PLC從根本(ben)上還是在執行(xing)一個(ge)個(ge)因果關系。
所以,理順對象的(de)各個事件(jian)之間的(de)邏(luo)輯關系,是(shi)編程之前必須精心做好的(de)準備工作。我在接(jie)到一(yi)項任務(wu)后,第一(yi)件(jian)事就(jiu)是(shi)整理出一(yi)份(fen)邏(luo)輯關系圖,與用戶反復(fu)商討,取得用戶的(de)認可(ke),然后才真正進(jin)入程序的(de)編寫過程。
4、不可或缺的相(xiang)關知識
PLC的(de)程(cheng)序(xu)是直接(jie)作用(yong)于對(dui)象的(de)具(ju)體工藝(yi)過(guo)(guo)(guo)程(cheng),那么對(dui)對(dui)象具(ju)體工藝(yi)過(guo)(guo)(guo)程(cheng)的(de)理(li)(li)解是非(fei)常(chang)重(zhong)要的(de)的(de)。我在與用(yong)戶的(de)交流過(guo)(guo)(guo)程(cheng)中(zhong),會(hui)用(yong)我所掌握的(de)UnitOperaTIon的(de)知識(shi)分(fen)析用(yong)戶的(de)工藝(yi)過(guo)(guo)(guo)程(cheng),協助(zhu)用(yong)戶整理(li)(li)過(guo)(guo)(guo)程(cheng)控制中(zhong)的(de)各個(ge)邏輯關系,甚(shen)至包括各種儀表、硬(ying)件的(de)配(pei)置。
這得益于我(wo)原本(ben)所學(xue)的(de)專業(ye)。當然,不(bu)能要(yao)求所有(you)搞PLC程(cheng)(cheng)序的(de)工程(cheng)(cheng)師都有(you)我(wo)這樣的(de)經歷(li)。但(dan)是(shi)有(you)兩門知(zhi)識卻是(shi)不(bu)可或(huo)缺的(de):一是(shi)過程(cheng)(cheng)儀表的(de)硬件知(zhi)識,包括傳感(gan)器、變送器(二次(ci)儀表)和PLC本(ben)身,這是(shi)構建控(kong)制(zhi)(zhi)(zhi)系統(tong)的(de)基(ji)礎;二是(shi)過程(cheng)(cheng)控(kong)制(zhi)(zhi)(zhi)理(li)論,包括各種控(kong)制(zhi)(zhi)(zhi)模型的(de)原理(li)和應用,其中最重要(yao)的(de)是(shi)二位調節和PID調節模型。
PID調節(jie)是(shi)目(mu)前用得最廣泛的(de)(de)過程(cheng)控制(zhi)手段,且變化多端。學習(xi)PID最好的(de)(de)方法就(jiu)是(shi)讀(du)書(shu)。幾乎所(suo)有(you)講(jiang)解(jie)(jie)過程(cheng)控制(zhi)的(de)(de)書(shu)籍都有(you)關(guan)于PID的(de)(de)內容,多讀(du)基本相關(guan)的(de)(de)書(shu)籍對理解(jie)(jie)PID是(shi)很(hen)有(you)益處(chu)的(de)(de)。我發現不(bu)少網友(you)在進入(ru)PLC領域時,缺乏這些相關(guan)知(zhi)識。這并(bing)不(bu)可怕(pa);可怕(pa)的(de)(de)是(shi)當事(shi)者(zhe)不(bu)能(neng)靜下心(xin)來彌(mi)補知(zhi)識的(de)(de)缺陷。
我(wo)們不(bu)要(yao)怪罪學校沒有教授這些(xie)內(nei)容,而是要(yao)注重自己如(ru)何去學習這些(xie)知(zhi)識(shi)(shi)。工作(zuo)中遇到的(de)(de)(de)許多問(wen)題是學校里沒講過的(de)(de)(de),這不(bu)能成為我(wo)們拒(ju)絕工作(zuo)的(de)(de)(de)理由,而應該以積極的(de)(de)(de)態(tai)度去應對這些(xie)問(wen)題。我(wo)的(de)(de)(de)體(ti)會是,為了解決工作(zuo)中的(de)(de)(de)問(wen)題而學習的(de)(de)(de)知(zhi)識(shi)(shi),比課堂上學的(de)(de)(de)東西(xi)更容易記住。
5、養(yang)成良好(hao)的編(bian)程習慣
每個人編(bian)程(cheng)(cheng)都(dou)會有不同的習慣和特點,不能強求一致(zhi)。但是(shi)(shi)一些(xie)好的習慣還是(shi)(shi)應該為大多數人所遵(zun)循。一是(shi)(shi)理順(shun)邏輯(ji)關系(xi)、時序關系(xi),編(bian)制程(cheng)(cheng)序框圖;二是(shi)(shi)合(he)理分配(pei)主程(cheng)(cheng)序、子程(cheng)(cheng)序和中斷(duan)程(cheng)(cheng)序;三是(shi)(shi)合(he)理分配(pei)寄(ji)存(cun)器(qi),編(bian)制寄(ji)存(cun)器(qi)符號(hao)表(biao)。
PLC編程(cheng)更(geng)接近于單(dan)片機(ji),或(huo)者(zhe)說PLC就是模(mo)塊化(hua)的(de)(de)單(dan)片機(ji)。因此PLC的(de)(de)很(hen)多操作都是直接針對寄(ji)存(cun)(cun)(cun)器的(de)(de),如果在程(cheng)序(xu)中出現不合理的(de)(de)寄(ji)存(cun)(cun)(cun)器地址重(zhong)疊,一(yi)定(ding)會出現不可(ke)預想的(de)(de)后(hou)果。編制寄(ji)存(cun)(cun)(cun)器符號表不僅可(ke)以(yi)避免(mian)上述問(wen)題(ti)(MicroWin會有問(wen)題(ti)提示(shi)),而且可(ke)以(yi)使程(cheng)序(xu)具備更(geng)好的(de)(de)可(ke)讀(du)性。這和VB中定(ding)義變量(liang)有異曲(qu)同工之處。
VB編(bian)(bian)(bian)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)中(zhong)(zhong)(zhong)關注的(de)(de)是(shi)事件,不(bu)(bu)(bu)強調主(zhu)(zhu)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)和子(zi)(zi)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)觀念(nian),因為(wei)VB主(zhu)(zhu)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)工作(zuo)(zuo)是(shi)由PC的(de)(de)操作(zuo)(zuo)系統完成(cheng)(cheng)的(de)(de)。PLC則不(bu)(bu)(bu)然。 PLC程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)是(shi)以(yi)主(zhu)(zhu)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)為(wei)主(zhu)(zhu)干(gan)的(de)(de),CPU不(bu)(bu)(bu)斷(duan)(duan)的(de)(de)循環執行主(zhu)(zhu)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu),只(zhi)有觸發(fa)條件成(cheng)(cheng)立(li)時才會(hui)(hui)調用子(zi)(zi)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)或(huo)中(zhong)(zhong)(zhong)斷(duan)(duan)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)。即(ji)子(zi)(zi)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)和中(zhong)(zhong)(zhong)斷(duan)(duan)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)所執行的(de)(de)任務不(bu)(bu)(bu)是(shi)全時需要(yao)的(de)(de)。 如(ru)果把這些任務都(dou)放(fang)在主(zhu)(zhu)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)中(zhong)(zhong)(zhong)會(hui)(hui)無(wu)端增(zeng)加主(zhu)(zhu)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)工作(zuo)(zuo)量,降低(di)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)效率。這點(dian)和單片機的(de)(de)編(bian)(bian)(bian)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)思路是(shi)一(yi)致的(de)(de)。子(zi)(zi)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)使用可以(yi)使整個程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)的(de)(de)邏輯(ji)更(geng)清晰。而且子(zi)(zi)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)可以(yi)分(fen)開編(bian)(bian)(bian)寫(xie)、調試,最后“安裝”到主(zhu)(zhu)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)序(xu)(xu)(xu)(xu)上(shang)。這樣你可以(yi)一(yi)個一(yi)個解決問(wen)題。 PLC編(bian)(bian)(bian)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng),無(wu)論是(shi)LAD,抑或(huo)STL,都(dou)不(bu)(bu)(bu)如(ru)VB那么直觀、有趣,更(geng)不(bu)(bu)(bu)如(ru)CAD那么形象。但比單片機的(de)(de)匯編(bian)(bian)(bian)語言的(de)(de)可視性強多了。對于初學者,LAD(梯形圖)的(de)(de)編(bian)(bian)(bian)程(cheng)(cheng)(cheng)(cheng)(cheng)(cheng)相對直觀,更(geng)容易上(shang)手。
最后(hou),PLC提供了豐富(fu)的(de)指令、模(mo)塊,比單片機方便了很多(duo)。但是初學者編程(cheng)時應(ying)盡量先使用簡單的(de)指令達到目(mu)的(de)。盡管看(kan)上去(qu)有點(dian)土(tu),卻不(bu)失為一個(ge)入門的(de)好(hao)途徑,且對你理解那些較為復(fu)雜(za)的(de)指令會有幫助。具備(bei)了一定經驗后(hou),應(ying)該考慮掌握復(fu)雜(za)指令的(de)應(ying)用,以及程(cheng)序(xu)的(de)優化。
不知道以上的分(fen)享(xiang)是否對您(nin)提(ti)供了幫(bang)助?得(de)潤電氣(qi)的PLC編程人(ren)員期(qi)待您(nin)的探討與(yu)來訪。
掃一掃二維碼(ma)了解更多詳情:
得(de)潤電氣訂閱(yue)號
得(de)潤電氣頭條號
更多詳情請咨詢安徽得潤電氣技術有限公司
“推薦閱讀”
- 在設計施耐德Blokset低壓柜時需要注意哪些細節?
- 從安倍遇害談開關柜配電室安全
- 2022年ABB授權柜MNS2.0低壓開關柜有哪些改變
- 收藏了!UniSafe中壓授權柜基礎知識詳解
- UniSafe中壓授權柜|助力污水處理廠建設高質量發展
- 年末將至|得潤電氣一批批開關柜發往項目現場
- 給您不一樣的ABB高壓中置式開關柜的新體驗
- 10kV開關柜KYN28A-12高壓柜的成本核算找誰
- 從35KV及以下的高低壓開關柜 授權柜 誰可以直接供貨
- Schneider低壓授權柜Blokset產品一問一答
【責任編輯】:安徽(hui)得(de)潤電(dian)氣得潤電氣版權所有://bandei.cn轉載請注明出處