CNC-Beispiel 1: OutQueue direkt erzeugen
Sehen Sie hierzu das Beispielprojekt CNCdirect.project im Installationsverzeichnis von CODESYS.
Dieses Beispiel zeigt ein CNC-Programm mit zwei Achsen. Dabei werden 4 Positionen in der XY-Ebene mit einer definierten Geschwindigkeit und Beschleunigung angefahren. Durch das Programm werden auf der Bahn zwei Wegschaltpunkte gesetzt.
NC-Programms 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 Übersetzungsmodus SMC_OutQueue.
Geben Sie folgende Bewegungssätze ein:
Siehe auch
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 und Y_Drive ein.
Stellen Sie den Parameter Achsentyp auf Begrenzt (1).
Siehe auch
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.
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 Eingang poqDataIn die Adresse des erstellten CNC-Programms. Zudem muss die IEC-Task-Zykluszeit auf den Eingang dwIpoTime geschrieben werden. Diese können Sie entweder als konstanten Wert am Eingang dwIpoTime eingeben oder Sie benutzen die Variable dwCycle der Achsgruppen-Struktur aus der Steuerungskonfiguration. Dies hat den Vorteil, das automatisch die richtige Zeit als Interpolator-Eingang verwendet wird, wenn Sie die Zykluszeit der Task ändern.
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.
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 Ausgang StopIpo mit dem Eingang bEmergency_Stop des Interpolators und den Interpolator-Ausgang iStatus mit den entsprechenden Eingängen der Achskontroll-Bausteine.
Achten Sie bei der Programmierung mit CFC vor allem auch auf die richtige Reihenfolge der Bausteine!
Siehe auch
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.
Ü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.