1、1RAPID 参考手册指令张建辉 韩 鹏21.指令 1.1AccSet降低加速度用途:当处理较大负载时使用 AccSet 指令。它允许减慢加速度和减速度,使机器人有一个更平滑的运动。该指令只能在主任务 T_ROB1 中使用,或者如果处于多运动系统,在 Motion 任务中。基本范例:AccSet 的基本范例说明如下。例 1 AccSet 50,100;加速度备限制到正常值的 50%。例 2 AccSet 100,50;加速度斜线限制到正常值的 50%。项目:AccSet Acc RampAcc:数据类型:num(数值)加速度和减速度作为正常值的百分比。100%对应最大加速度。最大值:100%
2、。输入值“, ”Ramp “:=”“;”相关信息:有关信息 参看在世界坐标系统中控制加速度 第 590 页 WorldAccLim-在世界坐标系统中控制加速度沿着路径降低 TCP 加速度 第 265 页 PathAccLim沿路径降低 TCP 加速度定位指令 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 运动31.2ActUnit激活一个机械单元用途:ActUnit 用来激活一个机械单元。例如当使用普通驱动单元的时候,它可以用来决定哪一个单元被激活。该指令只能在主任务 T_ROB1 中使用,或者如果处于多运动系统,在 Motion 任务中。基本范例:ActUnit 的基本范
3、例说明如下:例 1 ActUnit orbit_a;orbit_a 机械单元的激活。项目:AccUnit MechUnitMechUnit:机械单元数据类型:mecunit(机械单元)要激活的机械单元的名称。程序执行:当机器人的和外部轴的实际路径准备好以后,整个路径被清理并且特定的机械单元被激活。这意味着它被机器人控制和监视。如果多个机械单元共享一个普通驱动单元,这些单元中的一个的激活,也将把该单元连接到普通驱动单元。限制:如果在该指令之前有一个运动指令,那个指令的程序中必须带有停止点(区域数据 fine) ,而不是一个通过点,否则将不能进行电源失败后的重启。AccUnit 指令不能在连接到以
4、下任何特定的系统事件的 RAPID 程序中执行:电源上电,停止,Q 停止,重启或者复位。语法:ActUnit MechUnit “:=”“;”相关信息:相关信息 参照废除机械单元 第 69 页 DeactUnit废除一个机械单元机械单元 第 969 页 MecUnit机械单元更多例子 第 69 页 DeactUnit废除一个机械单元41.3Add增加一个数字数值用途:Add 用于增加一个数值到一个数字变量或恒量,或者从一个数字变量或者恒量中减去一个数值。基本范例:Add 的基本范例说明如下:例 1 Add reg1,3;3 被增加到 reg1,即 reg1=reg1+3。例 2 Add reg
5、1,reg2从 reg1 减去 reg2,即 reg1=reg1-reg2。项目:Add Name AddValueName:数据类型:数字将要改变的变量或者恒量的名称。AddValue:数据类型:数字要增加的数值。语法:Add Name “:=” “, ”AddValue“:=”“;”相关信息:相关的信息 参看给变量加 1 Incr增加 1,第 117 页改变量减 1 Decr减 1,第 71 页使用一个任意的表达式改变数据,例如乘法 “:=”赋值,第 19 页51.4AliasIO用别名定义 I/O用途:AliasIO 用来用别名定义一个任意类型的信号,或者用来在内置(built-in)任
6、务模块中使用信号。在不同的机器人安装中,带别名的信号可以被用来预定义常规程序,而不用在运行之前进行任何的程序更新。在任何实际信号的使用之前,必须运行 AliasIO 指令。参看第 17 页的基本范例来加载模块,第 18 页更多范例来安装模块。基本范例:指令 AliasIO 的基本范例说明如下:也可参看第 18 页更多范例例 1 VAR signaldo alias_do;PROC Prog_start()AliasIO config_do,alias_do;ENDPROC程序 prog_start 链接到系统参数的 START 事件。程序定义的数字输出信号 alias_do 链接到程序开头配置
7、的数字输出信号 config_do。项目:AliasIO FromSignal, ToSignal;FromSignal:数据类型:signalxx 或者字符串。加载的模块:信号标识符按照配置(数据类型 signalxx)命名,信号描述符也从配置中复制。信号必须在 IO 配置中定义。安装的模块或者加载的系统模块:一个相关(CONST、VAR 、PERS 或者它们的参数)包含信号(数据类型 string 字符串)的名称,从该信号中,信号描述符在系统中搜索后被复制。信号必须在 IO 配置中定义。ToSignal:数据类型:signalxx信号标识符按照程序(数据类型 signalxx)命名,信号描
8、述符复制到该系统中。信号必须在 RAPID 程序中声明。FromSignal 和 ToSignal 项目必须使用(或者找到)相同的数据类型,并且必须是类型signalxx(signalai,signalao,signaldi,signaldo,signalgi 或者 signalgo)中的一个。程序执行:信号描述符数值从 FromSignal 项目给出的信号复制到 ToSignal 项目给出的信号。更多范例:指令 AliasIO 的更多范例说明如下。例 1 VAR signaldi alias_di;PROC prog_start( )CONST string config_string :=
9、”config_di”;AliasIO config_string,alias_di;ENDPROC程序 prog_start 链接到系统参数中的 START 事件。程序定义的数字输入信号 alias_di 链接到程序开头配置的数字输入信号 config_di(通过常量 config_string)。限制:6当开始程序的时候,别名信号直到 AliasIO 指令执行之后才能使用。指令 AliasIO 必须放置在 或者在程序开始(事件 START)时执行的事件程序中 或者在每一个程序开始之后(信号使用之前)执行的程序部分。为了防止错误,不推荐使用把 AliasIO 信号动态重新链接到不同的物理信号
10、。语法:AliasIO FromSignal “:=”“, ”ToSignal“:=”“;”相关信息:相关信息 参看输入/输出指令 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 输入和输出信号通常的输入输出功能性 RAPID 参考手册 -RAPID 概述,运动和 I/O 原理部分-I/O 原理I/O 配置 技术相关手册-系统参数定义事件程序 技术相关手册-系统参数加载/安装任务模块 技术相关手册-系统参数71.5 “:=”赋值用途:“:=”指令用来给数据赋一个新值。这一个值可以是包括从常量值到任意的表达式中的任何一个。例如reg1+5*reg3。基本范例:指令的基本范例说明
11、如下。也可参见第 19 页更多范例。例 1 reg1:=5 ;数值 5 赋给 reg1。例 2 reg1:=reg2-reg3;reg2-reg3 计算返回的数值赋给 reg1。例 3 counter:=counter+1;counter 增加 1。项目:Data:=ValueData:数据类型:所有将被赋新值的数据。Value:数据类型:和 Data 一样。期望的数值。更多范例:该指令的更多范例说明如下。例 1 tool1.tframe.trans.x:=tool1.tframe.trans.x+20;tool1 的 TCP 在 X 方向上移动 20 毫米。例 2 pallet5,8:=Ab
12、s(value)pallet 矩阵的一个元素被赋予一个等于 value 变量的绝对值的数值。限制:数据(将被改变数值的)不可以是:常量非数值数据类型数值或者数据必须有相似的(相同的或者别名的)数据类型。语法:(EBNF)“:=” “;”:=|相关信息:相关信息 参看表达式 RAPID 参考手册 -RAPID 概述,基本特性部分-表达式非数值数据类型 RAPID 参考手册 -RAPID 概述,基本特性部分-数据类型给数据赋一个初始数值 操作员手册-IRC5 和 FlexPendant,FlexPendant 部分编辑数据实例81.6BitClear在一个字节数据中清除一个特定位用途:BitCle
13、ar 用来清除(设为 0)定义的字节数据中一个特定的位。基本范例:该指令的基本范例说明如下。例 1 CONST num parity_bit:=8;VAR byte data1:=130;BitClear data1,parity_bit;变量 data1 中位号 8(parity_bit)将设为 0,例如变量 data1 的内容将从 130 变成 2(整数表示法) 。当使用BitClear 时数据类型 byte 的位操作在下图有说明。项目:BitClear BitData BitPosBitData:数据类型:字节整型表示法的位数据,将被改变的数据。BitPos:数据类型:数字BitData
14、 中将被设为零的位的位置(1-8 ) 。限制:字节数据类型的范围是十进制的 0-255。有效的位的位置为 1-8。语法:BitClear BitData :=,BitPos:=;相关信息:相关信息 参看在字节数据中设定一个特定的位 BitSet在字节数据中设定一个特定的位,第 23 页检查字节数据中特定的位是否被设置 BitCheck检查字节数据中特定的位是否被设置,第 654 页位的其他功能 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 数学-位功能91.7BitSet在字节数据中设定一个特定的位用途:BitSet 用来在定义的字节数据中把一个特定位设为 1。基本范例:该
15、指令的基本范例说明如下。例 1 CONST num parity_bit:=8;VAR byte data1:=2;BitSet data1 parity_bit;变量 data1 中位号 8(parity_bit)将设为 1,例如变量 data1 的内容将从 2 变成 130(整数表示法) 。当使用BitClear 时数据类型 byte 的位操作在下图有说明。项目:BitSet BitData BitPosBitData:数据类型:字节整型表示法的位数据,将被改变的数据。BitPos:位的位置数据类型:数字BitData 中将被设为零的位的位置(1-8 ) 。限制:字节数据类型的范围是十进制
16、的 0-255。有效的位的位置为 1-8。语法:BitSet BitData :=,BitPos:=;相关信息:相关信息 参看在字节数据中清除一个特定的位 BitClear在字节数据中清除一个特定的位,第 23 页检查字节数据中特定的位是否被设置 BitCheck检查字节数据中特定的位是否被设置,第 654 页位的其他功能 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 数学-位功能101.8BookErrNo 定制一个 RAPID 系统错误号码用途:BookErrNo 用来定制一个新的 RAPID 系统错误号码。基本范例:该指令的基本范例说明如下:例 1 !Introduc
17、e a new error number in a glue system!Note: The new error variable must be declared with the initial value 1;VAR errnum ERR_GLUEFLOW:=-1;!Book the new RAPID system error numberBookErrNo ERR_GLUEFLOW;变量 ERR_GLUEFLOW 将被赋给一个空闲的系统错误号码,将在 RAPID 代码中使用。!Use the new error numberIF dil=0 THENRAISE ERR_GLUEFL
18、OW;ELSEENDIFError handlingERRORIF ERRNO=ERR_GLUEFLOW THEN.ELSEENDIF如果数字输入 dil 是 0,新定制的错误号码将被提出并且系统错误变量 ERRNO 将被设定到新定制的错误号码。这些用户产生的错误的错误处理然后可以像平常一样在错误处理器中处理。项目:BookErrNo ErrorNameErrorName:数据类型:errnum新的 RAPID 系统错误变量名称。限制:新的错误变量不可以像程序变量一样被声明。新的错误变量必须带初始值-1 声明,这就给出一个信息:该错误应该是一个 RAPID 系统错误。语法:BookErrNo
19、ErrorName := ;相关信息:相关信息 参看错误处理 RAPID 参考手册 -RAPID 概述,基本特性部分-错误恢复错误号码 Errnum错误号码,第 941 页调用一个错误处理器 RAISE调用一个错误处理器,第 303 页111.9Break跳出程序执行用途:Break 用来在程序执行中制造一个立即跳出,为了 RAPID 程序代码调试的目的。基本范例:该指令的基本范例说明如下。例 1 Break.程序执行停止,为了调试目的的分析变量、数值等成为可能。程序执行:该指令立即停止程序执行,不用等机器人或者外部轴到达他们编程的当时运动的目的点。程序执行然后能从下一条指令重新开始。如果在一
20、些事件程序中有 Break 指令,程序的执行将被打断,并且没有停止事件程序将被执行。下次同一事件发生的时候事件程序将从开头执行。语法:Break;相关信息:相关信息 参看程序活动停止 Stop停止程序执行,第 438 页致命错误后停止 EXIT终止程序执行,第 92 页终止程序执行 EXIT终止程序执行,第 92 页只停止机器人运动 StopMove停止机器人运动,第 442 页121.10CallByVar通过一个变量调用程序用途:CallByVar(Call By Variable)可以使用一个特定的名称,例如 proc_name1, proc_name2, proc_name3 proc
21、_namex 通过一个变量调用程序。基本范例:该指令的基本范例说明如下:也可参照第 28 页更多范例。例 1 reg1:=2 ;CallByVar “proc”,reg1;程序 proc2 被调用。项目:CallByVar Name NumberName:数据类型:字符串程序名称的第一部分,例如 proc_name。Number:数据类型:数字程序号码的数字数值。该数值将被转换成一个字符串,给出程序名称的第二部分,例如,1。数值必须是一个正整数。更多范例:如何作出程序调用的动态和静态选择的更多范例。例 1 程序调用的静态选择。TEST reg1CASE 1:Lf_door door_loc;C
22、ase 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;程序 proc2 和项目 door_loc 被调用。限制:所有程序必须有一个特定的名称,例如 proc1,proc2,proc3。例 3 用 CallByV
23、ar 动态选择程序调用。Reg1:=2;CallByVar “proc”,reg1;13程序 proc2 被调用。限制:所有程序必须有一个特定的名称,如 proc1,proc2,proc3,并且没有项目可以被使用。限制:只能被用来调用不带参数的程序。不能用来调用 LOCAL(本地)程序。CallByVar 的执行比普通的程序调用要占用多一点的时间。错误处理:如果 Number 项目小于零或者不是一个整数,系统参数 ERRNO 被设成 ERR_ARGVALERR。如果相关到一个未知的程序,系统参数 ERRNO 被设成 ERR_REFUNKPRC。如果程序调用错误(不是程序错误) ,系统参数 ER
24、RNO 被设成 ERR_CALLPROC。这些错误可以在错误处理器中进行处理。语法:CallByVar 名称:= , 号码:=;相关信息:相关信息 参照调用程序 RAPID 参考手册 -RAPID 概述,基本特性部分-程序操作员手册-IRC5 和 FlexPendant141.11CancelLoad 取消模块的加载用途:CancelLoad 用来取消用 StartLoad 指令正在加载或者已经加载的模块。CancelLoad 只能用在指令 StartLoad 和 WaitLoad 之间。基本范例:该指令的基本范例说明如下。也可参见第 30 页的更多范例。例 1 ConcelLoad load
25、1加载 load1 被取消。项目:CancelLoad LoadNoLoadNo:数据类型:loadsession相关到被 StartLoad 所开始的加载系列。更多范例:如何使用该指令的更多范例说明如下。例 1 VAR loadsession load1;StartLoad “HOME:”File:=”PART_B.MOD”,load1;IF CancelLoad Load1;StartLoad “HOME:”File:=”PART_C.MOD”,load1;ENDIFWaitLoad load1;指令 CancelLoad 将取消正在进行的 PART_B.MOD 模块的加载,而要使加载 P
26、ART_C.MOD 成为可能。错误处理:如果项目 LoadNo 指定的变量没有在使用,也就是说没有进行加载,系统变量 ERRNO 将设为ERR_LOADNO_NOUSE。这个错误然后在错误处理器中可能被处理。语法:CancelLoad LoadNo :=;相关信息:相关信息 参照在执行过程中加载一个程序模块 StartLoad在执行过程中加载一个程序模块,第 410 页把加载的模块连接到任务中 WaitLoad把加载的模块连接到任务中,第 566 页加载系列 Loadsession程序加载系列,第 968 页加载一个程序模块 Load在执行过程中加载一个程序模块,第 182 页卸载一个程序模块
27、 Unload在执行过程中卸载一个程序模块,第 553 页接受未解决的相关 技术相关手册-系统参数,标题控制器部分 -任务类型-检查未解决的相关151.12CirPathMode 在圆形路径过程中工具再定位用途:CirPathMode(圆形路径模式)使在圆周运动中选择不同的模式再定位工具成为可能。该指令只能被使用在主任务 T_ROB1,或者如果在多运动系统中,使用在运动任务中。基本范例:该指令的基本范例说明如下:例 1 CirPathMode PathFrame在所有成功的圆形运行过程中,从开始点到 ToPoint 的实际路径格式中工具再定位的标准模式。这是系统中的缺省值。例 2 CirPat
28、hMode ObjectFrame在所有成功的圆形运行过程中,从开始点到 ToPoint 的实际对象格式中工具再定位的修改的模式。例 3 CirPathMode CirPointOri在所有成功的圆形运行过程中,从开始点通过程序中的 CirPoint 再定位到 ToPoint 的工具再定位的标准模式。描述:PathFrame以下表格中的图显示了标准模式PathFrame 下的工具再定位。说明 描述箭头显示了工具从腕部中心点到工具中心点也就是编程点。腕部中心点的路径在图中用虚线点出。PathFrame 模式使工具绕圆柱得到相同的角度变得容易。机器人手腕将不能突破 CirPoint 中编程的方向。
29、以下表格中的图显示了用固定工具方向的标准模式PathFrame 的使用。说明 描述该图片显示了用倾斜工具和PathFrame 模式在圆的中心获得的工具方向。和下图中使用ObjectFrame 模式的相比较。ObjectFrame下表中的图显示了修改的模式ObjectFrame 和固定工具方向的使用。说明 描述该图片显示了用倾斜工具和ObjectFrame 模式在圆的中心获得的工具方向。该模式将做出和 MoveL 用相同方法的工具的线性再定位。机器人手腕将不能穿过 CirPoint 中编程的方向。和上图中使用PathFrame 模式的相比较。CirPointOri以下表格中的图显示了标准模式Pa
30、thFrame 和修改的模式CirPointOri 之间不同的工具再定位。说明 描述箭头显示了工具从腕部中心点到工具中心点也就是编程点。腕部中心点的不同路径在图中用虚线点出。CirPointOri 模式使机器人手腕突破 CirPoint 中编程的方向。项目:CirPathMode PathFrame | ObjectFrame | CirPointOri16PathFrame数据类型:switch在圆周运动过程中,工具的再定位在实际路径格式中的从开始点方向到 ToPoint 方向连续完成。这是系统中的标准模式。 ObjectFrame数据类型:switch在圆周运动中,工具的再定位在实际对象格
31、式中从开始点方向到 ToPoint 方向连续完成。 CirPointOri数据类型:switch在圆周运动中,工具的再定位在实际对象格式中从开始点方向到程序中 CirPoint 方向再到 ToPoint 方向连续完成。只有编程的 CirPointMode;没有任何转换导致和 CirPointModePathFrame 相同的结果。程序执行:特定的圆形工具再定位模式应用于下一个执行的机器人任意类型的圆周运动(MoveC,SearchC,TriggC,MoveCDO,MoveCSync,ArcC,PaintC )并且直到新的 CirPathMode(或者旧的 CirPathReori)指令执行之前
32、都有效。标准的圆形再定位程序(CirPathMode PathFrame )在以下情况下自动设定: 冷启动 当加载一个新的程序 当从开头执行程序时限制:该指令只影响圆周运动。当使用CirPointOri 模式时,CirPoint 必须在点 A 和点 B 之间,按照下图是圆周运动在 CirPoint 突破程序中的方向。如果工作在手腕单一点区域附近并且 SingAreaWrist 指令已经被执行,指令 CirPathMode 将没有影响,因为系统那时候选择另一种圆周运动(关节插补)的工具再定位模式。该指令代替旧的指令 CirPathReori(即使在将来也可以使用,但是在文档中不再介绍。语法:Ci
33、rPathMode ; PathFrame | ObjectFrame | CirPointOri相关信息:相关信息 参照插补 RAPID 参考手册 -RAPID 概述,运动和 I/O 原理部分-程序执行过程中的定位运动设定数据 Motsetdata运动设定数据,第 971 页圆周运动指令 MoveC使机器人圆周运动,第 209 页171.13Clear清除数值用途:Clear 用来清除一个数字变量或恒量,即把它设为零。基本范例:该指令的基本范例说明如下。例 1 Clear reg1;Reg1 被清除,即 reg1:=0。项目:Clear NameName:数据类型:数字即将清除的变量或恒量的
34、名称。语法:Clear Name := ;相关信息:相关信息 参看给变量加 1 Incr给变量加 1,第 117 页使变量减 1 Decr变量减 1,第 71 页给变量增加任何值 Add增加数字数值,第 16 页使用任意值改变数据 “:=”给变量赋值,第 19 页181.14ClearIOBuff清除串行通道的输入缓冲器用途:ClearIOBuff 用来清理串行通道的输入缓冲器。所有来自串口通道的缓冲的字母将被丢弃。基本范例:该指令的基本范例说明如下。例 1 VAR iodev channel2;Open “com2:”, channel2 Bin;ClearIOBuff channel2;W
35、aitTime 0.1;相关到 channel2 的串行通道的输入缓冲器被清空。等待时间保证足够时间来完成清空操作。项目:ClearIOBuff IODeviceIODevice:数据类型:iodev将被清空缓冲器的串行通道的名称(相关) 。程序执行:所有输入串行通道的缓冲器的字母被清除。下一个读取指令将等待来自通道的新的指令。限制:该指令只能被串行通道使用。不等待操作完成的通知。在每一次使用中,推荐在指令后使用 0.1 秒的等待时间,来给操作足够的时间。错误处理:如果要在一个文件上使用该指令(清除文件) ,系统变量 ERRNO 将被设成 ERR_FILEACC。该错误可以在错误处理器中处理。
36、语法:ClearIOBuff IODevice := ;相关信息:相关信息 参看打开一个串行通道 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 通讯191.15ClearPath清除当前路径用途:ClearPath 清除当前运动路径层次上(基本层次或者 StorePath 层次)的整个运动路径。运动路径是指在 ClearPath 执行的时候,从 RAPID 已经执行但是机器人没有完成的运动开始所有的运动段落。在 ClearPath 指令执行前机器人必须在停止点位置,或者用 StopMove 指令停止机器人。基本范例:该指令的基本范例说明如下。在下列程序例子中,机器人从初始位
37、置到达 p1 点。在点 px,信号 dil 将指示有效负载被丢掉。在陷阱程序 gohome 中,继续执行。机器人将在 px 停止运动(开始跳出) ,路径将被清除,机器人将移动到初始位置。错误将被提高到调用 minicycle 程序,并且整个用户定义的程序循环 proc1,proc2 将被再次从开始执行。例 1 VAR intnum drop_payload;CONST errnum ERR_DROP_LOAD:=-1;PROC minicycle( )BookErrNo ERR_DROP_LOAD;Proc1;ERROR (ERR_DROP_LOAD)RETRY;ENDPROCPROC pro
38、c1( )proc2;ENDPROCPROC proc2( )CONNECT drop_payload WITH gohome;IsignalDI Single, dil, 1, drop_payload;MoveL p1,v500,fine,gripper;.Idelete drop_payload20ENDPROCTRAP gohomeStopMove Quick;ClearPath;Idelete drop_payload;MoveL home, v500, fine, gripper;RAISE ERR_DROP_LOAD;ERRORRAISE;ENDTROP如果正在运行相同的程序,但
39、是在陷阱程序 gohome 中没有使用 StopMove 和 ClearPath,在回到初始位置home 之前机器人将继续运动到 p1 位置。如果编程时在 MoveL home 中使用飞点(zone)代替停止点(fine ) ,在调用 minicycle 程序中的错误处理器的过程中,运动将会继续并且直到运动准备好。语法:ClearPath ;相关信息:相关信息 参看停止机器人运动 StopMove停止机器人运动,第 442 页错误恢复 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 错误恢复RAPID 参考手册 -RAPID 概述,基本特性部分-错误恢复211.16Clear
40、RawBytes 清除原始字节数据的内容用途:ClearRawBytes 用来把原始字节变量的所有内容设为 0。基本范例:指令的基本范例说明如下。例 1 VAR rawbytes raw_data;VAR num integer :=8VAR num float :=13.4;PackRawBytes integer, raw_data, 1 IntX :=DINT;PackRawBytes float,raw_data, (RawBytesLen(raw_data)+1) Float4;ClearRawBytes raw_data FromIndex :=5;在前 4 个字节里,放入 int
41、eger 的数值(从索引 1 开始) ,从索引 5 开始的后 4 个字节里放入了 float 的数值。例子中的最后一个指令清除了 Raw_data 的内容,从索引 5 开始,例如 float 将被清除,但是 integer 被保存在 raw_data 中。当前 Raw_data 中有效字节的长度被设为 4。项目:ClearRawbytes RawData FromIndex RawData:数据类型:原始字节RawData 是将被清除的数据容器。 FromIndex :数据类型:数字带有指定的 FromIndex ,将从 FromIndex 开始清除 RawData 的内容。一直到头的所有东西
42、都被清除。如果没有指定 FromIndex ,从索引 1 开始的所有数据将被清除。程序执行:在指定的变量中,从索引 1(缺省)开始或者从FromIndex 开始的数据被复位到 0。指定变量中有效字节的当前长度被设为 0(缺省)或者如果FromIndex 使用的话为(FromIndex-1) 。语法:ClearRawBytes RawData := FromIndex:= ; 相关信息:相关信息 参看原始字节的数据 Rawbytes原始数据,第 994 页得到原始字节数据的长度 RawBytesLen得到原始字节数据的长度,第 806 页复制原始字节数据的内容 CopyRawBytes复制原始字
43、节数据的内容,第 58 页将设备网标题打包进原始字节数据 PackDNHeader将设备网标题打包进原始字节数据,第 258 页将数据打包进原始字节数据 PackRawBytes将数据打包进原始字节数据,第 261 页写入原始字节数据 WriteRawBytes写入原始字节数据,第 604 页读取原始字节数据 ReadRawBytes读取原始字节数据,第 319 页从原始字节数据将数据拆包 UnpackRawBytes从原始字节数据中将数据拆包,第 556 页221.17ClkReset复位一个用来计时的时钟用途:ClkReset 用来复位一个用来计时的停止监视功能的时钟。该指令在使用时钟指令
44、之前使用,用来确保它归零。基本范例:该指令的基本范例说明如下。例 1 CleReset Clock1;时钟 Clock1 被复位。项目:ClkReset ClockClock:数据类型:时钟要复位的时钟的名称。程序执行:当时钟被复位,它被设为 0。如果时钟正在运行,它将被停止然后复位。语法:ClkReset Clock := ;相关信息:相关信息 参看其他时钟指令 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 系统和时间231.18ClkStart开始一个用来计时的时钟用途:ClkStart 用来开始一个用于计时的停止-监视功能的时钟。基本范例:该指令的基本范例说明如下。也
45、可参看第 43 页的更多范例。例 1 ClkStart Clock1时钟 Clock1 开始计时。项目:ClkStart ClockClock:数据类型:时钟将要开始计时的时钟的名称。程序执行:当时钟开始计时,它将运行并且继续计秒直到它停止。当让它开始计时的程序停止的时候,时钟继续运行。但是,你想要计时的事件可能不再有效。例如,如果程序测量输入的等待时间,当程序停止的时候,输入已经被接收。在这种情况下,当程序停止的时候,程序将不能“看到”事件的发生。当机器人电源断电的时候,只要备份电池保留包含时钟变量的程序,始终将继续运行。如果时钟正在运行,它可以被读取、停止或者复位。更多范例:该指令的更多范
46、例说明如下。例 1 VAR clock clock2;VAR num time;ClkReset clock2;ClkStart clock2;WaitUntil dil =1;ClkStop clock2;Time:=ClkRead(clock2);Dil 变成 1 的等待时间被测量。错误处理:如果时钟运行了 4,294,967 秒(49 天 17 个小时 2 分钟 47 秒) ,它将超载并且系统变量 ERRNO 被设成ERR_OVERFLOW。该错误可以在错误处理器中处理。语法:ClkStart Clock := ;相关信息:相关信息 描述在其他时钟指令 RAPID 参考手册 -RAPID
47、 概述,RAPID 摘要部分- 系统和时间241.19ClkStop停止一个用来计时的时钟用途:ClkStop 用来停止一个用于计时的停止-监视功能的时钟。基本范例:该指令的基本范例说明如下。ClkStop Clock1时钟 Clock1 停止计时。项目:ClkStop ClockClock:数据类型:时钟将要停止计时的时钟的名称。程序执行:当时钟停止计时,它将停止运行。如果时钟被停止,它可以被读取、再次开始或者复位。错误处理:如果时钟运行了 4,294,967 秒(49 天 17 个小时 2 分钟 47 秒) ,它将超载并且系统变量 ERRNO 被设成ERR_OVERFLOW。该错误可以在错
48、误处理器中处理。语法:ClkStop Clock := ;相关信息:相关信息 参看其他时钟指令 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 系统和时间更多例子 ClkStart开始一个用来计时的时钟,第 43 页251.20Close关闭一个文件或者串行通道用途:Close 用来关闭一个文件或者串行通道。基本范例:该指令的基本范例说明如下。例 1 Close channel2;被 channel2 相关到的串行通道被关闭。项目:Close IODeviceIODevice:数据类型:iodev将要被关闭的文件或者串行通道的名称(相关) 。程序执行:指定的文件或者串行通道被关闭并且在读或写之前必须重新打开。如果它已经被关闭,该指令被忽略。语法:Close IODevice := ;相关信息:相关信息 参看打开一个文件或者串行通道 RAPID 参考手册 -RAPID 概述,RAPID 摘要部分- 通讯261.21CloseDir 关闭一个目录用途:CloseDir 用来关闭一个目录,和 OpenDir 达到平衡。基本范例:该指令的基本范例说明如下。例 1 PROC lsdir(string dirname)VAR dir directory;VAR string filename;OpenDir directory,