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

Unable to set point value in Mango


  • Hi guys,
    I am trying to set a point value for a usb to serial port connected to my computer. However I keep getting this exception

    com.serotonin.modbus4j.exception.ModbusTransportException: com.serotonin.messaging.TimeoutException: request=com.serotonin.modbus4j.serial.rtu.Rt
    uMessageRequest@97d1ff
            at com.serotonin.modbus4j.serial.rtu.RtuMaster.sendImpl(RtuMaster.java:80)
            at com.serotonin.modbus4j.ModbusMaster.send(ModbusMaster.java:92)
            at com.serotonin.modbus4j.ModbusMaster.sendFunctionGroup(ModbusMaster.java:346)
            at com.serotonin.modbus4j.ModbusMaster.send(ModbusMaster.java:292)
            at com.serotonin.modbus4j.ModbusMaster.getValue(ModbusMaster.java:115)
            at com.serotonin.m2m2.modbus.rt.ModbusDataSourceRT.forcePointRead(ModbusDataSourceRT.java:332)
            at com.serotonin.m2m2.rt.RuntimeManager.forcePointRead(RuntimeManager.java:468)
            at com.serotonin.m2m2.web.dwr.BaseDwr.forcePointRead(BaseDwr.java:220)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
            at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
            at com.serotonin.m2m2.web.dwr.util.TranslationsFilter.doFilter(TranslationsFilter.java:37)
            at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
            at com.serotonin.m2m2.web.dwr.util.ExceptionDetectionFilter.doFilter(ExceptionDetectionFilter.java:26)
            at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
            at com.serotonin.m2m2.web.dwr.util.DwrPermissionFilter.doFilter(DwrPermissionFilter.java:38)
            at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
            at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)
            at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)
            at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
            at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
            at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
            at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538)
            at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)
            at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
            at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517)
            at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
            at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937)
            at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
            at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
            at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)
            at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
            at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
            at org.eclipse.jetty.server.Server.handle(Server.java:346)
            at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)
            at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065)
            at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823)
            at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
            at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
            at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)
            at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
            at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
            at java.lang.Thread.run(Unknown Source)
    Caused by: com.serotonin.messaging.TimeoutException: request=com.serotonin.modbus4j.serial.rtu.RtuMessageRequest@97d1ff
            at com.serotonin.messaging.MessageControl.send(MessageControl.java:140)
            at com.serotonin.messaging.MessageControl.send(MessageControl.java:105)
            at com.serotonin.modbus4j.serial.rtu.RtuMaster.sendImpl(RtuMaster.java:74)
            ... 47 more
    WARN  2013-01-11 09:36:46,754 (com.serotonin.m2m2.rt.dataSource.PollingDataSource.scheduleTimeout:63) - Kitchen: poll at 2013/01/11 09:36:46 abor
    ted because a previous poll started at 2013/01/11 09:36:31 is still running
    

    I have tried changing the timeout but that does not help at all. Does anyone know why this is happening? I have taken a look at http://mango.serotoninsoftware.com/forum/posts/list/532.page but it doesnt seem to provide a proper solution.


  • You're not setting a point value in the remote device at this time. You are running a forced read:

            at com.serotonin.modbus4j.ModbusMaster.getValue(ModbusMaster.java:115)  
            at com.serotonin.m2m2.modbus.rt.ModbusDataSourceRT.forcePointRead(ModbusDataSourceRT.java:332)  
            at com.serotonin.m2m2.rt.RuntimeManager.forcePointRead(RuntimeManager.java:468)  
            at com.serotonin.m2m2.web.dwr.BaseDwr.forcePointRead(BaseDwr.java:220)  
    

    In any case, if the data source is able to read the value during regular reads, then it would be interesting to see an i/o trace (successful vs unsuccessful).