books
SPS-Programmierung mit dem Raspberry Pi und dem OpenPLC-Projekt ModbusRTU- und ModbusTCP-Beispiele mit dem Arduino Uno und ESP8266
Josef Bernhardt
SPS-Programmierung mit dem Raspberry Pi und dem OpenPLC-Projekt Einführung in die SPS-Programmierung mit dem Open-Source-Projekt ModbusRTU- und ModbusTCP-Beispiele mit dem Arduino Uno und ESP8266
● Josef Bernhardt
●
© 2021: Elektor Verlag GmbH, Aachen.
●
Alle Rechte vorbehalten.
1. Auflage 2021
Die in diesem Buch veröffentlichten Beiträge, insbesondere alle Aufsätze und Artikel sowie alle Entwürfe, Pläne, Zeichnungen und Illustrationen sind urheberrechtlich geschützt. Ihre auch auszugsweise Vervielfältigung und Verbreitung ist grundsätzlich nur mit vorheriger schriftlicher Zustimmung des Herausgebers gestattet. Die Informationen im vorliegenden Buch werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Die in diesem Buch erwähnten Soft- und Hardwarebezeichnungen können auch dann eingetragene Warenzeichen sein, wenn darauf nicht besonders hingewiesen wird. Sie gehören dem jeweiligen Warenzeicheninhaber und unterliegen gesetzlichen Bestimmungen. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autor können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für die Mitteilung eventueller Fehler sind Verlag und Autor dankbar.
●
Erklärung
Der Autor und der Herausgeber dieses Buches haben alle Anstrengungen unternommen, um die Richtigkeit der in diesem Buch enthaltenen Informationen sicherzustellen. Sie übernehmen keine Haftung für Verluste oder Schäden, die durch Fehler oder Auslassungen in diesem Buch verursacht werden, unabhängig davon, ob diese Fehler oder Auslassungen auf Fahrlässigkeit, Unfall oder andere Ursachen zurückzuführen sind. Umschlaggestaltung: Elektor, Aachen Satz und Aufmachung: D-Vision, Julian van den Berg | Oss (NL) Druck: Ipskamp Printing, Enschede, Niederlande
● I SBN
978-3-89576-439-4
Ebook 978-3-89576-440-0
Elektor-Verlag GmbH, Aachen www.elektor.de
Elektor ist Teil der Unternehmensgruppe Elektor International Media (EIM), der weltweit wichtigsten Quelle für technische Informationen und Elektronik-Produkte für Ingenieure und Elektronik-Entwickler und für Firmen, die diese Fachleute beschäftigen. Das internationale Team von Elektor entwickelt Tag für Tag hochwertige Inhalte für Entwickler und DIYElektroniker, die über verschiedene Medien (Magazine, Videos, digitale Medien sowie Social Media) in zahlreichen Sprachen verbreitet werden. www.elektor.de
●4
Inhalt Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Kapitel 1 • Installation des Raspberry Pi 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1 Hardwarebeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Installation des Betriebssystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3 Installation des VNC Viewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4 Installation der File Transfer Software WinSCP . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.5 Installation der openplcproject-Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Kapitel 2 • Installation des OpenPLC-Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.1 Download und Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.2 Pin-Beschreibung des Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.3 Zusätzliche Hardware E/A Testboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.4 Zusätzliche Hardware 24V-SPS-Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Kapitel 3 • Der OpenPLC-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.1 Beschreibung des OpenPLC-Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.2 Kontaktplan Beispiel (KOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.3 Funktionsbaustein Beispiel (FUP, FBD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.4 Anweisungsliste Beispiel (AWL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.5 Strukturierter-Text-Beispiele (ST, SCL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.5.1 Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.5.2 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.5.3 Konvertierungsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.5.4 Standardfunktionsbausteine nach IEC 61131-3 . . . . . . . . . . . . . . . . . . . . 84
3.5.5 Erstes Programmbeispiel ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.5.6 ST-Beispiel zum Ansteuern eines Förderbandes . . . . . . . . . . . . . . . . . . . . 88
3.5.7 Definieren von Arrays mit dem OpenPLC-Editor . . . . . . . . . . . . . . . . . . . . 91
3.5.8 Definieren von Strukturen mit dem OpenPLC-Editor . . . . . . . . . . . . . . . . . 95
3.5.9 Kombination von Strukturen mit Arrays mit dem OpenPLC-Editor . . . . . . . 98
3.5.10 Definition von ENUMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.6 Ablaufsprache-Beispiel (AS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Kapitel 4 • OpenPLC und der Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.1 Testen von SPS-Programmen mit Modbus-TCP . . . . . . . . . . . . . . . . . . . . . . . . . 113
●5
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt 4.2 Visualisieren von SPS-Programmen mit AdvancedHMI . . . . . . . . . . . . . . . . . . . . 122 4.3 Visualisieren von SPS-Programmen übers Internet . . . . . . . . . . . . . . . . . . . . . . 131 Kapitel 5 • Modbus E/A Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 5.1 Modbus RTU Modul mit dem Arduino Uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 5.2 Modbus-TCP Modul mit dem ESP8266 und WLAN . . . . . . . . . . . . . . . . . . . . . . . 150 5.3 Webserver Anwendung mit dem ESP8266-E/A-Modul . . . . . . . . . . . . . . . . . . . . 159 Kapitel 6 • Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.1 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.2 Weblinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 6.3 Modbus-Kommandos für das ESP8266-E/A-Modul . . . . . . . . . . . . . . . . . . . . . . . 168 6.4 Schaltpläne und Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 6.4.1 Testboard mit Tastern und LEDs: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 6.4.2 Testboard mit 24V Ein-Ausgängen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 6.4.3 ESP8266-Board mit 24V Ein-Ausgängen: . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
●6
Vorwort
Vorwort Dieses Buch soll dem Leser eine praxisnahe Einführung bieten, um den Raspberry Pi als SPS für eigene Projekte einsetzen zu können. Das Projekt wurde durch die Programmierer Edouard Tisserant und Mario de Sousa möglich. Diese haben nach der Einführung der IEC Norm 61131-3 im Jahr 2003 das „Matiec-Projekt“ begonnen. Damit war es möglich, die in der Norm eingeführten Programmiersprachen in C-Programme zu übersetzen. Später, als der Raspberry Pi immer populärer wurde, begann Thiago Alves mit dem „openplcproject“. Er erweiterte den Editor aus dem „Beremiz-Projekt“ und schrieb eine Laufzeitbibliothek sowie eine Weboberfläche für den Raspberry Pi und den PC. Jetzt wurde es möglich, Programme auf dem PC zu schreiben und diese auf den Raspberry Pi zu installieren. Viele Benutzer des Raspberry Pi haben jetzt die Möglichkeit, eigene Steuerungen und Regelungen auf ihrer Hardware zu verwirklichen. Auch für Schulungszwecke ist die Hardund Software wegen der Anlehnung an die IEC-Norm hervorragend geeignet. Auch Einsteiger und Profis erfahren hier alles über die Installation und die Programmierung in den fünf Programmiersprachen, um eigene Steuerungen aufzubauen. In einem späteren Kapitel wird auf die Visualisierung mit AdvancedHMI eingegangen, um Prozesse auf dem Bildschirm darzustellen. Schaltungen mit Arduino und ESP8266, die für Modbus nötig sind, werden ebenfalls erläutert. Wir wünschen dem Leser viel Erfolg bei der Lektüre des Buches. Bad Abbach, Januar 2021 Josef Bernhardt
●7
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Einführung Speicherprogrammierbare Steuerungen (SPS) haben die industrielle Steuerungstechnik revolutioniert. SPS werden seit ihrer Erfindung durch Richard E. Morley vor ca. 50 Jahren überwiegend in Industriesteuerungen und in der Hausautomation eingesetzt. Hier die Definition der SPS nach EN61131-1 „Eine SPS ist ein digital arbeitendes elektronisches System für den Einsatz in industriellen Umgebungen mit einem programmierbaren Speicher zur internen Speicherung der anwenderorientierten Steuerungsanweisungen zur Implementierung spezifischer Funktionen wie z.B. Verknüpfungssteuerung, Ablaufsteuerung, Zeit-, Zähl- und arithmetische Funktionen, um durch digitale oder analoge Eingangs- und Ausgangssignale verschiedene Arten von Maschinen und Prozessen zu steuern.“ Der Raspberry Pi eignet sich wegen seiner Architektur mit der GPIO-Steckerleiste und auch wegen des niedrigen Preises hervorragend für eine Anwendung als SPS. Auf dem Markt sind verschiedene fertige SPS auf Basis des Raspberry Pi verfügbar. Ein großer Vorteil der SPS-Programmierung ist, dass sich der Programmierer nicht in Hardwaredetails der E/A Leitungen einarbeiten muss. Die analogen und Digitalen Aus-und Eingänge werden wie Variable behandelt. Dies ist auch mit Modulen möglich, die über ein Netzwerk mit einem Protokoll wie z. B. Modbus-TCP mit dem Raspberry Pi verbunden sind. Ein weiterer Vorteil der SPS-Programmierung ist die Kompatibilität der SPS-Systeme untereinander. Programme für eine SPS vom Hersteller A können meist ohne großen Aufwand für die SPS vom Hersteller B verwendet werden.
Abbildung 0.1 Raspberry Pi SPS Unipi 1.1 In der Abb. 0.1 sehen wir eine SPS mit 24V-Eingängen und Relais Ausgängen und angebautem Raspberry Pi.
●8
Einführung
Die meisten SPS-Systeme unterstützen grafische und textuelle Programmiersprachen. Das openplcproject unterstützt vollständig die Norm IEC 61131-3, welche die grundlegende Softwarearchitektur und die Programmiersprachen für SPS definiert.
Abbildung 0.2 Übersicht Openplc Das System besteht aus einer Runtime, das ist die Software, die auf dem Raspberry Pi installiert wird. Diese führt das SPS-Programm aus. Dem Programm Editor, dieser wird auf dem PC unter Windows oder Linux installiert, um das SPS (PLC) Programm nach IEC 61131-3 Standard zu schreiben. Folgende SPS-Sprachen werden unterstützt: Programmiersprache
Abk.
Englische Bezeichnung
Abk.
Kontaktplan
KOP
Ladder Logic
LD
Funktionsbausteinsprache
FUP (FBS)
Function Block
FBD
Anweisungsliste
AWL
Instruction List
IL
Strukturierter Text
ST (SCL)
Structured Text
ST
Ablaufsprache
AS
Sequential Function Chart
SFC
●9
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 0.3 IEC Programmiersprachen Die grafischen Sprachen KOP und FUP werden vom Matiec Compiler nach ST übersetzt. Wir beginnen in Kapitel 1 mit der Installation der Runtime auf den Raspberry Pi. Nach dem Download des Installationsprogrammes erstellen wir eine Micro-SD Karte mit dem Betriebssystem. Nach der Inbetriebnahme installieren wir die SPS Runtime und nehmen einen ersten Test vor. Danach werden wir uns in Kapitel 2 mit dem Editor und dessen Benutzeroberfläche beschäftigen. Wir laden uns ein fertiges Beispiel herunter und übersetzen es in ein Programm, das wir zum Raspberry Pi übertragen können. In Kapitel 3 geht es ans Programmieren mit dem SPS-Editor vom „openplcproject“. Wir erstellen eigene Programme in den verschiedenen Programmiersprachen, übersetzen diese und laden sie zum Raspberry Pi hoch, um diese auf der Hardware zu testen Auch die Visualisierung sollte nicht zu kurz kommen, deshalb sehen wir uns in Kapitel 4 das AdvancedHMI Projekt an. Damit haben wir die Möglichkeit Prozesse, die auf der SPS ablaufen, über Modbus am PC zu visualisieren. Im Kapitel 5 sehen wir uns an, welche Möglichkeiten es gibt, mit externen Modulen zu kommunizieren. Wir benutzen dabei das weitverbreitete Protokoll Modbus/RTU für den Arduino Uno und das Modbus/TCP Protokoll für den ESP8266 über WLAN. Dabei stellen wir auch Schaltungen und Layouts für diese Hardware vor. Alle Programmbeispiele können von der Website des Autors heruntergeladen werden. Die Links zu den Websiten befinden sich im Anhang unter „Weblinks“.
● 10
Kapitel 1 • Installation des Raspberry Pi 4
Kapitel 1 • Installation des Raspberry Pi 4 1.1 Hardwarebeschreibung Der Raspberry Pi ist inzwischen ein weitverbreiteter Mini Rechner, der wegen seines niedrigen Preises nicht nur von Hobby Elektronikern, sondern auch von vielen Firmen in der Industrie eingesetzt wird.
Abbildung 1.1 Raspberry Pi 4 Er besitzt ausreichend Schnittstellen, um als SPS benutzt zu werden. Neben StandardSchnittstellen wie HDMI, USB, Ethernet, Audio besitzt er eine 40 polige GPIO-Steckerleiste, um mit der Außenwelt in Verbindung zu treten. An diesem Stecker können über passende Interfaces Relais, Taster, Schalter usw. angeschlossen werden. Weiter wollen wir zunächst nicht auf die Hardware eingehen. Auf der Raspberry Website gibt es mehrere ausführliche Tutorials zu diesem Minirechner. Wer nach einer kompakteren Lösung sucht, kann auch den Raspberry Pi Zero W einsetzen. Nach einem ersten Test hat alles bestens funktioniert. Wer die Installation von mehreren Stunden in Kauf nimmt, bekommt eine preisgünstige Alternative zum Raspberry Pi 4.
Abbildung 1.2 Raspberry Pi Zero W
● 11
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Um den Raspberry Pi als SPS einzusetzen installieren wir uns zunächst das Betriebssystem, das wir auf der Website vom Raspberry.org finden. Link (Raspberry Pi OS – Raspberry Pi).
1.2 Installation des Betriebssystems Wir laden uns hier den Raspberry Pi Imager herunter. Das ist eine einfache und schnelle Möglichkeit, das Betriebssystem auf die MicroSD-Karte zu installieren. Auf Youtube gibt es auch ein Video dazu. Link (https://www.youtube.com/watch?v=J024soVgEeM) Nach dem Download Link (https://downloads.raspberrypi.org/imager/imager_1.5.exe) wechseln wir in dieses Verzeichnis und starten den Imager.
Abbildung 1.3 Raspberry Pi Imager Nach dem Klick auf „Install“ startet die Installation des Imager Programms, mit dem wir unsere MicroSD-Karte installieren.
Abbildung 1.4 Raspberry Pi Imager Setup
● 12
Kapitel 1 • Installation des Raspberry Pi 4
Mit einem Klick auf die Checkbox „Run Raspberry Pi Imager“ startet dieser nach erfolgreicher Installation. Wir wählen als Betriebssystem das Raspberry Pi OS (32-Bit) aus. Danach das Laufwerk, an dem die MicroSD-Karte angeschlossen ist, hier Laufwerk G:
Abbildung 1.5 Raspberry Pi Imager OS Auswahl Mit einem Klick auf den Button „Schreiben“ starten wir die Installation.
Abbildung 1.6 Raspberry Pi Imager Start Die Sicherheitsabfrage bestätigen wir mit „JA“.
● 13
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 1.7 Raspberry Pi Imager SD Karte schreiben Jetzt erfolgt der Download des Betriebssystems, und das Schreiben auf die MicroSD-Karte. Das kann je nach Rechner ca. 30 Minuten dauern. Nach dem Hinweis, dass die Karte geschrieben wurde, können wir den Imager mit „WEITER“ beenden. Dokumentationen zur Installation und zur Benutzung findet man auch hier. Link:(www.raspberrypi.org/documentation/) Weiter geht es mit dem Einrichten des Raspberry Pi. Die programmierte MicroSD-Karte in den Raspberry Pi einstecken. Danach für das erste Einrichten des Raspberry Pi einen Monitor, Tastatur und Maus anstecken. Jetzt verbinden wir das 5-V-Steckernetzteil mit dem Raspberry Pi. Jetzt fährt das Betriebssystem hoch. Nach dem ersten Start fragt das Betriebssystem nach der Ländereinstellung und der Zeitzone, hier zweimal Deutsch und Berlin eingeben. Jetzt werden die Einstellungen installiert. Danach wird das Passwort verlangt. Standard Benutzername ist „pi“ und das Passwort „raspberry“ Falls kein Ethernet Anschluss vorhanden ist, richten wir den Netzwerkzugang über WLAN ein. Rechts oben zwischen dem Bluetooth und dem Lautsprechersymbol klicken wir das WLAN Symbol an. Wir wählen unser WLAN Netzwerk aus und geben den Zugangscode ein. Nach einigen Sekunden erfolgt die Verbindung zum hauseigenen WLAN. Jetzt gehts weiter mit der Installation der Updates. Das kann einige Minuten dauern. Danach wird ein Neustart durchgeführt. Beim Anklicken des WLAN Symbols sieht man auch die IP-Adresse. Diese notieren wir uns für die spätere Verwendung mit VNC und der SPS-Software, die wir noch installieren müssen.
● 14
Kapitel 1 • Installation des Raspberry Pi 4
Hier: 192.168.178.89. Später, wenn wir den Raspberry Pi als SPS nutzen, wird es einfacher, über den VNC Viewer darauf Zugriff zu haben. Über Menü->Einstellungen->Raspberry-Pi-Konfiguration dann unter Schnittstellen kann der VNC Viewer freigegeben werden.
1.3 Installation des VNC Viewers VNC ist ein grafisches Desktop-Sharing-System, mit dem Sie die Desktop-Schnittstelle eines Computers, hier den Raspberry Pi (VNC Server) von einem anderen Computer oder Mobilgerät mit dem VNC Viewer (Client) fernsteuern können. Der VNC Viewer überträgt die Tastatur und entweder Maus- oder Touch-Ereignisse an den VNC Server und empfängt im Gegenzug Aktualisierungen auf dem Bildschirm. Diesen können wir schon mal herunterladen und auf dem PC installieren. Link (www.realvnc.com/en/connect/download/viewer/). Hier können Sie den geeigneten Viewer herunterladen. Wir benutzen die aktuelle Version für Windows 10. Eine Version für Android ist ebenfalls verfügbar. Nach dem Download können wir die Installation starten.
Abbildung 1.8 VNC Viewer Installation
● 15
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 1.9 VNC Viewer Installation Hier setzen wir die Installation mit „Weiter“ fort. Hier auf „Installieren“ klicken, damit startet die Installation des Viewers. Jetzt starten wir den VNC Viewer und stellen eine Verbindung zum Raspberry Pi her.
Abbildung 1.10 VNC Viewer Startmenü Unter „Datei“, „Neue Verbindung“ geben wir die Zugangsdaten von unserem Raspberry Pi ein.
● 16
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.11 VNC Viewer Konfiguration Hier geben wir die IP-Adresse und einen passenden Namen ein. Danach bestätigen wir das „Eigenschaften“ „Allgemein“ Fenster mit OK.
Abbildung 1.12 VNC Viewer Zugangsdaten Hier geben wir den Benutzernamen „pi“ und das Kennwort „raspberry“ ein und bestätigen mit „OK“. Kurz darauf erscheint der Desktop des Raspberry Pi auf unserem PC-Bildschirm.
● 17
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 1.13 Raspberry Pi OS Desktop
1.4 Installation der File Transfer Software WinSCP WinSCP ist ein Open Source SFTP-Client, FTP-Client für Windows. Wir brauchen diesen noch um Dateien zwischen PC und Raspberry Pi zu übtertragen. Um einen Zugriff zu erhalten müssen wir am Raspberry Pi unter Einstellungen Raspberry-Pi-Konfiguration Schnittstellen SSH aktivieren.
Abbildung 1.14 SSH Konfiguration Zunächst laden wir das Installationsprogramm herunter und speichern es.
● 18
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.15 WinSCP Download Danach gehen wir in das Download-verzeichnis und beginnen mit der Installation.
Abbildung 1.16 WinSCP Installation Wir akzeptieren die Lizenzvereinbarung mit „Akzeptieren“.
● 19
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 1.17 WinSCP Installation Hier bestätigen wir mit „Weiter“.
Abbildung 1.18 WinSCP Installation Wir wählen die Benutzeroberfläche „Commander“, gehen auf weiter und bestätigen mit „Installieren“. Danach starten wir WinSCP und richten mit der IP-Adresse des Raspberry Pi eine neue Verbindung ein. Hier die IP-Adresse 192.168.178.89 mit den Zugangsdaten.
● 20
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.19 WinSCP Konfiguration der Zugangsdaten Jetzt können wir uns anmelden und das Verbindungsziel speichern.
Abbildung 1.20 WinSCP Konfiguration der Verzeichnisse Jetzt können wir auf die Verzeichnisse des Raspberry Pi zugreifen.
● 21
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 1.21 WinSCP in Aktion
1.5 Installation der openplcproject-Runtime Jetzt haben wir unseren SPS-Rechner so weit eingerichtet. Der nächste wichtige Schritt ist die Installation der OpenPLC-Runtime von der Website des OpenPLC-Projektes. Link:(www.openplcproject.com/runtime/raspberry-pi/). Der einfachste Weg, um OpenPLC-Dateien in Ihren Raspberry Pi zu kopieren, ist die Verwendung von Git. Normalerweise ist Git auf Raspbian vorinstalliert. Wenn Sie aus irgendeinem Grund kein Git auf Ihrem System installiert haben, können Sie es installieren, indem Sie Folgendes eingeben: Dazu öffnen wir entweder am Raspberry Pi oder über den VNC Viewer eine Terminalbox und geben folgendes Kommando ein: sudo apt-get install git
und bestätigen mit Enter.
● 22
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.22 GIT installieren Für die Installation der OpenPLC-Runtime (SPS-Betriebssystem) benötigen wir diese Kommandos: git clone https://github.com/thiagoralves/OpenPLC_v3.git cd OpenPLC_v3 ./install.sh rpi
Diese können auch mit Copy und Paste in das Terminalfenster übernommen werden. Am PC das Kommando in die Zwischenablage kopieren und am Raspberry Pi im Terminalfenster mit der rechten Maustaste wieder einfügen.
Abbildung 1.23 OpenPLC-Runtime installieren
● 23
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Das wird jetzt einige Zeit dauern. Nachdem die Installation fertig ist, sollten Sie den Raspberry Pi neu starten. Die OpenPLC-Runtime verfügt über einen integrierten Webserver, mit dem Sie OpenPLC konfigurieren und neue Programme hochladen können. Diese können dann auf dem Raspberry Pi gestartet werden. Auf diesen Webserver kann zugegriffen werden, indem wir einen Webbrowser auf dem PC öffnen und die IP-Adresse des Raspberry Pi mit Port 8080 eingeben. Wenn Ihr Raspberry Pi beispielsweise die IP 192.168.178.89 in Ihrem Netzwerk hat, müssen Sie folgende Adresse in Ihrem Browser eingeben: 192.168.178.89:8080 Natürlich kann auch auf dem Raspberry Pi mit dem Webbrowser ein Zugriff auf die Website erfolgen. Hier einfach „localhost:8080“ in der URL Zeile eingeben, um auf die Seite der OpenPLCRuntime zu gelangen.
Abbildung 1.24 OpenPLC-Runtime Weboberfläche Standardbenutzername und Passwort ist jeweils „openplc“. Diese Zugangsdaten können nach dem Login geändert werden.
● 24
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.25 OpenPLC-Runtime Dashboard Nach dem erfolgreichen Anmelden erscheint das Startmenü. Jetzt können verschiedene wichtige Einstellungen für die Hardware vorgenommen werden. Hier werden auch unsere eigenen SPS-Programme hochgeladen und gestartet. Eine Konfiguration von externen Modulen ist ebenfalls möglich sowie ein Monitoring des laufenden Programmes.
Abbildung 1.26 OpenPLC-Runtime Hardware Auswahl
● 25
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Hier erfolgt die umfangreiche Auswahl der Hardware, auf der die OpenPLC-Runtime läuft. In unserem Fall wählen wir den Raspberry Pi.
Abbildung 1.27 OpenPLC-Runtime installieren DNP3 und EtherNet/IP brauchen vorerst nicht ausgewählt werden, da wir diese Feldbusse nicht nutzen. Den Modbus Server lassen wir installiert, diesen brauchen wir zu einem späteren Zeitpunkt noch für eine Visualisierung mit der Software AdvancedHMI. Für den Fall, dass der Raspberry Pi nach einem Neustart das letzte Programm ausführen soll, kann unter Settings->Start OpenPLC in RUN Mode angeklickt werden. Jetzt noch Speichern mit „Save Changes“ und die Installation ist abgeschlossen. Für einen ersten Test verwenden wir das SPS-Programm „SPS-Beispiel-AWL-Lauflicht“, welches wir im Downloadbereich finden. Dieses übertragen wir über die Weboberfläche vom PC zur neuen Raspberry Pi SPS, um diese zu testen.
● 26
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.28 Openplc SPS-Programm Upload Dazu klicken wir auf „Durchsuchen“ für den Dateidialog und wählen die ST-Datei von unserem SPS-Projekt aus und bestätigen mit „Öffnen“.
Abbildung 1.29 Openplc ST-Datei auswählen
● 27
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 1.30 Openplc SPS-Programm Upload Jetzt unter „Name“ einen Namen, hier „Lauflicht“ eingeben damit der Upload Button freigegeben wird. Unter „Description“ kann eine Beschreibung der Programmfunktion und evtl. eine Versionsnummer eingegeben werden.
Abbildung 1.31 ST-Programm nach C compilieren Jetzt wird das ST-Programm in ein C-Programm übersetzt und für den Raspberry Pi kompiliert. Danach kann es gestartet werden. Dazu auf „Go to Dashboard” klicken und ins Hauptmenü wechseln. Mit „Start PLC“ startet das Programm.
● 28
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.32 Das Programm ist gestartet Jetzt sollten eigentlich drei LEDs an den Ausgangs-Pins %QX0.0, %QX0.1 und %QX0.2 hintereinander aufleuchten. Dies sollte man auch unter „Monitoring“ beobachten können.
Abbildung 1.33 Anschluss der Leuchtdioden Den vollständigen Schaltplan vom Testboard finden wir im Anhang. Falls dies nicht funktioniert, liegt es an der „WiringPI“ Bibliothek, diese ist für den Zugriff auf die GPIO-Pins zuständig. Lösung des Problems ist, eine aktuelle und für den Raspberry Pi 4 angepasste Version zu installieren. Dazu stoppen wir das laufende SPS-Programm mit dem Button „Stop PLC“. Danach geben wir im Terminalfenster folgende Kommandos für ein Update ein: cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb
● 29
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Abbildung 1.34 WiringPI Bibliothek installieren Danach kann die Installation mit gpio –v
getestet werden. Es sollte die Version 2.52 angezeigt werden. gpio version: 2.52 Copyright (c) 2012-2018 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty Raspberry Pi Details: Type: Pi 4B, Revision: 01, Memory: 2048MB, Maker: Sony * Device tree is enabled. *--> Raspberry Pi 4 Model B Rev 1.1 * This Raspberry Pi supports user-level GPIO access.
Damit ist die Installation beendet und das SPS-Programm kann gestartet werden. Jetzt sollten die LEDs nacheinander aufleuchten.
● 30
Kapitel 1 • Installation des Raspberry Pi 4
Abbildung 1.35 Openplc SPS-Programm Upload Nun können wir uns am Raspberry Pi mit „Logout“ ausloggen. Im nächsten Kapitel werden wir auf unseren PC den Editor installieren und danach unser erstes eigenes Programm schreiben.
● 31
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Stichwortverzeichnis 5 Volt 138 5-V-Steckernetzteil 14 24 V Ausgang 147 24V-Digital-Eingang 147 8080 24 %IX0.0 63 %IX100.0 144 %IX100.4 144 %QW0 37 %QX0.0 63 %QX0.1 119 %QX2.0 115,128 %QX100.1 143
A Ablaufsprache 9,53 Ablaufsprache-Beispiel (AS) 104 Ablaufsteuerung 8,104 ABS 83 ACOS 83 ADC 150 AddCatalog 33 Addition 82 Add new device 145 Adresse 17,118 Adressraum 129 AdvancedHMI 7,26,115,122,129 AdvancedHMI Base Package 123 AdvancedHMI Beispiel 123 AdvancedHMI Projektverzeichnis 124 AdvancedHMI-SPS-Test 124 A/D-Wandler 116,148 AJAX 134,160 AJAX Abfrage 134 Aktion 106,107,108 Aktionen 53,104 Aktionsblock 106,107 Aktionsblöcke 109 Aktoren 113 Alarm-Kontakte 159 Alternative Verzweigung 112 Analog Digitalwandlers 144 Analogeingang 158 Analogwert 143
● 182
AND 82 Android 15 Anlage 159 Anschlüsse 61,106 Ansicht“ Menü 45 Anweisungen 78 Anweisungsliste 9,51 Anweisungsliste AWL 71 ANY_TO_ 83 ANY_TO_BOOL 84 ANY_TO_DINT 84 ANY_TO_INT 84 ANY_TO_REAL 84 ANY_TO_SINT 84 ANY_TO_STRING 84 ANY_TO_TIME 84 ANY_TO_UDINT 84 ANY_TO_UINT 84 ANY_TO_USINT 84 Arbeitsblatt 58,66,72,109 Arbeitsverzeichnis 153 Archiv 32 Arduino 7 ArduinoESP8266 153 Arduino HTTP Post Sender 160 Arduino-IDE 138,153,162 Arduino Uno 10,138,145 Arduino Uno IDE Commport 141 Arduino Uno IDE Einstellungen 140 Arduino Uno IDE Upload 141 Arduino Uno Sourcecode 140 Array Datentypen 91,99 ArrayTypeBool 92,93 ArrayTypeInt 92,93 Arraytypen 91 Array-Variablen 94 AS 9 ASIN 83 AS-Programm Blöcke 109 AS-Projekt 49 Assemblersprache 51,71 ATAN 83 ATmega328P 138,147 Audio 11 Ausdrücke 78 Ausgabe der IP-Adresse vom ESP8266 157
Stichwortverzeichnis
Ausgang 106,108 Ausgang 24 V 148 Ausgang bearbeiten 67 Ausgänge 143,151 Ausgänge einlesen 118 Ausgang setzen 119 Ausgangs-Pins 29,36 Ausgang zurücksetzen 119 ausschalten 63,69 Auswahlfenster 46 Autor 45 AWL 9 AWL Befehle 75,77 AWL-Befehlsübersicht 76 AWL-Programm 73 AWL-Projekt 49
B Barcode 88,89 Basistyp 83,92 Bausteine einfügen 67 Bausteine verbinden 67 BCD_TO_BIN 84 Bearbeiten Menü 44 Beispielprogramm 33 Benutzerdefinierten Datentypen 93 Benutzername 14 Benutzernamen 17 Benutzeroberfläche 10,45 Beremiz-Projekt 7 Bibliothek 46,51 Bibliotheksmenü 46 BIN_TO_BCD 84 Bitmuster 91 Bitweise Operationen 70 BlinkLed 88,89 BlinkTimer 87 Boardmanager,Boardverwalter 153 Boardverwalter installieren 154 BTN_HMI 128,129 BTN_Modbus 115,118 Buchstaben 77
C CASE ,CASE-Befehl CDC ACM
81 145
CH340 155 Chart 137,164 Client 113 Codeblocks 132 Codeblocks_C_HTTPPOST01 131,132 Codeblocks_C_HTTPPOST01/ bin/debug 133 Codeblocks Entwicklungsumgebung 133 COM6 140 Commander 20 Commport ,Commport-Treiber 155 Community 45 Compiler 36 compiliert 126 connect 141 Connected to Server 142 Controller Schnittstelle 149 COS 83 C-Programm 28,38,131 CTD,CTU,CTUD 84
D Dashboard 38 Datei Dialog 64 Datei Menü 44 Datentyp 55,65 Datentyp „Messwerte“ 97 Datenverwaltung 77 D/A Wandler 117,158 DC Ausgang 148 Debug Menü 47 definieren 106 Definition 89 Definition der SPS 8 Deklarieren 72,87 Description 28 Desktop 17 Desktop-Sharing-System 15 DINT 81 Divergenz 111,112 Division 82 DNP3 26 Downloadbereich 26 Drehzahl 37 DS18B20 150 Durchsuchen 38
● 183
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
E E/A Board 150 EasyModbusClient 115,141 EasyModbusClientAndServer 115 E/A Testboard 39 Edouard Tisserant 7 Eigenschaften 128 Einfügen 44 Eingang 108 Eingang bearbeiten 66 Eingänge 40,151 Eingangsschaltung 148 einschalten 63,69 Einstellungen 25 Elektronischer Schalter 41 Elemente 96 ELSE 81 ELSIF 81 END_CASE 81 END_FOR 79 END_IF 81 Endlosschleifenbedingung 80 END_REPEAT 80 Endschaltern 88 Endwert 79 END_WHILE 80 ENUMs 100 ESP8266 7 ESP8266 E/A Board 150,153 ESP8266-E/A-Moduls 162 ESP8266_HTTP_POST 162 ESP8266_Modbus_BOARD1_1 153 ESP8266_Modbus_BOARD1_1.ino 155,157 ESP8266 NodeMCU Board im Internet 159 ESP8266 NodeMCU-Modul 150 Ethernet 11,113 EtherNet/IP 26 Exclusiv Oder 82 EXIT, EXIT-Anweisung 85 EXP 83 EXPT 83
F Falling Edge Trigger 85 FBS 51 FBS-Projekt 49
● 184
FC1 117,131,143 FC2 131,144 FC4 144 FC5 143 FC6 143 FC16 144 Feldbusse 26 Fertigungsstraßen 53,104 Feuchtesensor DHT11/22 150 Firmenbezeichnung 45 FOR 79 Förderband 88 Förderbänder 53,104 FOR-Schleife 79 F_TRIG 84 Function Block 49 Funktionen 51 Funktionsbaustein Beispiel 63 Funktionsbausteinen 51 Funktionsbausteinsprache 9 Funktionsblöcke 43,46,50,66 Funktionsplan 65 FUP 9,51
G galvanischer Trennung 40,147 Gatter 70 gaugetest.html 164 Generic ESP8266 Module 154 Git 22 Gleich 82 Gleichspannung 148 Gleichstrommotor 40 Go to Dashboard 28 GPIO 29 GPIO-Eingang 41 GPIOs 150 Größer als 82 Größer gleich 82 Grundlegende Datentypen 78
H Hauptmenü 43 Haus 159 Hausautomation 8 Hausautomatisierung 113
Stichwortverzeichnis
HDMI 11 Helligkeit 37 Hello_World 34 HelloWorld 33 HelloWorld.ST 36 Hilfe“ Menü 45 HITFET BSP76 40,150,153 HMI Adresseinstellung 129 Hochladen 35, 141 HTML-Programm 134,160 HTML Server 150 HTTP-Post 134 http Post Anfrage 160
I I2C, I2S 150 Idle 158 IEC 61131-3 9,77 IEC 61131-3 Standard 9 IEC-Adresse 56 IEC-Norm 7 IEC-Programmiersprachen 77 IEC-Symbole 56 IEEE 802.11 b/g/n 150 IF-Befehl 80 Imager Programms 12 index.html 134,163 Industriesteuerungen 8,40,113 Infineon 41,150 Initialisierungswert 96 Inline 107,108 Installation 10,130 Installationsprogramm 18 Instruction List 49 Internet 131 Internet Visualisierung 131,135 IP-Adresse 14,17,20,115 IX0.0 39
J JavaScript-Bibliothek 163 Javascript-Funktion 135,161 JavaScript Funktion zum Schalten der LEDs 162
K Kennwort 17 Klammern 79 Klasse 55 Kleiner 82 Kleiner gleich 82 Kommentar 68, 78 Kommunikationsfehlerzähler 120 Kompatibilität 8 Konfiguration 145 Kontakt 58 Kontakt hinzufügen 61 Kontaktplan 9,50,55,57 Kontaktplan Beispiel 53 Kontrollstrukturen 79 Konvergenz 111,112 Konvertierungsoperator 84 Konvertierungsoperatoren 83 KOP 9 Kopieren 44 Koppelrelais 151 KOP-Programm 35 KOP Projekt 48
L Ladder Diagram 49 lamp 36,40 Ländereinstellung 14 LANGUAGE_DEFAULT 33 LANGUAGE_ENGLISH 33 Last 147 Lauflicht 28,73 Laufzeitbibliothek 7 Layout des ESP8266-E/A-Moduls 152 Led 69 LED 37,106 LED := 0; 107 LedOK 89 LEDs 29,39 Leerzeichen 79 Leuchtdioden 73 Lizenzvereinbarung 19 LN 83 localhost:8080 24 LOG 83 Login 24
● 185
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Loop 99 Luftfeuchte 97
M MainForm.vb 126 MainTask 47 Mario de Sousa 7 Maschinen 8 Master Slave Prinzip 113 mathematische Berechnungen 77 Matiec Compiler 10,35,63,77 Matiec-Projekt 7 Menüleiste 48 Menüleiste bei AS-Programmen 105 Menüs 43 MessgeraetTest 135 Messgeräte 135,137,164 Messwerte 91,96 MicroSD-Karte 12,13 Microsoft Visual Studio 2019 125 Mikrocontroller-Board 138 Mikrocontrollern 51,71 Modbus 7,113 Modbus ADC 144 Modbus Adressen 120 Modbus-Adresszuordnung 129 Modbus Bibliotheken 158 Modbus Client Testprogramm 116 Modbus Dokumentation 119 Modbus Einstellungen 127 Modbus-Kommandos 116 Modbus-Modul 159 Modbus-Programm 139 Modbus Register schreiben 144 Modbus RTU 10, 113, 139 Modbus RTU Modul 145 Modbus RTU RS485 Multidrop-Netzwerk 149 Modbus Server 26,113 Modbus Slave Einstellungen 145 Modbus SPS Taster 118 Modbus-TCP 150 Modbus-TCP 8,113,131 ModbusTCP 115 ModbusTCPCom 127 ModbusTCP-DotNET-Master.zip 122 Modbus-TCP Modul 151
● 186
Modbus-TCP Protokoll 113 ModbusTCP Server 115 Modbus-TCP Tester 122 Modicon 113 Modifikator 58,59 Modulo 82 MomentaryButton 128 Monitoring 25,29,74 Mono Framework 122, 130 Motor 88 MotorAus 102 MotorDir 89 MotorLinks 102 MotorOn 89 MotorRechts 102 Motors 37 Multiplexer 74HC151 157 Multiplikation 82 my_button 36
N Name 55 Netzwerk 8 neuen Projekten 44 Neuer Baustein 55,65 Neuer Funktionsblock 68 neues Projekt 43 Neue Stromleitung 57 Neue Variable 68 Neue Verbindung 16,68 Niklaus Wirth 52 NOT 82 Notepad++ 36
O Objekten 44 ODER 51,70 Öffner 59 openplc 24,37 openplc.discussion.community 33 OpenPLC-Editor 32,43 openplcproject 7,113 openplcproject-Runtime 22 OpenPLC-Runtime 25 OpenPLC-Runtime 22,23,24 OpenPLC_Uno 139
Stichwortverzeichnis
OpenPLC Weboberfläche 37 Operatoren 82 OP LM7301 148,150 Optokopplern 40 Opto-Kopplern EL816 150 OR 82
P Parallele Verzweigung 112 Pascal 52,77 Passwort 14 PHP-Programm 134,135,160,161 PHP Server Programm 160 PilotLight 128 Pin-Zuordnung 37 PIP 158 PLCAdressClick 129 Plus-Symbol 91 Position 88 Praxiseinsatz 40 Prepare Coils 118 Prepare Registers 119 Produktversion 45 Programm 71 Programmablauf 103 Programmablaufplan 104 Programmbeispiele 10 Programm Editor 9 Programm Erstellen 62,68 Programmfunktion 28,63 Programmiersprachen 43 Programmintervalls 47 Programm kommentieren 109 Programmlaufzeit 47 Programm Monitoring 121 Programms 109 Programmstart 156 Programmzyklus 47,103 Program Organization Unit 77 Projekt 33 Projektdateien 126 Projekteinstellungen 45 Projektname 65 Projektnamen 64 Projektverzeichnis 63,69 Prozess 113
Punkt 97 PWM-Ausgang 37,40 PWM Led 119 PWM-Signal 148 PWMValues 93 pymodbus_openplc_post.py 131 PythonModbus 158 python_modbus_client_tkinter_esp8266.py 158 Python Testprogramm 158
Q Qualifier 107 QX0.0 39
R Raspberry-PI-Konfiguration 18 Raspberry Pi 4 11 Raspberry Pi GPIO Header 37 Raspberry Pi Imager 12,14 Raspberry-Pi-Konfiguration 15 Raspberry Pi OS 13 Raspberry Pi SPS 26,131 Raspberry Pi Zero W 11 Raspbian 22 Read Coils 143 Real 96 Rechner 159 Rechte Stromleitung 60 Referenz 92,96 Regelungen 7 Registern 117 Relais 34 Relaiskontakt 61 Relais Schaltplänen 53 Relaisspule 54 REPEAT 80 REPEAT-Zyklus 80 RESET 66 RETURN-Anweisung 86 RISC CPU 150 Rising Edge Trigger 85 ROL, ROR 83 RS 84 RS232, RS485 113 R_TRIG 84
● 187
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
RUN Mode 26 Runtime 9
S Save device 145 Scanzyklen 120 Schalten 53,63 Schalter 59 Schaltplan des ESP8266-E/A-Moduls 151 Schaltungsvorschläge 147 Schleifenbefehle 80 Schlüsselwort 77 Schneider 113 Schnittstellen 15 Schnittstellen SSH aktivieren 18 Schritt, Schritte 53,104, 108 Schutzmechanismen 41 Selbsthaltung 61 Semikolon 78 Sensoren 113 SensorLinks, SensorRechts 89 Sequential Function Chart 49 Seriellen Monitor 156 Server 113 SET 66 Settings 26 SFTP-Client 18 SHL 82 SHR 83 SIN 83 Softwarearchitektur 9 Spannungsteiler 41,150 Spannungswert 162 Speicherprogrammierbare Steuerungen 8 Speichervariablen 129 SPI 150 Sprung , Sprung mit Sprungziel 109 SPS-Adressen 142 SPS-Beispiel-ArduinoUno-Modbus 146 SPS-Beispiel-AS-01 105 SPS-Beispiel-AWL 71 SPS-Beispiel-AWL-Lauflicht 26 SPS-Beispiel-Foerderband 89 SPS-Beispiel-FUP 64 SPS-Beispiel-FUP.ST 70 SPS-Beispiel-KOP 54,55,114
● 188
SPS-Beispiel-KOP-Modbus 114 SPS-Beispiel-KOP.ST 63 SPS-Beispiel-ST-01 86 SPS-Beispiel Variablenliste 127 SPS-Betriebssystem 23 SPS-Editor 10 SPS-Kontaktplan 53 SPS-Pins 37 SPS-Programm 9 SPS-Programme 25 SPS-Projekt 27 Spule 59 sqlabfrage.php 134,163 SQRT 83 SR 84 SR-Flipflop 66 SSH Konfiguration 18 ST 9 Standardauswertungsreihenfolge 79 Start 88,89,109 Startadresse 117 Startbedingung 106 Startbildschirm 33 Startmenü 25 Startwert 79 ST-Beispiel 88 ST-Beispiel Aufzählungs-Datentyp 102 ST-Beispiel Datentyp ENUM 101 ST-Beispiel Datentyp Struktur 95 ST-Beispiel ENUM 102,103 ST-Beispiel Enums 101 ST-Beispiel Förderband 90,91 ST-Beispiel Struktur und Arrays 98 ST-Datei 35 ST-Datei Listing 63 Steckbrett 38 Step1 108 Steuerungen 7 STL-Dateien 89 ST-Listing Struktur und Arrays 100 ST-Programm 35,86 ST-Projekt 49 Strombegrenzung 41 Stromkreis 54 Stromlaufplan, Stromlaufplänen 50, 53,61 Stromversorgung 60
Stichwortverzeichnis
Stromversorgungsbuchse 138 Structured Text 49,77 StruktRaum 99 Struktur 96 Struktur anwenden 97 Strukturbaum 34,43,65 Strukturen 95,99 Strukturen mit Arrays 98 Strukturierte Datentypen 95,98 Strukturierter Text 9,52,77 Strukturvariable anwenden 99 Struktur-Variablen 97 Subtraktion 82 Suchen 44 sudo apt-get install git 22 Symbole 57,68 Systemsprache 33
T Tabulatoren 79 TAN 83 Task-Einstellungen 68 Tastendruck 34,39,40,73,110 Taster 39,63,69,106,117 Taster = 1 108 Tasters 61 Temperatur 97 Tensilica 150 Terminalfenster 29 Testboard 129 Testplatine 38 T-Flip Flop 105 Thiago Alves 7 Tiefpass 148 Timer 34,51,104 Timer On 85 Titelleiste 43 TOF 84 TON 84 Torsteuerungen 53,104 TP 84 Transistor 147 Transition 108,109 Transitionen 53,104 Treiber Software 153 Trennzeichen 81
TRUNC 83 Typ 55
U UART 150 Übergangsbedingung 108 übersetzen 62 Übersetzungslauf 91 Überspannung 41 Übertemperatur 41 übertragen 73 Uhrzeit 120 UND 51,70 Ungleich 82 Unipi 1.1 8 Unix-Epoche 120 Unterstrich 65 UNTIL 80 Update, Updates 14, 29 Upload Programm 38 USB-Anschluss 138 USB ID am Rasperry PI 145 USB-RS485 149
V Variablendefinition 77 Variablenliste 146 Variablennamen 77 Verbindungen 61,62,67 Verbindungen herstellen 110 Verbindungsparameter 141 Verbindungsziel 21 Verknüpfungssteuerung 8 Verpolungsschutz 148 Version 2.52 30 Versionsnummer 28 Verzeichnisse 21 Verzweigungen 53,104 Visualisieren 122 Visualisierung 7,10,26,136,164 Visual Studio Community 124 Visual Studio Community Software 122 Visual Studio Menüleiste 126 VNC Server 15 VNC Viewer 15,16,22 VNC-Viewer 132
● 189
SPS-Programmierung mit dem Raspberry PI und dem OpenPLC-Projekt
Vollbild 45 vorhandener Projekte 44
W Webbrowser 24,131,134,135,160,161 Webhoster 160 Webinterface 159 Weboberfläche 26,74 Web-Oberfläche 39 Weboberfläche für das ESP8266 Modul 162 Website 162 Webserver 24,131,134,162 Welt 159 WEP 150 Werkstück 88 Werkzeuge 156 Wertebereich 81 WHILE, WHILE-Schleife 80 WIFI 150 WinSCP 18,130,132 WiringPI 29 WLAN 14,113,150,159 Write Single Coil 143
Z Zaehler 97 Zahlen 77 Zeitangabe 107 Zeitgeber 51 Zeitgebern 104 Zeitintervall 107 Zeitzone 14 ZIP-Datei 124 Zugangscode 14 Zugangsdaten 16,20,24,37,155 Zuordnung 65 Zustandsautomat 105 Zwischenablage 23
● 190
books books
>
SPS-Programmierung mit dem Raspberry Pi und dem OpenPLC-Projekt ModbusRTU- und ModbusTCP-Beispiele mit dem Arduino Uno und ESP8266 Einführung in die SPS-Programmierung mit dem Open-SourceProjekt auf dem Raspberry Pi und Modbus-Beispiele mit dem Arduino Uno und ESP8266 Die SPS-Programmierung ist heute in der Industrie und in der Hausautomation sehr weit verbreitet. In diesem Buch beschreibt der Autor, wie der Raspberry Pi 4 als SPS eingesetzt werden kann. Angefangen mit der Softwareinstallation auf dem Raspberry Pi und dem SPS-Editor auf dem PC geht es nach einer Beschreibung der Hardware an das Programmieren. Es folgen interessante Beispiele nach IEC 61131-3 in den verschiedenen Programmiersprachen. Ausführlich wird auch erklärt, wie der SPS-Editor benutzt wird und wie die Programme auf den Raspberry Pi geladen und ausgeführt werden. Angefangen mit der Programmierung mit KOP (Kontaktplan) über ST (Structured Control Language) bis zu AS (Special Function Chart) werden alle IEC-Sprachen mit Beispielen behandelt. Diese können auf der Website des Autors heruntergeladen werden.
Josef Bernhardt hat sich schon früh mit Elektronik beschäftigt. Mit zwölf Jahren baute er seinen ersten Detektorempfänger. Die ersten Programmiererfahrungen sammelte er in den 80er-Jahren mit dem Commodore VC20. Auch Assemblerprogrammierung auf dem 8088-Prozessor ist ihm nicht fremd. Er kann auf über 30 Jahre Elektronikentwicklung an der Uni Regensburg zurückblicken. Dort war er im Bereich Elektronik- und Softwareentwicklung tätig. Mit der eigenen SMD-Fertigung setzt er auch Elektronikprojekte von Kunden um. Der Spaß an Elektronik und Programmierung sowie sein Interesse an allem Neuen begleiten ihn schon sein ganzes Leben lang.
Auch die Vernetzung kommt nicht zu kurz. Der Arduino Uno und der ESP8266 werden als ModbusRTU- bzw. ModbusTCP-Module programmiert, um Zugriff auf externe Peripherie zu erhalten. Damit ist es möglich, Sensoren einzulesen und Verbraucher zu schalten. Interessant dürften auch E/A-Schaltungen sein, die dem 24V-Industriestandard entsprechen. Befehlsübersichten für ST und KOP runden das Buch ab. Nach dem Durcharbeiten des Buches ist der Leser in der Lage, eigene SPS-Steuerungen mit dem Raspberry Pi zu verwirklichen.
Elektor Verlag GmbH www.elektor.de