CAMSWITCH_REF

Der Datentyp CAMSWITCH_REF verweist auf eine Datenstruktur mit Nockenparametern für ein digitales Nockenschaltwerk MC_DigitalCamSwitch, MC_DigitalCamSwitch_MultiEdge oder MC_DigitalCamSwitch_EL5131.

TYPE CAMSWITCH_REF :
STRUCT
    NumberOfSwitches : UDINT; 
    pSwitches        : POINTER TO MC_CamSwitch; 
    SizeOfSwitches   : UDINT; 
END_STRUCT
END_TYPE

Name

Typ

Beschreibung

NumberOfSwitches

UDINT

Anzahl der genutzten Array-Elemente. Kann kleiner sein als die maximale Anzahl.

pSwitches

POINTER TO MC_CamSwitch

Pointer auf das digital cam array.

SizeOfSwitches

UDINT

Maximale Größe des digital cam arrays.

Die eigentliche Datenstruktur zur Parametrierung eines digitalen Nockenschaltwerks ist üblicherweise ein ARRAY OF MC_CamSwitch. CAMSWITCH_REF verweist mit einem POINTER auf diese Struktur und definiert eindeutig die Größe der Struktur und die Anzahl der tatsächlich verwendeten Nocken.

Die Obergrenze für die Anzahl der Nocken ist hier auf 1000 begrenzt. Falls die Anwendung eine größere Anzahl an Nocken benötigt, und um generell die Rechenauslastung zu optimieren, sollte immer nur ein Teilbereich der Nocken im zeitlichen „Nahbereich“ um die aktuelle Position an den MC_DigitalCamSwitch, MC_DigitalCamSwitch_MultiEdge oder MC_DigitalCamSwitch_EL5131 übergeben werden.

Eine Variable des Typs CAMSWITCH_REF wird, wie in dem folgenden Beispiel gezeigt, initialisiert:

VAR
    CamSwitchArray : ARRAY[1..3] OF MC_CamSwitch;
    CamSwitchRef   : CAMSWITCH_REF;
END_VAR
(* real number of defined digital cams *)
CamSwitchRef.NumberOfSwitches := 1; (* 1..3 *)
(* pointer to the digital cam data array *)
CamSwitchRef.pSwitches        := ADR(CamSwitchArray);
(* maximum size of the digital cam data array *)
CamSwitchRef.SizeOfSwitches   := SIZEOF(CamSwitchArray);

Beispiel mit zwei Nockenspuren

CAMSWITCH_REF 1: