3.3.5.1 進階空跑功能
為了方便使用者操作(尤其在程式開始要進刀的時候),新增進階空跑功能。說明如下:
由 PLC 主導此功能的開啟與開始後的速度,當操作者由第二面板打開進階空跑功能後,程式的執行包括 MDI,其 G00、G01、G02、G03 之速度完全由 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.bADryRun 與 sts.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){
...
}