TIA TCP/IP SPS <-> Roboter (bidirektional)

Newbow

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe folgendes Problem:
Ein recht alter Mitsubishi RV-2AJ Roboter soll über TCP/IP mit einer S7 ET200SP kommunizieren, bzw. die SPS diesen kontrollieren.
Über einen zusammengesetzten String, welcher an den Roboter geschickt wird, lassen sich Variablen auf ihren Zustand hin abfragen.
Ein anderer String ermöglicht es diese zu beschrieben.

Beispiel Abfrage der Variablen "iSchritt":
'1;1;VALiSchritt;M'
Sendet man diesen String an den Roboter so erhält man normalerweise eine direkte Rückmeldung wie diese:
'QoKISCHRITT%=+0'

Über Netcat funktioniert es tadellos. Wird folgender Befehl gesendet kommt sofort die Rückmeldung.
echo -n '1;1;VALiSchritt;M' | n c 192.168.0.4 10001
Allerdings bekomme ich das selbe Ergebnis nicht mit den Bausteinen TSEND_C und TRCV_C hin.
Die Verbindung mit TSEND_C zu senden der Daten funktioniert einwandfrei. die Daten kommen auch am Roboter an.
Nur verstehe ich nicht wie ich die bidirektionale Verbindung einrichte, dass ich die Rückmeldung ebenfalls empfange?
Wie die Verbindung mit TSEND_C und TRCV_C von SPS zu SPS gedacht ist und funktioniert ist mir klar. nur Verstehe ich nicht so recht wie ich die Client/Server Verbindung zum Roboter aufbauen muss.

Zur Verständnis, nicht dass ich grundlegend was falsch verstehe:
Theoretisch ist die Verbindung durch TRCV_C ja eine von TSEND_C getrennte Verbindung und kann somit gar nicht die Rückmeldung erhalten.
Aber der Baustein TSEND_C lässt nur eine einseitige Verbindung zu.
Auch wenn ich das selbe mit den "alten" Bausteinen TCON, TDISCON, TSEND, TRCV, ... aufbaue müsste ja das gleiche Ergebnis raus kommen, da die TSEND_C/TRCV_C ja nur die zusammengefassten Varianten davon sind.

Ist es irgendwie möglich die Sendeverbindung mit einem TRCV "anzuzapfen" um das Telegramm zu erhalten?
Unter "Geräte & Netze" -> "Verbindungen" tauchen zwei gesonderte Open User Kommunikationsverbindungen auf, einmal für TSEND_C und einmal für den TRCV_C.
Ich frage mich nur die ganze Zeit wie man dann eine einzige bidirektionale Verbindung aufbauen kann.

Oder habe ich irgendwie das Konzept von TCP/IP nicht ganz verstanden? Ich dachte immer ein Partner baut aktiv eine Verbindung auf, dann können beide über diese Daten austauschen.
Die Ports auf den gegenüberliegenden Seiten müssen bekannt sein (Empfang) die Sendeports sind ja variabel und werden meist vom System verwaltet.

Ich habe mal ein schematisches Bild angehängt wie das ganze momentan "eingerichtet" ist.
RobCom.png

Ich wäre über jegliche Hilfe dankbar :)

Vielen Dank

Gruß
Newbow
 
Wenn es denn unbedingt mit "..._C" sein muß: nimm mal nur einen Baustein mit "..._C", also z.B. TSEND_C + TRCV, oder TSEND + TRCV_C (auf der selben Verbindung).
Ich verwende die _C-Bausteine nicht, ich nehme TCON + TSEND + TRCV

Harald
 
Zurück
Oben