230 likes | 349 Views
Convergence of IQPT / XAPQT. Radical Divergence - XAPQT vs IQPT. IQPT. XAPQT (HRAPQT). IQPT Multiple Print Frequencies Bi-Directions 4 Dual Pentium PCs & 1 Industrial PC 2 Large Images (50M Pixels) Line Interfaces I-Blaster, Tarzan Intro, Cyborg, Tyborg. XAPQT Dual Print Frequency
E N D
Radical Divergence - XAPQT vs IQPT IQPT XAPQT (HRAPQT) Test
IQPT Multiple Print Frequencies Bi-Directions 4 Dual Pentium PCs & 1 Industrial PC 2 Large Images (50M Pixels) Line Interfaces I-Blaster, Tarzan Intro, Cyborg, Tyborg XAPQT Dual Print Frequency Uni-Direction 2 Dual Pentium PCs 12 Small Images ( 300K Pixels) 1 Color Camera Line Interfaces Lava, Tiger Radical Divergence - By the Numbers • Different Control Hardware & Sequence • Different Acquisition Hardware & Sequence Test
Small vs Large Image Test
What is Convergence? For the Q Software: • Same executable running on ALL tools (XAPQT & IQPT) • Ability to run any algorithm on any tool (XAPQT & IQPT) Test
Why Convergence ? • Reduce / Eliminate redundant work • Enable flexible support & development staffing • Ensure customer quality • Encourage cross-site credibility • Prevent unfair yield practices • Decrease cost of qualification • Increase speed of evolution (synergy) ( From a conversation in DIMO November 1998 - some things take time! ) Test
History of End Of Line Testers XAPQT (HRAPQT) 1994 HRAPQT Developed for Formula 1, Canvas, & Tiger Lines 1995 Unique code on each HRAPQT 1995 I-Blaster improvements leveraged to TIJ 2.5 color 1996 I-Blaster code leveraged to Hercules & Tarzan 1997 I-Blaster Ready for Production 1999 I-Blaster code leveraged to Tiger 2000 XAPQT on Tiger / IQPT on I-Blaster 2001 XAPQT on Lava / IQPT on Tarzan 2010 All testers running same code Test
How is Convergence Achieved ? • Deny variation is necessary • force one solution everywhere without exception • Support “controlled” variations • allow each solution to be “built” from a common set of configurable building blocks Convergence =Synergy Test
How is Convergence Kept? • Lockup the tools so that nothing can change • Allow anyone to initiate change in a “controlled” fashion Convergence =Synergy Test
Controlled Change • Software changes must do nothing by default (i.e. a configuration file must be modified for the change to take effect) • Software changes must be tracked (i.e. a source control strategy is absolutely necessary) • All software changes must be tested (i.e official releases must be made available once tested) Test
IqptMainDlg MAIN MFC UI IQPT Monitor SoftLogix OCX Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Tool UI Component PIE UI Component Focus UI Component NSK UI Component Image AnalyzerUI Data AnalyzerUI GUI Message Log Tool Control PIE Component Focus Component NSK Component Image Analyzer Data Analyzer Vision Engine Key: User Interface PC Tool Control PC Message Logger VEAcquie VEProcess VEDisplay Vision PC On Each PC IQPT Deployment Map Test
IqptMainDlg MAIN MFC UI IQPT Monitor SoftLogix OCX Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Modeless Dialogs Tool UI Component PIE UI Component Focus UI Component NSK UI Component Image AnalyzerUI Data AnalyzerUI GUI Message Log Tool Control PIE Component Focus Component NSK Component Image Analyzer Data Analyzer Vision Engine Key: Code Shared with XAPQT Message Logger Code exclusive to IQPT VEAcquie VEProcess VEDisplay IQPT Component Map Test
XapqtMainDlg MAIN MFC UI Starts and stops all components XapqtMainUI CimQuest Modeless Dialogs Modeless Dialogs Modeless Dialogs ApqtUI (Digital IO) Image AnalyzerUI Data AnalyzerUI GUI Message Log Apqt Component Image Analyzer Data Analyzer Vision Engine Key: Code Shared with IQPT Message Logger Code Exclusive to XAPQT VEAcquie VEProcess VEDisplay XAPQT Component Map Test
House { House() : nBedrooms(3), nBathrooms(2), nOther(3) { } int nRooms() { return nBedrooms + nBathrooms + nOther; } int nBedrooms; int nBathrooms; int nOther; }; House : public abcConfigurable { House() : abcConfigurable(“house”), nBedrooms(“numberOfBedrooms”,3), nBathrooms(“numberOfBathrooms”,2), nOther(“numberOfOtherRooms”,3) { nBedrooms.parent(this); nBathrooms.parent(this); nOther.parent(this); } int nRooms() { return nBedrooms + nBathrooms + nOther; } ConfigParam<int> nBedrooms; ConfigParam<int> nBathrooms; ConfigParam<int> nOther; }; Configurability Made Easy Test
House() : abcConfigurable(“house”), nBedrooms(“numberOfBedrooms”,3), nBathrooms(“numberOfBathrooms”,2), nOther(“numberOfOtherRooms”,3) { nBedrooms.parent(this); nBedrooms.AddComment(“must have a closet”); nBathrooms.parent(this); nBathrooms.AddComment(“include half baths”); nOther.parent(this); } house = ( /> must have a closet numberOfBedrooms = 3 // changed from 2 on Tuesday 15-May-2001 // Support engineer’s comments go here and // are not lost when the configuration is resaved! /> include half baths numberOfBathrooms = 2 numberOfOtherRooms = 3 ) /* End of house */ Configuration Comments Configuration File C++ Code Test
Corvallis IQPT I-Blaster Odo (Offline development) XAPQT Lava San Diego IQPT Tarzan Intro Odo (Offline development) Dublin XAPQT Tiger Singapore XAPQT Tiger Current Installations Test
Bruce Johnson (PM) George Radominski (PM) Ken Tubbs (PM) Sankar Chakrabarti Warren Chism Frank Demonte Kim Mondelli Gil Smith Ed Walsh Scott Carpenter Mike Monroe Tom Twigg Marilyn Zuber April Gilbert Past Developers Test
Ken Shaw (PM) Nadeem Khan Don Welch Randy Stockberger Deqing Hu Yongsheng Liu Guy Howard David Collins Paul Stieger Brad Dixon (I-Blaster) Shawn Gibson (Lava) Ian Kelly (Tiger) Raj Krishnan (Tiger) Jorge Sanchez (Tarzan Intro) Ed Dozier (Tarzan Intro) Current Developers Convergence = Synergy Test