ABB机器人调用例行程序方法

方法一:直接使用例行程序名调用例行程序

太过简单,不加以描述

方法二:%调用

%“proc name”%调用例行程序

代码演示:

MODULE CommonMain
    PROC main()
        VAR num pathnum:=0;
        VAR num targetnum:=0;
        VAR num targettest:=10;

        %"MoveRail"% 0,0;         !例行程序普通参数测试
        %"MoveRail"% 0\exact,0;   !例行程序带开关参数测试
        %"MoveRail"% 0,0\target:=targettest;   !例行程序带可选参数测试
        %"Rob1_Side"+NumToStr(pathnum,0)+"_"+NumToStr(targetnum,0)%;  !常见路径样式调用测试
    ENDPROC

    PROC MoveRail(num movedistance\switch exact,num transdis\switch Rhome\var num target)
        IF Present(exact) THEN
            TPWrite"2,exact";
        ELSE
            IF Present(target) THEN
                TPWrite"3,target:="\Num:=target;
            ELSE
                TPWrite"1,no exact";
            ENDIF
        ENDIF
    ENDPROC

    PROC Rob1_Side0_0()
       TPWrite"Rob1_Side0_0";
    ENDPROC
ENDMODULE

错误处理,可能存在加载错误

ERROR
    TEST ERRNO
    case ERR_LOADED;
        !报错处理
    default:
        !正常    

方法三:CallByVar指令

代码演示:

PROC CallPath(num TrackDistance, string PathName\switch home)
        VAR num NumLen:=0;
        VAR string ProcName;
        VAR string NumName;
        VAR num CGrdSpd:=0;
        VAR bool Check:=FALSE;
        VAR num MinTrack:=0;

        IF StrMatch(PathName,1,"Up")<(StrLen(PathName)+1) THEN
            MinTrack:=MinTrack_up;
        ELSEIF StrMatch(PathName,1,"Mid")<(StrLen(PathName)+1) THEN
            MinTrack:=MinTrack_mid;
        ELSEIF StrMatch(PathName,1,"Down")<(StrLen(PathName)+1) THEN
            MinTrack:=MinTrack_down;
        ENDIF

        NumLen:=StrLen(PathName)-DivideLen;
        ProcName:=StrPart(PathName, 1, DivideLen);
        NumName:=StrPart(PathName,DivideLen+1,NumLen);
        Check:=StrToVal(NumName, ProcNumber);

        IF TrackDistance+wobj_x_displace<MinTrack THEN
            rHome;
        ELSE
        IF Present(home)=TRUE THEN
            MoveRail TrackDistance, RailSpeed, wobj_x_displace\Rhome;
        ELSE
            MoveRail TrackDistance, RailSpeed, wobj_x_displace;
        ENDIF
            bladeWobj.uframe.trans.x:=(CarriagePositionActualCom/100-wobj_x_displace);
            CallByVar ProcName, ProcNumber;
        ENDIF
    ENDPROC

原文地址:https://www.cnblogs.com/xyb617/p/12106235.html

时间: 2024-10-21 21:15:26

ABB机器人调用例行程序方法的相关文章

C通过JNI反向调用JAVA程序方法

JNI反向调用JAVA程序 引述:上文讲过java线程---OS线程的关系,然后C怎样反向调用JAVA程序方法是我们这篇讲的重点 1.ThreadTest中添加run()方法 2.编译ThreadTest.java         javac ThreadTest.java    生成ThreadTest.class 3.javah ThreadTest    生成 ThreadTest.h文件 4.编写ThreadNew.c文件 #include<pthread.h>#include<

Js调用exe程序方法

(通过URL Protocol实现网页调用本地应用程序) 1.使用记事本(或其他文本编辑器)创建一个protocal.reg文件,并写入以下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Webshell] @="URL:Webshell Protocol Handler" "URL Protocol"="" [HKEY_CLASSES_ROOT\Webshell\Defaul

35_使用IO信号调用例行程序

原文地址:https://www.cnblogs.com/csflyw/p/11516952.html

三种例行程序(procdures,function,traps)的使用

一.列型程序的种类 例行程序有三种:Procedures, Functions 和Traps Procedure没有返回值,可用指令直接调用 Function有特定类型的返回值,必须通过表达式调用 Trap例行程序提供处理中断的方法.Trap例行 程序和某个特定中断连接,一旦中断条件满足,将被自动执行.Trap例行程序不能在程序中直接调用. 二.例行程序范围 例行程序范围是指例行程序可被调用的范围. 例行程序的声明前带有 Local 标识,则该例行程序可在所属模块内调用,否则为Global. 在

winForm调用WebApi程序

WinForm窗体创建的调用api的类 /// <summary> /// 调用api返回json /// </summary> /// <param name="url">api地址</param> /// <param name="jsonstr">接收参数</param> /// <param name="type">类型</param> ///

JAVA程序 写供别人调用的接口方法的时候 异常应该怎么处理?

要看出现的是哪种异常了.如果是使用某些定义好的函数,并且函数本身会产生异常处理方法一般两种:1.自己用try{}catch(){}语句捕获异常并处理.2.在定义接口的后面写上throw Exception.把异常抛出让使用接口的人处理异常.两种方法都可以.但如果是RuntimeException异常,那就是自己程序某些地方写错了,那你就必须找到并修改程序.JAVA程序 写供别人调用的接口方法的时候 异常应该怎么处理?,布布扣,bubuko.com

热键调用三方程序 --- 实用方法

1. 问题或需求描述:热键调用三方程序 2.解决方法:使用 AutoIt3 脚本语言,可以快速编写出热键主调程序. 3.例如:利用热键调用三方程序,实现特定需要.例程中,我们实现按 "F4"键时调起三方程序,实现清除电脑上的所有蓝牙连接等功能. au3代码: If WinExists("firswof-clearbt") Then Exit GUICreate("firswof-clearbt") HotKeySet ( "{ESC}&

android native HAL程序 java程序 linux kernel打印调用栈的方法

android native HAL程序 java程序 linux kernel打印调用栈的方法 关于android java打出调用栈的方法 1)方法一:refs:frameworks/base/services/java/com/android/server/ActivityManagerService.javastartProcessLocked(){Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "amProcessStart&quo

调用控制台程序的方法以及注意事项

我们常常用遇到调用第三方库,但是该库文件没有做好内存管理,会发生内存泄露的情况. 这个时候我们可以在控制台中调用该库,然后在代码中调用控制台程序,以此控制台的来管理内存. public class ConsoleMethod { private static int _time = 10 * 60 * 1000; public static string InvokeConsole(string parameter, string programName, string programAddre