机器人"钳"功能的设置原理

[复制链接]
查看67 | 回复0 | 2025-3-30 15:11:18 | 显示全部楼层 |阅读模式
>

工具钳的设置:

钳德设置最后保存在config.DAT:

:

1的设置: 夹具的设置- 打开-A580 关闭 A579 类型2脉冲式

DEF_ZANGE[1]={TYP 2,A_AUF 580,A_ZU 579,E_AUF 0,E_ZU 0,A_NAME_AUF[] "Spanngr_11_AUF",A_NAME_KLEM1[] "Ventil_YP1R",A_NAME_ZU[] "Spanngr_11_ZU",A_NAME_KLEM2[] "Ventil_YP1V",E_NAME_KLEM1[] "undefiniert",E_NAME_KLEM2[] "undefiniert"}

2的设置: 吸盘得设置- 反吹A618 吸气 A617

DEF_ZANGE[7]={TYP 0,A_AUF 618,A_ZU 617,E_AUF 0,E_ZU 0,A_NAME_AUF[] "Saugkreis_1_AUF",A_NAME_KLEM1[] "Ventil_YP7R",A_NAME_ZU[] "Saugkreis_1_ZU",A_NAME_KLEM2[] "Ventil_YP7V",E_NAME_KLEM1[] "V_Insel_SD7R",E_NAME_KLEM2[] "V_Insel_SD7V"}

16的设置:伺服焊钳点动 类型是6

DEF_ZANGE[16]={TYP 6,A_AUF 719,A_ZU 720,E_AUF 0,E_ZU 0,A_NAME_AUF[] "Tastend_EZ1_AUf",A_NAME_KLEM1[] "EZ1",A_NAME_ZU[] "Tastend_EZ1_ZU",A_NAME_KLEM2[] "EZ1",E_NAME_KLEM1[] "undefiniert",E_NAME_KLEM2[] "undefiniert"}

19的设置: 伺服焊钳打开夹紧 类型是1静态式

DEF_ZANGE[19]={TYP 1,A_AUF 717,A_ZU 718,E_AUF 717,E_ZU 718,A_NAME_AUF[] "EZ1_AUF",A_NAME_KLEM1[] "EZ1",A_NAME_ZU[] "EZ1_ZU",A_NAME_KLEM2[] "EZ1",E_NAME_KLEM1[] "EZ1",E_NAME_KLEM2[] "EZ1"}

 

TYP 钳功能的触发类型

0 没有用钳, 1静态输出,2是脉冲输出,3 IBS静态输出,4IBS脉冲输出,6输入/输出伺服焊钳(点动控制)

 



VW程序进行诠释:

SPS程序调用

VW (#VW_ZANGE,TRUE)

   VW程序调用SUB_ZANGE( )  

IF (TEMP_ZANGEN_FUNKT==1) THEN 工具钳的AUF按钮被按动

VW (#GUN,TRUE,AKT_ZANGE,1 ) 调用GUN程序

ENDIF

IF (TEMP_ZANGEN_FUNKT==2) THEN -工具钳的ZU按钮被按动

VW (#GUN,TRUE,AKT_ZANGE,0 ) 调用GUN程序

ENDIF

   

DEF  GUN (GUN_NO :IN,OPEN_GUN :IN ) 

INT GUN_NO,OPEN_GUN

SWITCH  DEF_ZANGE[GUN_NO].TYP  -对钳工具的类型

CASE 1,3 -钳的类型是1,3

IF OPEN_GUN>0 THEN 钳打开

IF DEF_ZANGE[GUN_NO].A_AUF>0 THEN  -钳打开上有地址

$OUT[DEF_ZANGE[GUN_NO].A_AUF]=TRUE 发出输出

ENDIF  静态输出用于伺服焊钳之类控制

IF DEF_ZANGE[GUN_NO].A_ZU>0 THEN -钳夹紧上有地址

$OUT[DEF_ZANGE[GUN_NO].A_ZU]=FALSE

ENDIF

ELSE 钳打开没有就是夹紧

IF DEF_ZANGE[GUN_NO].A_AUF>0 THEN

$OUT[DEF_ZANGE[GUN_NO].A_AUF]=FALSE

ENDIF

IF DEF_ZANGE[GUN_NO].A_ZU>0 THEN

$OUT[DEF_ZANGE[GUN_NO].A_ZU]=TRUE

ENDIF

ENDIF

CASE 2,4 -钳的类型是2,4

IF OPEN_GUN>0 THEN 钳打开

IF DEF_ZANGE[GUN_NO].A_ZU>0 THEN

$OUT[DEF_ZANGE[GUN_NO].A_ZU]=FALSE

ENDIF

IF DEF_ZANGE[GUN_NO].A_AUF>0 THEN

PULSE ($OUT[DEF_ZANGE[GUN_NO].A_AUF],TRUE,PULS_TIME )-脉冲触发输出信号

ENDIF  -脉冲多用于夹抓

ELSE 钳打开没有就是夹紧

IF DEF_ZANGE[GUN_NO].A_AUF>0 THEN

$OUT[DEF_ZANGE[GUN_NO].A_AUF]=FALSE

ENDIF 

IF DEF_ZANGE[GUN_NO].A_ZU>0 THEN

PULSE ($OUT[DEF_ZANGE[GUN_NO].A_ZU],TRUE,PULS_TIME ) -脉冲触发输出信号

ENDIF

ENDIF

DEFAULT

ENDSWITCH

END

 



TYP类型6: -专为伺服焊钳的点动使用

SPS程序中直接使用:

VW (#VW_ZANGE,TRUE)

  SUB_ZANGE( )       

IF (DEF_ZANGE[AKT_ZANGE].TYP == 6) THEN -类型号是6

If FL_GUN_FCT THEN 激活钳号

IF DEF_ZANGE[AKT_ZANGE].A_AUF > 0 THEN  - 钳工具点有地址

$OUT[DEF_ZANGE[AKT_ZANGE].A_AUF]=GUN_OPEN -1次钳开就发1次输出点动控制

ENDIF  -发出A719

IF DEF_ZANGE[AKT_ZANGE].A_ZU > 0 THEN

$OUT[DEF_ZANGE[AKT_ZANGE].A_ZU]=GUN_CLOSE

ENDIF --发出A720

FL_GUN_FCT=FALSE

ENDIF

 

钳工能用于网络站的快换开关,30,31,32

;FOLD Docking bei Profinet

IF $OUT[O_R_Hand] AND $COULD_START_MOTION AND NOT $OUT[O_R_Proz_akt] AND $FLAG[F_m_Profinet] THEN

-A11手动-机器人驱动给入-没有A4039-F556带钳控制功能-

  IF (DEF_ZANGE[30].Typ==1) AND (DEF_ZANGE[30].A_AUF>0) AND (DEF_ZANGE[30].A_ZU>0) AND (DEF_ZANGE[30].E_AUF>0) THEN

-想使用钳关闭网络,钳的类型必须是1-有钳输出点打开/关闭的设置-有钳输入点打开的设置

    IF ($OUT[DEF_ZANGE[30].A_AUF]==TRUE) THEN -

      i=DEF_ZANGE[30].E_AUF -保存要开关的站地址-

      ret=99

      IF (SZAxConfig>0) AND DOCK_SZ THEN –SZAxConfig带几个外部轴焊钳-

        $softplcint[1]=0

      ENDIF 

      IF (SZAxConfig>0) AND DOCK_NZ THEN

        $softplcint[4]=0

      ENDIF 

      IF (SZAxConfig>0) AND DOCK_CZ THEN

        $softplcint[6]=0

      ENDIF       

      Ret=ioctl("PNIO-CTRL",60,i) -打开站-

      SWITCH ret

        CASE 0  ;     连接合格

          SyncMoveMessage(91,#NotifyMsg)

        CASE 1  ;   连接超时   

          SyncMoveMessage(92,#QuitMsg)

        CASE 2  ; 连接参数错误

          SyncMoveMessage(93,#QuitMsg)

        DEFAULT

      ENDSWITCH

      $OUT[DEF_ZANGE[30].A_AUF]=FALSE   -关闭输出开站-

    ENDIF 

  ENDIF  

-网络关站-

  IF (DEF_ZANGE[30].Typ==1) AND (DEF_ZANGE[30].A_AUF>0) AND (DEF_ZANGE[30].A_ZU>0) AND (DEF_ZANGE[30].E_ZU>0) THEN

    IF ($OUT[DEF_ZANGE[30].A_ZU]==TRUE) THEN

      i=DEF_ZANGE[30].E_ZU

      ret=99

      IF (SZAxConfig>0) AND DOCK_SP THEN

        $softplcint[1]=ActDockAx(1)

      ENDIF 

      IF (SZAxConfig>0) AND DOCK_NZ THEN

        $softplcint[4]=ActDockAx(1)

      ENDIF

      IF (SZAxConfig>0) AND DOCK_CZ THEN

        $softplcint[6]=ActDockAx(1)

      ENDIF      

      Ret=ioctl("PNIO-CTRL",50,i)

      SWITCH ret

        CASE 0  ; ioctl OK

          SyncMoveMessage(90,#NotifyMsg)

        CASE 1  ; ioctl Timeout

          SyncMoveMessage(92,#QuitMsg)

        CASE 2  ; ioctl falscher Parameter

          SyncMoveMessage(93,#QuitMsg)

        DEFAULT

      ENDSWITCH

      $OUT[DEF_ZANGE[30].A_ZU]=FALSE

    ENDIF  

  ENDIF



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则