Skip to main content

Standardanwendungsfälle

Die Bibliothek SM3_Basic enthält übergeordnete Funktionsbausteine, die nicht über die standardmäßige Soll-/Istwert-Schnittstelle mit dem Antrieb interagieren. Diese Bausteine geben Kommandos oder verändern die Einstellungen des Antriebs indem sie die Parameter der Instanz von AXIS_REF_SM3 lesen oder schreiben.

Antrieb reinitalisieren

Wenn Sie die Antriebsparameter während der Laufzeit geändert haben, müssen Sie den Antrieb neu initialisieren. Beispiel: Ändern des Skalierungsfaktors oder die Moduloperiode von rotatorischen Antrieben. Durch Aufruf des Funktionsbausteins SMC3_ReinitDrive mit einer steigenden Flanke am Eingang Execute wird der Parameter  wCommuncationState des Antriebs zurückgesetzt und der komplette Start-up-Prozess des Antriebs wiederholt.

Wichtig

Warten Sie mit der Reinitialisierung, bis die Achse den erforderlichen Zustand SMC_COMSTATE_BASE_COM_INITIALIZATION oder höher erreicht hat. Andernfalls wird der Fehler SMC_RAG_ERROR_AXIS_NOT_INITIALIZED ausgegeben.

Wenn die Kommunikation eines untergeordneten Feldbusses unterbrochen ist, dann ist ab CODESYS SoftMotion Version 4.18.0.0 keine explizite Reinitialisierung mehr notwendig. Die Achse wird automatisch neu initialisiert, sobald die Feldbuskommunikation wiederhergestellt wurde. Vor Version 4.18.0.0 war nach dem Kommunikationsabbruch des Feldbusses (Fehler mit SMC_DI_GENERAL_COMMUNICATION_ERROR) ein expliziter Aufruf von SMC3_ReinitDrive nötig, nachdem die Feldbuskommunikation wiederhergestellt war.

Tipp

Das alte Verhalten kann wiederhergestellt werden, indem der Eingang AutoRestart des Funktionsbausteins SMC_AxisChangeSettings auf SMC_AXIS_AUTORESTART_MODE.OFF gesetzt wird.

Antrieb ein-/abschalten

Die Parameter bRegulatorOn und bDriveStart des Funktionsbausteins AXIS_REF_SM3 steuern die Leistungsstufe und das Abbremsen eines Antriebs. Der Zugriff erfolgt über den Funktionsbaustein MC_Power.

Zur Freigabe der Endstufe müssen Sie den Parameter bRegulatorOn des Funktionsbausteins MC_Power setzen. Über den Ausgang bRegulatorRealState meldet der Antrieb den momentanen Status dieses Prozesses. Wenn es vom Antrieb unterstützt wird, setzt ein Reset von bRegulatorOn während einer Bewegung das Drehmoment mit sofortiger Wirkung außer Kraft. Der Funktionsbaustein meldet in diesem Fall einen Fehler und setzt die Achsen in den Zustand errorstop.

Die Variable bDriveStart bestimmt, ob sich der Antrieb bewegen darf oder nicht. In bDriveStartRealState steht der aktuelle Zustand dieses Parameters.

Wenn es vom Antrieb unterstützt wird,  führt ein Reset des Parameters bDriveStart während der Bewegung ein Abbremsen des Antriebs mit der konfigurierten Rampe durch (genannt „QuickStop“). Danach hält der Antrieb die erreichte Position solange, wie bRegulatorOn gesetzt bleibt. Die Achse bleibt im Zustand stopping, solange der „QuickStop-Mechanismus“ aktiv ist (Eingang bDriveStart = FALSE). Wenn der Antrieb zuvor von einem Funktionsbaustein bewegt wurde, zeigt dieser nun CommandAborted. Das gilt nicht für den Funktionsbaustein  MC_Stop, der einen Fehler meldet und die Achsen in den Zustand errorstop setzt.

Mechanische Bremsen handhaben

Wenn es vom Antrieb unterstützt wird, kann die Variable eBrakeControl mit Hilfe des Funktionsbausteins SMC3_BrakeControl gesetzt oder zurückgesetzt werden. Drei unterschiedliche Modi sind möglich.

. SMC3_BrakeSetState
  • SMC_BRAKE_AUTO: Der Zustand der Bremse wird vom Antrieb selbst geregelt.

  • SMC_BRAKE_OPEN: Die Bremse ist geöffnet.

  • SMC_BRAKE_CLOSE: Die Bremse ist geschlossen.

Die Variable bBrakeClosedRealState  meldet den aktuellen Status der Bremse.

Vom SoftMotion-Standpunkt aus hängen Kontrolle wie auch Zustand der mechanischen Bremse weder vom Zustand des Antriebs noch von der laufenden Bewegung ab.

Kontrollmodus wechseln

Mit dem Funktionsbaustein SMC_SetControllerMode können Sie zwischen den verschiedenen Kontrollmodi wechseln. Die Parameter byControllerMode und byRealControllerMode von AXIS_REF_SM3 repräsentieren den gewünschten und den aktuellen Zustand des Reglers.

Tabelle 1. Mögliche Werte

SMC_nocontrol

SoftMotion sendet keine zyklischen Daten zum Antrieb. Somit kann der Antrieb anderweitig gesteuert werden.

SMC_torque

Moment/-Kraft-Regelung

SMC_velocity

Geschwindigkeitsregelung

SMC_position,

Lageregelung

SMC_current

Stromregelung



Nach Schreiben der Variablen byControllerMode  wird der aktuelle Zustand solange geprüft bis er mit dem gewünschten Kontrollmodus übereinstimmt.

Währendessen berechnet der Baustein, beispielsweise bei Wechsel des Steuerungsmodus, die Sollwert für die Achse. Danach setzt er seinen Ausgang bDone auf TRUE. Ab diesem Zeitpunkt stellt er keine Sollwerte für die Achse mehr bereit. Dies muss dann von anderen Funktionsbausteinen übernommen werden. Beispiel: Der Ausgang bDone triggert einen Funktionsbaustein MC_MoveVelocity, MC_MoveAbsolute oder MC_Halt. Andernfalls stoppt die Achse sofort nach dem Wechsel des Kontrollmodus.

Referenzfahrt (antriebsgesteuert)

Sie können in SoftMotion einen Antrieb auf zwei Arten referenzieren:

  • Referenzierung über Regelung in der SPS: Diese Referenzierung wird durch Aufruf des Funktionbausteins  SMC_Homing ausgeführt. Dabei muss das Referenzsignal Teil des E/A-Abbilds des Reglers sein. Während des Referenzierens bleibt der Antrieb im Kontrollmodus „Lageregelung“. Im Allgemeinen ist diese Methode nicht so genau, da die Erfassung der Position (beim Berühren des Referenzschalter) auf den vom Antrieb erhaltenen aktuellen Positionen basiert; folglich ist die Genauigkeit durch den Kommunikationszyklus beschränkt.

  • Referenzierung über Regelung im Antrieb: Dabei ist der Referenzschalter zum Antrieb selbst verdrahtet. Dadurch wird seine Position schneller und mit höherer Genauigkeit ausgewertet. Während des antriebsgesteuerten Referenzpfads ist der Antrieb in einem anderen Kontrollmodus, in dem er nicht die Sollwerte des Reglers befolgt, sondern durch interne Prozesse gesteuert wird. Sobald der Referenzpfad beendet wird, wird der Antrieb in seinen ursprünglichen Kontrollmodus zurückversetzt.

    Der Funktionsbaustein MC_Home startet den antriebsgesteuerten Referenzpfad durch Setzen von fReference und bStartReference. Zusätzlich wird der Zustand von AXIS_REF_SM3 (wState) auf  homing gesetzt. Sobald der Antrieb in den Referenzpfad übergeht (das heißt, dass er die vom Regler vorgegebenen Werte nicht mehr beachtet), setzt der Antrieb den Parameter auf  TRUE. Um das Ende des Referenzpfads anzuzeigen, setzt der Treiber die Werte von bStartReference und bStartReferenceRealState wiederum auf  FALSE.

Positionserfassung

Abhängig davon, welche Funktionen der Antrieb zur Positionsermittlung der Antrieb unterstützt, kann die Position einer Achse auf mehrere Arten ermittelt werden:

  • Der Antrieb ermittelt die Achsposition selbst (integriert oder durch Anschaltung eines externen Gebers). Da die Istposition dabei vom Antrieb selbst übertragen wird, ist die Übertragungszeit des Signals minimal und somit präzise.

  • Die aktuelle Position der Achse wird unabhängig vom Antrieb erfasst und über einen Eingang der Steuerung übertragen. Dabei auftretende Latenzzeit des Steuerungseingangs und des Applikationszyklus machen diese Methode weniger präzise.

    Wenn die Position vom Antrieb selbst übertragen wird, wird sie in der Applikation typischerweise vom zugehörigen Treiber herstellerspezifisch direkt verarbeitet. Um die Position einer solchen Achse zu ermitteln, können Sie den Funktionsbaustein MC_TouchProbe verwenden. Er ermöglicht die Aufzeichnung der Achsposition zu einem konfigurierbaren Trigger und innerhalb eines Positionsfensters. Wenn die Position nicht durch den Antrieb übertragen wird, muss sie dem Antriebstreiber beispielsweise zur Regelung übergeben werden.

    Für weitere Informationen siehe: Lageregelung auf der Steuerung mit SM_Drive_PosControl