編寫PLC程序從做Excel表開始_第1頁
編寫PLC程序從做Excel表開始_第2頁
編寫PLC程序從做Excel表開始_第3頁
編寫PLC程序從做Excel表開始_第4頁
編寫PLC程序從做Excel表開始_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、編寫PLC程序從做Excel表開始第一次接觸PLC,是在海天公司給一臺雙色注塑機增加一個轉(zhuǎn)軸功能, 這個功能注塑機電腦上沒有,所以外加了一個PLC,記得當時用的是 三菱FX,這是我接觸的第一個PLC,當時因為供應(yīng)商提供了 PLC、伺 服電機、減速機等一套產(chǎn)品,所以程序也就讓供應(yīng)商寫了。到了倍福之后,由于整個辦事處就我一個人,處于什么都干的狀態(tài), 所以除了銷售工作,也做技術(shù)支持。記得第一個項目是上海的同事寫 的代碼,同事來現(xiàn)場一次,后面的維護我接過來。所幸TwinCAT2這 軟件比較簡單,一來二去自己就上手了。后來慢慢地也給客戶寫一點DEMO,用來給客戶解釋為啥IEC61131-3 是一個簡單的

2、東西,不像想象的那么難,不要一想到ST語言就想到 高級語言,等等諸如此類的問題。寫著寫著,也有了一些心得。在聊聊這些心得之前,先說點題外話。我做過兩件和工作不太相關(guān)的 學習,一次是讀研究生時,一個培訓班來學校推銷ISO內(nèi)審員的培訓, 當時因為好奇去報了名,花了幾百塊錢聽了一堆ISO的知識,記得講 課的是一位老干部。另一次是剛上班時,去報了一個計算機高級程序 員的考試,看了幾個月書,離及格線差了那么一大點(不是一小點)。但這兩個事情,對我的影響比較大,ISO的學習,讓我理解了凡事要 有流程,流程要有標準,標準要有數(shù)據(jù),數(shù)據(jù)要可追溯,這為后來理 解工業(yè)4.0打下了基礎(chǔ),而高級程序員的考試,讓我學到

3、不少IT的 知識,尤其是軟件工程方面的知識,對于構(gòu)建一個大的程序,還是有 幫助的。下面的心得,和這兩件事情,有比較大的關(guān)系,說穿了,就是多做紙 面工作。02在寫代碼之前,我會先建個EXCEL表格,大約有這么幾項(這里我虛 擬了一個立體車庫的項目,因為每天到辦公室都會和立體車庫打交 道):1、10表,輸入輸出的模塊型號,模塊的位置,每個模塊上每個點的 定義,以及外面接的是什么元器件。對于一些電氣CAD軟件,會自動 生成這個表,但我們還是建議用EXCEL做一份,以便存檔。BCDEFG H1JKLMN0變星名地址類型搐塊編號點位bMotorlUpatQbool(*1上提升EL200810bMotor

4、lDo.vnaxGQbool1上下注EL200811bMotor2UpatQbool卜2上提升)EL200812bMotor2Do.vnatQbool(2上下腔)EL200813bMotor3l)pat'Qbool(3上提升)EL200814bMotor3Do.vnatQbool(3上下降)EL200815bMotor4UpatG0bool(4上提升)EL2C0816bMotordDo.vnatbool卜4上下怪)EL2008172、變量表,一部分變量是有地址的,比如需要和上面提到的10表進 行對應(yīng),比如Modbus通訊。Modbus通訊需要定義變量地址,而1()對 應(yīng)的不需要在程序中

5、指定,只要在系統(tǒng)配置中和硬件進行連接。另一 部分變量是沒有地址的,但也不能隨便定義,要有一定的規(guī)則,以便6iC D E F _ G IHI I I J I K I I I M交呈右是否失妾捶電保持初始值一最小值金大值是否在人機界百中iFreemtl<記錄空位位?Y4操作頁面iRequiremtI 妾存,取的位百)N14於作充面iTctdlint總共有車數(shù)£)Y操作頁面iTimeOutlmtf 運動超時報婺)N力機頁面iTime0ul2int卜運動超時18警±_N互祝頁面iTimeOut3mt(運動超M報三)N與視交面iTimeOuUint(運動超時報警N佐稅頁面iTi

6、meOut5mt(運動超琳報婺)N匕視無面iTirneCut6int(覺動貂時報髻“N生稅頁面iTimeOut7mt(運動超才報W)N匕視頁面iTimerOutSettjnaint.活動貂時報警R;Y101020設(shè)置頁面閱讀。3、結(jié)構(gòu)體(Structure),結(jié)構(gòu)體的設(shè)計,可以放在變量表之前,為了提高效率,我們會設(shè)計一些結(jié)構(gòu)體來做數(shù)據(jù)類型,比如一個氣缸,就 可以設(shè)計一個結(jié)構(gòu)體來表述,這個結(jié)構(gòu)體會包含氣缸的方向,磁性開 關(guān)狀態(tài),以及兩個方向的超時報警時間。在使用到氣缸時,就可以用這個結(jié)構(gòu)體類型來直接定義氣缸,而無需去定義每個氣缸設(shè)計的變量。 直回回唱為倒嘲里1奧-rTYPE strRackUpp

7、er:STRUCTbotorUpperBOOL;。電機上升bWotorDown:BOOL;(電機下降 ”)bSonsorUppor:BOOL。上升至 i位 *)bSensorDownBOOL下眸到位力bSensorFaslUpperBOOLQ睡上升減速時bSe ns orF qs1D own:BOOL;(“快速下降減速點與END_STRUCTEND.TrFE6 Data typesL.strRackUppei (STRUCT)翊 頤必要的話,可以設(shè)計枚舉變量,用來表述機器的狀態(tài)。4、POU 名稱(Program Organization Unit 程序組織單元)。POU 有三 種類型:程序(P

8、rogram)、功能塊(Function Block)、函數(shù)(Function)。 在規(guī)劃階段,程序和功能塊的構(gòu)建是很重要的,功能塊會降低很多重 復工作,從而避免一些普遍性的錯誤(當然,錯了也就都錯了),程 序的調(diào)用、狀態(tài)的切換是否清晰可控,則決定了整個項目是否足夠強 壯,并可持久改進及維護。ABCDEFGH1POU名稱類型TASK運行周期說明輸入輸出MainprgTASK110ms主程序praAlarmeraTASK110ms報警程序,處建超時等報 簍prgManualprgTASK1LCms爭動程序.進行車位的移 動處理fbDownfb下車位功能塊,車位的平 移處理察限指令/ 使能/傳感

9、器/到位傳 感器狀態(tài)(移 動中,報 警等)/電 機運動方 向fbUpperfb上車位功能快.車位的升 降處理升降指令/ 使能/速度 轉(zhuǎn)換點/到 位傳感器狀態(tài)(移 初中.報 警等)/電 機運動方5、工藝說明,包括各個工作步驟、步驟的銜接、條件的轉(zhuǎn)換等。這個 步驟,可以在EXCEL中做,也可以用word、PPT,但相比之下,EXCEL 可能是個更好的選擇,因為EXCEL的紙面是沒有限制大小的,而word 和PPT很容易遇到編輯范圍太小的問題。事助 p Its劭 冷自動防 鬣般亙至序合并眉目中8 - %,拈2當然,也可以在紙張上來畫。我個人建議每個項目備一個A4的本子,的方式后 我字挪車位b7 9

10、910111213141516171919202122232425262720293031323334353637383940和EXCEL配合使用。做完這個表格之后,我習慣將變量表直接復制到TwinCAT中,因為在EXCEL中,很多重復工作可以直接選中表格單元進行拖拉復制,比如注釋的“(* ”和“*)”,以及末尾的“;”,都是直接復制單元格的, 而對于一些帶序號的變量,如XO-X7,順序復制即可,這會在大幅度 減少工作量的同時,降低變量編寫出錯機率。 在程序編寫過程中,除了用于for循環(huán)的累加數(shù),以及用來調(diào)試時的 一些標志之外,如果要增加有實際意義的變量名,必須先在EXCEL里 增加,再復制到

11、程序中。這有點強迫癥,但事實證明,這個有用。 接下去就是建立各個POU,對于功能塊,要寫好輸入變量和輸出變量, 而函數(shù)只需要有參數(shù)即可。寫完了每個POU,記得在每個POU的主體 敲個“;“,這樣,即使我們一句代碼也不寫,也是可以編譯通過的。 如果這時候編譯不通過,可以看看是不是哪里有手誤了,因為這時候 能錯的地方都是系統(tǒng)保留字,或者是忘記敲“;",注釋的括號少了之 類。,J fbDown(FB)|i回 fbUpperFB) |“g MAIN (PRG)prglarm (PRG)0000000000000000接下來是不是寫代碼?不是的,是先寫注釋,而且是全面注釋,即在 各個功能塊中,

12、先寫好注釋。在TwinCAT中,一個程序塊只需要一個 “;”,即可編譯通過,我們上面已經(jīng)敲好了“; ",所以不用擔心沒有 代碼會造成程序不能編譯。典 TwinCAT PLC Control - (Untrtied)A - prgMarual (PRG-ST)99 File Edit Project Insert Extras Online Window Help圄國。唱陶為|臥兔|弱| £ |圄制策嘲|0POWW MAIM(PRG| 目 pfg4larm(FRG)prcMcnud(FRG)g PO DajpJReJ100 叫PROGRAM prgManual 0002p/W

13、0003 END VAR1«1 nnnik磁細為自劃主庫均為言理人員手動漫作,園畛有自幼程序p0O3hI ftriC|<A果下層有空,司機可以根據(jù)目則尋找空主俗,因此操作n?對于上層三位 Mr)1 nni nkA撲館珥人員法界的車位,窗該車位下后定否為空晅簿口里下層為空,百枚不修王位畫翼如果下層不空,則移動至位,直到卜岳為空叵力100201(1>tJroor判斷下層是否有空)酶我們回到前面第4點,如果流程圖已經(jīng)畫好,那我們就把流程圖搬到編程環(huán)境中,還是按照從大到小的原則,我們先把步驟編好,具體每 一步里面做什么,可能遠不如步驟之間怎么切換銜接來得重要。所以, 在這個過程中

14、,我們還可以用注釋來替代代碼,但別忘了在各種for.case中加上“;”。最后一步,讓我們在所有注釋的地方,把代碼寫上。然后,編譯一下。如果有人可以把PackML的文檔看一遍,會發(fā)現(xiàn)里面就有關(guān)于狀態(tài)切 換的圖表,如果有興趣,可以去找下PackML的文檔。 Figure 1: Machine State Model for Automatic Mode Operation.如果你用的是TwinCAT或者Codesys的環(huán)境,我建議在寫EXCEL表格 和畫流程圖的時候,順帶把人機界面的草圖也畫了,我覺得集成人機 界面的開發(fā)環(huán)境就是自動化工程師的大救星。人機界面和PLC在同一 個環(huán)境內(nèi),意味著可以隨

15、時看到工程師想看到的內(nèi)容,比如在調(diào)試時, 需要看多個變量,那建在人機界面上會方便很多,不需要在程序中在 線觀察。人機界面和PLC的集成,除了大大提高自動化工程師的幸福感之外, 也會極大激發(fā)自動化工程師的創(chuàng)作欲望。比如有些DEMO,我會將邏輯 動作的條件和輸出狀態(tài)都放在畫面中,這樣可以很清楚看到一個邏輯 動作沒有執(zhí)行的原因,比如某幾個動作有先后,那做個定時器或者多 個定時器,將這些定時器的輸出放在同一個畫面,就可以明察秋毫了。 寫完了程序,機器也動了,我們再來做一張表,就是修改記錄,在這 張表里,我們寫下,某年某月某日,為了什么原因,我們改了哪個程 序,怎么改的,修改后我們怎么測試的,測試的效果

16、如何。而修改的程序,不建議直接在原程序上改,可以建一個新的POU,也 可以在POU里寫一個新的action,在對應(yīng)的調(diào)用處改掉調(diào)用名字即 可。這樣,即使新的程序出了問題,也很容易改回(RollBack)到原 來的程序。而新的代碼中,記得在頭部寫好注釋。03至此,我們回過頭來看看,我們獲得了哪些好處:1、我們有了一個清晰的名字列表,包括變量的、10的、程序的2、我們有了一個清晰的結(jié)構(gòu)3、所有的問題會有據(jù)可查。上面這幾點是針對程序本身的益處,而對于項目和企業(yè)而言,則有更 大的意義:1、通過分解,將代碼部分的工作量比例降低了,這種逐步聚焦的方 式,可以讓工程師把精力放在最關(guān)鍵的地方。2、便于溝通,在

17、代碼之前的這些工作,都可以和其他人共享,比如 10表部分可以和電氣工程師以及電工溝通,程序流程部分可以用來 和工藝工程師溝通。3、便于維護,在移交給其他工程師,或者多人開發(fā)同一項目時會方 便很多。如果沒有注釋,基本上工程師自己都會忘記原來寫的什么。 4、便于更換平臺,當需要更換一個控制器平臺時,會發(fā)現(xiàn),大部分 工作是相通共用的,這會在切換平臺時節(jié)約大量的時間。本文用了一些IEC61131-3的概念,關(guān)于IEC61131-3的書很少,推薦 彭瑜老師和何衍慶老師的那本IEC61131-3編程語言及應(yīng)用基礎(chǔ), 機械工業(yè)出版社出版,這本書我買了應(yīng)該不下三十本,用來送人。記 得在倍福10周年慶典那天,公

18、司邀請了彭瑜老師,恰好慶典在人民 廣場附近舉辦,席間跑步前進到福州路的上海書城,居然買到了那本 IEC61131-3編程語言及應(yīng)用基礎(chǔ),請彭瑜老師簽了個名,留作紀 念。另外推薦林銳博士寫的高質(zhì)量程序設(shè)計指南C+/C語言,這本書 有人不喜歡,覺得這本書水份太多,干貨太少,但讀起來還是比較輕 松的,這本書出到了第三版,目前在網(wǎng)上有很多二手的在銷售,也有 一些電子版的,建議找來讀一讀。后記寫這篇文章的原因,一方面是看了鄧李老師的文章,也想談?wù)勛约旱?心得,另一方面,也是看到隨著工業(yè)4.0的普及,以及我國OEM制造 業(yè)正在向高端發(fā)展,PLC程序方面,也慢慢向IT方向發(fā)展。相比于PC或者網(wǎng)絡(luò)軟件,自動化程序有幾個特點:1、使用對象比較窄,這造成了對程序的質(zhì)量要求、功能要求都不是 太高,機器能開就行。2、代碼量小,因為1的原因,以及機器本身的特性,PLC的代碼量是 很小的。3、協(xié)作性很低,很多公司只有一個自

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論