3.3.5.1 進階空跑功能


為了方便使用者操作(尤其在程式開始要進刀的時候),新增進階空跑功能。說明如下:


由 PLC 主導此功能的開啟與開始後的速度,當操作者由第二面板打開進階空跑功能後,程式的執行包括 MDI,其 G00G01G02G03 之速度完全由 PLC 所指定的進階空跑速度決定,通常 PLC 由速度超馳(Feed rate override)作為指標,查找出放在 PLC 參數中之指定速度作為進階空跑速度。此功能有以下幾點需注意:


1.

當進階空跑模式啟動時,狀態視窗的 FV:XXX 處被閃動的數字取代,此數字即為進階空跑速度,其單位是 mm/min,系統是英制時亦然。

2.

進階空跑速度不能超過 6000,實際程式進行時之速度亦受限於各軸之速度與系統之最大進給速度。

3.

手動模式啟動時,進階空跑模式自動關閉。


PLC 之處理:

  • PLC 利用 plc.vto4.bit.adryn 來啟動/關閉進階空跑模式,並利用 plc.aDryRunSpeed 來指定進階空跑速度。
  • PLC 可利用 sts.state2.bADryRunsts.aDryRunSpeed 來得知實際進階空跑模式是否啟動與實際所使用的進階空跑速度。


以下是進階空跑的 PLC 範例:

#include "..\plcm4\plc.h"


...


#define iFVOV0          (plc.gdi[0].bit.bit08)

#define iFVOV1          (plc.gdi[0].bit.bit09)

#define iFVOV2          (plc.gdi[0].bit.bit0a)

#define iFVOV3          (plc.gdi[0].bit.bit0b)


#define iTestADryRun    (plc.gdi[3].bit.bit0e)

#define oADryRunLamp    (plc.gdo[1].bit.bit00)


static unsigned short *plcData;

static long *plcLongData;


void plcOpen( Status &sts, PlcBlock &plc,

             unsigned short *PlcData, long *LongPlcData){

 //get plc data and long plc data pointer

 plcData = PlcData;

 plcLongData = LongPlcData;

 ...

}


void plcRun(Status &sts, PlcBlock &plc){

 ...

 plc.vto0.bit.fvov0 = !iFVOV0;

 plc.vto0.bit.fvov1 = !iFVOV1;

 plc.vto0.bit.fvov2 = !iFVOV2;

 plc.vto0.bit.fvov3 = !iFVOV3;


 if( plc.versionId >= 510 ){

   //使用進給速度超馳旋鈕

   //來做進階空跑的速度選擇

   int aDryRunIndex = 200 + (plc.vto0.iPort & 0xf);


   // 使用 plc 長參數 200~215 來指定 16 段的進階空跑速度

   // 通常 16 段速度設成 {0, 10, 20, 30, 40, 50, 75,

   //                 100, 200, 320, 500, 750, 1000,  

   //                 1500, 2000, 3000}

   plc.aDryRunSpeed = plcLongData[ aDryRunIndex ];


   //進階空跑啟動按鈕

   plc.vto4.bit.adryn = iTestADryRun;


   //進階空跑之狀態指示燈

   oADryRunLamp = sts.state2.bADryRun;

 }


 ...

}


void plcClose(Status &sts, PlcBlock &plc){

 ...

}