# Property of PMA Electrical Solutions, LLC. # # Schneider Easy Altivar ATV610, embedded Modbus serial. Exact-family sources: # EAV64395.03 (10/2024), CiA402 CMD/ETA pp.26-28, direct zero-based address # examples pp.38-43, defaults/timeout pp.58-61, SLF1 p.84; EAV64394 V1.6IE05 # communication workbook (06/2023) for addresses and scales. This is not the # ATV600/ATV630 map claim; ATV610 has its own publications and profile. # Configure the Modbus Control macro or route Fr1/Cd1 to embedded Modbus. name = "Schneider Easy Altivar ATV610" vendor = "Schneider Electric" device_type = "vfd" verified = false probe_register = 3201 [serial] baudrate = 19200 parity = "E" stopbits = 1 [monitor] status_word = { address = 3201, bits = { 0 = "READY_TO_SWITCH_ON", 1 = "SWITCHED_ON", 2 = "OPERATION_ENABLED", 3 = "FAULT", 4 = "VOLTAGE_ENABLED", 5 = "QUICK_STOP_N", 6 = "SWITCH_ON_DISABLED", 7 = "WARNING", 9 = "REMOTE", 10 = "TARGET_REACHED", 11 = "INTERNAL_LIMIT", 14 = "STOP_KEY", 15 = "REVERSE" } } output_frequency = { address = 3202, signed = true, scale = 0.1, unit = "Hz" } motor_current_raw = { address = 3204 } # workbook delegates scale to programming manual/rating motor_torque = { address = 3205, signed = true, scale = 0.1, unit = "%" } mains_voltage = { address = 3207, scale = 0.1, unit = "V" } motor_voltage = { address = 3208, unit = "V" } drive_thermal_state = { address = 3209, unit = "%" } dc_bus_voltage = { address = 3243, scale = 0.1, unit = "V" } [control] command_register = 8501 speed_register = 8502 speed_scale = 0.1 speed_unit = "Hz" max_ref = 500.0 step_delay = 0.05 stop = [0x0006] run_fwd = [0x0006, 0x0007, 0x000F] run_rev = [0x0006, 0x0007, 0x080F] 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 Com Interruption" [running_check] register = 3201 bit = 2 [direction_check] register = 3201 bit = 15 reverse_when_set = true [faults] register = 7121 history = [7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7600, 7601, 7602, 7603, 7604, 7605] [faults.codes] 0 = "[No Error] (NOF) No error detected" 2 = "[Control Memory Error] (EEF1) Control memory error" 3 = "[Incorrect Config] (CFF) Incorrect configuration" 4 = "[Invalid Configuration] (CFI) Invalid configuration" 5 = "[Modbus Com Interruption] (SLF1) Modbus communication interruption" 6 = "[Internal Link Error] (ILF) Internal communication interruption with option module" 7 = "[Fieldbus Com Interrupt] (CNF) Fieldbus communication interruption" 8 = "[External Error] (EPF1) External detected error" 9 = "[Overcurrent] (OCF) Overcurrent" 10 = "[Precharge Capacitor] (CRF1) Precharge capacitor" 13 = "[AI2 4-20mA loss] (LFF2) AI2 4-20mA loss" 15 = "[Input Overheating] (IHF) Input Overheating" 16 = "[Device Overheating] (OHF) Device overheating" 17 = "[Motor Overload] (OLF) Motor overload" 18 = "[DC Bus Overvoltage] (OBF) DC bus overvoltage" 19 = "[Supply Mains Overvoltage] (OSF) Supply mains overvoltage" 20 = "[Single output phase loss] (OPF1) Single output phase loss" 21 = "[Input Phase Loss] (PHF) Input phase loss" 22 = "[Supply Mains UnderV] (USF) Supply mains undervoltage" 23 = "[Motor short circuit] (SCF1) Motor short circuit" 24 = "[Motor Overspeed] (SOF) Motor overspeed" 25 = "[Autotuning Error] (TNF) Autotuning detected error" 26 = "[Internal Error 1] (INF1) Internal error 1 (Rating)" 27 = "[Internal Error 2] (INF2) Internal error 2 (Soft)" 28 = "[Internal Error 3] (INF3) Internal error 3 (Intern Comm)" 29 = "[Internal Error 4] (INF4) Internal error 4 (Manufacturing)" 30 = "[Power Memory Error] (EEF2) Power memory error" 32 = "[Ground Short Circuit] (SCF3) Ground short circuit" 33 = "[Output Phase Loss] (OPF2) Output phase loss" 34 = "[CANopen Com Interrupt] (COF) CANopen communication interruption" 37 = "[Internal Error 7] (INF7) Internal error 7 (Init)" 38 = "[Fieldbus Error] (EPF2) External error detected by Fieldbus" 40 = "[Internal Error 8] (INF8) Internal error 8 (Switching Supply)" 42 = "[PC Com Interruption] (SLF2) PC communication interruption" 45 = "[HMI Com Interruption] (SLF3) HMI communication interruption" 51 = "[Internal Error 9] (INF9) Internal error 9 (Measure)" 52 = "[Internal Error 10] (INFA) Internal error 10 (Mains)" 53 = "[Internal Error 11] (INFB) Internal error 11 (Temperature)" 54 = "[IGBT Overheating] (TJF) IGBT overheating" 55 = "[IGBT Short Circuit] (SCF4) IGBT short circuit" 56 = "[Motor Short Circuit] (SCF5) Motor short circuit" 60 = "[Internal Error 12] (INFC) Internal error 12 (Internal current supply)" 64 = "[Input Contactor] (LCF) input contactor" 68 = "[Internal Error 6] (INF6) Internal error 6 (Option)" 69 = "[Internal Error 14] (INFE) Internal error 14 (CPU)" 71 = "[AI3 4-20mA loss] (LFF3) AI3 4-20mA loss" 72 = "[AI4 4-20mA loss] (LFF4) AI4 4-20mA loss" 73 = "[Boards Compatibility] (HCF) Boards compatibility" 77 = "[Conf Transfer Error] (CFI2) Configuration transfer error" 79 = "[AI5 4-20 mA loss] (LFF5) AI5 4-20 mA loss" 99 = "[Channel Switch Error] (CSF) Channel switching detected error" 100 = "[Process Underload] (ULF) Process underload" 101 = "[Process Overload] (OLC) Process overload" 105 = "[Angle error] (ASF) Angle error" 106 = "[AI1 4-20 mA loss] (LFF1) AI1 4-20 mA loss" 107 = "[Safety Function Error] (SAFF) Safety function detected error" 110 = "[AI2 Th Level Error] (TH2F) AI2 thermal level error" 111 = "[AI2 Thermal Sensor Error] (T2CF) Thermal sensor error on AI2" 112 = "[AI3 Th Level Error] (TH3F) AI3 thermal level error" 113 = "[AI3 Thermal Sensor Error] (T3CF) Thermal sensor error on AI3" 114 = "[PumpCycle start Error] (PCPF) Pump cycle start error" 115 = "[Out Pressure Low] (OPLF) Outlet pressure low" 116 = "[High Flow Error] (HFPF) High flow error" 117 = "[Inlet Pressure Error] (IPPF) Inlet pressure detected error" 119 = "[Pump Low Flow Error] (PLFF) Pump low flow detected error" 120 = "[AI4 Th Level Error] (TH4F) AI4 thermal level error" 121 = "[AI4 Thermal Sensor Error] (T4CF) Thermal sensor error on AI4" 122 = "[AI5 Th Level Error] (TH5F) AI5 thermal level error" 123 = "[AI5 Thermal Sensor Error] (T5CF) Thermal sensor error on AI5" 124 = "[Anti Jam Error] (JAMF) Anti Jam detected error" 125 = "[Out Pressure High] (OPHF) Outlet pressure high" 126 = "[Dry Run Error] (DRYF) Dry run detected error" 127 = "[PID Feedback Error] (PFMF) PID feedback detected error" 128 = "[Program Loading Error] (PGLF) Program loading detected error" 129 = "[Program Running Error] (PGRF) Program running detected error" 130 = "[Lead Pump Error] (MPLF) Lead pump not available" 131 = "[Low Level Error] (LCLF) Low level error" 132 = "[High Level Error] (LCHF) High level error" 142 = "[Internal Error 16] (INFG) Internal error 16 (IO module - relay)" 143 = "[Internal Error 17] (INFH) Internal error 17 (IO module - Standard)" 144 = "[Internal Error 0] (INF0) Internal error 0 (IPC)" 146 = "[Internal Error 13] (INFD) Internal error 13 (Diff current)" 148 = "[Motor Stall Error] (STF) Motor stall detected error" 149 = "[Internal Error 21] (INFL) Internal error 21 (RTC)" 150 = "[Embd Eth Com Interrupt] (ETHF) Embedded Ethernet communication interruption" 151 = "[Internal Error 15] (INFF) Internal error 15 (Flash)" 152 = "[Firmware Update Error] (FWER) Firmware Update error" 153 = "[Internal Error 22] (INFM) Internal error 22 (Embedded Ethernet)" 154 = "[Internal Error 25] (INFP) Internal error 25 (Incompatibility CB & SW)" 155 = "[Internal Error 20] (INFK) Internal error 20 (option interface PCBA)" 157 = "[Internal Error 27] (INFR) Internal error 27 (Diagnostics CPLD)" 158 = "[Internal Error 23] (INFN) Internal error 23 (Module link)" 159 = "[AFE ShortCircuit error] (SCF6) AFE ShortCircuit error" 160 = "[AFE Bus unbalancing] (OBF2) AFE Bus unbalancing" 161 = "[Internal Error 28] (INFS) Internal error 28 (AFE)" 173 = "[Cabinet Overheat Error] (CHF) Cabinet overheat error" 174 = "[AFE Mains Undervoltage] (URF) AFE Mains undervoltage" 175 = "[Internal Error 31] (INFV) Internal error 31 (Missing brick)" 176 = "[Internal Error 29] (INFT) Internal error 29 (Inverter)" 177 = "[Internal Error 30] (INFU) Internal error 30 (Rectifier)" 179 = "[AFE IGBT over-heat error] (TJF2) AFE IGBT over-heat error" 180 = "[AFE contactor feedback error] (CRF3) AFE contactor feedback error" 181 = "[Pre-settings Transfer Error] (CFI3) Pre-settings transfer error" 182 = "[Circuit Breaker Error] (CBF) Circuit breaker error" 200 = "[FDR 1 Error] (FDR1) FDR Eth embedded error" 201 = "[FDR 2 Error] (FDR2) FDR Eth module error" 206 = "[DC Bus Ripple Error] (DCRE) DC Bus ripple error" 208 = "[Egy Saving Exit Error] (IDLF) Idle mode exit error" 220 = "[Adv.Function Lock] (AFLF) Advanced function locked error" [connection] summary = "Connect to the ATV610 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 = "rj45_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 = ["Configure the Modbus Control macro or route Fr1/Cd1 to embedded Modbus.", "Set a unique address and match 19200, 8-E-1.", "Configure timeout and SLF1 response."] warnings = ["Do not connect adapter power to the vendor peripheral-power pin.", "Connect only the documented data and Common conductors."] source = "Schneider EAV64395.03 (10/2024), pp. 51-54 and 58-61." [[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" [[connection.methods]] id = "n4zc_terminal_rs485" title = "ATV610 N4ZC open Modbus terminal" transport = "serial" hardware = "built_in" port = "ATV610...N4ZC Modbus In-Line terminal" connector = "A, B, SGND and PE terminals" adapter = "Isolated USB-to-RS-485 adapter" cable = "Shielded twisted pair plus signal common" parts = ["Isolated USB-to-RS-485 adapter", "Shielded twisted pair plus common", "Small screwdriver"] steps = ["Lock out and verify zero voltage.", "Confirm the nameplate is an ATV610...N4ZC and locate the Modbus In-Line terminal.", "Land conductors exactly as shown below.", "Use the built-in BIAS and TERM switch only when required by this drive's position in the bus.", "Restore control power with the motor inhibited and verify a read."] setup = ["Configure the Modbus Control macro or route Fr1/Cd1 to embedded Modbus.", "Set a unique address and match 19200, 8-E-1.", "Configure timeout and SLF1 response."] warnings = ["This terminal exists only on ATV610...N4ZC references.", "Do not use the cable shield in place of SGND."] source = "Schneider EAV64395.03 (10/2024), pp. 51-54 and 58-61." [[connection.methods.wiring]] adapter = "D1 / B / +" device = "A — D1" signal = "RS-485 D1" [[connection.methods.wiring]] adapter = "D0 / A / -" device = "B — D0" signal = "RS-485 D0" [[connection.methods.wiring]] adapter = "COM / signal common" device = "SGND — Common" signal = "Signal reference" [[connection.methods.wiring]] adapter = "Cable shield" device = "PE — Protective Earth" signal = "Shield bond" required = false