MakroTrigger
在SPS.SUB的初始化中激活MakroTrigger里的8个GLOBAL INTERRUPT DECL(中断指令).
MakroTrigger宏包含8个预定义的触发器,尚未包含任何语句。 用户可以根据特定要求编写ram语句。 所有触发器均在Submit解释器的一个周期内执行。 触发器允许对事件进行非常快速的反应,例如 如果在输入处收到错误消息。
触发器默认情况下处于关闭状态。 为了接通触发器,必须对接通条件进行编程。 优先级31 ... 38为触发器保留。 触发器不能删除,也不能插入其他触发器。 1.将光标置于包含要编辑的触发器的行中。 2.按更改功能键打开触发器的嵌入式表单。 3.以内联形式编写接通条件。 单击“确定”保存。
4.编写要为此触发器执行的指令:用Cmd OK保存每个指令。
在升级的情况下,已经编程的接通条件和触发指令将传输到宏的SRC文件中。
1 2 3 操作员。 如果选择了操作数EIN(ON)和AUS(OFF),则输入框不可用。 布尔操作数(条件) EIN(开),AUS(关),E,A,M,F,T,S 操作数的编号。 如果选择了操作数EIN(ON)和AUS(OFF),则输入框不可用。 值的范围:取决于操作数 例如:
接通条件:M97设置为TRUE。
注意:触发器对边沿FALSE-> TRUE作出反应。 如果在触发器评估时输入已经处于活动状态,则不满足接通条件
大众标准例子:
DEF MAKROTRIGGER(Funktion :IN, Nummer :IN) Trigger 1 : Wenn M97 dann -–圈数 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) 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
GLOBAL INTERRUPT DECL 31 WHEN $CYCFLAG[97] DO MAKROTRIGGER(2,1) 使用中断程序激活MAKROTRIGGER(2,1)用来执行程序 1 FUNKTION=2用于之形成程序,Nummer=1 用于跳到当前步. 由M97激活TRIGGER程序 INTERRUPT ON 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 1 EZ1/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 2 EZ1/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
GLOBAL INTERRUPT DECL 32 WHEN $CYCFLAG[104] DO MAKROTRIGGER(2,2) MAKROTRIGGER(2,2)激活Trigger2 INTERRUPT ON 32 CASE 2;
ENDSWITCH Trigger2程序结束
--------------------------------------------------------------- ... ... ... ENDSWITCH END
MAKRO_TRIGGER程序分析
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)