KUKA机器人MAKRO_TRIGGER程序用法分析

DEF MAKROTRIGGER(Funk ti on :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 + F96 -–圈...

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机器人MAKRO_TRIGGER程序用法分析
文章插图
在SPS里的调用MAKROTRIGGER(0,0)
Funktion=0Nummer=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
【KUKA机器人MAKRO_TRIGGER程序用法分析】 $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]
ENDSWITCHTrigger1程序结束
--------------------------------------------------------------
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是通过中断命令来实现功能的.

    推荐阅读