Sonstiges ISO over TCP senden -> C# empfangen

Bergungsdackel

Active member
Beiträge
29
Punkte Reaktionen
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ß
 

Thomas_v2.1

Well-known member
Beiträge
8.139
Punkte Reaktionen
2.461
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.

 
OP
B

Bergungsdackel

Active member
Beiträge
29
Punkte Reaktionen
0
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.
 

Thomas_v2.1

Well-known member
Beiträge
8.139
Punkte Reaktionen
2.461
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.
 
OP
B

Bergungsdackel

Active member
Beiträge
29
Punkte Reaktionen
0
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?
 

Process-Informatik GmbH

Active member
Beiträge
44
Punkte Reaktionen
21
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.
 
OP
B

Bergungsdackel

Active member
Beiträge
29
Punkte Reaktionen
0
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ß
 
Oben