Aerotech A 3200 high precision rotation stage Windows











- Slides: 11
Aerotech A 3200 high precision rotation stage Windows based Epics IOC driver implementation 1 Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage Aerotech components… ABR 1000 Air-Bearing Rot. Stage ATS 125 Linear Stage A 3200 motion software Ndrive + Npaq Amplifier 2 Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage Aerotech SMC controller ■ Motion control system and programming environment ■ Runs on a standard Windows PC ■ Maximum of 32 intelligent drives connected via IEEE 1394 ■ 20 k. Hz servo update rate for all axes ■ Integrated high-speed Position Synchronized Output (PSO) for position latching. ■ Utility Programs to configure, troubleshoot, and operate the controller ■ Programming interfaces include Aerotech’s own 3 Grunder, EPICS Collaboration Meeting October 2008 AEROBasic or RS 274 Marcel G-code, C, C++,
Aerotech Rotation Stage A 3200 Software Architecture ■ Layer 4: Windows Apps IO C ■ Layer 3: Programming Interface ■ Layer 2: Nmotion SMC engine ■ Layer 1: Drive Firmware 4 Windows RTX Hardware Ndrive Npaq motors Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage At a beamline cryojet exposure box (filter) X-ray beam microscope 5 Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage PSO Open Accl delay 1. calc 2. move Close delay Open delay M-Stop Shutter Open PSO Open M-Start osc. angle Measurement mode timing diagram PSO-Close Start 3. Det. on 4. move Meas. time Moving 6 time Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage Epics driver requirements ■ Fast signal indicating "movement done" ■ A 3200 PSO feature used to open/close fast beam shutter ■ Safe homing sequence for multiple axes stages ■ Measurement mode ► Define start + oscillation angle and oscillation time ► Use calc records to generate movement start + stop pos, shutter open + close pos and velocity. ■ Direct mode 7 ► Absolute or incremental move of axis (axes) at defined speed Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage Software environment ■ Runs on Windows XP ■ EPICS base 3. 14. 8 ■ autosave and restore 4 -2 -1 ► store offset and velocities ■ state notation language (SNL) 2. 0. 1 ► homing sequence ■ A 3200 v. 2. 19 8 Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage A 3200 programming models ■ Library Programming Model ► Simplest programming model used to initialize controller, to get controller and motor status info… ■ CNC Programming Model (G code) ► compiled and loaded as binary code, directly into the Nmotion SMC controller. ► Runs in RTX real time environment 9 Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage A 3200 programming models (cont. ) ■ Mixed Programming Models ► There is no explicit synchronization between the CNC tasks and Windows threads. ► To synchronize use G-code global variables and CALLBACK statement. ■ In C: user. Callback() ► Get the G-code Task number ► Set the correct moving flag ► scan. Io. Request() ► epics. Event. Wait. With. Timeout() 10 Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech Rotation Stage Difficulties ■ Long time performance was limited by “automatic updates”. èUpdates done manually while no user operation. ■ Mc. Afee Antivirus could disturb long time measurements when Mc. Shield service started. èMc. Shield will be restarted before user operation starts. ■ A 3200 v. > 2. 13 requires larger thread stack size static const unsigned stack. Size. Table[epics. Thread. Stack. Big+1] = {4000, 6000, 5000000}; ■ A 3200 without hardware behaves differently. èAttention when testing limits, homing, errors… 11 Marcel Grunder, EPICS Collaboration Meeting October 2008