Problem mit FC in SCL

broesel

Level-1
Beiträge
29
Reaktionspunkte
0
Ich rufe in einem FB die folgende Funktion auf:

Der Funktion übergebe ich den Parameter Adr_ret (int) an den
input Adr.

FC1(Adr:=Adr_ret);

Funktion FC1:
Code:
FUNCTION FC1 : VOID
VAR_INPUT
    Adr:INT;
END_VAR
VAR_TEMP
  // temporäre Variablen
END_VAR
VAR_OUTPUT
    Return_next:BOOL;
END_VAR
BEGIN
  // Anweisungsteil
 
END_FUNCTION

Bekomme den Fehler angezeigt. Eingangsparameter der Funktion sind unvollständig.

Danke
 

Beim Aufruf fehlt die Übergabe für:
VAR_OUTPUT
Return_next:BOOL;


Gruß
raika
 
Code:
FC1(Adr := Test_Int, Return_next := Test_Bool);
 
Ich brauche beim AUfruf der Funtion doch in der
Parameterliste nur den Input also

FC1(Adr:=Adr_ret);

bekannt machen.

Habe den Output jetzt noch dazu genommen.

FC1(Adr:=Adr_ret, Return_next);

Gibt auch einen Fehler beim Aufruf.
 
Ja jetzt gehts! Ich dachte ich brauche nur den Input bekannt machen.

Danke an Alle
 
Etwas eleganter ist es, der Funktion den entsprechenden Datentyp zuzuweisen.
Code:
FUNCTION FKT_NAME : BOOL  <-----
VAR_INPUT
    Adr:INT;
END_VAR
 
BEGIN
  FKT_NAME:=...
END_FUNCTION

Der Aufruf der Funktion sieht dann so aus:
Code:
TEST_BOOL := FKT_NAME(Adr:=TEST_INT);


Gruß, Onkel
 

Hallo!

Kann mir das bitte jemand genauer erklären was das für Vorteile hat?
Bringt aber nur was wenn man den Baustein auch wieder in einen SCL Baustein aufruft, bei einen AWL aufruf ist da kein unterschied, oder?

godi
 
Hallo!

Bringt aber nur was wenn man den Baustein auch wieder in einen SCL Baustein aufruft, bei einen AWL aufruf ist da kein unterschied, oder?

godi

In AWL/KOP/FUP wäre das der Returnwert (siehe Schnittstellenparameter: RET_VAL), der beim Aufruf zurückgegeben wird.

Gruß
raika
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…