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

Ergebnis 1 bis 2 von 2

Thema: Libnodave + Verbindung CPU

  1. #1
    Registriert seit
    19.04.2009
    Beiträge
    302
    Danke
    31
    Erhielt 40 Danke für 32 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    ich hätte mal wieder ein Problem.
    Kurze Beschreibung von meinen Problem/Aufgabe. Ich möchte mit einen Programm eine Verbindung aufbauen oder nicht. Dazu benutze ich folgenden code.

    Code:
    public static Boolean Verbindung(bool aktiv)
        {
               if (dc != null && aktiv == false)
               {
                   dc.disconnectPLC();
                   libnodave.closeSocket(fds.rfd);
                   return false;
               }
    
               if (aktiv == true)
               {
                   fds.rfd = libnodave.openSocket(port, ipadress);
                   fds.wfd = fds.rfd;
                   if (fds.rfd > 0)
                   {
                       di = new libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);
                       di.setTimeout(1000000);
                       dc = new libnodave.daveConnection(di, 0, rack, slot);
                   }
                   //Ausgabe ob Verbindung geklappt hat
                   if (dc != null && dc.connectPLC() == 0) { return true; } else { return false; }
                }
                else
                {
                    return false;
                }
        }
    jetzt wird die Verbindung jedoch alle 3 Sek. über einen Timer aufgerufen, also sozusagen ob sie noch besteht oder ob ich sie aufbauen muss.

    Das Problem ist jedoch jetzt was ist wenn die CPU mit der ich mich verbinden will "Aus" ist? Er wartet immer und das Programm lässt sich nicht mehr bedienen.
    Jetzt wäre mein ansatz das Problem zu lösen, indem ich die Station anpinge und schaue ob sie aktiv ist.

    Oder gibts da eine einfachere Methode?
    Zitieren Zitieren Libnodave + Verbindung CPU  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hab das in meiner Library so gelöst, das Ich das in einem extra Thread probiere, welchen Ich nach einer gewissen Zeit kille!

    Bspcode (CSHARP)
    Code:
    void socketTimer_Elapsed(object sender, ElapsedEventArgs e)
            {
                socketTimer.Stop();
                socketThread.Abort();            
            }
    
            public void socket_Thread()
            {
                _fds.rfd = -999;
                _fds.rfd = libnodave.openSocket(_configuration.Port, _configuration.CpuIP);
            }
    
    
    socketTimer = new System.Timers.Timer(_configuration.TimeoutIPConnect);
                        socketTimer.Elapsed += new ElapsedEventHandler(socketTimer_Elapsed);
                        socketTimer.Start();
                        socketThread = new Thread(new ThreadStart(this.socket_Thread));
                        socketThread.Start();
                        while (socketThread.ThreadState==ThreadState.Running)
                        { }
                        socketTimer.Stop();
                        socketThread.Abort();
                        socketTimer = null;
                        socketThread = null;
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  3. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    Proxy (21.03.2011)

Ähnliche Themen

  1. Anleitung libnodave verbindung zum S7 SPS
    Von stblme01 im Forum Hochsprachen - OPC
    Antworten: 20
    Letzter Beitrag: 28.10.2015, 20:29
  2. LibNoDave - Verbindung prüfen
    Von Chefmech im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.03.2009, 01:58
  3. libnodave Verbindung
    Von Mike1972 im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 30.01.2008, 16:54
  4. Libnodave as511 Verbindung
    Von saurugst im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 21.12.2007, 09:49
  5. Anzeige von Libnodave-Verbindung
    Von Human im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 20.07.2007, 22:11

Lesezeichen

Berechtigungen

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