Herunterladen Inhalt Inhalt Diese Seite drucken

Implementierung Über Plc - Beckhoff TF5200 Funktionsbeschreibung

Twincat 3 cnc; dynamisches koordinatensystem
Vorschau ausblenden Andere Handbücher für TF5200:
Inhaltsverzeichnis

Werbung

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;
2.4.4.2
Implementierung über PLC
In der SPS wird das Dynamische Koordinatensystem (DK) aktiviert, sobald transition_w.command := 1
gesetzt ist. Dabei wechselt der Zustand des DK von 0 nach 1 und dann 2 (s. Abb. „Zustand des
dynamischen Koordinatensystems" in Kapitel „PLC als Master [} 14]"). Entsprechend müssen die
gewünschten Parameter davor gesetzt sein.
Um das DK zu aktivieren wird hier eine M-Funktion (M100) verwendet werden, da eine Aktivierung über
#TRACK CS ON das DK ein zweites Mal aktiviert und zu abnormalem Verhalten führen kann.
SPS
PROGRAM DynCsPLC_M
VAR
  Init : BOOL;
  KbCs : HLI_COORDINATE_SYSTEM_INT;
  pDynCs : POINTER TO MC_CONTROL_DYN_CS_UNIT;
END_VAR
...
IF NOT      Init
THEN
  pDynCs^.enable_w   := TRUE;
(*Verschiebung zum Drehtischmittelpunkt*)
  kb_cs.translation[0]               := DINT#-13059200;
  kb_cs.translation[1]               := DINT#0;
  kb_cs.translation[2]               := DINT#800000;
  kb_cs.rotation[0]                  := DINT#0;
  kb_cs.rotation[1]                  := DINT#0;
  kb_cs.rotation[2]                  := DINT#0;
(*Setzten der konfig. Parameter*)
  pDynCs^.transition_w.f_kin_base        := TRUE;
  pDynCs^.transition_w.f_set_zero        := FALSE;
  pDynCs^.transition_w.f_rot_trans       := FALSE;
  pDynCs^.transition_w.filter_max_ticks  := UDINT#0;
  pDynCs^.transition_w.option            := UDINT#1;
  pDynCs^.transition_w.kinematic_base_cs := kb_cs;
  pDynCs^.transition_w.f_wait            := TRUE;
  Init := TRUE;
END_IF;
(* Wurde mit M100 das DK aktiviert*)
(*IF M100.ACTIVE THEN *)
  pDynCs^.transition_w.command := DINT#1;
  (*M100.ACTIVE := FALSE     Trigger zurücksetzen *)
(* END_IF *)
(* Wurde mit M101 das DK deaktiviert*)
(*IF M101.ACTIVE THEN *)
  pDynCs^.transition_w.command := DINT#-1;
  (*M101.ACTIVE := FALSE      Trigger zurücksetzen *)
(* END_IF *)
TF5200 | TwinCAT 3 CNC
Dynamisches Koordinatensystem
HINWEIS
Version: 1.03
Beschreibung
39

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis