Modbus TCP scan causes error message
-
Hey there,
I am new to Mango, and trying to set up the server. I looked around but couldn't find anything similar in the forum. I have everything running and with help from you folks have the proper modules plugged in. Now I am having an issue connecting to my Modbus device.
I am using a Modbus TCP device, but when I click "Scan for nodes" I get an error message saying "Error" and that's it. The title on the pop-up message is "the page at 192.168.1.139:8080 says:". This error happens with both TCP, and with TCP with keep-alive.
When I change to UDP is seems to scan fine. I downloaded a Modbus simulator, and when I set-up a UDP connection the scan found it. I couldn't test it any further before the 10 minute trial ran up and i lost the simulator ( I am looking for a new one now).
Does anyone know what would cause the TCP scan to immediately error out?
Edit this is under the new data source page.
Thanks in advance!
Adam Nelson -
Ok, I have a working simulator now. The UDP works great, but my understanding is that UDP is not the ideal protocol to use in a multi sensor network ( all reporting in over a standard Ethernet based network). I need to get to TCP, and this appears to me an error in the Mango software.
I am not well versed in Java at all, however here is the console for the error:
ERROR 2013-05-08 09:49:29,390 (com.serotonin.m2m2.web.dwr.util.ExceptionDetectio nFilter.doFilter:38) - DWR invocation exception java.lang.NoClassDefFoundError: com/serotonin/provider/InputStreamEPollProvider at com.serotonin.m2m2.modbus.dwr.ModbusEditDwr.createModbusIpMaster(Modb usEditDwr.java:350) at com.serotonin.m2m2.modbus.dwr.ModbusEditDwr.modbusIpScan(ModbusEditDw r.java:309) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilt er.java:34) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava:428) at com.serotonin.m2m2.web.dwr.util.TranslationsFilter.doFilter(Translati onsFilter.java:37) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava:428) at com.serotonin.m2m2.web.dwr.util.ExceptionDetectionFilter.doFilter(Exc eptionDetectionFilter.java:26) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava:428) at com.serotonin.m2m2.web.dwr.util.DwrPermissionFilter.doFilter(DwrPermi ssionFilter.java:38) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava: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(PlainCallHandle r.java:52) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:1 01) 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.j ava:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:517) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl er.java:225) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl er.java:937) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: 406) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle r.java:183) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle r.java:871) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j ava: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(HttpCo nnection.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:41 1) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEn dPoint.java:535) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEnd Point.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool .java:529) at java.lang.Thread.run(Thread.java:662) ERROR 2013-05-08 09:51:33,531 (com.serotonin.m2m2.web.dwr.util.ExceptionDetectio nFilter.doFilter:38) - DWR invocation exception java.lang.NoClassDefFoundError: com/serotonin/provider/InputStreamEPollProvider at com.serotonin.m2m2.modbus.dwr.ModbusEditDwr.createModbusIpMaster(Modb usEditDwr.java:350) at com.serotonin.m2m2.modbus.dwr.ModbusEditDwr.modbusIpScan(ModbusEditDw r.java:309) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilt er.java:34) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava:428) at com.serotonin.m2m2.web.dwr.util.TranslationsFilter.doFilter(Translati onsFilter.java:37) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava:428) at com.serotonin.m2m2.web.dwr.util.ExceptionDetectionFilter.doFilter(Exc eptionDetectionFilter.java:26) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava:428) at com.serotonin.m2m2.web.dwr.util.DwrPermissionFilter.doFilter(DwrPermi ssionFilter.java:38) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.j ava: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(PlainCallHandle r.java:52) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:1 01) 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.j ava:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:517) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl er.java:225) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl er.java:937) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: 406) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle r.java:183) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle r.java:871) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j ava: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(HttpCo nnection.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:41 1) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEn dPoint.java:535) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEnd Point.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool .java:529) at java.lang.Thread.run(Thread.java:662)
Like I said I'm not well versed in Java at all, but it seems that Java is having an issue with the modbus protocol. I am running java 1.7.0_21 on win XP.
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\>java -version java version "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM) Client VM (build 23.21-b01, mixed mode, sharing)
Now that I wrote this all out I am wondering if I installed the java JDK on this machine or if it was on the other server we tried to use. I'll go check that now.
If anyone has any input its appreciated,
Adam
-
Grrr based on this: http://forum.infiniteautomation.com/forum/posts/list/1033.page#4407 I need to revert to an older version of Java.
Will update
-
And no luck. I rolled back the java version, and it still has the same error.
C:\>java -version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)
I'm officially out of ideas.
-
Make sure you are using the Mango core 2.0.6 and modbus 1.4.2 Java 1.7 should be fine.