CANopen · CiA 419 · Carrier 30XA · Ixxat · Modbus TCP · PCAN-View · HVAC · 11 min read

CANopen HVAC Chiller Integration: Carrier, York, Daikin via Ixxat Gateway

Commercial chillers from Carrier, York, and Daikin expose their operating parameters via CANopen using the CiA 419 HVAC profile — providing supply and return water temperatures, compressor status, energy meter readings, and alarm codes over a single shielded CAN cable. An Ixxat CANopen Gateway translates these objects to Modbus TCP, making chiller data available to any BMS, SCADA, or KNX building automation panel.

Chiller models with native CANopen

Not all chiller models include CANopen as standard — some require a factory-fitted communications option card, and others use CANopen only internally between compressor controller boards while exposing Modbus or BACnet to the BMS. Always check the chiller datasheet section headed “communication options” before specifying a CANopen gateway.

Manufacturer / ModelCANopen availabilityProfileBit rate
Carrier 30XA (air-cooled screw)Option card PRO-BUS — order separatelyCiA 419 + manufacturer objects250 kbit/s
Carrier 30XW (water-cooled)Integrated on i-Vu controllerCiA 419 + Carrier extension250 kbit/s
York Magnitude (centrifugal)YORK YorkTalk 2 option moduleCiA 419 subset125 kbit/s
Daikin Skyair FBQ-B seriesCANopen via EKRSC option boardManufacturer-specific only250 kbit/s
Daikin Altherma 3 H HTInternal CAN between boards — not exposedN/A — use Modbus or BACnet
Trane CenTraVac CVHETechView gateway add-onBACnet MS/TP preferred over CANopen

CiA 419 object mapping for chiller data

The CiA 419 HVAC profile defines standard object indices for chiller process values. Temperature values are encoded as INT16 in units of 0.01°C — divide the raw value by 100 to get degrees Celsius. A raw value of 0x0BB8 = 3000 decimal = 30.00°C. Negative temperatures use two's complement: 0xFF9C = -100 = -1.00°C.

Chiller data pointCiA 419 indexType / unitR/W
Chilled water supply temperature0x6010:01INT16, 0.01°CR
Chilled water return temperature0x6010:02INT16, 0.01°CR
Condenser water inlet temperature0x6010:03INT16, 0.01°CR
Condenser water outlet temperature0x6010:04INT16, 0.01°CR
Chilled water setpoint0x6011:01INT16, 0.01°CR/W
Compressor 1 run status0x6020:01UINT8: 0=off, 1=run, 2=faultR
Compressor 2 run status0x6020:02UINT8: 0=off, 1=run, 2=faultR
Chiller operating mode0x6040:01UINT8: 0=off, 1=cool, 2=heat pump, 3=autoR/W
Active alarm code0x6050:01UINT32 bit fieldR
Total active power (W)0x6060:01UINT32, 1W resolutionR
Energy counter (Wh)0x6060:03UINT32, 1Wh resolutionR
COP (coefficient of performance)0x6070:01UINT16, 0.01 resolutionR

Carrier 30XA uses a hybrid approach: CiA 419 standard objects for temperatures and operating mode, plus manufacturer-specific objects at 0x2000–0x2FFF for compressor pressures, expansion valve positions, and detailed alarm codes. Always request the Carrier CANopen EDS file from Carrier technical support (file number varies by firmware version) before configuring the gateway.

Ixxat CANopen Gateway to Modbus TCP — configuration

The Ixxat CANopen Gateway (HMS Networks, part number 1.01.0075.00000) acts as a CANopen NMT master and presents all mapped CANopen object values as Modbus TCP holding registers on its Ethernet port. The BMS, KNX Modbus gateway, or SCADA reads chiller data by polling Modbus registers over Ethernet — no CAN knowledge required from the BMS side.

Ixxat CANopen Gateway — web UI configuration steps

1. Hardware connections
   CAN port: Connect CAN_H, CAN_L, GND to chiller CAN terminals
   ETH port: Connect to building LAN or dedicated HVAC network
   Power: 24V DC supply

2. Web UI access
   Default IP: 192.168.0.100 — change to site VLAN address
   Navigate to: CAN → Bit Rate → Set to 250 kbit/s (match chiller)

3. Import chiller EDS file
   CANopen → Devices → Add Device → Upload EDS file
   Assign Node ID matching chiller panel setting (e.g. Node 3)
   The gateway auto-discovers objects from the EDS

4. PDO configuration
   Select TPDO1 of chiller node
   Verify mapped objects include 0x6010:01 (supply temp) and 0x6010:02 (return temp)
   Set transmission type: 255 (event-driven) with event timer 1000ms
   Set inhibit time: 500ms (no more than 2 frames per second per chiller)

5. Modbus TCP register mapping
   Modbus → Register Map → Auto-generate from CANopen objects
   Or manually: map object 0x6010:01 → Holding register 40001
                map object 0x6010:02 → Holding register 40002
                map object 0x6040:01 → Holding register 40010
                map object 0x6050:01 → Holding registers 40011–40012 (UINT32 = 2 registers)
   Modbus TCP port: 502 (default)
   Unit ID: 1 (default — change if multiple gateways on same IP)

6. NMT: Start Network → all nodes transition to Operational
   Verify green LED on gateway and chiller CANopen board

Wiring: shielded twisted pair and termination

The CAN cable from the panel to the chiller must be shielded twisted pair with a characteristic impedance of 120Ω. Plant rooms contain variable-speed drive inverters that generate significant electromagnetic interference — unshielded cable will cause intermittent CAN errors that are difficult to diagnose.

CAN wiring to chiller — panel to plant room

Cable specification:
  Belden 9841 (120Ω, 24AWG, single shielded twisted pair)
  OR Lapp UNITRONIC BUS CAN (120Ω, available in 2×2×0.22 for multi-pair runs)

Connection (linear bus — no stars):
  Ixxat gateway → [Carrier 30XA chiller 1] → [Carrier 30XA chiller 2]

  Gateway CAN port:
    Terminal CAN_H → Cable pair A
    Terminal CAN_L → Cable pair B
    Terminal GND   → Cable drain wire (shield connected at gateway end only)
    120Ω termination resistor: fitted at gateway (it is the first node on bus)

  Chiller 1 CANopen board (middle node — no termination):
    CAN_H → Incoming pair A AND outgoing pair A (daisy-chain through)
    CAN_L → Incoming pair B AND outgoing pair B
    GND   → Drain wire (DO NOT connect shield to chiller chassis here — ground loop risk)

  Chiller 2 (last node — terminate here):
    CAN_H and CAN_L: same daisy-chain as chiller 1
    120Ω termination: connect between CAN_H and CAN_L at this node

Maximum stub length from trunk to chiller terminal: 0.3m
Run cable in separate conduit from 400V power and VFD cables
Minimum 200mm separation from power cables

Commissioning with PCAN-View

Before connecting the Ixxat gateway, verify the CAN bus with a PEAK-System PCAN-USB adaptor and PCAN-View (free software). This confirms the chiller is transmitting, the bit rate is correct, and there are no error frames before the gateway is involved.

PCAN-View commissioning procedure

1. Connect PCAN-USB to laptop USB
   Connect CAN_H, CAN_L, GND to temporary spur at first chiller
   DO NOT connect termination from PCAN-USB — bus should already be terminated
   (PCAN-USB has no internal termination by default)

2. PCAN-View: Hardware → Connect → Select PCAN-USB
   Bit rate: 250 kbit/s (match chiller setting)
   Click Connect

3. Observe received frames in Trace window:
   Chiller sending heartbeat: COB-ID 0x703 (node ID 3) every ~1000ms
   Data: 05 = Node in Operational state
         7F = Node in Pre-Operational state — gateway must send NMT start

4. Check Error Frame counter (top-right panel)
   Error frames > 0: check termination, bit rate, cable quality
   0 error frames: bus is clean — proceed with gateway connection

5. SDO read test — verify temperature object:
   Transmit tab → New message:
   COB-ID: 0x603  DLC: 8  Data: 40 10 60 01 00 00 00 00
   Click Send
   Response in Receive window at COB-ID 0x583:
   Data: 4B 10 60 01 XX XX 00 00 (bytes 4–5 = supply water temp × 100)

6. Disconnect PCAN-USB, connect Ixxat gateway in its place

Common problems and solutions

SymptomProbable causeRemedy
PCAN-View shows error frames immediately on connectMissing or incorrect terminationMeasure CAN_H to CAN_L resistance — should be 60Ω. Add or reposition 120Ω resistors at both physical ends of trunk cable
No frames received in PCAN-ViewWrong bit rate or chiller CANopen not enabledCheck chiller front panel / service menu for CANopen enable flag and baud rate setting. Try 125 kbit/s if 250 kbit/s shows no traffic
Ixxat gateway shows NMT timeout for chiller nodeNode ID mismatch or chiller in Pre-Operational stateCheck chiller CANopen node ID in service menu. Send NMT Start Node command (COB-ID 0x000, data 01 + node ID) via PCAN-View to force Operational state
Modbus TCP returns 0x0000 for all registersPDOs not activating — chiller in Pre-OperationalIn Ixxat web UI: NMT → Start All Nodes. Verify green Operational LED on chiller CANopen board
Temperature reads 32767 or -32768 (0x7FFF / 0x8000)Sensor fault or object not available on this chiller firmwareCheck chiller fault list. Some objects return 0x7FFF when sensor is disconnected — treat as invalid/sensor fault
Node ID conflict — two chillers show same COB-IDsBoth chillers shipped with same default node ID (often ID 1)Access each chiller service menu individually (disconnect others) and set unique node IDs: 3 and 4

Carrier 30XA chillers shipped before 2019 may have CANopen firmware that does not support the NMT heartbeat protocol — they use the older Node Guarding protocol instead. If the Ixxat gateway reports “Node Guarding error”, enable Node Guarding in the gateway configuration (guard time 1000ms, life time factor 3) instead of Heartbeat monitoring.

Need a chiller CANopen integration panel built and commissioned?

We supply and configure Ixxat CANopen gateways with CiA 419 HVAC profile mapping, shielded CAN wiring to Carrier, York and Daikin chillers, Modbus TCP output for BMS integration, and full commissioning documentation.

Request a quote →
Loading...
Back to top