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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Ereichbarkeit von Ethernet-Geräten Prüfen

  1. #11
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von borsti87 Beitrag anzeigen
    Code:
    RisingEdge(CLK := bExecute);
    
    IF RisingEdge.Q THEN
        bAccessible   := FALSE;
        bUnAccessible := FALSE;
        fbConnect(sRemoteHost:= '192.168.1.123',
                    nRemotePort:= 12345,
                  bExecute:= TRUE,
                  tTimeout:= T#3s);
        IF fbConnect.bBusy THEN
            IF NOT fbConnect.bError THEN
                bAccessible   := TRUE;
                fbConnect(bExecute:= FALSE);
                fbClose(hSocket:= fbConnect.hSocket,
                        bExecute:= TRUE,
                        tTimeout:= T#3s);
                fbClose(bExecute:= FALSE);
            ELSE
                bUnAccessible := TRUE;
                fbConnect(bExecute:= FALSE);
                fbClose(hSocket:= fbConnect.hSocket,
                        bExecute:= TRUE,
                        tTimeout:= T#3s);
                fbClose(bExecute:= FALSE);
            END_IF
        END_IF
    END_IF
    Allerdings bleiben fbConnect und fbClose dauerhaft bBusy und scheinen die Verbindung nicht freizumachen.
    Dein Problem ist doch offensichtlich!
    Du führst den Baustein einmalig mit steigender Flanke aus. Das Busy vom fbConnect wird in diesem Zyklus noch gesetzt. Da (vermutlich) in diesem ersten Zyklus (noch) kein Error vorliegt, rennst du sofort in den Part
    Code:
            IF NOT fbConnect.bError THEN
                bAccessible   := TRUE;
                fbConnect(bExecute:= FALSE);
                fbClose(hSocket:= fbConnect.hSocket,
                        bExecute:= TRUE,
                        tTimeout:= T#3s);
                fbClose(bExecute:= FALSE);
    und schließt den vermutlich noch nicht einmal geöffneten Port sofort wieder.

    Du musst die Abarbeitung der Bausteine erst einmal abwarten und dann erst reagieren.
    Der TCP/IP-Baustein greift auf Funktionen außerhalb der TwinCAT Echtzeit zu. Und da dauert die Reaktion schon mal etwas länger.

    Allgemein:
    Lasst die bedingten Bausteinaufrufe sein!!!!!!!!!!!
    Also BausteinAUFRUF außerhalb jeglicher Bedingung und am besten nur einmalig pro Instanz pro Zyklus. Steuerung der Ein- und Ausgänge der FBs dann mit den Bedingungen.

    Achso, noch zur Fragestellung:
    Ist der Port "12345" auf der anderen Seite denn überhaupt erreichbar? Wenn dort keine Applikation reagiert, wirst du vermutlich auch einen Error zurück erhalten. Du testest damit lediglich, ob ein bestimmter TCP-Port im Netzwerk erreichbar ist, aber nicht, ob das Gerät (allgemein) per Ethernet oder TCP/IP erreichbar ist. Das geht nur mit z. B. einem Ping. Und ein Ping findet m. W. n. nur auf der IP-Ebene statt, und nicht auf TCP-Ebene.
    Wenn es sich um ein TwinCAT-System handelt, sieht die Sache anders aus. Da kannst du ne simple ADS-Abfrage starten, wenn die Route bekannt ist.
    Geändert von trinitaucher (22.04.2011 um 14:28 Uhr)

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

    Standard

    Zitat Zitat von trinitaucher Beitrag anzeigen
    m. W. n.


    Kann man mit TwinCAT den einen Ping auslösen?

  3. #13
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Schreib einfach ein VB.net Programm, dass den Zustand des Netzes abfragt, denn Windows macht das mit Broadcasts für dich, wenn du in einer Domain angemeldet bist. Dieses Programm, kann dann eine Variable in Twincat setzen. Vorlagen für .Net-Programme finden sich zu Hauf im Netz.

  4. #14
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Zitat Zitat von borsti87 Beitrag anzeigen


    Kann man mit TwinCAT den einen Ping auslösen?
    Ist mir jetzt nicht bekannt.
    Ein Ping fndet auf IP-Ebene statt. Du müsstest ein IP-Telegramm versenden mit dem Ping als Inhalt. ... google mal.

    Was sind das denn nun für PCs auf der Gegenseite? Auch TwinCAT-PCs oder andere?

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

    Standard

    Der anzupingende Rechner ist ein Linuxserver

  6. #16
    Registriert seit
    09.01.2008
    Beiträge
    85
    Danke
    5
    Erhielt 13 Danke für 12 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und was wichtig ist!
    Der TCP/IP-Server muss installiert sein.

    Gruß Scrat

Ähnliche Themen

  1. Anbindung von S7-HMI-Geräten an die S5 SPS: IBH Link S5 ++
    Von IBHsoftec GmbH im Forum Werbung und Produktneuheiten
    Antworten: 1
    Letzter Beitrag: 27.04.2017, 17:08
  2. Dokumentation von HMI-Geräten
    Von Lipperlandstern im Forum HMI
    Antworten: 5
    Letzter Beitrag: 24.06.2007, 13:55
  3. Ausfälle bei C7-Geräten !
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 05.02.2006, 08:39
  4. PS3 mit aktuellen Geräten programmieren?
    Von Anonymous im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 22.12.2005, 18:14
  5. Normen für die Bezeichnung von Geräten
    Von guevara im Forum Schaltschrankbau
    Antworten: 2
    Letzter Beitrag: 23.02.2005, 09:37

Lesezeichen

Berechtigungen

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