# Property of PMA Electrical Solutions, LLC. # # Schneider Electric Altivar 21, embedded Modbus RTU. Exact-family source: # Schneider 1769687, ATV21 Modbus manual (07/2006): port/defaults pp.10-12, # timeout and response p.19, direct address examples pp.20-27, register map # pp.29-37, command/status words pp.32-34, and trip enumeration p.37. # This Toshiba-derived map is not the later Altivar CiA402 W3201/W8501 map. # The manual's hex register numbers are direct zero-based PDU addresses. # # Set CMOd=2 and FMOd=4, or use command bits 15/14 below to select Modbus # independently. F829 must remain 1 (RTU). F803 ships at 3 s, but commission # F603=0 (coast stop/error 5): the manual's table shows factory value 4 but # publishes no safety action for value 4, so the default is not a proven stop. name = "Schneider Altivar 21" vendor = "Schneider Electric" device_type = "vfd" verified = false probe_register = 64769 [serial] baudrate = 19200 parity = "E" # 1769687 says the port complies with the Modbus serial-line standard but does # not publish this field; even parity therefore uses the standard one stop bit. stopbits = 1 [monitor] status_word = { address = 64769, bits = { 0 = "FL", 1 = "TRIPPED", 2 = "ALARM", 3 = "MAIN_UNDERVOLT", 9 = "REVERSE", 10 = "RUNNING", 11 = "COAST_STOP", 12 = "EMERGENCY_STOP", 13 = "STANDBY_ST_ON", 14 = "STANDBY", 15 = "LOCAL" } } output_frequency = { address = 64768, scale = 0.01, unit = "Hz" } motor_current_pct = { address = 65027, scale = 0.01, unit = "%" } dc_bus_pct = { address = 65028, scale = 0.01, unit = "%" } output_voltage_pct = { address = 65029, scale = 0.01, unit = "%" } run_time = { address = 65044, unit = "h" } [control] command_register = 64000 speed_register = 64001 speed_scale = 0.01 speed_unit = "Hz" max_ref = 200.0 step_delay = 0.05 stop = [0xC000] run_fwd = [0xC400] run_rev = [0xC600] reset = [0xC000, 0xE000, 0xC000] [control.watchdog] interval_ms = 500 fault = "Err5 Modbus communication timeout" backstop_requires_setup = true [running_check] register = 64769 bit = 10 [direction_check] register = 64769 bit = 9 reverse_when_set = true [faults] register = 64656 history = [65040, 65041, 65042, 65043] [faults.codes] 0 = "NErr no error" 1 = "OC1 overcurrent during acceleration" 2 = "OC2 overcurrent during deceleration" 3 = "OC3 overcurrent at constant speed" 4 = "OCL load overcurrent at startup" 5 = "OCA arm short circuit" 8 = "EPHI input phase failure" 9 = "EPHO output phase failure" 10 = "OP1 overvoltage during acceleration" 11 = "OP2 overvoltage during deceleration" 12 = "OP3 overvoltage at constant speed" 13 = "OL1 inverter overload" 14 = "OL2 motor overload" 16 = "OH overheat" 17 = "E emergency stop" 18 = "EEP1 EEPROM write fault" 19 = "EEP2 EEPROM read fault" 20 = "EEP3 EEPROM internal fault" 21 = "Err2 RAM fault" 22 = "Err3 ROM fault" 23 = "Err4 CPU fault" 24 = "Err5 communication error" 26 = "Err7 current detector fault" 27 = "Err8 option board fault" 29 = "UC small-current trip" 30 = "UP1 main-circuit undervoltage" 32 = "Ot overtorque" 34 = "EF2 ground fault" 37 = "OC1P power-element overcurrent during acceleration" 38 = "OC2P power-element overcurrent during deceleration" 39 = "OC3P power-element overcurrent during operation" 41 = "EtYP inverter type error" 46 = "OH2 external thermal input" 47 = "SOUt VIA cable break" 50 = "E-18 analog signal cable break" 51 = "E-19 CPU fault" 52 = "E-20 excess torque boost" 53 = "E-21 CPU fault" 84 = "Etn1 autotuning error" [connection] summary = "Connect to the ATV21 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 CMOd = 2 and FMOd = 4, or use command bits 15/14 for Modbus priority.", "Keep F829 = 1 (RTU).", "Match 19200 baud and even parity", " commission the timeout/stop response."] warnings = ["Do not connect adapter power to the vendor peripheral-power pin.", "Connect only the documented data and Common conductors."] source = "Schneider 1769687 (07/2006), pp. 7-12 and 19." [[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"