# Property of PMA Electrical Solutions, LLC. # # WEG SSW900 soft starter over Modbus RTU through the SSW900-CRS485-W # accessory installed in SLOT 1. The SSW900 also permits the accessory in # SLOT 2, but that uses command Net ID 686; this profile deliberately claims # Slot 1 only so a command can never be sent to the wrong ownership channel. # # Sources — WEG primary documentation, firmware 1.4X: # 10004628707 / 04, "Modbus RTU SSW900-CRS485-W User's Guide": # status and Slot 1 command words ......................... pp. 14-16 # serial defaults and timeout action ...................... pp. 20-22 # zero-offset Net-ID addressing and command examples ...... pp. 23-28 # parameter/Net-ID map .................................... pp. 33-70 # 10003989140 / 05, "SSW900 Programming Manual": # complete fault/alarm table .............................. pp. 11-19 # # ADDRESSING: each parameter's Net ID is its 0-based holding-register address. # Multiword values place the LOW 16-bit word first (10004628707 p. 27). # # DRIVE-SIDE SETUP: install SSW900-CRS485-W in Slot 1. Select Slot 1 as the # active command source with C3.1 = 9 or 10 and C3.2/C3.3 = 4 as appropriate. # C8.2 selects address, rate and framing. The device can ACK writes to 685 # while ignoring Start/Stop when another source owns the command. # # LINK LOSS: C8.2.5.3 defaults 0.0 (disabled). C8.2.5.1 defaults Alarm A128 # and C8.2.5.2 defaults General Disable, but neither acts until the timeout is # nonzero. Commission and test these settings before arming serial control. # # No speed reference and no reverse sequence are provided. SSW900 has a # direction bit for systems with external reversal hardware; treating that as # an ordinary VFD reverse command would be unsafe. name = "WEG SSW900 (RS-485 Slot 1)" vendor = "WEG" device_type = "soft_starter" verified = false probe_register = 680 [connection] summary = "Install SSW900-CRS485-W in Slot 1 and wire its X20 four-position connector." warnings = ["Isolate line and control power before fitting the accessory.", "This profile deliberately assumes Slot 1; moving the module to Slot 2 changes the command Net ID."] [[connection.methods]] id = "crs485_w_slot1" title = "SSW900-CRS485-W in Slot 1" transport = "serial" hardware = "option" port = "X20 pins 1 +B, 2 -A, 3 C, 4 protective earth" connector = "Accessory connector X20" adapter = "Isolated USB-to-RS-485 adapter" cable = "Shielded industrial twisted pair, 24 AWG minimum, optional reference conductor" parts = ["SSW900-CRS485-W accessory", "Small insulated screwdriver", "120 ohm endpoint termination via accessory switches"] wiring = [{ adapter = "D+ / B+", device = "X20-1 +B", signal = "RS-485 positive" }, { adapter = "D- / A-", device = "X20-2 -A", signal = "RS-485 negative" }, { adapter = "COM/GND", device = "X20-3 C", signal = "Isolated 0 V reference", required = false }, { adapter = "Cable shield", device = "X20-4 protective earth", signal = "Shield bond", required = false }] steps = ["Isolate the starter and install SSW900-CRS485-W in Slot 1.", "Wire X20-1 positive and X20-2 negative; use X20-3 for the optional reference and X20-4 for protective-earth/shield bonding.", "Set both accessory termination switches on only at a bus end and close the starter.", "Restore power and select the computer adapter."] setup = ["Select Slot 1 with C3.1/C3.2/C3.3 as appropriate and configure the C8.2 address/rate/framing settings.", "Set nonzero C8.2.5.3 timeout and verify the C8.2.5.1/C8.2.5.2 response actions."] warnings = ["The factory communication timeout is disabled.", "Do not use this Slot 1 command profile with the accessory installed in Slot 2."] source = "WEG 10004628707/04, pp. 10-12 and 20-28" # C8.2.3 default 1 = 19200; C8.2.4 default 1 = 8 data, even, 1 stop. [serial] baudrate = 19200 parity = "E" stopbits = 1 [monitor] status_word = { address = 680, bits = { 0 = "MotorRunning", 1 = "GeneralEnabled", 2 = "JOG", 3 = "InitialTest", 4 = "Accelerating", 5 = "FullVoltage", 6 = "BypassClosed", 7 = "Decelerating", 8 = "Remote", 9 = "Braking", 10 = "Reversing", 11 = "Reverse", 12 = "StartDelay", 13 = "RestartDelay", 14 = "Alarm", 15 = "Fault" } } motor_current_percent = { address = 2, scale = 0.1, unit = "%" } motor_current = { address = 24, words = 2, word_order = "low_first", scale = 0.1, unit = "A" } line_voltage = { address = 4, scale = 0.1, unit = "V" } output_voltage = { address = 7, scale = 0.1, unit = "V" } line_frequency = { address = 17, scale = 0.1, unit = "Hz" } motor_torque = { address = 9, scale = 0.1, unit = "%" } [control] command_register = 685 # S5.2.5, Slot 1 only step_delay = 0.05 # Bit0 Start/Stop, bit1 General Enable, bit4 Remote; direction remains CW. stop = [0x0012] run_fwd = [0x0012, 0x0013] # Bit7 reset acts on a 0->1 transition. Run remains clear throughout. reset = [0x0012, 0x0092, 0x0012] [control.watchdog] interval_ms = 50 fault = "A128/F128 RS-485 serial communication timeout (C8.2.5)" backstop_requires_setup = true [running_check] register = 680 bit = 0 # D1.1.1 Actual Fault, Net ID 90. WEG does not assign Net IDs to the structured # D1.2 history records, so no history addresses are invented here. [faults] register = 90 [faults.codes] 0 = "No active fault" 1 = "F001 motor supply voltage imbalance" 2 = "F002 motor supply undervoltage" 3 = "F003 phase loss at motor start" 5 = "F005 motor overload thermal class" 10 = "F010 CCI fault" 15 = "F015 motor not connected" 16 = "F016 motor supply overvoltage" 18 = "F018 wrong motor connection" 19 = "F019 power-section short circuit with motor off" 20 = "F020 power-section short circuit with motor on" 32 = "F032 DI6 motor overtemperature" 40 = "F040 CCI-CCM serial communication fault" 42 = "F042 CPU watchdog error" 51 = "F051 SCR undertemperature" 54 = "F054 SCR overtemperature" 57 = "F057 R-U SCR fault" 58 = "F058 S-V SCR fault" 59 = "F059 T-W SCR fault" 61 = "F061 minimum time between starts not elapsed" 62 = "F062 start overtime" 63 = "F063 locked rotor" 64 = "F064 SCR overload" 65 = "F065 motor undercurrent" 66 = "F066 motor overcurrent" 67 = "F067 RST/123 phase reversal" 68 = "F068 RTS/132 phase reversal" 69 = "F069 incorrect control-supply voltage" 70 = "F070 control-circuit undervoltage" 71 = "F071 bypass contact open / not closed" 72 = "F072 overcurrent before bypass" 74 = "F074 motor-current imbalance" 75 = "F075 frequency out of range" 76 = "F076 bypass undercurrent" 77 = "F077 bypass contact closed / not opened" 78 = "F078 motor undertorque" 79 = "F079 motor overtorque" 80 = "F080 motor underpower" 81 = "F081 motor overpower" 82 = "F082 Slot 1 incompatible accessory" 83 = "F083 Slot 2 incompatible accessory" 84 = "F084 self-diagnostic fault" 85 = "F085 identical accessories in Slot 1 and Slot 2" 86 = "F086 configured Slot 1 accessory absent" 87 = "F087 configured Slot 2 accessory absent" 88 = "F088 Slot 1 accessory connection fault" 89 = "F089 Slot 2 accessory connection fault" 91 = "F091 external fault" 99 = "F099 invalid current offset" 101 = "F101 motor overtemperature channel 1" 102 = "F102 motor overtemperature channel 2" 103 = "F103 motor overtemperature channel 3" 104 = "F104 motor overtemperature channel 4" 105 = "F105 motor overtemperature channel 5" 106 = "F106 motor overtemperature channel 6" 109 = "F109 motor-temperature channel 1 broken cable" 110 = "F110 motor-temperature channel 2 broken cable" 111 = "F111 motor-temperature channel 3 broken cable" 112 = "F112 motor-temperature channel 4 broken cable" 113 = "F113 motor-temperature channel 5 broken cable" 114 = "F114 motor-temperature channel 6 broken cable" 117 = "F117 motor-temperature channel 1 short circuit" 118 = "F118 motor-temperature channel 2 short circuit" 119 = "F119 motor-temperature channel 3 short circuit" 120 = "F120 motor-temperature channel 4 short circuit" 121 = "F121 motor-temperature channel 5 short circuit" 122 = "F122 motor-temperature channel 6 short circuit" 127 = "F127 HMI communication timeout" 128 = "F128 RS-485 serial communication timeout" 129 = "F129 Anybus offline" 130 = "F130 Anybus access fault" 131 = "F131 Anybus Modbus TCP timeout" 132 = "F132 Anybus master idle" 133 = "F133 CAN interface without power" 134 = "F134 CAN bus off" 135 = "F135 CANopen offline" 136 = "F136 DeviceNet master idle" 137 = "F137 DeviceNet connection timeout" 140 = "F140 delta-inside motor connection in test mode" 147 = "F147 EtherNet/IP communication offline" 149 = "F149 Modbus TCP timeout" 708 = "F708 SoftPLC application not running" 750 = "F750 SoftPLC user fault" 751 = "F751 SoftPLC user fault" 752 = "F752 SoftPLC user fault" 753 = "F753 SoftPLC user fault" 754 = "F754 SoftPLC user fault" 755 = "F755 SoftPLC user fault" 756 = "F756 SoftPLC user fault" 757 = "F757 SoftPLC user fault" 758 = "F758 SoftPLC user fault" 759 = "F759 SoftPLC user fault" 760 = "F760 SoftPLC user fault" 761 = "F761 SoftPLC user fault" 762 = "F762 SoftPLC user fault" 763 = "F763 SoftPLC user fault" 764 = "F764 SoftPLC user fault" 765 = "F765 SoftPLC user fault" 766 = "F766 SoftPLC user fault" 767 = "F767 SoftPLC user fault" 768 = "F768 SoftPLC user fault" 769 = "F769 SoftPLC user fault" 770 = "F770 SoftPLC user fault" 771 = "F771 SoftPLC user fault" 772 = "F772 SoftPLC user fault" 773 = "F773 SoftPLC user fault" 774 = "F774 SoftPLC user fault" 775 = "F775 SoftPLC user fault" 776 = "F776 SoftPLC user fault" 777 = "F777 SoftPLC user fault" 778 = "F778 SoftPLC user fault" 779 = "F779 SoftPLC user fault" 780 = "F780 SoftPLC user fault" 781 = "F781 SoftPLC user fault" 782 = "F782 SoftPLC user fault" 783 = "F783 SoftPLC user fault" 784 = "F784 SoftPLC user fault" 785 = "F785 SoftPLC user fault" 786 = "F786 SoftPLC user fault" 787 = "F787 SoftPLC user fault" 788 = "F788 SoftPLC user fault" 789 = "F789 SoftPLC user fault" 790 = "F790 SoftPLC user fault" 791 = "F791 SoftPLC user fault" 792 = "F792 SoftPLC user fault" 793 = "F793 SoftPLC user fault" 794 = "F794 SoftPLC user fault" 795 = "F795 SoftPLC user fault" 796 = "F796 SoftPLC user fault" 797 = "F797 SoftPLC user fault" 798 = "F798 SoftPLC user fault" 799 = "F799 SoftPLC user fault" # [parameters] is intentionally absent. The hierarchical SSW900 table mixes # write commands, Slot ownership, network identity, and configuration across # the Net-ID space; cloning requires a future explicit per-parameter allowlist.