Skip to content

Motor and VFD

Motor

The fan is driven by a three-phase induction motor. The nameplate parameters that matter for control are stored in drive parameter group 99:

Parameter Value Meaning
99.07 MOTOR NOM FREQ 60 Hz Nameplate frequency (read at the drive).
99.08 MOTOR NOM SPEED 880 RPM (approx.) Nameplate synchronous speed used as the 100 % reference in fieldbus scaling. The WindTunnelControl.ps1 startup probe reads this at launch; if the probe fails, the PowerShell tool falls back to a hardcoded 1800 RPM.

The 880 RPM nameplate is consistent with a 4-pole motor at 60 Hz with slip. The operating range used in software is 0–880 RPM with a hard clamp.

The motor itself is a sealed industrial unit; there are no user-serviceable parts. The only routine task is checking the belt / coupling alignment as part of the maintenance schedule — see Maintenance → Schedule.

VFD: ABB ACH550

ABB ACH550 drive enclosure

The drive runs the motor from the building's three-phase mains and accepts speed commands from the lab PC over Modbus/TCP via the RETA-01 fieldbus adapter in option slot 1.

Control profile

The drive is configured for the ABB Drives profile. This profile uses fixed quick-access registers for the control word, the reference, the status word, and the actual values; parameter reads/writes use a different mapping (see Reference → Register map).

Quick-access registers:

Modbus address Name R/W Use
0 Control Word (CW) R/W Start / stop / emergency-stop bit pattern.
1 Reference 1 (REF1) R/W Speed reference, 0–20000 scaled.
2 Reference 2 (REF2) R/W Unused.
3 Status Word (SW) R Drive state bits (READY, RUN, FAULT, REMOTE, etc.).
4 Actual 1 (ACT1) R Speed feedback.
5 Actual 2 (ACT2) R Current feedback.

Control word patterns

Pattern Meaning When written
0x0476 Prepare to run / ramp stop Before transitioning to run; also used to ramp down for normal stop.
0x047F Run After REF1 and the prepare-word are both set.
0x0000 Off (coast / E-Stop) Emergency stop; drive coasts to zero, no ramp.

Start sequence

The drive requires the following sequence to spin the motor from idle:

  1. Write REF1 to the desired scaled reference.
  2. Wait at least 200 ms.
  3. Write CW = 0x0476.
  4. Wait at least 500 ms (allows the drive to internally clear OFF2/OFF3).
  5. Write CW = 0x047F.

For mid-run setpoint changes, write REF1 only. Writing 0x0476 again resets the run state and the drive will stop until 0x047F is reissued. This footgun is the source of the original "set RPM live" bug in the early ADCL WinSoft prototype and is documented in code/adcl_winsoft/vfd/controller.py.

Critical drive parameters

These must be set for fieldbus control to work. If any drift, see Maintenance → Parameter recovery. The full list is in Reference → Parameter index.

Parameter Value Meaning
99.02 APPLIC MACRO 1 ABB Standard macro.
98.02 COMM PROT SEL 4 External fieldbus (RETA-01) is active.
10.01 EXT1 COMMANDS 10 Start/stop commands come from the fieldbus. If this drifts, the motor cannot be started from software.
11.02 EXT1/EXT2 SEL 0 EXT1 is the active command source.
11.03 REF1 SELECT 8 REF1 (speed setpoint) comes from the fieldbus. If this drifts, software writes to REF1 are ignored.
22.02 DECEL TIME site-specific Controls the ramp-stop time. Confirm before changing — too short causes overvoltage faults at high RPM.

Mode indicator on the drive keypad

The drive's keypad shows REM in the upper-left corner when control is delegated to the fieldbus. The motor cannot be started from software unless the keypad shows REM. If it shows LOC, press the LOC/REM button on the keypad to switch to remote mode.

Calibration

The mapping from drive_RPM to the REF1 register value was measured empirically in WT_MS_2:

$$ \mathrm{REF1} = \mathrm{drive_RPM} \times 22.42 $$

with a residual error of about ±1 %. This is consistent with ABB's nominal scaling (20000 = 100 % = motor nameplate RPM ≈ 880 → 20000/880 ≈ 22.7) to within 1.4 %. The exact constant 22.42 is used in both control codebases (code/adcl_winsoft/vfd/controller.py, code/wind_tunnel_control/WindTunnelControl.ps1).

A second mapping, from drive_RPM to wind speed, is documented separately at Reference → Calibration constants.