-> Hier kostenlos registrieren
Hallo zusammen,
ich nutze gerade den betrieblichen Leerlauf für etwas Eigenfortbildung; und da der Masochismus keine Grenzen kennt, ist Step7 SCL dran.
Folgende Funktion hatte ich gebastelt:
Zählt mir im Instanz-DB die Bools aus.
Jetzt möchte ich das Ganze aber auf einen externen DB anwenden und da fehlt es mir an der Syntax.
Folgendes kam bisher dabei heraus:
Für die markierte Zeile erhalte ich folgenden Fehler:
[...]
Fehlerhafe Variable, der Punkt ist nicht zulässig.
[...]
Bezieht sich auf "QUELL_DB.DBX := FALSE;"
Bin ich hier im falsche Datentyp Märchen oder wie bekomme ich sonst Zugriff auf die Variable/Datenposition?
ich nutze gerade den betrieblichen Leerlauf für etwas Eigenfortbildung; und da der Masochismus keine Grenzen kennt, ist Step7 SCL dran.
Folgende Funktion hatte ich gebastelt:
Code:
FUNCTION_BLOCK FB4
TITLE = 'SCL_BOOL_PARSER'
VERSION : '1.0'
AUTHOR : 'PS'
NAME : 'BOOL_PARS'
FAMILY : 'PARSER'
VAR_INPUT
end : INT;
END_VAR
VAR
reset BOOL;
i, cnt, zaehler INT;
DB_VAR : ARRAY[0..100] OF BOOL;
END_VAR
i:=0; cnt:=0;
IF reset THEN
FOR i:=0 TO end DO
DB_VAR[i]:= FALSE;
END_FOR;
reset:=0;
ELSE
FOR i:=0 TO end DO
IF DB_VAR[i] = TRUE THEN
cnt := cnt + 1;
END_IF;
END_FOR;
END_IF;
zaehler:=cnt;
END_FUNCTION_BLOCK
Zählt mir im Instanz-DB die Bools aus.
Jetzt möchte ich das Ganze aber auf einen externen DB anwenden und da fehlt es mir an der Syntax.
Folgendes kam bisher dabei heraus:
Code:
FUNCTION_BLOCK FB5
TITLE = 'SCL_BOOL_PARSER'
VERSION : '1.0'
AUTHOR : 'PS'
NAME : 'BOOL_PARS'
FAMILY : 'PARSER'
VAR_INPUT
Datenlaenge, QuellOffset : INT;
Quell_DB : WORD;
END_VAR
VAR_OUTPUT
Anzahl : INT;
END_VAR
VAR
reset : BOOL;
i, cnt : INT;
END_VAR
i := 0;
cnt := 0;
Datenlaenge := Datenlaenge + Quelloffset;
IF reset THEN
FOR i:=0 TO Datenlaenge DO
QUELL_DB.DBX[i] := FALSE;
[U][I][B]END_FOR;[/B][/I][/U]
reset:=0;
ELSE
FOR i:=0 TO Datenlaenge DO
IF QUELL_DB.DBX[i] := TRUE THEN
cnt := cnt + 1;
END_IF;
END_FOR;
END_IF;
Anzahl:=cnt;
END_FUNCTION_BLOCK
Für die markierte Zeile erhalte ich folgenden Fehler:
[...]
Fehlerhafe Variable, der Punkt ist nicht zulässig.
[...]
Bezieht sich auf "QUELL_DB.DBX := FALSE;"
Bin ich hier im falsche Datentyp Märchen oder wie bekomme ich sonst Zugriff auf die Variable/Datenposition?