MC_CamScaling

MC_CamScaling 1:

This function block applies the scaling factor of an existing cam table coupling on a slave. InSync of the existing cam table coupling is not affected by this function block.

Syntax

Definition:

FUNCTION_BLOCK MC_CamScaling
VAR_INPUT
    Slave             : Type_Camming1D;
    CamObject         : Type_CouplingFunction1D;
    Execute           : BOOL;
    Scaling           : CamScalingData;
    ActivationOptions : CamActivationOptions;
END_VAR
VAR_OUTPUT
    Done              : BOOL;
    Busy              : BOOL;
    Active            : BOOL;
    CommandAborted    : BOOL;
    Error             : BOOL;
    ErrorId           : UDINT;
END_VAR

MC_CamScaling 2: Inputs

Name

Type

Description

Slave

Type_Camming1D

Reference to the slave axis

CamObject

Type_CouplingFunction1D

Reference to the cam object

Execute

BOOL

Apply cam scaling at rising edge

Scaling

CamScalingData

New cam scaling

ActivationOptions

CamActivationOptions

Options controlling how the cam coupling is activated (mode, position, reference object).

MC_CamScaling 3: Outputs

Name

Type

Description

Done

BOOL

Cam scaling succeeded

Busy

BOOL

Function block is not finished and new output values are to be expected.

Active

BOOL

Function block has active control on the axis.

CommandAborted

BOOL

Command is aborted by another command.

Error

BOOL

Error occurred within function block.

ErrorId

UDINT

Error identifier

Weiterführende Informationen

Mit dem Funktionsbaustein MC_CamScaling kann eine Kurvenscheibenkopplung skaliert werden. Dabei werden nicht die Tabellenrohdaten der Kurvenscheibe beeinflusst, sondern die Skalierung bezieht sich auf eine aktive Master-Slave-Kopplung. Einstellbar sind die Skalierungsfaktoren für Master und Slave und die Offsets zur Verschiebung der Kurvenscheibe im Koordinatensystem.

Optional wirkt die Änderung erst ab einer bestimmten Master-Position, wodurch die Skalierung punktgenau während der Fahrt geändert werden kann.

Hinweis

Sachschäden durch Veränderung einer aktiven Kurvenscheibenkopplung

Dieser Funktionsbaustein kann auch für eine aktiven Kurvenscheibe verwendet werden. Valide Änderungen werden in die Kurvenscheibe übernommen und können zu Sollwertsprüngen führen. Für das Aktivieren einer Kurvenscheibenskalierung zu einem definierten Zeitpunkt oder an einer definierten Position ist folgende Vorgehensweise empfohlen:

  • Verwenden Sie den ECamActivationMode.AtBoundary, ECamActivationMode.AtMasterCamPosition oder ECamActivationMode.AtMasterAbsolutePosition
  • Legen Sie alternativ eine Kopie der aktiven Kurvenscheibe an (Methode CopyFrom()) und nehmen Sie die Änderungen in der Kopie vor. Schalten Sie im Anschluss zwischen den Kurvenscheiben um (MC_CamExchange).

Mögliche Fehlercodes

Für diesen Funktionsbaustein sind unter anderem die folgenden Werte für den Ausgang ErrorId möglich:

Fehler(Hex)

Fehler(Dez)

Fehlertyp

Beschreibung

0x8145

33093

Funktionsbaustein

Die Verknüpfung des zyklischen Interfaces zwischen NC und SPS fehlt (z.B. AXIS_REF, AXES_GROUP_REF, ...). Eine vom Funktionsbaustein verwendete Referenz (z.B. auf eine Achse, Gruppe, einen Mover oder ein anderes Motion-Objekt) ist nicht mit dem zugehörigen NC-Objekt verknüpft oder die zyklische Verknüpfung ist unvollständig.

0x8169

33129

Funktionsbaustein

Masterachse existiert nicht oder kann nicht verwendet werden. Die als Master übergebene Achse ist nicht vorhanden oder hat keine zyklische Verknüpfung und kann daher nicht als Master (z.B. für Camming oder Gearing) verwendet werden.

0x81af

33199

Funktionsbaustein

Ungültiges Objekt oder ungültige Objekt-Referenz an Funktionsbaustein übergeben. Dem Funktionsbaustein wurde eine ungültige oder fehlende Objekt-Referenz übergeben (z.B. fehlende CamObject-Referenz an MC_CamIn, MC_CamTableSelect oder MC_CamScaling).

0x81b0

33200

Funktionsbaustein

Objekt nicht erlaubt (z.B. Objekt wird bereits verwendet). Das übergebene Objekt ist im aktuellen Kontext nicht erlaubt (z.B. Quell- und Ziel-Objekt sind bei CopyFrom() identisch, Objekt wird bereits an einer anderen Achse verwendet).

0x81b1

33201

Funktionsbaustein

Ungültige Größe an Funktionsbaustein übergeben (z.B. ungültige Array-Größe oder ungültige Anzahl Elemente). An den Funktionsbaustein wurde eine ungültige Größe übergeben (z.B. CamRef.NumberOfPoints kleiner als zwei bei MC_CamTableSelect).

0x81b2

33202

Funktionsbaustein

Die gegebenen Cam-Aktivierungs-Einstellungen sind ungültig. Die Aktivierungs-Einstellungen der Cam-Tabelle (z.B. ActivationMode und ActivationPosition) sind ungültig oder inkonsistent.

0x81b3

33203

Funktionsbaustein

Die gegebene Cam-Skalierung ist ungültig. Die übergebenen Skalierungs-Parameter der Cam-Tabelle sind ungültig (z.B. Skalen-Faktor Null oder Master-Offset-Modus 'Auto', der in der ausgeführten Operation nicht unterstützt wird).

0x81b4

33204

Funktionsbaustein

Der gegebene Cam-Datenpunkt ist ungültig. Mindestens ein Datenpunkt der Cam-Tabelle ist ungültig (z.B. wird versucht, den ersten oder letzten Punkt zu ignorieren).

0x81c2

33218

Zustand

Ein eingereihtes Cam-Kommando konnte nicht vom eingereihten in den aktiven Zustand überführt werden. Beim Übergang eines eingereihten Cam-Kommandos (z.B. MC_CamIn, MC_CamAdd, MC_CamExchange, MC_CamScaling oder MC_CamRemove) in den aktiven Zustand ist ein Fehler aufgetreten. Dies tritt typischerweise auf, wenn sich der Camming-Zustand zwischen dem Einreihen und der Aktivierung geändert hat, z.B. weil die referenzierte Cam-Tabelle bereits gekoppelt oder nicht mehr gekoppelt ist, oder weil der Sollwert bzw. der Aktivierungszeitpunkt nicht berechnet werden konnte.

Eine Übersicht aller NC-Fehlercodes finden Sie hier:

Versionsinformation

  • TwinCAT Standard >= v3.1.4026.23.1
  • TF5550 MC3 Camming >= v4.0.6 (inkludiert TF5500 MC3 Base >= v4.0.6)

Required License

TC3 MC3 Camming