Hallo,
ich habe versucht, den Programmoverride OP-Mode abhängig zu setzen:
! ########### Overide setzen ######################
! Speedrefresh setzt nur wenn Wert < als am Flexpendant!!!!!!!
PROC rSetOverRide(NUM nNewOverride, \switch Set | switch Restore )
IF Present(Set) AND (NOT Present(Restore)) THEN
! aktuellen Override speichern
nAcOverride:= CSpeedOverride();
! Override nur im AUTOMATIK-Betrieb setzen
TEST OpMode()
CASE OP_AUTO:
SpeedRefresh nNewOverride;
! in TRAP Speedrefresh wird Speed zeitzyklisch auf gesetzt nAckSPEED gestetzt!
nAckSPEED:=nNewOverride;
CASE OP_MAN_PROG: ! Einrichtbetrieb max. 250mm/sec
SpeedRefresh 100;
! in TRAP Speedrefresh wird Speed zeitzyklisch auf gesetzt nAckSPEED gestetzt!
nAckSPEED:=100;
CASE OP_MAN_TEST: ! Einrichtbetrieb 100%
SpeedRefresh 25;
! in TRAP Speedrefresh wird Speed zeitzyklisch auf gesetzt nAckSPEED gestetzt!
nAckSPEED:=25;
ENDTest
ENDIF
IF Present(Restore) AND (NOT Present(Set)) THEN
SpeedRefresh nAcOverride;
ENDIF
ENDPROC
Die Prozedur wird bei Programmstart im Initialisierungsteil aufgerufen. Setze ich den Roboter am Flexpendat auf 100% und startet das Programm, bleibt der Override auf 100%, auch wenn per Programm auf 25% gesetzt wird.
Nun habe ich eine Zeitinterrupt definiert, der alle 2 Sekunden folgende TRAP-Routine aufruft:
TRAP speed_refresh
SpeedRefresh nAckSPEED;
TPWRITE " Refreshed oder was??" \Num:=nAckSPEED;
ENDTRAP
Der TRAP läuft zyklisch, den Override beeinflusst das in keinster Weise, weder Anzeige am Pendant noch die Geschwindigkeit am Robo! Die Anweisung SpeedRefresh scheint ohne Wirkung zu sein??????? (IRC5 RW 5.12)
Mir ist klar, das ich die vom Flexpendant vorgegebene Geschwindigkleit dominiert!
Wie macht man beim ABB mit dieser Einschränkung Suchfahrten mit stets konstanter Geschwindigkeit ??
Habe eine Bewegungstask, eine NoMotion-Task(NORMAL) und eine zykl. Task (SEMISTATIC) im System!
Den Speedrefresh mach ich in der Motion-Task!
Danke für Eure Hilfe
dust2