110 likes | 326 Views
Aerotech A3200 high precision rotation stage. Windows based Epics IOC driver implementation. Aerotech components…. ABR1000 Air-Bearing Rot. Stage ATS125 Linear Stage. A3200 motion software. Ndrive + Npaq Amplifier. Aerotech SMC controller. Motion control system and programming environment
E N D
Aerotech A3200 high precision rotation stage Windows based Epics IOC driver implementation Marcel Grunder, EPICS Collaboration Meeting October 2008
Aerotech components… ABR1000 Air-Bearing Rot. Stage ATS125 Linear Stage A3200 motion software Ndrive + Npaq Amplifier Marcel Grunder, EPICS Collaboration Meeting October 2008
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 kHz 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 AEROBasic or RS274 G-code, C, C++, VisualBasic, Delphi and LabVIEW Marcel Grunder, EPICS Collaboration Meeting October 2008
A3200 Software Architecture IOC • Layer 4: Windows Apps • Layer 3: Programming Interface • Layer 2: Nmotion SMC engine • Layer 1: Drive Firmware Windows RTX Hardware Ndrive Npaq motors Marcel Grunder, EPICS Collaboration Meeting October 2008
At a beamline cryojet exposure box (filter) X-ray beam microscope Marcel Grunder, EPICS Collaboration Meeting October 2008
Measurement mode timing diagram Close delay Open delay PSO Open M-Stop angle Shutter Open PSO-Close PSO Open Accl delay 1. calc osc. angle M-Start 2. move Start 3. Det. on 4. move Meas. time time Moving Marcel Grunder, EPICS Collaboration Meeting October 2008
Epics driver requirements • Fast signal indicating "movement done" • A3200 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 • Absolute or incremental move of axis (axes) at defined speed Marcel Grunder, EPICS Collaboration Meeting October 2008
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 • A3200 v.2.19 Marcel Grunder, EPICS Collaboration Meeting October 2008
A3200 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 Marcel Grunder, EPICS Collaboration Meeting October 2008
A3200 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: userCallback() • Get the G-code Task number • Set the correct moving flag • scanIoRequest() • epicsEventWaitWithTimeout() Marcel Grunder, EPICS Collaboration Meeting October 2008
Difficulties • Long time performance was limited by “automatic updates”. • Updates done manually while no user operation. • McAfee Antivirus could disturb long time measurements when McShield service started. • McShield will be restarted before user operation starts. • A3200 v. > 2.13 requires larger thread stack size static const unsigned stackSizeTable[epicsThreadStackBig+1] = {4000, 6000, 5000000}; • A3200 without hardware behaves differently. • Attention when testing limits, homing, errors… Marcel Grunder, EPICS Collaboration Meeting October 2008