資料映射
外部資料包含智慧刀把、動力計,可依時間線性映射至指定刀具路徑及加工區域。
映射資料可用於檢視加工狀態、訓練銑削係數、校正銑削係數。
所以資料映射需指定映射之兩部:指定輸入資料、指定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")
輸入檔案格式為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
...
指定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);)
...
