Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

Controllare programmi da LabView

Salve a tutti, avrei un domanda semplice e veloce.
E' possibile tramite LabView impartire comandi ad altre applicazioni Windows?

In pratica avrei bisogno che una VI di LabView mi esegua un programma di acquisizione dati e quindi dia un ctrl-t ctrl-g per avviare l'acquisizione. Per avviare il programma so che posso usare una vi di prompt dei comandi, ma per impartire i due comandi con ctrl non saprei cosa fare.

Grazie,
filippo
0 Kudos
Messaggio 1 di 8
6.087Visualizzazioni
Ciao,
   se ho ben capito, vorresti usare, nel tuo programma, degli shortcut da tastiera, ossia quando premi <ctrl> + <t> deve essere lanciata un'applicazione, e quindi il problema si sposta nel catturare questa combinazione di tasti.

   Se hai un controllo, click del tasto destro del mouse sul controllo -->advanced  key navigation...  . In questa sezione puoi impostare dei semplici shortcut, come i tasti funzione, non delle vere e proprie combinazioni di tasti.  Per usare una combinazione di tasti, devi creare un menu, ed assegnare a ciascuna voce del menu una combinazione di tasti opportuna, e poi gestisci l'evento del menu.  Da qui, poi, puoi lanciare l'applicazione esterna.  

   Ora, se gli shortcut di cui parli debbono controllare l'applicazione esterna, questo dipende dall'applicazione esterna, che deve avere un'interfaccia di comunicazione con applicazioni esterne.  In particolare, che applicazione esterna devi lanciare?

   Nel caso peggiore, devi interfacciarti col sistema operativo, e lanciare uno shortcut (gestito già dall'applicazione che lanci) avendo portato in primo piano la finestra del programma lanciato.  Ma non so se è la pratica comunemente usata... ti consiglio di postare nel forum inglese, lì è più facile trovare qualcuno che abbia provato a fare questo, o nel forum LAVA, in quanto la tua necessità potrebbe richiedere degli skill un po' più avanzati.

   Tienimi aggiornato, sembra una cosa interessante quella che stai cercando di fare Smiley Felice

graziano

PS.: c'è anche l'opzione ActiveX, ed anch'essa richiede un po' più di sviluppo, ma è valida solo se l'applicazione da lanciare fornisce un'interfaccia ActiveX

graziano

0 Kudos
Messaggio 2 di 8
6.085Visualizzazioni
Allora, forse non mi sono spiegato bene o ho interpretato male la tua risposta. Espongo il problema con maggiore chiarezza.

Sto scrivendo il programma di acquisizione di una piccola camera a gas multi fili (un rivelatore di raggi cosmici) e per problemi inerenti la struttura stessa della camera non è possibile usare integratori come qdc e tdc. Di conseguenza è necessario leggere il segnale dalla camera analogicamente con un oscilloscopio usb. Di conseguenza il programma scritto in labview, non potendo più dialogare con il vme, sarebbe elegante se potesse "dialogare" con il programma dell'oscilloscopio usb, in modo da "governare" la sua acquisizione dati.
Il mio intento era quello di avviare il programma in labview e fare si che fosse quest'ultimo ad aprire il programma dell'oscilloscopio, dargli il "GO" ad acquisire, ed al termine della presa dati dargli lo "STOP" (e magari spegnerlo pure).

Quindi, per aprirlo (me ne occuperò ora) credo sia possibile usare la subvi di prompt.
Per dare il GO, gli shortcut (al programma dell'oscilloscopio) sono ctrl-t (voce del menu) e ctrl-g (voce GO).
Per dare lo stop è analogo con un ctrl-s al posto del ctrl-g.
Per chiuderlo cambiano i ctrl, fossi in ambiente unix darei un kill.

Il mio intento era quindi di automatizzare il processo apri programma, GO -> acquisizione -> STOP, spegni.
E' possibile che labview mandi a windows degli shortcut per la finestra attiva?

Spero sia un poco più chiaro e spero che sia anche fattibile 🙂
filippo
0 Kudos
Messaggio 3 di 8
6.081Visualizzazioni
Ciao Filippo,
   a questo punto, avevo capito bene, siamo nel caso più difficile! Il programma per l'oscilloscopio, per caso, non fornisce un controllo ActiveX? A quel punto potrebbe essere un po' complicato, ma decisamente fattibile, realizzare il tuo scopo.

   Per quanto riguarda la possibilità, per LabView, di simulare eventi tastiera... devo controllare, al momento ti dico che non ne so nulla, spero qualche utente con più esperienza di me possa aiutarti.  Insisto nel suggerire un post su Forum più globali o piu avanzati, lì è quasi sicuro che ti dicano, almeno, se è possibile farlo!

   Buona fortuna col tuo progetto!

graziano
0 Kudos
Messaggio 4 di 8
6.078Visualizzazioni
Purtroppo l'oscilloscopio non ha un controllo ActiveX, il programma parte ma ovviamente necessito di dare i comandi.
Molte grazie comunque per l'aiuto, chiederò aiuto nella sezione Generale e magari, se la risposta è utile, per completezza riporto in questo topic quanto mi consigliano di fare.

Grazie,
filippo
0 Kudos
Messaggio 5 di 8
6.076Visualizzazioni
non dimenticare LAVA, è un buon posto per chiedere informazioni avanzate!

graziano
0 Kudos
Messaggio 6 di 8
6.072Visualizzazioni
Ciao Hitan,
 
Dalla descrizione più dettagliata della tua problematica mi pare di capire che si possa ricondurre il tutto a un problema di Instrument Control.
 
Potresti realizzare una semplice applicazione il LabVIEW che comunichi direttamente con il tuo oscilloscopio e che gli faccia eseguire determinate azioni; piuttosto che controllare da LabVIEW il programma specifico dell'oscilloscopio.
Per far questo hai bisogno di utilizzare le funzioni VISA. Le puoi trovare nella sottopaletta Instrument IO»VISA. In alternativa, puoi verificare sul sito di National Instruments se esistono già i driver di instrument control del tuo specifico oscilloscopio, realizzati per LabVIEW. Avresti così accesso a tutte le funzionalità del tuo dsipositivo.
 
Per approfondire i concetti di Instrument Control segnalo il corso specifico: LabVIEW Instrument Control.
 
Spero questi consigli ti possano essere d'aiuto.
Buon lavoro!
 
Hudson | NIIT AE
0 Kudos
Messaggio 7 di 8
6.060Visualizzazioni
L'oscilloscopio non ha driver disponibili, io in realtà sono un po a corto di tempo e (almeno io) non svilupperò direttamente l'acquisizione VISA. La risposta nel forum generale più interessante è stata di usare una vi per mandare delle event keys, posta in questa url:

http://forums.ni.com/ni/board/message?board.id=170&view=by_date_ascending&message.id=177906#M177906

Tuttavia la mia versione di labview è troppo antiquata per sfruttare tale vi, quindi al momento devo desistere (anche perché a quanto pare il mio lavoro non è "ben richiesto" e chiedono altro).

Grazie comunque a tutti per l'aiuto,
filippo
0 Kudos
Messaggio 8 di 8
6.056Visualizzazioni