Table of Contents

資料映射

資料映射指,將外部資料對應於仿真路徑,使得仿真步(仿真步輸出資訊(Simulation Step Output))可以索引外部資料。

外部資料包含智慧刀把、動力計,可依時間線性映射至指定刀具路徑及加工區域。

映射資料可用於檢視加工狀態、訓練銑削係數、校正銑削係數。

資料映射的形式

依據資料大小、應用情境不同,資料映射有多種形式。 資料映射可以一對一與一對多。

以資料量區分,仿真步對應外部資料可以一對一與一對多。

一對一映射

一對一映射指每個仿真步對應一個外部資料點,資料量與仿真步數量相同或相近。

一對一的資料映射方式:

一對多映射

一對多映射指每個仿真步對應多個外部資料點,外部資料量遠大於仿真步數量(通常數十倍以上)。

一對多的形式適用智慧刀把、加速規、測力計等高採樣率資料。

一對多的資料映射可以直接對應真實加工時間全局映射,也可以對指定數控路徑及時間局部映射

一對一映射

PlayCsvFile

執行CSV檔 可以與一對多的資料映射協同使用,詳見 執行CSV檔

ReadCsvByTimeInterpolation

ReadCsvByTimeInterpolation(API) 讀取CSV檔案並使用時間插值將資料映射到加工步階。每個仿真步對應一個外部資料點(透過時間插值計算)。

Note

指令格式

ReadCsvByTimeInterpolation(<CSV檔案路徑>);
Tip

指令範例

// 讀取CSV檔案並映射到步階
PlayNcFile("NC/file1.nc");
ReadCsvByTimeInterpolation("Data/sensor.csv");
Note

此方法使用時間插值方式將CSV資料映射到加工步階,適用於需要將外部感測器資料對應到仿真步階的場景。每個仿真步會對應一個透過時間插值計算的外部資料點。

一對多映射

對應真實加工時間全局映射

需使用執行CSV檔作為前置,以獲取真實加工時間,csv檔案中須包含ActualTime欄位(ActualTime(API))。然後使用MapByActualTime(API)映射外部資料。

此方法為一對多映射,每個仿真步會對應多個外部資料點。

Note

指令格式

MapByActualTime(<檔案名>);

指定數控路徑及時間局部映射

資料映射需設定:指定輸入資料、指定NC路徑。

此方法為一對多映射,每個仿真步會對應多個外部資料點。

Mapping Overview Example
資料映射圖例

指定輸入資料

Note

指令格式

AddTimeDataByFile(<映射名>, <輸入檔案路徑>, <映射起點時間>, <映射終點時間>);

<映射名>為自訂之標記名稱,對應於指定NC路徑中的映射名。

時間資料格式為<時>:<分>:<秒>.<小數點後秒>;其餘資料格式為實數。

注意映射資料不會因撥放器重置而被清空。可以使用ClearTimeMappingData指令清空。

Note

指令格式

ClearTimeMappingData();
Tip

指令範例

ClearTimeMappingData();
AddTimeDataByFile( "lineA", "Mapping/sensor1.csv", "18:25:51.7100", "18:26:12.9910");
AddTimeDataByFile( "lineB", "Mapping/sensor1.csv", "18:26:30.5750", "18:27:12.2880");
PlayNcFile("NC/file1.nc")

指定NC路徑

Note

指令格式

//範圍(多行)資料映射
BeginSelection(<映射名>, <起點映射錨點旗標>, <起點偏置物件>);
EndSelection(<映射名>, <終點映射錨點旗標>, <終點偏置物件>);
//單行資料映射
LineSelection(<映射名>, <起點映射錨點旗標>, <起點偏置物件>, <終點映射錨點旗標>, <終點偏置物件>);

<映射名>為自訂之標記名稱,對應於指定輸入資料中的映射名。

  • 可以使用BeginSelectionEndSelection作範圍(多行)資料映射:
    • BeginSelection設置映射起點。
    • EndSelection設置映射終點。
  • 或是使用LineSelection作單行資料映射。

<映射錨點旗標>可以使用:

  • LineBegin 以該行運動起點為映射錨點。
  • LineEnd 以該行運動終點為映射錨點。
  • FirstTouch 以該行第一次接觸工件的位置為映射錨點。
  • LastTouch 以該行最後接觸工件的位置為映射錨點。

markRegionOnTouch.png

<偏置物件>是相對於錨點的偏移,可以使用:

  • null 無偏移。
  • ShiftTime_s 單位秒。正值為往後時間;負值為往前時間。
  • ShiftDistance_mm 單位mm。正值為往後位移;負值為往前位移。

指定NC路徑命令需在NC碼註解中執行,前置;@符號。

Tip

NC檔案範例

...
G00 G90 X-6. Y10.  
G17 G01 Z-1. F600.
S50 M03
X13. F20 ;@LineSelection("lineA", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1));
X25. F10 ;@LineSelection("lineB", FirstTouch, null, LastTouch, null);
...
Tip

NC檔案範例2

如果控制器不支援;符號作為註解,如FANUC控制器,則需將其引入註解範圍內。

...
G00 G90 X-6. Y10.  
G17 G01 Z-1. F600.
S50 M03
X13. F20 (;@LineSelection("lineA", FirstTouch, ShiftTime_s(2), LineEnd, ShiftDistance_mm(-1));)
X25. F10 (;@LineSelection("lineB", FirstTouch, null, LastTouch, null);)
...

外部資料檔案格式

輸入檔案格式為csv,須包含時間資訊,其餘資訊可選擇包含或不包含。

csv檔案需有標題列,欄位標題需用特定指示詞標示。 部分欄位指示詞為方便性是多擇一。

  • 時間:
    • TimeTag
    • Timetag
    • Time
    • t
  • 動力計:
    • X方向力:
      • Fx
      • Workpiece.Fx
    • Y方向力:
      • Fy
      • Workpiece.Fy
    • Z方向力:
      • Fz
      • Workpiece.Fz
  • 智慧刀把:
    • X方向力矩:
      • Mx
      • Spindle.Mx
    • Y方向力矩:
      • My
      • Spindle.My
    • Z方向力矩:
      • Mz
      • Spindle.Mz
  • 加速規(可選):
    • Ax
    • Ay
    • Az

欄位可以包含其他外部資訊,如下例之CH1CH2

Tip

檔案範例

TimeTag,CH1,CH2,Mx,My,Mz
18:23:54.703,-0.00398,-0.00034,-0.02923,0.10733,0.00409
18:23:54.704,-0.00194,0.00285,0.04155,-0.04457,0.00448
...

其他設置

自動映射設定

EnableAutoMapOnSelectionEnd(API) 設定是否在選擇結束時自動執行映射。

Note

指令格式

EnableAutoMapOnSelectionEnd = true; // 或 false
Tip

指令範例

// 啟用自動映射
EnableAutoMapOnSelectionEnd = true;
BeginSelection("region1");
// ... NC 代碼 ...
EndSelection("region1"); // 自動執行映射

// 停用自動映射
EnableAutoMapOnSelectionEnd = false;
BeginSelection("region2");
// ... NC 代碼 ...
EndSelection("region2"); // 不自動執行映射
Map("region2"); // 手動執行映射
Note

預設值為 true。當設為 true 時,EndSelection 會自動執行對應的 Map 操作。