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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: WinCC RT Advanced - Status der Netzwerkverbindung visualisieren

  1. #1
    Registriert seit
    28.07.2017
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen zusammen,

    ich bin auf der Suche nach einer Möglichkeit den aktuellen Status einer Netzwerkverbindung anzuzeigen in WinCC RT Adv..
    Genauer gesagt soll angezeigt werden ob der Zugriff auf ein gemapptes Netzlaufwerk funktioniert.

    Ich habe es bisher versucht über ein VB-Skript zu lösen, welches jede Sekunde über die AS getriggert wird:
    Code:
    Sub NW_Test()
        
    'Deklaration der lokalen Variablen
    Dim f
    Dim fso            
    Dim path        
        
    'Auswahl des Speicherpfads
        path = "F:\XXX"
    
    'Starten der Fehlerroutine
    On Error Resume Next
    
    'Datei Objekt erstellen
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Ordnerinhalt lesen
    Set f = fso.GetFolder(path)
    
    'Auf Fehler prüfen
    If Err.Number<> 0 Then
        ShowSystemAlarm "Error # " & CStr(Err.Number)& " "& Err.Description
        Err.Clear
        NW_Fehler = True
        Exit Sub
    ELSE
        NW_Fehler = FALSE
    End If
    
    End Sub
    Das Skript soll den Ordnerinhalt lesen. Sollte der Zugriff auf den Pfad nicht möglich sein, erwarte ich eine Wertänderung bei der Variable "Err.Number".
    Ist diese ungleich "0" soll die Variable "NW_Fehler" gesetzt werden.

    Leider bringt das Skript nicht das gewünschte Verhalten. Wenn ich die Netzwerkverbindung trenne, wird die Variable "NW_Fehler" nicht gesetzt.

    Hat jemand evtl. eine Idee woran es hier liegen kann oder einen besseren Weg diese Abfrage umzusetzen?
    Zitieren Zitieren WinCC RT Advanced - Status der Netzwerkverbindung visualisieren  

  2. #2
    Registriert seit
    14.01.2015
    Beiträge
    2.353
    Danke
    580
    Erhielt 440 Danke für 363 Beiträge

    Standard

    Ich habe es bisher versucht über ein VB-Skript zu lösen, welches jede Sekunde über die AS getriggert wird:
    Ohne jetzt das Skript durchzulesen, hast du deine Triggervariable auf Erfassungsart "Zyklisch fortlaufend" eingestellt?
    Mit Grüßen

    Lache nie über jemanden, der einen Schritt zurück macht - er könnte Anlauf nehmen!

  3. #3
    1008nm ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.07.2017
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnelle Antwort DeltaMikeAir.
    Die Triggervariable ist auf "Zyklisch fortlaufend" eingestellt.
    Habe testweise zu Anfang des Skript einen SystemAlarm eingefügt. Dieser wird auch korrekt angezeigt.

  4. #4
    Registriert seit
    17.10.2007
    Beiträge
    273
    Danke
    5
    Erhielt 53 Danke für 49 Beiträge

    Standard

    Hallo,

    funktioniert denn das Script, wenn du es gezielt EINMALIG ausführst?
    Also die beiden Fälle
    + Ordner erreichbar -> Script ausführen -> NW_Fehler = false (wobei du zum Test vielleicht auch hier eine Rückmeldung einbauen solltest)
    + Ordner nicht erreichbar -> Script ausführen -> NW_Fehler = true

    BTW:
    Auf das "Exit Sub" nach NW_Fehler = true solltest du verzichten.
    Außerdem kenne ich es so, dass alle in einem Script erzeugten Objekte (hier: fso und f) auch wieder "zerstört" werden sollten (set fso = nothing).


    Gruß, Fred

  5. #5
    Registriert seit
    19.04.2005
    Beiträge
    181
    Danke
    14
    Erhielt 15 Danke für 10 Beiträge

    Standard

    Hi,
    NW_Fehler ist nicht deklariert

  6. #6
    Registriert seit
    14.01.2015
    Beiträge
    2.353
    Danke
    580
    Erhielt 440 Danke für 363 Beiträge

    Standard

    NW_Fehler ist nicht deklariert
    Bzw. so einzugeben:
    SmartTags("NW_Fehler")

    ist NW_Fehler eine projektierte Variable?
    Mit Grüßen

    Lache nie über jemanden, der einen Schritt zurück macht - er könnte Anlauf nehmen!

  7. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    12.158
    Danke
    989
    Erhielt 3.593 Danke für 2.905 Beiträge

    Standard

    Wenn Du eine Netzwerkverbindung testen willst, dann versuche es mal mit der Angabe eines UNC-Netzwerkpfades:
    Code:
    path = "\\Servername\Freigabename" 'oder "\\Servername\Freigabename\OrdnerXYZ"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    If fso.FolderExists(Path) Then
        NW_Fehler = False
    ELSE
        NW_Fehler = True
    End If
    PS: das Testen der Erreichbarkeit muß doch sicher nicht jede Sekunde aufgerufen werden, das ist ja schneller als der Timeout bei Nichterreichbarkeit. Aufruf jede Minute und evtl. direkt vor einem Zugriff sollte dicke reichen.


    Zitat Zitat von faust Beitrag anzeigen
    Außerdem kenne ich es so, dass alle in einem Script erzeugten Objekte (hier: fso und f) auch wieder "zerstört" werden sollten (set fso = nothing).
    Kann man machen, ist aber nicht nötig.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #8
    1008nm ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.07.2017
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von DeltaMikeAir Beitrag anzeigen
    Bzw. so einzugeben:
    SmartTags("NW_Fehler")

    ist NW_Fehler eine projektierte Variable?
    Die Variable "NW_Fehler" ist als interne Variable im Projekt angelegt. Die Verwendung von "SmartTags()" habe ich mir gespart. Hat bisher immer ohne funktioniert bei angelegten Variablen
    Werde ich aber auch mal testen.


    , dann versuche es mal mit der Angabe eines UNC-Netzwerkpfades
    Könnte ich auch mal Testen. Was wäre dabei der Unterschied?

    Weiß jemand ob der Grundgedanke, also die Verwendung von .GetFolder(), hier überhaupt der Zielführen ist?

    Danke für eure bisherigen Antworten

    Gruß
    Niklas
    Geändert von 1008nm (13.03.2018 um 11:45 Uhr)

  9. #9
    1008nm ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.07.2017
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mir ist noch etwas aufgefallen.

    Muss vor "Err.Number" noch das Objekt, in diesem Fall "fso", genutzt werden?

    Also wie folgt:

    Code:
    'Auf Fehler prüfen
    If  fso.Err.Number<> 0 Then
        ShowSystemAlarm "Error # " & CStr(Err.Number)& " "& Err.Description
        Err.Clear
        NW_Fehler = True
        Exit Sub
    Else
        NW_Fehler = False
    End If
    Nachtrag:
    Das war die Lösung. Mit "fso.Err.Number" findet eine Fehlerauswertung statt.

    Nur kommt jetzt permanent der Fehler: Error #438: Object doesn't support this property or method

    Bringt mich scheinbar auch nicht weiter.... aber wieder was gelernt
    Geändert von 1008nm (13.03.2018 um 14:27 Uhr)

  10. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    12.158
    Danke
    989
    Erhielt 3.593 Danke für 2.905 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das Err-Objekt existiert immer, es gibt keine Err-Instanzen im fso-Objekt. "fso.Err.Number" ist falsch, es muß "Err.Number" heißen.

    Siemens "empfiehlt" den Verfügbarkeits-Check eines Speicherlaufwerks so:
    Wie stellen Sie mit einem Skript fest, ob ein Speicherlaufwerk mit Wechselmedien (USB-Stick, SD-/MM-Card) auf einem HMI-Gerät schreibbereit ist?
    Wegen der Verwendung von GetAbsolutePathName funktioniert das Siemens-Beispiel aber vermutlich nicht mit UNC-Netzwerkpfaden. Und wie das Siemens-Beispiel wie behauptet die Schreibbereitschaft des Laufwerks feststellt bleibt mir ein Rätsel...

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    1008nm (14.03.2018)

Ähnliche Themen

  1. G120 Status der DIN der CU an Steuerung senden
    Von magmaa im Forum Antriebstechnik
    Antworten: 12
    Letzter Beitrag: 08.03.2017, 08:52
  2. Antworten: 1
    Letzter Beitrag: 07.04.2015, 17:53
  3. Step 7 CPU Status mit WinCC Runtime visualisieren
    Von Nightwalker1987 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 26.11.2013, 16:54
  4. WinCC Advanced Fehler beim starten der RT
    Von SPSGreenhorn im Forum HMI
    Antworten: 0
    Letzter Beitrag: 30.04.2013, 11:06
  5. Antworten: 11
    Letzter Beitrag: 21.12.2010, 14:25

Lesezeichen

Berechtigungen

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