Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

ARRAY - Bit auslesen

Anonymous
2005-07-29
2005-08-09
  • Anonymous - 2005-07-29

    Originally created by: dani

    Hallo,

    ich habe ein kleines Problem mit dem auslesen der einzelnen Bits. Aus einem WORD möchte ich die einzelnen Bits auslesen und in einem ARRAY schreiben. Leider kommt immer die Fehlermeldung das eine ganze Zahl erwartet wird. Hier ist mein Vorschlag:

    i:=0;

    WHILE(i<5) DO

    DataBit[i]:=wInput.i;
    
    i:=i+1;
    

    END_WHILE

    Wieso funktioniert es nicht, bei einer Variablen als Anhang von wInput, es funktioniert bei einer Zahl, z.B. wInput.1? Ansonsten fällt mir nur die Standartlösung ein, wo jedes Feldelement einzeln einem Bit zugeordnet wir (DataBit[2]:=wInput.2; => ist aber ein mega Schreibaufwand).

    Ich hoffe ihr könnt mir helfen.

    Gruß Dani

     

    Related

    Talk.ru: 2

  • Anonymous - 2005-08-09

    Originally created by: Bernhard Werner

    Hallo Dani,

    Die Fehlermeldung will sagen, dass ein Konstanter Wert erwartet wird und

    keine Variable.

    w.i ist eben rein von der Syntax der Zugriff auf eine Komponente und nicht auf ein Bit.

    Eine arithmetische Lösung Deines Problems wäre:

    DataBit[i] := BOOL_TO_DWORD(SHR(SHL(wInput, 31 - i), 31));

    (oder eben Schreibarbeit)

    Gruss,

    Bernhard

    dani hat geschrieben:
    Hallo,
    ich habe ein kleines Problem mit dem auslesen der einzelnen Bits. Aus einem WORD möchte ich die einzelnen Bits auslesen und in einem ARRAY schreiben. Leider kommt immer die Fehlermeldung das eine ganze Zahl erwartet wird. Hier ist mein Vorschlag:
    i:=0;
    WHILE(i<5) DO
    DataBit[i]:=wInput.i;
    i:=i+1;
    END_WHILE
    Wieso funktioniert es nicht, bei einer Variablen als Anhang von wInput, es funktioniert bei einer Zahl, z.B. wInput.1? Ansonsten fällt mir nur die Standartlösung ein, wo jedes Feldelement einzeln einem Bit zugeordnet wir (DataBit[2]:=wInput.2; => ist aber ein mega Schreibaufwand).
    Ich hoffe ihr könnt mir helfen.
    Gruß Dani

     

    Related

    Talk.ru: 2


Log in to post a comment.