You are on page 1of 26

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)

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 3

Sommario
• Profilo aziendale
• TestStand
– Architettura
– Caratteristiche
• Multithreading
– Concetti generali
– in TestStand
• Casi applicativi
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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.

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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)

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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)
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 10

NxGen ATS Architettura

Operator Interface

NI TestStand Switch
Executive

Code DLL ActiveX


IVI
LabVIEW LabWindows
Modules VI CVI
... Software
Layers

Hardware
Layers
Instrument Specific Drivers

Hardware

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 13

TestStand
Flusso di esecuzione:

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 17

Multithreading
Process

Thread3

Thread2

Thread1 Thread1

Time

Multitask via SW
No HW support

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 18

Multithreading

Multitask via HW
CPU multithreaded e/o
MultiCore

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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)

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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)

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 22

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

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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).

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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à;
– acq. analogica: lettura resolver; Concorrenti
e
– controllo del dispositivo: CAN bus;
Sincronizzati
– acquisizione delle correnti assorbite/generate;
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 26

Multithreading in TS
Caso #1
Threads

Cleanup
Setup CAN bus

Main
sequence

Cleanup
Gen Analog
Setup

Main
sequence

Cleanup
Setup

Acq Analog
Main

sequence

Cleanup
Brake test
Setup

Main

sequence

Begin Start Sync Data queues Sync Stop End Flusso


PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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;
– Analisi della comunicazione: misura della BER; Concorrenti

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 29

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

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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
Th#1
UI DUT Chamber
Thread
Thread Th#2
Notify
DUT
Th#N

Data queue

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
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/
PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg
NIDays 2010 Multithreading in NI TestStand - 32

Pragma Stand 12

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

PP rr aa gg m
m aa
www.pragmaeng.it
EE nn gg ii nn ee ee rr ii nn gg