# SPS ansteuern über Linux PC/Server/Raspberry



## Hölligma (28 November 2021)

Hallo,

ich bin praktisch unerfahren in SPS, hatten das nur an der FH in Verbindung mit Prozessleittechnik in der Theorie mit Simantec und S7 (glaube ich, schon ein paar Jahre her)

Ich will jetzt für ein privates Projekt etwas bauen und steuern, unter anderem Magnet Ventile und Temperatur Anzeige, möglichst kostengünstig. Am liebsten wäre es mir, die Ventile an eine SPS wie eine LOGO8! Anzuschließen und mit der Hilfe von einem Raspberry Pi und Python zu steuern. Jetzt recherchiere ich hier seit einigen Stunden und komme aber auf keinen grünen Zweig. Eine S7 wäre mir glaube ich zu teuer und kompliziert.

Es soll quasi ein Web Interface mittels HTML/PHP/Python selbst erstellt werden, auf welchen Prozess-Daten angezeigt und die Ventile bzw. Geräte live oder im Automatik-Betrieb gesteuert werden können. Die Regelung / Steuerung selbst, wird dann in Python implementiert. Kommunikation alles über normales LAN und TCP/IP.

So etwas Ähnliches habe ich mal mit dem Raspi und dessen GPIO gemacht, allerdings muss man sich dann über Relais und eine externe Stromversorgung Gedanken machen, weil mehr als 5V sind da nicht drinnen. Dann braucht man Treiber und Steckboards usw. und dann wird das sehr unübersichtlich oder auch unprofessionell.

Was ich vorhin auch entdeckt habe, war der Revolution Pi, bin mir allerdings noch nicht sicher, ob sich das Projekt damit softwaretechnisch nach meinen Vorstellungen umsetzten lässt. Ich denke, Echtzeitverhalten wäre nice to have, ist aber kein notwendiges Kriterium, alles was im Bereich von 100 - 500 ms geschaltet oder angezeigt wird, ist absolut ausreichend.

Ist das so zu machen wie ich es mir vorstelle?

Würde mich über Hilfe sehr freuen, danke!


----------



## thomass5 (28 November 2021)

Schau doch mal bei codesys für die Himbeere vorbei... Als E/A kannst du dann unter vielen industrietauglichen Komponenten mit wählen...


----------



## GLT (29 November 2021)

Modbus, Koppler, DI und DO Klemmen und dazu IO-Broker, Node-Red
Sep. SPS wird dann nicht benötigt.


----------



## Gerhard Bäurle (29 November 2021)

Hölligma schrieb:


> So etwas Ähnliches habe ich mal mit dem Raspi und dessen GPIO gemacht, allerdings muss man sich dann über Relais und eine externe Stromversorgung Gedanken machen, weil mehr als 5V sind da nicht drinnen. Dann braucht man Treiber und Steckboards usw. und dann wird das sehr unübersichtlich oder auch unprofessionell.


Hallo, 
mit einem Industrie-PI von beispielsweise RevolutionPI oder Janztech oder Berghof hast Du den Vorteil, dass Du alle Tools und Werkzeuge des Raspberry-Ökosystems nutzen kannst – und die elektrische Seite schaltschranktauglich ist.

Der Kosten ist auch "industrie" – aber es gibt sicher Projekte, wo sich das wesentlich besser macht, als frei fliegende Steckernetzteile und Relais-Boards.


----------



## Thomas_v2.1 (29 November 2021)

Warum machst du nicht alles mit der Logo? Die hat doch sogar einen Webserver on Board, KISS.


----------



## Hölligma (29 November 2021)

Thomas_v2.1 schrieb:


> Warum machst du nicht alles mit der Logo? Die hat doch sogar einen Webserver on Board, KISS.



Das ist eine gute Frage, ich möchte eigentlich mein Webserver Konzept mit HTML, PHP und Python beibehalten. Mit dem Webeditor ist das zwar auch eine schöne Sache, aber ich finde das die Möglichkeiten dabei im Design und Funktionalität etwas begrenzt sind, meine Erfahrung darin ist allerdings auch begrenzt.

Weswegen ich zu der Idee gekommen bin, das auszulagern. Nebenbei bemerkt, hat es auch Vorteile, wenn SPS Schaltung und Elektronik von der Software, Webserver und Skripte getrennt sind. Für letzteres kann ich evtl. auch eine VM auf meinen Proxmox Server hochziehen.

So wie auf dem Bild hier sollte es ungefähr aussehen ;-)




Und ich habe meine Zweifel ob das mit der Logo! funktioniert, lasse mich aber gern eines Besseren belehren.

Grüße


----------



## Hölligma (29 November 2021)

Gerhard Bäurle schrieb:


> Hallo,
> mit einem Industrie-PI von beispielsweise RevolutionPI oder Janztech oder Berghof hast Du den Vorteil, dass Du alle Tools und Werkzeuge des Raspberry-Ökosystems nutzen kannst – und die elektrische Seite schaltschranktauglich ist.
> 
> Der Kosten ist auch "industrie" – aber es gibt sicher Projekte, wo sich das wesentlich besser macht, als frei fliegende Steckernetzteile und Relais-Boards.



Das ist auc meine Hoffnung, ich werde mich noch weiter damit beschäftigen, Danke!


----------



## Hölligma (29 November 2021)

thomass5 schrieb:


> Schau doch mal bei codesys für die Himbeere vorbei... Als E/A kannst du dann unter vielen industrietauglichen Komponenten mit wählen...



Dieses codesys habe ich schon gesehen, im Moment noch keine Ahnung wie das damit hinbekommen soll ... ich werde mich dazu weiter einlesen denke ich, Danke!


----------



## Hölligma (29 November 2021)

GLT schrieb:


> Modbus, Koppler, DI und DO Klemmen und dazu IO-Broker, Node-Red
> Sep. SPS wird dann nicht benötigt.



Kannst du das anhand eines Beispiels erklären, DI DO sind die Ein- bzw. Ausgänge am Modul?

Modbus habe ich auch schon wo gelesen, magst du mir vielleicht noch was darüber erzählen? Ist das ein Protokoll um mit dem Logo zu kommunizieren? Danke!


----------



## GLT (29 November 2021)

Modbus/TCP = Kommunikationsprotokoll

Industrie-Controller der Modbus "spricht" z.B. Wago 750-342 (gibt es für kleines Geld bei Ebay)
DI (Digital-In) u. DO (Digital-Out) sind entsprechende Ein-/Ausgangskarten von Wago passend zum Controller (gibt auch analoge) - auch bei Ebay zum schnappern, wenn mal guckt.

LOGO würd ich da komplett aussen vor lassen.


----------



## Process-Informatik GmbH (8 Dezember 2021)

Du kannst die Ventile wie geplant an die Logo8! anschließen, auf Deiner Beere benötigst Du "Universelle Kommunikation I4.0" und greift
auf die SPS-Variablen per REST aus Phyton zu.
So hast Du Deine gewohnte Oberfläche, erstellst damit Deine Bilder und mit "Universelle Kommunikation I4.0" holst Du dir die benötigten Daten aus der Logo8! per S7-TCPIP RFC1006. Dieses Tool ist Dein Bindeglied zur SPS, Deine Zugriffe von Phyton machst Du über HTTP-Requests.
So sollte doch Dein Projekt auch umsetz- und realisierbar sein.


----------



## m0erk (8 Dezember 2021)

Schon mal über OPC-UA als Verbindung zwischen SPS und Ras-Pi nachgedacht? Ist einfach in Python zu schreiben eine Anbindung an OPC und die SPS versteht das normal Out of the Box...


----------



## Hölligma (8 Dezember 2021)

m0erk schrieb:


> Schon mal über OPC-UA als Verbindung zwischen SPS und Ras-Pi nachgedacht? Ist einfach in Python zu schreiben eine Anbindung an OPC und die SPS versteht das normal Out of the Box...


Hi, kannte das noch nicht, wie gesagt bin ich kein Experte für SPS, aber deine Idee finde ich gut, wenn ich Zeit habe, werde ich mich genauer einlesen, danke!


----------



## Hölligma (8 Dezember 2021)

Process-Informatik GmbH schrieb:


> Du kannst die Ventile wie geplant an die Logo8! anschließen, auf Deiner Beere benötigst Du "Universelle Kommunikation I4.0" und greift
> auf die SPS-Variablen per REST aus Phyton zu.
> So hast Du Deine gewohnte Oberfläche, erstellst damit Deine Bilder und mit "Universelle Kommunikation I4.0" holst Du dir die benötigten Daten aus der Logo8! per S7-TCPIP RFC1006. Dieses Tool ist Dein Bindeglied zur SPS, Deine Zugriffe von Phyton machst Du über HTTP-Requests.
> So sollte doch Dein Projekt auch umsetz- und realisierbar sein.


Hey, danke dir! Was ist das, ein Protokoll oder eine Hardwareschnittstelle? Auch darüber lese ich mich gerne ein. Das mit den Modbus hört sich sehr kompliziert an, ich weiß nicht genau, ob ich in diese Richtung weiter Zeit investiere... aber mal sehen in zwei Monaten habe ich Urlaub, bis dahin wird sich schon noch was herauskristallisieren ;-)


----------



## Blockmove (8 Dezember 2021)

GLT schrieb:


> Modbus, Koppler, DI und DO Klemmen und dazu IO-Broker, Node-Red
> Sep. SPS wird dann nicht benötigt.


Würde ich genauso machen.
Ist ein guter Einstieg, bietet viele Möglichkeiten und ist günstig.
Wenn dann (wider Erwarten) doch noch ne SPS benötigt wird, dann eben eine Codesys Runtime auf den PC.
Ich hab im Bekanntenkreis die Erfahrung gemacht, dass IT-ler mit ioBroker oder Node RED deutlich besser zurecht kommen als mit ner SPS.


----------



## Process-Informatik GmbH (9 Dezember 2021)

Das Tool kommuniziert mit der Logo8! über Ethernet, also ganz normales Netzwerk => S7-TCPIP RFC1006. Du legst die Daten des Verbindungspartners fest (IP, Rack/Slot) und die Variablen die Du benötigst, Rest macht das Tool selbst.
Mit Phyton dann per REST (HTTP-Requests) die Werte vom Tool.


----------



## Hölligma (10 Dezember 2021)

Blockmove schrieb:


> Würde ich genauso machen.
> Ist ein guter Einstieg, bietet viele Möglichkeiten und ist günstig.
> Wenn dann (wider Erwarten) doch noch ne SPS benötigt wird, dann eben eine Codesys Runtime auf den PC.
> Ich hab im Bekanntenkreis die Erfahrung gemacht, dass IT-ler mit ioBroker oder Node RED deutlich besser zurecht kommen als mit ner SPS.



Wir hatten SPS in Verbindung mit Grafcet gelernt, hat mir auch nicht so gefallen, wenn ich ehrlich bin.

Irgendwie checke ich das noch nicht so ganz:



> Modbus, Koppler, DI und DO Klemmen und dazu IO-Broker, Node-Red
> Sep. SPS wird dann nicht benötigt.



Das ganze ohne SPS? Was für Produkte sollte ich dafür nehmen?


----------



## Thomas_v2.1 (11 Dezember 2021)

Blockmove schrieb:


> Ich hab im Bekanntenkreis die Erfahrung gemacht, dass IT-ler mit ioBroker oder Node RED deutlich besser zurecht kommen als mit ner SPS.


Was ist denn ein "IT-ler"? Das sind die mit einer Schmalspurausbildung, die meinen den Automatisierern mit ihrem Halbwissen auf den Sack gehen zu müssen. Ein Informatiker wird sich bestimmt nicht als IT-ler bezeichnen wollen, und aus meiner Erfahrung ziehen diese immer einem vernünftigem Quellcode irgendwelchen klicki-bunti Lösungen vor. Alleine schon weil Node-Red nicht in VIM oder Emacs geht.


----------



## Blockmove (11 Dezember 2021)

Thomas_v2.1 schrieb:


> Was ist denn ein "IT-ler"? Das sind die mit einer Schmalspurausbildung, die meinen den Automatisierern mit ihrem Halbwissen auf den Sack gehen zu müssen. Ein Informatiker wird sich bestimmt nicht als IT-ler bezeichnen wollen, und aus meiner Erfahrung ziehen diese immer einem vernünftigem Quellcode irgendwelchen klicki-bunti Lösungen vor. Alleine schon weil Node-Red nicht in VIM oder Emacs geht.



Sorry Thomas, aber da kann ich dir nicht zustimmen.
Egal ob nun Gärtner mit Arbeitsamt-Umschulung zum MSCE oder Mathematiker mir Doktortitel und zusätzlichen Abschluß in Informatik.
Mit beiden habe ich schon Grundsatz-Diskussionen über Steuerungstechnik geführt.
Natürlich sind die Grundlagen und Harangehensweisen andere, aber wenn man vorher keine Berührungspunkte mit Steuerungstechnik hatte, dann tun sich eben viele schwer. Besonders mit der zyklischen Bearbeitung eines SPS-Programms.


----------



## Hölligma (11 Dezember 2021)

Process-Informatik GmbH schrieb:


> Das Tool kommuniziert mit der Logo8! über Ethernet, also ganz normales Netzwerk => S7-TCPIP RFC1006. Du legst die Daten des Verbindungspartners fest (IP, Rack/Slot) und die Variablen die Du benötigst, Rest macht das Tool selbst.
> Mit Phyton dann per REST (HTTP-Requests) die Werte vom Tool.



Das sieht eigentlich sehr gut aus, aber die Kosten, da muss ich mal schauen.


----------



## Der Simulant (21 März 2022)

Blockmove schrieb:


> Sorry Thomas, aber da kann ich dir nicht zustimmen.
> Egal ob nun Gärtner mit Arbeitsamt-Umschulung zum MSCE oder Mathematiker mir Doktortitel und zusätzlichen Abschluß in Informatik.
> Mit beiden habe ich schon Grundsatz-Diskussionen über Steuerungstechnik geführt.
> Natürlich sind die Grundlagen und Harangehensweisen andere, aber wenn man vorher keine Berührungspunkte mit Steuerungstechnik hatte, dann tun sich eben viele schwer. Besonders mit der zyklischen Bearbeitung eines SPS-Programms.



@Blockmove @Thomas_v2.1
Ich kenne beide Seiten, denn bin IT'ler (Ausbildung) && studierter Informatiker.

IT'ler können nicht programmieren, maximal was kleines Skripten (ok, man bekommt VB in der Berufsschule beigebracht, aber da zockt man doch lieber Quake 3). 
Jedoch mit viel Geduld und passendem zwei-jährigen IBN-Außeneinsatz beim Kunden ohne Hallendach kann da aber schon ein guter SPS-Programmierer draus werden. Solche Leute sind noch "formbar".

Informatiker fangen Ihr Studium mit prozeduraler Programmierung an (Programmiersprache C), sprich die können sich schon in die zyklische Bearbeitung rein denken @Blockmove, das können die sogar sehr gut. Aber sie wollen nicht. Das ist das Problem. Da ist eine innere Blockade. 
Spätestens nach dem zweiten bedingten Sprungbefehl kommt die Funktion "Blockmove" in deren Hirn mit "-1" zurück.
Ich denke von den Informatikern zieht es viele in die HMI (bspw. mit WinCC kann man ja etwas programmieren, was wie ein "kastriertes C" aussieht), oder Sie gehen Richtung Prozessleitebene und lesen mit Ihren (Hochsprachen-)Programmen die SPS über ein Interface aus.

Vieles liegt als an dem riesigen Konzern, der halt to-big-to-fail-ist.
Am Thema Versionierung sieht man ja, dass man nur 10-15 Jahre hinterher ist. 
Aber: Es gibt gutes Schmerzensgeld. Dafür springt man dann doch über den ein oder andere Schatten.
Deswegen gibt es ja überhaupt noch solche Konzerne wie SAP oder Siemens. Freiwillig arbeitet dort doch keiner. 

Für mich persönlich ist das größte negative Thema rund um die SPS (Fokus: Siemens) das Thema: Testen. 
Zumindest kommt ja das Thema Versionierung ja langsam ins Rollen. (Darauf warte ich erst seit ca. 10 Jahren)


----------



## Der Simulant (21 März 2022)

Blockmove schrieb:


> Sorry Thomas, aber da kann ich dir nicht zustimmen.
> Egal ob nun Gärtner mit Arbeitsamt-Umschulung zum MSCE oder Mathematiker mir Doktortitel und zusätzlichen Abschluß in Informatik.
> Mit beiden habe ich schon Grundsatz-Diskussionen über Steuerungstechnik geführt.
> Natürlich sind die Grundlagen und Harangehensweisen andere, aber wenn man vorher keine Berührungspunkte mit Steuerungstechnik hatte, dann tun sich eben viele schwer. Besonders mit der zyklischen Bearbeitung eines SPS-Programms.





Blockmove schrieb:


> Sorry Thomas, aber da kann ich dir nicht zustimmen.
> Egal ob nun Gärtner mit Arbeitsamt-Umschulung zum MSCE oder Mathematiker mir Doktortitel und zusätzlichen Abschluß in Informatik.
> Mit beiden habe ich schon Grundsatz-Diskussionen über Steuerungstechnik geführt.
> Natürlich sind die Grundlagen und Harangehensweisen andere, aber wenn man vorher keine Berührungspunkte mit Steuerungstechnik hatte, dann tun sich eben viele schwer. Besonders mit der zyklischen Bearbeitung eines SPS-Programms.



@Blockmove @Thomas_v2.1
Ich kenne beide Seiten, denn bin IT'ler (Ausbildung) && studierter Informatiker.

IT'ler können nicht programmieren, maximal was kleines Skripten (ok, man bekommt VB in der Berufsschule beigebracht, aber da zockt man doch lieber Quake 3).
Jedoch mit viel Geduld und passendem zwei-jährigen IBN-Außeneinsatz beim Kunden ohne Hallendach kann da aber schon ein guter SPS-Programmierer draus werden. Solche Leute sind noch "formbar".

Informatiker fangen Ihr Studium mit prozeduraler Programmierung an (Programmiersprache C), sprich die können sich schon in die zyklische Bearbeitung rein denken @Blockmove, das können die sogar sehr gut. Aber sie wollen nicht. Das ist das Problem. Da ist eine innere Blockade.
Spätestens nach dem zweiten bedingten Sprungbefehl kommt die Funktion "Blockmove" in deren Hirn mit "-1" zurück.
Ich denke von den Informatikern zieht es viele in die HMI (bspw. mit WinCC kann man ja etwas programmieren, was wie ein "kastriertes C" aussieht), oder Sie gehen Richtung Prozessleitebene und lesen mit Ihren (Hochsprachen-)Programmen die SPS über ein Interface aus.

Vieles liegt als an dem riesigen Konzern, der halt to-big-to-fail-ist.
Am Thema Versionierung sieht man ja, dass man nur 10-15 Jahre hinterher ist.
Aber: Es gibt gutes Schmerzensgeld. Dafür springt man dann doch über den ein oder andere Schatten.
Deswegen gibt es ja überhaupt noch solche Konzerne wie SAP oder Siemens. Freiwillig arbeitet dort doch keiner.

Für mich persönlich ist das größte negative Thema rund um die SPS (Fokus: Siemens) das Thema: Testen.
Zumindest kommt ja das Thema Versionierung ja langsam ins Rollen. 

Gruß vom Simulant


----------



## DeltaMikeAir (21 März 2022)

Der Simulant schrieb:


> Aber: Es gibt gutes Schmerzensgeld. Dafür springt man dann doch über den ein oder andere Schatten.
> Deswegen gibt es ja überhaupt noch solche Konzerne wie SAP oder Siemens. Freiwillig arbeitet dort doch keiner.


Das ist doch totaler Quatsch.


----------



## Der Simulant (21 März 2022)

DeltaMikeAir schrieb:


> Das ist doch totaler Quatsch.



Das mag vielleicht Quatsch sein, ist halt meine persönliche Meinung, mehr nicht. 
Für mich gilt: Sollen andere ABAP-Programmieren: Ich werde es für kein Geld der Welt tun. Wenn ich soweit gesunken bin, dann lass ich es ganz sein mit Computer und Co.


----------



## DeltaMikeAir (21 März 2022)

Der Simulant schrieb:


> Das mag vielleicht Quatsch sein, ist halt meine persönliche Meinung, mehr nicht.
> Für mich gilt: Sollen andere ABAP-Programmieren: Ich werde es für kein Geld der Welt tun. Wenn ich soweit gesunken bin, dann lass ich es ganz sein mit Computer und Co.


Ok, deine persönliche Meinung. Na gut, die soll dir zustehen


----------

