# Property of PMA Electrical Solutions, LLC. # # Legacy Benshaw RSi GX Series VFD with the optional RS-485 communications # card. Primary source: Benshaw "RSi GX Series User Manual" from Benshaw's # legacy manual archive, communications chapter printed pp. 130-147. Addresses # in that chapter are direct hexadecimal protocol addresses; do not subtract 1. # # Setup: DRV03=3 RS485, DRV04=7 RS485; I59=0 Modbus, I60 node, I61=3 9600. # The documented default framing is 8 data bits, no parity, TWO stop bits. # I62 lost-command mode defaults No Action, so set it to Free-Run or Stop; # I63 defaults 1.0 s. name = "Benshaw RSi GX" vendor = "Benshaw" device_type = "vfd" verified = false probe_register = 0x000E [connection] summary = "The legacy RSi GX requires its RS-485 communications option and uses the drive control terminals once installed." warnings = [] [[connection.methods]] id = "optional_rs485" title = "Optional RS-485 interface" transport = "serial" hardware = "option" port = "Control terminals S+, S-, and CM" connector = "Control-terminal positions provided for the RS-485 option" adapter = "Isolated USB-to-RS-485 adapter, 2-wire half-duplex" cable = "Shielded twisted-pair RS-485 cable, 120 ohm nominal impedance" parts = ["Isolated two-wire RS-485 adapter", "Shielded twisted-pair RS-485 cable, 120 ohm nominal impedance"] steps = ["Lock out line and control power, wait the vendor-specified discharge time, and verify the DC bus is de-energized before opening a cover or landing conductors.", "Land the positive and negative data conductors exactly as shown; connect the cable shield or signal common only where the method identifies it.", "Route the communications cable away from motor and mains conductors. Terminate the two physical ends of a long multidrop trunk only.", "Restore control power with the motor area clear, configure the drive from its keypad, then verify identity and read-only monitor data before enabling remote control."] setup = ["Set DRV03=3, DRV04=7, I59=0 Modbus, I60=node, I61=3 for 9600 8N2, and set I62/I63 for communication loss."] warnings = ["RS-485 A/B naming is not consistent between manufacturers. Follow the + and - signal mapping in this guide, not the letter printed on an unfamiliar adapter.", "Do not use protective earth as the data return unless the vendor drawing explicitly calls for it.", "Confirm that the RS-485 option is actually fitted before landing conductors."] source = "Benshaw RSi GX User Manual, printed pp. 26 and 130-147 (S+/S-/CM and communication chapter)" [[connection.methods.wiring]] adapter = "Adapter D+ / +" device = "S+" signal = "RS-485 data positive" required = true [[connection.methods.wiring]] adapter = "Adapter D- / -" device = "S-" signal = "RS-485 data negative" required = true [[connection.methods.wiring]] adapter = "Adapter signal ground / shield" device = "CM" signal = "Signal reference or shield drain" required = false [serial] baudrate = 9600 parity = "N" stopbits = 2 [monitor] motor_current = { address = 0x0009, scale = 0.1, unit = "A" } output_frequency = { address = 0x000A, scale = 0.01, unit = "Hz" } output_voltage = { address = 0x000B, scale = 0.1, unit = "V" } dc_voltage = { address = 0x000C, scale = 0.1, unit = "V" } output_power = { address = 0x000D, scale = 0.1, unit = "kW" } status_word = { address = 0x000E, bits = { 0 = "STOPPED", 1 = "RUNNING_FWD", 2 = "RUNNING_REV", 3 = "FAULT_TRIP", 4 = "ACCELERATING", 5 = "DECELERATING", 6 = "FREQUENCY_ARRIVAL", 7 = "DC_OPERATION", 8 = "STOPPING", 10 = "BRAKE_OPEN", 11 = "FWD_CMD", 12 = "REV_CMD", 13 = "START_SOURCE_COMMS", 14 = "FREQUENCY_SOURCE_COMMS" } } additional_trip = { address = 0x001D, bits = { 0 = "IO_BOARD_COMM_RESET", 1 = "FLTL", 2 = "NTC", 3 = "REEP" } } # Commands at 0x0006 are edge-triggered (0->1): bit0 stop, bit1 forward, # bit2 reverse, bit3 fault reset. Sequences deliberately establish each edge. [control] command_register = 0x0006 speed_register = 0x0005 speed_scale = 0.01 speed_unit = "Hz" max_ref = 400.0 step_delay = 0.05 stop = [0x0000, 0x0001] run_fwd = [0x0000, 0x0002] run_rev = [0x0000, 0x0004] reset = [0x0000, 0x0008, 0x0000] [control.watchdog] backstop_requires_setup = true interval_ms = 500 fault = "Lost command (requires I62 Free-Run or Stop; I63 timeout)" [faults] register = 0x000F bitfield = true bits = { 0 = "OVERCURRENT_TRIP", 1 = "OVERVOLTAGE_TRIP", 2 = "EXTERNAL_A", 3 = "EMERGENCY_STOP_BX", 4 = "INPUT_PHASE_LOSS", 5 = "GROUND_FAULT", 6 = "OVERHEAT", 7 = "MOTOR_OVERHEAT", 8 = "OVERLOAD", 9 = "HARDWARE_DIAGNOSIS", 10 = "EXTERNAL_B", 11 = "EEPROM", 12 = "FAN", 13 = "OUTPUT_PHASE_OPEN", 14 = "INVERTER_OVERLOAD", 15 = "LOW_VOLTAGE" } [rating] register = 0x0001 label = "drive capacity code" # No [running_check]: forward and reverse are distinct status bits.