Daniel Brenndörfer
Level-1
- Beiträge
- 9
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
ich blicke anscheinend die Syntax nicht, wenn ich in TwinCAT einen Function Block mit Initialisierungsvariablen erstellen will. Was ich versuche:
FUNCTION_BLOCK FB_Test
VAR_INPUT
Testvar : INT;
END_VAR
-----------------
fbTest : FB_Test(Testvar:=1);
Dabei kriege ich die Fehlermeldung
Error No matching FB_init method found for instantiation of FB_Test
Ich meine eigentlich, diese Syntax bräuchte keine explizite FB_init, aber vielleicht habe ich das falsch verstanden. Ich habe schon versucht, mit Rechtsklick eine zu erstellen, die Fehlermeldung bleibt dann aber gleich. Erst wenn ich in FB_init reinschreibe
METHOD FB_init : BOOL
VAR_INPUT
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
Testvar : INT;
END_VAR
THIS^.Testvar := Testvar;
kriege ich keine Fehlermeldung mehr. Das fühlt sich aber falsch an - Testvar als Input sowohl des FB als auch von FB_init? Soll das so? Oder gibt es eine elegantere Lösung?
ich blicke anscheinend die Syntax nicht, wenn ich in TwinCAT einen Function Block mit Initialisierungsvariablen erstellen will. Was ich versuche:
FUNCTION_BLOCK FB_Test
VAR_INPUT
Testvar : INT;
END_VAR
-----------------
fbTest : FB_Test(Testvar:=1);
Dabei kriege ich die Fehlermeldung
Error No matching FB_init method found for instantiation of FB_Test
Ich meine eigentlich, diese Syntax bräuchte keine explizite FB_init, aber vielleicht habe ich das falsch verstanden. Ich habe schon versucht, mit Rechtsklick eine zu erstellen, die Fehlermeldung bleibt dann aber gleich. Erst wenn ich in FB_init reinschreibe
METHOD FB_init : BOOL
VAR_INPUT
bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCode : BOOL; // if TRUE, the instance afterwards gets moved into the copy code (online change)
Testvar : INT;
END_VAR
THIS^.Testvar := Testvar;
kriege ich keine Fehlermeldung mehr. Das fühlt sich aber falsch an - Testvar als Input sowohl des FB als auch von FB_init? Soll das so? Oder gibt es eine elegantere Lösung?