# Property of PMA Electrical Solutions, LLC. # # Schneider Altivar Machine ATV340, embedded Modbus serial. Exact-family # sources: NVE61654.01 (06/2016), CiA402 CMD/ETA pp.45-47, direct address # example pp.38-42, timeout pp.33-34; NVE61728 V4.1 communication-parameter # workbook (09/2024) for all addresses/scales below. NVE61654 applies to ATV340 # only; N4E models may also expose Modbus TCP, but this profile assumes serial. # Setup Fr1=Modbus and CHCF=SIM, or Cd1=Modbus in separate mode. name = "Schneider Altivar Machine ATV340" 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" } # LCR step is rating-dependent; preserve its raw count instead of assuming A. motor_current_raw = { address = 3204 } 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 = 599.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 communication 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 = "[Ctrl Memory Error] (EEF1) Control memory error" 3 = "[Incorrect Config] (CFF) Incorrect configuration" 4 = "[Invalid Config] (CFI) Invalid configuration" 5 = "[Mdb Com Interrupt] (SLF1) Modbus communication interruption" 6 = "[Internal Link Error] (ILF) Internal communication interruption with option module" 7 = "[Fdbus Com Interrupt] (CNF) Fieldbus communication interruption" 8 = "[External Error] (EPF1) External detected error" 9 = "[Overcurrent] (OCF) Overcurrent" 10 = "[Precharge Capa] (CRF1) Precharge capacitor" 11 = "[Enc Fdbk Loss] (SPF) Encoder feedback loss" 12 = "[Load slipping] (ANF) Load slipping" 15 = "[Input Overheating] (IHF) Input Overheating" 16 = "[Device Overheat] (OHF) Device overheating" 17 = "[Motor Overload] (OLF) Motor overload" 18 = "[DC Bus OverV] (OBF) DC bus overvoltage" 19 = "[Supply Mains OverV] (OSF) Supply mains overvoltage" 20 = "[Single out ph 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 = "[Pwr Memory Error] (EEF2) Power memory error" 32 = "[Ground Short Circuit] (SCF3) Ground short circuit" 33 = "[Output Ph Loss] (OPF2) Output phase loss" 34 = "[CANopen Com Interrupt] (COF) CANopen communication interruption" 35 = "[Brake Control] (BLF) Brake control" 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)" 41 = "[Brake Feedback] (BRF) Brake feedback" 42 = "[PC Com Interrupt] (SLF2) PC communication interruption" 43 = "[Encoder Coupling] (ECF) Encoder coupling" 44 = "[Torque Limit Error] (SSF) Torque limitation error" 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 = "[Device Overheat] (TJF) Device overheating" 55 = "[IGBT Short Circuit] (SCF4) IGBT short circuit" 56 = "[Mot Short Circuit] (SCF5) Motor short circuit" 57 = "[Torque timeout] (SRF) Torque timeout" 58 = "[Out Contact Closed Error] (FCF1) Output contactor closed error" 59 = "[Out Contact Opened Error] (FCF2) Output contactor opened error" 60 = "[Internal Error 12] (INFC) Internal error 12 (Internal current supply)" 62 = "[Encoder] (ENF) Encoder" 64 = "[Input Contactor] (LCF) input contactor" 65 = "[DB unit sh. circuit] (BUF) DB unit sh. circuit" 68 = "[Internal Error 6] (INF6) Internal error 6 (Option)" 69 = "[Internal Error 14] (INFE) Internal error 14 (CPU)" 70 = "[Braking Resistor ovld] (BOF) Braking resistor overload" 71 = "[AI3 4-20mA loss] (LFF3) AI3 4-20mA loss" 72 = "[AI4 4-20mA loss] (LFF4) AI4 4-20mA loss" 73 = "[Boards Compat] (HCF) Boards compatibility" 76 = "[Dyn Load Error] (DLF) Dynamic load detected error" 77 = "[Conf Transfer Error] (CFI2) Configuration transfer error" 79 = "[AI5 4-20 mA loss] (LFF5) AI5 4-20 mA loss" 82 = "[ON Lock Error] (LKON) ON lock error" 99 = "[Channel Switch Error] (CSF) Channel switching detected error" 100 = "[Proc 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 Func Error] (SAFF) Safety function detected error" 112 = "[AI3 Th Level Error] (TH3F) AI3 thermal level error" 113 = "[AI3 Th Sensor Err] (T3CF) Thermal sensor error on AI3" 120 = "[AI4 Th Level Error] (TH4F) AI4 thermal level error" 121 = "[AI4 Th Sensor Err] (T4CF) Thermal sensor error on AI4" 122 = "[AI5 Th Level Error] (TH5F) AI5 thermal level error" 123 = "[AI5 Th Sensor Err] (T5CF) Thermal sensor error on AI5" 128 = "[Prog Load Error] (PGLF) Program loading detected error" 129 = "[Prog Run Error] (PGRF) Program running detected error" 133 = "[Safety Violation] (SAVF) Safety violation" 134 = "[Safety Config Error] (SCFF) Safety configuration error" 135 = "[Safety IO Error] (SIOF) Safety IO 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)" 147 = "[Internal Error 18] (INFI) Internal error 18 (Safety function module)" 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 = "[FW 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)" 156 = "[Internal Error 19] (INFJ) Internal error 19 (Encoder module)" 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)" 162 = "[MonitorCirc A Error] (IFA) Monitoring circuit A error" 163 = "[MonitorCirc B Error] (IFB) Monitoring circuit B error" 164 = "[MonitorCirc C Error] (IFC) Monitoring circuit C error" 165 = "[MonitorCirc D Error] (IFD) Monitoring circuit D error" 173 = "[Cabinet Overheat Error] (CHF) Cabinet overheat error" 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" 184 = "[DB unit op. circuit] (BUFO) DB unit open circuit" 185 = "[Drive Overload] (TLOF) Drive overload" 186 = "[MultiDrive Link Error] (MDLF) MultiDrive Link error" 187 = "[AI1 Th Level Error] (TH1F) AI1 thermal level error" 188 = "[AI1 Th Sensor Error] (T1CF) Thermal sensor error on AI1" 189 = "[Backlash Error] (BSQF) Backlash error" 190 = "[M/S Device Error] (MSDF) M/S device error" 194 = "[Encoder Th Level Error] (THEF) Encoder module thermal level error" 195 = "[Encoder Th Sensor Error] (TECF) Thermal sensor error on encoder module" 196 = "[Empty Config] (CFI4) Empty configuration" 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" 209 = "[Load Mvt Error] (MDCF) Load movement error" 211 = "[Security Files Corrupt] (SPFC) Security files corrupt" [connection] summary = "Connect to the ATV340 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 Fr1 = Modbus and CHCF = SIM, or Cd1 = Modbus in separate mode.", "Set a unique node address and match 19200, 8-E-1.", "Configure timeout and communications-loss response."] warnings = ["Do not connect adapter power to the vendor peripheral-power pin.", "Connect only the documented data and Common conductors."] source = "Schneider NVE61654.01 (06/2016), pp. 26-28 and 33-47." [[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"