Fehlerverhalten

Fehlertyp

Die TwinCAT MC3 unterscheidet zwischen Execution Error und Control Error.

Bei einem Execution Error hat die MC3 weiterhin die Kontrolle über die Achse. Die Kommunikation zur Hardware sowie der Antrieb selbst sind fehlerfrei. Die Sollwertgenerierung ist weiterhin möglich. In diesem Fall ist die Standardreaktion im Fehlerfall eine kontrollierte Stopprampe, mit der für die Achse konfigurierten maximalen Dynamik. Dieser Stopp kann mit MC_Reset abgebrochen werden. Nach dem Reset kann im selben Zyklus ein neuer Befehl angestoßen werden.

Bei einem Control Error hat die MC3 keine Kontrolle mehr über die Achse, typischerweise aufgrund eines Hardware- oder antriebsseitigen Fehlers. In diesem Zustand wird die Reaktion durch die Parameter der Achse definiert. Derzeit ist ein konsequenter Stopp mit Null-Dynamik möglich (HardStop).

Fehlerfortpflanzung

Die Funktionsbausteine für Kopplungen bieten spezielle Einstellungen zur Steuerung der Fehlerbehandlung zwischen den Achsen. Der Mechanismus ist für MC_GearIn, MC_GearInPos und MC_CamIn identisch.

ReactionToMasterError definiert das Verhalten der Slave-Achse, wenn die Master-Achse in einen Fehlerzustand übergeht. Bei der Einstellung TriggerSlaveError löst jeder Master-Fehler sofort auch einen Fehler in der Slave-Achse aus. Zudem wird die Kopplung aufgelöst. Die Slave-Achse folgt dann der Standard-MC3-Reaktion für den spezifischen Fehlertyp (s. o.). Bei der Einstellung KeepCouplingWithSetValues bleibt die Kopplung auch dann aktiv, wenn die Master-Achse einen Fehler aufweist. Die Slave-Achse generiert weiterhin Sollwerte aus den Sollwerten der Master-Achse. Dieser Modus ermöglicht ein koordiniertes Anhalten unter Beibehaltung der synchronen Beziehung.

Die umgekehrte Richtung der Propagation wird mit ReactionToSlaveError konfiguriert. Bei der Einstellung TriggerMasterError leitet die Slave-Achse ihren Fehler an ihre Master-Achse weiter. So geht auch die Master-Achse in ihre Fehlerreaktion über. Bei der Einstellung NoReaction bleibt die Master-Achse unbeeinträchtigt. Die Slave-Achse und der Kopplungs-Baustein signalisieren den Fehlerzustand. In beiden Fällen wird die Kopplung für diese Slave-Achse aufgehoben.

Mit Ausnahme des oben beschriebenen expliziten Falls KeepCouplingWithSetValues werden die Master- und Slave-Achsen automatisch entkoppelt, wenn auf einer der beiden Seiten ein Fehler auftritt. Nachdem der zugrunde liegende Fehler mit MC_Reset quittiert wurde, muss die Anwendung den gewünschten Kopplungsbefehl erneut ausführen, um den gekoppelten Betrieb fortzusetzen. Anhand der Diagnoseinformationen an dem Funktionsbaustein (Error und ErrorID sowie MasterHasError) kann festgestellt werden, ob der Fehler in der Master- oder der Slave-Achse entstanden ist.

Ein propagierter Fehler ist auf der Empfängerseite immer ein Execution Error.

Fehlerfortpflanzung – Beispiele

Grundsätzlich gilt bei einem Fehler der Slave-Achse:

  • Slave-Achse: Die Kopplung wird aufgelöst und die Reaktion ist abhängig vom Fehlertypen.
  • Master-Achse: Die Master-Achse meldet einen Fehler und folgt einer Stopprampe der MC oder führt ihre laufende Bewegung ohne Beeinflussung fort.

Bei einem Fehler der Master-Achse gilt:

  • Master-Achse: Reaktion ist abhängig vom Fehlertypen.
  • Slave-Achse: Die Slave-Achse meldet einen Fehler und folgt einer Stopprampe der MC oder den Sollwerten der Master-Achse.

Szenario 1

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

TriggerSlaveError

TriggerMasterError

Control Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • Null-Dynamik Master
  • kontrollierte Stopprampe der Slave-Achse
  • Kopplung aufgelöst
  • Null-Dynamik Slave
  • kontrollierte Stopprampe der Master-Achse
  • Kopplung aufgelöst

 

Szenario 2

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

TriggerSlaveError

NoReaction

Control Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • Null-Dynamik Master
  • kontrollierte Stopprampe der Slave-Achse
  • Kopplung aufgelöst
  • Null-Dynamik Slave
  • Master-Achse nicht beeinflusst
  • Kopplung aufgelöst

 

Szenario 3

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

KeepCouplingWithSetValues

TriggerMasterError

Control Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • Null-Dynamik Master
  • Slave-Achse versucht den Sollwerten der Master-Achse zu folgen
  • Kopplung beibehalten
  • Null-Dynamik Slave
  • kontrollierte Stopprampe der Master-Achse
  • Kopplung aufgelöst

 

Szenario 4

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

KeepCouplingWithSetValues

NoReaction

Control Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • Null-Dynamik Master
  • Slave-Achse versucht den Sollwerten der Master-Achse zu folgen
  • Kopplung beibehalten
  • Null-Dynamik Slave
  • Master-Achse nicht beeinflusst
  • Kopplung aufgelöst

 

Szenario 5

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

TriggerSlaveError

TriggerMasterError

Execution Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • kontrollierte Stopprampe der Master-Achse
  • kontrollierte Stopprampe der Slave-Achse
  • Kopplung aufgelöst
  • kontrollierte Stopprampe der Slave-Achse
  • kontrollierte Stopprampe der Master-Achse
  • Kopplung aufgelöst

 

Szenario 6

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

TriggerSlaveError

NoReaction

Execution Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • kontrollierte Stopprampe der Master-Achse
  • kontrollierte Stopprampe der Slave-Achse
  • Kopplung aufgelöst
  • kontrollierte Stopprampe der Slave-Achse
  • Master-Achse nicht beeinflusst
  • Kopplung aufgelöst

 

Szenario 7

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

KeepCouplingWithSetValues

TriggerMasterError

Execution Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • kontrollierte Stopprampe der Master-Achse
  • Slave-Achse versucht den Sollwerten der Master-Achse zu folgen
  • Kopplung beibehalten
  • kontrollierte Stopprampe der Slave-Achse
  • kontrollierte Stopprampe der Master-Achse
  • Kopplung aufgelöst

 

Szenario 8

Einstellungen am Funktionsbaustein und vorliegende Fehlerart:

ReactionToMasterError

ReactionToSlaveError

Error Type

KeepCouplingWithSetValues

NoReaction

Execution Error

Reaktion auf Fehler:

Master Fehler

Slave Fehler

  • kontrollierte Stopprampe der Master-Achse
  • Slave-Achse versucht den Sollwerten der Master-Achse zu folgen
  • Kopplung beibehalten
  • kontrollierte Stopprampe der Slave-Achse
  • Master-Achse nicht beeinflusst
  • Kopplung aufgelöst