1、机 器 人 标 准 指 令2024/3/6 周三赋值指令运动控制指令外轴激活指令计数指令输入输出指令程序运行停止指令例行程序调用指令计时指令中断指令通信指令运动指令中断运动指令程序流程指令故障处理指令座标转换指令运动触发指令2024/3/6 周三运动控制指令运动控制指令AccSetVelSet ConfJConfLSingAreaPathResolSoftActSoftDeact2024/3/6 周三运动控制指令运动控制指令AccSetAccSet Acc,Ramp;Acc:机器人加速度百分率。(num)Ramp:机器人加速度坡度。(num)应用:当机器人运行速度改变时,对所产生的相应加速度进
2、行限制,使机器人高速运行时更平缓,但会延长循环时间,系统默认值为 AccSet 100,100;。2024/3/6 周三运动控制指令运动控制指令AccSet实例:限制:l机器人加速度百分率值最小为 20,小于 20以 20 计,机器人加速度坡度值最小为 10,小于 10 以 10 计。l机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。2024/3/6 周三运动控制指令运动控制指令VelSetVelSet Override,Max;Override:机器人运行速率%。(num)Max:最大运行速度 mm/s。(num)应用:对机器人运行速度进行限制,机器人运动指令中均带有运行速度,在
3、执行运动速度控制指令 VelSet 后,实际运行速度为运动指令规定的运行速度乘以机器人运行速率,并且不超过机器人最大运行速度,系统默认值为 VelSet 100,5000;。2024/3/6 周三运动控制指令运动控制指令VelSet500 mm/s800 mm/s10 s800 mm/s1000 mm/s1000 mm/s6.25 s实例:VelSet 50,800;MoveL p1,v1000,z10,tool1;MoveL p2,v1000V:=2000,z10,tool1;MoveL p3,v1000T:=5,z10,tool1;VelSet 80,1000;MoveL p1,v1000
4、,z10,tool1;MoveL p2,v5000,z10,tool1;MoveL p3,v1000V:=2000,z10,tool1;MoveL p4,v1000T:=5,z10,tool1;2024/3/6 周三运动控制指令运动控制指令VelSet限制:l机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。l机器人运动使用参变量 T 时,最大运行速度将不起作用。lOverride 对速度数据(speeddata)内所有项都起作用,例如:TCP、方位及外轴。但对焊接参数 welddata 与 seamdata 内机器人运动速度不起作用。lMax 只对速度数据(speeddata)内
5、TCP 这项起作用。2024/3/6 周三运动控制指令运动控制指令ConfJConfJ On|Off;On:启用轴配置数据。(switch)关节运动时,机器人移动至绝对 ModPos 点,如果无法到达,程序将停止运行。Off:默认轴配置数据。(switch)关节运动时,机器人移动至 ModPos 点,轴配置数据默认为当前最接近值。2024/3/6 周三运动控制指令运动控制指令ConfJ应用:对机器人运行姿态进行限制与调整,程序运行时,使机器人运行姿态得到控制。系统默认值为 ConfJOn;。限制:l机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。实例:ConfJOn;ConfJOf
6、f;2024/3/6 周三运动控制指令运动控制指令ConfLConfL On|Off;On:启用轴配置数据。(switch)直线运动时,机器人移动至绝对 ModPos 点,如果无法到达,程序将停止运行。Off:默认轴配置数据。(switch)直线运动时,机器人移动至 ModPos 点,轴配置数据默认为当前最接近值。2024/3/6 周三运动控制指令运动控制指令ConfL应用:对机器人运行姿态进行限制与调整,程序运行时,使机器人运行姿态得到控制。系统默认值为 ConfLOn;。限制:l机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。实例:ConfLOn;ConfLOff;2024/3
7、/6 周三运动控制指令运动控制指令SingAreaSingArea Wrist|Off;Wrist:启用位置方位调整。(switch)机器人运动时,为了避免死机,位置点允许其方位值有些许改变,例如:在五轴零度时,机器人四六轴平行。Off:关闭位置方位调整。(switch)机器人运动时,不允许位置点方位改变,是机器人的默认状态。2024/3/6 周三运动控制指令运动控制指令SingArea应用:当前指令通过对机器人位置点姿态进行些许改变,可以绝对避免机器人运行时死机,但是,机器人运行路径会受影响,姿态得不到控制,通常使用于通过复杂姿态点,绝对不能作为工作点使用。实例:SingAreaWrist;
8、SingAreaOff;2024/3/6 周三运动控制指令运动控制指令SingArea限制:l以下情况机器人将自动恢复默认值 SingAreaOff。机器人冷启动。系统载入新的程序。程序重置(Start From Beginning)。2024/3/6 周三运动控制指令运动控制指令PathResolPathResol PathSampleTime;PathSampleTime:路径控制%。(num)应用:当前指令用于更改机器人主机系统参数,调整机器人路径采样时间,从而达到控制机器人运行路径的效果,通过此指令可以提高机器人运动精度或缩短循环时间,路径控制默认值为 100%,调整范围为25%400
9、%,路径控制百分比越小,运动精度越高,占用 CPU 资源也越多。2024/3/6 周三运动控制指令运动控制指令PathResol实例:MoveJ p1,v1000,fine,tool1;PathResol 150;机器人在临界运动状态(重载、高速、路径变化复杂情况下接近最大工作区域),增加路径控制值,可以避免频繁死机。外轴以很低的速度与机器人联动,增加路径控制值,可以避免频繁死机。机器人进行高频率摆动弧焊时,需要很高的路径采样时间,需要减小路径控制值。机器人进行小圆周或小范围复杂运动时,需要很高精度,需要减小路径控制值。2024/3/6 周三运动控制指令运动控制指令PathResol限制:l机
10、器人必须在完全停止后才能更改路径控制值,否则,机器人将默认一个停止点,并且显示错误信息 50146。l机器人正在更改路径控制值时,机器人被强制停止运行,机器人将不能立刻恢复正常运行(Restart)。l以下情况机器人将自动恢复默认值 100%。机器人冷启动。系统载入新的程序。程序重置(Start From Beginning)。2024/3/6 周三运动控制指令运动控制指令SoftActSoftAct MechUnit,Axis,Softness Ramp;应用:当前指令用于软化机器人主机或外轴伺服系统,软化值范围 0%100%,软化坡度范围=100%,此指令必须与指令 SoftDeact 同
11、时使用,通常不使用于工作位置。MechUnit:软化外轴名称。(mecunit)Axis:软化转轴号码。(num)Softness:软化值%。(num)Ramp:软化坡度%。(num)2024/3/6 周三运动控制指令运动控制指令SoftAct实例:SoftAct 3,20;SoftAct 1,90Ramp:=150;SoftAct MechUnit:=orbit1,1,40Ramp:=120;限制:l机器人被强制停止运行后,软伺服设置将自动失效。l同一转轴软化伺服不允许被连续设置两次。SoftAct 3,20;SoftAct 3,30;SoftAct 3,20;MoveJ*,v100,fin
12、e,tool1;SoftAct 3,30;2024/3/6 周三运动控制指令运动控制指令SoftDeactSoftDeact Ramp;Ramp:软化坡度,=100%。(num)应用:当前指令用于使软化机器人主机或外轴伺服系统指令 SoftAct 失效。实例:SoftAct 3,20;SoftDeact;SoftAct 1,90;SoftDeactRamp:=150;2024/3/6 周三外轴激活指令外轴激活指令ActUnitDeactUnit2024/3/6 周三外轴激活指令外轴激活指令ActUnitActUnit MecUnit;MecUnit:外轴名。(mecunit)应用:将机器人一个
13、外轴激活,例如:当多个外轴公用一个驱动板时,通过外轴激活指令 ActUnit 选择当前所使用的外轴。2024/3/6 周三外轴激活指令外轴激活指令ActUnitp10,外轴不动。p20,外轴联动track_motion。p30,外轴联动 orbit_a。实例:MoveL p10,v100,fine,tool1;ActUnit track_motion;MoveL p20,v100,z10,tool1;DeactUnit track_motion;ActUnit orbit_a;MoveL p30,v100,z10,tool1;限制:l不能在指令 StorePath RestoPath 内使用。
14、l不能在预置程序 RESTART 内使用。l不能在机器人转轴处于独立状态时使用。2024/3/6 周三外轴激活指令外轴激活指令DeactUnitDeactUnit MecUnit;MecUnit:外轴名。(mecunit)应用:使机器人一个外轴失效,例如:当多个外轴公用一个驱动板时,通过外轴激活指令 DeactUnit 使当前所使用的外轴失效。2024/3/6 周三外轴激活指令外轴激活指令DeactUnitp10,外轴不动。p20,外轴联动track_motion。p30,外轴联动 orbit_a。实例:MoveL p10,v100,fine,tool1;ActUnit track_motio
15、n;MoveL p20,v100,z10,tool1;DeactUnit track_motion;ActUnit orbit_a;MoveL p30,v100,z10,tool1;限制:l不能在指令 StorePath RestoPath 内使用。l不能在预置程序 RESTART 内使用。2024/3/6 周三计数指令计数指令AddClearIncrDecr2024/3/6 周三计数指令计数指令AddAdd Name,AddValue;Name:数据名称。(num)AddValue:增加的值。(num)应用:在一个数字数据值上增加相应的值,可以用赋值指令替代。实例:Add reg1,3;等同
16、于reg1:=reg1+3;Add reg1,-reg2;等同于reg1:=reg1-reg2;2024/3/6 周三计数指令计数指令ClearClear Name;Name:数据名称。(num)应用:将一个数字数据的值归零,可以用赋值指令替代。实例:Clear reg1;等同于reg1:=0;2024/3/6 周三计数指令计数指令IncrIncr Name;Name:数据名称。(num)应用:在一个数字数据值上增加 1,可以用赋值指令替代,一般用于产量计数。实例:Incr reg1;等同于reg1:=reg1+1;2024/3/6 周三计数指令计数指令DecrDecr Name;Name:数
17、据名称。(num)应用:在一个数字数据值上增加 1,可以用赋值指令替代,一般用于产量计数。实例:Decr reg1;等同于reg1:=reg1-1;2024/3/6 周三输入输出指令输入输出指令AliasIOInvertDOIODisableIOEnablePluseDOResetSetSetAOSetDOSetGOWaitDIWaitDO2024/3/6 周三输入输出指令输入输出指令AliasIOAliasIO FromSignal,ToSignal;FromSignal:机器人系统参数内所定义的信号名称。(signalxx or string)ToSignal:机器人程序内所使用的信号名称
18、。(signalxx)应用:对机器人系统参数内定义的信号名称进行化名,给机器人程序使用,一般使用与 Loaded Modules 或 Built-in Modules 内。例如:多台机器人使用相同系统参数。2024/3/6 周三输入输出指令输入输出指令AliasIOAlias_do,在机器人程序内定义。config_do,在系统参数内定义。实例:VAR signaldo alias_do;CONST string config_string:=config_do;PROC prog_start()AliasIO config_do,alias_do;AliasIO config_string,
19、alias_do;ENDPROC2024/3/6 周三输入输出指令输入输出指令AliasIO限制:l指令 AliasIO 必须放置在预置程序 START内或程序内使用相应信号之前。l指令 AliasIO 在示教器上无法输入,只能通过离线编程输入。l指令 AliasIO 需要软件 Developers Functions 支持。2024/3/6 周三输入输出指令输入输出指令InvertDOInvertDO Signal;Signal:输出信号名称。(signaldo)应用:将机器人输出信号值反转,0 为 1,1 为 0,在系统参数内也可定义。实例:InvertDO do15;2024/3/6 周
20、三输入输出指令输入输出指令InvertDO机器人程序内指令 InvertDO 被执行。2024/3/6 周三输入输出指令输入输出指令IODisableIODisable UnitName,MaxTime;UnitName:输入输出板名称。(num)MaxTime:最长等待时间。(num)应用:通过指令可以使机器人输入输出板在程序运行时自动失效,系统将一块输入输出板失效需要 25 秒。如果失效时间超过最长等待时间,系统将进入 Error Handler 处理,错误代码为 ERR_IODISABLE,如果例行程序没有 Error Handler 机器人将停机报错。2024/3/6 周三输入输出指令
21、输入输出指令IODisable输入输出板 cell1 开始失效,最长等待时间为 0,肯定进入 Error Handler 处理。利用机器人移动至 home 的时间完成输入输出板失效。确认输入输出板 cell1 失效。连续 5 次 RETRY,仍无法完成输入输出板失效。实例:PROC go_home()recover_flag:=1;IODisable“cell1”,0;MoveJ home,v1000,fine,tool1;recover_flag:=2;IODisable“cell1”,5;ERROR IF ERRNO=ERR_IODISABLE THEN IF recover_flag=1
22、 THEN TRYNEXT;ELSEIF recover_flag=2 THEN RETRY;ENDIF ELSEIF ERRNO=ERR_EXCRTYMAX THEN ErrWrite“IODisable error”,“Restart the program”;Stop;ENDIFENDPROC2024/3/6 周三输入输出指令输入输出指令IODisableError Handling:lERR_IODISABLE超过最长等待时间,系统仍未完成输入输出板失效。lERR_CALLIO_INTER系统在执行输入输出板失效与激活时,当前输入输出板再次被失效或激活,形成冲突。lERR_NAME_I
23、NVALID输入输出板名称错误或无法进行失效与激活操作。2024/3/6 周三输入输出指令输入输出指令IOEnableIOEnable UnitName,MaxTime;UnitName:输入输出板名称。(num)MaxTime:最长等待时间。(num)应用:通过这指令可以使机器人输入输出板在程序运行时自动激活,系统将一块输入输出板激活需要 25 秒。如果激活时间超过最长等待时间,系统将进入 Error Handler 处理,错误代码为 ERR_IOENABLE,如果例行程序没有 Error Handler 机器人将停机报错。2024/3/6 周三输入输出指令输入输出指令PulseDOPuls
24、eDO HighPLength Signal;High:输出脉冲时,输出信号可以处在高电平。(switch)Plength:脉冲长度,0.1s32s,默认值为 0.2s。(num)Signal:输出信号名称。(signaldo)应用:机器人输出数字脉冲信号,一般作为运输链完成信号或计数信号。2024/3/6 周三输入输出指令输入输出指令PulseDO实例:PulseDO PulseDOHigh 脉冲长度脉冲长度PulseDOHighPlength:=x PulseDOHighPlength:=y 2024/3/6 周三输入输出指令输入输出指令PulseDO限制:l机器人脉冲输出长度小于 0.0
25、1 秒,系统将报错,不得不重新热启动。例如:WHILE TRUE DO PulseDO do5;ENDWHILE2024/3/6 周三输入输出指令输入输出指令IOEnable输入输出板 cell1 开始激活,最长等待时间为 0,肯定进入 Error Handler 处理。通过每次 1 秒进行计数,连续5 次仍无法激活输入输出板,执行指令 RAISE。实例:VAR num max_retry:=0;.IOEnable“cell1”,0;SetDO cell1_sig3,1;ERRORIF ERRNO=ERR_IOENABLE THEN IF max_retry3 THEN TPWrite“”;E
26、NDIF IF nCounter30 THEN Stop;ENDIF WaitDI di_Ready,1MaxTime:=1TimeFlag:=bTimeout;Incr nCounter;ENDWHILE ENDPROC机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。2024/3/6 周三输入输出指令输入输出指令WaitDOWaitDO Signal,Value MaxTimeTimeFlag;Signal:输入
27、信号名称。(signaldi)Value:输入信号值。(dionum)MaxTime:最长等待时间 s。(num)TimeFlag:超时逻辑量。(bool)应用:等待数字输出信号满足相应值,达到通信目的,因为输出信号一般情况下受程序控制,此指令很少使用。2024/3/6 周三输入输出指令输入输出指令WaitDO实例:PROC Grip()Set do03_Grip;WaitDO do03_Grip,1;ENDPROC机器人等待输出信号,直到信号 do03_Grip 值为 1,才执行随后相应指令。机器人等待相应输出信号,如果 5 秒内仍没有等到信号 do03_Grip 值为 1,自动进行 Err
28、or Handler 处理,如果没有 Error Handler,机器人停机报错。PROC Grip()Set do03_Grip;WaitDO do03_Grip,1MaxTime:=5;ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TPWrite“”;RETRY;ELSE RAISE;ENDIFENDPROC2024/3/6 周三输入输出指令输入输出指令WaitDO实例:PROC Grip()Set do03_Grip;bTimeout:=TRUE;nCounter:=0;WHILE bTimeout DO IF nCounter3 THEN TPWrite“”
29、;ENDIF IF nCounter30 THEN Stop;ENDIF WaitDO do03_Grip,1MaxTime:=1TimeFlag:=bTimeout;Incr nCounter;ENDWHILE ENDPROC机器人等待到位信号,如果 1 秒内仍没有等到信号 do03_Grip 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 do03_Grip 值为 1,此时,TimeFlag 值为 FALSE。2024/3/6 周三程序运行停止指令程序运行停止指令BreakExitStopExitCycle2024/3/6 周三程序运行停止指令程
30、序运行停止指令BreakBreak;应用:机器人在当前指令行立刻停止运行,程序运行指针停留在下一行指令,可以用 Start 键继续运行机器人。实例:Break;2024/3/6 周三程序运行停止指令程序运行停止指令BreakP1P2P3区别:MoveL p2,v100,z30,tool0;Break;(Stop;)MoveL p3,v100,fine,tool0;StopBreak2024/3/6 周三程序运行停止指令程序运行停止指令ExitExit;应用:机器人在当前指令行停止运行,并且程序重置,程序运行指针停留在主程序第一行。实例:Exit;2024/3/6 周三程序运行停止指令程序运行停
31、止指令StopStop NoRegain;应用:机器人在当前指令行停止运行,程序运行指针停留在下一行指令,可以用 Start 键继续运行机器人,属于临时性停止。如果机器人停止期间被手动移动后,然后直接启动机器人,机器人将警告确认路径,如果此时采用参变量 NoRegain,机器人将直接运行。NoRegain:路径恢复参数。(switch)2024/3/6 周三程序运行停止指令程序运行停止指令StopP1P2P3区别:MoveL p2,v100,z30,tool0;Stop;(Break;)MoveL p3,v100,fine,tool0;StopBreak实例:Stop;2024/3/6 周三程
32、序运行停止指令程序运行停止指令ExitCycleExitCycle;应用:机器人在当前指令行停止运行,并且设定当前循环结束,机器人自动从主程序第一行继续运行下一个循环。2024/3/6 周三程序运行停止指令程序运行停止指令ExitCycle实例:PROC main()IF cyclecount=0 THEN CONNECT error_intno WITH error_trap;ISignalDI di_error,1,error_intno;ENDIF cyclecount:=cyclecount+1;!start to do something intelligent .ENDPROCTR
33、AP error_trap TPWrite“I will start on the next item”;ExitCycle;ENDTRAP2024/3/6 周三例行程序调用指令例行程序调用指令ProcCallCallByVar2024/3/6 周三例行程序调用指令例行程序调用指令ProcCallProcedure Argument;应用:机器人调用相应例行程序,同时给带有参数的例行程序中相应参数赋值。Procedure:例行程序名称。(Identifier)Argument:例行程序参数。(All)实例:Weldpipe1;Weldpipe2 10,lowspeed;Weldpipe3 10
34、speed:=20;2024/3/6 周三程序运行停止指令程序运行停止指令ProcCall限制:l机器人调用带参数的例行程序时,必须包括所有强制性参数。l例行程序所有参数位置次序必须与例行程序设置一致。l例行程序所有参数数据类型必须与例行程序设置一致。l例行程序所有参数数据性质必须为 Input,Variable 或 Persistent。2024/3/6 周三例行程序调用指令例行程序调用指令CallByVarCallByVar Name,Number;应用:通过指令中相应数据,机器人调用相应例行程序,但无法调用带有参数的例行程序。Name:例行程序名称第一部分。(string)Number:
35、例行程序名称第二部分。(num)实例:reg1:=Ginput(gi_Type);CallByVar“Proc”,reg1;2024/3/6 周三程序运行停止指令程序运行停止指令CallByVar限制:l不能调用带参数的例行程序。l所有被调用的例行程序名称第一部分必须相同,例如:proc1、proc2、proc3。l使用 CallByVar 指令调用例行程序比直接采用 ProcCall 调用例行程序需要更长时间。Error Handling:lERR_REFUNKPRC系统无法找到例行程序名称第一部分。lERR_CALLPROC系统无法找到例行程序名称第二部分。2024/3/6 周三程序运行停
36、止指令程序运行停止指令CallByVar实例比较: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%”proc”+NumToStr(reg1,0)%door_loc;CallByVar“proc”,reg1;指令 CallByVar 不能调用带有参数的例行程序。通过 RAPID 结构仍可以调用带有参数的例行程序。2024/3/6 周三计时指令计时指令ClkResetClkStartClkSto
37、p2024/3/6 周三计时指令计时指令ClkResetClkReset Clock;应用:将机器人相应时钟复位,常用于记录循环时间或机器人跟踪运输链。Clock:时钟名称。(clock)实例:ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock1;nCycleTime:=ClkRead(clock1);TPWrite“Last Cycle Time:”Num:=nCycleTime;2024/3/6 周三计时指令计时指令ClkStartClkStart Clock;应用:启动机器人相应时钟,常用于记录循环时间或机器人跟踪运输链。机器人时
38、钟启动后,时钟不会因为机器人停止运行或关机而停止计时。在机器人时钟运行时,指令 ClkStop 与 ClkReset 仍起作用。Clock:时钟名称。(clock)2024/3/6 周三计时指令计时指令ClkStart限制:l机器人时钟计时超过 4,294,967 秒,即 49 天17 小时 2 分 47 秒,机器人将出错。Error Handler 代码为 ERR_OVERFLOW。实例:ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock1;nCycleTime:=ClkRead(clock1);TPWrite“Last Cycle
39、Time:”Num:=nCycleTime;2024/3/6 周三计时指令计时指令ClkStopClkStop Clock;应用:停止机器人相应时钟,常用于记录循环时间或机器人跟踪运输链。Clock:时钟名称。(clock)实例:ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock1;nCycleTime:=ClkRead(clock1);TPWrite“Last Cycle Time:”Num:=nCycleTime;2024/3/6 周三中断指令中断指令CONNECTIDeleteISignalDI ISignalDOISignalA
40、I ISignalAOISleepIWatchIDisableIEnableITimer2024/3/6 周三中断指令中断指令IDeleteIDelete Interrupt;应用:将机器人相应中断数据与相应的中断处理程序之间的连接去除。Interrupt:中断数据名称。(intnum)实例:CONNECT intInspect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;IDelete intInspect;2024/3/6 周三中断指令中断指令IDelete限制:l执行指令 IDelete 后,当前中断数据的连接被完全清除,如需再次使用这个
41、中断数据必须重新用指令 CONNECT 连接至相应的中断处理程序。l在下列情况下,中断将被自动去除:重新载入新的运行程序。机器人运行程序被重置,程序指针回到主程序第一行(Start From Beginning)。机器人程序指针被移至任意一个例行程序第一行(Move pp to Routine)。2024/3/6 周三中断指令中断指令ISignalDIISignalDI Single,Signal,TriggValue,Interrupt;应用:使用相应的数字输入信号触发相应的中断功能,必须同指令 CONNECT 联合使用。Single:单次中断开关。(switch)Signal:触发中断信号
42、。(signaldi)TriggValue:触发信号值。(dionum)Interrupt:中断数据名称。(intnum)2024/3/6 周三中断指令中断指令ISignalDI 0 1 0 1 中断触发 中断触发实例:CONNECT int1 WITH iroutine1;ISignalDISignal di01,1,int1;CONNECT int2 WITH iroutine2;ISignalDI di02,1,int1;中断功能在单次触发触发后失效。中断功能持续有效,只有在程序重置或运行指令 IDelete 后才失效。2024/3/6 周三中断指令中断指令ISignalDI限制:l当一
43、个中断数据完成连接后,这个中断数据不允许再次连接到任何中断处理程序(包括已经连接的中断处理程序)。如果需要再次连接至任何中断处理程序,必须先使用指令 IDelete 将原连接去除。PROC main()CONNECT int1 WITH r1;ISignalDI di01,1,int1;WHILE TRUE DO ENDWHILEENDPROCPROC main()CONNECT int1 WITH r1;ISignalDI di01,1,int1;IDelete int1;ENDPROC2024/3/6 周三中断指令中断指令ISignalDOISignalDO Single,Signal,T
44、riggValue,Interrupt;应用:使用相应的数字输出信号触发相应的中断功能,必须同指令 CONNECT 联合使用。Single:单次中断开关。(switch)Signal:触发中断信号。(signaldo)TriggValue:触发信号值。(dionum)Interrupt:中断数据名称。(intnum)2024/3/6 周三中断指令中断指令ISignalDO实例:CONNECT int1 WITH iroutine1;ISignalDOSignal do01,1,int1;CONNECT int2 WITH iroutine2;ISignalDO do02,1,int1;0 1
45、0 1 中断触发 中断触发中断功能在单次触发触发后失效。中断功能持续有效,只有在程序重置或运行指令 IDelete 后才失效。2024/3/6 周三中断指令中断指令ISignalDO限制:l当一个中断数据完成连接后,这个中断数据不允许再次连接到任何中断处理程序(包括已经连接的中断处理程序)。如果需要再次连接至任何中断处理程序,必须先使用指令 IDelete 将原连接去除。PROC main()CONNECT int1 WITH r1;ISignalDO do01,1,int1;WHILE TRUE DO ENDWHILEENDPROCPROC main()CONNECT int1 WITH r
46、1;ISignalDO do01,1,int1;IDelete int1;ENDPROC2024/3/6 周三中断指令中断指令ISignalAIISignalAI Single,Signal,Condition,HighValue,LowValue,DeltaValue,DPos|DNeg Interrupt;Single:单次中断开关。(switch)Signal:触发中断信号。(signalai)Condition:中断触发状态。(aiotrigg)HighValue:最大逻辑值。(num)LowValue:最小逻辑值。(num)2024/3/6 周三中断指令中断指令ISignalAIDe
47、ltaValue:中断复位差值。(num)DPos:正值中断开关。(switch)DNeg:负值中断开关。(switch)Interrupt:中断数据名称。(intnum)ISignalAI Single,Signal,Condition,HighValue,LowValue,DeltaValue,DPos|DNeg Interrupt;2024/3/6 周三中断指令中断指令ISignalAI中断触发状态:lAIO_ABOVE_HIGH 模拟量信号逻辑值大于最大逻辑值(HighValue)。lAIO_BELOW_HIGH 模拟量信号逻辑值小于最大逻辑值(HighValue)。lAIO_ABOV
48、E_LOW模拟量信号逻辑值大于最小逻辑值(LowValue)。lAIO_BELOW_LOW模拟量信号逻辑值小于最小逻辑值(LowValue)。lAIO_BETWEEN模拟量信号逻辑值处于最小逻辑值(LowValue)与最大逻辑值(HighValue)之间。2024/3/6 周三中断指令中断指令ISignalAI中断触发状态:lAIO_OUTSIDE模拟量信号逻辑值大于最大逻辑值(HighValue)或小于最小逻辑值(LowValue)。lAIO_ALWAYS总是触发中断,与模拟量信号逻辑值处于最小逻辑值(LowValue)与最大逻辑值(HighValue)无关。应用:使用相应的模拟量输入信号触
49、发相应的中断功能,必须同指令 CONNECT 联合使用。2024/3/6 周三中断指令中断指令ISignalAI实例:CONNECT int1 WITH iroutine1;ISignalAISignal ai1,AIO_BETWEEN,2,1,0,int1;CONNECT int2 WITH iroutine2;ISignalAI ai2,AIO_BETWEEN,1.5,0.5,0,int1;CONNECT int3 WITH iroutine3;ISignalAI ai3,AIO_BETWEEN,1.5,0.5,0.1,int3;中断功能在单次触发触发后失效。中断功能持续有效,只有在程序重
50、置或运行指令 IDelete 后才失效。2024/3/6 周三中断指令中断指令ISignalAI判断中断条件。(Condition,HighValue,LowValue)TRUE如果没有参变量 DPos 与 DnegABS(CurrentValue-RefValue)DeltaValueRefValue:=CurrentValueFALSE如果使用参变量 DPos(CurrentValue-RefValue)DeltaValueFALSE如果使用参变量 DNeg(RefValue-CurrentValue)DeltaValueFALSEABS(CurrentValue-RefValue)Del