M2M: SPS Computer/ Raspberry Pi

Website: xplore-dna.net > Die DNA des digitalen Lernens!
Kurs: IOT - OPC UA Kommunikation - NodeRed
Buch: M2M: SPS Computer/ Raspberry Pi
Gedruckt von: Gast
Datum: Montag, 29. April 2024, 14:51

Beschreibung

Dieses Projekt soll ein Beispiel für "Machine to Machine" (M2M) Kommunikation zwischen SPS und einem Computer / eines Raspberry Pi (RPI) sein.

1. SPS Einrichten


In diesem Beispiel wird die S7 1512C-1PN verwendet. Es können aber alle SPS verwendet werden, die in der Lage sind, einen OPC UA Server zu hosten.

Über Node-RED wird dann später auf den OPC UA Server der SPS zugegriffen, um die Variablen der SPS zu lesen und zu schreiben.

Zum Programmieren der SPS wird TIA Portal V15.1 verwendet.

Die Eingänge der SPS werden mit 3 Tastern beschaltet und eine Lampe wird als Ausgang angeschlossen.

SPS S7-1512C-1PN


1.1. SPS Projekt erstellen


Nach öffnen des TIA Portals ein neues Projekt erstellen.

Dann im Navigationsbereich links ein neues Gerät hinzufügen. Die passende SPS auswählen und bestätigen.

SPS Fenster Projekt erstellen

Durch Doppelklick auf die SPS öffnen sich unten die Einstellungen. Den Namen und die IP-Adresse der SPS eingeben. SPS Geräteeinstellungen








1.2. Variablen hinzufügen


Über "PLC-Variablen" die Standard-Variablentabelle öffnen. Dort können die Taster für die Eingänge und die Lampe hinzufügen. Die Eingangsvariablen haben immer den Zustand der Taster. In der Gerätekonfiguration unter "IO-Variablen" können die Ein- und Ausgangsadressen der SPS nachgeschaut werden.
SPS_03_StandardVariablen

Die PLC Variablen können auch über OPC UA ausgelesen werden. Wir haben uns jedoch entschieden, den Zugriff vom Raspberry Pi über einen Datenbaustein zu ermöglichen. Dieser wird über "Programmbausteine", "Neuen Baustein hinzufügen" benannt  (z.B. "RPI") und hinzugefügt. Dort die Taster, die Lampe und auch eine Merker Variable hinzufügen, 
die zur Realisierung des Programms benötigt werden.
SPS_04_DatenBaustein_RPI



1.3. Programm Schreiben


Das Beispielprogramm soll beim Betätigen von S0 (NC), Q0 ausschalten. Um Q0 einzuschalten muss zunächst mit S1 (NO) quittiert werden. Danach kann durch Betätigung von S2 (NO) die Lampe auf Q0 eingeschaltet werden.

Das Programm wird in Main [OB1] geschrieben.
Zunächst wird die Quittierungsfunktion mit einem SR FlipFlop  realisiert. Das FlipFlop hält, wenn ein Signal auf S gegeben wird, den high Zustand auf Q, bis Q durch R wieder zurückgesetzt wird.
Danach wird die Funktion "Start" programmiert. Das FlipFlop für den Start kann nur setzen, wenn der Taster S2 betätigt ist und quittiert wurde.
Die Netzwerke zur genannten Funktion sind im Bild rechts  dargestellt. 

Hinweis: Es wurde "FUP" als Programmiersprache verwendet. Die Sprache kann unter Eigenschaften geändert werden.
SPS_05_ Programm1
Nun müssen alle Ein- und Ausgänge noch den Variablen des Datenbausteins RPI zugewiesen werden, wie rechts im Bild. SPS_05_ Programm2

1.4. OPC UA Server Aktivieren


Um den OPC UA Server auf der SPS zu aktivieren, im Gerätemanager auf die SPS gehen und im Einstellungsfenster unter OPC UA den Haken bei OPC UA Server aktivieren auswählen.

In dem Feld Server Adressen steht die Adresse des OPC UA Servers.
SPS_06_OPCUA_aktivieren

Nun muss noch der Zugriff auf die Variablen festgelegt werden. In unserem Projekt sollen nur die Variablen im Datenbaustein erkennbar und beschreibbar sein. Die Einstellung wird in den jeweiligen Variablen Tabellen vorgenommen. SPS_06_OPCUA_Variablenzugriff

1.5. OPC UA Variablen


Um die Namen der OPC UA Variablen heraus zu finden, welche im SPS Programm verwendet wurden, wird zunächst eine XML-Datei der OPC UA Schnittstelle exportiert. Die Datei kann unter Gerätekonfiguration unter dem Reiter OPC UA exportiert werden. Zuvor muss das Programm mindestens einmal übersetzt werden. Eine Schatfläche befindet sich in der Schnellzugriffsleiste


SPS_07_OPCUA_XML_Datei_erstellen

Im Anschluss kann die XML Datei z. B. mit Internet Explorer geöffnet werden und mit der Suchfunktion die einzelnen Variablen Adressen herausgesucht werden. SPS_08_OPCUA_XML_Datei_auslesen

2. Hardware verdrahten

Um das Programm zum laufen zu bekommen, ist auch eine kleine Verdrahtung notwendig. Die Taster und Leuchtmelder müssen an der SPS und dem Raspberry Pi (RPI) angeschlossen werden. Die genauen Verbindungen können aus dem Schaltplan entnommen werden. Das Projekt kann natürlich auch ohne RPI laufen. Dann wird das Debug Fenster des Computers als Ausgabe genommen. Die LEDs und der RPI entfallen im Schaltplan. 

Hardware_01_Schaltplan

3. Node-RED


Die Installation von Node-RED für PC oder Raspberry Pi ist im Kurs beschrieben. Dort ist auch die Grundlegende Funktion der wichtigsten Nodes beschrieben um den Einstieg in die Programmierumgebung zu erleichtern.
NodeRED_Kurs
Um auf die Variablen der SPS lesend zu zu greifen benötigt man ein OPCUA-IIoT-Inject Node. Dort dann auf den Reiter OPC UA Nodes gehen und über das Plus eine neue Adresse hinzufügen. Dort können dann die Namen und Adressen, die aus der XML Datei in 1.5 ausgelesen wurden, eingesetzt werden. OPCUA-IIoT-Inject Node
Ähnlich ist das auch beim OPCUA-IIoT-Listener Node. Dabei nicht vergessen, die Adresse des OPC UA Servers einzutragen. Die Adresse wird unter Kapitel 1.4 angezeigt.OPCUA-IIoT-Listener Node