-> Hier kostenlos registrieren
Hallo Zussammen
hab mal eine frage bezüglich des aufrufes vom fb63 Tsend
Ich bekomme immer als Fehlermeldung des Bausteines 887F zurück
wenn ich es richtig Verstanden habe hat der Bausteine einen internen Fehler am 8 Parameter nur welcher Parameter ist das und was ist der Fehler
im Anhang mal der SCL Code vielleicht kann mir da ja einer weiter helfen
Danke schon mal Grüße Rudi
hab mal eine frage bezüglich des aufrufes vom fb63 Tsend
Ich bekomme immer als Fehlermeldung des Bausteines 887F zurück
wenn ich es richtig Verstanden habe hat der Bausteine einen internen Fehler am 8 Parameter nur welcher Parameter ist das und was ist der Fehler
im Anhang mal der SCL Code vielleicht kann mir da ja einer weiter helfen
Danke schon mal Grüße Rudi
FUNCTION_BLOCK FB201
// Bausteinparameter
VAR_INPUT
// Eingangsparameter
IN_Scanner_Ergebniss: STRING [64];
IN_Scanner_Ein: BOOL;
IN_Scanner_Ergeb_Akt:BOOL;
IN_iTAC_Senden:BOOL;
IN_Stoerung_Qitt:BOOL;
Stationsnummer:INT;
TCP_CONNECTED:BOOL;
TCP_Verbindung:WORD;
END_VAR
VAR_IN_OUT
// Durchgangsparameter
IO_Text_Fehlermeldung:STRING[64];
IO_iTAC_IO:BOOL;
IO_iTAC_NIO:BOOL;
IO_iTac_Fehlermeldung:BOOL;
END_VAR
VAR_OUTPUT
// Ausgangsparameter
O_Busy:BOOL;
O_Done:BOOL;
END_VAR
VAR_TEMP
// temporäre Variablen
test:ANY;
END_VAR
VAR
// statische Variablen
VAR_Text_Fehlermeldung:STRING[64];
iTAC_DMC_String:STRING[64];
Rueckmeldung_iTAC:STRING[64];
iTAC_DMC_String_Teil1:String[64];
iTAC_DMC_String_Teil2:String[64];
iTAC_IO:BOOL;
iTAC_NIO:BOOL;
iTAC_Fehlermeldung:BOOL;
Stationsnummer_Konst:ARRAY[1..4]OF STRING[64];
Stationsnummer_STRING:STRING[64];
IO_Ergebniss:INT;
NIO_Ergebniss:INT;
Send:FB63;
Send_Start:BOOL;
Send_Done:BOOL;
Send_Busy:BOOL;
Send_Error:BOOL;
Send_Status:WORD;
Recive:FB64;
Recive_Start:BOOL;
Recive_NDR:BOOL;
Recive_Busy:BOOL;
Recive_Error:BOOL;
Recive_Status:WORD;
Recive_LEN:INT;
Schrittkette:INT;
END_VAR
//STRING INIT
Rueckmeldung_iTAC:='1234567890123456789012345678901234567890123456789012345678901234';
iTAC_DMC_String:= ' ';
// Aufruft Tsend Bausteine
Send(REQ := Send_Start // IN: BOOL
,ID :=TCP_Verbindung // IN: WORD
,LEN := 64 // IN: INT
,DATA :=iTAC_DMC_String );// INOUT: ANY
Send_Done:= Send.DONE; // OUT: BOOL
Send_Busy:= Send.BUSY; // OUT: BOOL
Send_Error:= Send.ERROR; // OUT: BOOL
Send_Status:= Send.STATUS; // OUT: WORD
// Aufruft TResive Bausteine
Recive(EN_R :=Recive_Start // IN: BOOL
,ID :=TCP_Verbindung // IN: WORD
,LEN :=0 // IN: INT
,DATA :=Rueckmeldung_iTAC // INOUT: ANY
);
Recive_NDR := Recive.NDR; // OUT: BOOL
Recive_Busy := Recive.BUSY; // OUT: BOOL
Recive_Error := Recive.ERROR; // OUT: BOOL
Recive_Status:= Recive.STATUS; // OUT: WORD
Recive_LEN:= Recive.RCVD_LEN; // OUT: INT
//STRING INIT
// Vorgaben Rückmeldungen
Stationsnummer_Konst[1]:='01;';
Stationsnummer_Konst[2]:='02;';
Stationsnummer_Konst[3]:='03;';
Stationsnummer_Konst[4]:='04;';
// Stationnummer auswerten
Stationsnummer_STRING:=Stationsnummer_Konst[Stationsnummer];
IF NOT IN_Scanner_Ein AND IN_Scanner_Ergeb_Akt THEN
// iTAC STRING zusammensetzten
iTAC_DMC_String_Teil1:=CONCAT(IN1 := '' // IN: STRING
,IN2 :=Stationsnummer_Konst[Stationsnummer] // IN: STRING
); // STRING
iTAC_DMC_String_Teil2:=CONCAT(IN1 := iTAC_DMC_String_Teil1 // IN: STRING
,IN2 :=IN_Scanner_Ergebniss // IN: STRING
); // STRING
iTAC_DMC_String:=CONCAT(IN1 := iTAC_DMC_String_Teil2 // IN: STRING
,IN2 :='$r$l'
); // STRING
END_IF;
IF IN_iTAC_Senden THEN
Schrittkette:=1;
END_IF;
CASE Schrittkette OF
1 : IF TCP_CONNECTED THEN
Send_Start:=true;
O_Busy:=true;
O_Done:=false;
Schrittkette:=3;
END_IF;;
3 : IF Send_Busy THEN
Send_Start:=false;
Schrittkette:=5;
END_IF;;
5 : IF Send_Done THEN
Recive_Start:= true;
Schrittkette:=10;
END_IF;;
10 : IF Recive_Busy THEN
Recive_Start:= false;
Schrittkette:=15;
END_IF;;
15 : IF Recive_NDR THEN
IO_Ergebniss:= FIND(IN1 := Rueckmeldung_iTAC // IN: STRING
,IN2 := '0;OK;' // IN: STRING
); // INT
NIO_Ergebniss:= FIND(IN1 := Rueckmeldung_iTAC // IN: STRING
,IN2 := '2;' // IN: STRING
); // INT
Schrittkette:=20;
END_IF;;
20 : IF IO_Ergebniss = 8 THEN
iTAC_IO:=true;
iTAC_NIO:=False; // Anweisungsteil_IF
Schrittkette:=25;
END_IF;
IF NIO_Ergebniss = 8 THEN
iTAC_IO:=false;
iTAC_NIO:=true; // Anweisungsteil_IF
iTAC_Fehlermeldung:=true;
Schrittkette:=25;
END_IF;;
25 : IF IO_Ergebniss = 8 THEN
iTAC_IO:=true;
iTAC_NIO:=False; // Anweisungsteil_IF
Schrittkette:=0;
END_IF;;
END_CASE;
IO_iTAC_IO:=iTAC_IO;
IO_iTAC_NIO:=iTAC_NIO;
IO_iTac_Fehlermeldung:=iTAC_Fehlermeldung;
IF iTAC_NIO THEN
VAR_Text_Fehlermeldung:= DELETE(IN := Rueckmeldung_iTAC // IN: STRING
,L :=NIO_Ergebniss // IN: INT
,P :=1 // IN: INT
); // STRING
ELSE
VAR_Text_Fehlermeldung:= ' ';
END_IF;
// ALTE PROGRAMMTEILE
// Abfrage IO_NIO iTAC
// Abfrage iTAC Ergebniss String
// IO_Ergebniss:= FIND(IN1 := Rueckmeldung_iTAC // IN: STRING
// ,IN2 := '0;OK;' // IN: STRING
// ); // INT
// NIO_Ergebniss:= FIND(IN1 := Rueckmeldung_iTAC // IN: STRING
// ,IN2 := '2;' // IN: STRING
// ); // INT
END_FUNCTION_BLOCK