# Property of PMA Electrical Solutions, LLC. # # Benshaw RediStart MX2 low-voltage soft-starter control. The source manual's # cover and model tables explicitly cover RB2, RC2 and RX2E units. It does not # cover MX, MX3, Micro II, DMS, CSXi or EMX4 products. # # Sources (Benshaw primary documentation): # 02-890034-01-02, "RediStart Solid State Starter Control, RB2, RC2, RX2E # Models, User Manual" (August 2008), printed pages: # 74 QST04/QST05 local and remote command sources # 121-122 FUN10-FUN13 Modbus address, baud, timeout and framing # 171-172 embedded RS-485 Modbus RTU; supported function codes # 196 fault-code table # 199-207 Appendix E register map and control-word semantics # # COMMS PATH: embedded Modbus RTU on TB4 (B+, A-, COM). Supported functions are # FC03, FC04, FC06 and FC16; at most 64 registers per transaction (p. 171). # # ADDRESSING: p. 171 says the 3xxxx input and 4xxxx holding maps are identical # and gives Motor FLA as input 30101 / holding 40101. This profile uses the # holding space because vfd-core reads FC03. Every address below is the 0-based # protocol address: 4xxxx - 40001. Thus 40020 -> 19 and 40021 -> 20. # # DRIVE-SIDE SETUP: set QST05 Remote Source = Serial. The local/remote bit in # the command word only selects the source when no digital input is programmed # as Local/Remote. FUN10 defaults to node 1; FUN11 to 19200; FUN13 to Even # parity, 1 stop bit. FUN12 Communication Timeout defaults OFF. # # START and reset are edge-triggered (p. 207), hence the multi-write sequences. # This soft starter has no speed reference and no network reverse command, so # speed_register and run_rev are deliberately absent. # # SAFETY: with FUN12 left at its factory default Off, a running motor continues # after the master goes silent. Configure a 1 s timeout before network control; # the starter then declares F82 and performs a controlled stop. name = "Benshaw RediStart MX2" vendor = "Benshaw" device_type = "soft_starter" verified = false probe_register = 20 [connection] summary = "Embedded Modbus RTU is on terminal block TB4; no communications option card is required." warnings = [] [[connection.methods]] id = "tb4_rs485" title = "Built-in TB4 Modbus RTU" transport = "serial" hardware = "built_in" port = "Terminal block TB4" connector = "TB4 three-position terminal block" adapter = "Isolated USB-to-RS-485 adapter, 2-wire half-duplex" cable = "Shielded twisted-pair RS-485 cable" parts = ["Isolated two-wire RS-485 adapter", "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 QST05 Remote Source=Serial, FUN10=node, FUN11=baud, FUN13=framing, and set FUN12 timeout to about 1 s."] 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.", "The reset/enable and local/remote hardwired inputs can override or inhibit network commands; verify their state before troubleshooting the bus."] source = "Benshaw 02-890034-01-02 MX2 User Manual, printed p. 18 and pp. 171-172 (TB4), pp. 121-122 (setup)" [[connection.methods.wiring]] adapter = "Adapter D+ / +" device = "TB4-1 B+" signal = "RS-485 data positive" required = true [[connection.methods.wiring]] adapter = "Adapter D- / -" device = "TB4-2 A-" signal = "RS-485 data negative" required = true [[connection.methods.wiring]] adapter = "Adapter signal ground / shield" device = "TB4-3 COM" signal = "Signal reference or shield drain" required = false [serial] baudrate = 19200 parity = "E" stopbits = 1 [monitor] status_word = { address = 20, bits = { 0 = "Ready", 1 = "Running", 2 = "UpToSpeed", 3 = "Alarm", 4 = "Fault", 5 = "Lockout" } } input_status = { address = 21, bits = { 0 = "Start", 1 = "DI1", 2 = "DI2", 3 = "DI3" } } alarm_status_1 = { address = 22, bits = { 0 = "A OL motor overload", 5 = "A10 phase rotation not ABC", 6 = "A11 phase rotation not CBA", 7 = "A12 low line frequency", 8 = "A13 high line frequency", 9 = "A14 phase rotation not single phase", 10 = "A15 phase rotation not three phase", 11 = "A21 low line L1-L2", 12 = "A22 low line L2-L3", 13 = "A23 low line L3-L1", 14 = "A24 high line L1-L2", 15 = "A25 high line L2-L3" } } alarm_status_2 = { address = 23, bits = { 0 = "A26 high line L3-L1", 1 = "A27 phase loss", 2 = "noL no line", 4 = "A31 overcurrent", 5 = "A34 undercurrent", 8 = "A37 current imbalance", 9 = "A38 ground fault", 10 = "A47 stack overtemperature", 12 = "A60 DI1", 13 = "A61 DI2", 14 = "A62 DI3" } } alarm_status_3 = { address = 24, bits = { 4 = "A71 analog input trip" } } lockout_status = { address = 25, bits = { 0 = "motor overload", 5 = "run interlock", 6 = "disconnect open", 7 = "stack overtemperature", 8 = "control power" } } motor_current = { address = 27, unit = "A" } l1_current = { address = 28, unit = "A" } l2_current = { address = 29, unit = "A" } l3_current = { address = 30, unit = "A" } current_imbalance = { address = 31, scale = 0.1, unit = "%" } residual_ground_current = { address = 32, unit = "% FLA" } line_voltage = { address = 34, unit = "V" } l1_l2_voltage = { address = 35, unit = "V" } l2_l3_voltage = { address = 36, unit = "V" } l3_l1_voltage = { address = 37, unit = "V" } motor_thermal = { address = 38, unit = "%" } power_factor = { address = 39, scale = 0.01, signed = true } active_power = { address = 40, words = 2, word_order = "low_first", unit = "W" } energy = { address = 46, words = 2, word_order = "low_first", unit = "kWh" } phase_order = { address = 48 } line_frequency = { address = 49, scale = 0.1, unit = "Hz" } analog_input = { address = 50, scale = 0.1, signed = true, unit = "%" } analog_output = { address = 51, scale = 0.1, unit = "%" } run_hours = { address = 52, unit = "h" } starts = { address = 54 } trutorque = { address = 55, unit = "%" } power_pct = { address = 56, unit = "%" } peak_starting_current = { address = 57, unit = "A" } last_start_duration = { address = 58, scale = 0.1, unit = "s" } motor_nominal_current = { address = 100, unit = "A" } # 40020 Starter Control: bit 0 Run/Stop, bit 1 Fault Reset, bit 3 Remote. # Bits 13-15 are remote relay 3/2/1 commands with inverted polarity # (0 = energize, 1 = de-energize). Hold all three high in every motor command. [control] command_register = 19 step_delay = 0.05 stop = [0xE008] run_fwd = [0xE008, 0xE009] reset = [0xE008, 0xE00A, 0xE008] [control.watchdog] backstop_requires_setup = true interval_ms = 250 fault = "F82 Modbus timeout fault" [running_check] register = 20 bit = 1 [faults] register = 26 history = [600, 601, 602, 603, 604, 605, 606, 607, 608] [faults.codes] 0 = "F00 no fault" 1 = "F01 UTS time limit expired" 2 = "F02 motor thermal overload trip" 3 = "F03 slow speed time limit expired" 10 = "F10 phase rotation error, not ABC" 11 = "F11 phase rotation error, not CBA" 12 = "F12 low line frequency" 13 = "F13 high line frequency" 14 = "F14 input power not single phase" 15 = "F15 input power not three phase" 21 = "F21 low line L1-L2" 22 = "F22 low line L2-L3" 23 = "F23 low line L3-L1" 24 = "F24 high line L1-L2" 25 = "F25 high line L2-L3" 26 = "F26 high line L3-L1" 27 = "F27 phase loss" 28 = "F28 no line" 30 = "F30 instantaneous overcurrent" 31 = "F31 overcurrent" 34 = "F34 undercurrent" 37 = "F37 current imbalance" 38 = "F38 ground fault" 39 = "F39 no current at run" 40 = "F40 shorted / open SCR" 41 = "F41 current at stop" 46 = "F46 disconnect fault" 47 = "F47 stack protection fault" 48 = "F48 bypass / 2M contactor fault" 49 = "F49 inline contactor fault" 50 = "F50 control power low" 51 = "F51 current sensor offset error" 54 = "F54 BIST fault" 55 = "F55 BIST CT fault" 60 = "F60 external fault on DI1" 61 = "F61 external fault on DI2" 62 = "F62 external fault on DI3" 71 = "F71 analog input 1 level fault trip" 81 = "F81 keypad communication fault" 82 = "F82 Modbus timeout fault" 94 = "F94 CPU software fault" 95 = "F95 parameter EEPROM checksum fault" 96 = "F96 CPU error" 97 = "F97 CPU software watchdog" 98 = "F98 CPU error" 99 = "F99 program EPROM checksum fault" # No [rating]: the map exposes configured Motor FLA but no read-only frame # rating. Before restore, compare starter/CT nameplates manually. # Exclude 40190 CT ratio and 40199 Misc Commands (factory reset/reflash/BIST). [parameters] ranges = [[100, 188], [190, 197], [199, 199]]