# Property of PMA Electrical Solutions, LLC. # # WEG CFW503 over its standard RS-485 interface, Modbus RTU. # Sources: # - WEG CFW503 Modbus RTU Communication Manual 10012735606/00 (04/2025), # pp. 4-4..4-12 and 5-1: serial defaults, watchdog, P680/P682/P683 and # zero-offset parameter addressing. # - WEG CFW503 Programming Manual 10010886136/03, V1.2X (04/2025), # pp. 0-1..0-34, 17-1..17-10 and 18-1..18-7: readings and fault table. # Drive setup: P312 = 2; select Serial in P220-P228. P314 defaults disabled; # P313 defaults to ramp stop, but must be commissioned with the timeout. name = "WEG CFW503" vendor = "WEG" device_type = "vfd" verified = false probe_register = 680 [connection] summary = "Use the standard Serial (1) RS-485 terminals on the fitted CFW503 plug-in module." warnings = ["Isolate and discharge the inverter before accessing or replacing the plug-in.", "The manual documents additional USB/RS-232/second-RS485 hardware but not a common pinout; use the literal standard-interface terminals below."] [[connection.methods]] id = "standard_serial1_rs485" title = "Standard Serial (1) RS-485" transport = "serial" hardware = "option" port = "CFW500-IOS terminals 14 RS485-A(-), 16 RS485-B(+), 18 GND" connector = "Plug-in module control terminals" adapter = "Isolated USB-to-RS-485 adapter" cable = "Shielded twisted pair with optional reference" parts = ["Compatible CFW503 plug-in module", "Small insulated screwdriver", "Endpoint termination"] wiring = [{ adapter = "D- / A-", device = "14, RS485-A (-)", signal = "RS-485 negative" }, { adapter = "D+ / B+", device = "16, RS485-B (+)", signal = "RS-485 positive" }, { adapter = "COM/GND", device = "18, GND", signal = "0 V reference", required = false }] steps = ["Isolate the drive and verify the installed plug-in exposes Serial (1).", "Wire negative to terminal 14, positive to 16, and optional reference to 18.", "Terminate only at a physical bus end and keep the cable separated from power wiring.", "Close the drive, restore power, and select the computer adapter."] setup = ["Set P312 = 2 Modbus RTU and configure P308/P310/P311.", "Select Serial in P220-P228 and commission P313 with nonzero P314."] warnings = ["Only one of the available serial interfaces can own commands/references."] source = "WEG 10012735606/00, pp. 2-1 through 2-4 and 4-4 through 4-12" [serial] baudrate = 19200 parity = "E" stopbits = 1 [monitor] status_word = { address = 680, bits = { 1 = "RunCommand", 2 = "FireMode", 4 = "QuickStop", 5 = "SecondRamp", 6 = "ConfigMode", 7 = "Alarm", 8 = "MotorRunning", 9 = "GeneralEnable", 10 = "Forward", 11 = "JOG", 12 = "Remote", 13 = "Undervoltage", 14 = "PIDAuto", 15 = "Fault" } } output_frequency = { address = 5, scale = 0.1, unit = "Hz" } motor_current = { address = 3, scale = 0.1, unit = "A" } dc_bus_voltage = { address = 4, unit = "V" } output_voltage = { address = 7, unit = "V" } motor_torque = { address = 9, signed = true, scale = 0.1, unit = "%" } motor_speed = { address = 681, signed = true, scale = 0.01220703125, unit = "%" } present_alarm = { address = 48 } [control] command_register = 682 speed_register = 683 speed_scale = 0.01220703125 speed_unit = "%" max_ref = 100.0 step_delay = 0.05 stop = [0x0016] run_fwd = [0x0016, 0x0017] run_rev = [0x0012, 0x0013] reset = [0x0016, 0x0096, 0x0016] [control.watchdog] interval_ms = 50 fault = "A128/F228 serial timeout (P314 must be configured)" backstop_requires_setup = true [running_check] register = 680 bit = 8 [direction_check] register = 680 bit = 10 reverse_when_set = false [faults] register = 49 history = [50, 60, 70, 80, 81, 82] [faults.codes] 0 = "No fault" 6 = "F0006 line phase loss / supply unbalance" 21 = "F0021 DC-link undervoltage" 22 = "F0022 DC-link overvoltage" 30 = "F0030 IGBT desaturation" 31 = "F0031 plug-in communication fault" 32 = "F0032 plug-in module mismatch" 33 = "F0033 VVW self-tuning fault" 48 = "F0048 IGBT overload" 51 = "F0051 IGBT overtemperature" 70 = "F0070 overcurrent or short circuit" 72 = "F0072 motor overload" 74 = "F0074 ground fault" 76 = "F0076 output phase-current fault" 78 = "F0078 motor overtemperature" 79 = "F0079 encoder signal fault" 80 = "F0080 CPU watchdog fault" 81 = "F0081 firmware update failure" 82 = "F0082 incompatible firmware" 83 = "F0083 PWM active-level mismatch" 84 = "F0084 auto-diagnosis fault" 85 = "F0085 plug-in initialization fault" 86 = "F0086 safety-module identification fault" 87 = "F0087 phase-U current-offset fault" 88 = "F0088 phase-V current-offset fault" 89 = "F0089 phase-W current-offset fault" 91 = "F0091 external fault" 100 = "F0100 EEPROM fault" 101 = "F0101 DataFlash fault" 150 = "F0150 motor overspeed" 151 = "F0151 incompatible main software version" 153 = "F0153 internal-air overtemperature" 158 = "F0158 main/plug-in firmware mismatch" 169 = "F0169 speed error too high" 179 = "F0179 internal fan low speed" 182 = "F0182 pulse-feedback fault" 185 = "F0185 pre-charge contactor fault" 228 = "F0228 serial communication timeout" 233 = "F0233 CAN interface without power" 234 = "F0234 CAN bus off" 235 = "F0235 CANopen node guarding/heartbeat fault" 236 = "F0236 DeviceNet master idle" 237 = "F0237 DeviceNet connection timeout" 238 = "F0238 Profibus DP clear mode" 239 = "F0239 Profibus DP offline" 240 = "F0240 Profibus DP module access fault" 248 = "F0248 Ethernet module access fault" 249 = "F0249 Ethernet communication timeout" 700 = "F0700 remote-HMI communication fault" 709 = "F0709 SoftPLC application stopped" 710 = "F0710 SoftPLC application too large" 711 = "F0711 SoftPLC application fault" 712 = "F0712 SoftPLC download fault" 761 = "F0761 internal-PID process-variable low" 763 = "F0763 internal-PID process-variable high" 767 = "F0767 dry pump detected" 769 = "F0769 broken belt detected" 771 = "F0771 filter maintenance" 787 = "F0787 external-PID process-variable low" 789 = "F0789 external-PID process-variable high" [rating] register = 295 scale = 0.1 unit = "A" label = "Inverter rated current (P0295)"