• 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

    Error while polling

    User help
    3
    11
    5.5k
    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.
    • J
      jjconti
      last edited by

      I start Mango with a Modbus IP data source created and get this error in the standar output:

      WARN 2010-04-16 10:51:48,781 (com.serotonin.mango.rt.dataSource.PollingDataSour
      ce.scheduleTimeout:66) - Modbus ip Prueba: poll at 2010/04/16 10:51:48 aborted b
      ecause a previous poll started at 2010/04/16 10:51:38 is still running
      WARN 2010-04-16 10:51:54,031 (com.serotonin.mango.rt.dataSource.modbus.ModbusDa
      taSource.receivedException:226) - Modbus exception
      com.serotonin.messaging.WaitingRoomException: No recipient was found waiting for
      response for key com.serotonin.modbus4j.ip.IpWaitingRoomKey@7fa2
      at com.serotonin.messaging.WaitingRoom.response(WaitingRoom.java:69)
      at com.serotonin.messaging.MessageControl.data(MessageControl.java:147)
      at com.serotonin.messaging.InputStreamListener.run(InputStreamListener.j
      ava:76)
      at java.lang.Thread.run(Thread.java:619)
      WARN 2010-04-16 10:51:58,687 (com.serotonin.mango.rt.dataSource.PollingDataSour
      ce.scheduleTimeout:66) - Modbus ip Prueba: poll at 2010/04/16 10:51:58 aborted b
      ecause a previous poll started at 2010/04/16 10:51:38 is still running

      What can be happening? There is now modbus server to connect.

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

        I take it you're using UDP. Some background...

        Request messages are sent, and then the thread "sits in the waiting room" for the response to come back. After a timeout the thread leaves the waiting room, shrugs its shoulders, and says that it didn't get a response.

        Later, a response is received, but by that time "no recipient was found waiting for response".

        Solution: increase your timeout.

        Best regards,
        Matthew

        1 Reply Last reply Reply Quote 0
        • J
          jjconti
          last edited by

          I'm using TCP.

          How can I avoid this error?

          1 Reply Last reply Reply Quote 0
          • J
            jjconti
            last edited by

            Im not responding.

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

              Solution: increase your timeout.

              Best regards,
              Matthew

              1 Reply Last reply Reply Quote 0
              • J
                jjconti
                last edited by

                How much? I have my modbus server turn off.

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

                  As much as needed to make the message go away. Seriously, i can't be more specific than that.

                  Best regards,
                  Matthew

                  1 Reply Last reply Reply Quote 0
                  • L
                    luke
                    last edited by

                    hi,

                    I have almost the same problem with the WaitingRoomException.
                    I set the timeout to different values with the same result, but the message
                    is received anyways.

                    output:
                    request:
                    00 00 00 00 00 06 03 03 00 01 00 0C ............

                    com.serotonin.messaging.WaitingRoomException: No recipient was found waiting for response for key com.serotonin.modbus4j.ip.xa.XaWaitingRoomKey@8008
                    at com.serotonin.messaging.WaitingRoom.response(WaitingRoom.java:69)
                    at com.serotonin.messaging.MessageControl.data(MessageControl.java:153)
                    at com.serotonin.messaging.InputStreamListener.run(InputStreamListener.java:76)
                    at java.lang.Thread.run(Thread.java:595)
                    response:
                    00 00 00 00 00 1B 03 03 18 43 67 12 25 00 00 00 .........Cg.%...
                    00 00 00 00 00 43 67 12 25 00 00 00 00 43 67 12 .....Cg.%....Cg.
                    25 %

                    {voltage 1=231.07088, voltage 6=231.07088, voltage 4=231.07088, voltage 3=0.0, voltage 2=0.0, voltage 5=0.0}

                    Source:

                    package test.sim;
                    
                    import com.serotonin.modbus4j.BatchRead;
                    import com.serotonin.modbus4j.BatchResults;
                    import com.serotonin.modbus4j.ModbusFactory;
                    import com.serotonin.modbus4j.ModbusLocator;
                    import com.serotonin.modbus4j.ModbusMaster;
                    import com.serotonin.modbus4j.code.DataType;
                    import com.serotonin.modbus4j.code.RegisterRange;
                    import com.serotonin.modbus4j.ip.IpParameters;
                     
                    public class BatchTest
                    {
                      public static void main(String[] args) throws Exception {
                        IpParameters tcpParameters = new IpParameters();
                        tcpParameters.setHost("10.17.175.43");
                    
                        ModbusFactory modbusFactory = new ModbusFactory();
                        ModbusMaster master = modbusFactory.createTcpMaster(tcpParameters, true);
                    
                    //    master.setTimeout(5000);
                    
                        for(int i = 0; i < 50; i++) {
                    
                          try {
                            BatchRead<String> batchRead = new BatchRead<String>();
                            int slaveId = 3;
                    
                            ModbusLocator locator = new ModbusLocator(slaveId, RegisterRange.HOLDING_REGISTER, 1,
                              DataType.FOUR_BYTE_FLOAT);
                    
                            ModbusLocator locator2 = new ModbusLocator(slaveId, RegisterRange.HOLDING_REGISTER, 3,
                              DataType.FOUR_BYTE_FLOAT);
                    
                            ModbusLocator locator3 = new ModbusLocator(slaveId, RegisterRange.HOLDING_REGISTER, 5,
                              DataType.FOUR_BYTE_FLOAT);
                    
                            ModbusLocator locator4 = new ModbusLocator(slaveId, RegisterRange.HOLDING_REGISTER, 7,
                              DataType.FOUR_BYTE_FLOAT);
                    
                            ModbusLocator locator5 = new ModbusLocator(slaveId, RegisterRange.HOLDING_REGISTER, 9,
                              DataType.FOUR_BYTE_FLOAT);
                    
                            ModbusLocator locator6 = new ModbusLocator(slaveId, RegisterRange.HOLDING_REGISTER, 11,
                              DataType.FOUR_BYTE_FLOAT);
                    
                            batchRead.addLocator("voltage 1", locator);
                            batchRead.addLocator("voltage 2", locator2);
                            batchRead.addLocator("voltage 3", locator3);
                            batchRead.addLocator("voltage 4", locator4);
                            batchRead.addLocator("voltage 5", locator5);
                            batchRead.addLocator("voltage 6", locator6);
                    
                            master.init();
                    
                            BatchResults<String> results = master.send(batchRead);
                    
                            System.err.println(results);
                          }
                          finally {
                            master.destroy();
                          }
                        }
                      }
                    }
                    

                    Thanking you in anticipation!

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

                      How much? I have my modbus server turn off.

                      I guess i didn't read the entire question. If your modbus server is turned off, shouldn't you expect an error? There is obviously no appropriate timeout for equipment that will never answer.

                      Best regards,
                      Matthew

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

                        Luke, what happens if you increase the timeout?

                        Best regards,
                        Matthew

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