Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: Winsock-Steuerelmnt ähnlich Kommunikation unter TwinCAT

  1. #1
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    momentan kommuniziere ich mit meinem SolarMax Wechselrichter mit einem VB Programm mit integriertem Winsock Steuerelement über das Netzwerk.
    Nun möchte ich diese Kommunikation in ein TwinCAT Programm übernehmen, kann mir jemand sagen wie ich dass erreichen kann?

    Das Programm sieht in etwa wie folgt aus:

    Beim laden des Programms wird der Wechselrichter verbunden
    Code:
    Winsock.Connect <IPadresse>, <Port>
    steht die Verbindung wird ein String gesendet
    Code:
    Winsock.SendData <Sendstring>
    Gruß
    Borsti87
    Geändert von borsti87 (01.08.2010 um 13:57 Uhr) Grund: Präzisierung der Anfrage
    Zitieren Zitieren Winsock-Steuerelement ähnlich Kommunikation unter TwinCAT  

  2. #2
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 64 Danke für 62 Beiträge

    Standard

    Es gibt den TwinCAT TcpIp Server. Der ermöglicht es, aus der PLC herraus auf Sockets (Tcp und Udp) zuzugreifen. Das ist ein Produkt und kann bei Beckhoff bestellt werden. Weitere Informationen dazu findest du im InformationSystem (infosys.beckhoff.de) unter TwinCAT Supplements.

  3. Folgender Benutzer sagt Danke zu Neals für den nützlichen Beitrag:

    borsti87 (07.08.2010)

  4. #3
    Registriert seit
    28.03.2008
    Beiträge
    142
    Danke
    19
    Erhielt 25 Danke für 25 Beiträge

    Standard

    Braucht man da wirklich ein extra Produkt für? Ich wäre davon ausgegangen das TwinCAT das mit Bordmitteln lösen kann. Habe ich selbst aber noch nie gemacht.

    TcpIp.Lib
    http://infosys.beckhoff.com/index.ph...w.htm&id=18319

    TcSocketHelper.Lib
    http://infosys.beckhoff.com/index.ph...w.htm&id=18357


    Komm und wecke den Teufel unter meiner Schädeldecke. Das Chaos hat die Macht!

  5. #4
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 64 Danke für 62 Beiträge

    Standard

    Dann guck mal richtig nach, was du da für Links geschickt hast. Da steht drunter:
    Installation: Die SPS-Bibliothek wird mit dem TwinCAT TCP/IP Connection Server mitgeliefert und während der Installation in den ...\TwinCAT\PLC\Lib-Ordner kopiert.
    Das Problem ist ja, aus der PLC herraus (Echtzeit) einen Socket anzusteuern, der andauernd irgend welche Ressourcen blockt und Wartezeiten hat. Daher die Umsetzung über einen gesonderten Server (Service) welcher ausserhalb der Echtzeit ein Ansteuerung von Sockets ermöglicht.

  6. #5
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,
    hab jetzt die TwinCAT TCP/IP Connection Server installiert nun ist das ganze natürlich wesentlich umfangreicher wie das Winsock Steuerelement unter VB
    Kann mir wer sagen wie ich am einfachsten eine TCP Verbindung zwischen meinem Rechner und meinem SolarMax Wechselrichter hinbekomme?

    Folgende Eckdaten sollen erfüllt werden:

    Steuerung IP : 192.168.1.1
    Wechselrichter IP : 192.168.1.2
    Kommunikationsport : 12345

    Es soll ein String wie folgender von der Steuerung an den Wechselrichter gesendet werden

    Code:
    sSendString := {FB;01;66|64:UDC;PAC;KYR;KMT;KT0;PRL;UL1;IDC;IL1;TKK;KDY;KLD;SWV;TYP;SYS;SAL;SE1;SE2;SPR;SCD;PIN|1A8C};
    dannach soll vom Wechselrichter die Antwort abgewartet werden (TimeOut = 3s) und in eine String-Variable geladen werden.

    Ich hab mir schon versucht etwas aus den Kopf zu drücken aber irgendwie denke ich oder Beckhoff zu kompliziert
    Unter VB-Habe ich dass schon, zwar ohne Timeout, hinbekommen.

    Hier mal als bespiel mein kleines VB-Testprogramm:
    Code:
    Private Sub Form_Load()
    Command1.Enabled = False
    Winsock1.Connect "192.168.1.123", 12345
    End Sub
    
    Private Sub Winsock1_Connect()
    Command1.Enabled = True
    End Sub
    
    Private Sub Command1_Click()
      On Error Resume Next
      Winsock1.SendData txtSendstring.Text
    End Sub
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim sData As String
     
      ' Die ankommenden Daten werden in einer Variable
      ' (strDaten) gespeichert
      Winsock1.GetData sData
     
      ' Und in einer MutliLine-TextBox ausgegeben
      With txtMsg
        .SelStart = Len(.Text)
        .SelText = sData
      End With
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
      Winsock1.Close
    End Sub
    Gruß
    borsti87

  7. #6
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 64 Danke für 62 Beiträge

    Standard

    Zitat Zitat von borsti87 Beitrag anzeigen
    Code:
    Private Sub Form_Load()
    Command1.Enabled = False
    Winsock1.Connect "192.168.1.123", 12345
    End Sub
    
    Private Sub Winsock1_Connect()
    Command1.Enabled = True
    End Sub
    
    Private Sub Command1_Click()
      On Error Resume Next
      Winsock1.SendData txtSendstring.Text
    End Sub
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim sData As String
     
      ' Die ankommenden Daten werden in einer Variable
      ' (strDaten) gespeichert
      Winsock1.GetData sData
     
      ' Und in einer MutliLine-TextBox ausgegeben
      With txtMsg
        .SelStart = Len(.Text)
        .SelText = sData
      End With
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
      Winsock1.Close
    End Sub
    Gruß
    borsti87
    Winsock1.Connect -> FB_SocketConnect
    Winsock1.SendData -> FB_SocketSend
    Winsock1.GetData -> FB_SocketReceive
    Winsock1.Close -> FB_SocketClose

    Bei Connect gibst du IP und Port an, kriegst bei erfolgreicher Verbindung ein Handle auf den Socket (hSocket : T_HSOCKET). An die anderen Bausteine gibst du einfach immer dieses Handle weiter.

    Im InfoSys von Beckhoff findest du dazu auch mehrere Beispiele: http://infosys.beckhoff.com/content/...w.htm?id=18340

  8. Folgender Benutzer sagt Danke zu Neals für den nützlichen Beitrag:

    borsti87 (07.08.2010)

  9. #7
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    By the Way,

    erst mal einen Dank an Neals jetzt hab ichs endlich

    nun möchte ich TwinCAT dazu bringen das zu jeder vollen 5. Minute (also um 5 nach, um 10 nach, um 15 nach usw.) auszuführen ich hole mir die eit mit NT_GetTime nur wie bekomme ich es sauber hin das ich dann passend eine boolsche Variable aud TRUE setze?

    Gruß
    Borsti87

  10. #8
    Registriert seit
    01.09.2008
    Ort
    Berlin
    Beiträge
    172
    Danke
    51
    Erhielt 51 Danke für 44 Beiträge

    Standard

    NT_GetTime liefert als Ausgang ein TimeStruct, aus dem kannst du die Minuten einzeln abfragen (xxx.wMinute) und dann wie folgt auswerten:

    Code:
    VAR
        f_trig_1: F_TRIG; (* f_trig_1.Q ergibt eine positive Flanke bei jeder vollen 5. Minute *)
        wMinute: WORD; (* Im Programm durch den w.Minute-Wert von NT_GetTime ersetzen! Diese Deklaration ist dann nicht erforderlich. *)
    END_VAR
    
    ______________________
    
    f_trig_1(CLK:= WORD_TO_BOOL (wMinute) AND WORD_TO_BOOL ( wMinute MOD 5 )) ;


  11. Folgender Benutzer sagt Danke zu ebt'ler für den nützlichen Beitrag:

    borsti87 (20.03.2011)

  12. #9
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    nach längerer zeit melde ich mich mal wieder zu dem Thema.
    Ich hab das Projekt aus zeitlichen gründen eine weile ruhen lassen und wollte mich jetzt wieder daran begeben. Nur war und ist mein Problem die automatische wieder aufnachme der Verbindung des TCP/IP Servers mit dem Endgerät wenn dieses sich abschaltet oder die LAN-Verbindung zum Gerät unterbrochen wird.
    Ich weis noch nicht genau wie ich dass realisieren kann und bin desshalb für jeden rat dankbar!

    Gruß
    Borsti

  13. #10
    Registriert seit
    28.07.2007
    Beiträge
    71
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    ich stehe grade total auf dem Schlauch.

    versuche grade eine Verbindung mit meinem Wechselrichter aufzubauen doch iwie geht das grade nicht. Hier mal das Programm:

    Code:
    VAR
        fbSocketCloseAll     : FB_SocketCloseAll;
        bCloseAll            : BOOL := TRUE;
        fbSocketConnect      : FB_SocketConnect;
    END_VAR
    Code:
    IF bCloseAll then
        fbSocketCloseAll(bExecute := TRUE);
        bCloseAll := FALSE;
    ELSE
        fbSocketCloseAll(bExecute := FALSE);
    END_IF
    
    IF NOT fbSocketCloseAll.bBusy THEN
        fbSocketConnect(sRemoteHost:= '192.168.1.123',
                        nRemotePort:= 12345,
                        bExecute := TRUE)
    End If
    Das Problem ist das kein neues Socket aufgebaut wird und als die nErrId der Wert 6 annimmt.

    Ich habe die Verbindung zuvor mit Winsock geprüft Port und IP sind korrekt und es konnte eine Verbindung aufgebaut werden.

    Worin liegt das Problem?

    MfG
    borsti87

Ähnliche Themen

  1. Visualisierung für TwinCAT unter WinCE
    Von nekron im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 16.06.2010, 17:44
  2. Installation von TwinCAT unter Win7
    Von jensi-7910 im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 01.12.2009, 20:29
  3. Mit Visualisierung booten unter Twincat
    Von Hitschkock im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 26.08.2009, 22:04
  4. TwinCat unter VMWare startet nicht
    Von HRman im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 31.01.2009, 22:31
  5. Strukturinhalte vergleichen unter TwinCAT
    Von grosser_marco im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 23.01.2009, 08:40

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •