NIDays 2010

Multithreading in NI TestStand - 2

Ottimizzazione dei Sistemi di Test Automatico: Multithreading in NI TestStand
Ing. Luigi Magni Responsabile Sviluppo ATS Pragma Engineering Srl (Perugia – Italy)
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 3

Sommario
• Profilo aziendale • TestStand
– Architettura – Caratteristiche

• Multithreading
– Concetti generali – in TestStand

• Casi applicativi
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 4

Profilo Aziendale
Fondata nel 1994 Pragma Engineering nasce dall’unione di competenze nella progettazione hardware e software mirate a fornire servizi e sistemi integrati sia in campo industriale che in R&S.

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 5

Profilo Aziendale
Nel 1999 Pragma diventa AM - NI Nel 2002 due sedi operative distinte:
– Divisione Sistemi Industriali (Perugia) – Divisione Tecnologie per la Riabilitazione (Trevi)

Nel 2004 diventa WEP Nel 2005 diventa Certified AP - NI Nel 2007 ottiene la Certificazione di Qualità UNI EN ISO 9001:2000
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 7

Profilo Aziendale - ATS
Progettazione e realizzazione di sistemi di test automatico per apparati elettronici ed elettrotecnici in ambito industriale ed aerospazio e difesa. Principali ambiti realizzativi:
– – – – – – Sistemi di telecomunicazione via cavo o RF (1MHz ÷ 50GHz) Sistemi digitali analogici e mixed signal (test funzionale) Sistemi di Burn-in con DUT in parallelo Sistemi ad alta potenza (settore energia e distribuzione) Sistemi per la caratterizzazione di dispositivi (passivi ed attivi) Sistemi di diagnosi e ricerca dei guasti (pattern digitali)
Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 8

Profilo Aziendale - ATS
L’intero ciclo di sviluppo dei sistemi è effettuato internamente all’azienda. Adozione ed implementazione di architetture di test di tipo Personale certificato:
– 1 Certified LabVIEW Developer
(20 CLD in Italy and 921 World Wide)

– 1 Certified TestStand Architect & Certified Professional Instructor
(1 CTA in Italy and 23 World Wide)
Source: NI Service – Certified Professionals Report (Dec 2009)

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 10

NxGen ATS Architettura
Operator Interface

NI TestStand

Switch Executive

Code Modules

LabVIEW VI

LabWindows CVI

...

DLL

ActiveX

IVI

Software Layers Hardware Layers

Instrument Specific Drivers Hardware Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 11

TestStand - Caratteristiche
Ambiente integrato per la gestione dei test (sequence engine). • Engine multithreaded ad alte prestazioni • ActiveX server & client con “Code adapter” multipli (LabVIEW, LabWindows/CVI, Visual C/C++ .NET C#, ActiveX, DLL e HTBasic) • Gestione integrata delle sequenze di test e dei modelli di processo • Gestione dei report (HTML, XML, ATML) • Gestione del log su database
Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 13

TestStand
Flusso di esecuzione:

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 16

Multithreading
Cos’è: la scomposizione di un processo in più thread (flussi di esecuzione). Finalità: eseguire un programma alla massima velocità massimizzando lo sfruttamento delle risorse di calcolo (CPU). Nota: necessari processori e S.O. multithreaded per supportare il parallelismo e lo scheduling dei thread
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 17

Multithreading
Process
Thread3 Thread2 Thread1 Thread1

Time Multitask via SW No HW support
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 18

Multithreading

Multitask via HW CPU multithreaded e/o MultiCore
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 19

Multithreading
Vantaggi - Incremento delle prestazioni - Separazione dei flussi - Confinamento dei dati/operazioni - Migliore gestione del ciclo di vita del sw Svantaggi - Complessità architettura sw (pensare in parallelo) - Impegno nello sviluppo del codice - Gestione della sincronizzazione
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 20

Multithreading in TestStand
L’engine (multithreaded nativo) si prende carico di buona parte della complessità dovuta al MT. Modalità di implementazione del MT in TS: - Sequence coding (sync settings/steps) - Process model (batch, parallel)
(e combinazione di entrambi)
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 21

Multithreading in TestStand
Coding: - step ‘syncronization properties’ - sequence call ‘execution options’ (creare un nuovo
Thread/Execution)

- Syncronisation step types (gestione e
comunicazione tra thread)

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 22

Multithreading in TestStand
Process model: - Sequenziale - Parallelo - Batch

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 23

Multithreading in TS Casi applicativi
#1 - Test funzionale e di burn-in per apparato avionico (sistema di controllo per la frenatura dei propulsori). #2 - Burn-in esteso multi DUT per apparati di difesa (dispositivi per la sicurezza delle informazioni).
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 24

Multithreading in TS Caso #1
Requisiti: • Test sequenziale (singolo DUT) • Prove a T ambiente o in ciclo termico • Ampia varietà dei test • Elevata complessità di alcuni test:
– stim. analogica: generazione del segnale di velocità; Concorrenti – acq. analogica: lettura resolver; e – controllo del dispositivo: CAN bus; Sincronizzati – acquisizione delle correnti assorbite/generate; Pragma Pragma www.pragmaeng.it E n g ii n e e r ii n g Eng neer ng

NIDays 2010

Multithreading in NI TestStand - 25

Multithreading in TS Caso #1
Hardware:
• PXI
− 8461 (CAN) − 6115 (sDAQ) − 2569 (switch)

• • • •

PSU Scope DMM Climatic Chamber
www.pragmaeng.it

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

NIDays 2010

Multithreading in NI TestStand - 26

Threads

Multithreading in TS Caso #1
Setup Main CAN bus sequence Setup Gen Analog sequence
Cleanup Cleanup Cleanup Cleanup

Setup

Main

Main

Acq Analog sequence

Setup

Begin

Main

Brake test sequence
Data queues Sync

Start

Sync

Stop

End

Flusso

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 28

Multithreading in TS Caso #2
Requisiti: • Test parallelo #25 DUT (modalità Batch) • Prove in ciclo termico di lunga durata • Possibilità di operare su singoli DUT • Routing & switching • Test sul DUT:
– Controllo continuo del dispositivo: via bus proprietario; Concorrenti – Analisi della comunicazione: misura della BER; Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 29

Multithreading in TS Caso #2
Hardware:
• PXI
− 2576 (Mux) − 2576 (Mux) − 2569 (switch)

• PSU • DCA • Climatic Chamber
Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 30

Multithreading in TS Caso #2
Batch model: • 1 thread (exec) per ogni DUT (fino a 25) • 1 thread per la camera climatica Data queues • 1 thread per la UI • 1 thread per il test di traffico DUT
UI Thread Th#1 DUT Th#2 DUT Th#N
Chamber Thread
Notify

Data queue

Pragma Pragma E n g ii n e e r ii n g Eng neer ng

www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 31

Multithreading in TS
Benefici:
• Massimizzazione dell’utilizzo delle risorse Hw • Scomposizione del codice (modularità funzionale) • Ridotto impegno di codifica (senza TS) • Elevata efficienza (engine x multicore CPU) • Tracciabilità e manutenibilità del codice Risorse: www.ni.com/teststand/ www.ni.com/multicore/
Pragma Pragma E n g ii n e e r ii n g Eng neer ng
www.pragmaeng.it

NIDays 2010

Multithreading in NI TestStand - 32

Pragma Engineering S.r.l.
Ing. Luigi Magni
Divisione Sistemi Industriali
via della Pallotta, 5 06129 Perugia Tel. 075-30418 Fax 075-33202 E-mail: luigi.magni@pragmaeng.it Web site: www.pragmaeng.it
Pragma Pragma E n g ii n e e r ii n g Eng neer ng

Stand 12

www.pragmaeng.it

Sign up to vote on this title
UsefulNot useful