# Property of PMA Electrical Solutions, LLC. # # Schneider Altivar ATV320 over embedded Modbus RTU (RJ45). # # Corrected against Schneider NVE41308 (ATV320 Modbus manual) and NVE41316 # (communication parameters / enumerations). An earlier revision carried the # LFT fault table of a different Altivar family — 11 of 21 codes were wrong, # including code 9, which is OCF overcurrent and was labelled "auto-tuning # fault" — and pointed "fault history" at ATR/TAR, which are WRITABLE # auto-restart configuration registers. # # Cross-family claims (ATV340 / ATV600 / ATV12 / 312 / 32) have been REMOVED # as unverified; register meanings do drift across the range. # # Drive-side setup: Fr1 = Modbus, Cd1 = Modbus, Add node address, tbr baud, # tFo format (8E1 default). NVE41308 pp.33,76: tto ships at 10 s and SLL ships # Freewheel, producing SLF1 on interruption; the keepalive below is inside it. name = "Schneider Altivar ATV320" vendor = "Schneider Electric" device_type = "vfd" verified = false probe_register = 3201 [serial] baudrate = 19200 parity = "E" stopbits = 1 [monitor] # ETA, the CiA402 status word. These bits are standardised, not vendor-specific. status_word = { address = 3201, bits = { 0 = "ReadyToSwitchOn", 1 = "SwitchedOn", 2 = "OperationEnabled", 3 = "Fault", 4 = "VoltageEnabled", 5 = "QuickStop", 6 = "SwitchOnDisabled", 7 = "Warning", 9 = "Remote", 10 = "TargetReached", 11 = "InternalLimit", 15 = "Reverse" } } output_frequency = { address = 3202, signed = true, scale = 0.1, unit = "Hz" } # RFR motor_current = { address = 3204, scale = 0.1, unit = "A" } # LCR motor_torque = { address = 3205, signed = true, scale = 0.1, unit = "%" } # OTR ext_status = { address = 3206 } # ETI, NOT power mains_voltage = { address = 3207, scale = 0.1, unit = "V" } # ULN drive_thermal_state = { address = 3209, unit = "%" } # THD (drive, not motor) motor_power = { address = 3211, signed = true, unit = "%" } # OPR motor_thermal_state = { address = 9630, unit = "%" } # THR command_word = { address = 8501 } speed_setpoint = { address = 8602, signed = true, unit = "rpm" } # CiA402 state machine: shutdown (6) -> switch on (7) -> enable operation (15). [control] command_register = 8501 speed_register = 8502 # LFR, frequency setpoint in 0.1 Hz speed_scale = 0.1 speed_unit = "Hz" max_ref = 599.0 step_delay = 0.05 stop = [0x0006] run_fwd = [0x0006, 0x0007, 0x000F] run_rev = [0x0006, 0x0007, 0x080F] # bit 11 reverses on the ATV profile reset = [0x0000, 0x0080, 0x0006] [[control.preconditions]] register = 8504 mask = 0x0200 expected = 0 message = "CMI bit 9 must be clear so LFR/RFR use the documented 0.1 Hz scale" [control.watchdog] interval_ms = 50 fault = "SLF1 Modbus communication interruption" [running_check] register = 3201 bit = 2 [direction_check] register = 3201 bit = 15 reverse_when_set = true # LFT last fault; history is DP0-DP8 at 7200-7208. # (7122/7123 are ATR/TAR auto-restart CONFIG and must not be read as history.) [faults] register = 7121 history = [7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208] [faults.codes] 0 = "[No fault] (NOF) No fault saved" 2 = "[Control Eeprom] (EEF1) EEprom control fault" 3 = "[Incorrect config.] (CFF) Incorrect configuration" 4 = "[Invalid config.] (CFI) Invalid config parameters" 5 = "[Modbus com.] (SLF1) Modbus coms fault" 6 = "[int. com.link] (ILF) Com Internal link fault" 7 = "[Com. network] (CNF) Network fault" 8 = "[External flt-LI/Bit] (EPF1) External fault logic input" 9 = "[Overcurrent] (OCF) Overcurrent fault" 10 = "[Precharge] (CRF1) Precharge" 11 = "[Speed fdback loss] (SPF) Speed feedback loss" 12 = "[Load slipping] (ANF) Output speed <> ref" 16 = "[Drive overheat] (OHF) Drive overheating fault" 17 = "[Motor overload] (OLF) Motor overload fault" 18 = "[Overbraking] (OBF) DC bus overvoltage fault" 19 = "[Mains overvoltage] (OSF) Supply overvoltage fault" 20 = "[1 output phase loss] (OPF1) 1 motor phase loss fault" 21 = "[Input phase loss] (PHF) Supply phase loss fault" 22 = "[Undervoltage] (USF) Supply undervolt fault" 23 = "[Motor short circuit] (SCF1) Motor short circuit" 24 = "[Overspeed] (SOF) Motor overspeed fault" 25 = "[Auto-tuning ] (TNF) Auto-tuning fault" 26 = "[Rating error] (INF1) Rating error" 27 = "[PWR Calib.] (INF2) Incompatible control card" 28 = "[Int.serial link] (INF3) Internal coms link fault" 29 = "[Int.Mfg area] (INF4) Internal manu zone fault" 30 = "[Power Eeprom] (EEF2) EEprom power fault" 32 = "[Ground short circuit] (SCF3) Ground short circuit" 33 = "[3out ph loss] (OPF2) 3 motor phase loss fault" 34 = "[CAN com.] (COF) Comms fault CANopen" 35 = "[Brake control] (BLF) Brake control fault" 38 = "[External fault com.] (EPF2) External fault comms" 41 = "[Brake feedback] (BRF) Brake feedback fault" 42 = "[PC com.] (SLF2) PC coms fault" 44 = "[Torque/current lim] (SSF) Torque/current limit fault" 45 = "[HMI com.] (SLF3) HMI coms fault" 49 = "[LI6=PTC probe] (PTFL) LI6=PTC failed" 50 = "[PTC fault] (OTFL) LI6=PTC overheat fault" 51 = "[Internal- I measure] (INF9) Internal I measure fault" 52 = "[Internal-mains circuit] (INFA) Internal i/p volt circuit flt" 53 = "[Internal- th. sensor] (INFB) Internal temperature fault" 54 = "[IGBT overheat] (TJF) IGBT overheat fault" 55 = "[IGBT short circuit] (SCF4) IGBT short circuit fault" 56 = "[Motor short circuit] (SCF5) motor short circuit" 58 = "[Out. contact. stuck] (FCF1) Output cont close fault" 59 = "[Out. contact. open.] (FCF2) Output cont open fault" 64 = "[input contactor] (LCF) input contactor" 67 = "[IGBT desaturation] (HDF) IGBT desaturation" 68 = "[Internal-option] (INF6) Internal option fault" 69 = "[internal- CPU ] (INFE) internal- CPU" 71 = "[AI3 4-20mA loss] (LFF3) AI3 4-20mA loss" 73 = "[Cards pairing] (HCF) Cards pairing" 76 = "[Load fault] (DLF) Dynamic load fault" 77 = "[Bad conf] (CFI2) Interrupted config." 99 = "[Ch.sw. fault] (CSF) Channel switching fault" 100 = "[Pr.Underload.Flt] (ULF) Process Underlaod Fault" 101 = "[Proc.Overload Flt] (OLC) Process Overload Fault" 105 = "[Angle error] (ASF) Angle error" 107 = "[Safety fault] (SAFF) Safety fault" 108 = "[FB fault] (FBE) FB fault" 109 = "[FB stop flt.] (FBES) FB stop fault" [connection] summary = "Connect to the ATV320 embedded Modbus interface; no fieldbus option card is required for the documented serial path." warnings = ["Lock out the drive/starter before opening covers or moving switches.", "Keep communications cable at least 30 cm from line and motor wiring.", "Prove read-only communication with the motor inhibited before enabling network control."] [[connection.methods]] id = "built_in_rs485" title = "Built-in Modbus RJ45" transport = "serial" hardware = "built_in" port = "Built-in Modbus RJ45" connector = "RJ45; pin 4 D1, pin 5 D0, pin 8 Common; pin 7 is vendor peripheral power" adapter = "Isolated USB-to-RS-485 adapter" cable = "VW3A8306D30 RJ45-to-stripped Modbus lead or equivalently pinned shielded twisted-pair cable" parts = ["Isolated USB-to-RS-485 adapter", "Shielded twisted pair plus common conductor", "End termination for a multidrop bus"] steps = ["Lock out the equipment and verify it is de-energized.", "Locate Built-in Modbus RJ45.", "Wire D1, D0 and Common exactly as shown below; leave the peripheral-power pin unused.", "Route the communications cable at least 30 cm from power conductors and terminate only the two physical ends.", "Restore control power with the motor inhibited and verify a read before enabling control."] setup = ["Set Add, tbr and tFO to the node, baud and format in this profile.", "Set Fr1 = Modbus and Cd1 = Modbus.", "Keep CMI bit 9 clear and configure tto/SLL."] warnings = ["Do not connect adapter power to the vendor peripheral-power pin.", "Connect only the documented data and Common conductors."] source = "Schneider NVE41308.03, pp. 26-28, 33 and 76." [[connection.methods.wiring]] adapter = "D1 / B / +" device = "RJ45 pin 4 — D1" signal = "RS-485 D1" [[connection.methods.wiring]] adapter = "D0 / A / -" device = "RJ45 pin 5 — D0" signal = "RS-485 D0" [[connection.methods.wiring]] adapter = "COM / signal common" device = "RJ45 pin 8 — Common" signal = "Signal reference"