# Property of PMA Electrical Solutions, LLC. # # Legacy Benshaw RediStart MX low-voltage soft-starter control. This is the # pre-MX2 family, not a generic profile for later MX2/MX3 controls. Benshaw # document 890023-01-02's conformity appendix explicitly enumerates RBX and # RCX power-section models; no other model prefix is claimed here. # # Source: Benshaw publication 890023-01-02, "RediStart Solid State Starter # Control, Software Manual" (2005), printed pages: # 43-44 Local Source / Remote Source # 78-79 Modbus timeout, baud and node address (P59-P61) # 137 Modbus RTU functions and identical input/holding maps # 148 Appendix B fault-code table # 151-160 Appendix D register map and control-word semantics # 147 RBX/RCX model list in the declaration of conformity # # ADDRESSING: printed p. 137 explicitly identifies Motor FLA as input 30050 / # holding 40050 in its worked explanation (the later Appendix D map places the # actual Motor FLA at 30101/40101). The two address spaces share offsets. This # profile uses FC03 holding registers, with 0-based address = 4xxxx - 40001. # # DRIVE-SIDE SETUP: configure the active Local or Remote Source = Serial. If a # digital input is assigned Local/Remote, that input overrides command bit 3. # P61 defaults node 1, P60 defaults 9600 baud, and P59 timeout defaults Off. # The manual does not state parity or stop-bit framing. This profile therefore # makes no vendor-default [serial] claim; the app's 8N1 fallback is unsourced # for this control and must be confirmed on the installed unit before use. # # START and reset require 0->1 edges (p. 160). A soft starter has no speed # reference, and this map has no reverse command; both are omitted. Enable a # short P59 timeout before network control: with P59 Off the motor keeps running # after communication loss, while a configured timeout declares F82 and stops. name = "Benshaw RediStart MX (legacy RBX/RCX)" vendor = "Benshaw" device_type = "soft_starter" verified = false probe_register = 20 [connection] summary = "The legacy MX has a built-in, 2500 V optically isolated Modbus RTU slave port on TB2 terminals SA-, SB+, SCOM, and SHLD." warnings = [] [[connection.methods]] id = "tb2_modbus_slave" title = "Built-in TB2 Modbus RTU slave" transport = "serial" hardware = "built_in" port = "Terminal block TB2, Serial Comm. (Slave) terminals SA-, SB+, SCOM, and SHLD" connector = "TB2 control terminals" adapter = "Isolated USB-to-RS-485 adapter, two-wire half-duplex, with signal common" cable = "Two twisted-pair, shielded RS-485 cable, 100 to 120 ohm impedance and no more than 16 pF/ft capacitance; Benshaw examples are Belden 9842 and Alpha Wire 6412" parts = ["Isolated two-wire RS-485 adapter with signal-common terminal", "Two-pair shielded cable meeting Benshaw's 100 to 120 ohm and 16 pF/ft maximum specification"] steps = ["Lock out all line and control power, wait the equipment's specified discharge time, and verify the starter is de-energized before landing conductors.", "On TB2, use only the group labeled Serial Comm. (Slave): SA-, SB+, SCOM, and SHLD.", "Use one twisted pair for SA-/SB+ data and the other pair for the common conductor as specified by Benshaw; land the overall shield at SHLD.", "Install the JP2 termination jumper only when this unit is at a physical end of a long or high-speed RS-485 trunk and termination is required. JP2 places 120 ohms between SA- and SB+.", "Restore control power with the motor area clear, configure the active source, address, baud, and timeout, then verify read-only status before enabling remote commands."] setup = ["Set the active Local or Remote Source to Serial. Set P61 to a unique Modbus node address and P60 to the master's baud rate (maximum 19.2 kbaud).", "Set P59 to a nonzero communication timeout and validate its F82 stop behavior before remote control. The manual does not state parity or stop-bit framing, so confirm the installed control's framing rather than assuming the application's 8N1 fallback."] warnings = ["Do not use TB2 MA-, MB+, or MCOM. The manual marks that separate Serial Comm port Factory Use Only and not isolated.", "Do not reuse the later MX2/MX3 TB4 terminal names; this legacy RBX/RCX control uses TB2 SA-/SB+/SCOM/SHLD.", "With P59 set to Off, loss of Modbus traffic does not stop a running motor. Configure and test a nonzero timeout before network control.", "RS-485 A/B naming is inconsistent across adapter vendors. Match the explicit negative and positive polarity shown below."] source = "Benshaw 890023-01-02 RediStart MX Software Manual, printed p. 137 (two-pair cable specification and JP2 120-ohm termination), printed p. 142 Table 9 (TB2 SA-/SB+/SCOM/SHLD, RS-485 Modbus RTU and 2500 V optical isolation), printed pp. 78-79 (P59-P61 setup)" [[connection.methods.wiring]] adapter = "Adapter D- / A-" device = "TB2 SA-" signal = "RS-485 data negative" required = true [[connection.methods.wiring]] adapter = "Adapter D+ / B+" device = "TB2 SB+" signal = "RS-485 data positive" required = true [[connection.methods.wiring]] adapter = "Adapter signal common" device = "TB2 SCOM" signal = "RS-485 signal common" required = true [[connection.methods.wiring]] adapter = "Cable overall shield/drain" device = "TB2 SHLD" signal = "Chassis-grounded cable shield" required = true [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", 1 = "A10 phase rotation not ABC", 2 = "A11 phase rotation not CBA", 3 = "A12 low line frequency", 4 = "A13 high line frequency", 5 = "A14 phase rotation not single phase", 6 = "A15 phase rotation not three phase", 7 = "A21 low line L1-L2", 8 = "A22 low line L2-L3", 9 = "A23 low line L3-L1", 10 = "A24 high line L1-L2", 11 = "A25 high line L2-L3", 12 = "A26 high line L3-L1", 13 = "A27 phase loss", 14 = "noL no line" } } alarm_status_2 = { address = 23, bits = { 0 = "A31 overcurrent", 1 = "A34 undercurrent", 4 = "A37 current imbalance", 5 = "A38 ground fault", 6 = "A47 stack overload", 8 = "A71 analog input trip" } } lockout_status = { address = 24, bits = { 0 = "motor overload", 1 = "stack overload", 2 = "control power" } } motor_current = { address = 26, unit = "A" } l1_current = { address = 27, unit = "A" } l2_current = { address = 28, unit = "A" } l3_current = { address = 29, unit = "A" } current_imbalance = { address = 30, scale = 0.1, unit = "%" } residual_ground_current = { address = 31, unit = "% FLA" } line_voltage = { address = 32, unit = "V" } l1_l2_voltage = { address = 33, unit = "V" } l2_l3_voltage = { address = 34, unit = "V" } l3_l1_voltage = { address = 35, unit = "V" } motor_thermal = { address = 36, unit = "%" } power_factor = { address = 37, scale = 0.01, signed = true } active_power = { address = 38, words = 2, word_order = "low_first", unit = "W" } energy = { address = 44, words = 2, word_order = "low_first", unit = "kWh" } phase_order = { address = 46 } line_frequency = { address = 47, scale = 0.1, unit = "Hz" } analog_input = { address = 48, scale = 0.1, signed = true, unit = "%" } analog_output = { address = 49, scale = 0.1, unit = "%" } run_hours = { address = 50, unit = "h" } starts = { address = 52 } trutorque = { address = 53, unit = "%" } power_pct = { address = 54, unit = "%" } motor_nominal_current = { address = 100, unit = "A" } [control] command_register = 19 step_delay = 0.05 # Bits 13-15 command relays 3/2/1 with inverted polarity. Holding them high # keeps every relay configured for remote control de-energized. 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 = 25 history = [300, 301, 302, 303, 304, 305, 306, 307, 308] [faults.codes] 0 = "F00 no fault" 1 = "F01 UTS time limit expired" 2 = "F02 motor thermal overload trip" 3 = "F03 jog 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" 47 = "F47 stack protection fault" 48 = "F48 bypass contactor fault" 50 = "F50 control power low" 51 = "F51 current sensor offset error" 52 = "F52 burden switch error" 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 SPI 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]. Exclude 40179 CT ratio, 40187 Custom Stack Enable, 40188 # Starter Model Number and 40189 Miscellaneous Commands (factory reset, # reflash and meter-reset operations) from clone/restore. [parameters] ranges = [[100, 172], [176, 177], [179, 185]]