NOTA: per mantenere dei riferimenti comuni nello svolgimento degli esercizi che seguono, è consigliato copiare la cartella crio HO 2013 sul desktop.



Documenti analoghi
Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

PROFIBUS E PROFINET. NI compactrio. ACQUISIZIONE DATI e controllo su reti. con

30 giorni di prova gratuiti, entra nel sito scarica e installa subito mypckey

Gestione Rapporti (Calcolo Aree)

FPf per Windows 3.1. Guida all uso

Corso base di informatica

GUIDA UTENTE MONEY TRANSFER MANAGER

MANUALE UTENTE. Computer Palmare WORKABOUT PRO

DESKTOP. Uso del sistema operativo Windows XP e gestione dei file. Vediamo in dettaglio queste parti.

Installazione di Zelio Soft 2 su Microsoft Windows Vista

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta

1. Il Client Skype for Business

GUIDA UTENTE BILLIARDS COUNTER (Vers )

SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore

Registratori di Cassa

Audio IP Manager Guida Utente

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

Le Proprietà della Barra delle applicazioni e Menu Start di Giovanni DI CECCA -

Operazioni da eseguire su tutti i computer

Come creare il test di Conconi tramite l applicazione Training Center

On-line Corsi d Informatica sul web

PROCEDURA OPERATIVA FASE PREPARATORIA SCRUTINI SISSIWeb

Installazione del software Fiery per Windows e Macintosh

COMUNI-CHIAMO S.R.L. Via San Martino n. 26/1- Monte San Pietro P.IVA, C.F. e numero di iscrizione alla Camera di Commercio di Bologna

2.7 La cartella Preparazioni e CD Quiz Casa

Office 2007 Lezione 02. Le operazioni più

Progetto SOLE Sanità OnLinE

B R E V E G U I D A ( V I S I S L A B C O F F E E ) Breve guida page 1

Manuale per la configurazione di AziendaSoft in rete

IRSplit. Istruzioni d uso 07/10-01 PC

Personalizzazione documenti Word

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

COME COLLEGARSI DA REMOTO AD UN PLC S7-300/400 via MPI Indice

Invio SMS. DM Board ICS Invio SMS

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Modulo 2 Uso del computer e gestione dei file

Dispositivo Firma Digitale

SOMMARIO... 3 INTRODUZIONE...

Guida. Macchina Scratch

CdL in Medicina Veterinaria - STPA AA

STUDIUM.UniCT Tutorial per gli studenti

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

SW Legge 28/98 Sommario

ARGO DOC Argo Software S.r.l. -

Capitolo 3. Figura 34. Successione 1,2,3...

Panoramica Masergy Communicator

Guida all uso di Java Diagrammi ER

Flow!Works Manuale d uso

HORIZON SQL MENU' FILE

MANUALE D USO MANUALE D USO

File, Modifica, Visualizza, Strumenti, Messaggio

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

Guida di Pro PC Secure

Gestione Laboratorio: Manuale d uso per l utilizzo del servizio Windows di invio automatico di SMS

Autoware Ladder Tool (per Arduino ) Basic Tutorial

Test di comunicazione tra LOGO! 0BA7 e Pannello operatore SIMATIC

MICROSOFT OUTLOOK EXPRESS breve manuale d uso

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

ANALISI SOSPENSIONI Modalità Base

Schede ADI ADP ADEM Prestazioni aggiuntive MMG. - Manuale - Data Solution Provider s.r.l.

Guida all'uso del CMS (Content Management System, Sistema di Gestione dei Contenuti)

Manuale d uso [Rev.1 del 07/08/2015] Manutenzione impianti termici Ver [05/01/2015]

Manuale di programmazione BerMar_Drive_Software

Zeroshell: VPN Lan-to-Lan. Il sistema operativo multifunzionale. creato da

BREVE MANUALE DI SOPRAVVIVENZA A WINDOWS 8

STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER.

MOBS Flussi informativi sanitari regionali

Guida alla personalizzazione dei documenti in formato Open Document (ODT)

Come creare il test di Yasso tramite l applicazione Training Center

Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra

Guida all Utilizzo dell Applicazione Centralino

EasyPrint v4.15. Gadget e calendari. Manuale Utente

Capitolo 4 - Costruire un Tutorial a supporto della didattica sulla scienza del suono: realizzare un timbro armonico costituito da 4 sinusoidi

Manuale Istruzioni TELEPESCA. Sommario

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Utilizzo della chiavetta SE 50UMTS per la navigazione Web tramite PC

Manuale Utente. Utilizzo Programma. Magazzino

SOMMARIO COSA SERVE... 2 PRIMA DI INIZIARE... 2 COME PROCEDERE LATO SERVER... 3 COME PROCEDERE LATO CLIENT... 3

ISTR Uso del Windows Messenger

Aggiornamento programma da INTERNET

Guida all utilizzo. Versione guida: 0.1alpha No layout grafico.

MANUALE UTENTE INFOCAR REPAIR ACCESSO SMARTPHONE/TABLET

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

REAL POWER VALUTAZIONE DELLA POTENZA PER LO SPORT, LA RIABILITAZIONE E L ALLENAMENTO SPORTIVO

CAPITOLO 1 PREREQUISITI DI INSTALLAZIONE SOFTWARE RICAMBI CAPITOLO 2 PROCEDURA

Manuale Operativo per la firma digitale

GUIDA. Redazione Portale. Manuale operativo per la creazione contenuti da pubblicare sul portale Autorità Portuale del Levante

MANUALE PARCELLA FACILE PLUS INDICE

Il personale docente e la segreteria didattica per effettuare la gestione degli scrutini dovranno eseguire semplici operazioni.

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

Eclipse - Nozioni Base

Il controllo della visualizzazione

Printer Driver. Questa guida descrive l installazione dei driver stampante per Windows Vista e Windows XP.

1. Le macro in Access 2000/2003

su Windows XP con schede Cisco Aironet 350

GUIDA UTENTE WEB PROFILES

Servizio Feed RSS del sito CNIT

Transcript:

NOTA: per mantenere dei riferimenti comuni nello svolgimento degli esercizi che seguono, è consigliato copiare la cartella crio HO 2013 sul desktop. Page 1 of 34

Esercizio: Configurare il CompactRIO Prima di iniziare a progettare un applicazione pensata per il controllo di velocità di una turbina (simulata da una ventolina installata all interno del simulatore Sound & Vibration Signal) partiremo a connettere il CompactRIO appropriatamente al nostro PC per lo sviluppo. 1. Doppio click sull icona Measurement and Automation Explorer (MAX) presente sul Desktop 2. In Measurement and Automation Explorer (MAX), evidenziare ed espandere la voce Remote Systems nel pannello a sinistra per cercare i sistemi remoti Compact RIO connessi al tuo PC. 3. Clicca sull icona criohandson per vedere le configuarazioni software del tuo CompactRIO. Se non vedi questa voce premere F5 per il refresh. 4. Nella pannello central del MAX, dovresti vedere un piccolo riquadro di nome General Settings (all interno del tab System Settings), con configurazione simile a quella riportata nell immagine sottostante. Page 2 of 34

5. Assicurarsi che il sistema si trovi nello stato Connected Running e sia registrato un indirizzo IP (ad asempio 169.254.125.17). Usereme questo indirizzo IP unicamente per identificare il CompactRIO nella rete punto-punto creata tra PC e CompactRIO stesso. Indirizzo IP : 10.0.0.3 Nota: Sia PC che CompactRIO presentano un indirizzo IP nello stesso intervallo (Vedi maschera di sottorete) 6. Chiudere MAX. Page 3 of 34

Esercizio 1: Fondamenti di CompactRIO Scan Mode Descrizione dell esercizio Configurazione hardware In quest esercizio useremo il crio-9024 con i seguenti moduli: NI 9211: input analogico per termocoppie - primo slot [Scan Interface] Obiettivo Introduzione alla configurazione e all utilizzo del crio. Attraverso l uso del progetto, configureremo un target crio e completeremo un VI che permette di leggere e visualizzare una lettura di temperatura tramite termocoppie, effettuata in modalità Scan interface. Risultati Al termine dell esercizio saremo in grado di: identificare e configurare un sistema PAC di tipo crio usare le variabili di I/O in NI LabVIEW Real-Time monitorare da remoto le variabili di I/O attraverso il Distributed System Manager Istruzioni 1. Apriamo LabVIEW 2013 e selezioniamo la voce Create Project 2. Selezioniamo Blank Project dalla finestra di LabVIEW Getting Started Page 4 of 34

3. Salviamo il progetto come CompactRIO Scan Mode.lvproj dentro la cartella /Esercizi. 4. Nella finestra del Project Explorer clicchiamo col pulsante destro l elemento Project appena rinominato e selezioniamo New»Targets and Devices 5. Espandiamo dal menu ad albero la voce Real-Time CompactRIO, selezioniamo criohandson (o il dispositivo che appare elencato) e clicchiamo su OK NOTA:Tutti i demo box CompactRIO dovrebbero utilizzare l IP 10.0.0.3 Page 5 of 34

6. Apparirà la finestra di dialogo qui sotto. Tramite questa finestra è possibile selezionare la modalità di progammazione desiderata; opzione che è comunque possibile modificarla successivamente. Scan Interface è il nuovo modello di programmazione introdotto con LabVIEW Real-Time 8.6 che consente l accesso agli I/O direttamente da LabVIEW Real- Time senza programmare il chip FPGA. La LabVIEW FPGA Interface rappresenta l approccio tradizionale alla programmazione di CompactRIO. Questa finestra di dialogo appare solo se il modulo LabVIEW FPGA Module è stato installato, diversamente LabVIEW seleziona come opzione predefinita la Scan Interface. 7. Selezioniamo Scan Interface e quindi Continue. LabVIEW rileverà ora i moduli di I/O installati sul crio e li aggiungerà al progetto. 8. Espandiamo cliccando sul segno + il controller CompactRIO nel Project Explorer per mostrare lo Chassis assieme ai moduli della Serie C al di sotto di questo. Per chi ha familiarità con la programmazione di CompactRIO, noterà l'assenza del target FPGA sotto il controller. In cambio compare un nuovo elemento chiamato Chassis. Tutti i moduli sotto lo Chassis utilizzano la nuova funzionalità scan interface per accedere agli I/O direttamente in LabVIEW Real-Time senza programmare il chip FPGA. 9. Espandendo Mod1 (Slot 1, NI 9211) compaiono le I/O Variables, da AI0 fino a AI3, che consentono l accesso ai valori di I/O, scalati e calibrati, del modulo specifico 10. Tasto destro su Mod1 (Slot 1, NI 9211) e selezioniamo Proprietà... Osserviamo come dalla pagina di proprietà dei moduli sia possibile configurare diverse impostazioni, quali il tipo di termocoppie e le unità ingegneristiche di ciascun canale. Page 6 of 34

11. Chiudiamo la pagina di proprietà dei moduli 12. Configuriamo ora l NI Scan Engine dalla pagina delle proprietà del target crio a progetto (criohandson). Tasto destro su criohandson e selezioniamo Properties Page 7 of 34

13. Selezioniamo Scan Engine dal campo delle categorie. Configuriamo lo Scan Period per 1ms e clicchiamo OK per confermare. Questa impostazione ordina allo Scan Engine di aggiornare i valori letti dagli I/O ogni 1 millisecondo. 14. Tasto destro su CompactRIOHandsOn e selezioniamo Add»File 15. Aggiungiamo il file Temperature and Treshold.vi dalla cartella /Esercizi/Esercizio1. Adesso creeremo un semplice VI per mostrare come accedere agli I/O direttamente da LabVIEW Real-Time. Quest'applicazione mostrerà la temperatura letta dalle termocoppie e la confronterà con una soglia. Se la temperature è sotto la soglia si accenderà una luce sull indicatore del front Page 8 of 34

panel. Il VI aperto presenta un'interfaccia utente già preparata e noi completeremo il diagramma a blocchi con gli I/O dai dati disponibili 16. Apriamo il VI e premiamo <Ctrl+E> per passare al diagramma a blocchi. 17. Espandiamo Mod1 (Slot 1, NI 9211) nel Project Explorer. NOTA: per praticità, teniamo aperte e affiancate sul desktop le finestre del Project Explorer e del VI su cui stiamo lavorando. 18. Renomina AI0 in Temp e lo trasciniamo nel diagramma a blocchi. Colleghiamo la variabile di I/O Temp come indicato in figura. Questo codice monitora e mostra la temperatura letta e nello stesso tempo determina se ha superato il livello di soglia. Page 9 of 34

19. Per sincronizzare il codice nello NI Scan Engine, utilizziamo un While Loop temporizzato. Impostiamo il codice in un Timed Loop e colleghiamo il controllo stop allo stop terminal. Troviamo il Timed Loop nella paletta delle funzioni al percorso Programming»Structures»Timed Structures. 20. Doppio click sulla cornice di sinistra del Timed Loop per aprire la finestra di dialogo Configure Timed Loop. 21. Selezioniamo Synchronize to Scan Engine nel campo Loop Timing Source e clicchiamo OK. Questa opzione sincronizza il codice con lo NI Scan Engine, facendolo eseguire solo ogni volta che i valori delle variabili di I/O sono aggiornati. Page 10 of 34

22. Salviamo ed eseguiamo il codice. Clicchiamo su OK e Apply a qualsiasi finestra di dialogo di replica. NI Distributed System Manager parte 1 NI Distributed System Manager consente di monitorare da remoto i valori delle variabili di I/O del CompactRIO, di forzarli e di monitorare le prestazioni del sistema. 1. Apriamo NI Distributed System Manager. Dal LabVIEW Project Explorer, tasto destro su CRIOHandsOn e selezioniamo Utilities»View in System Manager. 2. Espandiamo il controller identificato dal suo indirizzo IP e quindi il modulo NI 9211 identificato dalla voce Mod1 per monitorarne i valori di I/O. Selezioniamo il controller CompactRIO nella finestra a sinistra e selezioniamo il tab CPU/Memory per monitorare il carico di lavoro della CPU e l'utilizzo di memoria. Page 11 of 34

CompactRIO Scan Mode aggiunge la funzionalità di forzatura degli I/O e consente di annullare i valori fisici letti dagli input e di modificare i valori generati dagli I/O di output. 3. Sul VI Temperatura e soglia.vi impostiamo il controllo Temp Threshold a 99 gradi. 4. Nel system manager, selezioniamo la scheda Scan Engine e clicchiamo su Enable Forcing per abilitarlo. 5. Selezioniamo Temp sotto Mod1. Inseriamo 100 nel campo New Value e clicchiamo Force. Il system manager adesso mostra un valore di 100 per Temp. Tutte le applicazioni che utilizzinano la variabile di I/O Temp leggeranno un valore di 100. Nel nostro VI Temperatura e soglia.vi l indicatore Over threshold? adesso mostra che la temperatura supera i 99 gradi. La forzatura degli I/O è una funzionalità che potrebbe essere usata per il debug e la riparazione degli errori. Proviamo a forzare gli altri valori nella nostra applicazione. Fine dell Esercizio 1 Page 12 of 34

Esercizio 2: Gestione I/O sistema Open-Loop Descrizione dell esercizio Configurazione hardware In quest esercizio useremo il crio-9024 con i seguenti moduli: NI 9411: input digitale a 500ns - terzo slot [Scan Interface] NI 9472: output digitale sourcing a 100µs - quarto slot [Scan Interface] Obiettivo Questo esercizio mostra la nuova funzionalità digitale che può essere aggiunta a qualsiasi modulo digitale di I/O a otto canali, senza bisogno di compilare o di programmare il Chip FPGA. Il servo motore sarà controllato con un segnale PWM da 24V proveniente dal modulo di output digitale NI 9472. La posizione e la velocità del motore verranno lette con un encoder in quadratura configurato sul modulo di input digitale NI 9411. Risultati Al termine dell esercizio saremo in grado di: Impostare le proprietà digitali speciali offerte dallo Scan Engine per i moduli digitali usare le variabili di I/O in NI LabVIEW Real-Time Istruzioni 1. Nella finestra del Project Explorer clicchiamo col pulsante destro l elemento Project e selezioniamo Add»File... 2. Aggiungiamo il file RT Open Loop.vi dalla cartella /Esercizi/Esercizio2 e salviamo il progetto. 3. Nel Project Explorer espandiamo Mod4 (Slot 4, NI 9472). Come è possibile osservare il modulo presenta delle variabili di I/O di tipo digitale, tuttavia LabVIEW Real-Time permette di aggiungere un contatore ad alta velocità, PWM, o un input di funzionalità encoder in quadratura a qualsiasi modulo di output digitale a otto canali della Serie C, senza bisogno di programmazione il Chip FPGA. Useremo un segnale PWM per controllare la velocità del nostro servo motore. Page 13 of 34

4. Tasto destro su Mod4 e selezioniamo Properties 5. Nella finestra delle proprietà selezioniamo Specialty Digital Configuration. Impostiamo Pulse-Width Modulation come Specialty Mode e, per PWM0, selezioniamo 1kHz come Frequency (Period). Confermiamo con OK. Page 14 of 34

6. Le variabili di I/O si ripopolano come canali di tipo PWM. 7. Trasciniamo PWM0 nel diagramma a blocchi e la colleghiamo a Motor Power come mostrato in figura. Page 15 of 34

8. Dal Project Explorer, tasto destro su Mod3 e selezioniamo Properties 9. Nella finestra delle proprietà selezioniamo Specialty Digital Configuration. Impostiamo Quadrature come Specialty Mode e selezioniamo 8192µs come Velocity Timebase. Questo fa sì che la velocità del motore venga calcolata ogni 8192µs. Confermiamo con OK. 10. Le variabili di I/O si ripopolano con la Posizione e Velocità. Page 16 of 34

11. Trasciniamo la variabile di I/O Velocity0 nel diagramma a blocchi e la colleghiamo alla funzione di moltiplicazione. 12. Per impedire che, arrestata l applicazione, il modulo PWM continui a generare il suo segnale di controllo, copiamo al di fuori del Timed Loop la variabile di I/O PWM0 e le colleghiamo una costante 0. Il diagrama a blocchi dovrà rassomigliare a quanto rappresentato qui sotto. Page 17 of 34

13. L applicazione è ora completa. Salviamo il progetto e mandiamo in esecuzione il VI. 14. Impostiamo Motor Power a 0 e arrestiamo l applicazione. Senza alcuna programmazione del Chip FPGA siamo stati in grado di inviare un segnale PWM e decodificare un input in quadratura attraverso dei moduli digitali standard a otto canali. Fine dell Esercizio 2 Page 18 of 34

Esercizio 3: Gestione I/O sistema Closed-Loop Descrizione dell esercizio In quest esercizio useremo il crio-9024 con i seguenti moduli: NI 9411: input digitale a 500ns - terzo slot [Scan Interface] NI 9472: output digitale sourcing a 100µs - quarto slot [Scan Interface] Obiettivo In questo esercizio progetteremo un sistema ad anello chiuso per il controllo della velocità della ventolina. Le grandezze in gioco per il nostro sistema saranno: - Setpoint: Valore numerico in RPM selezionabile dall utente attraverso il pannello frontale - Output Variable: Segnale 0-100% generato come segnale PWM da NI 9471 per comandare in velocità la ventolina - Process Variable: Segnale di velocità della ventolina 0-6000 RPM misurato tramite NI 9411 (Velocity0) attravero la configurazione Digital Specialty Page 19 of 34

Risultati: Al termine dell esercizio saremo in grado di: Creare delle variabili Scan Engine da progetto per leggere e scrivere segnali Configurare un blocco funzionale PID Chiudere un anello di reazione grazie alle caratteristiche di un sistema operativo Real-Time Istruzioni 1. Nella finestra del Project Explorer clicchiamo col pulsante destro l elemento criohandson (10.0.0.3) e selezioniamo Add»File... 2. Aggiungiamo il file RT Closed Loop.vi dalla cartella /Esercizi/Esercizio3. Il file carica un VI realizzato parzialmente che utilizzeremo per acquisire e generare dai moduli della serie C. Il Timed Loop è già stato sviluppato nell esercizio precedente per acquisire velocità e accelerazione della ventolina. Page 20 of 34

3. Apriamo la finestra di dialogo del second Timed Loop in basso per verificare che la sorgente di temporizzazione Synchronize to Scan Engine sia correttamente selezionata e che il periodo di Scan sia impostato su 1. Quindi clicchiamo su OK per confermare. Page 21 of 34

4. Dalla function palette del diagramma a blocchi richiamare il blocco funzionale PID, subvi che consentirà di chiudere l anello sul sistema servo motore. Per richiamare la Function Palette, cliccare con il tasto destro in un punto qualsiasi del Diagramma a Blocchi e attraverso il percorso: Programming RealTime - Function Blocks Control richiamare il blocco funzionale PID e posizionarlo all interno del Timed Loop in basso. 5. Doppio click sul blocco funzionale PID per aprire il Menù di Configurazione. Configurare la le proprietà Output High e Output Low del blocco funzionale PID rispettivamente a 100 e 0. In questo modo il regolatore PID piloterà il canale PWM0 con un range di duty cicle 0-100 compatibile con il range di funzionamento del servo motore. Inoltre modificate il valore di SetPoint High inserendo un valore pari a 6000 Page 22 of 34

6. Connettete ora rispettivamente il controllo Setpoint Velocity [RPM], la variabile Velocity0 e i controlli Proportional gain (Kc) e Integral Time (Ti) ai terminali d ingresso setpoint, process variable, proprtional gain e Integral Time del blocco PID. 7. Connettere il terminale di uscita del blocco PID output alla variabile Scan Engine del modulo NI9263 PWM0 Page 23 of 34

8. Eseguiamo il VI. Cambiamo sul pannello frontale il valore del controllo Setpoint Velocity [RPM] agendo sulla lancetta rossa. Dovreste osservare l effetto del controllo prestando attenzione all andamento dell indicatore Motor Velocity [RPM]. Variare il valore del guadagno proporzionale e integrativo del blocco PID per osservare differenti risposte del sistema. 9. Riportate a 0 il valore del controllo Setpoint Velocity [RPM] e premete il tasto STOP su pannello frontale. 10. Chiudete e salvate il VI. Fine dell Esercizio 3 Page 24 of 34

Esercizio 4: Programmazione FPGA- Generazione di Onda Quadra (PWG) Descrizione dell esercizio In quest esercizio useremo il crio-9024 con i seguenti moduli: NI 9411: input digitale a 500ns - terzo slot [Scan Interface] NI 9472: output digitale per generazione Onda Quadra - quarto slot [FPGA Programming Mode] Obiettivo La programmazione del crio in modalità Scan Engine è semplice, intuitiva ma presenta delle limitazioni in termini di massime frequenze di acquisizione e generazione utilizzabili. Introduciamo quindi con questo esercizio la possibilità di scrivere del codice LabVIEW FPGA per poter raggiungere prestazioni più elevate andando a personalizzare il chip FPGA presente sullo chassis del crio. Realizzeremo un applicazione suddivisa in due parti: un VI LabVIEW FPGA che genera un segnale digitale ad onda quadra (Segnale PWM per il servo motore) tramite il modulo NI9411. Programmando il VI LabVIEW FPGA non è possibile utilizzare la configurazione Digital Specialty ad alto livello, tuttavia utilizzeremo un IP di LabVIEW FPGA (a tutti gli effetti un SubVI) per generare un onda quadra modulabile in frequenza e duty cicle. I parametri di configurazione frequency e duty cycle saranno passati tramite dei registri (controlli di LabVIEW) ad un VI LabVIEW Real-Time, il quale agisce da Host e fornisce i dati trasferiti al target FPGA. Saremo quindi in grado di personalizzare in maniera pienamente flessibile il segnale PWM che pilota il servo motore Risultati Al termine dell esercizio saremo in grado di: utilizzare le IP di LabVIEW FPGA Module compilare del codice FPGA per generare il bitfile comunicare dati tra il target FPGA e l host Real-Time crio Istruzioni 1. Apriamo CompactRIO Scan Mode.lvproj Page 25 of 34

2. Tasto destro del mouse su Chassis»Properties e selezioniamo la configurazione LabVIEW FPGA Interface 3. Aggiungiamo il Target FPGA al nostro Project Explorer selezionando Chassis (crio-9103), tasto destro e New»FPGA Target. 4. Nella finestra del Project Explorer clicchiamo col pulsante destro l elemento FPGA Target (RIO0, crio9103) selezioniamo Add»File... Aggiungiamo il file FPGA SquareWave Generation.vi dalla cartella /Esercizi/Esercizio4. Il file carica un VI realizzato parzialmente che utilizzeremo per svilluppare il codice LabVIEW FPGA. 5. Dal Project Explorer trasciniamo il modulo Mod4 (Slot4, NI9472 all interno dell elemento FPGA Target (RIO0, crio9103). In questo modo sarà possibile richiamare i canali di acquisizione del modulo all interno del VI LabVIEW FPGA aggiunto al passo precedente. Page 26 of 34

6. Salviamo il progetto Qui di seguito il diagramma a blocchi di FPGA SquareWave Generation.vi Page 27 of 34

7. Nel Project Explorer all interno dell elemento FPGA Target (RIO0, crio9103), espandere la cartella Mod3 e rinominare canale DO0 in PWMOut 8. Sempre dal Project Explorer, trasciniamo il nodo FPGA I/O PWMOut all interno del ciclo while. 9. Aggiungiamo sempre all interno del ciclo la IP Sqaure Wave Generator dalla paletta delle funzioni al percorso Programming»FPGA Math & Analysis» Generation. Filtreremo l accelerazione per ottenere un valore RMS. 10. Una volta inserita nel codice si apre la finestra di configurazione. Configuriamo e completiamo il codice come da figura: Page 28 of 34

11. Connettiamo ora: - Il controllo Frequency (periods/tick) al terminale d ingresso dell IP frequency (periods/tick) - Il controllo duty cycle (periods) al terminale d ingresso dell IP duty cycle (periods) - Il terminale d uscita dell IP Square Wave Out all indicatore Square Wave Out e al nodo di uscita PWMOut In figura il codice appena realizzato che consentirà di verificare la presenza di picchi di accelerazione. 12. Salviamo e manda in esecuzione il VI per incominciare il processo di compilazione. 13. Premiamo OK nel primo dialogo per confermare che vogliamo incominciare il processo di compilazione utilizzando il nostro pc di sviluppo. Page 29 of 34

14. Il dialogo successivo indica che LabVIEW sta generando i file intermedi. Questo è il passaggio in cui il codice LabVIEW è convertito in codice VHDL (Hardware Descriptive Language) per chip FPGA. 15. Il sucessivo messaggio che appare è il Compilation Status. Il server di compilazione è basato su strumentazione Xilinx per compilare il codice VHDL ottenuto al passaggio precedente. Questo processo può impiegare del tempo prima di concludersi, in funzione della logica presente nel proprio codice LabVIEW FPGA. E un periodo di attesa normale che ci si aspetta quando si programma in LabVIEW FPGA o in un qualunque altro linguaggio di rappresentazione hardware per target FPGA. Page 30 of 34

16. In attesa che il processo di compilazione finisca, ci possiamo disconnettere dalla compilazione per incominciare a programmare il VI Host. Procediamo come mostrato da figura. Una volta che ci siamo disconnesso, è imporatante non apportare cambiamenti al VI FPGA. Se qualunque cosa nel VI venisse cambiata è necessario ricompilarlo per poterlo mandare in esecuzione. E sempre possibile riconnettersi alla compilazione cliccando la freccia di Run del VI FPGA o selezionando col tasto destro build specification e scegliendo Reconnect to Compilation. Adesso realizziamo il VI LabVIEW Real-Time che comunica con il VI FPGA. In questo modo possiamo trasferire i dati prodotti dal target FPGA al Host Real-Time. 17. Nella finestra del Project Explorer clicchiamo col pulsante destro l elemento criohandson (10.0.0.3) selezioniamo Add»File... Aggiungiamo il file RT-FPGA Closed Loop.vi dalla cartella /Esercizi/Esercizio4. Il file carica un VI RealTime realizzato parzialmente che attuerà il controllo sul servomotore come nell esercizio 3. Andremo ad aggiungere il codice che implementerà l ulteriore controllo di freqeunza e duty cicle da comunicare al target FPGA Page 31 of 34

18. Selezioniamo la sottopaletta FPGA Interface dalla paletta delle funzioni e inseriamo nel diagramma a blocchi i quattro elementi raffigurati nella figura qui sopra. Creeremo un collegamento col codice FPGA attraverso Open FPGA VI Reference. Useremo il Read/Write Control per leggere i campioni dal VI FPGA e per inviare i segnali di Duty Cicle e frequenza al VI FPGA Square Generation.vi e, infine, il Close FPGA VI Reference per chiudere il collegamento con il codice FPGA. Completa il VI come in figura sotto: Page 32 of 34

19. Cliccando col tasto destro del mouse Open FPGA VI Reference, selezioniamo dal menu a tendina Configure Open FPGA VI Reference.. e completiamo come mostrato qui di seguito. 20. Completa il codice come nella figura seguente con i collegamenti rimanenti. Espandere il nodo Read\Write Control FPGA verso il basso in modo da poter scrivere verso il VI FPGA le due grandezze Duty Cicle e frequenza e poter leggere il valore digitale Square Wave Out generato dal VI FPGA. Page 33 of 34

21. Salviamo il codice. NOTA: perché l'applicazione sia eseguibile bisogna attendere che Generation.vi abbia terminato la compilazione. FPGA SquareWave Il VI LabVIEW Real-Time così completato può essere mandato in esecuzione. Al termine del deploy sul Target Real-Time, il codice manderà in esecuzione il VI FPGA compilato. 22. Lanciamo il VI, il funzionamento è analogo a quello osservato al termine dell esercizio 3. È possibile provare ad aumentare da pannello frontale la frequenza dell onda quadra attraverso il controllo slider Square Wave Out Frequency e osservare l effetto di risonanza che si ha sul servo motore. 23. Interrompiamo l applicazione. 24. Chiudiamo i VI aperti e il progetto. Fine dell Esercizio 4 Page 34 of 34