PAU Versuch C Sommersemester 2017 OTH Regensburg Praktikum PAU (Studiengang Mechatronik) Anleitung Versuch C WAGO-IO-System 750 1 Einleitung Dieser Versuch soll die Grundlagen im Umgang mit dem WAGO-IO-System 750 vermitteln. Bei dem WAGO-IO-System 750 handelt es sich um modulares IO-System, bei dem die IO- und Sonderklemmen mit Hilfe eines sogenannten Kopplers an einen Feldbus angeschlossen werden. Für das Praktikum wird der 750-841 ETHERNET TCP/IP - Buscontroller verwendet. Neben der Aufgabe der Ankopplung an das HS-Netzwerk zu ermöglichen, verfügt der Controller auch über eine integrierte SPS nach IEC 61131-3. 2 Theorie und Vorbereitung Abbildung 1 zeigt Aufbau eines Feldbuscontrollers. Über ein handelsübliches Netzwerkkabel kann er in bestehende Netzwerke eingebunden werden. Über den K-Bus können unterschiedlichste IOund Sonderklemmen angeschlossen werden. Abbildung 1: Aufbau Feldbuscontroller Auf die Funktionen der IO- und Sonderklemmen, kann dabei sowohl über die integrierte SPS als auch über den Feldbus (hier Ethernet mit Modbus-Protokoll) zugegriffen werden. Hierbei ist jedoch zu beachten, dass der schreibende Zugriff immer nur einem der beiden System zu Verfügung steht. Der Feldbus-Controller kann sowohl als eigenständige SPS ohne Anbindung zum Feldbus betrieben werden, als auch als entfernte IO-Schnittstelle für den PC. Zur Kommunikation zwischen der SPS und dem Feldbuskoppler stehen die Feldbusvariablen zur Verfügung. Abhängig von ihrer Richtung können sie jeweils von einem der beiden Systeme beschrieben und gelesen werden, wohingegen das andere System nur lesenden Zugriff hat. So dienen die FB_IN-Variablen zum Senden von Information von PC zur SPS und die FB_OUT-Variablen zum Senden von Informationen von der SPS zum PC. 1 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 2: Bit-Zugriffe Sämtlichen IO-Klemmen und Feldbusvariablen werden automatisch Adressen zugewiesen. Diese unterscheiden sich jedoch, da für die SPS und das Modbus-Protokoll verschieden Nomenklaturen verwendet werden. Diese Adressen kann sowohl über Word(16bit)- als auch über Bit-Zugriffe angesprochen werden. Die Abbildungen 2 und 3 zeigen die verwendeten Adressen. 2 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 3: Word-Zugriffe Abbildung 4: FB_In-Variable und zugehörige Adressen Abbildung 4 zeigt ein Beispiel für eine FB_In-Variable. In der SPS-Nomenklatur hat sie die Adresse IX256.0. Für sie ist zur Vereinfachung der Alias FB1 definiert worden, welcher in der Programmierumgebung verwendet werden kann. Tabelle 1 zeigt die Adressen, die für den Zugriff via Modbus-Protokoll verwendet werden müssen. Bei einem Wordzugriff auf die SPS-Adresse IX256 entspricht das LSB der betrachteten FB-Variable. 3 PAU Versuch C Sommersemester 2017 Lesen Bit-Zugriff OTH Regensburg Schreiben 8192 (0x2000) 4096 (0x1000) oder 8192 (0x2000) Word-Zugriff 768 (0x300) 256 (0x100) oder 768 (0x300) Tabelle 1: Adressen für FB In-Varible im Modbus-Protokoll 3 Aufgabenstellung Arbeiten Sie die Abschnitt 4 angegeben Aufgaben durch. Scheuen Sie auch nicht davor zurück Kleinigkeit selbstständig auszuprobieren. Die Steuerungen sollten robust genug sein, dies zu überleben! Und zur Not hat man für die Zukunft wieder etwas gelernt! Die Onlinehilfe der Entwicklungsumgebung ist sehr ausführlich und gut sortiert. Mindestens eine Aufgabe sollte mit AWL und eine mit FUP programmiert. Nutzung von KOP, ST usw. ist aber optional. 4 Versuchsdurchführung Starten sie die Entwicklungsumgebung CoDeSys V2.3 und legen sie ein neues Projekt an. Abbildung 5 zeigt die benötigten Einstellungen. Abbildung 5: Einstellungen für neues Projekt Anschließenden legen Sie den Programm-Baustein PLC_PRG an (Abbildung 6). Dieser hat die Aufgabe des Hauptprogramms ähnlich wie Sie es aus C kennen und entspricht den OB1 aus der Siemens S7. 4 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 6: Anlegen eines neuen PLCProgramms Abbildung 7 zeigt das erzeugt Programm. Im oberen Teil des Fensters ist der Bereich für die Variablendeklarationen. Alle Variablen, die in diesem Bereich deklariert werden, gehören zum Programm PLC_PRG. Um innerhalb des Programms auf sie zugreifen zu können, reicht ihr Name. Von außerhalb muss der Name des Programms bzw. der Instanz des Programms, wie aus C++ bekannt, vorangestellt werden. Dies wird später noch verdeutlicht. Im unteren Teil befindet sich das eigentliche Programm. Da Sie zu Beginn nur die Ausgänge der Steuerung ohne SPS testen sollen, müssen Sie das bereits angelegte Netzwerk löschen, da sonst das Projekt nicht richtig übersetzt werden kann. Abbildung 7: Programmfenster Anschließenden müssen Sie in ihrem Projekt die hardwaremäßig angeschlossenen IO-Klemmen einbinden. Zu diesem wechseln Sie bei den in Abbildung 8 zu sehenden Reitern auf den Reiter Ressourcen und öffnen Sie die Steuerungskonfiguration. Mit diesen Reitern können Sie auch zwischen den verschieden Fenstern wechseln. Abbildung 8: Oberfläche CoDeSys Mit einem RMB (Right Mouse Button Click) auf K-Bus[FIX] und Unterelement anhängen gelangen Sie zum in Abbildung 9 zu sehnenden Fenster. Dort wählen Sie die angeschlossenen IOKlemmen nacheinander in der gleichen Reihenfolge wie bei der Hardware aus. Die 5 PAU Versuch C Sommersemester 2017 OTH Regensburg Bauteilnummern finden sie am unteren Rand der entsprechenden Klemmen. Abbildung 9: Klemmenauswahl Abbildung 10: Konfiguration K-Bus Falls im Programm mehrere gleiche Nummern vorhanden sind, verwenden Sie die mit den wenigsten Zusätzen. Den FB-Controller und die Abschlussklemme (750-600) müssen sie nicht einbauen. Es sollte sich ein ähnliches Bild wie in Abbildung 10 ergeben. In der Steuerungskonfiguration können den Ein- und Ausgängen auch Alias-Adressen zugewiesen werden. Diese sind dann als globale Variablen zu verstehen, da von überall auf sie zugegriffen werden kann. Um einen Alias zu vergeben, müssen Sie zwischen den Pfeilen und den AT klicken. Der genaue Punkt ist etwas umständlich zu finden. Abbildung 11 zeigt den ungefähren Punkt. 6 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 11: Vergabe von AliasAdressen Als nächstes sollen Sie die Steuerung der IO-Klemmen via Ethernet testen. Zu diesem Zweck müssen Sie ihr bisher erstelltes Projekt auf den Feldbuscontroller übertragen. Hierfür müssen Sie zunächst überprüfen, ob die richtige IP-Adresse eingestellt ist. Dies können sie über das Menü Online ! Kommunikationsparameter. . . , dort sollte die Einstellung ähnlich wie Abbildung 12 sein. Die IP-Adresse Ihres Feldbuscontrollers lautet 194.95.205.14x, wobei das x für die Platznummer steht. Abbildung 12: Einstellen IPAdresse Nach dem Einloggen in die Steuerung über das Menü Online ! Einloggen Start sollten Sie über die Steuerungskonfiguration den aktuellen Zustand der Eingänge sehen können und die Ausgänge schalten können. Der Zustand wird dabei über die weißen ( ^= logisch Null) und blauen ( ^= logisch Eins) Quadrate neben den Ein- und Ausgängen, wie in Abbildung 13 zu sehen ist. 7 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 13: IO-Steuerung via Steuerungskonfiguration Die Steuerung der Ein- und Ausgänge über die Entwicklungsumgebung ist, für kommerzielle Zwecke in der Regel nicht sehr sinnvoll, da so der Kunde über das vollständige Programm verfügen würde, und eigenständige Änderungen durchführen könnte. Aus diesem Grund sollen Sie nun die IO-Klemmen via dem zur Verfügung gestellten Demo-Programm für die Modbus-DLL testen. Das Programm VC7App1_Modbus-DLL ist auf allen Laborrechnern installiert. Sie können direkt die kompilierte Version starten. Bei Interesse können Sie sich aber auch gern mit dem vorliegenden Quellcode vertraut machen, dies ist jedoch nicht zwingend nötig! Abbildung 14 zeigt die Oberfläche des Demoprogramms. Abbildung 14: Modbus-DLL Demoprogramm Loggen Sie sich mit dem Demoprogramm auf ihrem Feldbuscontroller ein. Testen Sie zunächst, ob Sie die momentanen Zustände der Ein- und Ausgänge lesen können. Welche Adressen benötigen Sie hierfür? Anschließend testen Sie, ob sie die Ausgänge steuern können. Für den Bit-Zugriff bitte true und false verwenden. Es sollte nicht möglich sein. Grund hierfür ist, dass die Steuerung der Ausgänge standardmäßig nur durch die SPS erfolgt. Wechseln Sie zurück zur Entwicklungsumgebung und loggen sie sich aus (Online ! Ausloggen), sofern noch nicht geschehen. Anschließend ändern Sie in der Steuerungskonfiguration die Zugriffssteuerung des Ausgangsbausteins von PLC auf fieldbus1 um, wie in Abbildung 15 zu sehen. 8 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 15: Umstellung Zugriffssteuerung Um die Änderungen auf die Steuerung zu übertragen loggen sie sich wieder auf dem Feldbuscontroller ein. Testen Sie nun noch einmal den schreibenden Zugriff auf den Ausgangsbaustein. Nach dem erfolgreichen Test mit den richtigen Adressen (Welche?) stellen Sie bitte wieder auf PLC zurück, da im weiteren Verlauf nun die SPS-Funktionalität benötigt wird. Abbildung 16: SPS-Programm Als nächstes legen Sie das in Abbildung 16 an. Die Variablendefinitionen für Bausteine werden dabei automatisch erzeugt, sobald sie den Bausteinen einen Namen vergeben. Das entsprechende Fenster hierfür sehen sie in Abbildung 17. Sollten Sie die Variablendefinition doch von Hand vorgenommen haben, erscheint dieses Fenster nicht! Die Benennung der Bauteil stellt lokale Variablen dar! Das bedeutet der TP-Baustein T1 ist eine lokale Variable im SPS-Programm PLC_PRG. 9 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 17: Dialog Variablendeklaration Zum Ausprobieren übertragen Sie das Programm an den Feldbuscontroller und starten Sie es unter dem Menü Online ! Start. Nach dem Testen des TP-Bausteines ändern Sie ihn sowohl in einen TON- als auch TOF-Baustein um. Hierzu müssen Sie jeweils den Baustein und seine Definition im Variablenbereich ändern. Für Änderungen am Programm müssen Sie sich jeweils aus der Steuerung ausloggen. Geben Sie die Unterschiede zwischen den drei Timer-Bausteinen an. Stellen Sie wieder auf TP zurück und ergänzen Sie das Programm so, dass ein Takt auf einem der beiden Ausgänge angezeigt wird. Auf den Ausgang Q des Timers T1 kann mit T1.Q zugegriffen werden. In nächsten Schritt erweitern Sie das Programm noch um einen Zähler (CTU) welcher mit dem Takt hoch zählen soll. Erreicht er einen bestimmten Wert soll der zweite Ausgang gesetzt werden. Mit dem verbleibenden Eingang soll der Zähler zurückgesetzt werden können. Welche anderen ZählerBausteine gibt es? Das erstellte Programm läuft nun unabhängig von der Außenwelt auf der SPS. Um von außen Einfluss nehmen zu können erweitern sie dass Programm nun um die in Tabelle 2 aufgeführten Feldbusvariablen. Name Richtung Bit/Word Funktion FB1 In Bit Enable für Hochzählen FB2 In Bit Alternativer Reset für Zähler FB3 In Word Wert für Ausgabe FB4 Out Word Zählerwert abfragen Tabelle 2: Feldbusvariablen Nachdem Sie alle Variablen in der Steuerungskonfiguration eingebaut haben, müssen sie noch mit einem RMB auf Fieldbus variables[FIX] und Adressen berechnen sicherstellen, dass allen Variablen die richtigen Adressen zugewiesen werden. Testen Sie nun die Einflussnahme auf die SPS mit Hilfe des Modbus-DLL Demoprogrammes. Welche Modbus-Adressen benötigen Sie für hierfür? Als letzte Teilaufgabe erstellen Sie nun eine Web-Visualisierung, mit welcher Sie die SPS über einen Web-Browser steuern können. Zum Anlegen der Visualisierung wechseln Sie zum Reiter Visualisierung mit einem RMB auf Visualisierung und Objekt einfügen legen Sie diese an. Verwenden Sie unbedingt den Namen PLC_VISU! Abbildung 18 zeigt die zu erstellende Visualisierung. Auf der Linken Seite sind zwei Buttons zum Steuern der Feldbusvariablen FB1 und FB2. In der Mitte sollen die aktuellen Zustände der physikalischen Ein- und Ausgänge über Rechtecke dargestellt werden. Rechts oben wird der aktuelle Zählerwert dargestellt. Rechts unten kann der Vergleichswert eingegeben werden. 10 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 18: Visualisierung Nachdem Sie alle Elemente angelegt haben, können Sie deren Eigenschaften mit einem RMB auf das jeweilige Element und Konfigurieren einstellen. Bei den Buttons tragen Sie den anzuzeigenden Text unter dem Punkt Text ein. Die Steuerung der zugewiesenen Variablen erfolgt wie in Abbildung 19 zu sehen. Dabei soll FB1 getoggelt werden und FB2 getastet. Was ist der Unterschied? Abbildung 19: Buttons konfigurieren Die Rechtecke sollen je nach Zustand zwischen verschieden Farben wechseln, dies kann, wie in Abbildung 20 zu sehen, erreicht werden. Unter dem Punkt Variablen muss bei Farbwechsel die Variable eingetragen werden, auf welche reagiert werden soll. Ist diese Variable Null wird die normale Farbe dargestellt bei einer Eins die Alarmfarbe. Die Farben müssen unter dem Punkt Farben eingestellt werden. 11 PAU Versuch C Sommersemester 2017 OTH Regensburg Abbildung 20: Rechteck konfigurieren Für die Ausgabe des Zählerwertes muss bei dem Punkt Text bei Inhalt %d und bei Variablen unter Textausgabe der Name der Variablen eingetragen werden. Hier können Sie mit PLC_PRG.Z1.CV direkt auf den Zähler zugreifen oder die Feldbusvariable FB4 verwenden. Für die Texteingabe muss wie bei der Textausgabe unter dem Punkt Text bei Inhalt %d und bei Variablen unter Textausgabe der Name der Feldbusvaribalen eingetragen werden. Des Weiteren müssen bei Eingabe die Einstellungen vorhanden sein, wie in Abbildung 21 zu sehen. Abbildung 21: Texteingabe konfigurieren Testen können Sie Ihre Web-Visualisierung im einem Webbrowser, indem sie dort die IP-Adresse Ihres Feldbuscontrollers eingeben und auf der erscheinenden Webseite links unten auf WebVisu klicken. Sollte die Visualisierung, trotz korrekter Einstellungen nicht richtig funktionieren, müssen Sie die entsprechende Datei von Hand in die Steuerung schreiben. Es handelt sich dabei um die 12 PAU Versuch C Sommersemester 2017 OTH Regensburg Datei plc_visu.xml im Ordner C:\Programme\WAGO Software\CoDeSys V2.3\Compile. Die Datei können Sie mit Online ! Datei in Steuerung schreiben übertragen. 5 Abgabe Abzugeben ist ein Webseitendarstellung in .html oder .php Code mit Hauptseite index.html. Sie dürfen Bilde und Grafik alle Art nutzen. Die Abgabe erfolgt in elektronischer Form (per E-Mail als OpenOffice, Text, .html oder .php Code) bis spätestens eine Woche nach dem Versuchstermin. 13