Aus der Praxis: MELARECON als E/A-Device

Aus der Praxis: MELARECON als E/A-Device

Aus der Praxis: MELARECON als E/A-Device

Hallo und willkommen zur Serie „Aus der Praxis“. Heute möchte ich Ihnen zeigen, wie Sie unseren MELARECON als CANopen E/A-Device verwenden können. Wie Sie ja bereits wissen, besteht jede Produktentwicklung aus ein und dem selben Core. Dies bedeutet, dass Sie dieses Beispiel mit jedem MELARECON nachbauen können. Ich verwende in diesem Projekt unseren MELARECON IO. Dieser besteht, neben ein paar zusätzlichen graphischen Live Tiles und ein paar getätigten Voreinstellungen, im Prinzip nur aus dem eigentlichen Core und eignet sich so optimal als vollständiger CANopen-Node. Aber genug erzählt und ab in die Praxis. Schauen wir uns mal gemeinsam meinen Testaufbau an:

Testaufbau MELARECON IO: CX8010 von Beckhoff

SPS-Steuerung

In diesem Beispiel verwende ich einen CX8010 von Beckhoff. Ich verwende allerdings nicht die TwinCAT-PLC, sondern die Soft-SPS S7-315-SD von IBHSoftec. Diese ermöglicht mir die Programmierung mit Siemens TIA-Portal oder Step7. An den CX8010 habe ich den Buskoppler EL6751 angesteckt, welches ein CANopen Master ist. Mit einem seriellen SUB-D-9 Kabel verbinde ich den Buskoppler mit einer kleinen Box, um die Pins CAN-L, CAN-H und CAN-GND entnehmen zu können.

Testaufbau MELARECON IO: MELARECON Mainboard

MELARECON IO

Die nun offenen Leitungen des Buskopplers verbinde ich mit dem CAN2-Anschluss meines MELARECON IO. Weiterhin habe ich eine analoge Eingangskarte und eine digitale Ausgangskarte am MELARECON Mainboard angeschlossen. Sowohl SPS als auch das Mainboard habe ich mit dem Netzwerk verbunden.

Testaufbau MELARECON IO: Signalgeber und LED mit RGB

Signalgeber und Anzeige als LED

An den ersten Eingang meiner analogen Eingangskarte habe ich mal ein einfaches Poti angeklemmt. Ich versorge das Poti mit 5V. Weiterhin verwende ich die ersten drei digitalen Ausgänge dazu, eine LED mit den Kanälen RGB anzusteuern. Die Versorgung der potentialfreien Ausgänge habe ich mit 3,3V vorgenommen. Diese kann an den Pins 17 oder 19 der Steckplätze für digitale Eingangskarten entnommen werden.

Projektziel

In diesem Beispiel möchte ich, dass unterhalb einer Eingangsspannung von 2V die blaue LED angesteuert wird. Oberhalb von 4V soll die rote LED aufleuchten und in den Bereichen dazwischen soll die LED grün leuchten. Aus technischer Sicht sollte eine solche Umsetzung für jeden SPS-Programmierer machbar sein.

Konfiguration des MELARECON´s

Wie jeder MELARECON ist auch der MELARECON IO über VNC bedienbar. Das MELARECON Display ist somit für unser Beispiel nicht erforderlich. Wenn man sich mit dem Gerät verbindet, so wird man bereits folgende Ansichten auf dem Startbild sehen können.

Mit den Ansichten auf dem Startbild können Sie die Funktion Ihrer Aktoren und Sensoren direkt testen. In der Ansicht der digitalen Ausgänge können Sie per Klick auf die ersten drei Kanäle die Ausgänge in den Handbetrieb versetzen. Beim ersten Klick wird der Ausgang auf AUS gestellt. Der nächste Klick setzt den Ausgang in die Funktion EIN. Ein weiterer Klick setzt den Ausgang wieder auf Automatik.

Hand-0-Automatik Funktion bei MELARECON IO
Hand-0-Automatik Funktion bei MELARECON IO

Auch die Funktion des analogen Eingangs kann direkt getestet werden. Wechseln Sie auf die Ansicht analoge Eingänge. Der Kanal 3 zeigt die aktuelle Eingangsspannung an. Nun können Sie mit dem Poti das Signal verändern.

Ansicht des analogen Eingangs auf dem Startbild des MELARECON IO´s
Ansicht des analogen Eingangs auf dem Startbild des MELARECON IO´s

Nun wechsle ich im Installations-Menü nach „E/A-Konfiguration / Feldgeräte / CAN-Bus Slave (CAN2)“. Sie werden erkennen, dass der Bus-Anschluss bereits aktiv ist und mit einer Bit-Rate von 125kHz arbeitet. Die Bit-Rate können Sie verändern, wenn Sie die Schaltfläche „Stop“ betätigen. Wenn die gewünschten Einstellung getätigt worden sind, können Sie den Node wieder starten. Unter der Einstellung „Adresse“ kann die Bus-Adresse des Gerätes konfiguriert werden. Voreingestellt ist die 32.

Voreinstellungen des MELARECON IO´s für Node-Funktionalität
Voreinstellungen des MELARECON IO´s für Node-Funktionalität

Ich möchte nun das PDO des MELARECON IO´s etwas verändern. Als Voreinstellung werden im TPDO1 und TPDO2 die Multiplex-Kanäle übertragen. Hier möchte ich, dass beim TPDO1 statt des direkten ADC-Eingangs nun der analoge Eingang 3 übertragen wird. Hierzu öffne ich die Einstellungen über die Schaltfläche neben TPDO 1 und ändere die Einstellung auf „Analog input 3 (Mux1) (FLOAT)“. Die von uns vorbereitete EDS-File passt somit weiterhin.

Anpassung der PDO-Einstellungen
Anpassung der PDO-Einstellungen

Für unser kleines Beispiel-Projekt sind dies bereits alle notwendigen Einstellungen. Im nächsten Schritt kümmern wir uns um die Konfiguration der SPS.

Konfiguration von TwinCAT

Um die Konfiguration des CX8010 vornehmen zu können, benötigen wir TwinCAT 2 von Beckhoff. Hierzu starte ich den TwinCAT System Manager und lege ein neues Projekt an.

TwinCAT System Manager
TwinCAT System Manager

Wählen Sie nun „Zielsystem wählen…“ und gehen Sie im folgenden Dialog auf „Suchen (Ethernet)“. Ich führe nun einen „Broadcast Search“ aus und erhalte eine Liste aller im Netzwerk befindlichen CX-Geräte. Mein eigenes Gerät wähle ich nun aus und betätige die Schaltfläche „Route zufügen“. Danach kann der Dialog geschlossen werden. Im darunter liegenden Dialog wähle ich nun mein Gerät aus.

CX8000 suchen und Route zufügen
CX8000 suchen und Route zufügen

Im nächsten Schritt aktiviere ich den Konfig-Modus, um daraufhin die Konfiguration des CX8010 automatisch auslesen zu können. Der Konfig-Modus kann über das Menü „Aktionen / Starten/Restarten von TwinCAT in Konfig-Modus“ gestartet werden. Nun kann ich, durch einen Klick mit der rechten Maustaste auf E/A Geräte, den Menüpunkt „Geräte Suchen…“ im Kontextmenü wählen.

Geräte automatisch suchen lassen
Geräte automatisch suchen lassen

Nun sollte TwinCAT die Konfiguration automatisch auslesen. Folgen Sie dabei den Anweisungen. Achten Sie darauf wenn Sie nach der Baudrate für den Buskoppler gefragt werden, dass Sie hier die selbe Bit-Rate einstellen, wie am MELARECON gewählt wurde.

Erfolgreich erstellte Konfiguration
Erfolgreich erstellte Konfiguration

Für den Buskoppler wurde nun ein separates Gerät hinzugefügt. Im Kontextmenü dieses neuen Gerätes kann mit der Auswahl „Box Anfügen…“ ein neuer Node hinzugefügt werden. Im darauf folgenden Dialog wähle ich ganz unten unter „Verschiedenes“ den Punkt „CANopen Node“ und bestätige die Auswahl mit „OK“.

CANopen Node hinzufügen
CANopen Node hinzufügen

Der neue Node wurde nun hinzugefügt. Im Kontextmenü von diesem neuen Node (Box) wähle ich „Lade PDOs aus EDS Datei…“ und wähle die passende EDS-Datei für unseren MELARECON. TwinCAT übernimmt nun automatisch die PDO-Einstellungen aus der gewählten Datei. Weitere Einstellungen für den neuen Node findet man unter dem Tab „CAN Node“ des Gerätes. Hier können Sie z.B. die korrekte Adresse einstellen. Ich wähle hier natürlich die Id 32.

Einstellungen des Node´s
Einstellungen des Node´s

Auf dem Tab SDOs können zusätzliche Parametrierungen vorgenommen werden, die bei der Initialisierung vom Master an den Node gesendet werden. In den Voreinstellungen des MELARECON IO´s sind die Interrupts für die analogen Eingänge deaktiviert. Daher füge ich hier einen neuen Eintrag hinzu für Index 0x6423; Subindex 0 mit dem Wert 1. Dadurch wird die Übertragung von analogen Werten mittels PDO aktiviert. In den Voreinstellungen sind alle analogen Eingangskanäle so konfiguriert, dass diese ihren ADC-Eingangswert übertragen. Dies entspricht einem Wert zwischen 0 und 3,3V. Hierfür mache ich einen weiteren Eintrag für Index 0x4200; Subindex 3 mit dem Wert 1 für 0..10V. Hier können auch weitere Initialisierungen vorgenommen werden. Zum Beispiel wäre es sinnvoll das Guarding zu aktivieren, um die Ausgänge abzuschalten, wenn die SPS ausfallen sollte. Weiterhin kann für jeden Analogwert eine minimale Veränderung konfiguriert werden, bevor ein Interrupt überhaupt auslösen soll. Alle Einstellungsmöglichkeiten sind aber in der Dokumentation zu finden.

Die E/A ist mit diesem Schritt eigentlich bereits fertig konfiguriert worden. Was wir nun noch machen müssen, ist das Mapping. Hierzu öffne ich „SYSTEM – Konfiguration“ im linken Baum vom TwinCAT System Manager und lege mit dem Kontextmenü unter „Zusätzliche Tasks“ einen neuen Task an. Unter Ein- und Ausgängen des neuen Task´s lege ich jeweils neue Variablen an. Bei den Eingängen lege ich eine Variable mit dem Namen Poti an. Als Variablentyp wähle ich FLOAT. Diesen verknüpfe ich mit dem Eingang „Analog Input Float ADC0“ unter TxPDO 2. Dies ist ja unser Messwert des angeschlossenen Poti´s. Weiterhin setze ich im Tab Flags die Einstellungen „Tausche LOBYTE und HIBYTE“ und „Tausche LOWORD und HIWORD“. Dies ist notwendig, weil die Siemens-Architektur die Werte etwas anders interpretiert.

Unter Ausgänge lege ich nun eine Variable vom Typ DWORD mit dem Namen D-Outputs an. An den Bit-Positionen 0 bis 2 dieser erstellten Variable liegen später unsere 3 digitalen Ausgänge. Die Variable verknüpfe ich mit der Prozess-Variable „Write Output Long1“ vom RxPDO 1.

Neuer Task mit Ein- und Ausgangsvariablen
Neuer Task mit Ein- und Ausgangsvariablen

Als letzten Schritt muss die erstellte Konfiguration aktiviert werden. Dies funktioniert indem man unter „Aktionen“ den Punkt „Aktiviert Konfiguration…“ wählt. Nun ist es Zeit das S7-Programm zu erstellen.

Entwicklung S7-Programm

In diesem Beispiel nutze ich nochmal den älteren Step-7 Manager von Siemens. Die Funktionsweise im TIA-Portal ist aber ähnlich. Ich erstelle zunächst ein neues S7-Projekt und nehme die notwendigen Hardware-Konfigurationen vor. Eine genauere Vorgehensweise ist in den Dokumentationen von IBHSoftec zu finden. Bevor ich mit der Entwicklung des S7-Programms beginne, erstelle ich mir erst einmal eine Variablen-Tabelle, um die Ein- und Ausgänge zu testen.

Testen der Ein- und Ausgänge
Testen der Ein- und Ausgänge

Durch das getätigte Mapping in TwinCAT finde ich meine Ausgangszustände unter O0.0 bis O0.2. Den aktuellen Messwert des Potis erhalte ich unter ID0. Wenn ich nun O0.1 auf true setze, so wird bei mir die LED rot leuchten. O0.0 ist grün und O0.2 blau. Wird nun das Poti bewegt, wird man feststellen, dass bereits der korrekte Spannungswert angezeigt wird.

Nun brauchen wir nur noch das Anwenderprogramm schreiben und in die SPS laden.

Beispiel für S7-Programm
Beispiel für S7-Programm

Funktionsprüfung

Wenn ich mit meinem Poti nun einen Wert > 4V einstelle, so leuchtet die LED rot. Wenn ich ein wenig wieder zurück drehe, erscheint wieder grün. Stelle ich eine Spannung von unter 2V ein, so wird der Kanal für blau angesteuert.

Funktionsprüfung des Projekts
Funktionsprüfung des Projekts

Fazit

Dieses Beispiel zeigt exemplarisch, wie man einen MELARECON IO an eine beliebige SPS mittels CANopen anbinden kann. Es zeigt auch, dass generell kaum Einstellungen notwendig sind, um die Anbindung in Betrieb zu bekommen.

Im nächsten Beitrag dieser Serie zeige ich, was mit unserem intelligenten IO-Modul noch alles möglich ist.