The 2nd byte in the Request string
Can be automatically set more info..
Used to select which table to read from. more info..
Read Window supports Function codes 01, 02, 03 & 04

The 3rd and 4th bytes in the Request string
The coil or register number at the start of the block to read. more info..

This value is subtracted from the First Register to give the data address used in the Request.

The 5th and 6th bytes in the Request string
The quantity of registers or coils in the block to read.

check to automatically set the default values function code, offset and register size
when the value of First Register is changed.

The size of the registers in the block to be read.
This value should be set to 16 bit registers to read standard modbus registers.
and set to 1 bit coils to read standard modbus coils.
32 bit registers should be used for Enron modbus only. more info..
Events: This box is checked when reading Enron events from register 32 more info..
History: This box is checked when reading Enron historical records from register 701-799 more info..


RTU Mode ASCII Mode

crc The last 2 bytes of the RTU Request are the cyclic redundancy check. These are error detection bytes more info..
lrc ASCII Mode messages are preceded with a colon and the crc is replaced with an longitudinal redundancy check, carriage return and line feed characters. more info..
Auto Set values:
First Registerfunction codeminus offsetregister size
1 to 10000111 bit coils
10001 to 100002100011 bit coils
30001 to 4000043000116 bit registers
40001 & greater34000116 bit registers
Exceptions (for reading Enron modbus data):
First Registerfunction codeminus offsetregister size
32 (events)3032 bit registers
701 to 799 (history)3032 bit registers
1001 to 1999101 bit coils
3001 to 39993016 bit registers
5001 to 59993032 bit registers
7001 to 79993032 bit registers
Physical Connection
Before sending a message, the serial port needs to be physically connected to a modbus slave device. The simplest connection is RS232C on a single serial cable.
DTE masters (PC serial ports) have DB9 male connectors which transmits on pin3, receives pin2 and grounds on pin5. A DCE slave will have a DB9 Female connector which will allow the use of a straight through cable. A DTE slave will have a DB9 Male connector and will require the use of a null modem cable.
The RS232 specification states a maximum distance of 50 feet at 20kbaud. Slightly longer connections are possible at slower baud rates depending on cable quality and noise in the area.
Modems and radios are used to transmit longer distances. These are typically DCE devices so straight through cables can be used. Some MDS non-spread spectrum radios require RTS Delay to be used so a 4th conductor is needed on pin 4.
RS485 converters can be used to extend the distance up to 4000 feet at 100kbaud. This can be a 4 wire or 2 wire system, depending on the converter. This also allows multi-dropping up to 32 devices on one pair of wires.
Sending the Request

Press the SEND button. The program then monitors the serial port and displays all bytes received in the Response indicator.

While receiving, the response time counts up with a progress bar.

Receiving stops when the expected response bytes are received or the time reaches the fail in value entered.

The 'expected response bytes' indicator is calculated from the input settings.
The response timer stops when this many bytes are received.

The expected crc is calculated from the bytes in the response.

Troubleshooting
Check the physical connection to make sure the correct conductors are on the correct pins and the correct serial port.
Check the serial settings in the slave device to make sure they match the settings in the master.
Check the Slave device unit address to make sure it matches the Slave ID set in the master.
Celestial magic nigel jackson pdf reader. Reading the Response
The data bytes in the response are displayed in the middle column of the response table.
Use the pull-down boxes in the first column to set the data type for each value. more info..
The copy down button sets all data types to match the setting for the first value.
The bytes and words can be swapped by toggling the High/Low check boxes.

The bytes are re-processed immediately as the settings are changed and the results are shown in the fourth column.
Sending another request for a new response is not required for a recalculation.
A notes column is provided to enter labels for the values.
Press the clear notes button to blank the whole notes column.
Byte History Log
All bytes sent and received are added to the byte history log with date/time stamps.
Displays a 'Save As.' dialog box to allow the log contents to be saved to a text file.
Empties the log contents.
Log Results
All data results received can be saved to a data log with date/time stamps.
Displays a 'Save As.' dialog box to create a tabbed-text data file for logging the results.
register# and notes are used as column headers in the file.
When data is received, a row is added to the file with date/time and the results.
Pressing the button again will close the file and stop logging the results.
The data file can be loaded into just about any system or progam like Excel.
Send Continuously
Check this box to send back to back requests.
The seconds after the start of one send request until the start of the next send request.

This will continuously send the same command unless combined with the load before send feature (see below)
Statistics
The seconds taken for the slave to respond to last message.
The number of message responses received (meeting the expected response bytes).
The number of message with an incomplete or absent response
The longest amount of seconds taken for a response (not including failed responses).
The average amount of seconds taken for a response (not including failed responses).
The shortest amount of seconds taken for a response (not including failed responses).
Sets all statistical values back to zero.
RTS Delay
Check this option to communicate over devices requiring the RTS pin to be asserted before
transmission. Enter the milliseconds for the on and off delays.
Save and Restore Configurations
Displays a 'Save As.' dialog box to allow saving the current settings to a text file.
Displays an 'Open File' dialog box to allow selecting a previously saved settings file to load.

The configuration file is saved in tabbed text format (tab separated values) and appears like this in notepad.

The preset tabs in Notepad cause the cells with long labels to push the other columns over.
Sending it to, or opening it from, a spreadsheet program like Excel will use the tabs as column delimiters as shown here..

Columns A & B contain the setting descriptions and their values.

Column C contains the data types 0 through 13,

Each number representing the data Type shown in the Notes Column D

Column E contains the register register numbers (hex values plus offset)

Column F contains the register values from the last poll, if any

Cell G1 contains the result string from the last poll, if any

Load Before Send - Sending a series of requests
When this box is selected, and the SEND button is pressed (or SEND CONTINUOUSLY is selected),
the program will Restore a previously defined Configuration File
and then SEND the request as saved in the file.
The filenames must be in the format: request1.txt, request2.txt, etc..
and saved in the default folder (where the exe file is saved)
If request1.txt doesn’t exist, a window showing instructions similar to these will appear.
SEND CONTINUOUSLY is not saved in the configuration files.
SEND CONTINUOUSLY is always set to unselected when you use the RESTORE CFG button to restore a configuration file.
This keeps polling from automatically starting when you manually restore a configuration file.
If a request*.txt Configuration file is being loaded during a Load before Send,
and the file was saved with LOAD BEFORE SEND selected,
then both SEND CONTINUOUSLY and LOAD BEFORE SEND will both be selected.
Following the LOAD and SEND, the program will wait for the TIME BETWEEN SENDS to expire
before the next LOAD (request2.txt) and SEND.
The program will continue to automatically LOAD, SEND and WAIT through a series of request*.txt files
as long as each file has LOAD BEFORE SEND selected.
When the end of the series is reached and the next file is not found, the series will start over with request1.txt
and continue until SEND CONTINUOUSLY is manually unchecked.
When a file is LOADED without LOAD BEFORE SEND selected,
following this last SEND, the series will STOP.
The series can be stopped at any time by unchecking SEND CONTINOUSLY.
------------------------------------------------------------------------------------
Writing Data
Displays the Simply Modbus Master Write 6.4.1 window
Yellow: Controls (inputs) that can be changed by the user.
Blue: Indicators (outputs) that cannot be directly changed.
Serial Settings

Select Modbus RTU or Modbus ASCII protocol. more info..


COM port: PC serial port to a modbus slave device. Range: COM1 to COM99
baud: The baud rate (bits per second) of the serial connection.
data bits: The number of data bits in each byte, RTU mode requires 8, ASCII mode is usually 7 but may be 8.
stop bits: The number of stop bits for each byte sent. allowable values are 1, 1.5 or 2 .
parity: The value of the parity bit for each byte sent. allowable values are none, odd, even, mark or space.

The mode and serial settings are copied from the previous window and can also be changed here. more info..
None

Modbus Serial Master Jamod

Build a Command String

The 1st byte in the Command string
The unit address of the Slave device to get data from. normal range: 1 to 247 more info..

Setting a Slave ID over 255 will automatically check this box and allow Slave IDs up to 65535. more info..
Remains on for all addresses until the Slave ID is lowered below 256 and the box manually unchecked.

The 2nd byte in the Command string
Can be automatically set more info..
Used to select which table to write to. more info..
Write Window supports Function codes 05, 06, 15 & 16

The 3rd and 4th bytes in the Command string
The coil or register number at the start of the block to be written. more info..

This value is subtracted from the First Register to give the data address used in the Command.

The 5th and 6th bytes in the Command string
The quantity of registers or coils in the block to be written.

check to automatically set the default values for function code, offset and register size
when the value of First Register is changed.

The size of the registers in the block to be written.
This value should be set to 16 bit registers to write standard modbus registers.
and set to 1 bit coils to write standard modbus coils.
32 bit registers should be used for Enron modbus only. more info..
Auto Set values:
First Registerfunction codeminus offsetregister size
1 to 7000511 bit coils
7001 to 7999 (Enron modbus)16032 bit registers
8000 to 10000511 bit coils
10001 to 300005100011 bit coils
30001 to 4000063000116 bit registers
40001 & greater64000116 bit registers
Data to Write
The values to write are entered in the table shown. The table size is automatically adjusted as the #values to write is changed.
Use this pull-down box to set the data type for the whole table to be written.
The bytes and words can be swapped by toggling the High/Low check boxes.
Sending the Command

Press the SEND button. The program then monitors the serial port and displays all bytes received in the Response indicator.

While receiving, the response time counts up with a progress bar.

Receiving stops when the expected response bytes are received or the time reaches the fail in value entered.

The 'expected response bytes' indicator is calculated from the input settings.
The response timer stops when this many bytes are received.

The expected crc is calculated from the bytes in the response.

Reading the Response
The data bytes in the response are displayed in the bytes column of the response table.
Byte History Log
All bytes sent and received are added to the byte history log with date/time stamps.
Displays a 'Save As.' dialog box to allow saving the log contents to a text file.
Empties the log contents
RTS Delay
Check this option to communicate over devices requiring the RTS pin to be asserted before
transmission. Enter the milliseconds for the on and off delays.
Save and Restore Configurations
Displays a 'Save As.' dialog box to allow saving the current settings and results to a text file.
Displays an 'Open File' dialog box to allow selecting a previously saved settings file to load.
Press the Close box in the top corner to Exit the Write program.
Troubleshooting
Check the physical connection to make sure the correct conductors are on the correct pins and the correct serial port.
Check the serial settings in the slave device to make sure they match the settings in the master.
Make sure the serial port driver file (serpdrv) is in the same folder as Simply Modbus Master 6.4.1.exe

Home • FAQ • Enron • Download • Purchase • Contact

Serial Master

Copyright © 2019 Simply Modbus. All rights reserved

Implementation

As the idea is to provide a tutorial in form of a very simple command line example, it will consist of only one class and most of the work will be done in the entry method (public static void main(String args[])). This is probably not the way jamod will be usually employed in OO designs, but we hope it serves the demonstrative purpose.
Before we start with coding, let's take a look at the simplified interaction diagram of the application, given as Figure 4. The part most interesting for this tutorial is colored blue, but note that the diagram also contains a little bit of the things that happen behind the scenes (i.e. within the Transport, with writeRequest() and readRequest()), which are there to give a more complete picture.
Now let's start writing code. We need a simple Java application skeleton, with imports of all jamod packages:
Next we add the instances and variables the application will need:
Next the application needs to read in the parameters (<> required, {} optional):
  1. <portname [String]> as String into portname
  2. <Unit Address [int8]> as String into unitid
  3. <register [int16]> as int into ref
  4. <wordcount [int16]> as int into count
  5. {repeat [int]} as int into repeat, 1 by default (optional)
These will be used subsequently to setup the connection and the request. First, however, we need to set the identifier of the Master on the serial network (in this case to 1), as well as the parameters for the connection:
Note
You should adapt the serial parameters to your requirements, which you can do hardcoded or by reading in the parameters from the commandline or as properties file.
The parameter setting for the serial encoding will be used by the SerialConnection instance to instantiate the proper SerialTransport instance. In the example we are using the default flavor (ascii), which justifies the formerly presented interaction diagram. If you want to use rtu or the bin flavor all you need to do is to set them properly as encoding in the SerialParameters instance.

Index Of Serial Master Of None

Once the parameters are prepared, we can open the connection (in this case the serial port will be openend) as well as prepare a request and a transaction:
No we are ready for action. The last part is executing the prepared transaction the given (repeat) number of times and then for cleanup, close the connection:
That's it. This should do the job if the serial connection is established and the parameters are set accordingly for Master and Slave.
You can test the slave using the master application from the Serial Slave How-To; be sure to use equal communication parameters on both sides.

Puthuyugam Korean Serial Master Sun In Tamil

Note
The debug outputs of the library can be activated by passing the property net.wimpi.modbus.debug to the JVM (i.e. java -Dnet.wimpi.modbus.debug=true) and allow to see the actually exchanged modbus messages encoded as hex.