Spel類別方法
Accel方法,Spel類別
描述
設定PTP動作命令Go、Jump及Pulse的加速與減速。
語法
Sub Accel (PointToPointAccel As Integer, PointToPointDecel As Integer, _[JumpDepartAccel As Integer], [JumpDepartDecel As Integer], _[JumpApproAccel As Integer], [JumpApproDecel As Integer])
參數
- PointToPointAccel
1以上整數,代表相對於最大加速度的比例(單位:%)。 - PointToPointDecel
1以上整數,代表相對於最大減速度的比例(單位:%)。 - JumpDepartAccel
1以上整數,代表Jump時的起始加速度(可省略)。 - JumpDepartDecel
1以上整數,代表Jump時的起始減速度(可省略)。 - JumpApproAccel
1以上整數,代表Jump時的接近加速度(可省略)。 - JumpApproDecel
1以上整數,代表Jump時的接近減速度(可省略)。
另請參閱
Accels, Speed
Accel範例
VB 例:
m_spel.Accel(50, 50)
m_spel.Go ("pick")
C# 例:
m_spel.Accel(50, 50);
m_spel.Go ("pick");
AccelR方法,Spel類別
描述
設定工具旋轉動作的加速與減速。
語法
Sub AccelR (Accel As Single, [Decel As Single])
參數
- Accel
0.1至5000 deg/sec2的單一運算式,用以定義在動作命令中使用ROT時的工具旋轉加速。若省略Decel,此值會同時用於加速與減速速率。 - Decel
從0.1至5000的實數值(單位:deg/sec2),在動作命令中使用ROT時,用於定義工具姿勢變化的減速度。可以省略
另請參閱
Arc, Arc3, BMove, Jump3CP, Power, SpeedR, TMove
AccelR範例
VB 例:
Sub MoveToPlace()
m_spel.AccelR(100)
m_spel.Move("place ROT")
End Sub
C# 例:
void MoveToPlace()
{
m_spel.AccelR(100);
m_spel.Move("place ROT");
}
AccelS方法,Spel類別
描述
設定直綫動作和CP動作(Jump3CP, Move, TMove)的加速與減速。
語法
Sub AccelS (Accel As Single, Decel As Single,[JumpDepartAccel As Single], [JumpDepartDecel As Single], _[JumpApproAccel As Single], [JumpApproDecel As Single])
參數
- Accel
實數值(單位:deg/sec2),用於指定直線動作或CP動作時的加速度。若省略Decel,加速時與減速時皆會套用此Accel值。 - Decel
實數值(單位:deg/sec2),用於指定直線動作或CP動作時的減速度(可省略)。 - JumpDepartAccel
實數值(單位:deg/sec2),用於在Jump、Jump3CP時的向上動作中指定起始加速度(可省略)。 - JumpDepartDecel
實數值(單位:deg/sec2),用於在Jump、Jump3CP時的向上動作中指定起始減速度(可省略)。 - JumpApproAccel
實數值(單位:deg/sec2),用於在Jump、Jump3CP時的向下動作中指定接近加速度(可省略)。 - JumpApproDecel
實數值(單位:deg/sec2),用於在Jump、Jump3CP時的向下動作中指定接近減速度(可省略)。
另請參閱
Accel, SpeedS, Jump3CP, Move, TMove
AccelS範例
VB 例:
Sub MoveToPlace()
m_spel.Base(P1)
m_spel.Move(pick)
m_spel.AccelS(500, 300)
m_spel.Move(place)
End Sub
C# 例:
void MoveToPlace()
{
m_spel.AccelS(500);
m_spel.Move(pick);
m_spel.AccelS(500, 300);
m_spel.Move(place);
}
Agl方法,Spel類別
描述
傳回所選旋轉軸的關節角度,或所選線性軸的位置。
語法
Function Agl (JointNumber As Integer) As Single
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數)
傳回值
所選旋轉軸的關節角度,或所選線性軸的位置
另請參閱
Pls, CX - CT
Agl範例
C# 例:
Dim j1Angle As Single
j1Angle = m_spel.Agl(1)
C# 例:
float j1Angle;
j1Angle = m_spel.Agl(1);
AIO_In 方法, Spel類別
描述
從選配件類比IO的輸入通道讀取類比值。
語法
Function AIO_In (Channel As Integer) As Single
參數
- Channel
指定類比IO的通道編號。
傳回值
傳回由通道指定的類比IO通道的類比輸入值(以實數爲單位)。傳回值得範圍取決於類比IO板的輸入範圍設定。
另請參閱
AIO_InW, AIO_Out, AIO_OutW
AIO_In範例
VB 例:
Dim val As Single
val = m_spel.AIO_In(2)
C# 例:
float val;
val = m_spel.AIO_In(2);
AIO_InW 方法, Spel類別
描述
從選配件類比IO的輸入通道讀取類比值。
語法
Function AIO_InW (Channel As Integer) As Integer
參數
- Channel
指定類比IO的通道編號。
傳回值
傳回指定的類比IO通道的輸入狀態 (0~65535的整數值)。
根據類比IO板的輸入範圍設定,每個輸入通道的輸入電壓(電流)和返回值之間的對應關係如下所示。
輸入數據 | 設定輸入範圍 | |||||
---|---|---|---|---|---|---|
16進數 | 10進數 | ±10.24(V) | ±5.12(V) | 0-5.12(V) | 0-10.24(V) | 0-24(mA) |
0xFFFF | 65535 | 10.23969 | 5.11984 | 5.12000 | 10.24000 | 24.00000 |
0x8001 | 32769 | 0.00031 | 0.00016 | 2.56008 | 5.12016 | 12.00037 |
0x8000 | 32768 | 0.00000 | 0.00000 | 2.56000 | 5.12000 | 12.00000 |
0x0000 | 0 | -10.24000 | -5.12000 | 0.00000 | 0.00000 | 0.00000 |
另請參閱
AIO_In, AIO_Out, AIO_OutW
AIO_InW範例
VB 例:
Dim val As Integer
val = m_spel.AIO_InW(2)
C# 例:
int val;
val = m_spel.AIO_InW(2);
AIO_Out 方法, Spel類別
描述
從選配件類比IO的輸出通道,讀取或設定類比值。
語法
Function AIO_Out (Channel As Integer) As Single
Sub AIO_Out (Channel As Integer, Value As Single)
參數
- Channel
指定類比IO的通道編號。 - Value
用陳述式或數位,表示要輸出的電壓[V]或電流值[mA]的實數。
傳回值
傳回指定類比IO通道的電壓或電流輸出狀態(以實數爲單位)。電壓輸出的單位為 [V],電流輸出的單位為[mA]。
Function AIO_Out (Channel As Integer) As Single時:如果在指定通道輸出機器人的速度資訊時,也可以用本方法取得傳回值。
備註
輸出表示指定電壓[V]或電流[mA]的實數,到通道號碼指定的類比輸出埠。類比輸出埠的電壓輸出範圍和電壓、電流輸出選擇,由機板上的開關設定。如果指定的值超出類比IO板的輸出範圍,則輸出不超過範圍的邊界值(最大值或最小值)。
Sub AIO_Out (Channel As Integer, Value As Single) 時:如果在指定通道輸出機器人的速度資訊時,本方法會發生輸出設定錯誤。請在停止輸出速度信息后,執行本方法。
另請參閱
AIO_In, AOI_InW, AIO_OutW
AIO_Out範例
VB 例:
Dim val As Single
val = m_spel.AIO_Out(1)
C# 例:
float val;
val = m_spel.AIO_Out(1);
AIO_OutW 方法, Spel類別
描述
從選配件類比IO的輸出通道,讀取或設定類比值。
語法
Function AIO_OutW (Channel As Integer) As Integer
Sub AIO_OutW (Channel As Integer, OutputData As Integer)
參數
- Channel
指定類比IO的通道編號。 - OutputData
用陳述式或數位,指定輸出數據(從0到65535的整數)。
傳回值
傳回指定類比IO通道的輸出狀態,用0~65535的整數表示。
根據類比IO板的輸出範圍設定,每個輸出通道的輸出電壓(電流)和返回值之間的對應關係如下所示。
輸出數據 | 設定輸出範圍 | ||||||
---|---|---|---|---|---|---|---|
16進數 | 10進數 | ±10(V) | ±5(V) | 0-5(V) | 0-10(V) | 4-20(mA) | 0-20(mA) |
0xFFFF | 65535 | 9.99970 | 4.99985 | 5.00000 | 10.00000 | 20.00000 | 20.00000 |
0x8001 | 32769 | 0.00031 | 0.00015 | 2.50008 | 5.00015 | 12.00024 | 10.00031 |
0x8000 | 32768 | 0.00000 | 0.00000 | 2.50000 | 5.00000 | 12.00000 | 10.00000 |
0x0000 | 0 | -10.00000 | -5.00000 | 0.00000 | 0.00000 | 4.00000 | 0.00000 |
如果在指定通道輸出機器人的速度資訊時,也可以執行此方法。
另請參閱
AIO_In, AOI_InW, AIO_Out
AIO_OutW範例
VB 例:
Dim val As Integer
val = m_spel.AIO_OutW(1)
C# 例:
int val;
val = m_spel.AIO_OutW(1);
Arc方法,Spel類別
描述
Arc利用XY平面中的圓形插補將手臂移至指定點。
語法
Sub Arc (MidPoint As Integer, EndPoint As Integer)
Sub Arc (MidPoint As SpelPoint, EndPoint As SpelPoint)
Sub Arc (MidPoint As String, EndPoint As String)
參數
每個語法都有兩個參數,分別指定圓弧的中點與結束點。
- MidPoint
使用整數、SpelPoint或字串運算式來指定中點。 - EndPoint
使用代表目標位置的整數值、SpelPoint或字串時,可包含ROT、CP、SYNC、Till、Find及並行處理陳述式。
另請參閱
AccelR, AccelS, SpeedR, SpeedS
Arc3, CVMove, Go, Jump, Jump3, Jump3CP, Move
BGo, BMove, TGo, TMove
Find, Till
Arc範例
VB 例:
' 使用SpelPoint指定的點
Dim midPoint, endPoint As SpelPoint
midPoint = m_spel.GetPoint("P1")
endPoint = m_spel.GetPoint("P2")
m_spel.Arc(midPoint, endPoint)
' 使用字串運算式指定的點
m_spel.Arc("P1", "P2")
m_spel.Arc("P1", "P2 CP")
' 使用平行處理
m_spel.Arc("P1", "P2 \!D50; On 1; D90; Off 1\!")
C# 例:
// 使用SpelPoint指定的點
SpelPoint midPoint, endPoint;
midPoint = m_spel.GetPoint("P1");
endPoint = m_spel.GetPoint("P2");
m_spel.Arc(midPoint, endPoint);
// 使用字串運算式指定的點
m_spel.Arc("P1", "P2");
m_spel.Arc("P1", "P2 CP");
// 使用平行處理
m_spel.Arc("P1", "P2 \!D50; On 1; D90; Off 1\!");
Arc3方法,Spel類別
描述
Arc3在3D中利用圓形插補將手臂移至指定點。
語法
Sub Arc3 (MidPoint As Integer, EndPoint As Integer)
Sub Arc3 (MidPoint As SpelPoint, EndPoint As SpelPoint)
Sub Arc3(MidPoint As String, EndPoint As String)
參數
每個語法都有兩個參數,分別指定圓弧的中點與結束點。
- MidPoint
使用整數、SpelPoint或字串運算式來指定中點。 - EndPoint
使用代表目標位置的整數值、SpelPoint或字串時,可包含ROT、CP、SYNC、Till、Find及並行處理陳述式。
另請參閱
AccelR, AccelS, SpeedR, SpeedS
Arc, CVMove, Go, Jump, Jump3, Jump3CP, Move
BGo, BMove, TGo, TMove
Find, Till
Arc3範例
VB 例:
' 使用SpelPoint指定的點
Dim midPoint, endPoint As SpelPoint
midPoint = m_spel.GetPoint("P1")
endPoint = m_spel.GetPoint("P2")
m_spel.Arc3(midPoint, endPoint)
' 使用字串運算式指定的點
m_spel.Arc3("P1", "P2")
m_spel.Arc3("P1", "P2 CP")
' 使用平行處理
m_spel.Arc3("P1", "P2 \!D50; On 1; D90; Off 1\!")
C# 例:
// 使用SpelPoint指定的點
SpelPoint midPoint, endPoint;
midPoint = m_spel.GetPoint("P1");
endPoint = m_spel.GetPoint("P2");
m_spel.Arc3(midPoint, endPoint);
// 使用字串運算式指定的點
m_spel.Arc3("P1", "P2");
m_spel.Arc3("P1", "P2 CP");
// 使用平行處理
m_spel.Arc3("P1", "P2 \!D50; On 1; D90; Off 1\!");
Arch方法,Spel類別
描述
定義要搭配JUMP指令使用的ARCH參數(開始水平動作之前要移動的Z高度)。
語法
Sub Arch (ArchNumber As Integer, DepartDist As Integer, ApproDist As Integer)
參數
- ArchNumber
0至6的整數,代表拱形編號。 - DepartDist
在Jump命令中代表開始水平動作之前的Z值(起始)(從起點的垂直距離)(單位:mm)
在Jump3、Jump3CP命令中代表跨距動作之前的Z值(起始)(單位:mm) - ApproDist
在Jump命令中代表水平動作完全結束時的Z值(結束)(從目標點的垂直距離)(單位:mm)
在Jump3、Jump3CP命令中代表跨距動作完全結束時的Z值(結束)(單位:mm)
另請參閱
Jump, Jump3, Jump3CP
Arch範例
VB 例:
Sub SetArchs()
With m_spel
.Arch(1, 30, 30)
.Arch(2, 60, 60)
.Jump("P1 C1")
.Jump("P2 C2")
End With
End Sub
C# 例:
void SetArchs()
{
m_spel.Arch(1, 30, 30);
m_spel.Arch(2, 60, 60);
m_spel.Jump("P1 C1");
m_spel.Jump("P2 C2");
}
Arm方法,Spel類別
描述
選擇目前機器人手臂。
語法
Sub Arm (ArmNumber As Integer)
參數
- ArmNumber
整數值或運算式(有效範圍:0~15)。最多可選擇16種不同的手臂。手臂0是標準(預設)機器人手臂。手臂1-15是透過ArmSet指令定義的輔助手臂。
另請參閱
ArmSet, GetArm, Tool
Arm範例
VB 例:
m_spel.Arm(1)
C# 例:
m_spel.Arm(1);
ArmClr方法,Spel類別
描述
清除(取消定義)目前機器人的手臂。
語法
Sub ArmClr (ArmNumber As Integer)
參數
- ArmNumber
介於1-15的整數運算式。手臂0是標準(預設)機器人手臂,且無法清除。手臂1-15是透過ArmSet指令定義的輔助手臂。
另請參閱
ArmSet, GetArm, Tool
ArmClr範例
VB 例:
m_spel.ArmClr(1)
C# 例:
m_spel.ArmClr(1);
ArmDef方法,Spel類別
描述
傳回機器人手臂是否定義。
語法
Function ArmDef (ArmNumber As Integer) As Boolean
參數
- ArmNumber
0~15的整數值。手臂0是始終設定的標準(預設)機器人手臂。手臂1-15是使用ArmSet方法定義的輔助手臂。
傳回值
若指定手臂已定義,會傳回True,否則會傳回False。
另請參閱
ArmSet, GetArm, Tool
ArmDef範例
VB 例:
x = m_spel.ArmDef(1)
C# 例:
x = m_spel.ArmDef(1);
ArmSet方法,Spel類別
描述
定義輔助的機器人手臂。
語法
Sub ArmSet ( ArmNumber As Integer, Param1 As Single, Param2 As Single, Param3 As Single, Param4 As Single, Param5 As Single )
參數
- ArmNumber
整數:有效範圍介於1-15。 - Param1
(SCARA機器人適用)肘部中心線到新方向軸中心線的水平距離。(亦即新輔助手臂方向軸中心線所在的位置。)(Cartesian機器人適用)原始X位置的X軸方向位置偏移(公釐)。 - Param2
(SCARA機器人適用)從標準肘部中心線與標準方向軸中心線所形成的直線,到新輔助手臂肘部中心線與新方向軸中心線所形成的直線,兩者之間的偏移(度)。(這兩條直線應該在肘部中心線相交,形成的角度即為Param2。)(Cartesian機器人適用)原始Y位置的Y軸方向位置偏移(公釐)。 - Param3
(SCARA & Cartesian機器人適用)新方向軸中心與舊方向軸中心之間的Z高度偏移差距。(此為距離。) - Param4
(SCARA機器人適用)肩部中心線到新輔助軸肘部方向之肘部中心線的距離。(Cartesian機器人適用)此為虛擬參數(指定0) - Param5
(SCARA & Cartesian機器人適用)新方向軸與舊方向軸的角度偏移(度)。
另請參閱
Arm, Tool, TLSet
ArmSet範例
VB 例:
Sub SetArms()
With m_spel
.ArmSet(1, 1.5, 0, 0, 0, 0)
.ArmSet(2, 3.2, 0, 0, 0, 0)
End With
End Sub
C# 例:
void SetArms()
{
m_spel.ArmSet(1, 1.5, 0, 0, 0, 0);
m_spel.ArmSet(2, 3.2, 0, 0, 0, 0);
}
Atan方法,Spel類別
描述
傳回數值運算式的圓弧正切函數。
語法
Function Atan (number As Double) As Double
參數
- number
代表角度值之正切函數的數值運算式。
傳回值
指定值的圓弧正切函數
另請參閱
Atan2
Atan範例
VB 例:
Dim angle As Doubleangle = m_spel.Atan(.7)
C# 例:
double angle;
angle = m_spel.Atan(.7);
Atan2方法,Spel類別
描述
傳回虛線連接點(0,0)和(X, Y)的角度(以徑度表示)。
語法
Function Atan2 (Dx As Double, Dy as Double) As Double
參數
- Dx
代表X座標的數值運算式。 - Dy
代表Y座標的數值運算式。
傳回值
包含角度的雙精度值。
另請參閱
Atan
Atan2範例
VB 例:
Dim angle As Double
angle = m_spel.Atan2(-25, 50)
C# 例:
double angle;
angle = m_spel.Atan2(-25, 50);
ATCLR 方法,Spel類別
描述
清除并初始化關節的有效轉矩。
語法
Sub ATCLR ()
另請參閱
ATRQ, PTCLR, PTRQ
ATCLR範例
VB 例:
m_spel.ATCLR()
C# 例:
m_spel.ATCLR();
AtHome方法,Spel類別
描述
若目前機器人位於起始點位置,會傳回True。
語法
Function AtHome () As Boolean
傳回值
若目前機器人位於起始點位置,會傳回True,否則會傳回False。
另請參閱
Home
AtHome範例
VB 例:
If m_spel.AtHome() Then
lblCurPos.Text = "Robot is at home position"
Else
lblCurPos.Text = "Robot is not at home position"
End If
C# 例:
if(m_spel.AtHome())
lblCurPos.Text = "Robot is at home position";
else
lblCurPos.Text = "Robot is not at home position";
ATRQ 方法,Spel類別
描述
傳回指定關節的有效轉矩。
語法
Function ATRQ (JointNumber As Integer) As Single
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數)
傳回值
0~1的實數值。
另請參閱
ATCLR, PTCLR, PTRQ
ATRQ範例
VB 例:
Dim val As Single
Dim i As Integer
For i = 1 To 4
val = m_spel.ATRQ(i)
Next i
C# 例:
float avgTorque;
for(int i = 1; i <= 4; i++)
avgTorque = m_spel.ATRQ(i);
AvgSpeed 方法,Spel類別
描述
傳回指定關節速度的平均絕對值。
語法
Function AvgSpeed (JointNumber As Integer) As Single
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數)
傳回值
0~1的實數值。
備註
本方法傳回指定關節速度的平均絕對值。本方法可以顯示馬達的負載狀態。結果由介於0到1之間的實數表示。最大平均速度是1。
在執行本方法前,必須先執行AvgSpeedClear方法。
本方法具有時間限制。執行AvgSpeedClear方法后,請在60秒内執行本方法。超過60秒,就會出現錯誤4008。
對於虛擬控制器和乾運轉,從命令速度而不是實際速度,計算速度的平均絕對值。
本方法不支援PG附加軸。
另請參閱
AvgSpeedClear, PeakSpeed, PeakSpeedClear
AvgSpeed範例
VB 例:
Dim val As Single
Dim i As Integer
For i = 1 To 4
val = m_spel.AvgSpeed(i)
Next i
C# 例:
float avgSpeed;
for(int i = 0; i <=4; i++)
avgSpeed = m_spel.AvgSpeed(i);
AvgSpeedClear 方法,Spel類別
描述
清除並初始化關節速度的平均絕對值。
語法
Sub AvgSpeedClear ()
備註
本方法清除指定關節速度的平均絕對值。
執行AvgSpeed方法前,必須先執行本方法。
本方法不支援PG附加軸。
另請參閱
AvgSpeed, PeakSpeed, PeakSpeedClear
AvgSpeedClear範例
VB 例:
m_spel.AvgSpeedClear()
C# 例:
m_spel.AvgSpeedClear();
AxisLocked方法,Spel類別
描述
若指定軸受伺服系統控制,會傳回True。
語法
Function AxisLocked (AxisNumber As Integer) As Boolean
參數
- AxisNumber
代表管道#的數值運算式。數值可以介於1 – 9。
傳回值
若指定軸受伺服系統控制,會傳回True。
另請參閱
SLock, SFree
AxisLocked範例
VB 例:
If m_spel.AxisLocked(1) Then
lblAxis1.Text = "Robot axis \#1 is locked"
Else
lblAxis1.Text = "Robot axis \#1 is free"
End If
C# 例:
if (m_spel.AxisLocked(1))
lblAxis1.Text = "Robot axis \#1 is locked";
else
lblAxis1.Text = "Robot axis \#1 is free";
Base方法,Spel類別
描述
定義基座座標系統。
語法
Sub Base (OriginPoint As SpelPoint [, XAxisPoint As SpelPoint] [, YAxisPoint As SpelPoint] [, Alignment As SpelBaseAlignment])
參數
- OriginPoint
代表基座座標系統之原點的SpelPoint。 - XAxisPoint
位於基座座標系統X軸上任何位置的SpelPoint。 - YAxisPoint
位於基座座標系統Y軸上任何位置的SpelPoint。 - Alignment
當提供XAxisPoint和YAxisPoint參數時,請使用Alignment參數指定要與基座對齊的軸。(可省略)
另請參閱
Local
Base範例
VB 例:
Dim originPoint As New SpelPoint
originPoint.X = 50
originPoint.Y = 50
m_spel.Base(originPoint)
C# 例:
SpelPoint originPoint = new SpelPoint();
originPoint.X = 50;
originPoint.Y = 50;
m_spel.Base(originPoint);
BGo方法,Spel類別
描述
在所選本地座標系統中執行PTP相對動作。
語法
Sub BGo (PointNumber As Integer)
Sub BGo (Point As SpelPoint)
Sub BGo (Point As SpelPoint, AttribExpr As String)
Sub BGo (PointExpr As String)
參數
每個語法都有一個參數,用以指定在BGo動作期間手臂移動的結束點。此為PTP動作結束時的最終位置。
- PointNumber
透過使用先前示教點的點編號(在目前機器人的控制器點記憶體中)來指定結束點。 - Point
透過使用SpelPoint資料類型來指定結束點。 - AttribExpr
透過使用字串運算式來指定結束點屬性。
可包括CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。 - PointExpr
透過使用字串運算式來指定結束點。
可包括CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。
另請參閱
Accel, Speed
Arc, Arc3, CVMove, Go, Jump, Jump3, Jump3CP, Move
BMove, TGo, TMove
Find, Till
BGo範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.BGo(100)
' 使用SpelPoint指定的點
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 125.5
m_spel.BGo(pt)
' 使用屬性式
m_spel.BGo(pt, "Till")
' 使用點運算式指定的點
m_spel.BGo("P0 /L /2")
m_spel.BGo("P1 :Z(-20)")
' 使用平行處理
m_spel.BGo("P1 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.BGo("pick")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.BGo(100);
// 使用SpelPoint指定的點
SpelPoint pt;
pt = m_spel.GetPoint("P*");
pt.X = 125.5;
m_spel.BGo(pt);
// 使用屬性式
m_spel.BGo(pt, "Till");
// 使用點運算式指定的點
m_spel.BGo("P0 /L /2");
m_spel.BGo("P1 :Z(-20)");
// 使用平行處理
m_spel.BGo("P1 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.BGo("pick");
BMove方法,Spel類別
描述
在所選本地座標系統中執行線性插補相對動作。
語法
Sub BMove (PointNumber As Integer)
Sub BMove (Point As SpelPoint)
Sub BMove (Point As SpelPoint, AttribExpr As String)
Sub BMove (PointExpr As String)
參數
每個語法都有一個參數,用以指定在BMove動作期間手臂移動的結束點。此為線性插補動作結束時的最終位置。
- PointNumber
透過使用先前示教點的點編號(在目前機器人的控制器點記憶體中)來指定結束點。 - Point
透過使用SpelPoint資料類型來指定結束點。 - AttribExpr
透過使用字串運算式來指定結束點屬性。
可包括ROT、CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。 - PointExpr
透過使用字串運算式來指定結束點。
可包括ROT、CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。
另請參閱
AccelR, AccelS, SpeedR, SpeedS
Arc, Arc3, CVMove, Go, Jump, Jump3, Jump3CP, Move
BGo, TGo, TMove
Find, Till
Move範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.BMove(100)
' 使用SpelPoint指定的點
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 125.5
m_spel.BMove(pt)
' 使用點運算式指定的點
m_spel.BMove("P0 /L /2 ROT")
m_spel.BMove("P1 :Z(-20)")
' 使用平行處理
m_spel.BMove("P1 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.BMove("pick")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.BMove(100);
// 使用SpelPoint指定的點
SpelPoint pt;
pt = m_spel.GetPoint("P*");
pt.X = 125.5;
m_spel.BMove(pt);
// 使用點運算式指定的點
m_spel.BMove("P0 /L /2");
// 使用平行處理
m_spel.BMove("P1 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.BMove("pick");
Box方法,Spel類別
描述
指定在盒體內定義的接近檢查區域。
語法
Sub Box (AreaNumber As Integer, MinX As Single, MaxX As Single, MinY As Single, MaxY As Single, MinZ As Single, MaxZ As Single)
Sub Box (AreaNumber As Integer, MinX As Single, MaxX As Single, MinY As Single, MaxY As Single, MinZ As Single, MaxZ As Single, PolarityOn As Boolean)
參數
- AreaNumber
1~15的整數值,代表所設定區域的編號。 - MinX
接近檢查區域的最小X座標位置。 - MaxX
接近檢查區域的最大X座標位置。 - MinY
接近檢查區域的最小Y座標位置。 - MaxY
數值或運算式,用於指定所設定區域的上限位置Y座標(實數)。 - MinZ
數值或運算式,用於指定所設定區域的下限位置Z座標(實數)。 - MaxZ
數值或運算式,用於指定所設定區域的上限位置Z座標(實數)。 - PolarityOn
可以省略設定在使用對應遠端輸出時的遠端輸出邏輯。若要在夾具末端位於盒體區域中時將I/O輸出設為開啟,請使用True。若要在夾具末端位於盒體區域中時將I/O輸出設為關閉,請使用False。
另請參閱
BoxClr, BoxDef, Plane
Box範例
VB 例:
m_spel.Box(1, -5, 5, -10, 10, -20, 20)
C# 例:
m_spel.Box(1, -5, 5, -10, 10, -20, 20);
BoxClr方法,Spel類別
描述
清除box(接近檢查區域)的定義。
語法
Sub BoxClr (BoxNumber As Integer)
參數
- BoxNumber
介於1至15的整數運算式,代表區域編號。
另請參閱
Box, BoxDef
BoxClr範例
VB 例:
m_spel.BoxClr(1)
C# 例:
m_spel.BoxClr(1);
BoxDef方法,Spel類別
描述
傳回Box是否定義。
語法
Function BoxDef (BoxNumber As Integer) As Boolean
參數
- BoxNumber
介於1至15的整數運算式,代表區域編號。
傳回值
若指定box已定義,會傳回True,否則會傳回False。
另請參閱
Box, BoxClr
BoxDef範例
VB 例:
x = m_spel.BoxDef(1)
C# 例:
x = m_spel.BoxDef(1);
Brake 方法,Spel類別
描述
讀取或設定關節制的制動狀態。
語法
Sub Brake (JointNumber As Integer, State As Boolean)
Function Brake (JointNumber As Integer) As Boolean
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數) - State
開啓制動器 : 使用On。解除制動器 : 使用Off。
傳回值
0 = 制動器Off
1 = 制動器On
備註
本方法可以對垂直六軸型機器人(含N系列)的單個關節開啓或解除制動。此方法旨在僅供維護人員使用。
執行本方法,會初始化機器人的控制參數。
警告
解除制動器時要小心。確保關節被正確固定。如果關節沒有正確固定,則可能導致墜落,從而導致機器人故障或操作員受傷。
注意
在執行Brake Off命令之前,請確保將緊急停止開關放在手邊。
當控制器處於緊急停止狀態時,馬達制動器將被鎖定。執行Brake Off命令時,機械臂可能會由於自生重量而下降。
另請參閱
Reset, SFree, SLock
Brake範例
VB 例:
Dim state As Boolean
state = m_spel.Brake(1)
C# 例:
bool state;
state = m_spel.Brake(1);
BTst方法,Spel類別
描述
以數值傳回1位元的狀態。
語法
Function BTst (Number As Integer, BitNumber As Integer) As Boolean
參數
- Number
以運算式或數值指定位元測試的數字。 - BitNumber
指定要測試的位元(介於0至31的整數)。
傳回值
若指定位元已設定,會傳回True,否則會傳回False。
另請參閱
On, Off
BTst範例
VB 例:
x = m_spel.BTst(data, 2)
C# 例:
x = m_spel.BTst(data, 2);
BuildProject方法,Spel類別
描述
建置透過Project屬性所指定的Epson RC+ 8.0專案。
語法
Sub BuildProject ()
另請參閱
Project, ProjectBuildComplete, ProjectOverwriteWarningEnabled
BuildProject範例
VB 例:
With m_spel
.Project = "c:\EpsonRC80\projects\myproj\myproj.sprj"
If Not .ProjectBuildComplete() Then
.BuildProject()
End If
End With
C# 例:
m_spel.Project = @"c:\EpsonRC80\projects\myproj\myproj.sprj";
if(\!m_spel.ProjectBuildComplete())
m_spel.BuildProject();
Call方法,Spel類別
描述
調用(執行)可選擇性傳回數值的SPEL+函數。
語法
Function Call (FuncName As String [, Parameters As String]) As Object
參數
- FuncName
叫用的函數名稱。
Parameters 選用。指定引數清單。使用以逗號(,)分隔的引數。
傳回值
SPEL+函數的傳回值。
資料類型符合函數的資料類型。
備註
使用Call方法調用SPEL+函數並擷取傳回值。將Call的結果指派至變數時,請確定使用正確的資料類型,否則會發生類型不相符錯誤。
您也可以從Visual Basic應用程式調用在SPEL+程式碼中宣告的DLL函數。
注意
如欲停止以Call方法執行的函數時,請使用Stop方法。
若以Stop方法停止,則Call方法的傳回值為null。
以Call方法執行的函數,無法透過Pause、Halt方法暫停任務。
如欲暫停,請使用Xqt方法。
另請參閱
Xqt
Call範例
' Visual Basic程式碼
Dim errCode As Integer
errCode = m_spel.Call("GetPart", """Test"",2")
// C# 程式碼
int errCode;
errCode = m_spel.Call("GetPart", """Test"",2");
' SPEL+ 函數
Function GetPart(Info$ As String, Timeout As Integer) As Integer
Long errNum
OnErr GoTo GPErr
Print Info$
errNum = 0
Jump P1
On vacuum
Wait Sw(vacOn) = On, Timeout
If TW = True Then
errNum = VAC_TIMEOUT
EndIf
GetPart = errNum
Exit Function
GPErr:
GetPart = Err
Fend
CalPls 方法,Spel類別
描述
讀取或設定用於校準的位置姿態脈衝值。
語法
Function CalPls (JointNumber As Integer) As Integer
Sub CalPls (J1Pulses As Integer, J2Pulses As Integer, J3Pulses As Integer, J4Pulses As Integer, [J5Pulses As Integer], [J6Pulses As Integer], [J7Pulses As Integer], [J8Pulses As Integer], [J9Pulses As Integer])
參數
- J1Pulses - J9Pulses
代表第1~9關節的脈衝值的整數
J5Pulses – J9Pulses可以省略
傳回值
如果省略脈衝值,則顯示當前設定的脈衝值。
備註
輸入並保存正確的脈衝值,用於校準位置。
本方法僅供維護時使用。當馬達的原點不匹配機械臂的機械原點時(例如更換馬達時)使用。匹配原點的操作稱爲校準。
在正常情況下,校準位置的脈衝值與本方法中設定的脈衝值匹配。但在維護(例如更換馬達)後,這兩個值不匹配,需要校準。
校準的一種方法是,將關節移動到特定位置並執行Calib。執行Calib會將校準特定位置的脈衝值,更改為本方法中設定的脈衝值(校準位置的正確脈衝值)。
必須設置Hofs值才能執行校準。要自動計算Hofs值,請先將關節移動到特定的位置,然後執行Calib。控制器會根據校準位置的脈衝值,自動計算Hofs的值。
注意
CalPls值不能透過關閉電源變更
關閉控制器然後重新啟動時,CalPls的值不會被初始化。更改CalPls值的唯一方法是執行Calib命令。
另請參閱
Hofs
CalPls範例
VB 例:
Dim val As Single
Dim i As Integer
For i = 1 To 4
val = m_spel.CalPls(i)
Next i
C# 例:
float val;
for(int i = 1; i <= 4; i++)
val = m_spel.CalPls(i);
ClearPoints方法,Spel類別
描述
清除目前機器人記憶體中的點。
語法
Sub ClearPoints ()
另請參閱
LoadPoints, Robot, SavePoints, SetPoint
ClearPoints範例
VB 例:
With m_spel
.ClearPoints()
.SetPoint(1, 100, 200, -20, 0, 0, 0)
.Jump(1)
End With
C# 例:
m_spel.ClearPoints();
m_spel.SetPoint(1, 100, 200, -20, 0, 0, 0);
m_spel.Jump(1);
Connect方法,Spel類別
描述
連接Spel類別執行個體與控制器。
語法
Sub Connect (ConnectionName As String)
Sub Connect (ConnectionName As String, ConnectionPassword As String)
Sub Connect (ConnectionNumber As Integer)
Sub Connect (ConnectionNumber As Integer, ConnectionPassword As String)
參數
- ConnectionName
表示連接名稱的字串。 - ConnectionNumber
代表連接編號的整數值。連接編號是Epson RC+中[安裝] - [電腦與控制器連接]對話方塊的編號。若要使用上次成功連接的目標,請指定 -1。 - ConnectionPassword
代表連線密碼的字串。若控制器具有用於連接控制器的密碼,並且密碼未在Epson RC+[安裝] - [電腦與控制器連接]對話方塊中設定,則必須設定用於連接控制器的密碼。
備註
當Spel類別執行個體需要與控制器進行通訊時,它會自動連線。若要明確地連線至控制器,請使用Connect方法。
另請參閱
Disconnect, Initialize
注意
如果在[電腦與控制器通信]對話框中更改連接號,則此方法的“ConnectionNumber”參數值將受到影響。請檢查RC+API端的程式。
Connect範例
VB 例:
Try
m_spel.Connect(1)
Catch ex As RCAPINet.SpelException
MsgBox(ex.Message)
End Try
C# 例:
try{
m_spel.Connect(1);
}
catch(RCAPINet.SpelException ex){
MessageBox.Show(ex.Message);
}
Continue方法,Spel類別
描述
發生暫停時,恢復控制器的所有任務。
語法
Sub Continue ()
備註
使用Continue可恢復因Pause方法或安全防護打開而暫停的所有任務。
當安全防護在任務執行期間打開時,機器人將會減速至停止狀態,且機器人馬達將會關閉。關閉安全防護後,您可使用Continue恢復週期。
另請參閱
Pause, Start, Stop
Continue範例
VB 例:
Sub btnContinue_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnContinue.Click
btnPause.Enabled = True
btnContinue.Enabled = False
Try
m_spel.Continue()
Catch ex As RCAPINet.SpelException
MsgBox(ex.Message)
End Try
End Sub
C# 例:
void btnContinue_Click(object sender, EventArgs e)
{
btnPause.Enabled = true;
btnContinue.Enabled = true;
try{
m_spel.Continue();
}
catch(RCAPINet.SpelException ex){
MessageBox.Show(ex.Message);
}
}
Ctr方法,Spel類別
描述
傳回指定輸入計數器的計數器值。
語法
Function Ctr (BitNumber As Integer) As Integer
參數
- BitNumber
被設為計數器的輸入位編號。僅可同時啟用16個計數器。
傳回值
傳回計數器值。(0至65535的整數)
另請參閱
CtReset
Ctr範例
VB 例:
lblCounter.Text = m_spel.Ctr(1).ToString()
C# 例:
lblCounter.Text = m_spel.Ctr(1).ToString();
CtReset方法,Spel類別
描述
重置指定輸入計數器的計數器值。同時將輸入定義為計數器輸入。
語法
Sub CtReset (BitNumber As Integer)
參數
- BitNumber
被設為計數器的輸入位編號。僅可同時啟用16個計數器。
另請參閱
Ctr
CtReset範例
VB 例:
m_spel.CtReset(2)
C# 例:
m_spel.CtReset(2);
Curve方法,Spel類別
描述
定義沿著曲徑移動手臂所需的資料與點。可以在路徑中定義許多點資料,以改善路徑的精確度。
語法
Sub Curve ( FileName As String, Closure As Boolean, Mode As Integer, NumOfAxis As Integer, PointList As String )
參數
- FileName
指定代表點資料保存檔案之路徑和名稱的字串的檔案末尾將加上.crv副檔名。當執行Curve指令時,將會建立fileName。 - Closure
指定是否要將路徑的最後一個點連接至第一個點的Boolean運算式。 - Mode
指定是否要在U軸的正切方向自動插補手臂。
模式設定 | 正切修正 |
---|---|
0 | No |
2 | Yes |
- NumOfAxes
介於2 - 4的整數運算式,用以指定曲線動作期間受控軸的數量,如下所述:
2 : 在沒有Z軸移動或U軸旋轉的情況下,於XY平面產生曲線。3 : 在沒有U軸旋轉的情況下,於XYZ平面產生曲線。(Theta 1、Theta2及Z)4: 在U軸旋轉的情況下,於XYZ平面產生曲線。(控制4個軸) - pointList
{ point expression|P(start:finish) } [, output command ] ...
此參數實際上是連續的點編號,以及用逗號分隔的選用輸出陳述式,或是以冒號分隔的遞增點範圍。如果點資料完整並依遞增或遞減順序列出,可使用一個冒號合併兩個點編號,例如P(1:5)。以逗號分隔的連續點通常如下所示:
Curve MyFile, O, 0, 4, P1, P2, P3, P4
或以冒號指定,如下所示:
Curve MyFile, O, 0, 4, P(1:4)
上述範例是使用 P1、P2、P3、P4 來指定曲線。輸出指令可省略,在曲線動作中控制輸出操作時使用。此指令指定 I/O 或記憶體 I/O 的開啟或關閉。輸出指令會在前一個機械手臂通過連續點數據的特定點後執行。1 個 Curve 陳述式中最多可包含 16 個輸出指令。下述範例是機械手臂通過 P2 後執行「On 2」指令,之後機械手臂通過從 P3 至 P10 的所有點。 Curve "MyFile", C, 0, 4, P1, P2, ON 2, P(3:10)
備註
使用Curve來定義以CVMove方法執行的樣條路徑。如需詳細資訊,請參閱SPEL+的Curve命令。
另請參閱
Curve (SPEL+ Statement), CVMove Method
Curve範例
VB 例:
m_spel.Curve("mycurveFile", True, 0, 4, "P(1:3), On 1, P(4:7)")
m_spel.CVMove("mycurveFile")
C# 例:
m_spel.Curve("mycurveFile", True, 0, 4, "P(1:3), On 1, P(4:7)");
m_spel.CVMove("mycurveFile");
CVMove方法,Spel類別
描述
執行由Curve指令定義的連續樣條路徑動作。
語法
Sub CVMove (FileName As String [, OptionList As String])
參數
- FileName
字串,代表透過Curve命令建立的檔案名稱。 - OptionList
包含Till規格的字串運算式。
備註
使用CVMove來執行以Curve方法定義的路徑。如需詳細資訊,請參閱SPEL+命令的CVMove。若需要以CP執行CVMove,建議您從SPEL+任務來執行CVMove,而不要從應用程式執行。這是因為要讓CP動作正確執行,系統必須事先知道下一個動作目標的位置。由於一次只能執行一個RC+ API命令,因此系統無法事先知道下一個目標的位置。
另請參閱
Curve, CVMove(SPEL+)
CVMove範例
VB 例:
m_spel.Curve("mycurveFile", True, 0, 4, "P(1:3), On 1, P(4:7)")
m_spel.CVMove("mycurveFile", "CP Till Sw(1) = 1")
m_spel.CVMove("mycurveFile")
C# 例:
m_spel.Curve("mycurveFile", True, 0, 4, "P(1:3), On 1, P(4:7)");
m_spel.CVMove("mycurveFile", "CP Till Sw(1) = 1");
m_spel.CVMove("mycurveFile");
CX、CY、CZ、CU、CV、CW、CR、CS、CT方法,Spel類別
描述
從一點擷取座標值。- CV和CW用於6軸機器人- CS和CT用於附加軸 - CR用於Joint 7軸機器人
語法
Function CX (PointExpr As String) As Single
Function CY (PointExpr As String) As Single
Function CZ (PointExpr As String) As Single
Function CU (PointExpr As String) As Single
Function CV (PointExpr As String) As Single
Function CW (PointExpr As String) As Single
Function CR (PointExpr As String) As Single
Function CS (PointExpr As String) As Single
Function CT (PointExpr As String) As Single
參數
- PointExpr
字串運算式,用於指定搜索指定座標的點。只要從P0開始,即可使用任何有效的點運算式。P*也可以用於從目前位置擷取座標。
傳回值
指定的座標值。
CX、CY、CZ的傳回值:實際值(公釐)
CU、CV、CW的傳回值:實際值(度)
CR、CS、CT的傳回值:實際值
另請參閱
GetPoint, SetPoint
CX、CY、CZ、CU、CV、CW、CR、CS、CT範例
VB 例:
Dim x As Single, y As Single
x = m_spel.CX("P1")
y = m_spel.CY("P*")
C# 例:
float x, y;
x = m_spel.CX("P1");
y = m_spel.CY("P*");
Delay方法,Spel類別
描述
指定的延遲時間(毫秒)。
語法
Sub Delay (Milliseconds As Integer)
參數
- Milliseconds
延遲的毫秒數。
Delay範例
VB 例:
m_spel.Delay(500)
C# 例:
m_spel.Delay(500);
DegToRad方法,Spel類別
描述
將度轉換成徑度。
語法
Function DegToRad (degrees As Double) As Double
參數
- degrees
轉換成徑度的度數。
傳回值
包含徑度的雙精度值。
另請參閱
RadToDeg
DegToRad範例
VB 例:
Dim rad As Double
rad = m_spel.DegToRad(45)
C# 例:
double rad;
rad = m_spel.DegToRad(45);
Disconnect方法,Spel類別
描述
從目前連線中斷Spel類別執行個體的連線。
語法
Sub Disconnect ()
備註
使用Disconnect可中斷目前控制器的連線。
另請參閱
Connect, Initialize
Disconnect範例
VB 例:
Try
m_spel.Disconnect()
Catch ex As RCAPINet.SpelException
MsgBox(ex.Message)
End Try
C# 例:
try{
m_spel.Disconnect();
}
catch(RCAPINet.SpelException ex){
MessageBox.Show(ex.Message);}
ECP方法,Spel類別
描述
選擇目前的ECP定義。
語法
Sub ECP (ECPNumber As Integer)
參數
- ECPNumber
0~15的整數值,用於在下一個動作命令從16個ECP設定中指定使用哪一個(可省略)。ECP 0時會停用ECP選擇。
另請參閱
ECPSet
ECP範例
VB 例:
m_spel.ECP(1)
m_spel.Move("P1 ECP")
C# 例:
m_spel.ECP(1);
m_spel.Move("P1 ECP");
ECPClr方法,Spel類別
描述
清除(取消定義)目前機器人的外部控制點。
語法
Sub ECP (ECPNumber As Integer)
參數
- ECPNumber
整數值,代表要清除的ECP編號(ECP 0為預設值,無法清除)。
另請參閱
ECP, ECPDef
ECP範例
VB 例:
m_spel.ECPClr(1)
C# 例:
m_spel.ECPClr(1);
ECPDef方法,Spel類別
描述
傳回ECP定義狀態。
語法
Function ECPDef (ECPNumber As Integer) As Boolean
參數
- ECPNumber
代表要傳回狀態之ECP的整數值。
傳回值
若指定ECP已定義,會傳回True,否則會傳回False。
另請參閱
ECP, ECPClr
ECP範例
VB 例:
x = m_spel.ECPDef(1)
C# 例:
x = m_spel.ECPDef(1);
ECPSet方法,Spel類別
描述
定義ECP(外部控制點)。
語法
Sub ECPSet ( ECPNumber As Integer, Point As SpelPoint)
Sub ECPSet ( ECPNumber As Integer, XCoord as Double, YCoord as Double, ZCoord as Double, UCoord as Double [, VCoord As Double] [, WCoord as Double] )
參數
- ECPNumber
是一個代表要定義的外部控制點的運算式,或者1~15的整數運算式 - Point
包含點資料的SpelPoint。 - XCoord
外部控制點X座標。 - YCoord
外部控制點Y座標。 - ZCoord
外部控制點Z座標。 - UCoord
外部控制點U座標。 - VCoord
外部控制點V座標(可省略) - WCoord
外部控制點W座標(可省略)
另請參閱
ArmSet, ECP, GetECP, TLSet
ECPSet範例
VB 例:
m_spel.ECPSet(1, 100.5, 99.3, 0, 0)
C# 例:
m_spel.ECPSet(1, 100.5, 99.3, 0, 0);
EnableEvent方法,Spel類別
描述
針對EventReceived事件啟用特定系統事件。
語法
Sub EnableEvent (EventNumber As RCAPINet.SpelEvents, Enabled as Boolean)
參數
- EventNumber
要啟用或停用的事件。 - Enabled
設為True可啟用事件,設為False則停用事件。
另請參閱
EventReceived
EnableEvent範例
VB 例:
With m_spel
.EnableEvent(RCAPINet.SpelEvents.ProjectBuildStatus, True)
.BuildProject()
End With
C# 例:
m_spel.EnableEvent(RCAPINet.SpelEvents.ProjectBuildStatus, true);
m_spel.BuildProject();
ExecuteCommand方法,Spel類別
描述
將命令傳送至Epson RC+ 8.0並等待完成。
語法
Sub ExecuteCommand (Command As String [, ByRef Reply As String])
參數
- Command
包含SPEL+命令的字串。 - Reply
傳回選擇性的回覆。
備註
一般而言,不需要使用ExecuteCommand。執行Spel方法可以執行大部分的操作。不過,有時還是需執行SPEL+多重陳述式。多重陳述式是一行命令,包含以分號分隔的多個陳述式。使用ExecuteCommand可執行多重陳述式。
例:SPELCom1.ExecSPELCmd “JUMP pick; ON tipvac”
最大命令行長度為200個字元。
另請參閱
Pause
ExecuteCommand範例
VB 例:
m_spel.ExecuteCommand("JUMP P1\!D50; ON 1\!")
C# 例:
m_spel.ExecuteCommand("JUMP P1\!D50; ON 1\!");
FBusIO_GetBusStatus 方法,Spel類別
描述
傳回指定的現場匯流排的狀態。
語法
Function FBusIO_GetBusStatus (BusNumber As Integer) As Integer
參數
- BusNumber
現場匯流排系統的編號的整數值。此數字始終為16,是連接到控制器PC側的現場匯流排主機板的總線的ID。
傳回值
0 - OK
1 - 未連接
2 - 關機
備註
注意
僅當啓用了現場匯流排主機板選配件功能時,才可以用本方法。
另請參閱
FBusIO_GetDeviceStatus, FBusIO_SendMsg, IsOptionActive
FBusIO_GetBusStatus 範例
VB 例:
Dim val As Integer
val = m_spel.FBusIO_GetBusStatus(16)
C# 例:
int busStatus;
busStatus = m_spel.FbusIO_GetBusStatus(16);
FBusIO_GetDeviceStatus 方法,Spel類別
描述
傳回指定的現場匯流排裝置的狀態。
語法
Function FBusIO_GetDeviceStatus (BusNumber As Integer, DeviceID As Integer) As Integer
參數
- BusNumber
現場匯流排系統的編號的整數值。此數字始終為16,是連接到控制器PC側的現場匯流排主機板的總線的ID。 - DeviceID
代表裝置的現場匯流排ID的整數值
傳回值
0 - OK
1 - 未連接
2 - 關機
3 - 同步錯誤:裝置正在初始化,或裝備的傳輸速率不正確。
備註
注意
僅當啓用了現場匯流排主機板選配件功能時,才可以用本方法。
另請參閱
FBusIO_GetBusStatus, FBusIO_SendMsg, IsOptionActive
FBusIO_GetDeviceStatus 範例
VB 例:
Dim val As Integer
val = m_spel.FBusIO_GetDeviceStatus(16, 10)
C# 例:
dev
ideStatus = m_spel.FbusIO_GetDeviceStatus(16, 10);
FBusIO_SendMsg 方法,Spel類別
描述
向現場匯流排I/O裝置發送訊息,並傳回回答。
語法
Sub FBusIO_SendMsg (BusNumber As Integer, DeviceID As Integer, MsgParam As Integer, SendData As Byte(), ByRef RecvData As Byte())
參數
- BusNumber
現場匯流排系統的編號的整數值。此數字始終為16,是連接到控制器PC側的現場匯流排主機板的總線的ID。 - DeviceID
代表裝置的現場匯流排ID的整數值 - MsgParam
代表訊息參數的整數運算式。不可用於DeviceNet。 - SendData
在位元組類型的陣列中,指定發送給裝置的資料。此陣列尺寸必須和發送的位元組尺寸相同。如果不發送訊息,請指定為“0”。 - RecvData
在位元組類型的陣列中,指定從裝置接收的資料。此陣列會根據接收到的位元組數,自動轉換尺寸大小。
備註
注意
僅當啓用了現場匯流排主機板選配件功能時,才可以用本方法。
另請參閱
FBusIO_GetBusStatus, FBusIO_GetDeviceStatus, IsOptionActive
FBusIO_SendMsg 範例
VB 例:
'向DeviceNet發送訊息
Dim recvData() as Byte
Dim sendData(6) as Byte
Array.Clear(sendData, 0, sendData.Length)
sendData(0) = 14 '命令
sendData(1) = 1 '類別
sendData(3) = 1 '範例
sendData(5) = 7 '屬性
' DeviceNet的 MsgParam是0
m_spel.FbusIO_SendMsg(16, 1, 0, sendData, recvData)
' 向Profibus發送訊息
Dim recvData() As Byte;
m_spel.FbusIO_SendMsg(16, 1, 56, Nothing, recvData);
C# 例:
// 向DeviceNet發送訊息
byte[] sendData, recvData;
byte[] sendData = new byte[6];
Array.Clear(sendData, 0, sendData.Length);
sendData[0] = 14; //命令
sendData[1] = 1; //類別
sendData[3] = 1; //範例
sendData[5] = 7; //屬性
// DeviceNet的MsgParam是0
m_spel.FbusIO_SendMsg(16, 201, 0, sendData, out recvData);
// 向Profibus發送訊息
byte[] recvData;
m_spel.FbusIO_SendMsg(16, 1, 56, null, out recvData);
FGGet 方法,Spel類別
描述
取得力覺引導序列,或者力覺引導物件的結果。
語法
Sub FGGet (Sequence As String, [Object As String], Property As SpelForceProps, ByRef Result As Boolean)
Sub FGGet (Sequence As String, [Object As String], Property As SpelForceProps, ByRef Result As Double)
Sub FGGet (Sequence As String, [Object As String], Property As SpelForceProps, ByRef Result As Integer)
Sub FGGet (Sequence As String, [Object As String], Property As SpelForceProps, ByRef Result As String)
參數
- Sequence
力覺引導序列的名稱,或者代表力覺引導序列名稱的字串變數 - Object
Force Guide對象名稱或代表Force Guide對象名稱的字串變數。取得Force Guide序列的結果時可省略。 - Property
獲得值的結果的名稱 - Result
代表傳回值的變數。數字和類型因結果而異。
另請參閱
FGRun
FGGet範例
VB 例:
Dim val As Integer
m_spel.MotorsOn = True
m_spel.FGRun("Sequence1")
m_spel.FGGet("Sequence1","", SpelForceProps.EndStatus, val)
C# 例:
int errCode;
m_spel.MotorsOn = true;
m_spel.FGRun("Sequence1");
m_spel.FGGet("Sequence1","", SpelForceProps.EndStatus, val);
FGRun 方法,Spel類別
描述
執行力覺引導序列。
語法
Sub FGRun (Sequence As String)
參數
- Sequence
力覺引導序列的名稱,或者代表力覺引導序列名稱的字串變數
備註
執行指定的力覺引導序列。力覺引導序列從執行了FGRun語句的位置開始。在執行之前,先用移動命令Go語句或Move語句移動到預期的起點位置。
FGRun會在指定的力覺引導序列結束之後,進入下一個語句。
使用SGGet取得FGRun中執行的力覺引導序列的結果。
當在CP參數或CP語句中啟用了路徑運動,請等待其停止,然後執行力覺引導序列。
開始執行時,滿足以下條件之一,則錯誤。
程式中指定的機器人和RobotNumber屬性中指定的機器人相異
在Robot語句中指定正確的機器人。
程式中指定的機器人類型和RobotType屬性中指定的機器人類型相異
在Robot語句中指定正確的機器人。
程式中指定的工具編號和RobotTool屬性中指定的工具編號相異
在Tool語句中指定正確的工具編號。
馬達關閉狀態
在Motor語句中打開馬達。
力覺控制機能執行中
在FCEnd語句中停止力覺控制。
輸送帶追蹤運行中,請以Cnv_AbortTrack語句停止輸送帶追蹤。
轉矩控制模式啟用中
在TC語句中禁用轉矩控制模式。
執行FGRun會自動重寫以下屬性,請不要和以下屬性一起使用。
FM物件
AvgForceClear屬性
PeakForceClear屬性
程式執行中,無法執法執行本方法。
另請參閱
FGGet
FGRun範例
VB 例:
Dim errCode As Integer
m_spel.MotorsOn = True
m_spel.FGRun("Sequence1")
errCode = m_spel.FGGet("Sequence1", SpelForceProps.EndStatus, val)
C# 例:
int errCode;
m_spel.MotorsOn = true;
m_spel.FGRun("Sequence1");
errCode = m_spel.FGGet("Sequence1", SpelForceProps.EndStatus, val);
Find方法,Spel類別
描述
設定要在動作指令期間儲存座標的條件。
語法
Sub Find (Condition As String)
參數
- Condition
指定輸入狀態作為觸發。
另請參閱
Go, Jump
Find範例
VB 例:
m_spel.Find("Sw(5) = On")
C# 例:
m_spel.Find("Sw(5) = On");
Fine方法,Spel類別
描述
指定並顯示目標點的定位準確度。
語法
Sub Fine (J1MaxErr As Integer, J2MaxErr As Integer, J3MaxErr As Integer, J4MaxErr As Integer , J5MaxErr As Integer, J6MaxErr As Integer [, J7MaxErr As Integer][, J8MaxErr As Integer] [, J9MaxErr As Integer])
參數
- J1MaxErr - J9MaxErr
介於0-32767的整數,代表各點允許的定位誤差。 關節7、8及9的值為選用。
另請參閱
Weight
Fine範例
VB 例:
m_spel.Fine(1000, 1000, 1000, 1000, 0, 0)
C# 例:
m_spel.Fine(1000, 1000, 1000, 1000, 0, 0);
GetAccel方法,Spel類別
描述
傳回指定的加速/減速值。
語法
Function GetAccel (ParamNumber As Integer) As Integer
參數
- ParamNumber
可包含下列數值的整數運算式:1:加速設定值;2:減速設定值;3:在Jump中使用的起始加速設定值;4:在Jump中使用的起始減速設定值;5:在Jump中使用的接近加速設定值;6:在Jump中使用的接近減速設定值。
傳回值
包含指定加速/減速值的整數。
另請參閱
Accel
GetAccel範例
VB 例:
Dim x As Integer
x = m_spel.GetAccel(1)
C# 例:
int x;
x = m_spel.GetAccel(1);
GetArm方法,Spel類別
描述
傳回目前機器人的目前手臂編號。
語法
Function GetArm () As Integer
傳回值
包含目前手臂編號的整數。
另請參閱
Arm, ArmSet, Robot, Tool
GetArm範例
VB 例:
saveArm = m_spel.GetArm()
m_spel.Arm(2)
C# 例:
m_spel.Arm(2);
GetConnectionInfo方法,Spel類別
描述
傳回有關控制器連線的資訊。
語法
Function GetConnectionInfo() As SpelConnectionInfo()
傳回值
SpelConnectionInfo的陣列。
另請參閱
GetControllerInfo
傳回值
GetConnectionInfo會傳回SpelConnectionInfo的陣列。連線資訊是在Epson RC+的[Setup]-[PC to Controller Communication]對話方塊中設定。
GetConnectionInfo範例
VB 例:
Dim info() As SpelConnectionInfo
info = m_spel.GetConnectionInfo()
C# 例:
SpelConnectionInfo[] info = m_spel.GetConnectionInfo();
GetControllerInfo方法,Spel類別
描述
傳回有關目前控制器的資訊。
語法
Function GetControllerInfo() As SpelControllerInfo
傳回值
SpelControllerInfo執行個體。
另請參閱
GetErrorMessage, GetRobotInfo, GetTaskInfo
備註
GetControllerInfo會傳回SpelControllerInfo類別的新執行個體,其中包含控制器資訊屬性。
GetControllerInfo範例
VB 例:
Dim info As SpelControllerInfo
Dim msg As String
info = m_spel.GetControllerInfo()
msg = "Project Name: " & info.ProjectName & vbCrLf _
& "Project ID: " & info.ProjectID
MsgBox(msg)
C# 例:
SpelControllerInfo info;
string msg;
info = m_spel.GetControllerInfo();
msg = "Project Name:" + info.ProjectName + "\r\n ProjectID :" +
"info.ProjectID";
MessageBox.Show(msg);
GetCurrentConnectionInfo 方法,Spel類別
描述
傳回目前控制器的資訊。
語法
Function GetCurrentConnectionInfo () As SpelConnectionInfo
傳回值
SpelConnectionInfo
另請參閱
GetConnectionInfo, GetControllerInfo
GetCurrentConnectionInfo範例
VB 例:
Dim info As SpelConnectionInfo
info = m_spel.GetCurrentConnectionInfo()
C# 例:
SpelConnectionInfo info;
info = m_spel.GetCurrentConnectionInfo();
GetCurrentUser方法,Spel類別
描述
傳回目前Epson RC+ 8.0使用者。
語法
Function GetCurrentUser () As String
傳回值
包含目前使用者的字串變數。
另請參閱
Login
GetCurrentUser範例
VB 例:
Dim currentUser As String
currentUser = m_spel.GetCurrentUser()
C# 例:
string currentUser;
currentUser = m_spel.GetCurrentUser();
GetECP方法,Spel類別
描述
傳回目前機器人的目前ECP編號。
語法
Function GetECP () As Integer
傳回值
包含目前ECP數量的整數。
另請參閱
ECP, ECPSet
GetECP範例
VB 例:
saveECP = m_spel.GetECP()
m_spel.ECP(2)
C# 例:
saveECP = m_spel.GetECP();
m_spel.ECP(2);
GetErrorMessage方法,Spel類別
描述
傳回指定錯誤或警告代碼的錯誤訊息。
語法
Function GetErrorMessage (ErrorCode As Integer) As String
參數
- ErrorCode
傳回相關錯誤訊息的錯誤代碼。
傳回值
包含錯誤訊息的字串。
另請參閱
ErrorCode
GetErrorMessage範例
VB 例:
Dim msg As String
If m_spel.ErrorOn Then
msg = m_spel.GetErrorMessage(m_spel.ErrorCode)
MsgBox(msg)
End If
C# 例:
string msg;
if (m_spel.ErrorOn) {
msg = m_spel.GetErrorMessage(m_spel.ErrorCode);
MessageBox.Show(msg);
}
GetIODef方法,Spel類別
描述
取得輸入、輸出或記憶體I/O位元、位元組或字元的定義資訊。
語法
Sub GetIODef(Type As SpelIOLabelTypes, Index As Integer, ByRef Label as String, ByRef Description As String)
參數
- Type
指定I/O類型,如下所示: InputBit = 1 InputByte = 2 InputWord = 3 OutputBit = 4 OutputByte = 5 OutputWord = 6 MemoryBit = 7 MemoryByte = 8 MemoryWord = 9 InputReal = 10 OutputReal = 11 - Index
指定位元或埠號。 - Label
傳回標籤。 - Description
傳回描述。
傳回值
數值會在Label和Description參數中傳回。
備註
使用GetIODef可取得目前專案中所有I/O所使用的標籤與描述。
另請參閱
SetIODef
GetIODef範例
VB 例:
Dim label As String
Dim desc As String
m_spel.GetIODef(SpelIOLabelTypes.InputBit, 0, label, desc)
C# 例:
string label, desc;
m_spel.GetIODef(SpelIOLabelTypes.InputBit, 0, out label, out desc);
GetJRange 方法,Spel類別
描述
針對指定關節,傳回允許動作區域的脈衝值(範圍設定值)。
語法
Function GetJRange (JointNumber As Integer, Bound As Integer) As Integer
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數) - Bound
用證書指定以下2個值之一。1: 指定下限脈衝值
2: 指定上限脈衝值
傳回值
傳回指定關節的範圍設定值(整數值、單位: 脈衝)。
另請參閱
JRange
GetJRange範例
VB 例:
Dim val1 As Integer
Dim val2 As Integer
val1 = m_spel.GetJRange(1, 1)
val2 = m_spel.GetJRange(1, 2)
C# 例:
int minRange, maxRange;
minRange = m_spel.GetJRange(1, 1);
maxRange = m_spel.GetJRange(1, 2);
GetLimitTorque方法,Spel類別
描述
針對目前機器人的指定關節,傳回限制力矩。
語法
Function GetLimitTorque (JointNumber As Integer) As Integer
參數
- JointNumber
代表管道#的整數值。
傳回值
介於1至9的整數值,代表指定關節的限制力矩設定。
另請參閱
GetRealTorque, GetRobotPos, LimitTorque
GetLimitTorque範例
VB 例:
Dim j1LimitTorque As Integer
j1LimitTorque = m_spel.GetLimitTorque(1)
C# 例:
int j1LimitTorque;
j1LimitTorque = m_spel.GetLimitTorque(1);
GetLimZ方法,Spel類別
描述
傳回目前LimZ設定。
語法
Function GetLimZ () As Single
傳回值
包含LimZ值的實際值。
另請參閱
LimZ, Jump
GetLimZ範例
VB 例:
saveLimZ = m_spel.GetLimZ()
m_spel.LimZ(-22)
C# 例:
saveLimZ = m_spel.GetLimZ();
m_spel.LimZ(-22);
GetPoint方法,Spel類別
描述
擷取某一機器人點的座標資料。
語法
Function GetPoint (PointNumber As Integer) As SpelPoint
Function GetPoint (PointName As String) As SpelPoint
參數
- PointNumber
目前機器人的控制器點記憶體中某個點的整數運算式。 - PointName
包括修飾字元的字串。可使用點標籤Pxxx、P及「」。
傳回值
SpelPoint值
另請參閱
SetPoint
GetPoint範例
VB 例:
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 25.0
m_spel.Go(pt)
C# 例:
SpelPoint pt;
pt = m_spel.GetPoint("P0");
pt.X = 25.0;
m_spel.Go(pt);
GetRealTorque方法,Spel類別
描述
針對目前機器人的指定關節,傳回力矩。
語法
Function GetRealTorque (JointNumber As Integerer) As Double
參數
- JointNumber
所需之關節的整數運算式。
傳回值
介於0至1的雙精度值,代表目前功率模式及指定關節的最大力矩部分。
另請參閱
GetLimitTorque, GetRobotPos
GetRealTorque範例
VB 例:
Dim j1Torque As Integer
j1Torque = m_spel.GetRealTorque(1)
C# 例:
double j1Torque;
j1Torque = m_spel.GetRealTorque(1);
GetRobotInfo 方法,Spel類別
描述
傳回機器人的資訊。
語法
Function GetRobotInfo (RobotNumber As Integer) As SpelRobotInfo
參數
- RobotNumber
指定機器人的編號
傳回值
SpelRobotInfo
另請參閱
GetControllerInfo, GetTaskInfo
GetRobotInfo範例
VB 例:
Dim info As SpelRobotInfo
Dim msg As String
info = m_spel.GetRobotInfo(1)
msg = "Robot Model: " & info.RobotModel & vbCrLf _
& "Robot Serial: " & info.RobotSerial
MsgBox(msg)
C# 例:
SpelRobotInfo info;
string msg;
info = m_spel.GetRobotInfo(1);
msg = "Robot Model: " + info.RobotModel +
"\r\n Robot Serial: " + info.RobotSerial;
MessageBox.Show(msg);
GetRobotPos方法,Spel類別
描述
傳回目前機器人位置。
語法
Function GetRobotPos( PosType As SpelRobotPosType, Arm As Integer, Tool As Integer, Local As Integer) As Single()
參數
- PosType
指定要傳回之位置資料的類型。 - Arm
指定機器人手臂的整數運算式。 - Tool
指定機器人工具的整數運算式。 - Local
指定機器人本地的整數運算式。
傳回值
包含9個元素的單一資料類型陣列。傳回的資料係依指定的PosType而定。
World X, Y, Z, U, V, W, R, S, T
Joint J1, J2, J3, J4, J5, J6, J7, J8, J9
Pulse Pls1, Pls2, Pls3, Pls4, Pls5, Pls6, Pls7, Pls8, Pls9
另請參閱
GetPoint
GetRobotPos範例
VB 例:
Dim values() As Single
values = m_spel.GetRobotPos(SpelRobotPosType.World, 0, 0, 0)
C# 例:
float[] values;
values = m_spel.GetRobotPos(SpelRobotPosType.World, 0, 0, 0);
GetSpeed方法,Spel類別
描述
傳回目前機器人的三個速度設定的其中之一。
語法
Function GetSpeed (ParamNumber As Integer) As Integer
參數
- ParamNumber
求得下列任一值的整數運算式:1:PTP動作速度;2:Jump起始速度;3:Jump接近速度。
傳回值
介於1-100的整數運算式。
另請參閱
Speed
GetSpeed範例
VB 例:
Dim ptpSpeed As Integer
ptpSpeed = m_spel.GetSpeed(1)
C# 例:
ptp
Speed = m_spel.GetSpeed(1);
GetTaskInfo 方法,Spel類別
描述
傳回任務資訊。
語法
Function GetTaskInfo (TaskName As String) As SpelTaskInfo
Function GetTaskInfo (TaskNumber As Integer) As SpelTaskInfo
參數
- TaskName
指定任務名稱 - TaskNumber
指定任務#
傳回值
SpelTaskInfo
另請參閱
GetControllerInfo, GetRobotInfo
GetTaskInfo範例
VB 例:
Dim info As SpelTaskInfo
Dim msg As String
info = m_spel.GetTaskInfo(1)
msg = "Task Name: " & info.TaskName & vbCrLf _
& "Task State: " & info.State
MsgBox(msg)
C# 例:
SpelTaskInfo info;
string msg;
info = m_spel.GetTaskInfo(1);
msg= "Task Name: " + info.TaskName +
"\r\n Task State: " + info.State;
MessageBox.Show(msg);
GetTool方法,Spel類別
描述
傳回目前機器人的目前工具編號。
語法
Function GetTool () As Integer
傳回值
包含目前工具編號的整數。
另請參閱
Arm, TLSet, Tool
GetTool範例
VB 例:
saveTool = m_spel.GetTool()
m_spel.Tool(2)
C# 例:
saveTool = m_spel.GetTool();
m_spel.Tool(2);
GetVar方法,Spel類別
描述
傳回控制器中SPEL+全域保留變數的值。
語法
Function GetVar(VarName As String) As Object
參數
- VarName
SPEL+全域保留變數的名稱。對於陣列,可以傳回整個陣列或只傳回一個元素。
傳回值
您可使用GetVar在控制器的目前專案中搜尋任何全域保留變數的數值。必須先建置專案,再搜尋數值。
若要擷取整個陣列,請在VarName中提供陣列名稱。若要擷取一個陣列的某個元素,請在VarName中提供子腳本。
備註
您可使用GetVar在控制器的目前專案中擷取任何全域保留變數的數值。在擷取數值之前,必須成功建置專案。
另請參閱
SetVar
GetVar範例
在SPEL+專案中會宣告變數:
Global Preserve Integer g_myIntVar
Global Preserve Real g_myRealArray(10)
Global Preserve String g_myStringVar$
Function main
...
Fend
在Visual Basic專案中:
由於已將g_myIntVar宣告為整數,請將用來取得g_myInVar值的Visual Basic變數宣告為整數。若為g_myRealArray,請宣告為Single變數的陣列。
Dim myIntVar As Integer
Dim myRealArray() As Single
Dim myStringVar As String
myIntVar = m_spel.GetVar("g_myIntVar")
myRealArray = m_spel.GetVar("g_myRealArray")
myStringVar = m_spel.GetVar("g_myStringVar$")
C #專案中的範例:
由於已將g_myIntVar宣告為整數,請將用來取得g_myInVar值的C#變數宣告為整數。若為g_myRealArray,請宣告為Float變數的陣列。
int myIntVar;
float[] myRealArray;
string myStringVar;
myIntVar = m_spel.GetVar("g_myIntVar");
myRealArray = m_spel.GetVar("g_myRealArray");
myStringVar = m_spel.GetVar("g_myStringVar$");
Go方法,Spel類別
描述
以PTP的形式將手臂從目前位置移至指定點或XY位置。GO指令可同時移動任何組合的機器人軸。
語法
Sub Go (PointNumber As Integer)
Sub Go (Point As SpelPoint)
Sub Go (Point As SpelPoint, AttribExpr As String)
Sub Go (PointExpr As String)
參數
每個語法都有一個參數,用以指定在Go動作期間手臂移動的結束點。此為PTP動作結束時的最終位置。
- PointNumber
從目前機器人的點記憶體(被保存在控制器中)中使用先前示教點的編號,以指定終點。 - Point
透過使用SpelPoint資料類型來指定目標點。 - AttribExpr
透過使用字串運算式來指定結束點屬性。
可包括CP、LJM、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。 - PointExpr
透過使用字串運算式來指定終點。
可包括CP、LJM、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。
另請參閱
Accel, Speed
Arc, Arc3, CVMove, Jump, Jump3, Jump3CP, Move
BGo, BMove, TGo, TMove
Arch, Find, Sense, Till
Go範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.Go(100)
' 使用SpelPoint指定的點
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 125.5
m_spel.Go(pt)
' 使用點運算式指定的點
m_spel.Go("P0 /L /2")
m_spel.Go("P1 :Z(-20)")
' 使用平行處理
m_spel.Go("P1 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.Go("pick")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.Go(100);
// 使用SpelPoint指定的點
SpelPoint pt;
pt = m_spel.GetPoint("P0");
pt.X = 125.5;
m_spel.Go(pt);
// 使用點運算式指定的點
m_spel.Go("P0 /L /2");
m_spel.Go("P1 :Z(-20)");
// 使用平行處理
m_spel.Go("P1 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.Go("pick");
Halt方法,Spel類別
描述
暫停執行指定的任務。
語法
Sub Halt (TaskNumber As Integer)
Sub Halt (TaskName As String)
參數
- TaskNumber
要暫停之任務的任務#。任務#的範圍介於1至32。 - TaskName
要暫停之包含任務名稱的字串運算式。
注意
以Call方法執行的函數,無法透過Halt方法暫停任務。
如欲暫停,請使用Xqt方法。
另請參閱
Resume, Xqt
Halt範例
VB 例:
m_spel.Halt(3)
C# 例:
m_spel.Halt(3);
Here方法,Spel類別
描述
在目前位置示教一個點。
語法
Sub Here (PointNumber As Integer)
Sub Here (PointName As String)
參數
- PointNumber
整數運算式,代表目前機器人的點記憶體中的點。只要從0開始,即可使用任何有效的點編號。 - PointName
點標籤的字串運算式。
另請參閱
SetPoint
Here範例
VB 例:
m_spel.Here("P20")
C# 例:
m_spel.Here("P20");
HideWindow方法,Spel類別
描述
隱藏先前與ShowWindow一起顯示的Epson RC+ 8.0視窗。
語法
Sub HideWindow (WindowID As SpelWindows)
參數
- 視窗ID
要顯示的Epson RC+ 8.0視窗的ID。
另請參閱
RunDialog, ShowWindow
HideWindow範例
VB 例:
Sub btnHideIOMonitor_Click _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnHideIOMonitor.Click
m_spel.HideWindow(RCAPINet.SpelWindows.IOMonitor)
End Sub
C# 例:
void btnHideIOMonitor_Click(object sender, EventArgs e)
{
m_spel.HideWindow(RCAPINet.SpelWindows.IOMonitor);
}
Home方法,Spel類別
描述
將機器人手臂移至使用HomeSet方法設定的使用者定義起始點位置。
語法
Sub Home ()
另請參閱
HomeSet, MCal
Home範例
VB 例:
With m_spel
.MotorsOn = True
.Home()
End With
C# 例:
m_spel.MotorsOn = true;
m_spel.Home();
Hofs 方法,Spel類別
描述
讀取或設置從每個關節的編碼器原點到軟體原點的校正脈衝值。
語法
Function Hofs (JointNumber As Integer) As Integer
Sub Hofs (J1Pulses As Integer, J2Pulses As Integer, J3Pulses As Integer, J4Pulses As Integer, [J5Pulses As Integer], [J6Pulses As Integer], [ J7Pulses As Integer], [J8Pulses As Integer] , [J9Pulses As Integer])
參數
- J1Pulses - J9Pulses
代表第1~9關節的脈衝值的整數
J5Pulses – J9Pulses可以省略
傳回值
傳回指定關節的校正脈衝值(整數值、單位: 脈衝)。
備註
本方法可以顯示或設定原點校正脈衝值。本方法可以設定編碼器原點(Z相)到機械原點的偏位值。
機器人的動作控制基於安裝在每個關節上的編碼器原點,但是編碼器原點不一定與機器人機械原點匹配。因此,可以使用本方法設定校正脈衝值,使編碼器遠點和軟體原點匹配。
注意
除非必須,否則切勿更改Hofs值
Hofs值在出廠時已經精確設定。不必要的更改此值可能會導致定位錯誤或機器人意外行爲。除非必須,否則切勿更改Hofs值。
自動計算Hofs值
要自動計算Hofs值,請將機械臂移動到要校準的位置,然後執行Calib。這樣控制器就會根據CalPls脈衝值和校準位置脈衝值,自動計算Hofs值。
保存和復原Hofs
可以在功能表中選擇[System Configuration]-[Robot]-[Calibration],然後用保存或復原功能,保存或復原Hofs。
另請參閱
CalPls, Home, Hordr, MCal
Hofs範例
VB 例:
Dim val As Integer
val = m_spel.Hofs(1)
C# 例:
int val;
val = m_spel.Hofs(1);
HomeSet方法,Spel類別
描述
指定Home方法所使用的位置。
語法
Sub HomeSet (J1Pulses As Integer, J2Pulses As Integer, J3Pulses As Integer, J4Pulses As Integer ,J5Pulses As Integer, J6Pulses As Integer [, J7Pulses As Integer] [, J8Pulses As Integer][, J9Pulses As Integer])
參數
- J1Pulses - J9Pulses
每個關節的Home位置編碼器脈衝值。關節7、8及9為選用。
另請參閱
Home、MCal
HomeSet範例
VB 例:
' 設定目前位置的起始點位置
With m_spel
.HomeSet(.Pls(1), .Pls(2), .Pls(3), .Pls(4), 0, 0)
End With
C# 例:
// 設定目前位置的起始點位置
m_spel.HomeSet(m_spel.Pls(1), m_spel.Pls(2), m_spel.Pls(3),
m_spel.Pls(4), 0 ,0);
Hordr方法,Spel類別
描述
指定傳回HOME位置的軸順序。
語法
Sub Hordr (Home1 As Integer, Home2 As Integer, Home3 As Integer, Home4 As Integer, Home5 As Integer, Home6 As Integer [, Home7 As Integer] [, Home8 As Integer] [, Home9 As Integer])
參數
- Home 1 - 9
通知哪個軸應在起始點程序的各步驟期間復歸原點的位元模式。0至所有軸之間的任何軸數量都可在第一個步驟期間復歸原點。在指定R、S或T時可以指定Home 7 – 9。
另請參閱
Home, HomeSet, Mcordr
Hordr範例
VB 例:
m_spel.Hordr(2, 13, 0, 0, 0, 0)
C# 例:
m_spel.Hordr(2, 13, 0, 0, 0, 0);
Hour方法,Spel類別
描述
傳回累計系統運作時間(小時)。
語法
Function Hour () As Single
傳回值
表示時間的整數運算式。
Hour範例
VB 例:
Dim hoursRunning As Long
hoursRunning = m_spel.Hour()
C# 例:
float hoursRunning;
hoursRunning = m_spel.Hour();
ImportPoints方法,Spel類別
描述
將點文件導入至目前機器人的目前專案。
語法
Sub ImportPoints (SourcePath As String, ProjectFileName As String [, RobotNumber As Integer])
參數
- SourcePath
字串運算式,代表導入目前專案的檔案以及其特定路徑。副檔名為.pts。 - ProjectFileName
字串運算式,代表只要有目前機器人或提供RobotNumber,即被導入到指定機器人專案中的特定檔案。副檔名為.pts。 - RobotNumber
要使用點文件之機器人的整數運算式。指定0可讓其變為共同點文件。
另請參閱
SavePoints
ImportPoints範例
VB 例:
With m_spel
.ImportPoints("c:\mypoints\model1.pts", "robot1.pts")
End With
C# 例:
m_spel.ImportPoints(@"c:\mypoints\model1.pts", "robot1.pts");
In方法,Spel類別
描述
傳回指定輸入埠的狀態。每個連接埠包含8個輸入位元(一位元組)。
語法
Function In (PortNumber As Integer) As Integer
Function In (Label As String) As Integer
參數
- PortNumber
代表輸入埠的整數。每個埠由8位元(1位元組)組成。 - Label
包含輸入位元組標籤的字串運算式。
傳回值
介於0至255的整數,代表輸入埠的狀態。
另請參閱
InBCD, Out, OpBCD, Sw
In範例
VB 例:
Dim port1Value As Integer
port1Value = m_spel.In(1)
C# 例:
int port1Value;
port1Value = m_spel.In(1);
InBCD方法,Spel類別
描述
傳回8個輸入的輸入狀態(使用BCD格式)。(二進位十進碼)
語法
Function InBCD (PortNumber As Integer) As Integer
Function InBCD (Label As String) As Integer
參數
- PortNumber
代表輸入埠的整數 - Label
代表輸入位元組標籤的字串運算式。
傳回值
介於0至9的整數,代表輸入埠的狀態。
另請參閱
In, Out, OpBCD, Sw
InBCD範例
VB 例:
Dim port1Value As Integer
port1Value = m_spel.InBCD(1)
C# 例:
int port1Value;
port1Value = m_spel.InBCD(1);
Inertia方法,Spel類別
描述
指定目前機器人的裝載慣性和離心率。
語法
Sub Inertia (LoadInertia As Single, Eccentricity As Single)
參數
- LoadInertia
雙精度值,用以指定夾具末端關節(包含夾具末端和工件)中心周圍的總慣性力矩(kgm2)。 - Eccentricity
雙精度值,用以指定夾具末端關節(包含夾具末端和工件)中心周圍的離心率(公釐)。
另請參閱
Weight
Inertia範例
VB 例:
m_spel.Inertia(0.02, 1.0)
C# 例:
m_spel.Inertia(0.02, 1.0);
Initialize方法,Spel類別
描述
初始化Spel類別執行個體。
語法
Sub Initialize ()
備註
一般而言,Spel類別執行個體會在第一個方法執行時自動初始化。當Epson RC+ 8.0載入至記憶體時,初始化可能需要幾秒鐘的時間。在某些情況下,您可能會想在啟動期間先於應用程式中調用initialize。
根據ServerInstance,將RC+ 作為伺服器進程啟動。每個ServerInstance對應於一個控制器和一個專案。如果使用ServerInstance屬性,則必須在執行初始化之前設置它。
另請參閱
Connect, Disconnect, ServerInstance
Initialize範例
VB 例:
m_spel.Initialize()
C# 例:
m_spel.Initialize();
InReal 方法,Spel類別
描述
將2個字元(32位元)的輸入資料,讀取為32位元浮點資料 (符合IEEE754標準)。
語法
Function InReal (PortNumber As Integer) As Single
參數
- PortNumber
代表輸入埠的整數
傳回值
返回輸入埠的狀態,在32位元浮點資料(符合IEEE754標準)中返回。
另請參閱
In, InBCD, InW, Out, OutW, OutReal
InReal範例
VB 例:
Dim val As Single
val = m_spel.InReal(32)
C# 例:
float val;
val = m_spel.InReal(32);
InsideBox方法,Spel類別
描述
傳回接近檢查區域的檢查狀態。
語法
Function InsideBox (BoxNumber As Integer) As Boolean
參數
- BoxNumber
介於1至15的整數運算式,代表要傳回狀態的接近檢查區域。
傳回值
若機器人夾具末端位於指定工作空間內,會傳回True,否則會傳回False。
另請參閱
Box, InsidePlane
InsideBox範例
VB 例:
Dim isInside As Boolean
isInside = m_spel.InsideBox(1)
C# 例:
bool isInside;
isInside = m_spel.InsideBox(1);
InsidePlane方法,Spel類別
描述
傳回接近檢查平面的檢查狀態。
語法
Function InsidePlane (PlaneNumber As Integer) As Boolean
參數
- PlaneNumber
介於1至15的整數運算式,代表要傳回狀態的接近檢查平面。
傳回值
若機器人夾具末端位於指定工作空間內,會傳回True,否則會傳回False。
另請參閱
InsideBox, Plane
InsidePlane範例
VB 例:
Dim isInside As Boolean
isInside = m_spel.InsidePlane(1)
C# 例:
bool isInside;
isInside = m_spel.InsidePlane(1);
InW方法,Spel類別
描述
傳回指定輸入字元埠的狀態。每個字元埠包含16個輸入位元。
語法
Function InW (PortNumber As Integer) As Integer
Function InW (Label As String) As Integer
參數
- PortNumber
代表輸入埠的整數 - Label
包含輸入字元標籤的字串運算式。
傳回值
介於0至65535的整數值,代表輸入埠
另請參閱
In, InBCD, Out, OpBCD, Sw
InW範例
VB 例:
Dim data As Integer
data = m_spel.InW(0)
C# 例:
int data;
data = m_spel.InW(0);
IsOptionActive方法,Spel類別
描述
傳回軟體選配件的狀態。
語法
Function IsOptionActive (option As SpelOptions) As Boolean
參數
- option
代表選配件編號的整數。
傳回值
False - 無效
True - 有效
另請參閱
GetControllerInfo
IsOptionActive範例
VB 例:
Dim ret As Boolean
ret = m_spel.IsOptionActive(SpelOptions.FieldbusMaster)
C# 例:
bool ret;
ret = m_spel.IsOptionActive(SpelOptions.FieldbusMaster);
JRange方法,Spel類別
描述
定義指定機器人關節的允許工作範圍(以脈衝為單位)。
語法
Sub JRange (JointNumber As Integer, LowerLimitPulses As Integer, UpperLimitPulses As Integer)
參數
- jointNumber
介於1 - 9的整數,代表要指定之JRange的關節。 - LowerLimitPulses
代表指定關節下限範圍之編碼器脈衝計數位置的整數。 - UpperLimitPulses
代表指定關節上限範圍之編碼器脈衝計數位置的整數。
另請參閱
XYLim
JRange範例
VB 例:
m_spel.JRange(1, -30000, 30000)
C# 例:
m_spel.JRange(1, -30000, 30000);
JS方法,Spel類別
描述
Jump Sense會偵測手臂是否在完成JUMP指令之前停止(使用SENSE輸入),或手臂是否完成JUMP移動。
語法
Function JS () As Boolean
傳回值
若動作期間偵測到SENSE輸入,會傳回True,否則會傳回False。
另請參閱
Jump, Jump3, Jump3CP, Sense, Till
JS範例
VB 例:
With m_spel
.Sense("Sw(1) = On")
.Jump("P1 Sense")
stoppedOnSense = .JS()
End With
C# 例:
m_spel.Sense("Sw(1) = On");
m_spel.Jump("P1 Sense");
stoppedOnSense = m_spel.JS();
JTran方法,Spel類別
描述
執行相對關節移動。
語法
Sub JTran (JointNumber As Integer, Distance As Single)
參數
- JointNumber
要移動的特定關節。 - Distance
要移動的距離。旋轉關節的單位為度,線性關節的單位為公釐。
另請參閱
PTran、Pulse
JTran範例
VB 例:
'以正方向將關節1移動45度。
m_spel.JTran(1, 45.0)
C# 例:
//以正方向將關節1移動45度。
m_spel.JTran(1, 45.0);
Jump方法,Spel類別
描述
利用PTP動作將手臂從目前位置移至指定點(先垂直向上移動,接著水平移動,最後向下垂直移至最終目標點)。
語法
Sub Jump (PointNumber As Integer)
Sub Jump (Point As SpelPoint)
Sub Jump (Point As SpelPoint, AttribExpr As String)
Sub Jump (PointExpr As String)
參數
每個語法都有一個參數,用以指定在Jump動作期間手臂移動的結束點。此為PTP動作結束時的最終位置。
PointNumber 透過使用先前示教點的點編號(在目前機器人的控制器點記憶體中)來指定目標點。
- Point
透過使用SpelPoint資料類型來指定目標點。 - AttribExpr
透過使用字串運算式來指定結束點屬性。
可包括C拱形編號、搜尋運算式(LimZ、CP、SYNC、Sense、Till或Find)和並行處理陳述式。 - PointExpr
透過使用字串運算式來指定終點。
可包括C拱形編號、搜尋運算式(LimZ、CP、SYNC、Sense、Till或Find)和並行處理陳述式。
另請參閱
Accel, Speed,
Arc, Arc3, CVMove, Go, Jump3, Jump3CP, Move
BGo, BMove, TGo, TMove
Arch, Find, Sense, Till
Jump範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.Jump(100)
' 使用SpelPoint指定的點
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 125.5
m_spel.Jump(pt)
' 使用點運算式指定的點
m_spel.Jump("P0 /L /2")
m_spel.Jump("P1 :Z(-20)")
m_spel.Jump("P1 C0")
m_spel.Jump("P1 C0 LimZ -10")
m_spel.Jump("P1 C0 Sense Sw(0)=On")
' 使用平行處理
m_spel.Jump("P1 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.Jump("pick")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.Jump(100);
// 使用SpelPoint指定的點
SpelPoint pt;
pt = m_spel.GetPoint("P0");
pt.X = 125.5;
m_spel.Jump(pt);
// 使用點運算式指定的點
m_spel.Jump("P0 /L /2");
m_spel.Jump("P1 :Z(-20)");
m_spel.Jump("P1 C0");
m_spel.Jump("P1 C0 LimZ -10");
m_spel.Jump("P1 C0 Sense Sw(0)=On");
// 使用平行處理
m_spel.Jump("P1 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.Jump("pick");
Jump3方法,Spel類別
描述
使用兩個CP動作與一個PTP動作之組合的3D閘道動作。機器人會移到起始點、接近點和目標點。
語法
Sub Jump3 (DepartPoint As Integer, ApproPoint As Integer, DestPoint As Integer)
Sub Jump3 (DepartPoint As SpelPoint, ApproPoint As SpelPoint, DestPoint As SpelPoint)
Sub Jump3 (DepartPoint As String, ApproPoint As String, DestPoint As String)
參數
- DepartPoint
目前位置之上的起始點(使用點編號或字串點運算式)。 - ApproPoint
目標位置之上的結束點(使用點編號或字串點運算式)。 - DestPoint
動作的目標位置(使用點編號或字串點運算式)。
可包括C拱形編號、搜尋運算式(CP、LJM、SYNC、Sense、Till或Find)和並行處理陳述式。
另請參閱
Accel, AccelR, AccelS, Speed, SpeedR, SpeedS
Arc, Arc3, CVMove, Go, Jump, Jump3CP, Move
BGo, BMove, TGo, TMove
Arch, Find, Sense, Till
Jump3範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.Jump3(1, 2, 3)
' 使用SpelPoint指定的點
Dim pd As SpelPoint
Dim pa As SpelPoint
Dim pt As SpelPoint
pd = m_spel.GetPoint("P*")
pd.Z = 125.5
pa = m_spel.GetPoint("P2")
pa.Z = 125.5
pt = m_spel.GetPoint("P2")
m_spel.Jump3(pd, pa, pt)
' 使用點運算式指定的點
m_spel.Jump3("P1", "P2", "P3 C0")
m_spel.Jump3("P1", "P2", "P3 C0 Sense Sw(0)=On")
m_spel.Jump3("P0 -TLZ(10), P1 -TLZ(10), P1")
' 使用平行處理
m_spel.Jump3("P1", "P2", "P3 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.Jump3("depart", "approach", "place")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.Jump3(1, 2, 3);
// 使用SpelPoint指定的點
SpelPoint pd, pa, pt;
pd = m_spel.GetPoint("P1");
pd.Z = 125.5;
pa = m_spel.GetPoint("P2");
pa.Z = 125.5;
pt = m_spel.GetPoint("P2");
m_spel.Jump3(pd, pa, pt);
// 使用點運算式指定的點
m_spel.Jump3("P1", "P2", "P3 C0");
m_spel.Jump3("P1", "P2", "P3 C0 Sense Sw(0)=On");
m_spel.Jump3("P0 -TLZ(10), P1 -TLZ(10), P1");
// 使用平行處理
m_spel.Jump3("P1", "P2", "P3 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.Jump3("depart", "approach", "place");
Jump3CP方法,Spel類別
描述
使用三個CP動作之組合的3D閘道動作。
語法
Sub Jump3CP (DepartPoint As Integer, ApproPoint As Integer, DestPoint As Integer)
Sub Jump3CP(DepartPoint As SpelPoint, ApproPoint As SpelPoint, DestPoint As SpelPoint)
Sub Jump3CP(DepartPoint As String, ApproPoint As String, DestPoint As String)
參數
- DepartPoint
目前位置之上的起始點(使用點編號或字串點運算式)。 - ApproPoint
目標位置之上的結束點(使用點編號或字串點運算式)。 - DestPoint
動作的目標位置(使用點編號或字串點運算式)。
可包括ROT、C拱形編號、搜尋運算式(CP、LJM、SYNC、Sense、Till或Find)和並行處理陳述式。
另請參閱
AccelR, AccelS, SpeedR, SpeedS
Arc, Arc3, CVMove, Go, Jump, Jump3, Move
BGo, BMove, TGo, TMove
Arch, Find, Sense, Till
Jump3CP範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.Jump3CP(1, 2, 3)
' 使用SpelPoint指定的點
Dim pd As SpelPoint
Dim pa As SpelPoint
Dim pt As SpelPoint
pd = m_spel.GetPoint("P*")
pd.Z = 125.5
pa = m_spel.GetPoint("P2")
pa.Z = 125.5
pt = m_spel.GetPoint("P2")
m_spel.Jump3CP(pd, pa, pt)
' 使用點運算式指定的點
m_spel.Jump3CP("P1", "P2", "P3 C0")
m_spel.Jump3CP("P1", "P2", "P3 C0 Sense Sw(0)=On")
m_spel.Jump3CP("P1", "P2", "P3 \!D50; On 1; D90; Off 1\!")
' 使用平行處理
m_spel.Jump3CP("P0 -TLZ(10), P1 -TLZ(10), P1")
' 使用標籤指定的點
m_spel.Jump3CP("depart", "approch", "place")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.Jump3CP(1, 2, 3);
// 使用SpelPoint指定的點
SpelPoint pd, pa, pt;
pd = m_spel.GetPoint("P0");
pd.Z = 125.5;
pa = m_spel.GetPoint("P2");
pa.Z = 125.5;
pt = m_spel.GetPoint("P2");
m_spel. Jump3CP(pd, pa, pt);
// 使用點運算式指定的點
m_spel.Jump3CP("P1", "P2", "P3 C0");
m_spel.Jump3CP ("P1", "P2", "P3 C0 Sense Sw(0)=On");
m_spel.Jump3CP("P0 -TLZ(10), P1 -TLZ(10), P1");
// 使用平行處理
m_spel.Jump3CP("P1", "P2", "P3 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.Jump3CP("depart", "approch", "place");
LimitTorque方法,Spel類別
描述
針對目前機器人,設定高功率模式的上限力矩。
語法
Sub LimitTorque (AllJointsMax As Integer)
Sub LimitTorque (J1Max As Integer, J2Max As Integer, J3Max As Integer, J4Max As Integer, J5Max As Integer, J6Max As Integer)
參數
- AllJointsMax
在高功率模式中,每個關節之所需力矩上限的整數運算式。 - J1Max - J6Max
在高功率模式中,每個關節之所需力矩上限的整數運算式。
傳回值
介於1至9的整數值,代表指定關節的限制力矩設定。
另請參閱
GetRealTorque, GetRobotPos
LimitTorque範例
VB 例:
Dim j1LimitTorque As Integer
j1LimitTorque = m_spel.LimitTorque(1)
C# 例:
int j1LimitTorquel
j1LimitTorque = m_spel.LimitTorque(1);
LimZ方法,Spel類別
描述
設定JUMP命令之Z軸高度的預設值。
語法
Sub LimZ (ZLimit As Single)
參數
- ZLimit
Z軸可移動範圍內的座標值。
另請參閱
Jump
LimZ範例
VB 例:
saveLimZ = m_spel.GetLimZ()
m_spel.LimZ(-22)
C# 例:
saveLimZ = m_spel.GetLimZ();
m_spel.LimZ(-22);
LoadPoints方法,Spel類別
描述
將SPEL+點文件載入至目前機器人的控制器點記憶體。
語法
Sub LoadPoints (PointFileName As String [, Merge As Boolean])
參數
- PointFileName
目前專案中的有效點文件。 - Merge
將目前點整合至指定點檔案時進行設定(可省略)。
另請參閱
ImportPoints、SavePoints
LoadPoints範例
VB 例:
With m_spel
.LoadPoints("part1.pts")
End With
C# 例:
m_spel.LoadPoints("part1.pts");
Local方法,Spel類別
描述
定義本地座標系統。
語法
Sub Local (LocalNumber As Integer, OriginPoint As SpelPoint, [XAxisPoint As SpelPoint], [YAxisPoint As SpelPoint])
Sub Local (LocalNumber As Integer, LocalPoint1 As Integer, BasePoint1 As Integer, LocalPoint2 As Integer, BasePoint2 As Integer)
Sub Local (LocalNumber As Integer, LocalPoint1 As String, BasePoint1 As String, LocalPoint2 As String, BasePoint2 As String)
參數
- LocalNumbe
本地座標系統編號。總共可定義15個本地座標系統(1至15的整數值)。 - OriginPoint
本地座標系統之原點的SpelPoint變數。 - XAxisPoint
SpelPoint變數,代表本地座標系X軸上的點(可省略)。 - YAxisPoint
SpelPoint變數,代表本地座標系Y軸上的點(可省略)。 - LocalPoint1, LocalPoint2
透過整數或字串指定,便是本地座標系統的點數據。 - BasePoint1,BasePoint2
以代表基座座標系的點數據之整數或字串進行設定。
另請參閱
Base
Local範例
VB 例:
Dim originPoint As New SpelPoint
originPoint.X = 100
originPoint.Y = 50
m_spel.Local(1, originPoint)
C# 例:
SpelPoint originPoint = new SpelPoint();
originPoint.X = 100;
originPoint.Y = 50;
m_spel.Local(1, originPoint);
LocalClr方法,Spel類別
描述
清除針對目前機器人定義的本地(Local)。
語法
Sub LocalClr (LocalNumber As Integer)
參數
- LocalNumber
在15個本地座標系中,要清除(未定義)的座標系編號(整數值1~15)。
另請參閱
Local, LocalDef
LocalClr範例
VB 例:
m_spel.LocalClr(1)
C# 例:
m_spel.LocalClr(1);
LocalDef方法,Spel類別
描述
傳回本地定義狀態。
語法
Function LocalDef (LocalNumber As Integer) As Boolean
參數
- LocalNumber
要傳回狀態之本地座標的整數運算式(1~15)。
傳回值
若指定本地已定義,會傳回True,否則會傳回False。
另請參閱
Local, LocalClr
LocalDef範例
VB 例:
Dim localExists As Boolean
localExists = m_spel.LocalDef(1)
C# 例:
bool localExists;
localExists = m_spel.LocalDef(1);
Login方法,Spel類別
描述
以其他使用者身分登錄至Epson RC+ 8.0。
語法
Sub Login (LoginID As String, Password As String)
參數
- LoginID
包含使用者登錄ID的字串運算式。 - Password
包含使用者密碼的字串運算式。
備註
您可在應用程式中使用Epson RC+ 8.0安全功能。例如,您可顯示一允許不同使用者登錄至系統的功能表。各類使用者都有專屬的安全權限。如需安全功能的詳細資訊,請參閱Epson RC+ 使用指南。
若已啟用安全功能且未執行LogIn,則Visual Basic應用程式將會以訪客使用者身分登錄。若在Epson RC+ 8.0中啟用自動登錄,應用程式將會以目前Windows使用者身分自動登錄(若已在Epson RC+ 8.0中設定該使用者)。
另請參閱
GetCurrentUser
Login範例
VB 例:
With m_spel
.Project = "c:\EpsonRC80\projects\myproject\myproject.sprj"
.LogIn("operator", "oprpass")
End With
C# 例:
m_spel.Project = @"c:\EpsonRC80\projects\myproject\myproject.sprj";
m_spel.LogIn("operator", "oprpass");
MCal方法,Spel類別
描述
針對搭載增量編碼器的機器人執行機器校準。
語法
Sub MCal ()
另請參閱
MCalComplete, MotorsOn
MCal範例
VB 例:
If Not m_spel.MCalComplete() Then
m_spel.MCal()
End If
C# 例:
if (\!m_spel.MCalComplete())
m_spel.MCal();
MCalComplete方法,Spel類別
描述
若MCal成功完成,會傳回True。
語法
Function MCalComplete () As Boolean
傳回值
若MCal已經完成,會傳回True,否則會傳回False。
另請參閱
MCal
MCalComplete範例
VB 例:
If m_spel.MCalComplete() Then
lblStatus.Text = "MCal Complete"
Else
lblStatus.Text = "MCal Not Complete"
End If
C# 例:
if (m_spel.MCalComplete())
lblStatus.Text = "MCal Complete";
else
lblStatus.Text = "MCal Not Complete";
Mcordr方法,Spel類別
描述
指定機器校準MCal的移動軸順序。
語法
Sub MCordr (Step1 As Integer, Step2 As Integer, Step3 As Integer, Step4 As Integer, Step5 As Integer, Step6As Integer, [Step7 As Integer], [Step8 As Integer], [Step9 As Integer])
參數
- Step 1 - 9
通知哪個軸應在MCal程序的各步驟期間復歸原點的位元模式。0至所有軸之間的軸或任何軸數量可在第一個步驟期間復歸原點。Step 7 - 9為選用,用於具有超過7個軸的機器人。
另請參閱
Home, HomeSet, Hordr, Mcal
Mcordr範例
VB 例:
m_spel.Mcordr(2, 13, 0, 0, 0, 0)
C# 例:
m_spel.Mcordr(2, 13, 0, 0, 0, 0);
MemIn方法,Spel類別
描述
傳回指定記憶體I/O位元組埠的狀態。每個連接埠包含8個記憶體I/O位元。
語法
Function MemIn (PortNumber As Integer) As Integer
Function MemIn (Label As String) As Integer
參數
- PortNumber
代表任一個記憶體I/O埠的整數運算式。 - Label
包含記憶體I/O位元組標籤的字串運算式。
傳回值
介於0至255的整數值,代表輸入埠狀態。
另請參閱
In, InBCD, MemOut, MemSw, Sw, Off, On, Oport
MemIn範例
VB 例:
data = m_spel.MemIn(1)
C# 例:
data = m_spel.MemIn(1);
MemInW方法,Spel類別
描述
傳回指定記憶體I/O字元埠的狀態。每個字元埠包含16個記憶體I/O位元。
語法
Function MemInW (PortNumber As Integer) As Integer
Function MemInW (Label As String) As Integer
參數
- PortNumber
代表記憶體I/O埠的整數值。 - Label
包含記憶體I/O字元標籤的字串運算式。
傳回值
介於0至65535的整數值,代表輸入埠狀態。
另請參閱
In, InBCD, MemIn, MemSw, Sw, Off, On, Oport
MemInW範例
VB 例:
data = m_spel.MemInW(1)
C# 例:
data = m_spel.MemInW(1);
MemOff方法,Spel類別
描述
關閉記憶體I/O的指定位元。
語法
Sub MemOff (BitNumber As Integer)
Sub MemOff (Label As String)
參數
- BitNumber
代表記憶體I/O位元的整數運算式。 - Label
代表記憶體I/O位元標籤的字串運算式。
另請參閱
In, InBCD, MemOut, MemSw, Sw, Off, On, Oport
MemOff範例
VB 例:
m_spel.MemOff(500)
C# 例:
m_spel.MemOff(500);
MemOn方法,Spel類別
描述
開啟記憶體I/O的指定位元。
語法
Sub MemOn (BitNumber As Integer)
Sub MemOn (Label As String)
參數
- BitNumber
代表記憶體I/O位元的整數運算式。 - Label
代表記憶體I/O位元標籤的字串運算式。
另請參閱
In, InBCD, MemOut, MemSw, Sw, Off, On, Oport
MemOn範例
VB 例:
m_spel.MemOn(500)
C# 例:
m_spel.MemOn(500);
MemOut方法,Spel類別
描述
根據使用者指定的8位元值,同時設定8個記憶體I/O位元。
語法
Sub MemOut (PortNumber As Integer, Value As Integer)
Sub MemOut (Label As String, Value As Integer)
參數
- PortNumber
代表記憶體I/O位元組的整數運算式。 - Label
包含記憶體I/O位元組標籤的字串運算式。 - Value
整數運算式,代表指定位元組的輸出組輸出模式。有效範圍:0~255。
另請參閱
In, InBCD, MemIn, MemSw, Sw, Off, On, Oport
MemOut範例
VB 例:
m_spel.MemOut(2, 25)
C# 例:
m_spel.MemOut(2, 25);
MemOutW方法,Spel類別
描述
根據使用者指定的16位元值,同時設定8個記憶體I/O位元。
語法
Sub MemOutW (PortNumber As Integer, Value As Integer)
Sub MemOutW (Label As String, Value As Integer)
參數
- PortNumber
代表記憶體I/O字元的整數運算式。 - Label
包含記憶體I/O字元標籤的字串運算式。 - Value
使用運算式或數值指定輸出資料(介於0至65535的整數)。
另請參閱
In, InBCD, MemIn, MemSw, Sw, Off, On, Oport
MemOutW範例
VB 例:
m_spel.MemOutW(2, 25)
C# 例:
m_spel.MemOutW(2, 25);
MemSw方法,Spel類別
描述
傳回指定的記憶體I/O位元狀態。
語法
Function MemSw (BitNumber As Integer) As Boolean
Function MemSw (Label As String) As Boolean
參數
- BitNumber
代表任一個記憶體I/O位元的整數運算式。 - Label
代表記憶體I/O位元標籤的字串運算式。
傳回值
若指定記憶體I/O位元開啟,會傳回True,否則會傳回False。
另請參閱
In, InBCD, MemIn, Sw, Off, On, Oport
MemSw範例
VB 例:
If m_spel.MemSw(10) Then
m_spel.On(2)
End If
C# 例:
if (m_spel.MemSw(10))
m_spel.On(2);
Move方法,Spel類別
描述
使用CP動作(直綫移動),將手臂從目前位置移至指定點。
語法
Sub Move (PointNumber As Integer)
Sub Move (Point As SpelPoint)
Sub Move (Point As SpelPoint, AttribExpr As String)
Sub Move (PointExpr As String)
參數
每個語法都有一個參數,用以指定在Move動作期間手臂移動的結束點。此為線性插補動作結束時的最終位置。
PointNumber
從目前機器人的點記憶體(被保存在控制器中)中使用先前示教點的編號,以指定目標位置。
- Point
透過使用SpelPoint資料類型來指定目標位置。 - AttribExpr
透過使用字串運算式來指定結束點屬性。
可包括ROT、ECP、CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。 - PointExpr
透過使用字串運算式來指定目標位置。
可包括ROT、ECP、CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。
另請參閱
AccelR, AccelS, SpeedR, SpeedS
Arc, Arc3, CVMove, Go, Jump, Jump3, Jump3CP
BGo, BMove, TGo, TMove
Arch, ECP, Find, Till
Move範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.Move(100)
' 使用SpelPoint指定的點
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 125.5
m_spel.Move(pt)
' 使用點運算式指定的點
m_spel.Move("P0 /L /2 ROT")
m_spel.Move("P1 :Z(-20)")
' 使用平行處理
m_spel.Move("P1 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.Move("pick")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.Move(100);
// 使用SpelPoint指定的點
SpelPoint pt;
pt = m_spel.GetPoint("P0");
pt.X = 125.5;
m_spel.Move(pt);
// 使用點運算式指定的點
m_spel.Move("P0 /L /2 ROT");
m_spel.Move("P1 :Z(-20)");
// 使用平行處理
m_spel.Move("P1 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.Move("pick");
Off方法,Spel類別
描述
關閉指定輸出。
語法
Sub Off (BitNumber As Integer)
Sub Off (Label As String)
參數
- BitNumber
代表任一個標準或擴展輸出的整數運算式。 - Label
包含輸出位元標籤的字串運算式。
另請參閱
On, Oport, Out, OutW
Off範例
VB 例:
m_spel.Off(1)
C# 例:
m_spel.Off(1);
OLRate 方法,Spel類別
描述
傳回指定關節的過載率。
語法
Function OLRate (JointNumber As Integer) As Single
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數)
傳回值
傳回指定關節的過載率。傳回值範圍是0.0~2.0。
備註
OLRate會檢查循環是否造成關節過載。使用高負載的循環應用,會由於溫度和電流導致伺服錯誤。OLRate會檢查機器人是否容易出現伺服錯誤。
執行循環時,可以執行另一個任務來監視OLRate。如果有關節的OLRate超過1.0,則會發生伺服錯誤。
當過載時,最有可能發生伺服錯誤。可以在測試循環時,使用OLRate來確認速度和加減速度,以確保實際使用過程中不會發生伺服錯誤。
爲獲得有效值,請在機器人操作期間執行本方法。
正常負載狀態下,不能使用本方法。
OLRate範例
VB 例:
Dim data As Single
data = m_spel.OLRate(1)
C# 例:
float data;
data = m_spel.OLRate(1);
On方法,Spel類別
描述
開啟指定輸出。
語法
Sub On (BitNumber As Integer)
Sub On (Label As String)
參數
- BitNumber
代表任一個標準或擴展輸出的整數運算式。 - Label
包含輸出位元標籤的字串運算式。
另請參閱
Off, Oport, Out, OutW
On範例
VB 例:
m_spel.On(1)
C# 例:
m_spel.On(1);
OpBCD方法,Spel類別
描述
使用BCD(二進位十進碼)格式,同時設定8個輸出位元。
語法
OpBCD (PortNumber As Integer, Value As Integer)
OpBCD (Label As String, Value As Integer)
參數
- PortNumber
代表I/O埠的整數。每個埠由8個輸出位(1位元組)組成。 - Value
整數(0~99),代表指定埠的輸出模式。第二個數字(一位數)代表埠的下位4個輸出位;第一個數字(十位數)代表埠的上位4個輸出位。
另請參閱
Off, Out, Sw
OpBCD範例
VB 例:
m_spel.OpBCD(1, 25)
C# 例:
m_spel.OpBCD(1, 25);
Oport方法,Spel類別
描述
傳回指定輸出位元的狀態。
語法
Function Oport (BitNumber As Integer) As Boolean
Function Oport (Label As String) As Boolean
參數
- BitNumber
代表標準及擴展輸出位的整數運算式。 - Label
代表輸出位標籤的字串運算式。
傳回值
若指定輸出位元已開啟,會傳回True,否則會傳回False。
另請參閱
Off, On, OpBCD, Out, Sw
Oport範例
VB 例:
If m_spel.Oport(1) Then
m_spel.On(2)
End If
C# 例:
if(m_spel.Oport(1))
m_spel.On(2);
Out方法,Spel類別
描述
同時讀取或設定8個輸出位元(一個位元組)。
語法
Sub Out (PortNumber As Integer, Value As Integer)
Sub Out (Label As String, Value As Integer)
Function Out (PortNumber As Integer) As Integer
Function Out (Label As String) As Integer
參數
- PortNumber
代表輸出埠的整數。 - Label
代表輸出位元組標籤的字串運算式。 - Value
整數(0~255),代表輸出埠的輸出模式。若以十六進位表示,範圍為&H0至&HFF。
傳回值
介於0-255的整數(包含連接埠值)。
另請參閱
InBCD, OpBCD, Oport, OutW, Sw
Out範例
VB 例:
m_spel.Out(1, 240)
C# 例:
m_spel.Out(1, 240);
OutReal 方法,Spel類別
描述
讀取或設定輸出埠狀態的32位元浮點資料 (符合IEEE754標準)。
語法
Function OutReal (WordPortNumber As Integer) As Single
Sub OutReal (WordPortNumber As Integer, Value As Single)
參數
- WordPortNumber
代表輸出埠的整數。 - Value
代表輸出資料的實數值
傳回值
返回輸出埠的狀態,在32位元浮點資料(符合IEEE754標準)中返回。
另請參閱
In, InBCD, InReaql, InW, Out, OutW
OutReal範例
VB 例:
Dim val As Single
val = m_spel.OutReal(32)
C# 例:
float val;
val = m_spel.OutReal(32);
OutW方法,Spel類別
描述
同時讀取或設定16個輸出位元(一個字元)。
語法
Sub OutW (PortNumber As Integer, Value As Integer)
Sub OutW (Label As String, Value As Integer)
Function OutW (PortNumber As Integer) As Integer
Function OutW (Label As String) As Integer
參數
- PortNumber
代表輸出埠的整數。 - Label
代表輸出字元標籤的字串運算式。 - Value
整數(0~65535),代表輸出埠的輸出模式。若以十六進位表示,範圍為&H0至&HFFFF。
傳回值
介於0-65535的整數(包含連接埠值)。
另請參閱
InBCD, OpBCD, Oport, Out, Sw
OutW範例
VB 例:
m_spel.OutW(1, 240)
C# 例:
m_spel.OutW(1, 240);
PAgl方法,Spel類別
描述
傳回所選旋轉軸的關節角度,或所選線性軸的位置(來自指定點)。
語法
Function PAgl (PointNumber As Integer, JointNumber As Integer) As Single
Function PAgl (Point As SpelPoint, JointNumber As Integer) As Single
Function PAgl (Label As String, JointNumber As Integer) As Single
參數
- PointNumber
代表目前機器人點記憶體中某個點之點編號的整數運算式。 - Point
先前初始化的SpelPoint。 - Label
包含目前機器人點記憶體中某個點之點標籤的字串運算式。 - JointNumber
代表所需之關節編號的整數運算式。數值可以介於1 ~ 9。
傳回值
包含指定關節之角度的單一數值(以度或公釐為單位)。
另請參閱
Agl, Pls, CX - CT
PAgl範例
VB 例:
Dim t1Angle As Single
t1Angle = m_spel.PAgl(1, 1)
C# 例:
float t1Angle;
t1Angle = m_spel.PAgl(1, 1);
Pallet方法,Spel類別
描述
定義棧板。
語法
Sub Pallet (PalletNumber As Integer, Point1 As String, Point2 As String, Point3 As String [, Point4 As String] , rows As Integer, columns As Integer)
參數
- PalletNumber
以0至15的整數表示的棧板編號。 - Point1
定義第一個棧板位置的點變數。 - Point2
定義第二個棧板位置的點變數。 - Point3
定義第三個棧板位置的點變數。 - Point4
定義第四個棧板位置的點變數。 - Rows
棧板橫向的點數目。每個數值均為介於1至32767的整數。 - Columns
棧板縱向的點數目(1~32767的整數)。
另請參閱
Jump, Go, SetPoint
Pallet範例
VB 例:
m_spel.Pallet(1, 1, 2, 3, 4, 3, 4)
C# 例:
m_spel.Pallet(1, 1, 2, 3, 4, 3, 4);
Pass方法,Spel類別
描述
指定通過指定點附近而不停止動作的PTP動作。
語法
Sub Pass(PointNumber As Integer)
Sub Pass(PassExpr As String )
參數
- PointNumber
從目前機器人的點記憶體(被保存在控制器中)中使用先前示教點的編號,以指定通過點。 - PassExpr
使用字串運算式來進行指定。
Point specification [, {On | Off | MemOn | MemOff} bit number [,point specification ... ]] [LJM [Orientation flag]]
Point specification 指定點編號、P(運算式)或點標籤。如果點資料完整並依遞增或遞減順序列出,可使用一個冒號合併兩個點編號,例如P(1:5)。
Bit number 使用整數或輸出標籤指定I/O輸出位或記憶體I/O位元進行開啟/關閉。
LJM 選用。使用LJM函數轉換起始座標、接近座標及目標座標。
Orientation flag 選用。指定LJM函數的方向旗標參數。
另請參閱
Accel, Go, Jump, Speed
Pass範例
VB 例:
m_spel.Jump(1)
m_spel.Pass(2) '使手臂接近P2,並在到達P2之前執行以下命令
m_spel.On(2)
m_spel.Pass(3)
m_spel.Pass(4)
m_spel.Off(0)
m_spel.Pass(5)
C# 例:
m_spel.Jump(1);
mspel.Pass(2); //使手臂接近P2,並在到達P2之前執行以下命令
m_spel.On(2);
m_spel.Pass(3);
m_spel.Pass(4);
m_spel.Off(0);
m_spel.Pass(5);
Pause方法,Spel類別
描述
使控制器中的所有正常SPEL+任務暫停。若機器人正在移動,將會立即減速至停止。
語法
Sub Pause ()
注意
以Call方法執行的函數,無法透過Pause方法暫停。
如欲暫停,請使用Xqt方法。
另請參閱
Continue、EventReceived、Stop
Pause範例
VB 例:
Sub btnPause_Click()_
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnPause.Click
m_spel.Pause()
btnPause.Enabled = False
btnContinue.Enabled = True
End Sub
C# 例:
void btnPause_Click(object sender, EventArgs e)
{
m_spel.Pause();
btnPause.Enabled = false;
btnContinue.Enabled = true;
}
PDef方法,Spel類別
描述
傳回指定點的定義狀態。
語法
Function PDef (PointNumber As Integer) As Boolean
參數
- PointNumber
代表目前機器人點記憶體中某個點之點編號的整數運算式。
傳回值
若指定點已定義,會傳回True,否則會傳回False。
另請參閱
PDel
PDef範例
VB 例:
Dim p1Defined As Boolean
p1Defined = m_spel.PDef(1)
C# 例:
bool p1Defined;
p1Defined = m_spel.PDef(1);
PDel方法,Spel類別
描述
刪除指定位置資料。
語法
Sub PDel (FirstPointNumber As Integer [, LastPointNumber As Integer])
參數
- FirstPointNumber
指定範圍內欲刪除之第一個點的整數運算式。 - LastPointNumber
指定範圍內欲刪除之最後一個點的整數運算式。如果省略,則只會刪除在FirstPointNumber中指定的點。
另請參閱
PDef, LoadPoints, Clear, SavePoints
PDel範例
VB 例:
m_spel.PDel(1, 10)
m_spel.SavePoints("model1.pts")
C# 例:
m_spel.PDel(1, 10);
m_spel.SavePoints("model1.pts");
PeakSpeed 方法,Spel類別
描述
傳回指定關節的峰值速度。
語法
Function PeakSpeed (JointNumber As Integer) As Single
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數)
傳回值
傳回-1~1範圍中的實數值。
備註
本方法傳回一個帶符號的值,該值是關節的最大速度的絕對值。最大速度為1。峰值速度是-1~1範圍中的實數值。
請先執行PeakSpeedClear,然後再顯示本方法來顯示關節的峰值速度。
如果是虛擬控制器或者乾運轉,就使用命令速度而不是實際速度來計算。
本方法不支援PG附加軸。
另請參閱
AvgSpeed, AvgSpeedClear, PeakSpeedClear
PeakSpeed範例
VB 例:
Dim val As Single
val = m_spel.PeakSpeed(1)
C# 例:
float val;
val = m_spel.PeakSpeed(1);
PeakSpeedClear 方法,Spel類別
描述
清除並初值化關節的峰值速度。
語法
Sub PeakSpeedClear ()
備註
使用本方法可以清除指定關節的峰值速度值。
執行PeakSpeed方法之前,必須先執行本方法。
本方法不支援PG附加軸。
另請參閱
AvgSpeed, AvgSpeedClear, PeakSpeed
PeakSpeedClear範例
VB 例:
m_spel.PeakSpeedClear()
C# 例:
m_spel.PeakSpeedClear();
PF_Abort 方法,Spel類別
描述
强制中斷指定零件的Part Feeding程序動作。
語法
Sub PF_Abort (PartID As Integer)
參數
- PartID
代表零件ID的整數值 (116)
備註
立即中斷指定零件的Part Feeding程序。
與PF_Stop方法相異,本方法會中斷正在執行的回呼函式。
如果Part Feeding程序還沒有開始,就不會發生任何動作。
PF_Abort範例
VB 例:
m_spel.PF_Abort(1)
C# 例:
m_spel.PF_Abort(1);
PF_Backlight 方法,Spel類別
描述
打開或關閉給料器的嵌入式背光燈。
語法
Sub PF_Backlight (FeederNumber As Integer, State As Boolean)
參數
- FeederNumber
代表給料器編號的整數值 - State
指定On (True) 或 Off (False)
備註
如果系統自動運行視覺處理時,背光燈會自動On/Off。
若使用PF_Vision回呼函式,就可以使用本方法打開或關閉背光燈。
PF_Backlight範例
VB 例:
m_spel.PF_Backlight(1, True)
C# 例:
m_spel.PF_Backlight(1, true);
PF_BacklightBrightness 方法,Spel類別
描述
設定給料器嵌入式背光燈的亮度。
語法
Sub PF_Backlightness (FeederNumber As Integer, Brightness As Integer)
參數
- FeederNumber
代表給料器編號的整數值 - SBrightness
用0~100的數字指定亮度。
備註
一般情況下,可以使用[Part Feeding Configuration]對話方塊設定嵌入式背光燈的亮度。當要在運行中更改亮度時,就可以使用本方法。
PF_BacklightBrightness範例
VB 例:
m_spel.PFBacklightness(1, 80)
C# 例:
m_spel.PF_BacklightBrightness(1, 80);
PF_Name方法,Spel類別
描述
從零件ID取得零件名稱。
語法
Function PF_Name (PartID As Integer) As String
參數
- PartID
代表零件ID的整數值 (116)
傳回值
傳回指定零件ID的名稱的字串。
備註
如果指定的零件ID無效,就傳回 “ ” (空白字符)。
PF_Name範例
VB 例:
Dim part1Name As String
Part1Name = m_spel.PF_Name(1)
C# 例:
string part1Name;
part1Name = m_spel.PF_Name(1);
PF_Number方法,Spel類別
描述
從零件名稱取得零件ID。
語法
Function PF_Number (PartName As String) As Integer
參數
- PartName
代表零件名稱的字串。
傳回值
傳回指定零件名稱的零件ID (整数1~16)。
備註
如果零件名稱不存在就傳回-1。
如果出現重複名稱的零件,就返回ID最小的零件。
PF_Number範例
VB 例:
Dim part1ID As Integer
Part1ID = m_spel.PF_Number("Part1")
C# 例:
int part1ID;
part1ID = m_spel.PF_Number("Part1");
PF_Start方法,Spel類別
描述
開始指定零件的Part Feeding程序。
語法
Sub PF_Start (PartID1 As Integer, [PartID2 As Integer], [PartID3 As Integer], [PartID4 As Integer])
參數
- PartID1
代表主零件ID的整數值 (116)。 - PartID2
代表從零件ID的整數值 (116)。可以省略 - PartID3
代表從零件ID的整數值 (116)。可以省略 - PartID4
代表從零件ID的整數值 (116)。可以省略
備註
在開始本方法之前,請先進行以下操作。
- 選擇要使用的機器人
- 馬達On
- 如要輸出日誌,請執行PF_InitLog
執行本方法,會產生一個新的任務,并將控制回復給主叫程式。
發生這種情況時,Status回呼函式會在以下條件中執行。Part Feeding程序不會開始。
條件 | Status回呼函式參數的Status值 |
---|---|
零件ID無效 | PF_STATUS_BAD_ID |
零件參數設定無效 (沒有選擇Enabled選項) | PF_STATUS_BAD_PARAMETER |
沒有完成校準 | PF_STATUS_CAL_NOT_COMPLETE |
發生錯誤 | PF_STATUS_ERROR |
本方法不能同時複數執行。如果執行了,就會繼續已經執行的處理。不會發生錯誤。
請在正常任務中執行PF_Start方法。如果在後台執行則會發生錯誤。
注意
如果在本方法中指定了不存在的零件ID,就會發生7600錯誤。
PF_Start範例
VB 例:
m_spel.PF_Start(1)
C# 例:
m_spel.PF_Start(1);
PF_Stop方法,Spel類別
描述
發佈Part Feeding程序終止的要求。
如果有正在執行的回呼函式,會等待執行完成。
之後,將會執行PF_CycleStop回呼函式,停止程序。
語法
Sub PF_Stop (PartID As Integer)
參數
- PartID
代表零件ID的整數值 (116)
備註
停止Part Feeding程序。
與PFAbort方法相異,本方法會等待執行中的回呼函式完成。
回呼函式執行完成後,將會執行PF_CycleStop回呼函式。
如果沒有開始任何Part Feeding程序,就不會發生任何動作。
PF_Stop範例
VB 例:
m_spel.PF_Stop(1)
C# 例:
m_spel.PF_Stop(1);
PLabel 方法,Spel類別
描述
取得或設定指定點編號中定義的點標籤。
語法
Function PLabel (PointNumber As Integer) As String
Sub PLabel (PointNumber As Integer, PointName As String)
參數
- PointNumber
代表點編號的整數值 - PointName
指定的點資料中使用的標籤的字串
傳回值
傳回指定點編號相對應的標籤。
另請參閱
PDef
PLabel範例
VB 例:
Dim pt1Label As String
Pt1Label = m_spel.PLabel(1)
C# 例:
string pt1Label;
pt1Label = m_spel.PLabel(1);
Plane方法,Spel類別
描述
定義平面。
語法
Sub Plane (PlaneNumber As Integer, Point As SpelPoint)
Sub Plane (PlaneNumber As Integer, X As Single, Y As Single, Z As Single, U As Single, V As Single, W As Single)
參數
- PlaneNumber
介於1-15的整數運算式,代表15個平面中要定義的平面。 - Point
代表接近檢查平面之座標資料的點資料。 - X
代表接近檢查平面之座標資料的點X座標。 - Y
代表接近檢查平面之座標資料的點Y座標。 - Z
代表接近檢查平面之座標資料的點Z座標。 - U
代表接近檢查平面之座標資料的點U座標。 - V
代表接近檢查平面之座標資料的點V座標。 - W
代表接近檢查平面之座標資料的點W座標。
另請參閱
PlaneClr, PlaneDef
Plane範例
VB 例:
m_spel.Plane(1, -5, 5, -10, 10, -20, 20)
C# 例:
m_spel.Plane(1, -5, 5, -10, 10, -20, 20);
PlaneClr方法,Spel類別
描述
清除(取消定義)平面。
語法
Sub PlaneClr (PlaneNumber As Integer)
參數
- PlaneNumber
介於1-15的整數,代表15個平面中要清除的平面。
另請參閱
Plane, PlaneDef
PlaneClr範例
VB 例:
m_spel.PlaneClr(1)
C# 例:
m_spel.PlaneClr(1);
PlaneDef方法,Spel類別
描述
傳回平面是否定義。
語法
Function PlaneDef (PlaneNumber As Integer) As Boolean
參數
- PlaneNumber
介於1至15的整數運算式,代表平面編號。
傳回值
若指定平面已定義,會傳回True,否則會傳回False。
另請參閱
Plane, PlaneClr
PlaneDef範例
VB 例:
x = m_spel.PlaneDef(1)
C# 例:
x = m_spel.PlaneDef(1);
Pls方法,Spel類別
描述
傳回目前位置各軸的目前編碼器脈衝計數。
語法
Function Pls (JointNumber As Integer) As Integer
參數
- JointNumber
要取得目前編碼器脈衝計數的特定軸。(1至9)
傳回值
包含指定關節之目前脈衝計數的整數。
另請參閱
Agl, Pulse
Pls範例
VB 例:
j1Pulses = m_spel.Pls(1)
C# 例:
j1Pulses = m_spel.Pls(1);
PTCLR方法,Spel類別
描述
清除並初值化峰值轉矩。
語法
Sub PTCLR ()
備註
本方法可清除指定關節的峰值轉矩。
執行PTRQ方法之前,必須先執行本方法。
另請參閱
ATCLR, ATRQ, PTRQ
PTCLR範例
VB 例:
m_spel.PTCLR ()
C# 例:
m_spel.PTCLR();
PTPBoost方法,Spel類別
描述
設定短距離PTP(點至點)動作的提升參數。
語法
Sub PTPBoost (BoostValue As Integer [, DepartBoost As Integer] [, ApproBoost As Integer])
參數
- BoostValue
介於0-100的整數。 - DepartBoost
整數(0~100),代表Jump動作時的Z座標起始調整值(可省略)。 - ApproBoost
整數(0~100),代表Jump動作時的Z座標接近調整值(可省略)。
另請參閱
PTPBoostOK
PTPBoost範例
VB 例:
m_spel.PTPBoost(50)
m_spel.PTPBoost(50, 30, 30)
C# 例:
m_spel.PTPBoost(50);
m_spel.PTPBoost(50, 30, 30);
PTPBoostOK方法,Spel類別
描述
傳回從目前位置到目標位置的PTP(點至點)動作是否為短距離。
語法
Function PTPBoostOK (PointNumber As Integer) As Boolean
Function PTPBoostOK (Point As SpelPoint) As Boolean
Function PTPBoostOK (PointExpr As String) As Boolean
參數
每個語法都有一個參數,用以指定要檢查的目標點。
- PointNumber
相對於目前機器人,從控制器的點記憶體中使用先前示教點的編號,以指定目標位置。 - Point
透過使用SpelPoint資料類型來指定目標位置。 - PointExpr
透過使用字串運算式來指定目標位置。
傳回值
若將會使用PTPBoost,會傳回True,否則會傳回False。
另請參閱
PTPBoost
PTPBoostOK範例
VB 例:
If m_spel.PTPBoostOK(1) Then
m_spel.Go(1)
End If
C# 例:
if (m_spel.PTPBoostOK(1))
m_spel.Go(1);
PTran方法,Spel類別
描述
執行相對關節移動(以脈衝為單位)。
語法
Sub PTran (JointNumber As Integer, Pulses As Integer)
參數
- JointNumber
要移動的關節 - Pulses
要移動的脈衝數
另請參閱
JTran, Pulse
PTran範例
VB 例:
' 以正方向將關節1移動5000脈衝。
m_spel.PTran(1, 5000)
C# 例:
// 以正方向將關節1移動5000脈衝。
m_spel.PTran(1, 5000);
PTRQ方法,Spel類別
描述
傳回指定關節的峰值轉矩。
語法
Function PTRQ (JointNumber As Integer) As Single
參數
- JointNumber
管道#的整數值 (範圍: 1~ 機器人的關節數)
傳回值
傳回0~1的實數值。
另請參閱
ATCLR, ATRQ, PTCLR
PTRQ範例
VB 例:
Dim peakTorque As Single
peakTorque = m_spel.PTRQ(1)
C# 例:
float peakTorque;
peakTorque = m_spel.PTRQ(1);
Pulse方法,Spel類別
描述
透過PTP控制方式,將機器人手臂移至透過所有機器人關節的脈衝值所指定的點。
語法
Sub Pulse (J1Pulses As Integer, J2Pulses As Integer, J3Pulses As Integer, J4Pulses As Integer [, J5Pulses As Integer ] [, J6Pulses As Integer] [, J7Pulses As Integer] [, J8Pulses As Integer] [, J9Pulses As Integer])
參數
- J1Pulses - J9Pulses
代表第1~9關節的脈衝值的整數
J5Pulses – J9Pulses可以省略
提示
脈衝值必須介於各關節指定範圍內。
另請參閱
Go, Move, Jump
Pulse範例
VB 例:
m_spel.Pulse(5000, 1000, 0, 0)
C# 例:
m_spel.Pulse(5000, 1000, 0, 0);
Quit方法,Spel類別
描述
終止執行指定的任務。
語法
Sub Quit (TaskNumber As Integer)
Sub Quit (TaskName As String)
參數
- TaskNumber
要中斷之任務的任務#(1~32) - TaskName
包含任務名稱的字串運算式。
注意
如欲停止以Call方法執行的函數時,請使用Stop方法。
另請參閱
Halt, Resume, Xqt
Quit範例
VB 例:
m_spel.Quit(3)
C# 例:
m_spel.Quit(3);
RadToDeg方法,Spel類別
描述
將徑度轉換成度。
語法
Function RadToDeg (Radians As Double) As Double
參數
- Radians
包含要轉換成度之徑度的雙精度運算式。
傳回值
包含以度為單位之轉換值的雙精度值。
另請參閱
DegToRad
RadToDeg範例
VB 例:
Dim deg As Double
deg = m_spel.RadToDeg(1)
C# 例:
double deg;
deg = m_spel.RadToDeg(1);
RebootController方法,Spel類別
描述
對目前接連的控制器進行重新啟動。
語法
Sub RebootController (ShowStatusDialog As Boolean)
參數
- ShowStatusDialog
設定在重新啟動完成前,是否顯示狀態對話方塊的畫面。
True=顯示畫面、False=不顯示畫面
備註
使用ShowStatusDialog,顯示帶有進度條的對話方塊。可以使用對話方塊或者Abort方法,停止操作。
另請參閱
Abort
RebootController範例
VB 例:
m_spel.RebootController(True)
C# 例:
m_spel.RebootController(true);
RebuildProject方法,Spel類別
描述
完整重建在Project屬性中指定的目前專案。
語法
Sub RebuildProject ()
另請參閱
BuildProject, EnableEvent, EventReceived, Project, ProjectBuildComplete
RebuildProject範例
VB 例:
With m_spel
.Project = "c:\EpsonRC80\projects\myproject\myproject.sprj"
.RebuildProject()
End With
C# 例:
m_spel.Project = @"c:\EpsonRC80\projects\myproject\myproject.sprj";
m_spel.RebuildProject();
Recover方法,Spel類別
描述
Recover會將機器人移回安全防護打開時的所在位置。
語法
Function Recover () As Boolean
備註
Recover方法可以在安全防護關閉後用來開啟機器人馬達,並將機器人緩慢移回安全防護打開時的所在位置。成功完成Recover後,您可執行Cont方法來繼續該週期。若成功完成Recover,將會傳回True。若在恢復動作期間發生暫停、終止或安全防護打開的情況,Recover將會傳回False。
傳回值
若恢復動作已經完成,會傳回True,否則會傳回False。
另請參閱
Continue, Pause
Recover範例
VB 例:
此範例是先執行recover,再執行continue
Sub btnCont_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnCont.Click
Dim sts As Boolean
Dim answer As Integer
sts = m_spel.Recover()
If sts = False Then
Exit Sub
End If
answer = MsgBox("Ready to continue?", vbYesNo)
If answer = vbYes Then
m_spel.Continue()
EndIF
End sub
此範例顯示只要按下按鈕便可使用按鈕來執行recover的方法。若在恢復動作期間放開按鈕,則會發出pause並終止恢復動作。若按住按鈕直到完成恢復動作,會隨即顯示一訊息。
Sub btnRecover_MouseDown( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles btnRecover.MouseDown
Dim sts As Boolean
sts = m_spel.Recover()
If sts = True Then
MsgBox("Recover complete")
EndIf
End Sub
Sub btnRecover_MouseUp( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles btnRecover.MouseUp
m_spel.Pause()
End Sub
C# 例:
此範例是先執行recover,再執行continue
void btnCont_Click(object sender, EventArgs e)
{
bool sts;
DialogResult answer;
sts = m_spel.Recover();
if (sts == true){
answer = MessageBox.Show("Continue?", "",
MessageBoxButtons.YesNo);
If (answer == DialogResult.Yes)
m_spel.Continue();
}
}
此範例顯示只要按下按鈕便可使用按鈕來執行recover的方法。若在恢復動作期間放開按鈕,則會發出pause並終止恢復動作。若按住按鈕直到完成恢復動作,會隨即顯示一訊息。
void btnCont_Click(object sender, EventArgs e)
{
bool sts;
sts = m_spel.Recover();
if (sts == true)
MessageBox.Show("Recover complete");
}
void btnRecover_MouseUp(oject sender, EventArgs e)
{
m_spel.Pause();
}
Reset方法,Spel類別
描述
將控制器重置為初始狀態。
語法
Sub Reset ()
另請參閱
ResetAbort
Reset範例
VB 例:
m_spel.Reset
C# 例:
m_spel.Reset();
ResetAbort方法,Spel類別
描述
重置以Stop方法設定的終止旗標。
語法
Sub ResetAbort ()
備註
當執行Stop方法且沒有其他Spel方法處於週期中時,下一個Spel方法將會產生使用者終止錯誤。程序到此結束;不論是在何時發出Stop,目前執行Spel方法的常式都將接收到錯誤。使用ResetAbort可清除此狀況。
提示
ResetAbortEnabled屬性必須設為True,ResetAbort功能才可正常運作。
另請參閱
Abort, Reset, ResetAbortEnabled
ResetAbort範例
VB 例:
Sub btnMcal_Click() Handles btnMcal.Click
m_spel.ResetAbort()
m_spel.MCal()
End Sub
C# 例:
void btnMCal_Click(object sender, EventArgs e)
{
m_spel.ResetAbort();
m_spel.MCal();
}
Resume方法,Spel類別
描述
使遭到Halt方法暫停的任務重新開始。
語法
Sub Resume (TaskNumber As Integer)
Sub Resume (TaskName As String)
參數
- TaskNumber
已中斷之任務的任務#。任務#的範圍介於1至32。 - TaskName
包含任務名稱的字串運算式。
另請參閱
Quit, Xqt
Resume範例
VB 例:
m_spel.Resume(2)
C# 例:
m_spel.Resume(2);
RunDialog方法,Spel類別
描述
執行Epson RC+ 8.0對話方塊。
語法
Sub RunDialog (DialogID As SpelDialogs [, Parent As Form])
參數
- DialogID
要執行之Epson RC+ 8.0對話方塊的ID。 - Parent
視窗的父.NET表單(選用)。
另請參閱
ShowWindow
RunDialog範例
VB 例:
Sub btnRobotManager_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnRobotManager.Click
m_spel.RunDialog(SpelDialogs.RobotManager)
End Sub
C# 例:
void btnRobotManager_Click(object sender, EventArgs e)
{
m_spel.RunDialog(SpelDialogs.RobotManager);
}
SavePoints方法,Spel類別
描述
保存目前機器人的點至檔案。
語法
Sub SavePoints (PointFileName As String)
參數
- PointFileName
在目前專案中保存之點的檔案名稱。
另請參閱
LoadPoints
SavePoints範例
VB 例:
With m_spel
.SavePoints("part1.pts")
End With
C# 例:
m_spel.SavePoints("part1.pts");
Sense方法,Spel類別
描述
指定輸入條件,符合條件時會停止目標位置上方的機器人,以完成進行中的Jump。
語法
Sub Sense (Condition As String) As Boolean
參數
- Condition
指定I/O條件。有關詳細資訊,請參閱SPEL+語言參考的「Sense」。
另請參閱
Jump, JS
Sense範例
VB 例:
With m_spel
.Sense("Sw(1) = On")
.Jump("P1 SENSE")
stoppedOnSense = .JS()
End With
C# 例:
m_spel.Sense("Sw(1) = On");
m_spel.Jump("P1 SENSE");
stoppedOnSense = m_spel.JS();
SetIODef方法,Spel類別
描述
設定輸入、輸出或記憶體I/O位元、位元組或字元的I/O標籤與描述。
語法
Sub SetIODef (Type As SpelLabelTypes, Index As Integer, Label As String, Description As String)
參數
- Type 如下指定I/O類型:InputBit = 1 InputByte = 2 InputWord = 3 OutputBit = 4 OutputByte = 5 OutputWord = 6 MemoryBit = 7 MemoryByte = 8 MemoryWord = 9 InputReal = 10 OutputReal = 11
- Index
指定位元或埠號。 - Label
指定新建標籤。 - Description
指定新建描述。
備註
使用SetIODef可定義任何I/O點的標籤與描述。
另請參閱
GetIODef
SetIODef範例
VB 例:
Dim label, desc As String
label = "StartCycle"
desc = "Starts the robot cycle"
m_spel.SetIODef(SpelLabelTypes.InputBit, 0, label, desc)
C# 例:
string label, desc;
label = "StartCycle";
desc = "Starts the robot cycle";
m_spel.SetIODef(SpelLabelTypes.InputBit, 0, label, desc);
SetPoint方法,Spel類別
描述
設定目前機器人某個點的座標資料。
語法
Sub SetPoint(PointNumber As Integer, Point As SpelPoint)
Sub SetPoint(PointLabel As String, Point As SpelPoint)
Sub SetPoint(PointNumber As Integer, X As Single, Y As Single, Z As Single, U As Single)
Sub SetPoint(PointLabel As String, X As Single, Y As Single, Z As Single, U As Single)
Sub SetPoint(PointNumber As Integer, X As Single, Y As Single, Z As Single, U As Single,Local As Integer, Hand As SpelHand)
Sub SetPoint(PointLabel As String, X As Single, Y As Single, Z As Single, U As Single,Local As Integer, Hand As SpelHand)
Sub SetPoint(PointNumber As Integer, X As Single, Y As Single, Z As Single, U As Single,V As Single, W As Single)
Sub SetPoint(PointLabel As String, X As Single, Y As Single, Z As Single, U As Single,V As Single, W As Single)
Sub SetPoint(PointNumber As Integer, X As Single, Y As Single, Z As Single, U As Single,V As Single, W As Single, Local As Integer, Hand As SpelHand, Elbow As SpelElbow, Wrist As SpelWrist, J4Flag As Integer, J6Flag As Integer)
Sub SetPoint(PointLabel As String, X As Single, Y As Single, Z As Single, U As Single,V As Single, W As Single, Local As Integer, Hand As SpelHand, Elbow As SpelElbow, Wrist As SpelWrist, J4Flag As Integer, J6Flag As Integer)
Sub SetPoint(PointNumber As Integer, X As Single, Y As Single, Z As Single, U As Single,V As Single, W As Single, S As Single, T As Single)
Sub SetPoint(PointLabel As String, X As Single, Y As Single, Z As Single, U As Single,V As Single, W As Single, S As Single, T As Single)
Sub SetPoint(PointNumber As Integer, PointExpr As String)
Sub SetPoint(PointLabel As String, PointExpr As String)
參數
- PointNumber
指定目前機器人點記憶體中某個點之點編號的整數運算式。 - X
指定點的X座標。 - Y
指定點的Y座標。 - Z
指定點的Z座標。 - U
指定點的U座標。 - V
指定點的V座標。 - W
指定點的W座標。 - S
指定點的S座標。 - T
指定點的T座標。 - Local
指定點的本地編號。沒有本地時請使用0。 - Hand
指定點的手部方向。 - Elbow
指定點的肘部姿勢。 - Wrist
指定點的腕部方向。 - PointExpr
使用運算式指定的點
注意
請勿將整數值輸入至X、Y、Z、U、V、W、S及T參數。使用單一變數或直接輸入單一類型值。
另請參閱
GetPoint、LoadPoints、SavePoints
SetPoint範例
要執行的RC+ 專案的SPEL+ 程式範例:
Global Integer P_WorkDetect
Global Real offsetX, offsetY, heightZ, offsetU
Function SetOffset
P_WorkDetect = 5
offsetX = 0.5
offsetY = 0.3
heightZ = 10.0
offsetU = 1.2
Fend
VB 例:
Dim pt As SpelPoint
' 取得P1的座標
pt = m_spel.GetPoint(1)
' 變更座標
pt.U = pt.U - 10.5
' 指定姿勢旗標
pt.J1Flag = 1
m_spel.SetPoint(1, pt)
' 執行RC+專案的SPEL+函數
m_spel.Call("SetOffset")
' 使用字串運算式來設定座標及姿勢
m_spel.SetPoint(2, "P(P_WorkDetect) +X(offsetX) +Y(offsetY) :Z(heightZ) +U (offsetU) /A /J1F1")
C# 例:
SpelPoint pt;
// 取得P1的座標
pt = m_spel.GetPoint(1);
// 變更座標
pt.U = pt.U - 10.5;
// 指定姿勢旗標
pt.J1Flag = 1;
m_spel.SetPoint(1, pt);
// 執行RC+專案的SPEL+函數
m_spel.Call("SetOffset")
// 使用字串運算式來設定座標及姿勢
m_spel.SetPoint(2, "P(P_WorkDetect) +X(offsetX) +Y(offsetY) :Z(heightZ) +U (offsetU) /A /J1F1");
SetVar方法,Spel類別
描述
設定控制器中SPEL+全域保留變數的值。
語法
Sub SetVar (VarName As String, Value As Object)
參數
- VarName
SPEL+全域保留變數名稱 - Value
新建值。
備註
您可使用SetVar來設定單一變數及陣列變數的值。請參閱以下範例。
另請參閱
GetVar
SetVar範例
VB 例:
m_spel.SetVar("g_myIntVar", 123)
Dim i, myArray(10) As Integer
For i = 1 To 10
myArray(i) = i
Next i
m_spel.SetVar("g_myIntArray", myArray)
m_spel.SetVar("g_myIntArray(1)", myArray(1))
C# 例:
m_spel.SetVar("g_myIntVar", 123);
int[] myArray = new int[10];
for(int i = 1; i < 10; i++)
myArray[i] = i;
m_spel.SetVar("g_myIntArray", myArray);
m_spel.SetVar("g_myIntArray[1]", myArray[1]);
SFree方法,Spel類別
描述
從伺服系統控制,釋放指定的機器人軸。
語法
Sub SFree ()
Sub SFree (ParamArray Axes() As Integer)
參數
- Axes
包含要釋放之各機器人軸的某一元素之整數參數陣列。您可指定介於1 – 9的管道#。
另請參閱
SLock
SFree範例
VB 例:
' SFree軸1和2
m_spel.SFree(1, 2)
C# 例:
// SFree軸1和2
m_spel.SFree(1, 2);
ShowWindow方法,Spel類別
描述
顯示Epson RC+ 8.0視窗。
語法
Sub ShowWindow (WindowID As SpelWindows [, Parent As Form])
參數
- 視窗ID
要顯示的Epson RC+ 8.0視窗的ID。 - Parent
視窗的父.NET表單(選用)。
備註
您可使用Parent參數指定視窗的.NET父項。若無法使用.NET父表單,您必須省略Parent參數並使用ParentWindowHandle屬性來設定父項的控制代碼。
另請參閱
HideWindow, ParentWindowHandle, RunDialog, ServerOutOfProcess
ShowWindow範例
VB 例:
Sub btnShowIOMonitor_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnShowIOMonitor.Click
m_spel.ShowWindow(RCAPINet.SpelWindows.IOMonitor, Me)
End Sub
C# 例:
void btnShowIOMonitor_Click(object sender, EventArgs e)
{
m_spel.ShowWindow(RCAPINet.SpelWindows.IOMonitor, this);
}
SimGet 方法,Spel類別
描述
取得模擬器的各種物件屬性的設定值。
語法
Sub SimGet (Object As String, Property As SpelSimProps, ByRef Value As Boolean)
Sub SimGet (RobotName As String, HandName As String, Property As SpelSimProps, ByRef Value As Boolean)
Sub SimGet (Object As String, Property As SpelSimProps, ByRef Value As Double)
Sub SimGet (RobotName As String, HandName As String, Property As SpelSimProps, ByRef Value As Double)
Sub SimGet (Object As String, Property As SpelSimProps, ByRef Value As Integer)
Sub SimGet (RobotName As String, HandName As String, Property As SpelSimProps, ByRef Value As Integer)
Sub SimGet (Object As String, Property As SpelSimProps, ByRef Value As Boolean)
Sub SimGet (RobotName As String, HandName As String, Property As SpelSimProps, ByRef Value As String)
參數
- Object
代表取得了屬性值的物件名稱的字串變數 - RobotName
代表安裝了“Hand”中指定夾具的機器人名稱的字串變數 - HandName
代表取得屬性值的夾具名稱的字串變數 - Property
取得值的屬性的名稱。 - Value
代表傳回值得變數
備註
本方法用於取得模擬器中的各種物件的屬性設定值。
有關各屬性的詳細資訊,請參閲以下手冊。
"Epson RC+ 8.0 SPEL+ 語言參考 - SimGet"
另請參閱
SimSet
SimGet範例
VB 例:
Dim posX As Double
m_spel.SimGet("SBox_1", SpelSimProps.PositionX, posX)
C# 例:
double posX;
SimGet("SBox_1", SpelSimProps.PositionX, out posX);
SimResetCollision方法,Spel類別
描述
重設碰撞偵測。
語法
Sub SimResetCollision ()
備註
執行本方法后,如果機器人和物件之間沒有發生碰撞,則重設碰撞狀態並更新模擬器的3D顯示。如果機器人和物件之間發生碰撞,則不會解除碰撞狀態,模擬器的3D顯示也不會更新。
有關詳細資訊,請參閲以下手冊。
"Epson RC+ 8.0 SPEL+ 語言參考 - SimSet"
另請參閱
SimSet
SimResetCollision範例
VB 例:
m_spel.SimResetCollision ()
C# 例:
m_spel.SimResetCollision ();
SimSet 方法,Spel類別
描述
設定模擬器中各種物件的屬性。還可以進行機器人動作和物件操作,以及模擬器設定等操作。
語法
Sub SimSet (Object As String, Property As SpelSimProps, Value As Boolean)
Sub SimSet (RobotName As String, HandName As String, Property As SpelSimProps, Value As Boolean)
Sub SimSet (Object As String, Property As SpelSimProps, Value As Integer)
Sub SimSet (RobotName As String, HandName As String, Property As SpelSimProps, Value As Integer)
Sub SimSet (Object As String, Property As SpelSimProps, Value As Double)
Sub SimSet (RobotName As String, HandName As String, Property As SpelSimProps, Value As Double)
Sub SimSet (Object As String, Property As SpelSimProps, Value As String)
Sub SimSet (RobotName As String, HandName As String, Property As SpelSimProps, Value As String)
參數
- Object
代表取得了屬性值的物件名稱的字串變數 - RobotName
代表安裝了“Hand”中指定夾具的機器人名稱的字串變數 - HandName
代表取得屬性值的夾具名稱的字串變數 - Property
設定了新值的屬性的名稱 - Value
新值的運算式
備註
本方法用於設定和操作模擬器中的各種物件的屬性、機器人動作個和更改模擬器設定。
屬性不能指定SpelSimProps.Type。
有關各屬性的詳細資訊,請參閲以下手冊。
"Epson RC+ 8.0 SPEL+ 語言參考 - SimSet"
另請參閱
SimGet
SimSet範例
VB 例:
m_spel.SimSet ("SBox_1", SpelSimProps.PositionX, 100.0)
C# 例:
m_spel.SimSet("SBox_1", SpelSimProps.PositionX, 100.0);
SimSetParent 方法,Spel類別
描述
設定物件的操作。
語法
Sub SimSetParent (Object As String)
Sub SimSetParent (Object As String, ParentObject As String)
參數
- Object
代表設定了父層物件的物件名稱的字串變數 - ParentObject
代表父層物件的字串變數
備註
對於“Object”中指定的物件,會將“ParentObject”中指定物件設置為其父層物件。可以省略“ParentObject”。這種情況下“Object”中指定的物件則為父層物件。例如,如果“Object”中指定的物件是某個物件的子物件,則會解除對其子物件的設定。
此外,如果“Object”中指定的物件是零件或者機械臂安裝設備,則無法指定父層物件。
有關SetParent 中可以指定的物件,請參閲以下手冊。
"Epson RC+ 8.0 SPEL+ 語言參考 - SimSet"
如果使用攝像機物件,只有設定為固定攝像機時,才可以使用SetParent。
另請參閱
SimSet
SimSetParent範例
VB 例:
m_spel.SimSetParent ("SBox_1")
C# 例:
m_spel.SimSetParent ("SBox_1");
SimSetPick 方法,Spel類別
描述
使用指定的機器人抓取物件。
語法
Sub SimSetPick (RobotName As String, Object As String)
Sub SimSetPick (RobotName As String, Object As String, ToolNumber As Integer)
參數
- RobotName
代表Pick的機器人名稱的字串變數 - Object
代表被Pick的物件名稱的字串變量 - ToolNumber
代表Pick時使用的Tool編號的運算式
備註
“Robot”中指定的機器人會抓取“Object”中指定的物件。被抓取的物件則會被登錄為機器人的一部分。然後在Tool中指定任意工具編號,就可以用指定的工具進行抓取。如果不指定“Tool”,則會使用Tool0進行抓取。
無法抓取已注冊為零件的物件或設爲機械手安裝設備的物件。此外,也無法抓取攝像機。
有關詳細資訊,請參閲以下手冊。
"Epson RC+ 8.0 SPEL+ 語言參考 - SimSet"
另請參閱
SimGet, SimSet, SimSetPlace
SimSetPick範例
VB 例:
m_spel.SimSetPick ("Robot1", "SBox_1", 1)
C# 例:
m_spel.SimSetPick ("Robot1", "SBox_1", 1);
SimSetPlace 方法,Spel類別
描述
使用指定的機器人放置物件。
語法
Sub SimSetPlace (RobotName As String, Object As String)
參數
- RobotName
代表Place機器人名稱的字串變數 - Object
字串變數,代表被Place的物件名稱。
備註
“Robot”中指定的機器人會放置“Object”中指定的物件。被防止的物件將被解除該機器人零件的注冊。
不可放置已被解除零件注冊的物件。
有關詳細資訊,請參閲以下手冊。
"Epson RC+ 8.0 SPEL+ 語言參考 - SimSet"
另請參閱
SimGet, SimSet, SimSetPick
SimSetPlace範例
VB 例:
m_spel.SimSetPlace ("Robot1", "SBox_1")
C# 例:
m_spel.SimSetPlace ("Robot1", "SBox_1");
Shutdown方法,Spel類別
描述
關閉或重啟Windows。
語法
Sub Shutdown (Mode As SpelShutdownMode)
參數
- Mode
0 = 關閉Windows。1 = 重啟Windows。
另請參閱
Reset
Shutdown範例
VB 例:
' 重啟Windows
m_spel.Shutdown(1)
C# 例:
// 重啟 Windows
m_spel.Shutdown(1);
SLock方法,Spel類別
描述
將指定的機器人軸傳回伺服系統控制。
語法
Sub SLock ()
Sub SLock (ParamArray Axes() As Integer)
參數
- Axes
包含要鎖定之各機器人軸的一個元素的整數參數陣列。您可指定介於1 – 9的管道#。
另請參閱
SFree
SLock範例
VB 例:
' 將軸1和2傳回伺服系統控制。
m_spel.SLock(1, 2)
C# 例:
// 將軸1和2傳回伺服系統控制。
m_spel.SLock(1, 2);
Speed方法,Spel類別
描述
指定要搭配PTP指令Go、Jump及Pulse使用的手臂速度。
語法
Sub Speed (PointToPointSpeed As Integer[, JumpDepartSpeed As Integer ] [, JumpApproSpeed As Integer])
參數
- PointToPointSpeed
指定要搭配PTP指令Go、Jump及Pulse使用的手臂速度。 - JumpDepartSpeed
Jump命令時,代表向上動作速度的整數(1~100)。 - JumpApproSpeed
Jump命令時,代表向下動作速度的整數(1~100)。
另請參閱
Accel, Jump, Go
Speed範例
VB 例:
m_spel.Speed(50)
C# 例:
m_spel.Speed(50);
SpeedR方法,Spel類別
描述
指定使用ROT時的工具旋轉速度。
語法
Sub SpeedR (RotationSpeed As Single)
參數
- RotationSpeed
以0.1以上實數值指定工具姿勢變化的速度(單位:deg/sec)。
另請參閱
Arc, Arc3, BMove, Jump3CP, Power, TMove
SpeedR範例
VB 例:
m_spel.SpeedR(100)
C# 例:
m_spel.SpeedR(100);
SpeedS方法,Spel類別
描述
指定要搭配連續路徑指令Jump3CP、Move、Arc及CVMove使用的手臂速度。
語法
Sub SpeedS (LinearSpeed As Single [, JumpDepartSpeed As Single][, JumpApproSpeed As Single])
參數
- LinearSpeed
指定在CP命令的Jump3CP、Move、Arc及CVMove使用的手臂速度。 - JumpDepartSpeed
實數或運算式(單位:mm/sec),代表Jump、Jump3CP的起始速度。 - JumpApproSpeed
實數或運算式(單位:mm/sec),代表Jump、Jump3CP的接近速度。
另請參閱
AccelS, Jump3CP, Move, TMove
SpeedS範例
VB 例:
m_spel.SpeedS(500)
C# 例:
m_spel.SpeedS(500);
Start方法,Spel類別
描述
啟動一個SPEL+程式。
語法
Sub Start (ProgramNumber As Integer)
參數
- ProgramNumber
對於要開始的程式編號以及SPEL+中內建的64個main函數,如以下對照表所示。範圍介於0至63。
程式編號 | SPEL+函數名稱 |
---|---|
0 | main |
1 | main1 |
2 | main2 |
3 | main3 |
4 | main4 |
5 | main5 |
... | ... |
63 | main63 |
備註
執行Start時,控制將會立即回到調用程式。您無法啟動正在執行的程式。請注意,Start會清除控制器中的全域變數且會載入預設的機器人點。
另請參閱
Continue, Pause, Stop, Xqt
Start範例
VB 例:
Sub btnStart_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnStart.Click
m_spel.Start(0)
End Sub
C# 例:
void btnStart_Click(object sender, EventArgs e)
{
m_spel.Start(0);
}
StartBGTask方法,Spel類別
描述
啟動一個SPEL+任務作為背景任務。
語法
Sub StartBGTask (FuncName As String)
參數
- FuncName
指定要執行之函數的名稱。
備註
使用StartBGTask可在控制器中啟動Spel+背景任務。背景任務必須在控制器中啟用。
請注意,BGMain會在控制器切換至自動模式時自動啟動,因此通常不需要使用StartBGTask。
StartBGTask是提供用於需要停止所有任務、接著重啟背景任務的情況。
另請參閱
Call, Start, Stop, Xqt
StartBGTask範例
VB 例:
' 停止所有任務,包含背景任務
m_spel.Stop(SpelStopType.StopAllTasks)
…
m_spel.RebuildProject()
' 重新開始主要背景任務
m_spel.StartBGTask("BGMain")
C# 例:
// 停止所有任務,包含背景任務
m_spel.Stop(SpelStopType.StopAllTasks);
…
m_spel.RebuildProject();
// 重新開始主要背景任務
m_spel.StartBGTask("BGMain");
Stat方法,Spel類別
描述
傳回控制器狀態。
語法
Function Stat (Address As Integer) As Integer
參數
- Address
指定代表控制器狀態的地址。(0至-2的整數)
傳回值
傳回代表控制器狀態的4位元組值。(請參閱下表。)
地址 | Bit | 位元開啟時的控制器狀態 | |
---|---|---|---|
0 | 0-15 | &H1-&H8000 | 任務1至16正在執行(Xqt)或處於停止狀態 |
16 | &H10000 | 任務正在執行 | |
17 | &H20000 | 暫停狀態 | |
18 | &H40000 | 錯誤狀態 | |
19 | &H80000 | TEACH模式 | |
20 | &H100000 | 緊急停止狀態 | |
21 | &H200000 | 低運行功率模式 | |
22 | &H400000 | 安全防護打開 | |
23 | &H800000 | 啟動開關開啟 | |
24 | &H1000000 | 未定義 | |
25 | &H2000000 | 未定義 | |
26 | &H4000000 | 測試模式 | |
27 | &H8000000 | T2模式狀態 | |
28-31 | 未定義 | ||
1 | 0 | &H1 | 符合Jump...Sense陳述式中的條件時,目標位置上方的停止日誌。 (此日誌會在執行其他Jump陳述式時消除)。 |
1 | &H2 | 滿足Go/Jump/Move...Till陳述式中的條件時,中間移動位置的停止日誌。(此日誌會在執行其他Go/Jump/Move...Till陳述式時消除) | |
2 | &H4 | 未定義 | |
3 | &H8 | 偵測到Trap陳述式時停止進行中動作的日誌。 | |
4 | &H10 | 馬達開啟狀態 | |
5 | &H20 | 起始點位置 | |
6 | &H40 | 低運行功率模式 | |
7 | &H80 | 未定義 | |
8 | &H100 | 關節#4已接合。 | |
9 | &H200 | 關節#3已接合。 | |
10 | &H400 | 關節#2已接合。 | |
11 | &H800 | 關節#1已接合。 | |
12 | &H1000 | 關節#6已接合。 | |
13 | &H2000 | 關節#5已接合。 | |
14 | &H4000 | T軸已接合。 | |
15 | &H8000 | S軸已接合。 | |
16 | &H10000 | 關節#7已接合。 | |
17-31 | 未定義 | ||
2 | 0-15 | &H1-&H8000 | 任務17至32正在執行(Xqt)或處於停止狀態 |
另請參閱
EStopOn, PauseOn, SafetyOn
Stat範例
VB 例:
Dim ctr_stat As Integer
ctr_stat = m_spel.Stat(0)
C# 例:
int ctr_stat;
ctr_stat = m_spel.Stat(0);
Stop方法,Spel類別
描述
停止控制器中執行的所有一般SPEL+任務,以及選擇性停止所有背景任務。
語法
Sub Stop ()
Sub Stop (SpelStopType StopType)
參數
- StopType
指定僅停止正常任務(StopNormalTasks)或停止所有任務(StopAllTasks)。(可省略)若省略,則會指定StopNormalTasks。
注意
如果在ResetAbortEnabled設為True時執行Stop方法,則執行Start或Reset方法時會出現10101錯誤。
若要解除錯誤,請在執行Stop方法後執行ResetAbort方法。
另請參閱
Continue, Pause, ResetAbort, ResetAbortEnabled, Start, SpelStopType
Stop範例
VB 例:
Sub btnStop_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnStop.Click
m_spel.Stop()
End Sub
C# 例:
void btnStop_Click(object sender, EventArgs e)
{
m_spel.Stop();
}
Sw方法,Spel類別
描述
傳回選取的輸入位元狀態。
語法
Function Sw (BitNumber As Integer) As Boolean
Function Sw (Label As String) As Boolean
參數
- BitNumber
代表任一個標準或擴展輸入的整數運算式。 - Label
包含輸入位元標籤的字串運算式。
傳回值
若指定輸入位元已開啟,會傳回True,否則會傳回False。
另請參閱
In, InBCD, MemSw, Off, On, Oport
Sw範例
VB 例:
If m_spel.Sw(1) Then
m_spel.On(2)
End If
C# 例:
if (m_spel.Sw(1))
m_spel.On(2);
TargetOK方法,Spel類別
描述
傳回指示目前位置到目標位置的PTP(點至點)動作是否可行的狀態。
語法
Function TargetOK (PointNumber As Integer) As Boolean
Function TargetOK (Point As SpelPoint) As Boolean
Function TargetOK (PointExpr As String) As Boolean
參數
每個語法都有一個參數,用以指定要檢查的目標點。
- PointNumber
從目前機器人的點記憶體(被保存在控制器中)中使用先前示教點的編號,以指定終點。
Point 透過使用SpelPoint資料類型來指定目標點。 - PointExpr
透過使用字串運算式來指定終點。
傳回值
若目標可以從目前位置移動,會傳回True,否則會傳回False。
另請參閱
Go, Jump, Move, TGo, TMove
TargetOK範例
VB 例:
If m_spel.TargetOK("P1 /F") Then
m_spel.Go("P1 /F")
End If
C# 例:
if (m_spel.TargetOK("P1 /F"))
m_spel.Go("P1 /F");
TasksExecuting方法,Spel類別
描述
若正在執行任何SPEL+任務,會傳回True。
語法
Function TasksExecuting () As Boolean
傳回值
若正在執行任何SPEL+任務,會傳回True,否則會傳回False。
另請參閱
TaskState, Xqt
TasksExecuting範例
VB 例:
tasksRunning = m_spel.TasksExecuting()
C# 例:
tasksRunning = m_spel.TasksExecuting();
TaskState方法,Spel類別
描述
傳回任務的狀態。
語法
Function TaskState (TaskNumber As Integer) As SpelTaskState
Function TaskState (TaskName As String) As SpelTaskState
參數
- TaskNumber
傳回執行狀態的任務#。 - TaskName
包含任務名稱的字串運算式。
傳回值
SpelTaskState值。
另請參閱
TasksExecuting, Xqt
TaskState範例
VB 例:
Dim taskState As SpelTaskState
taskState = m_spel.TaskState(2)
C# 例:
SpelTaskState taskState;
taskState = m_spel.TaskState(2);
TeachPoint方法,Spel類別
描述
執行用以允許操作員步進示教一個點的對話方塊。
語法
Function TeachPoint (PointFile As String, PointNumber As Integer, Prompt As String) As Boolean
Function TeachPoint (PointFile As String, PointName As String, Prompt As String) As Boolean
Function TeachPoint (PointFile As String, PointNumber As Integer, Prompt As String, Parent As Form) As Boolean
Function TeachPoint (PointFile As String, PointName As String, Prompt As String, Parent As Form) As Boolean
參數
- PointFile
包含點檔案名稱的字串。 - PointNumber
要示教的點編號。 - PointName
點標籤的字串運算式。 - Prompt
包含顯示於示教對話方塊底部之說明文字的字串。 - Parent
視窗的父.NET表單(選用)。
傳回值
若操作員按一下示教按鈕,會傳回True;若操作員按一下取消,會傳回False。
備註
使用TeachPoints可讓操作員在控制器中示教一個機器人點。執行TeachPoints時,點文件會從控制器載入。按一下示教按鈕時,點會在控制器中示教,且點文件會儲存至控制器。
TeachPoint範例
VB 例:
Sub btnTeachPick_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnTeachPick.Click
Dim sts As Boolean
Dim prompt As String
prompt = "Jog to Pick position and click Teach"
sts = m_spel.TeachPoint("points.pts", 1, prompt)
End Sub
C# 例:
void btnTeachPick_Click(object sender, EventArgs e){
bool sts;
string prompt;
prompt = "Jog to Pick position and click Teach";
sts = m_spel.TeachPoint("points.pts", 1, prompt);
}
Till方法,Spel類別
描述
指定事件條件,符合條件時會減速並停止中間位置的機器人,以完成進行中的動作命令(Jump、Go、Move等)。
語法
Sub Till (Condition As String) As Boolean
參數
- Condition
指定I/O條件。有關詳細資訊,請參閱SPEL+語言參考的「Till」。
另請參閱
Go, Jump, JS, Sense, TillOn
Till範例
VB 例:
With m_spel
.Till("Sw(1) = On")
.Go("P1 TILL")
End With
C# 例:
m_spel.Till("Sw(1) = On");
m_spel.Go("P1 TILL");
TillOn方法,Spel類別
描述
若till條件在最後Go/Jump/Move陳述式期間發生停止狀況,會傳回True。
語法
Function TillOn () As Boolean
傳回值
若機器人因Till條件而停止,會傳回True,否則會傳回False。
備註
使用TillOn可檢查是否已在最後動作命令期間用Till開啟Till條件。
TillOn相當於
((Stat(1) And 2) <> 0)
另請參閱
Jump, Till
TillOn範例
VB 例:
If m_spel.TillOn() Then
m_spel.Jump(2)
End If
C# 例:
if (m_spel.TillOn())
m_spel.Jump(2);
TGo方法,Spel類別
描述
在目前工具座標系統中執行PTP相對動作。
語法
Sub TGo (PointNumber As Integer)
Sub TGo (Point As SpelPoint)
Sub TGo (Point As SpelPoint, AttribExpr As String)
Sub TGo (PointExpr As String)
參數
每個語法都有一個參數,用以指定在TGo動作期間手臂移動的結束點。此為PTP動作結束時的最終位置。
- PointNumber
從目前機器人的點記憶體(被保存在控制器中)中使用先前示教點的編號,以指定終點。 - Point
透過使用SpelPoint資料類型來指定目標點。 - AttribExpr
透過使用字串運算式來指定結束點屬性。
可包括CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。 - PointExpr
透過使用字串運算式來指定終點。
可包括CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。
另請參閱
Accel, Speed
Arc, Arc3, CVMove, Go, Jump, Jump3, Jump3CP, Move
BGo, BMove, TMove
Find, Till
TGo範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.TGo(100)
' 使用SpelPoint指定的點
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 125.5
m_spel.TGo(pt)
' 使用點運算式指定的點
m_spel.TGo("P0")
m_spel.TGo("XY(0, 0, -20, 0)")
' 使用平行處理
m_spel.TGo("P1 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.TGo("pick")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.TGo(100);
// 使用SpelPoint指定的點
SpelPoint pt;
pt = m_spel.GetPoint("P0");
pt.X = 125.5;
m_spel.TGo(pt);
// 使用點運算式指定的點
m_spel.TGo("P0 /L /2");
m_spel.TGo("P1 :Z(-20)");
// 使用平行處理
m_spel.TGo("P1 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.TGo("pick");
TLClr方法,Spel類別
描述
清除(取消定義)工具座標系統。
語法
Sub TLClr (ToolNumber As Integer)
參數
- ToolNumber
整數,代表要清除哪個工具座標系(Tool 0為預設工具,無法清除)。
另請參閱
Tool, TLDef
TLClr範例
VB 例:
m_spel. TLClr(1)
C# 例:
m_spel. TLClr(1);
TLDef方法,Spel類別
描述
傳回工具定義狀態。
語法
Function TLDef (ToolNumber As Integer) As Boolean
參數
- ToolNumber
代表要傳回狀態之工具的整數運算式。
傳回值
若指定工具已定義,會傳回True,否則會傳回False。
另請參閱
Tool, TLClr
TLDef範例
VB 例:
m_spel.TLDef(1)
C# 例:
m_spel.TLDef(1);
TLSet方法,Spel類別
描述
定義工具座標系統。
語法
Sub TLset (ToolNumber As Integer , Point As SpelPoint)
Sub TLset (ToolNumber As Integer, XCoord As Single, YCoord As Single, ZCoord As Single, UCoord As Single, VCoord As Single, WCoord As Single)
參數
- ToolNumber
整數運算式(1~15),代表從15個工具中定義哪個工具。Tool 0為預設工具,無法變更。 - Point
包含點資料的SpelPoint。 - XCoord
工具座標系統原點X座標。 - YCoord
工具座標系統原點Y座標。 - ZCoord
工具座標系統原點Z座標。 - UCoord
繞Z軸的工具座標系統旋轉。 - VCoord
繞Y軸的工具座標系統旋轉。 - WCoord
繞X軸的工具座標系統旋轉。
另請參閱
Arm, ArmSet, GetTool, Tool
TLSet範例
VB 例:
m_spel.TLSet(1, .5, 4.3, 0, 0, 0, 0)
C# 例:
m_spel.TLSet(1, .5, 4.3, 0, 0, 0, 0);
TMove方法,Spel類別
描述
在目前工具座標系統中執行線性插補相對動作。
語法
Sub TMove (PointNumber As Integer)
Sub TMove (Point As SpelPoint)
Sub TMove (Point As SpelPoint, AttribExpr As String)
Sub TMove (PointExpr As String)
參數
每個語法都有一個參數,用以指定在TMove動作期間手臂移動的結束點。此為線性插補動作結束時的最終位置。
- PointNumber
從目前機器人的點記憶體(被保存在控制器中)中使用先前示教點的編號,以指定目標位置。 - Point
透過使用SpelPoint資料類型來指定目標點。 - AttribExpr
透過使用字串運算式來指定終點屬性。
可包括ROT、CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。 - PointExpr
透過使用字串運算式來指定目標位置。
可包括ROT、CP、SYNC、Till或Find的搜尋運算式以及並行處理陳述式。
另請參閱
AccelR, AccelS, SpeedR, SpeedS
Arc, Arc3, CVMove, Go, Jump, Jump3, Jump3CP, Move
BGo, BMove, TGo
Find, Till
TMove範例
VB 例:
' 使用點編號指定的點
m_spel.Tool(1)
m_spel.TMove(100)
' 使用SpelPoint指定的點
Dim pt As SpelPoint
pt = m_spel.GetPoint("P*")
pt.X = 125.5
m_spel.TMove(pt)
' 使用點運算式指定的點
m_spel.TMove("P0")
m_spel.TMove("XY(0, 0, -20, 0)")
' 使用平行處理
m_spel.TMove("P1 \!D50; On 1; D90; Off 1\!")
' 使用標籤指定的點
m_spel.TMove("pick")
C# 例:
// 使用點編號指定的點
m_spel.Tool(1);
m_spel.TMove(100);
// 使用SpelPoint指定的點
SpelPoint pt;
pt = m_spel.GetPoint("P0");
pt.X = 125.5;
m_spel.TMove(pt);
// 使用點運算式指定的點
m_spel.TMove ("P0");
m_spel.TMove ("XY(0, 0, -20, 0)");
// 使用平行處理
m_spel.TMove("P1 \!D50; On 1; D90; Off 1\!");
// 使用標籤指定的點
m_spel.TMove("pick");
Tool方法,Spel類別
描述
選擇目前機器人工具。
語法
Sub Tool (ToolNumber As Integer)
參數
- ToolNumber
介於0-15的整數,代表16個工具定義中要搭配後續動作指令使用的工具定義。
另請參閱
TLSet, Arm, TGo, TMove
Tool範例
VB 例:
m_spel.Tool(1)
m_spel.TGo(100)
C# 例:
m_spel.Tool(1);
m_spel.TGo(100);
TrapStop方法,Spel類別
描述
若目前機器人在上一個動作命令期間因trap而停止,會傳回True。
語法
Function TrapStop () As Boolean
傳回值
若機器人因trap而停止,會傳回True,否則會傳回False。
另請參閱
EstopOn, ErrorOn
TrapStop範例
VB 例:
If m_spel.TrapStop() Then
MsgBox "Robot stopped by Trap"
End If
C# 例:
if (m_spel.TrapStop())
MessageBox.Show("Robot stopped by trap");
TW方法,Spel類別
描述
傳回WAIT條件及WAIT定時器間隔的狀態。
語法
Function TW () As Boolean
傳回值
若發生超時,會傳回True,否則會傳回False。
另請參閱
WaitMem, WaitSw
TW範例
VB 例:
Const PartPresent = 1
m_spel.WaitSw(PartPresent, True, 5)
If m_spel.TW() Then
MsgBox "Part present time out occurred"
End If
C# 例:
const int PartPresent = 1;
m_spel.WaitSw(PartPresent, True, 5);
if (m_spel.TW())
MessageBox.Show("Part present time out occurred");
UserHasRight方法,Spel類別
描述
傳回目前登錄的使用者是否具有指定的權限。
語法
Function UserHasRight (SpelUserRights Right) As Boolean
參數
- Right
要針對目前登錄使用者進行檢查的權限。
傳回值
若使用者擁有指定權限,會傳回True,否則會傳回False。
另請參閱
Login, GetCurrentUser
UserHasRight範例
VB 例:
Dim hasRight As Boolean
hasRight = m_spel.UserHasRight(SpelUserRights.EditPoints)
C# 例:
bool hasRight;
hasRight = m_spel.UserHasRight(SpelUserRights.EditPoints);
VCal方法,Spel類別
描述
此命令可讓您執行視覺校準週期。
語法
Sub VCal (CalibName As String)
Sub VCal (CalibName As String, ByRef Status As Integer)
Sub VCal (CalibName As String, Parent As Form)
Sub VCal (CalibName As String, Parent As Form, ByRef Status As Integer)
參數
- CalibName
評估目前專案中校正技術之名稱的字串運算式。 - Status
接收校正狀態的整數變數。
0:失敗,1:成功 - Parent
視窗的父.NET表單(選用)。
備註
執行VCal方法時,機器人將會移動。您應確認操作員是否已在執行VCal前完成準備。
VCal只會執行校準週期,不能讓您示教點。使用VCalPoints則可示教點。此外,您必須先在Epson RC+ 8.0中設定校準。如需詳細資訊,請參閱Vision Guide手冊。
使用Status參數檢查校準是否成功。如果ShowConfirmation校準屬性設為True,則會顯示確認對話方塊。當操作員按一下[OK]按鈕時,狀態傳回1:成功。
另請參閱
VCalPoints
VCal範例
VB 例:
Dim status As Integer
m_spel.VCal("CAMCAL1", status)
C# 例:
int status;
m_spel.VCal("CAMCAL1", status);
VCalPoints方法,Spel類別
描述
此命令可讓您示教視覺校準點。
語法
Sub VCalPoints (CalibName As String)
Sub VCalPoints (CalibName As String, ByRef Status As Integer)
Sub VCalPoints (CalibName As String, Parent As Form)
Sub VCalPoints (CalibName As String, Parent As Form, ByRef Status As Integer)
參數
- CalibName
字元運算式,代表目前專案的校正技術名稱。 - Status
選用。接收點示教狀態的整數變數。0:失敗,1:成功 - Parent
視窗的父.NET表單(選用)。
備註
執行VCalPoints命令時,示教點校準點對話方塊會開啟。按一下[Finish]按鈕時,校準資料會自動保存。
您必須先從Epson RC+ 8.0建立校準設定。
使用Status參數檢查點示教是否成功。當所有點已示教並按一下[Finish]按鈕時,Status傳回1:成功。
另請參閱
VCal
VCalPoints範例
VB 例:
Dim status As Integer
m_spel.VCalPoints("CAMCAL1", status)
C# 例:
int status;
m_spel.VCalPoints("CAMCAL1", out status);
VCls方法,Spel類別
描述
清除視覺圖形。
語法
Sub VCls ()
備註
使用VCls方法可清除視覺畫面。
另請參閱
VRun
VCls範例
VB 例:
m_spel.VCls()
C# 例:
m_spel.VCls();
VCreateCalibration方法,Spel類別
描述
在目前專案中建立新建視覺校準。
語法
Sub VCreateCalibration (CameraNumber As Integer, CalibName As String)
Sub VCreateCalibration (CameraNumber As Integer, CalibName As String,CopyCalibName As String)
參數
- CameraNumber
包含要校正之攝影機編號的整數運算式。 - CalibName
包含要建立之視覺校正名稱的字串運算式。 - CopyCalibName
字串運算式,代表要複製的視覺校準名稱(可省略)。
另請參閱
VcreateObject, VcreateSequence, VDeleteCalibration
VCreateCalibration範例
VB 例:
m_spel.VCreateCalibration(1, "mycal")
C# 例:
m_spel.VCreateCalibration(1, "mycal");
VCreateObject方法,Spel類別
描述
在目前專案中建立視覺物件。
語法
Sub VCreateObject (Sequence As String, ObjectName As String, ObjectType As SpelVisionObjectTypes)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - ObjectName
包含要在Sequence序列中建立之物件名稱的字串運算式。 - ObjectType
指定視覺物件類型的SpelVisionObjectTypes。(以下所示的常數也可使用)
物件類型 | 常數 | 數值 |
---|---|---|
Correlation | Correlation | 1 |
Blob | Blob | 2 |
Edge | Edge | 3 |
Polar | Polar | 4 |
Line | Line | 5 |
Point | Point | 6 |
Frame | Frame | 7 |
ImageOp | ImageOp | 8 |
Ocr | Ocr | 9 |
CodeReader | CodeReader | 10 |
Geometric | Geometric | 11 |
Color Match | ColorMatch | 14 |
Line Finder | LineFinder | 15 |
Arc Finder | ArcFinder | 16 |
Defect Finder | DefectFinder | 17 |
Line Inspector | LineInspector | 18 |
Arc Inspector | ArcInspector | 19 |
Box Finder | BoxFinder | 20 |
Corner Finder | CornerFinder | 21 |
Contour | Contour | 22 |
Text | Text | 23 |
Decision | Decision | 26 |
Coordinates | Coordinates | 27 |
另請參閱
VcreateSequence, VdeleteObject, VDeleteSequence
VCreateObject範例
VB 例:
m_spel.VCreateObject("myseq", "myblob", SpelVisionObjectTypes.Blob)
C# 例:
m_spel.VCreateObject("myseq", "myblob", SpelVisionObjectTypes.Blob);
VCreateSequence方法,Spel類別
描述
在目前專案中建立新建視覺序列。
語法
Sub VCreateSequence (CameraNumber As Integer, SequenceName As String)
Sub VCreateSequence (CameraNumber As Integer, SequenceName As String,
CopySequenceName As String)
參數
- CameraNumber
包含要使用之攝影機編號的整數運算式。 - SequenceName
包含要建立之視覺序列名稱的字串運算式。 - CopySequenceName
字串運算式,代表要複製的視覺校準名稱(可省略)。
另請參閱
VcreateObject, VdeleteObject, VDeleteSequence
VCreateSequence範例
VB 例:
m_spel.VCreateSequence(1, "myseq")
C# 例:
m_spel.VCreateSequence(1, "myseq");
VDefArm方法,Spel類別
描述
使用視覺系統可偵測到的特徵點,計算移動攝影機的手臂設定值。
注意:機器人會根據目標偵測結果自動運作。小心機器人與周邊設備發生干擾。此外,這可用於避開各軸延伸姿態附近的奇點,防止手臂設定期間發生錯誤。
語法
Sub VDefArm (ArmNumber As Integer, ArmDefType As SpelArmDefType, ArmDefMode As SpelArmDefMode, Sequence As String, Rotation As Double, TargetTolerance As Double)
Sub VDefArm (ArmNumber As Integer, ArmDefType As SpelArmDefType, ArmDefMode As SpelArmDefMode, Sequence As String, Rotation As Double, TargetTolerance As Double, Parent As Form)
Sub VDefArm (ArmNumber As Integer, ArmDefType As SpelArmDefType, ArmDefMode As SpelArmDefMode, Sequence As String, Rotation As Double, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer, ShowWarning As SpelVDefShowWarning)
Sub VDefArm (ArmNumber As Integer, ArmDefType As SpelArmDefType, ArmDefMode As SpelArmDefMode, Sequence As String, Rotation As Double, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer, ShowWarning As SpelVDefShowWarning,Parent As Form)
參數
- ArmNumber
整數運算式,包含用以執行手臂設定的手臂編號(1至15)。 - ArmDefType
包含手臂類型的整數運算式。
J2Camera:計算移動J2攝影機影像的中心。 - ArmDefMode
包含手臂設定模式的整數運算式。
執行rough手臂設定的模式。機器人將會以1公釐的設定準確度為目標進行移動。機器人動作會比較小。
Fine:執行fine手臂設定的模式。機器人將隨手臂方向改變大幅移動,提供更高準確度的手臂設定。 - Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Rotation
rough手臂設定之旋轉角度(度)的實數運算式。
範圍介於0至45。 - TargetTolerance
包含像素距離的實數運算式,將視覺偵測結果視為符合目標位置。
範圍介於0至3。 - Parent
視窗的父.NET表單(選用)。 - RobotSpeed
代表機器人速度(%)的整數變數(可省略)。數值範圍:0~100。若省略,將被設為「5」。 - RobotAccel
代表機器人加速度(%)的整數變數(可省略)。數值範圍:0~99。若省略,將被設為「5」。 - ShowWarning
整數變數(可省略),用於設定是否在ArmSetMode為Fine時發出警告。Always:一定發出。DependsOnSpeed:RobotSpeed或RobotAccel大於5時發出。None :不發出。若省略,將被設為「DependsOnSpeed」。
另請參閱
VDefGetMotionRange, VDefLocal, VDefSetMotionRange, VDefTool, VGoCenter
VDefArm範例
VB 例:
m_spel.VDefArm(1, SpelArmDefType.J2Camera, SpelArmDefMode.Rough, "myseq", 5, 1)
C# 例:
m_spel.VDefArm(1, SpelArmDefType.J2Camera, SpelArmDefMode.Rough, "myseq", 5, 1);
VDefGetMotionRange方法,Spel類別
描述
取得VDefTool、VDefArm、VDefLocal及VGoCenter所限制之動作範圍的值。
語法
Sub VDefGetMotionRange(ByRef MaxMoveDist As Double, ByRef MaxPoseDiffAngle As Double, ByRef LjmMode As Integer)
參數
- MaxMoveDist
代表最大移動距離的實數變數。
如果指定0,角度不受限制。(0至500。預設:200)
VDefTool、VDefArm、VDefLocal及VGoCenter用於限制範圍。 - MaxPoseDiffAngle
代表工具方向(UVW)最大位移角度(度)的實數變數。
如果指定0,範圍不受限制。
這只會影響VDefLocal。(0至180。預設:45度) - LjmMode
代表LJM模式的整數變數。
另請參閱
VDefTool, VDefArm, VDefLocal, VGoCenter, VDefSetMotionRange
VDefGetMotionRange範例
VB 例:
Dim maxMoveDist As Double
Dim maxPoseDiffAngle As Double
Dim ljmMode As Integer
m_spel.VDefGetMotionRange(maxMoveDist, maxPoseDiffAngle, ljmMode)
C# 例:
double maxMoveDist, maxPoseDiffAngle;
int ljmMode;
m_spel.VDefGetMotionRange(out maxMoveDist, out maxPoseDiffAngle, out ljmMode);
VDefLocal方法,Spel類別
描述
透過移動攝影機偵測放在工作平面上的校準板,並定義與工作平面平行的本地座標。
這也會透過固定攝影機偵測工具末端的使用者工件,並定義與固定攝影機感測器平行的本地平面。
注意:機器人會根據目標偵測結果自動運作。小心機器人與周邊設備發生干擾。此外,這可用於避開各軸延伸姿態附近的奇點,防止本地座標設定期間發生錯誤。
語法
Sub VDefLocal(LocalNumber As Integer, LocalDefType As SpelLocalDefType, CalPlateType As SpelCalPlateType, Sequence As String, TargetTolerance As Double, CameraTool As Integer, RefPoint As SpelPoint)
Sub VDefLocal(LocalNumber As Integer, LocalDefType As SpelLocalDefType, CalPlateType As SpelCalPlateType, Sequence As String, TargetTolerance As Double, CameraTool As Integer, RefPoint As SpelPoint, Parent As Form)
Sub VDefLocal(LocalNumber As Integer, LocalDefType As SpelLocalDefType, CalPlateType As SpelCalPlateType, Sequence As String, TargetTolerance As Double, CameraTool As Integer, RefPoint As SpelPoint, RobotSpeed As Integer, RobotAccel As Integer)
Sub VDefLocal(LocalNumber As Integer, LocalDefType As SpelLocalDefType, CalPlateType As SpelCalPlateType, Sequence As String, TargetTolerance As Double, CameraTool As Integer, RefPoint As SpelPoint, RobotSpeed As Integer, RobotAccel As Integer, Parent As Form)
參數
- LocalNumber
代表用以設定本地座標之工具編號的整數。(1-15) - LocalDefType
代表本地類型的整數。 - J5Camera:
使用移動J5攝影機指定與校準板平行的本地座標。 - J6Camera:
使用移動J6攝影機指定與校準板平行的本地座標。 - FixedUpwardCamera:
使用上方固定攝影機指定與影像感測器平行的本地座標。 - FixedDownwardCamera:
使用下方固定攝影機指定向下影像感測器平行的本地座標。 - CalPlateType
代表校正板類型的整數。 - Large:
大校準板 - Medium:
中校準板 - Small:
小校準板 - XSmall:
超小校準板 - Sequence
包含目前專案中視覺序列之名稱的字串運算式。
使用移動攝影機時,此為拍攝校準板相片的視覺序列。
使用固定攝影機時,此為偵測工具末端特徵點(例如使用者工件)的視覺序列。 - TargetTolerance
代表刻度符合判定閾值的實際值。 - CameraTool
固定攝影機:指定保持偵測目標工具偏移的工具編號。若要執行自動校準,請指定-1。
移動J6攝影機:如果已執行自動校準,請指定移動攝影機的工具編號。若要執行自動校準,請指定-1。
移動J5攝影機:此選購件的設定會略過。 - RefPoint 平行於工作平面之本地平面通過的點編號。
這個點用於指定本地平面高度。 - Parent
視窗的父.NET表單(選用)。 - RobotSpeed
代表機器人速度(%)的整數變數(可省略)。數值範圍:0~100。若省略,將被設為「5」。 - RobotAccel
代表機器人加速度(%)的整數變數(可省略)。數值範圍:0~99。若省略,將被設為「5」。
另請參閱
VDefArm, VDefGetMotionRange,VDefSetMotionRange, VDefTool, VGoCenter
VDefLocal範例
VB 例:
Dim p2 = m_spel.GetPoint("P2")
m_spel.VDefLocal(1, SpelLocalDefType.J6Camera, SpelCalPlateType.Large, "myseq", 1.0, 1, p2)
C# 例:
SpelPoint p2;
p2 = m_spel.GetPoint("P2");
m_spel.VDefLocal(1, SpelLocalDefType.J6Camera,
SpelCalPlateType.Large, "myseq", 1.0, 1, p2);
VDefSetMotionRange方法,Spel類別
描述
由VDefTool、VDefArm、VDefLocal及VGoCenter限制動作範圍。
語法
Sub VDefSetMotionRange(MaxMoveDist As Double, MaxPoseDiffAngle As Double, LjmMode As Integer)
參數
- MaxMoveDist
代表最大移動距離的實數
如果指定0,範圍不受限制。(0至500。預設:200)
VDefTool、VDefArm、VDefLocal及VGoCenter用於限制範圍。 - MaxPoseDiffAngle
代表工具方向(UVW)最大位移角度(度)的實數
如果指定0,範圍不受限制。
這只會影響VDefLocal。(0至180。預設:45度) - LjmMode
代表LJM模式的整數。
另請參閱
VDefTool, VDefArm, VDefLocal, VGoCenter, VDefGetMotionRange
VDefSetMotionRange範例
VB 例:
m_spel.VDefSetMotionRange(100, 30, 1)
C# 例:
m_spel.VDefSetMotionRange(100, 30, 1);
VDefTool方法,Spel類別
描述
使用視覺偵測,計算TCP移動攝影機位置的工具偏移值。
注意:當工具為FixedCameraWithCal以外的類型時,機器人會根據目標偵測結果自動運作。小心機器人與周邊設備發生干擾。此外,這可用於避開各軸延伸姿態附近的奇點,防止工具設定期間發生錯誤。
語法
Sub VDefTool(ToolNumber As Integer, ToolDefType As SpelToolDefType, Sequence As String, Object As String)
Sub VDefTool(ToolNumber As Integer, ToolDefType As SpelToolDefType, Sequence As String, Object As String, Parent As Form)
Sub VDefTool(ToolNumber As Integer, ToolDefType As SpelToolDefType, Sequence As String, FinalAngle As Double, InitAngle As Double, TargetTolerance As Double)
Sub VDefTool(ToolNumber As Integer, ToolDefType As SpelToolDefType, Sequence As String, FinalAngle As Double, InitAngle As Double, TargetTolerance As Double, Parent As Form)
Sub VDefTool(ToolNumber As Integer, ToolDefType As SpelToolDefType, Sequence As String, FinalAngle As Double, InitAngle As Double, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer)
Sub VDefTool(ToolNumber As Integer, ToolDefType As SpelToolDefType, Sequence As String, FinalAngle As Double, InitAngle As Double, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer, Parent As Form)
參數
- ToolNumber
代表用以執行工具設定(1-15)之工具編號的整數 - ToolDefType
代表工具類型的整數。FixedCamera:透過使用未校正之固定攝影機,設定工具。J4Camera:計算移動J4攝影機的影像中心。J6Camera:計算移動J6攝影機的影像中心。FixedCameraWithCal:透過使用已校正之固定攝影機所設定的工具。 - Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
代表指定序列中視覺物件的字串運算式。當ToolDefType設為FixedCameraWithCal時,需要此參數。當ToolDefType不是FixedCameraWithCal時,物件應為空字串。 - FinalAngle
實數值,代表旋轉工具或攝影機工具的角度(度)。數值範圍:0、5~180、–5~–180。若省略,將被設為「90」。 - InitAngle
實數,代表設定暫時性工具時旋轉工具或攝影機工具的角度(度)。此值必須小於FinalAngle。數值範圍:-10~10。若省略,將被設為「5」。 - TargetTolerance
代表像素距離的實際值,將視覺偵測結果視為符合目標位置。數值範圍:0至3像素
如果省略,請設為「1」。 - Parent
視窗的父.NET表單(選用)。 - RobotSpeed
代表機器人速度(%)的整數變數(可省略)。數值範圍:0~100。若省略,將被設為「5」。 - RobotAccel
代表機器人加速度(%)的整數變數(可省略)。數值範圍:0~99。若省略,將被設為「5」。
另請參閱
VDefArm, VDefGetMotionRange, VDefLocal, VDefSetMotionRange, VGoCenter
VDefTool範例
VB 例:
m_spel.VDefTool(1, SpelToolDefType.J6Camera, "myseq", 45, 5, 3.0)
m_spel.VDefTool(1, SpelToolDefType.FixedCameraWithCal, "myseq", "myobj")
C# 例:
m_spel.VDefTool(1, SpelToolDefType.J6Camera, "myseq", 45, 5, 3.0);
m_spel.VDefTool(1, SpelToolDefType.FixedCameraWithCal, "myseq", "myobj");
VDefToolXYZ 方法, Spel 類別
描述
VDefToolXYZ 使用視覺檢測來計算工具偏移值(XYZ)。
注意:
根據目標檢測結果,機器人會自動工作。注意機器人和週邊設備之間的干擾。此外,這可用於避開各軸延伸姿態附近的奇點,防止工具設定期間發生錯誤。
語法
Sub VDefToolXYZ(ToolNumber As Integer, LocalNumber As Integer, PointNumber1 As Integer, PointNumber2 As Integer, Sequence1 As String, Sequence2 As String, FinalAngle As Double, InitAngle As Double, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer)
Sub VDefToolXYZ(ToolNumber As Integer, LocalNumber As Integer, PointNumber1 As Integer, PointNumber2 As Integer, Sequence1 As String,Sequence2 As String, FinalAngle As Double, InitAngle As Double, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer, Parent As Form)
參數
- ToolNumber
代表用以執行工具設定(1-15)之工具編號的整數 - LocalNumber
代表機器人移動位置之本地座標編號的整數。工具會移動到指定的本地座標的XY平面。 - PointNumber1
代表Point Number第一姿勢的整數 - PointNumber2
代表Point Number第二姿勢的整數 - Sequence1
代表當前專案中第一姿勢的視覺序列名稱的字串運算式 - Sequence2
代表當前專案中第二姿勢的視覺序列名稱的字串運算式 - FinalAngle
代表工具與攝影機工具旋轉角度(度)的實數數值範圍:5 ~ 180, -5 ~ -180 - InitAngle
臨時工具設定時的旋轉角度(度)的實數該值必須小於FinalAngle
數值範圍:0.01 ~ 10, -0.01 ~ -10 - TargetTolerance
代表視覺檢測結果與物件位置一致的閾值像素的實數數值範圍: 0.1 ~ 3.0 pixel - RobotSpeed
代表機器人速度 (%)的整數變數,數值範圍:1 ~ 100 - RobotAccel
代表機器人加速度 (%)的整數變數,數值範圍:1 ~ 99 - Parent
視窗的父.NET表單(選用)。
另請參閱
VDefTool, VDefToolXYZUVW
VDefToolXYZ範例
VB 例:
m_spel.VDefToolXYZ(1, 0, 1, 2, "seq01", "seq02", 5, 30, 1, 5, 5)
m_spel.VDefToolXYZ(2, 0, 3, 4, "seq03", "seq04", 5, 30, 1, 5, 5)
m_spel.VDefToolXYZ(3, 0, 5, 6, "seq05", "seq06", 5, 30, 1, 5, 5)
m_spel.VDefToolXYZUVW(1, 2, 3, SpelToolDefType3D.Bar)
C# 例:
m_spel.VDefToolXYZ(1, 0, 1, 2, "seq01", "seq02", 5, 30, 1, 5, 5);
m_spel.VDefToolXYZ(2, 0, 3, 4, "seq03", "seq04", 5, 30, 1, 5, 5);
m_spel.VDefToolXYZ(3, 0, 5, 6, "seq05", "seq06", 5, 30, 1, 5, 5);
m_spel.VDefToolXYZUVW(1, 2, 3, SpelToolDefType3D.Bar);
VDefToolXYZUVW 方法, Spel 類別
描述
用3个工具定义來計算工具UVW偏移值。
注意:計算出的U, V, W工具偏移值在指定的工具1中設置。工具1的X, Y, Z偏移不變。
語法
Sub VDefToolXYZUVW(ToolNumber1 As Integer, ToolNumber2 As Integer, ToolNumber3 As Integer, ToolDefType3D As SpelToolDefType3D )
參數
- ToolNumber1
代表第1個工具定義的工具編號的整數變量 (1 ~ 15)
條形類型指定工具尖端的工具編號。平面類型指定工具中心的工具編號。 - ToolNumber2
代表第2個工具定義的工具編號的整數變量 (1 ~ 15)
條形類型指定工具中央處的工具編號。平面類型指定工具中心以外,與ToolNumber3不同的工具編號。 - ToolNumber3
代表第3個工具定義的工具編號的整數變量 (1 ~ 15)。
條形類型指定工具末端的工具編號。平面類型指定工具中心以外,與ToolNumber2不同的工具編號。 - ToolDefType3D
代表工具定義的工具類型的整數變量Bar: 條形類型Plane: 平面類型
另請參閱
VDefToolXYZ
VDefToolXYZUVW範例
VB 例:
m_spel.VDefToolXYZ(1, 0, 1, 2, "seq01", "seq02", 5, 30, 1, 5, 5)
m_spel.VDefToolXYZ(2, 0, 3, 4, "seq03", "seq04", 5, 30, 1, 5, 5)
m_spel.VDefToolXYZ(3, 0, 5, 6, "seq05", "seq06", 5, 30, 1, 5, 5)
m_spel.VDefToolXYZUVW(1, 2, 3, SpelToolDefType3D.Bar)
C# 例:
m_spel.VDefToolXYZ(1, 0, 1, 2, "seq01", "seq02", 5, 30, 1, 5, 5);
m_spel.VDefToolXYZ(2, 0, 3, 4, "seq03", "seq04", 5, 30, 1, 5, 5);
m_spel.VDefToolXYZ(3, 0, 5, 6, "seq05", "seq06", 5, 30, 1, 5, 5);
m_spel.VDefToolXYZUVW(1, 2, 3, SpelToolDefType3D.Bar);
VDeleteCalibration方法,Spel類別
描述
在目前專案中刪除視覺校準。
語法
Sub VDeleteCalibration (CalibName As String)
參數
- CalibName
包含目前專案中視覺校正之名稱的字串運算式。
另請參閱
VCreateCalibration, VDeleteObject, VDeleteSequence
VDeleteCalibration範例
VB 例:
m_spel.VDeleteCalibration("mycal")
C# 例:
m_spel.VDeleteCalibration("mycal");
VDeleteObject方法,Spel類別
描述
在目前專案中刪除視覺物件。
語法
Sub VDeleteObject (Sequence As String, ObjectName As String)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - ObjectName
字串運算式,代表目前專案的視覺物件名稱。
另請參閱
VcreateObject, VcreateSequence, VDeleteSequence
VDeleteObject範例
VB 例:
m_spel.VDeleteObject("myseq", "myobj")
C# 例:
m_spel.VDeleteObject("myseq", "myobj");
VDeleteSequence方法,Spel類別
描述
在目前專案中刪除視覺序列。
語法
Sub VDeleteSequence (Sequence As String)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。
另請參閱
VcreateObject, VcreateSequence, VDeleteObject
VDeleteSequence範例
VB 例:
m_spel.VDeleteSequence("myseq")
C# 例:
m_spel.VDeleteSequence("myseq");
VEditWindow 方法, Spel類別
描述
編輯搜尋視窗中的不要緊的圖元。更多詳細資訊,請參閱Vision Guide Properties and Results Reference手冊的“EditWindow屬性”。
語法
Sub VEditWindow (Sequence As String, Object As String, Parent As Form)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - ObjectName
字串運算式,代表目前專案的視覺物件名稱。
另請參閱
VSave
VEditWindow範例
VB 例:
m_spel.VEditWindow("myseq", "myobj")
C# 例:
m_spel.VEditWindow("myseq", "myobj");
VGet方法,Spel類別
描述
取得視覺序列或物件屬性或結果的值。
語法
Sub VGet (Sequence As String, PropCode As SpelVisionProps, ByRef Value As Integer)
Sub VGet (Sequence As String, PropCode As SpelVisionProps, ByRef Value As Boolean)
Sub VGet (Sequence As String, PropCode As SpelVisionProps, ByRef Value As Double)
Sub VGet (Sequence As String, PropCode As SpelVisionProps, ByRef Value As Single)
Sub VGet (Sequence As String, PropCode As SpelVisionProps, ByRef Value As String)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, ByRef Value As Integer)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, ByRef Value As Boolean)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, ByRef Value As Color)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, ByRef Value As Double)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, ByRef Value As Single)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, ByRef Value As String)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, Result As Integer, ByRef Value As Integer)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, Result As Integer, ByRef Value As Boolean)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, Result As Integer, ByRef Value As Double)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, Result As Integer, ByRef Value As Single)
Sub VGet (Sequence As String, Object As String, PropCode As SpelVisionProps, Result As Integer, ByRef Value As String)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - PropCode
指定屬性代碼的SpelVisionProps值。 - Result
代表結果編號的整數運算式。 - Value
代表屬性或結果值的字串。字串的類型必須符合屬性或結果類型。
另請參閱
VSet, VRun
VGet範例
VB 例:
Dim i As Integer
Redim score(10) As Integer
m_spel.VRun("testSeq")
For i = 1 to 10
m_spel.VGet("testSeq", "corr" & Format$(i, "00"), _
SpelVisionProps.Score, score(i))
Next i
C# 例:
int[] score = new int[11];
for(int i = 1; i <= 10; i++)
{
m_spel.VGet("testSeq", string.Format("Corr 0{0}, i),
SpelVisionProps.Score, score(i));
}
VGetCameraXYU方法,Spel類別
描述
擷取任何物件的攝影機X、Y及U實體座標。
語法
Sub VGetCameraXYU (Sequence As String, Object As String, Result As Integer, ByRef Found As Boolean, ByRef X As Single, ByRef Y As Single, ByRef U As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Result
代表結果編號的整數運算式。 - Found
包含是否找到物件的Boolean變數。 - X
包含x座標的實際變數(以公釐為單位)。 - Y
包含y座標的實際變數(以公釐為單位)。 - U
包含角度的實際變數(以度為單位)。
另請參閱
VGetPixelXYU, VGetRobotXYU
VGetCameraXYU範例
VB 例:
Dim found As Boolean
Dim x As Single, y As Single, u As Single
Dim seq As String, blob As String
seq = "testSeq"
blob = "blob01"
m_spel.VRun(seq)
m_spel.VGetCameraXYU(seq, blob, 1, found, x, y, u)
C# 例:
bool found;
float x, y, u;
string seq, blob;
seq = "testSeq";
blob = "blob01";
m_spel.VRun(seq);
m_spel.VGetCameraXYU(seq, blob, 1, out found, out x, out y, out u);
VGetEdgeCameraXYU方法,Spel類別
描述
針對Line Finder、Arc Finder搜尋的每個邊緣,擷取攝影機X、Y及U實體座標。
語法
Sub VGetEdgeCameraXYU (Sequence As String, Object As String, EdgeResultIndex As Integer, ByRef Found As Boolean, ByRef X As Single, ByRef Y As Single, ByRef U As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - EdgeResultIndex
代表邊緣結果索引的整數運算式。 - Found
包含是否找到物件的Boolean變數。 - X
包含x座標的實際變數(以公釐為單位)。 - Y
包含y座標的實際變數(以公釐為單位)。 - U
包含角度的實際變數(以度為單位)。
另請參閱
VGetEdgePixelXYU, VGetEdgeRobotXYU, VGetPixelXYU, VGetRobotXYU
VGetEdgeCameraXYU範例
VB 例:
Dim found(10) As Boolean
Dim x(10) As Single, y(10) As Single, u(10) As Single
Dim seq As String, lineFinder As String
seq = "testSeq"
lineFinder = "LineFind01"
m_spel.VRun(seq)
' LineFinder的NumberOfEdges為10
For i = 1 To 10
m_spel.VGetEdgeCameraXYU(seq, lineFinder, i, found(i), x(i),
y(i), u(i))
Next i
C# 例:
bool[] found = new bool[11];
float[] x = new float[11];
float[] y = new float[11];
float[] u = new float[11];
string seq, lineFinder;
seq = "testSeq";
lineFinder = "LineFind01";
m_spel.VRun(seq);
// LineFinder的NumberOfEdges為10
for(int i = 1; i <= 10; i++)
m_spel.VGetEdgeCameraXYU(seq, lineFinder, i, out found[i],
out x[i], out y[i], out u[i]);
VGetEdgePixelXYU方法,Spel類別
描述
針對Line Finder、Arc Finder搜尋的每個邊緣,擷取X、Y及U像素座標。
語法
Sub VGetEdgePixelXYU (Sequence As String, Object As String, EdgeResultIndex As Integer, ByRef Found As Boolean, ByRef X As Single, ByRef Y As Single, ByRef U As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - EdgeResultIndex
代表邊緣結果索引的整數運算式。 - Found
包含是否找到物件的Boolean變數。 - X
包含x座標的實際變數(以公釐為單位)。 - Y
包含y座標的實際變數(以公釐為單位)。 - U
包含角度的實際變數(以度為單位)。
另請參閱
VGetEdgeCameraXYU, VGetEdgeRobotXYU, VGetPixelXYU, VGetRobotXYU
VGetEdgePixelXYU範例
VB 例:
Dim found(10) As Boolean
Dim x(10) As Single, y(10) As Single, u(10) As Single
Dim seq As String, lineFinder As String
seq = "testSeq"
lineFinder = "LineFind01"
m_spel.VRun(seq)
' LineFinder的NumberOfEdges為10
For i = 1 To 10
m_spel.VGetEdgePixelXYU(seq, lineFinder, i, found(i), x(i),
y(i), u(i))
Next i
C# 例:
bool[] found = new bool[11];
float[] x = new float[11];
float[] y = new float[11];
float[] u = new float[11];
string seq, lineFinder;
seq = "testSeq";
lineFinder = "LineFind01";
m_spel.VRun(seq);
// LineFinder的NumberOfEdges為10
for(int i = 1; i <= 10; i++)
m_spel.VGetEdgePixelXYU(seq, lineFinder, i, out found[i],
out x[i], out y[i], out u[i]);
VGetEdgeRobotXYU方法,Spel類別
描述
針對Line Finder、Arc Finder搜尋的每個邊緣,擷取機器人X、Y及U實體座標。
語法
Sub VGetEdgeRobotXYU (Sequence As String, Object As String, EdgeResultIndex As Integer, ByRef Found As Boolean, ByRef X As Single, ByRef Y As Single, ByRef U As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - EdgeResultIndex
代表邊緣結果索引的整數運算式。 - Found
包含是否找到物件的Boolean變數。 - X
包含x座標的實際變數(以公釐為單位)。 - Y
包含y座標的實際變數(以公釐為單位)。 - U
包含角度的實際變數(以度為單位)。
另請參閱
VGetEdgeCameraXYU, VGetEdgePixelXYU, VGetPixelXYU, VGetRobotXYU
VGetEdgeRobotXYU範例
VB 例:
Dim found(10) As Boolean
Dim x(10) As Single, y(10) As Single, u(10) As Single
Dim seq As String, lineFinder As String
seq = "testSeq"
lineFinder = "LineFind01"
m_spel.VRun(seq)
' LineFinder的NumberOfEdges為10
For i = 1 To 10
m_spel.VGetEdgeRobotXYU(seq, lineFinder, i, found(i), x(i),
y(i), u(i))
Next i
C# 例:
bool[] found = new bool[11];
float[] x = new float[11];
float[] y = new float[11];
float[] u = new float[11];
string seq, lineFinder;
seq = "testSeq";
lineFinder = "LineFind01";
m_spel.VRun(seq);
// LineFinder的NumberOfEdges為10
for(int i = 1; i <= 10; i++)
m_spel.VGetEdgeRobotXYU(seq, lineFinder, i, out found[i],
out x[i], out y[i], out u[i]);
VGetExtrema方法,Spel類別
描述
擷取blob物件的極值座標。
語法
Sub VGetExtrema (Sequence As String, Object As String, Result As Integer, ByRef MinX As Single, ByRef MaxX As Single, ByRef MinY As Single, ByRef MaxY As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Result
代表結果編號的整數運算式。 - MinX
包含最小x座標的實際變數(以像素為單位)。 - MaxX
包含最大x座標的實際變數(以像素為單位)。 - MinY
包含最小y座標的實際變數(以像素為單位)。 - MaxY
包含最大y座標的實際變數(以像素為單位)。
另請參閱
VGet
VGetExtrema範例
VB 例:
Dim xmin As Single, xmax As Single
Dim ymin As Single, ymax As Single
Dim seq As String, blob As String
seq = "testSeq"
blob = "blob01"
m_spel.VRun(seq)
m_spel.VGet(seq, blob, "found", found)
If found <> 0 Then
m_spel.VGetExtrema(seq, blob, xmin, xmax, ymin, ymax)
End If
C# 例:
float xMin, xMax, yMin, yMax;
bool found;
string seq, blob;
seq = "testSeq";
blob = "blob01";
m_spel.VRun(seq);
m_spel.VGet(seq, blob, "found", found);
if(found == true)
m_spel.VGetExtrema(seq, blob,out xMin,out xMax,out yMin,
out yMax);
VGetModelWin方法,Spel類別
描述
擷取物件的模型視窗座標。
語法
Sub VGetModelWin (Sequence As String, Object As String, ByRef Left As Integer, ByRef Top As Integer, ByRef Width As Integer, ByRef Height As Integer)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Left
包含左側座標的整數變數(以像素為單位)。 - Top
包含頂端座標的整數變數(以像素為單位)。 - Width
包含寬度的整數變數(以像素為單位)。 - Height
包含高度的整數變數(以像素為單位)。
另請參閱
VsetModelWin, VgetSearchWin, VSetSearchWin
VGetModelWin範例
VB 例:
Dim left As Integer, top As Integer
Dim width As Integer, height As Integer
With m_spel
.VGetModelWin("testSeq", "corr01", left, top, _
width, height)
.VSetModelWin("testSeq", "corr01", left + 20, top, _
width, height)
.VTeach("testSeq", "corr01")
End With
C# 例:
int left, top, width, height;
m_spel.VGetModelWin("testSeq", "corr01", out left, out top,
out width, out height);
m_spel.VSetModelWin("testSeq", "corr01", left + 20, top,
width, height);
m_spel.VTeach("testSeq", "corr01");
VGetPixelToCamera 方法, Spel 類別
描述
擷取指定圖元座標的攝影機座標。
語法
Sub VGetPixelToCamera (Calibration As String, PixelX As Single, PixelY As Single, Angle As Single, ByRef CameraX As Single, ByRef CameraY As Single, ByRef CameraU As Single)
參數
- Calibration
代表目前專案中校正名稱的字串運算式 - PixelX
包含y座標的實際變數(以像素為單位)。 - PixelY
包含y座標的實際變數(以像素為單位)。 - Angle
包含角度的實際變數(以度為單位)。 - CameraX
包含x座標的實際變數(以公釐為單位)。 - CameraY
包含y座標的實際變數(以公釐為單位)。 - CameraU
包含角度的實際變數(以度為單位)。
另請參閱
VGetPixelXYU, VGetCameraXYU, VGetPixelToRobot
VGetPixelToCamera範例
VB 例:
Dim x As Single, y As Single, u As Single
Dim cal As String, seq As String
cal = "testCal"
seq = "testSeq"
m_spel.VRun(seq)
m_spel.VGetPixelToCamera(cal, 400, 300, 0, x, y, u)
C# 例:
float x, y, u
string cal, seq;
cal = "testCal";
seq = "testSeq";
m_spel.VRun(seq);
m_spel.VGetPixelToCamera(cal, 400, 300, 0, out x, out y, out u);
VGetPixelToRobot 方法, Spel 類別
描述
擷取指定圖元座標的機器人座標。
語法
Sub VGetPixelToRobot (Calibration As String, PixelX As Single, PixelY As Single, Angle As Single, ByRef RobotX As Single, ByRef RobotY As Single, ByRef RobotU As Single)
參數
- Calibration
代表目前專案中校正名稱的字串運算式 - PixelX
包含y座標的實際變數(以像素為單位)。 - PixelY
包含y座標的實際變數(以像素為單位)。 - Angle
包含角度的實際變數(以度為單位)。 - RobotX
包含x座標的實際變數(以公釐為單位)。 - RobotY
包含y座標的實際變數(以公釐為單位)。 - RobotU
包含角度的實際變數(以度為單位)。
另請參閱
VGetPixelXYU, VGetRobotXYU, VGetPixelToCamera
VGetPixelToRobot範例
VB 例:
Dim x As Single, y As Single, u As Single
Dim cal As String, seq As String
cal = "testCal"
seq = "testSeq"
m_spel.VRun(seq)
m_spel.VGetPixelToRobot(cal, 400, 300, 0, x, y, u)
C# 例:
float x, y, u
string cal, seq;
cal = "testCal";
seq = "testSeq";
m_spel.VRun(seq);
m_spel.VGetPixelToRobot(cal, 400, 300, 0, out x, out y, out u);
VGetPixelXYU方法,Spel類別
描述
擷取任何物件的像素X、Y及U座標。
語法
Sub VGetPixelXYU (Sequence As String, Object As String, Result As Integer, ByRef Found As Boolean, ByRef X As Single, ByRef Y As Single, ByRef U As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Result
代表結果編號的整數運算式。 - Found
包含是否找到物件的Boolean變數。 - X
包含x座標的實際變數(以像素為單位)。 - Y
包含y座標的實際變數(以像素為單位)。 - U
包含角度的實際變數(以度為單位)。
另請參閱
VGetCameraXYU, VGetRobotXYU
VGetPixelXYU範例
VB 例:
Dim found As Integer
Dim x As Single, y As Single, u As Single
Dim seq As String, blob As String
seq = "testSeq"
blob = "blob01"
m_spel.VRun(seq)
m_spel.VGetPixelXYU(seq, blob, 1, found, x, y, u)
C# 例:
int found;
float x, y, u;
string seq, blob;
seq = "testSeq";
blob = "blob01";
m_spel.VRun(seq);
m_spel.VGetPixelXYU(seq, blob,1, out found, out x, out y, out u);
VGetRobotPlacePos方法,Spel類別
描述
擷取機器人放置位置。
語法
Sub VGetRobotPlacePos (Sequence As String, Object As String, Result As Integer, ByRef Found As Boolean, ByRef PlacePointAs SpelPoint)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Result
代表結果編號的整數運算式。 - Found
代表布林類型偵測狀態的整數變數。若檢測為False,則未定義W、Y及U。 - PlacePoint
包含放置位置的SpelPoint變數
另請參閱
VGetRobotPlaceTargetPos, VSetRobotPlaceTargetPos
VGetRobotPlacePos範例
VB 例:
Dim found As Integer
Dim x As Single, y As Single, u As Single
Dim seq As String, blob As String
Dim placePoint As SpelPoint
seq = "testSeq"
blob = "blob01"
' 移動高於上方攝影機的工件
m_spel.Jump("camPos")
m_spel.VRun(seq)
m_spel.VGetRobotPlacePos(seq, blob, 1, found, placePoint)
' 使用SCARA以使用+TLZ接近
m_spel.Jump(placePoint, "+TLZ(10)")
m_spel.Go(placePoint)
C# 例:
bool found;
float x, y, u;
string seq, blob;
SpelPoint placePoint = new SpelPoint();
seq = "testSeq";
blob = "blob01";
// 移動高於上方攝影機的工件
m_spel.Jump("camPos");
m_spel.VRun(seq);
m_spel.VGetRobotPlacePos(seq,blob,1,out found, out placePoint);
// 使用SCARA以使用+TLZ接近
m_spel.Jump(placePoint, "+TLZ(10)");
m_spel.Go(placePoint);
VGetRobotPlaceTargetPos方法,Spel類別
描述
擷取工件放置位置。
語法
Sub VGetRobotPlaceTargetPos (Sequence As String, Object As String, ByRef Point As SpelPoint)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Point
包含放置位置的SpelPoint變數
另請參閱
VGetRobotPlacePos, VSetRobotPlaceTargetPos
VGetRobotPlaceTargetPos範例
VB 例:
Dim seq As String, blob As String
Dim targetPoint As SpelPoint
seq = "testSeq"
blob = "blob01"
m_spel.VGetRobotPlaceTargetPos(seq, blob, targetPoint)
' Adjust the place position
targetPoint.X = targetPoint.X + 10
m_spel.VSetRobotPlaceTargetPos(seq, blob, targetPoint)
C# 例:
Spe
lPoint targetPoint = new SpelPoint();
seq = "testSeq";
blob = "blob01";
m_spel.VGetRobotPlaceTargetPos(seq, blob, out targetPoint);
// 調整放置位置
targetPoint.X = targetPoint.X + 10;
m_spel.VSetRobotPlaceTargetPos(seq, blob, targetPoint);
VGetRobotXYU方法,Spel類別
描述
擷取任何物件的機器人預設X、Y及U座標。
語法
Sub VGetRobotXYU (Sequence As String, Object As String, Result As Integer, ByRef Found As Boolean, ByRef X As Single, ByRef Y As Single, ByRef U As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Result
代表結果編號的整數運算式。 - Found
代表布林類型偵測狀態的整數變數。若檢測為False,則未定義W、Y及U。 - X
代表x座標的實數變數(以公釐為單位)。 - Y
代表y座標的實數變數(以公釐為單位)。 - U
包含角度的實際變數(以度為單位)。
另請參閱
VGetCameraXYU, VGetPixelXYU
VGetRobotXYU範例
VB 例:
Dim found As Integer
Dim x As Single, y As Single, u As Single
Dim seq As String, blob As String
seq = "testSeq"
blob = "blob01"
m_spel.VRun(seq)
m_spel.VGetRobotXYU(seq, blob, 1, found, x, y, u)
C# 例:
bool found;
float x, y, u;
string seq, blob;
seq = "testSeq";
blob = "blob01";
m_spel.VRun(seq);
m_spel.VGetRobotXYU(seq, blob, 1, out found, out x, out y, out u);
VGetRobotToolXYU方法,Spel類別
描述
擷取工具定義的機器人預設X、Y及U數值。
語法
Sub VGetRobotToolXYU (Sequence As String, Object As String, Result As Integer, ByRef Found As Boolean, ByRef X As Single, ByRef Y As Single, ByRef U As Single)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Result
代表結果編號的整數運算式。 - Found
代表布林類型偵測狀態的整數變數。若檢測為False,則未定義W、Y及U。 - X
代表x座標的實數變數(以公釐為單位)。 - Y
代表y座標的實數變數(以公釐為單位)。 - U
包含角度的實際變數(以度為單位)。
備註
使用VGetRobotToolXYU可針對透過上方攝影機檢視的工件輕鬆定義工具。這可讓您拾取工件、在上方攝影機FOV中進行搜尋、定義工件的工具,然後放置工件。
另請參閱
VGetCameraXYU, VGetPixelXYU, VGetRobotXYU
VGetRobotToolXYU範例
VB 例:
Dim found As Integer
Dim x As Single, y As Single, u As Single
Dim seq As String, blob As String
seq = "testSeq"
blob = "blob01"
' 移動高於上方攝影機的工件
m_spel.Jump("camPos")
m_spel.VRun(seq)
m_spel.VGetRobotToolXYU(seq, blob, 1, found, x, y, u)
m_spel.TLSet(1, x, y, u)
C# 例:
bool fnd;
float x, y, u;
string seq, blob;
seq = "testSeq";
blob = "blob01";
// 移動高於上方攝影機的工件
m_spel.Jump("camPos");
m_spel.VRun(seq);
m_spel.VGetRobotToolXYU(seq, blob, 1, out fnd, out x, out y, out u);
m_spel.TLSet(1, x, y, u);
VGetSearchWIn方法,Spel類別
描述
擷取搜尋視窗座標。
語法
Sub VGetSearchWin (Sequence As String, Object As String, ByRef Left As Integer, ByRef Top As Integer, ByRef Width As Integer, ByRef Height As Integer)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Left
包含左側座標的整數變數(以像素為單位)。 - Top
包含頂端座標的整數變數(以像素為單位)。 - Width
包含寬度的整數變數(以像素為單位)。 - Height
包含高度的整數變數(以像素為單位)。
另請參閱
VgetModelWin, VsetModelWin, VSetSearchWin
VGetSearchWin範例
VB 例:
Dim left As Integer, top As Integer
Dim width As Integer, height As Integer
With m_spel
.VGetSearchWin("testSeq", "corr01", left, top, _
width, height)
.VSetSearchWin("testSeq", "corr01", newLeft, top, _
width, height)
.VRun("testSeq")
End With
C# 例:
int left, top, width, height;
m_spel.VGetSearchWin("testSeq", "corr01", out left, out top,
out width, out height);
m_spel.VSetSearchWin("testSeq", "corr01", newLeft, top,
width, height);
m_spel.VRun("testSeq");
VGoCenter方法,Spel類別
描述
使用可由視覺系統偵測的特徵點時,將機器人移至特徵點位於攝影機影像中央的位置。
語法
Sub VGoCenter(Sequence As String, LocalNumber As Integer, TargetTolerance As Double)
Sub VGoCenter(Sequence As String, LocalNumber As Integer, TargetTolerance As Double, Parent As Form)
Sub VGoCenter(Sequence As String, LocalNumber As Integer, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer)
Sub VGoCenter(Sequence As String, LocalNumber As Integer, TargetTolerance As Double, RobotSpeed As Integer, RobotAccel As Integer, Parent As Form)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - LocalNumber
代表機器人移動位置之本地座標編號的整數。
如果指定-1,機器人會在工具旋轉的XY平面中移動。 - TargetTolerance
代表像素距離的實數,將視覺偵測結果視為符合目標位置。
數值範圍:0~3像素 - Form
視窗的父.NET表單(選用)。 - RobotSpeed
代表機器人速度(%)的整數變數(可省略)。數值範圍:0~100。若省略,將被設為「5」。 - RobotAccel
代表機器人加速度(%)的整數變數(可省略)。數值範圍:0~99。若省略,將被設為「5」。
另請參閱
VDefArm, VDefGetMotionRange, VDefLocal, VDefSetMotionRange, VDefTool
VGoCenter範例
VB 例:
m_spel.VGoCenter("myseq", 1, 1.0)
C# 例:
m_spel.VGoCenter("myseq", 1, 1.0);
VLoad方法,Spel類別
描述
從目前專案載入視覺屬性。
語法
Sub VLoad ()
備註
要在程式啟動期間將視覺屬性設定、模型及字型恢復為原始設定時,請使用VLoad方法。
另請參閱
VSave
VLoad範例
VB 例:
m_spel.VLoad()
C# 例:
m_spel.VLoad();
VLoadModel方法,Spel類別
描述
從驅動盤檔案載入視覺模型。
語法
Sub VLoadModel (Sequence As String, Object As String, Path As String)
參數
- Sequence
包含目前專案中序列之名稱的字串。 - Object
代表物件名稱的字串。物件請使用Correlation、Geometric或Polar。 - Path
要載入模型之檔案的完整路徑名稱,不包括副檔名。
備註
若檔案的模型資料為錯誤的類型,將會發生錯誤。例如,如果嘗試將polar模型載入correlation,將會發生錯誤。如果提供副檔名,則會予以忽略。有兩個檔案與fileName相關聯。
對於correlation和geometric模型,ModelOrgX和ModelOrgY值會與模型視窗寬度和高度一起恢復。
對於polar模型,則會恢復Radius、Thickness及AngleOffset。
另請參閱
VSaveModel
VLoadModel範例
VB 例:
m_spel.VLoadModel("seq01", "corr01", "d:\models\part1")
C# 例:
m_spel.VLoadModel("seq01", "corr01", @"d:\models\part1");
VRun方法,Spel類別
描述
在目前專案中執行視覺序列。
語法
Sub VRun (Sequence As String)
參數
- Sequence
包含目前專案中序列之名稱的字串。
備註
VRun支援任何攝影機校準或無校準類型的序列。
若要顯示圖形,您必須使用SPELVideo控制項,並將Spel類別執行個體的SpelVideoControl屬性設為SPELVideo控制項。
執行VRun後,請使用VGet擷取結果。
另請參閱
Vget、VSet
VRun範例
VB 例:
Function FindPart(x As Single, y As Single, angle As Single)As Boolean
Dim found As Boolean
Dim x, y, angle As Single
With m_spel
.VRun("seq01")
.VGet("seq01", "corr01", "found", found)
If found Then
.VGet("seq01", "corr01", "cameraX", x)
.VGet("seq01", "corr01", "cameraY", y)
.VGet("seq01", "corr01", "angle", angle)
FindPart = True
End If
End With
End Function
C# 例:
bool FindPart(float x, float y, float angle)
{
bool found;
m_spel.VRun("seq01");
m_spel.VGet("seq01", "corr01", "found", found);
if (found) {
m_spel.VGet("seq01", "corr01", "cameraX", out x);
m_spel.VGet("seq01", "corr01", "cameraY", out y);
m_spel.VGet("seq01", "corr01", "angle", out angle);
}
return found;
}
VSave方法,Spel類別
描述
在目前專案中保存所有視覺資料。
語法
Sub VSave ()
備註
使用VSave可對視覺屬性作任何永久改變。
另請參閱
Vset
VSaveImage範例
VB 例:
With m_spel
.VSet("seq01", "blob01", "SearchWinLeft", 100)
.VSet("seq01", "corr01", "Accept", userAccept)
.VSave()
End With
C# 例:
m_spel.VSet("seq01", "blob01", "SearchWinLeft", 100);
m_spel.VSet("seq01", "corr01", "Accept", userAccept);
m_spel.VSave();
VSaveImage方法,Spel類別
描述
將視覺視訊視窗保存至PC驅動盤檔案。
語法
Sub VSaveImage (Sequence As String, Path As String)
Sub VSaveImage (Sequence As String, Path As String, WithGraphics As Boolean)
參數
- Sequence
包含目前專案中序列之名稱的字串。 - Path
要保存影像之檔案的完整路徑名稱,包括副檔名。 - WithGraphics
設定是否要在影像檔中保存序列結果圖形的Boolean運算式。
備註
使用VSaveImage可將視訊顯示器上的影像保存至驅動盤。副檔名:
.bmp
.tif
.jpg
另請參閱
LoadImage(SPELVideo控制項)
VSaveImage範例
VB 例:
Dim found As Boolean
m_spel.VRun("Seq")
m_spel.VGet("Seq", SpelVisionProps.AllFound, found)
If Not found Then
m_spel.VSaveImage("Seq", "d:\reject.mim")
End If
C# 例:
bool found;
m_spel.VRun("Seq");
m_spel.VGet("Seq", SpelVisionProps.AllFound, out found);
if (\!found)
m_spel.VSaveImage("Seq", @"d:\reject.mim");
VSaveModel方法,Spel類別
描述
將視覺物件搜尋模型保存至PC驅動盤檔案。
語法
Sub VSaveModel (Sequence As String, Object As String, Path As String)
參數
- Sequence
包含目前專案中序列之名稱的字串。 - Object
代表物件名稱的字串。物件請使用Correlation、Geometric或Polar。 - Path
要保存模型之檔案的完整路徑名稱,不包括副檔名。
備註
執行VSaveModel時,Epson RC+ 8.0會建立兩個檔案(Path + 副檔名):Path.VOB,Path.MDL
對於correlation和geometric模型,ModelOrgX和ModelOrgY值會與模型視窗一起保存。對於Polar模型,則會保存Radius、Thickness及AngleOffset。
另請參閱
VLoadModel
VSaveModel範例
VB 例:
m_spel.VSaveModel("seq01", "corr01", "d:\models\part1")
C# 例:
m_spel.VSaveModel("seq01", "corr01", @"d:\models\part1");
VSet方法,Spel類別
描述
設定視覺序列或物件屬性的值。
語法
Sub VSet (Sequence As String, PropCode As SpelVisionProps, Value As Integer)
Sub VSet (Sequence As String, PropCode As SpelVisionProps, Value As Boolean)
Sub VSet (Sequence As String, PropCode As SpelVisionProps, Value As Double)
Sub VSet (Sequence As String, PropCode As SpelVisionProps, Value As Single)
Sub VSet (Sequence As String, PropCode As SpelVisionProps, Value As String)
Sub VSet (Sequence As String, Object As String, PropCode As SpelVisionProps, Value As Integer)
Sub VSet (Sequence As String, Object As String, PropCode As SpelVisionProps, Value As Boolean)
Sub VSet (Sequence As String, Object As String, PropCode As SpelVisionProps, Value As Color)
Sub VSet (Sequence As String, Object As String, PropCode As SpelVisionProps, Value As Double)
Sub VSet (Sequence As String, Object As String, PropCode As SpelVisionProps, Value As Single)
Sub VSet (Sequence As String, Object As String, PropCode As SpelVisionProps, Value As String)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - propName
包含要為其設定值的屬性之名稱的字串運算式。 - PropCode
指定屬性代碼的SpelVisionProps值。 - value
包含新建值的運算式。運算式類型必須符合屬性類型。
另請參閱
Vget, VRun
VSet範例
VB 例:
m_spel.VSet("seq01", "corr01", SpelVisionProps.Accept, 250)
C# 例:
m_spel.VSet("seq01", "corr01", SpelVisionProps.Accept, 250);
VSetModelWin方法,Spel類別
描述
設定模型視窗座標。
語法
Sub VSetModelWin (Sequence As String, Object As String, Left As Integer, Top As Integer, Width As Integer, Height As Integer)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Left
代表左側座標的整數運算式(以像素為單位)。 - Top
代表頂端座標的整數運算式(以像素為單位)。 - Width
代表寬度的整數運算式(以像素為單位)。 - Height
代表高度的整數運算式(以像素為單位)。
另請參閱
VgetModelWin, VgetSearchWin, VSetSearchWin
VSetModelWin範例
VB 例:
Dim left As Integer, top As Integer
Dim width As Integer, height As Integer
With m_spel
.VGetModelWin("testSeq", "corr01", left, top, _
width, height)
.VSetModelWin("testSeq", "corr01", left + 20, top, _
width, height)
.VTeach("testSeq", "corr01")
End With
C# 例:
int left, top, width, height;
m_spel.VGetModelWin("testSeq", "corr01", out left, out top,
out width, out height);
m_spel.VSetModelWin("testSeq", "corr01", left + 20, top,
width, height);
m_spel.VTeach("testSeq", "corr01");
VSetRobotPlaceTargetPos方法,Spel類別
描述
設定工件放置位置。
語法
Sub VSetRobotPlaceTargetPos (Sequence As String, Object As String, Point As SpelPoint)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Point
包含放置位置的SpelPoint變數
另請參閱
VGetRobotPlacePos, VGetRobotPlaceTargetPos
VSetRobotPlaceTargetPos Example
VB 例:
Dim seq As String, blob As String
Dim targetPoint As SpelPoint
seq = "testSeq"
blob = "blob01"
m_spel.VGetRobotPlaceTargetPos(seq, blob, targetPoint)
' 調整放置位置
targetPoint.X = targetPoint.X + 10
m_spel.VSetRobotPlaceTargetPos(seq, blob, targetPoint)
C# 例:
string seq, blob;
SpelPoint targetPoint = new SpelPoint();
seq = "testSeq";
blob = "blob01";
m_spel.VGetRobotPlaceTargetPos(seq, blob, out targetPoint);
// 調整放置位置
targetPoint.X = targetPoint.X + 10;
m_spel.VSetRobotPlaceTargetPos(seq, blob, targetPoint);
VSetSearchWin方法,Spel類別
描述
設定搜尋視窗座標。
語法
Sub VSetSearchWin (Sequence As String, Object As String, Left As Integer, Top As Integer, Width As Integer, Height As Integer)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - Object
包含Sequence序列中物件之名稱的字串運算式。 - Left
代表左側座標的整數運算式(以像素為單位)。 - Top
代表頂端座標的整數運算式(以像素為單位)。 - Width
代表寬度的整數運算式(以像素為單位)。 - Height
代表高度的整數運算式(以像素為單位)。
另請參閱
VgetModelWin, VsetModelWin, VGetSearchWin
VSetSearchWin範例
VB 例:
Dim left As Integer, top As Integer
Dim width As Integer, height As Integer
With m_spel
.VGetSearchWin("testSeq", "corr01", left, top, _
width, height)
.VSetSearchWin("testSeq", "corr01", newLeft, top, _
width, height)
.VRun("testSeq")
End With
C# 例:
int left, top, width, height;
m_spel.VGetSearchWin("testSeq", "corr01", out left, out top,
out width, out height);
m_spel. .VSetSearchWin("testSeq", "corr01", left + 50,
top, width, height);
m_spel.VRun("testSeq");
VShowModel方法,Spel類別
描述
顯示物件模型。如需詳細資訊,請參閱Vision Guide屬性參考中的ShowModel屬性。
語法
Sub VShowModel (Sequence As String, Object As String, Parent As Form)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。 - ObjectName
代表當前專案的視覺物件名稱的字串運算式
另請參閱
VshowSequence, VTrain
VShowModel範例
VB 例:
m_spel.VShowModel("myseq", "myobj")
C# 例:
m_spel.VShowModel("myseq", "myobj");
VShowSequence方法,Spel類別
描述
顯示序列中的所有物件。
語法
Sub VShowSequence (Sequence As String)
參數
- Sequence
包含要建立之視覺序列名稱的字串運算式。
備註
使用VShowSequence可在不執行序列的情況下顯示序列中的物件。使用中物件的顏色(洋紅色)會用於所有物件,以便輕易查看。
其中一個用途是,當機器人攝影機移至某工件的特定部分上時,會利用多個序列進行掃描。機器人處於定位後,可調用VShowSequence以顯示序列。
另請參閱
VShowModel
VShowSequence範例
VB 例:
m_spel.VShowSequence("myseq")
C# 例:
m_spel.VShowSequence("myseq");
VStatsReset方法,Spel類別
描述
重置目前專案中指定序列的視覺統計。
語法
Sub VStatsReset (Sequence As String)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。
備註
VStatsReset只會針對目前Epson RC+ 8.0會話,重置記憶體中指定序列的統計。若要永久改變,您應執行VStatsSave。否則,若您重啟Epson RC+ 8.0,統計就會從驅動盤恢復。
另請參閱
VstatsResetAll, VstatsShow, VStatsSave
VStatsReset範例
VB 例:
Sub btnResetStats_Click()
m_spel.VStatsReset("seq01")
End Sub
C# 例:
void btnResetStats_Click(object sender, EventArgs e)
{
m_spel.VStatsReset("seq01");}
VStatsResetAll方法,Spel類別
描述
重置所有序列的視覺統計。
語法
Sub VStatsResetAll
備註
VStatsResetAll只會針對目前Epson RC+ 8.0會話,重置記憶體中的統計。若要永久改變,您應執行VStatsSave。
另請參閱
VstatsReset, VstatsShow, VStatsSave
VStatsResetAll範例
VB 例:
Sub btnResetStats_Click()
m_spel.VStatsResetAll()
End Sub
C# 例:
void btnResetStats_Click(object sender, EventArgs e)
{
m_spel.VStatsResetAll();
}
VStatsSave方法,Spel類別
描述
保存目前專案中所有序列的視覺統計。
語法
Sub VStatsSave ()
備註
若要保存對視覺統計所作的改變,必須在關閉Epson RC+ 8.0之前執行VStatsSave。
另請參閱
VstatsReset, VstatsResetAll, VStatsShow
VStatsSave範例
VB 例:
Sub btnResetStats_Click()
m_spel.VStatsSave()
End Sub
C# 例:
void btnResetStats_Click(object sender, EventArgs e)
{
m_spel.VStatsSave();
}
VStatsShow方法,Spel類別
描述
顯示目前專案中指定序列的視覺統計對話方塊。
語法
Sub VStatsShow (Sequence As String, Parent As Form)
參數
- Sequence
包含目前專案中視覺序列之名稱的字串運算式。
另請參閱
VstatsReset, VstatsResetAll, VStatsSave
VStatsShow範例
VB 例:
Sub btnShowStats_Click()
m_spel.VStatsShow("seq01")
End Sub
C# 例:
void btnShowStats_Click(object sender, EventArgs e)
{
m_spel.VStatsShow("seq01");
}
VTeach方法,Spel類別
描述
示教correlation、geometric或polar模型。
語法
Sub VTeach (Sequence As String, Object As String, ByRef Status as Integer)
Sub VTeach (Sequence As String, Object As String, AddSample as Boolean, KeepDontCares As Boolean, ByRef Status as Integer)
參數
- Sequence
包含目前專案中之視覺序列的名稱。 - Object
物件名稱。您可示教Correlation物件、Geometric物件或Polar物件。 - AddSample
新增範例時為True,新增新模型時為False。 - KeepDontCares
使用舊偵測遮罩時為True,處置時為False。 - Status
傳回狀態。成功會傳回1,否則會傳回0。
備註
在調用VTeach之前,您必須確定模型視窗位於正確位置。
對於polar物件,搜尋視窗和thickness必須正確設定。使用VSet搜尋視窗位置及thickness。
對於correlation和geometric物件,搜尋視窗及模型視窗必須正確設定。使用SearchWin和ModelWin的VSet來設定搜尋及模型視窗位置。或者,您也可以使用VTrain命令,讓操作員以互動方式改變視窗。
示教模型之後,您可以使用VSaveModel方法將其保存至PC驅動盤檔案。
另請參閱
Vtrain, VSaveModel
VTeach範例
VB 例:
Dim status As Integer
' 先讓操作員改變視窗位置
m_spel.VTrain("seq01", "corr01", status)
' 現在示教模型
m_spel.VTeach("seq01", "corr01", status)
C# 例:
int status;
// 先讓操作員改變視窗位置
m_spel.VTrain("seq01", "corr01", status);
// 現在示教模型
m_spel.VTeach("seq01", "corr01", out status);
VTrain方法,Spel類別
描述
此命令可讓您示教整個序列中的物件,或示教個別物件。
語法
Function VTrain (Sequence As String [, Object As String] [, Flags as Integer] [, Parent as Form]) As Boolean
參數
- Sequence
包含目前專案中之視覺序列的名稱。 - Object
Sequence的物件名稱。您可註冊任何物件類型。若Object是空白字串,則可示教整個序列。 - Flags
組成[VTrain]對話方塊(可省略)。1 - 顯示[示教]按鈕。2 - 不顯示模型視窗。 - Parent
視窗的父.NET表單(選用)。
傳回值
若操作員按一下OK按鈕,VTrain會傳回True,否則會傳回False。
備註
執行VTrain時,會開啟顯示即時視訊的對話方塊,並顯示指定的物件。操作員可調整搜尋視窗大小或移動該視窗,並示教模型視窗(correlation和geometric物件適用)。操作員完成操作時,可按一下OK以保存改變,或按一下取消以忽略改變。若按一下OK,新建資訊會自動保存至目前專案。
若flags位元1已設定,將會顯示示教按鈕。對於Correlation、Geometric及Polar物件,若按一下示教按鈕,將會示教模型。您可在執行VTrain之後擷取ModelOK屬性,以確認模型是否完成示教。對於Blob物件,該按鈕將會開啟條形圖,且操作員可調整高低閾值,然後查看改變的結果。
若flags位元2已設定,將不會顯示模型視窗。操作員僅能改變搜尋視窗。
對於correlation和geometric物件,如果不顯示示教按鈕,您可在調用VTrain之後調用VTeach以示教模型。
另請參閱
VTeach, VSaveModel
VTrain範例
VB 例:
Dim status As Integer
Dim trainOK As Boolean
' 先讓操作員改變視窗位置
trainOK = m_spel.VTrain("seq01", "corr01")
' 現在示教模型
If trainOK Then
m_spel.VTeach("seq01", "corr01", status)
EndIf
C# 例:
int status;
bool trainOK;
// 先讓操作員改變視窗位置
trainOK = m_spel.VTrain("seq01", "corr01");
// 現在示教模型
if (trainOK)
m_spel.VTeach("seq01", "corr01", out status);
WaitCommandComplete方法,Spel類別
描述
此命令會等待以AsyncMode = True開頭的命令完成。
語法
Sub WaitCommandComplete ()
另請參閱
AsyncMode
WaitCommandComplete範例
VB 例:
With m_spel
.AsyncMode = True
.Jump("pick")
.Delay(500)
.On(1)
.WaitCommandComplete()
End With
C# 例:
m_spel.AsyncMode = true;
m_spel.Jump("pick");
m_spel.Delay(500);
m_spel.On(1);
m_spel.WaitCommandComplete();
WaitMem方法,Spel類別
描述
等待記憶體位元狀態改變。
語法
Sub WaitMem (BitNumber As Integer, Condition As Boolean, Timeout As Single)
Sub WaitMem (Label As String, Condition As Boolean, Timeout As Single)
參數
- BitNumber
代表記憶體位元編號的整數運算式。 - Label
代表記憶體位元標籤的字串。 - Condition
代表記憶體位元狀態的Boolean運算式。 - Timeout
代表最長等待時間的單一運算式(以秒為單位)。
備註
請務必使用TW方法檢查是否發生超時。請參閱以下範例。
另請參閱
WaitSw
WaitMem範例
VB 例:
' 等待記憶體位元1變成1 (True)
' 最長時間為5秒
m_spel.WaitMem(1, True, 5)
' Did WaitMem time out?
If m_spel.TW() Then
MsgBox "memory bit time out occurred"
End If
C# 例:
// 等待記憶體位元1變成1 (True)
// 最長時間為5秒
m_spel.WaitMem(1, True, 5);
// WaitMem是否超時?
if (m_spel.TW())
MessageBox.Show("memory bit time out occurred");
WaitSw方法,Spel類別
描述
等待輸入位元狀態改變。
語法
Sub WaitSw (BitNumber As Integer, Condition As Boolean, Timeoutl As Single)
Sub WaitSw (Label As String, Condition As Boolean, Timeoutl As Single)
參數
- BitNumber
代表輸入位元編號的整數運算式。 - Label
代表輸入位元標籤的字串。 - Condition
代表輸入位元狀態的Boolean運算式。 - Timeout
代表最長等待時間的單一運算式(以秒為單位)。
備註
請務必使用TW方法檢查是否發生超時。請參閱以下範例。
另請參閱
WaitMem
WaitSw範例
VB 例:
Const PartPresent = 1
m_spel.WaitSw(PartPresent, True, 5)
If m_spel.TW() Then
MsgBox "Part present time out occurred"
End If
C# 例:
const int PartPresent = 1;
m_spel.WaitSw(PartPresent, True, 5);
if (m_spel.TW())
MessageBox.Show("Part Present time out occurred");
WaitTaskDone方法,Spel類別
描述
等待任務完成並傳回狀態。
語法
Function WaitTaskDone (TaskNumber As Integer) As SpelTaskState
Function WaitTaskDone (TaskName As String) As SpelTaskState
參數
- TaskNumber
傳回執行狀態的任務#。 - TaskName
包含任務名稱的字串運算式。
傳回值
SpelTaskState值。
另請參閱
SpelTaskState, TasksExecuting, TaskState, Xqt
WaitTaskDone範例
VB 例:
Dim taskState As SpelTaskState
m_spel.Xqt 2, "mytask"
'
' 其他處理
'
taskState = m_spel.WaitTaskDone(2)
C# 例:
SpelTaskState taskState;
m_spel.Xqt(2, "mytask");
//
// 其他處理
//
taskState = m_spel.WaitTaskDone(2);
Weight方法,Spel類別
描述
指定目前機器人的重量參數。
語法
Sub Weight (PayloadWeight As Single, ArmLength As Single, [Axis])
參數
- PayloadWeight
待運送之夾具末端的重量(公斤)。 - ArmLength
從第二手臂旋轉中心至夾具末端重心的距離(公釐)。 - Axis
指定指派負載重量的附加軸(S或T)。
注意
請勿將整數值輸入至PayLoadWeight和ArmLength參數。使用單一變數或直接輸入單一類型值。
另請參閱
Inertia, JRange, Tool
Weight範例
VB 例:
m_spel.Weight(2.0F, 2.5F)
C# 例:
m_spel.Weight(2.0F, 2.5F);
Xqt方法,Spel類別
描述
啟動一個SPEL+任務。
語法
Sub Xqt (FuncName As String [, TaskType As SpelTaskType])
Sub Xqt (TaskNumber As Integer, FuncName As String [, TaskType As SpelTaskType])
參數
- TaskNumber
要執行之任務的任務#。任務#的範圍介於1至32。 - FuncName
要執行之函數的名稱。您也可以為函數提供引數。引數必須加上括號,並以逗號分隔。如需詳細資訊,請參閱SPEL+ Xqt陳述式。另請參閱範例。 - TaskType
將任務類型指定為Normal、NoPause或NoEmgAbort(可省略)。
備註
執行Xqt時,控制將會立即回到調用程式。請使用Call方法等待任務完成,或者,亦可使用含任務狀態事件的EventReceived等待任務結束。
另請參閱
Call, EnableEvent, EventReceived
Xqt範例
VB 例:
m_spel.Xqt(2, "conveyor")
' 提供引數給RunPart函數
m_spel.Xqt(3, "RunPart(3)")
Dim funcToExec As String
funcToExec = "RunPart(" & partNum & ")"
m_spel.Xqt(3, funcCall)
C# 例:
m_spel.Xqt(2, "conveyor");
// 提供引數給RunPart函數
m_spel.Xqt(3, "RunPart(3)");
string funcToExec;
funcToExec = string.Format("RunPart({0})", partNum);
m_spel.Xqt(3, funcToExec);
XYLim方法,Spel類別
描述
設定機器人的允許動作範圍限制。
語法
Sub XYLim (XLowerLimit As Single, XUpperLimit As Single, YLowerLimit As Single, YUpperLimit As Single [, ZLowerLimit As Single ] [, ZUpperLimit As Single] )
參數
- XLowerLimit
機器人可移動的最小X座標位置。(機器人無法移至小於minX的X座標位置。) - XUpperLimit
機器人可移動的最大X座標位置。(機器人無法移至大於maxX的X座標位置。) - YLowerLimit
機器人可移動的最小Y座標位置。(機器人無法移至小於min Y的Y座標位置。) - YUpperLimit
機器人可移動的最大Y座標位置。(機器人無法移至大於max Y的Y座標位置。) - ZLowerLimit
機器人可移動的最小Z座標位置。(機器人無法移至小於min Z的Z座標位置。)(可省略) - ZUpperLimit
機器人可移動的最大Z座標位置。(機器人無法移至大於max Z的Z座標位置。)(可省略)
備註
XYLim係用來定義動作範圍限制。許多機器人系統都可讓使用者定義關節限制,而SPEL+語言則可允許同時定義關節限制與動作範圍限制。此可讓使用者有效地為其應用建立工作空間。
使用XYLim值建立的動作範圍只會套用至動作命令目標位置,不會套用到起始位置至目標位置的動作路徑。因此,手臂可能會在動作期間超出XYLim範圍以外。(亦即XYLim範圍不會影響脈衝。)
若要關閉動作範圍限制,請將範圍限制參數指定為0。
另請參閱
JRange
XYLim範例
VB 例:
m_spel.XYLim(0, 0, 0, 0)
C# 例:
m_spel.XYLim(0, 0, 0, 0);
XYLimClr方法,Spel類別
描述
清除(取消定義)XYLim定義。
語法
Sub XYLimClr ()
另請參閱
XYLim, XYLimDef
XYLimClr範例
VB 例:
m_spel.XYLimClr()
C# 例:
m_spel.XYLimClr();
XYLimDef方法,Spel類別
描述
傳回XYLim是否定義。
語法
Function XYLimDef () As Boolean
傳回值
若XYLim已定義,會傳回True,否則會傳回False。
另請參閱
XYLim, XYLimClr
XYLimDef範例
VB 例:
Dim xyLimDefined As Boolean
xyLimDefined = m_spel.XYLimDef()
C# 例:
bool xyLimDefined;
xyLimDefined = m_spel.XYLimDef();