# Property of PMA Electrical Solutions, LLC. # # Legacy Benshaw RSi SS Series low-voltage VFD. Primary source: Benshaw # publication 890049-00-00, "Rsi S Series User Manual" (398 PDF pp., archived # by Benshaw): RS-485 chapter printed pp. 231-244 and exact SS expansion map # pp. 245-252. # Benshaw's worked example sends manual 0h1103 as PDU 0x1102, proving protocol # address = manual hexadecimal communication address - 1. Although the map is # similar to later S/SW drives, this file is sourced independently and claims # only the archived SS family. # # Set drv=3 Int485 and Frq=6 Int485. Confirm Pr12 Lost Cmd Mode and Pr13 Lost # Cmd Time on the actual drive before relying on the keepalive backstop. name = "Benshaw RSi SS" vendor = "Benshaw" device_type = "vfd" verified = false probe_register = 0x02FF [connection] summary = "Use the built-in Modbus RTU control terminals; no option card is required." warnings = [] [[connection.methods]] id = "built_in_rs485" title = "Built-in RS-485 terminals" transport = "serial" hardware = "built_in" port = "Control terminals S+, S-, and SG" connector = "Three control-terminal positions" adapter = "Isolated USB-to-RS-485 adapter, 2-wire half-duplex" cable = "18 AWG shielded twisted-pair RS-485 cable" parts = ["Isolated two-wire RS-485 adapter", "18 AWG shielded twisted-pair RS-485 cable"] 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 drv=3 Int485, Frq=6 Int485, and verify Pr12/Pr13 communication-loss settings."] 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.", "Keep the shielded communication line separate from power wiring."] source = "Benshaw 890049-00-00 RSi S/SS User Manual, printed pp. 231-244 (S+/S-/SG connection and setup)" [[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 = "SG" signal = "Signal reference or shield drain" required = false [serial] baudrate = 9600 parity = "N" stopbits = 1 [monitor] status_word = { address = 0x000D, bits = { 0 = "STOPPED", 1 = "RUNNING_FWD", 2 = "RUNNING_REV", 3 = "FAULT_TRIP", 4 = "ACCELERATING", 5 = "DECELERATING", 6 = "SPEED_REACHED", 7 = "DC_BRAKING", 8 = "STOPPING", 9 = "JOG_MODE", 10 = "BRAKE_RELEASE", 11 = "FWD_CMD", 12 = "REV_CMD", 13 = "CMD_SOURCE_IS_COMMS", 14 = "FREQ_SOURCE_IS_COMMS" } } motor_current = { address = 0x030F, scale = 0.1, unit = "A" } output_frequency = { address = 0x0310, scale = 0.01, unit = "Hz" } output_rpm = { address = 0x0311, unit = "rpm" } motor_speed_feedback = { address = 0x0312, signed = true, unit = "rpm" } output_voltage = { address = 0x0313, unit = "V" } dc_voltage = { address = 0x0314, unit = "V" } output_power = { address = 0x0315, scale = 0.1, unit = "kW" } output_torque = { address = 0x0316, scale = 0.1, unit = "%" } module_temperature = { address = 0x032C, unit = "degC" } latch_trip_2 = { address = 0x0330, bits = { 3 = "FAN_TRIP", 5 = "PARAMETER_WRITE_ERROR", 6 = "PRE_PID_FAIL", 7 = "BAD_CONTACT_IO_BOARD", 8 = "EXTERNAL_BRAKE_TRIP", 9 = "NO_MOTOR", 10 = "BAD_OPTION_CARD", 12 = "SAFETY_A", 13 = "SAFETY_B" } } level_trip = { address = 0x0331, bits = { 0 = "BX", 1 = "LOW_VOLTAGE", 2 = "LOST_COMMAND", 3 = "LOST_KEYPAD" } } hardware_trip = { address = 0x0332, bits = { 0 = "ADC_ERROR", 1 = "EEPROM_ERROR", 2 = "WATCHDOG_1_ERROR", 3 = "WATCHDOG_2_ERROR", 5 = "QUEUE_FULL" } } warnings = { address = 0x0333, bits = { 0 = "OVERLOAD", 1 = "UNDERLOAD", 2 = "DRIVE_OVERLOAD", 3 = "LOST_COMMAND", 4 = "FAN_RUNNING", 5 = "DB", 6 = "ENCODER_INSTALL", 7 = "ENCODER_DISCONNECT", 8 = "KEYPAD_LOST", 9 = "AUTO_TUNING_FAILED" } } [control] command_register = 0x0381 speed_register = 0x037F speed_scale = 0.01 speed_unit = "Hz" max_ref = 400.0 step_delay = 0.05 stop = [0x0000] run_fwd = [0x0003] run_rev = [0x0001] reset = [0x0004, 0x0000] [control.watchdog] backstop_requires_setup = true interval_ms = 500 fault = "Lost Command Trip (Pr12 Lost Cmd Mode / Pr13 Lost Cmd Time)" [faults] register = 0x032F bitfield = true bits = { 0 = "OVERLOAD_TRIP", 1 = "UNDERLOAD_TRIP", 2 = "DRIVE_OVERLOAD_TRIP", 3 = "E_THERMAL_TRIP", 4 = "GROUND_FAULT_TRIP", 5 = "OUTPUT_OPEN_PHASE", 6 = "INPUT_OPEN_PHASE", 9 = "NTC_TRIP", 10 = "OVERCURRENT_TRIP", 11 = "OVERVOLTAGE_TRIP", 12 = "EXTERNAL_TRIP", 13 = "ARM_SHORT", 14 = "OVERHEAT_TRIP", 15 = "FUSE_OPEN_TRIP" } [rating] register = 0x0300 label = "drive capacity code" # No [running_check]: forward and reverse are distinct status bits.