Placeholder

Search

Modbus 2 Driver FAQ

The Modbus 2 driver is available in form of an FBox library for Fupla. It supports Master and Slave functions with all communication modes: RTU, ASCII, TCP and UDP. The Slave function allows master devices to read and write all Inputs, Flags, Registers and Counters in the Saia PCD®. The Master function allows you to read and write Binary, Integer 16 and 32 bit values as well as Float values from slave devices. The library is delivered with an installation program and includes its description in a Windows help file.

Supported Modbus functions as Slave (and their interpretation)

Function 1
Function 2
Function 3
Function 4
Function 7
Function 8
Function 20
Function 5
Function 6
Function 15
Function 16
Function 21
Function 23

Reading Flags
Reading Inputs/Outputs
Reading Registers
Reading Timers/Counters
Reading Status Flag (Flag 0 to 7)
(Diagnostics) On request
(Reading data blocks) On request
Writing one Flag
Writing one Register
Writing multiple Flags
Writing multiple Registers
(Writing data blocks) On request
Writing+Reading Registers in one transaction

Supported functions as Master

Function 1
Function 2
Function 3
Function 4
Function 7
Function 8
Function 20
Function 5
Function 6
Function 15
Function 16
Function 21
Function 23

Reading binary data (coils)
Reading Inputs/Outputs
Reading Registers
Reading Input Registers
Reading Status Flag (Flag 0 to 7)
(Diagnostics) On request
(Reading data blocks) On request
Writing one Bit (coil)
Writing one Register
Writing Bits
Writing Registers
(Writing data blocks) On request
(Writing+Reading Registers) On request

Check that the required functions are supported. Contact Engiby if further functions are desired.

You can read more details about the driver in the help file of the library. Click here to download the help file. Unzip the file on your PC and open the Modbus2.hlp file.

Test version
For evaluation purpose the Modbus TCP Driver is available on request. The library will include all described functionalities but a time limited password is delivered. We would appreciate to get a feedback of the result of your test with this package like tested devices, problems found and general conclusion. Thanks in advance.

Project examples
For a first test and a good start, you can download a project example:

Use the 'Project-Restore…' command in PG5 to restore it.
Choose the CPU corresponding to your application (Master or Slave, RS or TCP). To adapt it to your CPU type, proceed as follow:

  • Adjust the Online setting
  • Go to the Hardware settings
  • Upload the settings
  • For Modbus TCP check the IP settings
  • For RS ensure that the port in NOT configured as S-Bus PGU
  • Download the settings if you made a change
  • Go to the Software settings
  • Set all to default
  • Then, adapt the Modbus driver parameters in the Fboxes (Serial channel, speed, IP-address, Modbus station, etc…) according to your device.
  • Build, download and run the CPU.

For a PCD slave, the master should be able to read and write flags and registers.
For a PCD master, open the Send and Receive FBox and click the buttons to execute single requests or set the enable inputs for permanent communication.
In case of questions please refer to the help of each FBox for more details.

Getting started
The best test to do when you start working with the Modbus Driver is to build a Master-Slave connection using 2 Saia PCD®. You will avoid problems of different terminology and connection pin-out. Connect RS485 terminals in parallel or RS232 terminals crossed over (Tx<->Rx) and use the demo project above. Check the serial lines or TCP channel settings in the Master and Slave FBoxes, build, download and start the programs. It just will work...
When you then connect another system, you must adapt to its terminology, check all communication parameters and prepare a suitable connection.

Trouble shooting
If you are using a serial connection, please read this document: Modbus Trouble shooting
For trouble with TCP or UDP connection please read this document: Modbus TCP Trouble shooting

Saia PCD® Firmware version
The Modbus2 driver is supported on all recent Saia PCD® systems (including "Non Saia-NT systems", with or without PCD7.F65x module):
PCD1, PCD2, PCD3, PCD4 and PCD6. However, for PCD3 systems please make sure the following firware requirements are fullfilled:

  • PCD3 FW 1.10.42 or higher for HW A to C
  • PCD3 FW 1.14.02 or higher for HW D or higher
  • Attention: PCD3 Firmware version 1.28.00 to 1.28.16 cause problem with serial lines. Please update to firmware 1.28.17 or newer

Please contact Saia Burgess Controls for the optimal Firmware version for your system.

Modbus version : RTU, ASCII and J-Bus
The Modbus2 driver supports both the Modbus RTU and ASCII on RSxxx lines.
J-Bus is another name for Modbus and is fully compatible with Modbus ASCII or RTU.
Note that the RTU is two times more efficient as the ASCII. RTU needs an 8 data bits transmission.
Modbus plus cannot be supported. This version need special hardware and can only be connected via a gateway.

Modbus/TCP or UDP
The Modbus protocol over IP originally specified by Schneider uses the TCP protocol. Almost all implementations of Modbus over IP use actually TCP. Although, small data exchange as used by Modbus are faster with UDP packages. Some manufacturers have chosen to implement the UDP/IP as alternative.
With our driver you can choose between TCP and UDP. For a PCD Slave, you can even activate both TCP and UDP. With this option you don’t care on which mode the master uses or you can even accept a mix up of Masters using TCP and UDP on the same system. Remember that UDP communication is much simpler and more efficient than TCP. Therefore, you will have less trouble by using UDP especially if many devices need to be connected.

Several TCP channels
A PCD Slave can support multiple TCP or UDP connection simultaneously. The maximum number of channels is given by the PCD type. See the PCD manual for this information. When using UDP, the number of connected Master is not limited.
Up to 10 PCD Master TCP/UDP functions can be used in the same application.
For each Master function, only one TCP connection is open by the driver. When several slaves are polled, the TCP connection is closed and re-open for each successive slave (not for each successive request). This might be considered as inefficient in some cases. To improve it you have the possibility to place one driver per slave (up to 10). In this case, each driver will have its own channel and will not need to open-close the TCP connection cyclically.

Multi-protocol over the same IP-Module
The S-Bus protocol as well as any other supported protocol can be activated and used at the same time as Modbus on the PCD. The S-Bus protocol is handled by the firmware in parallel with the Modbus driver. The driver can also share the IP-module with other drivers as long as all respect the principle of 'Shared ODM'. Please contact Saia or Engiby in case of questions.

Port 10 as port 3 on PCD3.M5xxx
The PCD3.M5xxx systems have two D-Sub connectors on the left side. The right side connector is equipped as RS485 port. It can be configured for Profibus communication as port 10. If not configured, this port can be used for Modbus (or other protocols) communication but as port 3, in this case.

Value formats
Basically the Modbus protocol supports 16 bits values. The PCD works with 32 bits registers in integer and floating point formats. Therefore, special options have been implemented in order to exchange 32 bits integer and float values. The most PLCs and slave devices on the market have implemented the following: 2 * 16 bits registers are used to transfer one 32 bit value.
Depending on the manufacturer, various terms are used to specify the word order for 32 bits values.
FBox option: Big Endian = LSW-MSW = Intel, e.g. used by Modicon
FBox option: Little Endian = MSW-LSW = Motorola, e.g. specified by IEEE

32 bits values - PCD as Slave
Without special configuration, 16 bits values are converted into 32 bits signed values when received in the Saia PCD®. To be able to exchange 32bit values you need to:

  1. select the suitable option (Little/Big endian) in the Slave Application FBox
  2. define an address offset for 32 bit integer and one for float values
  3. the master must apply this offset to the register base address when reading or writing 32 bit values

32 bits values - PCD as Master
Without special configuration, PCD 32 bit values are truncated to 16 bits. This means that the values must be limited in range from -32'536 to +32'535. To be able to exchange 32 bit values, you need to:

  1. select the suitable option (Little/Big endian) in the Driver FBox
  2. use the suitable conversion option in RCV FBox

To exchange float values, use the Float FBox (you will receive float values in PCD format) or use the Integer RCV FBox and select the conversion option 'Float*10->Int 32'.

Prices and updates
Prices of licenses and update can be found on the Modbus page.

The driver is delivered with a license valid for PG5 version 1.4, 2.0 and 2.1. The number of realized applications is not limited.
The old license for Modbus 1 package, version 1.0x, to 1.7x, cannot anymore be upgraded to Modbus 2.
If you have such a version, you need to upgrade to the Modbus 2 license (no modifications to the PCD user program are necessary, see below).

Existing Modbus 1 application on PG5 2.0
The Modbus 1 driver is now obsolete. If you start a new application with Modbus use the Modbus 2 package.
For upward compatibility of existing applications on PG5 2.x, you can install a Modbus 1 package as extension to Modbus 2 and keep your applications unchanged.
Proceed as follow:

The same principle is also backward applicable on PG5 1.4 but only if you have also installed Modbus 2 on this PG5 !

Further useful information about Modbus
If you search for more information about the various Modbus protocol visit the Modbus organization sites at www.modbus.org.

When you will build up your first Modbus installation, you may wish to test the Modbus driver in the PCD first. You can find very useful test software, called ModScan32, for little money by WinTech at www.win-tech.com. Further tools are available from the Modbus sites indexed above.

Planned features and actual state

 Multi Master, Multi Slave for several RSxxx lines

 Available

 Multi Master, Multi Slave for TCP or UDP channels

 Available

 Support of 2 IP-Modules on PCD2.M480

 Available

 Adjustable baudrate and Bits setting in runtime

 Available

 Multicast function

 Available for Master

 Read+Auto Send on change mechanism

 Available

 Support of high baudrates 57,6 and 115,2 kbds

 Available

 Supports of extended ranges.
 Registers up to 16383
 Flag up to 16383 (with option 16 bit addressing)

 Available

 Support of extended flag range 8192 to 14335

 Available

 FB calls for IL programming

 Available

 Engiby configurator (Microsoft Excel)

 Available

 Virtual Slave with up to 16k registers in DBs

 Available

 S-Bus Master Gateway

 Available

 Modbus-Modbus Gateway

 On Request

 Implementation of particular application or gateway

 On request

Modification history to the Modbus2 driver
The version history and the modifications can be found on the Modbus 2 History page.

www.engiby.ch/modbus2faq