• Recent
    • Tags
    • Popular
    • Register
    • Login

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website

    A Bit Stuck on Writing Multiple MODBUS Registers

    User help
    4
    44
    19.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • danD
      dan
      last edited by

      FML...

      0_1595288851390_73c615ec-36ee-4aab-9c39-7de2ee65a439-image.png

      It does say Control Registers at the top of the info page..

      0_1595288918666_7ee37d3f-d806-4d64-9007-bc9a9ebe60b4-image.png

      1 Reply Last reply Reply Quote 0
      • MattFoxM
        MattFox
        last edited by MattFox

        So it's a nope? - note your 0x2 should be 0x02

        Do not follow where the path may lead; go instead where there is no path.
        And leave a trail - Muriel Strode

        1 Reply Last reply Reply Quote 0
        • danD
          dan
          last edited by

          Na I don't think I can write to coils on this device.

          1 Reply Last reply Reply Quote 0
          • MattFoxM
            MattFox
            last edited by

            write
            4104
            0
            2
            ASCII
            0x8B76,0x8B76
            That sets that control key and calls function 2

            Do not follow where the path may lead; go instead where there is no path.
            And leave a trail - Muriel Strode

            1 Reply Last reply Reply Quote 0
            • CraigWebC
              CraigWeb
              last edited by

              Hi Dan

              Ive run into similar situations before with modbus device.
              Make sure your data source has Use multiple write commands only checked.
              Modbus function 16 writes to holding registers
              Use a 4 byte unsigned int.
              I believe the decimal number would be 166774:
              0_1595311234142_Screenshot 2020-07-21 at 08.00.25.png
              Turn on the log I/O of the data source so you can inspect the modbus commands.
              There may be a chance you might need to use a 4 byte unsigned int swapped

              If you dont come right paste your I/O commands here.

              1 Reply Last reply Reply Quote 0
              • danD
                dan
                last edited by

                Hi Craig, I've definitely got multiple writes selected in the data source.

                I might have to re-visit the calculator / converter looking at that number. I was just sending it the raw hex value.

                I'll give it a go. Thanks :)

                1 Reply Last reply Reply Quote 0
                • CraigWebC
                  CraigWeb
                  last edited by CraigWeb

                  Hey Dan

                  Did a quick tet for you. I believe it is correct checkout the snapshot I took from Wireshark:
                  0_1595326095916_Screenshot 2020-07-21 at 12.07.11.png

                  Something to note about modbus is that sometime in manuals they will prefix the register number with the register type. Holding register is decimal 4. So when you see that on a manual you will just put offset 104 in mango. You will also see that some manual are 0 based and some are 1 based. So you might need to try 103 instead of 104.
                  Below is the settings I used for my point. I used decimal 166774
                  0_1595326337152_Screenshot 2020-07-21 at 12.12.05.png

                  1 Reply Last reply Reply Quote 0
                  • MattFoxM
                    MattFox
                    last edited by

                    Ok, so I can understand using 166774 gives you 0x00028b76, basically just bit shifts the entire thing in. And that by using a holding register implicitly puts a 4 in the front so only 104 is needed... But if the manual states you need a control key into 8 and its 1's complement into register 9, shouldn't it be 0x8B768B76 = 2339801974 DEC?

                    Fox

                    Do not follow where the path may lead; go instead where there is no path.
                    And leave a trail - Muriel Strode

                    1 Reply Last reply Reply Quote 0
                    • danD
                      dan
                      last edited by

                      OK, now my brain is really hurting, I'll turn on the i/o log and see what mine is outputting.
                      Just to clarify a little further, the MODBUS register I need to write to is on 'Page 16', the manual says to multiply 256 x Page then add the Offset, so in this case I'm on (256 x 16) + 8 = 4104
                      When reading off battery voltages and other engine diagnostics off this the formula seems to work.
                      I'll try again with the decimal.

                      Cheers

                      1 Reply Last reply Reply Quote 0
                      • danD
                        dan
                        last edited by

                        0_1595368234133_6f692b3b-5b32-4e53-8adc-08c5a7ab46a9-image.png
                        0_1595368250040_9530b480-46fd-4685-869a-41c8aebbf8c0-image.png

                        1 Reply Last reply Reply Quote 0
                        • danD
                          dan
                          last edited by

                          Interestingly, when I write the hex values I get this pop up error..
                          0_1595368403070_8b8aefed-818b-4048-850e-4e56afa9c2a3-image.png
                          Nothing written in the log during this time however :/
                          0_1595368421016_04c99fc6-f9b1-47b1-9109-ffaa4b0fe395-image.png

                          cwangvC 1 Reply Last reply Reply Quote 0
                          • cwangvC
                            cwangv @dan
                            last edited by

                            @dan
                            just curious why the 'Number of registers' is '0'? shouldn't be at least '1'?

                            1 Reply Last reply Reply Quote 0
                            • MattFoxM
                              MattFox
                              last edited by

                              It's greyed out and disabled.

                              Do not follow where the path may lead; go instead where there is no path.
                              And leave a trail - Muriel Strode

                              1 Reply Last reply Reply Quote 0
                              • CraigWebC
                                CraigWeb
                                last edited by

                                Hi Dan

                                Regarding the address, I think you are correct. Well since other address work you are correct. If 4104 is not working I would try 4103.

                                I think @MattFox is correct regarding the ones's compliment that needs to be written to address 9. I get a different number tho.
                                0_1595400358409_Screenshot 2020-07-22 at 08.45.17.png

                                1 Reply Last reply Reply Quote 0
                                • MattFoxM
                                  MattFox
                                  last edited by

                                  I think your answer is right here craig, something is amiss with how I did it, but looking at it now, I think we're all starting to break the back of it.

                                  Do not follow where the path may lead; go instead where there is no path.
                                  And leave a trail - Muriel Strode

                                  1 Reply Last reply Reply Quote 0
                                  • danD
                                    dan
                                    last edited by

                                    Hey Guys, thanks again for helping out. That's a big number. I'll give that one a go, I'll try it into 4104 and 4103.

                                    Cheers
                                    Dan

                                    1 Reply Last reply Reply Quote 0
                                    • danD
                                      dan
                                      last edited by

                                      Interestingly I get a timeout message if I try writing the whole decimal number to either data point register.
                                      0_1595402220586_b29f9048-0451-42d0-9ba5-23975e820734-image.png

                                      If I change back to a hex value it just comes up with the top blue error again.

                                      1 Reply Last reply Reply Quote 0
                                      • danD
                                        dan
                                        last edited by

                                        although might actually currently be a timeout in the network, as it's on the top of a mountain in NZ. at the end of a Mimomax link :/
                                        I do believe it's snowing up there currently..

                                        MattFoxM 1 Reply Last reply Reply Quote 0
                                        • danD
                                          dan
                                          last edited by

                                          Bugga, still same timeout message when network is responding better.

                                          com.serotonin.modbus4j.exception.ModbusTransportException: java.net.SocketTimeoutException: connect timed out

                                          If I interrogate a standard read point it works fine.

                                          1 Reply Last reply Reply Quote 0
                                          • MattFoxM
                                            MattFox @dan
                                            last edited by MattFox

                                            although might actually currently be a timeout in the network, as it's on the top of a mountain in NZ. at the end of a Mimomax link :/
                                            I do believe it's snowing up there currently..

                                            @dan Sounds like I need to make a roadtrip! Haha

                                            Do not follow where the path may lead; go instead where there is no path.
                                            And leave a trail - Muriel Strode

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