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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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“.
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.
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.
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.
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.
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.
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.