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
    Word_IN: WORD;
    END_VAR
    VAR
    END_VAR

    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.