Channel Configuration
| Modbus Protocol Type |
Choose Modbus Protocol Type
| RTU |
Binary message format. 8 bits per data byte. |
| ASCII |
ASCII message format. 16 bits per data byte. |
| Ethernet |
Use Modbus/TCP message format. |
|---|
|
| Modbus Protocol Mode |
Choose Modbus Protocol Mode
| Master |
IOServer wil initiate all requests. |
| Slave |
IOServer will wait for and respond to requests. The slave can process requests from multiple masters at the same time. |
|---|
|
| Buffer Size |
Maximum of frame. 256 is the standard maximum frame size. |
| Initialization |
The initial command sent to the device to check if the device is online. In the form "BitAddress, Function Code, BitCount". The default value is "0,3,16".
| Function Code | Modbus Address | Data Type |
| 1 |
0xxxx |
Output Coils |
| 2 |
1xxxx |
Input Status |
| 4 |
3xxxx |
Input Registers |
| 3 |
4xxxx |
Output Registers |
| 7 |
E.x |
Exception Status |
|---|
|
|---|
Device Configuration
| Address |
Device address of slave. |
| Register Address Size |
Size of each register in the PLC. The default is two bytes per register location. |
| Non standard 1 origin addressing |
Add 1 to address when requesting data. |
| Signed Integer |
Treat all integers as signed. |
| 0 Origin addressing for bits in Registers. |
Bits in registers are numbered 0 to 15. The default numbering is 1-16. |
| Reverse Bits in Registers |
The bits numbering in registers are reversed |
| Disable FC6 |
Disable the use of Function Code 6 (Write to single register). Use Fuction code 16 (Write to multiple registers) instead |
| 32 Bits Value Byte Ordering |
Long value (4 bytes) byte ordering of device.
Device.40001,I4 will read the two registers at 40001 as a 32 bit signed integer value. |
| 32 Bits Floating Point Byte Ordering |
Single Precision Floating point numbers byte ordering of device.
Device.40001,R4 will read the two registers at 4001 as a 32 bit floating point value. |
| 64 Bits Floating Point Byte Ordering |
Double Precision Floating point numbers byte ordering of device. |
|---|
Variable Types
Modbus Channel Master Mode
| .Master Value |
|
| 255 |
Master Mode, issue read and write function codes to slave |
| 0 |
Issue write function code to slave, accept write function code from slave |
| n Seconds (1 to 254) |
Issue read function code to slave for next n seconds, issue write function code to slave, accept write function from slave |
|---|
Modbus Channel Slave Mode
| .Master Value |
|
| 255 |
Slave Mode, accept read and write function codes from master |
| 0 |
Accept read and write function codes from master |
| 1 |
Accept read and write function codes from master, issue write function code to slave |
|---|
Modbus Function Codes Supported
1, 2, 3, 4, 5, 6, 7, 15 and 16
Simulating Modbus Slave error
Writing a value with its 7th bit set to .E (Exception Status) in a Modbus Slave will cause it to response with that exception code to all requests. A value of 255 will stop it from responding.
Enron/Daniels Modbus Settings
Enron/Daniels Modbus Settings in IOServer
Register Address Size: 2 Bytes
Non standard 1 origin addressing
Signed Integer
32 Bits Value Byte Ordering: Swap bytes and words
32 Bits Floating Point Byte Ordering: Swap bytes and words
Registers Mapping
| Enron/Daniels | IOServer | Name |
| 1001-1999 |
01001-01999 |
Boolean |
| 3001-3999 |
43001-43999 |
16 bit Short integer |
| 5001-5999 |
45001,I4-46999,I4 |
32 bit Long integer |
| 7001-7999 |
47001,R4-48999,R4 |
32 bit Floating point |
|---|
When the Register Address size is set to 2 bytes, each 32 bits value occupies two register locations and their addresses must be odd.
When the Register Address size is set to 4 bytes, each 32 bit value occupies one register location. One device is configured with 4 bytes addressing to access the 32 bit values and second device with 2 bytes addressing to access the boolean and 16 bit values.
SMA Data Manager Settings
Use "480000,4,32" for initialization and Modbus Device.Non-standard 1 origin addressing set.
Modbus FAQ
Q:How do I access the two 16 bits registers at Device.40011 and Device.40012 as an IEE754 32-bit floating-point value.
A:Use the following tag syntax:
Device.40011,R4
See addtags for other data types.
Please make sure that the Modbus Device.32 Bits Floating Point Byte Ordering option is correct for your device.
Performance
IOServer running on a Pentium 4, 2.8 GHz PC under Windows 2000 Advanced Server reading from a remote device.
| Protocol | Requests per second |
| TCP/IP, 2 bytes per request |
2180 |
| TCP/IP, 250 bytes per request |
1392 |
| TCP/IP, 1450 bytes per request |
506 | |