16-Bit-Binärzahl

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • crasythom
    LoxBus Spammer
    • 02.10.2015
    • 297

    16-Bit-Binärzahl

    Hallo zusammen,

    ich stehe mit meinem Projekt EFH noch relativ am Anfang und stoße gerade auf das Problem, dass ich einen 16-Bit-Binärwert in DI-Ausgänge umwandeln muss. Für 8-Bit gibt es den Binärdecoder. Dieser funktioniert auch super. Aber den 16-Bit-Wert kann ich ja nicht ohne Weiteres in zwei mal 8-Bit zerlegen. Gibt es keinen 16-Bit-Binärdecoder?
    Oder hat jemand hierfür eine Lösung?
    Vielen Dank für Eure Hilfe.
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6289

    #2
    Wieso kannst Du das nicht einfach in 2x8 machen? DI Ausgänge? Du willst doch da nur wissen welche Bits gesetzt sind und welche nicht. Wo ist da der Unterschied 2x8 oder 1x16 hast? Dargestellt werden in beiden Fällen alle 16 Bits.

    Gruß Sven
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • crasythom
      LoxBus Spammer
      • 02.10.2015
      • 297

      #3
      Hallo Svethi,

      Der Binärdecoder nimmt Werte bis 255 auf. Werte werden wie folgt interpretiert:
      1 = Q1
      2 = Q2
      4 = Q3
      8 = Q4
      ...
      128 = Q8

      Der Wert 11 schaltet damit z.B. Q4, Q2 und Q1. Daher ist der maximale Wert 256. Dann sind Q1-Q8 an.
      Ich benötige jetzt jedoch 16 Ausgänge. Daher wäre der maximale Wert (alle an) irgendwas mit 65500.
      Den Wert kann ich nicht aufteilen, da der Wert auch beide der Binärdecoder betreffen kann. Mit ein paar Tricks habe ich es zwar geschafft den Wert rechnerisch in zwei Werte zu teilen, das habe ich allerdings nur in EXCEL geschafft und nicht in der Loxone.

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6289

        #4
        Da wird auch nichts "geschaltet". Die Ausgänge repräsentieren lediglich die Bits. Und alle 8 Bits gesetzt sind auch nur 255 und nicht 256. 256 sind es erst, wenn nur das 9 Bit gesetzt ist. 16 Bit = 2 Byte; 1 Byte = 1 Binärdecoder, 2 Byte = 2 Binärdecoder.
        256 = 0000000100000000 = 00000001 00000000 wo soll da das Problem sein??
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • crasythom
          LoxBus Spammer
          • 02.10.2015
          • 297

          #5
          Mit den 255 hast du natürlich recht.
          Ich kann mir das aber immer noch nicht vorstellen. Wie verknüpfe ich dann die zwei Binärdecoder? Hast du dafür ein Beispiel?

          Kommentar

          • svethi
            Lebende Foren Legende
            • 25.08.2015
            • 6289

            #6
            Das Ganze liegt vielleicht daran, dass ich nicht wirklich verstehe, was Du bezweckst. Was willst Du denn da verknüpfen? Wenn Du da was verknüpfen musst, müsstest Du das doch auch verknüpfen, wenn Du einen 16bit-Decoder hättest. An den "aktivierten" bits ändert sich doch nichts. So hast Du halt keine 16 Ausgänge am Stück sondern 2 Blöcke zu je 8 Ausgängen. Ausgang 1 des höherwertigen Byte-Decoders ist halt Ausgang 9 in Summe.


            mal eben von unterwegs ...
            Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

            Kommentar

            • HIS-Loxone
              MS Profi
              • 26.08.2015
              • 545

              #7
              Wo für benötigt man denn bitte denn 8bit oder 16bit Decoder?

              Kommentar

              • svethi
                Lebende Foren Legende
                • 25.08.2015
                • 6289

                #8
                Nun, Du kannst über eine einzige Zahl, bleiben wir mal bei 1Byte/8bit, 8 Ausgänge steuern.
                0=alles aus
                1=Ausgang 1 aktiv
                3=Ausgang 1 u 2 aktiv
                4=Ausgang 3 aktiv
                5=Ausgang 3 u 1 aktiv
                .
                .
                .
                128=Ausgang 8 aktiv
                255=alle Ausgänge aktiv

                Kann man in verschiedenen Situationen einsetzen. Ich verwende das z.B. bei meinem EnOceanPi für die Übermittlung welcher Taster eines EnOcean-Tasters gedrückt wurde.


                mal eben von unterwegs ...
                Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                Kommentar

                • crasythom
                  LoxBus Spammer
                  • 02.10.2015
                  • 297

                  #9
                  Erst mal danke für deine Geduld mit mir!

                  Deine Vermutung mit den Tastern ist schon richtig. Genau das habe ich auch vor. Ich habe eine WAGO an den Modbus angeschlossen. Daran verwende ich 16er Eingänge. Diese möchte ich nicht einzeln abfragen, weil das zu lange dauert. Ich habe dann den Tipp bekommen, eine Klemme als WORD auszulesen. Ich kenne mich da aber auch noch nicht im Detail aus.
                  Dieses muss dann meines Wissens bzw. meiner Unwissenheit mit dem Binärdecoder zerlegt werden.

                  Kommentar

                  • svethi
                    Lebende Foren Legende
                    • 25.08.2015
                    • 6289

                    #10
                    Ich habe kein Modbus, wie kommst Du denn da an die Werte ran?
                    Ähnlich wie bei UDP? Dann könntest Du Dir das gleich in 2 einzelne Bytes zerlegen.
                    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                    Kommentar

                    • Christian Fenzl
                      Lebende Foren Legende
                      • 31.08.2015
                      • 11202

                      #11
                      Also die Lösung ist diese. Eure Diskussion über Warum und Wieso hab ich nicht näher verfolgt ;-)
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar


                      • romildo
                        romildo kommentierte
                        Kommentar bearbeiten
                        Ich hatte dies mal im alten Forum so ähnlich vorgeschlagen, da gab es ja den Formelbaustein noch nicht.
                        Damit die Schaltung funktioniert muss an Stelle des Subtrahierer- ein Modulo- und hinter den Dividierer- noch ein Ganzzahl -Baustein eingefügt werden.
                    • svethi
                      Lebende Foren Legende
                      • 25.08.2015
                      • 6289

                      #12
                      lass Dir nichts erzählen ;-)
                      @Christian: so einfach isses nu nicht, versuch Dein Konstrukt mal mit 65500.

                      wenn Du nur an den "kompletten" Wert kommst, dann ist die Lösung wohl eher wie folgt.

                      Gruß Sven
                      Angehängte Dateien
                      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                      Kommentar


                      • Christian Fenzl
                        Christian Fenzl kommentierte
                        Kommentar bearbeiten
                        Mist :-) Und es hätte so einfach ausgesehen :-)

                      • svethi
                        svethi kommentierte
                        Kommentar bearbeiten
                        Hihi,

                        Hätt' ja klappen können.
                        Wolltest mich bestimmt nur testen. Bin von unserer Zusammenarbeit letztens eigentlich mehr gewöhnt;-)
                    • crasythom
                      LoxBus Spammer
                      • 02.10.2015
                      • 297

                      #13
                      Genial!
                      Genau das habe ich gesucht! Herzlichen Dank.

                      Kommentar

                      • Christian Fenzl
                        Lebende Foren Legende
                        • 31.08.2015
                        • 11202

                        #14
                        svethi , darf ich deine Lösung ins Wiki posten?
                        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                        Kommentar

                        • svethi
                          Lebende Foren Legende
                          • 25.08.2015
                          • 6289

                          #15
                          Warum nicht? Mach ruhig.
                          Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                          Kommentar

                          Lädt...