1、編程需要堅強的毅力和足夠的耐心
人(ren)各有所長(chang)(chang)。有些(xie)人(ren)把(ba)編(bian)程看(kan)作(zuo)(zuo)一項冗長(chang)(chang)而(er)枯(ku)(ku)燥(zao)的(de)(de)(de)工(gong)作(zuo)(zuo);有些(xie)人(ren)把(ba)編(bian)程看(kan)作(zuo)(zuo)一項趣味(wei)的(de)(de)(de)智力(li)游戲。如果(guo)你是(shi)前者,強烈建議你遠離這(zhe)份工(gong)作(zuo)(zuo)。畢竟編(bian)程工(gong)作(zuo)(zuo)是(shi)對(dui)(dui)人(ren)的(de)(de)(de)毅力(li)和耐(nai)心的(de)(de)(de)挑戰。我(wo)(wo)(wo)(wo)所在實(shi)驗室中,很多學(xue)(xue)生看(kan)到我(wo)(wo)(wo)(wo)編(bian)程序就會驚(jing)訝于(yu)我(wo)(wo)(wo)(wo)面對(dui)(dui)這(zhe)一堆(dui)堆(dui)符(fu)(fu)號所表現出的(de)(de)(de)專(zhuan)注。其實(shi),這(zhe)是(shi)興趣使然。興趣使我(wo)(wo)(wo)(wo)具(ju)備了(le)足(zu)夠的(de)(de)(de)毅力(li)和耐(nai)心。經過無數次(ci)失敗(bai)后,當看(kan)到一個個符(fu)(fu)號按(an)(an)我(wo)(wo)(wo)(wo)的(de)(de)(de)思路整(zheng)齊的(de)(de)(de)排列,PLC按(an)(an)我(wo)(wo)(wo)(wo)的(de)(de)(de)要(yao)求有條不紊的(de)(de)(de)運行時,興趣得到了(le)滿足(zu),如同打通了(le)一個游戲的(de)(de)(de)關口(kou)。所以,我(wo)(wo)(wo)(wo)告訴這(zhe)些(xie)學(xue)(xue)生:你們(men)(men)看(kan)到的(de)(de)(de)是(shi)一堆(dui)枯(ku)(ku)燥(zao)怪異的(de)(de)(de)符(fu)(fu)號,我(wo)(wo)(wo)(wo)看(kan)到的(de)(de)(de)卻(que)是(shi)一群熱情奔放的(de)(de)(de)舞(wu)者,而(er)我(wo)(wo)(wo)(wo)則是(shi)她們(men)(men)的(de)(de)(de)導(dao)演。
2、編程(cheng)需要敢于實踐的信(xin)心(xin)
我(wo)曾經教過(guo)一(yi)個學生學AutoCAD,我(wo)對她(ta)(ta)的(de)(de)要(yao)求(qiu)就是實踐。我(wo)告訴她(ta)(ta):你隨(sui)便怎么(me)操作,大不了一(yi)張(zhang)圖(tu)重畫;壞的(de)(de)結果是系統崩潰,沒關系,系統重做(zuo)(zuo),再來;只要(yao)電腦(nao)沒被砸(za)了,怎么(me)都行(xing)。兩年后,我(wo)再看到她(ta)(ta)做(zuo)(zuo)的(de)(de)CAD圖(tu)紙,也自嘆不如。
同樣道理,只有不斷地在PLC上運行這些指令,觀察運行的結果,才能弄清PLC指令的作用。很多初學者對PLC一臉的迷茫,往往是出于一種畏懼,擔心損壞設備。而這些畏懼是沒有任何道理的。仔細的閱讀手冊是非常重要的,但是僅靠讀書是成不了一個工程師的。更何況手冊上的內容并非面面俱到。我在接觸到那些不熟悉的指令時,喜歡單獨編一個小程序,讓PLC運行。然后逐個修改條件,觀察運行的結果(MicroWin為用戶提供了非常好的監控手段),反過來再重新理解手冊的描述,這樣就可以非常直觀的理解這些指令的作用和使用方法。不必擔心自己寫的程序會有什么問題,會影響PLC的正常工作。程序有沒有問題,只有讓PLC運行了才能發現。而發現問題并解決問題就是對自己能力的提高。撇開硬件操作不談,單就軟件來說,我還真沒有遇到過由于軟件問題而損壞PLC的事。在這里不必擔心繼電器電路接錯線可能造成的后果。所以,大膽的實踐是PLC編(bian)程(cheng)的必由之路。
當然,大膽實踐并不(bu)是(shi)野蠻操作,而是(shi)必(bi)須遵循必(bi)要的(de)規(gui)范。還有一個要注(zhu)意的(de),在程(cheng)序未(wei)經(jing)可靠(kao)性證實之(zhi)前,千萬不(bu)要掛接負載,以免造成不(bu)必(bi)要的(de)損失(shi)。數字量的(de)輸出有LED顯示;而模擬量處理可以采用一些硬件或軟件模擬手段來解決。
3、編程需要有縝密的(de)邏輯思(si)維
編程(cheng)(cheng)(cheng)本(ben)身就(jiu)是(shi)(shi)一(yi)種邏(luo)(luo)輯(ji)思維(wei)過(guo)程(cheng)(cheng)(cheng)。在(zai)高 級(ji)語言中,使用(yong)多的(de)(de)(de)是(shi)(shi)ifthenelse、select這(zhe)(zhe)些(xie)條(tiao)件(jian)(jian)判別語句(ju),這(zhe)(zhe)就(jiu)是(shi)(shi)邏(luo)(luo)輯(ji)中的(de)(de)(de)因(yin)果(guo)關(guan)系(xi)(xi)。PLC程(cheng)(cheng)(cheng)序就(jiu)是(shi)(shi)由這(zhe)(zhe)些(xie)因(yin)果(guo)關(guan)系(xi)(xi)組成的(de)(de)(de):判別條(tiao)件(jian)(jian)是(shi)(shi)否成立,進(jin)而(er)決(jue)定執行(xing)相(xiang)應的(de)(de)(de)指令。初的(de)(de)(de)PLC是(shi)(shi)用(yong)來(lai)替代繼(ji)電(dian)器(qi)邏(luo)(luo)輯(ji)電(dian)路的(de)(de)(de),所以(yi)(yi)繼(ji)承了繼(ji)電(dian)器(qi)電(dian)路以(yi)(yi)觸(chu)(chu)點作為觸(chu)(chu)發條(tiao)件(jian)(jian)的(de)(de)(de)描述方式。在(zai)PLC中,以(yi)(yi)虛擬觸(chu)(chu)點代替了繼(ji)電(dian)器(qi)的(de)(de)(de)金屬觸(chu)(chu)點,而(er)繼(ji)電(dian)器(qi)電(dian)路所表(biao)達的(de)(de)(de)邏(luo)(luo)輯(ji)關(guan)系(xi)(xi)還是(shi)(shi)被完整的(de)(de)(de)保留(liu)下來(lai)。即使引(yin)入了繼(ji)電(dian)器(qi)電(dian)路難(nan)以(yi)(yi)勝任的(de)(de)(de)數(shu)值處理過(guo)程(cheng)(cheng)(cheng),PLC從根本(ben)上還是(shi)(shi)在(zai)執行(xing)一(yi)個(ge)個(ge)因(yin)果(guo)關(guan)系(xi)(xi)。所以(yi)(yi),理順對象的(de)(de)(de)各(ge)個(ge)事件(jian)(jian)之間的(de)(de)(de)邏(luo)(luo)輯(ji)關(guan)系(xi)(xi),是(shi)(shi)編程(cheng)(cheng)(cheng)之前(qian)必(bi)須精(jing)心(xin)做好(hao)的(de)(de)(de)準備(bei)工作。我在(zai)接到(dao)一(yi)項任務后(hou),件(jian)(jian)事就(jiu)是(shi)(shi)整理出一(yi)份(fen)邏(luo)(luo)輯(ji)關(guan)系(xi)(xi)圖,與用(yong)戶反復商討,取得用(yong)戶的(de)(de)(de)認(ren)可,然(ran)后(hou)才真正(zheng)進(jin)入程(cheng)(cheng)(cheng)序的(de)(de)(de)編寫過(guo)程(cheng)(cheng)(cheng)。
復制微信(xin)號碼添加微信(xin)