黑子船长的机器人
认证:普通会员
作者动态
KUKA机器人与西门子S7-1200 PLC同时进行Profinet和Ethernet IP通讯(第一篇)
03-13 11:48
西门子PLC 与 KUKA 机器人通过西门子偶合器进行Profinet通讯配置
03-12 15:56
FANUC机器人与西门子S7-1200 Ethernet/IP通讯
03-11 13:52
KUKA机器人之俄罗斯方块——工作游戏两不误
03-01 14:13
KUKA机器人和COGNEX In-Sight IS8XXX系列相机Profinet的通讯
02-29 10:35

KUKA 机器人UserTech 联机表格--自定义指令

KUKA机器人自定义按键输出信号置位复位(按键状态切换)

KUKA机器人自定义4个工艺按键

这里我们通过指令的方式,实现有PLC协调多台机器人产线的工作区域的宏程序,通过指令直接调用相关的逻辑处理程序。一:工作区域逻辑程序(简化),logic.src文件。

DEF  Logic ( )
;Author : CaptianBlack
;Version: 1.0
;Tele   : 136-4553-4742
END

;INITIALISATION PLC 
 GLOBAL DEF  INIT_EXT ( )
 ;SETTING FREE AREAS
 O_AREL_1=TRUE
 O_AREL_2=TRUE
 O_AREL_3=TRUE
END

;AREA REQUEST LOGIC 
 GLOBAL DEF  AREA_REQ (AREA :IN )
 INT AREA
  SWITCH  AREA
  CASE 1
   O_AREL_1=TRUE
   WAIT FOR I_ARDY_1       
   O_AREL_1=FALSE
  CASE 2
   O_AREL_2=TRUE
   WAIT FOR I_ARDY_2     
   O_AREL_2=FALSE
  CASE 3
   O_AREL_3=TRUE
   WAIT FOR I_ARDY_3      
   O_AREL_3=FALSE
   DEFAULT
 ENDSWITCH 
END

;AREA RELEASE LOGIC 
 GLOBAL DEF  AREA_REL (REL :IN )
 INT REL
 $ADVANCE=0
 SWITCH  REL
   CASE 1
    O_AREL_1=TRUE
   CASE 2
    O_AREL_2=TRUE
   CASE 3
    O_AREL_3=TRUE
   DEFAULT          
 ENDSWITCH
END
  • 信号变量:相关信号变量声明O_AREL_1:机器人输出信号,低位时表示请求进入或已在工作区域内,高位时表示在区域外;I_ARDY_1:来自PLC的输入信号,表示区域准备好,准许机器人进入工作区域;
  • 工作区域逻辑关系:工作区域逻辑描述的是线体、输送链、工作台等设备区域是否就绪的状态;当循环开始,机器人请求进入区域1,O_AREL_1=TRUE,当区域暂未就绪,机器人处于等待时,消息栏生成消息提示;当工作区域1就绪(线体搬送完成,工装完成定位),来自PLC信号I_ARDY_1=TRUE, 机器人得以进入;当机器人进入区域1,保持O_AREL_1=TRUE;当工作完成,机器人退出工作区域1, O_AREL_1=FALSE;  
  • 宏程序:工作区域请求:AREA_REQ(AREA:IN), 形参AREA为请求区域号(1-3);工作区域释放:AREA_REL(REL:IN), 形参AREA为将要释放的区域号(1-3) 

二、Logic.KFD,KFD文件

; LOGIC INLINEFORM
DEFTP LOGIC={SOC TRUE , SOT FALSE} 

; Declaration parameters
DECL PARAM P_AREA_REQ={shortcut[] "AREA REQUEST=",UNIT[] " ",VALUE {REAL: MIN 1,MAX 32,STEP 1 ,DEFAULT 1,autolimit TRUE}}
DECL PARAM P_AREA_REQ_CM={shortname[] "AREA REQUEST WITH:", shortcut[] "AR", UNIT[] " ", VALUE {NAME: default[] "NONE"}}
DECL PARAM P_AREA_REL={shortcut[] "AREA RELEASE=",UNIT[] " ",VALUE {REAL: MIN 1,MAX 32,STEP 1 ,DEFAULT 1,autolimit TRUE}}

; Declaration folds
DECL FOLD F_AREA_REQ[1]
F_AREA_REQ[1]="AREA_REQ (%P_AREA_REQ )"
DECL FOLD F_AREA_REL[1]
F_AREA_REL[1]="AREA_REL (%P_AREA_REL )"

; Declaration inline form
DECL INLINEFORM AREA_REQ={FOLD[1] F_AREA_REQ, PARAM[1] P_AREA_REQ, PARAM[2] P_AREA_REQ_CM}
DECL INLINEFORM AREA_REL={FOLD[1] F_AREA_REL, PARAM[1] P_AREA_REL, PARAM[2] P_AREA_REQ_CM}

ENDTP

三、SmartHMI.User.Config文件

;---------Captian TECHNOLOGY PART----------
  <MenuRoot SystemName="CommandMenu">
   <MenuFolder DisplayName="MenuBar#Captian_Technology">
    <MenuFolder DisplayName="MenuBar#Captian_Technology" MergeOrder="1100">
      <MenuFolder DisplayName="MenuBar#User_Logic" MergeOrder="100">
        <MenuItem DisplayName="MenuBar#Area Request" MergeOrder="100">
          <CommandCall Target="LegacyLoader.InvokeModuleProc">
            <Argument Name="PlugInName">INLINEFORM</Argument>
            <Argument Name="ProcID">2011</Argument>
            <Argument Name="ParamList">KUKATPUSER;logic;AREA_REQ</Argument>
          </CommandCall>
        </MenuItem>
        <MenuItem DisplayName="MenuBar#Area Release" MergeOrder="110">
          <CommandCall Target="LegacyLoader.InvokeModuleProc">
            <Argument Name="PlugInName">INLINEFORM</Argument>
            <Argument Name="ProcID">2011</Argument>
            <Argument Name="ParamList">KUKATPUSER;logic;AREA_REL</Argument>
          </CommandCall>
        </MenuItem>
      </MenuFolder>
   </MenuFolder>
  </MenuFolder>
 </MenuRoot>
</KukaRoboter.SmartHMI.Menu>
;---------Captian TECHNOLOGY PART END-------------

至此将相应文件放到相应目录下,以重新读入文件的方式重启,就好了。抱歉了各位,实在懒得逐行介绍了,大家自行理解吧,船长有点累了。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 1
收藏 2
关注 13
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧