1 PLC 如何運作

文章推薦指數: 80 %
投票人數:10人

這兩個系統程式雖然是獨立運作,但透過內部資料結構溝通、協調彼此之間的動作。

... 在我們用C 語言撰寫PLC 之前,先繪出M03 和M05 流程圖,流程圖可以幫助分析事件及 ... Skiptomaincontent Contents Index Search INCON-M84/M86/M86RPLC說明 1PLC如何運作 在INCON-M84/M86/M86R控制器內,共有兩個系統程式同時在運作: 1.NC系統程式 2.PLC系統程式 這兩個系統程式雖然是獨立運作,但透過內部資料結構溝通、協調彼此之間的動作。

NC系統程式已經由智研科技發展完成,使用者可編寫的是加工程式。

NC系統程式會依據加工程式內容予以解譯、執行、進行計算、控制路徑及反應狀況。

若有需要PLC幫忙處理項目則透過內部資料結構通知PLC進行處理及取得PLC回覆。

PLC程序處理的輸出訊號可分為兩大類:一種是輸出後不予理會結果,一種是輸出後一定要確認被控制系統的反應。

對於輸入訊號處理也有二大類;一類是不必回覆,另一類是必須回覆。

註.下圖中的"元件"可以表示為輔助裝置或NC溝通介面。

若輸入及輸出訊號要回覆,就有一定的時序,雙方才可以依據時序進行溝通才可以確實完成動作。

我們稱此溝通時序為協定(protocol)。

NC和PLC間的處理最常見的是與M碼、S碼及T碼相關的處理,這些碼的處理是透NC和PLC間的溝通介面完成的。

PLC處置完畢後會去控制被控制元件,待元件回覆(或不需回覆)後,再回覆NC已完成處理。

加工程式所使用的程式碼為標準ISOG、M、S、T碼。

其中,G碼多與機臺軸向運動有關;部份M碼則和加工程式流程相關;其他和加工程式流程無關的M碼、S碼及T碼則和機臺輔助設施的動作有關。

在加工程式被解譯時,NC會判斷出該由PLC處理的M、S、T碼,然後交付PLC處理,等候PLC回覆處理完畢;當NC執行G碼時也會參考PLC目前狀態再作處理(如:超馳率)。

下圖是CNC工件程式運作的流程圖: INCON-M84/M86/M86R系列控制器的PLC必須完整處理M、S、T碼和機械面板、機械輔助系統。

然後必須將處理後的結果透過I/O交換控制機械面板、機械輔助系統及將狀態放置於NC及PLC溝通介面,同時讀取機械面板、機械輔助系統還有NC和PLC間的溝通介面狀態作為下一週期處理的外部狀態參考。

以下是說明NC和PLC間的時序之流程圖: NC和PLC之間的協定,是以時序來完成的,時序圖如下所示: 瞭解系統控制程序之後,來看一下M03(主軸啟動)及M05(主軸停止)事件的範例: 在INCON-M84/M86/M86R控制器中有關M碼資料、M碼備妥及M碼處理完成的資料結構如下: plc.mCode.data        //M碼資料 plc.mCode.flag        //M碼備妥 plc.mCode.finish            //M碼處理完成 PLC輸出訊號控制變頻器,再由變頻器來控制主軸馬達。

變頻器輸出速度到達和零速訊號給PLC。

M03和M05事件是由PLC程序所控制。

當為plc.mCode.flag為1時,PLC會讀取plc.mCode.data,如果為plc.mCode.data=3,PLC會啟動M03並且等待變頻器傳來速度到達訊號。

當PLC收到速度到達開啟訊號時,PLC會送出plc.mCode.finish通知NC處理完成。

如果為plc.mCode.data=5,PLC會關閉M03並且等待變頻器傳來零速訊號。

當PLC收到零速開啟訊號時,PLC會送出plc.mCode.finish通知NC處理完成。

在我們用C語言撰寫PLC之前,先繪出M03和M05流程圖,流程圖可以幫助分析事件及方便維護PLC。

下面以C語言程式所寫的M03、M05事件: #definespeed_reach(plc.gdi[0].bit.bit00)  //變頻器速度到達輸入訊號I0 #definezero_speed(plc.gdi[0].bit.bit01)  //變頻器零速輸入訊號I1 #definem03_output(plc.gdo[0].bit.bit00)  //M03輸出訊號O1 if(plc.mCode.flag){  switch(plc.mCode.data){  case3:   m03_output=1;   if(speed_reach)   plc.mCode.finish=1;   break;  case5:   m03_output=0;   if(zero_speed)   plc.mCode.finish=1;   break;  default:   plc.mCode.finish=1;   break;  } } PLC在INCON-M84/M86/M86R控制器是一個固定循環的迴路,其時基為0.004秒。

在每一次循環結尾會作一次I/O交換。

I/O交換部份共有兩個部份,第一部份是實際的I/O(輸入/輸出)和第二部份是NC和PLC間的VI/VO(虛擬輸入/虛擬輸出)溝通。

PLC完成I/O交換時會把輸入狀態存入暫存工作記憶內入作為下一PLC循環使用。

PLC循環時會運算出輸出先放於工作記憶體內,待I/O交換才把輸出置於實際輸出和虛擬輸出。

I/O暫存區會因關機而消失資料,不能被保存至下次開機,但有些資料必須被保留作為參數,或是狀態之用;因此這些不允許流失的資料就要儲存起來。

INCON-M84/M86/M86R控制器的"機械參數→設定PLC數據"就是可儲存的資料備分區,另外和NC共享的巨集變數區資料也是可儲存的資料備分區。

INCON-M84/M86/M86R控制器可以使用這兩個區域作為PLC資料備份區。

由本章的描述可知,INCON-M84/M86/M86R控制器的PLC和一般控制器的PLC無異,但由於本PLC使用高階語言C語言作為PLC程序開發工具,使得INCON-M84/M86/M86R控制器的PLC具有較高效率的執行速度。

INCON-M84/M86/M86R控制器的PLC所使用的C語言語法要避免使用"do"、"while"和"for"迴圈不然執行時會發生無止盡迴圈的錯誤。

若想更進一步了解C語言語法,可自行購書閱讀。

× Close



請為這篇文章評分?