1 / 17

Aerotech A3200 high precision rotation stage

Anita
Download Presentation

Aerotech A3200 high precision rotation stage

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Aerotech A3200 high precision rotation stage Windows based Epics IOC driver implementation

    2. Marcel Grunder

    3. Marcel Grunder 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 languages include Aerotech’s own AEROBasic or RS274 G-code, C, C++, VisualBasic®, Delphi and Labview

    4. Marcel Grunder At a beamline

    5. Marcel Grunder 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 go generate movement start + stop pos, shutter open + close pos and velocity. Direct mode Absolute or incremental move of axis (axes) at defined speed

    6. Marcel Grunder Software environment Runs on Windows XP epics base 3.14.8 autosave and restore 4-2-1 storing offset and velocities state notation language (SNL) 2.0.1 homing sequence A3200 v.2.19

    7. Marcel Grunder A3200 Software Architecture Layer 4: Windows Apps Layer 3: Programming Interface Layer 2: Nmotion SMC engine Layer 1: Drive Firmware

    8. Marcel Grunder 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

    9. Marcel Grunder A3200 programming models (cont.) Mixed Programming Models There is no explicit synchronization between the CNC tasks and Windows threads. To synchronize use global variables and G-code CALLBACK statement…

    10. Marcel Grunder Measurement mode timing diagram V2

    11. Marcel Grunder Difficulties Long time performance was limited by “automatic Windows updates”. ? Updates done while no user operation. McAfee Antivirus could disturb long time measurements when McShield service started. ? McShield will be restarted with new updated database before user operation starts. A3200 v. > 2.13 needed modification of epics base Thread stack size ? static const unsigned stackSizeTable[epicsThreadStackBig+1] = {4000, 6000, 5000000}; A3200 without hardware behave differently. Attention when testing limits, homing, errors…

    12. Marcel Grunder Synchronize CNC and Library program code G-Code provide CALLBACK function In “C”: userCallback() get the G-code Task number Set the correct moving flag scanIoReques() epicsEventWaitWithTimeout

    13. Marcel Grunder RESERVE

    14. Marcel Grunder Air-Bearing Rotary Stage ? Key features Air-Bearing Rotary Stage provide superior angular positioning, velocity stability, and error motion performance. The ABRS is designed to meet the exacting requirements of wafer inspection, high precision metrology, x-ray diffraction systems, optical inspection and fabrication, and nanotechnology device fabrication. Accurate Positioning An optical encoder is standard with the ABRS. Resolutions of <0.03 arc second are achievable.

    15. Marcel Grunder A3200 Driver

    16. Marcel Grunder Measurement mode timing diagram

    17. Marcel Grunder Synchronize CNC and Library program code WAIT( $global0 == 1) -1 ; Wait for RotX osc. tigger ; Set PSO mode PSOOUTPUT RotX WINDOW ; specify PSO Encoder (0 or 1) PSOWINDOW RotX 1 INPUT iEncoder ; Set PSO Windows from ROTX_MSMOPEN to ROTX_MSMCLOSE PSOWINDOW RotX 1 RANGE $global7 $global8 UNITS ; ; Rotate RotX G1 RotX $fPosition E $fVelocity ; Force the user callback in driver c code CALLBACK 9

    18. Marcel Grunder Synchronize CNC and Library program code /* In Axis Thread to monitor G-code CALLBACK ? add userCallbackEvent *****/ AerCBackLibWaitForCallbackEvent(TASKINDEX_1, &dwEvent ); if (dwEvent == AER_LIB_CALLBACK_USER_EVENT) callbackUser(hCtrl, TASKINDEX_1); /* Handles the CALLBACK commands from G-code *****/ callbackUser( HAERCTRL hAerCtrl, TASKINDEX iTask) { /* 1. Get the callback data */ AerCBackLibCallbackValueGetCallbackType(hAerCtrl, iTask, &dwCallBackNumber); /* 2. Do the callback functionality */ if (dwCallBackNumber > 0) /* depending on the axis task, set the correct Done flag */ switch (iTask) { case TASKINDEX_1: /* ROTX */ AT_AxisPosGet(TRUE); /* need to get current Positions */ pAT.bRotXDone = MOTOR_STOP; scanIoRequest(pAT.ioscanRotXDONE); /* update status bits */ epicsEventWaitWithTimeout(pAT.doneRotXSent, 1.0); /* wait until DONE record has been processed */ break; ... } }

More Related