-> Hier kostenlos registrieren
Hallo Zusammen,
ich versuche aktuell, eine Verbindung zwischen einer Spannungsquelle einer Fremdfirma und einer Siemens CPU 1512SP-1 PN mit TIA Version 15.1 über Modbus TCP herzustellen.
Die Spannungsquelle ist mit einem Ethernet Anschluss versehen. SPS (192.168.3.156) und Quelle (192.168.3.35) sind über einen Switch verbunden und die IP-Adressen befinden sich im selben Netzwerk. Ich erreiche beide per Ping.
Vom Hersteller habe ich eine Testsoftware erhalten, mit der ich die Verbindung testen konnte. Dabei habe ich mithilfe von Wireshark die Kommunikation aufgezeichnet. Es handelt sich sicher um eine Kommunikation per TCP. Mit dem bisherigen Wissen (Ethernet Schnittstelle und TCP als Kommunikationsprotokoll) sollte eigentlich nichts mehr gegen eine Kommunikation per Modbus TCP sprechen, oder sehe ich das falsch?
In der SPS habe ich einen MB_CLIENT Baustein angelegt, weil die SPS einen Befehl an die Quelle schicken soll. Diese sendet im Normalfall immer direkt eine Antwort zurück. Ich sende von der SPS die Nachricht "F1\n" als Hexcode (46, 31, 0a), damit wird die Quelle eingeschaltet. Als Antwort sollte eigentlich "E0\n" (kein Fehler) zurückkommen.
Hier liegt aktuell wahrscheinlich auch mein Problem, denn der Ausgang DONE vom MB_CLIENT wechselt nie auf True. Beim Status werden mir abwechselnd die folgenden drei Codes angezeigt:
16#7005: Daten werden gesendet
16#7006: Daten werden empfangen
16#80C3: Error Code von TCON: Alle Verbindungsressourcen sind belegt.
Die Meldungen machen irgendwo auch Sinn, weil die Quelle immer sofort eine Antwort sendet. Allerdings verstehe ich nicht, wie ich die Kommunikation anders aufsetzen muss, dass das Senden und Empfangen sauber nacheinander abgearbeitet wird und der Baustein nicht in einen Error wechselt. Bzw verstehe ich das Problem an der Stelle überhaupt richtig?
Hat jemand dazu Erfahrungen und kann mir weiterhelfen? Vielen Dank schon mal!
Hier sind noch mein Bausteinaufruf und die Parameter, die ich dabei verwende:
ich versuche aktuell, eine Verbindung zwischen einer Spannungsquelle einer Fremdfirma und einer Siemens CPU 1512SP-1 PN mit TIA Version 15.1 über Modbus TCP herzustellen.
Die Spannungsquelle ist mit einem Ethernet Anschluss versehen. SPS (192.168.3.156) und Quelle (192.168.3.35) sind über einen Switch verbunden und die IP-Adressen befinden sich im selben Netzwerk. Ich erreiche beide per Ping.
Vom Hersteller habe ich eine Testsoftware erhalten, mit der ich die Verbindung testen konnte. Dabei habe ich mithilfe von Wireshark die Kommunikation aufgezeichnet. Es handelt sich sicher um eine Kommunikation per TCP. Mit dem bisherigen Wissen (Ethernet Schnittstelle und TCP als Kommunikationsprotokoll) sollte eigentlich nichts mehr gegen eine Kommunikation per Modbus TCP sprechen, oder sehe ich das falsch?
In der SPS habe ich einen MB_CLIENT Baustein angelegt, weil die SPS einen Befehl an die Quelle schicken soll. Diese sendet im Normalfall immer direkt eine Antwort zurück. Ich sende von der SPS die Nachricht "F1\n" als Hexcode (46, 31, 0a), damit wird die Quelle eingeschaltet. Als Antwort sollte eigentlich "E0\n" (kein Fehler) zurückkommen.
Hier liegt aktuell wahrscheinlich auch mein Problem, denn der Ausgang DONE vom MB_CLIENT wechselt nie auf True. Beim Status werden mir abwechselnd die folgenden drei Codes angezeigt:
16#7005: Daten werden gesendet
16#7006: Daten werden empfangen
16#80C3: Error Code von TCON: Alle Verbindungsressourcen sind belegt.
Die Meldungen machen irgendwo auch Sinn, weil die Quelle immer sofort eine Antwort sendet. Allerdings verstehe ich nicht, wie ich die Kommunikation anders aufsetzen muss, dass das Senden und Empfangen sauber nacheinander abgearbeitet wird und der Baustein nicht in einen Error wechselt. Bzw verstehe ich das Problem an der Stelle überhaupt richtig?
Hat jemand dazu Erfahrungen und kann mir weiterhelfen? Vielen Dank schon mal!
Hier sind noch mein Bausteinaufruf und die Parameter, die ich dabei verwende: