# Property of PMA Electrical Solutions, LLC. # # Schneider Altistart 48 (ATS48) SOFT STARTER — not a VFD. Common on quarry # conveyors and crushers, and on pump-station motors that need inrush limiting # but no speed control. # # Register values below are taken from the official ATS48 Modbus manual # (Schneider doc 1623736), including the DRIVECOM command/status tables and the # full LFT fault list. The manual's own worked example confirms the addressing: # it reads "W4023 to W4026 (16#0FB7 to 16#0FBA)", and 0x0FB7 = 4023, so a # Schneider W-number IS the 0-based Modbus address. No +/-1 ambiguity here. # # Physical: the ATS48 comms port is an **RJ45** socket. Cable VW3A8306 is # RJ45 -> SUB-D 15 where the SUB-D end goes to a TSXSCA62 subscriber box, # NOT to the starter. The unit has built-in 4.7k pulldown biasing. # # Drive-side setup: W2292 baud (default 8 = 19200), W2293 format (default # 4 = 8N1), W2295 line timeout. To command over Modbus the **STOP input must # be tied to +24 VDC** or the starter will refuse to run. # # Watchdog: W2295 is adjustable 0.1...60.0 s and ships at raw 50 = 5.0 s. # Go quiet past that setting and it faults SLF (LFT = 5), drops to LOCAL and # clears CMD/CMI. Monitoring-only polling is fine; sustained control needs a # keepalive inside the commissioned timeout. name = "Schneider Altistart 48 (soft starter)" vendor = "Schneider Electric" device_type = "soft_starter" verified = false probe_register = 458 # ETA status word [serial] baudrate = 19200 parity = "N" stopbits = 1 [monitor] # ETA (W458), DRIVECOM profile. Bit 5 is active LOW; bit 4 is active HIGH # (1 = no power / NLP). status_word = { address = 458, bits = { 0 = "ReadyToSwitchOn", 1 = "SwitchedOn", 2 = "OperationEnabled", 3 = "Malfunction", 4 = "NoPower", 5 = "QuickStop_n", 6 = "SwitchOnDisabled", 7 = "Alarm", 9 = "LineModeControl" } } ext_status = { address = 459 } # ETI motor_current = { address = 4062, scale = 0.1, unit = "A" } # LCR motor_torque = { address = 4063, unit = "%" } # LTR, 100% = rated motor_thermal = { address = 4064, unit = "%" } # THR, 100% = rated phase_rotation = { address = 4065 } # PHE 0=none 1=123 2=321 cos_phi = { address = 4067, scale = 0.01 } # COS run_hours = { address = 4068, unit = "h" } # RNT active_power_pct = { address = 4072, unit = "%" } # LPR active_power_kw = { address = 4073, unit = "kW" } # LAP # In, the configured MOTOR nominal current (writable setting, not the starter's # frame rating — that is ICL at W4503, see [rating]). motor_nominal_current = { address = 4026, scale = 0.1, unit = "A" } # DRIVECOM state machine on CMD (W400), identical in shape to the Altivars: # shutdown (6) -> switch on (7) -> enable operation (15). # A soft starter has no speed reference and no reverse, so neither is defined: # `control speed` and `control run_rev` will refuse rather than misbehave. [control] command_register = 400 step_delay = 0.05 stop = [0x0006] run_fwd = [0x0006, 0x0007, 0x000F] reset = [0x0080, 0x0006] # LINE mode needs traffic inside the configured W2295 timeout (0.1...60.0 s). # Go quiet and the starter faults SLF, drops to LOCAL and clears CMD — after # which it ignores Modbus stop commands until someone resets it at the panel. # A run command without a keepalive is therefore worse than useless here. [control.watchdog] interval_ms = 50 fault = "SLF serial link fault" # ATS48 knows its own frame size. Compare against the target before restoring # a config: cloning a 105 A starter's settings onto a 17 A unit is a fire. [rating] register = 4503 # ICL, the starter's own frame rating (read-only) scale = 0.1 unit = "A" label = "starter rating" [running_check] register = 458 bit = 2 # ETA bit 2 = Operation enabled # LFT (W4200) last fault; DP1..DP5 hold the five previous faults. [faults] register = 4200 history = [4203, 4206, 4209, 4212, 4215] [faults.codes] 0 = "NOF no fault" 1 = "INH protections/faults inhibited" 2 = "INF internal fault" 3 = "OCF short circuit / overcurrent" 4 = "PIF phase inversion" 5 = "SLF serial link fault" 6 = "ETF external fault" 7 = "STF start time too long" 8 = "USF undervoltage" 9 = "PHF phase loss, line or motor" 10 = "OHF starter thermal fault" 11 = "LRF locked rotor" 12 = "OLF motor thermal fault" 13 = "FRF line frequency fault" 14 = "ULF motor underload" 15 = "EEF EEPROM fault" 16 = "OLC current overload" 17 = "CFI invalid configuration" 18 = "OTF motor thermal fault via PTC probes" 20 = "CFF invalid configuration, factory reset required" 21 = "CLF control supply loss" # Settings/configuration block only. Deliberately stops short of the read-only # monitoring registers at 4062-4073, which would NAK on a restore. # W4059-W4061 are RESERVED and the manual says they must never be written. # W4051 (R2) is read-only. W4031/W4035/W4040 are reserved holes. The last # real setting is W4058. [parameters] ranges = [[4022, 4030], [4032, 4034], [4036, 4039], [4041, 4050], [4052, 4058]] [connection] summary = "Use the ATS48 built-in RS-485 Modbus socket (connector 1); no option card is required." warnings = ["Lock out line and control power before connecting the cable.", "The ATS48 uses the older literal labels D(B) on pin 4 and D(A) on pin 5; do not substitute D1/D0 labels from another Altivar family.", "The STOP input must be tied to +24 VDC before the starter will accept a Modbus run command.", "Keep the communications cable at least 30 cm from power wiring."] [[connection.methods]] id = "built_in_rs485" title = "Built-in RS-485 connector 1" transport = "serial" hardware = "built_in" port = "Front communications connector 1" connector = "RJ45; pin 4 D(B), pin 5 D(A), pin 8 0 V; pin 7 is 10 V output" adapter = "Isolated USB-to-RS-485 adapter" cable = "Schneider VW3A8306D30 RJ45-to-stripped lead, or an equivalently pinned shielded two-pair cable" parts = ["Isolated USB-to-RS-485 adapter", "VW3A8306D30 or documented equivalent", "120 ohm + 1 nF terminators at both bus ends"] steps = ["Lock out line and control power and verify zero voltage.", "Locate communications connector 1 and plug in the RJ45 end of the Modbus lead.", "Land D(B), D(A), and 0 V on the adapter exactly as shown below.", "Bond the shield at the equipment ground points, route it away from power conductors, and terminate both ends of the line.", "Restore control power with the motor inhibited and verify a status read before enabling control."] setup = ["Set W2292 baud to match the master (factory 19200).", "Set W2293 frame format to match this profile (factory 8-N-1).", "Set W2295 communication timeout and keep the application keepalive shorter than it.", "Hold the hardwired STOP input at +24 VDC before attempting a run."] warnings = ["Do not connect the adapter to pin 7; it is a 10 V supply.", "Use the ATS48 D(B)/D(A) markings exactly; the cached French manual does not relabel these pins as D1/D0."] source = "Schneider 1623736.03/04 (2013), pp. 6-8 and 17-18." [[connection.methods.wiring]] adapter = "RS-485 conductor corresponding to drive D(B)" device = "RJ45 pin 4 — D(B)" signal = "RS-485 D(B)" [[connection.methods.wiring]] adapter = "RS-485 conductor corresponding to drive D(A)" device = "RJ45 pin 5 — D(A)" signal = "RS-485 D(A)" [[connection.methods.wiring]] adapter = "COM / signal common" device = "RJ45 pin 8 — 0 V" signal = "Signal reference"