資料映射
資料映射指,將外部資料對應於仿真路徑,使得仿真步(仿真步輸出資訊(Simulation Step Output))可以索引外部資料。
外部資料包含智慧刀把、動力計,可依時間線性映射至指定刀具路徑及加工區域。
映射資料可用於檢視加工狀態、訓練銑削係數、校正銑削係數。
資料映射的形式
依據資料大小、應用情境不同,資料映射有多種形式。 以資料量區分,仿真步對應外部資料可以一對一與一對多。
一對一映射
一對一映射指每個仿真步對應一個外部資料點,資料量與仿真步數量相同或相近。
一對一的資料映射方式:
- 執行CSV檔:適用控制器資料,每個步階對應一個CSV資料行
- ReadCsvByTimeInterpolation(API):使用時間插值將CSV資料映射到加工步階
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路徑。
此方法為一對多映射,每個仿真步會對應多個外部資料點。
指定輸入資料
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(<映射名>, <起點映射錨點旗標>, <起點偏置物件>, <終點映射錨點旗標>, <終點偏置物件>);
<映射名>為自訂之標記名稱,對應於指定輸入資料中的映射名。
- 可以使用
BeginSelection與EndSelection作範圍(多行)資料映射:BeginSelection設置映射起點。EndSelection設置映射終點。
- 或是使用
LineSelection作單行資料映射。
<映射錨點旗標>可以使用:
LineBegin以該行運動起點為映射錨點。LineEnd以該行運動終點為映射錨點。FirstTouch以該行第一次接觸工件的位置為映射錨點。LastTouch以該行最後接觸工件的位置為映射錨點。
<偏置物件>是相對於錨點的偏移,可以使用:
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檔案需有標題列,欄位標題需用特定指示詞標示。 部分欄位指示詞為方便性是多擇一。
- 時間:
TimeTagTimetagTimet
- 動力計:
- X方向力:
FxWorkpiece.Fx
- Y方向力:
FyWorkpiece.Fy
- Z方向力:
FzWorkpiece.Fz
- X方向力:
- 智慧刀把:
- X方向力矩:
MxSpindle.Mx
- Y方向力矩:
MySpindle.My
- Z方向力矩:
MzSpindle.Mz
- X方向力矩:
- 加速規(可選):
AxAyAz
欄位可以包含其他外部資訊,如下例之CH1、CH2。
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 操作。
