jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
樓主  發(fā)表于: 2010-03-03 10:48
        小弟一月份接到一個設備改造任務,由我負責PLC編程。我原是學計算機的,因為此前成功改進了一臺測試設備的測試程序(VB開發(fā)的),所以領導就這樣安排了,理由是兩者都是編程(不是我開玩笑,當時差點兒“暈倒” ,再三推辭,領導當時拿出了“禮賢下士”的姿態(tài),聲稱就當學習學習,沒有什么事情是百分百成功的,沒辦法只能接受了 )。就這樣開始了PLC的學習之路,從論壇上下了一些學習資料、到圖書館借了兩本書(借書之前就搞清楚了一些必要的因素如先把PLC品牌定好,這樣效率高多了)。
        整個控制系統(tǒng)不算復雜,關鍵是控制7個氣缸的動作,出錯后要能夠定位到點,考慮到輸入按鈕比較多,輸出部件也多(負責設計的老工程師原先都是基于繼電器線路考慮的),因此前兩天我主動請戰(zhàn)提出用觸摸屏(算是“初生牛犢不怕虎”還是“無知者無畏”?),這下控制就復雜了一些(原來自動部分由PLC控制,手動則由繼電器線路控制,  后來我了解到,之所以要用PLC是因為全部控制使用繼電器線路比較復雜,器件較多,且今后還要增加不同型號的產品,成本會超出計劃,尤其是時間繼電器價格不便宜 ,所以才提出這樣的設計框架,“暈”啊 )。
        剛開始編PLC時,老工程師帶的年輕助工說控制線路設計好了,還用Festo的工具軟件模擬了一下效果,當時以為這事簡單了,只要把繼電器控制線路“翻譯”成PLC梯形圖就行了,但隨著對加工過程控制的了解,發(fā)現(xiàn)這樣簡單的“翻譯”,先不說極大的浪費了PLC資源,就連一些必要的控制都無法完成,而另一方面“形勢”變得急轉而下,領導要求必須在3本月底完成改造任務。認識到問題的復雜性和“嚴重性”,我不得不放棄做一名翻譯的理想,毅然決定轉回來“吃老本”,按照加工過程控制的要求用計算機編程的思維方式來重新構思整個控制系統(tǒng) ,所以我現(xiàn)在的這個程序中都是大量的條件判斷、MOV、RST及WAND、WXOR這類指令(感覺有點兒匯編的味道,仔細想想,PLC指令系統(tǒng)就可以認為是一套專用的宏匯編系統(tǒng))。
       這段時間以來,我覺得用計算機編程的思維方式處理PLC編程,最容易出錯的地方就是由PLC的“掃描工作方式”引發(fā)的問題,特別是FEND之前的“主程序”段,一定要時刻注意條件(輸入變化、軟元件變化、“保持型”軟元件)動態(tài)變化后程序的跳轉方向。
       最后,有一個問題想請有經驗的達人給予指導,就是如何考慮“急停”功能:按照PLC的“掃描工作方式”,在如下的梯形圖1中,當“X000急停按鈕”接通時,對動作輸出部分可以做到“即時”響應,即可以精確的監(jiān)測到究竟是“M999”還是“M998”完成了“急!惫δ,而圖2中,如果在執(zhí)行到第1023步之后的時刻才發(fā)現(xiàn)需要終止下面的輸出動作,這時按下“X000急停按鈕”,想要終止第1049步的“Y016”輸出(假設此時滿足D21=2、D51=2),似乎不能完成,必須要等到下一個掃描周期才能接通“M999”斷開第1049步,雖然PLC的掃描是以us計的,但這樣的“不精確”,就會產生“滯后”隱患了。  小弟第一次編PLC,衷心期望有經驗的達人給予指點,謝謝!



[ 此帖被jinsinfo在2010-03-03 10:56重新編輯 ]
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
1樓  發(fā)表于: 2010-03-03 11:31
還在進行中......
正常加工部分完成了,模擬了一下,還行
現(xiàn)在在弄出錯處理,比較麻煩的是出錯處理是有比較嚴格的步序要求,需要考慮的因素較多,有點煩,
觸摸屏還不熟,正在看視頻學習,GOT F930的還不能直接仿真,正準備先用GT Desiger做一個GOT F950的屏,這樣就可以模擬了,就是麻煩一些,需要再做F930版的
急停部分先用如梯形圖1所示的方式處理,還好動作不多也不復雜,這樣處理雖然程序農長一些,但放心些。
[ 此帖被jinsinfo在2010-03-03 11:36重新編輯 ]
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
2樓  發(fā)表于: 2010-03-03 16:22
無人解答???
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
3樓  發(fā)表于: 2010-03-03 18:49
         急停不用PLC控制而直接使用硬件連接確實是更好的選擇。 有此一問是因為在編寫時首先想到的是繼電器線路中急停的連接方式,“直譯”之后再看程序才意識到它們兩者之間的差別,然后的第一反應就是急停是為安全需要而設,安全是第一位的,效率則不必很在意,才弄出圖1那樣的“低效算法”,正是這個原因,才想更多的了解一下這個問題。第一次編寫PLC程序,距離寫出“漂亮”的程序還有很長的路,現(xiàn)在最關心的是邏輯正確以及用PLC語言正確的表達出來,追求效率是需要技術根底的,還不敢奢望。
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
4樓  發(fā)表于: 2010-03-04 13:20
引用
引用第6樓hanqin于2010-03-03 21:09發(fā)表的  :
感覺不像是plc的程序


]

呵呵,我是“按照加工過程控制的要求用計算機編程的思維方式來構思整個控制系統(tǒng)的 ,所以現(xiàn)在的這個程序中都是大量的條件判斷、MOV、RST及WAND、WXOR這類指令(感覺有點兒匯編的味道)”
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
5樓  發(fā)表于: 2010-03-05 09:10
引用
引用第9樓玉龍于2010-03-04 21:14發(fā)表的  :
感覺好復雜,確實有點像匯編的味道。


可能是因為我是新手,所以才把這個弄得復雜了,確實不太符合“簡單才是美”的準則!
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
6樓  發(fā)表于: 2010-03-06 17:06
不是電工出生的,在這方面也沒有什么經驗,看來是一個常識性的“低級”問題啊 ,編PLC的時候只從程序功能的完整性上考慮,而忘了參考電工的基本應用準則,貽笑大方了。
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
7樓  發(fā)表于: 2010-03-07 21:30
引用
引用第14樓lba1218于2010-03-06 23:44發(fā)表的  :
敢干!了不起。


現(xiàn)在開來確實有點兒“無知者無畏”的“大無畏”精神,現(xiàn)在只能是背水一戰(zhàn)了!不過,以現(xiàn)在的情形來看,也算是“置之死地而后生”了。
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
8樓  發(fā)表于: 2010-03-07 22:28
引用
引用第13樓mkomko于2010-03-06 23:25發(fā)表的  :
用MC指令切斷母線電流即可,按下緊急按鈕后,在touch 畫面上加報警信息,用報警信號條件的反信號接負載,邏輯關系就很完善了


對一些命令還了解有限,這次寫了近2K步也沒用過這條基本指令,對您以上的說法還不大明了。看來真是“路漫漫其修遠兮”啊。
jinsinfo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jinsinfo的 主題 / 回貼
9樓  發(fā)表于: 2010-03-08 10:08
引用
引用第18樓rockyhuo于2010-03-08 01:41發(fā)表的  :
使用SFC的步進梯形圖處理你的問題就簡單得多,只要有前后的關系,慢慢學吧,路是自己走出來的,條條大路通羅馬,只要能行就不管拉,我以前的編程也是的


SFC目前還沒有涉及,熟悉PLC編程后再學SFC是不是更好,還是無所謂? 請指點迷津,謝謝!