• 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

    Illegal Function alarm

    User help
    2
    18
    7.6k
    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.
    • M
      mlohbihler
      last edited by

      If this is a I/P data source, any chance you could expose it temporarily to internet access so that i can try it myself?

      Best regards,
      Matthew

      1 Reply Last reply Reply Quote 0
      • S
        SteveE
        last edited by

        I've discovered that I'm getting these illegal function errors on input status data points as well.

        1 Reply Last reply Reply Quote 0
        • S
          SteveE
          last edited by

          Another discovery: enabling "Contiguous batches only" alleviates the problem. Could there be an conflict between mango's disparate value mechanism and the the device's attempt to modify modbus registers?

          As far as I'm concerned, if turning on contiguous batches only resolves these errors without sacrificing performance, then I'm happy.

          1 Reply Last reply Reply Quote 0
          • M
            mlohbihler
            last edited by

            Hi Steve,

            I'm glad it's worked out. Note that your equipment is returning misleading error responses. If choosing contiguous batches fixes the problem, it means that the problem was "illegal register address", not "illegal function".

            I think this has been explained elsewhere, but the problem is thus... Say you want the values in registers 10 and 12, but you don't care about 11. It can be faster to do a single request for 10-12 than two requests each for 10 and 12. But some equipment will complain if it doesn't store anything at register 11. In these cases you can force two requests by clicking to only batch requests over contiguous register ids.

            Best regards,
            Matthew

            1 Reply Last reply Reply Quote 0
            • S
              SteveE
              last edited by

              Sorry, my previous post was incorrect. Testing against a larger system with multiple data sources shows that the contiguous batches setting has no effect on the occurrence of the illegal function alarm.

              I will attach the modbus4j exceptions being produced.

              Attachment: download link

              1 Reply Last reply Reply Quote 0
              • M
                mlohbihler
                last edited by

                Hmm... After looking at the code, i can't see how that condition would happen. First, what version of Mango are you using? Second, can you forward an export of your data source config?

                Best regards,
                Matthew

                1 Reply Last reply Reply Quote 0
                • S
                  SteveE
                  last edited by

                  I'm using v1.9.0.

                  Is it allowable for me to define multiple data sources that all communicate with the same ip host/port? I started seeing these errors after splitting my 900+ data points between 18 data sources all going at the same host/port. I wanted different data sources so I could use different update times for various groups of data points.

                  Let me know so I can rearrange my data points, if necessary, and retest before I send you my large set of DP definitions. Thanks.

                  1 Reply Last reply Reply Quote 0
                  • S
                    SteveE
                    last edited by

                    Ok, I've reproduced this again with a small set of data points. The included numeric data points work correctly; the binary coil status data points produce the illegal function (address) errors.

                    Attachment: download link

                    1 Reply Last reply Reply Quote 0
                    • M
                      mlohbihler
                      last edited by

                      Works fine for me, but i'm using a different slave. If you want more personalized help on this - in particular getting things working with your device(s) - use the contact us page to request support services. Turnaround is much faster, and we'll get to the bottom of the issue.

                      Best regards,
                      Matthew

                      1 Reply Last reply Reply Quote 0
                      • M
                        mlohbihler
                        last edited by

                        Oh, BTW, in that export, all of the "dp40012" points are coded as Coils, but - considering the "40012" and the fact that the bit number is set - it looks like you meant them to be holding registers.

                        Best regards,
                        Matthew

                        1 Reply Last reply Reply Quote 0
                        • S
                          SteveE
                          last edited by

                          I apologize for not posting this sooner, but I was too embarrassed. Your comments about whether these points are really coil and input status finally sank in. These are actually bits packed into input and holding registers, but I was trying to get them from the coil and input status ranges. (Doh!) So, I wrote meta data points to access the individual bits in the registers. This works fine, but is a bit slow. I'll create a new topic to discuss how to make this faster.

                          Thanks and sorry for my modbus ignorance.

                          1 Reply Last reply Reply Quote 0
                          • M
                            mlohbihler
                            last edited by

                            Steve, you can create a binary point on a holding register, and specify the bit in the register that you want.

                            Best regards,
                            Matthew

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