基本示例
以下实例介绍了指令Break:
例 1
...
Break;
...
停止程序执行,且有可能出于调试目的来分析变量、数值等。
程序执行
指令立即停止程序执行,且无需等待机械臂和外轴达到当时其程序规定的运动目的点。
随后,可以从下一个指令重新开始程序执行。
如果某些程序事件中存在Break 指令,则将中断程序的执行,且将不会执行任何停止 程序事件。将从相同事件下一次出现时开始执行程序事件。
语法
Break';'
相关信息
请参阅 信息,关于
第685页的Stop - 停止程序执行
停止程序动作第202页的EXIT - 终止程序执行
在出现致命错误后停止第202页的EXIT - 终止程序执行
终止程序执行第690页的StopMove - 停止机械臂的移动
仅停止机械臂的移动1.11 Break - 中断程序执行 RobotWare - OS
1.12 CallByVar - 通过变量,调用无返回值程序
手册用法
CallByVar(Call By Variable)可用于调用具有特定名称的无返回值程序,例如,
经由变量的proc_name1, proc_name2, proc_name3 ... proc_namex。
基本示例
以下实例介绍了指令CallByVar:
另请参阅第43页的更多示例 例 1
reg1 := 2;
CallByVar "proc", reg1;
调用无返回值程序proc2。
变元
CallByVar Name Number
Name
数据类型:string
无返回值程序名称的第一部分,例如,proc_name。
Number
数据类型:num
无返回值程序编号的数值。将该值转换成字符串,并作为无返回值程序名称的第二部 分,例如,1。该值必须为正整数。
更多示例
关于如何进行过程调用静态和动态选择的的更多实例。
实例1 - 过程调用的静态选择
TEST reg1 CASE 1:
lf_door door_loc;
CASE 2:
rf_door door_loc;
CASE 3:
lr_door door_loc;
CASE 4:
rr_door door_loc;
DEFAULT:
EXIT;
ENDTEST
根据登记值reg1为1、2、3或4,调用不同的无返回值程序,以针对选定的门实施适当 类型的工作。位于参数door_loc中的门位置。
实例2 - 过程调用以及RAPID语法的动态选择 reg1 := 2;
%"proc"+NumToStr(reg1,0)% door_loc;
下一页继续
技术参考手册 - RAPID指令、函数和数据类型 43
3HAC050917-010 修订: C
© 版权所有 2004-2016 ABB。保留所有权利。
1.12 CallByVar - 通过变量,调用无返回值程序 RobotWare - OS
使用参数door_loc,调用无返回值程序proc2。
限制:所有无返回值程序必须拥有特定的名称,例如,proc1, proc2, proc3.
实例3 - 过程调用以及CallByVar的动态选择 reg1 := 2;
CallByVar "proc",reg1;
调用无返回值程序proc2。
限制:所有无返回值程序必须拥有特定的名称,例如,proc1、proc2、proc3,且 无法使用任何参数。
限制
仅可用于调用不带参数的无返回值程序。
无法用于调用局部无返回值程序。
执行CallByVar,将花费比执行普通过程调用略长的时间。
错误处理
可能会产生下列可恢复错误。错误可以由错误处理程序处理。系统变量ERRNO将设置 为:
错误原因 名称
参数Number为<0或者非整数。
ERR_ARGVALERR
参考适用于未知无返回值程序。
ERR_REFUNKPRC
过程调用错误(非无返回值程序)。
ERR_CALLPROC
语法
CallByVar
[Name ':='] <expression (IN) of string>',' [Number ':='] <expression (IN) of num>';'
相关信息
请参阅 信息,关于
技术参考手册 - RAPID语言概览 调用无返回值程序
操作员手册 - 带 FlexPendant 的 IRC5 1.12 CallByVar - 通过变量,调用无返回值程序
RobotWare - OS 续前页
1.13 CamFlush - 从摄像头删除集合数据
手册用法
CamFlush用于清空(删除)摄像头的cameratarget集合数据。
基本示例
以下示例介绍了CamFlush指令。
例 1
CamFlush mycamera;
摄像头的mycamera集合数据被删除。
变元
CamFlush Camera
Camera
数据类型:cameradev 摄像头名称。
语法
CamFlush
[ Camera ':=' ] < variable (VAR) of cameradev > ';'
技术参考手册 - RAPID指令、函数和数据类型 45
3HAC050917-010 修订: C
© 版权所有 2004-2016 ABB。保留所有权利。
1.13 CamFlush - 从摄像头删除集合数据 Integrated Vision
1.14 CamGetParameter - 获取不同名称的摄像头参数
手册用法
CamGetParameter用于获取摄像头可能提供的命名的参数与。用户必须知道参数的 名称及其返回类型才能获取其值。
基本示例
以下示例介绍了CamGetParameter指令。
例 1
VAR bool mybool:=FALSE;
...
CamGetParameter mycamera, "Pattern_1.Tool_Enabled_Status"
\BoolVar:=mybool;
TPWite "The current value of Pattern_1.Tool_Enabled_Status is: "
\Bool:=mybool;
获得命名的布尔参数Pattern_1.Tool_Enabled_Status并将值写在 FlexPendant 上。
变元
CamGetParameter Camera ParName [\Num] | [\Bool] | [\Str]
Camera
数据类型:cameradev 摄像头名称。
ParName
Parameter Name 数据类型:string 摄像头中参数的名称。
[\NumVar]
数据类型:num
变量 (VAR) 用于存储所获取的数据对象的数字值。
[\BoolVar]
数据类型:bool
变量 (VAR) 用于存储所获取的数据对象的布尔值(真假值)。
[\StrVar]
数据类型:string
变量 (VAR) 用于存储所获取的数据对象的布尔值(真假值)。
程序执行
在此指令被执行时会直接读取指定参数并返回值。
如果指令被用于从图像分析读取结果,请在获取数据前确保摄像头已经完成图像处理。
1.14 CamGetParameter - 获取不同名称的摄像头参数 Integrated Vision
错误处理
可能会产生下列可恢复错误。错误可以由错误处理程序处理。系统变量ERRNO将设置 为:
错误原因 名称
摄像头正忙于处理其他请求,无法执行当前命令。
ERR_CAM_BUSY
与摄像头通信错误。摄像头可能已断开。
ERR_CAM_COM_TIMEOUT
用 CamGetParameter 指令从摄像头获取的参数的数据类型 错误。
ERR_CAM_GET_MISMATCH
语法
CamGetParameter
[ Camera ':=' ] < variable (VAR) of cameradev > ',' [ ParName ':=' ] < expression (IN) of string >
[ '\'NumVar ':=' < variable (VAR) of num > ]
| [ '\'BoolVar ':=' < variable (VAR) of bool > ]
| [ '\'StrVar ':=' < variable (VAR) of string > ] ';'
技术参考手册 - RAPID指令、函数和数据类型 47
3HAC050917-010 修订: C
© 版权所有 2004-2016 ABB。保留所有权利。
1.14 CamGetParameter - 获取不同名称的摄像头参数 Integrated Vision 续前页
1.15 CamGetResult - 从集合获取摄像头目标
手册用法
CamGetResult(摄像头获取结果)用于从图像结果集合获取摄像头目标。
基本示例
以下示例介绍了CamGetResult指令。
例 1
VAR num mysceneid;
VAR cameratarget mycamtarget;
...
CamReqImage mycamera \SceneId:= mysceneid;
CamGetResult mycamera, mycamtarget \SceneId:= mysceneid;
命令摄像头mycamera采集图像。使用SceneId获取从图像生成的图像结果。
变元
CamGetResult Camera CamTarget [\SceneId] [\MaxTime]
Camera
数据类型:cameradev 摄像头名称。
CamTarget
摄像头目标
数据类型:cameratarget 作为图像结果保存位置的变量。
[\SceneId]
场景识别 数据类型:num
SceneId是一个识别程序,指定cameratarget是从哪个图像生成的。
[\MaxTime]
最大时间 数据类型:num
程序执行可以等待的最大时间(以秒为单位)。允许的最大值是 120 秒。
程序执行
CamGetResult从图像结果集合获取摄像头目标。如果没有使用SceneId或 MaxTime,则不会获取结果,指令将永远停止。如果在CamGetResult中使用了 SceneId,则结果将在CamReqImage指令后生成。
SceneId仅在已经从指令CamReqImage请求了图像时可用。如果图像是由外部 I/O 信号生成的,则SceneId不能在指令CamGetResult中使用。
1.15 CamGetResult - 从集合获取摄像头目标 Integrated Vision
错误处理
可能会产生下列可恢复错误。错误可以由错误处理程序处理。系统变量ERRNO将设置 为:
错误原因 名称
摄像头正忙于处理其他请求,无法执行当前命令。
ERR_CAM_BUSY
在超时时间不能获取任何结果。
ERR_CAM_MAXTIME
不能为已经使用的SceneId获取更多图像结果,否则在超时 时间无法获取结果。
ERR_CAM_NO_MORE_DATA
语法
CamGetResult
[ Camera ':=' ] < variable (VAR) of cameradev > ',' [ CamTarget ':=' ] < variable (VAR) of CameraTarget >
[ '\'SceneId ':=' < expression (IN) of num > ] [ '\'MaxTime ':=' < expression (IN) of num > ] ';'
技术参考手册 - RAPID指令、函数和数据类型 49
3HAC050917-010 修订: C
© 版权所有 2004-2016 ABB。保留所有权利。
1.15 CamGetResult - 从集合获取摄像头目标 Integrated Vision 续前页
1.16 CamLoadJob -加载摄像头任务到摄像头
手册用法
CamLoadJob(摄像头加载作业) 加载摄像头任务,job,说明了曝光参数、校准以 及要应用的图像工具。
基本示例
以下示例介绍了CamLoadJob指令。
例 1
CamSetProgramMode mycamera;
CamLoadJob mycamera, "myjob.job";
CamSetRunMode mycamera;
作业myjob加载到名为mycamera的摄像头。
变元
CamLoadJob Camera JobName [\KeepTargets] [\MaxTime]
Camera
数据类型:cameradev 摄像头名称。
Name
数据类型:string
加载到摄像头的作业名称。
[\KeepTargets]
数据类型:switch
此参数用于指定是否保留摄像头产生的任何现有摄像头目标。
[\MaxTime]
数据类型:num
程序执行可以等待的最大时间(以秒为单位)。允许的最大值是 120 秒。
程序执行
CamLoadJob的执行将会等到作业加载完毕或经过超时错误失败。如果使用可选参数 KeepTargets,则保留指定摄像头的集合数据。默认的操作是删除(清空)就集合数 据。
错误处理
可能会产生下列可恢复错误。错误可以由错误处理程序处理。系统变量ERRNO将设置 为:
错误原因 名称
摄像头正忙于处理其他请求,无法执行当前命令。
ERR_CAM_BUSY
与摄像头通信错误。摄像头可能已断开。
ERR_CAM_COM_TIMEOUT
摄像头作业不会在超时时间加载。
ERR_CAM_MAXTIME
摄像头未处于编程模式 ERR_CAM_NO_PROGMODE
1.16 CamLoadJob -加载摄像头任务到摄像头 Integrated Vision
限制
当摄像头设置为编程模式时,才可以执行CamLoadJob。使用指令 CamSetProgramMode可将摄像头设置为编程模式。
为了能加载作业,作业文件必须存储在摄像头的闪存盘。
语法
CamLoadJob
[ Camera ':=' ] < variable (VAR) of cameradev > ',' [ JobName ':=' ] <expression (IN) of string >
[ '\'KeepTargets ]
[ '\'MaxTime ':=' <expression (IN) of num>]';'
技术参考手册 - RAPID指令、函数和数据类型 51
3HAC050917-010 修订: C
© 版权所有 2004-2016 ABB。保留所有权利。
1.16 CamLoadJob -加载摄像头任务到摄像头 Integrated Vision 续前页
1.17 CamReqImage - 命令摄像头采集图像
手册用法
CamReqImage(摄像头请求图像)命令摄像头采集图像。
基本示例
以下示例介绍了CamReqImage指令。
例 1
CamReqImage mycamera;
命令摄像头mycamera采集图像。
变元
CamReqImage Camera [\SceneId] [\KeepTargets] [\AwaitComplete]
Camera
数据类型:cameradev 摄像头名称。
[\SceneId]
场景识别 数据类型:num
可选参数SceneId是所采集图像的一个标识符。这是由CamReqImage加上可选变 量SceneId执行生成的。标识符是一个 1 到 8388608 之间的整数。如果没有使用 SceneId,则标识符值设置为 0。
[\KeepTargets]
数据类型:switch
此参数用于指定是否保留指定摄像头的旧集合数据。
[\AwaitComplete]
数据类型:switch
如果指定可选参数\AwaitComplete,则指令等待,直至已经收到来自图像的结果。
如果未产生任何结果,例如,因为图像中没有一个部分,则会产生错误 ERR_CAM_REQ_IMAGE。
当使用\AwaitComplete时,必须将相机触发类型设置为外部。
程序执行
CamReqImage用于命令指定摄像头采集图像。如果使用了可选参数SceneId,则所 采集图像的可用图像结果使用该指令生成的唯一数字标记。
如果使用可选参数KeepTargets,则保留指定摄像头的旧集合数据。默认的操作是 删除(清空)所有旧集合数据。
1.17 CamReqImage - 命令摄像头采集图像 Integrated Vision
错误处理
可能会产生下列可恢复错误。错误可以由错误处理程序处理。系统变量ERRNO将设置 为:
错误原因 名称
摄像头正忙于处理其他请求,无法执行当前命令。
ERR_CAM_BUSY
与摄像头通信错误。摄像头可能已断开。
ERR_CAM_COM_TIMEOUT
摄像头未处于运行模式 ERR_CAM_NO_RUNMODE
相机无法生成任何图像结果。
ERR_CAM_REQ_IMAGE
限制
当摄像头设置为运行模式时,才可以执行CamReqImage。使用指令CamSetRunMode 可将摄像头设置为运行模式。
语法
CamReqImage
[ Camera ':=' ] < variable (VAR) of cameradev > ',' [ '\'SceneId ':=' < variable (VAR) of num > ] [ '\'KeepTargets ]
[ '\'AwaitComplete ]';'
技术参考手册 - RAPID指令、函数和数据类型 53
3HAC050917-010 修订: C
© 版权所有 2004-2016 ABB。保留所有权利。
1.17 CamReqImage - 命令摄像头采集图像 Integrated Vision 续前页
1.18 CamSetExposure - 设置具体摄像头的数据
手册用法
CamSetExposure(摄像头设置曝光) 设置具体摄像头的数据并可以实现根据环境照明 条件调整图像参数。
基本示例
以下示例介绍了CamSetExposure指令。
例 1
CamSetExposure mycamera \ExposureTime:=10;
命令摄像头mycamera将曝光时间修改为 10 ms。
变元
CamSetExposure Camera [\ExposureTime] [\Brightness] [\Contrast]
Camera
数据类型:cameradev 摄像头名称。
[\ExposureTime]
数据类型:num
如果使用了本可选参数,则摄像头的曝光时间会更新。该值以毫秒 (ms) 为单位。
[\Brightness]
数据类型:num
如果使用了本可选参数,则将更新摄像头的亮度设置。其值通常以 0 到 1 之间的刻度
如果使用了本可选参数,则将更新摄像头的亮度设置。其值通常以 0 到 1 之间的刻度