Daten über TCPIP empfangen und visualisieren, aber wie?

donpanso

Cadet 2nd Year
Registriert
Nov. 2014
Beiträge
17
Hallo,

ich habe folgendes Problem: Ich muss Daten aus einer SPS an einem PC empfangen (über TCPIP) und soll dies dann visualisiert darstellen.
Zu den Daten gehören Länge, Breite, Gewicht usw.
Die SPS schickt die Daten als string und mein Problem ist, dass mir der komplette ansatz fehlt.

Das ganze soll ohne Zusatzsoftware erfolgen und zukunftssicher sein (beispielsweise mit windows 20 noch lauffähig sein)

Welche Methode eignet sich dafür am besten?
Eine Programmierung in VBA oder C++?
Wie gesagt, am ende sogar noch mit einer schönen Visualisierung wo man die Daten des aktuellen Werkstücks sehen kann.



Mfg

p.s. excel dürfte benutzt werden
 
Welche Protokoll wird genutzt für den Datentransfer? HTTP? Modbus over TCP? VIP?
 
Definiere "Zusatzsoftware"
Du kannst nicht wissen was "Windows 20" an Möglichkeiten bietet. Vielleicht gibt es nur noch Programme in CIL (aka .Net), vielleicht existiert CIL aber gar nicht mehr. Who knows.
Aber du kannst sicher sein daß du auch mit Windows 20 eine VM erzeugen kannst die TCPIP nutzen kann und daß diese VM eben Windows 10 laufen lassen kann.

D.h. du kannst nutzen was du willst, Hauptsache es läuft heute.
 
Nilson schrieb:
Welche Protokoll wird genutzt für den Datentransfer? HTTP? Modbus over TCP? VIP?

Ethernet over TCP
Ergänzung ()

HominiLupus schrieb:
Definiere "Zusatzsoftware"
Du kannst nicht wissen was "Windows 20" an Möglichkeiten bietet. Vielleicht gibt es nur noch Programme in CIL (aka .Net), vielleicht existiert CIL aber gar nicht mehr. Who knows.
Aber du kannst sicher sein daß du auch mit Windows 20 eine VM erzeugen kannst die TCPIP nutzen kann und daß diese VM eben Windows 10 laufen lassen kann.

D.h. du kannst nutzen was du willst, Hauptsache es läuft heute.

Es soll halt ne brauchbare Visualisierung bei rumkommen und möglichst einfach sein....
Ich hatte 1 Semester programmieren in der Uni mit C... :-D
also was man relativ leicht erlernen kann
 
SNMP Protokoll verwenden.
Das ist universell und mit ganz viel verschiedwner Software kannst du damit was anfangen.

So werden z.B viele Geräte über das Netzwerk überwacht/gemonitored.
Das spart dir eigenentwicklungen und wird noch lange(ewig) verwendet.

Ansonsten müsstest du eine Software haben welche deine Pakete sinnvoll entziffern kann.
Und da hättest du dann das Problem.
 
Ethernet over TCP
Das ist Humbug.
Man könnte sogar Ethernet Frames in TCP Pakete stecken, aber es ist schlicht Humbug was du da schreibst.

Nutze C#. Das ist einigermaßen C ähnlich von der Syntax und sollte nicht allzuschwer von der Visualisierung her sein. Alternativen: Java, Python, etc.
 
Also ich würde auf Java (oder C#) setzen. Die Visualisierung ist in beiden Fällen sehr angenehm umsetzbar, ebenso die Kommunikation mit deiner SPS. Einzige Voraussetzung wäre hier das die entsprechende Laufzeitumgebung installiert ist (Java Virtual Machine, .NET), ob das schon als Zusatzsoftware zählt?

Java und C# werden sicherlich auch 2020 noch brauchbar sein.
 
donpanso schrieb:
Ich muss Daten aus einer SPS an einem PC empfangen
Um welche SPS handelt es sich denn? Siemens, Beckhoff, Allen Bradley...?

Die SPS schickt die Daten als string und mein Problem ist, dass mir der komplette ansatz fehlt.
Der Ansatz ist leicht:
1) Daten empfangen
2) Daten auswerten
3) Daten visualisieren

Das ganze soll ohne Zusatzsoftware erfolgen und zukunftssicher sein (beispielsweise mit windows 20 noch lauffähig sein)
Dann mach ne exe.

Eine Programmierung in VBA oder C++?
VBA geht niemals ohne Zusatzsoftware! C++ ginge, ist aber recht aufwendig. Am besten nimmst du C#.

Ethernet over TCP
Das ergibt keinen Sinn. Lies dich mal ein, was Ethernet ist, was TCP ist.

Gohst schrieb:
Du darfst nicht SNMP Protokoll schreiben. Das ist ein redundantes Akronym. Das P steht doch für Protokoll. Niemand wird dich ernst nehmen, wenn du solche Fehler machst. Damit zeigst du nur, dass du nicht qualifiziert bist. Stell dir vor dein Bankberater würde von PIN-Nummern sprechen oder dein Arzt vom HIV-Virus, du würdest doch sofort die Bank bzw. den Arzt wechseln, wenn du erkannt hast, dass diese Leute unfähig sind.
 
"zukunftssicher"....do kommen dann DOS Rechner wie beim Jahr 2000, oder ungepatchte Windows XP Rechner nach Lebensende dabei raus.

Dass manche immer noch nicht verstehen dass Software auch gewartet werden muss.

Assembler?
 
donpanso schrieb:
Ein HPCi von GE Energy
Schade, mit denen hab ich nie gearbeitet.

Indem du es mit einer richtigen Entwicklungsumgebung programmierst. Eine solche wäre z.B. Visual Studio. Damit kannst du dann u.a. in C# programmieren und erhältst eine exe, die ohne weitere Software läuft (entsprechendes .NET Framework vorausgesetzt, aber das gehört ja zu Windows quasi dazu).

Excel wäre ok. Das besitzt unsere Fa.
VBA ist trotzdem keine Sprache, die man nutzen sollte. Das gilt grundsätzlich.


PS: In C# kannst du die Daten bequem mit der Klasse TcpListener empfangen. Dann hast du den String, den die SPS geschickt hat und alles weitere ist dann ja einfach.
 
Zum Programmieren wirst du "Zusatzsoftware" brauchen, aber keine Angst, die ist kostenlos. Das fertige Programm braucht denn je nach dem keine Zusatzsoftware mehr weil du eine .exe Datei erstellt hast oder eben auch kostenlose Software wie .net oder eine Java VM oder ein Python Interpreter, etc.
 
Olga Maslochov schrieb:
Schade, mit denen hab ich nie gearbeitet.


Indem du es mit einer richtigen Entwicklungsumgebung programmierst. Eine solche wäre z.B. Visual Studio. Damit kannst du dann u.a. in C# programmieren und erhältst eine exe, die ohne weitere Software läuft (entsprechendes .NET Framework vorausgesetzt, aber das gehört ja zu Windows quasi dazu).


VBA ist trotzdem keine Sprache, die man nutzen sollte. Das gilt grundsätzlich.


PS: In C# kannst du die Daten bequem mit der Klasse TcpListener empfangen. Dann hast du den String, den die SPS geschickt hat und alles weitere ist dann ja einfach.

Vielen Dank schonmal für deine Antwort!
Das hört sich für meinen Fall am besten geeignet an, wenn ich das so beurteilen kann, mit meinem nicht vorhandenen wissen.
Ergänzung ()

HominiLupus schrieb:
Zum Programmieren wirst du "Zusatzsoftware" brauchen, aber keine Angst, die ist kostenlos. Das fertige Programm braucht denn je nach dem keine Zusatzsoftware mehr weil du eine .exe Datei erstellt hast oder eben auch kostenlose Software wie .net oder eine Java VM oder ein Python Interpreter, etc.

Das mit der Zusatzsoftware war eher so gemeint, dass mein erster Vorschlag war, das ganze mit WinCC zu machen und darauf will die Fa verzichten.
Eine Zusatzsoftware um zum Beispiel am ende zu einer exe zu kommen ist damit nicht gemeint.
 
Zuletzt bearbeitet:
Also wenn es nur darum geht, übers Netzwerk verschickte Strings anzuzeigen, kannst du das Programm Netcat ausprobieren.
Allerdings weiß ich nicht, ob das mit deiner SPS kompatibel ist und wenn ja, ob der Output auch benutzerfreundlich ist.

Ansonsten hilft nur ne Eigenentwicklung. C# wäre dafür perfekt geeignet. Daten im Textformat zu empfangen sollte kein Problem sein,
du musst halt nur wissen, welches Encoding deine SPS verwendet. Da gibt es verschiedene Formate, z.B. UTF-8,UTF-16 oder Extended Ascii.
Wenn das Empfangen nicht so richtig klappen will, liegt es warscheinlich am Encoding.
 
Verbindest du dich mit der SPS? Also hat die eine IP und einen Port zu dem du dich verbindest? Oder ist es andersrum: Bei der SPS gibst du IP und Port an und diese verbindet sich dann zu dir?
 
kuddlmuddl schrieb:
Verbindest du dich mit der SPS? Also hat die eine IP und einen Port zu dem du dich verbindest? Oder ist es andersrum: Bei der SPS gibst du IP und Port an und diese verbindet sich dann zu dir?

ich gebe bei der sps ip und port an
 
Es gibt natürlich sehr viele Wege ans Ziel aber gerade einem Anfänger würde ich hier wegen der Einfachheit und der vielen lesbaren Beispiele Python empfehlen. So muss man auch keine komplizierte Entwicklungsumgebung installieren und es läuft auf so ziemlich jeder Hardware vom PC über Linux/Mac bis zum Raspberry.
Nach Download und Installation solltest du noch Python zum PATH hinzufügen um es bequemer benutzen zu können.

Was du brauchst ist ein TCP Server, welcher einen Socket hat über den die eingehende Verbindungen stattfindet.
Im Grunde sind es wirklich nur diese 23 Zeilen von hier.
Die Zeile die dich interessiert ist "if data:" denn dort könntest du dann statt "connection.sendall(data)" ( was die Daten einfach zurück spiegelt) auch "print data" machen um deine Aufgabe zu erledigen.

Falls du nicht immer extra mit der echten SPS Hardware testen willst macht es natürlich Sinn sich auch in einem zweiten Python-Script den TCPClient zu starten und mit diesem zu deinem eigenen Server Daten zu schicken. Dann siehst du, dass empfangene Daten die du dir lokal schickst schonmal geprinted werden und dann wirds mit der SPS auch klappen.
 
Zuletzt bearbeitet:
Zurück
Oben