-> Hier kostenlos registrieren
Hallo zusammen
Ich muss mit dem FB 64 TRCV_TCP eine Variable datenlänge empfangen die aber nie mehr als 64 Bytes beträgt dazu hab ich mir den baustein in scl so aufgerufen
Diese Variante hab ich auch schon versuch wo ich bei LEN eine Feste Länge eingetragen habe auch ohne erfolg
jetzt hab ich nur das problemm das mir Recive_NDR nie True wird und ich keine Daten empfange
muss ich da was anders machen oder geht das mit TRCV so nicht
Welchen Baustein müsste ich dann verwenden
Grüße Rudi
Ich muss mit dem FB 64 TRCV_TCP eine Variable datenlänge empfangen die aber nie mehr als 64 Bytes beträgt dazu hab ich mir den baustein in scl so aufgerufen
Code:
// Aufruft TResive Bausteine
Recive(EN_R :=Recive_Start // IN: BOOL
,ID :=TCP_Verbindung // IN: WORD
,LEN :=0 // IN: INT
,DATA :=at_str_Recive.chars // 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
at_str_Recive.max_length :=64;
at_str_Recive.act_length :=64;
IF Recive_NDR THEN
HM_Ablauf.Recive_Daten_Empfangen:=true;
END_IF;
IF Recive_Error THEN
HM_Ablauf.Recive_Daten_Error:=true;
END_IF;
Code:
Recive(EN_R :=Recive_Start // IN: BOOL
,ID :=TCP_Verbindung // IN: WORD
,LEN :=64 // IN: INT
,DATA :=at_str_Recive.chars // 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
at_str_Recive.max_length :=64;
at_str_Recive.act_length :=64;
IF Recive_NDR THEN
HM_Ablauf.Recive_Daten_Empfangen:=true;
END_IF;
IF Recive_Error THEN
HM_Ablauf.Recive_Daten_Error:=true;
END_IF;
jetzt hab ich nur das problemm das mir Recive_NDR nie True wird und ich keine Daten empfange
muss ich da was anders machen oder geht das mit TRCV so nicht
Welchen Baustein müsste ich dann verwenden
Grüße Rudi
Zuletzt bearbeitet: