CNC-Beispiel 01: OutQueue direkt erzeugen
Sehen Sie hierzu das Beispielprojekt CNC01_direct.project
im Installationsverzeichnis von CODESYS unter ..\CODESYS SoftMotion\Examples
.
Dieses Beispiel zeigt ein CNC-Programm mit zwei Achsen. 4 Positionen in der XY-Ebene werden mit einer definierten Geschwindigkeit und Beschleunigung angefahren. Durch das Programm werden auf der Bahn zwei Wegschaltpunkte gesetzt. Das Programm wird durch Verwenden des Übersetzungsmodus SMC_OutQueue direkt in eine Datenstruktur geschrieben.
NC-Programme im CNC-Editor erstellen
Erstellen Sie ein Projekt
CNCdirect
mit einer SoftMotion-Steuerung.Fügen Sie ein Object CNC-Programm mit dem Namen
Example
ein.Wählen Sie dabei die Implementierung
Din66025
und den ÜbersetzungsmodusSMC_OutQueue
.Geben Sie folgende Bewegungssätze ein:
CNC-Editor:
Drive Interface, Steuerungskonfiguration erstellen
Definieren Sie wie folgt eine Antriebsstruktur mit 2 linearen Antrieben:
Fügen Sie unterhalb des SoftMotion General Axis Pool zwei virtuelle Antriebe
X_Drive
undY_Drive
ein.Stellen Sie den Parameter Achsentyp auf
Begrenzt
(1).Konfigurationseditor:
IEC-Programm erstellen
Fügen Sie der Applikation ein neues CFC-Programm Ipo hinzu und konfigurieren Sie dafür eine zyklische Task mit einem Intervall von 3 ms.
Aktivieren Sie die Antriebe mit dem Funktionsbaustein
MC_Power
.Bausteine:
Fügen Sie nun den Baustein
SMC_Interpolator
ein. Der Baustein überführt eine durch GEOINFO-Objekte beschriebene Bahn in diskrete Bahnpunkte. Der Baustein erhält am EingangpoqDataIn
die Adresse des erstellten CNC-Programms. Zudem muss die IEC-Task-Zykluszeit auf den EingangdwIpoTime
geschrieben werden. Diese können Sie entweder als konstanten Wert am EingangdwIpoTime
eingeben oder Sie benutzen die VariabledwCycle
der Achsgruppen-Struktur aus der Steuerungskonfiguration. Dies hat den Vorteil, dass automatisch die richtige Zeit als Interpolator-Eingang verwendet wird, wenn Sie die Zykluszeit der Task ändern.Baustein:
In unserem Beispiel soll ein Portalsystem gesteuert werden. Fügen Sie deshalb eine Instanz der Rückwärts- und Vorwärtstransformationsbausteine aus der Bibliothek
SM_Trafo
ein. Der Vorwärtstransformationsbaustein erhält als Eingänge die Antriebe, der Rückwärtstrafobaustein muss die Soll-Position des Interpolators erhalten. Die Vorwärtstransformation wird im Beispiel nur für die Visualisierung benötigt.Funktionsbausteininstanz:
Die Ausgänge des Bausteins, also die Achskoordinaten, müssen nun auf die Antriebe geschrieben werden. Dies erfolgt mit dem Funktionsbaustein
SMC_ControlAxisByPos
. Da die Applikation nicht gewährleistet, dass die Ausgaben des Interpolators stetig sind, (zum Beispiel endet die Bahn an einem anderen Punkt als sie anfängt), aktivieren Sie die Sprungvermeidung (bAvoidGaps
,fGapVelocity
,fGapAcceleration
,fGapDeceleration
). Danach verbinden Sie den AusgangStopIpo
mit dem EingangbEmergency_Stop
des Interpolators und den Interpolator-AusgangiStatus
mit den entsprechenden Eingängen der Achskontroll-Bausteine.Achten Sie bei der Programmierung mit CFC vor allem auch auf die richtige Reihenfolge der Bausteine!
CFC:
Bedien- und Testoberfläche erstellen
Binden Sie in eine neue Visualisierung zwei Visualisierungsobjekte ein: das Template des Interpolators und das Template der Transformation. Diese müssen Sie über das Platzhalterkonzept mit den entsprechenden Bausteininstanzen (hier: Ipo.smci
und Ipo.trafof
) verknüpfen.
Inbetriebnahme
Übersetzen Sie das erstellte Programm und starten sie es. Das Programm führt die CNC-Bewegung aus, sobald der Eingang Execute
des Interpolators gesetzt wurde. Wenn das Programm vollständig abgefahren ist, können Sie es durch eine neue steigende Flanke erneut starten.
Bitte beachten Sie auch die Funktion der Wegschalter, die in der Visualisierung des Interpolations-Bausteins ebenfalls dargestellt sind.