String als Variabelname

michikkk
2010-12-25
2011-01-07
  • michikkk - 2010-12-25

    Guten Tag

    Ich versuche ein Programm in ST zu schreiben, dass mir sagt, wie viele Eingänge aktiviert sind.
    Meine Eingänge sind alle mit input1, input2 bis input 50 angeschrieben.

    Ich habe mir nun eine For Schleife gebastelt, die als String input1 bis input50 ausgibt. Das klappt auch wunderbar.

    Nun kommt das Problem, die Abfrage: IF variable(STRING)=TRUE funktioniert natürlich nicht, das man String nicht mit BOOL vergleichen kann.

    Kann man das Problem irgendwie lösen?

     
  • mactoolz - 2010-12-25

    Hi,

    dann konvertiere doch deinen String mit

    STRING_TO_BOOL(sString)

    Wobei ich es fraglich halte Stringvariabeln als Text, TRUE oder FALSE zu belegen, aber gut wenn du deine Anwendung so programmiert.

    Warum verwendest du Stringvariabeln für ein Vergleich auf Bool ???

    MacToolz

     
  • michikkk - 2010-12-27

    Wie ich oben geschrieben habe, versuche ich nur die Anzahl gesetzter Ein bzw. Ausgänge zu ermitteln. Das sollte dann so aussehen: Ausgänge: 20/52

    Ich habe die Eingänge halt in Codesys durch variabeln ersetzt, eben diese Input variabeln. Der vergleich mit BOOL soll mir sagen ob sie gesetzt sind oder nicht.

     
  • mactoolz - 2010-12-27

    Hi,

    ja gut, dann sollte wohl die Konvertierung so wohl helfen oder ???

    MacToolz

     
  • Erik Böhm - 2011-01-03

    Servus
    Mach doch ein Array aus deinen Eingängen.

    Also Input: ARRAY[1..50] of BOOL;

    Macht die ganze Sache sehr viel einfacher

    Gruß
    Erik

     
  • franzhoepfinger - 2011-01-07

    kannst du mal einen Screenshot von der Steuerungskonfiguration hier posten ?

    wo die Eingänge angeschrieben sind ?

     

Log in to post a comment.