Herunterladen Inhalt Inhalt Diese Seite drucken

Bosch Rexroth IndraMotion MLC 10VRS Die Ersten Schritte Seite 86

Vorschau ausblenden Andere Handbücher für Rexroth IndraMotion MLC 10VRS:
Inhaltsverzeichnis

Werbung

84/143
Bosch Rexroth AG
Erste Schritte - Robot-Control mit MLC
JUMP
LoopMain
; proceed with main loop
END
MOVE TO
Home
; move to home position (point 'Home')
PROGRAM_END
;------------------------------------------------------------------------------------
SUBROUTINE
PickB1()
BEGIN
SYNCHRON
B1
; start synchronisation to pick belt with next movement
MOVE VIA
PickApp
; blending move via point 'PickApp' to synchronize to pick belt
MOVE TO
Pick
; stopping move to point 'Pick' synchronous to pick belt
;------ * no blending from here * ------
WAIT
0.05
IF
rVel_i > 0
THEN BEGIN
V
= rVel_i
; get commanded velocity from PLC
END
IF
(rAccel_i > 0)
THEN BEGIN
A
= rAccel_i
; get commanded acceleration from PLC
END
PickDep = Pick
; calculate intermediate point 'PickDep'
PickDep.Kz = Pick.Kz + 50
PickDepAsyn =
POS
; calculate intermediate point 'PickDepAsyn' (from actual Pos.)
PickDepAsyn.Kz = Pick.Kz + 100
PickDepAsyn.kpk = 0
Place = xPlacePt_i
IF
B1 > MOD_VAL_B1
THEN BEGIN
bSyncReq_B1 = TRUE
END
ELSE BEGIN
bSyncReq_B1 = FALSE
END
IF
Place.kpl > B2
THEN BEGIN
Place.kpl = Place.kpl - MOD_VAL_B2
END
PlaceApp = Place
PlaceApp.Kz = Place.Kz + 100
PlaceDep = Place
PlaceDep.Kz = Place.Kz + 50
;------ * no blending till here * ------
MOVE VIA
PickDep
MOVE VIA
PickDepAsyn
SYNCHRON_END
B1
IF
bSyncReq_B1 = TRUE
SYNC
B1 >= MOD_VAL_B1
END
RETURN
SUB_END
;--------------------------------------------------------------------------------------
SUBROUTINE
PlaceB2()
BEGIN
SYNCHRON
B2
MOVE VIA
PlaceApp
MOVE TO
Place
;------ * no blending from here * ------
WAIT
0.05
IF
rVel_i > 0
THEN BEGIN
V
= rVel_i
END
IF
(rAccel_i > 0)
THEN BEGIN
A
= rAccel_i
END
PlaceDepAsyn =
POS
PlaceDepAsyn.Kz = Place.Kz + 100
PlaceDepAsyn.kpl = 0
Pick = xPickPt_i
IF
B2 > MOD_VAL_B2
THEN BEGIN
bSyncReq_B2 = TRUE
END
ELSE BEGIN
bSyncReq_B2 = FALSE
END
IF
Pick.kpk > B1
THEN BEGIN
Pick.kpk = Pick.kpk - MOD_VAL_B1
END
PickApp = Pick
; calculate intermediate point 'PickApp' (with Kpk to synchronize)
PickApp.Kz = Pick.Kz + 100
PickDep = Pick
PickDep.Kz = Pick.Kz + 50
;------ * no blending till here * ------
; set belt value to zero to define synchronization position
; belt modulo has to be done
; modulo correction for the place position
; blending move via point 'PickDep' synchronous to pick belt
; blending move via point 'PickDepAsyn' to unsynchronize
THEN BEGIN
; belt modulo (subtraction)
; get commanded velocity from PLC
; get commanded acceleration from PLC
; calculate desynchronization point 'PlaceDepAsyn' depending
; on actual position
; get next pick position from PLC
; check if belt counter has to be modulated
; belt modulo has to be done
; modulo correction for the pick position
DOK-IM*MLC-F*STEP**V10-AP02-DE-P
Rexroth IndraMotion MLC 10VRS Die ersten Schritte

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis