Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

TCP Kommunikation Master Slave Anfänger braucht Hilfe.

bjoern
2010-06-21
2010-06-22
  • bjoern - 2010-06-21

    Hallo liebe Wago Gemeinde,

    ich habe heute ein kleines Projekt von meinem Chef aufs Auge gedrückt bekommen, bei dem ich leider nicht wirklich weiter komme.

    Ich habe vor Einigerzeit ein .Net Anwendung für einen Kunden geschrieben bei der Lagerbestände via Barcodesacanner in einer SQL Datenbank erfasst werden und mit einer DB2 Datenbank verglichen werden. Wenn der gescannte Barcode nun nicht in der DB2 Datenbank vorhanden ist erscheint eine Warnmeldung auf dem Monitor.

    Da die Bediener aber leider nicht die hellsten sind und diese Meldung einfach ignorieren, soll nun zusätzlich zur Warnmeldung die Produktionsstrecke angehalten werden, so das der Bediener etwas unternehmen muss. Die Produktionsstrecke wird von einer S7 gesteuert (hiervon habe ich keine Ahnung) Knotenpunkt zwischen der S7 und meinem VB Programm ist der Wago 750-841 mit 8x in und 8x out. Die Mitarbeiter die die S7 Programmieren benötigen zum Anhalten lediglich einen kurzen Impuls. Hierzu müsste ich via TCP/IP am 750-841 den ersten Digitalen out kurz anschalten und wieder aus.

    Ich habe nun in meinem .net Programm einen TCP/IP Master implementiert der auf einem gewissen Port einen String bei Fehlermeldung sendet.

    Da ich leider noch nicht wirklich viel Ahnung von Codesys habe, bin ich erst mal das Handbuch für die Grundinstallation durchgegangen. Das heißt eine Kommunikation via Codesys mit dem 750-841 geht, ich kann auch Projekte uploaden und starten.

    Nur weiß ich nicht genau welche lib und vor allem welche Bausteine ich verwenden sollte.

    Ich habe mich mit dem ETHERNET_TERMINAL_MODBUSSLAVE bzw. dem ETHERNET_SERVER_OPEN_CLOSE Baustein versucht und bekomme auch eine Verbindung hin nur leider kommt der String nicht an.

    Vielleicht kann mir ja jemand einen Stupser in die richtige Richtung geben.

    Wenn noch Informationen fehlen kurz posten

    Vielen Dank

     
  • Uwe - 2010-06-22

    Hallo Björn,

    ich stubs dich mal in Richtung Modbus-TCP.

    http://www.wago.com/wagoweb/documentati ... 00003d.pdf

    Du baust eine TCP-Verbindung auf und verschickst TCP-Pakete.

    Z.Zt. packst du in diese Pakete einfach einen String.

    Der Schlüssel ist, das du statt eines Strings Modbustelegramme in das Paket packen musst.

    Der 841 hat von Hause aus auf dem Port 502 einen Modbusserver laufen.

    Du kannst z.B. folgendes versuchen :

    Definiere im CoDeSys auf dem 841 folgende Variable

    myVariable AT%IX256.0 : BOOL;
    

    Wenn du z.B. nun folgendes TCP-Paket an den Port 502 schickst

    0x00 0x00 0x00 0x00 0x00 0x07 0x00 0x0F 0x03 0x00 0x00 0x01 0x01

    dann sollte diese Variable auf TRUE wechseln.

    Mit folgendem Paket sollte sie wieder auf FALSE wechseln

    0x00 0x00 0x00 0x00 0x00 0x07 0x00 0x0F 0x03 0x00 0x00 0x01 0x02

    (ungetestet ... aber das ist ein möglicher Weg)

    Uwe

     

Log in to post a comment.