Einstieg in EtherCAT und HMI

clumsi

Level-1
Beiträge
137
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte demnächst den EtherCAT-Bus etwas näher kennen lernen, und habe schon die ersten Komponenten gekauft. Mit TwinCAT lässt sich scheinbar relativ schnell eine SPS mit KOP und FUP aufbauen, aber das möchte ich mir erst später anschauen.

Bisher programmiere ich Anlagen, die mit CANopen vernetzt sind. Mein Automatisierungsprogramm ist dabei eine normales Windows-Programm, geschrieben in C, mit dem ich messe (ni-Geräte) und steuere (z.B. I/O-Module). Die Steuerung von CAN-Teilnehmern erfolgt bis jetzt immer durch senden eines CAN-Frames, was ich mir in meinem Programm erst selbst zusammenbasteln muss. Das ist vielleicht nicht SPS-typisch (oder?), aber es hat bis jetzt immer gereicht, zumal das Programm noch andere Aufgaben hat. Mein "HMI" ist dann die Programmoberfläche, die aus Buttons und Anzeigeelementen besteht. Wenn ein Button angeklickt wird, ruft das Programm eine Funktion auf, und da steht drin, dass ein CAN-Frame mit bestimmten Inhalt gesendet wird.

Wie löst man so etwas am besten mit EtherCAT? Ich habe mit TwinCAT die Möglichkeit in C/C++ zu programmieren, oder auch FUP oder KOP anzuwenden, aber kann ich mir auch (ohne TwinCAT) ein *exe-Programm schreiben (beliebige IDE), dass unabhängig von einer SPS z.B. eine Lampe anschaltet?

Zweite Frage: Wenn ich nun doch TwinCAT anwende (wieder KOP, FUP), wie realisiert man dann am besten eine Visualisierung auf einem Display von Beckhoff? Wie funktioniert die Verbindung von Button drücken zum Routinenaufruf? Wie erstelle ich diese Oberflächen, die ich auf dem Display darstelle?
 
Hallo clumsi,

so wie du schreibst scheinst du direkt mit TwinCAT 3 und C++ einsteigen zu wollen.
In TwinCAT musst du die CAN-Frames nicht selbsts programmieren, sondern nur die SDO's und PDO's konfigurieren. Da du bereits C-Code hast, würde ich mit der EL6751 (CAN-Master) die Kommunikation aufbauen, in TwinCAT den CAN-Master konfigurieren, den existierenden C-Code für die Logik verwenden und dann müssen nurnoch die Datenpunkte vom CAN-Bus mit den Datenpunkten des C-Programmes verknüpft werden.

Leider gibt es für C++ bei TwinCAT 3 noch keine integrierte HMI. Hier müsstest du dir selbst etwas programmieren, indem du über ADS die Daten ausließt. Für ADS sind in der TwinCAT Installation bereits dll's für C++, VB, C#, Java usw. enthalten. Wenn du anstatt C++ jedoch nach IEC61131-3 programmierst, zum Beispiel in Structured Text (Mischung aus C und Pascal), kannst du die integrierte HMI verwenden, bei der du nur per Drag and Drop Elemente erzeugen und mit Daten aus dem Programm verknüpfen kannst.

Gruß, Neals
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Neals,

danke für Deine Antwort! Zum HMI: Kann ich also eine *.exe in beliebiger Programmiersprache und IDE programmieren, die auf ADS zugreift? Wie bekomme ich das ganze dann auf einen Beckhoff-PC? Das ganze soll natürlich auch alles von alleine starten, wen ich den Hauptschalter betätige, d.h. TwinCAT muss wahrscheinlich meine *.exe aufrufen, und die Verbindung herstellen, oder?

Zur generellen Programmierung: Wie kann ich in bestehende C-Programme, die erstmal nichts mit Steuerung und Automatisierung zu tun haben, einfache I/O-Befehle für EtherCAT einbauen?

Grüße,
clumsi
 
Zurück
Oben