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