SFC24 Aufruf

SCLNewbie

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

ich probiere jetzt schon seit langer Zeit den SFC24 in SCl aufzurufen. Mein Quelltext:

FUNCTION FC10 : VOID
VAR_INPUT
DB_No : WORD;
END_VAR
VAR_OUTPUT
RetVal : INT;
No_Byte : WORD;
Write_P : BOOL;
END_VAR

VAR_TEMP
Z : INT;
END_VAR
Z := SFC Test(DB_NUMBER := DB_No,
RET_VAL := RetVal,
DB_LENGTH := No_Byte,
WRITE_PROT:= Write_P);

END_FUNCTION

In der Symboltabelle habe ich den SFC24 mit "SFC Test" benannt und dementsprechend die Funktion "FC10" eingetragen. Für die In-und Output-Variablen habe ich einen seperaten globalen Datenbaustein angelegt. Leider kommt jetzt immer die Fehlermeldung, dass der Bezeichner "SFC Test" nicht existiert. Ich weis nicht mehr weiter...in den Handbüchern findet man auch nichts. Vielen Dank für eure Hilfe!

Viele Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur durch das Eintragen des Symbols in die Symboltabelle kennt der Übersetzer noch nicht die Funktionsparameter.
Das funktioniert nur wenn du das für die SFC24 vorgesehene Symbol TEST_DB verwendest, dann wird der Baustein automatisch in dein Projekt kopiert.
Also
Z := TEST_DB(DB_NUMBER := DB_No, ....

Wenn du später ein anderes Symbol für den SFC haben willst kannst du das dann in der Symboltabelle ändern. Wenn du Leerzeichen in deinem Symbol hast, musst du dieses in Anführungszeichen setzen.
 
Okay, also muss ich für jeden SFC ein vorgesehenes Symbol verwenden. Wie sähe dann der Aufruf des SFC46 bzw. SFC59 aus?
Vielen Dank!
 
Kopiere dir einfach die SFC/SFB aus der "Standard Library" in dein Projekt, dann hast du automatisch die richtige Symbolik in deiner Symboldatei. Den Bausteinaufruf kannst du in SCL auch über das Menü "Einfügen - Bausteinaufruf" in deinen SCL-Code einfügen. Dann hast du eine Vorlage für die Parameter des eingefügten Bausteins.

Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe über Einfügen-> Bausteinaufruf den SFC46 eingefügt. Nur leider kommt immer noch die selbe Fehlermeldung "Funktion nicht definiert, ungültiger oder fehlender Funktionstyp" . In der Variablentabelle habe ich den SFC46 mit dem Symbol "STP" vermerkt. Warum klappt das net?? Vielen Dank!

Mein Quellcode:

FUNCTION_BLOCK FB_STOP_CPU
VAR_TEMP
// temporäre Variablen
END_VAR
VAR
// statische Variablen
END_VAR
STP(); // VOID

END_FUNCTION_BLOCK​
 
Zurück
Oben