Ping

iwan

Level-1
Beiträge
26
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen

Ich habe eine Wago 750-841 und eine Webcam an einem UMTS Router.
Leider hängt sich der UMTS Router ab und zu auf und die Webcambilder werden nicht mehr hochgeladen.
Gibt es eine Möglichkeit mit der SPS einen Ping ins Internet abzusetzen um zu überprüfen ob die Internetverbindung noch io ist?
Ich könnte dann mittels Relais, den Router "neustarten".

Gruss
Iwan
 
Hallo,

in der WagoLibSockets.lib gibt es eine Funktion Sock_Ping.
Damit kannst du einen Ping absetzen und bekommst bei erfolgreicher Antwort ein True.

Gruß
Norbert
 
in der WagoLibSockets.lib gibt es eine Funktion Sock_Ping.
Damit kannst du einen Ping absetzen und bekommst bei erfolgreicher Antwort ein True.

hi, muß den alten thread mal rausholen:
1. der return value ist typ SOCK_RET.
wie kann man den weiter auswerten/bearbeiten/umwandeln? (string geht schon mal nicht)
2. der input ist die ip-adresse in hex.
gibt es eine funktion, die ip in hex umwandelt?
Hintergrund:
Ich will nen watchdog bauen, der finder/steckdosen schaltet, wenn bestimmte IP im Lan an/aus sind. (Auch für reset bei bluescreen geeignet).
Dank+Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi tomrey,

1. Die Erklärung hierzu findest unter den Datentypen "SOCK_RET" der Lib (WagoLibSockets). 0 ist gut.

2. Die Umwandlung von "IP in dotted format" in ein DWORD erledigt SysSockInetAddr aus der SysLibSockets.lib. Dann hast du zwar ein DWORD, jedoch in der verkehrten Byte-Order. Sprich du musst diesen Rückgabewert noch mal durch die Funktion SysSockNtohl der selbigen Bibliothek laufen lassen. Dann bekommst du den Wert, den du an SOCK_PING übergeben kannst.

Code:
[FONT=arial]
dwAdresse:=SysSockNtohl(dwNet:=SysSockInetAddr(stIPAddr:=sMeineIP));

wRueckgabe:=SOCK_PING(address:=dwAdresse, timeout:=t#30ms)
[/FONT]
 
Danke, bei mir klappts aber noch nicht ganz:
ScreenShot001.jpg
oder liegt das am simulationsmodus (hab grad keine wago hier)?
für die Ausgabe:
Ist der Rückgabewert ein word oder bekomme ich auch ein string? kann ich mit EQ 0 vergleichen und mit dem bool weiterarbeiten?
gruß
 
Hi,
die Funktionen bauen auf Systemfunktionen auf - also keine Chance für die Simulation.

Du kannst den Rückgabewert als WORD zurücklesen und auf 0 vergleichen - dann musst du dir die genaue Bedeutung aus der Auflistung heraussuchen.
Du kannst den Rückgabewert aber auch als Beschreibung (z.B. "SOCK_TIMEOUT") zurücklesen - d.h. da es ENUMs sind, deklarierst du den Rückgabewert genauso wie in der Bibliothek angezeigt als SOCK_RET.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst den Rückgabewert aber auch als Beschreibung (z.B. "SOCK_TIMEOUT") zurücklesen - d.h. da es ENUMs sind, deklarierst du den Rückgabewert genauso wie in der Bibliothek angezeigt als SOCK_RET.

ok, hab ich verstanden, was mir jetzt noch fehlt ist die Vergleichsvariable, die ja wohl den string z.B. "SOCK_TIMEOUT" enthält. wie krieg ich diesen string als sock_ret deklariert (für EQ)?
so etwa:
ScreenShot002.jpg
wobei ich dann sOK in einer Visu anzeige und mit xOK weitere Aktionen (z.B. Steckdose v. PC resetten) starten kann...

Gruß
 
CFC, ich glaub's nicht ... ;-P

Hab ich doch oben geschrieben; kannst auch den Ziffernwert nehmen und vergleichen. Einfach mal rumprobieren... ;)
 
CFC is schee - zumindest für den DAU, der schon genug (Fremd)Sprachen in seinem Leben gelernt hat...:p
Danke, habs jetzt soweit in der Simulation ohne Übersetzungsfehler.
Der Test kommt dann demnächst an der Maschine.
Gruß
 
Hallo zusammen!
ich hab mir die Antworten zum Thema angesehen und wollte den Ping auf einer Wago PFC200 (750-8204) implementieren.

Leider scheint die WagoLibSockets.lib von der PFC200 nicht unterstützt zu werden. (Kompilieren geht Fehlerfrei, aber beim Übertragen auf die SPS gibt es: "Folgende Funtkionen konnten nicht gebunden werden SOCK_PING ")

Gruß

Hat jemand eine andere Lösung?
 
Kannst dich ja auch per modbus oder snmp mit der kamera verbinden insofern sie das unterstuetzt und zyklisch einen x beliebigen wert auslesen. Wenn die kommunikation nicht glabt kannst du den router neustarten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab gar keine Kamara, bin in diesem Thema wegen des Ping.
Eine Kommunikation zwischen den SPSen über Modbus habe ich schon eingebaut und auch funktionsfähig.
Ich möchte jedoch über einen Ping prüfen ob die Teilnehmer angeschlossen sind die ich an der Schnittstelle erwarte. Nicht alle Teilnehmer haben bei mir den Modbus implementiert.
 
Ich habe das mal für meine Wago 750-881 erstellt und ohne Fehlermeldung auf die Steuerung kopiert. Sobald ich aber im Task die Anwesenheit(PRG) einbinde stürzt die Steuerung ab oder bleibt in der Anwesenheit(PRG) hängen. Sieht jemand den Fehler?anwesend.jpg
 
Zuletzt bearbeitet:
Zurück
Oben