KUKA机器人MAKRO_TRIGGER程序用法分析

描述

DEF MAKROTRIGGER(Funktion :IN, Nummer :IN)

Trigger 1 : Wenn M97 dann  触发指令M97

-–圈数  KF1 EZ1 / SP1-

i1 ( EIN ) = i1 + 1

--–圈数更换电极后开始铣削零件1 EZ1 / SP1 SZ1(基本/对接) --

F95 = i2 = i1

F94 = F95 & !F287 + F94

--–圈数  更换电极后开始铣削第2部分EZ1 / SP1 SZ1(基本/对接) --

F97 = i3 = i1

F96 = F97 & F287 + F96

-–圈数. 普通铣削EZ1 / SP1 SZ1(基本/对接)-

F99 = i4 = i1

F98 = F99 + F98

-–圈数. 开始铣削零件1 EZ1 / SP1 SZ2(对接)-

F101 = i8 = i1

F100 = F101 & !F287 + F100

–圈数. 开始铣削第2部分EZ1 / SP1 SZ2(对接)-

F103 = i9 = i1

F102 = F103 & F287 + F102

–圈数. 普通铣削EZ1 / SP1 SZ2(对接)-

F105 = i10 = i1

F104 = F105 + F104

-圈数. 开始铣削零件1 EZ1 / SP1 SZ3(对接)-

F107 = i11 = i1

F106 = F107 & !F287 + F106

-圈数. 开始铣削第2部分EZ1 / SP1 SZ3(对接)-

F109 = i12 = i1

F108 = F109 & F287 + F108

-圈数.普通铣削EZ1 / SP1 SZ3(对接)-

F111 = i13 = i1

F110 = F111 + F110

-圈数. 开始铣削零件1 EZ1 / SP1 SZ4(对接)-

F113 = i14 = i1

F112 = F113 & !F287 + F112

-圈数. 开始铣削第2部分EZ1 / SP1 SZ4(对接)-

F115 = i15 = i1

F114 = F115 & F287 + F114

-圈数. 普通铣削EZ1 / SP1 SZ4(对接)-

F117 = i16 = i1

F116 = F117 + F116

M97 = (E718 & A718 +F312) & E834 & A834 & !F72 & !F73 & (F90 + F92)

E718 夹紧力到位,A718夹紧,F312在旋转测试时, E834铣刀转, A834铣刀电机转,F90移动焊钳铣削STEP激活, F92固定焊钳铣削STEP激活.

在SPS里的调用MAKROTRIGGER(0,0)

KUKA机器人

在SPS里的调用MAKROTRIGGER(0,0)

Funktion=0  Nummer=0

DEF MAKROTRIGGER(Funktion :IN, Nummer :IN)声明程序

INT FUNKTION, Nummer,I  

SWITCH Nummer   

CASE 0;   用于初始化

FOR I=1 TO 8    循环执行8个Trigger

MAKROTRIGGER(1,I)此时FUNKTION=1开始

ENDFOR

-------------------------------------------------------

CASE 1;

SWITCH FUNKTION FUNKTION=1

CASE 1; Init

Trigger 1 : Wenn M97 dann  

GLOBALINTERRUPTDECL 31 WHEN $CYCFLAG[97] DO MAKROTRIGGER(2,1)

使用中断程序激活MAKROTRIGGER(2,1)用来执行程序 1 FUNKTION=2用于之形成程序,Nummer=1 用于跳到当前步.  由M97激活TRIGGER程序                     

INTERRUPTON 31

CASE 2; FUNKTION=2   执行程序

-- Umdrehungen KF1 EZ1/SP1 --

i1 ( EIN ) = i1 + 1

VW(#COUNTER,TRUE,1,$COUNT_I[1] + 1)  执行VW计数器程序

-- Umdreh. Startfraesen Teil 1EZ1/SP1 SZ1 (Basic/Docking) --

F95 = i2 = i1

$FLAG[95] = $COUNT_I[2] == $COUNT_I[1]

F94 = F95 & !F287 + F94

$FLAG[94] = $FLAG[95] AND NOT $FLAG[287] OR $FLAG[94]

-- Umdreh. Startfraesen Teil 2EZ1/SP1 SZ1 (Basic/Docking) --

F97 = i3 = i1

$FLAG[97] = $COUNT_I[3] == $COUNT_I[1]

F96 = F97 & F287 + F96

$FLAG[96] = $FLAG[97] AND $FLAG[287] OR $FLAG[96]

-- Umdreh. Normal Fraesen EZ1/SP1 SZ1 (Basic/Docking) --

F99 = i4 = i1

$FLAG[99] = $COUNT_I[4] == $COUNT_I[1]

F98 = F99 + F98

$FLAG[98] = $FLAG[99] OR $FLAG[98]

ENDSWITCH  Trigger1程序结束

--------------------------------------------------------------

CASE 2; Trigger2

SWITCH FUNKTION

CASE 1; Init

Trigger 2 : Wenn M104 dann  

GLOBALINTERRUPTDECL 32 WHEN $CYCFLAG[104] DO MAKROTRIGGER(2,2)

MAKROTRIGGER(2,2)激活Trigger2

INTERRUPTON 32

CASE 2;

ENDSWITCH Trigger2程序结束

---------------------------------------------------------------

... ... ...

ENDSWITCH

END

总结:  简单的说MAKROTRIGGER是通过中断命令来实现功能的.

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分