Troubleshooting 1747-UIC to PowerFlex 40 Drive Communication

Mark Townsend8 min read
Allen-BradleyTroubleshootingVFD / Drives
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Problem Overview

Field engineers frequently attempt to connect a PowerFlex 40 (PF40) AC drive to a PC using an Allen-Bradley 1747-UIC USB-to-DH485 converter because both devices expose an RJ45-style 8-pin connector and the cable appears physically compatible. The drive will not respond, and no traffic is visible on a protocol analyzer. The root cause is a protocol-layer mismatch, not a cable or termination problem. The 1747-UIC implements Allen-Bradley's Data Highway 485 (DH485) protocol, which is used exclusively by SLC 500 and MicroLogix 1000/1200/1500 controllers. The PowerFlex 40 implements Drive Serial Interface (DSI), a Modbus-RTU-based protocol that lives on an RS-485 physical layer. Both protocols share the same electrical standard but speak completely different languages.

Rockwell Automation's official support knowledge base explicitly confirms this: the 1747-UIC and 1747-AIC link couplers cannot communicate to PowerFlex drives (Rockwell Answer ID 624406). Any PC application that polls the drive through a 1747-UIC will time out.

Critical: Pin 4 and pin 5 of an RJ45 are the RS-485 D+/D- pair on both the 1747-UIC and the PowerFlex 40, so a "telephone-style" straight cable is electrically correct. The data simply will not be interpreted by either end because DH485 frames and DSI/Modbus RTU frames use different addressing, function codes, and CRC schemes.

Protocol Mismatch: DH485 vs DSI (Modbus RTU)

Attribute 1747-UIC (DH485) PowerFlex 40 (DSI / Modbus RTU)
Physical layer RS-485, 2-wire half-duplex RS-485, 2-wire half-duplex
Connector RJ45 (8P8C) RJ45 (8P8C), pins 4 & 5 used
Default baud rate 19200 bps 9600 bps (configurable to 19200)
Default address Node 1 (host) Node 1 (slave)
Frame format DH485 token-passing Modbus RTU (8N1)
Error checking DH485 BCC Modbus CRC-16
Topology Multi-drop, 32 nodes max Multi-drop, 32 nodes max (DSI chain)
Target devices SLC-500, MicroLogix 1000/1200/1500 PowerFlex 4, 4M, 40, 40P, 400

The 1747-UIC is documented in the SLC 500 instruction set as a DH485 peripheral. It does not enumerate DSI slaves, does not generate Modbus function codes (01, 02, 03, 04, 05, 06, 16), and does not compute the Modbus CRC-16 polynomial (0xA001). The PowerFlex 40 host port, by contrast, only speaks Modbus RTU and will silently ignore DH485 token frames.

Why the 1747-UIC Fails with the PowerFlex 40

  1. Wrong protocol engine. The 1747-UIC's internal firmware (FRN 1.3, A revision) implements DH485 state machine logic. It cannot be re-flashed to DSI/Modbus.
  2. No SCANport/DPI bridge. DH485 is unrelated to SCANport and DPI peripheral interfaces. A USB-to-DSI bridge such as the 1203-USB contains the CAN-front-end and DPI frame handler that the PF40 expects.
  3. Driver stack mismatch. RSLinx recognizes the 1747-UIC as a DH485 device driver (DF1/DH485 path) and will not bind to a Modbus slave. The PF40 is invisible to this driver.
  4. No bus termination control. The 1747-UIC does not switch the 150 Ω termination resistor needed on a 9600-bps RS-485 segment. The PF40's internal DSI termination must be enabled by setting parameter A117 = 1 (DSI port termination) when used as a single-device segment.

Recommended Solution 1: 1203-USB Converter

For a first-party Rockwell path, use the 1203-USB USB-to-DSI/SCANport/DPI converter. The 1203-USB enumerates as a virtual COM port and presents three interfaces (DSI, SCANport, DPI). It is the only USB device that pairs cleanly with legacy DriveExplorer Lite and DriveTools SP software.

Catalog Number Description Protocols Supported
1203-USB USB-to-DSI/SCANport/DPI converter DSI (PowerFlex 4/40), SCANport, DPI (PF700/753/755)
1203-SFC Serial-to-SCANport cable (DB9 RS-232) SCANport legacy
1203-SNM Serial-to-DSI snap-in module DSI Modbus RTU only

Pinout of the 1203-USB RJ45 male end (toward the drive):

Pin 1: NC
Pin 2: NC
Pin 3: NC
Pin 4: D+ (RS-485 B')
Pin 5: D- (RS-485 A')
Pin 6: NC
Pin 7: +24V (DSI power, optional)
Pin 8: Shield / GND

Recommended Solution 2: Generic USB-to-RS485 + Modbus RTU

When the budget is constrained or a custom .NET application is being written, any industrial-grade USB-to-RS485 adapter that exposes a virtual COM port will work, provided it supports the 9600 bps default of the PF40 and exposes RTS-driven direction control for half-duplex switching.

Recommended Adapter Class Key Feature
FTDI FT232-based (e.g., US-485) Automatic TX/RX switching, 1500 V isolation
CH340/CH341 with 485 mode Cheap, requires manual RTS control in code
Moxa UPort 1130/1150 Galvanic isolation, surge protection, 2.5 kV
AnywhereUSB 2/5 with serial Network-attached, suitable for VM-hosted Studio 5000

PowerFlex 40 serial parameters to set on the drive (parameter group A):

A103 = 9600        ; Comm Data Rate (bps)
A104 = 1            ; Comm Node Address (1-31)
A105 = 0            ; Comm Loss Action (0 = fault, 1 = coast, 2 = hold last)
A106 = 0            ; Comm Loss Time (0.1 s units, 0 = disabled)
A117 = 1            ; DSI Port Termination (150 Ω on last node)

Cable Wiring and Termination

For a single-drive segment, build a 2-wire shielded cable with RJ45 plugs on both ends:

Drive RJ45  ------>  PC-side USB-RS485
  Pin 4 (D+)  ------>  TX+/RX+ (B' / D+)
  Pin 5 (D-)  ------>  TX-/RX- (A' / D-)
  Pin 8        ------>  Shield drain (one end only)

Keep the cable under 12 m (40 ft) for 9600 bps. For longer runs, drop to 4800 bps or insert a 120 Ω termination at the PC end in addition to the drive's internal 150 Ω resistor to bias the line. Enable PF40 internal termination (A117 = 1) only if the drive is the physical end of the segment.

Do not place a 120 Ω termination at both ends of a single-drive segment, as the parallel combination with the drive's 150 Ω bias will load the transceiver and drop the differential voltage below the RS-485 threshold.

Modbus RTU Register Map for PowerFlex 40

All drive parameters, feedback words, and command words are mapped into the Modbus holding register space. The following table summarizes the canonical addresses used in PF40 firmware FRN 4.x and later. Refer to PowerFlex 40 User Manual publication 22B-UM001 for parameter-to-register cross-reference.

Address (Hex) Address (Dec) Type Description
0x0000 - 0x00FF 0 - 255 Read/Write Drive parameters (P046 = base frequency, etc.)
0x0FA1 4001 Read Logic Status Word (bit-mapped run/forward/reverse/at-speed)
0x0FA2 4002 Read Feedback Reference (Hz × 10)
0x0FA3 4003 Read Output Current (0.1 A units)
0x0FA4 4004 Read Output Voltage (VAC units)
0x0FA5 4005 Read DC Bus Voltage (V)
0x0FA6 4006 Read Output Frequency (Hz × 10)
0x0FB1 4081 Write Logic Command Word (Start/Stop/Fwd/Rev/Fault Reset)
0x0FB2 4082 Write Reference Word (Hz × 10 for speed ref)

Sample Modbus RTU Request Frames

Read Output Frequency (slave 1, register 0x0FA6, 1 word):

01 03 0F A6 00 01 CRC-Lo CRC-Hi

Write Start Command (slave 1, register 0x0FB1, value 0x000F = Run + Fwd + Enable):

01 06 0F B1 00 0F CRC-Lo CRC-Hi

CRC-16 is calculated over the first 6 bytes using polynomial 0xA001, low byte transmitted first. A reliable free implementation is MinimalModbus for Python or NModbus for .NET — both compute the correct CRC-16/MODBUS.

VB.NET / .NET Implementation Outline

For a Windows application, use NModbus4 or the built-in System.IO.Ports.SerialPort class. A minimal VB.NET read loop:

Imports System.IO.Ports
Imports Modbus.Device

Dim port = New SerialPort("COM7", 9600, Parity.None, 8, StopBits.One)
port.Open()
Dim master = ModbusSerialMaster.CreateRtu(port)
master.Transport.ReadTimeout = 1000

' Read output frequency every 250 ms
Dim freqRegs = master.ReadHoldingRegisters(1, 0x0FA6, 1)
Dim freqHz = freqRegs(0) / 10.0

' Issue start command
master.WriteSingleRegister(1, 0x0FB1, &H0F)
Timeout pitfall: On half-duplex adapters, the .NET SerialPort.DtrEnable = true property must be set before opening the port to assert the TX-enable line; otherwise the drive will never see a request and the read will time out at exactly 1000 ms intervals.

DriveExplorer and Connected Components Workbench

Legacy DriveExplorer Lite (v6.x) is no longer distributed by Rockwell and is incompatible with Windows 10/11 x64 USB stacks. The supported replacement is Connected Components Workbench (CCW) with the DSI/Modbus RTU plug-in. CCW will auto-detect a 1203-USB and present the drive tree (Parameter List, Fault Queue, Device Info). For Modbus-only generic adapters, use CCW's "Modbus RTU Generic Drive" template and upload the PF40 EDS file (EDS v4.001 or later).

For virtualized installations, install the Rockwell software in a VMware Workstation or Hyper-V guest. USB passthrough binds the 1203-USB directly to the guest's COM port, eliminating the Win10 driver-stack conflicts that legacy AB software exhibits on physical hosts.

Verification and Commissioning Checklist

  1. Confirm drive is in Stop mode and that no fault is active (Logic Status Word bit 0 = 1 = running; bit 15 = 1 = faulted).
  2. From a Modbus master, send 01 03 0F A1 00 01 — expect an 01 03 02 response with the Logic Status Word. A non-response within 1 s indicates wiring or baud-rate mismatch.
  3. Verify A103 = 9600 and A104 = 1 on the drive display match the master.
  4. Issue a Write Single Register to 0x0FB1 with value 0x0006 (Stop + Enable). The drive should drop into a ready state with no output.
  5. Issue a controlled start with 0x000F and reference 300 (30.0 Hz) to 0x0FB2. Watch the output frequency register ramp to 30.0 Hz within the configured accel time.
  6. Issue a clean stop (0x0006) and verify the drive decelerates per P039 and dis-enables the inverter output.

Frequently Asked Questions

Can the 1747-UIC be used to program or monitor a PowerFlex 40?

No. The 1747-UIC only speaks DH485, while the PowerFlex 40 only speaks DSI/Modbus RTU. The two protocols are electrically compatible (RS-485, pins 4 and 5) but logically incompatible. Use a 1203-USB or a generic USB-to-RS485 adapter instead. See Rockwell Answer ID 624406.

Do I need a 120 Ω termination resistor on the PowerFlex 40 serial port?

For a single-drive, short-cable (under 12 m) segment, enable the drive's internal 150 Ω termination by setting parameter A117 = 1 and do not add an external 120 Ω resistor. For multi-drop DSI chains, terminate only the two physical ends of the segment and disable internal termination on the middle nodes.

What baud rate and address does the PowerFlex 40 default to?

Factory defaults are 9600 bps (parameter A103), node address 1 (parameter A104), and Modbus RTU framing (8 data bits, no parity, 1 stop bit). Mismatched baud rate is the most common cause of no-response conditions on a freshly installed drive.

What Modbus function codes does the PowerFlex 40 support?

Function 03 (Read Holding Registers) for monitoring, 06 (Write Single Register) for parameter writes, 16 (Write Multiple Registers, 0x10) for grouped parameter updates, and 08 (Diagnostics, loopback only). The drive does not support function codes 01, 02, 05, 15, or any coil-based access.

Can I control the drive from Excel via DDE after moving to a generic Modbus adapter?

No. DDE HMI links depend on RSLinx OEM/Pro as the DDE server, which requires a backplane path (Ethernet/IP, DH+, DH485) to a controller, not a raw Modbus RTU stream. For direct Excel control, use the Modbus Excel RTD add-in (e.g., from WinTech) or a custom VBA wrapper around MSComm and NModbus4.

Back to blog