PiXtend V2 -SSoftwarehandbuch

Größe: px
Ab Seite anzeigen:

Download "PiXtend V2 -SSoftwarehandbuch"

Transkript

1 PiXtend V2 -SSoftwarehandbuch Stand , V.8 Qube Solutions UG (haftungsbeschränkt) Arbachtalstr. 6, 728 Eningen, Germany

2 Versionshistorie Version Datum Beschreibung Bearbeiter Dokument erstellt, erste Version RT CODESYS Package Name geändert auf PiXtend V2 Professional for CODESYS RT Signalisierung für LED L hinzugefügt RT Bezeichnung des SD-Image von Linux Tools zu Basis angepasst. Basis Image enthält mehr als nur die klassischen PiXtend Linux Tools TG Informationen zu OpenPLC hinzugefügt RT CODESYS E/A-Abbild Übersicht und Parameter Beschreibung für PiXtend V2 -S- hinzugefügt RT CODESYS Retain Speicher Beispiel erstellt RT Umstellung der Python Library V2 auf Version.., hier wurde ein Fehler behoben der die Verwendung der GPIO PullUps verhinderte. RT Raspberry Pi 3 B+ wurde als kompatibles Modell hinzugefügt. RT 2 / 99

3 Inhaltsverzeichnis. Hinweise zu dieser Dokumentation Gültigkeitsbereich Urheberschutz Wortmarken und Bildmarken Symbole Wichtige Erläuterungen Änderungsvorbehalt Bestimmungsgemäße Verwendung Technischer Zustand Zulassungen Sicherheitshinweise Haftungsausschluss Kontaktinformationen Hilfestellung erhalten Überblick Voraussetzungen Lizenzen Basis Wissen Definition sicherer Zustand SPI-Kommunikation, Datenübertragung und Zykluszeit Retain-Speicher (dt. Remanenz) SD-Karte für Ihren Raspberry Pi vorbereiten Raspbian Anmeldedaten (Login) Kompatibilität der Software-Komponenten Serielle Schnittstelle aktivieren CODESYS Hinweise Urheberrecht von Texten und Bildern: Kompatibilität Voraussetzungen Systemanforderungen für CODESYS Benötigte Hardware Installation der benötigten Software Komponenten CODESYS Entwicklungsumgebung CODESYS Control for Raspberry Pi installieren Bootfähiges SD-Karten-Image für den Raspberry Pi erstellen PiXtend V2 -S- CODESYS Gerätetreiber installieren Weitere Schritte CODESYS Projekt erstellen / 99

4 7.5.. Schritt für Schritt zum ersten PiXtend V2 -S- CODESYS Programm Schritt für Schritt zur ersten CODESYS Webvisu CODESYS RS232 Kommunikation Voraussetzungen Anschluss des Kabels Vorbereitung Linux Terminal Programm CODESYS CODESYS PiXtend Retain Speicher Vorbereitung Programm erstellen Weitere Informationen PiXtend V2 -S- SPI Device SPI Device Parameter I/O Übersicht FAQ Häufig gestellte Fragen und Fehlerbehandlung CODESYS Raspberry Pi Runtime und PiXtend V2 -S RS232 Kommunikation pxdev Linux Tools & Library Hinweise Einsatzbereiche pixtendtool2s Einzelbefehle für PiXtend V2 -S Einsatzbereiche pxauto2s GUI für PiXtend V2 -S Einsatzbereiche PiXtend/PiXtend V2 -S- C-Library Voraussetzungen Verwenden des PiXtend V2 Basis Images Manuelle Installation von pxdev Vorbereitung und Installation SPI-Bus aktivieren Verwendung des pixtendtool2s Beispiele Weitere Schritte Verwendung von pxauto2s Navigation Felder editieren C-Library pxdev Voraussetzungen Vorbereitung Erstellen eines neuen Ordners und eines C-Files Einbinden der Bibliotheken Programmierung Beispielprogramm Kompilieren und Ausführen des Programms Frequently Asked Questions (FAQ) / 99

5 . FHEM Voraussetzungen Installation Installation von FHEM Integration des Moduls Anpassung des Systems Modulbeschreibung Anlegen eines neuen PiXtend V2 -S--Geräts Internals Set-Kommandos Get-Kommandos Readings Attribute Beispiele Darstellen von Sensorwerten Ein- und Ausgänge entprellen und verknüpfen Servo-Motor ansteuern Frequently Asked Questions (FAQ) PiXtend Python Library V2 (PPLV2) Voraussetzungen Installation mit PiXtend V2 -S- Image Installation auf original Raspbian Vorbereitung PiXtend Python Library V2 installieren Programmierung Beispiel-Verzeichnis Beispiel ausführen Eigenes Programm erstellen Kurzübersicht Python Programm automatisch starten Verwendung der seriellen Schnittstelle Frequently Asked Questions (FAQ) OpenPLC Project Voraussetzungen Installation Vorbereitung OpenPLC Runtime Installation Programmierumgebung Programmierung Hello World Programm Programm auf PiXtend übertragen Weitere Informationen Verfügbare PiXtend I/Os / 99

6 Umgang mit Tasks im OpenPLC Editor OpenPLC Runtime automatisch starten Frequently Asked Questions (FAQ) FourZeroTM Unterstützung Anhang Prozessdaten Prozessdaten im Überblick Ausgangsdaten Ausgangsdaten DAC Eingangsdaten Control- & Status-Bytes Control-Bytes im Überblick Status-Bytes im Überblick Beschreibung der Control-Bytes Beschreibung der Status-Bytes Fehler-LED L - Signalisierung Abbildungsverzeichnis Tabellenverzeichnis / 99

7 . Hinweise zu dieser Dokumentation Bewahren Sie diese Dokumentation auf! Diese Dokumentation ist Bestandteil des Produkts und ist während der gesamten Nutzungsdauer des Produkts aufzubewahren. Wird das Produkt weitergegeben oder veräußert, so ist dieses Dokument dem nachfolgendem Benutzer auszuhändigen, dies schließt ggf. erhaltene Erweiterungen zu dieser Dokumentation mit ein... Gültigkeitsbereich Die vorliegende Dokumentation gilt ausschließlich für die im Inhaltsverzeichnis genannten Softwarekomponenten und für PiXtend V2 -S- Geräte in den folgenden Ausführungen: - PiXtend V2 -S- Extension Board (QS-Artikelnummer: 6) - PiXtend V2 -S- eplc Basic (QS-Artikelnummer: 6) - PiXtend V2 -S- eplc Pro (QS-Artikelnummer: 62) Die Dokumente für die Vorgängerserie PiXtend V.x finden Sie auf unserer Homepage unter Urheberschutz Diese Dokumentation, zusammen mit allen Texten und Bildern, ist urheberrechtlich geschützt. Für jede andere Verwenden, Übersetzung in andere Sprachen, Archivierung oder sonstige Veränderung muss die schriftliche Genehmigung der Qube Solutions UG (haftungsbeschränkt), Eningen u.a., eingeholt werden. Copyright 27 Qube Solutions UG (haftungsbeschränkt) 7 / 99

8 .3. Wortmarken und Bildmarken Raspberry Pi und das zugehörige Logo sind geschützte Markenzeichen der Raspberry Pi Foundation - CODESYS und das zugehörige Logo sind geschützte Markenzeichen der Firma 3S-Smart Software GmbH - PiXtend, eplc und das zugehörige Logo sind geschützte Markenzeichen der Firma Qube Solutions UG (haftungsbeschränkt) AVR, "ATmega" und die zugehörige Logo sind geschützte Markenzeichen der Atmel Corporation bzw. Microchip Technology Corporation Debian und Raspbian sind geschützte Markenzeichen des Debian Project I2C bzw. I²C sind geschützte Markenzeichen von NXP Semiconductors Arduino ist ein geschütztes Markenzeichen der Arduino AG Die Rechte aller hier genannten Firmen und Firmennamen sowie Waren und Warennamen liegen bei den jeweiligen Firmen. 8 / 99

9 .4. Symbole Wichtiger Hinweis! Dieses Symbol kennzeichnet wichtige Informationen, damit Fehlfunktionen und Fehlbedienung vermieden werden. Warnung! Dieses Symbol kennzeichnet eine Warnung und kann bei nicht Beachtung Sachschaden nach sich ziehen. Gefahr! Dieses Symbol kennzeichnet eine hohe Gefährdung die bei nicht Beachtung zu schweren Personenschäden oder dem Tod führen kann. 9 / 99

10 2. Wichtige Erläuterungen Dieses Kapitel enthält Informationen zum Änderungsvorbehalt, der bestimmungsgemäßen Verwendung, dem technischen Zustand der PiXtend V2 -S- Serie, den Haftungsausschluss, den Sicherheitshinweisen und wo Sie Hilfestellung erhalten können. 2.. Änderungsvorbehalt Die Qube Solutions UG behält sich vor diese Dokumentation in Teilen oder im Ganzen zu überarbeiten oder zu ändern, wenn dies dem technischen Fortschritt dient, bestehende Softwarekomponenten geändert werden müssen oder neue entstanden sind. Der Anwender findet die aktuelle Version dieser Dokumentation stets unter Bestimmungsgemäße Verwendung PiXtend V2 -S- wird in Kombination mit dem Einplatinencomputer Raspberry Pi (Raspberry Pi Foundation, UK registered charity 2949) verwendet, der entweder bereits mit ausgeliefert wird (PiXtend V2 -S- eplc Basic / Pro) oder vom Kunden als Zubehör zu beschaffen ist (PiXtend V2 -S- Extension Board). Das PiXtend V2 -S- System erfüllt die Funktion einer speicherprogrammierbaren Steuerung (SPS) bzw. einem elektrischen Mess-, Steuer-, Regel- und Laborgerät. Es kann Sensoren auswerten und Aktoren ansteuern. Die Logik-Programmierung zwischen Einund Ausgängen kann unter Anderem mit der Software CODESYS V3 der Firma Smart Software Solutions GmbH geschehen. Qube Solutions bietet noch weitere, aus den Bereichen IT und Home Automation stammende, Programmiersprachen und Systeme an, die der Kunde einsetzen kann. Dafür existieren jeweils Anleitungen und Beispiele von Qube Solutions. Die PiXtend V2 -S- Geräte sind für trockene Innenräume ausgelegt Schutzklasse IP2 (eplc Pro), IP (Extension Board und eplc Basic). Der Betrieb im Außenbereich und in Feuchträumen ist nicht gestattet, außer die PiXtend-Geräte werden in ein geeignetes Gehäuse eingebaut. Die Geräte sind nicht für explosionsgefährdete Bereiche oder sicherheitskritische Systeme/Anlagen ausgelegt. PiXtend V2 -S- Geräte dürfen gleichermaßen im industriellen/gewerblichen Umfeld, in Bildungseinrichtungen und im Wohnbereich eingesetzt werden. PiXtend V2 -S- bietet die Möglichkeit, unter bestimmten Voraussetzungen, gefährliche elektrische Spannungen zu schalten. Arbeit an gefährlichen Spannungen ist nur für berechtigtem Fachpersonal erlaubt (die Voraussetzungen können länderspezifisch abweichen). Im Zweifel ist die Verwendung gefährlicher Spannungen untersagt. Abgesehen davon ist PiXtend für alle Personen ab 4 Jahren geeignet, die das / 99

11 Sicherheitsdatenblatt und die Handbücher gelesen und verstanden haben. In Bildungseinrichtungen ist der Betrieb von fachkundigem und berechtigtem Personal zu überwachen. Eingesetzte Stromversorgungen und Zubehörteile müssen eine Zulassung für das Land besitzen, in dem das Gesamtsystem mit PiXtend V2 -S- eingebaut oder verwendet werden soll Technischer Zustand PiXtend V2 -S- wird, unabhängig von dessen Variante, mit einer definierten Konfiguration ausgeliefert: SPI_EN Schalter aktiviert Kommunikation zwischen PiXtend & Raspberry Pi ist aktiviert PI_5V Schalter aktiviert PiXtend & Raspberry Pi werden gemeinsam vom Spannungsregler auf PiXtend (Eingangsspannung 2-24 V DC) versorgt. An den Raspberry Pi Computer wird keine separate Spannungsversorgung angeschlossen Alle digitalen Eingänge sind für den 24 V Bereich konfiguriert (kein Jumper gesteckt) Alle analoge Eingänge sind für den.. V Bereich konfiguriert (kein Jumper gesteckt) Die Mikrocontroller-Firmware entspricht immer der neusten, von Qube Solutions veröffentlichten Version. Die aktuelle Version kann auf unserer Homepage eingesehen werden Bei den eplc-varianten sind zusätzliche Konfigurationen zu nennen: eplc Basic & Pro Inhalt SD-Karte der Inhalt wird bei der Bestellung angegeben, z.b. CODESYS Control Demo oder Basis (C / Python / Node-RED / OpenPLC) (im QS-Shop) Bei unseren Händlern wird immer die SD-Karte mit dem Inhalt CODESYS Control Demo ausgeliefert eplc Pro Gehäuse Edelstahlhaube und Hutschienengehäuse vormontiert Wenn Sie eine andere Ausführung oder eine andere Hardware- und Software-Kombination benötigen, richten Sie Ihre Anfrage bitte direkt an uns ( [email protected] ). / 99

12 2.4. Zulassungen Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien entwickelt und hergestellt und trägt daher das CE-Zeichen. Der bestimmungsgemäße Gebrauch ist im vorliegenden Dokument beschrieben. Ein Sicherheitsdatenblatt liegt jedem Produkt in Papierform bei (mehrsprachig). Warnung: Änderungen und Modifikationen des Produkt, sowie die Nichteinhaltung der Angaben aus den Handbüchern und Sicherheitsdatenblättern führt zum Verlust der Zulassung für den europäischen Wirtschaftsraum. WEEE-Reg.-Nr.: DE Das Symbol der durchgestrichenen Mülltonne (WEEE-Symbol) bedeutet, dass dieses Produkt getrennt vom Hausmüll als Elektroschrott dem Recycling zugeführt werden muss. Wo Sie die nächste kostenlose Annahmestelle finden, erfahren Sie von Ihrer kommunalen Verwaltung. Sie können Ihr Gerät bei Bedarf auch an uns zurücksenden und wir übernehmen die korrekte Entsorgung für Sie. 2 / 99

13 2.5. Sicherheitshinweise PiXtend V2 -S- darf nicht in sicherheitskritischen Systemen eingesetzt werden. Prüfen Sie vor der Verwendung die Eignung von Raspberry Pi und PiXtend V2 -S- für Ihre Anwendung. Die Standard-Einstellungen sind so gewählt worden, dass die Anforderungen der meisten Anwender erfüllt werden. Beim Umgang und besonders beim Experimentieren mit den Prozessdaten ist Vorsicht geboten. Angeschlossene Sensoren und Aktoren können bei falscher Handhabung undefinierte Zustände einnehmen bzw. falsche Werte ausgeben. Wird mit PiXtend V2 -S- eine Maschine, ein Gerät oder Prozess gesteuert oder geregelt, können so gefährliche Zustände eintreten. Machen Sie sich mögliche Gefahrenquellen frühzeitig bewusst. Trennen Sie im Zweifelsfall die Verbindungen zu den Geräten, Sensoren, Motoren usw. von der Spannungsversorgung ab, um Gefahren für Mensch und Maschine zu minimieren. Die Control-Bytes werden nicht dauerhaft gespeichert. Nach einem Reset oder Power-Cycle sind alle vorherigen Einstellungen gelöscht und das PiXtend V2 -S- führt erst die nächste Aktion wieder aus, wenn der onboard Mikrocontroller dazu einen Befehl erhält. Es wird empfohlen während der Entwicklung eines Steuerprogramms für das PiXtend V2 -S- dieses nicht automatisch starten zu lassen. 3 / 99

14 2.6. Haftungsausschluss Die Angaben in dieser Dokumentation wurden mit größter Sorgfalt zusammengetragen, geprüft und mit der hier beschriebenen Software und Hardware getestet. Dennoch können Abweichungen nicht ganz ausgeschlossen werden. Qube Solutions UG haftet nicht für etwaige Schäden die unter Umständen durch die Verwendung der zur Verfügung gestellten Software, Softwarekomponenten, Hardware oder der in dieser Dokumentation beschriebenen Schritte entstehen können Kontaktinformationen Unsere Postanschrift: Qube Solutions UG (haftungsbeschränkt) Arbachtalstr. 6 D-728 Eningen Germany So erreichen Sie uns: Tel.: +49 () Fax: +49 () [email protected] 2.8. Hilfestellung erhalten Viele Informationen, Tipps und Tricks finden Sie in unserem Support-Forum unter: Sollten trotzdem Fragen offenbleiben, so bitten wir Sie zunächst in den FAQ's auf unserer Homepage nachzusehen. Wenn die Frage dort nicht geklärt wird, können Sie un per ([email protected]) in Kenntnis setzen. Sie erhalten schnellst möglich eine Antwort und weitere Informationen. Die jeweils neusten Versionen aller Dokumente und Software-Komponenten finden Sie im Download-Bereich unserer Homepage: 4 / 99

15 3. Überblick PiXtend ist eine, auf dem leistungsfähigen Raspberry Pi Einplatinencomputer basierende, speicherprogrammierbare Steuerung (SPS / engl.: PLC). Das breite Spektrum digitaler und analoger Ein- & Ausgänge ermöglicht den Anschluss unterschiedlichster Sensoren und Aktoren aus der Industrie und dem Maker-Bereich. Die Verbindung zu anderen Geräten, Steuerungen und Computersystemen wird über serielle Standard-Schnittstellen (RS232, Ethernet, WiFi) hergestellt. Alle Schnittstellen & I/Os sind robust ausgeführt und entsprechen der SPS-Norm (IEC 63-2). 4. Voraussetzungen Die genauen Voraussetzungen an Hard- und Software finden Sie am Anfang jedes Kapitels separat aufgeführt, da diese je nach eingesetzter Softwarekomponente unterschiedlich sein können. Im allgemeinen wird für die meisten Arbeiten folgendes vorausgesetzt: Systemanforderungen für Entwicklungsrechner (PC) Microsoft Windows 7 / 8 / (32 / 64 Bit) geeignete PC-Hardware für die entsprechende Microsoft Windows-Plattform Ausreichend Festplattenplatz zur Installation neuer Programmen Entsprechende Rechte (z.b. Administratorrechte) die eine Installation eines neuen Programms erlauben Benötigte Hardware PiXtend V2 -S- Board () Raspberry Pi Modell B+ / 2 B / 3 B / 3 B+ Standard RJ-45 Netzwerkkabel Für die erste Inbetriebnahme eines neuen Raspberry Pi: SD-Kartenleser, intern oder extern SD-Speicherkarte, empfohlen min. 4 GB (besser 8 GB) microsd für Raspberry Pi Modell B+ / 2 B / 3 B / 3 B+ optional: HDMI fähiger Monitor optional: USB-Keyboard optional: USB-Maus 5 / 99

16 5. Lizenzen Linux Tools: Die Softwarekomponenten PiXtend V2 -S- C-Library, pxauto2s und pixtendtool2s sind von Qube Solutions UG unter der GNU GPL v3 Lizenz veröffentlicht worden und können frei genutzt und modifiziert werden. Der Einsatz in eigenen Projekten sowie zur kommerziellen Nutzung sind erlaubt. Unsere Linux-Programme und Treiber bauen auf der WiringPiLibrary von Gordon Henderson auf. Beachten Sie die jeweiligen Lizenzbestimmungen. CODESYS: Das PiXtend V2 Professional for CODESYS Package für CODESYS V3.5 wird von Qube Solutions UG kostenlos zur Verfügung gestellt und kann für private sowie kommerzielle Zwecke genutzt werden. Das Package kann frei verteilt und in beliebiger Anzahl verwendet werden. Eine Veränderung des PiXtend V2 Professional for CODESYS Packages oder einer der darin enthaltenen PiXtend V2 Treiberbibliothek ist nicht gestattet. Wenn Sie eine angepasste Version des PiXtend V2 -S- Treibers benötigen, wenden Sie sich an Qube Solutions UG. Die CODESYS-Beispiele und die RC-Plug Bibliothek die ebenfalls im Package enthalten sind, wurden unter der GNU GPL v3 Lizenz veröffentlicht und können frei genutzt und modifiziert werden. Der Einsatz in eigenen Projekten sowie die kommerziellen Nutzung sind erlaubt. Unsere CODESYS-Programme, Devices und Bibliotheken basieren auf der CODESYS Control for Raspberry Pi und weitere Software-Komponenten der Firma 3S-Smart Software Solutions GmbH. Es gelten die entsprechenden Lizenzbedingungen der Firma 3S-Smart Software Solutions GmbH & CODESYS. FHEM: Die zur Verfügung gestellten Quelltexte für das FHEM System sind von Qube Solutions UG unter der GNU GPL v3 Lizenz veröffentlicht worden. Unsere Programme und Treiber verwenden die WiringPi-Library von Gordon Henderson und FHEM-Module von Rudolf König. Es gelten die Lizenzbestimmungen des jeweiligen Rechteinhabers. 6 / 99

17 6. Basis Wissen 6.. Definition sicherer Zustand Das PiXtend V2 -S- verfügt über einen vom Benutzer aktivierbaren Watchdog. Hat der Benutzer diesen aktiviert und es kommt zu einem Kommunikationsausfall bzw. der SPIBus ist gestört, dann löst der Watchdog nach der vom Benutzer eingestellten Wartezeit aus. Löst der Watchdog aus, stellt der Mikrocontroller seine Arbeit ein und bleibt in einem definierten Zustand stehen. Dieser Zustand wird in diesem Dokument als sicherer Zustand bezeichnet und hat die nachfolgenden Eigenschaften: Alle digitalen Ausgänge & Relais werden abgeschaltet / in den Ruhezustand gebracht PWM-Ausgänge werden hochohmig (Tri-State) geschaltet Retain-Daten werden abgespeichert, wenn Retain aktiviert ist Die Status-LED L blinkt abhängig nach Fehlerursache (Fehler-LED L Signalisierung, Seite 95), wenn die LED aktiviert ist Der Mikrocontroller bzw. das PiXtend V2 -S- - System muss im Anschluss neu gestartet werden Wenn das Ausschalten der digitalen Ausgänge für Ihre Anwendung nicht dem sicheren Zustand entspricht, so sind externe Maßnahmen vorzusehen um dies abzufangen SPI-Kommunikation, Datenübertragung und Zykluszeit Die Kommunikation zwischen Raspberry Pi und PiXtend V2 -S- (Mikrocontroller) erfolgt mittels der SPI-Schnittstelle und wird standardmäßig mit einer Übertragungsgeschwindigkeit von 7 khz ausgeführt. Die Betrachtung der benötigte Zeit der Datenübertragung alleine ist nicht ausreichend um festlegen zu können wie schnell tatsächlich mit dem Mikrocontroller kommuniziert werden kann, d.h. wie schnell kann nach der ersten SPI-Datenübertragung die nächste Übertragung und die nächste und die nächste erfolgen. Dies bezeichnen wir als Zykluszeit. Nach jeder Datenübertragung benötigt der Mikrocontroller etwas Zeit die empfangenen Daten zu verarbeiten und erst danach darf die nächste Datenübertragung erfolgen, andernfalls kann es sein dass der Mikrocontroller die neuen Daten nicht annimmt. 7 / 99

18 Für das PiXtend V2 -S- gelten folgende Zykluszeiten: Bezeichnung Zeit Kommentar Minimal 2,5 ms Schnellstmögliche Zykluszeit, darf nicht unterschritten werden. Keine DHT/22 Sensoren nutzbar. Optimiert ms Empfohlene Zykluszeit wenn keine DHT/22 Sensoren verwendet werden. Standard 3 ms Empfohlene Zykluszeit, wenn alle Funktionen genutzt werden. In allen Softwarekomponenten wurde die Zykluszeit Standard voreingestellt, damit ab Werk dem Anwender alle Funktionen ohne Einschränkung zur Verfügung stehen. Die Zykluszeit kann durch den Anwender geändert werden, die notwendigen Schritte für eine solche Änderung unterscheiden sich jedoch in Abhängigkeit der Softwarekomponente. Die Linux-Tools für das PiXtend V2 -S- beispielsweise müssen im Quellcode angepasst werden, ebenso die PiXtend Python Library V2. Alle CODESYS Anwender hingegen können einfach das Intervall des entsprechenden Tasks ändern und beim nächsten Einloggen sofort die Auswirkungen sehen. Der CODESYS Treiber des PiXtend V2 -S- verfügt über einen Schutzmechanismus der verhindert, dass der Mikrocontroller zu schnell angesprochen wird. Stellt der Cycle Guard ein zu kurzes Buszyklustask-Intervall fest, wird im EA-Abbild von PiXtend V2 -S- ein BusCycleError angezeigt, es findet keine Kommunikation mit dem Mikrocontroller statt. Wählen Sie in diesem Fall ein längeres (langsameres) Intervall für den Buszyklustask Retain-Speicher (dt. Remanenz) Retain-Speicher bzw. Retain-Memory (engl.) wird im Deutschen auch als remanenter Speicher oder einfach als Remanenz bezeichnet. Dieser spezielle Speicher des PiXtend V2 -S- ermöglicht es dem Anwender Werte von Variablen auch bei Spannungsausfall zu erhalten und nach einem Neustart bzw. Wiederanlauf dort fortzufahren, wo gestoppt wurde. Eine von Qube Solutions entwickelte Technik ermöglicht es durch das PiXtend V2 -S- Board den Raspberry Pi um diese besondere Funktion zu erweitern. Eine derartige Speichertechnik ist hauptsächlich eine bekannte Funktion in der Automatisierungstechnik, diese steht jetzt jedem PiXtend V2 -S- Anwender zur Verfügung, egal welche Softwarekomponente zum Einsatz kommt. Der PiXtend-Mikrocontroller überwacht die Spannung am Versorgungseingang ( VCC ). 8 / 99

19 Wurde das Retain System aktiviert und die Versorgungsspannung sinkt unter 9 V DC, so wechselt der Controller in den sicheren Zustand und speichert die Retain-Daten ab. In der Zeit vom Erkennen der Unterspannung bis zur vollständigen Speicherung der Daten wird PiXtend V2 -S- und der Raspberry Pi aus einem internen Kondensator gespeist. Das Retain System kann nur aktiviert und verwendet werden, wenn mit einer nominellen Versorgungsspannung von 24 V DC gearbeitet wird. Wird PiXtend beispielsweise mit 2 V DC betrieben, so kann der Retain Speicher nicht genutzt werden. Eigenschaft Wert Kommentar Art des Speichers Flash EEPROM im PiXtend-Mikrocontroller Anzahl Speicherzyklen min.. Speichergröße 32 Bytes Spannungsschwelle 9 V DC (+/-,6 V) zwischen VCC und GND Nenn-Versorgungsspannung 24 V DC um Retain Nutzen zu können Max. Eingangsleistung über VCC für die garantierte Speicherung aller Daten W Tabelle : Technische Daten Retain System Weitere Informationen zur Verwendung des Retain Systems finden Sie im Hardwarehandbuch zum PiXtend V2 -S-. Typische Anwendung für den sog. Retain-Speicher sind unteranderem: Betriebsstundenzähler Gerätekonfiguration / Parameter Spracheinstellungen der Bedienoberfläche Motorenposition Bauteil- bzw. Werkstückzähler Werteverlauf Sicherung Festhalten des aktuellen Arbeitsschritts uvm. 9 / 99

20 6.4. SD-Karte für Ihren Raspberry Pi vorbereiten Wenn Sie in unserem Shop eine vorinstallierte SD-Karte bestellt haben, dann können Sie sofort loslegen und das Erstellen einer eigenen SD-Karte ist nicht notwendig. Möchten Sie jedoch selbst eine SD-Karte für Ihren Raspberry Pi erstellen, finden Sie nachfolgend Informationen wie Sie dies tun können. Wir stellen in unserem Downloadbereich unter verschiedene SD-Karten-Images zur Verfügung. Die Images beinhalten je nach Typ eine aktuelle Version des Betriebssystems Raspbian und zusätzlich eine der folgenden vorkonfigurierten Optionen: PiXtend V2 -S- Basis Image mit Linux-Tools inkl. der zugehörigen C-Library (pxdev), PiXtend Python Library V2 (PPLV2) inkl. Beispielen, Node-RED und OpenPLC CODESYS Control Demo mit CODESYS V3 Runtime Erweiterung für den Raspberry Pi & PiXtend Verwenden Sie für Ihre ersten Tests immer eine SD-Karte bzw. SD-Image von Qube Solutions. Unsere Images werden ausführlich getestet und sind mit allen benötigten Einstellung vorbereitet. Auf diesem Weg erzielen Sie die schnellsten Fortschritte. Um eines unserer Images auf eine leere SD-Karte zu übertragen, wird ein PC mit SD-Karten-Lesegerät benötigt. Als Software zum Schreiben von SD-Karten empfehlen wir das Open Source Programm Win32DiskImager. Das Programm läuft unter Microsoft Windows und kann unter folgender Adresse kostenlos heruntergeladen werden: win32diskimager/ Abbildung : Software - Win32DiskImager 2 / 99

21 HINWEIS: Zur Ausführung bzw. für den Laufwerkszugriff muss das Programm Win32DiskImager mit Administrator-Rechten bzw. unter einem Administratorkonto gestartet werden, sonst besteht die Möglichkeit, dass die SD-Karte gar nicht oder fehlerhaft beschrieben wird! Zur Erstellung einer SD-Karte bzw. zum Übertragen eines unserer Images auf Ihre SDKarte führen Sie folgende Schritte aus: SD-Karte in das Kartenlesegerät einlegen bzw. einstecken Warten bis Windows das Medium erkannt hat Den Arbeitsplatz oder Windows Explorer öffnen und den Laufwerksbuchstaben notieren, dieser muss später im Win32DiskImager angegeben werden Die Zip-Datei in der sich das SD-Karten Image von unserem Downloadbereich befindet öffnen und entpacken. Das Programm Win32DiskImager mit Administrator-Rechten starten Die entpackte Image-Datei im Win32DiskImager unter Image-Datei auswählen Unter Datenträger den Laufwerksbuchstaben der SD-Karte auswählen ACHTUNG: Wählen Sie den falschen Datenträger aus, können alle Daten darauf verloren gehen, sobald Sie den Schreibvorgang mit Win32DiskImager gestartet haben. Entfernen Sie am besten alle Wechseldatenträger (z.b. USB-Sticks oder USB-Festplatten) bevor Sie den Schreibvorgang starten ggf. sogar bevor Sie das Win32DiskImager Programm starten. Haben Sie alle Einstellungen vorgenommen, starten Sie den Schreibvorgang mit einem Klick auf Schreiben Warten Sie bis der Schreibvorgang abgeschlossen ist 2 / 99

22 Nach erfolgreicher Übertragung des Images auf die SD-Karte, kann diese am PC ausgeworfen und in den SD-Karten Slot des Raspberry Pi gesteckt werden. Sollten Sie während oder nach der Erstellung der SD-Karte Fenster sehen, mit oder ohne Inhalt, oder eine Fehlermeldung erhalten, dass auf ein Laufwerk nicht zugegriffen werden kann bzw. Sie werden aufgefordert das Medium zu formatieren, klicken Sie in solchen Fällen bei diesen Dialogen immer auf die Abbrechen Schaltfläche und schließen Sie eventuell aufgegangenen Fenster. In einer solchen Situation liegt kein Fehler vor. Sie erhalten diese Meldungen, da Microsoft Windows nicht in der Lage ist die Daten der SD-Karte zu lesen, da diese für das Raspbian Betriebssystem bestimmt sind. Werfen Sie, wie erwähnt, die SD-Karte aus und stecken Sie diese in den SD-Karten Slot des Raspberry Pi. Schalten Sie die Versorgung ein und Ihr Raspberry Pi startet das Raspbian Betriebssystem Raspbian Anmeldedaten (Login) Bei unseren Images belassen wir die Raspbian Anmeldung so wie sie von der Raspberry Pi Foundation vorgegeben wird. Die Login-Daten sind: Benutzer: pi Passwort: raspberry 6.6. Kompatibilität der Software-Komponenten Für das PiXtend V2 -S- gibt es viele Softwarekomponenten die einen vielfältigen Einsatz der Plattform erlauben. Beim Einsatz dieser Komponenten muss folgendes beachtet werden. Die in diesem Dokument aufgeführten Programme und Softwarekomponenten können nicht parallel betrieben werden! Der mit dem Mikrocontroller zur Kommunikation verwendete SPI-Bus darf immer nur von einem Programm aus verwendet werden. Wird der Mikrocontroller gleichzeitig von verschiedenen Programmen aus angesprochen, aber mit unterschiedlichen Befehlen, kann dies nicht nur zu fehlerhaften Daten führen sondern ggf. zum Defekt von Teilen der Hardware, z.b. der Relais. 22 / 99

23 Eine Nutzung von verschiedenen Programmen nacheinander ist wiederum möglich, wenn es sich um die pxdev Linux Tools & Library handelt oder um die PiXtend Python Library V2 (PPLV2). Es handelt sich also um alle Programme die sich nach Ihrer Ausführung selbst beenden und manuell neugestartet werden müssen. Wurde auf der SD-Karte die CODESYS Runtime Erweiterung installiert oder Sie verwenden unser CODESYS SD-Karten Image, in diesem Fall kann kein anderes Programm genutzt werden um dem PiXtend V2 -S- zusätzliche Befehle zu schicken oder Informationen abzufragen. Die Nutzung ist hier exklusive für CODESYS reserviert, ferner wird CODESYS bei jedem Start des Raspberry Pi automatisch mit gestartet. Möchten Sie das FHEM System einsetzen und Ihr PiXtend V2 -S- über FHEM steuern, so gelten die gleichen Einschränkungen wie für CODESYS, da FHEM nach seiner Installation ebenfalls automatisch startet und es sonst zu Komplikationen kommen kann. Eine parallele Nutzung von FHEM und CODESYS ist nicht möglich, da es hier zu Überschneidungen beim SPI-Bus kommt Serielle Schnittstelle aktivieren Damit die serielle Schnittstelle des Raspberry Pi Computers für eigene Zwecke genutzt werden kann, muss diese zuerst aktiviert bzw. konfiguriert werden. Das heißt, sollten Sie bisher die serielle Schnittstelle anderweitig verwenden, so wird mit den folgenden Befehlen die serielle Schnittstelle aktiviert bzw. umgestellt und sendet von alleine keine Daten mehr aus, der Zugriff auf die Linux-Konsole über die serielle Schnittstelle wird durch diesen Vorgang deaktiviert. Die serielle Schnittstelle des Raspberry Pi kann über das Programm raspi-config aktiviert bzw. umgestellt werden: sudo raspi-config Im Programm wechseln Sie zu: 5 Interfacing Options --> P6 Serial --> <No> --> <Yes> --> <Ok> Im Anschluss findet sich in den Datei /boot/config.txt folgender Eintrag: enable_uart= Bluetooth wird dann automatisch deaktiviert und UART aktiviert. Das Programm raspiconfig nimmt uns hier alle Arbeit ab. Führen Sie im Anschluss einen Neustart des Raspberry Pi Computers durch, danach können Sie die serielle Schnittstelle exklusiv in eigenen Anwendungen nutzen. Einen Neustart können Sie durch folgenden Befehl ausführen: sudo reboot 23 / 99

24 7. CODESYS Dieses Kapitel beschreibt die Installation aller Software Komponenten die benötigt werden um PiXtend V2 -S- () mit CODESYS ( zu programmieren. Die CODESYS Entwicklungsumgebung ist für die professionelle hardware-unabhängige Programmierung von Steuerungen nach IEC 63-3 konzipiert und wird von der Firma 3S-Smart Software Solutions entwickelt. Um einen Raspberry Pi in CODESYS zu programmieren wird die Raspberry Pi Runtime Erweiterung für CODESYS benötigt, die ebenfalls von 3S entwickelt wird. Spezielle Geräte-Treiber für PiXtend V2 -S- werden benötigt um direkten Zugriff auf die I/O-Hardware und Schnittstellen des PiXtend V2 -S- Boards mittels CODESYS zu erhalten. Die PiXtend V2 -S- Treiber werden kostenlos von Qube Solutions UG zur Verfügung gestellt. Dieses Kapitel richtet sich an alle die ein Projekt für PiXtend V2 -S- unter der Verwendung von CODESYS erstellen wollen. 24 / 99

25 7.. Hinweise 7...Urheberrecht von Texten und Bildern: Texte und Bilder, welche mit dem Kürzel (3S) versehen sind, stammen von der Firma 3S-Smart Systems GmbH in Kempten Texte und Bilder, welche mit dem Kürzel (RPI) versehen sind, stammen von der Raspberry Pi Foundation Texte und Bilder, welche nicht markiert oder mit dem Kürzel (QS) versehen sind, stammen von der Firma Qube Solutions UG 7..2.Kompatibilität CODESYS Projekte und Programme die für bzw. auf anderen CODESYS Steuerungen geschrieben wurden, können oft mit wenig Aufwand auf andere CODESYS kompatible Steuerungen übertragen werden. Die CODESYS Runtime Erweiterung für den Raspberry Pi Computer macht aus diesem eine vollwertige CODESYS SPS, d.h. alle kompatiblen CODESYS Programme können hier ausgeführt. Zu beachten gilt lediglich die Hardware-Kompatibilität, hier muss geprüft werden in wie weit es Übereinstimmungen bzw. Abweichungen gibt und ggf. müssen Anpassungen an der Hardware-Konfiguration im Programm vorgenommen werden, damit im CODESYS Projekt auch die richtigen Signale an die richtige Stelle gelangen. Wenn Sie sich nicht sicher sind ob Ihr bestehendes CODESYS SPS Projekt mit PiXtend V2 -S- zusammenarbeitet, nehmen Sie mit uns Kontakt auf. Wir beraten Sie gerne hinschlich notwendiger Änderungen und können Ihnen bei der Umstellung des Programms behilflich sein. 25 / 99

26 7.2. Voraussetzungen 7.2..Systemanforderungen für CODESYS Microsoft Windows 7 / 8 / (32 / 64 Bit) geeignete PC-Hardware für die entsprechende Microsoft Windows-Plattform Benötigte Hardware PiXtend V2 -S- Board () Raspberry Pi Modell B+ / 2 B / 3 B / 3 B+ Standard RJ-45 Netzwerkkabel Für die erste Inbetriebnahme eines neuen Raspberry Pi: SD-Kartenleser, intern oder extern SD-Speicherkarte, empfohlen min. 4 GB (besser 8 GB) microsd für Raspberry Pi Modell B+ / 2 B / 3 B / 3 B+ optional: HDMI fähiger Monitor optional: USB-Keyboard optional: USB-Maus 26 / 99

27 7.3. Installation der benötigten Software Komponenten 7.3..CODESYS Entwicklungsumgebung Vorstellung von CODESYS Abbildung 2: CODESYS Development System (Quelle: 3S) CODESYS ist eine Software-Plattform für viele Aufgabenstellungen in der industriellen Automatisierungstechnik. Basis ist das IEC 63-3 Programmiertool CODESYS Development System V3. Das Tool bietet dem Anwender integrierte Lösungen für seine Arbeit mit dem Ziel, ihn praxisgerecht bei der Realisierung seiner Aufgabe zu unterstützen. (Quelle: 3S) Das hardwareunabhängige Programmiersystem CODESYS von der Firma 3S-Smart Software GmbH eignet sich bestens für den Einsatz mit Raspberry Pi und PiXtend V2 -S-. Es ermöglicht außer der Programmierung in allen Sprachen für speicherprogrammierbare Steuerungen (SPS) nach der Norm IEC 63-3 auch die Erstellung von WebVisualisierungen. Mit der sogenannten Webvisu lassen sich Inhalte und Steuerelemente Ihres Programms leicht auf eine Webseite bringen (CODESYS-Webserver läuft auf dem 27 / 99

28 Raspberry Pi). Für das Erstellen und Arbeiten mit der Webvisu benötigen Sie keinerlei Kenntnisse über Web-Programmierung (HTML, PHP, CGI o.ä.). Mit der modernen grafischen Oberfläche von CODESYS sind Sie für die Programmerstellung für Ihre Steuerung und Webvisu bestens ausgerüstet. Auf Ihre Webvisu können Sie mit jedem aktuellen Smartphone, Tablet oder PC/MAC zugreifen. Sie benötigen lediglich einen aktuellen Web-Browser. Wir empfehlen die aktuellen Versionen der Browser Google Chrome, Microsoft Internet Explorer oder Mozilla Firefox. Abbildung 3: CODESYS - Visualisierung für das PiXtend V2 -S- Demo Projekt CODESYS Download Die CODESYS Entwicklungsumgebung kann kostenlos von 3S heruntergeladen werden. Dazu ist lediglich eine kostenlose und unkomplizierte Registrierung notwendig. Öffnen Sie die dazu die Seite in einem Browser Ihrer Wahl. Klicken Sie auf Anmelden und registrieren Sie sich im CODESYS Store (Benutzerkonto anlegen). Füllen Sie das Formular vollständig und wahrheitsgemäß aus und beachten Sie, 28 / 99

29 dass eine korrekte -Adresse benötigt wird. Klicken Sie auf Jetzt Registrieren und folgen Sie den Anweisungen auf der Store Seite oder den Hinweisen die Sie per erhalten, ggf. müssen Sie Ihre Adresse bestätigen und warten bis Ihr Konto freigeschaltet wurde. Mit Ihrem selbst vergebenen Passwort und Benutzername können Sie sich im CODESYS Store einloggen und die aktuellste CODESYS Version herunterladen (Momentan CODESYS V3.5 SP Patch, Stand ) CODESYS Installation Installieren Sie die CODESYS Entwicklungsumgebung mit den vorgegebenen StandardEinstellungen und am besten als Administrator-Benutzer oder führen Sie die Installation mit Administratorrechten aus. CODESYS selbst kann später ohne erweiterte Rechte gestartet werden, ein normaler Windows Benutzer ist ausreichend. Sie haben nun eine vollwertige CODESYS Entwicklungsumgebung zur Verfügung mit der Sie die PiXtend V2 -S- SPS nach dem Industrie-Standard IEC 63-3 programmieren können CODESYS Control for Raspberry Pi installieren CODESYS Control for Raspberry Pi - Download Um einen Raspberry Pi in CODESYS verwenden zu können, benötigen Sie die kostenlose CODESYS-Control Laufzeitumgebung für den Raspberry Pi aus dem CODESYS Store. Der CODESYS Store beinhaltet sowohl kostenlose, als auch kostenpflichtige Produkte die in CODESYS als zusätzliche Features eingebunden werden können. Um Dateien aus dem CODESYS Store herunterladen zu können müssen Sie sich im CODESYS Store einloggen. Ein entsprechendes Konto haben Sie bereits in einem vorangegangenen Kapitel angelegt. Direkt nach dem Login können Sie alle mit Free gekennzeichneten Produkte kostenlos herunterladen Klicken Sie das Produkt CODESYS Control for Raspberry Pi SL oder folgen sie dem direkten Link: Klicken Sie auf den Download-Button und warten Sie bis der Download abgeschlossen wurde Eine Erste Schritte Anleitung finden Sie ebenfalls auf dieser Seite etwas weiter unten (Download Erste Schritte (.pdf)). 29 / 99

30 Hinweise zur Demo Version: Die kostenlose Version ist auf 2 Stunden Laufzeit beschränkt. Danach beendet sich die Laufzeitumgebung automatisch bis zum nächsten Neustart. Nach jedem Neustart kann der Raspberry Pi wieder für volle 2 Stunden ohne Einschränkungen benutzt werden. Dies ist für erste Tests völlig ausreichend. Für eine zeitlich uneingeschränkte Version steht eine Lizenz zum aktuellen Preis von 5 zzgl. MwSt. zur Verfügung. Sie können die Lizenzierung zu einem späteren Zeitpunkt im CODESYS Store durchführen CODESYS Control for Raspberry Pi Installation Ein Doppelklick auf die Datei CODESYS Control for Raspberry PI 3.5.X.X.package startet den CODESYS Package Manager der automatisch die Installation der Raspberry Pi Laufzeit-Komponenten für CODESYS durchführt. Alternativ können Sie auch CODESYS manuell starten und den Package Manager über das Menü Tools Package Manager öffnen. Klicken Sie im Package Manager auf Installieren und wählen Sie das soeben heruntergeladene Package aus. Führen Sie die Installation mit den Standard-Optionen durch. Wichtig: Sie müssen für die Installation die Administrator-Rechte auf dem Computer haben, ansonsten kann die Installation fehlschlagen. Im Zweifelsfall starten Sie CODESYS mit einem Rechtsklick Als Administrator ausführen und starten dann den Package Manager zur Installation des Raspberry Pi Package. Im Paket sind enthalten: CODESYS Erweiterung für das Raspberry Pi (Treiber und Bibliotheken) Beispiel Programme (Standardmäßig im Benutzer-Verzeichnis unter CODESYS Control for Raspberry PI ) Debian Package codesyscontrol_arm_raspberry_v3.5.x.x.deb für die Installation der Runtime auf dem Linux-System des Raspberry Pi 3 / 99

31 Eine Anleitung mit ausführlicheren technischen Informationen und Installationsanleitung finden Sie im CODESYS Store auf der Download-Seite des CODESYS Control for Raspberry Pi SL Pakets. Klicken Sie auf den Link Download Erste Schritte (.pdf) weiter unten auf der Seite. Das Dokument erläutert unter anderem auch die LizenzierungsOptionen der CODESYS Raspberry Pi Runtime Erweiterung Bootfähiges SD-Karten-Image für den Raspberry Pi erstellen Laden Sie sich das neueste PiXtend V2 -S- Image CODESYS SD-Karten Image aus dem Download Bereich von herunter. Das Image basiert auf dem Raspbian Stretch Linux-Betriebssystem und ist für die Verwendung mit CODESYS und PiXtend V2 -S- bereits vorkonfiguriert. Alternativ können Sie sich auch die neueste Version von Raspbian herunterladen und es installieren wie auf beschrieben wird. Dann folgen Sie der Installationsanleitung welche Sie im CODESYS Store auf der Download-Seite des CODESYS Control for Raspberry Pi SL Pakets finden: Klicke Sie auf Download Erste Schritte (.pdf) Einsteigern empfehlen wir hier ausdrücklich unser PiXtend V2 -S- Image CODESYS Control Demo zu verwenden, um einen möglichst einfachen und problemlosen Start zu erzielen. Weitere Informationen zur Erstellung einer SD-Karte für den Raspberry Pi finden Sie auch im Kapitel 6.4 SD-Karte für Ihren Raspberry Pi vorbereiten. 3 / 99

32 7.3.4.PiXtend V2 -S- CODESYS Gerätetreiber installieren Um auf die PiXtend V2 -S- Hardware in CODESYS zugreifen zu können benötigen Sie PiXtend V2 -S- CODESYS Gerätetreiber. Diesen können Sie entweder im Download-Bereich unserer Homepage ( oder im CODESYS Store herunterladen (immer kostenlos) PiXtend V2 -S- CODESYS Gerätetreiber - Download Das Package PiXtend V2 Professional for CODESYS enthält die CODESYS GeräteTreiber, Beispielprogramme und eine ausführliche Bedienungsanleitung für die Verwendung von CODESYS mit dem PiXtend V2 -S PiXtend V2 -S- CODESYS Gerätetreiber Installation Ein Doppelklick auf die Datei PiXtend_V2_Professional_for_CODESYS_VX_X_X.package startet den CODESYS Paketmanager der automatisch die Installation der PiXtend V2 -S- Gerätetreiber, Beispielprojekte und PiXtend V2 -S- Dokumentation für CODESYS durchführt. Standardmäßig werden die Inhalte im Benutzerverzeichnis unter PiXtend V2 Professional for CODESYS abgelegt. Wichtig: Sie müssen für die Installation die Administrator-Rechte auf dem Computer haben, ansonsten kann die Installation fehlschlagen. Im Zweifelsfall starten Sie CODESYS mit einem Rechtsklick Als Administrator ausführen und starten dann den Package Manager zur Installation des PiXtend Package über das Tools Menü Weitere Schritte Ihre CODESYS Entwicklungsumgebung ist nun für die Verwendung mit PiXtend V2 -Svorbereitet. Um ein leeres CODESYS Projekt mit PiXtend V2 -S- Unterstützung zu erstellen, lesen Sie im Kapitel 7.5 CODESYS Projekt erstellen weiter. 32 / 99

33 7.5. CODESYS Projekt erstellen Dieses Kapitel beschreibt alle Schritte die notwendig sind um ein neues PiXtend V2 -SProjekt () in CODESYS ( anzulegen. Sie lernen wie Sie PiXtend V2 -S- als CODESYS Gerät verwenden können und wie Sie eine einfache Visualisierung für Ihr Projekt erstellen Schritt für Schritt zum ersten PiXtend V2 -S- CODESYS Programm CODESYS Standard Projekt für PiXtend V2 -S- erzeugen Starten Sie CODESYS. Erstellen Sie ein neues Projekt indem Sie im Hauptmenü auf Datei Neues Projekt klicken (Shortcut Strg-N / Ctrl-N) Wählen Sie Standard Projekt aus der Kategorie Projekte und geben Sie dem Projekt einen Namen (hier PiXtendTest ) und bestätigen Sie mit OK Abbildung 4: CODESYS - Neues Projekt 33 / 99

34 Als Gerät wählen Sie CODESYS Control for Raspberry Pi und als Programmiersprache für das Hauptprogramm PLC_PRG wählen Sie Continuous Function Chart (CFC). Abbildung 5: CODESYS - Neues Projekt - Auswahl Gerät Nachdem CODESYS das Standard Projekt angelegt hat, erhalten Sie ein Projekt mit folgender Struktur: Abbildung 6: CODESYS - PiXtendTest Projekt 34 / 99

35 SPI Gerät anhängen Im Projektbaum machen Sie einen Rechtsklick auf den Eintrag SPI und wählen Sie Gerät anhängen Abbildung 7: CODESYS - Gerät anhängen 35 / 99

36 Wählen Sie SPI master als Gerät aus und klicken Sie auf den Button Gerät anhängen. Lassen Sie das Fenster geöffnet. Abbildung 8: CODESYS - Gerät anhängen - SPI master Im Projektbaum unter SPI existiert nun ein neuer Eintrag SPI_master (SPI Master). 36 / 99

37 PiXtend V2 -S- Gerät anhängen Während das Fenster geöffnet ist klicken Sie mit der linken Maustaste auf den soeben erzeugten SPI Master. Die Inhalte des Gerät anhängen Fensters werden aktualisiert. Wählen Sie im Geräte Hersteller Drop-Down Menü den Eintrag Qube Solutions UG aus, wählen Sie das Gerät PiXtend V2 -S- (nicht PiXtend V2 -S- DAC) und klicken wiederum auf den Gerät anhängen Button rechts unten und schließen Sie das Fenster. Abbildung 9: CODESYS - Gerät anhängen - PiXtend V2 -S- Nun erscheint PiXtend_V2_S_ als Gerät unter SPI_master (SPI Master). 37 / 99

38 Ein Doppelklick auf PiXtend_V2_S_ im Projektbaum öffnet die Konfigurationsseite für das Gerät. Im Reiter SPI devices E/A-Abbild sehen Sie, welche Ein und Ausgänge von PiXtend V2 -S- für die Verwendung in CODESYS bereitstellt. Später, im laufenden Betrieb ( Online zur Steuerung ), können Sie in diesem Fenster das gesamte Prozessabbild von PiXtend V2 -S- beobachten. Eingangswerte können überwacht und Ausgangswerte können direkt gesetzt werden. Da wir die Werte jedoch in unserem Hauptprogramm sowie in der Visualisierung verwenden möchten, erzeugen wir eine Globale Variablen Liste um den Ein- und Ausgängen Variablen zuweisen zu können Globale Variablen Liste erzeugen Rechts-klicken Sie dazu auf den Eintrag Application im Projektbaum und fügen Sie mit Objekt hinzufügen -> Globale Variablen Liste eine neue Globale Variablen Liste mit der Bezeichnung GVL hinzu: Abbildung : CODESYS - Globale Variablenliste einfügen 38 / 99

39 Öffnen Sie die GVL und fügen Sie folgende Einträge hinzu: //Digital Inputs xdi: BOOL; xdi: BOOL; //Digital Outputs xdo: BOOL; xdo: BOOL; //Status xrun: BOOL; byhardware: BYTE; byfirmware: BYTE; Abbildung : CODESYS - GVL Deklarationen Um dieses Kapitel einfach zu halten beschränken wir uns vorerst auf die Verwendung von nur 2 digitalen Eingängen und 2 digitalen Ausgängen. xdi steht hierbei für den ersten digitalen Eingang, also Digital Input, und xdo für Digital Output. Beachten Sie den Unterschied zwischen O (Buchstabe) und (Zahl). Präfixe für Variablen Namen haben sich besonders in größeren Projekten bewährt. Wir empfehlen die Verwendung des Präfix x für BOOLsche Variablen (true oder false) um einer Verwechslung mit Variablen vom Typ Byte (Präfix by) vorzubeugen. 39 / 99

40 Weitere Präfixe: x BOOL by BYTE w WORD dw DWORD r REAL s STRING Das Status Bit xrun gibt Auskunft darüber, in welchem Zustand sich der Mikrocontroller gerade befindet. Die Bytes byhardware und byfirmware geben Auskunft über die Hardware Revision von PiXtend V2 -S- und die Firmwareversion des Mikrocontrollers. Die Namensgebung der Variablen in der GVL bleibt Ihnen selbst überlassen, wir verwenden jedoch fürs erste dieselben Konvention wie auch im PiXtend V2 -S- Demo Projekt um Ihnen den Einstieg zu erleichtern Mapping der Variablen Nachdem Sie die benötigten Variablen in der GVL angelegt haben, müssen Sie entsprechen gemapped (zugewiesen) werden, sprich den jeweiligen Hardware Ein- und Ausgängen von PiXtend V2 -S- zugewiesen werden. Öffnen Sie dazu wieder das bereits bekannte SPI devices E/A-Abbild indem Sie auf das PiXtend V2 -S- Gerät doppelklicken. Klappen Sie den Ordner Digital Inputs auf und ebenso den Kanal DigitalInputs (im Bild vom Typ Byte mit Adresse %IB22): Abbildung 2: CODESYS - PiXtend V2 -S- E/A-Abbild 4 / 99

41 Nun können die existierenden Eingangsvariablen bit-weise gemapped werden, nachdem Sie auf die noch leere linke Spalte doppelklicken erscheinen drei Punkte (...). Ein Klick darauf öffnet die Eingabehilfe mit der die gewünschte Variable ausgewählt wird. Wählen Sie die Variable Application GVL xdi für DigitalIn Bit Abbildung 3: CODESYS - Eingabehilfe 4 / 99

42 Wiederholen Sie den Vorgang entsprechend für die restlichen Variablen: Application GVL xdi für Digital Input DigitalIn Bit Application GVL xdi für Digital Input DigitalIn Bit Application GVL xdo für Digital Out DigitalOut Bit Application GVL xdo für Digital Out DigitalOut Bit Bytes und Bits (BOOLs) können nach dem selben Prinzip gemapped werden: Abbildung 4: CODESYS - PiXtend V2 -S- E/A-Abbild - State Application GVL xrun für Status Run Application GVL byfirmware Firmware Application GVL byhardware Hardware Als Letztes muss noch das GPIO Bit 24 des Raspberry Pi als Ausgang konfiguriert werden. Öffnen Sie dazu die Raspberry Pi GPIO Konfiguration indem Sie auf GPIOs_A_B im Projektbaum doppelklicken. Wählen Sie Output für GPIO24: Abbildung 5: CODESYS - GPIO Parameter - GPIO24 42 / 99

43 Wechseln Sie anschließend auf den Reiter GPIO E/A-Abbild und klicken Sie auf Outputs. Als Variable für Bit 24 geben Sie rpi_gpio24 ein. Abbildung 6: CODESYS - GPIO E/A-Abbild - rpi_gpio24 Variable Erstellung des Hauptprogramms Nun ist es an der Zeit ein Programm zu erstellen das die beiden Eingänge Eingänge DI und DI überwacht und entsprechend einer Programm-Logik die beiden Ausgänge DO und DO bedient. Im Gegensatz zu sequentiellen Programmen (z.b. in C oder Python), die in der Regel nur einmal, von oben bis unten ausgeführt werden, ist es bei Speicher programmierbaren Steuerungen (SPS, bzw. PLC, Programmable Logic Controller auf englisch) notwendig, dass bestimmte Programmteile zyklisch, d.h. in festen Intervallen aufgerufen werden, um zu prüfen ob sich inzwischen evtl. Eingangsvariablen geändert haben und ob die Ausgänge entsprechend der Programmlogik neu gesetzt oder rückgesetzt werden müssen. In einem sogenannten Task wird festgelegt, in welcher Reihenfolge und wie häufig ein Programm aufgerufen wird. Der Typische Ablauf innerhalb eines SPS Zyklus ist: Alle Hardware Eingangswerte abrufen und zwischenspeichern Programmlogik durchlaufen um neue Ausgangswerte zu berechnen Alle Hardware Ausgangswerte zuweisen 43 / 99

44 Klicken Sie auf Taskkonfiguration MainTask um die Zykluszeit auf t#ms festzulegen. Diese Zykluszeit ist unabhängig von der verwendeten Hardware, da es hierfür einen eigenen Task gibt. Der automatisch erstellte PiXtend-Task hat eine Zykluszeit von 3 ms und sollte nicht verändert werden. Weitere Informationen finden Sie in Kapitel 6.2 SPIKommunikation, Datenübertragung und Zykluszeit. Die Schreibweise t# symbolisiert, dass es sich bei dem Wert um eine Zeitangabe handelt und ist gebräuchlich bei der Programmierung von Steuerungen nach IEC Abbildung 7: CODESYS - Taskkonfiguration - MainTask Die vorgenommenen Einstellungen bedeuten: Im Task MainTask wird alle ms das Programm PLC_PRG aufgerufen, welches dann sequentiell (von oben nach unten) abläuft. Dies wird alle ms wiederholt. 44 / 99

45 In unserem Beispiel ist das Hauptprogramm mit dem Namen PLC_PRG versehen und wird in der Programmiersprache Continous Function Chart erstellt, da wir diese Einstellung Eingangs bei der Erstellung des CODESYS-Projektes gewählt haben. Komplexe SPS-Programme werden in der Regel auf mehrere POUs (Program Organization Units, dt. Bausteine) verteilt um die Wartbarkeit und Übersichtlichkeit des Codes zu verbessern. Wir beschränken uns vorerst auf eine Programm Einheit, nämlich PLC_PRG, welche von CODESYS bei der Erstellung des Standardprojektes schon automatisch erzeugt wurde. Doppelklicken Sie auf PLC_PRG um den Editor zu öffnen und mit der Erstellung des Programm Codes zu beginnen. In CFC wird grafisch programmiert. Ziehen Sie zunächst drei Eingang Blöcke per Drag&Drop aus der Werkzeug Box (rechts) und platzieren Sie diese untereinander im Arbeitsbereich: Abbildung 8: CODESYS - PLC_PRG (CFC) - Eingang 45 / 99

46 Wiederholen Sie dies mit drei Ausgang Blöcken und verbinden Sie per Drag&Drop jeweils einen Eingang mit einem Ausgangsblock. Abbildung 9: CODESYS - CFC - 3 Eingänge verbunden mit 3 Ausgängen Klicken Sie in die Mitte eines Blockes um Variablen oder Konstanten wie in der Abbildung zuzuweisen. Ein Klick auf die drei Punkte... öffnet die, Ihnen schon bekannte, Eingabehilfe für Variablen. Sie können entweder den Variablennamen eintippen und die Autovervollständigung von CODESYS nutzen oder aus der Liste auswählen. Abbildung 2: CODESYS - CFC - Parametriert Sie haben soeben Ihr erstes Programm erstellt. Hier eine kurze Erklärung: Das Raspberry Pi GPIO Bit 24 wird auf TRUE gesetzt um die SPI Kommunikation mit dem PiXtend V2 -S- Mikrocontroller zu aktivieren Eingang xdi wird auf Ausgang xdo geschrieben Eingang xdi wird auf Ausgang xdo geschrieben Klicken Sie in Der Menü Leiste auf Erstellen Übersetzen um das Programm zu kompilieren. 46 / 99

47 Verbindung mit PiXtend V2 -S- und Programm Download Wenn das Programm ohne Fehler kompiliert ist, doppelklicken Sie im Projektbaum auf Device (CODESYS Control for Raspberry) und anschließend auf den Button Netzwerk durchsuchen im Reiter Kommunikation. Abbildung 2: CODESYS - Kommunikation - Netzwerk durchsuchen... CODESYS sucht nun in Ihrem lokalen Netzwerk nach einem Raspberry Pi auf dem die CODESYS Runtime Erweiterung läuft. Wenn kein Device gefunden wird, prüfen Sie bitte folgende Punkte: Ist die korrekte SD Karte mit dem Image für die CODESYS Laufzeit Erweiterung eingelegt? Ein vorgefertigtes Image finden Sie im Download Bereich (/downloads). Zur Erstellung eines eigenen CODESYS Images für den Raspberry Pi, lesen Sie bitte die PDF-Anleitung die Sie im CODESYS Store auf der Download-Seite des CODESYS Control for Raspberry Pi SL finden. Ist der Raspberry Pi eingeschaltet und besitzt er eine gültige IP, die Sie von ihrem PC aus pingen können? (via ping Befehl aus der Windows Kommandozeile) Die IP Ihres Raspberry Pi erfahren Sie mit dem Befehl ifconfig in der Raspberry Pi Kommandozeile. Kennen Sie die IP nicht, benötigen Sie einen Bildschirm und Tastatur um direkt auf dem Raspberry Pi nachschauen zu können. Falls Sie hier eine gültige IP sehen aber der Ping nicht erfolgreich ist, prüfen Sie die Netzwerkverbindung zu Ihrem Raspberry Pi Wenn das Raspberry Pi länger als 2 Stunden eingeschaltet war, beendet sich die CODESYS Runtime Erweiterung automatisch und der Raspberry Pi muss neu 47 / 99

48 gestartet werden. Dies können Sie z.b. bequem über die Linux-Konsole tun: sudo shutdown -r now Wenn der Raspberry Pi gefunden und ausgewählt wurde, klicken Sie im Hauptmenü auf Online Einloggen und führen Sie einen Download auf das Raspberry Pi durch. Sobald Sie Online sind, können Sie mit der Taste F5 in den Run Modus wechseln und die Live-Werte im PiXtend V2 -S- E/A-Abbild einsehen. Klicken Sie im Gerätebaum auf PiXtend V2 -S- und wählen Sie den Reiter SPI devices E/A-Abbild. Unter State Firmware und Hardware sehen Sie die Firmwareversion des Mikrocontrollers und die Revision der Hardware: Abbildung 22: CODESYS - PiXtend V2 -S- E/A-Abbild online Es handelt sich hier um ein PiXtend V2 -S- Board Revision (Hardware = 2) und um die Mikrocontroller Firmware-Version 4. Wenn Sie ein überarbeitetes PiXtend V2 -S- besitzen, beispielsweise nach einer Verbesserung oder Erweiterung, sind die Versionen entsprechend verschieden. Der Kanal Run sollte im Normalbetriebe True sein. Dies bedeutet, dass sich der Mikrocontroller auf PiXtend V2 -S- im Run Mode befindet. 48 / 99

49 Weitere Schritte Testen Sie die Funktionalität ihres Programms indem Sie einen HIGH-Pegel (24V) am digitalen Eingang und anlegen (z.b. mittels eines Tasters, Schalters, oder einer Drahtbrücke). Beachten Sie dazu auch unbedingt die Hinweise zur Inbetriebnahme bzw. das technische Datenblatt im Hardwarehandbuch. Funktioniert alles, können Sie Ihr Programm PLC_PRG nach Belieben abändern. Versuchen Sie z.b. folgendes: Fügen Sie einen Baustein aus der Werkzeug Leiste hinzu und weisen Sie ihm den Typ AND zu indem Sie auf die drei Fragezeichen (???) klicken und AND eintippen. Verbinden Sie die beiden Eingänge des AND Blockes mit xdio und xdi. Der Ausgang des AND Blockes wird also nur TRUE, wenn beide Eingänge gleichzeitig TRUE sind. Um die Sache etwas spannender zu machen fügen Sie zusätzlich noch einen Timer On Baustein TON ein und geben Sie ihm einen Instanz-Namen (hier timer_delay ). Der Timer erwartet eine Zeit (hier t#2s - 2 Sekunden) und ein Eingangssignal. Verbinden Sie das IN Signal mit dem Ausgang des AND Blocks. Der Ausgang Q wird dem digitalen Ausgang xdo zugewiesen. Abbildung 23: CODESYS - PLC_PRG (CFC) - Demo-Programm Ein High Pegel an beiden Eingängen xdi und xdi für mindestens 2 Sekunden führt also dazu, dass der Ausgang xdo gesetzt wird. Wenn nur ein Eingang HIGH ist bleibt der Ausgang LOW. Ebenso bleibt der Ausgang LOW solange zwar beide Eingänge HIGH sind, die 2 Sekunden aber noch nicht abgelaufen sind. 49 / 99

50 7.5.2.Schritt für Schritt zur ersten CODESYS Webvisu Wir wollen dem Projekt nun eine Visualisierung hinzufügen damit Sie ihre Steuerung von jedem PC aus (auch Smartphone / Tablet) überwachen können. Rechtsklicken Sie dazu im Projektbaum auf Application Objekt hinzufügen Visualisierung. CODESYS erzeugt nun automatisch den Visualization-Manager und eine leere Visualisierung namens Visualization. Im Manager können Parameter für die Webvisu, wie z.b. der Name der Visualisierung und bevorzugte Auflösung eingestellt werden. Wir belassen es bei den Standardeinstellungen. Abbildung 24: CODESYS - Web-Visualisierung - Konfiguration 5 / 99

51 Ein Doppelklick auf Visualization öffnet den Editor für die Visualisierung. CODESYS besitzt schon eine Reihe vorgefertigter Steuerelemente. Öffnen Sie in der WerkzeugLeiste die Gruppe Schalter/Lampen/Bilder und platzieren Sie vier Lampen im Arbeitsbereich. Abbildung 25: CODESYS - Visualisierung Fügen Sie 4 Beschriftungen hinzu und weisen Sie den Lampen unter der Eigenschaft Variable die jeweiligen Variablen zu (xdi, xdi, xdo, xdo). Abbildung 26: CODESYS - Visualisierung - Elementeigenschaften Beschriftungen sind immer statisch. Um Inhalte von Variablen darzustellen werden in CODESYS Textfelder verwendet. 5 / 99

52 Ziehen Sie zwei neue Rechtecke in den Arbeitsbereich, und geben Sie beim ersten Firmware: %s und beim zweiten Hardware: %s für die Text Eigenschaft ein. Dies erzeugt Platzhalter für zwei Byte Variablen. Setzen Sie den Haken bei Experte und fügen Sie für Textvariablen die beiden Variablen für die Firmwareversion und Hardware Revision, byfirmware und byhardware, beim jeweiligen Rechteck ein. Abbildung 27: CODESYS - Visualisierung - Konfiguration eines Rechtecks Im Live-Betrieb werden die beiden Platzhalter %s entsprechend mit den Textvariablen befüllt. Weitere Platzhalter sind %d für Zahlen, bzw. %f für Gleitkommazahlen (REAL, LREAL). Formatierungsoptionen wie in C sind möglich. 52 / 99

53 Abschließend fügen wir noch eine Überschrift und ein animiertes CODESYS-Logo (Spezielle Steuerelemente - Wartesymbol Würfel) hinzu um das ganze optisch aufzubessern: Abbildung 28: CODESYS - Visualisierung - Fertiggestellt Kompilieren Sie das Projekt erneut mittels Erstellen Übersetzen und führen Sie einen kompletten Download durch. Öffnen Sie einen Browser Ihrer Wahl auf ihrem PC oder Smartphone/Tablet und geben Sie die IP Ihres Raspberry Pi ein, gefolgt von :88/webvisu.htm, also z.b.: Wir wünschen Ihnen viel Spaß bei der Benutzung von PiXtend V2 -S- mit CODESYS und ein gutes Gelingen für Ihre Projekte! 53 / 99

54 7.6. CODESYS RS232 Kommunikation Dieses Kapitel beschreibt alle Schritte, die notwendig sind, um eine Kommunikation zwischen dem Raspberry Pi (CODESYS) und einem Windows PC (Terminal), über die RS232 Schnittstelle von PiXtend V2 -S-, einzurichten Voraussetzungen Die Schritte in diesem Kapitel setzen voraus, dass Sie die vorhergehenden Kapitel, insbesondere Kapitel 7.2 Voraussetzungen und 7.3 Installation der benötigten Software Komponenten, gelesen und entsprechend das CODESYS Development System mit den 3 Komponenten CODESYS, CODESYS Control for Raspberry Pi sowie PiXtend V2 Professional for CODESYS bereits erfolgreich installiert haben Anschluss des Kabels Zur Benutzung der RS232-Schnittstelle müssen die Datenleitungen überkreuz angeschlossen werden, d.h. jeweils RX an TX. Abbildung 29: CODESYS - Schaltplan RS232 Um eine Verbindung mit einem PC herzustellen wird ein USB-zu-Seriell-Adapter benötigt. Weitere Informationen zu RS232 können im Datenblatt (PiXtend V2 -S- technisches Datenblatt im Hardwarehandbuch) nachgelesen werden. 54 / 99

55 7.6.3.Vorbereitung Linux Anpassung der Schnittstelleneinstellungen Zuerst müssen die Schnittstelleneinstellungen des Raspberry Pi angepasst werden, damit die serielle Schnittstelle mit CODESYS verwendet werden kann. Das heißt, die serielle Schnittstelle wird mit diesen Befehlen für Linux deaktiviert und sendet keine Daten mehr (der Zugriff auf die Linux-Konsole über die serielle Schnittstelle wird deaktiviert). Die serielle Schnittstelle des Raspberry Pi kann über das Programm raspi-config aktiviert bzw. umgestellt werden: sudo raspi-config Im Programm wechseln Sie zu: 5 Interfacing Options --> P6 Serial --> <No> --> <Yes> --> <Ok> Im Anschluss findet sich in den Datei /boot/config.txt folgender Eintrag: enable_uart= Bluetooth wird dann automatisch deaktiviert und UART aktiviert. Das Programm raspiconfig nimmt uns hier alle Arbeit ab. Wenn Sie unser CODESYS SD-Karten Image verwenden, dann können Sie den Raspberry Pi jetzt neu starten und anschließend gleich mit Kapitel Terminal Programm fortfahren Die Schnittstelle in der CODESYS-Konfiguration aktivieren Als nächstes muss die Schnittstelle in CODESYS bekannt gemacht werden. D.h. es muss in der CODESYS-Konfiguration die Schnittstelle eingetragen werden damit CODESYS darauf zugreifen kann. Bei CODESYS V3.5 SP (V3.5..x): Bei SP müssen die beiden genannten Zeilen auskommentiert werden. Dies wird mit einem Strickpunkt ; vor den Zeilen erreicht. Beachten Sie ferner dass die Änderungen nicht mehr in der CODESYSControl.cfg durchgeführt werden müssen, sondern in der CODESYSControl_User.cfg. Verwenden Sie hier folgenden Befehl: sudo nano /etc/codesyscontrol_user.cfg dann ganz am Ende der Datei die Zeilen anfügen: [SysCom] ;Linux.Devicefile=/dev/ttyS ;portnum := COM.SysCom.SYS_COMPORT 55 / 99

56 Auf dem SD-Image PiXtend Image CODESYS V2.X.X mit SP-Runtime sind die Zeilen bereits eingetragen und auskommentiert. Sie müssen, wenn Sie mit diesem Image arbeiten, keine Anpassung an der CODESYSControl_User.cfg vornehmen! Soll jedoch eine serielle USB-Schnittstelle verwendet werden, z.b. ein RS485 Dongle, dann müssen die Strichpunkte entfernt und der Name des Linux-Gerätes (Device) muss angepasst werden: [SysCom] Linux.Devicefile=/dev/ttyUSB portnum := COM.SysCom.SYS_COMPORT Achten Sie darauf das hinter ttyusb keine Zahl steht, diese muss weggelassen werden, sonst funktioniert der Zugriff aus CODESYS heraus nicht. Sie können das Gerät bzw. den Gerätenamen mit folgendem Befehl herausfinden: dmesg grep -i tty Raspberry Pi neustarten Nun muss nur noch der Raspberry Pi neu gestarten werden, damit die Einstellungen übernommen werden. sudo reboot 56 / 99

57 7.6.4.Terminal Programm Wenn eine Verbindung mit einem PC aufgebaut werden soll, wird zur Kommunikation ein Terminal-Programm benötigt Terminal Programm installieren Falls noch kein Terminal Programm vohanden ist sollte als nächster Schritt eines installiert werden. In unserem Beispiel verwenden wir HTerm ( Terminal öffnen und einstellen Abbildung 3: CODESYS - HTerm.8.beta - RS232 Testprogramm Einstellungen: - Port: Im Geräte-Manager unter Anschlüsse (COM & LPT) - Baudrate: wie in CODESYS, z.b. 96 Baud - Data: 8 - Stop: - Parity: none Nun muss nur noch mit der Taste Connect die Verbindung hergestellt werden. Jetzt können Daten empfangen und gesendet werden. 57 / 99

58 7.6.5.CODESYS CODESYS Projekt 'PiXtendSerialTest' starten Als erstes muss das Projekt PixtendSerialTest geöffnet, das Programm auf den Raspberry Pi übertragen und gestartet werden. Das Testprojekt kann unter heruntergeladen werden. Beachten Sie, dass dieses Projekt auch für PiXtend V.2/.3 ausgelegt ist, auf dem PiXtend V2 -S- steht Ihnen keine RS485 Schnittstelle zur Verfügung. Ignorieren Sie daher den Schalter Enable RS485. Der RS232 Teil des Projekts ist vollständig mit PiXtend V2 -Skompatibel Visualisierung Abbildung 3: CODESYS - Visualisierung - Testprogramm - Serielle Kommunikation 58 / 99

59 Kurzanleitung:. Baudrate einstellen (muss mit Kommuniaktionspartner übereinstimmen) 2. CONNECT -Button betätigen Daten werden jetzt automatisch empfangen und angezeigt. Um eine Nachricht zu versenden: 3. Nachricht in das Send -Feld eingeben 4. SEND -Button betätigen Funktion der Buttons, Schalter und Auswahlfelder: CONNECT / DISCONNECT Verbindung zum PC Terminal, oder sonstigem Gerät, herstellen bzw. trennen. CLEAR ALL Die empfangenen Nachrichten, empfangene (RX) und gesendete (TX) Bytes und Fehler werden gelöscht. Außerdem wird das automatische Versenden von Nachrichten deaktiviert. SEND Versendet die in das Eingabefeld eingegebene Nachricht. Baudrate Hier kann die gewünschte Baudrate (Bits/Sekunde) eingestellt werden. Enable RS485 (nur PiXtend V.2/V.3!) Mit diesem Wechselschalter kann zwischen der RS232 und der RS485 Schnittstelle umgeschaltet werden. Dazu muss allerdings zuerst ein Disconnect durchgeführt werden, da nicht beide Schnittstellen gleichzeitig betrieben werden können. auto scroll Wenn diese Checkbox aktiv ist (Häkchen), scrollt die Anzeige der empfangenen Nachrichten immer automatisch zur aktuellsten Nachricht. enable Auto send Aktiviert das automatische Senden der eingegebenen Nachicht im eingestellten Intervall. 59 / 99

60 Ein-/Ausgabefelder: Receive Hier werden die empfangenen Daten mit Zeitstempel tabellarisch angezeigt. Send Hier werden die Daten, die gesendet werden sollen, eingegeben. Auto send Daten, die automatisch gesendet werden sollen. interval Intervall, in dem die Daten automatisch gesendet werden sollen. Minimum ist Sekunde. Statusanzeigen: Error Code Sollte während der Bedienung ein Fehler beim Öffnen, Schließen, Lesen oder Schreiben auftreten, wird dieser über die Fehler LEDs angezeigt. Dazu wird im Feld Error Code der entsprechende Fehler Code angezeigt. Status Zeigt den Status an, in dem sich das Programm im Moment befindet. 6 / 99

61 7.7. CODESYS PiXtend Retain Speicher Das PiXtend V2 -S- verfügt über einen 32 Byte großen Flashspeicher, den ein Anwender von CODESYS aus mit beliebigen Werten beschreiben kann. Dieses Kapitel soll die Verwendung des Retain Speichers veranschaulichen und aufzeigen welche Punkte zu beachten sind Vorbereitung Als Vorbereitung für dieses Beispiel wird ein neues leeres COEDSYS Standard-Projekt benötigt und der SPI-Bus ist mit einem SPI-Master und einem PiXtend V2 -S- konfiguriert. Ferner sollte in den Raspberry Pi GPIOs der Pin 24 als Ausgang definiert sein und im E/A-Abbild den Variablennamen SPI_ENABLE erhalten. Abbildung 32: CODESYS - RetainDemo - Gerätebaum Im E/A-Abbild des PiXtend V2 -S- werden mehrere Variablen benötigt, diese sind nachfolgend tabellarisch aufgeführt. Ordner Kanal Variable Beschreibung Control RetainDataEnable xretaindataenable Ein- / Ausschalten der Retain Funktion State Firmware byfirmware Firmware Version des Mikrocontrollers State Hardware byhardware Hardware Revision des PiXtend V2 -S- State ModelIn bymodel Modellnummer des PiXtend V2 -S- State RetainCRCError xretaincrcerror Retain CRC Fehlerbit State RetainVoltageError xretainvoltageerror Retain Spannungsversorgung unter 9 Volt State Run xrun Mikrocontroller aktiv Signal State CRCHeaderInError xcrcheaderinerror CRC Fehler in den SPI-Kopfdaten festgestellt State CRCDataInError xcrcdatainerror CRC Fehler in den SPI-Nutzdaten gefunden Retain Data RetainDataOut arretaindataout Retain-Daten zum Mikrocontroller Retain Data RetainDataIn arretaindatain Retain-Daten vom Mikrocontroller Das CODESYS Projekt ist jetzt vorbereitet, alle benötigten Eistellungen sind vorgenommen worden. Jetzt kann es mit dem Programmieren los gehen! 6 / 99

62 7.7.2.Programm erstellen Im Programm-Baustein PLC_PRG brauchen wir 4 neue Variablen um unser Testprogramm zu steuern. Im Deklarationsabschnitt folgende Variablen anlegen: xinit: BOOL xretaininit: BOOL iretainstep: INT xsetnewvalue: BOOL Abbildung 33: CODESYS - Retain - Variablendeklaration Im Programmteil fügen wir folgendes Programm ein: IF xinit = FALSE THEN xinit := TRUE; SPI_ENABLE := TRUE; END_IF IF xretaininit = FALSE THEN CASE iretainstep OF : IF xrun = TRUE AND byfirmware = 4 AND byhardware = 2 AND bymodel = 83 AND xretaincrcerror = FALSE AND xretainvoltageerror = FALSE AND xcrcheaderinerror = FALSE AND xcrcdatainerror = FALSE THEN iretainstep := ; END_IF : arretaindataout[] := arretaindatain[]; iretainstep := 2; 2: xretaindataenable := TRUE; iretainstep := 3; 3: xretaininit := TRUE; END_CASE END_IF IF xsetnewvalue THEN xsetnewvalue := FALSE; arretaindataout[] := arretaindataout[] + ; END_IF Die Zahlen (4, 2 und 83) für die Vergleiche von byfirmware, byhardware und bymodel müssen ggf. durch die tatsächlichen Werte des vorliegenden PiXtend V2 -S- ersetzt werden. Hier handelt es sich lediglich um Beispielwerte. 62 / 99

63 Abbildung 34: CODESYS - Retain - Beispielprogramm Erläuterung zum Programmablauf: In ersten Abschnit mit der Zeile If xinit = False then wird eine sehr kurze Initialisierung durchgeführt, es wird lediglich die SPI-Kommunikation mit SPI_ENABLE := True eingeschaltet. Im nächsten Abschnitt werden per Schrittkette bestehende Retain-Daten in CODESYS eingelesen, so fern die Prüfung verschiedener Variablen, siehe Vorbereitung, erfolgreich verläuft. Im Schritt wird das erste Byte der RetainDataIn Array-Variable auf das erste Byte der RetainDataOut Array-Variable geschrieben und im 3 Schritt wird die RetainFunktion des PiXtend V2 -S- eingeschaltet. Es wird empfohlen die Retain-Funktion immer als letztes zu aktivieren, nachdem die alten (bisherigen) Daten wiederhergestellt wurden. Den letzten Abschnitt können wir dazu verwenden das erste Byte der RetainDataOut Array-Variable jeweils um einen Zähler zu erhöhen indem die Variable xsetnewvalue auf True gesetzt wird. Danach können wir den Stecker vom PiXtend V2 -S- ziehen und alles 63 / 99

64 geht aus. Nach einem Neustart sollten wir in der RetainDataOut Array-Variable den Wert vorfinden, der vor dem Ziehen des Steckers dort abzulesen war. Beispielablauf:. Nach dem Programmstart haben arretaindataout[] und arretaindatain[] den gleichen Wert, hier im Beispiel ist es die Zahl 3. Abbildung 35: CODESYS - Retain Startwert 3 2. Nach dem Setzen der Variable xsetnewvalue auf True, erhöht sich der Wert in arretaindataout[] um einen Zähler auf 4. Die Variable arretaindatain[] zeigt uns immernoch den alten Wert an. Abbildung 36: CODESYS - Retain - arretaindataout[] wurde um auf 4 erhöht 3. Wir ziehen den Stecker/Trennen die Versorgung des PiXtend V2 -S-, warten kurz und stellen die Versorgung wiederher (Power-Cycle). 4. Nach dem Neustart wurde der alte Wert aus dem Flashspeicher des Mikrocontrollers wiederhergestellt und sofort in das erste Byte der RetainDataOut ArrayVariable geschrieben. Ab jetzt können wir bequem mit diesem Wert weiterarbeiten. Abbildung 37: CODESYS - Retain - Nach Power-Cycle Wert 4 wurde aus Retain Speicher wiederhergestellt Das Beispiel ist an dieser Stelle zu Ende, auf der nächsten Seite finden Sie noch weitere Informationen zu fortgeschrittenen Programmiertechniken um beispielsweise die Datensicherheit der Retain-Daten zu erhöhen. 64 / 99

65 7.7.3.Weitere Informationen Datensicherheit erhöhen Die Retain-Daten werden im Mikrocontroller Flash mit einem CRC abgespeichert und beim Start gelesen und geprüft. Es kann sinnvoll sein so eine Prüfung ebenfall in CODESYS durchzuführen um auch hier die Korrektheit der persistenten Daten sicherzustellen. Zu diesem Zweck kann eine Prüfsumme (CRC), z.b. mit 6 Bits, erstellt werden. In CODESYS gibt es solche Funktionen in den Bibliotheken CAA Memory und CmpChecksum. Aber auch in der CODESYS Open Source Bibliothek, kurz OSCAT, sind solche Funktionen zu finden. Eine 6 Bit Prüfsumme kann in zwei Bytes aufgeteilt und in die letzten beiden Bytes des Retain Speichers geschrieben werden. Nach einem Neustart hat man in CODESYS die Möglichkeit die wiederhergestellen Werte anhand dieser Prüfsumme gegen zu prüfen Arbeiten mit Strukturen Die aus- und eingehenden Retain-Daten werden als Array mit 32 Bytes bereitgestellt. Jedes Byte in diesem Array kann einzeln angesprochen werden, was eine einfach Verarbeitung in einer Schleife ermöglicht, sowie einen direkten Zugriff erlaubt. Möchte man jedoch 6 Bit, 32 Bit oder sogar 64 Bit Werte im Retain Speicher ablegen, kann diese etwas mühsam werden, da man jedes Byte einzeln zuweisen muss. Um solche Situationen zu vereinfachen bietet CODESYS zwei praktische Ansätze. Mit Strukturen (Struct) lassen sich Daten in CODESYS organisieren und zusammenfassen. Kombiniert man eine Struktur mit einem Union-Datentyp, fortgeschrittene Anwender kennen diesen DUT ggf. schon, spricht man hier auch von einer Überlagerung und man erhält so die Möglichkeit die Retain-Daten über eine Struktur anzusprechen. Der große Vorteil dieser Vorgehensweise ist, dass man sich nicht mehr um die Aufteilung der einzelnen Bytes im Array kümmern muss. Beispiel: Eine DWORD Variable ist 4 Bytes groß, wird diese Variable in einem Union-Datentyp mit einem Array der Länge 4 Bytes kombiniert, so wird jeder Wert der in die DWORD Variable geschrieben wird automatisch auf die 4 Byes des Arrays aufgeteilt. Dies ist möglich da die DWORD Variable und das 4 Byte große Array den selben Speicherplatz in Arbeitsspeicher von CODESYS belgen (Überlagerung). 65 / 99

66 7.8. PiXtend V2 -S- SPI Device 7.8..SPI Device Parameter Das PiXtend V2 -S- SPI Gerät in CODESYS verfügt über einige Einstellungen die vor dem Übersetzen im Reiter SPI devices Parameter eingestellt werden können. Diese Parameter können später zur Laufzeit nicht mehr geändert werden. Abbildung 38: CODESYS PiXtend V2 -S- - SPI devices Parameter Reiter Volt/ Volt Jumper Setting Dieser Parameter dient dazu dem CODESYS Treiber für das PiXtend mitzuteilen, ob die analogen Signale an AnalogIn und AnalogIn im Bereich von 5 Volt (Jumper gesetzt) oder Volt (Jumper nicht gesetzt, Werkseinstellung) liegen. Der Treiber verwendet je nach Einstellung einen anderen Umrechnungsfaktor zur Berechnung der Spannungswerte. Das PiXtend selbst kann nicht erkennen ob ein Jumper gesetzt ist oder nicht, der Anwender muss die Einstellung in CODESYS mit den tatsächlichen (physikalisch) vorhanden Jumpern auf PiXtend abgleichen und eine entsprechende Einstellung bei diesem Parameter vornehmen. 66 / 99

67 GPIO Configuration Die GPIO Konfiguration ermöglicht die Festlegung welche Einstellung jeder einzelne GPIO haben soll. Jeder GPIO kann eine von vier Einstellungen haben: Input (Eingang) Standardeinstellung Output (Ausgang) DHT - (Eingang für Temperatur- und Luftfeuchtemessung) DHT22 - (Eingang für Temperatur- und Luftfeuchtemessung) Ferner bietet die GPIO Konfiguration die Möglichkeit die GPIO PullUps zu aktivieren. Steht diese Einstellung auf On (An), so lassen sich die GPIO PullUps über das Setzen des jeweiligen GPIO Ausgangs aktivieren, während ein GPIO als Input (Eingang) konfiguriert ist Microcontroller Settings Der Mikrocontroller des PiXtend V2 -S- bietet zwei Einstellungen die der Anwender verändern kann.. WatchdogEnable Mit dieser Einstellung kann der Watchdog des Mikrocontrollers Einund Ausgeschaltet werden. Die Stellung Disabled bedeutet der Watchdog ist aus (inaktiv), die Auswahl einer entsprechenden Wartezeit aktiviert den Watchdog. Es stehen Zeiten von 6 Millisekunden bis hin zu 8 Sekunden zur Auswahl. 2. StateLEDDisable Das PiXtend V2 -S- verfügt über eine Status LED, die bei Auftreten eines Problems im Mikrocontroller, einen Fehler signalisiert. Sollte es erforderlich sein, kann diese LED deaktiviert werden. Die Einstellung False bedeutet die LED ist aktiv (ein), das Setzen auf True hingegen deaktiviert die LED. 67 / 99

68 7.8.2.I/O Übersicht In diesem Kapitel finden Sie eine Aufstellung aller I/Os die in CODESYS für das PiXtend V2 -S- zur Verfügung stehen, zusammen mit dem Datentyp und einer kurzen Beschreibung. Bezeichnung Typ Datentyp Beschreibung PWMCtrl Ausgang WORD Die Auswikung des PWMCtrl Wertes hängt vom gewählten Mode in PWMCtrl ab. Dieser Wert gilt für die Kanäle A & B von PWM. PWMCtrl Ausgang BYTE Die Auswikung des PWMCtrl Wertes hängt vom gewählten Mode in PWMCtrl ab. Dieser Wert gilt für die Kanäle A & B von PWM. PWMCtrl Ausgang BYTE PWM Control Ermöglicht das Einstellen des PWM Mode, Kanal Enable und Presaclers. PWM verwendet 6 Bit Werte. PWMCtrl Ausgang BYTE PWM Control Ermöglicht das Einstellen des PWM Mode, Kanal Enable und Presaclers. PWM verwendet 8 Bit Werte. GPIODebounce Ausgang BYTE Debounce der GPIO Eingänge and, Wert * Bus-Zyklus Interval = Debounce Zeit. GPIODebounce23 Ausgang BYTE Debounce der GPIO Eingänge 2 and 3, Wert * Bus-Zyklus Interval = Debounce Zeit. DigitalInDebounce Ausgang BYTE Debounce der Digital Eingänge und, Wert * Bus-Zyklus Interval = Debounce Zeit. DigitalInDebounce23 Ausgang BYTE Debounce der Digital Eingänge 2 und 3, Wert * Bus-Zyklus Interval = Debounce Zeit. DigitalInDebounce45 Ausgang BYTE Debounce der Digital Eingänge 4 und 5, Wert * Bus-Zyklus Interval = Debounce Zeit. DigitalInDebounce67 Ausgang BYTE Debounce der Digital Eingänge 6 und 7, Wert * Bus-Zyklus Interval = Debounce Zeit. SafeState Ausgang BIT Versetzt den Mikrocontroller in den sicheren Zustand, sollte die Steuerung einen Neustart oder Shutdown brauchen. True = Sicherer Zustand, False = Bleibe EIN. RetainDataEnable Ausgang BIT Retain-Daten Speicherung im Mikrocontroller einschalten. TRUE = On, FALSE = Off. RetainCopy Ausgang BIT Wenn TRUE, dann werden die aktuuellen RetainDataOut Bytes im Mikrocontroller nach RetainDataIn koipiert. Bei FALSE werden die aktuell im Flash gespeicherten Daten in RetainDataIn ausgegeben. Firmware Eingang BYTE Firmware-Version des Mikrocontrollers auf PiXtend V2 -S- Board. Hardware Eingang BYTE PiXtend V2 -S- Boardrevision, 2 = 2., 2 = 2., usw. ModelIn Eingang BYTE Modellnummer ausgelesen vom PiXtend V2 -S-. Error Eingang BYTE Fehlerbyte vom Mikrocontroller. Siehe Status-Bytes. Control State 68 / 99

69 RetainCRCError Eingang BIT Der CRC des Retain-Speicher im Mikrocontroller ist flasch, die gespeicherten Daten können fehlerhaft sein. RetainVoltageError Eingang BIT Wenn TRUE, dann kann die Retain-Funktion nicht genutzt werden, die Versurgungsspannung liegt unter 9 Volt. Run Eingang BIT Die Kommunikation mit dem Mikrocontroller ist in Ordnung. BusCycleError Eingang BIT Die Zykluszeit (Interval) des Buszyklustasks ist zu schnell. CRCHeaderInError Eingang BIT Ein CRC Fehler wurde im SPI Header festgestellt, es liegt ein Kommunikationsfehler vor. CRCDataInError Eingang BIT Ein CRC Fehler in den PiXtend V2 -S- SPI Daten wurde festgestellt, es gibt keine brauchbaren Daten. ModelInError Eingang BIT Modellfehler festgestellt, das eingestellte PiXtend V2 -S- Model in CODESYS V3 und die tatsächliche Hardware stimmen nicht überein. SensorError Eingang BIT Wenn TRUE, dann konnte der Mikrocontroller keine Daten vom Sensor am GPIO lesen. Die Temperatur- und Luftfeuchtewerte sind ungültig. SensorError Eingang BIT Wenn TRUE, dann konnte der Mikrocontroller keine Daten vom Sensor am GPIO lesen. Die Temperatur- und Luftfeuchtewerte sind ungültig. Sensor2Error Eingang BIT Wenn TRUE, dann konnte der Mikrocontroller keine Daten vom Sensor am GPIO 2 lesen. Die Temperatur- und Luftfeuchtewerte sind ungültig. Sensor3Error Eingang BIT Wenn TRUE, dann konnte der Mikrocontroller keine Daten vom Sensor am GPIO 3 lesen. Die Temperatur- und Luftfeuchtewerte sind ungültig. AnalogIn Eingang REAL Analog Eingang gemssen in Volt [V], Bereich ist Volt bis + Volt. AnalogInRaw Eingang WORD Analog Eingang Rohwert, tatsächlicher 6 Bit-Wert vom ADC. AnalogIn Eingang REAL Analog Eingang gemessen in Volt [V], Bereich ist Volt bis + Volt. AnalogInRaw Eingang WORD Analog Eingang Rohwert, tatsächlicher 6 Bit-Wert vom ADC. DigitalInputs Eingang BYTE Digital Eingänge -7, Bit-Zugriff ist möglich. GPIOInputs Eingang BYTE GPIO Eingänge -3 als Byte, Bit-Zugriff ist möglich. Diese Funktion ist abhängig von den Einstellungen im Reiter Paramter. Analog Inputs Digital Inputs 69 / 99

70 Digital Outputs DigitalOutputs Ausgang BYTE Digital Ausgänge -3 als Byte, Bit-Zugriff ist möglich. GPIOOutputs Ausgang BYTE GPIO Ausgänge -3 als Byte, Bit-Zugriff ist möglich. Diese Funktion ist abhängig von den Einstellungen im Reiter Paramter. RelayOutputs Ausgang BYTE Relais-Ausgänge -3 als Byte, Bit-Zugriff ist möglich. PWMA Ausgang WORD PWM, Kanal A Ausgabewert. Das tatsächliche PWM-Verhalten hängt von der Mode-Einstellung im Byte PWMCtrl ab. PWMB Ausgang WORD PWM, Kanal B Ausgabewert. Das tatsächliche PWM-Verhalten hängt von der Mode-Einstellung im Byte PWMCtrl ab. PWMA Ausgang BYTE PWM, Kanal A Ausgabewert. Das tatsächliche PWM-Verhalten hängt von der Mode-Einstellung im Byte PWMCtrl ab. PWMB Ausgang BYTE PWM, Kanal B Ausgabewert. Das tatsächliche PWM-Verhalten hängt von der Mode-Einstellung im Byte PWMCtrl ab. Humidity Inputs Luftfeuchtewert eines Sensors der an GPIO -3 angeschlossen. Die Sensoroption muss im Reiter Parameter aktiviert sein. Die Einheit ist %RH. Humid Eingang REAL Humid Eingang REAL Humid2 Eingang REAL Humid3 Eingang REAL Temperature Inputs Temperaturwert eines Sensors der an GPIO -3 angeschlossen ist. Die Sensor-option muss im Reiter Parameter aktiviert sein. Die Einheit ist Grad Celsius ( C). Temp Eingang REAL Temp Eingang REAL Temp2 Eingang REAL Temp3 Eingang REAL Retain Data Die Retain-Daten können dazu verwendet werden um in Fall eines Stromausfalls bis zu 32 Bytes im Speicher der Mikrocontrollers zu sichern. Nach einem Neustart lassen sich diese Daten wiederherstellen bzw. zurücklesen. RetainDataOut Ausgang ARRAY[..3] OF BYTE RetainDataIn Eingang ARRAY[..3] OF BYTE PWM Outputs Tabelle 2: CODESYS E/A Übersicht für PiXtend V2 -S- 7 / 99

71 7.9. FAQ Häufig gestellte Fragen und Fehlerbehandlung 7.9..CODESYS Raspberry Pi Runtime und PiXtend V2 -SProblem Die grüne LED +5V leuchtet und der Raspberry Pi fährt normal hoch. Der Datenaustausch zwischen Raspberry Pi und PiXtend V2 -S- scheint aber nicht zu funktionieren (z.b. Relais oder Ausgänge lassen sich nicht setzen). Fehlersuche Überprüfen Sie, ob der Schalter SPI_EN auf der Position ON steht. Dieser macht die Kommunikation zwischen Raspberry Pi und PiXtend V2 -S- erst möglich. Wenn Sie unter CODESYS arbeiten und ein eigenes Projekt angelegt haben, so ist immer darauf zu achten, dass der GPIO24 (des Raspberry Pi) als Ausgang konfiguriert und auf TRUE gesetzt wurde (siehe Abb. 39). Der GPIO24 ist das Signal, welches über den SPI_EN Schalter übertragen wird und die Datenübertragung aktiviert. Abbildung 39: CODESYS - GPIO24 als Ausgang konfiguriert 7 / 99

72 7.9.2.RS232 Kommunikation Es werden nicht alle Zeichen übertragen oder kommen nacheinander an Wenn zu viele Zeichen gesendet werden, kann es sein, dass nicht alle Zeichen auf einmal übertragen werden können. Ein Zyklus reicht dann nicht zum Senden aller Zeichen aus. Abhilfe kann eine Erhöhung der Baudrate schaffen. Um grob zu Überschlagen, wie viele Zeichen übertragen werden können, kann folgende Rechnung durchgeführt werden: Anzahl der möglichen Zeichen = (Zykluszeit * Baudrate) / zu übertragende Bits die Zykluszeit wird in Sekunden angegeben ( ms =, s) die zu übertragenden Bits enthalten je nach Protokoll auch z.b. ein Start- oder Stopbit ein Zeichen besteht aus 8 Bits (= Byte) Wozu werden im Programm die GPIOs 8 und 22 umgeschaltet? Gilt nur für PiXtend V.2/V.3! GPIO_8: GPIO_22: TRUE => RS485 FALSE => RS232 TRUE => RS485 Sende-Modus FALSE => RS485 Empfangs-Modus Die Umschaltung von Senden und Empfangen bei RS485 muss manuell erfolgen, da der Raspberry Pi nicht die dafür benötigten Pins (RTS/CTS) zur Verfügung stellt Das Scrollen der Tabelle funktioniert nicht richtig Wenn der Mauszeiger über der Tabelle ist, kann es sein, dass das Scrolling nicht richtig funktioniert. Einfach den Mauszeiger aus der Tabelle bewegen Die Seite / Oberfläche wird nicht richtig angezeigt Da es sich bei der Seite um ein Canvas-Element handelt, kann es dazu kommen, dass dieses nicht richtig angezeigt wird. Abhilfe schafft hierbei ein Neuladen der Seite (F5). Außerdem muss ein Broswer verwendet werden, der HTML5 beherrscht. 72 / 99

73 Die erste Nachricht wir nicht richtig übertragen Wenn zwei PiXtend V2 -S- miteinander verbunden sind, wird die erste gesendete Nachricht nicht korrekt übertragen, sondern nur das erste Zeichen. Dieses Verhalten kann auftreten, wenn beide PiXtend V2 -S- bzw. Raspberry Pi's gleichzeitig gestartet werden. Die Ursache hierfür ist die Kernel-Meldung Uncompressing Linux... welche immer beim Start auf der seriellen Schnittstelle ausgegeben wird, auch wenn diese eigentlich deaktiviert ist. Dabei handelt es sich um ein Problem der Raspian Jessie Version vom 2..25, welches mit der nächsten Version behoben werden sein sollte Warum gibt es bei RS485 die Auto send -Funktion nicht? Gilt nur für PiXtend V.2/V.3! Diese Funktion ist im Programm zwar vorbereitet, wird aber nicht verwendet. Da RS485 ein Busprotokoll ist, darf immer nur ein Teilnehmer zur gleichen Zeit senden. Wird die Auto-send -Funktion benutzt und mehr als ein Teilnehmer sendet zur gleichen Zeit, kann es zur Kollision kommen und die Daten werden nicht korrekt übertragen Es werden nicht alle Baudraten angezeigt In diesem Beispiel sind nur einige Baudraten im Bereich von 96 bis 52 voreingestellt. Wenn andere Baudraten benötigt werden, müssen diese ebenfalls in das Programm eingepflegt werden (in der Textliste Baudrates sowie im Hauptprogramm in state 5 ). Falls die Auswahlliste nicht richtig angezeigt wird, kann eine Änderung des Seitenverhältnisses des Fensters Abhilfe schaffen. 73 / 99

74 8. pxdev Linux Tools & Library Diese Anleitung beschreibt alle Schritte die notwendig sind um pxdev, die Linux Entwicklungs-Tools für das PiXtend V2 -S- System (), zu installieren und in Betrieb zu nehmen Für eine manuelle Installation siehe Kapitel: 8.4 Manuelle Installation von pxdev Alternativ können Sie auch sehr einfach mit unserem vorbereiteten SD-Karten-Images durchstarten. Diese Möglichkeit empfehlen wir besonders Einsteigern und für die erste Inbetriebnahme von PiXtend V2 -S- Kapitel: 8.3 Verwenden des PiXtend V2 Basis Images In pxdev sind folgende Komponenten enthalten: pixtend Die PiXtend/PiXtend V2 -S- C-Library ermöglicht den Zugriff auf PiXtend V2 -SI/O-Hardware. Der Datenaustausch zwischen Mikrocontroller und Raspberry Pi findet per SPI (Serial Peripheral Interface) statt. Dazu wird die wiringpi-library verwendet. ( pixtendtool2s - Ein Kommandozeilen-Tool, mit dem auf die PiXtend V2 -S- I/O-Hardware und Konfigurationsbytes mittels einfacher Konsolenbefehle zugegriffen werden kann. pxauto2s Eine einfache Konsolen-Anwendung mit grafischem User-Interface. PiXtend V2 -S- kann damit kontinuierlich überwacht werden. Die Anwendung eignet sich für die schnelle Inbetriebnahme und I/O-Tests. 74 / 99

75 8.. Hinweise 8...Einsatzbereiche pixtendtool2s Einzelbefehle für PiXtend V2 -SDas pixtendtool2s bietet direkten Zugriff auf die PiXtend V2 -S- Hardware aus der Linux Kommandozeile. Es eignet sich daher u.a. für folgende Einsatzzwecke: Absetzen von Einzelbefehlen über die Kommandozeile: lokal oder auch via SSHFernzugriff über das Netzwerk um z.b. Ausgänge zu bedienen und Eingänge abzufragen Aufruf von pixtendtool2s-befehlen aus eigenen Shell-Skripten Zyklischer Aufruf von pixtendtool2s-befehlen um Daten periodisch zu loggen und für andere Dienste bereitzustellen, z.b. in einer MySQL-Datenbank. Dient als Referenz für die Verwendung der PiXtend/PiXtend V2 -S- C-Library im manuellen Modus (Einzelbefehle) Kann an Ihre eigenen Bedürfnisse angepasst werden 8..2.Einsatzbereiche pxauto2s GUI für PiXtend V2 -SDas pxauto2s-tool verfügt über eine grafische Oberfläche und eignet sich für die schnelle Inbetriebnahme Ihrer PiXtend V2 -S- Hardware. Die Zustände der I/Os können zyklisch überwacht werden. pxauto2s kann sowohl lokal, als auch remote, also mit einem SSH-Terminal, verwendet werden I/O-Tests der angeschlossen Hardware, Sensoren & Aktoren Testen des Funktionsumfangs von PiXtend V2 -S- Grundlage für eigene Projekte mit GUI (Graphical User Interface) Dient als Referenz für die Verwendung der PiXtend/PiXtend V2 -S- C-Library im Auto-Modus (zyklisches Prozess Abbild in C verwendbar) 75 / 99

76 8..3.Einsatzbereiche PiXtend/PiXtend V2 -S- C-Library Die PiXtend/PiXtend V2 -S- C-Library wird von den beiden genannten Programmen verwendet und bildet die Schnittstelle zwischen Raspberry Pi und dem auf PiXtend V2 -Sverwendeten Mikrocontroller. Änderungen an der Library sind üblicherweise nicht notwendig Voraussetzungen Benötigte Software PiXtend V2 -S- SD-Image Basis (C / Python / Node-RED / OpenPLC) (empfohlen!) Download unter: oder: Aktuelle Raspbian (Strech) Linux-Distribution auf einer SD Karte wiringpi ( ncurses Libraries libncurses5-dev libncursesw5-dev Optional SSH-Client (z.b. putty.exe Benötigte Hardware PiXtend V2 -S- Board () Raspberry Pi Model B+ / 2 B / 3 B / 3 B+ 76 / 99

77 8.3. Verwenden des PiXtend V2 Basis Images Der komfortable Weg zu ersten Tests und der weiteren Arbeit mit pxdev ist der Einsatz unserer vorinstallierten SD-Karte bzw. des SD-Karten-Image. Das jeweils aktuellste Image kann jederzeit kostenlos auf unserer Homepage heruntergeladen werden: Wie Sie das Image auf eine SD-Karte aufspielen können, erfahren Sie im Kapitel 6.4 SDKarte für Ihren Raspberry Pi vorbereiten. Nach dem Booten wechseln Sie mit folgendem Befehl in den pxdev-ordner: cd pxdev bzw. in den Ordner des pixtendtools2s : cd pxdev/pixtend_v2/pixtendtool2s/ Das Kapitel 8.4 Manuelle Installation von pxdev können Sie überspringen und direkt mit der Verwendung der Tools bzw. der Library in Kapitel 8.5 Verwendung des pixtendtool2s fortfahren. 77 / 99

78 8.4. Manuelle Installation von pxdev 8.4..Vorbereitung und Installation Die aktuellste Version des pxdev-package kann auf unserer Homepage im Download Bereich als.zip-archiv heruntergeladen werden oder mit GIT aus dem pxdev-repository aus-gecheckt werden. GIT wird zur Versionsverwaltung eingesetzt und ermöglicht in diesem Falle, mit einfachen Befehlen komplette Repositorien aus dem Internet herunterzuladen. Wir empfehlen folgende Vorgehensweise: Geben Sie zunächst folgende Befehle ein: sudo apt-get update sudo apt-get install git-core in der Kommandozeile des Raspberry Pi ein, um GIT auf dem Raspberry Pi zu installieren (falls nicht bereits vorhanden). Pxdev verwendet intern die wiringpi-bibliotheken ( als Grundlage. Installieren Sie die wiringpi Libraries mittels GIT wie folgt: cd ~ git clone git://git.drogon.net/wiringpi cd wiringpi./build pxauto2s verwendet die ncurses Library. Installieren Sie die benötigten Pakete: sudo apt-get install libncurses5-dev libncursesw5-dev Installieren Sie das pxdev-paket in das Home-Verzeichnis Ihres Raspberry Pi. cd ~ 78 / 99

79 Klonen sie das pxdev-repository wie folgt: git clone git://git.code.sf.net/p/pixtend/pxdev pxdev mit dem Befehl ls können Sie die Inhalte ihres Home-Verzeichnis darstellen. Wechseln Sie in den Ordner pxdev: cd pxdev mit ls -la können sie die Inhalte des pxdev-paketes einsehen: Darin ist ein einfaches build-skript enthalten. Machen sie das Skript ausführbar chmod +x build Sie können das build-skript nun starten:./build Es werden nun der Reihe nach die PiXtend/PiXtend V2 -S- Library, das pixtendtool2s, und das pxauto2s-tool erstellt. Das Shell-Skript erstellt zusätzlich die Programme für PiXtend V.x, diese können Sie außer Acht lassen SPI-Bus aktivieren Die Kommunikation zwischen dem Raspberry Pi und dem PiXtend V2 -S- Microcontroller verwendet SPI. Stellen Sie deshalb sicher, dass das SPI-Modul auf dem Raspberry Pi aktiviert ist. Im folgenden zeigen wir Ihnen wie der SPI Bus aktiviert wird. Öffnen Sie raspi-config: sudo raspi-config und aktivieren Sie den SPI-Bus unter 5 Interfacing Options P4 SPI Yes Ok Führen Sie im Anschluss, sollte raspi-config dies nicht anbieten, manuell einen Neustart des Raspberry Pi durch. sudo reboot 79 / 99

80 8.5. Verwendung des pixtendtool2s Wechseln Sie in das Verzeichnis das pixtendtool2s beinhaltet z.b. mit cd ~/pxdev/pixtend_v2/pixtendtool2s Geben Sie nun folgenden Befehl ein: sudo./pixtendtool2s -h Dieser Befehl gibt alle möglichen Aufrufe und Optionen / Parameter aus: PiXtend Tool V2 -S- - Version.5.5 usage: sudo./pixtendtool2s [OPTION] [VALUE(s)] Available options: -h Print this help -do VALUE Set the digital output byte to VALUE[-255] -do BIT VALUE Set the digital output BIT[-3] to VALUE [/] -dor Get the digital output byte -dor BIT Get the digital output BIT[-3] -di Get the digital input byte -di BIT Get the digital input BIT[-7] -ai CHANNEL Get the analog input CHANNEL[-] raw value -ai CHANNEL REF Get the analog input CHANNEL[-] value based on REF[5V/V] -ao CHANNEL VALUE Set the analog output CHANNEL[-] to VALUE[-23] -rel VALUE Set the relay output byte to VALUE[-255] -rel BIT VALUE Set the relay output BIT[-3] to VALUE[/] -relr Get the relay output byte -relr BIT Get the relay output BIT[-3] -gw VALUE Set GPIO output byte to VALUE[-255] -gw BIT VALUE Set GPIO output BIT[-3] to VALUE[/] -gr Get GPIO input byte -gr BIT Get GPIO input BIT[-3] -gc VALUE Set GPIO control to VALUE[-255] -tr CHANNEL TYPE Get temperature from CHANNEL[-3] of TYPE[DHT/DHT22] -hr CHANNEL TYPE Get humidity from CHANNEL[-3] of TYPE[DHT/DHT22] -srv CHANNEL VALUE Set servo CHANNEL[-] to VALUE[-65535] -srv CHANNEL VALUE Set servo CHANNEL[-] to VALUE[-255] -pwm CHANNEL VALUE Set PWM CHANNEL[-] to VALUE[-65535] -pwm CHANNEL VALUE Set PWM CHANNEL[-] to VALUE[-255] -pwmc VALUE VALUE Set PWM control VALUE[-255] and VALUE[-65535] -pwmc VALUE VALUE Set PWM control VALUE[-255] and VALUE[-255] 8 / 99

81 -swc SERIALDEVICE BAUDRATE CHAR Write a CHAR on SERIALDEVICE -sws SERIALDEVICE BAUDRATE STRING Write a STRING on SERIALDEVICE (max 255) -sr SERIALDEVICE BAUDRATE Read data from SERIALDEVICE until Ctrl^C -ucc VALUE Set the microcontroller control to VALUE[-255] -ucc VALUE Set the microcontroller control to VALUE[-255] -ucs Get microcontroller status register -ucr Reset the microcontroller -ucv Get microcontroller version -ucw Get microcontroller warnings Note for PWM / and Servo /: = channel A and = channel B Die Ausgabe kann abweichen, wenn es inzwischen eine neue Version des pixtendtool2s gibt. Die hier dargestellte Ausgabe bezieht sich auf die Version Beispiele Der Befehl sudo./pixtendtool2s -di gibt Auskunft über den Zustand des digitalen Eingangs-Bytes zum Zeitpunkt des Aufrufs: Abbildung 4: Linux-Tools - pixtendtool2s - Schalter '-di' sudo./pixtendtool2s -do 5 Setzt die digitalen Ausgänge auf dez. 5. Dies repräsentiert binär, setzt also die Ausgänge,, 2 und 3. Um analoge Eingänge abzufragen, verwenden Sie dementsprechend: sudo./pixtendtool2s -ai Abbildung 4: Linux-Tools - pixtendtool2s - Schalter '-ai' Analog-Eingang liefert uns den Wert 56. Bei einer Referenzspannung von V und einer Auflösung von Bit (2^ = 24) entspricht der Wert also V / 24 * 56 = 5,4 Volt. 8 / 99

82 Auch serielle Übertragungen per RS232 können mit dem pixtendtool2s sehr einfach aufgerufen werden. Eine Zeichenfolge wird mit folgendem Befehl über die UART-Schnittstelle des Raspberry Pi versendet: sudo./pixtendtool2s -sws /dev/ttys 52 test23 Abbildung 42: Linux-Tools - pixtendtool2s - Schalter '-sws' Beim Raspberry Pi 3 B ( 3 B+) hat die UART-Schnittstelle den Namen /dev/ttys. Hier wird der String (Zeichenfolge) test23 mit einer Baudrate von 5.2 baud übertragen. PiXtend V2 -S- verfügt über eine UART-Schnittstelle die zu einem RS232-Wandler führt. Natürlich kann auf seriellen Schnittstellen auch empfangen / gelesen werden: sudo./pixtendtool2s -sr /dev/ttys 52 Abbildung 43: Linux-Tools - pixtendtool2s - Schalter '-sr' Zusätzliche Hinweise zur UART-Schnittstelle des Raspberry Pi: Standardmäßig ist die serielle Schnittstelle des Raspberry Pi als Remote-Konsole nutzbar. Wenn die Schnittstelle jedoch exklusiv für eigene Datenübertragungen eingesetzt werden soll, so muss das Programm raspi-config verwendet werden: sudo raspi-config Wählen Sie dann: 5 Interfacing Options --> P6 Serial --> <No> --> <Yes> --> <Ok> Im Anschluss ist ein Reboot notwendig: sudo reboot 82 / 99

83 8.5.2.Weitere Schritte Experimentieren Sie mit den Optionen und Parametern. Nachdem Sie mit der Verwendung und den Parametern des pixtendtool2s vertraut sind, können Sie Ihre eigenen Shell-Skripte schreiben in denen Sie die pixtendtool2s-aufrufe verwenden. Sie können alle Ausgaben von pixtendtool2s z.b. direkt in eine Text Datei umleiten: sudo./pixtendtool2s -h > Help.txt oder Daten an eine bestehende Datei anhängen: sudo./pixtendtool2s -ai >> analog.log Richten Sie einen cronjob ein, der ein Skript zyklisch aufruft und die Zustände aller analogen Eingänge in einer Datei ablegt. - Oder ein Skript das die analogen Werte in eine MySQL-Datenbank einträgt. - Oder ein Skript das täglich zu einer gewissen Uhrzeit ein Relais einschaltet, und zu einer anderen Uhrzeit wieder aus. Vielleicht haben Sie sich gefragt, wie genau die Control-Register bedient oder bestimmte Werte verarbeitet werden müssen. Dazu gibt es weitere Informationen im Anhang (Kapitel 4 Anhang mit unter Kapitel 4. Prozessdaten und 4.2 Control- & Status-Bytes). In diesen Kapiteln finden Sie Bit-genau alle Informationen und Möglichkeiten die PiXtend V2 -S- für Sie bereithält / 99

84 8.6. Verwendung von pxauto2s Wechseln Sie in das Verzeichnis das pxauto2s beinhaltet mit: cd ~/pxdev/pixtend_v2/pxauto2s Geben Sie nun den Befehl sudo./pxauto2s ein, um pxauto2s zu starten. Hier ist die Verwendung des sudo Befehls sehr wichtig. Wird pxauto2s ohne sudo gestartet, kann es zu unerwartetem Verhalten kommen, da ggf. nicht auf die Hardware zugegriffen werden kann. Außerdem könnte die Konsolen-Ausgabe gestört werden. pxauto2s verfügt momentan über folgende Menüpunkte: DIn Digitale Eingänge AIn Analoge Eingänge / Temperatur / Luftfeuchte DHT/22 Einstellung GPIO General Purpose Input / Output DOut Digitale Ausgänge AOut Analoge Ausgänge PWM PWM Ausgänge Ctrl Control-, Debounce und Jumper-Bytes Stat Status Bytes RetIn Retain Input (siehe Kapitel 6.3 Retain-Speicher (dt. Remanenz)) RetOut Retain Output (siehe Kapitel 6.3 Retain-Speicher (dt. Remanenz)) 84 / 99

85 Abbildung 44: Linux-Tools - pxauto2s - Hauptmenü 85 / 99

86 8.6..Navigation Nach dem Start von pxauto2s befinden Sie sich zunächst im Menü (MENU-MODE) Mit den Pfeiltasten HOCH und RUNTER können Sie einen anderen Menü-Punkt anwählen. Mit RETURN wechseln Sie in das gerade ausgewählte Fenster (EDIT-MODE). Farblich hervorgehobene Felder (gelb) können editiert werden indem Sie einen Wert eintippen. Um Werte zu löschen benutzen Sie bitte die Keyboard-Tasten DEL / BACKSPACE. Boolsche Werte (z.b. digitale Ausgänge) und Auswahlmöglichkeiten können mit den Pfeiltasten LINKS / RECHTS gewählt werden. Um Änderungen zu übernehmen verlassen Sie das Felde mit den HOCH / RUNTER Tasten. Um wieder ins Menü zu gelangen, drücken Sie erneut RETURN. Bei diesem Vorgang wird der Wert in aktuellen Feld automatisch übernommen. Mit einem Tastendruck auf q im Hauptmenü wird das Programm beendet Felder editieren Die farblich hervorgehobenen Felder (gelb) können verändert werden. Navigieren Sie mit den Pfeil-Tasten zu dem gewünschten Feld und verwenden Sie LINKS / RECHTS um zwischen den verfügbaren Werten zu wählen oder tippen Sie einen neuen Wert direkt ein. (Hinweis: Nummernblock wird i.d.r. nicht unterstützt bei Zugriff via SSH-Terminal) 86 / 99

87 Abbildung 45: Linux-Tools - pxauto2s - Menü DOut 87 / 99

88 9. C-Library pxdev Mit der PiXtend / PiXtend V2 -S- C-Library ( pxdev ) werden Sie in die Lage versetzt eigene Linux-Programme für Ihr PiXtend V2 -S- Board zu programmieren bzw. die Funktionalitäten in Ihre eigenen Programme zu integrieren. Sie erhalten Zugriff auf alle Eingänge und Ausgänge, die Ihnen mit PiXtend V2 -S- zur Verfügung stehen. In diesem Kapitel wird erläutert, welche Schritte dafür notwendig sind. Außerdem erhalten Sie eine Übersicht zu den Möglichkeiten, die die C-Library bietet. Am Ende dieses Kapitels finden Sie zwei dokumentierte Beispielprogramme die Sie testen oder als Grundlage für eigene Entwicklungen verwenden können. Vielleicht haben Sie bereits die Programme pxauto2s und pixtendtool2s ausprobiert. Diese Programme wurden von Qube Solutions UG mit Hilfe der C-Library erstellt. Abbildung 46: Linux-Tools - pxauto2s Abbildung 47: Linux-Tools - pixtendtool2s 88 / 99

89 9.. Voraussetzungen Dieses Kapitel setzt voraus, dass Sie die C-Library pxdev, bereits installiert haben. Falls Sie dies noch nicht getan haben, finden Sie im Kapitel 8 pxdev Linux Tools & Library weitere Informationen dazu. Die einfachste Möglichkeit ist der Einsatz unseres SD-Karten Basis Image welches Sie kostenlos auf unserer Homepage herunterladen können. In diesem Image ist pxdev und die benötigten Tools bereits installiert. Außerdem sollten Sie sich mit den Kapiteln 4. Prozessdaten & 4.2 Control- & StatusBytes vertraut machen. Grundkenntnisse in der C-Programmierung werden vorausgesetzt. Auch der Umgang mit unterschiedlichen Zahlensystemen (dezimal, binär, hexadezimal) und die Umrechnung zwischen diesen muss bekannt sein. Unter finden Sie immer die neusten Quelltexte der PiXtend / PiXtend V2 -S- Bibliothek. Wenn Sie unter Linux programmieren, so kann es hilfreich sein an einem PC die Quelltexte darzustellen oder diese auszudrucken. Damit vermeiden Sie ein ständiges wechseln zwischen Ihrem Programmcode und den Quelltexten von pxdev. 89 / 99

90 9.2. Vorbereitung Der Datenaustausch zwischen PiXtend V2 -S- und Raspberry Pi wird zyklisch über den SPI-Bus vorgenommen, dieser Vorgang wird auch Auto Mode genannt in Anlehnung an PiXtend V.3. Damit ist es möglich alle Ein- und Ausgangswerte auf einmal auszutauschen. Informationen zu SPI und Zykluszeiten finden Sie im Kapitel 6.2 SPIKommunikation, Datenübertragung und Zykluszeit. Der Auto Mode bietet Vorteile, wie einen optionalen Watchdog-Timer und eine Überprüfung auf Übertragungsfehler (CRC-Prüfsumme). Unser Beispielprogramm pxauto2s verwendet den Auto Mode, wie der Name schon erahnen lässt. Wir betrachten als nächstes die Vorgehensweise des Auto Mode. Wir legen dabei Ordner und Dateien an. Im Kapitel 9.5 Kompilieren und Ausführen des Programms machen wir aus unserem Code ein ausführbares Programm. Wir arbeiten immer im Home-Verzeichnis des Users pi. Damit vermeiden wir Probleme mit Lese- und Schreibberechtigungen, welche in anderen Ordnern auftreten können. Nach dem Einloggen per SSH oder nach dem Booten direkt mit angeschlossener Tastatur & Maus am Raspberry Pi, landen Sie immer automatisch in diesem Verzeichnis. Falls Sie das Verzeichnis gewechselt haben sollten, so kehren Sie mit folgendem Befehl zurück: cd /home/pi 9.2..Erstellen eines neuen Ordners und eines C-Files mkdir pixcexample cd pixcexample Nun erstellen wir ein neues C-File pixcexample und editieren dieses mit dem Editor nano : touch pixcexample.c nano pixcexample.c Der Editor nano startet und Sie sehen, dass die Datei pixcexample.c noch leer ist. 9 / 99

91 9.2.2.Einbinden der Bibliotheken Nun können wir die benötigte PiXtend / PiXtend V2 -S- Bibliothek (pxdev) in unser C-File einbinden: #include <pixtend.h> Außerdem sollten Sie folgende Standard-C-Bibliotheken einbinden: #include <stdlib.h> #include <stdio.h> Nun kann mit dem eigentlichen Programmieren begonnen werden Programmierung In diesem Abschnitt sollen die verschiedenen C-Funktionen, welche pxdev bietet, vorgestellt und genauer erläutert werden. Die Namensgebung der in dieser Dokumentation verwendeten Übergabeparameter unterscheiden sich teilweise vom Header-File der PiXtend / PiXtend V2 -S- Bibliothek. Dies dient ausschließlich zur besseren Übersichtlichkeit und Verständlichkeit. Die SPI Auto Mode Funktion erlaubt die zyklische und schnelle Abarbeitung der verschiedenen PiXtend / PiXtend V2 -S- C-Funktionen. Dabei wird mit Hilfe der zyklischen Redundanzprüfung (cyclinc redundancy check CRC) die Übertragung per SPI auf Fehler überprüft. Des Weiteren bietet der Einsatz der Funktion den Vorteil, dass der Watchdog des PiXtend V2 -S- Mikrocontrollers verwendet werden kann. Bei einem Softwarefehler verhindert dieser einen undefinierten Zustand des Systems. Die Software teilt dem Watchdog in regelmäßigen Abständen mit, dass sie ordnungsgemäß läuft. Meldet sich das laufende Programm nach einer gewissen Zeit nicht zurück, löst der Watchdog einen Reset des Mikrocontrollers aus und das Programm stoppt (siehe Kapitel 6. Definition sicherer Zustand ). Um die Zykluszeit einzustellen und die dauerhafte Übertragung zwischen Raspberry Pi und PiXtend V2 -S- zu gewährleisten, muss beim Auto Mode eine Endlosschleife ( infinity loop ) implementiert werden. Die Schleife wird abhängig von einer Bedingung oder nach einer bestimmten Zeit erneut aufgerufen. Um die Zykluszeit einzustellen, können verschiedene Wartezeiten-Werte verwendet werden, eine Übersicht zu möglichen Werten finden Sie im Kapitel 6.2 SPI-Kommunikation, Datenübertragung und Zykluszeit. 9 / 99

92 Vewendete Funktionen: int Spi_AutoModeV2S(struct pixtoutv2s *OutputData, struct pixtinv2s *InputData) int Spi_AutoModeDAC(struct pixtoutdac *OutputDataDAC) Voraussetzungen: Die Funktion Spi_SetupV2() muss für die Kommunikation mit dem Mikrocontroller aufgerufen werden. Die Funktion Spi_SetupV2() muss für die Kommunikation mit dem DAC (für analoge Ausgänge) aufgerufen werden. Das Programm des Mikrocontrollers startet automatisch. Soll zusätzlich auch der Watchdog-Timer verwendet werden, muss die Funktion wie folgt aufgerufen werden: OutputData.byUcCtrl = x7; //Watchdog set to sec. Mit der Funktion Spi_AutoModeV2S(struct OutputData, struct InputData) wird ein kompletter Datenaustausch zwischen PiXtend V2 -S- und Raspberry Pi initiiert. Um die Funktion nutzen zu können, muss jeweils eine neue Struktur vom Typ pixtinv2s und pixtoutv2s angelegt werden. struct pixtinv2s InputData; struct pixtoutv2s OutputData; 92 / 99

93 Folgende Variablen stehen in der Struktur zur Verfügung. Für weiter Infos zu den einzelnen Bits und Bytes verweisen wir an dieser Stelle auf die Kapitel 4. Prozessdaten und 4.2 Control- & Status-Bytes. OutputData.byModelOut; //Ein Byte Model als Handshake OutputData.byUCMode //Reserviert, keine Verwendung OutputData.byUCCtrl; //Ein Byte für uc Control OutputData.byUCCtrl; //Ein Byte für uc Control OutputData.byDigitalInDebounce; //Ein Byte für Digital Inputs und debounce OutputData.byDigitalInDebounce23; //Ein Byte für Digital Inputs 2 und 3 debounce OutputData.byDigitalInDebounce45; //Ein Byte für Digital Inputs 4 und 5 debounce OutputData.byDigitalInDebounce67; //Ein Byte für Digital Inputs 6 und 7 debounce OutputData.byDigitalOut; //Ein Byte für Setzen der digitalen Ausgänge OutputData.byRelayOut; //Ein Byte für Setzen der Relais OutputData.byGPIOCtrl; //Ein Byte für GPIO Control OutputData.byGPIOOut; //Ein Byte für Setzen der GPIO Outputs OutputData.byGPIODebounce; //Ein Byte für GPIO Inputs und debounce OutputData.byGPIODebounce23; //Ein Byte für GPIO Inputs 2 und 3 debounce OutputData.byPWMCtrl; //Ein Byte für PWM Control OutputData.wPWMCtrl; //Zwei Bytes für PWM Control OutputData.wPWMA; //Zwei Bytes für PWM Kanal A Value OutputData.wPWMB; //Zwei Bytes für PMW Kanal B Value OutputData.byPWMCtrl; //Ein Byte für PWM Control OutputData.byPWMCtrl; //Ein Byte für PWM Control OutputData.byPWMA; //Ein Byte für PWM Kanal A Value OutputData.byPWMB; //Ein Byte für PWM Kanal B Value OutputData.byJumperV; //Ein Byte für Jumperstellung Analog In, OutputData.byGPIODht; //Ein Byte DHT / 22 Auswahl für GPIO OutputData.byGPIODht; //Ein Byte DHT / 22 Auswahl für GPIO OutputData.byGPIO2Dht; //Ein Byte DHT / 22 Auswahl für GPIO 2 OutputData.byGPIO3Dht; //Ein Byte DHT / 22 Auswahl für GPIO 3 OutputData.abyRetainDataOut[32]; //Ein Array mit 32 Bytes Retain Data Output 93 / 99

94 Mit OutputData.byJumperV kann die Jumperstellung der analogen Eingänge AI und AI auf 5 V oder V gesetzt werden. Bei kleineren Spannungen als 5 V macht es Sinn die 5 V Jumperstellung zu verwenden, da so mit einer höheren Auflösung gemessen werden kann. Möchte man den AI auf V setzen, muss die Variable wie folgt befüllt werden: OutputData.byJumperV = x; Soll AI auf eine Jumperstellung von V gesetzt werden, verwendet man: OutputData.byJumperV = x2; Sollen beide analogen Eingänge auf V gesetzt werden: OutputData.byJumperV = x3; Für die Jumperstellung 5 V, müssen die Bits nicht gesetzt bzw. mit dem Wert beschrieben werden. Weitere Informationen finden Sie in den Kapiteln 4. Prozessdaten und 4.2 Control- & Status-Bytes. 94 / 99

95 Die Eingangsdaten von PiXtend V2 -S- können folgenden Variablen entnommen werden: InputData.byFirmware; //Ein Byte für die Mikrocontroller Firmwareversion InputData.byHardware; //Ein Byte für den Hardwarestand InputData.byModelIn; //Ein Byte Model für Handshake InputData.byUCState; //Ein Byte für den Mikrocontrollerzustand InputData.byUCWarnings; //Ein Byte für Warnungen des Mikrocontrollers InputData.byDigitalIn; //Ein Byte für die digitalen Eingänge InputData.byGPIOIn; //Ein Byte für die GPIO Eingänge InputData.wAnalogIn; //Zwei Byte für analog Eingang InputData.wAnalogIn; //Zwei Byte für analog Eingang InputData.wTemp //Zwei Bytes für Temperatur Wert DHT/22 an GPIO InputData.wTemp //Zwei Bytes für Temperatur Wert DHT/22 an GPIO InputData.wTemp2 //Zwei Bytes für Temperatur Wert DHT/22 an GPIO2 InputData.wTemp3 //Zwei Bytes für Temperatur Wert DHT/22 an GPIO3 InputData.wHumid //Zwei Bytes für Luftfeuchte Wert DHT/22 an GPIO InputData.wHumid //Zwei Bytes für Luftfeuchte Wert DHT/22 an GPIO InputData.wHumid2 //Zwei Bytes für Luftfeuchte Wert DHT/22 an GPIO2 InputData.wHumid3 //Zwei Bytes für Luftfeuchte Wert DHT/22 an GPIO3 InputData.rAnalogIn; //float Variable für Spannung analog Eingang InputData.rAnalogIn; //float Variable für Spannung analog Eingang InputData.rTemp; //float Variable für Temperatur an GPIO InputData.rTemp; //float Variable für Temperatur an GPIO InputData.rTemp2; //float Variable für Temperatur an GPIO2 InputData.rTemp3; //float Variable für Temperatur an GPIO3 InputData.rHumid; //float Variable für Luftfeuchte an GPIO InputData.rHumid; //float Variable für Luftfeuchte an GPIO InputData.rHumid2; //float Variable für Luftfeuchte an GPIO2 InputData.rHumid3; //float Variable für Luftfeuchte an GPIO3 InputData.abyRetainDataIn; //Array mit 32 Bytes Retain Data Input 95 / 99

96 Um die beiden Strukturen der Funktion zu übergeben, wird folgende Zeile verwendet: Spi_AutoModeV2S(&OutputData, &InputData); Die Struktur OutputData enthält dabei die Werte für die Control-Bytes und Prozessdaten (Ausgangswerte aus Sicht des Raspberry Pi hin zu PiXtend V2 -S-). In die Struktur InputData werden die Werte der Eingänge während des Programmablaufs geschrieben (vom PiXtend V2 -S- Mikrocontroller). Ein kleines Beispiel: Mit folgendem Code kann die Temperatur über GPIO von einem DHT Sensor ausgelesen und auf die Konsole ausgegeben werden: dhttemp=inputdata.rtemp; printf("temperatur C: %.2f\n", dhttemp); Die Funktion Spi_AutoModeDAC(struct OutputDataDAC) wird ausschließlich für die Kommunikation mit dem Digital-Analog-Converter (DAC) verwendet. Die Funktion verlangt als Übergabeparameter eine Struktur vom Typ pixtoutdac. Diese kann folgendermaßen erstellt werden: struct pixtoutdac OutputDataDAC Die Struktur muss die Werte für die beiden analogen Ausgänge beinhalten. OutputDataDAC.wAOut = 23; //23 entspricht dem Maximalwert, Minimalwert OutputDataDAC.wAOut = 23; Hier werden die analogen Ausgänge auf % gesetzt. Mit dem folgenden Aufruf übergeben wir die Struktur OutputDataDAC der Funktion. Spi_AutoModeDAC(&OutputDataDAC); 96 / 99

97 9.4. Beispielprogramm //Include the librarys #include <pixtend.h> #include <stdio.h> //Function prototype int GetPixData(); //Define some variables float dhttemp=.; float dhthum=.; //PiXtend V2 -S- input data struct pixtinv2s InputData; //PiXtend V2 -S- output data struct pixtoutv2s OutputData; //PiXtend V2 -S- DAC Output Data struct pixtoutdac OutputDataDAC; //Read Temperature and Humidity from GPIO (DHT22) int GetPixData() { dhttemp=inputdata.rtemp; dhthum=inputdata.rhumid; //Only print out valid data if(dhthum>.) { //Write out the data on the linux console printf("temperature [ C]: %.2f\n", dhttemp); printf("humidity [%%]: %.2f\n", dhthum); } return ; } int main(void) { //Configure SPI Spi_SetupV2(); Spi_SetupV2(); //Write Data in Structure OutputData OutputData.byModelOut = 83; // Set model as handshake OutputData.byGPIOCtrl = 32; //GPIO is used with DHT22 sensor OutputDataDAC.wAOut = 23; //pre-load analog outputs OutputDataDAC.wAOut = 23; 97 / 99

98 //Auto Mode in infinity loop while() { //Do the data transfer! Spi_AutoModeV2S(&OutputData, &InputData); Spi_AutoModeDAC(&OutputDataDAC); //Set all Relays if at least one digital input is High if(inputdata.bydigitalin>) { printf("input detected - setting Relays!\n"); OutputData.byRelayOut = 5; } else { OutputData.byRelayOut = ; } //Toggle Analog Outputs if(outputdatadac.waout == 23 OutputDataDAC.wAOut == 23) { OutputDataDAC.wAOut = 52; OutputDataDAC.wAOut = 52; } else { OutputDataDAC.wAOut = 23; OutputDataDAC.wAOut = 23; } //Read data and print it out GetPixData(); //Take a ms break between the cycles delay(); } return ; } 98 / 99

99 9.5. Kompilieren und Ausführen des Programms Um das Programm ausführen zu können, muss es zunächst kompiliert werden. Für das Kompilieren muss folgende Zeile eingegeben werden: sudo gcc -Wall -o "pixcexample" "pixcexample.c" -lpixtend -lwiringpi Nun wird pixcexample.c kompiliert und in pixcexample gespeichert. Mit dem Befehl: sudo./pixcexample wird das Programm ausgeführt. Wer sudo nicht verwenden möchte, kann der kompilierten Datei pixcexample auch die benötigten Rechte geben. Dazu kann beispielsweise folgende Zeile verwendet werden: sudo chmod -R 777 pixcexample Nun kann sudo2 beim Ausführen des C-Programms weggelassen werden. Für das Beenden eines Programms können Sie einfach die Tastenkombination STRG + C (Ctrl + C) verwenden. 2 sudo wird hier überhaupt erst notwendig, weil die SPI-Schnittstelle über die wiringpi-library ( angesprochen wird. Dieser Zugriff erfordert je nach Version immer noch Superuser-Rechte. 99 / 99

100 9.6. Frequently Asked Questions (FAQ) Was muss ich besonders beachten, wenn ich die PiXtend / PiXtend V2 -S- C-Library verwende? Es muss immer als erstes die SPI-Schnittstelle, mit der Funktion Spi_SetupV2(int device), konfiguriert werden. Die Spi_SetupV2 Funktion darf maximal zwei mal (einmal für device, einmal für device ) aufgerufen werden. Daher sollten die Aufrufe in eine Initialisierungsroutine ausgelagert werden, die nur einmal ausgeführt wird (direkt nach dem Start des Programms). Über das Output Byte bymodelout muss PiXtend V2 -S- der Handshake mitgeteilt werden, dieser ist immer die Dezimalzahl 83. Es kommt immer wieder zu Übertragungsproblemen zwischen PiXtend und Raspberry Pi. Was kann ich tun? Überprüfen Sie in ihrem Programm, ob Sie die Funktion Spi_SetupV2(int device) mehrfach oder zyklisch aufrufen. Ist dies der Fall, so ist dies der Grund für die Übertragungsfehler. Sollte gar keine Übertragung statt finden, überprüfen Sie auch, ob der Schalter SPI_EN auf dem PiXtend V2 -S- auf ON steht. Sollten DHT-Sensoren verwendet werden, muss die Zykluszeit mindestens 3 ms sein. Allgemein sollte die Zykluszeit nicht weniger als 2,5 ms betragen. / 99

101 . FHEM Bei FHEM handelt es sich um ein Perl-basiertes Serverprogramm für die Hausautomatisierung, was dem Anwender wiederum ermöglicht Aktoren und Sensoren, wie z.b. Schalter, Lampen, Heizungen oder Temperatur- und Luftfeuchtigkeitssensoren in ein gemeinsames System zu integrieren und Vorgänge zu automatisieren. Durch ein FHEM-Modul erhalten Sie auch innerhalb der gewohnten FHEM-Umgebung vollen Zugriff auf die Funktionen von PiXtend V2 -S-. Bei dem von Qube Solutions UG entwickelten FHEM-Modul für den PiXtend V2 -Shandelt es sich um ein eigenständiges Modul, das für den Raspberry Pi entwickelt wurde und keine Softwareabhängigkeiten zu anderen Modulen oder Hilfsprogrammen besitzt... Voraussetzungen Für die Installation von FHEM auf der PiXtend V2 -S--Steuerung werden grundlegende Kenntnisse im Umgang mit dem Raspberry Pi, bzw. seinem Linux-Betriebssystem vorausgesetzt. Zudem werden neben einem PiXtend V2 -S- mit Raspberry Pi folgende Punkte benötigt: SD-Karte mit einem aktuellen Raspbian Image. Vgl. Kapitel 6.4 SD-Karte für Ihren Raspberry Pi vorbereiten zur Erstellung einer solchen SD-Karte. SSH-Client-Software (z.b. putty.exe FTP-Client-Software (z.b. WinSCP Für die anschließende Anwendung ist es sinnvoll, sich einen Überblick über die zur Verfügung stehenden Funktionen und Möglichkeiten von PiXtend V2 -S- zu machen. Beachten Sie auch die Hinweise zur Kompatibilität von SoftwareKomponenten in Abschnitt 6.6 Kompatibilität der SoftwareKomponenten. / 99

102 .2. Installation Für die Installation von FHEM und dem FHEM-Modul für PiXtend V2 -S- müssen die folgenden Schritte durchlaufen werden. Sollte FHEM bereits auf dem PiXtend V2 -S-Board installiert sein, kann der erste Schritt übersprungen werden und direkt mit der Integration des Moduls begonnen werden..2.. Installation von FHEM Die jeweils aktuelle Anleitung zur Installation von FHEM auf dem Raspberry Pi ist unter folgendem Link zu finden: Es wird empfohlen, die Installation nach The easy way: use apt-get (im linken Menü aufgeführt) auszuführen. Für den aktuellen Stand ( Rev 5.8.5) sieht die Installation wie folgt aus. Der Repository-Key für FHEM wird durch folgendes Kommando aktualisiert: wget -qo - sudo apt-key add Nun muss noch die Adresse des Repository in die Datei sources.list eingetragen werden. Dazu wird die Datei wie folgt geöffnet: sudo nano /etc/apt/sources.list und dort die nächste Zeile ans Ende eingefügt. Speichern Sie die Datei (Strg+x und mit y und anschließend Enter bestätigen). Der Eintrag wird bei der Installation von FHEM automatisch wieder gelöscht. deb / Danach müssen die installierten Pakete mit dem neuen Repository aktualisiert werden: sudo apt-get update Im Anschluss kann FHEM bereits installiert werden (die Nachfrage ob FHEM installiert werden soll mit y bestätigen): sudo apt-get install fhem 2 / 99

103 .2.2. Integration des Moduls Um das FHEM-Modul für PiXtend V2 -S- in die FHEM-Umgebung zu integrieren muss das Modul in das FHEM-Verzeichnis kopiert werden. Das Modul kann dabei als ZIP-Datei im Download-Bereich unserer Website gefunden werden. Da das FHEM-Verzeichnis dem Benutzer fhem gehört können hier ohne weiteres keine Dateien abgelegt werden. Demzufolge müssen den Benutzern der Gruppe vorübergehend die nötigen Rechte erteilt werden: sudo chmod g+w /opt/fhem/fhem Im Anschluss kann das Modul 97_PiXtendV2.pm mit Hilfe eines FTP-Clients in das Verzeichnis /opt/fhem/fhem auf den Raspberry Pi kopiert werden. Letztendlich sollten die Rechte der Gruppe wieder zurückgesetzt werden: sudo chmod g-w /opt/fhem/fhem.2.3. Anpassung des Systems Der Daten-Austausch zwischen dem Raspberry Pi und dem PiXtend V2 -S--Board erfolgt über die SPI-Schnittstelle. Deshalb muss diese auch in den Einstellungen des Raspberry Pi aktiviert werden. Mit sudo raspi-config öffnen Sie das Menü und aktivieren die Schnittstelle unter 5 Interfacing Options mit Punkt P4 SPI. Verlassen Sie das Menü anschließend wieder. Der Benutzer fhem hat standardmäßig keine Rechte für die SPI-Schnittstelle und die GPIOs, aber benötigt diese, weswegen er den Gruppen hinzugefügt werden muss: sudo adduser fhem gpio; sudo adduser fhem spi; sudo reboot Durch diese Zeile wird auch ein benötigter Neustart durchgeführt. Nachdem der Raspberry Pi neugestartet ist, kann man im Browser über folgende Adresse die Seite der FHEM-Oberfläche des Raspberry Pi aufrufen: wobei Sie <RaspberryIP> durch die von Ihnen vorgegebene IP-Adresse ersetzen müssen. Die aktuell eingestellte IP-Adresse können Sie mit dem folgenden Befehl in Erfahrung bringen: ifconfig Die Installation von FHEM und die Integration des Moduls ist nun abgeschlossen und Sie können mit Ihrer Hausautomation beginnen. 3 / 99

104 .3. Modulbeschreibung Das PiXtend V2 -S--Modul für FHEM verfügt über eine Vielzahl an Funktionen auf die zugegriffen werden kann. Im Folgenden wird beschrieben, wie ein solches Modul angelegt werden kann und wie die Funktionen genutzt werden können. Die Funktionen können dabei über das FHEM-Web-Interface des Moduls oder über die Eingabe des entsprechenden Befehls in die FHEM-Befehlszeile ausgeführt werden. Im Folgenden ist eine Funktionsbeschreibung der einzelnen Bereiche zu finden, wobei auch über die Device specific help in FHEM eine Funktionsübersicht geöffnet werden kann..3.. Anlegen eines neuen PiXtend V2 -S--Geräts Ein neues PiXtend V2 -S--Modul kann durch die Eingabe des Befehls define <name> PiXtendV2 in die Befehlszeile von FHEM angelegt werden. Dabei muss <name> durch einen beliebigen Namen ersetzt werden, den Sie dem Modul geben wollen. Obwohl nicht explizit ausgeschlossen wird mehrere PiXtend V2 -S--Module in FHEM für nur ein tatsächlich physisch existierendes Gerät anzulegen, wird davon abgeraten! Es macht keinen Sinn und kann zu Problemen führen, weil von mehreren Stellen auf die gleichen Hardware-Funktionen zugegriffen wird Internals Die vom Modul veränderbaren Internals sind zum einen der Wert RetainSize, der die Größe des Retain-Speichers in Bytes angibt und zum anderen das Feld STATE. Dieses Feld kann die Werte defined, active oder error annehmen. Der Wert defined wird nur kurz nach dem Anlegen des Moduls angezeigt und geht dann sofort in active über. Tritt ein Fehler auf, wechselt der Status in error und es wird zusätzlich im Feld ErrorMsg eine Info angezeigt, was den Fehler verursacht. In den meisten Fällen liegt das an einer fehlerhaften Kommunikation zwischen PiXtend V2 -S- und dem Raspberry Pi, z.b. auch wenn sich PiXtend V2 -S- im Sicheren Zustand befindet Set-Kommandos Das PiXtend V2 -S--Modul verfügt über mehrere Set-Befehle, mit denen sic z.b. die digitalen Ausgänge oder die Relays stuern lassen. Kommandos um die Basiskonfiguration für den PiXtend durchzuführen, beginnen mit einem Unterstrich (`_`) und können auch im Attribut PiXtend_Parameter hinterlegt werden. Unterstützt ein Kommando mehrere Kanäle, muss das Raute-Zeichen (`#`) durch die Kanal-Nummer ersetzt werden. Alle Set-Kommandos sind dabei unabhängig von der Groß- und Kleinschreibung um die einfache Benutzung zu ermöglichen. 4 / 99

105 _GPIO#Ctrl [input,output,dht,dht22] Mit dieser Einstellung kann die Funktion des GPIO eingestellt werden. [input], [output] oder [DHT] und [DHT22] wenn ein DHT-Sensor an den GPIO angeschlossen ist. Wenn ein DHT-Sensor angeschlossen ist und verwendet wird, kann die normale Funktion des GPIO als Eingang/Ausgang nicht gleichzeitig verwendet werden. _GPIOPullupsEnable [yes,no] Diese Einstellung aktiviert [yes] oder deaktiviert [no] für alle GPIOs die Möglichkeit die internen PullUp-Widerstände durch GPIOOut zu setzen. _JumperSettingAI# [5V,V] Diese Einstellung beeinflusst die Berechnung der Spannung an den analogen Eingängen und bezieht sich dabei auf die tatsächliche Position des Jumpers auf dem PiXtend V2 -S-Board [5V,V]. Wenn kein Jumper verwendet wird, entspricht das der Standardeinstellung von [V]. _StateLEDDisable [yes,no] Diese Einstellung deaktiviert [yes] oder aktiviert [no] die Status-LED auf dem PiXtend V2 -S--Board. Wenn die LED deaktiviert ist, leuchtet sie im Fehlerfall nicht auf. _WatchdogEnable [disable,25ms,s,8s] Diese Einstellung ermöglicht die Konfiguration des Watchdog-Timers. Wenn der Watchdog konfiguriert ist, geht PiXtend V2 -S- in den Sicheren Zustand über, falls innerhalb der eingestellten Zeit keine gültige Übertragung zwischen PiXtend V2 -S- und Raspberry Pi stattgefunden hat. Eine erneute Kommunikation ist erst wieder möglich, nachdem PiXtend V2 -S- zurückgesetzt wurde ( Reset ). AnalogOut# [] Stellt am analogen Ausgang eine Spannung ein. Der übergebene Wert kann eine Spannung zwischen V und V oder ein Rohwert zwischen und 23 sein. Um den Wert als Spannung zu übergeben, muss der Wert ein "." enthalten, auch wenn der Wert ganzzahlig ist. 5 / 99

106 DigitalDebounce# [-255] Ermöglicht das Entprellen der digitalen Eingänge. Die Einstellung beeinflusst dabei immer zwei Kanäle. DigitalDebounce beeinflusst somit DigitalIn und DigitalIn. Die resultierende Verzögerung berechnet sich dabei durch (eingestellten Wert)*( ms). Der übergebene Wert kann eine beliebige Zahl zwischen und 255 sein. Entprellen kann sinnvoll sein, falls an den Eingängen Schalter oder Taster angeschlossen sind. DigitalOut# [on,off,toggle] Setzt den digitalen Ausgang auf HIGH [on] oder LOW [off] oder [toggle]t ihn. GPIODebounce# [-255] Ermöglicht das Entprellen der GPIO Eingänge. Die Einstellung beeinflusst dabei immer zwei Kanäle. GPIODebounce beeinflusst somit GPIOIn und GPIOIn. Die resultierende Verzögerung berechnet sich dabei durch (eingestellten Wert)*( ms). Der übergebene Wert kann eine beliebige Zahl zwischen und 255 sein. Entprellen kann sinnvoll sein, falls an den Eingängen Schalter oder Taster angeschlossen sind. GPIOOut# [on,off,toggle] Setzt den GPIO auf HIGH [on] oder LOW [off] oder [toggle]t ihn, falls er als Ausgang konfiguriert ist. Wenn der GPIO als Eingang konfiguriert ist, kann mit diesem Kommando der interne PullUp-Widerstand aktiviert [on], deaktiviert [off] oder ge[toggle]t werden. Dazu muss die Möglichkeit allerdings global durch _GPIOPullupsEnable aktiviert werden. PWM PiXtendV2 unterstützt mehrere PWM-Modi, die mit den Kommandos, beginnend mit PWM konfiguriert werden können. Die genaue Bedeutung der Werte und wie die PWMModi eingestellt werden können kann in Kapitel 4 nachgelesen werden. RelayOut# [on,off,toggle] Setzt das Relay auf HIGH [on] oder LOW [off] oder [toggle]t es. Reset Setzt den PiXtend V2 -S--Controller zurück, z.b. wenn er sich im Sicheren Zustand befindet, um ihn erneut konfigurieren zu können. 6 / 99

107 RetainCopy [on,off] Wenn RetainCopy aktiviert [on] ist, werden die geschriebenen Daten RetainDataOut von PiXtend V2 -S- in RetainDataIn zurückgegeben. Die Aktivierung kann in Situationen sinnvoll sein, wenn überprüft werden soll, welche Daten an PiXtend V2 -S- geschickt wurden. Ist die Funktion deaktiviert [off] werden die zuletzt gespeicherten Daten in RetainDataIn zurückgegeben. RetainDataOut [-(RetainSize-)] [-255] PiXtend V2 -S- unterstützt die Speicherung remanenter/persistenter Daten - auch Retain genannt. Die Retain-Daten sind dabei in Bytes organisiert, wobei jedes Byte individuell mit einem Wert zwischen und 255 beschrieben werden kann. Als ersten Parameter erwartet das Kommando den Index des Bytes, der zwischen und (RetainSize-) liegt. RetainSize ist in den "Internals" zu finden. Als zweiter Parameter wird der Wert erwartet, der gespeichert werden soll. RetainEnable [on,off] Die Funktion um Retain-Daten auf PiXtend V2 -S- zu speichern muss aktiviert [on] werden. Andernfalls [off] werden keine Daten gespeichert. Es ist zu beachten, dass für den RetainSpeicherbereich. Schreibzyklen unterstützt werden. Dementsprechend sollte die Funktion nur aktiviert werden, wenn sie tatsächlich benötigt wird. SafeState Mit dieser Einstellung kann PiXtend V2 -S- in den Sicheren Zustand versetzt werden. Wenn die Retain-Speicherung aktiviert ist, werden die Daten gesichert. Im Sicheren Zustand kommuniziert PiXtend V2 -S- nicht mehr mit dem Raspberry Pi und somit nicht mit FHEM. Um PiXtend V2 -S- neuzustarten muss ein Reset durchgeführt werden Get-Kommandos Durch Get-Kommandos können die Readings und einige Systemzustände abgefragt werden. Das Format des Rückgabewertes kann dabei durch ein Attribut ( PiXtend_GetFormat ) auf einen Text oder den nackten Wert eingestellt werden. Ist die Ausgabe als Text aktiv, befindet sich der Wert in eckigen Klammern. Unterstützt ein Kommando mehrere Kanäle, muss das Raute-Zeichen (`#`) durch die Kanal-Nummer ersetzt werden. Alle Get-Kommandos sind dabei unabhängig von der Groß- und Kleinschreibung um die einfache Benutzung zu ermöglichen. 7 / 99

108 AnalogIn# Gibt den Wert des ausgewählten analogen Eingangs zurück. Der Wert hängt dabei von der Einstellung _JumperSettingAI# und der tatsächlichen Jumper-Position auf dem Board ab. DigitalIn# Gibt den Status on (HIGH) oder off (LOW) des digitalen Eingangs zurück. GPIOIn# Gibt den Status on (HIGH) oder off (LOW) des GPIOs zurück, unabhängig von der Konfiguration (input, output,..). RetainDataIn [-(RetainSize-)] Gibt den Wert des ausgewählten RetainDataIn-Bytes zurück. Sensor# [temperature,humidity] Wenn ein DHT-Sensor an den entsprechenden GPIO angeschlossen ist und _GPIO#Ctrl auf DHT oder DHT22 gesetzt ist, wird die Temperatur und Luftfeuchtigkeit gemessen und kann ausgelesen werden. SysState Gibt den Systemstatus [defined, active, error] des FHEM-Moduls zurück. UCState Gibt den Status von PiXtend V2 -S- zurück. Ist der Status, ist alles in Ordnung. Ist der Status allerdings größer als ist ein Fehler aufgetreten oder steht noch an. In diesem Fall kann PiXtend V2 -S- nicht konfiguriert werden. Die genaue Bedeutung des Wertes kann in Kapitel nachgelesen werden. UCWarnings Der zurückgegebene Wert repräsentiert die Warnungen von PiXtend V2 -S-. Die genaue Bedeutung des Wertes kann in Kapitel nachgelesen werden. 8 / 99

109 Version Gibt die Version des FHEM-Moduls sowie die PiXtend-Version [Model-HardwareFirmware] zurück Readings Bei Readings handelt es sich um Werte die von der Steuerung zur Verfügung gestellt werden, wie z.b. Sensormesswerte oder Zustände der Eingänge. Die Bedeutung der Readings entspricht denen der Get-Kommandos. Die meisten Readings lösen dabei ein Ereignis (Event) aus, sobald sie sich ändern, woraufhin in FHEM eine Reaktion ausgeführt werden kann. AnalogIn# Zeigt das Ergebnis der Messungen der analogen Eingänge in Volt an. DigitalIn# Zeigt den Status on (HIGH) oder off (LOW) der digitalen Eingänge an. Firmware Zeigt die Firmware-Version an. GPIOIn# Zeigt den Status on (HIGH) oder off (LOW) der GPIOs, unabhängig von deren Konfiguration (input, output,..). Hardware Zeigt die Hardware-Version an. Model Zeigt das Model an. 9 / 99

110 RetainDataIn Zeigt die Werte der empfangenen RetainDataIn-Daten an. Die Werte von RetainDataIn sind dabei in einer Zeile zusammengefasst. Der am weitesten links stehende Wert entspricht Byte / RetainDataIn. Die Werte sind durch ein Leerzeichen voneinander getrennt und können somit bei Bedarf durch die folgende Funktion einfach in Perl ausgewertet werden: my ($str) = ReadingsVal(pix, "RetainDataIn", "?") if($str ne "?"){ = split(/ /, $str); => $val[] enthält nun Byte, $val[] Byte, usw... } Sensor#T/H Zeigt die Temperatur (T) in C und die Luftfeuchtigkeit (H) in % des Sensors an, der an den entsprechenden GPIO angeschlossen ist. UCState Zeigt den Status von PiXtend V2 -S- an. Ist der Status, ist alles in Ordnung. Ist der Status allerdings größer als ist ein Fehler aufgetreten oder steht noch an. In diesem Fall kann PiXtend V2 -S- nicht konfiguriert werden. Die genaue Bedeutung des Wertes kann in Kapitel nachgelesen werden. UCWarnings Der angezeigte Wert repräsentiert die Warnungen von PiXtend V2 -S-. Die genaue Bedeutung des Wertes kann in Kapitel nachgelesen werden. / 99

111 .3.6. Attribute Für den Attribut-Namen muss die Groß- und Kleinschreibung beachtet werden. PiXtend_GetFormat [text,value] Ändert die Darstellung, wie die Werte durch die Get-Kommandos zurückgegeben werden. Die Werte können entweder in einer Nachricht [text] oder als rohe Werte [value] zurückgegeben werden. Standard ist die Ausgabe als Text. PiXtend_Parameter Dieses Attribut kann verwendet werden, um die Einstellungen zur Basiskonfiguration (SetKommandos beginnend mit "_") als Attribut zu speichern. Attribute werden im Gegensatz zu Set-Kommandos in der Config-Datei von FHEM gespeichert und beim Start automatisch geladen. Der Wert jedes Kommandos wird nach einem Doppelpunkt übergeben und mehrere Kommandos werden durch ein Leerzeichen getrennt, z.b.: attr pix PiXtend_Parameter _gpioctrl:dht _gpio3ctrl:dht22.4. Beispiele Als Ausgangspunkt für die folgenden Beispiele dient immer ein angelegtes PiXtend V2 -S-Gerät in FHEM, mit dem Namen pix. Dafür wird das Gerät über folgendes Kommando angelegt: define pix PiXtendV2.4.. Darstellen von Sensorwerten In FHEM können Werte in einem Diagramm (Plot) dargestellt werden. Dadurch können die Werte von an PiXtend V2 -S- angeschlossenen Sensoren grafisch aufbereitet werden. In diesem Beispiel wird an den GPIO ein DHT und an GPIO3 ein DHT22 Temperatur- und Luftfeuchtigkeitssensor angeschlossen. Die Spannungsversorgung kann über eine an den Klemmen bereitgestellte 5 V Leitung erfolgen. Um die Sensorfunktion zu aktivieren, wird das Gerät pix in FHEM geöffnet. Anschließend wird im Set-Bereich das Feld _GPIOCtrl und im zweiten Feld DHT ausgewählt und durch Drücken des set-knopfes bestätigt. Alternativ kann das folgende Kommando auch direkt in die Kommandozeile eingegeben werden (vgl. Abbildung 48): set pix _gpioctrl dht / 99

112 Abbildung 48: FHEM - Aktivieren der Sensorfunktion Dieser Schritt wird entsprechend mit dem DHT22-Sensor an GPIO3 wiederholt. Es gibt zusätzlich die Möglichkeit die Konfiguration der GPIOs (und weiterer Funktionen) automatisch beim Start von FHEM laden zu lassen, indem die Kommandos im Attribut PiXtend_Parameter hinterlegt werden. In diesem Fall können die Kommandos über die Befehlszeile wie folgt hinterlegt werden: attr pix PiXtend_Parameter _gpioctrl:dht _gpio3ctrl:dht22 Der Wert eines Kommandos wird nach einem Doppelpunkt (`:`) übergeben und mehrere Kommandos werden durch ein Leerzeichen getrennt. Durch diese Methode können alle Set-Befehle, die mit einem Unterstrich (`_`) beginnen in den FHEM-Start hinterlegt werden. Nach der Konfiguration werden nun im Bereich Readings des Geräts pix die gemessenen Werte für Sensor und Sensor3 angezeigt. Die Darstellung der gemessenen Werte erfolgt größtenteils nach diesem Tutorial: Im ersten Schritt wird ein LogFile erzuegt, in dem nur die benötigten gemessenen Werte aus den Readings gespeichert werden: define pixlog FileLog./log/pix-%Y-%m.log pix:sensorh:.* pix:sensort:.* pix:sensor3h:.* pix:sensor3t:.* Im zweiten Schritt wird in diesem LogFile ein SVG Plot erstellt, indem auf die entsprechende Schaltfläche geklickt wird (vgl. Abbildung 49). 2 / 99

113 Abbildung 49: FHEM - Plot durch LogFile erstellen Das Diagramm kann dann z.b. wie in Abbildung 5 dargestellt eingerichtet werden. Nachdem alle Einstellungen getätigt wurden, muss anschließend der Knopf write.gplot file gedrückt werden. Abbildung 5: FHEM - Diagramm der Sensormesswerte Der DHT-Sensor (Temp2 & Humid2) weist nur eine Genauigkeit von C bzw. % auf, weswegen die Werte unter Umständen zu springen scheinen. Des Weiteren entsteht nur ein neuer Messpunkt, wenn sich die Readings ändern, sich also auch der Messwert ändert. 3 / 99

114 .4.2. Ein- und Ausgänge entprellen und verknüpfen Im ersten Schritt soll ein digitaler Eingang (DI) entprellt werden und anschließend ein Relay (Relay) schalten. Zum Entprellen des Eingangs wird das folgende Kommando ausgeführt, wodurch die digitalen Eingänge DI und DI über eine Zeit von * ms = s einen konstanten Wert aufweisen müssen, also entprellt werden. set pix digitaldebounce Um nun ein Relay zu schalten kann ein notify mit folgendem Kommando erstellt werden: define n_relay notify pix:digitalin:.* set pix RelayOut $EVTPART Das Relay wird nun entsprechend dem Zustand ($EVTPART) von DigitalIn auf on oder off gesetzt, wobei der digitale Eingang im Idealfall um s verzögert reagiert. Im zweiten Schritt soll auf diese Weise eine Ausschaltverzögerung realisiert werden. Hierzu wird der digitale Eingang DI2 und das Relay verwendet. Dazu wird zuerst wieder der digitale Eingang entprellt. Dieses Mal aber nur ms. set pix digitaldebounce23 Nun wird ein DOIF-Modul mit dem Namen TimedSW erstellt: define TimedSW DOIF ([pix:digitalin2:"(on)"]) (set pix relayout on,set pix digitaldebounce23 5) DOELSE (set pix relayout off,set pix digitaldebounce23 ) Wenn die Bedingung erfüllt ist, dass DigitalIn2 on ist, dann wird Relay auch auf on gesetzt und zusätzlich der Entprellwert auf 5 (= 5 s) gestellt. Ist DigitalIn2 allerdings off, wird auch Relay auf off gesetzt und der Entprellwert wieder zurückgesetzt (, s). Dadurch wird letztendlich erreicht, dass das Relay nach einem kurzen entrpellen sofort an geht aber erst um 5 s verzögert ausgeschaltet wird. Im dritten Schritt sollen zwei Bedingungen verknüpft werden. Hierbei soll Relay2 nur geschaltet werden, wenn am analogen Eingang AI eine Spannung größer als 5 V und gleichzeitig der digitale Eingang DI4 aktiv ist. Dazu wird wieder ein DOIF-Modul mit folgendem Kommando erstellt: define Condi DOIF ([pix:digitalin4:"(on)"] and [pix:analogin] > 5.) (set pix relayout2 on) DOELSE (set pix relayout2 off) 4 / 99

115 .4.3. Servo-Motor ansteuern Dieses Beispiel soll die Ansteuerung eines Servo-Motors in FHEM verdeutlichen. Standardmäßig ist der Servo-Mode in den PWM-Einstellungen aktiv und muss somit nicht konfiguriert werden. Allerdings müssen die Ausgänge der Servo-Kanäle aktiviert werden, damit an diesen ein Signal herauskommt. Entsprechend der Beschreibung in Kapitel 4 zur Konfiguration der PWM-Kanäle, muss der Wert 24 in PWMxCtrl geschrieben werden. Zum Beispiel set pix pwmctrl 24 um die beiden PWM-Kanäle PWMA und PWMB zu aktivieren. Über die Felder PWMA und PWMB kann nun auch der Servo-Motor angesteuert werden, wobei zu beachten ist, dass der Wert dem Minimalauschlag und der Wert 6 dem Maximalausschalg entspricht, z.b.: set pix pwma 9 Standardmäßig entspricht der Urzustand des Servo-Mode dem Wert für PWMxA/B. Möchte man allerdings mit einem anderen Wert beginnen, kann auch zuerst der Wert eingestellt werden und anschließend erst der zugehörige Kanal aktiviert werden. 5 / 99

116 .5. Frequently Asked Questions (FAQ) Die Readings für die Sensorwerte zeigen Sensor not connected oder Function not enabled an. Warum? In diesem Fall wurde die Funktion um die Sensorwerte auszulesen nicht für den entsprechenden GPIO-Kanal aktiviert ( _GPIOxCtrl ) oder die Einstellung wurde zwar getroffen, aber es wurde kein Sensor angeschlossen, bzw. falsch angeschlossen. Aktivieren Sie dementsprechend die Funktion oder Überprüfen Sie die Verkabelung des Sensors. Während dem Anlegen (define) des Geräts erscheint der Fehler ioctl.ph is not available but needed. Was soll ich tun? Das PiXtend V2 -S--Modul für FHEM benötigt ioctl.ph um auf die SPI-Schnittstelle zuzugreifen. Diese Datei konnte demzufolge nicht gefunden werden. Wahrscheinlich liegt ein Fehler in der Raspbean-Installation vor. Wir empfehlen Ihnen deswegen die von uns getesteten Images zu verwenden. Während dem Anlegen (define) des Geräts erscheint der Fehler Error! Device not xxx. Please change access rights for fhem user.... Was soll ich tun? Der Benutzer fhem benötigt Rechte auf die SPI-Schnittstelle und die GPIOs des Raspberry Pi. Geben Sie dem Benutzer die Rechte, indem Sie ihn in die entsprechenden Gruppen aufnehmen: sudo adduser fhem gpio; sudo adduser fhem spi; sudo reboot Als STATE wird nur error angezeigt. Wo liegt das Problem? Es ist keine Kommunikation zwischen PiXtend V2 -S- und Raspberry Pi möglich. Überprüfen Sie, ob beide Geräte richtig verbunden sind, die Schalterstellungen der beiden Schalter auf dem PiXtend V2 -S--Board korrekt sind, PiXtend V2 -S- sich nicht im Sicheren Zustand befindet (Reset durchführen) und die SPI-Schnittstelle im Raspberry Pi aktiviert ist. 6 / 99

117 . PiXtend Python Library V2 (PPLV2) Die Programmiersprache Python wird als eine universelle und interpretierbare Sprache beschrieben. Sie soll eine knappe und lesbare Form haben und auf diesem Weg das Programmieren erleichtern. Ein Hauptmerkmal von Python ist beispielsweise, dass die Strukturierung des Programmcodes durch Einrückung des Codes erfolgt 3. Die Begeisterung und die Verbreitung der Sprache Python gehen nicht zuletzt auf eine sehr große Bibliotheksbasis zurück, nahezu für jeden Anwendungsfall gibt es etwas. Auch die sehr große Gemeinschaft, die um Python herum entstanden ist, macht diese Sprache sehr beliebt. Ferner steht Python jedem frei zur Verfügung und kann somit bei der Berufsausbildung, im Studium, zu Hause, aber auch kommerziell eingesetzt werden. Die Programmiersprache kann von Anfängern wie auch von fortgeschrittenen Programmierern verwendet werden, um Computerprogramme für verschiedene Systeme zu erstellen. Abbildung 5: Python - Bildquelle: The Python Brochure Daher ist es nicht verwunderlich, dass sich die Raspberry Pi Foundation entschieden hat, Python gleich mit in ihr Raspbian Image zu integrieren 4. Gleich nach dem ersten Start kann sofort mit der Python Programmierung auf dem Raspberry Pi begonnen werden, alles ist bereits vorinstalliert. Der Zugriff beispielsweise auf die on-board GPIOs oder den SPI-Bus funktionieren Out of the Box. Die PPLV2 ist Open Source und kann somit von jedem verwendet, geändert und nach Belieben erweitert werden. Viele weitere Informationen, Tipps und Tricks finden Sie auch in unserem Support-Forum unter: Die jeweils neusten Versionen aller Dokumente und Software-Komponenten finden Sie im Download-Bereich unserer Homepage: Quelle Wikipedia April 27: und 7 / 99

118 .. Voraussetzungen Die Treiber-Unterstützung von der PPLV2 bezieht sich auf das PiXtend V2 -S- für Python und später (nicht Python 3). Wir empfehlen eines dieser Raspberry Pi Modelle: B+, 2 B, 3 B, 3 B+. Laden Sie das PiXtend Basis 2.x.x.x SD-Karten Image aus unserem Download-Bereich herunter und verwenden Sie dieses als Ausgangspunkt für Ihre Projekte. Alternativ können Sie auch ein original Raspbian Stretch Image verwenden. Auf den Raspberry Pi können Sie entweder mit direkt angeschlossener Tastatur und Monitor oder per SSH (TeraTerm / Putty) von einem PC zugreifen. Verwenden Sie direkt ein Original Raspbian Image, dann benötigt der Raspberry Pi eine aktive Internetverbindung, damit Sie die Schritte in diesem Kapitel durchführen können. Wir empfehlen die Kapitel 4. Prozessdaten und 4.2 Control- & Status-Bytes anzuschauen. Diese enthalten Informationen zur Konfiguration der PWM-Ausgänge und der analogen Eingänge, sowie Wissenswertes zu den GPIOs, den digitalen Ein- und Ausgängen und den Relais auf PiXtend V2 -S-. Für Informationen zu SSH-Clients, dem Programm Putty, WinSCP oder zur Auswahl eines geeigneten Programmiertools, laden Sie die PiXtend V.3 App-Note für Python, APP-PX4 PiXtend Python Library, herunter. Viele Abschnitte dieser App-Note bieten nützliche Hinweise auch zur Arbeit mit der PPLV2. 8 / 99

119 .2. Installation mit PiXtend V2 -S- Image Im PiXtend Basis 2.x.x.x SD-Karten Image ist die PiXtend Python Library V2 bereits vorinstalliert und kann sofort verwendet werden. Schauen Sie in das Kapitel 6.4 SD-Karte für Ihren Raspberry Pi vorbereiten für weitere Informationen zur Erstellung einer SD-Karte für den Raspberry Pi. Auf dem Raspberry Pi finden Sie alle Dateien im Ordner /home/pi/pplv2/. Sie können daher gleich mit der Programmierung beginnen Installation auf original Raspbian Vorbereitung Wir starten mit einem originalen Raspbian Stretch Image (Release: 7.9.7). Bei diesem Image startet nach dem ersten Booten automatisch die PIXEL-Oberfläche. Da wir diese hier nicht benötigen, deaktivieren wir sie. Für die nachfolgenden Schritte werden Bildschirm, Tastatur und Maus benötigt. Ein Anmelden über Ethernet per SSH funktioniert nicht, da standardmäßig der SSH Server deaktiviert ist. In der Menüleiste der PIXEL-Oberfläche auf das Terminal-Symbol klicken und ein Konsolenfenster öffnen. Das Fenster am besten maximieren. Abbildung 52: Python - Raspbian PIXELTerminal Icon in der Taskleiste Jetzt können wir auf dem Raspberry Pi die Konfiguration öffnen: sudo raspi-config Das Konfigurationsprogramm für den Raspberry Pi wird ausgeführt. Im Menüpunkt 3 Boot Options wählen wir B Desktop / CLI und dann im Untermenü den Punkt B2 Console Autologin. Die Auswahl sieht wie folgt aus: 3 Boot Options B Desktop / CLI B2 Console Autologin Bei dieser Gelegenheit können wir auch gleich den SPI-Bus aktivieren. Dies geschieht ebenfalls im Konfigurationsprogramm raspi-config: 5 Interfacing Options P4 SPI <Yes> <Ok> 9 / 99

120 Damit wir später über das Netzwerk auf den Raspberry Pi per SSH zugreifen können, um z.b. eigene Python Programme auszuführen, muss an dieser Stelle noch der SSH Server aktiviert werden: 5 Interfacing Options P2 SSH <Yes> <Ok> Jetzt können wir das Konfigurationsprogramm verlassen, einfach zwei Mal auf die Tabulatortaste drücken bis das Wort <Finish> rot hervorgehoben wird und dann die Eingabetaste drücken. Nach diesen Änderungen muss ein Reboot durchgeführt werden, sollte raspi-config dies beim Verlassen des Programms nicht automatisch anbieten, folgenden Befehl eingeben: sudo reboot Nun können wir in den nächsten Schritten die benötigten Komponenten herunterladen und installieren. Für das Herunterladen der benötigten Dateien aus dem Internet muss der Raspberry Pi über eine aktive Internetverbindung verfügen PiXtend Python Library V2 installieren Für die Installation der PPLV2 legen wir im ersten Schritt ein Verzeichnis für das PPLV2 Package an, laden dann das Package herunter und entpacken dieses in das erstellte Verzeichnis. Im letzten Schritt wird das PPLV2 Package installiert. Ist dies alles geschehen, kann die PiXtend Python Library V2 global in allen Python Programmen verwendet werden. Die Installation eines Python Packages kann viele Ausgaben auf der Konsole hervorrufen, dies ist völlig normal. Folgende Schritte der Reihe nach ausführen: mkdir pplv2 wget unzip pplv2_v...zip -d./pplv2/ cd pplv2 sudo python setup.py install Wurde der letzte Befehl erfolgreich ausgeführt, so ist die PiXtend Python Library V2 jetzt installiert und kann in eigenen Python Programmen verwendet werden. Die Installation des PPLV2 Packages kann mit pip freeze überprüft werden. In der Liste der installierten Packages befindet sich jetzt der Eintrag pixtendlibv2==... 2 / 99

121 .4. Programmierung Im ersten Schritt bedienen wir uns eines Beispielprogramms, das sich bereits auf dem Raspberry Pi befindet. Es ist Teil der PiXtend Python Library V2 und befindet sich im Ordner /home/pi/pplv2/examples. Diejenigen, die direkt am Raspberry Pi arbeiten, können direkt loslegen. Alle, die sich per Netzwerk mit dem Raspberry Pi verbinden möchten, müssen dies zu erst tun. Ein von uns oft verwendetes SSH-Client Programm ist Putty..4.. Beispiel-Verzeichnis Nach dem Login sind wir gleich im pi-benutzer Home-Verzeichnis (/home/pi). Hier befindet sich bereits der Ordner pplv2, der eingangs erstellt wurde bzw. auf unserer SD-Karte bereits vorhanden ist und in dem sich der Quellcode der PiXtend Python Library V2 und der Unterordner examples mit den Beispielen befindet. Wir wechseln in das Verzeichnis mit den Beispielen: cd ~/pplv2/examples/ Abbildung 53: Python - Konsole - PPLV2 Verzeichnis.4.2. Beispiel ausführen Damit sich gleich was am PiXtend V2 -S- Board tut, starten wir das Python PiXtend V2 Demo Programm. Hier werden alle digitalen Eingänge gelesen und alle digitalen Ausgänge abwechselnde geschaltet. Das Klacken der Relais ist gut hörbar und die LEDs zeigen zusätzlich den Zustand an. Mit folgendem Befehl geht es los: sudo python pixtendv2_demo.py 2 / 99

122 Abbildung 54: Python - PiXtend Python Library V2 Demo-Programm Nach dem Start des Programms ändern die digitalen Ausgänge und die Relais etwa jede Sekunde ihre Zustände. In der Konsole wird der aktuelle Zustand in Textform angezeigt, wobei False - Aus und True - Ein bedeutet, ferner gibt es einen Zykluszähler, der sich jede Sekunde um eins erhört. Mit den Tasten Strg + C (Ctrl + C) kann das Python Programm beendet werden. 22 / 99

123 .4.3. Eigenes Programm erstellen Öffnen Sie einen Editor bzw. ein Programm mit dem Sie Python Programme schreiben bzw. bearbeiten können und legen eine neue leere Python-Datei an. Speichern Sie diese Datei z.b. unter dem Namen programm.py. In unserem ersten Programm soll nur das Relais zyklisch jede Sekunde an und wieder ausgehen, mehr nicht. Das Programm könnte folgendermaßen aussehen: #!/usr/bin/env python from pixtendv2s import PiXtendV2S import time p = PiXtendV2S() while True: if p.relay == p.off: p.relay = p.on else: p.relay = p.off Abbildung 55: Python - Einfaches DemoProgramm time.sleep() Programm Erläuterung: In der ersten Zeile geben wir bekannt, dass es sich um ein Python Programm handelt, das Programm läuft ja später auf dem Raspberry Pi. Danach muss die PiXtendV2S Klasse importiert werden, so erhalten wir Zugriff auf Eigenschaften und Funktionen von PiXtend V2 -S- und eine Kommunikation mit dem Mikrocontroller und DAC wird möglich. Zum Warten am Ende des Programms importieren wir noch die time Klasse. Mit p = PiXtendV2S() wird ein Objekt erstellt mit dem wir arbeiten können, die Kommunikation mit dem Mikrocontroller wird automatisch in Hintergrund ausgeführt. In einer While Schleife fragen wir das Relais ab ob es an oder aus ist und reagieren entsprechen. 23 / 99

124 Die Konstanten ON und OFF können durch True und False ersetzt werden. Das Arbeiten mit Namen soll das eigentliche Vorgehen besser verdeutlichen. Ganz am Schluss warten wir eine Sekunde, um das Relais nicht überzustrapazieren. Übertragen Sie das Python Programm auf den Raspberry Pi und führen Sie es mit folgendem Aufruf aus: sudo python programm.py Nach dem Start fängt das Relais an, sich ein- und auszuschalten. Wie von uns programmiert, geschieht dies jetzt jede Sekunde. Zum beenden des Programms muss die Tastenkombination Strg+C (Ctrl+C) 2 mal nacheinander gedrückt werden. Beim ersten Druck wird die While Schleife verlassen, der zweite Druck beendet die im Hintergrund laufende Kommunikation mit dem PiXtend V2 -SBoard. In Ihren eigenen Programmen können Sie die close Funktion der PiXtendV2S Klasse vor dem Beenden das Programms aufrufen, dann wird die Kommunikation mit dem Mikrocontroller ordentlich beendet und der SPI-Treiber geschlossen. Ferner wird die asynchrone Kommunikation eingestellt Kurzübersicht Die PPLV2 besteht aus zwei Python Klassen die PiXtendV2Core und PiXtendV2S. Die PiXtendV2Core Klasse stellt dabei eine Basisklasse dar, die viele grundlegende Funktionen und Eigenschaften enthält, ist aber selbst nicht lauffähig. Die PiXtendV2S Klasse erbt diese Eigenschaften und Funktionen und bildet alle verbleibenden Eigenschaften von PiXtend V2 -S- aus. Nach der Instanziierung der PiXtendV2S Klasse, wird die Kommunikation mit dem Mikrocontroller auf dem PiXtend V2 -S- Board automatisch im Hintergrund ausgeführt. Der Anwender kann einfach alle digitalen und analogen Ein- und Ausgänge verwenden, ohne sich um die Kommunikation kümmern zu müssen. Ein explizites Warten nach jedem Zyklus ist nicht erforderlich. In der Zip-Datei (pplv2_v..x.zip) bzw. im Ordner pplv2 auf dem Raspberry Pi, befinden sich im Unterordner doc, zwei HTML-Dateien, die zu den genannten Python-Klassen eine API-Dokumentation enthalten. Insbesondere die Hilfe-Datei für die PiXtendV2S Klasse zeige alle verwendbaren Funktionen und Eigenschaften. Schauen Sie hier nach, wenn Sie beispielsweise die GPIOs, die Temperatur- und Luftfeuchte Eingänge oder die PWM-Ausgänge verwenden möchten. 24 / 99

125 Die folgende Tabelle zeigt eine kurze Übersicht der wichtigsten und allgemeinsten Funktionen und Eigenschaften der Python-Klasse PiXtendV2S5: Name Typ Beschreibung Instanziierung der PiXtendV2S Klasse und Start der Kommunikation mit dem PiXtend V2 -S- Mikrocontroller. Beispiel: p = PiXtendV2S() close Funktion Soll das Python Programm beendet werden, wird empfohlen die close Funktion aufzurufen und erst im Anschluss die PixtendV2S Instanz zu löschen. Die close Funktion setzt alle internen Variablen und Objekte zurück, schließt den SPI Treiber und beendet die Hintergrund-Kommunikation. Beispiel: p.close() p = None digital_in.. 7 Eigenschaft (r) Mit diesen 8 nur lesen Eigenschaften (digital_in bis digital_in7) können die Zustände der digitalen Eingänge vom PiXtend V2 -Sgelesen werden. Die Eigenschaften liefern entweder den Wert False für aus (OFF) oder den Wert True für an (ON). digital_out.. 3 Eigenschaft (rw) Die 4 digitalen Ausgänge können über die Eigenschaften digital_out bis digital_out3 sowohl gelesen als auch geschrieben werden. Wird der Eigenschaft der Wert False zugewiesen, so geht der entsprechende digitale Ausgang aus (OFF) oder bei der Zuweisung des Wertes True geht der Ausgang an (ON). relay.. 3 Eigenschaft (rw) Die 4 Relais können über die Eigenschaften relay bis relay3 sowohl gelesen als auch geschrieben werden. Wird der Eigenschaft der Wert False zugewiesen, so geht das entsprechende Relais aus (OFF) oder bei der Zuweisung des Wertes True geht es an (ON). hardware Eigenschaft (r) Über diese nur lesen Eigenschaft kann die Hardware-Version ausgelesen werden. Der Wert 2 steht beispielsweise für Board Version 2.. firmware Eigenschaft (r) Über diese nur lesen Eigenschaft kann die Firmware-Version des Mikrocontrollers ermittelt werden. ON Konstante Entspricht dem Wert True. OFF Konstante Entspricht dem Wert False. 5 Bedeutung (r) und (rw) hinter einer Eigenschaft: r = read only / nur lesen und rw = read and write / lesen und schreiben 25 / 99

126 .4.5. Python Programm automatisch starten Nach einem Reboot / Power-Up des Raspberry Pi startet ein Python-Programm nicht automatisch. Wie bereits erwähnt kann ein Python-Programm mit folgendem Befehl gestartet werden, das myprogram.py bitte durch den eigenen Programmnamen ersetzen: sudo python myprogram.py Wir können diesen Befehl aber auch automatisch beim Hochfahren des Linux-Systems ausführen lassen. Die Änderung ist in der Linux-Console schnell erledigt: sudo nano /etc/rc.local Es öffnet sich die Datei rc.local mit etwas Inhalt. Wir tragen vor der Zeile exit zwei neue Zeilen ein mit der Annahme, das zu startende Programm liegt im Home-Verzeichnis: cd /home/pi/ sudo python myprogram.py & Das & ist kein Tippfehler. Damit startet das Python-Programm als Prozess im Hintergund. Abspeichern und mit STRG + X verlassen Rebooten ACHTUNG: Das Programm bitte vorher gut testen! Hat das Programm einen Fehler, z.b. dass die digitalen Ausgänge unkontrolliert oder sehr schnell angesteuert werden, so kann dies ggf. die angeschlossene Peripherie beschädigen und da das fehlerhafte Programm als "Autostartprogramm" eingerichtet ist, hilft also auch kein Neustart, um das Problem zu beheben. Machen Sie von Ihrer Arbeit immer Sicherungskopien. 26 / 99

127 .4.6. Verwendung der seriellen Schnittstelle Die Verwendung der seriellen Schnittstelle ist nicht im PPLv2 Package enthalten, hier kann z.b. auf pyserial zurückgegriffen werden, da es sich hier um ein Raspberry Pi und Python Thema handelt und nicht direkt etwas mit dem PiXtend V2 -S- zu tun hat. Bei der in dieser Dokumentation erwähnten Raspbian Version läuft die serielle Schnittstelle beispielsweise über das Linux Gerät /dev/ttys. Ferner gilt zu beachten, dass hier von Haus aus die Ausgaben der Linux Konsole ausgegeben werden, man muss also vor Verwendung die /boot/cmdline.txt bearbeiten und den Teil console=serial,52 aus der ersten Zeile entfernen oder besser das Programm raspi-config verwenden um die Konsolen-Ausgabe abzuschalten Frequently Asked Questions (FAQ) Ich kann mein Programm nicht starten, Python gibt eine Fehlermeldung aus über eine ungültige Identation? Hier liegt vermutlich ein Problem bei der Einrückung der verschiedenen Code-Zeilen im Programm vor. Noch mal genau schauen, dass bei jeder Zeile die Einrückung stimmt. Wir verwenden z.b. immer 4 Leerzeichen pro Einrückungsebene, fehlt nur ein Leerzeichen oder man hat Leerzeichen und Tabulatoren gemischt, gibt Python eine Fehlermeldung aus. In Notepad++ z.b. kann man sich die nicht druckbaren Zeichen anzeigen lassen und sieht so sehr schnell wo etwas nicht stimmt, zudem sagt Python selbst, in welcher Zeile es den Fehler festgestellt hat. Kann ich mein Programm ohne sudo laufen lassen? Dies scheint mit Python in dem hier verwendeten Release von Raspbian tatsächlich möglich zu sein, wir empfehlen dennoch, sudo zu verwenden, damit Python auch Systemfunktionen ausführen kann. Hier kann es sonst schnell zu Problemen kommen, deren Ursache ggf. nicht einfach zu erklären sind. 27 / 99

128 2. OpenPLC Project Das OpenPLC Project hat sich zum Ziel gesetzt eine komplett freie und standardkonforme6 Software-Basis für speicherprogrammierbare Steuerungen (SPS, engl.: PLC) zu sein. Wir finden die Umsetzung sehr gelungen und zum Konzept von PiXtend passend. Besonders für die Berufsausbildung/Schule und den Einsatz im technischen Studium sehen wir aufgrund der Einfachheit der Programmierung klare Vorteile im Gegensatz zu ausgesprochenen Profi-Tools. Deshalb haben wir gemeinsam mit dem Projektersteller eine Treiber-Unterstützung für das PiXtend V2 -S- erarbeitet. Abbildung 56: Designed to be Open Source - Die Folgenden Kapitel zeigen die Installation und Einrichtung auf einer eigenen SD-Karte oder wer gleich mit OpenPLC starten und testen möchte, kann das PiXtend Basis Image V2.x verwenden in dem OpenPLC schon vorinstelliert ist. Eine Übersicht über die verwendbaren I/Os und Funkionen finden Sie im Kapitel 2.4 Weitere Informationen. Viele weitere Informationen, Tipps und Tricks finden Sie auch in unserem Support-Forum unter: Die jeweils neusten Versionen aller Dokumente und Software-Komponenten finden Sie im Download-Bereich unserer Homepage: 6 Programmiersprachen nach IEC/EN 63-3 DE (EN): ST, AWL (IL), KOP (LD), FBS (FBD), AS (SFC) 28 / 99

129 2.. Voraussetzungen Für den Einsatz von OpenPLC auf PiXtend empfehlen wir eines dieser Raspberry Pi Modelle: B+, 2 B, 3 B, 3 B+. Starten Sie mit einem neuen Projekt oder möchten Sie OpenPLC testen, dann laden Sie am besten das PiXtend Basis Image V2.x SD-Karten Image aus unserem DownloadBereich herunter und verwenden Sie dieses zum Testen oder als Ausgangspunkt für Ihre Projekte. Alternativ können Sie auch ein original Raspbian Stretch Image verwenden. Auf den Raspberry Pi können Sie entweder mit direkt angeschlossener Tastatur und Monitor oder per SSH (TeraTerm / Putty) von einem aus PC zugreifen. Verwenden Sie direkt ein Original Raspbian Image, dann benötigt der Raspberry Pi eine aktive Internetverbindung, damit Sie die Schritte in diesem Kapitel durchführen können. Wir empfehlen ferner die Kapitel 4. Prozessdaten und 4.2 Control- & Status-Bytes anzuschauen. Diese enthalten Informationen zur Konfiguration der PWM-Ausgänge und der analogen Eingänge, sowie Wissenswertes zu den GPIOs, den digitalen Ein- und Ausgängen und den Relais auf PiXtend V2 -S-. 29 / 99

130 2.2. Installation Vorbereitung Die Installation der benötigten Software wird, abgesehen von diesem Kapitel, auch auf der Homepage des OpenPLC Project s erläutert: PiXtend Sie können die Schritte auf der genannten Webseite (in englischer Sprache) oder in diesem Kapitel nachzuvollziehen, wie Sie möchten. Verwenden Sie unser SD-Karte Image PiXtend Basis V2.x, dann können Sie gleich zum Kapitel 2.3 Programmierung springen und mit der Programmierung beginnen. Wir starten mit einem originalen Raspbian Stretch Image. Bei diesem Image startet nach dem ersten Booten automatisch die neue PIXEL-Oberfläche. Da wir diese hier nicht benötigen, deaktivieren wir sie. Dazu greifen wir per SSH auf den Raspberry Pi zu: sudo raspi-config Das Konfigurationsprogramm für den RPi wird ausgeführt. Im Menüpunkt 3 Boot Options wählen wir B Desktop / CLI und dann Menüpunkt B Console oder B2 Console Autologin. Bei dieser Gelegenheit können wir auch gleich den SPI-Bus aktivieren. Dies geschieht ebenfalls im Konfigurationsprogramm raspi-config: 5 Interfacing Options P4 SPI <Ja> / <Yes> <Ok> Nach dieser Änderung wird ein Reboot notwendig: sudo reboot Nun können wir in den nächsten Schritten die benötigten Komponenten herunterladen und installieren. 3 / 99

131 OpenPLC Runtime Installation Das OpenPLC Project setzt für den Zugriff auf die Schnittstellen und GPIOs des Raspberry Pi, auf wiringpi7 (wie auch unsere pxdev Linux Tools). Beginnen wir mit der Installation. Es wird vorausgesetzt, dass Sie sich im Home-Verzeichnis des Users Pi befinden ( /home/pi ): sudo apt-get update sudo apt-get install git-core git git clone git://git.drogon.net/wiringpi cd wiringpi./build Als nächstes benötigen wir noch einige Debian-Packages, die sich aber sehr komfortabel per apt-get installieren lassen: sudo apt-get install build-essential pkg-config bison flex sudo apt-get install autoconf automake libtool make nodejs Nun laden wir die neuste Version von OpenPLC von github herunter und kompilieren die Inhalte: cd /home/pi git clone cd OpenPLC_v2./build.sh Abbildung 57: OpenPLC Hardwareauswahl Gegen Ende des Build-Prozesses werden Sie nach der verwendeten Hardware gefragt. Wir wählen die Nummer 7) PiXtend_2S und bestätigen die Eingabe mit Enter. Fast geschafft! Nun müssen wir nur noch die Runtime staren, dies geht mit folgendem Befehl: sudo nodejs server.js 7 WiringPi OpenSource GPIO/SPI/I²C/Seriell Bibliothek für den Raspberry Pi 3 / 99

132 Programmierumgebung Die Programmierumgebung PLCOpen Editor ist kostenlos und für Windows, Linux und MacOS verfügbar. Wir verwenden die Windows-Variante in der Version.2. Laden Sie sich die neuste Version bitte hier herunter: Project.com/plcopen-editor Abbildung 58: OpenPLC Editor Download Nach dem Entpacken des ZIP-Archivs können Sie den Editor direkt über die beiliegenden Verknüpfung öffnen. Die Programmierumgebung startet: Abbildung 59: OpenPLC Editor Damit sind alle Software-Komponenten vorbereitet und installiert. Im nächsten Kapitel geht es um s Programmieren! 32 / 99

133 2.3. Programmierung Im ersten Schritt bedienen wir uns eines Testprogramms, welches auf der Homepage des OpenPLC Project herunterladen werden kann: Project.com/getting-started PiXtend ganz nach unten scrollen und das Hello World Programm herunterladen Abbildung 6: OpenPLC - Download Hello World Programm Die Programm- bzw. Projektdateien werden beim OpenPLC Project als XML-Datei gespeichert. 33 / 99

134 2.3.. Hello World Programm Starten Sie den PLCOpenEditor und wählen unter File Open das zuvor heruntergeladene Testprogramm Hello_World.xml aus. Im Projektbaum erscheint unter Blank Project (Programs) das Beispielprogramm My_Program : Abbildung 6: OpenPLC Projektübersicht Durch Doppelklick auf My_Program öffnet sich der Editor. Abbildung 62: OpenPLC - Hello World Programm Das kleine Programm ist in Ladder Diagram (deutsch: Kontaktplan - KOP) programmiert. Ein Taster/Schalter, hier mit button dargestellt, ist mit dem Eingang eines TOF-Bausteins verbunden, dieser Baustein realisiert eine Ausschaltverzögerung, in unserem Fall von 2 ms (2 s). Wenn der Taster/Schalter button betätigt wird, aktiviert dies den Ausgang lamp am Ausgang des TOF-Bausteins sofort und wird nach dem Loslassen von button noch weitere 2 Sekunden gehalten, danach geht der Ausgang lamp aus. 34 / 99

135 Betrachten wir die Variablen-Liste: Abbildung 63: OpenPLC - Variablenliste In der Spalte Name steht der Variablenname. Der Typ (Type) ist hier für button und lamp ein BOOL, also je Bit. Die Bits werden über die Spalte Location mit einer Hardware-Adresse verknüpft. Der Taster/Schalter button liegt hier auf der Adresse %IX., was bei PiXtend V2 -S- der digitale Eingang (DigitalIn) ist. Der Ausgang lamp liegt auf der Adresse %QX. also der digitale Ausgang (DigitalOut). Mehr zu den Hardware-Adressen finden Sie im Kapitel 2.4 Weitere Informationen. Selbstverständlich können auch Variablen definiter werden, die nicht mit einem HardwareEin-/Ausgang verbunden sind Programm auf PiXtend übertragen Unter File Generate Program lässt sich das Programm in eine Datei umwandeln, die wir auf die Steuerung (OpenPLC Runtime) laden können. Wird kein Fehler bei der Programmerstellung gefunden, so meldet der Editor Erfolg: Abbildung 64: OpenPLC - Erfolgsmeldung Um das soeben erstellte Programm auf die Steuerung zu übertragen, muss zu erst die OpenPLC Runtime gestartet werden. Dies geht direkt am RPi oder per SSH mit folgenden Befehlen: cd ~/OpenPLC_v2/ sudo nodejs server.js 35 / 99

136 Wurde die Runtime gestartet, öffnen wir an unserem Windows-Rechner einen Browser. Die OpenPLC Runtime startet automatisch einen Webserver, auf den wir nun zugreifen können. Es wird davon ausgegangen, dass Sie die IP-Adresse des Raspberry Pi kennen. In unserem Fall ist das die Der Webserver läuft auf dem Port 88: Abbildung 65: OpenPLC - BrowserAdressleiste Ersetzen Sie die IP-Adresse durch die Adresse Ihres Raspberry Pi. Es öffnet sich die Webseite des OpenPLC-Servers: Abbildung 66: OpenPLC - Runtime Web-Server Über Datei auswählen selektieren wir nun das zuvor erstellte Programm-Datei mit der Endung.st und laden diese mit Hilfe des Buttons Upload Program auf die Steuerung. Die Ansicht wechselt und das Programm wird auf dem Raspberry Pi von der OpenPLCRuntime kompiliert. Kommt es zu keinem Fehler, so startet das Programm im Anschluss automatisch. 36 / 99

137 Die Anzeige im Webinterface sollte nun folgendermaßen aussehen: Abbildung 67: OpenPLC - Compilevorgang war erfolgreich Sollten bei der Kompilierung Warnungen auftreten, dann können Sie diese einfach ignorieren, wichtig ist dass die letzte Zeile/Ausgabe compiled without errors besagt. Um die Funktion zu testen, legen Sie den DigitalIn von PiXtend auf High-Pegel (je nach Jumperstellung auf 5 V oder 24 V). Der Ausgang DigitalOut wird aktiviert. Wird anschließend ein Low-Pegel an DigitalIn angelegt, verbleibt DigitalOut noch 2 Sekunden aktiv (Ausschaltverzögerung). Sie haben Ihr erstes SPS-Programm mit PiXtend V2 -S- und der Software vom OpenPLC Project in Betrieb genommen. Weitere Informationen für die Weiterarbeit und zur Erstellung von komplexere Programmen finden Sie im folgenden Kapitel. 37 / 99

138 2.4. Weitere Informationen Nachfolgend finden Sie die wichtigsten Informationen zu OpenPLC und PiXtend V2 -S-, damit Sie eigene Steuerungs-Programme schreiben können Verfügbare PiXtend I/Os In der folgenden Tabelle finden Sie alle verfügbaren I/Os und deren OpenPLC Adresse zusammen mit Typ, Beschreibung, Wertebereich und Datentyp. PiXtend Bezeichnung Typ Beschreibung Wertebereich Datentyp Adresse DigitalIn DigitalIn 7 Input Digitale Eingänge False..True BOOL %IX. - %IX.7 GPIOIn GPIOIn 3 Input GPIO Eingänge False..True BOOL %IX. - %IX.3 Firmware Version Input Firmware Version des Mikrocontrollers..255 BYTE %IB Hardware Version Input Hardware Version des PiXtend Boards..255 BYTE %IB Model Input PiXtend V2 Model Information..255 BYTE %IB2 uc State Input Mikrocontroller Zustand..255 BYTE %IB3 UC Warnings Input Mikrocontroller Warnungen..255 BYTE %IB4 AnalogIn AnalogIn Input Analog Eingänge..23 WORD %IW - %IW Temp Temp 3 Input Temperatur-Eingänge, Rohwert WORD %IW2 - %IW5 Humid Humid 3 Input Luftfeuchte-Eingänge, Rohwert WORD %IW6 - %IW9 DigitalOut DigitalOut 3 Output Digitale Ausgänge False..True BOOL %QX. - %QX.3 RelayOut RelayOut 3 Output Relais-Ausgänge False..True BOOL %QX.4 - %Q.7 GPIOOut GPIOOut 3 Output GPIO Ausgänge False..True BOOL %QX. - %QX.3 ucctrl Output Mikrocontroller ControlRegister..255 BYTE %QB ucctrl Output Mikrocontroller ControlRegister..255 BYTE %QB GPIOCtrl Output GPIO Control-Register..255 BYTE %QB2 AnalogOut AnalogOut Output Analog-Ausgänge (DAC)..23 WORD %QW - %QW PWM Ctrl Output PWM Control-Register..255 BYTE %QB3 PWM A / B Output PWM Wert für Kanal A / B..6 WORD %QW2 - %QW3 PWM Ctrl Output PWM Control-Register WORD %QW4 38 / 99

139 PWM Ctrl Output PWM Control-Register..255 BYTE %QB4 PWM Ctrl Output PWM Control-Register..255 BYTE %QB5 PWM A / B Output PWM Wert für Kanal A / B..255 BYTE %QB6 - %QB7 Tabelle 3: OpenPLC Übersicht Hardwareadressen Die Rohwerte der analoge Eingänge lassen sich wie folgt in Spannungen umrechnen: Spannungen: Rohwert * ( / 24) = Spannung an Kanal X [V] Die analogen Ausgänge haben bei Wert die Ausgangsspannung V, bei Wert 23 die Ausgangsspannung von V Umgang mit Tasks im OpenPLC Editor Wie Sie im Beispielprogramm Hello_World sehen können, gibt es im Projektbaum noch spezielle Konfigurationen für das Projekt bzw. die Steuerung: Config Im Unterelement Res wird die Zykluszeit der SPS festgelegt. Im Beispielprogramm sieht der Inhalt von Res folgendermaßen aus: Abbildung 68: OpenPLC - Config / Taskübersicht 39 / 99

140 Der TaskMain wurde auf Cyclic (deutsch: zyklisch) und das Intervall auf 5 ms eingestellt. Sie können das Intervall bei PiXtend V2 -S- auf minimal 2,5 ms einstellen. Eine kleinere Einstellung als 2,5 ms kann zu Problemen führen und wird daher nicht empfohlen! Etwas weiter unten sehen Sie den Abschnitt Instances hier wird dem TaskMain unser Programm My_Program zugewiesen. Sie können bei Bedarf auch mehrere Tasks mit unterschiedlichen Einstellungen verwenden. Für erste Gehversuche empfehlen wir Ihnen die empfohlenen Einstellungen zu verwenden und nur einen Task einzurichten OpenPLC Runtime automatisch starten Nach einem Reboot / Power-Up des Raspberry Pi startet die OpenPLC Runtime nicht automatisch. Wie bereits bei der Installation beschrieben kann die Runtime mit folgendem Befehl gestartet werden: sudo nodejs server.js Wir können diesen Befehl aber auch automatisch beim Hochfahren des Linux-Systems ausführen lassen. Die Änderung ist in der Linux-Console schnell erledigt: sudo nano /etc/rc.local Es öffnet sich die Datei rc.local mit etwas Inhalt. Wir tragen vor der Zeile exit zwei neue Zeilen ein: cd /home/pi/openplc_v2/ sudo nodejs server.js & Das & ist kein Tippfehler. Damit startet die OpenPLC Runtime als Prozess im Hintergrund. Die vorgenommenen Änderungen Abspeichern (Strg+O) und mit Strg+X verlassen Neustarten 4 / 99

141 2.5. Frequently Asked Questions (FAQ) Ich kann mein Programm abspeichern, hochladen und ausführen jedoch passiert nichts was kann ich tun? In der Regel ist der SPI-Bus nicht aktiv. Bitte werfen Sie einen Blick ins InstallationsKapitel. Ansonsten könnte der Dip-Schalter SPI_EN auf dem PiXtend Board auf Off stehen. Schieben Sie den SPI_EN Schalter auf Position On um eine Kommunikation zwischen Raspberry Pi und PiXtend zu ermöglichen. Sollte es sich um Ihre erste Inberiebnahme von PiXtend handeln, so können Sie im ersten Schritt auf eine unserer vorbereiteten SD-Karten Images (Basis Image / CODESYS Image) zurückgreifen. Diese sind bereits von uns vorkonfiguriert und getestet. Dadurch sollte Softwareseitig alles abgedeckt sein. Gibt es dennoch Schwierigkeiten, so liegt vermutlich ein Hardware-Problem vor. Kontrollieren Sie in diesem Fall alle Schalter und Jumper, sowie den Anschluss der Versorgungsspannung, ob hier alles korrekt angeschlossen ist. Für einen Informationsaustausch stehen Ihnen die Foren von Qube Solutions und dem OpenPLC Project zur Verfügung: / 99

142 3. FourZeroTM Unterstützung Coming soon! Das PiXtend V2 -S- wird die Plattform FourZeroTM der Firma Automation of Things Europe GmbH unterstützen. Dadurch wird die Programmierung des PiXtend V2 -Snach IEC6499 möglich. Die Einführung ist für 28 geplant. Für weitere Informationen zu FourZeroTM, besuchen Sie die Homepage unter 42 / 99

143 4. Anhang In diesem Kapitel finden Sie, welche Prozessdaten zwischen PiXtend-Mikrocontroller und dem Raspberry Pi (RPi) ausgetauscht werden. Wir sprechen hier von Prozessdaten, da es um die Daten von Ein- und Ausgängen des PiXtend-Boards geht. Die Informationen im vorliegenden Dokument sind besonders für Personen & Institutionen gedacht, die eine eigene Softwareunterstützung für PiXtend V2 programmieren möchten. Bei den PiXtend-Beispielprogrammen für CODESYS werden die Daten bereits korrekt übertragen, ausgewertet und ggf. aufbereitet. Bei den Linux-Tools und der Verwendung der PiXtend-Library (pxdev) ist es wichtig wie die Daten beeinflusst und ausgewertet werden können. Ebenso bei der PiXtend Python Library. Die Prozessdaten sind im PiXtend-Mikrocontroller festgelegt und daher unabhängig von der verwendeten Programmiersprache bzw. Linux-Software. Sollten Fragen offenbleiben, so möchten wir Sie gerne einladen einen Beitrag in unserem Community-Forum zu starten: /forum/. Die jeweils neusten Versionen aller Dokumente und Software-Komponenten finden Sie im Download-Bereich unserer Homepage: 43 / 99

144 4.. Prozessdaten 4... Prozessdaten im Überblick Es wird zwischen zwei Arten von Prozessdaten unterschieden: Prozessdaten die vom Raspberry Pi an PiXtend übertragen werden Prozessdaten die von PiXtend an den Raspberry Pi übertragen werden 4... Prozessdaten die vom RPi an PiXtend übertragen werden Daten für digitale Ausgänge, Relais und GPIOs (als Ausgänge) PWM-Daten, Retain-Daten DigitalOut (S. 45) RelayOut (S. 46) GPIOOut (S. 47) PWMX (L/H) (S. 48) PWMX (L/H) (S. 54) RetainDataOutX (S. 6) Prozessdaten die vom RPi an den PiXtend-DAC übertragen werden Daten für analoge Ausgänge AnalogOutX (L/H) (S. 62) Prozessdaten die von PiXtend an den RPi übertragen werden Daten der digitalen und analogen Eingänge, GPIOs (als Eingänge) Temperatur und Luftfeuchtigkeit von DHT/22- bzw. AM232-Sensoren, Retain-Daten DigitalIn (S. 64) AnalogInX (L/H) (S. 65) GPIOIn (S. 66) TempX (L/H) (S. 67) HumidX (L/H) (S. 69) RetainDataInX (S. 7) 44 / 99

145 4..2. Ausgangsdaten Als Ausgangsdaten werden die Daten bezeichnet, die der Raspberry Pi an den PiXtendMikrocontroller überträgt. Als Beispiel sind das digitale Ausgänge oder Relais DigitalOut Bit Name DO3 DO2 DO DO Startwert Tabelle 4: Bits des DigitalOut Bytes Bit..3 Die vier digitalen Ausgänge sind in einem Byte organisiert. Das niederwertigste Bit (LSB) enthält den Zustand von DO. Bit 7 (MSB), Bit 6, Bit 5 und Bit 4 sind nicht belegt. Der Startwert nach dem Power-Up bzw. Reset des Mikrocontrollers ist für das gesamte DigitalOut-Byte. Die Ausgänge sind im Start-/SafeState deaktiviert. Durch schreiben einer in eines der Bits (..3) wird der entsprechende Ausgang aktiviert. Die zugehörige LED auf dem PiXtend-Board leuchtet auf. Die digitalen Ausgänge auf PiXtend V2 verfügen über eine separate Einspeisung. Sie erkennen an der Leuchtdiode VCC DO ob die Einspeisung angeschlossen und mit Spannung versorgt ist. Die LEDs der digitalen Ausgänge leuchten auch dann, wenn die VCC-DO-Versorgung nicht angeschlossen wurde, jedoch wird keine Spannung an den DO-Pins sichtbar. Weitere Infos finden Sie im Hardware-Handbuch von PiXtend V2 -S-. Um die Funktion der Ausgänge zu testen, kann für das DigitalOut-Byte der Wert 255 (dezimal) bzw. xff (hex) geschrieben werden. Alle vier Ausgänge werden aktiviert. Dass dabei auch die Bits 4 bis 7 gesetzt werden, hat keine Auswirkung. 45 / 99

146 RelayOut Bit Name RELAY3 RELAY2 RELAY RELAY Startwert Tabelle 5: Bits des RelayOut Bytes Bit..3 Die vier Relais-Ausgänge sind in einem Byte organisiert. Das niederwertigste Bit (LSB) enthält den Zustand von RELAY. Bit 7 (MSB) bis Bit 4 sind nicht belegt. Als Startwert nach dem Power-Up bzw. Reset des Mikrocontrollers ist das gesamte RelayOut-Byte. Die Relais sind also im Start-/StafeState deaktiviert. Durch schreiben einer in eines der Bits (..3) wird das entsprechende Relais aktiviert. Die zugehörige LED auf dem PiXtend-Board leuchtet auf und das Relais schält hörbar. Um die Funktion der Relais zu testen, kann für das RelayOut-Byte der Wert 255 (dezimal) bzw. xff (hex) geschrieben werden. Alle vier Relais werden aktiviert. Dass dabei auch die Bits 4..7 gesetzt werden, hat keine Auswirkung. 46 / 99

147 GPIOOut Bit Name GPIO3 GPIO2 GPIO GPIO Startwert Tabelle 6: Bits des GPIOOut Bytes Bit..3 Die vier GPIO-Ausgänge sind in einem Byte organisiert. Das niederwertigste Bit (LSB) enthält den Zustand von GPIO. Bit 7 (MSB) bis Bit 4 sind nicht belegt. Als Startwert nach dem Power-Up bzw. Reset des Mikrocontrollers ist das gesamte GPIOOut-Byte. Die GPIOs sind im Start-/StafeState deaktiviert. Die GPIOs können drei unterschiedliche Aufgaben übernehmen: Eingang, Ausgang oder Temperatur-/Luftfeuchtesensoren DHT/22, AM232 ansteuern. Die Konfiguration erfolgt über das Control-Byte GPIOCtrl. Weitere Informationen finden Sie im Kapitel: 4.2 Control- & Status-Bytes. Durch schreiben einer in eines der Bits (..3) wird der entsprechende GPIO aktiviert (falls als Ausgang konfiguriert). Falls der oder die GPIOs als Eingang oder für die genannten Sensoren konfiguriert sind, so hat das Verändern der Werte in GPIOOut keine Auswirkung*. Um die Funktion der GPIOs zu testen, können diese als Ausgänge konfiguriert werden. Anschließend kann für das GPIOOut-Byte der Wert 255 (dezimal) bzw. xff (hex) geschrieben werden. Alle vier GPIO-Ausgänge werden aktiviert. Dass dabei auch die Bits 4..7 gesetzt werden, hat keine Auswirkung. * Ist ein GPIO als Eingang mit PullUps konfiguriert und das zugehörige Bit wird in GPIOOut auf gesetzt, dann wird ein PullUp-Widerstand an diesem GPIO aktiviert. Damit bekommt der GPIO-Eingang einen hochohmigen (~35 kohm) Bezug zu 5 V und floatet nicht mehr. Ohne externe Beschaltung verharrt der Eingang nun auf High-Pegel / Level. Standardmäßig handelt es sich bei den GPIO-Eingängen um floating-inputs ohne definierten Pegel (ohne externe Beschaltung). Die PullUp-Widerstände müssen generell über das Bit GPIOPullUpEnable aktiviert werden weitere Details dazu auf Seite / 99

148 PWMX (L/H) 6 Bit Auflösung Die PWM-Einheiten von PiXtend können in vier verschiedenen Modi betrieben werden. In jedem Modus haben die PWM-Prozessdaten eine andere Auswirkung. Aus diesem Grund wird in diesem Abschnitt auf die vier Modis Servo-Mode, Duty-Cycle-Mode, UniversalMode und Frequency-Mode separat eingegangen. Weitere Informationen zur Konfiguration und Modis der PWM-Ausgänge finden Sie im Abschnitt: PWMCtrl für 6 Bit PWMs ab Seite 83. Bei den PWMX-Bytes handelt es sich um die Prozessdaten für die beiden 6 Bit PWMKanäle, die auf der Baugruppe die volle Bezeichnung PWMA und PWMB tragen Servo-Mode Der Servo-Modus ist speziell für die Anforderungen von Modellbauservos ausgelegt. Dabei ist die Periodendauer fest auf 5 Hz (2 ms) eingestellt. Jeweils zu Beginn der Periode ist das Signal mindestens ms (Minimalausschlag) bzw. maximal 2 ms (Maximalausschlag) auf High-Pegel. Die verbleibende Zeit ist das Signal immer auf Low-Pegel. Die PWMX-Bytes L und H enthalten ein zusammengehöriges 6 Bit Datenwort. Dabei ist PWMXL das Low-Byte und PWMXH das High-Byte. Das X wird durch den Buchstaben des jeweiligen PWM-Kanal ersetzt ( A oder B ). PWMXL Bit Name LSB Startwert Tabelle 7: PWMXL Byte PWMXH Bit 7 Name MSB Startwert Tabelle 8: PWMXH Byte Einstellbarer Wertebereich kleinster Wert: (dezimal) ms, Minimalausschlag größter Wert: 6 (dezimal) 2 ms, Maximalausschlag Werte größer 6 werden vom Controller begrenzt und wirken wie 6. Im Bereich zwischen und 6 ist die Bewegung des Servos linear. Der Startwert des PWMXBytes, nach einem Power-Up/Reset, ist. 48 / 99

149 Duty-Cycle-Mode Im Duty-Cycle-Mode enthalten die Bytes PWMXL und PWMXH ein zusammengehöriges 6 Bit Datenwort. Dieses Datenwort wird für die Einstellung des Tastverhältnisses (englisch: duty cycle) verwendet. Das X wird durch den Buchstaben des jeweiligen PWM-Kanal ersetzt ( A oder B ). Jedem Kanal kann ein separater Duty-Cycle zugewiesen werden. Die Frequenz bzw. Periodendauer wird gemeinsam für beide Kanäle eingestellt. Der Modus eignet sich dadurch optimal um beispielsweise zwei Antriebe oder Gebläse unabhängig in deren Geschwindigkeit von % bis % zu steuern. Wenn es in Ihrer Anwendung wichtig ist mehrere verschiedene Frequenzen zu nutzen, so erfahren Sie ab Seite 52 mehr über den Frequency-Mode. PWMXL Bit Name LSB Startwert Tabelle 9: PWMXL Byte PWMXH Bit 7 Name MSB Startwert Tabelle : PWMXH Byte Welcher Duty-Cycle sich durch einen bestimmten Wert ergibt, hängt nicht ausschließlich von den PWMXL/H-Werten ab, sondern zusätzlich von den Control-Bytes PWMCtrlL und PWMCtrlH. Die grobe Einstellung der Frequenz erfolgt über die Prescaler-Bits (PS..2) in PWMCtrl, die Feineinstellung per PWMCtrlL/H. Weitere Informationen zur Konfirguration der PWM-Kanäle erfahren Sie im Abschnitt: PWMCtrl für 6 Bit PWMs ab Seite 83. Berechnungsformeln PWM 6 Bit Frequenz: f = 6 MHz / 2 / Prescaler / PWMCtrl Duty-Cycle: %on = % * PWMX / PWMCtrl 49 / 99

150 Ein Beispiel Duty-Cylce Mode und die Kanäle A & B aktivieren, Prescaler auf 24: PWMCtrl = 249 (dezimal) bzw. b (binär) In PWMCtrlL/H wird folgender 6 Bit Wert geschrieben: 5 (dezimal). In PWMXL/H wird der 6 Bit Wert 25 (dezimal) geschrieben. Der Duty-Cycle beträgt hiermit 5%. Wird in PWMXL/H ein größerer Wert als in PWMCtrlL/H geschrieben, so verbleibt der PWM-Kanal durchgehend auf logisch. Durchgehend logisch wird durch den Wert in PWMXL/H erreicht. Es ergibt sich in diesem Beispiel eine Frequenz von,56 Hz. Wir empfehlen die Implementierung der PWM-Funktionen in Ihren eigenen Programmen zunächst ohne angeschlossene Geräte bzw. Aktoren zu testen und wenn möglich mit einem Oszilloskop zu überprüfen. Setzen Sie die PWM-Werte mit bedacht! Manche Aktoren können durch falsche Frequenzen oder DutyCycles beschädigt oder zerstört werden. Überprüfen Sie Ihre Programme immer zunächst mit einem Oszilloskop, bevor echte Geräte an die PWM-Kanäle angeschlossen werden. 5 / 99

151 Universal-Mode Im Universal-Mode enthalten die Bytes PWMAL und PWMAH ein zusammengehöriges 6 Bit Datenwort. Dieses Datenwort wird für die Einstellung des Tastverhältnisses bzw. Duty-Cycle von Kanal A verwendet. Der B-Kanal ist in diesem Modus nicht einstellbar. Er gibt eine PWM mit 5% Duty-Cycle und der halben Frequenz des A-Kanals aus. Der Modus ist für Anwendungen geeignet in der unterschiedliche Frequenzen benötigt werden, jedoch ein Kanal auch bezüglich des Duty-Cycles konfiguriert werden soll. PWMAL Bit Name LSB Startwert Tabelle : PWMAL Byte PWMAH Bit 7 Name MSB Startwert Tabelle 2: PWMAH Byte Die Konfiguration des A-Kanals läuft wie beim Duty-Cycle-Mode ab. Eine Änderung der Bytes PWMBL und PWMBH hat keine Auswirkung. Der B-Kanal hängt lediglich von der Frequenz-Konfiguration des A-Kanals ab. 5 / 99

152 Frequency-Mode Im Frequency-Mode enthalten die Bytes PWMXL und PWMXH ein zusammengehöriges 6 Bit Datenwort. Dieses Datenwort wird für die Einstellung der Frequenz des jeweiligen Kanals verwendet. Der Duty-Cycle ist für Kanal A und B immer 5% und kann nicht verändert werden. Der Modus eignet sich dann optimal, wenn möglichst viele unterschiedliche Frequenzen benötigt werden, der Duty-Cycle aber keine Rolle spielt. Dies ist beispielweise der Fall, wenn mit den PWM-Kanälen Schrittmotortreiber angesteuert werden, die lediglich auf Signalflanken reagieren und keinen variablen Duty-Cycle benötigen. So kann mit PiXtend die Geschwindigkeit von bis zu vier Schrittmotoren gesteuert werden (2x 6 Bit PWMX, 2x 8 Bit PWMX). PWMAL Bit Name LSB Startwert Tabelle 3: Bits des PWMAL Bytes PWMAH Bit 7 Name MSB Startwert Tabelle 4: Bits des PWMAH Bytes Die grobe Einstellung der Frequenz erfolgt über die Prescaler-Bits (PS..2) in PWMCtrl, die Feineinstellung per PWMXL/H. Die maximale Frequenz in diesem Modus liegt bei 2 khz. Bei Einstellung von höheren Frequenzen wird das ausgegebene Signal auf 2 khz begrenzt. Die Berechnung der Frequenz erfolgt folgendermaßen: Frequenz Kanal X = 6 MHz / 2 / Prescaler / PWMX 52 / 99

153 Ein Beispiel Es soll auf Kanal A eine Frequenz von 5 Hz, auf Kanal B 25 Hz ausgegeben werden. - Kanal A und B aktivieren, Frequency-Mode auswählen, Prescaler auf 64 konfigurieren PWMCtrl = 23 (dezimal) bzw. b (binär) - PWMA (6 Bit Datenwort) = 25 (dezimal) Frequenz Kanal A = 6 MHz / 2 / 64 / 25 = 5 Hz - PWMB (6 Bit Datenwort) = 5 (dezimal) Frequenz Kanal B = 6 MHz / 2 / 64 / 5 = 25 Hz Wenn die PWM-Signale nicht durchgehend an den Ausgängen anstehen sollen, so kann bei Bedarf in jedem Zyklus der oder die Kanäle aktiviert/deaktiviert werden. Hinweis: Die Kombination aus Frequency-Mode und DHT-Sensoren ist nicht möglich. Wenn ein oder mehrere DHT-Sensoren an den PiXtendGPIOs aktiviert wurden, so lässt sich der Frequency-Mode nicht aktivieren. Der Versuch den Frequency-Mode trotzdem zu aktivieren, obwohl DHT-Sensoren verwendet werden, führt zur Deaktivierung der PWM-Ausgänge. 53 / 99

154 PWMX (L/H) 8 Bit Auflösung Die PWM-Einheiten von PiXtend können in vier verschiedenen Modi betrieben werden. In jedem Modus haben die PWM-Prozessdaten eine andere Auswirkung. Aus diesem Grund wird in diesem Abschnitt auf die vier Modis Servo-Mode, Duty-Cycle-Mode, UniversalMode und Frequency-Mode separat eingegangen. Weitere Informationen zur Konfiguration & Modis der PWM-Ausgänge finden Sie im Abschnitt: PWMCtrl für 8 Bit PWMs ab Seite 87. Bei den PWMX-Bytes handelt es sich um die Prozessdaten für die beiden 8 Bit PWMKanäle, die auf der Baugruppe die volle Bezeichnung PWMA und PWMB tragen Servo-Mode Der Servo-Modus ist speziell für die Anforderungen von Modellbauservos ausgelegt. Dabei ist die Periodendauer fest auf 5 Hz (2 ms) eingestellt. Jeweils zu Beginn der Periode ist das Signal mindestens ms (Minimalausschlag) bzw. maximal 2 ms (Maximalausschlag) auf High-Pegel. Die verbleibende Zeit ist das Signal auf Low-Pegel. Bei den PWM-Kanälen existieren zwar zwei PWMX-Bytes (L & H) jedoch wird hier nur das Low-Byte (L) verwendet. Beispielweise unter CODESYS wird nur das verwendende Low-Byte angeboten. Das X wird durch den Buchstaben des jeweiligen PWM-Kanal ersetzt ( A oder B ). PWMXL Bit 7 Name MSB Startwert LSB Tabelle 5: Bits des PWMXL Bytes PWMXH wird nicht verwendet Bit Name Startwert Tabelle 6: Bits des PWMXH Byte Einstellbarer Wertebereich kleinster Wert: (dezimal) ms, Minimalausschlag größter Wert: 25 (dezimal) 2 ms, Maximalausschlag 54 / 99

155 Werte größer 25 führen zum Maximalausschlag (zwei Millisekunden). Im Bereich zwischen und 25 ist die Bewegung des Servos linear. Die Startwert des PWMXL-Bytes, nach einem Power-Up/Reset, ist. 55 / 99

156 Duty-Cycle-Mode Bei den PWM-Kanälen existieren zwar zwei PWMX-Bytes (L & H) jedoch wird hier nur das Low-Byte (L) verwendet. Beispielweise unter CODESYS wird nur das zu verwendende Low-Byte angeboten. Das PWMXL-Byte wird für die Einstellung des Tastverhältnisses (englisch: duty cycle) verwendet. Das X wird durch den Buchstaben des jeweiligen PWM-Kanal ersetzt ( A oder B ). Jedem Kanal kann ein separater Duty-Cycle zugewiesen werden. Die Frequenz bzw. Periodendauer wird gemeinsam für beide Kanäle eingestellt. Der Modus eignet sich dadurch optimal um beispielsweise zwei Antriebe oder Gebläse unabhängig in deren Geschwindigkeit von % bis % zu steuern. Wenn es in Ihrer Anwendung wichtig ist mehrere verschiedene Frequenzen zu nutzen, so erfahren Sie ab Seite 59 mehr über den Frequency-Mode. PWMXL Bit 7 Name MSB Startwert LSB Tabelle 7: Bits des PWMXL Bytes PWMXH wird nicht verwendet Bit Name Startwert Tabelle 8: Bits des PWMXH Bytes Welcher Duty-Cycle sich durch einen bestimmten Wert ergibt, hängt ausschließlich von den PWMXL-Werten ab. Die Frequenz kann bei den PWM-Kanälen nicht so genau eingestellt werden wie bei den 6 Bit PWM-Kanälen. Es gibt zwei Faktoren, die die Frequenz beeinflussen:. Prescaler in PWMCtrl festlegen 2. Wird in PWMCtrl eine geschrieben, so verdoppelt sich die per Prescaler eingestellte Frequenz Berechnung der Frequenz: f = 6 MHz / 2 / Prescaler / 255 Das Teilen durch 2 entfällt, wenn in PWMCtrl eine geschrieben wird. 56 / 99

157 Weitere Informationen zur Konfiguration finden Sie im Abschnitt: PWMCtrl für 8 Bit PWMs ab Seite 87. Wir empfehlen die Implementierung des Duty-Cycle-Mode in Ihren eigenen Programmen zunächst ohne angeschlossene Geräte bzw. Aktoren zu testen und wenn möglich mit einem Oszilloskop zu überprüfen. Setzen Sie die PWM-Werte mit bedacht! Manche Aktoren können durch falsche Frequenzen oder DutyCycles beschädigt oder zerstört werden. Überprüfen Sie Ihre Programme immer zunächst mit einem Oszilloskop, bevor echte Geräte an die PWM-Kanäle angeschlossen werden. 57 / 99

158 Universal-Mode Bei den PWM-Kanälen existieren zwar zwei PWMX-Bytes (L & H) jedoch wird hier nur das Low-Byte (L) verwendet. Beispielweise unter CODESYS wird nur das zu verwendende Low-Byte angeboten. Das PWMAL-Byte wird für die Einstellung des Tastverhältnisses (englisch: duty cycle) von Kanal A verwendet. Der B-Kanal ist in diesem Modus nicht einstellbar. Er gibt ein PWM-Signal mit 5% DutyCycle und der halben Frequenz des A-Kanals aus. Der Modus ist für Anwendungen geeignet in der unterschiedliche Frequenzen benötigt werden, jedoch ein Kanal auch bezüglich des Duty-Cycles konfiguriert werden soll. PWMAL Bit 7 Name MSB Startwert LSB Tabelle 9: Bits des PWMAL Bytes PWMAH wird nicht verwendet Bit Name Startwert Tabelle 2: Bits des PWMAH Bytes Berechnungsformeln Frequenz: f = 6 MHz / 2 / Prescaler / PWMCtrl Duty-Cycle: %on = % * PWMAL / PWMCtrl Eine Änderung des Bytes PWMBL hat keine Auswirkung. Der B-Kanal hängt lediglich von der Frequenz-Konfiguration des A-Kanals ab. 58 / 99

159 Frequency-Mode Bei den PWM-Kanälen existieren zwar zwei PWMX-Bytes (L & H) jedoch wird hier nur das Low-Byte (L) verwendet. Beispielweise unter CODESYS wird nur das zu verwendende Low-Byte angeboten. Das PWMAL-Byte wird für die Einstellung der Frequenz des jeweiligen Kanals verwendet. Der Duty-Cycle ist für Kanal A und B immer 5% und kann nicht verändert werden. Der Modus eignet sich dann optimal, wenn möglichst viele unterschiedliche Frequenzen benötigt werden, der Duty-Cycle aber keine Rolle spielt. Dies ist beispielsweise der Fall, wenn mit den PWM-Kanälen Schrittmotortreiber angesteuert werden, die lediglich auf Signalflanken reagieren und keinen variablen Duty-Cycle benötigen. So können mit PiXtend bis zu vier Schrittmotoren in der Geschwindigkeit gesteuert werden (2x 6 Bit PWMX, 2x 8 Bit PWMX). PWMAL Bit 7 Name MSB Startwert LSB Tabelle 2: Bits des PWMAL Bytes PWMAH wird nicht verwendet Bit Name Startwert Tabelle 22: Bits des PWMAH Bytes Die grobe Einstellung der Frequenz erfolgt über die Prescaler-Bits (PS..2) in PWMCtrl, die Feineinstellung per PWMXL. Die maximale Frequenz in diesem Modus liegt bei 2 khz. Bei Einstellung von höheren Frequenzen wird das ausgegebene Signal auf 2 khz begrenzt. Die Berechnung der Frequenz erfolgt folgendermaßen: Berechnung der Frequenz: f = 6 MHz / 2 / Prescaler / PWMXL 59 / 99

160 Ein Beispiel Es soll auf Kanal A eine Frequenz von 5 Hz, auf Kanal B 25 Hz ausgegeben werden. - Kanal A und B aktivieren, Frequency-Mode auswählen, Prescaler auf 256 konfigurieren PWMCtrl = 29 (dezimal) / (binär) - PWMAL = 63 (dezimal) Frequenz Kanal A = 6 MHz / 2 / 256 / 63 = 496 Hz - PWMBL = 25 (dezimal) Frequenz Kanal B = 6 MHz / 2 / 256 / 25 = 25 Hz Wenn die PWM-Signale nicht durchgehend an den Ausgängen anstehen sollen, so kann bei Bedarf in jedem Zyklus der oder die Kanäle aktiviert/deaktiviert werden. Wie im Beispiel zu erkennen, wird die Frequenz am A-Kanal von 5 Hz nicht perfekt eingestellt. Es müsste 62,5 eingestellt werden, was bei einem Integer-Datentyp nicht möglich ist. Prüfen Sie für die gewünschte Frequenz die unterschiedlichen Prescaler-Einstellungen. Es ist möglich mit verschiedenen Prescaler-Einstellungen gleiche bzw. ähnliche Frequenzen einzustellen. Hinweis Die Kombination aus Frequency-Mode und DHT-Sensoren ist nicht möglich. Wenn ein oder mehrere DHT-Sensoren an den PiXtendGPIOs aktiviert wurden, so lässt sich der Frequency-Mode nicht aktivieren. Der Versuch den Frequency-Mode trotzdem zu aktivieren, obwohl DHT-Sensoren verwendet werden, führt zur Deaktivierung der PWM-Ausgänge. 6 / 99

161 RetainDataOutX Die Retain-Daten bestehen aus 32 Bytes je Richtung (RetainDataOut & RetainDataIn). Bei RetainDataOut, was in diesem Abschnitt behandelt werden soll, handelt es sich um die Daten, welche zur eigentlichen Sicherung vom Raspberry Pi an den PiXtendMikrocontroller übertragen werden. Der Speicherort der Retain-Daten ist der Mikrocontroller. Für die 32 Bytes gibt keine Vorgabe für deren Datenformat. Sie können in der Anwendungssoftware frei entscheiden, wie Sie diese Daten beschreiben und nutzen. Beispielsweise unter CODESYS werden die 32 Bytes als Byte-Array angeboten. Die RetainDataOutX werden in jedem Zyklus übertragen. Ist der Retain-Speicher aktiviert (weitere Informationen finden Sie ab Seite 77), so werden die Daten im Falle eines Stromausfalls / einer Spannungsunterbrechung im Mikrocontroller abgespeichert und stehen im Anschluss beim nächsten Start in den RetainDataIn-Bytes wieder zur Verfügung. 6 / 99

162 4..3. Ausgangsdaten DAC Auf PiXtend V2 -S- befindet sich ein Digital to Analog Converter (DAC), welcher direkt vom Raspberry Pi angesteuert wird und für die beiden analogen Ausgänge zuständig ist. Der DAC ist nicht Teil des Mikrocontrollers und die Daten des DAC befinden sich deshalb auch nicht im Prozessabbild, welches zwischen Raspberry Pi und Mikrocontroller ausgetauscht wird. Der DAC hat ein vom Hersteller des Chips definiertes Datenformat, welches im Folgenden erläutert wird. Für weitergehende Informationen möchten wir Sie auf das Datenblatt des Chips8 verweisen. Auf PiXtend ist die Bit Variante des Chips verbaut AnalogOutX (L/H) Der DAC nimmt ein 6 Bit Datenwort pro Kanal in Empfang. Eine Antwort liefert der DAC nicht es gibt nur eine Datenrichtung. Das X in AnalogOutX steht hier für den Kanal A bzw. B des Chips. Der Chip ist per SPI-Bus mit dem Raspberry Pi verbunden (ChipSelect CS). Das HighByte (AnalogOutXH) wird als Erstes, dann das Low-Byte (AnalogOutXL) übertragen. Auf PiXtend V2 -S- ist der Kanal A für AO und der Kanal B für AO zuständig. AnalogOutXL Bit Name D5 D4 D3 D2 D D - - Startwert Tabelle 23: Bits des AnalogOutL Bytes Der Bit Wert für den Ausgabewert steckt sowohl in AnalogOutXL und in AnalogOutXL D (LSB) bis D9 (MSB). Im Low-Byte AnalogOutXL befinden sich die unteren 6 Bits. Die Bits und von AnalogOutXL werden nicht ausgewertet don t care. 8 Microchip MCP / 99

163 AnalogOutXH Bit Name /A-B - /GA /SHDN D9 D8 D7 D6 Startwert Tabelle 24: Bits des AnalogOutH Bytes Die oberen 4 Bits des Bit Ausgangswerts befinden sich in AnalogOutXH. Außerdem befinden sich drei Konfigurationsbits im AnalogOutXH-Byte: Bit 4 /SHDN Die Abkürzung SHDN bedeutet Output Shutdown Control. Der per Bit 7 (/A-B) eingestellte Kanal kann über das /SHDN Bit aktiviert oder deaktiviert werden. Wird eine in /SHDN geschrieben, so ist der Kanal aktiv. Ansonsten bzw. auch nach dem PowerUp ist der Kanal auf dem Wert und damit deaktiviert (Startwert). Im deaktivierten Zustand wird an den analogen Ausgängen auf PiXtend V2 -S- eine Spannung kleiner 5 mv ausgegeben. Egal auf welchen Wert die Ausgänge eingestellt sind. Bit 5 /GA Einstellung der Output Gain Selection. Für den vorgesehene Betriebsfall von PiXtend V2 -S- (.. V Ausgangsspannung) ist das /GA Bit immer auf zu setzen (Startwert). Bit 7 /A-B Einstellung des Kanals A oder B. Enthält das Bit eine, so wird das 6 Bit Datenwort, bestehend aus AnalogOutXL & AnalogOutXH, für den Kanal B verwendet. Ist das Bit 7 auf eingestellt (Startwert), so wird es für Kanal A angesprochen. Alle weiteren Informationen finden im Datenblatt des DAC Chips Microchip MCP / 99

164 4..4. Eingangsdaten Als Eingangsdaten werden die Daten bezeichnet, die der PiXtend-Mikrocontroller an den Raspberry Pi überträgt. Als Beispiel sind das digitale & analoge Eingänge DigitalIn Bit Name DI7 DI6 DI5 DI4 DI3 DI2 DI DI Startwert Tabelle 25: Bits des DigitalIn Bytes Die acht digitalen Eingänge (DigitalIn) sind in einem Byte organisiert. Das niederwertigste Bit (LSB) enthält den Zustand von DI, das höchstwertige (MSB) den Zustand von DI7. Die Eingänge haben im Ruhezustand immer den Wert. Im aktiven Zustand (Spannung angelegt), wechselt der Wert auf. Welcher Pegel zu einer oder führt, ist dem Hardware-Handbuch für PiXtend V2 -S- zu entnehmen. Es gibt die Möglichkeit die digitalen Eingänge zu entprellen, was bei vielen Anwendungen zweckmäßig ist. Weitere Informationen finden Sie im Abschnitt: DigitalInDebounce ab Seite / 99

165 AnalogInX (L/H) AnalogInXL Bit Name Startwert LSB Tabelle 26: AnalogInXL AnalogInXH Bit Name MSB Startwert Tabelle 27: Bits des AnalogInXH Bytes Der im PiXtend-Controller integrierte Analog/Digital-Wandler liefert Bit Werte. Die Werte sind in den Prozessdaten in einem 6 Bit Datenwort, bestehend aus zwei Bytes, organisiert. Die höchstwertigen beiden Bits, des Bit Werts, stehen im Byte AnalogInXH. Das X wird durch die Nummer des jeweiligen Analog-Kanals ersetzt ( oder ). Die analogen Eingänge werden bereits im Mikrocontroller digital gefiltert. Es werden jeweils Werte aufgenommen, der Mittelwert gebildet und das Ergebnis in AnalogInX gespeichert. Der Wertebereich liegt zwischen und 23. Die analogen Eingänge sind auf der Baugruppe bzw. auf dem Edelstahlgehäuse mit AI und AI gekennzeichnet. Um aus diesen Werten Spannungen zu berechnen, wird folgende Berechnungsformel verwendet: Analogwert in Spannung umrechnen AnalogInX * / 24 = Spannung an Kanal X [V] (Spannungen werden an AI und AI gemessen) Bei den Spannungseingängen ist der Jumper zu beachten. Die in der obigen Berechnungsformel wird verwendet, wenn kein Jumper gesetzt ist (.. V Bereich). Wird der Jumper für einen Kanal eingesteckt (..5 V Bereich), so ist in der Formel eine 5 statt einer zu verwenden. 65 / 99

166 GPIOIn Bit Name GPIO3 GPIO2 GPIO GPIO Startwert / / / / Tabelle 28: Bits des GPIOIn Bytes Die vier GPIO-Eingänge (GPIO_IN) sind in einem Byte organisiert. Das niederwertigste Bit (LSB) enthält den Zustand von GPIO. Bit 7 (MSB) bis Bit 4 sind nicht belegt. Die GPIO-Eingänge haben keinen definierten Ruhezustand* (floating input). Erst durch das externe Anlegen einer Spannung ergibt sich ein stabiler Zustand: V Wert 5 V Wert Da die Eingänge schwimmend (floating) sind, können diese ohne externen Anschluss bei oder liegen bzw. zwischen den Werten hin und her wackeln. Die GPIOs können drei unterschiedliche Aufgaben übernehmen: Eingang, Ausgang oder Temperatur-/Luftfeuchtesensoren DHT/22, AM232 ansteuern. Die Konfiguration erfolgt über das Control-Byte GPIOCtrl. Weitere Informationen finden Sie im Kapitel 4.2 Control& Status-Bytes. Nach einem Reset oder Power-Up von Pixtend sind die GPIOs als Eingänge konfiguriert. * Es gibt die Möglichkeit die GPIOs als Eingänge zu konfigurieren und per GPIOOut sogenannte PullUp-Widerstände zu aktivieren. Dadurch wird im Ruhezustand eine am Eingang erzeugt (ohne handelt es sich um Floating-Inputs). Weitere Informationen finden Sie im Abschnitt: GPIOOut ab Seite / 99

167 TempX (L/H) TempXL Bit Name LSB Startwert Tabelle 29: TempXL Byte TempXH Bit 7 Name MSB Startwert Tabelle 3: TempXH Byte Im -Wire/DHT-Mode der GPIOs enthalten die Bytes TempXL und TempXH ein zusammengehöriges 6 Bit Datenwort. Dieses Datenwort enthält die TemperaturInformation eines Sensors (falls ein Sensor angeschlossen und konfiguriert ist). Das X steht für die Nummer des GPIOs, also bis 3. Die GPIOs können drei unterschiedliche Aufgaben übernehmen: Eingang, Ausgang oder Temperatur-/Luftfeuchtesensoren DHT/22, AM232 ansteuern. Die Konfiguration erfolgt über das Control-Byte GPIOCtrl. Weitere Informationen finden Sie im Kapitel 4.2 Control& Status-Bytes. Der enthaltende Wert kann sehr einfach in einen Temperaturwert (Gleitkommawert) umgewandelt werden. Es muss jedoch zwischen DHT und DHT22 unterschieden werden (TempX stellt den 6 Bit Wert dar): DHT: TempX / 256 = Gleitkommawert [ C] Beispiel: 5632 / 256 = 22, C DHT Sensoren liefern keine Nachkommastelle! DHT22: TempX / = Gleitkommawert [ C] Beispiel: 224 / = 22,4 C Je nach verwendeter Programmiersprache und Datentyp muss ein typecast durchgeführt werden. Ansonsten ergibt sich nach dem Teilen durch (DHT22) kein Gleitkommawert, 67 / 99

168 sondern der ganzzahlige Wert (im Beispiel 22 statt 22,4). Das Teilen durch 256 bei den DHT-Sensoren kann auch durch einen right shift um 8 Stellen erreicht werden. Bei DHT22 Sensoren können auch negative Temperaturen erfasst werden. Um dies zu erkennen muss das MSB in TempXH ausgewertet werden. Ist das MSB eine, so handelt es sich um eine negative Temperatur. 68 / 99

169 HumidX (L/H) HumidXL Bit Name LSB Startwert Tabelle 3: HumidXL Byte HumidXH Bit 7 Name MSB Startwert Tabelle 32: HumidXH Byte Im -Wire/DHT-Mode der GPIOs enthalten die Bytes HumidXL und HumidXH ein zusammengehöriges 6 Bit Datenwort. Dieses Datenwort enthält die LuftfeuchtigkeitsInformation eines Sensors (falls ein Sensor angeschlossen und konfiguriert ist). Das X steht für die Nummer des GPIOs, also bis 3. Die GPIOs können drei unterschiedliche Aufgaben übernehmen: Eingang, Ausgang oder Temperatur-/Luftfeuchtesensoren DHT/22, AM232 ansteuern. Die Konfiguration erfolgt über das Control-Byte GPIOCtrl. Weitere Informationen finden Sie im Kapitel 4.2 Control& Status-Bytes. Der enthaltene Wert kann sehr einfach in einen Luftfeuchtigkeitswert (Gleitkommawert) umgewandelt werden. Es muss jedoch zwischen DHT und DHT22 unterschieden werden (HumidX stellt den 6 Bit Wert dar): DHT: HumidX / 256 = Gleitkommawert [%] - relative Luftfeuchtigkeit Beispiel: 496 / 256 = 4, % DHT Sensoren liefern keine Nachkommastelle! DHT22: HumidX / = Gleitkommawert [%] - relative Luftfeuchtigkeit Beispiel: 47 / = 4,7 % Je nach verwendeter Programmiersprache und Datentyp muss ein typecast durchgeführt werden. Ansonsten ergibt sich nach dem Teilen durch kein Gleitkommawert, sondern 69 / 99

170 der ganzzahlige Wert (im Beispiel 4 statt 4,7). Das Teilen durch 256 bei den DHT-Sensoren kann auch durch einen right shift um 8 Stellen erreicht werden RetainDataInX Die Retain-Daten bestehen aus 32 Bytes je Richtung (RetainDataOut & RetainDataIn). Bei RetainDataIn, was in diesem Abschnitt behandelt werden soll, handelt es sich um die zurvor gesicherten Daten, welche nach einem Stromausfall/Spannungsunterbrechung wieder vom PiXtend-Mikrocontroller an den Raspberry Pi übergeben werden. Die Daten stehen nach dem erneuten Hochfahren des PiXtend-Systems in RetainDataIn bereit, wenn zuvor (vor dem Stromausfall) der Retain-Speicher aktiviert wurde (weitere Informationen finden Sie ab Seite 77). Die Daten bleiben so lange erhalten bis neue Retain-Daten abgespeichert werden. Die Daten können auch über beliebig viele Power-Cycles des Systems erhalten bleiben, wenn die Retain-Funktionalität nicht erneut aktiviert wird. Wird der Retain-Speicher erneut aktiviert und es kommt zur Spannungsunterbrechung, so werden die Daten durch die zu diesem Zeitpunkt aktuellen Daten in RetainDataOut überschrieben. 7 / 99

171 4.2. Control- & Status-Bytes PiXtend bzw. der PiXtend-Mikrocontroller kann über Control-Bytes konfiguriert werden. Außerdem informiert der Mikrocontroller den Raspberry Pi über Status-Bytes über Zustand und ggf. über Fehler & Warnungen. Auf den folgenden Seiten wird zunächst ein Überblick über die Control- und Status-Bytes gegeben. Anschließend wird jedes Byte genau beschrieben. Es werden die unterschiedlichen Möglichkeiten aufgezeigt und beispielhafte Berechnungen durchgeführt. Sollten trotzdem Fragen offenbleiben, so bitten wir Sie uns per in Kenntnis zu setzen. Sie erhalten schnellstmöglich eine Antwort und weitere Informationen. 7 / 99

172 4.2.. Control-Bytes im Überblick Control-Bytes werden vom Raspberry Pi an den PiXtend-Mikrocontroller übertragen. Sie können so das Verhalten des Mikrocontrollers steuern. Es gibt folgende Control-Bytes: ModelOut (S. 74) gibt an, welche Hardware-Version (Modell) die RPi-Software (z.b. CODESYS oder pxdev) erwartet UCMode (S. 74) gibt an, welcher Übertragungsmodus verwendet werden soll UCCtrl (S. 75) grundlegende Einstellungen des Mikrocontrollers (Retain, Watchdog, SafeState...) DigitalInDebounce (S. 79) gibt an, ob und wie die digitalen Eingänge entprellt werden sollen GPIOCtrl (S. 8) konfiguriert die PiXtend-GPIOs (Eingang, Ausgang, DHT-Mode) GPIODebounce (S. 82) gibt an, ob und wie die GPIO-Eingänge entprellt werden sollen PWMCtrl & PWMCtrl (S. 83 & 87) konfiguriert die PWM-Kanäle (Modus, Freischaltung, Frequenzen) 72 / 99

173 Status-Bytes im Überblick Status-Bytes werde vom PiXtend-Mikrocontroller an den Raspberry Pi übertragen. Sie enthalten wichtige Informationen über den Zustand von PiXtend bzw. des Mikrocontrollers. Es gibt folgende Status-Bytes: Firmware (S. 92) informiert über die Mikrocontroller Firmware-Version Hardware (S. 92) informiert über die PiXtend Hardware-Version ModelIn (S. 92) informiert über das PiXtend Modell UCState (S. 93) enthält den Betriebszustand & Fehlercodes des Mikrocontrollers UCWarnings (S. 94) enthält Warnungen des Mikrocontrollers 73 / 99

174 Beschreibung der Control-Bytes ModelOut Bit 7 Name MSB Startwert x LSB x x x x x x x Tabelle 33: ModelOut Byte Durch das Byte ModelOut informiert die Anwendungssoftware, welche auf dem Raspberry Pi ausgeführt wird, den Mikrocontroller darüber, welches PiXtend-Modell sie erwartet. Damit kann der Mikrocontroller entscheiden ob es sich um das erwartete Modell handelt und wenn nicht, einen Fehler an den Raspberry Pi zurückgeben. Der Inhalt von ModelOut ist ein ASCII-Zeichen. Im Fall von PiXtend V2 -S- enthält das Byte folgenden Wert: ASCII-Zeichen S (Großbuchstabe S 83 dezimal / 53 hexadezimal). Für den Anwender gibt es in der Regel keinen Grund an diesem Wert etwas zu verändern. Als Beispiel werden mit dem CODESYS-Package PiXtend V2 Professional for CODESYS bereits Treiber mitgeliefert, bei denen das Modell fest einprogrammiert ist und nicht verändert werden kann UCMode Bit Name Startwert Tabelle 34: Bits des UCMode Bytes Aktuell (Stand Oktober 27) gibt es nur einen Übertragungsmodus, den sogenannten Auto-Mode. Das Byte ist für eine zukünftige Nutzung reserviert. Für den Betrieb von PiXtend ist es nicht notwendig hier einen Wert einzutragen. Wird ein Wert eingetragen, so hat dies keine Auswirkung. 74 / 99

175 UCCtrl UCCtrl Bit Name WDE3 WDE3 WDE WDE Startwert Tabelle 35: Bits des UCCtrl Bytes Bit..3 WDE..3 (WatchdogEnable..3) Mit den WDE..3 Bits lässt sich der Watchdog-Timer des PiXtend-Mikrocontrollers aktivieren und einstellen. In der Standard-Einstellung sind alle Bits. Die Aktivierung und Einstellung des Watchdogs wird in der folgenden Tabelle erläutert: WDE WDE WDE WDE 3 2 Status Watchdog konfigurierte Zeit deaktiviert deaktiviert aktiv 6 ms aktiv 32 ms aktiv 64 ms aktiv,25 s aktiv,25 s aktiv,5 s aktiv s aktiv 2s aktiv 4s aktiv 8s Tabelle 36: Watchdog Einstellung Ist der Watchdog aktiviert, so wird die Kommunikation zwischen Raspberry Pi und PiXtend überwacht. Gibt es zwischen zwei gültigen Zyklen eine Pause größer der eingestellten Zeit, so schlägt der Watchdog zu und bringt den Mikrocontrollers in den sicheren 75 / 99

176 Zustand*. Ein ungültiger Zyklus (z.b. durch CRC-Fehler) wird vom Watchdog so gewertet, als wäre kein Zyklus durchgeführt worden. Die Verwendung des Watchdog macht dann Sinn, wenn die PiXtend-Steuerung im Fehlerfall in einen definierten Zustand gebracht werden soll. Ein Fehlerfall kann z.b. vorliegen, wenn das Anwendungsprogramm auf dem Raspberry Pi nicht mehr reagiert und keine Daten mehr an den Mikrocontroller überträgt. Empfehlung Aktivieren Sie den Watchdog nicht während der Entwicklung Ihrer Anwendersoftware. Wenn beispielsweise per CODESYS ein neues Programm übertragen oder die Anwendersoftware ge-debugged wird, dann findet für eine bestimmte Zeit keine Übertragung mehr statt. Also schlägt immer wieder der Watchdog zu und es wird ein Neustart des Systems notwendig. Dies kann zu einer unnötigen Verzögerung Ihres Entwicklungsprozesses führen. * Definition sicherer Zustand : Alle digitalen Ausgänge & Relais werden abgeschaltet / in den Ruhezustand gebracht PWM-Ausgänge werden hochohmig (Tri-State) geschaltet Retain-Daten werden abgespeichert, wenn Retain aktiviert ist Die Status-LED L blinkt anhängig nach Fehlerursache (Fehler-LED L Signalisierung, Seite 95), wenn die LED aktiviert ist Der Mikrocontroller bzw. das PiXtend-System muss im Anschluss neu gestartet werden Wenn das Ausschalten der digitalen Ausgänge für Ihre Anwendung nicht dem sicheren Zustand entspricht, so sind externe Maßnahmen vorzusehen um dies abzufangen. 76 / 99

177 UCCtrl Bit Name GPUE SLED RE RC SAFE Startwert Tabelle 37: Bits des UCCtrl Bytes Bit SAFE (SafeState) Das SAFE-Bit kann, wenn es durch den Wert aktiviert wird, den Mikrocontroller unverzüglich in den sicheren Zustand* versetzen. Das Bit hat standardmäßig den Wert * Definition sicherer Zustand : Alle digitalen Ausgänge & Relais werden abgeschaltet / in den Ruhezustand gebracht PWM-Ausgänge werden hochohmig (Tri-State) geschaltet Retain-Daten werden abgespeichert, wenn Retain aktiviert ist Die Status-LED L blinkt anhängig nach Fehlerursache (Fehler-LED L Signalisierung, Seite 95), wenn die LED aktiviert ist Der Mikrocontroller bzw. das PiXtend-System muss im Anschluss neu gestartet werden Wenn das Ausschalten der digitalen Ausgänge für Ihre Anwendung nicht dem sicheren Zustand entspricht, so sind externe Maßnahmen vorzusehen um dies abzufangen. Bit RC (RetainCopy) Mit dem RC-Bit kann konfiguriert werden, welche Daten im Retain Input-Bereich (RetainDataIn..3) sichtbar werden. Beim Startwert werden die zuletzt gespeicherten Daten vom Mikrocontroller an den Raspberry Pi übergeben (normaler Retain Betrieb). Wird der Wert für das RC-Bit gesetzt, so werden die zuletzt vom Raspberry Pi gesendeten Daten wieder zurückgegeben. Im Retain-Bereich RetainDataIn..3 wird dann also (RetainDataOut..3) gespiegelt, jedoch mit einem Zyklus Verzögerung (Retain Copy Betrieb). Der Inhalt der Retain-Daten geht dadurch nicht verloren, sondern wird nur nicht mehr angezeigt, solange das RC-Bit ist. Weitere Informationen zur Retain-Funktion von PiXtend finden Sie 6.3. Retain-Speicher (dt. Remanenz). 77 / 99

178 Bit 2 RE (RetainEnable) Mit dem RE-Bit kann die Retain-Funktion von PiXtend aktiviert werden. Dazu wird eine in dieses Bit geschrieben. Standardmäßig ist RE (nach einem Reset oder Power-Up) und damit ist Retain deaktiviert. Empfehlung Aktivieren Sie Retain nur dann, wenn die Funktionaliät auch wirklich benötigt wird. Die Anzahl der Retain-Speicherzyklen kann nur bis. Zyklen garantiert werden. Weitere Informationen zur Retain-Funktion von PiXtend V2 -S- finden Sie im Kapitel: 6 Basis Wissen ab Seite 8 in diesem Dokument. Bit 3 SLED (StatusLED) Die Status-LED L kann per SLED-Bit deaktiviert werden, wenn diese nicht benötigt wird. Standardmäßig ist die Status-LED aktiv und kann durch den Wert in SLED deaktiviert werden. Bit 4 GPUE (GPIOPullUpEnable) Mit dem GPUE-Bit lassen sich die PullUp-Widerstände der PiXtend-GPIOs freischalten (diese sind dadurch jedoch noch nicht aktiv). Die Freischaltung hat dann eine Auswirkung, wenn die GPIOs als Eingänge konfiguriert sind und im Byte GPIOOut eine für den jeweiligen GPIO geschrieben wird. Eine in GPUE aktiviert diese Funktionalität. Weitere Informationen zu den PiXtend-GPIOs finden Sie im Abschnitt: GPIOOut ab Seite / 99

179 DigitalInDebounce DigitalInDebounce Bit 7 Name MSB Startwert LSB 3 2 Tabelle 38: Bits des DigitalInDebounce Bytes DigitalInDebounce23 Bit 7 Name MSB Startwert LSB 3 2 Tabelle 39: Bits des DigitalInDebounce23 Bytes DigitalInDebounce45 Bit 7 Name MSB Startwert LSB 3 2 Tabelle 4: Bits des DigitalInDebounce45 Bytes DigitalInDebounce67 Bit 7 Name MSB Startwert LSB Tabelle 4: Bits des DigitalInDebounce67 Bytes Mit Hilfe der DigitalInDebounce-Bytes lässt sich das Entprellen der acht digitalen Eingänge von PiXtend konfigurieren. Standardmäßig ist die Entprellung der Eingänge nicht aktiv. Das Entprellen wird jeweils gemeinsam für zwei Kanäle aktiviert/deaktiviert. Es entstehen 79 / 99

180 dadurch keine Wechselwirkungen zwischen den beiden Kanälen, sondern diese erhalten lediglich die gleiche Entprellungs-Einstellung. Die Zahl in einem DigitalInDebounce-Byte entspricht der Anzahl der Zyklen, in der ein am digitalen Eingang anliegendes elektrisches Signal konstant bleiben muss, damit die Pegeländerung an der Anwendungssoftware (Raspberry Pi) weitergereicht wird. Das gilt sowohl für einen Wechsel des Signalpegels von (low) zu (high), als auch umgekehrt. Werden die Bytes nicht verändert bzw. wird eine als Wert geschrieben, so findet kein Entprellen statt und die Anwendungssoftware erhält in jedem Zyklus einen neuen Wert. Ein Beispiel Die ersten beiden digitalen Eingänge (DI und DI) sollen entprellt werden. Es sollen nur Änderungen an den digitalen Eingängen sichtbar werden, die länger als ms konstant anliegen. Die Zykluszeit (Datenaustausch zwischen PiXtend und Raspberry Pi) beträgt ms. - Das Byte DigitalInDebounce wird verwendet - Berechnung des Wertes für DigitalInDebounce: ms / ms = Das Byte wird also mit einer (dezimal) beschrieben um den gewünschten Effekt zu erhalten. Falls die Zykluszeit während der Software-Entwicklung verändert wird, so muss daran gedacht werden, dass auch der Wert für die Entprellung anzupassen ist. 8 / 99

181 GPIOCtrl Bit Name SENS3 SENS2 SENS SENS IO3 IO2 IO IO Startwert Tabelle 42: Bits des GPIOCtrl Bytes Bits..3 IO..3 Mit den IO-Bits können die vier PiXtend-GPIOs entweder als digitaler Eingang oder Ausgang konfiguriert werden. Mit dem Startwert sind alle GPIOs als Eingänge konfiguriert. Wird z.b. das Bit IO3 auf gesetzt, so wird GPIO3 zum Ausgang. Der Wert wird über das Datenwort GPIOOut gesetzt. Bits 4..7 SENS..3 (Sensor..3) Die GPIOs können außer Eingang/Ausgang auch für -Wire Sensoren (DHT, DHT22, AM232) genutzt werden. Dafür stehen die oberen vier Bits des GPIOCtrl-Datenworts bereit. Wird hier z.b. das Bit SENS3 auf gesetzt, so kann an GPIO3 ein solcher Sensor angeschlossen und ausgewertet werden. Die Einstellung des IO-Bit spielt dann keine Rolle mehr. Die SENSX-Bits setzen sich gegen die IOX-Bits durch. Die Ergebnisse/Messwerte der Sensoren stehen in TempXL/TempXH und HumidXL/HumidXH. Das X entspricht der Nummer des GPIOs, an dem ein Sensor angeschlossen ist. Hinweis Da für die Kommunikation mit den Sensoren Zeit benötigt wird (rund 25 ms), ergibt sich eine minimale Zykluszeit von 3 ms, wenn mindestens ein Sensor verwendet wird. Es spielt dabei keine Rolle ob ein oder vier Sensoren abgefragt werden. 8 / 99

182 GPIODebounce GPIODebounce Bit 7 Name MSB Startwert LSB 3 2 Tabelle 43: Bits des GPIODebounce Bytes GPIODebounce23 Bit 7 Name MSB Startwert LSB Tabelle 44: Bits des GPIODebounce23 Bytes Das Entprellen der GPIOs funktioniert nur dann, wenn diese als Eingänge konfiguriert sind. Die GPIODebounce-Bytes werden ansonsten genau gleich verwendet, wie die DigitalInDebounce-Bytes. Weitere Informationen & Beispiele befinden sich im Abschnitt: DigitalInDebounce ab Seite / 99

183 PWMCtrl für 6 Bit PWMs Die nachfolgenden Beschreibungen beziehen sich auf die PWM-Kanäle (PWMA & PWMB) mit 6 Bit Auflösung. Die Informationen zu den 8 Bit PWM-Kanälen finden Sie nachfolgenden Kapitel PWMCtrl für 8 Bit PWMs PWMCtrl Bit Name PS2 PS PS EnableB EnableA - MODE MODE Startwert Tabelle 45: Bits des PWMCtrl Bytes Bit.. MODE.. Die PWM-Ausgänge können in vier verschiedenen Modi betrieben werden. Der Modus wird über die MODE-Bits konfiguriert. Standardmäßig startet PiXtend im Servo-Mode (MODE.. = ). MODE MODE Modus Beschreibung Servo-Mode Beide Kanäle (A/B) werden zur Ansteuerung von Modellbau-Servos verwendet spezielle Signalform Duty-Cycle-Mode Beide Kanäle (A/B) haben die gleiche Frequenz, aber unabhängig einstellbaren Duty Cycle Universal-Mode Frei einstellbare Frequenz & Duty Cycle für Kanal A, halbe Frequenz für Kanal B und 5% Duty Cycle Frequency-Mode Frei einstellbare Frequenzen für beide Kanäle (A/B), Duty Cycle ist immer 5% Tabelle 46: Mode Bits im PWMCtrl Byte Für den normalen Anwender sind Servo-Mode und Duty-Cycle-Mode ausreichend. Universal- und Frequency-Mode können für spezielle Anwendungen sinnvoll und hilfreich sein, sind jedoch aufwändiger zu konfigurieren und zu verwenden. Bit 3..4 EnableA, EnableB Mit den Bits EnableA und EnableB kann der jeweilige Kanal aktiviert werden. Standardmäßig sind die PWM-Kanäle deaktiviert. Durch schreiben einer in das jeweilige Bit wird der Kanal aktiviert und die PWM wird am Ausgang sichtbar. 83 / 99

184 Die PWM kann zunächst für die gewünschte Anforderung konfiguriert (Modus, Frequenz/Wert ) und erst dann aktiviert werden. Die Aktivierung kann aber auch im gleichen Zyklus passieren. Bit 5..7 PS..PS2 (Prescaler..3) Die Prescaler-Bits (PS-Bits) ermöglichen die grobe Einstellung der PWM-Frequenz. Je nach PWM-Modus (siehe MODE-Bits) haben die PS-Bits verschiedene Auswirkungen. Folgende Tabelle gibt Aufschluss über die Auswirkungen der PS-Bits: PS2 PS PS Beschreibung Grundfrequenz PWM-Ausgänge deaktiviert - Vorteiler (Prescaler): 6 MHz Vorteiler (Prescaler): 8 2 MHz Vorteiler (Prescaler): khz Vorteiler (Prescaler): ,5 khz Vorteiler (Prescaler): 24 5,625 khz Vorteiler (Prescaler): 24 5,625 khz Vorteiler (Prescaler): 24 5,625 khz Tabelle 47: Prescaler-Bits im PWMCtrl Byte Wie bereits erwähnt haben die Prescaler-Einstellungen, abhängig vom eingestellten Modus, unterschiedliche Auswirkungen: Modus Beschreibung Servo-Mode Keine Auswirkung Duty-Cycle-Mode Einstellung des Prescalers bzw. der Grundfrequenz Universal-Mode Einstellung des Prescalers bzw. der Grundfrequenz Frequency-Mode Einstellung des Prescalers bzw. der Grundfrequenz Tabelle 48: PWM Modus Die grobe Einstellung der Frequenz erfolgt über die Prescaler-Bits (PS..2) in PWMCtrl, die Feineinstellung per PWMCtrlL/H. 84 / 99

185 Wie die Frequenz / Periodendauer genau eingestellt werden kann, erfahren Sie im Abschnitt: PWMX (L/H) 6 Bit Auflösung ab Seite 48. Hinweis Soll der Frequency-Mode verwendet werden (für fortgeschrittene Anwender), so dürfen keine DHT-Sensoren angeschlossen bzw. im GPIOCtrl-Byte aktiviert werden. Die Kombination aus Frequency-Mode und DHT-Sensoren ist nicht möglich. Wenn ein oder mehrere DHTSensoren an den PiXtend-GPIOs aktiviert wurden, so lässt sich der Frequency-Mode nicht aktivieren. Der Versuch den Frequency-Mode trotzdem zu aktivieren, obwohl DHT-Sensoren verwendet werden, führt zur Deaktivierung der PWM-Ausgänge. 85 / 99

186 PWMCtrl (L/H) Die PWMCtrl-Bytes L und H enthalten ein zusammengehöriges 6 Bit Datenwort. Dabei ist PWMCtrlL das Low-Byte und PWMCtrlH das High-Byte. Mit den beiden Bytes kann die PWM-Frequenz / Periodendauer eingestellt werden (im PWM-Modus Duty-Cycle & Universal ). Die Frequenz gilt für beide Kanäle. Im Duty-Cycle-Mode kann das Tastverhältnis unabhängig für jeden Kanal konfiguriert werden. Im Universal-Mode kann das Tastverhältnis nur für Kanal A eingestellt werden. Für den Frequency-Mode haben die PWMCtrl-Bytes keine Auswirkung. PWMCtrlL Bit Name LSB Startwert Tabelle 49: PWMCtrlL Byte PWMCtrlH Bit 7 Name MSB Startwert Tabelle 5: PWMCtrlH Byte Beispiel für die PWM-Periodendauer im Duty-Cycle-Mode : Der Prescaler (PS..2) wird auf den Wert 64 und damit die Grundfrequenz auf 25 khz eingestellt. Außerdem wird der Duty-Cycle-Mode und der Kanal A aktiviert: PWMCtrl: b Das 6 bit Datenwort PWMCtrl wird auf den Wert eingestellt: PWMCtrlL: b PWMCtrlH: b PWM-Periodendauer = Mikrocontroller-Basistakt / 2 / Prescaler / PWMCtrl PWM-Periodendauer = 6 MHz / 2 / 64 / = 25 Hz 86 / 99

187 PWMCtrl für 8 Bit PWMs Die nachfolgenden Beschreibungen beziehen sich auf die PWM-Kanäle (PWMA & PWMB) mit 8 Bit Auflösung. Die Informationen zu den 6 Bit PWM-Kanälen finden Sie im vorherigen Kapitel PWMCtrl für 6 Bit PWMs PWMCtrl Bit Name PS2 PS PS EnableB EnableA - MODE MODE Startwert Bit.. MODE.. Die PWM-Ausgänge können in vier verschiedenen Modi betrieben werden. Der Modus wird über die MODE-Bits konfiguriert. Standardmäßig startet PiXtend im Servo Modus (MODE.. = ). MODE MODE Modus Beschreibung Servo-Mode Beide Kanäle (A/B) werden zur Ansteuerung von Modellbau-Servos verwendet spezielle Signalform Duty-Cycle-Mode Beide Kanäle (A/B) haben die gleiche Frequenz, aber unabhängig einstellbaren Duty Cycle Universal-Mode Frei einstellbare Frequenz & Duty Cycle für Kanal A, halbe Frequenz für Kanal B und 5% Duty Cycle Frequency-Mode Frei einstellbare Frequenzen für beide Kanäle (A/B), Duty Cycle ist immer 5% Für den normalen Anwender sind Servo-Mode und Duty-Cycle-Mode ausreichend. Universal- und Frequency-Mode können für spezielle Anwendungen sinnvoll und hilfreich sein, sind jedoch aufwändiger zu Konfigurieren und zu Verwenden. Bit 3..4 EnableA, Enable B Mit den Bits EnableA und EnableB kann der jeweilige Kanal aktiviert werden. Standardmäßig sind die PWM-Kanäle deaktiviert. Durch schreiben einer in das jeweilige Bit wird der Kanal aktiviert und die PWM wird am Ausgang sichtbar. Die PWM kann zunächst für die gewünschte Anforderung konfiguriert (Modus, Frequenz/Wert ) und erst dann aktiviert werden. Die Aktivierung kann aber auch im gleichen Zyklus passieren. 87 / 99

188 Bit 5..7 PS..PS2 (Prescaler..3) Die Prescaler-Bits (PS-Bits) ermöglichen die grobe Einstellung der PWM-Frequenz. Je nach PWM-Modus (siehe MODE-Bits) haben die PS-Bits verschiedene Auswirkungen. Folgende Tabelle gibt Aufschluss über die Auswirkungen der PS-Bits: CS2 CS CS Beschreibung Grundfrequenz PWM-Ausgänge deaktiviert - Vorteiler (Prescaler): 6 MHz Vorteiler (Prescaler): 8 2 MHz Vorteiler (Prescaler): 32,5 MHz Vorteiler (Prescaler): khz Vorteiler (Prescaler): khz Vorteiler (Prescaler): ,5 khz Vorteiler (Prescaler): 24 5,625 khz Wie bereits erwähnt haben die Prescaler-Einstellungen, abhängig vom eingestellten Modus, unterschiedliche Auswirkungen: Modus Beschreibung Servo-Mode Keine Auswirkung Duty-Cycle-Mode Einstellung des Prescalers bzw. der Grundfrequenz Universal-Mode Einstellung des Prescalers bzw. der Grundfrequenz Frequency-Mode Einstellung des Prescalers bzw. der Grundfrequenz Die grobe Einstellung der Frequenz erfolgt über die Prescaler-Bits (PS..2) in PWMCtrl, die Feineinstellung per PWMCtrlL/H. Wie die Frequenz / Periodendauer genau eingestellt werden kann, erfahren Sie im Abschnitt: PWMX (L/H) 8 Bit Auflösung ab Seite / 99

189 Hinweis: Die Kombination aus Frequency-Mode und DHT-Sensoren ist nicht möglich. Wenn ein oder mehrere DHT-Sensoren an den PiXtendGPIOs aktiviert wurden, so lässt sich der Frequency-Mode nicht aktivieren. Der Versuch den Frequency-Mode trotzdem zu aktivieren, obwohl DHT-Sensoren verwendet werden, führt zur Deaktivierung der PWM-Ausgänge. 89 / 99

190 PWMCtrl (L/H) Bei den PWM-Kanälen (8 Bit PWM) existieren zwar zwei PWMCtrl-Bytes (L & H) jedoch wird hier nur das Low-Byte (L) verwendet. Mit PWMCtrlL kann die PWM-Frequenz / Periodendauer eingestellt werden (im PWMModus Duty-Cycle & Universal ). Die Frequenz gilt für beide PWM-Kanäle (A & B). Im Duty-Cycle-Mode kann das Tastverhältnis unabhängig für jeden Kanal konfiguriert werden. Im Universal-Mode kann das Tastverhältnis nur für Kanal A eingestellt werden. Für den Frequency-Mode haben die PWMCtrl-Bytes keine Auswirkung. PWMCtrlL Bit 7 Name MSB Startwert LSB Tabelle 5: Bits des PWMCtrlL Bytes PWMCtrlH wird nicht verwendet Bit Name Startwert Tabelle 52: Bits des PWMCtrlH Bytes Beispiel für die PWM-Periodendauer im Universal-Mode : Der Prescaler (PS..2) wird auf den Wert 64 und damit die Grundfrequenz auf 25 khz eingestellt. Außerdem wird der Universal-Mode und der Kanal A aktiviert: PWMCtrl: b Das 8 bit Datenbyte PWMCtrlL wird auf den Wert 5 eingestellt: PWMCtrlL: b PWMCtrlH: wird nicht verwendet PWM-Periodendauer = Mikrocontroller-Quarz / 2 / Prescaler / PWMCtrl PWM-Periodendauer = 6 MHz / 2 / 64 / 5 =,833 khz 9 / 99

191 Beispiel für die PWM-Periodendauer im Duty-Cycle-Mode : Der Prescaler (PS..2) wird auf den Wert 64 und damit auf 25 khz eingestellt. Außerdem wird der Duty-Cycle-Mode und der Kanal A aktiviert: PWMCtrl: b Hier ist eine Besonderheit der 8 Bit PWMs im Duty-Cycle-Mode zu beachten: es gibt nur zwei verschiedene Einstellungsmöglichkeiten für PWMCtrlL ( oder ) PWMCtrlL: b PWMCtrlH: wird nicht verwendet PWM-Periodendauer = Mikrocontroller-Basistakt / Prescaler / 255 / 2 PWM-Periodendauer = 6 MHz / 64 / 255 / 2 = 49 Hz PWMCtrlL: b PWMCtrlH: wird nicht verwendet PWM-Periodendauer = Mikrocontroller-Basistakt / Prescaler / 255 PWM-Periodendauer = 6 MHz / 64 / 255 = 98 Hz Ein Beispiel für den Frequency-Mode findet sich im Abschnitt: Frequency-Mode ab Seite / 99

192 Beschreibung der Status-Bytes Die Status-Bytes informieren den Anwender bzw. das Anwenderprogramm, welches auf dem Raspberry Pi läuft, über den Status des Mikrocontrollers. Die Status-Bytes können per CODESYS, PiXtend-C-Library oder PiXtend-Python-Library (PPL) abgefragt werden Firmware Im Firmware-Byte befindet sich eine Zahl, die für die Firmware-Version steht. Die Zahl kann zwischen und 255 liegen. Falls Sie Support für Ihr PiXtend V2 Gerät anfragen, so geben Sie die Firmware-Version bitte immer mit an Hardware Das Hardware-Byte enthält die Versionsnummer Ihres PiXtend-Boards. Mit der Versionsnummer kann die Anwendersoftware prüfen, ob die Software/Treiber zur vorhandenen Hardware passen. Beispiel Hardware-Byte enthält die Zahl 2 PiXtend Hardware Version ModelIn Im ModelIn-Byte informiert der Mikrocontroller die Anwendersoftware über das PiXtend V2 Modell. Mit der Modell-Kennung kann die Anwendersoftware prüfen, ob die Software/Treiber zur vorhandenen Hardware passen. Der Inhalt von ModelIn ist ein ASCII-Zeichen. Im Fall von PiXtend V2 -S- enthält das Byte folgenden Wert: ASCII-Zeichen S (Großbuchstabe S 83 dezimal / 53 hexadezimal). 92 / 99

193 UCState Bit Name ERR3 ERR2 ERR ERR RUN Startwert Tabelle 53: Bits des UCState Bytes Bit RUN Durch Abfrage dieses Bits kann der Anwender prüfen, ob PiXtend betriebsbereit ( ) ist bzw. ob eine erfolgreiche Datenübertragung durchgeführt wurde. Das kann nach dem Start des PiXtend-Systems Sinn machen. Wird der Controller in den SafeState gebracht (z.b. durch den Watchdog), so enthält das Bit eine. Diese kann jedoch nicht mehr abgefragt werden, weil keine Kommunikation mehr möglich ist (bis zu einem Neustart). Bit 4..7 ERROR..3 Die ERR-Bits informieren über Probleme, die der Mikrocontroller erkennen und an das Anwenderprogramm weiterreichen kann. Die nachfolgende Tabelle beschreibt die Fehlercodes und deren Ursache: ERR ERR ERR ERR 3 2 Fehlerbeschreibung Kein Fehler - CRC-Fehler - Data die vom Raspberry Pi erhaltenen Nutzdaten sind fehlerhaft Datenblock zu kurz Treiber fehlerhaft / falsches Modell eingestellt PiXtend Modell stimmt nicht überein das erwartete und das tatsächliche Modell stimmen nicht überein (ModelIn und ModelOut sind ungleich) CRC-Fehler - Header die vom Raspberry Pi erhaltenen Headerdaten sind Fehlerhaft SPI-Frequenz zu hoch die eingestellte SPI-Frequenz ist zu hoch, es kommt zu Übertragungsfehlern Tabelle 54: Aufschlüsselung Error-Bits im UCState Byte 93 / 99

194 UCWarnings Bit Name W W - Startwert Tabelle 55: Bits des UCWarnings Bytes Bit..2 W.. (RetainCRCError. RetainVoltageError) Die WX-Bits informieren den Anwender über Warnungen im Bezug auf die RetainFunktionalität von PiXtend V2. Im Anwenderprogramm kann auf diese Bits abgeprüft und so erkannt werden, ob der Retain-Speicher korrekt funktioniert oder nicht. W RetainCRCError Ist, wenn bei der Überprüfung des Retain-Speichers ein Fehler erkannt wurde. W RetainVoltageError Ist, wenn die aktuelle Versorgungsspannung von PiXtend zu gering ist (kleiner 9 V). Die Retain-Speicherung kann nicht aktiviert werden. 94 / 99

195 4.3. Fehler-LED L - Signalisierung Manche Fehlerzustände die im Mikrocontroller auftreten können, lassen sich unter Umständen nicht mehr per SPI-Bus an den Raspberry Pi zurückmelden, z.b. bei fehlerhafter Kommunikation oder der Watchdog des Mikrocontrollers hat ausgelöst. Für diese Situation wurde auf dem PiXtend V2 -S- Board eine LED (L) vorgesehen. Diese LED kann zur Problemermittlung herangezogen werden, die Bedeutung der verschiedenen Zustände sind nachfolgend aufgeführt. Zustand Bedeutung Maßnahmen Aus Betriebsbereit, keine Störung - An /Blinken sehr schnell Übertragungsfehler (SPI) Schalter SPI_EN prüfen, verwendete Softwarekomponenten prüfen, es darf nur ein Programm mit dem Mikrocontroller kommunizieren. In C-Programmen müssen die Input- und Output-Strukturvariablen global deklariert sein oder lokal mit dem Schlüsselwort static. Blinken schnell (,2s) Watchdog hat ausgelöst RPi herunterfahren und Versorgung trennen. Der Mikrocontroller muss neu gestartet werden damit dieser wieder betriebsbereit ist. Ausblenden (3s) AC/Retain Fehler Die Versorgungsspannung ist nicht ausreichend, obwohl die Retain-Funktion aktiviert wurde. Die Retain-Daten können nicht gespeichert werden bzw. sind außer Funktion. Die Versorgungsspannung muss 24 Volt betragen. Pulsieren (5s) Runterfahren (sicherer Zustand) Der Mikrocontroller wird in den sicheren Zustand versetzt. Bit im Control-Byte UCCtrl (Seite 77) wurde gesetzt. Tabelle 56: LED L Signalisierung 95 / 99

196 5. Abbildungsverzeichnis Abbildung : Software - Win32DiskImager...2 Abbildung 2: CODESYS Development System (Quelle: 3S)...28 Abbildung 3: CODESYS - Visualisierung für das PiXtend V2 -S- Demo Projekt...29 Abbildung 4: CODESYS - Neues Projekt...36 Abbildung 5: CODESYS - Neues Projekt - Auswahl Gerät...37 Abbildung 6: CODESYS - PiXtendTest Projekt...38 Abbildung 7: CODESYS - Gerät anhängen...39 Abbildung 8: CODESYS - Gerät anhängen - SPI master...4 Abbildung 9: CODESYS - Gerät anhängen - PiXtend V2 -S Abbildung : CODESYS - Globale Variablenliste einfügen...45 Abbildung : CODESYS - GVL - Deklarationen...47 Abbildung 2: CODESYS - PiXtend V2 -S- E/A-Abbild...49 Abbildung 3: CODESYS - Eingabehilfe...5 Abbildung 4: CODESYS - PiXtend V2 -S- E/A-Abbild - State...5 Abbildung 5: CODESYS - GPIO Parameter - GPIO Abbildung 6: CODESYS - GPIO E/A-Abbild - rpi_gpio24 Variable...52 Abbildung 7: CODESYS - Taskkonfiguration - MainTask...54 Abbildung 8: CODESYS - PLC_PRG (CFC) - Eingang...56 Abbildung 9: CODESYS - CFC - 3 Eingänge verbunden mit 3 Ausgängen...56 Abbildung 2: CODESYS - CFC - Parametriert...57 Abbildung 2: CODESYS - Kommunikation - Netzwerk durchsuchen...58 Abbildung 22: CODESYS - PiXtend V2 -S- E/A-Abbild online...6 Abbildung 23: CODESYS - PLC_PRG (CFC) - Demo-Programm...6 Abbildung 24: CODESYS - Web-Visualisierung - Konfiguration...62 Abbildung 25: CODESYS - Visualisierung...64 Abbildung 26: CODESYS - Visualisierung - Elementeigenschaften...64 Abbildung 27: CODESYS - Visualisierung - Konfiguration eines Rechtecks...65 Abbildung 28: CODESYS - Visualisierung - Fertiggestellt...66 Abbildung 29: CODESYS - Schaltplan RS Abbildung 3: CODESYS - HTerm.8.beta - RS232 Testprogramm...7 Abbildung 3: CODESYS - Visualisierung - Testprogramm - Serielle Kommunikation...7 Abbildung 32: CODESYS - Retain-Demo - Gerätebaum...74 Abbildung 33: CODESYS - Retain - Variablendeklaration...75 Abbildung 34: CODESYS - Retain - Beispielprogramm...76 Abbildung 35: CODESYS - Retain Startwert Abbildung 36: CODESYS - Retain - arretaindataout[] wurde um auf 4 erhöht...77 Abbildung 37: CODESYS - Retain - Nach Power-Cycle - Wert 4 wurde aus Retain Speicher wiederhergestellt...77 Abbildung 38: CODESYS PiXtend V2 -S- - SPI devices Parameter Reiter...79 Abbildung 39: CODESYS - GPIO24 als Ausgang konfiguriert / 99

197 Abbildung 4: Linux-Tools - pixtendtool2s - Schalter '-di'...94 Abbildung 4: Linux-Tools - pixtendtool2s - Schalter '-ai'...94 Abbildung 42: Linux-Tools - pixtendtool2s - Schalter '-sws'...95 Abbildung 43: Linux-Tools - pixtendtool2s - Schalter '-sr'...95 Abbildung 44: Linux-Tools - pxauto2s - Hauptmenü...98 Abbildung 45: Linux-Tools - pxauto2s - Menü DOut... Abbildung 46: Linux-Tools - pxauto2s... Abbildung 47: Linux-Tools - pixtendtool2s... Abbildung 48: FHEM - Aktivieren der Sensorfunktion...25 Abbildung 49: FHEM - Plot durch LogFile erstellen...26 Abbildung 5: FHEM - Diagramm der Sensormesswerte...29 Abbildung 5: Python - Bildquelle: The Python Brochure...33 Abbildung 52: Python - Raspbian PIXEL- Terminal Icon in der Taskleiste...35 Abbildung 53: Python - Konsole - PPLV2 Verzeichnis...37 Abbildung 54: Python - PiXtend Python Library V2 Demo-Programm...38 Abbildung 55: Python - Einfaches Demo-Programm...39 Abbildung 56: Designed to be Open Source - Abbildung 57: OpenPLC Hardwareauswahl...47 Abbildung 58: OpenPLC Editor Download...48 Abbildung 59: OpenPLC Editor...48 Abbildung 6: OpenPLC - Download Hello World Programm...49 Abbildung 6: OpenPLC - Projektübersicht...5 Abbildung 62: OpenPLC - Hello World Programm...5 Abbildung 63: OpenPLC - Variablenliste...5 Abbildung 64: OpenPLC - Erfolgsmeldung...5 Abbildung 65: OpenPLC - Browser-Adressleiste...52 Abbildung 66: OpenPLC - Runtime Web-Server...52 Abbildung 67: OpenPLC - Compilevorgang war erfolgreich...53 Abbildung 68: OpenPLC - Config / Taskübersicht / 99

198 6. Tabellenverzeichnis Tabelle : Technische Daten Retain System...9 Tabelle 2: CODESYS E/A Übersicht für PiXtend V2 -S Tabelle 3: OpenPLC Übersicht Hardwareadressen...55 Tabelle 4: Bits des DigitalOut Bytes...6 Tabelle 5: Bits des RelayOut Bytes...62 Tabelle 6: Bits des GPIOOut Bytes...63 Tabelle 7: PWMXL Byte...64 Tabelle 8: PWMXH Byte...64 Tabelle 9: PWMXL Byte...65 Tabelle : PWMXH Byte...65 Tabelle : PWMAL Byte...67 Tabelle 2: PWMAH Byte...67 Tabelle 3: Bits des PWMAL Bytes...68 Tabelle 4: Bits des PWMAH Bytes...68 Tabelle 5: Bits des PWMXL Bytes...7 Tabelle 6: Bits des PWMXH Byte...7 Tabelle 7: Bits des PWMXL Bytes...72 Tabelle 8: Bits des PWMXH Bytes...72 Tabelle 9: Bits des PWMAL Bytes...74 Tabelle 2: Bits des PWMAH Bytes...74 Tabelle 2: Bits des PWMAL Bytes...75 Tabelle 22: Bits des PWMAH Bytes...75 Tabelle 23: Bits des AnalogOutL Bytes...78 Tabelle 24: Bits des AnalogOutH Bytes...79 Tabelle 25: Bits des DigitalIn Bytes...8 Tabelle 26: AnalogInXL...8 Tabelle 27: Bits des AnalogInXH Bytes...8 Tabelle 28: Bits des GPIOIn Bytes...82 Tabelle 29: TempXL Byte...83 Tabelle 3: TempXH Byte...83 Tabelle 3: HumidXL Byte...85 Tabelle 32: HumidXH Byte...85 Tabelle 33: ModelOut Byte...9 Tabelle 34: Bits des UCMode Bytes...9 Tabelle 35: Bits des UCCtrl Bytes...9 Tabelle 36: Watchdog Einstellung...9 Tabelle 37: Bits des UCCtrl Bytes...93 Tabelle 38: Bits des DigitalInDebounce Bytes...95 Tabelle 39: Bits des DigitalInDebounce23 Bytes...95 Tabelle 4: Bits des DigitalInDebounce45 Bytes / 99

199 Tabelle 4: Bits des DigitalInDebounce67 Bytes...95 Tabelle 42: Bits des GPIOCtrl Bytes...97 Tabelle 43: Bits des GPIODebounce Bytes...98 Tabelle 44: Bits des GPIODebounce23 Bytes...98 Tabelle 45: Bits des PWMCtrl Bytes...99 Tabelle 46: Mode Bits im PWMCtrl Byte...99 Tabelle 47: Prescaler-Bits im PWMCtrl Byte...2 Tabelle 48: PWM Modus...2 Tabelle 49: PWMCtrlL Byte...22 Tabelle 5: PWMCtrlH Byte...22 Tabelle 5: Bits des PWMCtrlL Bytes...26 Tabelle 52: Bits des PWMCtrlH Bytes...26 Tabelle 53: Bits des UCState Bytes...29 Tabelle 54: Aufschlüsselung Error-Bits im UCState Byte...29 Tabelle 55: Bits des UCWarnings Bytes...2 Tabelle 56: LED L Signalisierung / 99

PiXtend mit CODESYS - Installation

PiXtend mit CODESYS - Installation Installation der benötigten Software Komponenten um PiXtend in CODESYS zu programmieren: Installation der CODESYS Entwicklungsumgebung Installation der Raspberry Pi Runtime Erweiterung Installation der

Mehr

PiXtend mit CODESYS Projekt erstellen

PiXtend mit CODESYS Projekt erstellen Erstellen eines neuen CODESYS Projektes. Einbinden von PiXtend als CODESYS Gerät. Erstellung eines einfachen Beispielprogrammes. Erstellen einer einfachen Visualisierung Stand 14.12.2014, V1.00 Qube Solutions

Mehr

Printer Driver. In dieser Anleitung wird die Installation des Druckertreibers für Windows Vista und Windows XP beschrieben.

Printer Driver. In dieser Anleitung wird die Installation des Druckertreibers für Windows Vista und Windows XP beschrieben. 4-153-310-32(1) Printer Driver Installationsanleitung In dieser Anleitung wird die Installation des Druckertreibers für Windows Vista und Windows XP beschrieben. Vor der Verwendung der Software Lesen Sie

Mehr

10.1 Zoll HDMI LCD. Ausgabe Copyright by Joy-IT 1

10.1 Zoll HDMI LCD. Ausgabe Copyright by Joy-IT 1 3 3 10.1 Zoll HDMI LCD Ausgabe 07.12.2016 Copyright by Joy-IT 1 Contents 1. Einführung 2. Halterungsmontage 3. Arbeiten mit dem PC 3.1 Geräte Verbindung 4. Arbeiten mit dem Raspberry Pi 4.1 Geräte Verbindung

Mehr

I2C Serial 2.6 LCD Modul. Verwendung mit einem Arduino

I2C Serial 2.6 LCD Modul. Verwendung mit einem Arduino I2C Serial 2.6 LCD Modul Sehr geehrter Kunde, vielen Dank, dass Sie sich für unser Produktentschieden haben. Im Folgenden haben wir aufgelistet, was bei der Inbetriebnahme zu beachten ist: Verwendung mit

Mehr

Application Note. PiXtend Mikrocontroller Firmware Update. APP-PX-540 Stand 11.11.2015, V1.00

Application Note. PiXtend Mikrocontroller Firmware Update. APP-PX-540 Stand 11.11.2015, V1.00 Application Note PiXtend Mikrocontroller Firmware Update APP-PX-540 Stand 11.11.2015, V1.00 Qube Solutions UG (haftungsbeschränkt) Luitgardweg 18, 71083 Herrenberg, Germany http://www.qube-solutions.de/

Mehr

Einführung in Automation Studio

Einführung in Automation Studio Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in

Mehr

Windows auf einen USb-Stick kopieren

Windows auf einen USb-Stick kopieren Lizenzfuchs Anleitung Windows auf einen USb-Stick kopieren Windows auf einen Lizenzfuchs Anleitung Klicken Sie auf die Windows-Version, die Sie auf Ihren möchten und Sie gelangen zu der entsprechenden

Mehr

SINAMICS Intelligent Operator Panel (IOP)

SINAMICS Intelligent Operator Panel (IOP) SINAMICS Intelligent Operator Panel (IOP) Anweisungen zur Installation der IOP Firmware und Software Ausgabe: Dezember 2013 Technische Änderungen vorbehalten Page Siemens AG 2013 Subject to change without

Mehr

EIBPORT INBETRIEBNAHME MIT DEM BROWSER / JAVA EINSTELLUNGEN / VORBEREITUNGEN AM CLIENT PC

EIBPORT INBETRIEBNAHME MIT DEM BROWSER / JAVA EINSTELLUNGEN / VORBEREITUNGEN AM CLIENT PC EIBPORT INBETRIEBNAHME MIT DEM BROWSER / JAVA EINSTELLUNGEN / VORBEREITUNGEN AM CLIENT PC Falls Sie zur Konfiguration des EIBPORT nicht BAB STARTER sondern den Browser benutzen wollen, und dieser die Ausführung

Mehr

Process: Installationsleitfaden

Process: Installationsleitfaden Inhaltsverzeichnis 1 Einleitung...4 2 Technische Details...5 2.1 Systemvoraussetzungen...5 2.2 Technischer Support...5 3 Installation von Process...6 3.1 Datenbank und Dokument-Wurzelverzeichnis...7 3.2

Mehr

Technical Note Nr

Technical Note Nr Nr. 019186 FnIO-Serie Konfiguration des EtherCAT-Feldbusknoten NA9186 mit CoDeSys Stand: 26.09.2013 Copyright by Wachendorff Prozesstechnik GmbH & Co. KG, Industriestraße 7, D-65366 Geisenheim, Tel.: +49-6722/9965-20,

Mehr

Installationsanleitung

Installationsanleitung Archiv.One Installationsanleitung Version 004.008.022 Juli 2015 Inhaltsverzeichnis Kapitel 1 Installation der Programme... 2 Kapitel 2 Lizenzierung der Novaline Archivierung (Server)... 7 Kapitel 3 Einrichten

Mehr

BASIC-Tiger Starter Kit. Tel: +49 (241) Fax: +49 (241)

BASIC-Tiger Starter Kit. Tel: +49 (241) Fax: +49 (241) BASIC-Tiger Starter Kit Tel: +49 (241) 918 900 Fax: +49 (241) 918 9044 Email: [email protected] 1 2 Wilke Technology GmbH Krefelder Str. 147 52070 Aachen Germany BASIC-Tiger Starter Kit Willkommen beim BASIC-Tiger

Mehr

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version 2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version Das Verwaltungsmodul moveon besteht aus zwei Komponenten: dem moveon Client und der moveon Datenbank. Der moveon Client enthält alle Formulare,

Mehr

Anleitung Canton musicbox XS/S Firmware-Update

Anleitung Canton musicbox XS/S Firmware-Update Anleitung Canton musicbox XS/S Firmware-Update Achtung! Verbinden Sie die musicbox nicht mit dem PC bevor Sie den mit der Software mitgelieferten USB Treiber installiert haben, da in diesem Falle ein falscher

Mehr

MAN After Sales Portal

MAN After Sales Portal MAN Service MAN After Sales Portal Dieser Quick-Guide unterstützt Sie bei der Installation der Prüf- und Diagnosesoftware MAN-cats III sowie der Inbetriebnahme des MAN Vehicle Communication Interface T200.

Mehr

Immo Meets Office Easy Office Storage Easy Outlook Storage Handbuch

Immo Meets Office Easy Office Storage Easy Outlook Storage Handbuch Immo Meets Office Easy Office Storage Easy Outlook Storage Handbuch 1 2 Inhaltsverzeichnis 1 Systemvoraussetzungen... 3 2 Vor der Installation... 3 3 Installation... 3 3.1 Voraussetzungen... 4 3.2 Installationsbeginn...

Mehr

Installations-Anleitung zur LEICA D-LUX 4 - Firmware 2.2

Installations-Anleitung zur LEICA D-LUX 4 - Firmware 2.2 Installations-Anleitung zur LEICA D-LUX 4 - Firmware 2.2 Sehr geehrte Kunden, Durch die Installation der neuen Firmware können Sie die Funktionen der LEICA D-LUX 4 in den verschiedenen genannten Bereichen

Mehr

Citrix Zugang Inhaltsverzeichnis

Citrix Zugang Inhaltsverzeichnis Citrix Zugang Inhaltsverzeichnis Inhaltsverzeichnis... 1 1. Deinstallieren des Citrix Online Plug-in :... 2 2. Installieren des Citrix Receivers :... 5 3. Anmelden an das Citrix Portal... 8 4. Drucken

Mehr

Lehrstuhl für betriebswirtschaftliche Informationssysteme Prof. Dr. Joachim Fischer. Installationsanleitung SAPGUI

Lehrstuhl für betriebswirtschaftliche Informationssysteme Prof. Dr. Joachim Fischer. Installationsanleitung SAPGUI Lehrstuhl für betriebswirtschaftliche Informationssysteme Prof. Dr. Joachim Fischer Installationsanleitung SAPGUI 1 Inhaltsverzeichnis Page 1 Einleitung 3 2 Download 3 3 Installation 4 3.1 GUI-Installation............................

Mehr

Um mit dem Dialogpost-Manager effektiv arbeiten zu können, sollte Ihr PC folgende Mindestvoraussetzungen erfüllen:

Um mit dem Dialogpost-Manager effektiv arbeiten zu können, sollte Ihr PC folgende Mindestvoraussetzungen erfüllen: Installationsanleitung Dialogpost-Manager Um mit dem Dialogpost-Manager effektiv arbeiten zu können, sollte Ihr PC folgende Mindestvoraussetzungen erfüllen: RAM-Speicher: mind. 2 GB Speicher Festplatte:

Mehr

AutoRunnerX / AutoRunnerU Kurzanleitung

AutoRunnerX / AutoRunnerU Kurzanleitung AutoRunnerX / AutoRunnerU Kurzanleitung AutoRunnerX und AutoRunnerU sind Autostart-Erweiterungen für Windows (32/64 Bit). Im Gegensatz zur Autorun-Funktionalität in Windows können mit diesen Tools gezielte

Mehr

secuentry/anleitung IOS ConfigApp

secuentry/anleitung IOS ConfigApp Beschreibung Kostenlose App zum Programmieren von Schlössern der Serie secuentry der Firma BURG- WÄCHTER. Mit der exklusiven secuentry PC-Software (Light, System, System+) administrieren Sie bequem komplette

Mehr

Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS)

Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS) Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS) Dieses Handbuch hilft Anwendern, ihren RadarOpus Dongle (Kopierschutz) auf einem anderen Computer zu aktivieren,

Mehr

P-touch Editor starten

P-touch Editor starten P-touch Editor starten Version 0 GER Einführung Wichtiger Hinweis Der Inhalt dieses Dokuments sowie die Spezifikationen des Produkts können jederzeit ohne vorherige Ankündigung geändert werden. Brother

Mehr

HILFE Datei. UPC Online Backup

HILFE Datei. UPC Online Backup HILFE Datei UPC Online Backup Inhalt Login Screen......? Welcome Screen:......? Manage Files Screen:...? Fotoalbum Screen:.........? Online backup Client Screen...? Frequently Asked Questions (FAQ s)...?

Mehr

CRecorder Bedienungsanleitung

CRecorder Bedienungsanleitung CRecorder Bedienungsanleitung 1. Einführung Funktionen Der CRecorder zeichnet Istwerte wie unter anderem Motordrehzahl, Zündzeitpunkt, usw. auf und speichert diese. Des weiteren liest er OBDII, EOBD und

Mehr

TeamViewer Handbuch Wake-on-LAN

TeamViewer Handbuch Wake-on-LAN TeamViewer Handbuch Wake-on-LAN Rev 11.1-201601 TeamViewer GmbH Jahnstraße 30 D-73037 Göppingen www.teamviewer.com Inhaltsverzeichnis 1 Über Wake-on-LAN 3 2 Voraussetzungen 5 3 Windows einrichten 6 3.1

Mehr

Installation des Citrix Receiver v1.2 Manuelles Upgrade auf die neuste Version

Installation des Citrix Receiver v1.2 Manuelles Upgrade auf die neuste Version Installation des Citrix Receiver v1.2 Manuelles Upgrade auf die neuste Version Inhaltsverzeichnis 1 Informationen... 3 2 Herunterladen der neusten Version... 3 2.1 Im Internet Explorer:... 3 2.2 Im Firefox:...

Mehr

Anbindung eines WAGO Ethernet Kopplers an ifix V2.1 von Intellution Anwendungshinweis

Anbindung eines WAGO Ethernet Kopplers an ifix V2.1 von Intellution Anwendungshinweis Anbindung eines WAGO Ethernet Kopplers 750-342 an ifix V2.1 von Intellution, Deutsch Version 1.0.0 ii Allgemeines Copyright 2001 by WAGO Kontakttechnik GmbH Alle Rechte vorbehalten. WAGO Kontakttechnik

Mehr

Anleitung Canton musicbox XS/S Firmware-Update

Anleitung Canton musicbox XS/S Firmware-Update Anleitung Canton musicbox XS/S Firmware-Update Achtung! Verbinden Sie die musicbox nicht mit dem PC bevor Sie den mit der Software mitgelieferten USB Treiber installiert haben, da in diesem Falle ein falscher

Mehr

HorstBox (DVA-G3342SD)

HorstBox (DVA-G3342SD) HorstBox (DVA-G3342SD) Anleitung zur Einrichtung des USB Speichers an der HorstBox (DVA-G3342SD) Vorausgesetzt, Sie sind mit der HorstBox verbunden (LAN oder WLAN) und die HorstBox ist mit dem mitgelieferten

Mehr

Bedienungsanleitung. FarmPilot-Uploader

Bedienungsanleitung. FarmPilot-Uploader Bedienungsanleitung FarmPilot-Uploader Stand: V1.20110818 31302736-02 Lesen und beachten Sie diese Bedienungsanleitung. Bewahren Sie diese Bedienungsanleitung für künftige Verwendung auf. Impressum Dokument

Mehr

Handbuch Alpha11 Pager-Software

Handbuch Alpha11 Pager-Software Handbuch Alpha11 Pager-Software Dieses Handbuch beschreibt die Installation, sowie die Funktionen der Pager-Software. Sollte die Pager-Software bereits installiert sein, können Sie gleich auf die Funktions-Beschreibung

Mehr

Kurzanleitung für Windows-Computer - IPC-10 AC

Kurzanleitung für Windows-Computer - IPC-10 AC Kurzanleitung für Windows-Computer - IPC-10 AC Auspacken Packen Sie die Überwachungskamera vorsichtig aus und prüfen Sie, ob alle der nachfolgend aufgeführten Teile enthalten sind: 1. MAGINON IPC-10 AC

Mehr

Kartenupdate Europa 2016 für FN11 FN13

Kartenupdate Europa 2016 für FN11 FN13 Kartenupdate Europa 2016 für FN11 FN13 Bitte beachten Sie die technischen Voraussetzungen für die Nutzung dieses Download-Produktes: PC mit WinXP, Windows Vista, Windows 7, Windows 8 oder Windows 10 und

Mehr

City Navigator Update

City Navigator Update 48 15 00 N 11 38 04 E City Navigator Update Aktualisierung des vorinstallierten Kartenmaterials auf einem Garmin GPS-Empfänger Installation Garmin Deutschland GmbH Parkring 35 D-85748 Garching bei München

Mehr

EX Slot PCI Box Zur Erweiterung um 4 PCI Anschlüsse für ExpressCard

EX Slot PCI Box Zur Erweiterung um 4 PCI Anschlüsse für ExpressCard Bedienungsanleitung EX-1015 4 Slot PCI Box Zur Erweiterung um 4 PCI Anschlüsse für ExpressCard V1.1 15.03.13 EX-1015 4 Slot PCI-Erweiterung Inhaltsverzeichnis 1. BESCHREIBUNG 3 2. LAYOUT 3 3. HARDWARE

Mehr

Web-IO als Schaltuhr

Web-IO als Schaltuhr Web-IO als Schaltuhr Das ausführliche Referenzhandbuch mit allen Funktionen zum Web-IO finden Sie auf der beiliegenden Produkt CD Release 3.20, August 2010 Typ 57637 W&T ab Firmware 3.20 5.13 Time Switch

Mehr

Installationsanleitung - Command WorkStation 5.6 mit Fiery Extended Applications 4.2

Installationsanleitung - Command WorkStation 5.6 mit Fiery Extended Applications 4.2 Installationsanleitung - Command WorkStation 5.6 mit Fiery Extended Applications 4.2 Das Softwarepaket Fiery Extended Applications Package v4.2 enthält Fiery Anwendungsprogramme, mit denen Sie bestimmte

Mehr

GloboFleet. Bedienungsanleitung CardControl V2

GloboFleet. Bedienungsanleitung CardControl V2 GloboFleet Bedienungsanleitung CardControl V2 Bedienungsanleitung CardControl V2 Vielen Dank, dass Sie sich für die GloboFleet CC Software entschieden haben. Mit der GloboFleet CC Software erhalten Sie

Mehr

Flychart Software Installation auf einem Windows PC

Flychart Software Installation auf einem Windows PC Schliessen Sie das Fluginstrument nicht am PC an, solange Sie die Software- Installation unter Schritt 2 nicht abgeschlossen haben. Die Software ist für folgende Microsoft Betriebssysteme ausgelegt: Windows

Mehr

Anbindung WAGO Ethernet Controller über Modbus TCP an Siemens WinCC Anwendungshinweis

Anbindung WAGO Ethernet Controller über Modbus TCP an Siemens WinCC Anwendungshinweis Anbindung WAGO Ethernet Controller 750-842 über Modbus TCP an Siemens WinCC, Deutsch Version 1.0.0 2 Allgemeines Copyright 2003 by WAGO Kontakttechnik GmbH Alle Rechte vorbehalten. WAGO Kontakttechnik

Mehr

Mach 4 INSTALLATION. Mach4 Fräsen. Seite 01. CNC-Steuerung.com. Installation Mach4 der Firma CNC-Steuerung.com Bocholt

Mach 4 INSTALLATION. Mach4 Fräsen. Seite 01. CNC-Steuerung.com. Installation Mach4 der Firma CNC-Steuerung.com Bocholt Seite 01 Mach 4 INSTALLATION Installation Mach4 der Firma CNC-Steuerung.com Bocholt CNC-Steuerung.com Tel. 02871-4891917 Jerichostraße 28 46399 Bocholt [email protected] Seite 02 Seite 03 Mach4

Mehr

Benutzer Handbuch fitmefit Gateway

Benutzer Handbuch fitmefit Gateway Benutzer Handbuch fitmefit Gateway HMM Diagnostics GmbH Friedrichstr. 89 69221 Dossenheim (Germany) www.hmm.info Seite 1 von 35 Inhalt Seite 1 Einleitung... 3 2 Aufgabe des Gateways... 3 3 Installation...

Mehr

Installieren und Einrichten von VirtualBox für TAPPS (V1.0)

Installieren und Einrichten von VirtualBox für TAPPS (V1.0) Installieren und Einrichten von VirtualBox für TAPPS (V1.0) 1 Einleitung... 2 2 Download und Installation... 2 3 Einrichten von VirtualBox am Beispiel Windows XP... 7 4 Einrichten von Windows XP... 26

Mehr

Installationsanleitung VirusBuster Internet Security Suite

Installationsanleitung VirusBuster Internet Security Suite Installationsanleitung VirusBuster Internet Security Suite Wichtiger Hinweis! Bevor Sie die VirusBuster Internet Security Suite installieren, sollten Sie sicher gehen dass keinerlei andere Sicherheitssoftware

Mehr

Cisco AnyConnect VPN Client - Anleitung für Windows XP

Cisco AnyConnect VPN Client - Anleitung für Windows XP Cisco AnyConnect VPN Client - Anleitung für Windows XP 1 Allgemeine Beschreibung 2 2 Übersicht der notwendigen Schritte für Installation und Verwendung 2 3 Voraussetzungen für VPN Verbindungen mit Cisco

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Einrichtung des Internetzugangs unter

Einrichtung des Internetzugangs unter Einrichtung des Internetzugangs unter Bevor Sie den Internetzugang einrichten, ist entscheidend, ob Sie an das Netzwerk per LAN-Kabel gebunden sind oder das System per WLAN (Wireless) nutzen wollen. An

Mehr

How-To-Do. PPC mit WES7 Image Update

How-To-Do. PPC mit WES7 Image Update How-To-Do PPC mit WES7 Image Update Inhaltsverzeichnis 1 Allgemein... 2 1.1 Information... 2 1.2 Hinweis... 2 2 Vorbereitung für das Update... 3 2.1 Download der Image Datei... 3 3 USB Stick für Update

Mehr

SOLBoot: Firmware-Updateprogramm für SOLPLUS 25-55

SOLBoot: Firmware-Updateprogramm für SOLPLUS 25-55 Solutronic Energy GmbH Kelterstr. 59 72669 Unterensingen Germany SOLBoot: Firmware-Updateprogramm für SOLPLUS 25-55 SOLBoot: Firmware-Updateprogramm für SOLPLUS 25-55 Version 2.2 für Wechselrichter SOLPLUS

Mehr

Inhalt Einleitung Anmelden Registrieren Ein Konto erstellen Ihr Konto aktivieren Login...

Inhalt Einleitung Anmelden Registrieren Ein Konto erstellen Ihr Konto aktivieren Login... Inhalt Einleitung... 2 1. Anmelden... 2 1.1. Registrieren... 2 1.1.1. Ein Konto erstellen... 2 1.1.2. Ihr Konto aktivieren... 4 1.2. Login... 4 2. Große Dateien online versenden.... 5 2.1. Einstellen weiterer

Mehr

JUNG Facility-Pilot Visualisierungs-Server Version 2.2

JUNG Facility-Pilot Visualisierungs-Server Version 2.2 Inhalt: JUNG Facility-Pilot Visualisierungs-Server Version 2.2 1 TECHNISCHE VORAUSSETZUNGEN...2 1.1 HARDWARE...2 1.2 BETRIEBSSYSTEME...2 1.3 SOFTWARE...2 1.4 CLIENT/BROWSER EINSTELLUNGEN...2 2 ERSTER START...3

Mehr

disigner Bedienungsanleitung Version 1.0, 26. Mai 2010

disigner Bedienungsanleitung Version 1.0, 26. Mai 2010 www.egiz.gv.at E- Mail: [email protected] Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria disigner Bedienungsanleitung Version 1.0, 26. Mai 2010 Inhaltsverzeichnis:

Mehr

Kurzanleitung. 29. Februar 2008 2. Oktober 2008 Update. APtool-Kurzanleitung-V1_2_DE Seite 1 von 8

Kurzanleitung. 29. Februar 2008 2. Oktober 2008 Update. APtool-Kurzanleitung-V1_2_DE Seite 1 von 8 Kurzanleitung 29. Februar 2008 2. Oktober 2008 Update APtool-Kurzanleitung-V1_2_DE Seite 1 von 8 Inhalt INHALT... 2 EINFÜHRUNG... 3 VORBEREITUNG... 3 LIZENZIERUNG... 3 PROJEKT LIZENZEN... 4 GENERIERUNG

Mehr

Innovator for Model Sketching. Kurzanleitung zu Installation und Benutzung

Innovator for Model Sketching. Kurzanleitung zu Installation und Benutzung Kurzanleitung zu Installation und Benutzung Inhaltsverzeichnis Installation... 3 Systemvoraussetzungen... 3 Innovator for Model Sketching herunterladen... 3 Innovator for Model Sketching einrichten...

Mehr

EdisionTipps: Upgrade Software Edision Receiver argus HD

EdisionTipps: Upgrade Software Edision Receiver argus HD EdisionTipps: Upgrade Software Edision Receiver argus HD Voraussetzungen Sie haben einen Edision Digitalreceiver vom Typ argus sowie ein Nullmodem-Kabel, einen Windows- PC mit Internet-Anschluss und 20

Mehr

Technische Dokumentation. TopMessage / TopLab Hardware MessHaus Softwarekomponenten SPS

Technische Dokumentation. TopMessage / TopLab Hardware MessHaus Softwarekomponenten SPS Delphin Technology AG Sülztalstraße 23 D 51491 Overath-Brombach Tel: ++49 2207 9645 0 Fax: ++49 2207 9645 35 Technische Dokumentation TopMessage / TopLab Hardware MessHaus Softwarekomponenten SPS Ergänzende

Mehr

Installationsablauf ReNoStar Version 12.011.0 für Internetdownload Actionpack März 2016

Installationsablauf ReNoStar Version 12.011.0 für Internetdownload Actionpack März 2016 2 Installationsablauf ReNoStar Version 12.011.0 für Internetdownload 1. Nachfolgende Punkte sind verbindlich zu beachten, bevor mit der eigentlichen Installation des Actionpacks 12.011.0 begonnen wird:

Mehr

Handbuch. SIS-Handball Setup

Handbuch. SIS-Handball Setup Handbuch SIS-Handball Setup GateCom Informationstechnologie GmbH Am Glockenturm 6 26203 Wardenburg Tel. 04407 / 3141430 Fax: 04407 / 3141439 E-Mail: [email protected] Support: www.gatecom.de/wiki I. Installation

Mehr

Installationsanleitung

Installationsanleitung Installationsanleitung AutoClick, ClickReader, ClickWizard, ClickScanner ab V4.5 Inhaltsverzeichnis 1. Voraussetzungen... 3 2. Download und Vorbereitung... 4 3. Entpacken der Software... 5 4. Installation

Mehr

Einführung in WEB 3.0

Einführung in WEB 3.0 Einführung in WEB 3.0 Unser Angebot unter http://www.netexx.com, bzw. unter http://w3.netexx.com bietet Ihnen eine Vielzahl von Möglichkeiten, einen virtuellen Arbeitsplatz online zu nutzen. Diese kleine

Mehr

Fernwartung mit TeamViewer

Fernwartung mit TeamViewer Fernwartung mit TeamViewer Version 1.2, 05.03.2016 DE NUR FÜR INTERNEN GEBRAUCH Die Informationen in diesem Dokument sind für internen Gebrauch bestimmt und dürfen nur direkten und indirekten Kunden von

Mehr

myavr Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg für myavr Board MK3

myavr Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg für myavr Board MK3 myavr Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg für myavr Board MK3 Zielstellung Dieser Schnelleinstieg demonstriert das Arbeiten mit dem Klassendiagramm in SiSy AVR mit der Bibliothek für das

Mehr

adsl Privat unter Windows 98 SE

adsl Privat unter Windows 98 SE Installationsanleitung adsl Privat unter Windows 98 SE - 1 - adsl Privat mit Ethernet-Modem unter Windows 98 SE Sie benötigen für die Installation folgende Elemente: - Alcatel Ethernet-Modem - Splitter

Mehr

Handbuch zum VivaWeb-Serienbrief-Programm

Handbuch zum VivaWeb-Serienbrief-Programm Handbuch zum VivaWeb-Serienbrief-Programm In 10 Schritten zum Serienbrief Das folgende Handbuch erläutert Ihnen die Nutzungsmöglichkeiten des ARV Serienbrief-Programms in all seinen Einzelheiten. Dieses

Mehr

Installationshandbuch zum FAX L-Treiber

Installationshandbuch zum FAX L-Treiber Deutsch Installationshandbuch zum FAX L-Treiber User Software CD-ROM.................................................................. 1 Treiber und Software.............................................................................

Mehr

Installations- & Konfigurationsanleitung

Installations- & Konfigurationsanleitung Installations- & Konfigurationsanleitung Inhaltsverzeichnis Voraussetzungen... 3 Installation... 4 Schritt für Schritt... 4 Administrationsanleitung... 5 NABUCCO Groupware Rollen... 5 Konfiguration - Schritt

Mehr

TOUCH DISPLAY DOWNLOADER BEDIENUNGSANLEITUNG

TOUCH DISPLAY DOWNLOADER BEDIENUNGSANLEITUNG LCD FARBMONITOR TOUCH DISPLAY DOWNLOADER BEDIENUNGSANLEITUNG Version 1.0 Geeignet für die Modelle (Stand: Januar 2016) PN-60TW3/PN-70TW3/PN-80TC3/PN-L603W/PN-L703W/PN-L803C (Nicht alle Modelle sind in

Mehr

Normfall 7. Kurzanleitung. Parallelbetrieb von Normfall 5 und Normfall 7 auf demselben Computer Normfall GmbH Alle Rechte vorbehalten.

Normfall 7. Kurzanleitung. Parallelbetrieb von Normfall 5 und Normfall 7 auf demselben Computer Normfall GmbH Alle Rechte vorbehalten. Normfall 7 Kurzanleitung Parallelbetrieb von Normfall 5 und Normfall 7 auf demselben Computer 2013 Normfall GmbH Alle Rechte vorbehalten. 15.10.2013 Vorbemerkungen Während der Umstellungs- und Migrationsphase

Mehr

Installationsanleitung

Installationsanleitung Installationsanleitung Version: 1.2 emotions AG Wien, Jänner 2006 Version 1.2 Datum: 24.01.2006 Seite 1 von 13 Installationsanleitung Systemvoraussetzungen Folgende Systemvoraussetzungen müssen erfüllt

Mehr

Anleitung für Fachlehrkräfte zur

Anleitung für Fachlehrkräfte zur Seite 1/15!!! WICHTIG!!! Es wird JEDER Fachlehrkraft empfohlen, die Reihenfolge der Erste Schritte Anleitung genau und vollständig einzuhalten. Meine Kundennummer: Meine Schulnummer: Mein Passwort: 1.

Mehr

1. Allgemeine Hinweise

1. Allgemeine Hinweise Anleitung Firmware-Update testo 380 und testo 330 1. Allgemeine Hinweise Das Firmware-Update des testo 380 Messsystems umfasst die Aktualisierung der folgenden Komponenten: testo 330-2 LL v2006 graues

Mehr

Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows

Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows TSM-Service 14.09.2016 1 Inhaltsverzeichnis 1. INSTALLATION 3 2. KONFIGURATION 9 3. EINRICHTUNG DER TSM-DIENSTE ZUR AUTOMATISCHEN SICHERUNG

Mehr

CPK-Terminal Bedienungsanleitung

CPK-Terminal Bedienungsanleitung CPK-Terminal Bedienungsanleitung 1. Software Installation Führen Sie die Setup -Datei aus, die sich auf der DYNTEST-CD befindet. Wählen Sie Ihre Sprache und drücken dann den OK -Button, woraufhin die Installationsvorbereitung

Mehr

Installationsanleitung

Installationsanleitung MCS-Inkasso für Energielieferung ID-No. EE.DS.ENE.10.D2.B Installationsanleitung Ausgabe: 1326 www.elektron.ch Elektron AG CH-8804 Au ZH Inhalt 1 Allgemeines zu dieser Anleitung... 3 2 Anforderungen an

Mehr

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29)

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) Dieses Dokument beschreibt das Herunterladen der Serversoftware, die Installation und Konfiguration der Software. Bevor mit der Migration der

Mehr

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE-84508 Burgkirchen E-Mail: [email protected] Web: www.weinzierl.

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE-84508 Burgkirchen E-Mail: info@weinzierl.de Web: www.weinzierl. Installations- und Bedienanleitung DE-84508 Burgkirchen E-Mail: [email protected] Web: www.weinzierl.de 2013-08-12 Seite 1/6 Inhaltsverzeichnis 1. BESCHREIBUNG... 3 2. SYSTEMVORAUSSETZUNGEN... 3 3. INSTALLATION...

Mehr

Installationsanleitung für Internet Security. Inhalt

Installationsanleitung für Internet Security. Inhalt Installationsanleitung für Internet Security Inhalt 1 Systemanforderungen für Internet Security...2 2 Internet Security (Version mit Abonnement) auf einem Computer installieren...3 3 Internet Security

Mehr

1. Installationshinweise

1. Installationshinweise Sehr geehrte Kunden, vielen Dank, dass Sie sich für ArCon Eleco entschieden haben. Wir möchten Ihnen im Folgenden einige Informationen zur Installation und zum Support an die Hand geben. 1. Installationshinweise

Mehr

Anleitung. Neuinstallation EBV Einzelplatz

Anleitung. Neuinstallation EBV Einzelplatz Anleitung Neuinstallation EBV Einzelplatz Zeichenerklärung Möglicher Handlungsschritt, vom Benutzer bei Bedarf auszuführen Absoluter Handlungsschritt, vom Benutzer unbedingt auszuführen Rückmeldung auf

Mehr

F-Secure Antivirus 2011

F-Secure Antivirus 2011 F-Secure Antivirus 2011 Neuinstallation und Konfiguration Kundenanleitung Version: 1.1 Letzte Änderung: 18.01.2013 Atos IT Solutions and Services GmbH Lyoner Str. 27 D - 60528 Frankfurt am Main 2013 Atos

Mehr

DIGISKY Firmware Update mit der SkyRefresh Software

DIGISKY Firmware Update mit der SkyRefresh Software DIGISKY Firmware Update mit der SkyRefresh Software Mit SkyRefresh bietet Ihnen die GOSSEN Foto- und Lichtmesstechnik GmbH (GOSSEN) ein Programm (Software) an, mit dem Sie über Ihren Computer (PC) die

Mehr

- Tau-Office UNA - Setup Netzwerkinstallation. * Der griechische Buchstabe T (sprich Tau ) steht für Perfektion. Idee und Copyright: rocom GmbH

- Tau-Office UNA - Setup Netzwerkinstallation. * Der griechische Buchstabe T (sprich Tau ) steht für Perfektion. Idee und Copyright: rocom GmbH - Tau-Office UNA - Setup Netzwerkinstallation * Der griechische Buchstabe T (sprich Tau ) steht für Perfektion. Idee und Copyright: rocom GmbH Eichenstraße 8a, 83083 Riedering Zentrale: 08036/94 20 Hotline:

Mehr

Ergänzung zur Bedienungsanleitung: Wahl der Betriebsart mittels IO-Link-Schnittstelle. SAxxxx / / 2016

Ergänzung zur Bedienungsanleitung: Wahl der Betriebsart mittels IO-Link-Schnittstelle. SAxxxx / / 2016 Ergänzung zur Bedienungsanleitung: Wahl der Betriebsart mittels IO-Link-Schnittstelle DE SAxxxx 706416 / 00 05 / 2016 Inhalt 1 Vorbemerkung...2 2 Betriebsarten...3 3 Betriebsartenwahl mit Memory Plug E30398...3

Mehr

Berechtigungsverwalter 1.0 Installationsanleitung

Berechtigungsverwalter 1.0 Installationsanleitung Berechtigungsverwalter 1.0 Installationsanleitung Copyright Copyright 2008-2012 SharePointBoost Co., Ltd. Alle Rechte vorbehalten. Alle in dieser Veröffentlichung enthaltenen Informationen sind urheberrechtlich

Mehr

Anleitung: DV4Mini auf einem Raspberry Pi

Anleitung: DV4Mini auf einem Raspberry Pi Anleitung: DV4Mini auf einem Raspberry Pi Präambel OE7BSH Diese Anleitung wurde am 8. September 2015 nach aktuellen release Status (DV4Mini 1.4) erstellt. Nachdem der DV4Mini quasi work in progress ist,

Mehr

Flexi Soft Ethernet IP: Implicit Messaging mit einer Omron SPS

Flexi Soft Ethernet IP: Implicit Messaging mit einer Omron SPS O N L I N E - H I L F E Flexi Soft Ethernet IP: Implicit Messaging mit einer Omron SPS s D Online Hilfe Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte bleiben bei der Firma

Mehr

Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle

Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle Version 1.3.11 vom 22.11.2016 Haftungsausschluss Die Firma PA-Konzepte GbR übernimmt keinerlei Support, Garantie und keine Verantwortung

Mehr

Raspberry Pi 7 Touch-Display mit PiXtend und CODESYS

Raspberry Pi 7 Touch-Display mit PiXtend und CODESYS Raspberry Pi 7 Touch-Display mit PiXtend und CODESYS Vor wenigen Tagen hat das offizielle Raspberry Pi Touchscreen Display das Licht der Welt erblickt. Wir konnten uns auch nicht zurückhalten und haben

Mehr

Handbuch_Seite 2 Inhalt Markenzeichen 3 Packungsinhalt 3 Hardware Anforderungen 3 System Support 3 Installation des Kartenlesers 4 Pinbelegung der Kab

Handbuch_Seite 2 Inhalt Markenzeichen 3 Packungsinhalt 3 Hardware Anforderungen 3 System Support 3 Installation des Kartenlesers 4 Pinbelegung der Kab Handbuch 3.5" Multi Front Panel mit Card Reader 30plus deutsch Handbuch_Seite 2 Inhalt Markenzeichen 3 Packungsinhalt 3 Hardware Anforderungen 3 System Support 3 Installation des Kartenlesers 4 Pinbelegung

Mehr

TOOLS for CC121 Installationshandbuch

TOOLS for CC121 Installationshandbuch TOOLS for CC121 shandbuch Informationen Diese Software und dieses shandbuch sind im Sinne des Urheberrechts alleiniges Eigentum der Yamaha Corporation. Das Kopieren der Software und die Reproduktion dieser

Mehr

Programm erstellen. TIA Portal. SIMATIC Programm erstellen. Bausteinbibliothek laden 1. Programmbaustein Main [OB1] löschen

Programm erstellen. TIA Portal. SIMATIC Programm erstellen. Bausteinbibliothek laden 1. Programmbaustein Main [OB1] löschen Bausteinbibliothek laden 1 Programmbaustein Main [OB1] löschen 2 TIA Portal SIMATIC Getting Started Programmbausteine kopieren 3 Variablentabellen kopieren 4 Projekt übersetzen 5 Projekt in die CPU laden

Mehr

Administrator-Anleitung

Administrator-Anleitung Administrator-Anleitung für die Typ 1 Installation der LEC-Web-Anwendung auf einem Microsoft Windows XP / VISTA Rechner (Einzelplatz) Ansprechpartner für Fragen zur Software: Zentrum für integrierten Umweltschutz

Mehr

Pfarrpaket Ersteinstieg Citrix NetScaler Gateway

Pfarrpaket Ersteinstieg Citrix NetScaler Gateway Pfarrpaket Ersteinstieg Citrix NetScaler Gateway Anleitung für den Ersteinstieg über das neue Citrix-Portal ab 16.März 2016 mittels Token-Gerät Voraussetzungen Für den Zugang auf das Diözesane Terminalserversystem

Mehr

Anlagen-Anschluss Plus. Kurzanleitung für die Installation des Thomson Modem

Anlagen-Anschluss Plus. Kurzanleitung für die Installation des Thomson Modem Anlagen-Anschluss Plus Kurzanleitung für die Installation des Thomson Modem Anlagen-Anschluss Plus Version vom 22.10.2012 Inhalt Seite 1. Einleitung 04-05 2. Verkabelung 06-07 3. Einrichtung PC / Laptop

Mehr

Anleitung Firmware-Update testo 380 und testo 330

Anleitung Firmware-Update testo 380 und testo 330 Anleitung Firmware-Update testo 380 und testo 330 1. Allgemeine Hinweise Das Firmware-Update des Messsystems testo 380 umfasst die Aktualisierung der folgenden Komponenten: testo 330-2 LL v2006 graues

Mehr