FB hat Array als Eingang

2010-11-28
2010-12-06
  • forellengarten - 2010-11-28

    zu folgendem Problem möchte ich euch um Hilfe bitten:

    ich habe folgenden testFB. Ich möchte ihm Boolsche Werte übergeben. Aber das scheint nicht zu funktionieren. Geht das denn überhaupt so ein ARRAY als VAR_IN festzulegen? Ich würde dann gerne Werte so übergeben: testFB(eingang[7]:= true);
    Leider funktioniert das nicht. Habt ihr da eine Lösung bei der Hand? DANKE.

    FUNCTION_BLOCK testFB
    VAR_INPUT
    eingang: ARRAY[1..2000] OF BOOL
    END_VAR
    VAR_OUTPUT
    out: BOOL;
    END_VAR

     

    Related

    Talk.ru: 7

  • Rolf-Geisler - 2010-11-28

    Geht schon, aber Du musst das ARRAY als eigenständigen Datentyp deklarieren :

    TYPE Inputs : ARRAY [0..2000] OF BOOL;
    END_TYPE
    

    Der Baustein verwendet das Array dann so:

    FUNCTION_BLOCK testFB
    VAR_INPUT
    eingang: Inputs;
    END_VAR
    VAR_OUTPUT
    out: BOOL;
    END_VAR
    
     
  • forellengarten - 2010-11-30

    Rolf_Geisler hat geschrieben:
    Geht schon, aber Du musst das ARRAY als eigenständigen Datentyp deklarieren :

    TYPE Inputs : ARRAY [0..2000] OF BOOL;
    END_TYPE
    

    Der Baustein verwendet das Array dann so:

    FUNCTION_BLOCK testFB
    VAR_INPUT
    eingang: Inputs;
    END_VAR
    VAR_OUTPUT
    out: BOOL;
    END_VAR
    

    super, das war ein Traumtipp!!. Bin grade am testen. Einzig was dabei nicht geht: ich kann die Eingänge nicht einzeln übergeben (z.B. eingang[33]:=True) sondern nur das ganze Array. Soll heissen, ich muß das Array im aufrufenden Programm schreiben und als GANZES an den FB übergeben. Danke nochmal!

     
  • Pitsch - 2010-11-30

    Hallo

    Versuchs doch mit einer Variablen, von Typ Byte oder Integer.
    Hier kannst Du auch sämtliche Bits, mit hilfe der Wert-Zuweisung erreichen und so die Variable als Eigangswert benutzen.

    Mit freundlichen Grüssen! Pitsch

     
  • Erik Böhm - 2010-12-03

    Moin
    Man könnte auch einen Pointer nehmen.
    Geht schneller und spart auch noch Speicherplatz.

    Gruß
    Erik

     
  • forellengarten - 2010-12-03

    danke an alle für eure Hilfe,
    habe es mittlerweile gelöst indem ich ein einfach ein komplettes array an den FB übergebe!

    nochmal danke für alle Inputs von euch!

     
  • Anonymous - 2010-12-06

    Originally created by: Bernhard Werner

    Hi,

    die Übergabe von Array per VAR_INPUT sollte aber tatsächlich eine Ausnahme sein.
    Es ist deutlich langsamer und Speicherintensiver als eine Übergabe per VAR_IN_OUT oder
    POINTER.

    Bernhard Werner

     

Log in to post a comment.