Sonstiges ISO over TCP senden -> C# empfangen

Bergungsdackel

Level-1
Beiträge
39
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag.

Ich nutze eine S7-1200 und möchte mit dem TSEND-Baustein Daten über ISO-over-TCP senden. Der Empfänger ist mein C#-Programm laufend auf Windows. Bibliotheken wie libnodave haben soweit mir bekannt nur die Möglichkeit auf (beispielsweise) DBs zuzugreifen, jedoch nicht auf Daten zu warten bis diese vom TSEND Baustein gesendet werden. Gibt es diesbezüglich eine Möglichkeit oder eine bestehende Bibliothek für C#?
Zusammengefasst:
PLC sendet Daten (Bytes...) mit TSEND über ISO-over-TCP an einen zunächst unspezifizierten Empfänger - dieser Empfänger ist mein C#-Programm auf Windows. Ich suche sozusagen einen TRCV Baustein in C# programmiert, welcher auch ISO-over-TCP unterstützt (unterschiedliche TSAP, etc.).

Gruß
 
In libnodave ist Iso on TCP nur als Client. Bei Snap7 gibt es soweit ich weiß auch ein Teil der als Iso on TCP als Server arbeitet.

In meinem Nettoplcsim Programm ist sowas auch enthalten, das ist in C# geschrieben. Allerdings ist im ISO Teil nur so viel vorhanden wie ich für S7 Kommunikation benötige. Ich habe mir eine nackte Iso on TCP Verbindung zwischen SPSen noch nie angesehen.

 
Zuviel Werbung?
-> Hier kostenlos registrieren
In libnodave ist Iso on TCP nur als Client. Bei Snap7 gibt es soweit ich weiß auch ein Teil der als Iso on TCP als Server arbeitet.

In meinem Nettoplcsim Programm ist sowas auch enthalten, das ist in C# geschrieben. Allerdings ist im ISO Teil nur so viel vorhanden wie ich für S7 Kommunikation benötige. Ich habe mir eine nackte Iso on TCP Verbindung zwischen SPSen noch nie angesehen.

Hallo. Erst einmal danke für deine Antwort. Jedoch habe ich noch einige Fragen.

Ich habe mir deinen Code angeschaut und schaut soweit ganz gut aus. Jedoch sehe ich nicht an welcher Stelle er Daten empfängt (nicht das ganze ISOonTCP Telegram sondern nur die Nutzdaten daraus). Im namespace ISOonTCP finde ich eine Send-Funktion... oder gibt es in diesem Code keine Receive-Funktion?

Gruß und danke.
 
Beim Empfang von Daten wird ein Callback "OnReceived" aufgerufen, den du in deinem Teil implementieren musst. Ob man das so machen muss sei dahingestellt, bei mir ist das alle eng mit der S7online-Schnittstelle verzahnt. Man kann das auch alles viel einfacher ohne die ganzen separaten Klassen für die einzelnen Layer machen, so ist es z.B. bei Snap7 oder auch libnodave gelöst.
 
Beim Empfang von Daten wird ein Callback "OnReceived" aufgerufen, den du in deinem Teil implementieren musst. Ob man das so machen muss sei dahingestellt, bei mir ist das alle eng mit der S7online-Schnittstelle verzahnt. Man kann das auch alles viel einfacher ohne die ganzen separaten Klassen für die einzelnen Layer machen, so ist es z.B. bei Snap7 oder auch libnodave gelöst.
Okay danke. Das hab ich mir schon gedacht. Wo hast du die Klasse "IsoServiceProvider" her bzw. was genau ist das, die habe ich nicht und die fehlt mir um den Code zu benutzen/anzupassen. Außerdem die library "HexDumping"? Danke schon mal im Voraus. Kann ich dich bei Fragen auch privat anschreiben?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier gibt es auch eine Bibliothek für "Iso over TCP" oder auch RFC1006 genannt, läuft als Server oder Client am PC, gemacht für .NET
Für Dich wäre die Server-Variante interessant, Demo direkt aus der Seite ladbar, für Download keine Registrierung notwendig.
 
Hier gibt es auch eine Bibliothek für "Iso over TCP" oder auch RFC1006 genannt, läuft als Server oder Client am PC, gemacht für .NET
Für Dich wäre die Server-Variante interessant, Demo direkt aus der Seite ladbar, für Download keine Registrierung notwendig.
Hallo.
Danke für den Link. Für mich wäre eher eine kostenlose Variante interessant. Ist zwar mit bisschen Programmieraufwand verbunden, jedoch irgendwie machbar...

Gruß
 
Zurück
Oben