Subject to change without notification.
document responds to the frequently asked questions concerning the Engiby
Modbus Driver (versions 1.xx).
Attention : The Modbus 1 library is acually obsolete and replaced by a Modbus 2 package.
For more info, go to www.engiby.ch/modbus/tcpfaq.htm and www.engiby.ch/modbus/modcmp.htm.
This page is still available for existing application using Modbus 1.
Further useful information about Modbus
When you will build up your first Modbus installation, you may whish to test the Modbus driver in the PCD first. You can find very useful test software, called ModScan32, for little money by Wintech at http://www.win-tech.com. Further tools are available from the Modbus sites indexed above.
PG4 and PG5 licenses
version 1.4 and PG4 version 1.0.80:
These tools are not anymore supported with the versions 1.5x, and the following. IL programs from PG3 and PG4 are not anymore supported with these versions. We recommend updating all old tools to PG5 1.4. Contact Engiby if one of these old programming tools must be used.
These versions was designed and licensed for the PG4 Tool and can be used with the version 2.0.2xx of PG4. You need an update to use the Modbus driver on PG5.
driver 1.50 and 1.51:
These versions were an intermediate step for PG5 versions 1.0.xxx. You should not use it anymore and update it to the latest 1.7x version.
driver from 1.52 on:
These versions can be used in PG4 versions 2.0.2xx as well as PG5 versions 1.0.xxx and 1.1.xxx.
driver from 1.60 on:
These versions can be used in PG5 versions 1.0, 1.1, 1.2 and 1.3 but not anymore on PG4. Once you have updated your PG4 to PG5 and installed the Modbus driver version 1.6x you can move your Fupla programs into a PG5 project and continue to use it. Refer to the SAIA's instructions to import PG4 projects into PG5.
For IL programs in PG5 and old programs imported from PG3 or PG4, you need to adapt the source file according to the new examples. You also need a Modbus driver version 1.55 at least. See below.
These versions can be used in PG5 versions 1.2, 1.3, and 1.4.
These versions can be used in PG5 versions 2.0. In this case a Modbus 2 package must first be installed. Modbus 1.8x will use the same license key as Modbus 2.
This document may help you for trouble shooting of the Modbus 1 Driver: .
Last modifications of the driver
Programming tool and programming languages
S-Fup and IL programs can be realized. However, the user's manual is mainly based on the S-Fup Fboxes. Remember that the best comfort is reached when using S-Fup. You need at least the following Modbus driver versions for IL programs:
PG5 1.0 and 1.1
don’t use it anymore
PG5 1.2 and 1.3
Modbus driver version 1.55
Modbus driver version 1.73
Modbus driver version 1.80
An example of IL programs for Master and Slave can be downloaded here (modbusil.zip). The project is made for PG5 1.2 and can also be used in PG5 1.3 and 1.4. After the download, use the File-Restore command in PG5 to add the example in your projects.
The two modes
of Modbus are supported by the Driver: the ASCII and RTU modes. 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 a 8 data bits transmission.
Modbus-TCP (or UDP) is supported by the new Modbus 2 Driver.
Modbus plus cannot be supported. This version need special hardware and can only be connected via a gateway.
Master / Slave
The Driver supports both, Master and Slave functions. However it is important to know if the PCD will be master or slave. Only the Master can (must) initiate Write and Read requests. Therefore a slave cannot directly communicate to another device on the network.
Support of several line with Modbus driver in the same PCD
The Master and Slave Driver Fboxes are made to support one serial line only. If multiple lines are to be used in Master and/or in Slave, a new file must be created in the same project for each serial line. For the lines in Master mode, the reception and transmission Fboxes have to be programmed in the file corresponding to the serial line being used. The fact that multiple lines are used with the same PCD must be taken into account for evaluating the admissible load on the CPU. The reaction time will also be longer.
Supported functions as Master
Check that the required functions are supported. Contact Engiby if further functions are desired.
Supported functions as Slave and interpretation.
Check that the required functions are supported. Contact Engiby if further functions are desired.
RS422 can be used for point to point (one master, one slave only) connection without restriction. Remember that the maximum cable length is 15m. Tx and Rx wires must be crossed over. Hardware handshake is not needed for the driver. The CTS and the DTR outputs are set to High and can be used if required by the partner device.
RS485 must be used for multi-drop connections (one master, several slaves). The RS485 bus must be installed respecting the recommendation standing for an S-Bus network. See the SAIA S-Bus manual. The 2 Tx/Rx+ and Tx/Rx- wires must all be strain connected (not crossed over). Terminals can also be marked A and B. In this case B is the Tx/Rx- wire and A is the Tx/Rx+.
External converters (RS232<->RS485) from SAIA cannot be used. Only converters with automatic switching can be used.
RS422 can be used for longer point to point connections (one master and one slave only) without restriction. The cable length can be up to 1000m. In a multi-drop topology, RS422 can only be used if the PCD is Master. The
Using the PGU port
port is the port 0 on PCD 1, 2, 3 and 4. It is the port 4 on PCD6.M3.
Since version 1.56, the option 'Channel 0 PGU' is available for PCD1, 2, 3 and 4. With this option, the Modbus driver is automatically restarted when the PGU cable is unplugged.
On PCD3, you can check the option 'Full RS232 handshaking on Port 0' in the hardware configuration and use the port 0 without restriction (with the normal option 'Channel 0').
For former versions and other PCD systems the PGU port can be used with the following restrictions: the line must not be configured for S-Bus PGU. No PGU cable must be plugged in when the PCD starts. If a PGU cable is connected, the driver is disabled and the line is forced in PGU mode. This may cause error at the Modbus Driver Fbox. To re-enable the Modbus driver, the PCD must be restarted after disconnecting the PGU cable.
Port 10 as port 3 on 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
determine if an old CPU will support the Modbus driver, you have to check the
The FW must support the SYSRD and the SYSCMP instructions for the so called 'free running counter'. If you have a Modbus version 1.41 or higher and you exchange Floating point values, it must also support the SYSWR K 7000 instruction. The table of CPU and firmware related to each instruction is delivered by SAIA.
Basically the Modbus protocol supports 16 bits values only. The PCD has 32 bits registers. 16 bits values are converted to 32 bits signed values when received in the PCD.
Integer 32 bit values
Using double word combination, 32 bits integer values can be exchanged. This is supported since version 1.43 of the driver. The position of the higher and the lower word in the telegrams must be checked and adjusted in the driver Fbox. Then in the RCV Fboxes select the format 32->32.
Floating point values
point values (32 bits) can also be exchanged using double word combination. The
position of the higher and the lower word in the telegrams must be checked and
adjusted in the driver Fbox. You must use the Float Fbox to read floating point
Depending on the manufacturer, various terms are used to specify the word order for 32 bits values.
Fbox option: Modicon = LSW-MSW = Big Endian = Intel
Fbox option: IEEE = MSW-LSW = Little Endian = Motorola
For a PCD
Master, the address of the available values in the Slaves must be known. In the
SEND and RCV Fbox, addresses are given in integer format. Convert Hex format to
integer if necessary.
For a PCD Slave, all resources are available by the Master. Be sure the Master doesn't access the dynamic allocated resources.
The standard Modicon notation uses the '4x' and the '3x' reference. The 4x reference concerns the Holding registers while the 3x reference stands for the Input registers (Timers and counters in PCD). The addresses are then given in form 40'001 or 30'123 which means Holding register 1 and Input registers 123. Don't mix it up with the function code. Reading the 4x reference is made with function 3 while 3x references are read with the function 4.
The Modicon implementation supports address ranges starting from 1 (instead of 0). In this case the offset of one element can be corrected by the driver by selecting the corresponding option.
Difficulties can appear with Supervisors using the addressing scheme of Modicon devices with 32 bits values. Modicon uses two 16 bits registers for one 32 bits value. Therefore each second register address is skipped. The SAIA-PCD has 32 bits registers and by default, all registers are used (no skip). Since driver version 1.46, this particular addressing (Skip each 2nd register) can be set in the Slave driver.
performances of the driver depend on the transmission speed and the reaction
time of the CPU.
The reaction time of the CPU is affected by:
Load on the CPU
The maximum load on the CPU is reached during data reception and depends on the amount of transferred values. The following measurements have been made with the Driver version 1.43.
Maximum cycle time measured on the Slave:
When the Master is writing (SEND) values into the Slave, the load is about the half of the above values.
In an uniform and balanced topology (means similar systems on the bus) the request-response principle will ensure a correct synchronization of all slaves. Critical situation and synchronization problem can occur in extreme circumstances. Mixing PCD Slaves with other very fast devices should be avoided. Fast broadcasting is also a critical practice. In case of problems, the polling loop must be balanced between devices, the speed must be reduced or the telegrams size must be reduced.
Timing problem can occur on systems with a Web application. In this case, reduce the CPU time allocated to the Web-Server to the minimum. If possible use the option: Firmware generation = With CSF.
The CPU load of the driver may also be adjusted through an option in the Fbox MBUS-Mst and MBUS-Slv. The CPU power used by the driver can be increase but will slow down the other applications. Note that communication task fully supported by the firmware have higher priority: PGU port, S-Bus protocol, Profibus or LON module.
Public Line Modem
Connection over public line modem is supported by Master and Slave since version 1.42. The SAIA Modem library, version $ 2.1.253 or higher must be used.
Leased Line Modem
Leased line modem is possible. However test and adjustment with each device may be needed. Please contact Engiby.
Modbus Slave to S-Bus Master gateway is available with the new Modbus 2 Driver.
Back to Engiby main page
Engiby / 14.12.2009