Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Nachrichten - Azrael666

Seiten: [1]
1
Codesys 2 / Re: Ping-Befehl bei Codesys 2
« am: 01. Februar 2017, 13:14:27 »
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

2
Codesys 2 / Ping-Befehl bei Codesys 2
« am: 01. Februar 2017, 11:11:28 »
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

3
Codesys 2 / Re: TURCK BL67 TCP-Verbindung
« am: 31. Januar 2017, 15:32:07 »
Kein Problem, das hier ist die besagte Datei:


[gelöscht durch Administrator]

4
Codesys 2 / Re: TURCK BL67 TCP-Verbindung
« am: 30. Januar 2017, 14:10:28 »
Moin moin,

erst mal Danke für den Tipp. Ich hab es inzwischen hinbekommen. Es gab von Herstellerseiten einen Programmbaustein, mit dem man eine TCP-Verbindung aufbauen kann und Daten senden.
Somit habe ich die OSCAT Bibliothek nicht mehr benötigt.

5
Codesys 2 / TURCK BL67 TCP-Verbindung
« am: 27. Januar 2017, 08:09:12 »
Hallo liebe Leute,

ich stehe vor einem größeren Problem. Ich bin eigentlich S7 Programierer und darf mich jetzt an Codesys heranwagen.
Ich habe hier eine TURCK BL67-PG-PN liegen, die String-Telegramme an einen SQL Server verschicken soll.
Verbindung ist somit aktiv und nur Daten senden, keine empfangen.

Problem 1: Ich habe folgende Bibliotheken in meine Projekt geladen:
- oscat_basic_333.lib
- codesys_network_121_hf1.lib
- syslibsockets.lib
- syslibfile.lib

Das Modul kann nur 1024 Bausteine verarbeiten und somit bekomme ich beim kompilieren immer den Fehler "Maximale Anzahl an Bausteinen überschritten".
Ich hatte dann hier die Bibliothek oscat_basic_micro_332.lib gefunden. Diese scheint aber nicht alles was benötigt wird zu enthalten, weil ich damit beim übersetzen Fehler bekomme:
- Fehler 4024: DLOG_REAL
- Fehler 4251: DLOG_REAL
- Fehler 4250: DLOG_REAL

- Fehler 4001:WORLD_WEATHER

Ich hab es dann erst einem mit der oscat_basic_333.lib weiter versucht und die Anzahl der Bausteine unter Zielsystemeinstellungen auf 2048 gesetzt. Damit kann in den ganzen Plunder auch übersezten und in die Steuerung laden.
Das Programm das ich testeweise erst mal verwendet habe sieht folgend aus:

IF send THEN
   S_BUF1.BUFFER[0] := BYTE#16#1B;
   S_BUF1.SIZE :=1;
   IP_C1.C_MODE := 0;
   IP_C1.C_ENABLE := TRUE; (* Verbindungsaufbau freigeben *)
   IP_C1.R_OBSERVE := FALSE; (* Datenempfang überwachen *)
   IP4_Adr:=IP4_DECODE('192.168.001.170');
   send := FALSE;
END_IF;

ERROR := IP_CONTROL1.c_status;
IP_CONTROL1(IP:=IP4_Adr ,PORT:=84 ,TIME_OUT:=T#1s,IP_C:= IP_C1,S_BUF:=S_BUF1, R_BUF:=R_BUF1 );

Problem 2: Es passiert damit absolut rein gar nichts. In der Live-Ansicht des ST-Bausteins stehen überall nur "? ? ?"
Vieleicht liegt das damit zusammen, dass die Zielsystemeinstellungen nicht korrekt sind?

Ich bin für jede Hilfe dankbar  :)

MFG

Seiten: [1]