Aus Raspberry Pi Geek 11/2022

Industrieanlagensteuerung simulieren mit Factory I/O und OpenPLC (Seite 3)

Listing 3

OpenPLC-Runtime einrichten

$ sudo apt update
$ sudo apt upgrade
$ git clone https://github.com/thiagoralves/OpenPLC_v3.git
$ cd OpenPLC_v3
$ ./install.sh rpi

Die Runtime startet auf Port 8080 einen Webserver, dessen Web-Interface Sie über http://<I>RasPI-IP<I>:8080/ im Webbrowser aufrufen. Der Benutzername und das Passwort für die erste Anmeldung lauten jeweils openplc. Es empfiehlt sich aus naheliegenden Gründen, das Passwort anschließend sofort unter dem Menüpunkt Users zu ändern. Nach dem erfolgreichen Login gelangen Sie auf das Dashboard, auf dessen linker Seite sich die Navigation befindet (Abbildung 5). Sehen Sie unter Hardware nach, ob der Raspberry Pi ausgewählt ist. Falls nicht, ändern Sie das umgehend.

Abbildung 5: Die OpenPLC-Runtime steuern Sie &uuml;ber eine komfortable Weboberfl&auml;che.

Abbildung 5: Die OpenPLC-Runtime steuern Sie über eine komfortable Weboberfläche.

OpenPLC arbeitet mit IEC-Adressen für die Ein- und Ausgänge. Die lokalen Adressen beginnen bei 0.0. Die Eingänge tragen den Bezeichner I, die Ausgänge Q. Das Q für den Output soll eine Verwechslung mit der Null vermeiden. Die Tabelle “Mapping der Header-Pins” zeigt das Mapping der Bezeichnungen auf die Header-Pins des Raspberry Pi.

Pin

Bezeichnung

Digitaleingänge

03

%IX0.0

05

%IX0.1

07

%IX0.2

11

%IX0.3

13

%IX0.4

15

%IX0.5

19

%IX0.6

21

%IX0.7

23

%IX1.0

29

%IX1.1

31

%IX1.2

33

%IX1.3

35

%IX1.4

37

%IX1.5

Digitalausgänge

08

%QX0.0

10

%QX0.1

16

%QX0.2

18

%QX0.3

22

%QX0.4

24

%QX0.5

26

%QX0.6

32

%QX0.7

36

%QX0.0

38

%QX0.1

40

%QX0.2

Analogausgang

12

%QW0 (PWM)

Der OpenPLC-Editor steht auf der Homepage des Projekts für Linux, MacOS und Windows kostenfrei zum Herunterladen bereit [10]. Unter Linux entpacken Sie das ZIP-Archiv in ein beliebiges Verzeichnis und führen danach das darin enthaltene Skript install.sh aus. Nach der Installation gibt es im Ordner ein weiteres Skript namens openplc_editor.sh, mit dem Sie den Editor starten (Abbildung 6).

Abbildung 6: Der OpenPLC-Editor pr&auml;sentiert sich klar strukturiert und &uuml;bersichtlich.

Abbildung 6: Der OpenPLC-Editor präsentiert sich klar strukturiert und übersichtlich.

Über den Menüpunkt Datei | Neu erstellen Sie ein neues Projekt. Die Software fragt direkt nach einem bestehenden Ordner, in dem sie das Projekt dann speichert. Arbeiten Sie des Öfteren mit dem Editor, ist es sinnvoll, diese Verzeichnisse vorab anzulegen. Als Nächstes vergeben Sie einen Namen für das Projekt und wählen die Programmsprache dafür aus (in unserem Beispiel FUP). Die Tabelle “Sprachübersicht” zeigt eine Übersicht der unterstützten Sprachen.

Kürzel

Sprache

Beschreibung

AWL

Anweisungsliste

Eine textuelle Programmierung, bei der man die Eingänge mittels logischer Verknüpfungen den Ausgängen zuweist.

KOP

Kontaktplan

Eine grafische Darstellung des Programms, die aussieht wie ein Schaltplan in Schütztechnik.

FUP

Funktionsplan

Ähnlich wie KOP, nur dass Schaltzeichen aus der Digitaltechnik zum Einsatz kommen.

ST

Eine einfache Pascal-ähnliche Programmiersprache, mit der sich komplexe Steuerungsaufgaben leicht implementieren lassen.

AS

Ablaufsprache

Damit lassen sich Abläufe grafisch in Form von Schritten und Transitionen erstellen.

Als Erstes definieren Sie im Programm über das Plus-Icon oben rechts die Variablen und weisen ihnen IEC-Adressen zu. Für das Modbus-Protokoll beginnen diese für Inputs bei %IX100.0 und für Outputs bei %QX100.0. Ziehen Sie jetzt die Variablen nach unten in den Programmierbereich und stellen Sie Verknüpfungen zwischen ihnen her. Achten Sie darauf, den Motor als Ausgang zu definieren. Abbildung 7 zeigt die Variablendefinition inklusive Programm.

Abbildung 7: Das betriebsbereite Steuerprogramm in OpenPLC.

Abbildung 7: Das betriebsbereite Steuerprogramm in OpenPLC.

Nach dem Fertigstellen des Programms müssen Sie es erst einmal speichern, damit das Icon zum Erzeugen des OpenPLC-Programmcodes (Pfeil nach unten) erscheint. Achten Sie beim Speichern des Codes darauf, dass der Dateiname auf .st enden muss, und legen Sie die Datei am besten immer mit in den dazugehörigen Projektordner ab.

Die nächsten Arbeitsschritte erledigen Sie in der OpenPLC-Runtime. Öffnen Sie dazu einen Webbrowser und verbinden sich mit Port 8080 des RasPi. Um die Verbindung zwischen der Laufzeitumgebung und Factory I/O herzustellen, benötigen Sie ein Slave Device, das Sie über das Frontend via Slave Devices | Add new device erzeugen. Wählen Sie als Gerät Generic Modbus TCP Device und tragen Sie als Slave ID eine 1 ein. Ergänzen Sie die IP-Adresse und den Port der Factory-I/O-Installation (Abbildung 8). Für Size wählte der Autor der Einfachheit halber überall 8. Hier orientiert man sich bei einer echten Anwendung an den exakten Anlagenparametern.

Abbildung 8: Um eine Verbindung zwischen der OpenPLC-Runtime und Factory&nbsp;I/O herzustellen, ben&ouml;tigen Sie ein Slave Device.

Abbildung 8: Um eine Verbindung zwischen der OpenPLC-Runtime und Factory I/O herzustellen, benötigen Sie ein Slave Device.

Wechseln Sie nun zum Menüpunkt Programs, über den Sie die Programmdatei hochladen. Zuvor hinterlegen Sie einen Namen und eine Beschreibung für das Programm. Nach Abschluss des Uploads wird das Programm automatisch kompiliert. Durch einen Klick auf Start PLC starten Sie das Programm. Achten Sie darauf, dass auch der Modbus-Server in Factory I/O läuft.

Sobald das Programm startet, beginnt sich die Kiste auf dem Förderband zu bewegen und stoppt, sobald sie den Sensor erreicht. Über den Menüpunkt Monitoring beobachten Sie, wie sich die Werte der Variablen im Programm verändern. Jetzt, wo Sie wissen, wie alle Komponenten miteinander arbeiten, lassen sich sowohl die Anlage als auch das Programm nach Belieben erweitern.

Fazit

Die hier gezeigte Installation fällt tatsächlich ein wenig komplex aus. Es gibt viele Stellen, an denen etwas schiefgehen kann. Sie müssen sich allerdings vor Augen halten, dass Sie hier mit Open-Source-Software und einer Demoversion von Factory I/O eine Umgebung schaffen, die es erlaubt, die Programmierung echter Industriesteuerungen zu üben – gerade für die Ausbildung der entsprechenden Berufe ein echter Gewinn.

Auf Basis der kleinen Beispielanlage können Sie aber mit dem Wissen aus diesem Artikel sehr viel komplexere Aufbauten realisieren beziehungsweise simulieren. Sie müssen für die Ansteuerung nicht unbedingt eine Industriesteuerung verwenden. Es gibt für viele Programmiersprachen Modbus-Bibliotheken, mit denen sich die Factory-I/O-Anlagen steuern lassen.

Factory I/O läuft mit Wine sogar unter Linux. Im Praxistest verabschiedete sich lediglich hin und wieder die Kamerasteuerung. Alles in allem bereitete dieses Projekt dem Autor dennoch eine Menge Spaß. (tle)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben