Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Umwandlung BIN in DEC

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Umwandlung BIN in DEC

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @stefancammans last edited by

      @stefancammans sagte:

      mehrere Binäre Datenpunkte zusammenfassen

      Binäre (0/1) oder boolsche (false/true) Datenpunkte ?

      S 1 Reply Last reply Reply Quote 0
      • S
        stefancammans @fastfoot last edited by

        @fastfoot

        so ähnlich...

        ich möchte mehrere Bool-VAR in ein MODBUS-Register übergeben,
        um die Variabel in der Wago-SPS als Tast-befehle zu nutzen.

        So sähe das in Codesys aus :
        Beispiel BIT TO WORD.PNG
        Beispiel BIT TO WORD 2.PNG

        1 Reply Last reply Reply Quote 0
        • S
          stefancammans @paul53 last edited by

          @paul53

          ist mir eingenlich egal.
          Der Tasterbefehl kommt aus der VISU vom iobroker.
          Aber 0 & 1 ist denke ich einfacher.

          MfG

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @stefancammans last edited by paul53

            @stefancammans sagte:

            0 & 1 ist denke ich einfacher.

            Das muss man nicht in eine Zahl wandeln. Im folgenden Beispiel enthält der Variablenname die Bitposition.

            let dec = a0 | a1 << 1 | a2 << 2 | a3 << 3
            
            S 1 Reply Last reply Reply Quote 0
            • S
              stefancammans @paul53 last edited by

              @paul53

              let modbus_Helper = a0 | 'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2' << 1 |
              'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3' << 2 |
              'javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4' << 3 ;

              setState('modbus.0.holdingRegisters.12310' ,modbus_Helper )

              irgendwie bekomme ich das nicht hin....

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @stefancammans last edited by paul53

                @stefancammans
                Datenpunkt-IDs sind keine binären Werte sondern Strings.

                let a2 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2').val;
                let a3 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3').val;
                let a4 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4').val;
                let modbus_Helper = a2 << 2 | a3 << 3 | a4 << 4;
                setState('modbus.0.holdingRegisters.12310', modbus_Helper);
                
                S 1 Reply Last reply Reply Quote 0
                • S
                  stefancammans @paul53 last edited by

                  @paul53

                  Das funktioniert schon mal super.

                  aber wie sorge ich jetzt dafür das es bei Wertänderung ausgeführt wird?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @stefancammans last edited by

                    @stefancammans sagte:

                    bei Wertänderung ausgeführt wird?

                    var a2 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2').val;
                    var a3 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3').val;
                    var a4 = getState('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4').val;
                    
                    function bin2dec() {
                       let modbus_Helper = a2 << 2 | a3 << 3 | a4 << 4;
                       setState('modbus.0.holdingRegisters.12310', modbus_Helper);
                    }
                    
                    bin2dec(); // Script start
                    
                    on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_2', function(dp) {
                      a2 = dp.state.val;
                      bin2dec();
                    });
                    on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_3', function(dp) {
                      a3 = dp.state.val;
                      bin2dec();
                    });
                    on('javascript.0.script.js.BIT_TO_.Bit_to_Word_2_4', function(dp) {
                      a4 = dp.state.val;
                      bin2dec();
                    });
                    
                    S 1 Reply Last reply Reply Quote 0
                    • S
                      stefancammans @paul53 last edited by

                      @paul53

                      Super vielen Dank !!!
                      Da wäre ich nie drauf gekommen.

                      Es geht genau so wie ich es mir vorgestellt habe.
                      Danke !!

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @stefancammans last edited by

                        @stefancammans sagte:

                        genau so wie ich es mir vorgestellt habe.

                        Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        762
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        3
                        12
                        401
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo