String-wert als Variablenname nutzen

Hugh
2009-06-30
2009-07-01
  • Hugh - 2009-06-30

    Hi,

    da ich einen Funktionsblock x-fach aufrufe, habe ich ein Array of Struct erzeugt, in dem die unterschiedlichen Parameter gespeichert sind.

    Nun habe ich 2 Probleme:

    1. Habe ich mehrer Temperaturfühler. Die Bezeichnung der Temperaturfühler z.B. Variable: Temp1 habe ich im Array NameArray[index].Temperaturfühler als String gespeichert.

    Nun will ich beim Aufruf des Funktionsblock mit hilfe von NameArray[index].Temperaturfühler den String als Variablenname übergeben. Der Funktionsblock soll als Wert nicht den String an sich (also in diesem Beispiel 'Temp1' übernehmen sondern mit dem aktuellen Wert der Variable Temp1.

    Ich hoffe ihr könnt mir Folgen und habt ne Lösung?!

    1. Würde ich gerne in einem weiteren Schritt in ST mit einer For-Schleife die Funktionsblöcke automatisch aufrufen.

    Da habe ich wieder das Problem, dass der Bezeichner des Funktionsblock als String im Array gespeichert ist. Darüber hinaus muss der FB aus deklariert werden. Kann ich das automatisieren?

     
  • SPSstudent - 2009-07-01

    Hugh hat geschrieben:
    Ich hoffe ihr könnt mir Folgen?

    Nein

    Den Name der Funktionsblöcke als String in einem Array zu speichern hört sich umständlich an.

    Warum nimmst du in dem Array / Struct nicht einfach direkt den Variablentyp von Temp1 bzw. den Funktionsblock ?

    Oder falls du die Variablen / FB-Instanzen schon wo anders deklariert hast, könntest du ev. auch Pointer nehmen.

    Gerade bei den Funktionsblöcken würde sich doch sowas anbieten:

    FOR i := 0 to iMax

    DO

    arrayFB[i].Start := TRUE;

    END_FOR

     

Log in to post a comment.