Skip to main content

Häufige Fehler

Diese Seite beschreibt häufige Fehler bei der Verwendung von CODESYS Softmotion Basic, deren Ursachen und mögliche Maßnahmen, um den Fehler zu beheben. Eine Liste aller möglichen Fehler mit kurzer Beschreibung finden Sie in der Bibliotheksdokumentation: SMC_ERROR

Tabelle 40.

Fehlercode

Beschreibung und Ursachen

Maßnahmen

SMC_DI_AXIS_ERROR

Der Antrieb hat einen Fehler gemeldet.

Mögliche Ursachen:

  • Schleppfehler

  • Endschalter

  • Überlastung (I²t Fehler)

Prüfen Sie, welchen Fehler der Antrieb meldet. Dies kann über das Display des Antriebs (sofern vorhanden) oder durch Auslesen mit dem Baustein MC_ReadAxisError erfolgen.

SMC_AXIS_ERROR_DURING_MOTION

Der Antrieb hat einen Fehler gemeldet. Während einer Bewegung gibt der aktive Bewegungsbaustein diesen Fehler zurück.

Siehe Maßnahmen von Fehler SMC_DI_AXIS_ERROR.

SMC_FB_WASNT_CALLED_DURING_MOTION

Der Funktionsbaustein, der die aktive Bewegung steuert, wurde im aktuellen Zyklus nicht aufgerufen.

Mögliche Ursachen:

  • Die Aufrufreihenfolge bei gepufferten Bewegungen oder Überschleifbewegungen ist falsch. Die Funktionsbaustein-Instanz der Folgebewegung darf nicht früher aufgerufen werden, als die Funktionsbausteininstanz, die die vorhergehende Bewegung kommandiert hat.

  • Ab SoftMotion Version 4.15.0.0 enthält die Log-Meldung zu diesem Fehler den Instanzpfad zum betroffenen Funktionsbaustein

  • Prüfen Sie in der Applikation, weshalb der Baustein nicht zyklisch aufgerufen wurde

  • Beheben Sie den Aufruf, sodass dieser zyklisch erfolgt (mindestens solange der Baustein in Verwendung ist)

SMC_BLOCKING_MC_STOP_WASNT_CALLED

Während eines aktiven Stopps wurde der zugehörige Funktionsbaustein MC_Stop im aktuellen Zyklus nicht aufgerufen.

Siehe Maßnahmen von Fehler SMC_FB_WASNT_CALLED_DURING_MOTION.

SMC_AXIS_NOT_READY_FOR_MOTION

Die Achse ist nicht betriebsbereit und kann die gewünschte Bewegung nicht ausführen.

Mögliche Ursachen sind:

  • Die Achse befindet sich nicht in einem betriebsbereiten Zustand für die jeweilige Bewegung (beispielsweise power_off oder errorstop)

  • Die Achse befindet sich im Fehlerzustand und alle gepufferten Bewegungen geben diesen Fehler zurück

  • Die Achse befindet sich im Zustand stopping (während einem aktiven MC_Stop) und eine neue Aborting Bewegung wird kommandiert

Prüfen Sie den Zustand der Achse:

  • Ist die Achse durch MC_Power in einem betriebsbereiten Zustand?

  • Ist die Achse im Zustand errorstop? Falls ja, bitte identifizieren und beheben Sie den Achsfehler.

  • Passt der Achszustand zu der kommandierten Bewegung? Zum Beispiel kann MC_CamOut nur kommandiert werden, wenn sich die Achse im Zustand der synchronisierten Bewegung befindet.

SMC_FB_CALLED_FROM_WRONG_TASK

Der SoftMotion-Baustein wurde aus einer Task aufgerufen, die nicht der Bustask der Achse entspricht.

Da die SoftMotion-Bausteine Werte in der Achse verändern, kann es zu inkonsistenten Zuständen kommen, wenn Aufrufe aus anderen Tasks als der Bustask erfolgen. Dies kann zu undefinierten Fehlern führen, was über diesen Fehler verhindert wird.

  • Prüfen Sie das Log: Es wird die betroffene Achse und Bausteininstanz protokolliert.

  • Entfernen Sie den Aufruf aus der falschen Task.

SMC_DI_FIELDBUS_LOST_SYNCRONICITY

Tritt bei der Verwendung von EtherCAT mit Distributed Clocks auf, wenn der Frame von der Steuerung zum Antrieb nicht rechtzeitig (innerhalb des definierten Zeitfensters, dem sogenannten "SyncWindow") oder gar nicht empfangen wurde.

Mögliche Ursachen:

  • Echtzeitprobleme:

    • Task-Jitter zu hoch

    • Zu niedrige Task-Priorität der EtherCAT-Task

    • Weitere Feldbusse (beispielsweise Modbus) oder langwierige Operationen neben den Steuerungsaufgaben (beispieleweise Dateizugriffe) in der EtherCAT-Task

    • Modbus wird in einer anderen Task ausgeführt, aber die E/A-Kanäle, die dieser verwendet, werden auch in der EtherCAT-Task referenziert

    • Gerade bei Linux-Betriebssystemen die Konfiguration des Systems (beispielsweise IRQ-Prioritäten)

  • Kommunikationsproblem zum EtherCAT-Slave: Verbindung unterbrochen, Probleme mit der elektromagnetischen Verträglichkeit (EMV), etc.

Prüfen Sie, welche Ursache für das Verhalten verantwortlich ist. Dabei können Ihnen folgende Funktionen helfen:

Mögliche Maßnahmen bei Echtzeitproblemen:

SMC_DI_SWLIMITS_EXCEEDED

Die Achse bewegt sich in Richtung des positiven oder negativen Software-Endschalters und wird diesen mit der aktuellen Dynamik überschreiten. Der Fehler löst auch vor der eigentlichen Endschalter-Position aus, da der benötigte Bremsweg noch in die Berechnung mit einbezogen wird.

  • Prüfen Sie, ob die Bewegung in diesem Positionsbereich gewünscht ist

  • Passen Sie bei Bedarf die negative und oder positive Software-Endschalterposition an. Siehe Registerkarte: Allgemein

SMC_DI_HWLIMITS_EXCEEDED

Der positive oder negative Hardware-Endschalter hat ausgelöst und die Achse bewegt sich in Richtung dieses Endschalters.

  • Prüfen Sie die kommandierte Position der Bewegung. Diese sollte die Positionen der Hardware-Endschalter nicht überschreiten.

  • Falls die Bewegung in Ordnung ist, prüfen Sie die Signale der Hardware-Endschalter.

SMC_MOVING_WITHOUT_ACTIVE_MOVEMENT

Es gibt keine aktive Bewegung, aber die Sollgeschwindigkeit ist ungleich Null und die Achse ist in einem Betriebszustand, in der den Sollwerten gefolgt wird.

Mögliche Ursachen:

  • Bei der Verwendung von MC_PositionProfile, MC_VelocityProfile oder MC_AccelerationProfile muss die Achse am Ende dieser Bewegung Stillstand erreichen oder im selben Zyklus eine Folgebewegung kommandiert werden. Ansonsten wird dieser Fehler zurückgegeben.

Prüfen Sie die Ursache des Problems:

  • Falsche Aufrufreihenfolge bei gepufferten und Blending-Bewegungen: Passen Sie die Aufrufreihenfolge an. Mehr Informationen sind im Abschnitt Aufrufreihenfolge von Bewegungsfunktionsbausteinen zu finden.

  • Es wird MC_PositionProfile, MC_VelocityProfile oder MC_AccelerationProfile verwendet und am Ende kein Stillstand erreicht: Passen Sie das Profil entsprechend an, sodass am Ende Stillstand erreicht wird. Oder verwenden Sie stattdessen Kurvenscheiben, die einen ähnlichen Anwendungsfall wie diese Funktionsbausteine abdecken, aber flexibler und einfacher zu verwenden sind.