KNX CRC Error nachdem ein Input hinzugefügt wurde

theneon

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ,

ich hab FB gemacht für meine Blinds ( siehe unten)
Sobald ich ein VAR_INPUT hinzufüge bekomm ich ein KNX CRC error auf der 849 wo ich auch nicht mehr weg bekomme.
Kann die Variable wieder löschen aber der Fehler geht nicht weg. Das einzig was geht ist ein Restore von dem Projekt.

Wie kann ich das vermeiden ? bzw wie kann ich ein VAR_Input noch hinzufügen ?

849 : Firmware : 01.01.32 (05)

Code:
FUNCTION_BLOCK KNXBlind
VAR_INPUT
	IKNX_IP_Controller: typKNX;
	IDPT_Dummy: typDPT;
	S1: BOOL;
	S2: BOOL;
	IRunTime: TIME := t#80s;
	AutoSun: BOOL;
	IDirection: REAL := 180.0;
END_VAR
VAR_OUTPUT
	Pos: BYTE;
	Angle: BYTE;
	State: INT;
	EngineUP: BOOL;
	EngineDown: BOOL;
END_VAR
VAR
	Up: FbDPT_Switch;
	Down: FbDPT_Switch;
	Auto: FbDPT_Switch;
	Jalousie: BLIND;
	CalcSun: CALC_SUN_PROTECT;
	Sun: BOOL;
	AngleVal: FbDPT_Angle;
	PosVal: FbDPT_Value_4_Count;
	StateVal: FbDPT_Value_4_Count;
END_VAR
 
Hallo,

die Deklaration "IKNX_IP_Controller" als VAR_INPUT ist nicht zulässig.
Die Variable muss als VAR_IN_OUT deklariert werden:

VAR_IN_OUT
IKNX_IP_Controller: typKNX;
END_VAR

Auch die Variable IDPT_Dummy: typDPT sollte als "VAR_IN_OUT" deklariert sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi ,

Ok danke probier ich aus. Die beiden Variablen werde nicht verwendet, verwende globale BA ubd KNX Variablen. Es funktioniert auch . Nur sobald ich ein input variable hinzufüge error... wollte ein real und zwei bool aufnehmen
 
Zuletzt bearbeitet:
Bin am verzweifeln sobald ich was am VAR Input oder Output ändere KNX_APPL_CRC_ERR

Hat keiner eine Idee ? an was es liegen könnte ?

Aufbau ist diese PRG (MAIN) -> PRG ( Firstloor) -> FB ( KNXBlind) <- Dieser macht probleme .


Code:
FUNCTION_BLOCK KNXBlind


VAR_IN_OUT
	IKNX_IP_Controller: typKNX;
	IDPT_Dummy: typDPT;
END_VAR


VAR_INPUT


	S1: BOOL;
	S2: BOOL;
	IRunTime: TIME := t#80s;
	AutoSun: BOOL;
	IDirection: REAL := 180.0;
END_VAR
VAR_OUTPUT
	Pos: BYTE;
	Angle: BYTE;
	State: INT;
	EngineUP: BOOL;
	EngineDown: BOOL;
END_VAR
VAR
	Up: FbDPT_Switch;
	Down: FbDPT_Switch;
	Auto: FbDPT_Switch;
	Jalousie: BLIND;
	CalcSun: CALC_SUN_PROTECT;
	Sun: BOOL;
	AngleVal: FbDPT_Angle;
	PosVal: FbDPT_Value_4_Count;
	StateVal: FbDPT_Value_4_Count;
END_VAR

tt1.PNG
tt2.PNG
tt3.PNG
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Der CRC Fehler weist ja eher auf eine Fehlerhafte KNX Konfiguration hin, daher:

1. Rufst du alle deklarierten FbDPT-Bausteine auch auf? (auch andere FB checken - vielleicht liegt es gar nicht an diesem FB)
2. wird die Sym_XML -Datei auch korrekt erzeugt? (Projekt->Optionen->Symbolkonfiguration)
3. (neues) Sym_XML (erneut) in ETS laden und Applikation in TP-Klemme laden.
 
Hallo ,

Punkt 2 und 3 schon x mal geprüft bzw gemacht. Was meinst du mit aufrufen ?

Was ich nicht verstehe ich änder nur ein Variabel und dann gleich der Fehler ( kein FbDPT )
 
zu 1. Wenn du ein KNX Modul deklarierst, musst du diesen auch aufrufen. Hier in diesem FB tust du das ja auch, aber vielleicht hast du in (aus Versehen) auch in einem anderen PRG/FB einen hinzugefügt. Unuses Vars checken ist das Stichwort (Projekt->Überprüfen)
Code:
[COLOR=#333333][FONT=Courier]VAR
[/FONT][/COLOR][COLOR=#333333][FONT=Courier] Up: FbDPT_Switch;
END_VAR
[/FONT][/COLOR]

4. Rufst du alle FBDPT-Instanzen in derselben Task wie deinen Masterbaustein auf?

5. Und ich könnte mir vorstellen, dass dein typDPT_Dummy Probleme macht. leg testweise für jeden einen eigenen an (kann ja auch eine lokale Var in dem FB sein)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Bin ein Schritt weiter .

Sobald ich mein FB "Blind" einbinde in den KNXBlind bekomm ich das Problem.


Code:
FUNCTION_BLOCK BLIND
VAR_INPUT
	I_BL_S1:  BOOL;
	I_BL_S2:  BOOL;
	I_BL_AUTO_SUN:  BOOL;
	I_BL_SUN:  BOOL;
	I_BL_NIGHT:BOOL;
	I_BL_HIGH_WIND:  BOOL;
	I_BL_DAY: BOOL;
	I_BL_DIRECTION: REAL;


	I_BL_M_RUN: TIME;
END_VAR
VAR_OUTPUT
	O_BL_POS:  BYTE;
	O_BL_ANGLE:  BYTE;


	O_BL_E_UP:  BOOL;
	O_BL_E_DOWN:  BOOL;
	O_BL_STATE:  INT;
END_VAR
VAR
	FP_TT:TP;
	BL_POS:  BYTE;
	BL_ANGLE:  BYTE;


END_VAR




VAR  RETAIN PERSISTENT
	BLIND_I: BLIND_INPUT;
	BLIND_S: BLIND_SHADE;
	BLIND_E: BLIND_SECURITY;
	BLIND_C: BLIND_CONTROL;
		BLIND_N: BLIND_NIGHT;
END_VAR
 
Hallo,

innerhalb deines KNX_Blind Bausteins dürfen keine "VAR RETAIN PERSISTENT" Variablen verwendet werden.
Du musst also in deinem Baustein "Blind" die fünf Variablen als normale VAR deklarieren oder alternativ als VAR_IN_OUT und dann die RETAIN Deklaration außerhalb des Bausteins.
Wenn auch nur eine Variable in einem Baustein RETAIN deklatiert wird, dann wird der gesamte Inhalt des Bausteins in den RETAIN Speicher verschoben.
Diese Speicherbereich ist für die KNX Variablen aber nicht zulässig!
 
Danke das wars.

Aber was ich nicht hinbekomme die oscat in VAR_IN_OUT zu verschieben.

Dann kommt :

BLIND_C muss eine deklarierte Instanz des Funktionsblock 'BLIND_CONTROL' sein
 
Zurück
Oben