示教器指令集自定义指令及MMC.cfg参数解释

[复制链接]
查看173 | 回复0 | 2024-10-23 17:00:48 | 显示全部楼层 |阅读模式

1.例如编写了下文的画圆指令

MoveCircle(robtarget pCenter,num Radius,speeddata Speed,zonedata Zone,PERS tooldata Tool\PERS wobjdata WObj)

(包括5个参数和一个可选参数\wobj)。

 PROC MoveCircle(robtarget pCenter,num Radius,speeddata Speed,zonedata Zone,PERS tooldata Tool\PERS wobjdata WObj)        VAR robtarget p1;        VAR robtarget p2;        VAR robtarget p3;        VAR robtarget p4;
        IF Radius<2 THEN ErrRaise "ERR_CIRCLE",errorid,ERRSTR_TASK,"Radius",NumToStr(Radius,2),"2",ERRSTR_CONTEXT;        ENDIF
p1:=pCenter;        p2:=pCenter;        p3:=pCenter;        p4:=pCenter;        p1.trans:=pCenter.trans+[0,Radius,0];        p2.trans:=pCenter.trans+[Radius,0,0];        p3.trans:=pCenter.trans+[0,-Radius,0];        p4.trans:=pCenter.trans+[-Radius,0,0];        MoveL p1,Speed,Zone,Tool\WObj?WObj;        MoveC p2,p3,Speed,z10,Tool\WObj?WObj;        MoveC p4,p1,Speed,Zone,Tool\WObj?WObj;    BACKWARD MoveL p1,Speed,Zone,Tool\WObj?WObj;    ERROR        IF ERRNO=ERR_CIRCLE THEN            TPWrite "The radius is too small";            RAISE ;        ENDIFENDPROC


2.希望能在示教器的插入指令界面新建一个新的指令集Customer,并在其中显示MoveCirle,如何实现。

可以编写如下MoveCircle_MMC.cfg文件并加载,或者直接在原有系统的MMC.cfg文件中修改。

Man-machine Communication (MMC)配置文件主要用于示教器界面上的配置。相关解释如下:

MMC:CFG_1.0::#MMC_PALETTE_HEAD:  -name "Customer" -type "MMC_Cus"  # 在示教器指令集创建新的组,名称为Customer,类型为自定义的MMC_Cus## MMC_Cus 类型实质为MMC_PALETTE的化名,所有指令组均为MMC_PALETTE的化名MMC_Cus = MMC_PALETTE:  -name MoveCircle  # 该指令组下面要显示的指令名称为MoveCircle#MMC_REAL_ROUTINE:  -name MoveCircle -default_struct 1,1,1,1,1,0 -hidden  # 默认插入指令参数,其中MoveCircle为具体RAPID中的自定义routine  # default struct后的数值表示参数是否显示,  # MoveCircle(robtarget pCenter,num Radius,speeddata Speed,zonedata Zone,PERS tooldata Tool\PERS wobjdata WObj)  # 有5个参数和一个可选参数,按照序号,要现实的值为1,不显示的为0.  # 如果有互斥参数,例如 \switch on|switch off,不显示为0,显示on为1,显示off为2  # -hidden 表示该指令不会出现在ProcCall中   # -hidden 起效,需要P启动或者I启动# MMC_REAL_PARAM:   # MoveCircle指令插入时的标识符默认名称   # name后为指令_参数   # name_rule包括   # SEQ,序列化,例如前面点位名称是p10,则会下一个自动新建p20   # CUR,使用当前的工具,工件坐标系和load   # LAST,使用上一次的值,如果没有就使用默认def_name   # 在使用SEQ或者CUR name_rule后,method可选为   # hirule_robtarget - robtarget symbol name increment value    # hirule_jointtarget - jointtarget symbol name increment value   # hirule_tooldata - current tooldata   # hirule_wobjdata - current wobjdata   # hirule_tloaddata - current tload  -name MoveCircle_pCenter -name_rule SEQ -method hirule_robtarget  -name MoveCircle_Radius -name_rule LAST def_name 10  -name MoveCircle_Speed -name_rule LAST -def_name v1000  -name MoveCircle_Zone -name_rule LAST -def_name z50  -name MoveCircle_Tool -name_rule CUR -method hirule_tooldata  -name MoveCircle_WObj -name_rule CUR -method hirule_wobjdata#MMC_INSTR_WITH_WOBJ: # 自定义指令中如果带有可选参数\wboj, # 如果当前使用的不是wobj0,则会自动指令后添加\wobj-name MoveCircle -param_nr 6

********************************

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则