Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Matrice di switch a relè, con microcontroller conforme agli standard IEEE488.2 e SCPI

  Print

Fig. 2 – Uno dei VI sviluppati per controllare il circuito.

Author(s):
P. Sancono - POLITECNICO DI BARI

Industry:
ATE/Instrumentation

Products:
LabVIEW, Student Editions

The Challenge:
Realizzare una matrice di switch ATE a relè, modulare, per applicazioni didattiche o a basso costo. Obiettivo primario contenere i tempi di sviluppo e i costi totali ad un minima frazione degli analoghi apparecchi commerciali, pur mantenendo buona parte delle funzionalità (robustezza, scalabilità, facilità d’uso, compatibilità SCPI, connettività locale o remota, report errori di sintassi e hardware)

The Solution:
Si è sviluppato un circuito modulare custom basato sull’economico microcontroller Microchip PIC16F628; la connessione al PC di controllo è realizzata mediante una economica porta seriale RS232. Il circuito è composto da una scheda principale e da uno o più moduli periferici a relè. L’uso di NI LabVIEW ha consentito di realizzare rapidamente un sofisticato ma intuitivo pannello di controllo per consentire all’utente finale un flessibile accesso a tutte le funzionalità del circuito. Una delle attività principali nei laboratori di misura e di ricerca è l’utilizzo di strumentazione ATE. In molti casi la topologia del circuito va modificata durante le prove, rendendo parziali i risultati ottenibili con strumentazione automatica poiché è ancora necessario un intervento manuale. Il progetto realizzato, una matrice di switch a relè, elimina quasi del tutto questa necessità. Il sistema (fig. 1), ha una architettura scalabile costituita da un controller, un bus di sistema, uno o più moduli di espansione. Rispetto ad analoghi commerciali presenta diversi vantaggi, e garantisce l’interoperabilità adottando lo stesso linguaggio standard SCPI, la cui implementazione nel firmware ha costituito una sfida. Nella realizzazione di un interfaccia utente per il circuito, ambienti di sviluppo tradizionali e ambienti di calcolo evoluti hanno fallito, lasciando NI LabVIEW come unica possibilità praticabile che consentisse di raggiungere ottimi risultati (fig. 2) in tempi brevi, anche con PC non dell’ultima generazione.

"L’uso di NI LabVIEW ha consentito di realizzare rapidamente un sofisticato ma intuitivo pannello di controllo per consentire all’utente finale un flessibile accesso a tutte le funzionalità del circuito."

Articolo
Una delle attività principali nei laboratori di controllo qualità di molte imprese è l’utilizzo di strumentazione ATE (Automated Test Equipment) per l’effettuazione di serie di misure in automatico, sotto la supervisione di un programma di controllo in esecuzione su un PC. Nella totalità dei casi occorre realizzare fisicamente il collegamento tra i dispositivi o i circuiti in test e la strumentazione di misura automatica. In molti casi di interesse pratico, la topologia del circuito va modificata per concludere la serie di misure di interesse, rendendo parziali i risultati ottenibili con la strumentazione automatica, poiché è ancora necessario un intervento manuale e la presenza in loco dello sperimentatore per completare la serie di test.
Con questo progetto si è realizzato l’obiettivo di rendere automatica, ovvero controllabile dal PC, anche le fasi di cablaggio e di cambio topologia.
Il sistema realizzato, visibile in figura 1, ha una architettura scalabile in cui il controller (circuito principale comprendente lo stadio di alimentazione, un microcontrollore PIC16F628, un adattatore di livello e la porta seriale RS-232), comunica attraverso un bus di sistema proprietario (cavo piatto a 10 fili con i popolari connettori jtag) con uno o più moduli da 16 relè ciascuno organizzati in una matrice di 4 righe per 4 colonne. Più moduli possono essere collegati in cascata sul bus, con terminatore sull’ultimo. Le funzioni di autotest hardware del circuito informano di errori di cablaggio (quali assenza del terminatore o catena interrotta), o di guasti ai circuiti integrati logici sui moduli di espansione. I diversi moduli possono essere sistemati uno accanto all’altro sul piano di lavoro, oppure impilati con distanziatori, se è necessario risparmiare superficie di appoggio. Volendo realizzare, ad esempio, una matrice 8x8 o 4x16 sarà sufficiente collegare 4 moduli al sistema parallelizzando le teste di riga e colonna opportune.
Il sistema consente di collegare dinamicamente strumentazione da laboratorio, come oscilloscopi, generatori di funzioni, multimetri da banco, alimentatori programmabili tra loro e con i componenti in prova che possono essere componenti discreti come diodi o transistor, sensori e attuatori di vario tipo, interi circuiti di condizionamento segnale, ecc. E’ anche possibile montare dinamicamente, da programma, interi circuiti connettendo tra loro i componenti connessioni al sistema.
Esistono matrici di switch commerciali che realizzano egregiamente questi compiti; rispetto a queste il progetto qui presentato ha un costo almeno 6 volte inferiore (€50 con 16 relè contro €300) e, pur mantenendo i requisiti di robustezza, scalabilità, connettività, interoperabilità e autotest, aggiunge i vantaggi di una maggiore semplicità d’uso oltre alla possibilità di aggiornamento del firmware per sviluppi futuri.
Il set di comandi riconosciuti, inviati come stringhe di testo ASCII sulla porta seriale, è conforme allo standard SCPI (Standard Commands for Programmable Instruments), in modo da garantire l’interoperabilità tra il nostro progetto ATE e sistemi commerciali che utilizzano lo stesso standard (praticamente la totalità della strumentazione ATE moderna).
Oltre ai fondamentali comandi per l’apertura e chiusura dei relè (:ROUTE:OPEN e :ROUTE:CLOSE) e le corrispondenti interrogazioni sul loro stato (:ROUTE:OPEN? e :ROUTE:CLOSE?), sono stati implementati diversi “common commands” richiesti dallo standard IEEE488.2, tra cui reset (*RST), identificazione (*IDN?), autotest (*TST?), salva/recupera stato relè (*SAV e *RCL), accesso a registri di stato interni, richiesta numero moduli collegati, richiesta revisione firmware, ecc.
Il parser del linguaggio SCPI, realizzato con una macchina a stati, è tutto nel firmware del microcontrollore ed è in grado di riconoscere diversi errori sintattici o comandi non implementati aiutando lo sviluppatore durante le fasi di debug con messaggi di errore specifici e chiari.
La realizzazione di tale parser in un microcontrollore con sole 2k-word di memoria programma (che doveva contenere anche il BIOS di accesso all’hardware) è stata una delle sfide di questo progetto; la soluzione finale ha richiesto il ricorso alla programmazione diretta in assembly, all’ottimizzazione dello spazio occupato dal codice e alla riduzione del numero di stati mediante una progettazione attenta e l’utilizzo di variabili di appoggio opportune.
Il circuito è stato testato inizialmente con il Terminale di Windows; successivamente si è deciso di creare un’interfaccia utente che consentisse di utilizzare il sistema facilmente ed in modo molto più interattivo ed intuitivo.
Ambienti di sviluppo tradizionali, anche di tipo RAD (Rapid Application Development) come il Visual Basic o il Visual C++, hanno fallito clamorosamente poiché nella versione base non dispongono né di librerie di accesso alla strumentazione ATE né di controlli grafici efficaci per l’interfaccia utente che si aveva in mente e inoltre non assistono per nulla il programmatore nella realizzazione degli algoritmi da porre nel mezzo. Anche il MATLAB, che pure consente l’accesso alla strumentazione, ha dato risultati poco soddisfacenti.
Tutti i problemi sono stati risolti agevolmente ricorrendo a NI LabVIEW che consente la creazione di strumenti da laboratorio virtuali con pochi click del mouse, in un ambiente confortevole, facile da usare, potente, e con un paradigma di programmazione a flusso di dati, eccezionale per l’interazione con strumentazione di laboratorio.
Uno dei VI (Virtual Instrument) di esempio (Simple Serial Write and Read) già funzionava così com’era con il nostro circuito, ed è stato trovato in pochi minuti, a conferma della vastità e dell’ottima organizzazione della raccolta di librerie ed esempi già pronti.
In pochi giorni, con un tempo di sviluppo imbattibile, è stato poi possibile realizzare il VI utilizzato ancora adesso con il circuito, che consente all’utente di chiedere in maniera interattiva la chiusura/apertura delle connessioni e riporta continuamente lo stato dei relè della macchina e la conferma della ricezione dei comandi impartiti, in modo da poter essere utilizzato affidabilmente anche con la macchina montata in una stanza differenze in condizioni d’uso senza riscontro visivo diretto.
Del NI LabVIEWsono state utilizzate le funzioni di accesso alla porta seriale, trattamento di stringhe, gestione errori, risposta ad eventi.

Author Information:
For more information on this Case Study, contact:
P. Sancono
POLITECNICO DI BARI
Tel: 328 5761634
sancono@freemail.it

Browse All Case Studies »

  Print