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-100 之间表示最大加速率百分比的整数表达式。 - PointToPointDecel
1-100 之间表示最大减速率百分比的整数表达式。 - JumpDepartAccel
可选。表示Jump时的退避加速度的整数表达式(不小于1)。 - JumpDepartDecel
可选。表示Jump时的退避减速度的整数表达式(不小于1)。 - JumpApproAccel
可选。表示Jump时的接近加速度的整数表达式(不小于1)。 - JumpApproDecel
可选。表示Jump时的接近减速度的整数表达式(不小于1)。
另见
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至5000deg/sec2之间的实数值,用以在动作命令中使用ROT时定义工具姿态变化的加速度。如果省略了 Decel,则此值会用于加速率和减速率。 - Decel
0.1至5000deg/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
以mm/sec2为单位的实数值,用以定义直线动作或CP动作时的加速度。此Accel值将被用于加速时和减速时。 - Decel
可选。以mm/sec2为单位的实数值,用以定义直线动作或CP动作时的减速度。 - JumpDepartAccel
可选。以mm/sec2为单位的实数值,用以定义Jump、Jump3CP时的退避动作的退避加速度。 - JumpDepartDecel
可选。以mm/sec2为单位的实数值,用以定义Jump、Jump3CP时的退避动作的退避减速度。 - JumpApproAccel
可选。以mm/sec2为单位的实数值,用以定义Jump、Jump3CP时的接近动作的接近加速度。 - JumpApproDecel
可选。以mm/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 类
描述
从模拟I/O选件的输入通道,读取模拟值。
语法
Function AIO_In (Channel As Integer) As Single
参数
- Channel
指定模拟I/O通道的编号。
返回值
返回一个实数,该数值是指定编号的模拟I/O输入通道的模拟输入值。返回值的范围由模拟I/O板卡的输入范围设置。
另见
AIO_InW, AIO_Out, AIO_OutW
AIO_In 示例
VB 例:
Dim val As Single
val = mspel.AIOInW(2)
C# 例:
float val;
val = mspel.AIOInW(2);
AIO_InW 方法,Spel 类
描述
从模拟I/O选件的输入通道,读取模拟值。
语法
Function AIO_InW (Channel As Integer) As Integer
参数
- Channel
指定模拟I/O通道的编号。
返回值
返回指定的模拟I/O通道的输入状态(0~65535的整数)。
每个输入通道的输入电压(电流)与返回值,因模拟I/O板的输入范围设置而异,其对应关系如下所示。
输入数据 | 设置输入范围 | |||||
---|---|---|---|---|---|---|
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 = mspel.AIOInW(2)
C# 例:
int val;
val = mspel.AIOInW(2);
AIO_Out 方法,Spel 类
描述
从模拟I/O选件的输出通道,读取或设置模拟量值。
语法
Function AIO_Out (Channel As Integer) As Single
Sub AIO_Out (Channel As Integer, Value As Single)
参数
- Channel
指定模拟I/O通道的编号。 - Value
一个表达式或数值,用于显示要输出的电压[V]或电流[mA]的实数。
返回值
返回指定的模拟I/O通道的电压和电流输出状态的实数值。电压输出时的单位为 [V],电流输出时的单位为[mA]。
Function AIO_Out (Channel As Integer) As Single时:当在指定的通道中输出机器人的速度信息时,也可以通过本方法返回值。
备注
将表示指定电压[V]或电流[mA]的实数值,输出到通道编号指定的模拟输出端口。请通过端口上的开关,设置模拟输出端口的电压输出范围和选择电压、电流输出。如指定的值超出模拟I/O板的输出范围时,则会输出范围内的边界值(最大值或最小值)。
Sub AIO_Out (Channel As Integer, Value As Single)时:当在指定的通道中输出机器人信息速度时,本方法会发生输出设定错误。请在停止输出速度信息后,执行本方法。
另见
AIO_In, AOI_InW, AIO_OutW
AIO_Out 示例
VB 例:
Dim val As Single
val = mspel.AIOOut(1)
C# 例:
float val;
val = mspel.AIOOut(1);
AIO_OutW 方法,Spel 类
描述
从模拟I/O选件的输出通道,读取或设置模拟量值。
语法
Function AIO_OutW (Channel As Integer) As Integer
Sub AIO_OutW (Channel As Integer, OutputData As Integer)
参数
- Channel
指定模拟I/O通道的编号。 - OutputData
一个表达式或数值,用于指定输出数据 (0到65535的整数)。
返回值
返回指定的模拟I/O通道的输出状态(0~65535的整数)。
每个输出通道的输出电压(电流)与返回值,因模拟I/O板的输出范围设置而异,其对应关系如下所示。
输出数据 | 设置输出范围 | ||||||
---|---|---|---|---|---|---|---|
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 可利用 3 维空间的圆弧插补将机械臂移至指定点。
语法
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
表示Arch编号的整数(0至6)。 - DepartDist
在Jump指令中代表水平动作开始前的退避距离(距离出发点的垂直距离)(单位:mm)
在Jump3、Jump3CP指令中代表跨度动作前的退避距离(单位:mm) - ApproDist
在Jump指令中代表水平动作完全结束时的接近距离(距离目标位置的垂直距离)(单位:mm)
在Jump3、Jump3CP指令中代表跨度动作完全结束时的接近距离(单位: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
1至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轴方向的位置偏移量,单位为 mm。 - Param2
(对于 SCARA 机器人)在标准的肘关节中心线与定向轴中心线之间形成的线,以及在新辅助机械臂肘关节中心线和定向轴之间形成的线的偏移量(度)。(这 2 条线应在肘中心线处相交,所成角度即 Param2。)(对于 Cartesian 机器人)Y 轴方向位置相对于 Y 轴原点位置的偏移量,单位为 mm。 - Param3
(对于SCARA和Cartesian机器人)新定向轴中心线与旧定向轴中心之间的高度方向的偏移量(距离)。 - 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坐标的实数值
返回值
含有角度的double值。
另见
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秒,则会发生错误4088。
在虚拟控制器和空转的情况下,将计算命令速度而不是实际速度的平均绝对值。
本方法不支持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
指定基座坐标系的原点和方向的点数据 - 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)
参数
每个语法具有一个指定机械臂在 BGo 动作期间所移至端点的参数。此参数为线性内插动作结束时的最终位置。
- 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 类
描述
指定 box 内定义的结束检查区域。
语法
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
可选。使用对应远程输出时设置远程输出逻辑。若要设置为夹具末端在 box 区域内时 I/O 输出打开,使用 True。若要设置为夹具末端在 box 区域内时 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
备注
本方法可以开启或解除制动,垂直6轴型机器人(包括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
注意
在[PC和控制器连接]对话框中更改连接编号后,本方法“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运算符。 - 模式
指定机械臂是否在 U 轴的正切方向自动内插。
模式设置 | 正切校正 |
---|---|
0 | No |
2 | Yes |
- NumOfAxes
2-4 之间指定曲线动作期间所控制轴数的整数表达式,如下所示: 2: 在 XY 平面生成曲线,无 Z 轴移动或 U 轴旋转。3: 在 XYZ 平面生成曲线,无 U 轴旋转。(Theta 1、Theta2 和 Z) 4: 在 XYZ 平面生成曲线,U 轴旋转。(控制所有 4 个轴) - pointList
{点表达式|P(起始点:终点) } [, 输出命令 ]...该参数的各点数据以逗号(,)分隔来使用。若点数据完整并以升序或降序排列,两个点编号可使用冒号 (:)组合,指定为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+ 语句), CVMove 方法
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
指定待检索指定坐标的点的字符串表达式。可使用任一有效的点表达式。P* 还可用于检索当前位置的坐标。
返回值
指定坐标值。
CX、CY、CZ 的返回值:实际值(mm)
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
可选。指定16个ECP设置中将用于下一动作指令的设置的整数(0至15)。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
力觉引导对象的名称,或显示力觉引导对象名称的字符串变量。如需获得力觉序列的结果时,可省略此操作。 - 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会在指定的力觉引导序列结束后,进入下一条语句。
如需获得FGRun中执行的序列的结果,请使用FGGet。
当CP参数或CP语句中使用了通过运动,请等待其停止后再执行力觉引导序列。
开始执行时,如果满足以下任一条件,则会发生错误。
程序中指定的机器人和RobotNumber属性中指定的机器人不一致。请在Robot语句中指定正确的机器人。
程序中执行的机器人型号和RobotType属性中指定的机器人型号不一致。请在Robot语句中指定正确的机器人型号。
程序中指定的工具编号和RobotTool属性中指定的工具编号不一致。请在Tool语句中指定正确的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 = 3OutputBit = 4 OutputByte = 5 OutputWord = 6MemoryBit = 7 MemoryByte = 8 MemoryWord = 9InputReal = 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
用整数指定以下两个值的其中之一。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 Integer) As Double
参数
- JointNumber
所需关节的整数表达式。
返回值
表示当前功率模式的指定关节最大扭矩比的 0 至 1 的 Double 值。
另见
GetLimitTorque, GetRobotPos
GetRealTorque 示例
VB 例:
Dim j1Torque As Double
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的值,请将机械臂移动到您要校准的位置,并运行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 例:
' 将当前位置设为 Home 位置
With m_spel
.HomeSet(.Pls(1), .Pls(2), .Pls(3), .Pls(4), 0, 0)
End With
C# 例:
//将当前位置设为 Home 位置
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
通知各轴应在 Home 过程各步骤返回起始点的位模式。在步骤1期间,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 个输入位(一个字节)。 - 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 类
描述
使用 BCD 格式返回 8 个输入的输入状态。(二进制编码的十进制)
语法
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
指定包含夹具末端和部件的夹具末端关节中心附近的总装载惯性的 Double 值,单位为 kgm2。 - Eccentricity
指定包含夹具末端和部件的夹具末端关节中心附近的偏心距的 Double 值,单位为 mm。
另见
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 Arch 编号, LimZ, CP, SYNC, Sence, Till检索式以及并行处理语句。 - PointExpr
通过使用字符串表达式指定端点。
可以使用C Arch 编号, LimZ, CP, SYNC, Sence, Till检索式以及并行处理语句。
另见
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 动作的结合通过 3 维闸极动作。机器人移至起始点,然后移至结束点,最后移至目标点。
语法
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 Arch 编号, CP, LJM, SYNC, Sence, Till检索式以及并行处理语句。
另见
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 动作的组合通过 3 维闸极动作。
语法
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 Arch 编号, CP, LJM, SYNC, Sence, Till检索式以及并行处理语句。
另见
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 (FileName 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
可选。本地坐标系 X 轴上一点的 SpelPoint 变量。 - YAxisPoint
可选。本地坐标系 Y 轴上一点的 SpelPoint 变量。 - LocalPoint1, LocalPoint2
通过整数或字符串指定,表示本地坐标系的点数据。 - BasePoint1,BasePoint2
通过整数或字符串指定,表示Base坐标系的点数据。
另见
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 中的 Auto LogIn 启用,则会作为当前的 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 类
描述
关闭 S/W 内存 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 位值同时设置 16 个内存 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
表示其中一个端口的整数。每个端口含有 8 个输出位(一个字节)。 - 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);
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);
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 方法不同,执行中的 Callback 函数会被中断。
如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)
备注
当系统正在自动执行视觉处理时,背光灯将会自动开启或关闭。
当使用 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)。可省略
备注
开始本方法之前,请限制性以下操作。
- 选择要使用的机器人
- 开启电机
- 执行 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
可选。表示Jump动作中Z坐标的退避调整设置值的整数(0至100)。 - 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 的脉冲值的整数表达式。关节5-9为可选。
要点
脉冲值必须介于各关节指定的范围内。
另见
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 (FileName 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 = 3OutputBit = 4 OutputByte = 5 OutputWord = 6MemoryBit = 7 MemoryByte = 8 MemoryWord = 9InputReal = 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 参数中输入整数值。使用 Single 变量或直接输入 Single 类型值。
另见
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
' 指定Orientation flag
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;
// 指定 Orientation flag
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)
参数
- 模式
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
1至100之间的整数,表示Jump指令时接近动作的速度。
另见
Accel, Jump, Go
Speed 示例
VB 例:
m_spel.Speed(50)
C# 例:
m_spel.Speed(50);
SpeedR 方法,Spel 类
描述
指定使用 ROT 时的工具旋转速度。
语法
Sub SpeedR (RotationSpeed As Single)
参数
- RotationSpeed
指定以度/秒为单位的工具姿态变化的速度。
另见
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
指定用于连续路径指令 Jump3CP、Move、Arc 和 CVMove 的机械臂速度。 - JumpDepartSpeed
表示Jump、Jump3CP的退避速度的实数或表达式(单位:mm/sec)。 - JumpApproSpeed
表示Jump、Jump3CP的接近速度的实数或表达式(单位:mm/sec)。
另见
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 字节值。(请参见下表。)
地址 | 位 | 位打开时的控制器状态 | |
---|---|---|---|
0 | 0-15 | &H1-&H8000 | 任务 1 至 16 正在执行(Xqt)或 Halt 状态 |
16 | &H10000 | 任务正在执行 | |
17 | &H20000 | 暂停状态 | |
18 | &H40000 | 错误状态 | |
19 | &H80000 | TEACH 模式 | |
20 | &H100000 | 紧急停止状态 | |
21 | &H200000 | 低功率模式 | |
22 | &H400000 | 安全防护打开 | |
23 | &H800000 | Enable 开关打开 | |
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 | Motor On 状态 | |
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)或在 Halt 状态 |
另见
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 时,将从控制器加载点文件。点击 Teach 按钮时,将在控制器中示教点并将点文件保存至控制器。
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 类
描述
如果在最后的 Go/Jump/Move 语句期间因 till 条件而发生停止,则返回 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
表示待清除(取消定义)工具的整数表达式。(工具 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
16个用于下一个动作指令的工具定义(1至15)。
另见
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]按钮时,Status 返回 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
指定视觉对象类型的数值。(也可使用以下所示的常量)
对象类型 | 常量 | 数值 |
---|---|---|
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 类
描述
使用可由视觉系统检测的特征点计算移动相机的机械臂设置值。
NOTE:机器人基于目标的检测结果自动操作。请注意机器人和外围设备之间的互相干扰。此外,使用时避免各轴伸长至奇点附近的姿势,以免机械臂设置时发生错误。
语法
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 mm 设置精度作为目标移动。机器人动作较小。
Fine: 运行精细机械臂设置的模式。机器人大幅移动,并伴随机械臂方向改变,提供更高精度的机械臂设置。 - Sequence
含有当前项目中视觉序列名称的字符串表达式。 - Rotation
含有粗略械臂设置时旋转角度(度)的实数表达式。
值的范围: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)
VDeopfTool、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 类
描述
通过移动相机检测放置于工作平面的校准板,并定义平行于工作平面的本地坐标。
此外也通过固定相机检测工具末端的用户工件,并定义平行于固定相机传感器的本地平面。
NOTE:机器人基于目标的检测结果自动操作。请注意机器人和外围设备之间的互相干扰。此外,使用时避免各轴伸长至奇点附近的姿势,以免本地坐标设置时发生错误。
语法
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)
VDeopfTool、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 类
描述
使用视觉检测,计算 TPC 和移动相机位置的工具偏移值。
NOTE:在除 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 pixels 如果省略,则设为“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
表示 Edge 结果索引的整数表达式。 - 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
表示 Edge 结果索引的整数表达式。 - 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
表示 Edge 结果索引的整数表达式。 - 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
表示以像素单位显示的x坐标值的实数变量 - 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
表示以像素单位显示的x坐标值的实数变量 - 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
将包含boolean查找状态的整数变量。如果 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)
' 调整放置位置
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
将包含 boolean 查找状态的整数变量。如果 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
将包含 boolean 查找状态的整数变量。如果 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 pixels - 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 示例
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, VSetModel, 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
Sequence 中的对象名称。可示教 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 保存更改,或点击 Cancel 忽略更改。如果点击 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)
' WaitMem 是否超时?
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, Timeout 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 类
描述
指定当前机器人的weight参数。
语法
Sub Weight (PayloadWeight As Single, Axis As SpelAxis, [Axis])
参数
- PayloadWeight
待承载的夹具末端重量,单位为 Kg。 - ArmLength
第二机械臂的旋转中心至夹具末端的重心之间的距离,单位为mm。 - Axis
指定分配有效负载重量的附加轴(S或T)。
注意
请勿在 PayLoadWeight 和 ArmLength 参数中输入整数值。使用 Single 变量或直接输入 Single 类型值。
另见
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坐标位置。(机器人不得移至X坐标小于min X的位置。) - XUpperLimit
机器人可行进的最大X坐标位置。(机器人不得移至X坐标大于max X的位置。) - YLowerLimit
机器人可行进的最小Y坐标位置。(机器人不得移至Y坐标小于min Y的位置。) - YUpperLimit
机器人可行进的最大Y坐标位置。(机器人不得移至Y坐标大于max Y的位置。) - ZLowerLimit
机器人可行进的最小Z坐标位置。(机器人不得移至Y坐标小于min Z的位置。)(可省略) - ZUpperLimit
机器人可行进的最大Z坐标位置。(机器人不得移至Y坐标大于max 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();