# Property of PMA Electrical Solutions, LLC. # # WEG SSW-06 soft starter over Modbus RTU. Covers SSW-06 only, using its # optional internal KRS-485 board (WEG 10927208) or external MIW-02 converter. # No register or control-word behavior is borrowed from another SSW family. # # Sources — WEG primary documentation: # 0899.5731 / 04, "Soft-Starter SSW-06 Serial Communication Manual": # serial setup and link-loss action ...................... pp. 7-9 # RS-485 hardware options ................................ pp. 10-11 # status/command basic variables and command mask ........ pp. 12-16 # zero-offset Modbus register mapping .................... pp. 18-20 # 0899.5854 / 10, "Soft-Starter SSW-06 User's Manual": # reading parameters P001-P020 ........................... pp. 88-92 # complete fault table ................................... pp. 163-169 # # ADDRESSING: parameter Pnnn is holding-register address nnn; basic variable # Vnn is address 5000+nn. These are already 0-based protocol addresses. # # DRIVE-SIDE SETUP: P220 = 6 (Serial, default remote) and P230 = 2 (Serial) # for remote serial control; alternatively P220 = 5 and P229 = 2 for local. # P308 selects the node and P312 selects framing/rate. The drive can ACK V03 # writes while ignoring them unless the active command source is Serial. # # CONTROL SAFETY: V03 is not a plain command word. Its high byte is a mask; # each high-byte bit authorizes the corresponding low-byte command. The words # below mask Start/Stop, General Enable, Direction and LOC/REM. Reset also # masks bit 7 and is framed low-high-low because the manual specifies a 0->1 # reset transition. run_rev is intentionally absent: direction reversal on a # soft starter requires application-specific external power circuitry. # # LINK LOSS: P314 defaults to zero (disabled), and P313 defaults to 0 (take no # action), so a silent master can leave the motor energized. Commission both: # set P314 to a nonzero timeout and P313 = 1 (ramp stop) or 2 (general disable) # before enabling serial control. name = "WEG SSW-06" vendor = "WEG" device_type = "soft_starter" verified = false probe_register = 5000 # V00 model identifier; SSW-06 returns fixed value 15 [connection] summary = "Install the internal SSW-06 RS-485 kit 10927208. WEG also documents external MIW-02 conversion, but its cable-side pinout is in a separate manual not present in the cache." warnings = ["Lock out both control and line power before installing the internal board.", "Do not invent MIW-02 pin wiring from the SSW X2 supply/control pins; use the MIW-02 manual if that legacy path is encountered."] [[connection.methods]] id = "krs485_10927208" title = "Internal RS-485 kit 10927208" transport = "serial" hardware = "option" port = "Kit terminals 1 Data A(+), 2 Data B(-), 3 reference" connector = "Internal kit terminal connector" adapter = "Isolated USB-to-RS-485 adapter" cable = "Shielded twisted pair with optional reference conductor" parts = ["WEG RS-485 kit 10927208", "Small insulated screwdriver", "Kit S1 endpoint termination"] wiring = [{ adapter = "D+ / B+", device = "1, A / Data +", signal = "RS-485 positive" }, { adapter = "D- / A-", device = "2, B / Data -", signal = "RS-485 negative" }, { adapter = "COM/GND", device = "3, reference", signal = "RS-485 reference", required = false }] steps = ["Isolate the starter and install kit 10927208 on control-board connector XC8.", "Wire positive to terminal 1 and negative to terminal 2; use terminal 3 only for the optional reference.", "Set both S1 termination switches on only at a bus end, bond the shield to the starter frame, and close the unit.", "Restore power and select the computer adapter."] setup = ["Set P308 node address and P312 serial framing/rate.", "Set P220/P230 for remote Serial control (or P220/P229 for local Serial) and commission nonzero P314 plus a safe P313 action."] warnings = ["P313 and P314 default ineffective; a silent master can otherwise leave the starter energized."] source = "WEG 0899.5731/04, pp. 10-11 and 7-16" # P312 factory value 1 = 9600 baud, no parity; RTU uses two stop bits when # parity is absent (0899.5731 pp. 7, 17). [serial] baudrate = 9600 parity = "N" stopbits = 2 [monitor] status_word = { address = 5001, bits = { 0 = "MotorRunning", 1 = "GeneralEnabled", 2 = "JOG", 3 = "Accelerating", 4 = "CurrentLimit", 5 = "FullVoltage", 6 = "NoAlarm", 7 = "Decelerating", 8 = "Remote", 9 = "DynamicBraking", 10 = "Reversing", 11 = "CCW", 12 = "BypassClosed", 14 = "PowerPresent", 15 = "Fault" } } starter_current = { address = 1, scale = 0.1, unit = "%" } # P001, % of SSW rated current motor_current_percent = { address = 2, scale = 0.1, unit = "%" } # P002, % of configured motor current line_voltage = { address = 4, unit = "V" } # P004, three-phase true-RMS average line_frequency = { address = 5, scale = 0.1, unit = "Hz" } # P005 output_voltage = { address = 7, unit = "V" } # P007, true-RMS average motor_torque = { address = 9, scale = 0.1, unit = "%" } # P009, requires correct P400-P406 motor_thermal = { address = 50, unit = "%" } # P050; 250 is the protection trip point [control] command_register = 5003 step_delay = 0.05 # 0x1B00 masks low bits 0,1,3,4. Low byte 0x12 = stopped, general # enabled, CW, remote; 0x13 adds Run. stop = [0x1B12] run_fwd = [0x1B12, 0x1B13] # 0x8000 additionally masks Reset; bit 7 is pulsed while Run stays clear. reset = [0x9B12, 0x9B92, 0x9B12] [control.watchdog] interval_ms = 250 fault = "E28 serial reception timeout (P314; action selected by P313)" backstop_requires_setup = true [running_check] register = 5001 bit = 0 # P020 is current equipment fault; serial communication E28-E30 are expressly # not reported there. P014-P019 are the six prior equipment faults. [faults] register = 20 history = [14, 15, 16, 17, 18, 19] [faults.codes] 0 = "No active equipment fault" 3 = "E03 power-section undervoltage / phase loss or imbalance" 4 = "E04 soft-starter overtemperature" 5 = "E05 motor overload" 6 = "E06 external fault" 10 = "E10 parameter-copy error" 11 = "E11 ground fault" 15 = "E15 motor not connected" 16 = "E16 overvoltage" 18 = "E18 wrong motor connection" 19 = "E19 short circuit in SSW power section" 24 = "E24 programming error" 28 = "E28 serial telegram timeout (not exposed by P020)" 29 = "E29 fieldbus inactive" 30 = "E30 fieldbus communication-board access error" 31 = "E31 keypad connection fault" 32 = "E32 motor overtemperature (DI6 PTC)" 33 = "E33 motor overtemperature channel 1" 34 = "E34 motor overtemperature channel 2" 35 = "E35 motor overtemperature channel 3" 36 = "E36 motor overtemperature channel 4" 37 = "E37 motor overtemperature channel 5" 39 = "E39 PT106 optional board absent" 41 = "E41 power-on self-diagnosis fault" 43 = "E43 motor-temperature channel 1 broken cable" 44 = "E44 motor-temperature channel 2 broken cable" 45 = "E45 motor-temperature channel 3 broken cable" 46 = "E46 motor-temperature channel 4 broken cable" 47 = "E47 motor-temperature channel 5 broken cable" 48 = "E48 motor-temperature channel 1 short circuit" 49 = "E49 motor-temperature channel 2 short circuit" 50 = "E50 motor-temperature channel 3 short circuit" 51 = "E51 motor-temperature channel 4 short circuit" 52 = "E52 motor-temperature channel 5 short circuit" 57 = "E57 R-U power-module SCR failure" 58 = "E58 S-V power-module SCR failure" 59 = "E59 T-W power-module SCR failure" 62 = "E62 start exceeded current/torque-limit time" 63 = "E63 locked rotor at end of start" 65 = "E65 motor undercurrent at full voltage" 66 = "E66 motor overcurrent at full voltage" 67 = "E67 wrong phase sequence at start" 70 = "E70 electronics-supply undervoltage" 71 = "E71 bypass contact open" 72 = "E72 overcurrent before bypass closing" 74 = "E74 phase-current imbalance" 75 = "E75 line frequency out of range" 76 = "E76 undercurrent before bypass closing" 77 = "E77 bypass contact closed" 78 = "E78 motor undertorque" 79 = "E79 motor overtorque" 80 = "E80 motor underpower" 81 = "E81 motor overpower" 85 = "E85 SoftPLC application absent" 86 = "E86 SoftPLC user fault" 87 = "E87 SoftPLC user fault" 88 = "E88 SoftPLC user fault" 89 = "E89 SoftPLC user fault" # [parameters] is intentionally absent. The legacy manual exposes command, # setup-mode and communications parameters in the same broad numeric regions # as ordinary configuration; a safe clone allowlist needs a separate audited # per-parameter pass and must not be guessed from contiguous ranges.