$DRIVES_ON - 驱动装置接通
如果在此输入端上施加了持续至少 20 毫秒的高脉冲,则上级控制系统会接通机器人驱动装置。
$USER_SAF? - 操作人员防护装置 / 防护门该输出端在打开护栏询问开关(运行方式 AUT)或放开确认开关(运行方式 T1或 T2)时复位。
1.KRC-PLC?? BEREIT ----------1- O_R_Bereit=9 A9机器人准备就绪$RC_RDY1 $OUT[9]
2.KRC-PLC?? RK9?? ----------1- O_R_Auto=12$I_O_ACTCONF$OUT[12]机器人自动模式
3.KRC-PLC RK100 ----------1-O_R_RK100=10? A10机器人控制系统启动RK100=10 $OUT[RK100]=MERK1 ,MERK1=$ALARM_STOP AND $USER_SAF$ALARM_STOP:报警停止,$USER_SAF:安全门监视用户安全? $USER_SAF $OUT[4059]机器人安全信息满足。4.KRC-PLC?? PF0???----------1 -$OUT[PF0]=(P0_MERKER OR (DownLoadActive AND ($Mode_OP==#EX))) AND$IN_HOME -$IN_HOME :$OUT[4036]–在FOLGE程序的首部存储当前的轴坐标为初始点VW(#VW_AUE_WAIT,TRUE )
5.PLC-KRC?? ANTEIN?----------2-I_R_Ant_Ein=10驱动接通 E10
6.KRC-PLC?? SAK? ----------3-O_R_SAK=16在轨迹上$NEAR_POSRET:$OUT[16]
7.PLC-KRC?? FLGNO?----------4 -PRG_NR $IN[1]? TO $IN[8]程序号给入
8.KRC-PLC?? FLGNO?----------5-PRG_NR_REFL$OUT[1]? TO $OUT[8]程序号返回
9.PLC-KRC?? SRB?----------6-程序启动I_R_SRB=9 -E9
10.KRC-PLC?? PF0?----------7 -机器人不在原位
11.KRC-PLC?? LPTK ----------8–程序到达最后一点LPKT=14-在FOLGE程序中最后执行VW (#VW_AUE_END,TRUE)发出程序在最后1点,等待一段时间后再关闭。
12.PLC-KRC?? FLGNO ----------9-PRG_NR关闭
13.KRC-PLC?? FLGNO ----------10- PRG_NR_REFL关闭
14.KRC-PLC?? LPTK?----------11- 机器人最后一点关闭
15.KRC-PLC?? PF0?----------12- 机器人在原位
那么根据机器人外部自动顺序我们的PLC程序应如何处理呢?如下:
FB200_ROB?的SCL程序:
xS_Start:= (bVisuTasten = Byte#6); -WINCC手动驱动按钮
R_TRIG_Antriebe(CLK:= xS_Start);?-激活系统在手动模式使机器人有外部驱动
IF R_TRIG_Antriebe.Q? THEN
xAnwAntrEin???:= True;
END_IF;
TOF_AntriebeEin(In := ((xAnwAntrEin AND xK25_FrHand) OR? xK26_FrAuto)-系统在自动模式下或
-手动给驱动的情况
AND (PF0 OR _ST_ROB.A16_SAK)–机器人在零点或在轨迹上
AND RoboterBereit–机器人准备就绪A9
AND_ST_ROB.A12_Automatik-机器人在自动模式
AND _ST_ROB.A10_FRG_Stellglieder–机器人允许控制
AND NOT AnwORob–没有又选择不带机器人
AND NOT xAntrVerz -驱动有了为1,判断驱动是否已经接通(用于防止闪断)
,PT:= T#750ms);-延时断开750ms
条件不满足时,如果机器人的A10RK100没有的话, 使能断开后要 在750Ms后再次给E10才能使机器人有使能 。
下降沿的控制:---用于监控一旦一个条件没有满足就将激活下降沿。
F_TRIG_AntriebeEin(CLK := ((xAnwAntrEin AND xK25_FrHand) OR?xK26_FrAuto)
AND (PF0 OR _ST_ROB.A16_SAK)
AND RoboterBereit
AND _ST_ROB.A12_Automatik
AND _ST_ROB.A10_FRG_Stellglieder
AND NOT AnwORob
AND NOT xAntrVerz);??
例如:断开安全门时 激活下降沿。
IF F_TRIG_AntriebeEin.Q THEN?? 出现条件不满足将激活判断变量?
xAntrVerz := True;?
END_IF;
例如:断开安全门时
TON_AntriebeEin(IN := xAntrVerz AND NOT TOF_AntriebeEin.Q ,PT := T#2s)-----监视接通
当条件再次满足时需要2S的时间才能再次接通。
当需要再次接通时需要等待2S之后
IF TON_AntriebeEin.Q THEN? 用于接通
xAntrVerz := False;
END_IF;
AntriebeEin := TOF_AntriebeEin.Q;-发出E10 给机器人驱动接通