Dastellung von Binärwerten (v2.3.9.x)

nar21
2010-12-17
2011-01-25
  • nar21 - 2010-12-17

    Hallo,

    in der CoDeSys v2.3.9.x Visu kann man laut dem Abschnitt Textformatierungen die Anzeige für Variablen recht umfangreich einstellen. Mir fehlt jedoch die Ausgabe eines WORD oder BYTE Typen im Binärformat. Ist so etwas für Target und WebVisu möglich?

    gültige Textformatierungen für die Textausgabe:
    d,i Dezimale Zahl
    o Oktale Zahl ohne Vorzeichen (ohne führende Null)
    x Hexadezimale Zahl ohne Vorzeichen (ohne führendes 0x)
    u Dezimale Zahl ohne Vorzeichen
    c Einzelnes Zeichen
    s Zeichenkette
    f REAL-Werte

    Grüße

     
  • Anonymous - 2010-12-21

    Originally created by: mg

    Vorzugsweise als String umformen und dann anzeigen. Was anderes ist mir nicht bekannt.

     
  • Anonymous - 2011-01-25

    Originally created by: Eckhard

    Hallo nar21

    Hier eine kleine Funktion, die als Eingang ein Word bekommt und als Ausgang
    einen String mit Nullen und Einsen liefert.
    Beispiel: Eingangsword = 5 Ergebnis ='1010000000000000'

    Deklarationsteil:
    **FUNCTION **Word_to_Bits : STRING
    VAR_INPUT
    WordN: *ORD;
    **END
    AR
    **
    R
    **END_
    R**

    Funktionsteil:
    **IF **Word_IN.0
    **THEN **Word_to_Bits := '1';
    **ELSE **Word_to_Bits := '0';
    END_IF

    **IF **Word_IN.1
    **THEN **Word_to_Bits := CONCAT(Word_to_Bits,'1');
    **ELSE **Word_to_Bits := CONCAT(Word_to_Bits,'0');
    END_IF

    **IF **Word_IN.2
    **THEN **Word_to_Bits := CONCAT(Word_to_Bits,'1');
    **ELSE **Word_to_Bits := CONCAT(Word_to_Bits,'0');
    END_IF
    ...
    so weiter machen bis zur letzten Zeile:

    **IF **Word_IN.15
    **THEN **Word_to_Bits := CONCAT(Word_to_Bits,'1');
    **ELSE **Word_to_Bits := CONCAT(Word_to_Bits,'0');
    END_IF

    Als FOR Schleife wäre es ein Fünfzeiler geworden, aber es gibt eine Fehlermeldung
    wenn man ein Bit aus dem Word indiziert (also Word_IN.index schreibt).

    Viele Grüße, Eckhard

     

Log in to post a comment.