220 likes | 380 Views
Application: Pipette Measurement and Flash Inspection . Distributor: CPU Automation Engineer: Mike Bray. Product. Clear plastic pipette used in medical environments. Specifications. Inspection Requirement. Measure pipette lengths - 3.375 inches +/- 0.020 inches Look for flattened tips
E N D
Application: Pipette Measurement and Flash Inspection. Distributor: CPU Automation Engineer:Mike Bray
Product Clear plastic pipette used in medical environments.
Inspection Requirement • Measure pipette lengths - 3.375 inches +/- 0.020 inches • Look for flattened tips • Look for flash that extends beyond tips • Inner view of tip hole not required
Camera setup • Working Distance: Approximately 13 inches. • Field of View: 3.65 inches x 2.75 inches • 1 pixel = Approximately .0058 inches
Product Presentation • Pipettes are retrieved by a pick and place robot in groups of twenty. The pipettes are held vertically in a single row by twenty individual vacuum nozzles that are inserted into the top of the pipettes. • The robot then brings the group of pipettes into the vision staging area where two 640x480 cameras capture an image of ten pipettes per camera. • The lighting consists of a red backlight mounted underneath and shining up into the pipettes.
Hardware • System: IPD vision appliance - VA40 • Camera: 2 Telli TM2 Cameras - 640x 480 • Lens: 2 Fujinon lenses - 16mm • Lighting: CCS LDL-TP-211x200 - red backlight • Backlight Power Supply: CCS PD-5024 24VDC • CTC PHM-15 monitor with touch screen – 15”
Software • Sherlock 7.1.2.0 • Visual Basic 6.0
Application Specific Problems - 1 • Need to inspect twenty pipettes at a time. • Standard alignment tools will not work due to varying pipette to pipette positions. • Alignment must be achieved by finding the center of each pipette then re-positioning the Roi's for each pipette. This requires the re-positioning of sixty Roi’s and the calculation of sixty two-element arrays that must contain the x,y coordinates for the new Roi positions. • The top of the pipette is not in the FOV. Top measurement point has to be the step down point (see drawing on frame 3) on the top third of the pipette. This point turned out be difficult to illuminate with standard backlighting.
Application Specific Problems - 2 • Multiple data readings for length, tip width and pass/fail are required. All of the data must be stored in arrays. • A Visual Basic interface is required for this application. Arrays have to be passed from Sherlock to VB for displaying results. Because VB can only use dynamic arrays when acquiring elements from Sherlock, special care must be taken to handle missing pipettes as this will change the size of the array expected. This would result in a VB crash. • Customer did not follow our camera mounting recommendations and used large 80/20 stock for camera mounting. This made camera alignment somewhat difficult and time consuming. Eventually the cameras were pinned into place and a “Length Offset” screen was made available in VB to manually correct small skewing of the cameras after calibration.
Sherlock Application Sequence • Wait for trigger from robot • Acquire images • Apply preprocessing to raw images • Look for pipette edges using “Edge Count” tool. • If twenty edges per camera are found Calculate pipette width centers and populate all “Set Coordinate” arrays for top bottom and width Roi’s. • Calculate each pipette length and tip width then populate data arrays. • Compare array data to min/max limits, set outputs and status flags accordingly and update saved failed image queue if needed.
Sherlock 7 Benefits for this Application • Sherlock’s powerful logic capability helps in applications where such as this where handshaking with existing control systems is required. • The new enhanced edge tools in 7.1.2.0 helped with stability and consistency in this application. • Scripting was also necessary in this application. Sherlock’s scripting ability helped make this application much easier to implement. • Sherlock’s preprocessors are able to help correct for lighting deficiencies. • The ability to re-locate Roi’s on the fly was also necessary for this application.
Sherlock Improvements needed • There are 260 defined variables in this application. Currently the variable list can only be sorted by their field headings. This makes searching for specific variables difficult at times. Adding a third column that could be used for a user sort index entry would be very helpful. • Currently you cannot enter a value into a variable field while in the run mode. This makes de-bugging difficult. • You cannot move a variable into the watch window. I find this somewhat short sighted. I would like to be able to set up de-bugging scenarios in the watch window that include variables as well as algorithm outputs. • Java scripting lacks some functionality. Simple math functions i.e. rounding anything other than integers are not available. Array manipulation lacks functionality. • More Sherlock functions need to be exposed for Visual Basic and Visual C.
Visual Basic Interface Requirements • Ability to select all camera views and image windows as needed. • Control all modes of vision operation from user and password protected supervisor screens. • A Data Stat screen that will display all array data for length, width and pass/fail. • A password protected Setup screen where limits and tolerances can be entered via an on screen numeric touch pad. • Settings can be saved to an “ini” file located in the application’s VB folder. • Settings in the “ini” file are load when the application is launched. • An Roi offset screen for offsetting the Sherlock Roi positions. • Calibration can be run from the setup screen. • A live camera screen for camera adjustment.