# IP\_CONTROL im Detail

**URL:** <https://oscat.discourse.group/t/ip-control-im-detail/2049>\
**Category:** Anwendungsbeispiele / Application Examples\
**Created:** [29. März 2016 um 06:44 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049 "2016-03-29T06:44:59Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![SKnuepfer](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@SKnuepfer](https://oscat.discourse.group/u/SKnuepfer)\
**Post date:** [29. März 2016 um 06:44 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/1 "2016-03-29T06:44:59Z")

</div>

Ich habe folgendes Problem.

Ich möchte mit dem IP\_CONTROL von einem WAGO 750-881 ein UDP Telegramm an einen Ethernet-Gateway schicken, welches dann entsprechende Daten an den Controller  
zurücksendet. Das senden der Daten funktioniert einwandfrei, es kommt auch das gewünschte Datentelegramm lt. Wireshark wieder zurück, jedoch im R\_BUFF des IP\_CONTROL  
ist nichts zu finden (immer 0 Länge und das Array ist auch 0). Die Besonderheit bei dieser Sache wäre, das das Ethernet-Gateway auf einen festgelegten Port die Daten  
zurück schickt (24273). Wie kann ich den IP\_CONTROL so einstellen, das das Telegramm auch auf diesem Port gelesen wird ? Muß ich beim Empfangen der Daten den Port ändern ?  
Den IP Mode denke ich richtig gewählt zu haben.

Ich habe mal die Einstellungen des Ethernet-Gateways als Screenshot angehangen. Auch habe ich meinen Baustein, der lediglich im PLC\_PRG blank aufgerufen werden kann  
als Export mit rangehangen. Wie schon erwähnt, Zielsystem WAGO 750-881 mit Codesys 2.3.9.46 und OSCAT NetWork\_130.lib

Vielen Dank für eine kurze Hilfestellung

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [29. März 2016 um 07:35 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/2 "2016-03-29T07:35:13Z")

</div>

so wie es aussieht gibt es einen lokal port und einen command port

dann musst du zwei ip\_control verwenden (für jeden port einen ip\_control)  
ein ip\_control kann immer nur auf einen port zuständig sein bzw verarbeiten

---

<div class="post-metadata">

**Author:** ![SKnuepfer](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@SKnuepfer](https://oscat.discourse.group/u/SKnuepfer)\
**Post date:** [29. März 2016 um 11:19 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/3 "2016-03-29T11:19:34Z")

</div>

Hallo peewit,

habe probiert einen 2. IPC\_ONTROL hinzu zu nehmen, klappt leider noch nicht.

Könntest Du mir den Rumpf einer kleinen “Statemaschine” dafür mal zukommen lassen ?

Ich befürchte, das ich beim Aufrufen noch Fehler mache. Vielen Dank

Sandro

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [29. März 2016 um 12:34 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/4 "2016-03-29T12:34:21Z")

</div>

stell doch mal einen wireshark mitschnitt online  
mit kurzer beschreibung

---

<div class="post-metadata">

**Author:** ![SKnuepfer](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@SKnuepfer](https://oscat.discourse.group/u/SKnuepfer)\
**Post date:** [29. März 2016 um 14:33 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/5 "2016-03-29T14:33:13Z")

</div>

Hallo peewit,

ich denke ich habe es hinbekommen. Die Empfangspuffer füllen sich 🙂 nun noch eine kleine Frage:  
Beim auslösen der Sendabfrage gehen immer gleichzeitig 2 Telegramme von der WAGO (IP: 192.0.6.170) an den  
anderen Teilnehmer, das ist schön im Wireshark zu sehen. Wo ist da noch der Wurm drin ?

Ich habe nochmals meinen Baustein (als Export) und auch den Wireshark Auszug rangehangen.

Erklärung:

192.0.6.170 (WAGO) sendet Daten an 192.0.6.91 (Ethernet-Gateway) über die IPC1-Instanz  
192.0.6.170 (WAGO) empfängt Daten von 192.0.6.91 (Ethernet-Gateway) über die IPC2-Instanz

Es werden insgesamt 2 verschiedene Datensätze vom Ethernet-Gateway angefragt.

VG  
Sandro

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [30. März 2016 um 12:03 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/6 "2016-03-30T12:03:34Z")

</div>

hallo

warum das telegramm zweimal versendet wird konnte ich auf die schnelle auch nicht erkennen

aber struktuell ist das ein ziemliches glücksrad…

1. IP\_C1 und IP\_C2 müssen gleichezeitig eingerichtet werden, da ja unmittelbar eine antwort erfolgt und es  
ansonsten zufall ist ob sich das zeitlich ausgeht.

2. Datensenden oder empfangen sollte nie mit eine Zeitabfrage beendet werden  
Bei Daten senden musst du bei S\_BUF.SIZE die byteanzahl eintragen  
sobald die daten erfolgreich versendet wurden wird von IP\_CONTROL bei S\_BUF.SIZE wieder 0 eingetragen  
und Daten sind dann empfangen worden wenn bei R\_BUF.SIZE \> 0 ist.

3. Da du zuerst über einen port aktiv daten sendest und über den anderen etwas passiv empfängst  
würde ich IP\_C1 mit Mode 1 und IP\_C2 mit Mode 3 betreiben  
Aber das ist wahrscheinlich nichts ausschlaggebendes…

ich habe mal den baustein etwas klarer aufgebaut (siehe anhang)  
achtung → ungetestet und nur im editor heruntergetippt  
sollte auch nur ein richtungsweisnender vorschlag sein !

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![SKnuepfer](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@SKnuepfer](https://oscat.discourse.group/u/SKnuepfer)\
**Post date:** [1. April 2016 um 15:30 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/7 "2016-04-01T15:30:10Z")

</div>

Hallo peewit,

Dein Beispiel hat funktioniert, ich habe nur noch die Empfangsüberwachung am 2. Aufruf des IP\_CONTROL aktiviert und den MODE  
am ersten IP\_CONTROL Aufruf wieder auf 3 gestellt und schon ging es.  
Vielen Dank für und damit alle was davon haben, habe ich nochmals den Export mit an diese Antwort mit rangehangen.

Um was ging es hier ?

Abfrage meiner 2 Wechselrichter (SMA) über ein Ethernet-Gateway (JetPort) das dann an die Wechselrichter über RS485 gekoppelt ist.

Was macht das ganze ? Mein Wunsch war die aktuelle Leistung die die Anlage auf dem Dach hat, relativ zeitnahe in meine Haussteuerung zu bekommen  
um den Eigenverbrauch zu optimieren (z.B. Warmwassererhitzung)

Den Telegrammaufbau habe ich mir selbst mittels dem yasdi-Tool von SMA erarbeitet und mit WireShark analysiert.

Das Besondere hierbei war, das das Gateway auf einen definierten Port zurückantwortet. Dies wurde Dank des 2. IP\_CONTROL-Aufrufes erst möglich.

Die ganze Solarauswertung mache ich allerdings mit SolarView, das ganze ist unter [http://solar.knuepfer.net](http://solar.knuepfer.net) abrufbar.  
Diese Auswertung reicht mir vollkommen.

Also vielen Dank nochmals, wer Fragen hierzu kann hier nochmals was los werden. Ein sonniges Wochenende wünsche ich.

Sandro

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [1. April 2016 um 16:19 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/8 "2016-04-01T16:19:51Z")

</div>

Hallo  
Danke das du für die allgemeinheit nochmals alles erklärt hast

Hast du immer noch die doppelten Telegramme ?

---

<div class="post-metadata">

**Author:** ![SKnuepfer](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@SKnuepfer](https://oscat.discourse.group/u/SKnuepfer)\
**Post date:** [1. April 2016 um 18:15 UTC](https://oscat.discourse.group/t/ip-control-im-detail/2049/9 "2016-04-01T18:15:51Z")

</div>

Nein, die doppelten Telegramme sind weg, es ist jetzt genau so, wie es sein soll.

Muß nur noch das Empfangstelegramm ca. 250 Byte auseinander drösseln.
