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 exceptioncom.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).