Funktion mit Array-Rückgabewert

cas

Level-2
Beiträge
521
Reaktionspunkte
43
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wie muß eine Function aussehen, wenn diese als Rückgabewert
ein z.b. 10 stelliges Array erhaten soll ?

Also als Eingang der Function irgendwelche Datendypen wie Bool usw und als Ausgang dann Array[10] as Bool;

Hmmmmm

MfG CAS
 
Du musst einen entsprechenden Datentyp definieren, z. B. eine Struktur, bestehend aus einem Array.
Diesen Datentyp kannst du dann als Rückgabewert der FUN auswählen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde entweder VAR_IN_OUT (compiler pointer) oder direkt eigene Pointer empfehlen.

FUNCTION F_Array : BOOL
VAR_IN_OUT
arrData: ARRAY[1..10] OF INT;
END_VAR
 
ist aber alles nicht so, wie ich mir das vorstelle,

Die "Ausgangsseite) , also das Array, benötige ich im FUP auf der rechten Seite um die Daten an einen Aderen FB übersichtlich weiterzugeben.

Hab es jetzt statt mit einer Function mit einem FB gelöst. Da Klappt das natürlich. Aber man eine unnötige Instanz anlegen.

Danke erstmal..


MfG CAS
 
...Die "Ausgangsseite) , also das Array, benötige ich im FUP auf der rechten Seite um die Daten an einen Aderen FB übersichtlich weiterzugeben.

Hab es jetzt statt mit einer Function mit einem FB gelöst. Da Klappt das natürlich. Aber man eine unnötige Instanz anlegen.

Danke erstmal..


MfG CAS
Also bei funktioniert das wunderbar! CoDeSys V3.4
Du musst halt beim hinzufügen der Function Rückgabetyp "ARRAY [0..9] OF BOOL" per Hand eingeben, oder später im Deklarationsteil deiner Function.
 

Anhänge

  • FunctionArray.jpg
    FunctionArray.jpg
    80,6 KB · Aufrufe: 54
  • FunctionArray_Test.jpg
    FunctionArray_Test.jpg
    101,6 KB · Aufrufe: 51
Wenn es geht, dann sollte man ARRAYs oder Strukturen als Rückgabewerte vermeiden. Der Wert wird dann nämlich als ganzes kopiert. Reicht man einen Array als VAR_IN_OUT in eine Funktion rein und lässt sich das Array von der Funktion füllen, dann wird nur eine Referenz (POINTER) kopiert.
Das ist deutlich performanter.
 
Zurück
Oben