WinCC flex RC RT - Internetverbindung überwachen

DerMatze

Level-1
Beiträge
525
Reaktionspunkte
21
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

eine PC RT (WinCCflex2008 SP3) baut über ein LTE Router eine Internetverbindung auf um sich Wetterdaten "zu holen".
Die Daten werden drei mal am Tag aktualisiert, was über Skripte in der RT erfolgt. Das funktioniert alles reibungslos.

Problem:
Leider ist es so das der LTE Router oft seine Internetverbindung "verliert", was der PC und somit die RT nicht mitbekommt.
Technische Unterstützung vom Provider / Routeranbieter sind gleich NULL :sb7:

Frage:
Gibt es eine Möglichkeit die Internetverbindung auf irgendeine Art und Weise zu überwachen?
Wenn Verbindung n.i.O. kann die RT dann eine Meldung ausgeben...

Der Router gibt mir kein Status aus ob die Verbindung OK oder nOK.
Wenn ich den Router direkt mittels IE oder Firefox anspreche (Konfigurationsmodus) steht auf der Startseite "LTE nicht verfügbar" vielleicht lass sich diese Meldung verarbeiten?

Wer hat eine Idee oder kann mir zur Problemlösung Anregungen geben?
Vielen Dank.

Gruß
DerMatze
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja an sowas habe ich auch schon gedacht, aber ich möchte gern die Verbindung permanent überwachen und nicht nur in dem Zeitraum wenn die Daten geholt werden sollen. Und dann auf Änderung auswerten.
Ein Ansatz wäre evtl. Daten abzurufen wie z.B. die Uhrzeit, wenn die sich nicht mehr ändert dann ist die Verbindung unterbrochen. Nur ist die Frage wie ich das am einfachsten lösen könnte... ("Script" ist nicht unbedingt meine Stärke ;))

Die Meldung soll dann sofort ausgegeben werden wenn die I-net Verbindung unterbrochen wurde, um den Router wieder durchzustarten, ggf soll die SPS den Reset des Routers durchführen.
 
Ist das Mobilfunknetz tatsächlich öfters nicht verfügbar oder spinnt nur der Router?
Schalte den Router doch generell aus und nur dreimal am Tag ein oder mache vor jeder Nutzung generell ein Reset des Routers oder schalte die Versorgungsspannung über ein Relais aus und wieder ein.

Harald
 
Das hier stammt von www.visualbasicscript.com

Code:
Set WshShell = CreateObject("WScript.Shell")
PINGflag = Not CBOOL(WshShell.run("ping -n 1 www.google.de",0,True))
Wenn PINGflag=FALSE, dann gibt es kein Internetverbindung, oder google hat zu gemacht.

edit: Anstatt Google, dann den Webseite verwenden wo die Daten befindet die Du holen willst. Dann wird den gesamte Verbidnugsweg getestet.

Warnung:
Nicht getestet !
Und, wenn WshShell ausgeführt wird, wird das Skript warten bis der ping Befehl fertig ist, und somit wird in diesen Zeit auch andere Skripte gesperrt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
schalte die Versorgungsspannung über ein Relais aus und wieder ein.
Hallo Harald,

das soll sowieso noch realisiert werden. Jedoch soll ein reset erst erfolgen wenn eine Störung der Verbindung / des Routers ansteht da auch andere Anwendungen diesen Router nutzen...

Gruß
Matze
 
Wenn PINGflag=FALSE, dann gibt es kein Internetverbindung, oder google hat zu gemacht.

edit: Anstatt Google, dann den Webseite verwenden wo die Daten befindet die Du holen willst. Dann wird den gesamte Verbidnugsweg getestet.

Warnung:
Nicht getestet !
Und, wenn WshShell ausgeführt wird, wird das Skript warten bis der ping Befehl fertig ist, und somit wird in diesen Zeit auch andere Skripte gesperrt.

Hallo Jasper,

danke, ich werds ausprobieren.
Dann kann ich "PINGflag" auf 1 abfragen = OK | "PINGflag" = 0 => setze interne Flex Variable => zeige Fehlermeldung
Kann ich das alles im selben Skript machen?

Gruß
Matze
 
Zuletzt bearbeitet:
Ja, "PINGflag" kann auch den interne Variabel sein.

Code:
[COLOR=#333333]Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
[/COLOR][COLOR=#333333]Smarttags("PINGflag") = Not CBOOL(WshShell.run("ping -n 1 www.google.de",0,True))[/COLOR]
 
Bei den Zugagsdaten deines UMTS-Routers steht im Eintrag APN sicher was mit dem du was anfangen kannst.

via Mobile
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, "PINGflag" kann auch den interne Variabel sein.

Code:
[COLOR=#333333]Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
[/COLOR][COLOR=#333333]Smarttags("PINGflag") = Not CBOOL(WshShell.run("ping -n 1 www.google.de",0,True))[/COLOR]


Hallo,

ich habe nun den von dir dargestellten Code in ein Skript "gepackt" und mit einer Variablen in der CPU verknüpft. Nur wird diese Variable nicht auf 1 gesetzt...?
Habe ich noch etwas vergessen, oder sollte es so funktionieren?
Code:
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
SmartTags("Intern\pingflag") = Not CBool(WshShell.Run("ping -n 1 www.google.de",0,True))
If SmartTags("Intern\pingflag")= "1" Then SmartTags("Verbinung")= 1 
If SmartTags("Intern\pingflag")= "0" Then SmartTags("Verbinung")= 0

Gruß
Matze
 
SmartTags("Intern\pingflag") ist BOOL, da kannst Du nicht vergleichen, ob ein String "1" oder "0" drinsteht.
Versuche mal dies:
Code:
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
SmartTags("Intern\pingflag") = Not CBool(WshShell.Run("ping -n 1 www.google.de",0,True))
[COLOR="#FF0000"]SmartTags("Verbinung") = SmartTags("Intern\pingflag")[/COLOR]

Harald
 
Die Variable "Verbindung" ist eine in der CPU (DB) vom Typ Bool, die gesetzt werden soll wenn die Verbindung steht.

OK, danke für den Hinweis - ich werds versuchen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Skript tut die CPU-Variable "Verbindung" aber auch rücksetzen, falls beim Skriptaufruf keine Verbindung zum Internet besteht - das ist aber doch bestimmt auch so gewollt?

Harald
 
Ja das solls auch, da der blöde LTE Router ja eigentlich permanent eine Verbindung haben soll.
Wenn das mit der Fehlermeldung gut funktioniert, wird das Rücksetzen von der CPU gemacht (via Koppelrelais)

Gruß
Matze
 
SmartTags("Intern\pingflag") ist BOOL, da kannst Du nicht vergleichen, ob ein String "1" oder "0" drinsteht.
Versuche mal dies:
Code:
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
SmartTags("Intern\pingflag") = Not CBool(WshShell.Run("ping -n 1 www.google.de",0,True))
[COLOR=#FF0000]SmartTags("Verbinung") = SmartTags("Intern\pingflag")[/COLOR]

Harald

Funktioniert! Zumindest wird das Bit in der CPU auf "true" gesetzt.
Einen Verbindungsabbruch habe ich jetzt noch nicht provoziert um zu sehen ob das Bit zurückgesetzt wird.
 
Zurück
Oben