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.
    • S
      stefancammans last edited by

      Umwandlung BIN in DEC

      Hallo Zusammen,

      wie kann ich mehrere Binäre Datenpunkte zusammenfassen( DEC) und per MODBUS
      übertragen ?

      MfG

      F paul53 2 Replies Last reply Reply Quote 0
      • F
        fastfoot @stefancammans last edited by

        @stefancammans sagte in Umwandlung BIN in DEC:

        Umwandlung BIN in DEC

        Hallo Zusammen,

        wie kann ich mehrere Binäre Datenpunkte zusammenfassen( DEC) und per MODBUS
        übertragen ?

        MfG

        meinst Du so etwas?

        let a = '100';
        let b = '001';
        let c = parseInt(a | b,2);
        log(c);
        
        S 1 Reply Last reply Reply Quote 0
        • 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

                            667
                            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