HTTPS-Tunneling über OpenVPN zum Abrufen von SPS-Daten (Speicherprogrammierbare Steuerung) mittels PyModBus

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Baron89
User
Beiträge: 18
Registriert: Mittwoch 16. Januar 2019, 16:56

Deshalb war ja meine Frage, ob jmd. schon mal was vergleichbares gemacht hat.
Also unabhängig vom Gesamtsystem jetzt.
Abstrakt meine ich damit:
Nutzen eines Skripts/Sockets wie PyModBus oder ähnliches zum auslesen von Daten einer SPS-Steuerung aus unterschiedlichen Netzwerken (via VPN).
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

VPN ist ja gerade dazu da, dass es keine unterschiedlichen Netzwerke sind.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Baron89: Welche unterschiedlichen Netzwerke? Du hast da ein VPN, das ist ja *ein* Netzwerk. Darum macht man ja VPNs — um Geräte die in verschiedenen Netzwerken stecken in *ein* Netzwerk zu bekommen.

So allgemein wird das sicher schon mal jemand gemacht haben, was Dir konkret aber nicht weiterhelfen wird.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
paddie
User
Beiträge: 101
Registriert: Donnerstag 11. Oktober 2018, 18:09

Für mich sieht das eher so aus, dass die SPS-Systeme(so wie es sein soll) vom eigentlichen Netz getrennt sind. In dem "Enterprise SQL Server" dürfen dann wahrscheinlich auch nur (so sollte es auch sein) ganz wenige Leute / Systeme reinschreiben...zu denen du scheinbar bis jetzt noch nicht gehörst ;-). Bevor du jetzt da versuchst irgendwie was zu "basteln" um diese Vorkehrungen zu umgehen würde ich, wie schon ein paar mal hier erwähnt, erstmal mit der IT/Technik/... reden ob das überhaupt so gewünscht ist. Ansonsten kann das ganz schön nach hinten losgehen.
Ich kenn mich jetzt nicht wirklich mit SPS und den genauen Abläufen aus, aber ich kann mir auch vorstellen, dass nur ganz bestimmte Systeme in die DB schreiben dürfen...und auf diesen Systeme auch vorher die Daten überprüft werden. Hier wäre es dann noch ...schlechter... wenn da "jeder" reinschreiben könnte..
Ja, aber das ist doch das Problem!
Wie soll dann das Hosting stattfinden bzw. wie kann ich dann ein Skript schreiben, dass mir den Request/Response liefert?
Ich brauche dazu doch eine fixe IP sowie Port? Oder sehe ich das etwa falsch?

Wie macht ihr das so bzw. hattet ihr schon mal einen ähnlichen Fall dsbzgl.?,-)
Irgendwie ist es wohl noch zu früh...und/oder 2 Kaffee sind einfach noch zu wenig...

Der "Enterprise SQL Server" hat im internen Netz eine feste IP über die er erreichbar ist...da du mit deinem externen Rechner per VPN am Firmennetz hängst, solltest du den Server über die interne IP oder auch den FQDN erreichen können... Ob dein Client jetzt eine statische oder dynamische IP hat ist da doch total egal.

Oder soll dann von intern auf die Daten auf DEINEM "externen" Rechner zugegriffen werden? DANN..wären wir wieder bei dem Hinweis weiter oben...Rede mit IT/Technik ;-), dass du eine statische IP bekommst ...

Gruß

Paddie
JB_HM
User
Beiträge: 1
Registriert: Montag 3. Februar 2020, 18:54

Hallo zusammen,

ich kenne das Problem von @Baron89. Denn ich habe genau das gleiche Problem.
Und zwar geht es tatsächlich um eine Modbus TCP Kommunikation. Der Modbus TCP Server ist in einem externen Netzwerk. Der Client PC wählt sich über VPN auf den Server PC ein.
Und nun geht es darum, dass man im Python Script ja nicht einfach die durch den VPN-Router vergebene virtuelle IP-Adresse ansprechen kann.

Würde mich schon auch interessieren ob man hier auf der Clientseite etwas programmieren kann. Klar, auf der Serverseite muss natürlich der Client bekannt sein und der Port geöffnet.

Beste Grüße
JB
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wieso sollte man ueber Python nicht die IP ansprechen koennen? Wenn das VPN entsprechend aufgesetzt ist, also die Routen stimmen etc, dann macht Python genauso eine Verbindung dazu auf wie jeder andere Client.
paddie
User
Beiträge: 101
Registriert: Donnerstag 11. Oktober 2018, 18:09

Also... meistens ist der VPN-Endpunkt entweder ein Router oder ein dediziertes VPN-Gateway. In dem Moment wo du dich einwählst, wirst du (bzw dein Client) genauso behandelt als wenn du vor Ort direkt im Netz hängst..sprich, du solltest (sofern von der IT/Technik) vorgesehen auch eine IP aus dem gleichen Netz wie die anderen Clients haben und du solltest dich auch mit dem SQL/Modbus Server verbinden können. Keine Ahnung, was du hier dann mit "virtueller IP" meinst.

Je nach Konfiguration des VPNs (IT/Technik fragen) kann es natürlich sein, dass der Zugriff vom internen Netz auf den VPN-Client untersagt ist. DAS hat dann aber wenig mit der Adress-Vergabe zu tun...

Die einzigen "virtuellen" Adressen die ich hier sehe, sind vielleicht die des (vielleicht vorhandenen) Transfernetzes...
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ggf meint er mit virtueller IP das entstehende „virtuelle“ Netzwerk-Gerät. Also salopp vpn0 statt eth0. Und das hat natürlich eine IP.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Was denn jetzt?

Ihr möchtet direkt auf die externe Datenbank zugreifen?
Ihr möchtet direkt auf die CPU der SPS zugreifen?

Modbus ist eins der vielen Feldbussysteme. Daneben gibt es noch Profinet, Profibus, Can, EtherCAT.
Die dienen alle zum Datenaustausch zwischen den Controllern und der Peripherie.

Wieso ändert ihr das nicht im SPS-Programm? Wäre doch das Naheliegendste.


So oder so, wenn ihr experimentieren wollt, macht das bitte nur lokal in der Firma.
Wenn es dann darum geht aus dem Internet einen Zugriff darauf zu erlangen, dann nochmal bitte intensiv mit VPN beschäftigen.
SIEMENS verkauft sogar superteure Hardware speziell für diesen Zweck.

Immer dran denken, wenn ihr es verbockt, ruft man euch um 3 Uhr morgens an ^^

EDIT: virtuelle IP ist einfach eine IP-Adresse, die im Internet nicht geroutet wird.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
paddie
User
Beiträge: 101
Registriert: Donnerstag 11. Oktober 2018, 18:09

DeaD_EyE hat geschrieben: Dienstag 4. Februar 2020, 10:38
EDIT: virtuelle IP ist einfach eine IP-Adresse, die im Internet nicht geroutet wird.
DAS wirds wohl sein...aber das spielt ja IM Tunnel eher keine Rolle mehr.
Blunti
User
Beiträge: 3
Registriert: Montag 20. Januar 2020, 09:10

DeaD_EyE hat geschrieben: Dienstag 4. Februar 2020, 10:38 Was denn jetzt? Ihr möchtet direkt auf die externe Datenbank zugreifen? Ihr möchtet direkt auf die CPU der SPS zugreifen? Modbus ist eins der vielen Feldbussysteme. Daneben gibt es noch Profinet, Profibus, Can, EtherCAT. Die dienen alle zum Datenaustausch zwischen den Controllern und der Peripherie. Wieso ändert ihr das nicht im SPS-Programm? Wäre doch das Naheliegendste. So oder so, wenn ihr experimentieren wollt, macht das bitte nur lokal in der Firma. Wenn es dann darum geht aus dem Internet einen Zugriff darauf zu erlangen, dann nochmal bitte intensiv mit VPN Österreich beschäftigen. SIEMENS verkauft sogar superteure Hardware speziell für diesen Zweck. Immer dran denken, wenn ihr es verbockt, ruft man euch um 3 Uhr morgens an ^^ EDIT: virtuelle IP ist einfach eine IP-Adresse, die im Internet nicht geroutet wird.
Stimmt :) wurde auch schon mal um 3 Uhr morgens angerufen wg. so einer Geschichte :D . Aber VPN ist nur bedingt eine Lösung, imho.
Antworten