Hybride Implementierung aus SPS und NC-Programm
Im NC-Code werden die Konfigurationsparameter via. #TRACK CS ON [ID=0 …] übergeben, während die SPS lediglich die Korrektur bestimmt und diese weitergibt.
Programmierbeispiel
Slave
…
N200 X1305.92 Y0
N210 #TRACK CS ON [ID=0 OPTION=1 FILTER=0 WAIT KIN_BASE X=-1305.92]
N230 G92 X1305.92
N240 Z90
; Roboter auf Drehachse positioniert um Sprünge
; zu verhindern
; Drehtisch (X1) wird unabhängig vom Roboter gedreht
N250 X0 Y0 X1[INDP_ASYN POS=-90 G01 F500 G90]
N260 Z80
N270 X-60
N280 X60
N290 X0
N300 Y-60
N310 Y60
N320 Z90
…
N480 #WAIT INDP ALL
; Roboter zum Drehtisch Mittelpunkt um Sprünge
; zu verhindern
N490 G01 X0 Y0
N500 #TRACK CS OFF [FILTER=0 WAIT]
…
Programmierbeispiel
SPS
PROGRAM DynCsPLC_Activate
VAR
pDynCs : POINTER TO MC_CONTROL_DYN_CS_UNIT;
END_VAR
(*DynCS freischalten*)
pDynCs := ADR(gpCh[0]^.channel_mc_control.dyn_cs);
pDynCs[0]^.enable_w := TRUE;
IF pDynCs^.state_r.actual_state = UDINT#2 AND pDynCs^.command_semaphor_rw = FALSE
THEN
pDynCs^.command_w.rotation[2]:=
-pAx[6]^.lr_state.current_position_acs_r;
pDynCs^.command_semaphor_rw := TRUE;
END_IF;