# UDP-senden/empfangen



## Vbxler (22 April 2009)

Hallo an Alle!

Könnte ihr vielleicht einem S7-Umsteiger bei einem Problem unter die Arme greifen. 

Ich müsste zwischen einer Wago 750-841 und einem PC via
UDP/IP Daten austauschen (jeweils nur 10Zeichen send/receive).
Aus der PC-Seite ist das kein Problem, aber wie muss ich das auf der 
SPS machen damit ein Datagramm an den PC geht und, falls ein
Datagramm ankommt, dieses entgegennehmen.

Ich finde leider kein passendes Beispiel im Netz.

Danke für jede Hilfe.


Vbxler


----------



## enter (22 April 2009)

Schau dir mal das Handbuch zur  API MODBUS/TCP 			 DLL an sollte dir helfen
ist zwar TCP aber ....
http://www.wago.com/wagoweb/documentation/index_d.htm


----------



## Vbxler (22 April 2009)

Das habe ich mir gerade durchgesehen, aber das beschreibt
die Möglichkeiten des direkten Zugriff's vom PC auf die SPS.

Ich möchte aber nur mit dem PC ein Datagramm an die Wago-SPS
senden, diese dortauswerten und dann wieder ein Datagramm an den PC.

Danke für den Link.

Vbxler


----------



## Fx64 (23 April 2009)

Hallo Vbxler,

vielleicht wäre das etwas für Dich.

http://infosys.beckhoff.com/content/1031/tcpipserver/html/tcpipserver_overview.htm

Viele Grüße


----------



## pvbrowser (23 April 2009)

Wie UDP auf der PC-Seite funktioniert, kannst Du hier sehen.
http://pvbrowser.de/pvbrowser/sf/manual/rllib/html/classrlUdpSocket.html

Zur SPS-Seite kann ich leider nichts sagen.

Es folgt ein kleines Testprogramm zur Nutzung der obigen Klasse.
#############################################
int main(int ac, char **av)
{
  int ret;
  char buf[1024];
  rlUdpSocket udp;
  rlIpAdr dest;
  dest.setAdr("localhost",5050);

  if(ac == 2) // client
  {
    while(1)
    {
      sleep(1);
      ret = udp.sendto(av[1], strlen(av[1])+1, &dest);
      if(ret > 0)
      {
        printf("udp.sendto(%s) ret=%d\n",av[1],ret);
      }
      else printf("udp.sendto() failed\n");
    }
  }
  else // server
  {
    rlIpAdr source;
    ret = udp.bind(5050);
    while(1)
    {
      if((ret = udp.recvfrom(buf,sizeof(buf), &source, 1000)) > 0)
      {
        printf("udp.recvfrom(%s) ret=%d\n",buf,ret);
        if(dest == source) printf("dest==source\n");
        else               printf("dest!=source\n");
      }
      else printf("udp.recvfrom() failed or timeout\n");
    }
  }
  return 0;
}


----------



## Vbxler (26 April 2009)

Hallo an Alle!

Falls es jemand interessiert, hier ein kleines Projekt wie
Daten per UDP von 750-841 an einen PC und wie Daten empfangen werden.

Es ist eigentlich recht einfach, aber die Informationsbeschaffung bei
Wago ist genau so 'leicht' wie bei Siemens. 
Ich verwende die WagoLibEthernet_01, gibts bei Wago zum Download.


Vbxler


----------



## JensW (24 November 2009)

Vbxler schrieb:


> Hallo an Alle!
> 
> Falls es jemand interessiert, hier ein kleines Projekt wie
> Daten per UDP von 750-841 an einen PC und wie Daten empfangen werden.
> ...




Wo denn kannst Du es mir nochmal zur verfügung stellen.


----------



## fraggle-m (6 Juli 2011)

Hallo,

kannst Du das bitte noch mal online stellen, bin auch auf der suche nach einer möglichkeit daten an einen PC per UDP zu bekommen


----------



## Vbxler (7 Juli 2011)

Habe das alte Projekt nochmals rausgesucht.

Es sind folgende einstellungen im Projekt:
 PC   '192.168.1.2'        Port 2000
 Wago '192.168.1.100'   Port 2000

Die Zeichenanzahl bei Client/Server ist derzeit mit 7 eingestellt und muss 
gegebenenfalls anbepasst werden.


----------



## fraggle-m (7 Juli 2011)

Vielen Dank!!!

hat weiter geholfen

Frank


----------

