Control Unit

Dynamic CS

Beschreibung

Control Unit zur Umschaltung des Trackings des dynamischen CS.

Datentyp

MC_CONTROL_DYN_CS_UNIT

ST-Pfad

gpCh[channel_idx]^.channel_mc_control.dyn_cs

Kommandierte, angeforderte Daten

ST-Element

.command_w

.request_r

Datentyp

HLI_COORDINATE_SYSTEM_INT

translation  : ARRAY [0..HLI_CS_AXES_MAXIDX] OF DINT;

 

X/Y/Z-translation in [0.1 µm]

rotation       : ARRAY [0..HLI_CS_AXES_MAXIDX] OF DINT;

 

A/B/C-rotation in [0.0001 degree]

Zugriff

PLC schreibt Command und liest Request

Rückgabe-Daten

ST-Element

.state_r

Datentyp

HLI_DYN_CS_STATE

actual_state : DINT;

 

HLI_DYN_CS_INACTIVE = 0

 

HLI_DYN_CS_ACTIVATING = 1,

 

HLI_DYN_CS_ACTIVE = 2,

 

HLI_DYN_CS_DEACTIVATING = 3,

 

HLI_DYN_CS_ERROR = -1

Zugriff

PLC liest

Flusskontrolle kommandierter Wert

ST-Element

.command_semaphor_rw

Datentyp

BOOL

Wertebereich

[TRUE, FALSE]

Besonderheiten

Verbrauchsdatum

Zugriff

CNC übernimmt die kommandierten Daten, wenn dieses Element den Wert TRUE besitzt und setzt nach vollständiger Übernahme der Daten dieses Element auf den Wert FALSE.

PLC kann Daten zur Kommandierung schreiben, wenn dieses Element den Wert FALSE besitzt. Sind alle zu kommandierenden Daten geschrieben, setzt die PLC dieses Element auf den Wert TRUE.

Flusskontrolle angeforderter Wert

ST-Element

.request_semaphor_rw

Datentyp

BOOL

Wertebereich

[TRUE, FALSE]

Besonderheiten

Verbrauchsdatum

Zugriff

CNC schreibt die von der GUI angeforderten Daten, wenn dieses Element FALSE ist und setzt anschließend dieses Element auf TRUE.

PLC liest die vom GUI angeforderten Daten, wenn dieser Wert TRUE ist. Nachdem die Daten vollständig in die PLC übernommen worden sind, setzt die PLC dieses Element auf FALSE.

Umleitung

ST-Pfad

gpCh[channel_idx]^.channel_mc_control.dyn_cs.enable_w

Transition

ST-Pfad

gpCh[channel_idx]^.channel_mc_control.dyn_cs.transition_w

Datentyp

HLI_DYN_CS_TRANSITION

 

command

: DINT;

(* -1:DEACTIVATE, 1:ACTIVATE *)

filter_max_ticks

: UDINT;

(* filter for turning ON/OFF, compare

#TRACK CS ON [ID=<i> ...FILTER... *)

option

: UDINT;

(* additional option, compare #TRACK

CS ON [ID=<i> ...OPTION... *)

f_wait

: BOOL;

(* #TRACK CS ON [ ...WAIT... *)

f_set_zero

: BOOL;

(*#TRACK CS ON [ ...SET_ZERO... *)

f_kin_base

: BOOL;

(* #TRACK CS ON [ ...KIN_BASE... *)

f_rot_trans

: BOOL;

(* #TRACK CS ON [ ...ROT_TRANS... *)

kinematic_base_cs

: HLI_COORDINATE_SYSTEM_INT;

 

(* add. shift between error and kinematic-

base, #TRACK CS ON [ID=<i> X=. Y=. *)

Zugriff

SPS schreibt die Transition analog zum NC-Befehl #TRACK CS [ID=0 …] und CNC liest die Transition.

Korrekter NC/PLC-Handshake:

Zuerst werden alle Parameter belegt und danach command auf +/-1 gesetzt.

Programmierbeispiel

prg_example

Control Unit

TYPE HLI_COORDINATE_SYSTEM_INT :

STRUCT

  translation : ARRAY [0..HLI_CS_AXES_MAXIDX] OF DINT;

  fill_up_2   : DINT;

  rotation    : ARRAY [0..HLI_CS_AXES_MAXIDX] OF DINT;

  fill_up_1   : DINT;

END_STRUCT

END_TYPE

TYPE HLI_DYN_CS_STATE :

STRUCT

  actual_state : UDINT;

  fill_up_1    : DINT;

END_STRUCT

END_TYPE

TYPE HLI_DYN_CS_TRANSITION :

STRUCT

  command           : DINT;

  filter_max_ticks  : UDINT;

  option            : UDINT;

  f_wait            : BOOL;

  f_set_zero        : BOOL;

  f_kin_base        : BOOL;

  f_rot_trans       : BOOL;

  kinematic_base_cs : HLI_COORDINATE_SYSTEM_INT;

END_STRUCT

END_TYPE

TYPE MC_CONTROL_DYN_CS_UNIT :

STRUCT

  enable_w            : BOOL;  (* MC <-- PLC takes care *)

  request_semaphor_rw : BOOL;  (* Valid semaphore *)

  command_semaphor_rw : BOOL;  (* Valid semaphore *)

  fill_up_1           : BOOL;

  fill_up_2           : DINT;

  request_r           : HLI_COORDINATE_SYSTEM_INT;

  command_w           : HLI_COORDINATE_SYSTEM_INT;

  transition_w        : HLI_DYN_CS_TRANSITION;

  state_r             : HLI_DYN_CS_STATE;

END_STRUCT

END_TYPE