background image

Page 4 / 15 

 

PV500-67  03/17

 

Line Termination: (LT) 

 On RS-485, ideally the two ends of the cable will have a termination resistor connected across 

the two wires. This helps with reducing noise and interference on high speed and long line lengths. In practice, it is not 
needed in low speed and short line lengths. When needed, adding a 150ohm resistor across the line at the end devices 
will reduce electrical noise and reflections. 

 
Biasing Resistors: 

 One device on the RS-485 line should have biasing resistors. This holds the line in a known state 

when no devices are transmitting (talking). Typically this would be the Master device. 

 
XR10CX Implementation: 

 Modbus RTU protocol, over RS-485 (EIA-485) physical layer using 2 wires. Each XR10CX 

should  be  considers  1  UNIT  LOAD  for  the  network  loading.  The  XR10CX  devices  do  not  have  biasing  resistors. 
XR10CX will operate in slave mode and will only transmit when addressed by the Master device. 
 

Registers: (Holding Registers) 

 Each Register is 1 word defined as 2 bytes or 16 bits. See Table 2 for details of each 

Register. Holding registers are typically READ/WRITE but can be READ ONLY or WRITE ONLY. The XR10CX uses 
this type of register. All Registers are in the range of 40001-4999. 
 

Coils: (Output Coils or Boolean Variables)

 The XR10CX support and uses Output Coils. Each coil is 1 bit and can 

be read or written to. Despite the name, they can be digital outputs, Boolean variables, or digital inputs. 
  

Register Numbers / Register Addresses:

 Modbus can be confusing when referencing registers and their addresses. 

Modbus  documentation  is  not  consistent  and  terms  are  used  interchangeably  when  they  have  different  meanings. 
Register Addresses always start at 0 and count up, and Register Numbers are the actual number/name of the Register. 
Example the first Holding Register is 40001. This would be address 0. For each data type, the address would start at 
0 again. To avoid confusion, this manual will reference Register Numbers only. Any reference to a Register less than 
40000 simply needs the 40000 added to it. Setpoint ST1 is Register 769 or the actual Register Number 40769. For a 
list of all available registers, see Table 2. 
 

Input  Registers,  Discrete  Inputs  and  Coils:

  MODBUS  defines  several  types  of  data.  The  only  data  used  by  the 

XR10CX 

®

 is the Holding  Register (40001 

– 49999) and Output Coils (00001 – 09999). The XR10CX does not use 

Input Registers, or Inputs Coils. 
 

CRC  ERROR  CHECKING: 

  Modbus-RTU  includes  an  error-checking  field  that  is  based  on  a  Cyclical  Redundancy 

Checking  (CRC)  method  performed  on  the  message  contents.  The  CRC  field  checks  the  contents  of  the  entire 
message. The CRC field contains a 16-bit value as the last 2 bytes in any message. The low-order byte of the field is 
appended first, followed by the high-order byte. The CRC value is calculated by the sending device, which appends 
the CRC to the message. The receiving device recalculated a CRC during receipt of the message, and compares the 
calculated value to the actual value it received in the CRC field. If the two values are not equal, the message will be 
ignored. Most Energy Management software packages will automatically calculate the CRC values as a normal part of 
the protocol. 
 
 

2.2  COMMUNICATION DETAILS: 

The MODBUS application  data unit  is built by  the Master (client) that initiates a  MODBUS transaction. The  function 
indicates to the slave (server) what kind of action to perform. The function code field of a MODBUS data unit is coded 
in one byte. When a message is sent from a Master to a Slave device the function code field tells the Slave what kind 
of action to perform. The message contains information that the Slave uses to take the action defined by the function 
code. If no error occurs in receiving the message from the Master, the slave will respond to the Master. The response 
(Slave to Master) message contains the data requested, if no da

ta was requested, it will echo the Master’s command. 

See Figure 1 for a diagram of a successful communication. If the slave is unable to execute the command (example: 
invalid command, unreachable address), the message contains an error code and an exception code. See Figure 2 for 
diagram of an exception response. See Table 1 for a list of exception codes. 
 
 

Summary of Contents for XR10CX

Page 1: ...PV500 67 03 17 MODBUS RTU Applied to the XR10CX Control WATER HEATER DIGITAL OPERATING CONTROLLER PVI INDUSTRIES LLC Fort Worth Texas 76111 Web www pvi com Phone 1 800 433 5654 ...

Page 2: ... EXCEPTION RESPONSE READ HOLDING REGISTER 0x03 8 3 4 WRITE SINGLE REGISTER 0X06 9 3 4 1 MASTER COMMAND TO WRITE SINGLE REGISTER 0x06 9 3 4 2 SUCCESSFUL RESPONSE FROM WRITE SINGLE REGISTER 0x06 9 3 4 3 EXCEPTION RESPONSE FROM WRITE SINGLE REGISTER 0x06 9 3 5 WRITE HOLDING REGISTERS 0x10 10 3 5 1 MASTER COMMAND TO WRITE HOLDING REGISTER 0x10 10 3 5 2 SUCCESSFUL RESPONSE FROM WRITE HOLDING REGISTERS ...

Page 3: ...register list 2 1 1 DEFINITIONS MODBUS Protocol A messaging structure used for communication between devices machines sensors and or computers Modbus RTU Remote Terminal Unit Implementation of the Modbus protocol on top of a serial line with an RS 232 RS 485 or similar physical layer The XR10CX uses 2 wire RS 485 Physical Layer and implements Modbus RTU Master Device Also known as Client this devi...

Page 4: ...simply needs the 40000 added to it Setpoint ST1 is Register 769 or the actual Register Number 40769 For a list of all available registers see Table 2 Input Registers Discrete Inputs and Coils MODBUS defines several types of data The only data used by the XR10CX is the Holding Register 40001 49999 and Output Coils 00001 09999 The XR10CX does not use Input Registers or Inputs Coils CRC ERROR CHECKIN...

Page 5: ...uested by the Master 2 After sending the Slave goes back to listen mode ii If command was not successfully processed 1 Slave will respond with and exception response and exception code indicating why it was not processed a Possible caused would be invalid address See Table 1 Exception Codes 2 After sending The Slave goes back to listen mode b If the command received fails the CRC validation no res...

Page 6: ...first coil to be read reading multiple registers is sequential Number of Coils 2 bytes Number of Elements Coils that the device has to return 3 3 Coils or bits No more than 80 Elements Coils allowed Each coil is 1 bit CRC 2 bytes CRC calculated for the frame data received and is used to verify the integrity of data received 3 1 2 SUCCESSFUL RESPONSE READ COILS 0x01 Slave Address 1 byte The address...

Page 7: ... the slave responding Same as the address in the initiating command Function Code 1 byte Code 0x05 Echo from the initiating command Coil Address 2 bytes Echo from initiating command Data 2 bytes Echo from initiating command CRC 2 bytes 3 2 3 EXCEPTION RESPONSE WRITE SINGLE COIL 0x05 Slave Address 1 byte The address of the slave responding Same as the address in the initiating command Exception Res...

Page 8: ...e The address of the slave responding Same as the address in the initiating command Function Code 1 byte Code 0x03 Echo from the initiating command Number of Bytes 1 byte Defines the number of bytes followed minus the CRC Data Byte data buffer length is Number of Bytes long CRC 2 bytes 3 3 3 EXCEPTION RESPONSE READ HOLDING REGISTER 0x03 Slave Address 1 byte The address of the slave responding Same...

Page 9: ... from the initiating command Register Address 2 bytes The address of the register that was written Data 2 bytes Byte data buffer will contain the same data that was sent in initiating command CRC 2 bytes 3 4 3 EXCEPTION RESPONSE FROM WRITE SINGLE REGISTER 0x06 Slave Address 1 byte The address of the slave responding Same as the address in the initiating command Exception Response 1 byte Code 0x06 ...

Page 10: ...ONSE FROM WRITE HOLDING REGISTERS 0x10 Slave Address 1 byte The address of the slave responding Same as the address in the initiating command Function Code 1 byte Code 0x10 Echo from the initiating command Register Address 2 bytes The address of the register that was written Number Registers 2 bytes The number of registers written CRC 2 bytes 3 5 3 EXCEPTION RESPONSE FROM WRITE HOLDING REGISTERS 0...

Page 11: ...ata Address The data address received in the query is not an allowable address for the slave More specifically the combination of reference number and transfer length is invalid 03 Illegal Data Value Requesting a register that does not exist More than 5 elements requested Writing a parameter out of range Writing to read only register 04 Slave Device Failure An unrecoverable error occurred while th...

Page 12: ...up 40831 Did Read Write Dig Input Alarm Delay 0 255min 40847 Adr Read Write Modbus Address 1 247 40852 Set Read Write System Setpoint 40864 Coil Read Write On Off for Control 513 Read Write Keypad Lock 516 Read Write Mute Buz and Any Alarm 517 Read Digital input Pin 9 520 Read Probe 1 Error 521 Read Probe 2 Error 522 Read Probe 3 Error 523 Read Probe 4 Error 524 Read High Temperature Alarm Pb1 525...

Page 13: ...r burner is also ON Alarms Modbus Coil 538 Alarms are not typically used on this device CONTROL ON OFF Enable Disable Modbus Coil 513 ON 257 or 0x0101 OFF 1 or 0x0001 In the OFF state no heating signal will be present no alarms all relay outputs are open and no temperature are displayed The display will show the word OFF It is still possible to read the probe temperatures and other parameters over...

Page 14: ... 3 IMPROPER WIRING EXAMPLE Figure 5 Wiring is not correct Not a daisy chain and the master is not at an end MASTER CLIENT DEVICE 1 XR10CX DEVICE 2 XR10CX DEVICE 3 XR10CX DEVICE 4 XR10CX MASTER CLIENT DEVICE 1 XR10CX DEVICE 2 XR10CX DEVICE 3 XR10CX DEVICE 4 XR10CX Master Regis ter Addr ess LSB yte Data MSByte G N D Data LSB CRC LSByte C R T X TXD1 RXD1 DATA B R e D a Data LSByt e CRC LSByte 2 W CON...

Page 15: ...lly a jumper setting on the device The XR10CX does not have line biasing resistors Data B will be pulled to positive Data A will be pulled to negative 6 6 SERIAL INTERFACE XJ485 The XJ485 serial termination is a factory supplied RS485 to TTL connection device The XR10CX control comes standard with a TTL communication port also used as the HOT KEY programming interface The termination points are la...

Reviews: