Kleiststr. 5 93077 Bad Abbach

Openplc Project


Beim Open PLC Projekt von Thiago Rodrigues Alves handelt es sich um ein Open Source Projekt um Mikrocontroller Boards als SPS (PLC) zu verwenden.

Das OpenPLC-Projekt unterstützt die Norm IEC 61131-3 welche die grundlegende Softwarearchitektur und Programmiersprachen für SPS definiert.

OpenPLC wird hauptsächlich in der Industrie- und Hausautomation, und für Ausbildungszwecke eingesetzt.

Das System besteht aus drei Teilen:

Der Runtime, dass ist die Software die auf dem Mikrocontroller Board installiert wird. Diese führt das SPS Programm auf der Hardware 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:

Kontaktplan KOP engl. Ladder Logic (LD)

Funktionsbausteinsprache FBS engl. Function Block (FBD)

Anweisungsliste AWL engl. Instruction List (IL)

Strukturierter Text ST engl. Structured Text (ST bzw. SCL)

Ablaufsprache AS engl. Sequential Function Chart (SFC)

Eine gute Einführung in die SPS Programmierung gibt es hier oder auch hier.

Den Open PLC Editor können Sie hier herunterladen. Die Projekte werden als XML Datei gespeichert. Beim Übersetzen wird eine .st Datei erzeugt.

Beachtenswert ist, dass auch Feldbusse unterstützt werden. Einstellbar sind der MODBUS TCP, EthernetIP und DNP3

Das erzeugte Programm sieht so aus:

PROGRAM TasterRelais
VAR
T1 AT %IX100.0 : BOOL;
T2 AT %IX100.1 : BOOL;
T3 AT %IX100.2 : BOOL;
Relais1 AT %QX0.0 : BOOL;
AD AT %IW100.0 : INT;
DA AT %QW100.0 : INT;
T4 AT %IX100.3 : BOOL;
T5 AT %IX100.4 : BOOL;
T6 AT %IX100.5 : BOOL;
T7 AT %IX100.6 : BOOL;
T8 AT %IX100.7 : BOOL;
Relais2 AT %QX0.1 : BOOL;
Relais3 AT %QX0.2 : BOOL;
Relais4 AT %QX0.3 : BOOL;
Relais5 AT %QX100.0 : BOOL;
END_VAR
VAR
CTU0 : CTU;
MUL22_OUT : INT;
R_TRIG1 : R_TRIG;
END_VAR

MUL22_OUT := MUL(AD, 10);
DA := MUL22_OUT;
Relais1 := T3 AND T2 AND T1;
Relais2 := NOT(T4);
Relais3 := NOT(T5);
Relais4 := NOT(T6);
R_TRIG1(CLK := NOT(T7));
CTU0(CU := R_TRIG1.Q, R := NOT(T8), PV := 5);
Relais5 := CTU0.Q;
END_PROGRAM

CONFIGURATION Config0

RESOURCE Res0 ON PLC
TASK task0(INTERVAL := T#200ms,PRIORITY := 1);
PROGRAM instance0 WITH task0 : TasterRelais;
END_RESOURCE
END_CONFIGURATION

Die Datei wird dann über die Weboberfläche zum Raspberry PI übertragen.

Die Visualisierungssoftware ScadaBR ist ein Open-Source-SCADA-System (Supervisory Control and Data Acquisition), mit dem Sie interaktive Bildschirme, auch Human Machine Interface (HMI) genannt, für Ihre Automatisierungsprojekte erstellen können. ScadaBR kann mit mehreren verschiedenen SPS´en kommunizieren, einschließlich OpenPLC, was es zu einem perfekten Begleiter für die OpenPLC-Laufzeit und den OpenPLC-Editor macht.

ScadBR

Als Hardware eignet sich ganz hervorragend der Raspberry PI. Die Open PLC Runtime Software lässt sich in kurzer Zeit installieren und verwandelt den Raspi in ein leistungsfähiges SPS System. Wer kein Interesse hat in C, Pyton oder Java zu programmieren, kann jetzt seine Steuerungsprogramme in eine der üblichen SPS Sprachen wie KOP, FUP usw. erstellen.

Phoenix Gehäuse für den Raspberry PI für Hutschienenmontage

https://www.voelkner.de/products/880768/Phoenix-Contact-RPI-BC-107-6-DEV-KIT-KMGY-SBC-Gehaeuse-Passend-fuer-Raspberry-Pi-zur-Hutschienenmontage-Lichtgrau.html

Mit einem Relais Modul wie diesem, lassen sich erste Versuche durchführen. In Arbeit ist ein Testboard mit Tastern und LED für Schulungszwecke.

1-2-4-8-Kanal-Relais-Modul-fuer-Arduino-Raspberry-Pi
Vierfach Relais Modul

Eine Installationsanleitung der Laufzeitumgebung für den Raspberry PI finden Sie hier.

Lizenzkosten wie bei anderen Systemen fallen bei Open PLC nicht an.

Hinweise für Entwickler welche Ihre Hardware anpassen wollen werden hier fündig.

Eine Liste der unterstützten Hardware finden Sie auch auf der Seite von Thiago Rodrigues Alves. Es sind einige fertige SPS auf Basis des Raspberry verfügbar wie z.B. die Pixtend oder auch Fischertechnik.

Pixtend V2S
Konfigurationssoftware des Raspi am PC im Browser unter 192.168.178.76:8080

E/A Pin Belegung am Raspberry PI:

Pinbelegung des Raspberry PI

Testplatine für den Raspberry PI mit 8 Tastern und 10 LEDS

Rasperry PI Testboard für Schulungszwecke

Für erste Versuche ohne Hardware E/A am Raspberry PI kann auch ein Software Modbus TCP Slave (Server) auf der SPS konfiguriert werden, (unter Slave Devices) um Schalter einzulesen und Relais zu schalten. Der Raspberry PI arbeitet als Master (Client). Recht gut geeignet ist die Software Easy Modbus Server Simulator, die sich wie ein E/A Modul ansprechen lässt.

Der Server Simulator ist in C# programmiert. Das Projekt lässt sich mit der Entwicklungsumgebung Sharp Develop bearbeiten und compilieren.

Modbus TCP Slave (Server)

Hier die wichtigsten Schritte in einer Zusammenfassung:

Raspian installieren.

Die Runtime installieren.

Den Open PLC Editor downloaden und öffnen.

Das Beispielprojekt laden.

Das Projekt im Editor erstellen.

Mit dem Webbrowser die SPS konfigurieren (Hardware, Feldbus)

Das erzeugte Projekt (.st Datei) in der Weboberfläche hochladen.

Die SPS starten. (Auf Running)

HMI Projekt

Interessant wäre es auch ein HMI Display über Modbus TCP (auch WLAN) anzuschließen. Damit ist es möglich über einen Touchscreen der SPS Sollwerte vorzugeben, Messwerte auszulesen oder Verbraucher zu schalten und somit den Prozesse zu überwachen.

Nextion 5″ TFT Display mit Touch Bedienung

Für die Nextion Displays gibt es den freien Nextion Editor um die Benutzeroberfläche zu entwerfen. Enthalten ist auch ein Debugger zum Testen der Oberfläche.

Nextion Editor von Nextion Tech
Beispiel Benutzeroberfläche

Nextion 5″ Display
NEXTION-EDITOR_04.jpg
Quellangabe: https://nextion.tech/nextion-editor/

MODBUS TCP WLAN Modul mit dem PSOC5

Das Modbus Protokoll wurde in seiner ursprünglichen Form 1979 von der Firma Modicon entwickelt. Zuerst als Modbus RTU für die Hardware Schnittstellen RS232, RS422 und RS485. Ab 2007 steht auch Ethernet mit dem TCP/IP Protokoll zur Verfügung. Detallierte Informationen und Protokollbeschreibungen findet man auf der Modbus Webseite.

Modbus E/A Module finden überwiegend Anwendung für Speicherprogrammierbare Steuerungen (SPS PLC) um diese verteilt in Anlagen einzusetzen. Auch das OpenPLC Projekt unterstützt das Modbus TCP/IP Protokoll um Sensoren und Aktoren abzufragen und anzusteuern.

Mit einem Mikrocontroller und einem WIFI (WLAN) Modul kann man sehr schön einen MODBUS Modul mit digitalen I/O und AD/DA Wandlern aufbauen. In diesem Projekt wird ein Cypress PSOC5 mit dem CY8CKIT-059 sowie ein USR-C215 WIFI Modul eingesetzt.

PSOC5 Testboard für den CY8CKIT-059

Aktuell werden digitalen Seite sechs Taster und 8 LEDs angesteuert. Analog bietet der PSOC5 vier A/D Wandler mit 12Bit und 4 D/A Wanler mit 8 Bit. Ein 20 Bit Sigma Delta Wandler ist ebenfalls enthalten und könnte in die Protokollsoftware mit integriert werden. Das Projekt wurde mit der kostenlosen Software PSOC Creator von Cypress erstellt.

Pinbelegung des PSOC5

Im Versuch mit dem Raspberry PI und Open PLC funktioniert das ganze sehr zuverlässig.

Modbus TCP Einstellungen im Open PLC Projekt
Test des A/D Wandlers und der Digitalen Eingänge
Hier die Modbus TCP Protokolldaten

Letzte Änderung 1.4.2020 Josef Bernhardt

Bei Fragen zu diesen Projekten können wir Sie gerne per E-Mail unterstützen.