2.6.0-beta build 327
Using D:\ as MA_HOME
Using Java at C:\Program Files\Java\jdk1.7.0_71\bin\java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
-hotspot is a synonym for the "server" VM [deprecated]
The default VM is server.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
set a system property
enable verbose output
-version print product version and exit
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -no-jre-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
enable assertions with specified granularity
disable assertions with specified granularity
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
load native agent library by full pathname
load Java programming language agent, see java.lang.instrument
show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
Thanks for the in-depth information.
From the Modbus spec here: http://www.modbus.org/docs/Modbus_over_serial_line_V1_02.pdf
On page 13 at the bottom there is a remark about RTU that states:
For baud rates greater than 19200 Bps, fixed values for the 2 timers should be used: it is recommended to use a value of 750μs for the inter-character time-out (t1.5) and a value of 1.750ms for inter-frame delay (t3.5).
In the past we have had some issues with timing on some systems so we added a larger inter-character space.
However your scope is showing spacing greater than the 750μs maximum which is causing the problem.
To answer your question:
is mango useing this code?
Yes that is the code we use.
Add an additional constructor to the Modbus4j library that allows passing in the spacing.
Add an additional constructor to the Modbus4j library that allows choosing to use 0 spacing or let the library compute the spacing based on the serial settings.
Keep the existing constructor that defaults to computing the spacing.
Expose the option to set the spacing in the Mango Modbus Data Source module.
Each proposed solution is good enough..
You made the RTU timing settings configurable. :)
But i don't know how to update this files in my mango installation...
my test setup:
SERVER (debian+mango demo license) <-> (USB<->RS485) <-> PLC <-> (RS485<->USB) <-> PC (Docklight)
Distributor ID: Debian
Description: Debian GNU/Linux 7.8 (wheezy)
Package mango: 188.8.131.52
core 2.5.2 build 6 - *** unlicensed ***
modbus 1.5.4 - *** unlicensed ***
i configured one data source "Modbus Serial" with one data point - just for test
MODBUS RTU 19200,8,N,1
...PLC do not respond... but Docklight read correct frame modbus rtu frame
i send the same frame from Docklight and plc respond correctly..
so i Hook-up scope and identified the problem...
delays between individual bytes in frame.
in ASCII mod there is no delays between bytes, works just fine...
but i need RTU mod..
I particularly don't like modbus4j/serial/rtu/RtuMaster.java
it seam to by something with
i have never heard about character spacing in modbus rtu before...????
is mango useing this code?