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.
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
- 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.
- 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.
- 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.
-
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.
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)
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
- Confirm drive is in
Stopmode and that no fault is active (Logic Status Word bit 0 = 1 = running; bit 15 = 1 = faulted). - From a Modbus master, send
01 03 0F A1 00 01— expect an01 03 02response with the Logic Status Word. A non-response within 1 s indicates wiring or baud-rate mismatch. - Verify
A103 = 9600andA104 = 1on the drive display match the master. - Issue a
Write Single Registerto0x0FB1with value0x0006(Stop + Enable). The drive should drop into a ready state with no output. - Issue a controlled start with
0x000Fand reference 300 (30.0 Hz) to0x0FB2. Watch the output frequency register ramp to 30.0 Hz within the configured accel time. - Issue a clean stop (
0x0006) and verify the drive decelerates perP039and 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.