ECCIII Modbus RTU BAS Interface SUPERSEDES: M51SV-MODBS0310
FORM NO: M51SV-EC3MB0406
ECCIII Modbus RTU BAS Interface Introduction PoolPaks equipped with the ECCIII controller can be directly connected to a Modbus based Building Automation System (BAS). Specifically, the protocol is Modbus RTU using an RS485 physical layer with the ECCIII acting as a slave device. The device address and baud rate can be configured in the field. 58 control points that include all basic information and set points for the PoolPak dehumidification system are available through the interface. Modbus Protocol Details The protocol used by the ECCIII is Modbus RTU with 8 bit encoding and 16 bit CRC error checking. The ECCIII operates as a slave on the Modbus network. Modbus protocol implementation complies with the document: Modicon Modbus Protocol Reference Guide March 1992, PI-MBUS-300 Rev. D This document is available from the web site www.modbus.org. The communications port on the ECCIII is an optically isolated RS485 transceiver. Port settings are: 8 data bits, 2 stop bits, and no parity. The baud rate can be field adjusted from 1200 up to the factory default of 19200 by setting a configuration parameter in the ECCIII’s service menu. The following Modbus functions are implemented in the ECCIII: Function Code
Function
Description
01
Read Output Status
Read digital variables
02
Read Input Status
Read digital variables
03
Read Output Registers
Read analog/integer variables
04
Read Input Registers
Read analog / integer variables
05
Force Single Coil
Write digital variable
06
Force Single Register
Write analog / integer variable
15
Force Multiple Coils
Write multiple digital variables
16
Preset Multiple Registers
Write multiple analog / integer variables
The error messages returned by the ECCIII conform to the Modbus specification. Specifically, when an error occurs, the packet sent back to the master contains the original function code with the most significant bit set to 1, followed by a byte containing the error code number. The following Modbus error codes are implemented in the ECCIII: Error Code
Description
01
Illegal Function
02
Illegal Data Address
03
Illegal Data Value
If the ECCIII receives a packet with an incorrect check sum, no error message will be returned to the master. If the master requests a register value that does not exist in the ECCIII, the value will be returned as 0. ECCIII Modbus Configuration Parameters The three Modbus configuration parameters are accessed by pressing Key I on the ECCIII’s Remote Terminal Unit (RTU). The password to access the service menu is 0005. After successfully entering the password, use the down arrow key to scroll down the list of parameters. The three BAS interface parameters are: 062. Baudrate – This parameter sets the baud rate for the onboard serial port. It can be set to 1200, 2400, 4800, 9600, or 19200. The factory default setting is 19200. BAS Addr – This parameter sets the address of the ECCIII on the Modbus network. It can be set to any integer from 1 to 247. The factory default setting is 1. Ser Port Proto – This parameter sets the protocol that the ECCIII will use for the onboard serial port. For Modbus operation, it must be set to MBRTU. The factory default is RS485. A setting of RS485 causes the ECCIII to use a proprietary protocol. The MBRTU setting is also RS485, but uses the Modbus RTU protocol.
2
Physical Network Connection The terminal blocks for field connection to the Modbus RTU network are located in the PoolPak’s main control panel. The block is labeled T16. Terminals 1, 2, and 3 are used for connection to the network with the following functions: Terminal ID
Function
T16.1
Tx/Rx + (A)
T16.2
Tx/Rx – (B)
T16.3
Ground
PoolPak recommends the use of 22 AWG shielded twisted pair cable for runs up to 500 feet. For runs greater than 500 feet, contact the factory. Use two wires from the same pair for connection of T16.1 and T16.2. Use both wires from a second pair for connection of T16.3. Control Points Mapping The ECCIII’s Modbus interface provides 58 control points that include all basic status information and set points for the PoolPak dehumidification system. There are three types of points available, analog, integer, and digital. Analog values are multiplied by 10 before being sent through the Modbus interface. For example, a return air temperature of 25.3 will be sent through the Modbus interface as 253. Integer and digital values are sent directly through the interface without modification. The following table lists the available points along with their address offsets and types. For more information on the use of address offsets, please refer to the Modicon standard referenced on page 1 of this document. Note: Temperatures are expressed in degrees Celsius. Temperature set points are expressed in degrees Fahrenheit. Address Offset 2
Description
Point Type
Supply Fan Current
Input Register (3XXXX)
Var Type Analog
3
Return Fan Current
Input Register (3XXXX)
Analog
4
System 1 Compressor Current
Input Register (3XXXX)
Analog
5
Return Air Temperature
Input Register (3XXXX)
Analog
6
Outside Air Temperature
Input Register (3XXXX)
Analog
7
Exhaust Damper Actual Position
Input Register (3XXXX)
Analog
8
Recirc Damper Actual Position
Input Register (3XXXX)
Analog
9
Outside Damper Actual Position
Input Register (3XXXX)
Analog
10
Air Off Evap Temperature
Input Register (3XXXX)
Analog
11
Cold Surface Temperature
Input Register (3XXXX)
Analog
12
Return Air Relative Humidity
Input Register (3XXXX)
Analog
3
13
Outside Air Relative Humidity
Input Register (3XXXX)
Analog
14
Air Off Evap Relative Humidity
Input Register (3XXXX)
Analog
15
System 2 Compressor Current
Input Register (3XXXX)
Analog
16
Pool 1 Water Temperature
Input Register (3XXXX)
Analog
17
Pool 2 Water Temperature
Input Register (3XXXX)
Analog
18
Supply Air Temperature
Input Register (3XXXX)
Analog
19
Return Air CO2 Level (ppm)
Input Register (3XXXX)
Analog
20
Fuzzy Logic Damper Variable
Input Register (3XXXX)
Analog
21
Fuzzy Logic Return Temp Var
Input Register (3XXXX)
Analog
22
Fuzzy Logic Return Dewpoint Var
Input Register (3XXXX)
Analog
23
Requested Outside Damper Pos
Input Register (3XXXX)
Analog
130
System 1 Active Fault Code
Input Register (3XXXX)
Integer
131
System 2 Active Fault Code
Input Register (3XXXX)
Integer
132
Compressor Stages Desired
Input Register (3XXXX)
Integer
133
Compressor Stages of Heat/Cool
Input Register (3XXXX)
Integer
134
Compressor Stages of Dehumid
Input Register (3XXXX)
Integer
135
Damper Position Limit Code
Input Register (3XXXX)
Integer
136
System 1 Fault Count
Input Register (3XXXX)
Integer
137
System 2 Fault Count
Input Register (3XXXX)
Integer
138
Return Air Temperature Set Point
Input Register (3XXXX)
Integer
139
Pool 1 Water Temp Set Point
Input Register (3XXXX)
Integer
140
Pool 2 Water Temp Set Point
Input Register (3XXXX)
Integer
141
Return Air RH Set Point
Input Register (3XXXX)
Integer
142
Damper Min Pos Limit Set Point
Input Register (3XXXX)
Integer
143
Damper Max Pos Limit Set Point
Input Register (3XXXX)
Integer
144
Return Air Temperature Set Point
Holding Reg. (4XXXX)
Integer
145
Pool 1 Water Temp Set Point
Holding Reg. (4XXXX)
Integer
146
Pool 2 Water Temp Set Point
Holding Reg. (4XXXX)
Integer
147
Return Air RH Set Point
Holding Reg. (4XXXX)
Integer
148
Damper Min Pos Limit Set Point
Holding Reg. (4XXXX)
Integer
149
Damper Max Pos Limit Set Point
Holding Reg. (4XXXX)
Integer
150
Aux Air Heat Stages Active
Input Register (3XXXX)
Integer
151
System 1 Operation Mode
Input Register (3XXXX)
Integer
152
System 2 Operation Mode
Input Register (3XXXX)
Integer
4
2
System 1 Pool Water Flow
Input Status (1XXXX)
Digital
3
System 2 Pool Water Flow
Input Status (1XXXX)
Digital
4
Occupied Mode Status
Input Status (1XXXX)
Digital
5
Purge Mode Status
Input Status (1XXXX)
Digital
6
System 1 ACC Status
Input Status (1XXXX)
Digital
7
System 2 ACC Status
Input Status (1XXXX)
Digital
8
Aux Pool Water Heater 1
Input Status (1XXXX)
Digital
9
Aux Pool Water Heater 2
Input Status (1XXXX)
Digital
10
Force Occupied Mode
Coil Status (0XXXX)
Digital
11
Force Unoccupied Mode
Coil Status (0XXXX)
Digital
12
Force Purge Mode
Coil Status (0XXXX)
Digital
13
Force No Purge Mode
Coil Status (0XXXX)
Digital
14
Active Alarm Present
Coil Status (0XXXX)
Digital
Changing a Set Point Two data points are allocated for each set point. One of the points is a holding register and the other is an input register. To change a set point, use function code 6 to force the appropriate holding register to the new set point value. Verify that the ECCIII has accepted the new value by reading the value back from the corresponding input register. There are value limits for each set point. If the BAS tries to set an inappropriate value, the ECCIII will apply the limits to the requested change. The BAS can detect this event by verifying the change in the input register for the set point. Controlling Occupied and Purge Modes The BAS can control the PoolPak’s Occupancy and Purge Modes directly. This control overrides all internal schedules and controls in the ECCIII. To force occupied mode, use function code 5 to force the coil at offset 10 to 1 and the coil at offset 11 to 0. To force unoccupied mode, force the coil at offset 10 to 0 and the coil at offset 11 to 1. Use this same process to control purge mode with the coils at offsets 12 and 13. Active Alarm Flag Control The coil at offset 14 indicates the status of the ECCIII’s alarm flag. This status corresponds to the red light inside the RTU’s alarm button. When the status is 1, there is an uncleared alarm present in the ECCIII. To clear the alarm, use function code 5 to force the coil at offset 14 to 0. If there are no active alarms in the system, the coil value will stay 0. If there are still active alarms present, the ECCIII will set the coil value back to 1.
5
Troubleshooting Symptom
Possible Cause Power to ECCIII is off. Incorrect baud rate setting.
No response from ECCIII when polled by the master on the Modbus network
Incorrect BAS Address setting. Incorrect Serial Port Protocol setting. Serial port polarity is reversed.
Set point changes are different than requested by BAS. Replies from ECCIII are sporadic.
Solution Turn on power to ECCIII at PoolPak control panel. Set the baud rate parameter to the correct value. Set the BAS Address parameter to the correct value. Set the Serial Port Protocol parameter to MBRTU. Swap the wires connected to T16.1 and T16.2.
Requested set point value is outside of the acceptable range.
Select set points based on the acceptable range.
Electrical interference.
Route network wiring away from other electrical devices.
6