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.
Siehe auch
Wenn Sie die Antriebsparameter während der Laufzeit geändert haben, müssen Sie den Antrieb neu initialisieren. Beispiel: Ändern des Skalierungsfaktors oder der Positionszyklen 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.
Hinweis
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, ist ebenfalls eine Reinitialisierung notwendig. Wenn ein solcher Fehler mit SMC_DI_GENERAL_COMMUNICATION_ERROR auftritt, ist folgende Fehlerbehandlung notwendig.
Fehlerbehandlung
Neustart des Feldbusses
Info
Sie können manche Feldbusse so konfigurieren, dass sie automatisch neu starten. Dabei ist es oft notwendig, dass Sie eine spezielle Fehlerbehandlung des Feldbusses durch IEC-Code hinzufügen.
⇒ Feldbuskommunikation startet
Neustart des Antriebs/Achse mit SMC3_ReinitDrive.
⇒ Antrieb/Achse startet.
Siehe auch
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 der Antrieb unterstützt, 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 der Antrieb unterstützt, 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 Funktionsbausteins MC_Stop, der einen Fehler meldet und die Achsen in den Zustand errorstop setzt.
Siehe auch
Wenn es der Antrieb unterstützt, 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.
Siehe auch
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.
|
SMC_nocontrol |
Kein gültiger Controller-Mode |
|
SMC_torque |
Moment/-Kraft-Regelung |
|
SMC_velocity |
Geschwindigkeitsregelung |
|
SMC_position, |
Lageregelung |
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.
Siehe auch
Referenzfahrt (antriebsgesteuert)
Sie können in SoftMotion einen Antrieb auf zwei Möglichkeiten 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.
Siehe auch
Abhängig davon, welche Funktionen der Antrieb zur Positionsermittlung der Antrieb unterstützt, können Sie die Position einer Achse auf mehrere Arten ermittelt:
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 vom Antrieb unabhängig 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. Siehe hierzu Kapitel "Lageregelung auf der Steuerung SM_Drive_PosControl".
Siehe auch