Hallo Leute,
ich habe hier einen TURCK BL67-PG-EN liegen, die per Ethernet angeschlossen ist. Ausserdem habe ich hier eine TURCK FEN20-4DIP-4DXP, die ebenfalls ans Ethernet angeschlossen ist.
Ich suche jetzt eine Möglichkeit über z.b. einen Ping-Befehl zu erkennen wenn die FEN20 nicht mehr ans Ethernet angeschlossen ist.
Für Codesys 3 gibt es den Baustein SysSockPing. Damit funktioniert das im Prinzip wunderbar.
Die BL67 die ich hier haben ist aber noch eine alte Version, die nur mit Codesys 2 zu handhaben ist und hier habe ich solch einen Baustein nicht gefunden. Hat da jemand eine Idee?
MFG
So einmal ein Nachtrag von mir. Ich habe jetzt ein bischen gebastelt und evtl. einen halbwegs praktische Lösung gefunden.
Erst mal mein Code:
FUNCTION_BLOCK CHECK_IP
VAR_INPUT
IP_Adresse : STRING[15]; (*IP-Adresse*)
END_VAR
VAR_OUTPUT
IP_NA : BOOL; (*Fehler IP nicht erreichbar*)
END_VAR
VAR
Check : IP_CONTROL;
IP_C : IP_C; (*Parametrierungsdaten*)
S_BUF : NETWORK_BUFFER; (*Sendedaten*)
R_BUF : NETWORK_BUFFER; (*Empfangsdaten*)
TIME_OUT : TIME; (*Überwachungszeit*)
ANF_CHECK : TP; (**)
CHECK_UP : TON; (**)
CHECK_PUFFER: TON; (*Verzögerung Fehlerfall*)
IP_NA_TEMP : BOOL; (*Fehler IP nicht erreichbar / TEMP*)
END_VAR
IP_C.C_MODE := 0; (* Mode: UDP+AKTIV+PORT+IP *)
IP_C.TIME_RESET := TRUE; (* Zeitüberwachung rücksetzen *)
IP_C.R_OBSERVE := FALSE; (* Datenempfang überwachen *)
S_BUF.SIZE := 1;
R_BUF.SIZE := 0; (* Empfangslänge rücksetzen *)
TIME_OUT := t#200ms; (*Überwachungszeit*)
Check(
IP:=IP4_DECODE(IP_Adresse),
PORT:=80,
TIME_OUT:=TIME_OUT,
IP_C:=IP_C,
S_BUF:=S_BUF,
R_BUF:=R_BUF);
CHECK_UP (IN:= NOT ANF_CHECK.Q , PT:=t#2000ms);
ANF_CHECK (IN:= CHECK_UP.Q , PT:=t#1000ms);
IP_C.C_ENABLE := ANF_CHECK.Q;
IF IP_C.C_ENABLE AND IP_C.C_STATE <> 255 THEN
IP_NA_TEMP := TRUE;
ELSE IF IP_C.C_ENABLE AND IP_C.C_STATE = 255 THEN
IP_NA_TEMP := FALSE;
END_IF;
END_IF;
CHECK_PUFFER (IN:= IP_NA_TEMP , PT:=t#20ms);
IP_NA := CHECK_PUFFER.Q;
Eventuell funktioniert das Ganze nur mit Teilnehmern die über eine eigene Weboberfläche verfügen.
Konstruktive Kritik ist erwünscht ;)
MFG