# Property of PMA Electrical Solutions, LLC. # # Eaton (Cutler-Hammer) HVX9000 AF drive — Modbus RTU through the OPTC2 # (screw-terminal RS-485) or OPTC8 (D9 connector) communication board in # slot E. Catalog suffixes C2 / C8. This is NOT the OPTE2/OPTE8 board. # # Sources — two documents, because the board carries the transport and the # HVX application carries the meaning of the bits: # # Eaton MN04003003E, "MODBUS and N2 Communication Kit User Manual" # (OPTC2/OPTC8), September 2006, 48 pp. — named for the HVX9000 on p. 1-1. # pp. 4-1, 4-2 board commissioning parameters, communication timeout # pp. 5-2 - 5-4 worked FC03/FC04/FC06/FC16 examples — the addressing proof # p. 5-6 index table: ID -> Modbus register ranges # pp. 5-7 - 5-9 process data in/out, HVX control word, HVX status word # pp. A-1, A-2 process-data defaults and scales per application # # Eaton TD04008003E, "HVX9000 AF Drives User Manual", August 2006, 208 pp. # p. 1-2 catalog numbering: C2/C8 = OPTC2/OPTC8 Modbus # p. 6-21 monitoring menu, signal names, units and ID numbers # p. 8-3 P1.1.17/P1.1.18 auto start and reference source # p. 8-45 P1.7.23 Comm Fault Resp # pp. 8-60, 8-62 G1.13 fieldbus data-out selectors and their defaults # pp. C-1 - C-4 fault code table # # CLAIMS ONLY THE HVX9000. The control word below is the HVX application's: # bit 3 is Enable Bypass, bits 4-7 are FB DIN3-DIN6, bit 13 is Fire Mode. The # status word bits 6-8 (bypass, fire mode, interlock) are marked "HVX only" in # MN04003003E. Do not carry this file to an SVX9000/SPX9000 or to a drive # fitted with the OPTE2/OPTE8 board. # # ADDRESSING. Eaton documents ID numbers with 4xxxx/3xxxx aliases; the wire # address is ID - 1 (MN04003003E pp. 5-2 to 5-4, "registers 1 - 16 are # addressed as 0 - 15"): # 0-based register = ID - 1 # ID 2001 control word -> 2000 (0x07D0, the manual's own FC06 example) # ID 99 fault code -> 98 # ID 1-98 actual values -> 0-97, ID 101-1999 parameters -> 100-1998 # Every ID answers FC03 and FC04 alike (p. 5-6); this profile uses FC03 only. # # DRIVE-SIDE SETUP. # Board, keypad menu M4 (HVX) > expander board > editable parameters: # #1 Communication Protocol = 1 (Modbus RTU) # #2 Slave Address 1-247 # #3 Baud Rate, default 6 = 9600 # #4 Parity Type, default 0 = None # #5 Communication Timeout, default 10 s (0 = off) # Drive: # P1.1.17 Start Srce Auto = 3 (Communication bus) # P1.1.18 Ref Source Auto = 5 (Communication Bus) # P1.1.14 HOA Control Src = 2 only if HOA itself is driven from the bus # The HOA switch must be in AUTO — the Hand sources (P1.1.15/P1.1.16) are # separate parameters and a drive left in Hand ignores the bus. # # SCALING. MN04003003E p. A-1 gives per-count scales for the Basic, Standard, # Local/Remote, Multi-Step, PID and Pump-and-Fan applications and then says # the HVX application uses a selector parameter for every process data slot, # with defaults per the HVX manual. Neither document restates the decimal # count for the HVX monitoring IDs — TD04008003E p. 8-60 says only "No decimal # point is available, so scaling must be done by the viewing device". The # scales on the monitor points below are the p. A-1 values for the same board # and drive family and are the most likely, NOT a documented HVX figure. # CONFIRM EVERY MONITOR SCALE ON HARDWARE BEFORE TRUSTING A READING. The # reference and actual-speed percent scaling below IS documented for HVX # (p. A-2, Table A-5: 0.01%). name = "Eaton HVX9000" vendor = "Eaton" device_type = "vfd" verified = false probe_register = 2100 # ID 2101 FB status word, live whenever the board is up [connection] summary = "Fit the legacy OPTC2 screw-terminal board or OPTC8 D-sub board in slot E; their connector pinouts differ and are shown separately." warnings = ["Isolate and discharge the drive before opening it or installing an option board.", "Do not substitute OPTE2/OPTE8: those later boards use a different profile and swapped data-pin conventions."] [[connection.methods]] id = "optc2_screw" title = "OPTC2 5-pin screw connector" transport = "serial" hardware = "option" port = "OPTC2 slot-E connector: pin 3 RxD/TxD-N(A), pin 4 RxD/TxD-P(B), pin 5 DGND" connector = "5-pin pluggable bus connector" adapter = "Isolated USB-to-RS-485 adapter" cable = "Shielded RS-485 twisted pair" parts = ["OPTC2 option board", "5-pin plug", "X4 endpoint termination"] wiring = [{ adapter = "D- / A-", device = "Pin 3, RxD/TxD-N (A)", signal = "RS-485 negative" }, { adapter = "D+ / B+", device = "Pin 4, RxD/TxD-P (B)", signal = "RS-485 positive" }, { adapter = "COM/GND", device = "Pin 5, DGND", signal = "Data reference", required = false }] steps = ["Isolate the drive and verify OPTC2 is fitted in slot E.", "Land negative on pin 3 and positive on pin 4; use pin 5 only for the optional data reference and leave pin 2 VP unconnected to the adapter.", "Set X4 on only if this is the last bus node and ground the shield per the board procedure.", "Close the drive, restore power, and select the serial adapter."] setup = ["In keypad menu M4, set board protocol = 1 Modbus RTU, unique slave address, baud, parity, and timeout.", "Set the HVX AUTO start/reference sources to Communication Bus and place HOA in AUTO."] warnings = ["Pin 2 is a +5 V supply, not a data conductor."] source = "Eaton MN04003003E, printed pp. 2-1 through 4-2; TD04008003E, printed pp. 1-2 and 8-3" [[connection.methods]] id = "optc8_dsub" title = "OPTC8 female D-sub" transport = "serial" hardware = "option" port = "OPTC8: pin 3 RxD/TxD-N(A), pin 8 RxD/TxD-P(B), pin 5 DGND, pin 1 shield" connector = "9-pin female D-sub with non-PC pinout" adapter = "Isolated USB-to-RS-485 adapter plus a custom D-sub cable wired to Eaton's pinout" cable = "Shielded RS-485 twisted pair in a D-sub shell" parts = ["OPTC8 option board", "Male D-sub plug and shell", "X4 endpoint termination"] wiring = [{ adapter = "D- / A-", device = "D-sub pin 3, RxD/TxD-N (A)", signal = "RS-485 negative" }, { adapter = "D+ / B+", device = "D-sub pin 8, RxD/TxD-P (B)", signal = "RS-485 positive" }, { adapter = "COM/GND", device = "D-sub pin 5, DGND", signal = "Data reference", required = false }, { adapter = "Cable shield", device = "D-sub pin 1", signal = "Shield bond", required = false }] steps = ["Isolate the drive and verify OPTC8 is installed in slot E.", "Build/use a cable to Eaton's pinout: negative pin 3, positive pin 8, optional reference pin 5, shield pin 1.", "Set X4 only at the last bus node and choose X1 shield grounding per the installation.", "Close the drive, restore power, and select the serial adapter."] setup = ["Set the M4 board protocol, address, baud, parity, and timeout.", "Select Communication Bus for HVX AUTO start/reference and place HOA in AUTO."] warnings = ["A generic PC serial/null-modem DB9 cable is not wired for this connector.", "Pin 6 is +5 V and must not be connected as data."] source = "Eaton MN04003003E, printed pp. 2-2 through 4-2; TD04008003E, printed p. 8-3" # Board defaults: baud 6 = 9600, parity 0 = None. MN04003003E does not state # the stop-bit count; 2 stop bits is the Modbus RTU convention with no parity. [serial] baudrate = 9600 parity = "N" stopbits = 2 [monitor] # ID 2001. BIT 3 IS ENABLE BYPASS ON THE HVX — a run word must leave it clear # or the command energises the bypass contactor. control_word = { address = 2000, bits = { 0 = "RUN", 1 = "REVERSE", 2 = "RESET", 3 = "ENABLE_BYPASS", 4 = "FB_DIN3", 5 = "FB_DIN4", 6 = "FB_DIN5", 7 = "FB_DIN6", 10 = "PASS_THROUGH_RO1", 11 = "PASS_THROUGH_RO2", 12 = "PASS_THROUGH_DO1", 13 = "FIRE_MODE", 14 = "PM_SETBACK" } } # ID 2101. Bit 8 reads 1 when NOT interlocked. status_word = { address = 2100, bits = { 0 = "READY", 1 = "RUN", 2 = "REVERSE", 3 = "FAULT", 4 = "WARNING", 5 = "AT_REFERENCE", 6 = "BYPASS_ACTIVE", 7 = "FIRE_MODE_ACTIVE", 8 = "NOT_INTERLOCKED" } } actual_speed = { address = 2102, scale = 0.01, unit = "%" } # ID 2103, documented 0-100.00% # Actual-value IDs, taken instead of the process-data slots because the HVX # slots 2104-2111 are re-pointable (G1.13) and are shipped pointing at # different values than the rest of the 9000X family. Scales per the header # caveat above. output_frequency = { address = 0, signed = true, scale = 0.1, unit = "Hz" } # ID 1 motor_speed = { address = 1, signed = true, unit = "RPM" } # ID 2 motor_torque = { address = 3, signed = true, scale = 0.1, unit = "%" } # ID 4 motor_power = { address = 4, signed = true, scale = 0.1, unit = "%" } # ID 5 output_voltage = { address = 5, scale = 0.1, unit = "V" } # ID 6 dc_voltage = { address = 6, unit = "V" } # ID 7 unit_temperature = { address = 7, signed = true, unit = "C" } # ID 8, heatsink motor_current = { address = 1779, scale = 0.1, unit = "A" } # ID 1780 [control] command_register = 2000 speed_register = 2002 # ID 2003 FB speed reference speed_scale = 0.01 # 10000 raw = 100.00% of max frequency (Table A-5) speed_unit = "%" # NOT Hz on the HVX/IntelliPass application max_ref = 100.0 step_delay = 0.05 stop = [0x0000] run_fwd = [0x0001] run_rev = [0x0003] # direction is control-word bit 1, not the reference sign # Bit 2 resets on a rising edge. Bit 0 is held low so the word that carries # the reset is a STOP word, and bit 3 stays clear so a reset never enables the # bypass. reset = [0x0000, 0x0004, 0x0000] # Board Communication Timeout defaults to 10 s and P1.7.23 Comm Fault Resp # defaults to 2 = Fault, so a stock HVX9000 DOES trip on silence and stops per # the configured stop mode. P1.7.23 = 0 (No response) leaves the motor running # on the last reference — check it on the actual unit before arming. [control.watchdog] interval_ms = 1000 fault = "53 Communication bus fault" [running_check] register = 2100 bit = 1 # ID 99, the active fault code (MN04003003E p. 5-6 index table). The keypad # fault history (G5.34) has no documented Modbus address on this board, so # there is no history list here. [faults] register = 98 # TD04008003E pp. C-1 to C-4. [faults.codes] 0 = "No fault" 1 = "Overcurrent" 2 = "Overvoltage" 3 = "Ground (earth) fault" 5 = "Charging switch" 6 = "Emergency stop" 7 = "Saturation trip" 8 = "System fault" 9 = "Undervoltage" 10 = "Input line supervision" 11 = "Output phase supervision" 12 = "Brake chopper supervision" 13 = "HVX9000 undertemperature" 14 = "HVX9000 overtemperature" 15 = "Motor stalled" 16 = "Motor overtemperature" 17 = "Motor underload" 22 = "EEPROM checksum fault" 23 = "EEPROM checksum fault" 25 = "Microprocessor watchdog fault" 26 = "Start-up prevented" 29 = "Thermistor fault" 32 = "Fan cooling" 34 = "CAN bus communication" 36 = "Control unit" 37 = "Device change" 38 = "Device added" 39 = "Device removed" 40 = "Device unknown" 41 = "IGBT temperature" 42 = "Brake resistor overtemperature" 43 = "Encoder fault" 50 = "Analog input Iin < 4 mA" 51 = "External fault" 52 = "Keypad communication fault" 53 = "Communication bus fault" 54 = "Slot fault" 82 = "Bypass overload"