-> Hier kostenlos registrieren
Hallo zusammen
hab ein Problem mit dem fc 31 Replace in Scl
ich bekomme beim übersetzten immer die Fehlermeldung ungultiger oder fehlender funktionstyp zurück
kann ir da jemand weiterhelfen hatte schonmal jemand das problem
Grüße Rudi
FUNCTION_BLOCK fb1001
VAR_INPUT
Fehlercode : ARRAY[1..10] OF ARRAY[0..3, 0..7] OF BOOL ;
Start : BOOL ;
END_VAR
VAR_OUTPUT
//Abbruch : BOOL ;
END_VAR
VAR_TEMP
(* leer*)
END_VAR
VAR
Zahler_Fehlercode : INT;
Fehler_BIT : INT;
Zahler_1_ARR : INT;
Zahler_2_ARR : INT;
Schrittzahler : INT ;
Abbruch : BOOL ;
Fehlerstring : ARRAY[1..10] OF ARRAY[0..3, 0..7] OF STRING[3];
Fehlerstring_01: STRING[3];
Fehlerstring_02: STRING[3];
Fehlerstring_03: STRING[3];
Fehlerstring_04: STRING[3];
Fehlerstring_05: STRING[3];
Fehlerstring_06: STRING[3];
Fehlerstring_07: STRING[3];
Fehlerstring_08: STRING[3];
Fehlerstring_09: STRING[3];
Fehlerstring_10: STRING[3];
Fehlerstring_11: STRING[3];
Fehlerstring_12: STRING[3];
Fehlerstring_01_1: STRING[3] ;
END_VAR;
IF Start AND NOT Abbruch
THEN Schrittzahler := 1;
ELSE ;
END_IF ;
CASE Schrittzahler OF
1: (*alle werte auf null setzten*)
Zahler_Fehlercode :=1 ;
Fehler_Bit :=0 ;
Zahler_1_ARR :=0 ;
Zahler_2_ARR :=0 ;
Schrittzahler := 2;
2: (*Fehlercode Suchen und Abspeichern Springe zum nächsten Fehlercode*)
IF Fehlercode [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]= true
THEN
Fehler_Bit :=1 ;
Schrittzahler := 3;
(*REPLACE (IN1:= Fehlerstring_01, IN2:= Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR], L:= 3, P:= 0)
Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]:= Fehlerstring_01 ;*)
REPLACE(IN1 :=Fehlerstring_01 // IN: STRING
,IN2 :=Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR] // IN: STRING
,L :=3 // IN: INT
,P :=0 // IN: INT
); // STRING
ELSE Fehler_Bit :=0 ;
END_IF ;
3: (*Fehlercode Suchen und Abspeichern Springe zum nächsten Fehlercode*)
IF Fehlercode [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]= true
THEN
Fehler_Bit:=2 ;
Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]:= Fehlerstring_02 ;
Schrittzahler := 4;
ELSE Fehler_Bit :=1 ;
END_IF ;
Schrittzahler := 4;
hab ein Problem mit dem fc 31 Replace in Scl
ich bekomme beim übersetzten immer die Fehlermeldung ungultiger oder fehlender funktionstyp zurück
kann ir da jemand weiterhelfen hatte schonmal jemand das problem
Grüße Rudi
FUNCTION_BLOCK fb1001
VAR_INPUT
Fehlercode : ARRAY[1..10] OF ARRAY[0..3, 0..7] OF BOOL ;
Start : BOOL ;
END_VAR
VAR_OUTPUT
//Abbruch : BOOL ;
END_VAR
VAR_TEMP
(* leer*)
END_VAR
VAR
Zahler_Fehlercode : INT;
Fehler_BIT : INT;
Zahler_1_ARR : INT;
Zahler_2_ARR : INT;
Schrittzahler : INT ;
Abbruch : BOOL ;
Fehlerstring : ARRAY[1..10] OF ARRAY[0..3, 0..7] OF STRING[3];
Fehlerstring_01: STRING[3];
Fehlerstring_02: STRING[3];
Fehlerstring_03: STRING[3];
Fehlerstring_04: STRING[3];
Fehlerstring_05: STRING[3];
Fehlerstring_06: STRING[3];
Fehlerstring_07: STRING[3];
Fehlerstring_08: STRING[3];
Fehlerstring_09: STRING[3];
Fehlerstring_10: STRING[3];
Fehlerstring_11: STRING[3];
Fehlerstring_12: STRING[3];
Fehlerstring_01_1: STRING[3] ;
END_VAR;
IF Start AND NOT Abbruch
THEN Schrittzahler := 1;
ELSE ;
END_IF ;
CASE Schrittzahler OF
1: (*alle werte auf null setzten*)
Zahler_Fehlercode :=1 ;
Fehler_Bit :=0 ;
Zahler_1_ARR :=0 ;
Zahler_2_ARR :=0 ;
Schrittzahler := 2;
2: (*Fehlercode Suchen und Abspeichern Springe zum nächsten Fehlercode*)
IF Fehlercode [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]= true
THEN
Fehler_Bit :=1 ;
Schrittzahler := 3;
(*REPLACE (IN1:= Fehlerstring_01, IN2:= Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR], L:= 3, P:= 0)
Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]:= Fehlerstring_01 ;*)
REPLACE(IN1 :=Fehlerstring_01 // IN: STRING
,IN2 :=Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR] // IN: STRING
,L :=3 // IN: INT
,P :=0 // IN: INT
); // STRING
ELSE Fehler_Bit :=0 ;
END_IF ;
3: (*Fehlercode Suchen und Abspeichern Springe zum nächsten Fehlercode*)
IF Fehlercode [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]= true
THEN
Fehler_Bit:=2 ;
Fehlerstring [Zahler_Fehlercode,Zahler_1_ARR,Zahler_2_ARR]:= Fehlerstring_02 ;
Schrittzahler := 4;
ELSE Fehler_Bit :=1 ;
END_IF ;
Schrittzahler := 4;