Herunterladen Inhalt Inhalt Diese Seite drucken

Bosch Rexroth IndraMotion MLC 10VRS Die Ersten Schritte Seite 85

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

Werbung

DOK-IM*MLC-F*STEP**V10-AP02-DE-P
Rexroth IndraMotion MLC 10VRS Die ersten Schritte
;
- all movements between pick and place position (and vice versa) are blending
;
because: - path calculation of all blending moves is done during belt -
;
synchronous non blending movement (at point 'Pick' / 'Place')
;
- check for modulo range of belt and modulo correction of point is
;
done during belt synchronous non blending movement
;
(at point 'Pick' / 'Place')
;
- modulo correction of the belt is done during the non belt -
;
synchronous movement
; *********************************************************************************
PROGRAM
Pi_Pl_01
; *********************
; *
DECLARATION
*
; *********************
VAR:
INPUT POINT
:
701 = xPickPt_i,
702 = xPlacePt_i
INPUT REAL :
201 = rVel_i,
202 = rAccel_i
INPUT BINARY
:
1001 = bStop_i
OUTPUT BINARY
:
1 = bFlag_q
CONST
:
FALSE
= 0,
TRUE
= 1,
C_BELT_NO_1 = 1,
C_BELT_NO_2 = 2,
C_BK_PTP
= 4,
MOD_VAL_B1 = 99000.0,
MOD_VAL_B2 = 99000.0
BELT:
500 + C_BELT_NO_1 = B1,
500 + C_BELT_NO_2 = B2
POINT
:
Home,
PickApp,
Pick,
PickDep,
PickDepAsyn,
PlaceApp,
Place,
PlaceDep,
PlaceDepAsyn
REAL
:
rTotalLength,
rBeginLength
BINARY
:
bSyncReq_B1,
bSyncReq_B2
SPC_FCT
:
21 =
belt_kind(VALUE INTEGER
VALUE INTEGER
SPC_FCT
:
53 =
belt_area(VALUE INTEGER
JC_POINT
REAL
REAL
;----------------------------------------------------------------------------------
; **********************
; *
IMPLEMENTATION
*
; **********************
BEGIN
Init
; call subroutine 'Init'
WAIT
5
; wait time in seconds before proceeding with program
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
Pick = xPickPt_i
; get first pick position from PLC
PickApp = Pick
; calculate intermediate point 'PickApp' (with Kpk to synchronize)
PickApp.Kz = Pick.Kz + 100
LoopMain:
; begin of main loop
PickB1
; call subroutine 'PickB1'
PlaceB2
; call subroutine 'PlaceB2'
If NOT
bStop_i
THEN BEGIN
; pick position at pick belt from PLC
; place position at place belt from PLC
; commanded velocity from PLC
; commanded acceleration from PLC
; asynchronous stop signal from PLC
; definitions
; belt kind PTP
; modulo value for pick belt (mm)
; modulo value for place belt (mm)
; define channel 501 as B1 (pick belt)
; define channel 502 as B2 (place belt)
; world coordinate point definition
; home position
; point above point Pick to synchronize to B1
; pick position
; point above point Pick to move synchronous to
; point above POS to unsynchronize from B1
; point above point Place to synchronize to B2
; place position
; point above point Place to move synchronous to
; point above POS to unsynchronize from B2
; variable to setup the belt area
; variable to setup the belt area
; special function to setup the belt kind
: belt_no
; number of belt to be configured
: kind_belt)
; number of belt kind (only value 4)
; special function to setup the belt area
: BeltNo
; number of belt to be configured
: @Base
; start pos. of working area on the belt
: rTotalLength
; max. reachable length in belt direction
: rBeginLength)
; latest pos. within the working area on
; the belt, where the synchronization
; move has to be started
; set z coordinate of intermediate point
; check for asynchronous stop signal from PLC
Bosch Rexroth AG
Erste Schritte - Robot-Control mit MLC
83/143

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis