================================================================================ visualizzare istogramma creato in LV su di un foglio excel ================================================================================ AUTORE: 537 DATA :02/01/2006 - 23:10:21 ---------------------------------------- Ho la necessità di eliminare la prima colonna del foglio dati relativo al'istogramma visualizzato in excel. ---------------------------------------- ================================================================================ Grafico XY impostare tolleranze PLOT ================================================================================ AUTORE: 904 DATA :09/01/2006 - 08:11:00 ---------------------------------------- Per cortesia , Qualcuno sa indicarmi come impostare su di un grafico XY le tolleranza sul PLOT . Dal lato pratico desidero visualizzare il valore di una temperatura con indicato anche sul grafico le linee del valore min e max ammessi . In attesa di un vs aiuto Ringrazio Anticipatamente . Saluti . \":D\" ---------------------------------------- AUTORE: 129 DATA :09/01/2006 - 08:43:06 ---------------------------------------- Ciao, io utilizzerei un chart per questo lavoro. Basta che inserisci in ingresso al chart, un cluster composto da temperatura-range max-range min. Guarda l'esempio se hai LV7.1 ---------------------------------------- AUTORE: 904 DATA :09/01/2006 - 10:42:02 ---------------------------------------- Grazie per il consiglio . Purtroppo utilizzo un grafico xy perchè visualizzo la temperatura sull'asse y e sull'asse x il timestamp . Non penso che posso integrare il tuo esempio sul mio sistema attuale. Hai qualche consiglio su come integrarlo in un grafico xy ? Grazie Saluti \":D\" ---------------------------------------- AUTORE: 129 DATA :09/01/2006 - 17:24:15 ---------------------------------------- Ok, scusa.. Per XY prova a vedere questo esempio. Ciao ---------------------------------------- ================================================================================ Analizzatore di spettro a supereterodina help! ================================================================================ AUTORE: 1029 DATA :09/01/2006 - 20:52:00 ---------------------------------------- Salve a tutti! Per la mia tesi devo creare un analizzatore di spettro a supereterodina in ambiente Labview. Qualcuno sa per caso se è già stato realizzato? Potreste indicarmi in caso dove scaricare il diagramma a blocchi dell'analizzatore o anche solo alcuni parti di esso? (oscillatore locale, filtri etc...). La mia versione di Labview è la 7.1. Grazie a tutti! ---------------------------------------- AUTORE: 247 DATA :09/01/2006 - 23:53:00 ---------------------------------------- Ciao, ho dato un'occhiata con Google per trovare qualche VI che potesse fare al caso tuo...ma quasi nulla, solo [url=http://www.physics.utah.edu/~kieda/labnotes.htm:12eo1nbt]questo link[/url:12eo1nbt] porta a molti vi, realizzati per un corso di elettronica, tra i quali spunta anche un fantomatico <superheterodyne.vi>...non garantisco ma cmq segui il link e vedi tu. A parte i vi, ho trovato molti documenti che parlano di esperimenti simili cercando \"labview superheterodyne\" in Google. Per trovare qualche delucidazione in più, per i link a pdf, risali le directory del sito di turno.\":D\" BYE e benvenuto. P.S. in fondo alla pagina linkata trovate un file .zip con la versione student di LabVIEW 3.1...sta tutto su 4 dischetti!!! \":D\" \":D\" Real 'old Fashion! ---------------------------------------- AUTORE: 1029 DATA :10/01/2006 - 17:21:13 ---------------------------------------- Grazie mille Apollon! Mi metto al lavoro! ---------------------------------------- AUTORE: 1068 DATA :24/02/2006 - 09:54:51 ---------------------------------------- ciao..ho fatto rivelatore inviluppo filtro if e modulatore..ora dovrei controllare frequenza oscillatore x la trasposizione in frequenza con un onda a dente di sega..non riesco mica sai rimane smpre a frequenza costante..hai idea??ciao Giacomo come sei messo? ---------------------------------------- AUTORE: 1029 DATA :02/03/2006 - 15:41:12 ---------------------------------------- Ciao Giacomo, scusa se non ti ho risposto prima, era da tanto che non tenevo d'occhio questo topic. Per fare variare linearmente la frequenza dell'oscillatore locale ho utilizzato due Simulate Signal. Uno di essi l'ho impostato come dente di sega e l'altro come sinusoide. Con un controllore faccio variare l'ampiezza del dente di sega e con un altro la sua frequenza, in uscita prendo il segnale del dente di sega e lo collego all'ingresso frequenza del Simulate Signal (seno). Per fare scorrere il grafico tutto deve essere messo in un ciclo while. Io invece non riesco a sincronizzare il segnale da esaminare con il dente di sega, infatti l'immagine sfarfalla, vorrei inserire qualche circuito di trigger ma non so come fare. A presto! ---------------------------------------- ================================================================================ OR tra un array di interi e 1, ma con risultato booleano ================================================================================ AUTORE: 1013 DATA :10/01/2006 - 07:51:26 ---------------------------------------- Ho un`array di int16 lungo 5 campi. Il loro valore puo` essere 0 o 1 (risultato di una lettura di bit). Devo verificare se uno di questi campi e` pari a 1. Se cosi` fosse allora il risultato deve essere un boolean (True). Mi serve per abilitare un Trigger. Grazie \":D\" \":D\" ---------------------------------------- AUTORE: 4 DATA :10/01/2006 - 10:56:13 ---------------------------------------- Che ne dici di una soluzione del genere? Ciao, ---------------------------------------- AUTORE: 1013 DATA :10/01/2006 - 13:32:05 ---------------------------------------- direi che e` piu` che ottima....... \":D\" grazie \":wink:\" ---------------------------------------- ================================================================================ domanda sui fili (wiring) ================================================================================ AUTORE: 123 DATA :10/01/2006 - 11:27:07 ---------------------------------------- Per favore supponendo di avere un piccolo monitor ed un programma di labview molto esteso in lunghezza e devo collegare 2 oggetti che distano tra di loro piu' di quanto il monitor sia esteso, come faccio a collegarloìi? Se clicco su uno degli oggetti si apre lo strumento filo e non riesco piu' ad accedere allo scroll bar della finestra del block diagram per arrivare fino all'altro. C'e' un modo per collegarli? ---------------------------------------- AUTORE: 129 DATA :10/01/2006 - 11:30:50 ---------------------------------------- Con il rocchetto, premi sul primo controllo, quindi tenedno premuto ti sposti, finchè in prossimità della barra di scorrimento il monitor scrolla e ti sposta , quindi trovato l'indicatore rilasci su di esso il pulsante per collegare il filo. ---------------------------------------- AUTORE: 4 DATA :10/01/2006 - 14:11:08 ---------------------------------------- puoi anche evitare di tenere premuto. Io di solito col rocchetto seleziono il punto di partenza (controllo, indicatore ecc) con un click, poi mi sposto sul diagramma facendo dei click per \"puntare\" il filo, in pratica fare drgli angoli (usare la barra per \"deviare\" gli angoli), se arrivo al bordo basta far finta di niente e LV scrolla da solo se si insiste ad andare \"oltre\" (bisogna rimanere col cursore sulla barra di scroll ... TIP se in queste condizioni si tiene premuto SHIFT si và molto più veloce! Ciao, ---------------------------------------- AUTORE: 645 DATA :11/01/2006 - 08:21:36 ---------------------------------------- Che io sappia non esistono altri metodi. Clicchi sul primo blocco, ti sposti sul secondo blocco, clicchi nuovamente. LabView \"scrolla\" lo shermo in modo automatico. Non è comodissimo ma funziona. ---------------------------------------- AUTORE: 123 DATA :11/01/2006 - 11:33:40 ---------------------------------------- Grazie a tutti, anche se speravo che ci fosse un modo per sospendere temporaneamente il filo per accedere allo scroll bar. ---------------------------------------- ================================================================================ LV e diadem ================================================================================ AUTORE: 123 DATA :11/01/2006 - 11:39:47 ---------------------------------------- Vorrei usarli in cascata, solo che l'express VI NI Diadem Report Wizard non fa al caso mio. Se c'e' qualcuno esperto di connettivita' tra i 2 gli faccio qualche domanda. ---------------------------------------- ================================================================================ isolare un periodo di una forma d'onda ================================================================================ AUTORE: 1031 DATA :11/01/2006 - 12:33:55 ---------------------------------------- Scusatemi,ma sono molto poco pratica di labview quindi la mia domanda potrebbe sembrarvi sciocca.... Qualcuno di voi sa per caso come si può isolare un singolo periodo di una forma d'onda? ---------------------------------------- AUTORE: 645 DATA :11/01/2006 - 13:15:44 ---------------------------------------- Conosci il periodo del segnale? Se sì puoi usare la formula: numero punti per periodo= Freq. Campionamento / Freq. Segnale e acquisire un numero di campioni pari a \"numero punti per periodo\". La stessa regola vale se generi tu il segnale. Se però acquisisci il segnale dall'esterno dovresti anche sincronizzare l'acquisizione con il segnale: altrimenti la figura che ottieni potrebbe non partire dall'origine degli assi. Non so se è molto chiaro... ---------------------------------------- ================================================================================ inserire pausa in un VI ================================================================================ AUTORE: 852 DATA :11/01/2006 - 15:05:58 ---------------------------------------- Ciao a tutti, chiedo aiuto per il mio programma. Il mio VI deve eseguire misure ripetute (lo faccio con un ciclo for....) e alla fine memorizzare il tutto in un array (alla fine). Posso in qualche modo far incrementare l'indice del ciclo for per esempio con un controllo sul front panel?Nel senso che sono io dall'esterno che gli dico quando eseguire la misura. Oppure è possibile inserire e disinserire una pausa per il ciclo for? Grazie in anticipo per l'aiuto. ---------------------------------------- AUTORE: 645 DATA :11/01/2006 - 15:09:36 ---------------------------------------- Vediamo se ho capito: tu hai un ciclo all'interno del quale viene eseguita una misura (o una serie di operazioni). Solo che il ciclo non è temporizzato ma vuoi che lavori solo quando decidi tu? Se sì devi sfruttare la struttura a \"eventi\": puoi inserire nel front panel un bottone che, se premuto, comporta l'esecuzione delle operazioni. ---------------------------------------- AUTORE: 129 DATA :11/01/2006 - 15:29:35 ---------------------------------------- Puoi anche utilizzare un normalissimo case, per attivare o disattivare la misurazione, magari facendola controllare da un comparatore per gestire il tempo. Esempio un controllo per impostare il tempo, uno shift register per fare un contatore dei ciclixiltempociclo, quindi confronti quando è uguale, scatta l'acquisizione e resetta il contatore(shift register). ---------------------------------------- ================================================================================ elaborazione immagini *.fpf ================================================================================ AUTORE: 1015 DATA :12/01/2006 - 08:45:14 ---------------------------------------- ciao a tutti sto utilizzando una termocamera che produce immagini nel formato .fpf (floating point format). vorrei poter acquisire l'immagine e riportare i valori dei pixel in un array, ma con questo formato nn ci riesco. in realtà, ho provato ad utilizzare il file di esempio di labview ImageToArrayExample.vi ma qst formato proprio nn gli piace. chi mi sa aiutare? grazie mille ---------------------------------------- AUTORE: 34 DATA :21/04/2006 - 15:25:43 ---------------------------------------- ciao Cloe, questo è un formato pubblico della Flir. Io ho il Labview Digital Toolkit per acquisire e aprire file prodotti da termocamere Flir e riesco ad aprire questi files. Cmq nel manuale del toolkit è presente la descrizione della struttura del file .fpf e sarebbe semplice leggerlo con Labview, trattandolo però come file binario. Se ti servono altre indicazione fammi sapere, visto che il messaggio è anche vecchio e magari hai già risolto! ---------------------------------------- AUTORE: 1015 DATA :21/04/2006 - 16:05:56 ---------------------------------------- in realtà avevo un pò abbandonato la faccenda perchè sto semplicemente acquisendo l'immagine (come array bidimensionale) senza memorizzarla. anche tu usi una termocamera flir? ethernet o firewire? che tipo di applicazioni stai sviluppando? magari ci torniamo utili a vicenda \";-)\" io mi occupo di antincendio. attualmente ho un bel problema...magari dai un occhio al topic "riconoscimento zone calde in un'immagine" di sicuro puoi essermi d'aiuto visto che lavoriamo con lo stesso strumento! grazie mille ---------------------------------------- AUTORE: 34 DATA :21/04/2006 - 18:55:39 ---------------------------------------- Io sto lavorando soprattutto sull'individuazione di difetti in materiali compositi. Ma tu di dove sei? Stai lavorando per un'azienda? Appena ho tempo leggo il topic e poi ti faccio sapere... ciao! ---------------------------------------- AUTORE: 34 DATA :21/04/2006 - 18:56:29 ---------------------------------------- ah dimenticavo... la termocamera è una S40 firewire ---------------------------------------- AUTORE: 34 DATA :26/04/2006 - 12:44:03 ---------------------------------------- ciao Cloe, ho letto i post con l'oggetto "elaborazione zone calde" e credo che l'ultimo risposta di Ale914 sia quella giusta. Infatti penso che sia opportuno definire una soglia in temperatura oltre la quale è possibile considerare la zona calda e poi applicare uno degli algoritmi di soglia automatica per definire quante zone calde sono presenti e dove (con Imaq). ciao! Simone ---------------------------------------- AUTORE: 1015 DATA :12/06/2006 - 08:07:57 ---------------------------------------- ciao simone, poichè sto riaffrontando il problema della lettura dei file .fpf potresti dirmi come hai fatto a leggerli? ho provato cn parecchi blocchi del tool fornito dalla flir ma nn ci riesco... mi dai qlk dritta? grazie mille ---------------------------------------- ================================================================================ Reference .NET ================================================================================ AUTORE: 1033 DATA :12/01/2006 - 13:03:05 ---------------------------------------- Ciao, ho un VI che comanda Remote Control usando .NET. Il VI che ho realizzato funziona perfettamente se lo lancio a singoli run, se provo ad importarlo come subVI all'interno di un ciclo o comunque in una struttura che lo chiamo più volte questo cresha. Il problema riscontrato è che il subVI funzione alla prima chiamata ma alla seconda ho notato che all'uscita dell'Invoke Node \"Xml Serializer\" il deserialize reference è 0. Sono riuscito ad ovviare il problema spezzando il VI in due, una prima parte fino al blocco incriminato ed una seconda che riceve in ingresso i due reference uscenti dal primo blocco. In questo caso riesco senza problemi a far ciclare il VI reletivo al secondo blocco e mandare una sequenza di comandi. Questo però mi crea problemi in TestStand che non riesco a risolvere. Qualcuno mi sa dare una dritta? Grazie. ---------------------------------------- ================================================================================ Variazione lineare di tensione ================================================================================ AUTORE: 341 DATA :12/01/2006 - 18:21:43 ---------------------------------------- Salve, devo pilotare un inverter con una tensione che deve variare da 0 a 5 volt in modo lineare e il tutto deve avvenire in 20 secondi (in effetti dovrebbe essere tipo un segnale a rampa) Inoltre devo anche inviare un ciclo di 20 \"impulsi\" di tensione di 5 volt ed ogni impulso deve durare 5 secondi mentre tra un impulso e il successivo deve trascorrere un tempo di 20 secondi (ecco perchè ho virgolettato il termine impulso,poichè in effetti non è tale).Ringrazio quanti mi aiuteranno,eventualmente anche con dei vi contenenti dei Timed Loop. Utilizzo una scheda DAQ mx 6229. Granzie ancora.Vincenzo ---------------------------------------- ================================================================================ data grafico ================================================================================ AUTORE: 683 DATA :13/01/2006 - 10:09:02 ---------------------------------------- ciao a tutti, ho un grafico e vorrei che all'avvio del programma perndesse in automatico la data dall'orologio del PC come devo fare?? grazie a tutti ciao ---------------------------------------- AUTORE: 680 DATA :13/01/2006 - 16:58:22 ---------------------------------------- ciao, scusa, non ho ben capito, dove devei mettere la data sul grafico??? ---------------------------------------- AUTORE: 129 DATA :13/01/2006 - 17:59:07 ---------------------------------------- Non funziona proprio bene, ma sono sicuro che puoi prendere spunto... \":lol:\" ---------------------------------------- AUTORE: 683 DATA :25/01/2006 - 10:29:49 ---------------------------------------- buono spunto , io ho necessità di usare un chart ho trovato nel suo porperty node xscale format che mettendo il valore appropriato cioè 7 ci mette la data nell'asse X del chart. e fin qui tutto ok il problema che mi parte sempre dalla mezzanotte del 1904 !! Come devo fare a dargli la data corrente quando il vi parte?? grazie mille ---------------------------------------- AUTORE: 683 DATA :02/02/2006 - 13:05:34 ---------------------------------------- grazie al tuo spunto sono riuscito a mettere la data completa nel grafico in un modo un po' meno macchinoso di come mi avevei suggerito tu: in pratica utilizzando sempre la property node \"Xscaleminimum\" gli invio la data completa in secondi senza calcolarla ma convertendo il timestamp in variabile double allego il vi grazie a tutti ---------------------------------------- ================================================================================ VI in memoria? ================================================================================ AUTORE: 1033 DATA :13/01/2006 - 17:27:33 ---------------------------------------- Ciao, ho uno strano problema con un VI. Lanciando il VI a singoli run funziona quando lo uso come subVI e provo a richiamarlo +' volte, funziona alla prima chiamata e poi termina con errore su un \"constructore node\" di .NET. Da altre prove che ho fatto sembra che mi tenga in memoria qualcosa del VI; tentando di aprirlo mi dice che è già in uso. Domanda1: è possibile fare in modo che un VI terminata la sua esecuzione venga completamente scaricato dalla memoria e chiusi tutti i suoi reference object? Grazie per l'aiuto. ---------------------------------------- AUTORE: 247 DATA :14/01/2006 - 13:57:11 ---------------------------------------- Ciao, [quote="Altomare":7cgakoaw]Domanda1: è possibile fare in modo che un VI terminata la sua esecuzione venga completamente scaricato dalla memoria e chiusi tutti i suoi reference object? [/quote:7cgakoaw] la funzione che puoi usare si chiama \"Request Deallocation\" e la trovi seguendo questo percorso: Advanced->data Manipulation->Request Deallocation, per l'utilizzo guarda la descrizione e soprattutto controlla che elimini anche le ref. al vi...dubito infatti che lo faccia in automatico.. BYE. ---------------------------------------- ================================================================================ frequenza di campionamento ================================================================================ AUTORE: 893 DATA :13/01/2006 - 19:44:06 ---------------------------------------- Salve a tutti, ho un problema nell'impostare la freq. di campionamento: ho una scheda di acquisizione da 200 ksample/s e devo acquisire 4 canali analogici ciascuno con segnali al massimo di 10 kHz. Per acquisire uso il blocco Acquire Waveforms.vi in cui bisogna impostare il sample rate. La domanda è: se imposto un sample rate ad esempio di 50 ksample/s, il labview acquisisce ogni canale con 50 ksample/s oppure acquisisce ogni singolo canale (dei 4 totali) con sample rate di 50k/4 ? Giovanni Grazie ---------------------------------------- AUTORE: 129 DATA :14/01/2006 - 16:22:16 ---------------------------------------- Il problema è come organizzi l'acquisizione sul labview. Se utilizzi un architettura parallela, leggi ogni canale con una frequenza personalizzata. In sostanza ti troverai con 4 cicli while, in ognuno dei quali inserisci la funzione Acquire Waveforms.vi, ognuna con un sample rate personalizzato.... ---------------------------------------- AUTORE: 893 DATA :14/01/2006 - 23:02:54 ---------------------------------------- Non uso una configurazione parallela, ma un unico blocco Acquire Waveforms.vi, sul quale imposto quali canali acquisire. Ad esempio devo acquisire i canali 0,1,2 , come sample rate metto 50 k, usando sempre un unico blocco Acquire waveform.vi, i canali così vengono acquisiti con sample rate di 50 k ciascuno, o di 50 k /4 per ognuno? Giovanni77 ---------------------------------------- AUTORE: 865 DATA :19/01/2006 - 13:38:58 ---------------------------------------- ciao giovanni,potrei sapee che scheda usi??? ---------------------------------------- AUTORE: 893 DATA :19/01/2006 - 19:08:12 ---------------------------------------- [quote="abcd523":ig6sp7t4]ciao giovanni,potrei sapee che scheda usi???[/quote:ig6sp7t4] uso una scheda 6052e, ha un sample rate massimo di 200 ksample / s Giovanni ---------------------------------------- AUTORE: 914 DATA :21/01/2006 - 16:44:48 ---------------------------------------- perchè per una frequenza di 10 kHz usi una frequenza di campionamento di 50 ksample/s quando basta 20 ksample/s? 2 * la frequenza da campionare ---------------------------------------- ================================================================================ Calcolo dell'ascissa del massimo di una forma d'onda ================================================================================ AUTORE: 1035 DATA :14/01/2006 - 15:20:32 ---------------------------------------- Salve a tutti.Sono una nuova adepta di questa comunità e da poco utilizzo Labview, in particolare la versione 7.1.Avrei bisogno veramente di una sciocchezza per voi \":D\" !!Avrei bisogno di sapere come posso calcolare l'ascissa relativa ad un punto di massimo in una funzione di cui ho l'andamento.Non sono riuscita a trovare il VI express. Se qualcuno mi potesse aiutare gliene sarei molto grata. Spero in breve tempo di poter anch'io essere utile a qualcuno di voi. Grazie ancora. A presto ---------------------------------------- AUTORE: 748 DATA :15/01/2006 - 16:36:35 ---------------------------------------- Ciao, non credo che esista il VI express per ricavare i minimi/massimi di una funzione (ma nn li ho quasi mai usati per cui non ne sono sicuro) Cmq il tuo problema si risolve con i VI normale. Prima di tutto bisogna vedere come è definita la curva che hai in ingresso ossia questa è una funziona matematica definita (y=sin(x) + ln (2x)...) oppure è data da un insieme di punti (ad esempio ricavati da una misurazione: P1(x1,y1) P2(x2,y2)... Pn(xn,yn) ) Nel primo caso (funzione matematica definita) esiste un apposito VI: Mathematics > calculus > Zeroes and extrema of f(x).vi Mentre se hai un insieme di punti puoi usare la funzione: Peak Detector (oppure Waveform Peak Detection) a seconda del tipo di segnale che hai in ingresso Mark ---------------------------------------- ================================================================================ Chiusura del FP ================================================================================ AUTORE: 1033 DATA :16/01/2006 - 11:00:32 ---------------------------------------- Ciao, ho creato di VI il suo eseguibile utilizzando l\"Application Builder\". Ho il problema che quando lancio l'eseguibile si apre il front panel durante l'esecuzione, ma soprattuto rimane aperto al temine dell'esecuzione. Sapete come faccio a non visualizzarlo o a chiuderlo soltanto? Grazie. ---------------------------------------- AUTORE: 129 DATA :16/01/2006 - 12:54:21 ---------------------------------------- Nel VI, devi inserire, al termine del programma, il VI Quit labview,. Lo trovi nella palette Application Control. ---------------------------------------- AUTORE: 1033 DATA :17/01/2006 - 08:34:29 ---------------------------------------- Al Quit ci avevo già pensato, il problema però è che interrompe l'esecuzione di tutti gli altri thread e ciò non mi garba. Ora sto utlizzando le Property node-> FP.State hidden e closed. Cercavo però una soluzione non diciamo \"programmatica\", ma qualcosa da settare, come per esempio nel PropertyVI->execution o qualcosa del genere. Gtazie Ciao. ---------------------------------------- AUTORE: 129 DATA :17/01/2006 - 13:13:14 ---------------------------------------- Non so come è organizzata la tua applicazione, mi sembra di aver capito quindi che hai un VI main, e altri che devono essere aperti e chiusi (livello pannello) ed eventualmente Interrompere o meno la loro esecuzione. Se le cose stanno all'incirca così non puoi lavorare solo su un VI, quindi la tua archiettura deve utilizzare VI server, per aprire/eseguire chiudere/arrestare un VI da uno principale. L'immagine rappresenta un esempio con VI server per aprire ed eseguire un VI. Con il VI server lavori direttamente sull'applicazione, quindi puoi aprire chiudere VI, puoi modificare lo stato dei controlli e/o leggerne il loro valore, puoi insomma controllare un intero VI client da un VI server. ---------------------------------------- ================================================================================ calcolo dell'ascissa del massimo di una forma d'onda ================================================================================ AUTORE: 1035 DATA :16/01/2006 - 13:12:51 ---------------------------------------- Grazie Mark, io in realtà devo trovare il massimo di un segnale che acquisisco con una scheda di acquisizione. Ora provo a fare come mi hai suggerito e tengo le dita incrociate \":D\" . Grazie ancora Ale ---------------------------------------- AUTORE: 748 DATA :17/01/2006 - 01:36:49 ---------------------------------------- Ri-ciao Se devi calcolare l'ascissa corrispondente al MASSIMO ASSOLUTO di un segnale (e quindi non un massimo relativo) - o per essere ancora più chiari, dati una serie di punti trovare l'ascissa corrispondente a quello con ordinata maggiore - esiste un modo più comodo ed efficace che non fa riferimento alla funzione Peak detector: Ipotizzando di avere i dati in ingresso in formato matriciale (1a colonna ascisse, 2a colonna colonna ordinate) ti basta calcolare l'indice del valore massimo della 2a colonna e ricavare il corrispettivo valore della prima colonna. Ti allego una foto per renderti più chiaro il procedimento Nabla ---------------------------------------- AUTORE: 1035 DATA :17/01/2006 - 09:34:36 ---------------------------------------- in realtà io ho in ingresso un segnale rumoroso che acquisisco con una scheda di acquisizione NIDAQ e mi serve di trovare l'ascissa relativa al massimo assoluto. Pensi ci sia un modo per farlo, o devo escogitare qualche artificio che assolutamente mi sfugge? Grazie ancora ---------------------------------------- AUTORE: 278 DATA :17/01/2006 - 11:49:30 ---------------------------------------- Ciao, Prima di effettuare qualsiasi analisi sul segnale acquisito, ti consiglio di fare una media in modo da ridurre il rumore ed avere una misura + accurata. Per fare la media esiste un blocchetto chiamato \"Mean\", lo puoi trovare nella palette sotto Analyze->Mathematics->Probability and Statistics->Mean.vi Sempre sotto il menù Analyze->Waveform Measurement, puoi trovare una serie di VI atti ad eseguire misurazioni sui segnali, sia nel dominio del tempo che della frequenza. Se non erro, il blocchetto che ti serve è Amplitude and Levels.vi ---------------------------------------- AUTORE: 1035 DATA :17/01/2006 - 13:28:13 ---------------------------------------- Ciao, effettivamente ho già tolto il valor medio con il \"blocchetto\" Mean e ho provato anche con Amplitude and Level, solo che purtroppo mi restituisce il valore massimo ma non l'ascissa in cui si è presentato tale massimoche è prorpio quello che a me serve. Grazie veramente di tutto ---------------------------------------- AUTORE: 129 DATA :17/01/2006 - 13:44:58 ---------------------------------------- Se hai una matrice di valori e vuoi estrarre l'ascisse corrsipondente al valore max, devi usare la funzione Array MAx e min come suggerito nei post sopra. Se hai numeri che possono essere realitivi puoi usare la funzione absolute value. Ti allego un immagine ---------------------------------------- AUTORE: 748 DATA :17/01/2006 - 14:00:05 ---------------------------------------- Nell'immagine che avevo pubblicato sopra ipotizzavo che il valore delle ascisse potesse differire dall'indice della matrice o che non fosse una successione lineare di valori... Solo che... GLOM! \":|\" \":|\" \":|\" ho invertito gli indici per cui il VI è errato \":|\" \":|\" Ripubblico la versione corretta Mark77 ---------------------------------------- ================================================================================ Labview RT: Cerco un Tutorial in italiano ================================================================================ AUTORE: 1036 DATA :16/01/2006 - 14:49:30 ---------------------------------------- Salve a tutti, Sto lavorando alla mia tesi, ed in laboratorio ho a disposizione un Pxi 8145. Su questa unita centrale utilizzero il sw di gestione delle VI , Labview RT. Purtroppo il mio inglese è inesistente e quindi ,volevo sapere se qualcuno di voi ha materiale, link etc. utile, possibilemente in italiano o spagnolo. Ciao a tutti e grazie. ---------------------------------------- AUTORE: 1068 DATA :09/02/2006 - 16:52:32 ---------------------------------------- ciao il sito di misure elttroniche dell'universita di padova ha un tutorial in linea su labview non e' recente pero' se devi imparare ad usare labview puo' darti una mano ed e' in italiano..se invece cerchi qualcosa di piu' avanzato in italiano mi dispiace ma nn penso esista..ho cercato anche io tutorial in italiano. il link e': http://www.dei.unipd.it/ricerca/gmee/di ... index.html ciao \":D\" ---------------------------------------- ================================================================================ Cambiare nome ad una globale.vi ================================================================================ AUTORE: 482 DATA :17/01/2006 - 07:39:14 ---------------------------------------- ...ma ciao! in quest'ultima settimana mi son trovato di fronte già due volte ad un problema simile senza trovare una soluzione ragionevole quindi chiedo a voi guru di Labview. Ho un programma in cui le mie globali sono contenute nel file glob.vi Per varie ragioni che adesso non sto qui a spiegarvi, vorrei modificare il nome di questo vi. Il problema è che le globali contenute in queso VI sono molte e richiamate in moltissime parti del mio programma....se cambio nome alla globale dovrei poi andare a sostituire con il nuovo nome in tutti i punti del programma. Sapete per caso se esiste un modo per sostituire un VI di globali con un altro? Se non è chiaro faccio un esempio: Ho un VI globale che si chiama GLOB_PROVVISORIE.VI questo VI viene chiamato all'interno del programma 150 volte. Voglio rinominare il file come GLOB.VI e non dover fare 150 sostituzioni manuali nel programma.....è possibile? ---------------------------------------- AUTORE: 129 DATA :17/01/2006 - 13:29:23 ---------------------------------------- Apri il Vi che contiene le variabili contenute nel GLOBAL variabils.VI, clicca due volte su una qualsiasi variabile globale dal diagramma del tuo VI. Ti si apre il pannello della variabile globale (GLOBAL_variabils.VI), salva con nome e chiamalo GLOBAL.VI. Tutte le variabili associate prima al GLOBAL_variabils.VI saranno ora collegate al nuovo GLOBAL.VI. Ora elimina il vecchio GLOBAL_variabils.VI e la sostituzione è fatta. Ovviamente devi eseguire l'operazione su tutti iVI che contengono questa globale. ---------------------------------------- AUTORE: 482 DATA :17/01/2006 - 14:01:28 ---------------------------------------- eh..era appunto questo il mio problema non dover fare questa operazione per tutti i 150 VI del mio programma \":cry:\" ---------------------------------------- AUTORE: 4 DATA :18/01/2006 - 16:12:59 ---------------------------------------- fai così. - [b:ndenxlye]BACKUP del sorgente![/b:ndenxlye] fai uno zip in modo che LV non possa trovare i file backuppati - Apri il tuo progetto (TUTTI i vi, compresi quelli chiamati dinamicamente se ce ne sono) - Apri la tua variabile GLOB_PROVVISORIE.VI [u:ndenxlye]da uno dei 150 VI[/u:ndenxlye] in cui la usi e [u:ndenxlye]non[/u:ndenxlye] facendo Open da labview - Fai un [b:ndenxlye]Save as[/b:ndenxlye] ([u:ndenxlye]non spuntare[/u:ndenxlye] Save a Copy) dandogli per nome GLOB.VI o quello che vuoi tu - Ora fai un Save All - Chiudi LV - Elimina il file GLOB_PROVVISORIE.VI - Riapri il tuo progetto Ciao, ---------------------------------------- AUTORE: 482 DATA :19/01/2006 - 07:47:34 ---------------------------------------- Grazie mille! ottima soluzione! \":wink:\" ---------------------------------------- AUTORE: 482 DATA :19/01/2006 - 10:03:15 ---------------------------------------- adesso cambio un po' target... questa volta non devo cambiare il nome ma cambiare la globale associata a tutti i miei 150 VI. Se adesso tutti i VI usano le globali contenute in GLOBAL.VI, voglio che da adesso in poi utilizzino le globali contenute in SHARED.VI Questo è possibile in pochi passaggi? ---------------------------------------- AUTORE: 247 DATA :19/01/2006 - 10:20:01 ---------------------------------------- Ciao, puoi farlo riutilizzando la \"tecnica\" di Ale914, ovvero: - (opzionale) zippi una copia di GLOBAL.VI per poterla recuperare in seguito se servisse e soprattutto per nasconderla a LV. - apri GLOBAL.VI e la modifichi in modo che sia uguale a SHARED.VI e poi la salvi con il procedimento che ti ha detto Ale sopra. ..unico problema è che SHARED.VI deve avere almeno tutti i controlli di GLOBAL.VI che hai utilizzato nel diagramma e mantenerne il nome...pena fili rotti nel diagramma... BYE. ---------------------------------------- AUTORE: 482 DATA :19/01/2006 - 13:02:36 ---------------------------------------- ecco appunto..il nome pero' deve restare quello.... Non trovate che potrebbe tornare utile una funzione per sostituire un vi in tutte le sue istanze? Come c'e' la funzione replace...una cosa tipo Replace ALL!??! ---------------------------------------- AUTORE: 278 DATA :19/01/2006 - 13:36:13 ---------------------------------------- [quote:if7dsq3w]Non trovate che potrebbe tornare utile una funzione per sostituire un vi in tutte le sue istanze? [/quote:if7dsq3w] Se non erro una feature del genere è stata inserita in LV 8.0 Bye ---------------------------------------- AUTORE: 4 DATA :19/01/2006 - 18:15:54 ---------------------------------------- confermo che il replace all è stata inserita in LV8 direttamente nella finestra di find. Ciao, ---------------------------------------- ================================================================================ Aprire un vi con event structure e chiusura dello stesso ================================================================================ AUTORE: 1013 DATA :17/01/2006 - 09:14:20 ---------------------------------------- Ciao a tutti. Nuovo quesito da principiante. Volevo gestire, tramite dei pulsanti, l`apertura di vi creati da me. Allora, gestisco il tutto con un event structure, inserisco il vi dentro l`evento scelto e .... tutto va bene. Cioe` il vi si apre e sembra funzionare. Adesso viene il dilemma, non risco a gestire un pulsante che chiuda il vi creato e ritorni al menu iniziale. Ho provato a seguire l`esempio fornito in LabView....ma niente. Qualcuno mi puo` aiutare? Grazie \":(\" \":(\" \":(\" \":(\" ---------------------------------------- AUTORE: 278 DATA :17/01/2006 - 11:55:40 ---------------------------------------- Ciao Alex, la event structure è un ottimo metodo, solo che va utilizzata con le dovute accortezze. Quando \"entri\" in un evento, rimane in quello stato fino alla fine dell'evento stesso. Per fare un esempio sul tuo caso, quando premi il bottone ed entri nell'evento corrispondente, si apre il front panel di un Subvi associato. Ora, prima che la event structure sia pronta a ricevere un altro evento, deve essere terminata l'esecuzione di quello attuale. Nel tuo caso, fino a che non avrai chiuso il vi chiamato dalla event, essa resterà bloccata. Qundi, anche se crei un evento (nella stessa event) che chiude i tuoi vi, non ci entrerai mai se il tuo Subvi è ancora in esecuzione. ---------------------------------------- AUTORE: 1013 DATA :17/01/2006 - 13:51:45 ---------------------------------------- Grazie dell`aiuto. Mi potresti fare un esempio visivo. Non riesco a chiudere il vi aperto tramite event structure. Senza la chiusura, come dici tu, non terminero` mai l`evento. Ciao ---------------------------------------- AUTORE: 278 DATA :17/01/2006 - 16:01:58 ---------------------------------------- Ciao Alex, Non riesci a chiudere il subvi direttamente dal subvi? Per esempio con un tasto BACK che in realtà ferma l'esecuzione del codice del subvi. Per poi far \"sparire\" la finestra alla chiusura c'è un \"trucchetto\".. Vai nelle \"VI Properties\" del subVI che devi aprire, nel menù \"Window appaerance\" scegli \"custom\" e setta la voce \"Close afterward if originally closed\" spuntando prima la voce \"Show front pannel when called\" . In questo modo, se il tuo subvi al momento della chiamata era chiuso (non in memoria), lo sarà anche all'uscita! Semplice no??? \":D\" \":D\" \":D\" Scherzi a parte, se proprio non riesci postami pure il tuo VI (anche per posta privata) che appena ho 5 minuti di tempo (stasera) lo guardo. A presto ---------------------------------------- AUTORE: 1013 DATA :18/01/2006 - 10:30:33 ---------------------------------------- Funziona a meraviglia. Ottima soluzione. Grazie dell`aiuto \":D\" ---------------------------------------- ================================================================================ iniviare dati su piu PC con la LAN ================================================================================ AUTORE: 914 DATA :17/01/2006 - 13:23:54 ---------------------------------------- Ciao a tutti, ho un problemino... Adesso io riesco ad inviare i dati da un computer ad un altro tramite LAN, dando al ricevitore l'inidirizzo ip del pc che invia e dicendogli anche la porta. Io però voglio che questi dati arrivino su piu pc, io pensavo che bastasse mettere l'indirizzo ip del pc che invia anche agli altri pc che ricevono il segnale invece non è così, come faccio? Non posso inviare i dati a tutti e basta? grazie alberto ---------------------------------------- AUTORE: 748 DATA :17/01/2006 - 14:12:28 ---------------------------------------- Mi sembra strano che se ti funziona per uno non ti funzioni per tutti... cmq per potere scambiare dati tra più pc puoi avere 2 configurazioni: 1- Un Pc che \"ascolta\" su una determinata porta e tutti gli altri pc che quando serve interrogano tale porta di tale pc (in questo caso i pc clients domandano il dato al pc server) 2- Tanti pc che ascoltano una propria porta e un pc che in sequenza invia il dato a ciascuno di essi interrogando tale porta. (in questo caso il dato viene \"spinto\" dal server verso i clients) Mark ---------------------------------------- AUTORE: 914 DATA :17/01/2006 - 19:02:51 ---------------------------------------- Non ho la piu pallida idea su come fare.. Non avresti un esempio? I dati che devo inviare sono in unica direzione da un computer a tutti quelli che vogliono. ---------------------------------------- AUTORE: 680 DATA :17/01/2006 - 19:42:04 ---------------------------------------- per inviare le informazioni a tutti i computer, devi inserire l'indirizzo di brodcast sul destinatario dei dati. ad esempio, se ho una rete cha ha per indirizzo 192.168.0.x (dove x è il numero di ogni macchina), dovrò impostare come destinatario, l'indirizzo di brodcast di questa rete e ciò 192.168.0.255. in questo modo, invio a tutti i dati... spero di esserti stato di aiuto.... ciao.......... ---------------------------------------- AUTORE: 645 DATA :18/01/2006 - 09:17:31 ---------------------------------------- Per quanto riguarda quello che diceva Mark77 puoi guardare negli esempi cercando Server.vi e Client.vi. In pratica crei un programma che aspetta una richiesta e un programma che effettua una richiesta: nel momento in cui il ricevitore chiede i dati il mittente (in attesa di richiesta) li invia. Tra l'altro questo sistema può essere sfruttato sia per comunicazioni LAN che per comunicazioni di altra natura. ---------------------------------------- ================================================================================ Array a Variabile Globale ================================================================================ AUTORE: 1013 DATA :17/01/2006 - 13:49:11 ---------------------------------------- Nuovo problema. (non imparero` mai \":roll:\" ) Allora....ho un vi che mi restituisce un array di long. Visto che e` un vi all`interno di un while che gira sempre (in background), volevo memorizzare tale array in una variabile o meglio array globale, da poter utilizzare in altri vi. Grazie dell`aiuto. Ciao \":lol:\" ---------------------------------------- AUTORE: 278 DATA :17/01/2006 - 16:29:09 ---------------------------------------- Ciao, è abbastanza semplice, non ti scoraggiare..... Dal block diagram, accedi alle strutture, ce ne dovrebbe essere una chiamata Global Variable. Posiziona questa icona sul block diagram e fai doppio click su di essa, vedrai che ti si apre un vi (attenzione non è un VI) SENZA block diagram, solo front panel. Questa è la tua variabile globale. Per definire gli oggetti che essa dovrà contenere devi \"popolare\" il suo front panel con dei controlli. Esempio: devi memorizzare un valore booleano in una Global Variable. Apri una nuova global variable (come descritto sopra) e posiziona uno switch o controllo booleano sul suo front panel, ricordati di assegnargli un nome significativo editando la sua Label. Ora Salva questa globale in una cartella del tuo HD. Per utilizzarla devi \"importarla\" nel tuo VI come se fosse una subVI, se fai tasto destro su di essa (una volta importata) puoi scegliere se leggere o scrivere il dato. Per tornare nel tuo caso specifico, devi posizionare sul front panel della globale un array vuoto, poi devi inserire all'interno un controllo che rappresenta il tipo di dato (numero tipo long,stringa,booleano ecc) ed il gioco è fatto. Ciao Ciao ---------------------------------------- AUTORE: 645 DATA :18/01/2006 - 09:21:45 ---------------------------------------- Ne approfitto anche io: non ho mai usato le variabili globali ma dopo questa spiegazione quasi quasi provo! ---------------------------------------- AUTORE: 796 DATA :18/01/2006 - 12:57:59 ---------------------------------------- perchè invece di usare la variabile globale non utilizzi un vi con all'interno uno shift register dove gestisci poi la inizializzazione/lettura e scrittura della variabile . cosi non sprechi risorse del PC e la tua applicazione funziona meglio. Ti allego un vi di esempio . Ciao Luigi ---------------------------------------- AUTORE: 278 DATA :18/01/2006 - 13:33:11 ---------------------------------------- [quote:1esafu74]perchè invece di usare la variabile globale non utilizzi un vi con all'interno uno shift register dove gestisci poi la inizializzazione/lettura e scrittura della variabile [/quote:1esafu74] Concordo in pieno, solo che per motivi di semplicità preferisco indirizzare l'utilizzo delle global variable per che è alle prime armi. L'oggetto che tu proponi si chiama Functional Global, ed è in effetti, il metodo più efficiente per gestire i dati all'interno del longuaggio LV. Una globale, tutte le volte che viene richiamata in lettura/scrittura, esegue una copia del dato. Questo si traduce in una lentezza complessiva ed un utilizzo della memoria del sitema alquanto discutibile..... Ma comunque, per applicazioni relativamente piccole, una bella Global può andare più che bene e non genera nessun problema. ---------------------------------------- ================================================================================ vi in background ================================================================================ AUTORE: 1013 DATA :17/01/2006 - 15:33:13 ---------------------------------------- Un`altro aiuto e poi potete uccidermi... Ho creato un vi che legge delle word. Come faccio ad impostarlo come background? Cioe` che giri dall`avvio del progetto fino alla chiusura? Grazie Ciao ---------------------------------------- AUTORE: 680 DATA :17/01/2006 - 16:01:05 ---------------------------------------- ciao, prova a vedere se così va bene............. ---------------------------------------- ================================================================================ DSC 8.0 : realizzare la "tag write" della 7.1 ================================================================================ AUTORE: 747 DATA :17/01/2006 - 15:42:35 ---------------------------------------- Ciao a tutti, sto migrando la mia applicazione (non ancora ultimata) alla versione DSC 8.0 ... Devo replicare queste due funzionalità: 1) prima i tag potevano essere suddivisi in gruppi: tale caratteristiche mi consentiva di discriminare quali gruppi visualizzare e quali no; 2) nella 7.1 attraverso la Tag Write forzavo la generazione di un evento al \"value change\" e la scrittura sempre (e non solo \"on change\") del tag; 3) nella 7.1 da fp, tramite la funzione HMI Wizard riuscivo ad associare al controllo un gruppo di tag; Potete darmi una mano !? Grazie HeliosRight ---------------------------------------- ================================================================================ acquisizione dati schedulata ================================================================================ AUTORE: 683 DATA :17/01/2006 - 16:46:57 ---------------------------------------- ciao a tutti, sare molto grato se mi aiutaste con uno spunto o un'idea acquisisco i dati di termocoppie dai field point e fin qui tutto bene! l'unica cosa che visto che ho implementato un cotrollore PID usando i pid tool ho necessita di mantenere un intervallo di campionamento croca ogni 500ms ma visto che la lettura mi da anche altri valori di termocoppie che vanno su un grafico che non necessita di una frequeza di aggionamento molto alta anzi deve essere nell'ordine del minuto. In pratica avrei una fonte che spara un'array di tati ogni 500ms da un ciclo while io voglio che un dato venga acquisito continumanete e gli altri destinato al grafico registrati con un tempo molto più lungo grazie delle risposte ---------------------------------------- AUTORE: 129 DATA :17/01/2006 - 21:04:18 ---------------------------------------- L' articolo [url=http://www.ilvg.it/articles.php:2q0eeosv]Multithreading, Parallelismo, Meccanismi di Temporizzazione e Sincronizzazione in LabVIEW[/url:2q0eeosv], spiega l'esempi di un acquisizione tipica, utilizzando le code. In pratica dovresti realizzare un' architettura a loop paralleli, utilizzando due while temporizzati (se hai una versione recente utilizza il timer loop). Uno a 500 ms che acquisisce le termocoppie, l'altro avrà il compito di disegnare il grafico, con un time più alto. ---------------------------------------- AUTORE: 683 DATA :17/01/2006 - 21:33:35 ---------------------------------------- grazie mille per l'indirizzamento ---------------------------------------- AUTORE: 683 DATA :17/01/2006 - 22:52:27 ---------------------------------------- nel link ke mi hai fornito cè molto materiale interessante. Dopo che ho aperto la discussione mi sono mi è venuta un'idea che non mi ha fatto utilizzare i timed loop. ora che ho spulciato un po' il link usando i timed loop (e sicuramente è una mia lacuna) come faccio a far \"passare\" i dati da un loop and un altro? Nel senso che i loop funzioano sincronizzati uno con l'altro in parallelo ma l'accesso al field point viene fatto ogni 500ms dal primo loop e nel secondo ?? oggi pomeriggio ho partorito questa probabile castroneria che conta i tempi e quando il risultato è giusto scrive sul grafico il valore in quel momento questo vi ha dei problemi se vien utilizzato in maniera continua?? si pianterà o andrà senza problemi finchè non lo spengo?? ---------------------------------------- ================================================================================ tabella excel -> labview ================================================================================ AUTORE: 914 DATA :17/01/2006 - 19:00:55 ---------------------------------------- Ciao a tutti, Qualcuno mi sa spiegare come faccio da labview (senza mai uscirne) a caricare dei fogli excel estraendo la tabella che c'è dentro mettendola poi in un array???? Non ho proprio nessuna idea sul come fare... ciao a tutti Alberto ---------------------------------------- AUTORE: 129 DATA :17/01/2006 - 20:56:01 ---------------------------------------- Se utilizzi il VI read from spreadsheat file, puoi estrarre il contenuto di un file .xls Se invece devi estrarre un range di celle da un foglio o cose più specializzate devi utilizzare gli active-X. Prova a utilizzare la funziona cerca in alto a destra dovresti trovare alcuni topic con esempi. ---------------------------------------- ================================================================================ Costruire indirizzi visa ================================================================================ AUTORE: 368 DATA :18/01/2006 - 09:58:21 ---------------------------------------- Salve ragazzi, è tanto che non vi vengo a trovare, come state? Tnato per cambiare mi sono perso nel più classico dei bicchieri d'acqua, ma la testardaggine umana non ha limiti...!! Arrivo al dunque: Vorrei costruire un indirizzo visa che ha questa forma GPIB::\"numero indirizzo\"::INSTR, in modo da poter isolare il numero dell'indirizzo e far comparire un semplice controllo numerico sul front pannel. Ho provato con le stringhe, ma evidentemente non è di stringhe che si tratta. Qualcuno può aiutarmi, ma soprattutto qualcuno è riuscito a capire il mio intricato problema? \":D\" Grazie e ciao ---------------------------------------- AUTORE: 129 DATA :18/01/2006 - 12:56:52 ---------------------------------------- Non capisco, i controlli VISA, sono compatibili con il tipo stringa. Puoi inserire un controllo stringa sull'adress, come puoi anche utilizzare la funzione type cast per convertire la stringa in VISA resource. ---------------------------------------- AUTORE: 368 DATA :18/01/2006 - 14:02:35 ---------------------------------------- Credo che tu abbia colto nel segno! \":wink:\" Il problema è che dando al mio instrument driver come indirizzo una stringa, c'è qualcosa che non va........ invece col \"type cast\" penso di risolvere la situazione. Quando ho verificato ti faccio sapere come è andata. CIAO ---------------------------------------- ================================================================================ distribuzione di probabilità ================================================================================ AUTORE: 852 DATA :18/01/2006 - 18:47:25 ---------------------------------------- Ciao a tutti. Da principiante in Labview, chiedo se esistono delle funzioni statistiche specifiche che realizzino per esempio le distribuzioni di Rayleigh o di Rice. Mi serve rappresentare la curva teorica perchè devo confrontarla con la distribuzione di probabilità dei miei dati. Altra domanda: è possibile lavorare in labview anche con dati già elaborati in matlab? Grazie \":oops:\" ---------------------------------------- AUTORE: 247 DATA :18/01/2006 - 20:29:18 ---------------------------------------- Ciao, puoi perfettamente integrare Matlab con LabVIEW usando il \"MATLAB script node\" che trovi nella palette Analyze->Mathematics->Formula->..., così facendo tutti i dati che crei in Matlab possono essere utilizzati anche in LabVIEW per confronti con i dati sperimentali etc.. La \"connessione\" ovviamente funziona anche nel verso opposto (LabVIEW che fornisce dati agli script Matlab). Se invece vuoi fare analisi statistiche utilizzando il solo LabVIEW devi comprare il tool statistico(non ricordo il nome). Nell'esempio che allego faccio il plot di una funzione Rayleigh generata in Matlab in un grafico XY di LabVIEW. Se ti servono altri esempi di connessione Matlab-LabVIEW usa la funzione di ricerca di questo sito, ne abbiamo parlato altre volte. BYE. ---------------------------------------- AUTORE: 852 DATA :19/01/2006 - 12:35:03 ---------------------------------------- ti ringrazio dei consigli, proverò. Per il file che mi hai allegato c'è un modo per poterlo aprire anche con LV 6? mi rimetto al lavoro. G. ---------------------------------------- AUTORE: 247 DATA :19/01/2006 - 15:38:29 ---------------------------------------- Ciao, per la conversione in LV 6 devi lanciare un'appello a qualcuno che ha sia LV 6 che 7.0 o 7.1; cmq ti allego l'immagine di front panel e diagram per ricrearlo, è molto semplice. BYE. ---------------------------------------- AUTORE: 852 DATA :28/01/2006 - 11:38:37 ---------------------------------------- ti ringrazio per R.zip quando in Labview scrivo uno script devo aver lanciato matlab o basta scrivere lo script? grazie ---------------------------------------- AUTORE: 247 DATA :28/01/2006 - 13:06:20 ---------------------------------------- Ciao, se Matlab è chiuso quando inserisci uno script node all'interno del block diagram, LabVIEW automaticamente attiva una Matlab Command Window per servire le richieste del tuo script, quindi tutto ciò che devi fare è inserire lo script node e riempirlo con il codice che vuoi eseguire. BYE. ---------------------------------------- AUTORE: 852 DATA :01/02/2006 - 08:09:10 ---------------------------------------- dopo aver scritto le due righe di codice nello script node, non riesco a collegare i due rami di output al bundle e poi al graph perche x e p non diventano array ma solo un numero e non succede nulla. Ho comunque il matlab installato. Grazie per l'aiuto. Ciao ---------------------------------------- AUTORE: 852 DATA :01/02/2006 - 11:16:29 ---------------------------------------- aggiungo al mio post che la versione di labview e' 6.1 Il fatto che non comunichi con mathlab puo' dipendere dalla versione di mathlab? ora ho la 7.0 ciao ---------------------------------------- AUTORE: 247 DATA :01/02/2006 - 13:35:01 ---------------------------------------- Ciao, il tipo di dato che ti viene restituito devi selezionarlo in uscita, normalmente è un numero singolo ma puoi modificarlo in array cliccando con il tasto destro sul nodo di output dello script node e selezionando Choose Data Type-> Real Vector se vuoi in uscita un vettore di numeri reali. BYE. ---------------------------------------- AUTORE: 852 DATA :01/02/2006 - 14:46:43 ---------------------------------------- già fatto.. credo ci sia problema di comunicazione tra labview e mathlab. Quando inserisco il riquadro dello script nel diagram dovrebbe aprirsi un tool di comunicazione con mat..ma nulla, neanche quando scrivo il codice all'interno dello script ed eseguo la VI (RUN). Sul mio XY graph non compare nulla, ma compare un errore tipo di non chiamata a server..... Se voglio eseguire lo stesso codice su mathlab direttamente, il codice funziona! ---------------------------------------- AUTORE: 247 DATA :01/02/2006 - 16:13:26 ---------------------------------------- Ciao, in effetti una finestra del workspace di Matlab dovrebbe aprirsi immediatamente già quando piazzi un Matlab Scrip node all'interno del block diagram, indipendentemente dal fatto che tu faccia funzionare il diagramma o meno... Quindi concordo sul fatto che tu abbia un problema di connessione tra LV e Matlab... Non sò come risolvere la cosa, io uso la 6.5 e tutto ha funzionato dall'inizio, un problema potrebbe, al massimo, sorgere se hai due versioni di Matlab diverse installate contemporaneamente...è il tuo caso? Al limite prova a reistallare Matlab, è abbastanza veloce come cosa, ma reinstallare non è una soluzione degna di questo nome... \":D\" \":D\" BYE. ---------------------------------------- AUTORE: 852 DATA :16/02/2006 - 07:46:53 ---------------------------------------- ho risolto installando una patch scaricata dal sito della NI. Ciao Alla prossima ---------------------------------------- AUTORE: 247 DATA :16/02/2006 - 10:27:27 ---------------------------------------- Ciao, puoi fornire il riferimento alla pagina dalla quale hai scaricato la patch oppure un riferimento (cercare \"xyz\" con il motore di ricerca del sito NI)? Potrebbe essere utile per altri che hanno lo stesso problema e che leggono questo post in differita.. BYE. ---------------------------------------- AUTORE: 852 DATA :22/02/2006 - 18:12:12 ---------------------------------------- il link è http://digital.ni.com/public.nsf/allkb/ ... 750058f14b oppure basta cercare sul sito della NI error 1047 ciao ciao ---------------------------------------- ================================================================================ problema con inizializzare un array ================================================================================ AUTORE: 914 DATA :19/01/2006 - 09:51:00 ---------------------------------------- Io voglio fare un programma che carica dei dati da un file e li mette in un array e questo già lo fa, ma voglio che questo array se non ci ho caricato i dati dal file sia inizializzato (nel mio caso ö inizializzato con uno spazio ad ogni casella). Vi allego il file ciao Alberto ---------------------------------------- AUTORE: 914 DATA :19/01/2006 - 13:05:16 ---------------------------------------- quaöcuno mi sa aiutare? ---------------------------------------- AUTORE: 914 DATA :19/01/2006 - 13:05:51 ---------------------------------------- quaöcuno mi sa aiutare? ---------------------------------------- AUTORE: 680 DATA :19/01/2006 - 15:11:43 ---------------------------------------- ho capito bene? ciao... \":)\" ---------------------------------------- AUTORE: 914 DATA :19/01/2006 - 15:17:03 ---------------------------------------- Non credo che tu abbia capita ma non funziona.. cmq ho fatto un nuovo annuncio con il programmino finito ma con quel piccolo problema dell'inizializzazione, se ti va forse li capisci meglio.. ---------------------------------------- AUTORE: 914 DATA :19/01/2006 - 15:18:23 ---------------------------------------- IN ITALIANO: Credo che tu abbia capito ma non funziona.. cmq ho fatto un nuovo annuncio con il programmino finito ma con quel piccolo problema dell'inizializzazione, se ti va forse li capisci meglio.. ---------------------------------------- ================================================================================ Problema con file .txt ================================================================================ AUTORE: 368 DATA :19/01/2006 - 12:16:21 ---------------------------------------- Help me \":?\" , sono icappato in un altro ostacolo: Ho diversi file .txt, ognuno con un certo numero di righe e colonne, delimitate da RETURN e TAB. Vorrei fare in modo che ogni file abbia lo stesso numero (il massimo numero) di righe e colonne, aggiungendo, dove necessario, gli opportuni delimitatori. Questo perchè voglio assemblare questi file .txt in un unico file excel, mettendoli l'uno di fianco all'altro (in orizzontale). Sono riuscito a contare quante righe e quante colonne ci sono in ogni file (contando il numero dei delimitatori), ma non so proprio come andare avanti. Qualcuno ha qualche suggerimento? PS: in un mio precedente post (\"unisci file txt\"), c'è un VI che assembla le righe di diversi txt in un'unica riga di un singolo file. Se riuscissi a rendere tutti i miei txt con lo stesso numero di righe e colonne basterebbe questo VI per risolvere il problema. Ciao e grazie per l'aiuto \":wink:\" ---------------------------------------- AUTORE: 4 DATA :23/01/2006 - 11:49:40 ---------------------------------------- Non ho ben capito la tua necessità. In ogni caso se hai dei file TXT delimitati da TAB e vuoi farne uno solo appendendoli di fianco (aggiungendo colonne) ti consiglio di - leggere i file in stringa - usando la funzione string>>spreadsheet string to array porti i tuoi dai in fromato di matrice 2D - usando le funzioni degli array (build ecc) costruisci una matrice 2D a partire dalle singole ottenute dai file TXT - usando la funzione string>>array to spreadsheet string riporti tutto in formato stringa e scrivi su file TXT Ciao, ---------------------------------------- AUTORE: 368 DATA :24/01/2006 - 14:08:36 ---------------------------------------- Ale, grazie per la risposta, ma ho risolto. Come al solito non riesco inizialmente a spiegare il problema in modo semplice, perchè non l'ho chiaro neanch'io!!! \":o\" Ma ho risolto: mi serviva riformattare file txt in modo che, una volta sistemati l'uno di fianco all'altro e portati in excel, risultassero ben incolonnati. Esempio: se un file ha 4 righe e 3 colonne ed un altro 5 righe e 5 colonne, dovrò aggiungere al primo una riga e 3 colonne. Provare per credere!!!! Ciao \":D\" ---------------------------------------- ================================================================================ inizializzare un array ================================================================================ AUTORE: 914 DATA :19/01/2006 - 15:11:25 ---------------------------------------- Ciao a tutti, come spesso mi capita ho qualche problemino con Labview.. Il mio prgramma carica dati da un file txt e li mette in un array e poi posso modificare quell'array aggiungendo e togliendo dati, solo che il problema è che non posso aggiungere i dati all'array se prima non carico il file txt, almeno che riuscissi ad inizializzare l'array, cosa che non mi riesce. Vi allego il programma con un file txt Sarei veramente grato a chi mi sapesse aiutare Alberto ---------------------------------------- AUTORE: 680 DATA :20/01/2006 - 18:44:35 ---------------------------------------- così va bene????? (l'array viene inizializzato per 65536 valori) ciao..... ---------------------------------------- AUTORE: 914 DATA :20/01/2006 - 19:50:16 ---------------------------------------- il tuo programma è vero lo inizializza ma poi non posso piu modificarlo me la lascia sempre vuoto, ma cmq ho già risolto grazie mille ugualmente. ---------------------------------------- ================================================================================ event structure ================================================================================ AUTORE: 680 DATA :19/01/2006 - 20:08:56 ---------------------------------------- ciao......... qualcuno sa dove posso trovare informazioni sulle event structure??? oppure se qualcuno sa brevemente spiegarmi come funziona...... ciao grazie................. \":wink:\" ---------------------------------------- AUTORE: 482 DATA :20/01/2006 - 08:12:10 ---------------------------------------- La event structure è una struttura simile al case, nel senso che in base a degli \"ingressi\" effettua delle operazioni differenti. La grossa differenza sta pero' nel fatto che un case viene sempre e comunque eseguito, mentre la structure resta in attesa che uno dei determinati eventi contemplati si verifichi. Ipotizziamo di voler valutare quante volte un pulsante cambia stato. In una struttura a case realizzeremmo un ciclo con un case che abbia come condizione il booleano ed effettueremmo delle operazioni quando questo cambia stato e nessuna operazione quando lo stato è uguale. Tutto questo con un ciclo temporizzato che verrà effettuato ogni 50 msec. Utilizzando la event structure, potremmo prendere l'evento \"value change\" associato al booleano in questione ed inserirlo sempre all'interno di un ciclo. la differenza è palese se si osserva l'indice di incremento del ciclo. Nella soluzione col CASE continuerà ad incrementare all'infinito, in quella con la event structure incrementerà solo quando si verificherà il cambio di stato. Non sono stato spiegato?..vabbhè dai...ti metto un allegato che magari è piu' chiaro! \":wink:\" Inoltre puoi notare che se vai ad incrementare troppo la temporizzazione del ciclo A dell'esempio, rischi di perdere alcuni cambiamenti di stato. ---------------------------------------- AUTORE: 247 DATA :20/01/2006 - 09:54:23 ---------------------------------------- Ciao, prova a guardare questo vecchio post: [url=http://www.ilvg.it/forum/viewtopic.php?t=373&start=0&postdays=0&postorder=asc&highlight=event:o11t4ful]EVENT STRUCTURE[/url:o11t4ful] e i collegamenti che suggerisco. Se non basta usa la funzione cerca del forum, abbiamo parlato parecchie volte di event structure facendo anche molti esempi. BYE. ---------------------------------------- ================================================================================ Macchina a stati ================================================================================ AUTORE: 1045 DATA :20/01/2006 - 09:33:21 ---------------------------------------- Ciao,sono nuovo del forum e faccio i migliori complimenti per come è gestito e curato. Vorrei sottoporvi due problemi. Devo realizzare un progetto per acquisire dei segnali tramite scheda daq e poi utilizzarli e salvarli. Il tutto funziona con una macchina a stati.Allego un file di esempio del funzionamento. Il primo problema è che ho necessità di visualizzare in real time un contatempo dall'inizio alla fine della prova,cioè con continuità. Il secondo problema è quello di sapere come posso fermare la prova senza che necessariamente siano conclusi tutti gli stati, cioè come fermare il vi tramite un pulsante.AIUTATEMIIIIIIII Grazie ---------------------------------------- AUTORE: 247 DATA :20/01/2006 - 14:33:24 ---------------------------------------- Ciao, ti ho fatto un esempio di macchina a stati semplice, nella tua hai fatto scelte che possono \"costarti\" un pò troppo care... \":D\" \":D\" Prova a darci un'occhiata e per dubbi chiedi. BYE. ---------------------------------------- AUTORE: 1045 DATA :22/01/2006 - 09:56:39 ---------------------------------------- Grazie molto Apollon per l'aiuto.Puoi comunque farmi capire meglio gli errori commessi,in modo da evitarli in futuro e/o darmi dei consigli sull'utilizzo delle macchine a stati? ---------------------------------------- AUTORE: 247 DATA :23/01/2006 - 17:35:28 ---------------------------------------- Ciao, guardando il tuo esempio potrei suggerti questi cambiamenti: - Per creare la lista degli stati che utilizzi per la macchina utilizza sempre una definizione di tipo(stati.ctl nel mio esempio), questo ti consente di avere nomi più significativi per i vari stati(..dopo un pò fai fatica a ricordarti quali siano le differenze tra lo stato 46 ed il 47..meglio leggere \"update front panel\" e \"leggi seriale\" ad esempio.) La definizione di tipo ti consente inoltre di aggiornare la lista degli stati in modo automatico qualora tu ne aggiunga uno o più. - Eviterei di utilizzare sia il for esterno che esegue due cicli ed i for interni che ne eseguono dieci, il brutto del ciclo for è che non hai la possibilità di controllarne l'esecuzione tra un'iterazione e l'altra ma solo all'inizio ed alla fine. Lo sostituirei quindi con uno stato che venga replicato o meno a seconda di necessità o del valore di un contatore. - Il ciclo while più esterno è inutile, aggiungi uno stato alla macchina interna che non fa nulla e dal quale esci(->vai allo stato uno o chi per esso) solamente dopo la pressione del pulsante di start. - Lo stop che ferma il ciclo while esterno va quindi associato al ciclo più interno, così facendo hai la possibilità di fermare il ciclo tra uno stato e l'altro. - Tutte le operazioni simili, nel tuo VI ad esempio potrebbero essere le varie wait, possono essere \"riassunte\" in uno stato wait al quale passi valori di attesa diversi; facendo così, in caso di errore in uno stato, salti l'attesa ed esci subito al termine dello stato. - Tutto ciò che vuoi aggiornare continuamente deve essere messo in un ciclo parallelo alla macchina, aggiornamento indipendente dalla macchina, o se ti accontenti fuori dal case interno della macchina, qui verrà aggiornato ad ogni cambio di stato. Se hai domande chiedi. [url=http://zone.ni.com/devzone/conceptd.nsf/webmain/c74cec177a289dbd86256c4e00600196:342mdvu3]Qui[/url:342mdvu3] trovi un'esempio carino..\":D\" Consiglione: Fatti un template tuo con i classici stati che non mancano mai(inizializzazione, calcolo, attesa, chiusura...) e poi riutilizzalo modificandolo di volta in volta in dipendenza delle tue esigenze! BYE. ---------------------------------------- AUTORE: 1045 DATA :24/01/2006 - 18:22:10 ---------------------------------------- Grazie Apollon per i chiarimenti,vedrò nei prossimi giorni di metterli in pratica.Adesso ti pongo un altro quesito. Acquisisco dei dati continuamente dalla scheda DAQ mx e ogni 30 secondi devo salvarli in modo che alla fine della acquisizione (circa due ore) devo utilizzarli e farne anche un report.I dati vorrei salvarli non su file di testo ma su array,in modo che il salvataggio dovrebbe avvenire in automatico senza chiedermi ogni volta dove andarli a salvare.Mi puoi dare una dritta su come fare per salvarli su array (o se vi sono delle possibilità diverse che non conosco). Scusami se abuso,ma devo imparare... Grazie ---------------------------------------- AUTORE: 727 DATA :25/01/2006 - 12:01:32 ---------------------------------------- Ciao. Il fatto di dover salvare stringhe o array non c'entra niente con il fatto che ti venga chiesto un nome per il file. I nomi dei file devono a tale scopo essere tutti differenti e per fare ciò potresti utilizzare una stringa comune, a cui concateni ad esempio l'indice del ciclo, oppure l'ora. Una volta fatto questo, converti la stringa in path e lui creerà i file senza chiederti dove e come salvarli. Spero di essere stato chiaro. Ciao ---------------------------------------- ================================================================================ Splittare una Waveform ================================================================================ AUTORE: 1013 DATA :20/01/2006 - 10:56:47 ---------------------------------------- Ciao a tutti. Inserisco un cluster di 8 boolean in un Waveform Chart, per splittare gli 8 segnali in modo da visualizzarli separatamente, ho dovuto usare una ADD per ogni cluster. C'e` un comando o vi apposta che esegue lo split di piu` segnali nello stesso waveform chart? Grazie \":D\" ---------------------------------------- AUTORE: 247 DATA :20/01/2006 - 14:06:27 ---------------------------------------- Ciao, non ho capito come tratti i tuoi dati, se puoi postare il vi o un'immagine del diagram sarebbe ottimo! BYE. \":D\" ---------------------------------------- AUTORE: 1013 DATA :26/01/2006 - 08:21:17 ---------------------------------------- Scusa il ritardo...ma ero sotto influenza. Ti allego un immagine del mio vi per lo split di onde. Ti avverto...sono un mega principiante. Grazie Ciao ---------------------------------------- AUTORE: 1013 DATA :26/01/2006 - 08:30:11 ---------------------------------------- Scusa mi spiegheresti come allegare un`immagine? Non riesco a mettere il vi.... Grazie ---------------------------------------- AUTORE: 4 DATA :26/01/2006 - 08:47:32 ---------------------------------------- [quote="alex77":3scvbrqf]Scusa mi spiegheresti come allegare un`immagine? Non riesco a mettere il vi.... Grazie[/quote:3scvbrqf] guarda questo link faq.php#43 Ciao, ---------------------------------------- AUTORE: 247 DATA :26/01/2006 - 09:19:50 ---------------------------------------- Ciao, Prima di tutto devi creare o convertire l'immagine in jpeg(.jpg) e assicurarti che sia al massimo di 256KB(size limite per gli tutti utenti del forum per qualsiasi tipo di allegato), se la dimensione è maggiore prova a zipparla. Fatto questo puoi inserirla come allegato utilizzando prima il tasto \"Browse\" e poi \"Add Attachment\"; a questo punto puoi confermare l'invio del messaggio. BYE. ---------------------------------------- AUTORE: 1013 DATA :26/01/2006 - 10:11:10 ---------------------------------------- Proviamo... \":oops:\" ---------------------------------------- AUTORE: 247 DATA :27/01/2006 - 15:31:46 ---------------------------------------- Ciao, beh, su due piedi direi che come minimo puoi sostituire tutti i blocchi somma che utilizzi con un'unico blocco che somma due array, dei quali uno è quello che calcoli e l'altro è formato dalle costanti che ora utilizzi nelle somme singole. Per ottenere poi la visualizzazione separata basta che dai in ingresso al WaveformChart una matrice in due dimensioni che ottieni dalle tue somme. BYE. P.S. rivedrei anche i passaggi precedenti alla somma, sei sicuro che servano tutti?? ---------------------------------------- ================================================================================ Funzione " One Button Dialog " ================================================================================ AUTORE: 904 DATA :20/01/2006 - 14:43:33 ---------------------------------------- Gentili lettori del forum ho una domanda per voi : Attualmente utilizzo per gestire un segnale per l'operatore di fine infornata la funzione \"one button dialog\" che dice all'operatore se l'esito l'infornata è ok o no . L'operatore letto il messaggio deve dare ok per far sparire il messaggio . Capita però che quando la funzione \"one butto dialog\" non è confermata con il tasto di OK che tutta la VI rimane bloccata . Questo succede quando gli operatori si dimenticano di dare l'ok al messaggio . Non c'è un modo nel quale il messaggio si resetta automaticamente dopo n secondi o n minuti senza l'ok dell'operatore ? Sarebbe un sistema che previene bloccaggi accindentali del resto della VI . Fiducioso in una vostro aiuto Ringrazio Anticipatamente Saluti !!! ---------------------------------------- AUTORE: 278 DATA :20/01/2006 - 15:47:14 ---------------------------------------- Ciao Capman, Invece di utilizzare il \"two button dialog\" ti consiglio di creare un subvi \"ad hoc\" per la tua applicazione; in pratica dovrà avere lo stesso Front Panel del blocchetto di dialogo, solo che nel suo codice puoi inserire un timeout che ferma il vi anche se l'utente non ha premuto nessun tasto. ---------------------------------------- AUTORE: 904 DATA :20/01/2006 - 16:10:28 ---------------------------------------- Saresti così gentile da fare un piccolo esempio di quello che hai descritto ..... Sono nuovo di Labview e non conosco completamente le operazioni che mi hai descritto Grazie Saluti \":D\" ---------------------------------------- AUTORE: 247 DATA :20/01/2006 - 16:36:56 ---------------------------------------- Ciao, ti consiglio di fare una ricerca tra i vecchi post, ad esempio [url=http://www.ilvg.it/forum/viewtopic.php?t=539&start=0&postdays=0&postorder=asc&highlight=:3ogbo9ir]questo[/url:3ogbo9ir] potrebbe esserti d'aiuto. BYE. ---------------------------------------- AUTORE: 278 DATA :20/01/2006 - 18:33:28 ---------------------------------------- Eccoti l'esempio.... Importa questo vi dove ti serve, in ingresso riceve il testo del dialog box e il titolo del dialog (per intenderci il titolo della barra blu). Ti permette di settare un timeout, di default è -1 (nessun timeout), dopo il quale il dialog sparisce permettendoti di ritornare al vi chiamante. In uscita puoi sapere se il dialog è stato chiuso tramite la pressione del tasto OK o se è uscito per timeout. Ciao Ciao ---------------------------------------- AUTORE: 904 DATA :23/01/2006 - 07:57:16 ---------------------------------------- Molte grazie per l'esempio !!! Saluti ---------------------------------------- ================================================================================ rpm con metodo del doppio accelerometro ================================================================================ AUTORE: 591 DATA :20/01/2006 - 16:14:06 ---------------------------------------- Ciao a tutti, rieccomi qui con un ennesimo problema o meglio con una ulteriore domanda. Ho letto che è possibile ottenere il numero di giri di una autovettura (rpm) utilizzando un accelerometro a 2 vie (XY) fissato tramite un magnete al blocco motore. Ho provato ad analizzare il segnale anche tramite lo spettro ma che relazione c'e' tra il segnale letto dai due ssi proprio non mi è chiaro. Quello che vorrei sapere è se qualcuno ha avuto modo di utilizzarlo o per lo meno di leggere qualcosa a riguardo. Ciao a tutti ---------------------------------------- ================================================================================ boolean ================================================================================ AUTORE: 914 DATA :20/01/2006 - 18:00:56 ---------------------------------------- Ciao a tutti, come al solito ho un problema... vorrei fare un elemento con due entrate booleane e una uscita booleana, alle due entrate ci sono due bottoni uno di start e uno di stop che tutti e due quando li schiccio mi danno un impulso a uno e l'uscita vorrei che cambi da 0 a 1 quando riceve l'impulso del bottone start e da 1 a 0 quando riceve l'impulso di stop, esiste? Se non esiste come faccio a realizzare questo piccolo circuito? Grazie Alberto ---------------------------------------- AUTORE: 914 DATA :20/01/2006 - 18:17:59 ---------------------------------------- tipo un latch credo con set e reset... non esiste? ---------------------------------------- AUTORE: 680 DATA :20/01/2006 - 18:26:27 ---------------------------------------- un qualcosa del genere......... ciao......... ---------------------------------------- AUTORE: 278 DATA :20/01/2006 - 18:46:07 ---------------------------------------- Ciao, prova se questo va bene... ---------------------------------------- AUTORE: 914 DATA :20/01/2006 - 19:23:04 ---------------------------------------- si grazie sono a posto adesso ---------------------------------------- ================================================================================ domanda tecnica ================================================================================ AUTORE: 914 DATA :20/01/2006 - 19:26:05 ---------------------------------------- Perchè se faccio un subVI con una variabile locale al suo interno, poi lo stesso subVi non lo posso utilizzare più volte nel VI principale? ---------------------------------------- AUTORE: 247 DATA :20/01/2006 - 22:34:03 ---------------------------------------- Ciao, io non ho riscontro per nulla lo strano comportameto che riporti, riesci a postare il VI? BYE. ---------------------------------------- AUTORE: 129 DATA :21/01/2006 - 10:44:15 ---------------------------------------- Non esistono problemi all'utilizzo multiplo di subvi con variabili locali incorporate, ma il problema è come li inserisci. Il tutto è dovuto al fatto che con la variabile locale perdi il flusso e la sequenzialità del codice, in questo modo la variabile locale potrebbe assumere valori non previsti. In generale l'uso delle variabili locali e globali deve essere fatto considerando questo aspetto. Poi altra questione è la reentranza del codice, se dalle propietà del vi,nella finestra execution, spunti reentrant; il tuo subvi lavora indipendentemente dai suoi cloni, all'interno del Vi chiamante, questo però puoi farlo su quei VI, che nondevono fornire un interfaccia grafica, perchè questa nonpotrebbe essere aggiornata per questioni ovvie. Come dice Apollon, prova a postare il codice, probabilmente si tratta solo di mettere un pò di ordine. Nic \":wink:\" ---------------------------------------- ================================================================================ Programma processo riscaldamento ================================================================================ AUTORE: 683 DATA :21/01/2006 - 09:26:01 ---------------------------------------- ciao a tutti, per un programma di riscaldamento utilizzo i PID control di LV e fin qui tutto bene, ho qualche dubbio sul tempo di svolgimento del programma di riscaldamento: le rampe e le stasi devo durare molte ore dalle 20 alle 40 ore mi suggerireste una soluzione ragionevole per contare tutto questo tempo. La rama dovrebbe essere circa di 10 gradi ora qindi per arrivare a 400 gradi..........poi stasi di altrettante ore e poi altre rampe molto lunghe non credo che questo venga fatto con il seplice funzione di LV che conta i millisecondi grazie a tutti ---------------------------------------- AUTORE: 1169 DATA :24/03/2006 - 21:20:09 ---------------------------------------- Prima di tutto saluto tutti gli utenti del Forum, e mi accodo alla richiesta di ilgurzo in quanto anche io dovrei realizzare un sistema di acquisizione questo tipo anche se per un tempo minore. Un dubbio che ho ad es. è su come impostare i vari step di temperatura visto che non posso conoscere a priori e non hanno mai un passo di incremento uniforme. Qualsiasi consiglio ovviamente è ben accetto ! ---------------------------------------- AUTORE: 683 DATA :24/03/2006 - 23:10:58 ---------------------------------------- ciao io ho risolto dopo un po' di tempo ci sono riuscito, in pratica per impostare il programma utilizzo un'array di cluster il mio programma prevede rampa stasi e loop infinito la rampa incremento il valore ogni secondo la stasi conto quati cicli da 6 secondi (facilemente gistrabili quando si parla di ore e minuti) e li eseguo questo vi che dopo averlo fatto si è eilevato molto semplice ha una capacità di programmazione particamente infinita e un tempo di stasi che ha come limite massimo il campo di valore di una varibile integer!! ti allego il vi dal quale puoi prendere spunto e magari miglioralo ---------------------------------------- AUTORE: 1169 DATA :25/03/2006 - 00:03:53 ---------------------------------------- Ok,grazie per il suggerimento. Forse realizzerò in modo diverso la gestione dei tempi di esecuzione ma utilizzerò l'array per fornire i vari step di potenza . . . Provo a rendere più compatto il tutto. ---------------------------------------- AUTORE: 1169 DATA :27/03/2006 - 16:58:18 ---------------------------------------- Ho "stravolto" il sistema che mi hai proposto e ne ho creato uno forse più semplice Ho inseriro un CAse ed un sequence per gestire il tempo necessario per portare a regime il sistema. Non avendolo ancora testato ho il dubbio che ci possa essere qualche conflitto tra le diverse temporizzazioni. Allego il VI. . . Eventuali suggerimenti e migliorie (soprattutto per la temporizzazione !)sono sempre bene accetti. ---------------------------------------- AUTORE: 1169 DATA :27/03/2006 - 17:04:37 ---------------------------------------- Ho dovuto comprimere il Vi. . . ---------------------------------------- AUTORE: 683 DATA :27/03/2006 - 19:15:38 ---------------------------------------- un'altro modo di vedere le cose l'unico appunto è sull'uso dell wait time rispetto a "wait next ms multiplier" il wait time mi ha dato problemi di rimpimento memoria quando deve aspettare tanto tampo o ci sono da fare molti cilci di attesa comunque sono contento che una mia solunzione ne abbia creata un'altra altrettanto valida il mio programmatore lo sto usando in questi giorni è molto preciso e stabile e non mi ha dato problemi. Prima di questo ne avevo "partorito" uno complicatissimo che alla fine neanche io riuscivo a carci il verso!!! il tuo mi sembra ancora più semplice!!! buona lavoro e grazie ---------------------------------------- ================================================================================ array ================================================================================ AUTORE: 914 DATA :21/01/2006 - 11:17:48 ---------------------------------------- domandina... è possibile attaccare insieme due array uno di numeri e l'altro di lettere? Se si come? ---------------------------------------- AUTORE: 247 DATA :21/01/2006 - 11:42:08 ---------------------------------------- Ciao, non è possibile perchè sono due tipi di dato diversi mentre l'array accetta solamente dati tutti dello stesso tipo. Opzionale: Cmq se devi per forza \"mettere\" tipi di dato diversi all'interno dello stesso array, puoi ad esempio utilizzare un array di un tipo di dato determinato e derivare l'altro per interpretazione. Ad esempio potresti utilizzare un'array di interi ed interpretare ogni elemento altrenativamente come numero (es. elemento[0] dell'array di interi=12=interpretato come numero dodici), o come carattere (es. elemento[1] dell'array di interi=12=interpretato come carattere \"x\" secondo la tua tabella di interpretazione). BYE. ---------------------------------------- AUTORE: 914 DATA :21/01/2006 - 16:41:39 ---------------------------------------- Ho capito non si può, nel secondo caso il da farsi è un po' troppo laborioso... cmq grazie ---------------------------------------- AUTORE: 129 DATA :21/01/2006 - 17:00:28 ---------------------------------------- Potresti trasformare l'array numerico in formato stringa, quindi unire i due array, al bisogno devi ritrasformare l'array desiderato in numerico. O ancora potresti ricorrere ai variant, di cui ti allego un esempio. ---------------------------------------- AUTORE: 914 DATA :21/01/2006 - 17:55:08 ---------------------------------------- Il problema è che l'array dei numeri è 2d e che poi tutto l'array variant devo spedirlo via LAN... ---------------------------------------- AUTORE: 914 DATA :21/01/2006 - 18:05:24 ---------------------------------------- perchè il for loop è azzurrro nel tuo file? perchè nell'array delle lettere non riesco ad avere più di 8 caselle? ---------------------------------------- AUTORE: 914 DATA :21/01/2006 - 18:11:26 ---------------------------------------- ok problema 8 caselle risolto... MA come faccio a mettere un array di numeri 2d? ---------------------------------------- AUTORE: 129 DATA :21/01/2006 - 18:32:04 ---------------------------------------- Complicando un pò le cose forse questa dovrebbe essere la soluzione. Per colorare il for loop basta farlo come per un controllo con il pennello, è una buona consuetudine per organizzare il codice, niente di strano. Visto il tipo di dato variant essere un pò pesante, forse conviene trasformare il tutto in string. ovviamente il programmino fa sia la compattazione che la scompattazione, devi semplicemente tagliarlo e spedire l'array variant che ti risulta dalla compattazione, quindi scompattarlo sulla macchina ricevente. Ciao Nic ---------------------------------------- AUTORE: 914 DATA :21/01/2006 - 19:00:38 ---------------------------------------- fatto tutto quello che hai detto però alla ricevente gli devo dire cos'è il dato che arriva, come si fa? come faccio a dirgli che è un array variant? Quindi devo fare un array variant vuoto giusto? ma come? ---------------------------------------- AUTORE: 914 DATA :21/01/2006 - 20:00:59 ---------------------------------------- Ecco adesso funziona, spedisco il variant e ricevo il variant, grosso problema nell'array dei numeri vedo solo la prima colonna e non le altre... ---------------------------------------- ================================================================================ PROBLEMA ACQUISIZIONE NIDAQ MX SOTTO LINUX ================================================================================ AUTORE: 437 DATA :21/01/2006 - 15:37:15 ---------------------------------------- Salve,sto riscontrando il seguente problema usando la scheda di acquisizione nidaqmx 6251M sotto LINUX (Red Hot 3): non si allocano piu' di 75 MByte di memoria per l'acquisizione dei canali (nel mio caso 10). Quello che vorrei fare è un'acquisizione di 1500 ms a 10 canali a 50 Ksample/sec ma la memoria che alloca linux non me lo pemette. Sotto windows XP funziona tutto correttamente. A cosa puo' essere dovuto tale problema? ....è forse colpa di linux ...come posso risolverlo ? ....grazie Ciao. ---------------------------------------- ================================================================================ Inviare due array su due porte diverse a tutti ================================================================================ AUTORE: 914 DATA :21/01/2006 - 17:00:17 ---------------------------------------- Questa volta il problema è serio.. \":)\" Riesco ad inviare un array su una porta su tutti i pc, ho usato l'esempio che si trova giÀ fatto in labview 7.1, ma non riesco ad inviarne due su due porte diverse, come faccio? Vi allego il file cosi magari capite meglio.. ---------------------------------------- AUTORE: 4 DATA :23/01/2006 - 11:37:14 ---------------------------------------- Secondo me il problema è che usi il VI \"Date Server Queue\" perentrambe le porte quindi accodi sia le connessioni richieste a una porta sia quelle richieste all'altra e ovviamente quando mandi i dati li mandi a i client sbagliati. Prova a fare due VI differenti in modo da avere due code disptinte per ogni porta oppure accodi tutti i client insieme ma prima di spedire controlli dal reference a che porta hanno richiestola connessione. Ciao, ---------------------------------------- AUTORE: 914 DATA :23/01/2006 - 12:16:02 ---------------------------------------- Grazie mille per la soluzione ma ho risolto attaccando i due array insieme con un variant e quindi ho mandato tutto sulla stessa porta. ---------------------------------------- ================================================================================ Port in e Port Out su linux ================================================================================ AUTORE: 129 DATA :21/01/2006 - 17:39:50 ---------------------------------------- Volevo smanettare un pò con labview in ambiente Linux. Ho installato la Suse e Labview 8Beta, volevo utilizzare port in e out tanto utilizzati in labview for win, ma non li ho trovati. Dipende dal S.O.? o dove li posso recuperare? Grazie \"8)\" ---------------------------------------- ================================================================================ Colorare un TAB control ================================================================================ AUTORE: 914 DATA :22/01/2006 - 16:09:54 ---------------------------------------- Ciao a tutti... Un'altra delle mie domande... Come si fa a colorare un TAB control? Perchè il colore standart è grigio ma io lo voglio giallo ma non riesco a fargli cambiare colore... ---------------------------------------- AUTORE: 683 DATA :23/01/2006 - 10:52:15 ---------------------------------------- credo che con il pennellino tu riesca a farlo tranquillamente se lo vuooi cambiare mentre è in esecuzione il VI c'è un esempio disponibile in LV (find example-> tab) ciao ---------------------------------------- AUTORE: 914 DATA :23/01/2006 - 10:58:34 ---------------------------------------- Voglio colorarlo con il pannello è li che non riesco... ---------------------------------------- AUTORE: 4 DATA :23/01/2006 - 11:25:48 ---------------------------------------- devi selezionale il controllo TAB e con tasto destro scegliere Advanced>>Allow Multiple Colours. NB: [u:31kyku9x]non[/u:31kyku9x] puoi colorare le TAB che trovi nella paletta \"Dialog Controls\" Ciao, ---------------------------------------- AUTORE: 914 DATA :23/01/2006 - 12:23:27 ---------------------------------------- si ma una volta selezionato allows multiple colours, mette il visto ma non posso comunque fare niente... ---------------------------------------- AUTORE: 683 DATA :23/01/2006 - 18:35:37 ---------------------------------------- chiedo scusa per la castroneria che ho scritto ---------------------------------------- ================================================================================ Collegamento con immagini ================================================================================ AUTORE: 914 DATA :22/01/2006 - 16:13:43 ---------------------------------------- Ennesima domanda. Io voglio mettere delle immagini nel mio VI, riesco se le trascino da un foglio esterno, ma così poi il VI pesa troppo (in KB intendo), come faccio a fare un collegamento a delle immagini esterne? Grazie Albikite ---------------------------------------- AUTORE: 914 DATA :23/01/2006 - 11:00:05 ---------------------------------------- Ma un collegamento nel pannello non quando il VI è in esecuzione ---------------------------------------- ================================================================================ Variabile locale, reference e property node ================================================================================ AUTORE: 591 DATA :23/01/2006 - 09:15:47 ---------------------------------------- Scusate la domanda probilmente per i piu banale ma mi sto chiedendo se nel modificare il valore di oggetto (un tasto ad esempio) è piu' conveniente utilizzare i property node o altre tecniche come reference o variabile locale? dal punto di vista delle prestazioni (velocita' di esecuzione) quale conviene utilizzare nel caso ci serva solo il valore dell'oggetto? Altra domanda sempre inerente alla questione su esposta è quando conviene utilizzare i reference e quando la variabile locale? Grazie anticipatamente. ---------------------------------------- AUTORE: 4 DATA :23/01/2006 - 11:30:56 ---------------------------------------- Se devi accedere solo al valore ti conviene usare la variabile locale pittosto che un property, a livelo di prestazioni è equivalente ma è più comoda la variabile locale. La differenza tra locale o property e reference+property node è che nel primo caso devi creare il codice, quello che agisce sulla ocale o sul property, direttamente nel VI che contiene il controllo\indicatore associato, nel secondo caso, reference, puoi creare un subVI che agisce sulle propietà dell'oggetto che stà da un'altra parte passando al subVI semplicemente il reference dell'oggetto che vuoi controllare. Ciao, ---------------------------------------- ================================================================================ Gestione processo riscaldamento ================================================================================ AUTORE: 683 DATA :23/01/2006 - 10:06:27 ---------------------------------------- ciao a tutti, usando i PID toolkit di LV mi son implemntato un regolatore per il riscaldamento di un forno. e fin qui tutto bene avrei bisogno di qualche consiglio sulla gestione del programma del tratrtamento diviso in rampe stasi e loop : qualcuno l'ha già implementato? si può trovare da qualche parte??? ic'è qualche esempio dal quale posso prendere spunto? grazie a tutti ---------------------------------------- ================================================================================ referece nei while loop ================================================================================ AUTORE: 683 DATA :23/01/2006 - 20:00:06 ---------------------------------------- buonasera, avrei bisogno di qualche informazione in più sui referece: se scrivo un vi contenente un ciclo while che ad esempio incremento un valore ogni tot secondi metto come terminale in uscita quella variabile se uso questa funziona come subVI non da in uscita tutti valoro ma solo l'ultimo come quando esce dal ciclo. Selezionando invece lo stesso pezzo di diagramma e faccio la creazione del subVI mi aggiunge una referce alla con un property nodo con la pèorprieta di value e in questo xaso la variabile fuori si incrementa come quella detro vorrei capire meglio questo meccanismo di come si fa ad aprire una \"finestra\" nei subVI grazie a tutti ---------------------------------------- ================================================================================ Link all'interno di un VI ================================================================================ AUTORE: 1038 DATA :24/01/2006 - 09:25:31 ---------------------------------------- Ciao, volevo sapere se qualcuno di voi era riuscito ad inserire un link all'interno di un VI nella pubblicazione di una pagina web del cRIO. Specifico che non mi interessa inserirlo all'interno della pagina sopra o sotto il VI, ma all'interno dello stesso. Grazie ---------------------------------------- ================================================================================ reference nei while loop ================================================================================ AUTORE: 683 DATA :24/01/2006 - 11:18:56 ---------------------------------------- ripeto la domanda magari un po' da lucido visto che quando l'ho postata ero un po' \"stanchino\" comunque: creo un Vi che ad esempio mediante un ciclo while incrementa un numero fino a raggingerne un'altro, se lo includo come sub VI la variabile che messo in uscita non segue l'aldamento della stessa varibile vista direttamente dal subVI ma soltanto il valore di quando esce dal ciclo, Se invece seleziono (lo stesso diagramma contenuto ne subVI)e faccio dal menu edi \"create subVI\" mi fa aggiune una varibile locale con scritta \"digital\" che con un filo va dentro al subvi creato automaticamente e dentro a questo c'è un'icona referece e un property node con la voc value che è collegata alla varibile che effettivamente esce e viene incrementata in tempo reale. spero di essere stato un po' più chiaro ---------------------------------------- AUTORE: 683 DATA :24/01/2006 - 11:22:35 ---------------------------------------- ah dimenticavo se qualcuno può farmi chiarezza sui reference mi farebbe un gran piacere ---------------------------------------- ================================================================================ salvare i dati ================================================================================ AUTORE: 914 DATA :24/01/2006 - 17:02:21 ---------------------------------------- Ciao a tutti, vi ringrazio per tutto l'aiuto che mi avete dato fino ad adesso, però ho un'altra domanda... Io voglio salvare dei dati da qualche parte e poi andarli a riprendere quando ne ho bisogno, uso un database? Se si quale? Ad esempio io voglio una funzione del genere: tabella con i dati da salvare: col1 col2 col3 col4 col5 alberto 10 20 23 45 alberto 13 24 34 46 marco 11 34 24 34 marco 9 4 5 7 questa è la tabella in cui ho salvato in un database suppongo, e poi per riprendere i dati vorrei fare qualcosa del tipo che inserisco il nome e il programma mi dia tutti i dati per ogni nome. tipo se inserico marco, mi da: 11 34 24 34 9 4 5 7 Come faccio cosa uso? Grazie Alberto ---------------------------------------- AUTORE: 129 DATA :26/01/2006 - 22:06:07 ---------------------------------------- L'utilizzo di un database è giustificato dalla mole di dati. Puoi utilizzare file di testo (formattati ad hoc) o CVS o anche file ini per poche informazioni. Puoi ancora realizzare file binari in labview se non devi leggerli con altre applicazioni. Nelle versioni + recenti esiste anche il supporto \"Test Data Exchange Format (.tdm)\" dalla palette file/data. Se le tue esigenze sono più complesse allora ti puoi indirizzare a database. Se devi interagire con i database puoi leggere questo [url=http://www.ilvg.it/forum/download.php?id=299:1fwjrsnp]articolo[/url:1fwjrsnp] ---------------------------------------- ================================================================================ Visualizzare "file" esterni ================================================================================ AUTORE: 660 DATA :25/01/2006 - 10:36:23 ---------------------------------------- Ciao a tutti, il mio problema è quello di poter inserire nel mio front panel un documento esterno fatto da testo + immagini + formule (in sostanza un documento word o un pdf). Sto usando LV8 che ho visto ha una funzione per inserire dei file rtf, ma ahimè \":(\" non funziona con immagini e formule. Qualcuno di voi ha mai avuto a che fare con l'inserimento di questo tipo di \"documentazione\" all'interno dei VI? P.S. Si intende che il tutto deve essere all'interno del front panel senza aprire visualizzatori esterni (così, purtroppo, è troppo facile e ci ero già riuscito). Grazie e a presto ---------------------------------------- AUTORE: 4 DATA :25/01/2006 - 10:57:58 ---------------------------------------- la prima cosa che mi viene in mente è usare gli activex di office... con quello che ne deriva in termini di problemi. Ciao, ---------------------------------------- AUTORE: 660 DATA :25/01/2006 - 12:15:53 ---------------------------------------- Come soluzione potrebbe piacermi, anche se in questo caso dovrebbero essere quelli di openoffice, ma il problema adesso è: COME \":?:\" \":?:\" \":?:\" Hai qualche link dove si trovi un esempietto o una spiegazione? Grazie ---------------------------------------- AUTORE: 727 DATA :25/01/2006 - 13:07:08 ---------------------------------------- Ciao. Nella sezione Download/Upload c'è un bellissimo esempio da cui puoi prendere spunto. Il file è run application. Se riesci ad adattarlo alle tue esigenze, il gioco è fatto. Ciao ---------------------------------------- AUTORE: 660 DATA :25/01/2006 - 22:49:39 ---------------------------------------- veramente non è proprio quello che intendevo. Col run application, se non sbaglio, posso aprire l'applicazione con cui visualizzare il documento, mentre io vorrei aprire il documento in una \"finestra\" nel mio front panel, senza essere legato all'apertura (e quindi successiva gestione) di un'applicazione esterna. Spero di essere stato abbastanza chiaro. Ciao ---------------------------------------- AUTORE: 482 DATA :26/01/2006 - 07:15:26 ---------------------------------------- Ed usare Un ActiveX container? Potrebbe essere una soluzione? ---------------------------------------- AUTORE: 660 DATA :26/01/2006 - 10:18:01 ---------------------------------------- direi proprio di si, il problema è ... che non so come fare. \":roll:\" \":roll:\" ---------------------------------------- ================================================================================ LabView e MySql ================================================================================ AUTORE: 645 DATA :25/01/2006 - 12:06:47 ---------------------------------------- Ciao a tutti, ho un favore da chiedervi: qualcuno ha usato LabView con MySql? Ho controllato nel forum e sono già andato a scaricare LabSQL ma non l'ho ancora provato. La mia idea è questa: ho un database creato in MySql, devo estrarre i dati. Sui dati estratti devo poi fare elaborazioni. Cosa mi consigliate? Qualsiasi idea... è la prima volta che cerco di comunicare con un database MySql. ---------------------------------------- AUTORE: 4 DATA :25/01/2006 - 14:23:51 ---------------------------------------- Proprio in questi girno stò affrontando il problema della comunicazione tra LabVIEW e MySQL. Stò facendo tes sotto win quindi posso darti informazioni solo per questa piattaforma. La mia configurazione è questa WIN XPs2 LV 7.1 MySQL 5 MySQL drive 3.5.1 ODBC Quello che serve per far comunicare LV e MYSQL è il driver MYSQL che trovi sul sito MYSQL e i'ODBC configurato opportunamente (trovi molte info se cerchi in rete) In LV, una volta che hai configurato tutto, accedi al DB tramite le funzioni ADO (un ActiveX) ci sono già delle librerie che sfruttano ADO per interfacciarsi ai DB e una di queste è LabSQL ma ne esisono anche altre tra le quali anche un toolkit di NI Il vantaggio di LabSQL è che è open source (ma anche NI lo è) e gratis (NI no...) Io stò usando entrambi e fino ad ora ho riscontrato prestazioni (velocistiche) migliori usando LabSQL, di contro mi trovo meglio in quanto a comodità con NI. Ti consiglio di fare delle prove con entrambi e poi decidi in base alle tue esigenze. La discussione è interessante se vuoi possiamo approfondire. Ciao, ---------------------------------------- AUTORE: 645 DATA :25/01/2006 - 15:47:13 ---------------------------------------- Dunque, ho scaricato MySql 5.0 e il driver ODBC. Prima domanda: io avevo già visto l'interfaccia di una vecchia versione di MySql che quando partiva consentiva di attivare il server SQL con mysqladmin.exe (se non sbaglio). La versione 5 mi chiede di configurare il server: io lo faccio ma alla fine non capisco se il server è partito o no (nella vecchia versione mi ricordo che si vedeva un semaforo vicino all'orologio di Windows). Seconda domanda: ho installato il driver ODBC ma quando creo un nuovo DNS per MySql (da fare giusto?) se uso la funzione test (messa a disposizione dell'interfaccia del driver) non riesco a connettermi al server (ecco perchè non capisco se il server è partito oppure no). Terza domanda: io ho installato anche EasyPHP perchè in precedenza ho avuto modo di realizzare pagine PHP. In questo pacchetto è compresa una versione di MySql con interfaccia comoda per realizzare le pagine. Se io uso questa posso evitare di installare MySql 5 ? Se risolvo i problemi di installazione poi penso che ti chiederò come realizzare veramente un VI... Scusa per la miriade di domande ma se riuscissi a gestire un database realizzato con MySql sarebbe ottimo! (Per curiosità, se io volessi leggere dal mio VI un database realizzato con Access non svrei tutti questi problemi di server da installare vero?). ---------------------------------------- AUTORE: 645 DATA :26/01/2006 - 08:34:37 ---------------------------------------- Ciao, giorno nuovo considerazioni nuove (massima di un vecchio filosofo...). Ieri sera ho giocato un po' con MySql e i vari driver, LabSQL e LabView, DNS e ODBC e alla fine ha funzionato tutto! Avevo un problema con il server di MySQL che leggeva file di configurazione inesistenti perchè secondo il programma erano in cartelle diverse da quelle di installazione. Ho modificato i percorsi dei file all'interno del menù di configurazione del server e sono riuscito ad avviare il server stesso (5.0). Poi ho installato il driver ODBC per MySQL (3.51) e ho creato un DNS negli strumenti di amministrazione di Windows (con molta difficoltà per capire quali fossero UserID e Password da inserire: alla fine ho scoperto che dopo la prima installazione l'Host è \"localhost\", lo UserId è \"root\" e la password non c'è. UserID e Password possono essere modificati nella pagina di configurazione del server). Con i blocchi di LabSQL è sufficiente richiamare il nome DNS scelto (durante la creazione del DNS negli strumenti di amministrazione) per dialogare con il database. A risentirci... ---------------------------------------- AUTORE: 645 DATA :01/02/2006 - 12:34:32 ---------------------------------------- Sto utilizzando le librerie gratuite LabSQL: carino il fatto di poter leggere database compilati con dati raccolti in altre acquisizioni. Permette di collegare qualsiasi sistema di acquisizione con LabView. Acquisisco (nel mio caso dati ambientali), popolo un database e poi leggo i dati con LabView. Eh eh eh... ---------------------------------------- AUTORE: 645 DATA :06/01/2007 - 18:21:27 ---------------------------------------- Torno a scrivere in questo spazio: LabView e MySQL comunicano bene, LabView e Microsoft SQL Server anche. Ma arriva un problemino: quando i dati sono tanti (intendo 40, 50000) la query eseguita con LabView impiega un certo tempo, la stessa query eseguita con il software scaricato insieme al server SQL (per esempio Query Analyzer nel caso di Microsoft SQL Server) impiega un tempo dieci volte inferiore (20s in LabView, 2s in Query Analyzer) !! Sto facendo diverse prove per capire qual è la parte lenta del VI che uso per eseguire le query ma se qualcuno ha qualche idea... ---------------------------------------- AUTORE: 838 DATA :08/01/2007 - 07:31:11 ---------------------------------------- avete per caso realizzato dei subvi che fanno certe funzioni come aggiungi/rimuovi dal database, cerca, eccecc? li potete postare? io ho fatto qualcosa del genere, ma con l'odbc senza il mysql \":D\" ---------------------------------------- AUTORE: 645 DATA :08/01/2007 - 08:34:36 ---------------------------------------- In che senso con l'ODBC ma senza MySQL? Io ho preparato dei blocchetti che eseguono query sul database e mi connetto al database inserendo il DSN che creo in Windows (Pannello di Controllo --> Strumenti di Amministrazione --> ODBC). Nella sezione "Articoli e Guide" trovi un documento scritto da me e uno scritto da Nicola dove puoi vedere questi blocchetti. ---------------------------------------- AUTORE: 838 DATA :08/01/2007 - 13:39:34 ---------------------------------------- ok, allora abbiamo fatto la stessa cosa \":D\" ---------------------------------------- AUTORE: 838 DATA :08/01/2007 - 13:52:16 ---------------------------------------- però io non ho intsallato nulla, ho usato semplicemente il "microsoft access driver mdb" preinstallato sul pc con xp e da li comunico su tabelle di access senza problemi con comandi sql è la stessa cosa che usare il mysql??? scusa ma ci capisco pran poco di ste cose ---------------------------------------- AUTORE: 487 DATA :08/01/2007 - 14:37:08 ---------------------------------------- [quote:1wn5srsy]quando i dati sono tanti (intendo 40, 50000) la query eseguita con LabView impiega un certo tempo, la stessa query eseguita con il software scaricato insieme al server SQL (per esempio Query Analyzer nel caso di Microsoft SQL Server) impiega un tempo dieci volte inferiore (20s in LabView, 2s in Query Analyzer) !![/quote:1wn5srsy] Ho avuto anch'io dei problemi simili e, se non ricordo male, li ho risolti stando molto attento alle operazioni che vengono eseguite dai vi proposti nella libreria LabSQL. Mi spiego meglio: se devi eseguire molte operazioni sul database (per esempio delle select) devi fare in modo di eliminare tutte le operazioni ricorsive (tipo aprire e chiudere il collegamento con il database). Se invece il tuo problema si verifica nell'eseguzione di una sola query, allora l'unica cosa che ti posso dire è di cercare di eseguire la medesima operazione in maniera differente (lo sò che è una cosa stupida da dire, ma non vedo altra soluzione!!) ---------------------------------------- ================================================================================ Cancellazione logica o fisica ================================================================================ AUTORE: 1036 DATA :25/01/2006 - 12:48:32 ---------------------------------------- Ciao , sono un ex programmatore C e simili. Vorrei chiedere un consiglio ai programmatori LV dalla nascita. Il mio problema è relativamente semplice, ma vorrei individuare una soluzione che sia il piu coerente possibile con le regole della programmazione con diagrammi di flusso. Veniamo al punto: Ho una vettore nel quale sono contenuti dei numeri: esempio 1 10 3 12 20 Devo individuare in maniera sequenziale, i valori che differiscono fra loro di massimo 5 unita. Una volta individuati, fusionarli con una media matematica. Nota Bene: il processo scorrera il vettore una sola volta; ovvero il processo non è iterativo. Vediamo quale sarebbero i risultati parziali: 1 e 3 quindi, riscrivo il vettore: 2 10 12 20 dopo 10 12, riscrivo il vettore: 2 11 20 e quindi questo sarebbe il risultato finale. Ho tutte le conoscenze per risolvere il problema, ma le mie souzioni risultano essere di un macchinoso, e forzate. grazie per qualsiasi soluzione alternativa. Buon Lavoro! ---------------------------------------- AUTORE: 645 DATA :25/01/2006 - 13:06:46 ---------------------------------------- Scusa ma non ho ben capito! Puoi fare un altro esempio? Di per sè in LabView puoi leggere i singoli valori di un vettore, fare le operazioni che vuoi e modificare i valori analizzati cancellandoli o sostituendoli seguendo le regole di altri linguaggi di programmazione. L'unica differenza (così a mente) è che anzichè scrivere codice letterale si usano blocchetti grafici. ---------------------------------------- AUTORE: 1165 DATA :09/04/2006 - 22:04:03 ---------------------------------------- piatto ricco mi ci ficco .. scusa la battuta .. e dimmi per favore se hai già risolto tutto .. capisco che a mesi di distanza forse non tieni neanche più sotto controllo il topic .. ma nel caso tu volessi flosofeggiare un po' sul tema da te proposto la cosa mi alletta moltissimo .. dunque .. primo: non ho capito per niente l'algoritmo da te proposto .. ma semmai su questo torneremo dopo .. per ora l'aspetto più importante che mi preme di evidenziare è che il Labview si comporta in maniera assolutamente diversa dai vecchi linguaggi stile Pascal e primi compilatori C .. in Labview la gestione della memoria nell'uso dei vettori è dinamica e quinfi non hai mai problemi di spazio e di celle di memoria contigue .. cioè quando vuoi usare un vettore non devi definire a priori la sua dimensione come nei vecchi linguaggi ma è il compilatore stesso che si occupa run time di rilocare lo spazio in ram aggiungendo celle in più o togliendone se inutili, semmai spostando di peso tutto il vettore da una parte all'altra della ram (quindi non bisogna abusare di questa elasticità di comportamento per non perdere in prestazioni) .. quindi tu hai la massima flessibilità nel giocare coi vettori senza doverti preoccupare di come vengono riempiti o di dove vuoi inserire un nuovo dato (sia in coda che in testa che in mezzo) .. è la stessa flessibilità che veniva data dai puntatori del Pascal e del C .. ma ottenuta a costi di sviluppo più bassi!! .. veniamo ora al tuo algoritmo .. dovresti precisare se è un algoritmo interno o esterno al vettore che vuoi analizzare .. cioè se intendi distruggere il tuo vettore via via che lo elabori (sovrascrivendolo internamente) o lo vuoi mantenere integro lavorando esternamente a lui, cioè creando via via un nuovo vettore esterno su cui accumulare i tuoi risultati parziali .. in questo caso la cosa è evidentemente molto più facile!! .. spero che queste "riflessioni in libertà" ti servano a qualcosa e comunque resto sintonizzato per avere eventualmente più particolari sul tuo algoritmo .. dopodichè potrei provare ad implementare una mia soluzione se ti interessa .. ciao .. Enrico. ---------------------------------------- ================================================================================ Aiuto per SQL ================================================================================ AUTORE: 77 DATA :25/01/2006 - 14:21:38 ---------------------------------------- Ciao a tutti. Ho un problema e dopo aver tanto cercato e provato a risolvere il mio problema mi vedo costretto a chiedere il vostro aiuto. Premetto che la mia conoscenza di SQL è molto scarsa e ho cercato di sopperire trovando info sul web. Il mio problema è questo: mi hanno dato un file .DAT che dovrebbe contenere un database realizzato con SQL Server e dovrei sviluppare un'applicazione in LabVIEW per leggere informazioni dal suddetto DB. La mia situazione è questa: ho LV6.1, ho scaricato LabSQL e altre librerie, ma con nessuna sono riuscito a stabilire la connessione con il DB nel file DAT. Sarà un problema di Connection String? Ho cercato sul sito www.connectionstrings.com e provato qualcuna delle stringhe suggerite, sempre senza successo. Ho trovato molti esempi su DB in Access, ma devo dire che sfruttando gli ActiveX riesco a gestire e interfacciarmi con Access, Excel, WORD, ecc. e nonostante tutto non riesco a venire a capo del mio problema. Qualcuno può cortesemente aiutarmi, con un esempio, un suggerimento, qualsiasi cosa che mi faccia uscire da questa empasse? Grazie in anticipo, Stefano ---------------------------------------- AUTORE: 4 DATA :25/01/2006 - 14:26:01 ---------------------------------------- Ciao il tuo problema secondo te stà a monte... vediamo se ho capito giusto: hai installato SQL Server sulla tua macchina? Ciao, ---------------------------------------- AUTORE: 77 DATA :25/01/2006 - 14:43:31 ---------------------------------------- Si. Ho installato SQL server sulla mia macchina e ho provato anche a fare l'importazione del file DAT, perchè mi sembra di aver capito che il formato DAT serva proprio per esportare il DB in SQL Server per importarlo poi successivamente, magari su un'altra macchina. Non ci giurerei, però! Comunque l'importazione non è andata a buon fine, perchè, come per la configurazione dei parametri ODBC, non riesco a stabilire un link fra un DSN e il mio file .DAT, ammesso che ciò sia corretto. D'altra parte non so nemmeno se l'importazione dei dati in SQL Server sia necessaria, in quanto se l'informazione contenuta nel file DAT è sufficiente per fare delle query... forse posso risparmiarmela. Dimmi che ne pensi. Ciao, Stefano ---------------------------------------- AUTORE: 4 DATA :25/01/2006 - 15:42:08 ---------------------------------------- Devi assolutemente fare l'imporazione dei dati nel motore SQL Server altrimenti è impossibile acedervi un DB non può essere utilizzato senza DBMS come la benzina non serve senza l'auto. Una volta che avrai fatto l'importazione sarai a metà dell'opera \":wink:\" Ciao, ---------------------------------------- AUTORE: 77 DATA :25/01/2006 - 15:47:38 ---------------------------------------- Benissimo. Puoi aiutarmi a fare l'importazione dei dati? Un'altra cosa che non capisco è se è possibile visualizzare la struttura del DB dopo l'importazione, come in Access per esempio. Ciao, Stefano ---------------------------------------- AUTORE: 15 DATA :15/02/2006 - 18:20:21 ---------------------------------------- Un passo per volta: Il tuo progetto è 1-Sql Server parla il tuo file dat 2-Labview parla con Sql Server Tu devi ancora risolvere la prima parte, il tuo problem ariquarda Sql server non labview ---------------------------------------- AUTORE: 645 DATA :16/02/2006 - 08:50:03 ---------------------------------------- Hai scaricato il driver ODBC? Io uso la versione 3.51. Dopo averlo installato vai in Pannello di Controllo, sotto Strumenti di Amministrazione. Poi Origine dati (ODBC), Aggiungi, MySql ODBC server. Inserisci i dati richiesti (come Host prova localhost). Se il server MySql è avviato dovresti vedere il nome dei database che hai nella cartella del server. Quando riesci a completare questo passaggio (dico \"riesci\" perchè io, che non so niente di Sql, ho fatto un po' di fatica) puoi usare LabSql per comunicare con il database inserendo nella casella DNS di LabSql il nome usato nella creazione del riferimento in Strumenti di Amministrazione. ---------------------------------------- AUTORE: 1030 DATA :22/02/2006 - 08:44:05 ---------------------------------------- Per visualizzare la struttura del DB puoi usare un programma free molto semplice da usare: SCHEMESTER. Dopo averlo avviato basta scrivere il nome d'istanza del tuo DB e la passwd con la quale accedi allo stesso. Nella schermata principale ti appariranno le tabelle del tuo DB e per creare la struttura basta trascinare le tabelle nella text area principale. Se hai delle dipendenze tra le tabelle compariranno anche le relazioni tra di esse. Bye bye ---------------------------------------- ================================================================================ database ================================================================================ AUTORE: 914 DATA :25/01/2006 - 17:04:28 ---------------------------------------- Ciao a tutti Io ho questo problema che non sò come risolvere, qualcuno sa come si fa a salvare dati in un database? ---------------------------------------- AUTORE: 278 DATA :25/01/2006 - 18:29:50 ---------------------------------------- Ciao, Forse lo sai già ma ti consiglio di dare un'occhiata alla sezione Articoli del forum, contiene un documento che dovrebbe fare al caso tuo... Non sono un espero di database (in effetti, non li ho mai utilizzati \":(\" ) ma se fai una ricerca nel forum tramite l'apposta barra in alto a destra, qualcosa trovi di sicuro... Bye ---------------------------------------- AUTORE: 129 DATA :26/01/2006 - 21:57:26 ---------------------------------------- Prova a leggere questo articolo [url=http://www.ilvg.it/forum/download.php?id=299:275n6lpt]articolo[/url:275n6lpt] ---------------------------------------- ================================================================================ Server-Client ================================================================================ AUTORE: 368 DATA :26/01/2006 - 08:45:32 ---------------------------------------- Salve ragazzi, qualcuno sa dirmi dove posso reperire informazioni sull'uso di funzioni server-client? Ho visto gli esempi di labview, ma preferibilmente vorrei partire con le mie gambe invece di dover camuffare i suddetti esempi. In particolare dovrei realizzare un VI tale da permettere ad un server di acquisire ed archiviare file che man mano vengono creati da diversi client. Perdonatemi se non ho usato termini opportuni, ma non ho perniente esperienza di server, ecc. Consigli?? Grazie ---------------------------------------- AUTORE: 645 DATA :26/01/2006 - 10:46:59 ---------------------------------------- Io posso dirti che la documentazione che trovi sul sito della National non è male. Per la tua esigenza potresti guardare i server-client Datasocket e TCP-IP. ---------------------------------------- AUTORE: 368 DATA :26/01/2006 - 13:17:05 ---------------------------------------- Grazie della dritta MagicBotolo \":D\" ---------------------------------------- ================================================================================ utilizzare dinamicamente subVI ================================================================================ AUTORE: 683 DATA :26/01/2006 - 11:24:56 ---------------------------------------- ciao a tutti avrei bisogno di una dritta: se aggiungo un subVI nel programma principale i dati che entrano o escono da questo VI sono in maniera sequenziale cioè tipo un ciclo while oppure for con le variabili fuori dal ciclo e quindi non vengono aggiornati ad ogni iterzioni ma soltanto quando si esce dal ciclo come faccio a fare tutto dinamicamente ???? ---------------------------------------- AUTORE: 129 DATA :28/01/2006 - 07:53:29 ---------------------------------------- Non sono sicuro di aver capito la domanda, ma mi è sembrato che il problema sia, ho un subvi con un suo loop, inserendolo in un altro loop, questo viene eseguito e blocca gli altri processi finchè non termina il suo ciclo? se è così, puoi semplicemente fare un while con una sola iterazione, (metti una costante false sul terminale di iterazione), quindi inserendolo nel tuo main loop, questo esegue tutti i processi e fornisce correttamente i dati.Guarda l'esempio allegato dovrebbe essere + chiaro. Se invece hai una chiamata dinamica del VI che viene eseguito separatamente, puoi utilizzare i metodi Get control value. Altrimenti ancora potresti ricorrere a variabili globali, in un vi le scrivi in un altro le leggi. Ancora meglio utilizzi le code. Comunque se non ho centrato la domanda, dimmelo. Ciao, Nic \":wink:\" ---------------------------------------- AUTORE: 683 DATA :28/01/2006 - 10:48:04 ---------------------------------------- si hai centrato la domanda, girando un po' ho trovato un post che spega come usare gli invoke note e accedere ai diversi vi mediante il refernce. Ho ancora qualche dubbio sul formato dei dati. Ti spego brevemente come ho fatto. da tanti moduli field point acquisisco e controllo vari segnali e li ho messi tutti su un vi e poi dagli altri gli apro la referce e scrivo e leggo i valoro a mia piacimento per le variabili globali come mi devo comportare??è meglio il sistema per reference? ---------------------------------------- AUTORE: 129 DATA :28/01/2006 - 19:02:30 ---------------------------------------- Field point, e vi server. Ho fatto un applicazione, che deve gestire diversi moduli field point, il problema era proprio quello di creare un pannello principale e tanti VI autonomi che però comunicassero con il pennello principlae. Ho utilizzato Vi server (invoke node,property e queste cose qui). Nella main.vi, devi creare un invoke node che vada a pescrae quel controllo del vi che legge il field point (per es. se l'indicatore si chiama temperatura cisterna nel cisterna.vi, devi aprire una reference al cisterna.vi, quindi un get control value dove il name è cisterna). Altrimenti puoi utilizzare le variabili globali. Crea un glòobal.vi che magari si chiama field point value, quindi inserisci tanti controlli quanti sono quelli che vuoi gestire. Ora dal vi che deve leggere/scrivere le globali, inserisci nel diagramma, il vi globale che hai realizzato e selezioni il controllo da scrivere/leggere. Il vi server ti permette di lavorare con l'ambiente, quindi potrai aprire/chiudere, manipolare altri vi dal vi principale. Scusa se ti ho aggiunto confusione ma l'argomento è abbastanza ampio da discutere in un topic. Se vuoi leggere due righe su Viserver, clicca [url=http://www.bytelabs.it/modules.php?name=News&file=article&sid=10:1v65dp3r]qui[/url:1v65dp3r] c'è anche un esempio. Suerte \":wink:\" ---------------------------------------- AUTORE: 683 DATA :29/01/2006 - 08:56:06 ---------------------------------------- grazie mille per le risposte , mi è stata molto utile per avere la conferma che sono sulla strada giusta, considerando un po' le condizioni penso che mi covenga più un Vi server che mi permtte anche di far visualizzare il pannello frontale di altri vi per controllo grazie buona domenica ---------------------------------------- ================================================================================ integrale ================================================================================ AUTORE: 914 DATA :26/01/2006 - 14:18:59 ---------------------------------------- Ragazzi o io non ci capisco niente di matematica o sono davvero una frana in Labview, ma se io volessi, fare l'integrale di una funzione, ma questa funzione in questo caso è un numero, quindi l'integrale andrebbe a moltiplicarmi il mio numero con il tempo che passa e quella sarebbe la soluzione: f=2 integrale(f) da 0 a t = f * t, giusto? quindi = 2 * t perchè allora se faccio questo semplice programma non funziona? Ecco l'allegato ---------------------------------------- AUTORE: 247 DATA :27/01/2006 - 15:51:40 ---------------------------------------- Ciao, ma quando dici che la tua \"funzione è un numero\" intendi dire che hai una funzione costante no? Cmq a parte questo il tuo vi non funziona per questi errori: - L'Express che hai usato era setatto male, non su integral ma su differential. - Non ha senso richiedere il calcolo di un'integrale nel tempo se non gli fornisci una funzione dipendente dal tempo...tu infatti gli fornisci una costante e null'altro...devi fornirgli in ingresso una waveform, ti allego l'immagine dell'Express aperto dove si vede che per calcolare l'integrale utilizza l'informazione dt della waveform. - Sei caduto nella tentazione di usare un'Express!!!! Errore gravissimo!!! \":D\" \":D\" \":D\" BYE. ---------------------------------------- AUTORE: 914 DATA :28/01/2006 - 17:06:04 ---------------------------------------- esatto è una funzione costante, ma appunto come faccio a dirgli che dev'essere un integrale in funzione del tempo? perchè la funzione che entra non è sempre costante ma puo anche variare... ---------------------------------------- AUTORE: 914 DATA :28/01/2006 - 17:08:57 ---------------------------------------- sono dei numeri che acquisico esterni al programma quindi in realta è solo una variabile che cambia, che descrive la funzione.. e la quale voglio integrare in funzione del tempo..... ---------------------------------------- ================================================================================ Trasferire dati su excel ================================================================================ AUTORE: 1031 DATA :27/01/2006 - 17:16:31 ---------------------------------------- Il mio problema è il seguente: devo trasferire su excel tutti i dati realtivi ad una determinata waveform,ossia i valori di tutte le ascisse e delle corrispondenti ordinate. Purtroppo pero quando utilizzo il blocco write spreadsheet file,mi fornisce solamente i valori delle ordinate,mentre per le ascisse niente da fare. L'asse delle ascisse è un asse dei tempi. Come posso fare? ---------------------------------------- AUTORE: 247 DATA :27/01/2006 - 18:58:10 ---------------------------------------- Ciao, succede a causa di come viene rappresentato il tipo di dato waveform: questo tipo di dato è composto da almeno tre campi(+attributi opzionali): t0 -> tempo di inizio campionamento. [valore singolo] dt -> intervallo tra un campione ed il successivo. [valore singolo] Y -> vettore contenente i valori di tutti i campioni. [vettore] Il vi \"Write To Spreadsheet File\" riconosce quindi il tipo waveform solamente tramite l'ingresso a una dimensione(1D) e salva l'unico array presente nel dato che è quello delle Y. Per ottenere due colonne, una per il tempo ed una con i dati devi crearti l'array dei tempi, puoi farlo in due modi, o utilizzando il vi \"Get Waveform Time Array\", oppure realizzare la cosa a mano prendendo il tempo t0 e aggiungendo iterativamente dt per ottenere un array della stessa dimensione di quello dei dati. Vedi figura. BYE. ---------------------------------------- AUTORE: 1031 DATA :30/01/2006 - 09:11:59 ---------------------------------------- Ti ringrazio tantissimo del tuo suggerimento....Tra 10 minuti proverò ad utilizzare il blocco che mi hai detto e speriamo bene! Io pensavo che il mio problema fosse dovuto al fatto che stavo acquisendo i segnali con una scheda di acquisizione!!! Ti faccio sapere come andrà!!! Bye! ---------------------------------------- ================================================================================ Caricare diverse configurazioni da MAX ================================================================================ AUTORE: 463 DATA :29/01/2006 - 16:11:04 ---------------------------------------- Salve a tutti, mi si è posto il problema di poter dovere caricare diverse configurazioni create con MAX (quindi diversi file *.daq) a seconda del programma che viene lanciato. E' possibile dall'interno di Labview forzare la scelta di un determinato file *.daq piuttosto che un'altro richiedendondolo come parametro di Input all'utente? Qualcuno ha già affrontato il problema e sa indirizzarmi sulla strada giusta? Grazie a tutti Isafordog ---------------------------------------- ================================================================================ Variabile comandata da evento ================================================================================ AUTORE: 368 DATA :30/01/2006 - 09:08:48 ---------------------------------------- Ciao, vorrei creare una variabile booleana che assuma, ad esempio, il valore \"vero\", quando viene modificato il valore di un controllo sul pannello frontale. E' possibile farlo? Grazie ---------------------------------------- ================================================================================ get all control value ================================================================================ AUTORE: 683 DATA :30/01/2006 - 10:19:11 ---------------------------------------- buongiono, il VIserver è un grande strumento fino a questo momento,ho invocato i metodi \"get control value\" e \"set control value\" singolarmente ossia variabile per variabile specificando il nome , ho visto che nei metodi disponibili cin sono anche \"get all control value\" e \"set all control value\" che mi sarebbe molto utile per risparmiare spazio nel diagramma ma ho un problema come devo formattare i dati in modo da inviali e riceverli? grazie buona giornata ---------------------------------------- AUTORE: 680 DATA :10/02/2006 - 15:30:12 ---------------------------------------- ecco un esempio di utilizzo dei get control... e set control... ciao.. ---------------------------------------- AUTORE: 1155 DATA :17/03/2006 - 15:40:57 ---------------------------------------- Sono interessato molto al funzionamento del VI server, ma purtroppo non riesco a vedere i vostri esempi perchè Ahimè possiedo solo una versione 6.1i Potreste indicarmi dove posso trovare altri esempi? Grazie ---------------------------------------- AUTORE: 645 DATA :17/03/2006 - 15:57:10 ---------------------------------------- Scusate la domanda banale: usare le variabili globali piuttosto che il server che differenze comporta? ---------------------------------------- AUTORE: 278 DATA :17/03/2006 - 23:23:40 ---------------------------------------- Ciao, [quote:2rwc51tw]Sono interessato molto al funzionamento del VI server, ma purtroppo non riesco a vedere i vostri esempi perchè Ahimè possiedo solo una versione 6.1i [/quote:2rwc51tw] Purtroppo non posso convertire i VI alla tua versione, ma ti allego un file con gli screenshot dei VI, in questo modo dovresti essere in grado di ricostruirli con la versione di LV che hai. Ciao ---------------------------------------- AUTORE: 129 DATA :18/03/2006 - 17:49:52 ---------------------------------------- Ai fini pratici ti comporta tanto e poco, Le globali sono praticamente dei VI senza diagramma, quindi devi considerare un VI global esterno. IL Get/SET sono invece metodi dell'applicazione e non hai bisogno di dichiarare niente, basta che crei sull'applicazione un riferimento al controllo/indicatore. ---------------------------------------- AUTORE: 1155 DATA :20/03/2006 - 08:34:04 ---------------------------------------- Ti ringrazio per gli screenshot, vedo di farli fruttare!!! ---------------------------------------- ================================================================================ occupazione memoria di LV e vi aperti ================================================================================ AUTORE: 683 DATA :30/01/2006 - 13:33:16 ---------------------------------------- rieccomi qua a porre un'altra domada il sistema in LV che devo creare prevede ulameno 10 piccoli vi che vengono chiamati che vanno ognuno per conto loro e si comunicano attraverso il VI server. Ora visto che per prova sono ho attivato solo a 4 vi contemporaneamente indicativamente con un PC aggiornato a quanti Vi aperti e in esecuzione posso gestire senza avere dei problemi di rallentamenti o riempimenti di RAM?? I singoli Vi sono pittosto piccoli e apparte 3 PID non ci sono operazioni complicate datemi un parere Grazie buon lavoro ---------------------------------------- AUTORE: 129 DATA :30/01/2006 - 17:21:20 ---------------------------------------- Io sono arrivato a gestire tranquillamente con 128M e PIII 12 vi che girano simultaneamente giorno e notte. I problemi che ho trovato sulla memoria erano dovuti solitamente ad arry che si ingrossavano senza mai scaricare dati, oppure nel caso appunto del vi server a reference che riaprivo senza mai chiuderle, o anche all'uso improprio delle property, insomma problemi di gioventù o di inesperienza. Prova a fare andare i tuoi 4 VI per un paio d'ore e guarda le risorse se impazzano. I like VISERVER \"8)\" ---------------------------------------- ================================================================================ acquisizione e salvataggio immagini ================================================================================ AUTORE: 727 DATA :31/01/2006 - 09:24:46 ---------------------------------------- Ciao a tutti. Qualcuno può darmi una mano? Devo acquisire un'immagine tramite un dispositivo ccd. L'immagine è quindi un'array bidimensionale 1024x1024 pixel. La profondità è di 16 bit. Quindi ogni punto può assumere un valore tra 0 e 65535. Io voglio che: 1- L'immagine sia in scala di grigi (0=nero - 65535=bianco); 2- Voglio aggiungere sotto l'immagine una casella di testo in cui scrivo i parametri dell'acquisizione; 3-voglio salvare poi l'immagine in formato fits, cioè non voglio convertirla in nessun formato RGB o altro, perchè voglio sapere il valore esatto in ogni punto. Spero riusciate a darmi una mano. Il non poterla convertire in altri formati mi sta incasinando!!!! Grazie. PxEL ---------------------------------------- ================================================================================ confronto data ================================================================================ AUTORE: 706 DATA :31/01/2006 - 11:47:41 ---------------------------------------- Ciao a tutti Il mio scopo è di confrontare la data attuale con la data dei file che sono salvati all'nterno di una directory del PC. Lo scopo è quello di individuare i file che sono \"vecchi\" di almeno tre giorni rispetto alla data odierna e di conseguenza eliminarli. Vi invio il VI (una bozza) che ho sviluppato e non tiene conto di casi che si possono verificare a seconda se il mese è di 28,30,31 giorni e se il giorno è inferiore o uguale al 3 del mese. Mi domando se c'è un metodo più veloce di confronto tra date senza stare a considerare caso per caso. Spero di essere stato abbastanza chiaro nella mia spiegazione. Grazie per l'aiuto Ciao Francesco ---------------------------------------- AUTORE: 247 DATA :31/01/2006 - 17:14:57 ---------------------------------------- Ciao, come metodo mi sà che non ci si scappa molto a meno di non incorporare direttamente nel nome del file l'informazione della data di creazione, ad esempio aggiungendo un'informazione che ti consenta più velocemente di riconoscere la sequenzialità dei giorni, tipo nomefile_numerofile_giornoN, dove giornoN viene incrementato e quindi devi fare una semplice sottrazione ed un confronto(cmq irrinunciabile..o no??:D mumble..mumble)...il tutto cmq non mi farebbe impazzire.. ...l'unico appunto che posso farti è quello di eliminare la selezione dell'elemento della lista all'inizio, basata sull'indice i, abilitando direttamente l'indexing sul vettore in ingresso dei nomi, tipo sostituzione sotto a quella vecchia in figura. BYE. ---------------------------------------- ================================================================================ Controlla Variazioni (Event structure) ================================================================================ AUTORE: 368 DATA :01/02/2006 - 09:04:40 ---------------------------------------- Ciao a tutti, sono alle prime armi con l'event structure. L'idea che mi è venuta è di creare un sub-VI che riesca a memorizzare (magari salvandolo su file) tutte le modifiche fatte ai valori dei controlli del VI in cui è inserito, ottenendo così una lista che contenga tutte le modifiche fatte. E' possibile farlo?Sono sulla strada giusta con l'event structure o ci sono valide alternative? Ciao e grazie per l'attenzione \":P\" ---------------------------------------- AUTORE: 4 DATA :01/02/2006 - 10:02:19 ---------------------------------------- Ciao, sei decisamente sulla strada giusta. Ho abbozzato una soluzione. Ciao, ---------------------------------------- AUTORE: 368 DATA :01/02/2006 - 13:02:32 ---------------------------------------- Grazie dell'aiuto, ora si che ho una bella gatta da pelare!!!! \":D\" Credo di aver capito concettualmente il funzionamento del tuo esempio... spero di saperlo capire fino in fondo per farlo funzionare....... \":o\" Cmq ti farò sapere. Grazie di nuovo. CIAO ---------------------------------------- AUTORE: 368 DATA :01/02/2006 - 13:31:02 ---------------------------------------- Dove trovo il VI che tu chiami \"Write Key(variant)__ogtk.vi\"? ---------------------------------------- AUTORE: 4 DATA :01/02/2006 - 13:46:29 ---------------------------------------- Lo trovi su openg.org Ciao, ---------------------------------------- AUTORE: 1067 DATA :09/02/2006 - 10:31:39 ---------------------------------------- [quote="Ale914":2v529agy]Ciao, sei decisamente sulla strada giusta. Ho abbozzato una soluzione. Ciao,[/quote:2v529agy] e se volessi controllare la variazione di un solo controllo tra tanti presenti? Come devo fare per selezionare solo quello? Grazie \":D\" ---------------------------------------- AUTORE: 368 DATA :09/02/2006 - 11:20:28 ---------------------------------------- Ciao, a partire dall'esempio che ci ha fornito gentilmente Ale, potresti ad esempio semplicemente usare un case structere controllato dal label text del/dei controlli che vuoi tu. Mi spiego meglio: includi tutta la parte del programma che genera il file in un case structure, la cui condizione true (ad esempio) si abbia quando il label è quello del tuo controllo. La condizione falsa non fa invece nunlla. Spero di non avere fatto casino, Ciao ---------------------------------------- AUTORE: 247 DATA :09/02/2006 - 15:41:08 ---------------------------------------- Ciao, [quote:js7fojn7]Mi spiego meglio: includi tutta la parte del programma che genera il file in un case structure, la cui condizione true (ad esempio) si abbia quando il label è quello del tuo controllo. La condizione falsa non fa invece nunlla. [/quote:js7fojn7] In questo caso però avresti la struttura ad eventi che continuerebbe a processare inutilmente l'evento \"Value Change\" per tutti i controlli presenti sul front panel, quando in realtà ne vuoi tenere d'occhio uno solo..non è la scelta migliore. Il mio consiglio è quello di realizzare la selezione del controllo che devi loggare prima di entrare nella struttura ad eventi. BYE. ---------------------------------------- ================================================================================ vi server e LAN ================================================================================ AUTORE: 683 DATA :01/02/2006 - 09:11:10 ---------------------------------------- ciao a tutti, grazie a vostri consigli sto facendo veramente un buon lavoro. I vi server sono molto versatili se se non ci fosse stato ILVG chi me lo diceva come e dove usarli?? comunque, se fosse possibile senza tante complicazioni usare il vi server anche su una rete LAN. Mi spiego meglio : da un pc collegato a field point acquisisco e scriv leggo su file ecc.... ecc... si potrebbe far visualizzare un vi su un altro pc che prende i dati dal \"PC principale\"sempre utilizzando i refercence??ho visto qualche opzione sul viserver ma non ho ben chiaro il funzionamento in rete mi auguro che la cosa sia semplice e non molto macchinosa grazie a tutti ---------------------------------------- AUTORE: 645 DATA :01/02/2006 - 12:32:32 ---------------------------------------- Io ho provato in passato (dico in passato perchè i nuovi driver DAQ-mx non supportano più questa funzione) ad acquisire dati su un pc posto in laboratorio e guardare i dati nel pc posto in ufficio facendo girare il VI sul pc dell'ufficio! Mi spiego, i Traditional-DAQ offrivano la possibilità di richiamare uno strumento collegato fisicamente ad un altro pc interno alla rete. Perciò sul pc dell'ufficio chiamavo la scheda di acquisizione dati attaccata al pc del laboratorio: il pc del laboratorio acquisiva e spediva i dati in rete al pc dell'ufficio. Tutto questo facendo girare il VI sul pc dell'ufficio e semplicemente chiamando la scheda collegata al pc del laboratorio. LabView si occupava di configurare la comunicazione TCP-IP che a me risultava trasparente. Con i DAQ-mx non si può più fare. Non so i FieldPoint come vengono interpretati perchè non mi è mai capitato di usarli. Già che ci siamo: puoi accennare cosa hai combinato con il server? Perchè può essere interessante! Grazie ---------------------------------------- AUTORE: 683 DATA :01/02/2006 - 15:16:28 ---------------------------------------- la visualizzazione dei dati su un'altro pc l'ho abbozzata usando gli esempi di LV , non mi interssa un controllo da remoto ma soltato un monitoraggio e dimostrazione , per il controllo da internet ho preferito usare un di quei semplici tool che ti consentono di controllare il pc da remoto (pcanywhere, logmein ecc...) la mia applicazione che tra quanche giono inizierà ad essere testata per poi utilizzarla per un monitoraggio e controllo di celle a combustibile sperimentali è strutturata nella segunte maniera: 1. moduli filedpoint AI100 Ao200 TC120 questi acquisiscono e governano 3 unità di potenza a triac 7 flussimetri e prendono dati da varie termocoppie. Per il controllori di potenza ho fatto un vi che acquisisce e scrive sui fieldpoint molto velocemente collegato poi mediante il Vi server ad un VI dove ci sono i PID e poi al pannello centrale di controllo poi ci sono altri Vi sempre collegati mediante reference che eseguono calcolo o registano campioni. E poi mi ormai che ho trovato la soluzione faro un piccolo vi che installero sul PC del mio capo per fagli vedere come va tutto l'ambaradan senza che lui intervenga direttamente sui controllo o ancor peggio che qualche \"buontempone e/o distratto\" mi chiusesse i VI .... se hai qualche domanda chedi pure ---------------------------------------- AUTORE: 645 DATA :01/02/2006 - 15:34:17 ---------------------------------------- Ma per visualizzare il VI su un altro pc hai sfruttato la possibilità che offre LabView di pubblicare il VI in una pagina Html? Perchè io ho fatto così ma non ho mai provato PcAnywhere e cose simili e non so che vantaggi può offrire rispetto alla soluzione offerta da LabView. ---------------------------------------- AUTORE: 683 DATA :02/02/2006 - 08:21:51 ---------------------------------------- per quel che riguarda la rete aziendale io tranquillamente sufruttndo gli esempi di LV visualizzo un grafico e qualche valore ma il che legge risiede sul PC \"client\" mentre in PC \"server\" non fa latro che sparare i dati in rete LAN . Per quel che riguarda il controllo da remoto (internet)ho trovato molto più semplice usare una condivisione del schermata dal PC su uno di quei programmi che consentono il controllo da remoto con il vantaggio che non devi avere LV installato sul tuo PC non hai bisogno di un PC potente (basta un PII 300) in più puoi anche accedere a tutti le risorse del pc e anche aimè a spegnere il vi come mi è già successo!!:-( per contro a meno che non abbia fastweb la navigazione non risulta molto fluida ma per controllare una schermata che si aggiona ogni 5 min mi sembra un buon compromesso e se ti armi di pazienza più anche vederla con un 56k io personalmente ho usato log me in , ma ce ne sono un'infinità anche graduiti o comunque \"utilizzabili\" ti suguro una buona giornata ciao ---------------------------------------- AUTORE: 683 DATA :02/02/2006 - 08:24:40 ---------------------------------------- a scusa potresti dirmi come hai impostato la pubblicazione html che magari mi può tornare utile??? grazie ---------------------------------------- AUTORE: 645 DATA :02/02/2006 - 08:38:07 ---------------------------------------- Io non modifico le impostazioni di default che LabView fornisce nella schermata di creazione della pagina web. Semplicemente cambio il testo del titolo e della descrizione. Non barro \"Request Control\": se sul client voglio controllare il VI clicco con il tasto destro del mouse sulla pagina HTML e compare la scritta \"Richiedi controllo\"; confermando si può controllare il VI. Ho sempre usato la pubblicazione HTML per creare un visualizzatore dei dati. Preferisco lavorare sul pc su cui sta effettivamente girando il VI o sfruttare le \"Traditional-DAQ\" per acquisire dati da un altro sistema tramite le rete e il mio computer. ---------------------------------------- ================================================================================ Quali subVI hanno il front panel visibile? ================================================================================ AUTORE: 482 DATA :01/02/2006 - 13:16:58 ---------------------------------------- ...ma ciao! Devo tradurre un programma dall'italiano all'inglese. Il problema è che ho molti VI e non di tutti il pannello frontale è visibile, quindi dovrei tradurre solo quelli visibili. Visto che con il file di testo con le caratteristiche dei controlli è un casino la traduzione perchè non si sa mai se modifichi giusto, andro' fisicamente a creare una copia dei sorgenti e tradurli in inglese. C'e' un opzione che mi permetta ad esempio dalla VI Hierarcy di visualizzare solo i VI col pannello frontale visibile? AL momento l'unica idea che mi viene è quella di aprire l'application Builder e selezionando il main come source file, andare poi a vedere nel \"VI settings\" quali pannelli hanno \"YES\" alla voce Show Panel...pero' non mi sembra il massimo come soluzione. Avete qualche consiglio? ---------------------------------------- AUTORE: 4 DATA :10/02/2006 - 11:21:56 ---------------------------------------- Potresti costruirti un piccolo VI che, dato il VI main del tuo SW, ne ricavi la gerarchia (basta l'elenco dei subVI chiamati) poi, uno a uno, con il property \"Execution:Show Front Panel On Call Property\" o \"Execution:Show Front Panel On Open Property\" capisci se hanno un pannello da mostrare o meno. Ciao, ---------------------------------------- ================================================================================ Richiesta chiarimento sui data type ================================================================================ AUTORE: 123 DATA :01/02/2006 - 16:50:29 ---------------------------------------- Qualcuno ben ferrato in materia mi puo' spiegare la differenza tra il dinamic data type (filo color blu) e il waveform data type (filo color marrone)? Non ho trovato da nessuna parte la spiegazione chiara su che cosa differiscano. ---------------------------------------- AUTORE: 247 DATA :01/02/2006 - 21:20:39 ---------------------------------------- Ciao, [quote:2fq49y0w]Qualcuno ben ferrato in materia mi puo' spiegare la differenza tra il dinamic data type (filo color blu) e il waveform data type (filo color marrone)? Non ho trovato da nessuna parte la spiegazione chiara su che cosa differiscano.[/quote:2fq49y0w] ..toccando ferro provo io a spiegarti la differenza...\":D\" Secondo la mia modesta opinione l'unico modo per capire che cosa sia veramente un dato dinamico e quello di non considerarlo affatto un tipo di dato...mi spiego meglio... Il \"tipo\" di dato chiamato dinamico è infatti un tipo di dato anomalo che può interpretare(in entrata) e contenere(in uscita) vari tipi di dato (valori singoli, array di vari altri tipi di dato, waveform, etc..). Questo tipo di dato è stato introdotto (credo...I'm not old enough...) con gli Express in modo che nei collegamenti non si avesse quella tipizzazione caratteristica del linguaggio G, come di molti altri, che impone che se il Vi richiede in ingresso un dato singolo di tipo intero, tu devi per forza fornirgliene uno di quel tipo, pena l'impossibilità di utilizzare il VI. In parole povere, la tipizzazione è stata indebolita facendo in modo che questo tipo di dato potesse \"ospitare\" parecchi altri tipi di dato: un Vi che richiede in ingresso un tipo di dato dinamico, si accontenta di un pò di tutto...o quasi...nascondendo spesso all'utilizzatore il suo contenuto in nome di una maggiore facilità di utilizzo(a patto ovviamente di affidarsi agli Express. \":o\" \":o\" \":o\" ) o giù di lì. Più che una soluzione però questa detipizzazione si rivela un problema: le persone che si avvicinano a LV utilizzando il tipo dinamico per passare dati da un VI Express all'altro, non capiscono realmente che cosa passa nel filo e quindi non sanno bene gestire il tipo di dato su cui stanno lavorando; a maggior ragione, usando il tipo di dato dinamico tutto è dello stesso colore, i tipi di dato sono impliciti e chi già non è abituato a riconoscere il tipo di dato dal colore del filo, non avrà la possibilià/capacità di riconoscere i dati che sta manipolando...ovvero non avrà il corretto e necessario controllo su di essi... Che cosa possa contenere(dato in ingresso) o fornire(dato in uscita) un tipo di dato dinamico puoi immediatamente vederlo selezionando ed aprendo le due funzioni \"Convert To Dynamic Data\" e \"Convert Form Dynamic Data\" che trovi nella palette Signal Manipulation: apri questi due Express, che rendono più esplicito l'incapsulamento e l'intepretazione del dato, e capirai molte cose...io personalmente li uso sempre appena possibile per tornare ad avere un tipo di dato noto e palese quando utilizzo, raramente.., ExpressVI. La differenza tra un tipo di dato dinamico e uno di tipo waveform sta quindi nel fatto che il dato dinamico può contenere il tipo di dato waveform, mentre il tipo di dato waveform è fisso (array Y, dt, t0). BYE. ---------------------------------------- AUTORE: 645 DATA :02/02/2006 - 08:41:04 ---------------------------------------- Nessuno ha un'aspirina per la testa?... ---------------------------------------- AUTORE: 645 DATA :02/02/2006 - 10:49:55 ---------------------------------------- Scherzi a parte, credo che la spiegazione di Apollon sia perfetta! Io personalmente sfrutto i tipi dinamici spesso perchè per tante operazioni mi risulta comodo usare i VI Express. Il fatto di non doversi \"preoccupare\" di cosa esce dal blocchetto e creare molto rapidamente un grafico mi torna utilissimo in tante operazioni di routine (come, per esempio, analizzare lo spettro delle frequenze di un segnale). Però se poi si vogliono realizzare meccanismi più complessi conviene lasciare da parte gli Express e inventarsi un modo per lavorare con i blocchi normali. Anche se, torno a ripetere, un giusto mix di blocchi normali ed Express non guasta secondo me. ---------------------------------------- AUTORE: 123 DATA :08/02/2006 - 09:41:17 ---------------------------------------- [quote="apollon":1w321ye1]Ciao, [quote:1w321ye1]Qualcuno ben ferrato in materia mi puo' spiegare la differenza tra il dinamic data type (filo color blu) e il waveform data type (filo color marrone)? Non ho trovato da nessuna parte la spiegazione chiara su che cosa differiscano.[/quote:1w321ye1] ..toccando ferro provo io a spiegarti la differenza...\":D\" Secondo la mia modesta opinione l'unico modo per capire che cosa sia veramente un dato dinamico e quello di non considerarlo affatto un tipo di dato...mi spiego meglio... Il \"tipo\" di dato chiamato dinamico è infatti un tipo di dato anomalo che può interpretare(in entrata) e contenere(in uscita) vari tipi di dato (valori singoli, array di vari altri tipi di dato, waveform, etc..). Questo tipo di dato è stato introdotto (credo...I'm not old enough...) con gli Express in modo che nei collegamenti non si avesse quella tipizzazione caratteristica del linguaggio G, come di molti altri, che impone che se il Vi richiede in ingresso un dato singolo di tipo intero, tu devi per forza fornirgliene uno di quel tipo, pena l'impossibilità di utilizzare il VI. In parole povere, la tipizzazione è stata indebolita facendo in modo che questo tipo di dato potesse \"ospitare\" parecchi altri tipi di dato: un Vi che richiede in ingresso un tipo di dato dinamico, si accontenta di un pò di tutto...o quasi...nascondendo spesso all'utilizzatore il suo contenuto in nome di una maggiore facilità di utilizzo(a patto ovviamente di affidarsi agli Express. \":o\" \":o\" \":o\" ) o giù di lì. Più che una soluzione però questa detipizzazione si rivela un problema: le persone che si avvicinano a LV utilizzando il tipo dinamico per passare dati da un VI Express all'altro, non capiscono realmente che cosa passa nel filo e quindi non sanno bene gestire il tipo di dato su cui stanno lavorando; a maggior ragione, usando il tipo di dato dinamico tutto è dello stesso colore, i tipi di dato sono impliciti e chi già non è abituato a riconoscere il tipo di dato dal colore del filo, non avrà la possibilià/capacità di riconoscere i dati che sta manipolando...ovvero non avrà il corretto e necessario controllo su di essi... Che cosa possa contenere(dato in ingresso) o fornire(dato in uscita) un tipo di dato dinamico puoi immediatamente vederlo selezionando ed aprendo le due funzioni \"Convert To Dynamic Data\" e \"Convert Form Dynamic Data\" che trovi nella palette Signal Manipulation: apri questi due Express, che rendono più esplicito l'incapsulamento e l'intepretazione del dato, e capirai molte cose...io personalmente li uso sempre appena possibile per tornare ad avere un tipo di dato noto e palese quando utilizzo, raramente.., ExpressVI. La differenza tra un tipo di dato dinamico e uno di tipo waveform sta quindi nel fatto che il dato dinamico può contenere il tipo di dato waveform, mentre il tipo di dato waveform è fisso (array Y, dt, t0). BYE.[/quote:1w321ye1] Ti ringrazio per la risposta. Sei stato molto chiaro. ---------------------------------------- ================================================================================ invoke node vi server e metodi ================================================================================ AUTORE: 683 DATA :02/02/2006 - 10:19:54 ---------------------------------------- ciao a tutti, sto usando i vi server ma ho un problema con le funzioni getallcontrol value e setallcontrol value come gli devo infilare e prendere i dati (cluster, array, array di cluser ecc...) e un'altra cosa che cos'è il tipo variant?? buona giornata ---------------------------------------- AUTORE: 129 DATA :02/03/2006 - 22:32:43 ---------------------------------------- Il tipo Variant è un tipo di dato polimorfo, che si adatta al tipo di dato in ingresso, penalizzandoti dal punto di vista di allocazione di memoria. Per utilizzare i metodi Get e Set all control value puoi utilizzare il metodo Get Control value(variant) o il Get control value, utilizzano il flatten to string. Per quanto riguarda Get e Set all control value, devi pensare che tratta un array dei controlli sul pannello, quindi dovrai usare un For o le funzioni di array per processarli tutti. SOlitamente io utilizzo il flatten to string. Ti allego un paio di immagini dei due diversi approcci. ---------------------------------------- AUTORE: 683 DATA :03/03/2006 - 14:43:07 ---------------------------------------- grazie per il consiglio sono riuscito a usare i get control e i set control come hai messo tu nel secondo esempio e devo dire che è proprio una bella cosa! Grazie del consiglio e delle dritte proverò comunque ad utilizzare i variant e ne trarrò le conclusioni ma visto che mi serve una certa \"ottimizzazione\" delle risorse di memoria....va beh verdò grazie mille ---------------------------------------- ================================================================================ Domanda semplice su passaggio dei parametri ================================================================================ AUTORE: 1036 DATA :02/02/2006 - 15:50:51 ---------------------------------------- Ciao a tutti, ho un problema di passaggio di parametri e di creazione di programmi che lavorino in cascata. Quesito: Ho un programma pippo1.VI con uscita Output1 Ho un programma pippo2.vi con ingresso, Output1. SENZA CREARE una subVI per il programma pippo1, come posso fare in modo che l'uscita di pippo1.vi venga riportata all'ingresso del programma pippo2. Non voglio fondere il programma pippo1.vi, con il programma pippo2.vi, perche mi ritroverei con un groviglio di fili. [Infatti i due prgmmi sono enormi] grazie e buon lavoro. ---------------------------------------- AUTORE: 278 DATA :02/02/2006 - 16:27:47 ---------------------------------------- Ciao, Beh, dato che non vuoi creare un subVI, perchè non utilizzare una globale? Alla fine del programma pippo1 andrai a scrivere il tuo dato elaborato nella globale mentre all'inizio di pippo2 la andrai a leggere. Se non sai come si creano le globali vai a questo link [url:15yf4s25]http://www.ilvg.it/forum/viewtopic.php?t=1308&highlight=globale[/url:15yf4s25] Ciao Ciao ---------------------------------------- AUTORE: 1036 DATA :03/02/2006 - 08:47:23 ---------------------------------------- Ciao Dario, ti ringrazio, del mess, chiaro ed utile. p.s. Mi sembra di sognare , poter leggere il vostro forum di labview senza impazzire con l'inglese. ---------------------------------------- ================================================================================ Installazione licenza remote panel su cRIO ================================================================================ AUTORE: 1038 DATA :02/02/2006 - 16:29:58 ---------------------------------------- Ciao, ho acquistato la licenza 20 utenti per il remote panel, le pagine web si trovano sul cRIO, quindi la licenza va installata nel cRIO. Come si fà ad installarla nel cRIO? Grazie cVElectro ---------------------------------------- ================================================================================ Dubbio strano ma fondato ================================================================================ AUTORE: 1036 DATA :03/02/2006 - 09:31:31 ---------------------------------------- Ciao Dario, mi viene un altro dubbio. 1. Se in un programma contenente input ed ouput [COntrol & Indicator] creo una Sub vi, questi in automatico vengono portati all'esterno. E fino qui niente di strano. Se pero , all'interno del blocco sono presenti oltre a Con & Indic, anche variabili locali, la frittata è assicurata al momento della creazione della subVI. [Vengono create reference verso l'esterno, cose che non conosco, e che compromettono il funzionamento della subvi] Quesito: Se invece , prendo il file Vi, e mediante ICONA, lo \"sposto\" su un altro file Vi, non accade nessuna di queste trasformazioni genetiche. Dov'è la differenza nei due casi? Il blocco VI spostato mediante icona , non è anch'esso una SubVi. Buona giornata ---------------------------------------- AUTORE: 129 DATA :04/02/2006 - 14:15:52 ---------------------------------------- Nel creare il subvi, devi fare attenzione a non prendere anche i fili collegati alla variabile globale, che altrimenti ti vede come una property value del controllo (reference) abbinato nel subVI. Puoi comunque eliminare il controllo reference e tutto il codice che ti ha aggiunto, quindi rimettere nel subVi la tua variabile locale, slavi e vedrai che funziona. ---------------------------------------- AUTORE: 1036 DATA :04/02/2006 - 16:33:20 ---------------------------------------- Grazie Nicola, Entiendo. Chao ---------------------------------------- ================================================================================ Da labview a excel ================================================================================ AUTORE: 1063 DATA :03/02/2006 - 09:57:31 ---------------------------------------- Salve a tutti...sono nuovo del forum e l'ho trovato molto interessante. Il mio problema è ke devo passare dei dati di alcune acquisizioni tramite sensori da labview in excel.Ho una prima colonna con tutte le date+ore+minuti e ho altre 8 colonne (che rappresentano otto sensori,dei quali conosco l'intervallo di acquisizione e il numero totale di misure).Devo inserire i dati di una colonna nella data esatta...quindi ho un problema di allineamento dei dati.Cioè ad una certa data devo inserire i dati in una precisa colonna ed a un'altra data i dati in un'altra colonna.Premetto che il programma già è fatto,solo che devo modificarlo, visto che non presenta la prima colonna della data e quindi i dati per ogni colonna li inserisce uno dietro l'altro.Vi ringrazio per l'attenzione. ---------------------------------------- AUTORE: 4 DATA :10/02/2006 - 11:10:58 ---------------------------------------- Ciao non ho ben capito, devi ottenere una cosa simile? [colonna tempo] [colonna dati 1] [colonna dati ..] [colonna dati 8] [colonna tempo] [colonna dati 1] [colonna dati ..] [colonna dati 8] ... ... [colonna tempo] [colonna dati 1] [colonna dati ..] [colonna dati 8] Ciao, ---------------------------------------- ================================================================================ convertire VI in immagini jpeg ================================================================================ AUTORE: 970 DATA :03/02/2006 - 15:34:34 ---------------------------------------- Salve a tutti!Sono riuscita a capire finalmente come funziona il forum... \":D\" Ho un piccolo problema e non so come risolverlo...Devo salvare dei sub-VI in immagini jpeg,ma non so come fare...spero che qualcuno mi possa dare un aiuto. Grazie a tutti Fede ---------------------------------------- AUTORE: 278 DATA :03/02/2006 - 17:04:14 ---------------------------------------- Ciao, potresti utilizzare paint.... apri il subVI che devi salvare come JPG, quano ce l'hai visualizzato sulle schermo premi CTRL+Stamp (su alcune tastiere si chiama Print Screen). Poi apri paint e fai CTRL+V (incolla), vedrai che ti apparirà l'immagine di tutto ciò che stavi visualizzando sul desktop, incluso il tuo vi. A questo punto puoi decidere se ridimensionare l'mmagine direttamente in Paint o se farlo con un'altro programma (photoshop ecc). Se non erro paint gestisce solo immagini .bmp, per convertitla in jpg devi aprire il file .bmp con un'altro programma e fare un \"save as\" specificando la nuova estensione. Ciao Ciao ---------------------------------------- AUTORE: 129 DATA :04/02/2006 - 14:36:13 ---------------------------------------- Se intendi salvare uno screenshot del pannello su una jpeg da programma, devi inserire un vi come quello che ti allego, in sostanza utilizzi il metodo get imege del Front panel. ---------------------------------------- ================================================================================ Acquisizione tensione ================================================================================ AUTORE: 341 DATA :04/02/2006 - 09:51:07 ---------------------------------------- Ciao ho due grandi problemi da risolvere. 1) Devo acquisire tramite scheda DAQmx NI 6229 la tensione (0-10 volt) proveniente da sei potenziometri lineari e devo anche pilotare contemporaneamente un inverter con tensione 0-10 volt.Per ogni funzione (potenziometro,inverter,etcc) ho creato un vi separato. Il problema non si pone se utilizzo un solo vi del potenziometro. Se acquisisco contemporaneamente da tutti i sei potenziometri (ognuno collegato su un canale diverso della scheda) ho l'errore che riporto nell'immagine allegata,in particolare ho una schermata di errore per ogni potenziometro.E'come se non fosse possibile fare una multiacquisizione. 2) Devo usare nello stesso programma delle precedenti acquisizioni anche un flussimetro(per misurare il flusso d'acqua in un tubo) che ha la caratteristica di generare 730 impulsi per litro (vedere dataflow allegato).Ho collegato il flussimetro al canale PFI9 della scheda.Il problema sorge quando avvio il programma perchè fino a quando non trascorre il tempo impostato in timeout (10 secondi),tutte le fasi del programma sono \"congelate\",cioè sono in attesa e alla fine dei 10 secondi compare l'errore di \"tempo spirato\" e il flussimetro non misura niente.Se,invece utilizzo da solo il flussimetro,senza nessun altro vi in esecuzione contemporanea,il flussimetro funziona e acquisisco il valore. Aiutatemi a settare i parametri e a risolvere gli errori.Ho urgenza e necessità.Qualunque aiuto sull'utilizzo della scheda in oggetto è ben accetta.Grazie infinite. ---------------------------------------- AUTORE: 278 DATA :04/02/2006 - 12:32:09 ---------------------------------------- Ciao, [quote:1dswazx8]Per ogni funzione (potenziometro,inverter,etcc) ho creato un vi separato. [/quote:1dswazx8]E' proprio questo il tuo problema.... Non puoi avere 6 vi che accedono contemporaneamente alla stessa risorsa hardware.... sarebbe come avere 6 programmi che leggono contemporaneamente dalla stessa porta seriale.... Infatti, se fai andare un singolo vi tutto funziona no? Devi modificare le opzioni dei blocchetti DaqMX in modo da digli di acquisire più canali. Nell'immagine che hai postato si vede che scegli l'opzione \"Analog DBL 1Chan 1Sampl\" per il blocco \"DaqMX read\"; il che non è proprio la cosa giusta da fare se devi acquisire più segnali. Piuttosto che creare 6 vi, uno per ogni acquisizione, devi crearne uno solo ma con acquisizioni multiple, in pratica, nel blocchetto \"DaqMX Read\" dovrai impostare come opzione \"Analog 2D DBL NChan NSample\". Ti allego l'immagine di un programma di acquisizione fatto tempo fa utilizzando una scheda NI 6014, in questo programma si acquisivano i dati analogici provenienti da 5 sensori ambientali. Per quanto riguarda il flussimetro, dovrebbe esserci un errore nel block diagram. Tra il vi \"DaqMX Create Virtual Channel\" e il vi \"DaqMX Read\" devi mettere il blocco \"DaqMX Start Task\" come si vede nell'immagine che ti ho postato. Se non fai questo il VI di read attende lo scadere del timeout e torna un errore. ---------------------------------------- AUTORE: 341 DATA :04/02/2006 - 21:07:38 ---------------------------------------- Anzitutto grazie per la velocità di risposta e per la spiegazione,però devo chiederti ancora di darmi delle ulteriori delucidazioni. Per poter usare il metodo che mi hai postato devo creare sempre un Task per ogni potenziometro (così come fatto finora in Measurement & Automation) o un solo tasK (però in tal caso dove connetto fisicamente i potenziometri?) Avrò poi modo di salvare i singoli valori di ogni potenziometro ? Puoi farmi capire meglio? Un ultima domanda,mi sai dire come fare per reinizializzare tutto da default ogni volta che riavvio una prova senza chiudere il vi.Ho letto in un post che devo creare un \"VI refnum\" e poi tramite \"invoke node\" effettuare il \"reinitialize all to default\",ma dove trovo il VI refnum? puoi allegarmi una immagine? Scusami se eventualmente ti chiederò ancora aiuto ma sono nei guai. ---------------------------------------- AUTORE: 278 DATA :05/02/2006 - 02:52:29 ---------------------------------------- Ciao, Per riutilizzare il metodo che ti ho descritto non devi creare sei task per fare 6 aquisizioni analogiche, devi semplicemente dire al blocchetto \"DaqMX create channel\" quali sono i canali interessati dall'acquisizione (nel notro caso + di 1). Mi spiego meglio, se riguardi l'immagine che ti ho postato, noterai che all'ingresso del \"DaqMX create channel\" (a differenza dei tuoi v) c'è una \"costante\" con scritto Dev1/ai0:5 che sta a dire \"scheda 1/analog input da 0 a 5\". In questo modo configuri già la scheda daq per fare acquisizioni sui 6 canali analogici che vanno dal numero 0 al numero 5. Se clicchi con il mouse sopra questa costante (dove appare la freccetta verso il basso) appare un menù, scegliendo \"browse\" si apre un'altro menù che ti permette di scegliere quali canali utilizzare per l'acquisizione. Per sceglierne più di uno tieni premuto Ctrl da tastiera a clicca sui canali che vuoi utilizzare. Se segui lo schema che ti ho postato, praticamente è il tuo stesso problema già risolto. In uscita al blocco DaqMX read noterai un array a 2 dimensioni, che non è altro che una matrice 6*100 (sei canali aquisiti, di ciascun canale acquisico 100 campioni). Se collego questo array un un for loop e lo indicizzo, posso trattare singolarmente ogni canale, estraendo i 100 valori relativi alla misura effettuata. Se di questi 100 valori poi fai una media e salvi il risultato in una globale (una per ogni sensore o comunque di nome diverso es pot1, pot2 ecc), il gioco è fatto. Per reinizializzare un controllo o indicatore al valore di default, devi semplicamente fare tasto destro sul controllo/indicatore e scegliere create->invocke node. Ora fai sempre tasto destro sull'oggetto che ti è apparso e scegli Methods->Reinit to Dflt. A questo punto hai creato una proprietà dell'oggetto, se la posizioni all'inizio del vi reinizializza il valore del controllo a quello di default. Si pùò fare la stessa operazione utilizzando i refnum come hai citato tu, ma è leggermente più complicato...ma anche più potente! ---------------------------------------- AUTORE: 341 DATA :05/02/2006 - 14:52:29 ---------------------------------------- Grazie infinite per l'aiuto veramente prezioso.Purtroppo non avendo a casa la scheda non posso mettere subito in pratica i tuoi insegnamenti,ma ti farò sapere quanto prima. ---------------------------------------- AUTORE: 341 DATA :09/02/2006 - 08:44:00 ---------------------------------------- Ciao esodar1981,tutto bene con il metodo da te suggeritomi,tranne per il flussimetro che ancora non riesco a far funzionare nel senso che ancora si blocca e aspetta un certo tempo;eventualmente mi dici se devo effettuare dei settaggi particolari?Inoltre ti chiedo se anche il flussimetro deve essere inserito nello stesso task;se è così,come ho provato a fare,che tipo di canale devo utilizzare giacchè non posso utilizzare canali di tipo counter o frequency perchè mi viene detto che la scheda non supporta tali canali? Ancora un'informazione,come mai nello stesso task non posso inserire canali di output (Ao1,Ao2 ?). Grazie e attendo con ansia la tua risposta. ---------------------------------------- AUTORE: 278 DATA :09/02/2006 - 11:20:29 ---------------------------------------- Ciao Vincenzo, è una cosa che mi sono dimenticato di specificare... Quando crei un task per acquisire una tensione, \"vincoli\" quel task solo agli Analog Input per esempio, il che vuol dire che non puoi nello stesso task specificare 2 tipi di misure (o generazioni) diverse (per farla breve, con lo stesso task non puoi acquisire e generare un segnale contemporaneamente). Puoi invece creare 2 task paralleli. A d esempio, uno che gestisce l'acquisizione dei tuoi 6 potenziometri ed in parallelo (nello stesso VI) crei un task per gestire un contatore. Ti allego l'immagine di un esempio, in questo caso creo 2 task paralleli. L'esempio è un pò \"grezzo\" (che ci vuoi fare, mica siamo nati tutti professori no ? \":wink:\" ), in effetti si tratta dello stesso tipo di task, ma ti serve per capire come devi procedere. Come puoi vedere dall'esempio, prima del ciclo di acquisizione/generazione del segnale, creo 2 task che poi andrò a gestire separatamente. In pratica, i 2 non sono assolutamente indipendenti, dato che girano nello stesso ciclo. Meglio sarebbe avere cicli separati, totalmente indipendenti dal punto di vista del tempo di acquisizione/generazione del segnale. ---------------------------------------- AUTORE: 341 DATA :09/02/2006 - 11:45:28 ---------------------------------------- Scusami,ma i due task paralleli nel mio caso devono essere quelli relativi al task di input (per i sei sensori) e al task di output per gestire l'inverter.In tal caso devo farne un terzo per l'acquisizione del flussimetro come counter? ---------------------------------------- AUTORE: 278 DATA :09/02/2006 - 12:02:51 ---------------------------------------- [quote:20z2tcje]Scusami,ma i due task paralleli nel mio caso devono essere quelli relativi al task di input (per i sei sensori) e al task di output per gestire l'inverter.In tal caso devo farne un terzo per l'acquisizione del flussimetro come counter?[/quote:20z2tcje] Esatto!!! ---------------------------------------- AUTORE: 341 DATA :09/02/2006 - 17:32:16 ---------------------------------------- Ho provato a fare i task separati ma nonostante tutto il flussimetro funziona fino a quando gli arriva aria,quando non gli arriva più aria per un lasso di tempo pari al tempo di time out compare la solita finestra che mi avverte che il tempo è scaduto.Se clicco su continue riprende a funzionare sempre con lo stesso problema.Se provo ad aumentare il tempo (da 10 sec a 1000 sec) il problema teoricamente si risolve però se voglio chiudere il vi la chiusura non è immediata ma avviene dopo il tempo di time out. Questo è l'ultimo problema da risolvere. ---------------------------------------- AUTORE: 278 DATA :10/02/2006 - 15:23:44 ---------------------------------------- Prova a postarmi uno screenshot del tuo programma o meglio il pezzo \"incriminato\". Purtroppo, così a pelle non mi viene in mente nulla... ---------------------------------------- AUTORE: 341 DATA :10/02/2006 - 19:36:31 ---------------------------------------- Ecco le immagini delle parti di programma incriminato.Spero possa darmi delucidazioni. Gentilmente puoi dirmi anche come posso far cancellare in automatico un waveform chart ad ogni riavvio delle prove.Sono riuscito a far reinizializzare da default,però il grafico non si cancella fino a quando non faccio clear chart. Grazie infinite. ---------------------------------------- AUTORE: 341 DATA :10/02/2006 - 19:51:42 ---------------------------------------- Avevo dimenticato di allegare le immagini.Eccole ---------------------------------------- AUTORE: 278 DATA :10/02/2006 - 22:41:46 ---------------------------------------- [quote:24y8ixzy]Ho provato a fare i task separati ma nonostante tutto il flussimetro funziona fino a quando gli arriva aria,quando non gli arriva più aria per un lasso di tempo pari al tempo di time out compare la solita finestra che mi avverte che il tempo è scaduto.[/quote:24y8ixzy] Credo allora che il problema sia il valore che attribuisci al terminale di timeout. Se dai uno sguardo all'help di questa funzione (quello approfondito, non la vignetta che appare in alto a destra) noterai che se colleghiamo il valore -1 a questo terminale il vi \"DaqMX Read\" non andrà mai in questa condizione. In che vuol dire, anche in assenza di segnale (quindi quando non arriva più aria al flussimetro) in vi resta \"attivo\", pronto a riprendere il funzionamento. Inoltre, se hai intenzione di acquisire i segnali \"continuamente\", ti conviene mettere i vi di \"read\" in un loop. ---------------------------------------- AUTORE: 341 DATA :11/02/2006 - 18:50:38 ---------------------------------------- OK appena posso proverò.Per adesso grazie. ---------------------------------------- AUTORE: 247 DATA :11/02/2006 - 19:52:15 ---------------------------------------- Ciao, piccolo appunto per il futuro, la funzione index array può essere configurata per restituire più di un'elelmento alla volta, prova ad \"allungarla\" da sotto, nella jpg \"Vi acquisizione 2\" usi inutilmente una funzione per ogni valore. BYE. ---------------------------------------- ================================================================================ Troppi fili = CONFUSIONE?? ================================================================================ AUTORE: 1036 DATA :04/02/2006 - 16:34:51 ---------------------------------------- Salve a tutti, sono un novizio di Labview, nonostante cio' sto realizzando un programma abbastanza grande. Nel programma, diventa difficile e noioso seguire fili lunghi piu di una schermata, quindi volevo sapere: Quesito: Quale è il modo piu semplice e corretto per riferirsi ad un variabile, gia \"dichiarata\" all'interno di un programma?? La variabile locale non mi sembra una soluzione azzecata, infatti quando poi si creano subVi, si fa un vero pasticcio. E le reference per esempio... a voi la parola, e buon fin settimana. ---------------------------------------- AUTORE: 278 DATA :04/02/2006 - 20:09:49 ---------------------------------------- Ciao, beh, sicuramente il modo più efficiente per manipolare variabili e dati in LV è tramite l'utilizzo della functional global.... in pratica si tatta di una struttura che a tutti gli effetti si comporta come una variabile globale ma, è un vi, e questo ti permette di sfruttare tutti i vantaggi che questa struttura comporta. Per costruire una functional global devi utilizzare un ciclo while con almeno uno shift register non inizializzato. Lo shift register ha la particolarità, se non inizializzato, di mantenere in \"memoria\" il dato della iterazione precedente. Ti allego un esempio, si tratta di una \"concetto\" di programmazione che esce dagli schemi \"sintattici\" tipici dell'ambiente LV. Con l'utilizzo delle functional global praticamente, per portare il tuo dato tra un vi e l'altro non devi pù tirare fili per tutto il block diagram ma richiamare il vi contenete la functional global (quindi il dato) richiesto. Ti allego un esempio: il vi \"Functional prova.vi\" è un subvi che ti permette di memorizzare o leggere un valore numerico. Inserito nel VI \"Prova.vi\" vedrai che ogni qualvota che devo scrivere, modificare o leggere il dato lo farò tramite l'utilizzo della functional global. Ora, immagina di avere una applicazione \"enorme\" e di dover portare il dato che si trova all'inizio del block diagram fino alla fine dello stesso, con la functional global non devi fare altro che inserire il subvi dove ti occorre, senza dover tirare fili \"chiometrici\". L'utilizzo di questa struttura comporta un'altra serie di vantaggi non del tutto indifferente, magari ne parliamo un'altra volta se il discorso ti interessa... Ciao e buon lavoro! ---------------------------------------- AUTORE: 645 DATA :04/02/2006 - 22:13:54 ---------------------------------------- Ma state parlando delle variabili globali? Perchè io le utilizzate solo un paio di volte ma mi interesserebbe capirne qualcosina in più. Non è sufficiente creare una variabile globale e richiamarla in tutti i VI che ne hanno l'esigenza? PS: non ho ancora aperto i VI allegati quando scrivo questo post perciò non so come funzionano! ---------------------------------------- AUTORE: 278 DATA :05/02/2006 - 03:06:04 ---------------------------------------- [quote:19fq0xvw]Ma state parlando delle variabili globali?[/quote:19fq0xvw] NO! MOLTO meglio!! \":wink:\" \":wink:\" Le functional global si comportano come globali ma sono molto meglio! Innanzitutto, ottimizzano la gestione della memoria, con le globali \"normali\" ogni qualvolta che scrivi o leggi il valore (insomma, quando richiami la globale), LV fa una copia del dato contenuto nella variabile. Ora, con applicazioni relativamente piccole questo può non costituire un problema, ma quando il misero vi iniziale comincia ad espandersi e ad includere nuove funzionalità, la cara e vecchia globale può cominciare ad andare un pò stretta. Tanto per cominciare, l'operazione di scrittura e lettura delle globali non è temporizzata, il che vuol dire che in caso di vi che girano in parallelo e maneggiano le medesime variabili, può accadere che il valore di un dato venga letto proprio mentre una altro vi sta andando a scriverlo, il che può generare confusione perchè \"l'ordine\" di accesso allla variabile è casuale (chi prima arriva, prima esegue l'operazione). Con le functional global, l'accesso al dato è \"riservato\", il vi che \"chiama\" la functional global la \"blocca\" fino al termine dell'operazione richiesta. Gli altri vi nel frattempo non potranno accedere alla functional global fino al termine della sua esecuzione da parte del vi chiamante. ---------------------------------------- AUTORE: 129 DATA :05/02/2006 - 06:46:31 ---------------------------------------- Anche io utilizzo questa struttura, ed in genere un subvi può rappresentare un alternativa \"dataflow\" alle global o local. \"8)\" Non sapevo però che si chiamasse functional, me piace... Però allora perchè non utilizzare le code? per esempio realizzando uno stak register, come nell'esempio che vi allego.. Nic ---------------------------------------- AUTORE: 278 DATA :05/02/2006 - 17:05:37 ---------------------------------------- E bravo Nicola!!! \":D\" \":D\" \":D\" Anche io le utilizzo con le code, le trovo veramente una figata per la flessibilità che introducono. In particolare, ho utilizzato il tuo stesso schema per gestire lo stack delle GUI, con in più anche funzioni di Forward e Backward in modo da far scorrere la coda come se fosse un array. ---------------------------------------- AUTORE: 1036 DATA :06/02/2006 - 10:12:25 ---------------------------------------- Bhe grazie, chiari, molto chiari. Rifaccio il punto della situazione, cosi potete dirmi se ho afferrato: Quesito: Quale è il modo piu semplice e corretto per riferirsi ad un variabile, gia \"dichiarata\" all'interno di un programma?? (Senza tirare fili kmetrici) Risposte di Dario e Nicola: function global: Concetto chiave: Per costruire una functional global devi utilizzare un ciclo while con almeno uno shift register non inizializzato. Lo shift register ha la particolarità, se non inizializzato, di mantenere in \"memoria\" il dato della iterazione precedente Vantaggio fondamentale rispetto a una variabile globale: Mutua Esclusione nell'accesso alla variabile Metodo delle code: concetto Chiave: Per costruire una functional global devi utilizzare un ciclo while con almeno uno shift register non inizializzato. Lo shift register ha la particolarità, se non inizializzato, di mantenere in \"memoria\" il dato della iterazione precedente. Vantaggio fondamentale rispetto ad una variabile globale:Mutua Esclusione nell'accesso alla variabile. Critica alle code: Per una sola variabile, il concetto di coda , è un strumento sovradimensionato. [uccidere una mosca con un cannone? correggimi Nicola, se sbaglio!] .. Ciao. p.s. Dario se hai da aggiungere concetti, vantaggi sulle function global, sono molto interessato. (Sono un ignorante in labview, ma ho buone conoscenze informatiche teoriche) ---------------------------------------- AUTORE: 1036 DATA :06/02/2006 - 10:27:15 ---------------------------------------- Ciao di nuovo, bazzicando tra le librerie labview e nei menu pop-up ho trovato Property Node,e mi sembra realizzi, cose simili a quelle da voi descritte. Vi allego il programmino semplice che ho implementato. Con questo sistema che cosa potrebbe darmi dei problemi??ù Buona giornata. ---------------------------------------- AUTORE: 278 DATA :06/02/2006 - 17:44:32 ---------------------------------------- [quote:2fab55ik]Critica alle code: Per una sola variabile, il concetto di coda , è un strumento sovradimensionato. [uccidere una mosca con un cannone? correggimi Nicola, se sbaglio!] .. [/quote:2fab55ik] Come darti torto! Solitamente, le code sono uno strumento potente da utilizzare quando si quole essere sicuri di elaborare tutti i dati che una variabile può assumere. La particolarità di questa struttura è la capicaità di \"accodare\" ogni nuovo elemento come in una pila, senza sovrascrivere il vecchio valore. Particolarità fondamentale nei casi di acquisizione di segnali, controlli di processo ecc. dove ogni songolo dato deve essere elaborato. [quote:2fab55ik] p.s. Dario se hai da aggiungere concetti, vantaggi sulle function global, sono molto interessato. [/quote:2fab55ik] Dato che sei interessato, ti accontento volentieri. Abbiamo detto che principalmente, questa struttura è un vi, il che ti permette non solo di fare operazioni tipo lettura-scrittura dello shift register, ma anche operazioni sui dati contenuti. Immagina di dover ripetutamente moltiplicare il valore della variabile per un determinato fattore. Invece di leggre la variabile tramite functional global, moltilicare il dato e riscrivere la stessa variabile, perchè non implementare questa funzione all'interno della functional stessa? Al suo interno creerai un'altra sequenza case (ad esempio chiamandola Moltiplica) e al suo interno costruisci il codice necessario. Ricordati anche di aggiornare l'enumeriativo collegato alla case structure. ---------------------------------------- AUTORE: 129 DATA :06/02/2006 - 18:22:04 ---------------------------------------- [quote:25bdao7o]Critica alle code: Per una sola variabile, il concetto di coda , è un strumento sovradimensionato. [uccidere una mosca con un cannone? correggimi Nicola, se sbaglio!] .[/quote:25bdao7o] HAi ragione. \":lol:\" Bellissima la metafora! \":wink:\" VAntaggi delle code --> non perdi i dati-in cicli paralleli puoi gestire diversa velocità tra il ciclo di acquisizione e quello di visualizzazione o salvataggio senza perdere info. Altri vantaggi delle code sono sicuramente l'uso ottimizzato di memoria che puoi fare, in quanto se le utilizzi correttamente non incrementi la memoria. Effettiavemnte non sono così immediate da implementare, ma i risultati sono alti. ---------------------------------------- ================================================================================ Mettere in ordine le librerie ================================================================================ AUTORE: 1036 DATA :04/02/2006 - 16:37:54 ---------------------------------------- Ciao a tutti, sono un programmatore novizio di labview, e volevo spiegarvi questo problema logistico che molti di voi avranno avuto. Sto lavorando ad un progetto con l'università, e quest'ultima ha comprato ed installato molte librerie. Morale: quando entro in Functions dal Block Diagram , si aprono mille icone ed orientarsi in questo mosaico, è un impresa ardua. Quesito: C'è un modo per crearsi una libreria, composta solo dai blocchi Labview che mi interessano. [Uso spesso la libreria imaq e quella dei vettori e cluster] p.s. L'opzione \"search\" della finestra Functions, spesso fornisce troppi risultati; cioè frequentemente non dà nessun aiuto al mio problema. Buon fin settimana. ---------------------------------------- AUTORE: 129 DATA :05/02/2006 - 06:51:31 ---------------------------------------- si puoi personalizare la palette (guarda img allegata), in edit mode quindi vai sulla user library e dal popup(tasto dx) selezioni un opzione di tuo gradimento. puoi inserire anche un intera cartella, oppure selezionando mergevi, incolli direttamente il diagramma del vi selezionato. ---------------------------------------- AUTORE: 1036 DATA :06/02/2006 - 11:53:20 ---------------------------------------- Ciao nicola, Ho seguito questi passi: Edit mode. Tools>>Advanced >>Edit Palette View. appare la finestra : Edit controls and Funcitons palette. Creo la mia palette. Se ora voglio inserire il solo blocco ADD come faccio? Grazie e Ciao. p.s. che differenza c'è fra edit mode e run mode?? p.p.s. Come posso lasciarti un feedback o vote positivo? Sbaglio o nel forum non c'è la possiblità di feedback? ---------------------------------------- ================================================================================ Versione del sistema operativo RT su embededd controller ================================================================================ AUTORE: 1038 DATA :06/02/2006 - 09:49:58 ---------------------------------------- Ciao a tutti, qualcuno sa come faccio a risalire alla versione (7.1, 7.0, 6.1) del pharlap installato sul mio cRIO. Grazie cVelectro ---------------------------------------- AUTORE: 4 DATA :06/02/2006 - 11:37:51 ---------------------------------------- Se ti colleghi al Crio tramite MAX vedrai una sezione software dove installare\ imuovere i software sul Crio da qui puoi anche vedere i sofware e le versioni attualmente instalate sull'RT. Ciao, ---------------------------------------- ================================================================================ Rt wizard: TCL , NPL, Host ================================================================================ AUTORE: 1036 DATA :06/02/2006 - 15:51:44 ---------------------------------------- ciao ragazzi, Ho un problema. (Ma va?) Allora il buon Rt wizard ha fatto il suo dovere, mi ritrovo i tre file: TCL_my-program.vi NPL_my-program.vi Host_my-program.vi Ho visto, come da F manuale, che il file NPL contiene, o meglio chiama il file TCL_my-program.vi. Ebbene, e ora cosa devo fare, per far si che questi file vengano eseguiti dal mio grazioso Pxi (che scalpita dalla voglia di provare il mio algoritmo)? ---------------------------------------- AUTORE: 1036 DATA :06/02/2006 - 19:01:42 ---------------------------------------- Caro kurt_come, non perderti d'animo. So che a volte la documentazione Labview, non è ben organizzata, ed a volte i documenti non sono stati aggiornati alle correnti versioni di LV. Ebbene, ti consiglio di leggerti : Step by Step: How to embed an Executable Vi on a Networked RT series hardware. So che hai la versione 7.1, quindi il tutorial non sara fedele, alla vera sequenza di passi che dovrai seguire.[il tutotial si riferisce ad una versione più antica, la 6 credo]. Buon Lavoro! Postarsi i propri post è il primo segno di pazzia. ---------------------------------------- ================================================================================ Rivelatore di picco ================================================================================ AUTORE: 1029 DATA :07/02/2006 - 10:23:41 ---------------------------------------- Salve a tutti! Devo progettare un rivelatore di picco in ambiente Labview 8.0, qualcuno è a conoscenza se è già stato realizzato? In caso di risposta affermativa potreste inviarmi il link? Grazie. ---------------------------------------- ================================================================================ Programma: perchè cosi lento ================================================================================ AUTORE: 1036 DATA :07/02/2006 - 14:35:34 ---------------------------------------- Ciao a tutti, Quesito: 1.Ho realizzato un programma su Pc portatile P4 toshiba 3.20 Ghz, il tempo impiegato per l'esecuzione di tale programma è 0,1 sec. Lo carico sul buon PXI 8186 2.2Ghz e patatrack, 10 volte superiore ovvero un secondo. Quesito: Avete idea del tempo di overhead necessario per richiamare una subVI. perchè se fosse dell'ordine del 10 microsec, allora la soluzione al mio problema potrebbe essere questa. [Infatti 10 x 10^-6 per il numero di volte in cui chiamo la funzione, e si parla di 10000 volte mi provocherebbe un ritardo di un secondo] Ho già letto la guida Optimizing Applications da Real Time User Manual, ed ho modificato il programma il piu possibile. Quesito: Infine come è possibile, che il codice una volta compilato, e caricato direttamente sull'8186, impieghi lo stesso tempo di esecuzione di come se fosse eseguito direttamente da Host (mediante RT Target:x.y.z.w.) Ciao a tutti e grazie. ---------------------------------------- ================================================================================ variabile da labview a vba di exel. ERA[Domanda da 1M$..] ================================================================================ AUTORE: 368 DATA :08/02/2006 - 09:25:34 ---------------------------------------- Non voglio turbare nessuno..... ma che voi sappiate è possibile passare una variabile da labview al vba di excel?!?!?!?!???!?! \":|\" ---------------------------------------- AUTORE: 645 DATA :08/02/2006 - 10:02:20 ---------------------------------------- Girando sul sito della National (ni.com) si trova una pagina che parla di ActiveX come rapporto tra LabView e Excel o Visual Basic. La pgina di partenza è http://zone.ni.com/devzone/devzoneweb.n ... C2006DC236 ma purtroppo i collegamenti alle pagine secondarie segnalano che i documenti sono in fase di aggiornamento. Però magari continuando a provare... ---------------------------------------- ================================================================================ Labview e tagli condizionali (help) ================================================================================ AUTORE: 123 DATA :08/02/2006 - 09:40:06 ---------------------------------------- Vorrei porre il seguente problema: supponiamo che abbia misurato per vari istanti di tempo la temperatura T e la pressione P di un gas. T e' un certo vettore (array 1D) e analogamente P. Supponiamo che consideri T quale variabile X e P quale variabile Y. Vorrei analizzare la variabile Y con dei tagli condizionati sulla variabile X, cioe' andare a prendere solo quegli elementi della array Y tali che X sia compresa tra 2 valori, ad esempio X1 < X < X2. Qualcuno saprebbe darmi qualche idea su come procedere a livello di block diagram? (Il mio obiettivo finale sarebbe quello di fare vari tagli su X ( Xi < X < Xj) e creare istogrammi su Y). Grazie ---------------------------------------- ================================================================================ SubVI ================================================================================ AUTORE: 727 DATA :08/02/2006 - 10:37:37 ---------------------------------------- Ciao. Avrei una domanda per voi. E' possibile far girare più subVI contemporaneamente? Non ho assolutamente idea di come fare. Ciao, grazie \":!:\" ---------------------------------------- AUTORE: 645 DATA :08/02/2006 - 11:45:25 ---------------------------------------- Nel senso che chiami più SubVI all'interno dello stesso VI principale contemporaneamente? ---------------------------------------- AUTORE: 727 DATA :08/02/2006 - 12:14:03 ---------------------------------------- Si, ma eseguibili allo stesso tempo. Cioè, mentre uno è in esecuzione, anche gli altri devono essere eseguibili, senza aspettare la fine dell'esecuzione di uno per aprirne un altro. Spero di essere stato chiaro. Grazie ---------------------------------------- AUTORE: 247 DATA :08/02/2006 - 13:31:23 ---------------------------------------- Ciao, prova a vedere questo vecchio post: [url=http://www.ilvg.it/forum/viewtopic.php?t=550&start=0&postdays=0&postorder=asc&highlight=parallelo:12lt4q3i]Clonare uno stesso vi e aprire diverse istanze dello stesso.[/url:12lt4q3i] e il Vi allegato, dovrebbe farti capire l'esecuzione parallela di più vi. BYE. ---------------------------------------- AUTORE: 727 DATA :08/02/2006 - 13:36:37 ---------------------------------------- Grazie \":lol:\" ---------------------------------------- ================================================================================ orologio ================================================================================ AUTORE: 487 DATA :08/02/2006 - 11:31:25 ---------------------------------------- Ciao a tutti, avrei bisogno di qualche suggerimento su come posso fare per cambiare da labview l'ora del pc. Il mio obbiettivo è quello di sincronizzare l'orario di più computer collegati in rete. ---------------------------------------- AUTORE: 4 DATA :10/02/2006 - 11:06:19 ---------------------------------------- ah l'annoso problema del set time!!! Eccoti servito. Ciao, ---------------------------------------- AUTORE: 487 DATA :10/02/2006 - 12:37:35 ---------------------------------------- Grazie mille Ale, avevo già risolto il problema eseguendo un file bat con il comando \"time\", ma la tua soluzione mi sembra decisamente più elegante. Grazie ancora. ---------------------------------------- AUTORE: 487 DATA :10/02/2006 - 13:51:43 ---------------------------------------- Ciao Ale, piccolo problema: ho provato il vi ma non mi funziona. In realtà avevo già provato ad usare una funzione simile contenuta in kernel32.dll ottenendo il medesimo esito: nessun aggiornamento dell'ora. Vorrei capire se sbaglio forse qualcosa nel modo di procedere? ---------------------------------------- AUTORE: 680 DATA :10/02/2006 - 15:03:34 ---------------------------------------- hai i privilegi di amministratore?? perchè mi sembra che solo l'amministratore possa modificare la data e l'ora... cmq da me funziona perfettamente (attenzione all'ora legale.....) ---------------------------------------- AUTORE: 487 DATA :14/02/2006 - 07:27:47 ---------------------------------------- Ciao linux120, sicuro che ho i privilegi d'amministratore, inoltre con l'altro sistema che ho utilizzato funziona tutto perfettamente. Cosa vorresti dire con \"attenzione all'ora legale\"? In realtà con le dll (quella di Ale o il kernel32) l'orario non mi cambia per niente. C'è forse una procedura particolare per far funzionare il vi? ---------------------------------------- AUTORE: 927 DATA :08/09/2006 - 08:40:29 ---------------------------------------- L'ho provato su 2000 e su XP e mi funziona, però vuole in ingresso l'ora di Greenwich (senza nè fuso orario nè ora legale). Si può avere il sorgente della DLL? ---------------------------------------- AUTORE: 4 DATA :08/09/2006 - 08:47:33 ---------------------------------------- [quote="Snamprogetti":3u2j8rv5]L'ho provato su 2000 e su XP e mi funziona, però vuole in ingresso l'ora di Greenwich (senza nè fuso orario nè ora legale). Si può avere il sorgente della DLL?[/quote:3u2j8rv5] Purtroppo non ce l'ho... non ricordo nemmeno dove ho trovato il VI... Ciao, ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 10:21:55 ---------------------------------------- sto impazzendo!! ho copiato la dll nella dir della mia applicazione, cerco di reindirizzare il call library sulla dll spostata, ma linka sempre a quella all'indirizzo originale anche se non esiste più!! suggerimenti? \":?\" ---------------------------------------- ================================================================================ application buider con invoke node ================================================================================ AUTORE: 706 DATA :09/02/2006 - 17:14:48 ---------------------------------------- Salve a tutti, Ho un problema con la creazione del file eseguibile con un VI. Quando provo a lanciare il BUILD APPLICATION del VI dal menu \"Tools\" di LabVIEW 7.0 mi appare un messaggio di errore che vi allego. Sembra far riferimento all’Invoke node utilizzato nel codice del VI. Lo stesso messaggio si ripropone anche se provo a eliminare l’Invoke node dal codice del VI. Come posso risolvere il problema? Una seconda domanda riguarda il disegno di una mappa utilizzando il Polar Plot. Come sorgente dei dati ho una matrice a 3 dimensioni dalla quale estrarre ampiezza e fase. Il problema di questa matrice la sotto matrice “righe – colonne” non contiene lo stesso numero di dati. Può capitare che il primo “blocco della matrice” ha 3 righe di dati mentre il secondo “blocco” ne contiene solo 1. Quindi per poter disegnare la mappa devo estrarre tutti dati utili all’interno di un ciclo WHILE che mi serve a leggere tutta la matrice e utilizzando “CASE STRUCTURE” per poter selezionare le righe che contengono i dati. Questo comporta l’utilizzo del INVOKE NODE per poter salvare la mappa finale direttamente dal Front Panel del VI. Sapete come gestire il problema? Grazie dell’aiuto. Francesco ---------------------------------------- ================================================================================ Visualizzare un VI su Client ================================================================================ AUTORE: 368 DATA :10/02/2006 - 10:58:35 ---------------------------------------- Ciao, vorrei sapere se è possibile permettere la visualizzazione del front pannel di un VI in funzione, su uno o più client connessi ad una LAN locale (se si può fare anche via web non mi offendo!!!):D Ho visto negli esempi come trasmettere stringhe di testo tramite TCP/IP, ma non ho idea come poter procedere in questo caso. Ogni consiglio è ovviamente ben accetto. BYE ---------------------------------------- AUTORE: 680 DATA :10/02/2006 - 15:07:39 ---------------------------------------- prò utilizzare il web server che ti permette di vedere il vi sul browser (devi aver installato i run-time) oppure utilizzando i datasocket...... prova a fare una ricerca, dovrebbe esserci qualcosa in giro... ---------------------------------------- AUTORE: 838 DATA :10/02/2006 - 15:27:11 ---------------------------------------- con il web server mi sono trovato abb bene, però ha molte limitazioni in alternativa se hai il dsc, basta linkare con lo stesso vi il database delle tag, uno in locale, l'altro in remoto ma ci saranno altri 1000 metodi!! ---------------------------------------- ================================================================================ problema efficienza ================================================================================ AUTORE: 970 DATA :10/02/2006 - 11:23:52 ---------------------------------------- Ciao a tutti!!! Devo fare una misura di efficienza su un alimentatore e ho un problema.Impongo i valori dei carichi e dopo il driver del carico metto il driver che mi serve per leggere le correnti in uscita.Il problema è come posso fare per visualizzare le due misure di corrente in uscita dal driver read? Allego il VI per maggiori chiarimenti. Aspetto vostre notizie Grazie ---------------------------------------- AUTORE: 129 DATA :11/02/2006 - 06:31:19 ---------------------------------------- Purtroppo, non sono riuscito a vedere i subVI del tuo esempio, perchè appartengono ad una libreria esterna che non ho sul mio PC. Comunque se tu fai una query allo strumento del tipo READ? o DATA? o FETCH? sul manuale riesci a farlo facendoti restituire una stringa con i due valori di corrente? Se si è suffficiente che utilizzi i normali VISA-READ e frammenti la stringa per ottenere i due dati numerici di corrente. ---------------------------------------- ================================================================================ wattmetro simulato ================================================================================ AUTORE: 970 DATA :13/02/2006 - 11:28:18 ---------------------------------------- Salve a tutti... ho bisogno di risolvere l'ennesimo problema...Dovrei simulare il funzionamento del wattmetro.Qualcuno può darmi una mano? Aspetto notizie con trepidazione Grazie ---------------------------------------- AUTORE: 278 DATA :13/02/2006 - 20:02:18 ---------------------------------------- Ciao, in che senso devi simulare un wattmetro? Mi spiego meglio, hai a disposizione una scheda di acquisizione (o simili) e vuoi provare a misurare il carico di un resistore qualsiasi; oppure vuoi sapere come fare un vi che simuli effettivamente il carico sulla resistenza, per poi andare a calcolare i watt (quindi realizzando in LabVIEW la sola parte parte di calcolo)? Personalmente, è un'esperienza che non ho mai fatto, teoricamente è facile, basta applicare una formula, ma se devi utilizzare anche hardware o strumenti connessi tramite GPIB le cose si complicano.... ---------------------------------------- ================================================================================ grafici xy con diversa intensità ================================================================================ AUTORE: 1067 DATA :14/02/2006 - 10:49:17 ---------------------------------------- Ho bisogno di visualizzare su un grafico un insieme di dati raccolti in un array 2D di 400x400. Esiste la possibilità di dare una intensità diversa ad alcuni punti? Grazie ---------------------------------------- AUTORE: 482 DATA :14/02/2006 - 16:44:07 ---------------------------------------- ..cos aintendi per diversa intensità? Se parli di colore o cmq qualcosa che li faccia risaltare ti direi di utilizzare i property node e mettere dei marker dei punti che ti interessano. ---------------------------------------- ================================================================================ Controllo seriale eurotherm 808 ================================================================================ AUTORE: 368 DATA :14/02/2006 - 16:46:27 ---------------------------------------- Ciao a tutti, sono alle prese con la seriale... ma chi me l'ha fatta fare?!?! Devo comunicare, tramite la RS-232, con un controllore della eurotherm (il modello 808). Sul sito della National, c'è un driver che contiene una demo, ma non riesco ad usarlo. Forse è questione del settaggio della seriale, di cui ignoro il siglificato di alcuni parametri. I parametri che imposto con coscienza sono (riferiti alla eurotherm 808 demo): 1) port number=0 (perchè mi dice che ad 1 corrisponde la COM2 ed io ho solo la COM1) 2) Baud rate=4800 (è possibile settarlo sul controllore manualmete) 3) Group ID=0 Unit ID=1(indirizzo del controllore) Inoltre: 4) Data bits 7 5) Parity = even 6) Stop bits = 0 7) Buffer size = 128 (non so perchè è settato così). Allego un'immagine ( dal manuale della eurotherm) che dovrebbe essere d'aiuto e il driver che sto usando. ---------------------------------------- AUTORE: 368 DATA :14/02/2006 - 16:53:07 ---------------------------------------- Non mi ha allegato i file ---------------------------------------- AUTORE: 727 DATA :15/02/2006 - 13:20:46 ---------------------------------------- Ti consiglio di andare su Risorse del computer di windows e vedere i settaggi della tua porta parallela. Sono quelli i valori che devi settare nel vi. credo almeno. Non ho potuto leggere i manuali purtroppo. Quindi questo è un consiglio che ti do. Prova. Ciao ---------------------------------------- AUTORE: 368 DATA :15/02/2006 - 13:49:36 ---------------------------------------- Grazie della risposta PxEL, proverò a fare come dici tu, anche se mi sembra strano che sia necessario settare la porta in questo modo..... se fosse così a che servirebbe replicare tutti quegli antipatici settaggi in labview? Ti ringrazio ancora per la risosta. CIAO ---------------------------------------- AUTORE: 368 DATA :15/02/2006 - 13:51:48 ---------------------------------------- Ah, dimenticavo.... intendevi dire porta seriale, non parallela, vero? ---------------------------------------- AUTORE: 727 DATA :15/02/2006 - 13:55:18 ---------------------------------------- Si, scusa, la porta seriale. Ma devi settare all'interno del vi i parametri della tua porta seriale, non il contrario. Ciao ---------------------------------------- AUTORE: 368 DATA :15/02/2006 - 14:45:31 ---------------------------------------- Avevo capito male \":D\" Comunque non ho molta esperienza con la comunicazione seriale, ma quel che credo è che il settaggio dei parametri in labview dipende dal dispositivo con cui devo comunicare. Mi spiego: il mio PC è il trasmettitore e devo settare la mia porta sui parametri tali per cui il ricevitore (il controler della eurotherm) è in grado di riconoscerli. Per fare ciò credo che basti agire tramite labview. Se ho fatto confusione, mi dispiace..... ..... qualcuno è disposto a fare chiarezza? \":D\" Ciao ---------------------------------------- AUTORE: 645 DATA :15/02/2006 - 16:38:59 ---------------------------------------- Io ho lavorato con la porta seriale e ci lavoro ancora. I problemi più grossi che ho incontrato riguardano i tempi di comunicazione. O meglio, l'intervallo di tempo tra la scrittura e la lettura. Tu invii una stringa (non ho ancora letto il manuale del regolatore ma immagino ci sia scritto quali stringhe puoi inviare e, di conseguenza, quali risposte ricevi) e prima di leggere la risposta devi aspettare un tot di tempo (di solito millisecondi). I driver LabView fanno queste azioni. ---------------------------------------- AUTORE: 368 DATA :15/02/2006 - 16:53:53 ---------------------------------------- Grazie MagicBotolo! Io ho una breve esperienza con la seriale... non ho avuto le soddisfazioni che mi ha dato la GPIB, ma sono riuscito ad utilizzarla. Per [i:2ktifg5w]intevallo di tempo[/i:2ktifg5w] intendi il tempo di timeout o cosa? Io credo che il problema sia in fase di inizilizzazione, perchè ancor prima di scrivere nella seriale ricevo un errore (-1073807202). ....scusate, ma sto esaurendo \":o\" Bye ---------------------------------------- AUTORE: 645 DATA :16/02/2006 - 08:34:37 ---------------------------------------- Ho dato un'occhiata ai driver della National per il regolatore Eurotherm: i blocchi importanti sono tre. Init, Write, Read. Il primo contiene un blocco di inizializzazione della porta seriale. I dati di default credo siano quelli richiesti dal regolatore. L'unica stranezza che potrebbe portare problemi è la lettura dati a 7 bit anzichè 8: questo può cozzare con le impostazioni di windows. Per essere sicuri puoi provare ad impostare la seriale sia da LabView che dal Pannello di Controllo di Windows. La dimensione del buffer a 128 sembra una richiesta del regolatore: lavora con un buffer di queste dimensioni. I blocchi Write e Read preparano i dati per renderli leggibili dal regolatore e poi, tramite Visa Write e Visa Read, comunicano con l'apparecchio. Ciò che mi risulta scomodo è la presenza del blocco \"Port number global\" che sembra essere incaricato di portare in giro per il VI il riferimento alla porta di comunicazione alla quale è collegato il regolatore. Per evitare i driver puoi fare una prova del tipo: Inizializzi la seriale (sotto la paletta della comunicazione seriale c'è il blocco di inizializzazione), usi un blocco write e invii al regolatore una stringa con la richiesta di un parametro qualsiasi (per esempio tipo e marca, dovrebbe esserci qualcosa del genere), aspetti qualche secondo (poi, nel VI finale, questa attesa puoi ridurla fino ad un valore indicato nel manuale o ricavato dalle prove come minimo valore per cui la comunicazione avviene senza errori) e leggi la risposta con un blocco read. In questo modo come porta passi una COM e non un riferimento numerico. Nel post precedente il tempo di cui parlo è l'intervallo di tempo da aspettare prima di leggere la risposta dello strumento esterno. Io uso un alimentatore della HP (Agilent) e ho dovuto fare alcune prove prima di trovare i tempi giusti per la comunicazione. ---------------------------------------- AUTORE: 368 DATA :16/02/2006 - 11:40:53 ---------------------------------------- Grazie mille MagicBotolo, sono riuscito in qualche modo a risolvere il problema, che riguardava una mia stupida disattenzione. Cercando su questo fantastico forum ho infatti cercatol'errore 1073807202 ed ho scoperto che non avevo installato le librerie VISA...... Scusate se ho sollevato tutto questo polverone \":cry:\" .......ed ora viene il bello!!!! \":lol:\" \":lol:\" Ciao a tutti ---------------------------------------- ================================================================================ GPIB Write ================================================================================ AUTORE: 1067 DATA :15/02/2006 - 08:40:39 ---------------------------------------- Devo accedere ad un alimentatore impostando tramite labview la tensione. Il bus utilizzato è GPIB. Ho tentato di usare la GPIB Write ma non funziona. Avete suggerimenti da darmi? Grazie ---------------------------------------- AUTORE: 368 DATA :15/02/2006 - 09:46:36 ---------------------------------------- Ciao, la cosa più facile è cercare sul sito dalla national (www.ni.com) il driver relativo al tuo alimentatore (basta che tu conosca la marca ed il modello), installarlo ed il gioco è fatto. Provare per credere \":D\" ---------------------------------------- AUTORE: 727 DATA :15/02/2006 - 13:13:24 ---------------------------------------- Ciao, per esperienza ti dico che probabilmente il problema è nella sintassi. Infatti ti conviene studiare nel manuale la sintassi corretta e soprattutto vedere se ha bisogno di caratteri speciali all'inizio o alla fine della stringa di comando. Infatti anche nella funzione GPIB write è possibile settare il mode, cioè se si vogliono aggiungere i caratteri di \"tabulazione\", per esempio [CR], [LF]...dipende dal tuo strumento. Probabilmente è lì l'errore. Ciao ---------------------------------------- ================================================================================ limitare l'indice ad un array ================================================================================ AUTORE: 706 DATA :15/02/2006 - 11:35:37 ---------------------------------------- Ciao a tutti Complimenti per il nuovo sito. Il mio problema riguarda la limitazione dell'indice di un array .. vi spiego: Una volta estratti i file da una directory (come risultato ho un array) vorrei che l'indice dell'array si \"fermasse\" all'ultimo elemento dell'array senza che l'utente che utilizza il VI abbia la possibiltà di vedere oltre e cioè i restanti elementi vuoti. E' possibile questo? Non so utilizzando un Property node? Io utilillo la versione LabVIEW 7.0. Vi allego un VI di esempio. Grazie Francesco ---------------------------------------- AUTORE: 680 DATA :15/02/2006 - 12:51:54 ---------------------------------------- va bene così??? ciao..... ---------------------------------------- AUTORE: 129 DATA :15/02/2006 - 13:00:20 ---------------------------------------- Ti allego un esempio con property node.. ---------------------------------------- ================================================================================ limitare index display di un array ================================================================================ AUTORE: 706 DATA :15/02/2006 - 13:38:57 ---------------------------------------- Ciao Ho già scritto a proposito di questo mio problema. Vi riscrivo allaegandovi un VI che spero vi aiuti nella comprensione del problema. Vorrei cmq che la selezione degli elementi del mio array ,ricavato dalla lettura di una directory per l'estrazione dei file al suo interno, sia limitata fino all'ultimo elemento del mio array e non posso scorrere l'index display più in la dell'ultimo elemento, cioè senza farmi visualizzare elementi vuoti. P.S Utilizzo la versione 7.0 di LabVIEW Grazie a tutti Francesco ---------------------------------------- AUTORE: 487 DATA :20/02/2006 - 08:36:05 ---------------------------------------- Ciao, credo che basti settare il valore massimo che può avere l'indice della tua array, facendolo coincidere con la lunghezza dell'array stessa meno 1. ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 14:04:49 ---------------------------------------- penso non sia così semplice clikkando \"a mano\" sull'index array forse ti va anche negli array vuoti prova a creare una list di testo, e la selezione la fai da li molto più elegante e funzionale ---------------------------------------- AUTORE: 487 DATA :20/02/2006 - 16:04:05 ---------------------------------------- Eccoti un esempio: sono sicuro che non è la soluzione migliore e che molto di più si può fare, però può essere un punto di partenza. Ciao ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 16:22:05 ---------------------------------------- può essere una soluzione, lo blocchi e lo fai tornare indietro di uno da qualche parte forse ho un bel esempio da postarti con la gestione delle dir, ma non so dove l'ho messo mo guardo ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 16:42:37 ---------------------------------------- ti ho fatto una roba veloce per farti capire cosa intendo ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 16:44:16 ---------------------------------------- il primo pezzo lo esegui una sola volta per caricare l'elenco dei file nel selettore il secondo pezzo lo inserisci in un while loop così dai tutto il tempo di selezionare dall'elenco il file che serve in teoria non dovresti avere problemi di lunghezza di array, nomi, eccecc ---------------------------------------- ================================================================================ Imaq Windraw sparisce... ================================================================================ AUTORE: 482 DATA :15/02/2006 - 15:57:05 ---------------------------------------- ...ma ciao! ho un problema che non so da che parte prendere. Ho un vi principale e un subVI che con la funzione IMAQ Windraw apre una finestra di acquisizione immagini. Ho sullosfondo il mio vi principale, in primo piano il subVI e in primissimo piano (col focus) la finestra dell'immagine. Il problema è che quando io clicco su un qualsiasi punto del pannello del subVI, la finestra dell'immagine, anzichè perdere il focus e restare in primo piano, si minimizza o cmq va in secondo piano dietro al pannello del VI principale e quindi non è piu' visibile a meno che nonci clicco dalla barra delle applicazioni. Ho trovato una funzione che mi permette di mettere di settare l'ozione \"bring to front\" solo che non mi va bene perchè dovrei continuare a richiamarla ogni volta che clicco sul pannello e questo mi comprometterebbe l'applicazione. Come indicazioni ho che entrambe i VI nelle appareance sono settati come \"default\". Ho provato a settarli come floating ma non mi sembra che sia cambiato niente. Non posso settare nessuna delle finestre coem modal perchè a parte il main, sulle altre due ci devo lavorare, con dei pulsanti sul VI e tracciando dei rettangoli sull'immagine. Qualcuno sa come posso fare a risolvere questa situazione? ---------------------------------------- ================================================================================ problemi con i visa e la seriale ================================================================================ AUTORE: 1015 DATA :15/02/2006 - 16:51:28 ---------------------------------------- ciao a tutti, sto usando labview 7.1 e devo realizzare un pannello per mandare via seriale degli interi ad un pic 16f876. poichè sn nuova alla cosa, mi sto basando un pò sugli esempi di labview che usano i visa, ma leggendo i vecchi topic ho notato che c'è chi trova problemi con i visa. in particolare mi dà il seguente codice di errore: 1073807202 dove posso trovare qll che voi definite vecchi blocchetti? grazie a tutti ---------------------------------------- AUTORE: 645 DATA :16/02/2006 - 08:56:33 ---------------------------------------- Usi qualche driver particolare, magari scaricato dal sito della National, per la tua applicazione? Perchè l'errore che ti salta fuori può dipendere dal fatto che i driver non vengono trovati dal VI. Io personalmente ho usato i VISA nuovi tante volte e mi sono trovato sempre bene. Una prova semplice si può realizzare usando il blocco di inizializzazione della seriale (sotto la paletta Serial nel campo Comunicazioni), il blocco write (per inviare una stringa all'apparecchio esterno) e il blocco read (per leggere la risposta) con un tempo sufficiente per la comunicazione corretta. ---------------------------------------- AUTORE: 1015 DATA :16/02/2006 - 09:01:06 ---------------------------------------- in realtà non sto usando alcun driver (in verità nn sapevo nemmeno di averne bisogno). io devo mandare un intero a 16 bit ad un pic. prima di tutto, mi sai dire se posso specificare in qualche modo il tipo di dato che voglio inviare? il buffer del blocco write è solo per le stringhe... tornando al tuo suggerimento, che tipo di driver devo cercare e da dove posso prenderlo? ti ringrazio davvero tanto cloe ---------------------------------------- AUTORE: 645 DATA :16/02/2006 - 09:53:32 ---------------------------------------- Dunque, io non ho mai lavorato con un PIC ma immagino che la comunicazione avvenga come con qualsiasi altro dispositivo esterno collegato alla porta seriale. Immagino che la comunicazione sia del tipo: invio una stringa (per inviare un numero devo inviarlo sottoforma di stringa) per impostare alcuni parametri o per richiedere al dispositivo alcune informazioni. Giusto? Oppure funziona in modo diverso? ---------------------------------------- AUTORE: 1015 DATA :16/02/2006 - 10:26:15 ---------------------------------------- diciamo che il pic è un dispositivo un pò + intelligente, dotato di una sua seriale... il mio pic deve pilotare uno stepper e via seriale vorrei dirgli di quanto deve far ruotare il motore. spero di essere stata chiara. hai idea di come posso risolvere? cloe ---------------------------------------- AUTORE: 645 DATA :16/02/2006 - 10:35:39 ---------------------------------------- Ma di preciso cosa puoi inviare al PIC? Ci sono istruzioni del tipo \"metti la porta 1 a livello alto\", \"metti la porta 2 a livello basso\" e così via? Per controllare i motori so che si fa anche così: si pone una porta a livello alto e a seconda del tempo in cui questa porta rimane a livello alto il motore ruota di tot gradi. ---------------------------------------- AUTORE: 1015 DATA :16/02/2006 - 10:45:27 ---------------------------------------- ti spiego meglio... il pic si programma in C. nel programma gli dico di mandare un certo numero di segnali su un piedino del pic che è collegato al motore in modo da farlo girare. il mio scopo è mandare dal pannello di labview un intero che rappresenta il numero di segnali. questo valore viene letto dalla seriale del pic che poi provvede a generare i segnali per il motore. quindi labview nn c'entra niente con i segnali, mi serve solo per passare un parametro ad una funzione che sta implementata nel pic. grazie grazie grazie per il tuo aiuto cloe ---------------------------------------- AUTORE: 247 DATA :16/02/2006 - 10:58:14 ---------------------------------------- Ciao, [quote="cloe":1xktiwtw]mi sai dire se posso specificare in qualche modo il tipo di dato che voglio inviare?[/quote:1xktiwtw] non puoi specificare il tipo di dato, la comunicazione seriale trasmette bit di dati, rispettivamente un \"pacchetto\" o trasmissione singola seriale può trasferire 7 o 8 bit di dati, cerca con google per maggiori info sull'utilizzo della seriale. [quote="cloe":1xktiwtw]il buffer del blocco write è solo per le stringhe... [/quote:1xktiwtw] il blocco write accetta solamente il tipo string perchè fà corrispondere ogni carattere della stringa(ricorda 1 carattere=1 byte=8 bit)che gli fornisci ad una trasmissione seriale singola, in questo caso del tipo a 8 bit. [quote="cloe":1xktiwtw]tornando al tuo suggerimento, che tipo di driver devo cercare e da dove posso prenderlo? [/quote:1xktiwtw] oltre ad aver installato LabVIEW devi essere sicura di aver installato correttament anche i Device Drivers che contengono i Visa (solitamente contenuti su uno o due CD, sono i driver che gestiscono anche la seriale) e Measurement and Instrumentation Explorer (MAX); quest'ultimo se correttamente installato lo trovi nella cartella della national sotto programmi per una normale installazione. Cmq puoi scaricare i Visa, gli unici che ti servono, dal sito NI(), attenzione a versione, una recente, e a sistema operativo, quello che utilizzi. Vedi anche [url=http://www.ilvg.it/forum/viewtopic.php?t=707:1xktiwtw]Istallazione librerie visa[/url:1xktiwtw] [quote="cloe":1xktiwtw]io devo mandare un intero a 16 bit ad un pic. hai idea di come posso risolvere? [/quote:1xktiwtw] per sicurezza dovresti postare il protocollo di comunicazionec con il PIC (aka come interpreta i dati che gli arrivano..) cmq se non ha particolari preferenze \":D\" la comunicazione dovrebbe funzionare così: - Selezioni il numero di passi che lo stepper deve compiere tramite LabVIEW sul pc host. - converti il numero a 16 bit in una stringa di due caratteri: (prima dividi i 16 bit in 2 byte, poi converti i due byte in due caratteri). - a seconda del protocollo crei il pacchetto da trasmettere aggiungendo probabilmente come minimo un byte di controllo all'inizio del frame ai due byte che contengono il dato. - invii gli ipotetici tre byte tramite Visa-write su seriale. ---------------------------------------- AUTORE: 1015 DATA :22/02/2006 - 11:41:52 ---------------------------------------- grazie mille per l'aiuto! mi sn resa conto che effettivamente mi mancavano i driver! ora riesco a comunicare ma ho ancora molti problemi... il primo è questo: mi sai dire se dopo ogni lettura viene svuotato automaticamente il buffer? o devo farlo io? mi è venuto qst dubbio perchè sto provando ad inviare dal pic a labview due stringhe. al termine di ogni stringa faccio inviare il carattere di terminazione. il problema a qst punto è che mi scrive solo la prima stringa. mi daresti qlk dritta anche su come devo eventualmente svuotare il buffer? grazie mille di tutto cloe ---------------------------------------- AUTORE: 645 DATA :22/02/2006 - 12:01:01 ---------------------------------------- Guarda viewtopic.php?t=1237&highlight= : ho postato un'immagine del sistema che si può usare per svuotare il buffer (Svuota Buffer.jpg). Nel blocco di configurazione della seriale c'è la voce \"Enable Termination Char\": se imposti a True questa voce il VI legge dalla porta seriale i dati fino a quando incontra il carattere di terminazione (devi impostare quale carattere rappresenta il carattere di terminazione, sempre nel blocco di configurazione della seriale). Alcuni strumenti sono progettati per rispondere ad una richiesta con una stringa contenente come ultimo dato il carattere di terminazione. In questo modo si può impostare un numero di caratteri in lettura elevato senza preoccuparsi di quanti dati verranno effettivamente letti: la lettura continua fino a quando si incontra il carattere di terminazione. Se però leggi due stringhe e al termine della prima inserisci il carattere di terminazione la comunicazione seriale si interrompe e la seconda stringa non viene letta. Puoi modificare il VI inserendo il carattere di terminazione solo alla fine della seconda stringa mentre al termine della prima stringa puoi inserire un carattere jolly e impostare il VI in modo che, dopo aver letto tutto (quindi una stringa lunga contenente le due stringhe), divida la stringa letta in due parti: la prima dall'inizio al carattere jolly, la seconda dal carattere jolly (escluso) alla fine. ---------------------------------------- AUTORE: 645 DATA :22/02/2006 - 12:10:04 ---------------------------------------- Dimenticavo... Il buffer della seriale viene svuotato quando il VI legge i dati. Io usavo il ciclo di svuotamento solo quando riavviavo il VI dopo un errore. ---------------------------------------- AUTORE: 368 DATA :22/02/2006 - 12:54:10 ---------------------------------------- Ciao, anche io ho avuto lo stesso tipo di errore 1073807202 ed ho risolto istallando le librerie VISA. Le trovi nel CD di labview o le puoi scaricare gratuitamente dal sito della national. CIAO ---------------------------------------- ================================================================================ Differenza tra i valori di ascissa su un graficoXY ================================================================================ AUTORE: 852 DATA :16/02/2006 - 07:50:40 ---------------------------------------- Ciao a tutti. Ho un grafico tipo XY. Assegnato un valore di y devo calcolare la differenza tra due curve tracciate sul grafico. Come posso fare? Devo utilizzare property node? Grazie G. ---------------------------------------- ================================================================================ gestione riduci icona di un'altro programma ================================================================================ AUTORE: 838 DATA :16/02/2006 - 08:41:18 ---------------------------------------- vi spiego: ho un programma che si apre in automatico con windows a tutto schermo vorrei ridurlo a icona e se qualcuno lo riapre, lo riduco a icona in poche parole lo voglio tener sempre ridotto a icona per poterlo aprire faccio inserire una pwd sul mio programmino che mi sblocca quel software è possibile? come si può fare e se avete qualche idea!! grazie mitttici \":D\" ---------------------------------------- AUTORE: 838 DATA :16/02/2006 - 15:17:50 ---------------------------------------- ma esiste una dll che gestisce sta robbbbbbba? o un'activex? BOH ---------------------------------------- AUTORE: 487 DATA :20/02/2006 - 08:19:49 ---------------------------------------- Ciao, prova a vedere se ti può essere d'aiuto, non si tratta di ridurre a icona una finestra, ma bensì di nasconderla completamente: forse per il tuo scopo è più utile. ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 10:53:48 ---------------------------------------- grazie mille mi richiede lvwutil32.dll che non ho, ma l'esempio lo vedo ugualmente è versione 8 o 7.1? io sto usando la 7.1 per ora ---------------------------------------- AUTORE: 487 DATA :20/02/2006 - 11:33:13 ---------------------------------------- La versione è la 7.1.1 Eccoti anche la dll, così potrai provarlo: io l'ho trovato molto utile. Ciao ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 13:13:43 ---------------------------------------- sei un mito \":lol:\" ---------------------------------------- AUTORE: 852 DATA :22/02/2006 - 18:03:45 ---------------------------------------- è possibile anche con la versione 6.1 di Labview? ciao ---------------------------------------- AUTORE: 838 DATA :22/02/2006 - 18:26:39 ---------------------------------------- non saprei \":?:\" ---------------------------------------- AUTORE: 278 DATA :22/02/2006 - 18:48:33 ---------------------------------------- Ciao, ho convertito i vi alla versione 6.1, vedi allegato..... Anche io ho trovato molto carino questo vi, però ho riscontrato un problema, chiedo se capita anche a voi. Finchè parto con la finestra Win aperta (esempio con il nome \"Documenti\") e scelgo \"hide\" e poi \"show\" tutto bene, ma se a questo punto iconizzo manualmente con il mouse la finestra e poi faccio nuovamente girare il vi (con \"show\" selezionato, la finestra non riappare più!! \":o\" \":o\" Capita anche a voi? \":?:\" \":?:\" ---------------------------------------- AUTORE: 838 DATA :23/02/2006 - 07:32:27 ---------------------------------------- si uguale in poche parole se agisci \"a mano\" sulla finestra va in crisi però se lo lasci agire lui in automatico tutto funziona \":D\" ---------------------------------------- AUTORE: 487 DATA :24/02/2006 - 08:05:04 ---------------------------------------- In realtà il programma non serve per ridurre a icona o ripristinare la visione di una finestra, bensì a nasconderla o a scoprirla. Se fate un \"hide\" sulla finestra, già ridotta a icona, la fate sparire. Viceversa con un \"show\" la fate riapparire, però sempre ridotta a icona. Insomma il programma gestische solo le funzioni \"hide\" e \"show\" indipendentemente dalla posizione della finestra. ---------------------------------------- ================================================================================ LabView e Simulink ================================================================================ AUTORE: 645 DATA :16/02/2006 - 11:47:49 ---------------------------------------- Vi chiedo qualche info sui toolkit che la National mette a disposizione per comunicare con il mondo Simulink. Ho guardato il \"Simulation Module\" e il \"Simulation Interface Toolkit\". Qualcuno di voi li ha utilizzati? Sapete darmi qualche indicazione su quello che possono fare? La mia idea è preparare un modello in Simulink e importarlo in LabView per collegarlo al mondo esterno. Alla fine dovrà essere aperto solo LabView e sul mio pc dovrà girare il VI. Non posso tenere aperto anche Matlab (mi sembra di aver capito che uno dei due pacchetti permetta il collegamento tra i due software ma con la condizione che siano tutti e due attivi contemporaneamente). ---------------------------------------- AUTORE: 645 DATA :16/02/2006 - 12:25:04 ---------------------------------------- In particolare mi sembra di capire che \"Simulation Module\" lavora collegando il VI ad un modello Simulink (ma forse Matlab deve essere attivo mentre il VI gira) mentre il \"Simulation Interface Toolkit\" consente di creare una dll a partire dal modello Simulink e di accedere a questa dll dal VI (però in questo caso Matlab non deve essere attivo mentre gira il VI). Giusto? Boh, non so come comportarmi! ---------------------------------------- AUTORE: 645 DATA :24/02/2006 - 11:47:19 ---------------------------------------- Qualche notizia scoperta al NIDays2006 e grazie ad una telefonata ricevuta dal servizio tecnico della National: il Simulation Interface Toolkit (SIT) permette di collegare un modello Simulink con un VI. In particolare il SIT offre la possibilità i collegare gli ingressi e le uscite del modello Simulink a controlli e indicatori del VI. Il VI attiva il modello \".mdl\" e all'interno di Simulink viene avviata la simulazione: i valori dei parametri del modello possono essere modificati da LabView. Con questa soluzione, comoda a mio avviso in fase di test, è necessario avere installati sul pc sia LabView che Simulink (e quindi MatLab). Se in MatLab è presente anche il componente RealTime Workshop è possibile creare una dll a partire dal modello Simulink e importare questa dll nel VI: in questo modo si può far girare solo LabView (solo il VI) senza dover attivare anche Simulink. Il Simulation Module è invece un ambiente di programmazione simile a Simulink: si crea il modello in Simulation Module e lo si importa direttamente in LabView. È la versione Simulink della National. ---------------------------------------- ================================================================================ salvare dati in file di testo ================================================================================ AUTORE: 1081 DATA :16/02/2006 - 12:25:32 ---------------------------------------- ho letto che per salvare dei dati devo inserire nello schema a blocchi uno schema\"write the data to a spreadsheet[/i]\",vorrei sapere come si debbono collegare le varie \"palette\" che ho importato nello schema a blocchi.Grazie ---------------------------------------- AUTORE: 129 DATA :16/02/2006 - 12:46:06 ---------------------------------------- Se intendoi dire che terminali devi connettere, semplicemente la path del file su cui vuoi salvare i dati, quindi l'array (ci sono due ingressi uno per mono e uno per bidimensionale), quindi il tipo di tabulazione se intendi cambiarla rispetto al TAB di default. Se colleghi i cluster di errore, potrai anche gestire l'errore e l' esecuzione del VI. ---------------------------------------- ================================================================================ salva file premendo stop ================================================================================ AUTORE: 1081 DATA :16/02/2006 - 15:08:29 ---------------------------------------- Ciao, cercherò di essere + chiaro.Allora, io ho un programma che acquisisce dati da una scheda DAQ serie M e che li converte in grafici in funzione del tempo.Vorrei pertanto sapere come posso salvare i dati premendo il tasto di stop.Per maggiore chiarezza allego il file zippato del mio programma dove chi vuole aiutarmi può farmi vedere le modifiche che devo apportare allo schema a blocchi.Sto impazzendo da tre giorni \":o\" ---------------------------------------- AUTORE: 129 DATA :16/02/2006 - 17:09:39 ---------------------------------------- Devi portare fuori dal loop il codice per salvare, in modo da esegfuirlo solo al termine del tuo loop (alla pressione del tasto stop. Ti allego un immagine d'esempio sulla base del tuo codice. ---------------------------------------- ================================================================================ Connesione Bluetooth ================================================================================ AUTORE: 437 DATA :16/02/2006 - 19:34:11 ---------------------------------------- Ho riscontrato il seguente problema avviando una cossessione bluetooth tramite \"Bluetooth Create Listener\" : Error 58 occurred at Bluetooth Create Listener in Simple Bluetooth Server.vi Possible reason(s): LabVIEW: The network function is not supported by the system.[/i] a cosa è dovuto ? Come si imposta una connessone bluetooth con trasmettitore usb (COM4)? .... ---------------------------------------- ================================================================================ File .exe ================================================================================ AUTORE: 847 DATA :17/02/2006 - 07:29:11 ---------------------------------------- Ciao devo generare un eseguibile del mio .VI che andra a funzionare su un Pc la cui risoluzione utilizzata è 800x600 c'è un comando per fare questo o devo ridimensionare tutto il VI? Grazie per l'aiuto ciao ---------------------------------------- AUTORE: 838 DATA :17/02/2006 - 13:12:21 ---------------------------------------- è nelle proprietà del vi, non nell'exe vai in vi proprieties, windows size, e seleziona tutte le opzioni poi prova ---------------------------------------- ================================================================================ se premo play compare error 43 ================================================================================ AUTORE: 1081 DATA :17/02/2006 - 10:01:32 ---------------------------------------- Grazie infinite per il tuo aiuto!MI trovo però ancora inguaiato perchè anche impostando lo schema a blocchi come hai suggerito,nel momento in cui premo start compare una finestra con su scritto Error 43:occurred at file dialog. Se hai tempo aiutami. ---------------------------------------- ================================================================================ Restart while loop in automatico ================================================================================ AUTORE: 996 DATA :17/02/2006 - 13:06:39 ---------------------------------------- Salve a tutti, ho un problema che riguarda il ciclo while su un'applicazione sviluppata in LabView 7.0. Come faccio a far ripartire il ciclo while in automatico, dopo che l'ho fermato con un pulsante sul front panel, controllato da un event structure??? Grazie per l'attenzione che mi vorrete dedicare!!! Andrea. \":oops:\" ---------------------------------------- AUTORE: 838 DATA :17/02/2006 - 13:09:51 ---------------------------------------- non capusco bene cosa intendi, hai per caso un'esempio da postare? ---------------------------------------- AUTORE: 996 DATA :17/02/2006 - 15:23:04 ---------------------------------------- In pratica voglio che il mio pulsante di stop, funzioni come il run continuosly; cioè quando lo premo resetto tutte le variabili e ricomincio da capo il ciclo while ---------------------------------------- AUTORE: 838 DATA :17/02/2006 - 16:35:34 ---------------------------------------- usa un while dentro l'altro e per uscire da quello esterno o lo forzi sempre in loop o gli metti un'altro pulsante almeno mi sembra che la soluzione sia tutta qua ---------------------------------------- AUTORE: 680 DATA :17/02/2006 - 16:42:48 ---------------------------------------- prova a vedere se ho capito bene....... ---------------------------------------- AUTORE: 996 DATA :17/02/2006 - 18:25:08 ---------------------------------------- Si esatto, praticamente mi stavo facendo una sega mentale per niente. Grazie Mille \":lol:\" ---------------------------------------- ================================================================================ come inserire la frequenza in modo automatico ================================================================================ AUTORE: 1081 DATA :20/02/2006 - 13:27:18 ---------------------------------------- ciao,ho un nuovo problema, vorrei inserire i valori di frequenza e numero di acquisizioni della DAQ immettendoli dal front panel e non andando ogni volta a modificare il Block Diagram.Allego l'icona relativa alla DAQ, se ne può usare un'altra con diversi input ? ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 13:55:57 ---------------------------------------- non devi usare il daq assistant, ma direttamente le funzione daqmx sono enormemente più versatili. per prima cosa ti crei una task costante, poi la converti in codice e alla fine tutti i parametri di input li puoi mettere a pannello ciao ---------------------------------------- ================================================================================ FITS FILE ================================================================================ AUTORE: 727 DATA :20/02/2006 - 13:48:10 ---------------------------------------- Ciao ragazzi... Sapete come salvare immagini in formato .fits o in un altro formato che non cambi i valori acquisiti? Mi serve il valore esatto di ogni pixel per poter poi sottrarre il rumore e fare altri calcoli. Ho pensato di salvare direttamente la matrice in un file .xls o in formato ASCII, ma non mi salva tutta la matrice (1024x1024) elementi. Ogni consiglio è ben accetto. Ciao, grazie. \":cry:\" ---------------------------------------- ================================================================================ Task con input di diverso tipo ================================================================================ AUTORE: 1081 DATA :20/02/2006 - 14:54:22 ---------------------------------------- Grazie mille minzuk ho iniziato ad inquadrare il problema,ma non riesco a creare una task che abbia come input analogici i valori in volt e come input da pannello il valore della frequenza e del numero di acquisizioni.In pratica non riesco ad inserire input di diverso tipo.Se hai tempo potresti mandarmi un esempio pratico? ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 15:02:05 ---------------------------------------- provo a riassumerlo visto che le istruzioni daq funionano solo se hai l'hardawere collegato vai nel block diagram prendi la daqmx write seleziona il tipo di uscita, analog, .... poi in task in crei (con il tasto dx) una costante poi con il tasto sx sulla costante crei una nuova task configuri esattamente la task come l'avevi messa nel daq assistant a questo punto avrai una costante PIPPO collegata al daqmx write ancora il tasto dx sulla costante e fai generate code lui ti sostituisce la costante con un sotto vi completamente configurabile al posto delle costanti ci metti a pannello quello che vuoi e configuri il sottovi con input quello che ti serve ricordati di usare poi il daqmx erase per liberare la memoria dal task usato spero di esserti stato d'aiuto ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 15:02:47 ---------------------------------------- ops..... daqmx erase=daqmx clear task ---------------------------------------- ================================================================================ Creare l'eseguibile senza la barra file, tools, etc.. ================================================================================ AUTORE: 706 DATA :20/02/2006 - 16:07:27 ---------------------------------------- Ciao a tutti, Vorrei creare un eseguibile che appena viene aperto mi mostri soltanto la freccia per il run del programma senza la barra sopre dove ci sono le voci File, tool,help, etch. E' possibile questo? Inoltre una volta messo in Run l'applicativo vorrei che si vedesse soltanto la parte relativa al VI, ovvero solo i controlli, l'indicatori e non tutto il VI. Come posso fare? Grazie in anticipo Francesco ---------------------------------------- AUTORE: 838 DATA :20/02/2006 - 16:24:25 ---------------------------------------- ogni vi è personalizzabile così: vi proprieties windows apparances customize e smanetta da li, togli tutto quello che vuoi poi in windows size puoi forzare anche una risoluzione specifica ---------------------------------------- ================================================================================ pattern per liste [ERA: una rivoluzione è alle porte] ================================================================================ AUTORE: 884 DATA :21/02/2006 - 08:53:53 ---------------------------------------- probabilmente esagero, però dovrei aver costruito un pattern per creare delle liste, allego una lista di stringhe ed una lista di vi... aspetto feedback sulla questione!!! ---------------------------------------- AUTORE: 4 DATA :22/02/2006 - 16:03:05 ---------------------------------------- Interessante... che utilizzo pensi di farne? Ciao, ---------------------------------------- AUTORE: 884 DATA :22/02/2006 - 17:39:13 ---------------------------------------- ciao, \":oops:\" \":oops:\" \":oops:\" il solito impiego delle liste... alla bisogna le userei. Credo sia più importante il risultato che la lista in se e per sè \":wink:\" , estensioni interessanti potrebbero essere la struttura grafo o albero... ma anche array di VI che permettono una gestione Object Oriented sulle istanze contenute! Ovviamente non aggiunge potere espressivo al linguaggio (si pensi che alla fine viene tutto mappato in codice macchina che le liste non le ha) però in alcuni una lista potrebbe fare comodo \"8)\" . Ad esempio se ho un processo che dinamicamente cambia i passi processamento (scusate la ripetizione) nella lista di VI (processori) si potrebbe scegliere il prossimo passo di processo in base ad una probabilità (problema delle stazioni di servizio). Logicamente si può fare anche con qualcosa di più statico e standard (array di successori) ma non è detto che sia comodo e leggibile! (un grafo esprime il concetto sicuramente meglio di un array) P.S. il metodo destroy è un pò drastico, si potrebbe migliorare senza contare così tanto sul GC di LV \":twisted:\" ... ---------------------------------------- AUTORE: 129 DATA :24/02/2006 - 18:25:02 ---------------------------------------- Ma come mai hai utilizzato stricly VI ecc? Le liste per definizione non sono array che a differenza di code e stack si possono inserire/estrarre gli elementi in una posizione a piacere? Tra l'altro quello che mi sembra hai realizzato è uno stack (FIFO), perchè non usare le code che sono già disponibili in labview?(Ti allego il tuo VI fatto con un object stack utilizzando code) come esempio. P.s. Questa sezione è dedicata alla wish list ovvero quello che desideri da labview.Solo per un fatto di ricerca sarebbe preferibile inserire un topic avanzato come questo nella sezione programmazione avanzata. Nic \":wink:\" ---------------------------------------- AUTORE: 129 DATA :25/02/2006 - 09:12:11 ---------------------------------------- Considerazione sulle liste 2: - Una lista è costituita da una collezione di elementi. - Ogni elemento ha due informazioni una (puntatore) di posizionnamento e l'altra (dato) di reale contenuto informativo. - L'inserimento/estrazione in una lista può essere fatto all'inizio; alla fine o in qualsiasi altro punto indirizzando il puntatore e sostituendolo con un puntatore che punti all'elemento successivo. Secondo me una struttura simile potrebbe essere realizzata anche utilizzando un array di cluster, dove il cluster contiene il puntatore e l'elemento. Che dite? ---------------------------------------- AUTORE: 884 DATA :27/02/2006 - 07:10:53 ---------------------------------------- dico che, come già detto, non è tanto l'implementazione particolre che mi ha colpito, quanto il fatto che si può fare !!!! chiamatela come volete, STACK, LISTA, FIFO, ALBERO, GRAFO è sempre e comunque una struttura dinamica! una volta fatta e capita la prima è 'ovviamente' possibile personalizzarla come meglio si crede. non è che se il primo programmatore in un array c'ha messo un intero relativo all'età dei colleghi poi tutti gli altri hanno dovuto utilizzare quell'array per memorizzare questa informazione. I primi esempi sono giusto degli ESEMPI. Ho allegato il codice di una 'FIFO' (altrimenti qualcuno si offende se la chiamo lista \":)\" ) per le stringhe e per i VI perchè credevo fossero buoni esempi (completi che fanno capire cosa intendo dire). Inoltre utilizzare un array significa che ad ogni inserimento il simpatico LV alloca nuovamente l'intero ARRAY! se volessi fare statistiche su un DB e mi affidassi totalmente agli array il tempo di elaborazione del mio programma sarebbe bruciato probabilmente dalla gestione degli array!. N.B. faccio notare che per far diventare una 'FIFO' una 'LIFO' basta inserire inserire semplicemente in testa! (modifiche piuttosto marginali al codice che avevo allegato) ---------------------------------------- AUTORE: 129 DATA :27/02/2006 - 08:18:19 ---------------------------------------- Intanto ci tengo ad uscire da una situazione di polemica, che non si sposa alle mie intenzioni. Il fatto che continuo a non capire cosa realmente hai creato. Se il lavoro che hai pubblicato poteva essere meglio ottenuto con l'utilizzo delle code (hai dato un occhiata al mio esempio?) mi sono sentito in dovere di segnalarlo. Insomma ad oggi le cose stanno così per creare strutture FIFO o LIFO il metodo migliore sono le code (native in labview tra l'altro). [quote:3q37d45g] chiamatela come volete, STACK, LISTA, FIFO, ALBERO, GRAFO è sempre e comunque una struttura dinamica! [/quote:3q37d45g] Si ma esistono delle differenze sostanziali. Lo stack,la coda sono strutture sequenziali con un ordinamento preciso. Le liste, gli alberi e i grafi sono strutture diverse e soprattutto l'ordinamento,inserimento e prelievo avvngono in modi diversi. Comunque ripeto, vorrei tenere animata questa discussione, ma ovviamente senza polemiche. \":wink:\" ---------------------------------------- AUTORE: 884 DATA :27/02/2006 - 12:34:56 ---------------------------------------- Nicola scusami se il tono sembra polemico, non era mia intenzione \":oops:\" (se non volessi critiche non avrei allegato i VI). Dico semplicemente che ho sbagliato a chiamarle liste, ma il concetto non cambia, sono delle strutture che di fatto hanno dei puntatori al precedente ed al prossimo. Forrei far cadere l'attenzione sulla possibilità di ottenere dei VI (con la metodologia, non con la particolare implementazione) che hanno dei 'puntatori' ad altre strutture piuttosto di portarsi dietro tutta la struttura. Se facessi un analogia a Java (impropria per la natura diversa dei linguaggi, lo so) diamo in questo modo la possibilità ad un oggetto di mantenere il riferimento ad un altro oggetto come sua proprietà, un pò come si fa con la tecnica dei plug-in già nota a LV. (Strutturazione diversa da quella da me fornita, ovviamente) Inoltre se volessi mantenere una lista ordinata delle code native di LV non saprei cosa farmene... mentre con una lista potrei scandire gli elementi e fare un inserimento mirato. Comunque non dico che non esistono altri metodi per fare le stesse cose che si fanno con delle strutture a 'grafo' (di fatto le liste sono una sottoclasse dei grafi), un esempio su tutti sono gli array. Dico semplicemente che a volte non è intuitivo utilizzare un array laddove verrebbe naturale utilizzare un qualcosa che utilizzi i puntatori (ad esempio un albero binario di ricerca, potrei costruire un heap ma l'albero rende meglio l'idea) ---------------------------------------- ================================================================================ Sincronizzazione dei segnali help ================================================================================ AUTORE: 1029 DATA :21/02/2006 - 08:57:20 ---------------------------------------- Salve a tutti! Devo sincronizzare un segnale con un segnale a dente di sega e visualizzarlo con l' Express XY Graph, mandando in asse X il dente di sega e in asse Y l'ampiezza del segnale che voglio visualizzare. Poichè il segnale che voglio analizzare non è sincronizzato con il dente di sega, scorre per tutto il grafico mentre vorrei che fosse stabile come quando si visualizza un segnale all'oscilloscopio. Come faccio a realizzare questa sincronizzazione? ---------------------------------------- ================================================================================ Camera firewire ================================================================================ AUTORE: 873 DATA :21/02/2006 - 13:21:32 ---------------------------------------- Salve a tutti! Mi chiedevo se era possibile utilizzare una comune digital camera dotata di usvita DV di firewire, direttamente con labview, semplicemente mostrando il video in una finestra. Ho labview 8 ma Vision Assistant non rileva niente nonostante winXP rilevi correttamente la videocamera.Essendo l'interfaccia una firewire standard, c'e' assoluo bisogno di comprare una board National con connessioni firewire per utilizzare queste periferiche? grazieeeee ffogs ---------------------------------------- AUTORE: 247 DATA :21/02/2006 - 19:32:17 ---------------------------------------- Ciao, il problema sta nel fatto che l'uscita della tua videocamera firewire è compresso, per poter utilizzare le normali funzioni di analisi dell'immagine di LV devi avere l'immagine non compressa. Se ti interessa esistono in commercio alcune \"webcam\" firewire poco costose che danno in uscita un segnale non compresso. Cmq cerca \"webcam\" con la funzione di ricerca del forum, ne abbiamo già parlato, potresti trovare info utili. BYE. ---------------------------------------- ================================================================================ Modifica di un VI ================================================================================ AUTORE: 1029 DATA :21/02/2006 - 16:54:56 ---------------------------------------- Ciao a tutti! Ho trovato il rivelatore di inviluppo che stavo cercando e lo metto qui in allegato. Il mio problema penso che sia semplice, nessuno mi ha spiegato come funziona Labview quindi qualche volta incontro delle difficoltà. Vorrei usare l'envelope detector.vi (allegato) come subVI per un altro programma. Il problema è che il programma allegato contiene al suo interno un generatore di forma d'onda, mentre vorrei usare il segnale che voglio analizzare come forma d'onda (quindi un segnale esterno al rivelatore e non generato dallo stesso programma), e non so come creare il subVI dato che in ingresso avrei un segnale di cui non conosco nè l'ampiezza nè la frequenza. Qualcuno sa come aiutarmi? (se avete bisogno di altre informazioni chiedete pure). Grazie! ---------------------------------------- AUTORE: 278 DATA :21/02/2006 - 19:50:24 ---------------------------------------- Ciao, se non ho capito male, devi rimuovere la parte di generazione del segnale, lasciare la parte di filtro e creare un subvi. Se è così guarda il vi allegato; probabilmente, il tuo vero problema è come creare dei subvi. Non è una cosa complicata ma è un pò lunga da descrivere, se ti serve aiuto in tal senso chiedi pure. ---------------------------------------- AUTORE: 1029 DATA :22/02/2006 - 09:36:27 ---------------------------------------- Grazie mille esodar! Il VI modificato funziona alla grande! Thanks! ---------------------------------------- ================================================================================ Visualizzare più VI ================================================================================ AUTORE: 674 DATA :21/02/2006 - 18:20:33 ---------------------------------------- Salve a tutti, vorrei costruire un' applicazione formata da tre VI i quali hanno ognuno un proprio ciclo while con all'interno un generatore di numeri random collegato al relativo grafico.Il problema nasce quando voglio da ognuno dei VI poter richiamare uno degli altri due VI. Potrei pensare che il VI 1 mostra sul proprio FP il pulsante di stop, un pulsante per esempio di richiamo del VI 2 e un pulsante di richiamo del VI 3, che il VI 2 mostra sul proprio FP il pulsante di stop, un pulsante di richiamo del VI 1 e un pulsante di richiamo del VI 3, che il VI 3 mostra sul proprio FP il pulsante di stop, un pulsante di richiamo del VI 1 e un pulsante di richiamo del VI 2.Il grafico di ogni VI dovrebbe aggiornarsi anche se non è quello che in quel momento mostra il proprio FP. Qualcuno può darmi una idea o uno spunto ?? Ringrazio anticipatamente chiunque mi risponderà. ---------------------------------------- AUTORE: 247 DATA :22/02/2006 - 10:29:45 ---------------------------------------- Ciao, guarda questo vecchio post: [url=http://www.ilvg.it/forum/viewtopic.php?t=765&start=0&postdays=0&postorder=asc&highlight=:1bqpmvq4]Creazione menù[/url:1bqpmvq4], in particolare l'esempio allegato CallChainServer.zip, puoi usarlo come pertenza per i tuoi scopi. BYE. ---------------------------------------- AUTORE: 674 DATA :25/02/2006 - 15:38:41 ---------------------------------------- Ciao apollon, ti ringrazio prima di tutto per avermi risposto e vedrò cosa riesco a combinare con il link che mi proponi. In caso non riuscissi a combinare nulla di buono ( sono alle prime armi con Labview ) ti dovrò forse rompere le scatole di nuovo. Grazie, Whisky ---------------------------------------- ================================================================================ Application Builder e diverse versioni LabView ================================================================================ AUTORE: 1097 DATA :22/02/2006 - 08:22:35 ---------------------------------------- Salve! Utilizzando l'Application Builder della versione di LabVIEW 7.1 è possibile creare un'applicazione con installer per versioni precedenti di LabVIEW (es. 6.1 o 7.0)? Ho trovato difficoltà, non so se per mia ignoranza o altro... Grazie anticipatamente \":lol:\" JoaoParao ---------------------------------------- AUTORE: 129 DATA :22/02/2006 - 11:02:45 ---------------------------------------- Potresti descrivere le difficoltà? Se realizzi un applicazione con application builder per 7.1 dovrai utilizzare il runtime della versione 7.1 Ogni versione in sostanza ha un suo runtime. Non so se è questo il tuo problema. ---------------------------------------- AUTORE: 1097 DATA :22/02/2006 - 11:20:42 ---------------------------------------- Beh, a me servirebbe usare la mia applicazione su una macchina con win98se. Se la creo col 7.1 (questo ho a disposizione), essa gira solo con win2000o winXP... Non so se c'è soluzione... Tnks JoaoParao ---------------------------------------- ================================================================================ Curva ad inseguimento ================================================================================ AUTORE: 368 DATA :22/02/2006 - 14:04:22 ---------------------------------------- Ciao, sono appena entrato nel mondo dei Graph ed ho subito incontrato le prime difficoltà: vorrei rappresentare sullo stesso grafico una spezzata e l'andamento dei dati (acquisiti da una termocoppia) che dovrebbe seguire tale spezzata. Mi piacerebbe vedere la spezzata fissa, mentre la curva di acquisizione aggiornata in real-time. Per ora sono molto lontano dall'obiettivo.... help help \":wink:\" ---------------------------------------- AUTORE: 1030 DATA :22/02/2006 - 16:25:11 ---------------------------------------- Guarda il vi allegato ---------------------------------------- AUTORE: 1030 DATA :22/02/2006 - 16:51:25 ---------------------------------------- scusa ho scordato di allegare un subVI... \":(\" Ecco la cartella che contiene VI e subVI. ---------------------------------------- AUTORE: 1030 DATA :22/02/2006 - 16:56:53 ---------------------------------------- eccolo finalmente.. almeno spero ---------------------------------------- ================================================================================ problemi con chart ================================================================================ AUTORE: 683 DATA :22/02/2006 - 15:10:56 ---------------------------------------- ciao a tutti, ho bisogno di un aiuto da un mio post precedente vedi topic \"data grafico\" con riuscito a mettere in automatico la data giorno e ora su un chart l'unica cosa che quando faccio partire il VI se metto questa \"finezza\" il grafico nel digital display segna i valori acuisiti ma non scrive niente o meglio non fa vedere i valori sul chart sove sbaglio?? allego 2 vi grazie a tutti ---------------------------------------- ================================================================================ Selezionare la directory di salvataggio di un file dati ================================================================================ AUTORE: 645 DATA :22/02/2006 - 15:46:10 ---------------------------------------- Forse lo sapete già fare ma io ci sono arrivato da poco: mi serviva una struttura capace di aprire una finestra tipo Windows nella quale scegliere la directory di destinazione per il file contenente le acquisizioni fatte. Così ho messo insieme qualche blocchetto e alla fine ho ottenuto quello che cercavo. Può essere personalizzato come più piace! ---------------------------------------- ================================================================================ filtraggio di dati e visualizzazione ================================================================================ AUTORE: 204 DATA :22/02/2006 - 16:57:24 ---------------------------------------- ciao a tutti, credo sia una domanda banale ma non riesco a capire come fare.. Nel VI allegato trovate una serie di dati che vengono visualizzati premendo il pulsante \"enable\". E se volessi visualizzarli dopo un filtraggio, per esempio facendo passare i dati attraverso un filtro passa-basso? Come posso fare? utilizzando Simulink tutto e' facile..basta specificare es. la funzione di trasferimento del filtro e il gioco e' fatto. In labview esiste qualche cosa di simile (uso LV 7.1)? Grazie dell'attenzione ---------------------------------------- ================================================================================ File in binario:lettura e conversione ================================================================================ AUTORE: 1102 DATA :22/02/2006 - 22:55:20 ---------------------------------------- Sto lavorando con un sistema daq per il calcolo della potenza ad alta frequenza. L' high speed date logger crea file in binario che devo assolutamente aprire e convertire in decimali e testo per elaborare tutti i dati . Come faccio ad aprirli e leggerli? ---------------------------------------- AUTORE: 278 DATA :23/02/2006 - 19:32:14 ---------------------------------------- Ciao, in LV esistono dei VI appositi per le operazioni di lettura e scrittura su file binari, dal block diagram segui il percorso File I/O->Bynary File VIs, credo che questi VI torneranno utili per il tuo scopo... A presto ---------------------------------------- ================================================================================ sistema daq+high speed data logger: pochi valori nel file ================================================================================ AUTORE: 1102 DATA :22/02/2006 - 23:08:41 ---------------------------------------- Sto lavorando con un sistema daq per l'acquisizione di valori di potenza ad alta frequenza .l'high speed data logger carica nel file solo 2048 punti. e il risultato non cambia cambiando i valori di scan rate,buffer size e max number of scans to write to file .Sapete dirmi da cosa puo' dipendere ? ---------------------------------------- ================================================================================ Scrivere e leggere su LPT ================================================================================ AUTORE: 1103 DATA :23/02/2006 - 08:56:04 ---------------------------------------- Salve, qualcuno ha esperienza di lettura e scrittura sulla porta parallela? è possibile avere un VI con le dovute configurazioni? ---------------------------------------- AUTORE: 278 DATA :23/02/2006 - 19:41:06 ---------------------------------------- Ciao e benvenuto, non so se l'hai già fatto, ma ti consiglio di leggere questo articolo download.php?id=298 Spiega chiaramente come utilizzare la porta parallela in LV, se hai qualche dubbio chiedi pure.. Ciao ---------------------------------------- AUTORE: 727 DATA :23/02/2006 - 23:53:07 ---------------------------------------- Ciao. Che versione di LV usi? Con quale sistema operativo? Sono due info fondamentali. Può essere necessario installare il pacchetto accesshw. Ciao PxEL ---------------------------------------- AUTORE: 1103 DATA :02/03/2006 - 14:18:04 ---------------------------------------- Esatto, io sto lavorando con 6.1 e questo pare sia un limite. ---------------------------------------- AUTORE: 129 DATA :02/03/2006 - 14:47:45 ---------------------------------------- Come ti suggeriscono i colleghi nei post sopra e come potrai leggere nell'articolo \"Accesso alle risorse I/O\" che ti ha linkato Esodar, le cose stanno così: Labview 6.1 su W98 OK con Portin e out disponibili su labview. Labview 6.1 su W2000 XP devi scaricare accessHW. In ogni caso solitamente l'errore + comune è quello di mettere l'adress in esadecimale ma il controllo è impostato come decimale e quindi non si trovano. Leggi l'articolo trovi tutte le info nel dettaglio, Nicola. ---------------------------------------- AUTORE: 1103 DATA :20/03/2006 - 13:26:44 ---------------------------------------- Egregio Nicola con LV6.1 e Wind XP non riesco a comunicare con la parallela, evidentemente commetto l'errore che mi indicavi (l'indirizzo in H anzichè in decimale), mi spieghi meglio?. Una domanda generale: come mai è uso comune non inviare un VI già funzionante? In ogni caso mi starebbe bene anche arrivarci da solo ma con il vostro aiuto. Cordialmente Ing. francesco cozzolino ---------------------------------------- AUTORE: 129 DATA :20/03/2006 - 15:32:03 ---------------------------------------- Ti smentisco sull'uso comune, che invece è quello di condividere condividere e condividere. Per questo ti allego un esempio in 6.1 con già la dll di access HW e il control su HEX. Spero ti sia utile... \":wink:\" ---------------------------------------- AUTORE: 1103 DATA :04/04/2006 - 16:27:58 ---------------------------------------- salve a tutti, con lab view 8 e windows XP sono riuscito a scrivere, ora vorrei capire come faccio anche a leggere, o meglio vorrei scrivere su alcuni pin e leggere su altri. ---------------------------------------- AUTORE: 1103 DATA :05/05/2006 - 18:39:13 ---------------------------------------- Ragazzi scusate è possibile che nessuno di Noi hai mai letto un digital input di 5 volt sulla porta parallela? In libreria c'è tanto di spiegazione ma non mi pare ci siano esempi concreti. Ripeto mi riferisco a LV8, il massimo!! ---------------------------------------- AUTORE: 680 DATA :05/05/2006 - 19:50:43 ---------------------------------------- che tipo modalità usi della porta parallela? SPP - EPP - ECP ??? sulla SPP, la più semplice è configurata in questo modo: - Registro di uscita a 8 bit (indirizzo base 0x378 --> 888) pin bit valore bit nome spp 2 D0 1 Data 0 3 D1 2 Data 1 4 D2 4 Data 2 5 D3 8 Data 3 6 D4 16 Data 4 7 D5 32 Data 5 8 D6 64 Data 6 9 D7 128 Data 7 - Registro di uscita a 4 bit (indirizzo bas+2 0x37A --> 890) pin bit valore bit nome spp 1* D0 1 Strobe 14* D1 2 Linefeed 16 D2 4 Initialize 17* D3 8 Select IN - Registro d'ingresso a 5 bit (indirizzo base+1 0x379 --> 889) pin bit valore bit nome spp 15 D3 8 Error 13 D4 16 Selct 12 D5 32 Paper OUT 10 D6 64 Ack 11* D7 128 Busy ________________________________ I PIN dal 18 al 25 vanno collegati a massa (GND). I PIN contrassegnati da * sono NEGATI. Le uscite e gli ingressi, sono TTL e possono erogare circa 5 mA (source) ed assorbire una corrente di circa 24 mA (sink). ciao..... ---------------------------------------- AUTORE: 1103 DATA :13/05/2006 - 10:47:08 ---------------------------------------- Egregio "linux 120", forse il mio problema è proprio la configurazione dell'indirizzo in oggetto da settare. Se è così vorrei sapere come fare e poi dovresti confermarmi che io prendo il pin 12 per esempio, di default sta a +5V, io lo mando bruscamente a massa e con un Vi leggo questo zero. E' così. Guarda a scrivere non c'è il minimo problema, mi immagino che sia cos' anche per leggere. Cordialmente francozz ---------------------------------------- AUTORE: 680 DATA :13/05/2006 - 12:18:57 ---------------------------------------- si è proprio così come dici.... cmq prova a vedere questo vi che ti ho creato... dovrebbe schiarirti un po' le idee.... ciao..... ---------------------------------------- ================================================================================ strana esecuzione (istruzioni x 3!) ================================================================================ AUTORE: 1015 DATA :23/02/2006 - 11:39:21 ---------------------------------------- ciao a tutti... ho uno strano problema...vi spiego. sto creando un'interfaccia con labview per comandare il moto di un motore stepper inviando via seriale i comandi ad un microprocessore. sto gestendo la cosa in qst modo: sul pic ho caricato un programma che in base al carattere che riceve dalla seriale comanda il motore in un certo modo. il protocollo di comunicazione funziona bene solo che è come se labview inviasse 3 volte il carattere specificato quindi il motore fa 3 volte le stesse operazioni. come è possibile? davvero nn riesco a capire... vi allego il VI che ho fatto grazie a chiunque contribuisca a risolvere qst mistero \";-)\" [/img] ---------------------------------------- AUTORE: 884 DATA :23/02/2006 - 12:41:32 ---------------------------------------- ciao, ho guardato rapidamente il codice e credo sia dovuto alla mechanical action legata ai tuoi comandi booleani. Credo che dovresti mettere una wait nel while in modo da non massacrare il SO e che il tasto write dovrebbe avere come mecanical action \"latch when released\". Se così non è LV ti esegue il codice continuamente... prova l'allegato ---------------------------------------- AUTORE: 1015 DATA :23/02/2006 - 13:57:27 ---------------------------------------- ciao milaus...grazie mille per l'aiuto. nn vorrei approfittare, ma io uso labview 7.0 e nn riesco ad aprire il tuo file. nn esiste un modo per farmelo aprire? ti ringrazio ancora ---------------------------------------- AUTORE: 884 DATA :23/02/2006 - 18:08:46 ---------------------------------------- ...non c'è problema (spero) l'ho salvato per lv 7.0, a domani! ---------------------------------------- AUTORE: 1015 DATA :24/02/2006 - 08:07:36 ---------------------------------------- grazie mille per la disponibilità! cmq nel frattempo avevo provato a modificare il VI seguendo le tue istruzioni e ho risolto! cmq adesso dò un occhio anche al file che mi hai mandato magari contiene qlk altra dritta! grazie grazie grazie ---------------------------------------- ================================================================================ salva power spectrum in file di testo ================================================================================ AUTORE: 1081 DATA :24/02/2006 - 14:54:23 ---------------------------------------- Ciao ,vorrei capire come si può salvare il segnale power spectrum in un file di testo. \":o\" ---------------------------------------- AUTORE: 129 DATA :24/02/2006 - 22:33:48 ---------------------------------------- E' un cluster, quindi se ti è sufficnte estrarre i valori di magnitude, puoi utilizzare il \" write to spreadsheet file\". Ti allego un esempio per partire... ---------------------------------------- ================================================================================ Application Builder <Path di trasformazione> ================================================================================ AUTORE: 238 DATA :27/02/2006 - 08:24:00 ---------------------------------------- Con „Applcation Builder“ (LabView 6.1) ho creato un installer che su una decina di PC ha funzionato perfettamente ; su un PC collegato in rete (rete aziendale con sistema operativo Win XP Professional) durante l´installazione esce una finestra di Popup che il path di trasformazione non e´valido \":o\" Qualcuno ha idea da che cosa possa dipendere \":?:\" ---------------------------------------- AUTORE: 487 DATA :27/02/2006 - 16:01:52 ---------------------------------------- Non sono molto ferrato in materia, ma ho avuto anch'io un problema simile ed il support di NI mi ha detto che è sempre meglio creare l'eseguibile su un pc di sviluppo con il medesimo sistema operativo di quello di destinazione. Penso, ma forse sbaglio, che l'application builder inserisca nell'installer che vai a creare delle librerie specifiche del sistema operativo. ---------------------------------------- AUTORE: 238 DATA :27/02/2006 - 16:54:00 ---------------------------------------- Il PC dove ho sviluppato l´applicazione e il PC che mi da il problema hanno XP-Prof ; l´unica differenza sta nel fatto che il PC del cliente ha caricato tutti gli update di Windows. Adesso ho portato tutta l´applicazione su LabView 8 pero´ho un dubbio per quel che riquardano le funzioni \"Excel\" nel \"Build Executable\" di LabView 8 In Build Specifications\" - \"Source Files\" - \"Dynamic VIs and Support Files\" va aggiunto \"_Ecxel Dinamic VIs.vi\" Domanda: aggiundendo \"_Ecxel Dinamic VIs.vi\" l'esequibile creato funziona con qualisiasi versione di Excel o solo con quella installata sul PC con quale e' stata creato l' esequibile ---------------------------------------- AUTORE: 4 DATA :01/03/2006 - 09:12:11 ---------------------------------------- [quote="Michele":2jfsa31b] Domanda: aggiundendo \"_Ecxel Dinamic VIs.vi\" l'esequibile creato funziona con qualisiasi versione di Excel o solo con quella installata sul PC con quale e' stata creato l' esequibile[/quote:2jfsa31b] No il report Toolkit usa delle funzioni activex che si \"attaccano\" alla versione di execl presente sulla macchina su cui gira il tuo codice (eseguibile o meno) Ciao, ---------------------------------------- AUTORE: 238 DATA :01/03/2006 - 10:47:54 ---------------------------------------- Allora bisogna aggiungere come VI dinamico quello corrispondente alla versione Office (del PC su cui va installata l´applicazione) usando come fonte del file \"_Ecxel Dinamic VIs.vi\" il CD di installazione di LabView ; giusto \":?:\" Inoltre ho un dubbio: In “Project explorer” “Installer properties” “Additional installers” va aggiunto “NI LabView Run-Time engine 8.0” ; in questa finestra va specificato “Installer source location” Di default il Path e´ Programmi/National Instruments/ Shared/ProductCache ; pero´ li non si trova Run-Time engine 8.0 \":?:\" Ho riscontrato un problema con l´installer creato con LabView8: L´ applicazione creata viene installata correttamente sul PC del cliente pero´alla fine, quando l´installer elimina i file temporanei la CPU va 100% e l´ installer non viene concluso ! Bisogna interrompere “Setup” con il Task-Manager. Da notare che il programma installato funziona correttamente \":o\" ---------------------------------------- AUTORE: 238 DATA :02/03/2006 - 17:54:08 ---------------------------------------- Mi rispondo da solo (in parte): Nella creazione del installer ho tolto in “Advanced” ; “Install custom error code files?” e da allora l’ installazione dell’ applicazione su un altro PC non da piu’ l’ errore (CPU 100%) Per quel che riguarda Excel2000 e Excel2003 ho provato a installare LabView su un PC con Office2000 e su un altro con Office2003 e ho notato che diverse funzioni (soprattutto “Methods”) non sono identici. Pertanto presumo che l’ applicativo va creato su un PC con la versione Office del cliente !? Problema con Excel2003: Il foglio creato da LabView (con Office2003) corrisponde al area “B” (vedi sotto) dove i numeri con cifra decimale non vengono riconosciuti come numeri. Da notare che le celle nella template del foglio sono definite come numero con virgola per la decimale. (“A” Dati con “convertire in numero”). Qualcuno sa dirmi dove sta’ il problema ? ---------------------------------------- AUTORE: 238 DATA :06/03/2006 - 08:02:40 ---------------------------------------- Continuo il mio soliloquo : Il problema con Ecxel2003 si risolve cambiando il valore “use system decimal point (T)” in false !! ---------------------------------------- ================================================================================ Array ================================================================================ AUTORE: 516 DATA :27/02/2006 - 17:14:12 ---------------------------------------- Ciao a tutti Torno a riscrivere a questo forum per un problema che non so come risolvere . Allora prelevo deu dati da un file txt e li metto all'interno di un'array 2D e fino a qui ok , ora dovrei estrapolare ogni singolo valore all'interno dell' array per moltiplicarlo a una costante e poi mettere il tutto su di un grafico come si fa ? Grazie in anticipo a tutti quanti Sergio ---------------------------------------- AUTORE: 129 DATA :27/02/2006 - 17:34:40 ---------------------------------------- prova a vedere se qualcosa di simile ti può aiutare. ---------------------------------------- AUTORE: 247 DATA :27/02/2006 - 18:06:17 ---------------------------------------- Ciao, ti ho fatto anch'io un'esempio, è un pò diverso da quello di Nicola quindi lo posto anche se Nic. è stato più veloce e ti ha già risposto..sob sob! \":(\" \":(\" BYE. ---------------------------------------- AUTORE: 516 DATA :27/02/2006 - 20:19:59 ---------------------------------------- GRAZIE MILLE A ENTRAMBI. Ciao Sergio ---------------------------------------- AUTORE: 516 DATA :27/02/2006 - 20:29:30 ---------------------------------------- Ciao Ho dato un'occhiata agli esempi , chiedo scusa non mi sono spiegato bene io ho 2 colonne e la colonna 1 va moltiplicata per una costante mentre la colonna 2 per una costante di valore diverso qualche altro suggerimento . ARGH!!!! è da un pò che lavoro conlabview ma gli array non li digerisco propio sapete dove posso trovare degli esempi che mi possono aiutare ? GRAZIE MILLE A TUTTI Sergio ---------------------------------------- AUTORE: 247 DATA :27/02/2006 - 23:35:24 ---------------------------------------- Ciao, modificalo come in figura. BYE. ---------------------------------------- AUTORE: 516 DATA :28/02/2006 - 15:39:44 ---------------------------------------- Ciao Ancora GRAZIE MILLE Sergio ---------------------------------------- AUTORE: 482 DATA :28/02/2006 - 16:07:37 ---------------------------------------- Lo davo per scontato, ma vedendo i vostri esempi forse non lo è... Perchè inserite tutti quei cicli FOR? Un array puo' tranquillamente venir modificato per una costante direttamente dal modulo di moltiplicazione come in figura. ---------------------------------------- AUTORE: 247 DATA :28/02/2006 - 18:04:29 ---------------------------------------- Ciao, !!!Ti sei dimenticato la figura Geppo!!! \":D\" \":D\" cmq si è vero, puoi usare direttamente il moltiplicatore come ho fatto anche io nel primo modo del primo esempio che ho postato però, se usi la costante, questa deve essere della stessa dimensione dell'array e per array a più dimensioni non mi sembrava la scelta giusta per occupazione di memoria etc...poi da alcune White Papers lette mi ricordo che LV digerisce molto volentieri, consentendo ottimizzazioni, i for loop! BYE. ---------------------------------------- AUTORE: 201 DATA :28/02/2006 - 20:13:01 ---------------------------------------- E questo metodo che problema da? [img:3osf82f7]http://img466.imageshack.us/img466/798/ese6gu.jpg[/img:3osf82f7] ---------------------------------------- AUTORE: 247 DATA :28/02/2006 - 23:32:27 ---------------------------------------- Ciao, è la soluzione che proponeva gepponline e non ha nulla che non và, è perfetto per moltiplicare una matrice per un'unico numero. Nel primo esempio mi è sfuggita perchè da beota ho chiesto proprio al moltiplicatore di darmi la costante per la quale moltiplicare la matrice e mi restituiva una matrice dato che gli avevo già attaccato la matrice 2D...\":(\" BYE. ---------------------------------------- AUTORE: 482 DATA :01/03/2006 - 07:39:52 ---------------------------------------- esatto, quella è la soluzione che proponevo io..purtroppo non mi accettava di allegare la figra....e quindi ci ho rinunciato! \":wink:\" ---------------------------------------- ================================================================================ mettere la data corrente sul grafico ================================================================================ AUTORE: 683 DATA :27/02/2006 - 19:27:25 ---------------------------------------- ciao a tutti w buonasera, da dei miei post precedenti ho bisogno di un'aiutino su come graficare dei dati su un chart in tempo reale visualizzando sull'asse X la data e pra correnti del sistema ho dei problemi perchè anche sbirciando sui esempi di LV non sono riusito a modificare per quello che volevo. se metto la data il grafico non mi disegna più e se prendo spunto dall'esempio \"realtimechart\" l'indicazione dell'ora acquisisce la data e l'ora solo all'inizio poi la base dei tempi segue l'andamento del ciclo for nel senso che se lo faccio andare più veloce il tempo scorre più veloce e viceversa come una sorta di \"macchina del tempo\" per favore datemi un aiutino credo che il problem stia nei valori e i campi del property node del chart grazie ---------------------------------------- AUTORE: 838 DATA :28/02/2006 - 16:56:46 ---------------------------------------- la macchina del tempo dovrebbe essere che hai una densità di punti diversa in pratica puoi avere in un secondo 1000 punti o 1 solo, quindi se in ingresso spari 1000 punti con settaggio 1p/sec il graph ti avanza di 1000 secondi devi scorporare il segnale e definire il DT (con 1 se hai 1p/sec, 0,1 se hai 10 punti/sec....) nel built waveform dovrebbe essere quello ---------------------------------------- AUTORE: 683 DATA :09/03/2006 - 08:36:42 ---------------------------------------- grazie per la dritta usando il buildwaveform e mettoendo tutto in un buldarray ho risolto il mio problema capendo anche il perchè prima non funzionava buona giornata e grazie ancora ---------------------------------------- ================================================================================ Chart & offset ================================================================================ AUTORE: 368 DATA :28/02/2006 - 11:33:42 ---------------------------------------- Ciao ragazzi, ho un problema con la sincronizzazione temporale dell'asse x di un chart. Mi spiego: ho un chart che mi deve rappresentare l'andamento di dati nel tempo, ma purtroppo visualizzo un bel ritardo (dovuto principalmente al ritardo di acquisizione) che non riesco a compensare (su un'acquisizione di 10 min visualizzo il grafico fino a circa 6 min). Ho formattato l'asse x con la rappresentazione relative time (00:00:00), ed ho provato ad agire sull'offset, ma per ora con scarsi risultati. Avete suggerimenti.....!?!?!?! \":o\" Grazie ---------------------------------------- AUTORE: 368 DATA :28/02/2006 - 16:58:29 ---------------------------------------- Sto cercendo invano di allegare un VI, ma compare l'errore : Tried to upload empty file \":?\" Bye Bye ---------------------------------------- AUTORE: 278 DATA :28/02/2006 - 18:24:30 ---------------------------------------- Ciao, Che estensione ha il file? Se non vado errando, puoi uploadare solo file con estensione .zip o .vi (se hai un file con estensione diversa zippalo \":wink:\" ) Ciao Dario ---------------------------------------- AUTORE: 368 DATA :01/03/2006 - 08:57:59 ---------------------------------------- Niente da fare....... non riesco ad allegare nè uno .zip, nè un .rar nè un .vi............. \":?:\" ---------------------------------------- AUTORE: 4 DATA :01/03/2006 - 09:57:34 ---------------------------------------- dimensione del file? ---------------------------------------- AUTORE: 368 DATA :01/03/2006 - 11:36:53 ---------------------------------------- Le dimensioni sono ok.... finalmente ce l'ho fatta, ma non ho capito perchè finora non l'allegava \":!:\" Ma torniamo a noi \":D\" ....... allego questo vi per cercare di dare un'idea del problema Ciao a tutti, ma in particolare allo staff di ILVG, che ringrazio e a cui faccio i complimenti per questo meraviglioso sito \":wink:\" ---------------------------------------- AUTORE: 4 DATA :01/03/2006 - 13:54:50 ---------------------------------------- Prova con queste modifiche Ciao, ---------------------------------------- AUTORE: 368 DATA :01/03/2006 - 17:01:01 ---------------------------------------- L'esempio è ok, ma quando acquisisco realmente non va. Si accumulano i ritardi di acquisizione.... domani riproverò grazie tante Ale ---------------------------------------- ================================================================================ DSC 7.1 ================================================================================ AUTORE: 838 DATA :01/03/2006 - 16:34:19 ---------------------------------------- Ho un problema nell'installare il DSC 7.1 L'installazione sembra procedere bene, ma quando lancio labview 7.1 mi dice che non riesce a far partire i servizi relativi al citadel provato a rimuovere tutto, reinstallare tutto, ma non c'è niente da fare ho controllato su un'altro pc (ma ha winxp e qui ho il 2000) ed effettivamente ha dei servizi national in più rispetto a questo CHE FACCIO? MI SPARO?? \":(\" heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelp ---------------------------------------- AUTORE: 129 DATA :02/03/2006 - 21:49:46 ---------------------------------------- Non sono esperto di DSC, ma ho trovato sul forum NI, [url=http://forums.ni.com/ni/board/message?board.id=180&message.id=19773&query.id=51305#M19773:49flv5rc]questa discussione[/url:49flv5rc], chissà che non ti sia di aiuto. Poi mi viene in mente, ma ripeto sono solo ipotesi molto a tentoni...Firewall, che ti bloccano il server Citadel o forse il fatto che la porta che cerca di utilizzare il citadel sia già impegnata. Solo perchè tu non faccia gesti sconsiderati.... \":D\" ---------------------------------------- AUTORE: 838 DATA :03/03/2006 - 07:27:39 ---------------------------------------- il gesto sconsiderato l'ho già fatto!!! ho installato l'8 sulla stessa macchina del 7.1 e da allora il dsc 7.1 non è più andato anche rimuovendo fino all'anima tutto quello che è national su sto pc e reinstallando tutto da zero non va più!!! potevano almeno avvertire quei .... della ni che non potevano convivere ste due versioni sul pc per fortuna che sul portatile mi va ancora e l'8 non glielo installerò MAIIIII ---------------------------------------- ================================================================================ timeout lettura seriale ================================================================================ AUTORE: 1015 DATA :01/03/2006 - 17:03:26 ---------------------------------------- ciao a tutti, ho bisogno di inviare un carattere da un pic a labview per realizzare una sorta di sincronizzazione tra i due. il problema è che mi esce sempre qst errore: VISA: (Hex 0xBFFF0015) Timeout expired before operation completed. ho provato anche ad utilizzare i VI di labview ma niente da fare. qlc ha idea di come posso risolvere? grazie 1000 ---------------------------------------- AUTORE: 129 DATA :01/03/2006 - 20:39:41 ---------------------------------------- Sembra che non riceva il dato. I parametri di inizializzazione sono ok?prova a confrontarli con quelli che ti dà gestione periferiche su windows. Hai provato con port in, leggendo sul pin rx della seriale? Ti allego un esempio ---------------------------------------- AUTORE: 1015 DATA :02/03/2006 - 09:51:05 ---------------------------------------- purtroppo niente di nuovo... i parametri sono settati correttamente... la cosa strana è che ora legge qst carattere: ÿ mentre io gli sto cercando di mandare una 'c'! sai se ÿ è un carattere di errore o qlc del genere? grazie 1000 ---------------------------------------- AUTORE: 1015 DATA :02/03/2006 - 09:52:36 ---------------------------------------- ah...nel frattempo ho provato con hyper terminal e scrive correttamente! ---------------------------------------- AUTORE: 1015 DATA :02/03/2006 - 11:09:55 ---------------------------------------- pare che ho risolto... resta cmq un problema: perchè se invio un carattere oltre ad esso mi escono anche dei caratteri strani tipo quadratini e punti? ---------------------------------------- AUTORE: 247 DATA :02/03/2006 - 11:27:29 ---------------------------------------- Ciao, visualizza il testo che ricevi(carattere + simboli strani) in esadecimale e vai a vedere effettivamente quali byte leggi prima di interpretarli con la codifica a caratteri ASCII; solo in questo modo puoi sapere se ricevi sempre un gruppo predefinito di byte(..probabile..) oppure byte a caso(..molto strano..). Se riconosci alcuni byte controlla, alla luce di questo, tutta la procedura di trasmissione e trova dove vengono inseriti i byte incriminati. A parte questo tieni d'occhio in particolare scrittura e lettura di CR e LF se li utilizzi! BYE. ---------------------------------------- AUTORE: 1015 DATA :02/03/2006 - 11:29:48 ---------------------------------------- ciao apollon, perdona l'ignoranza, ma che sono CR e LF? ---------------------------------------- AUTORE: 645 DATA :02/03/2006 - 11:30:30 ---------------------------------------- Per caso per iniziare la comunicazione devi inviare un carattere esadecimale o una combinazione (tipo Ctrl-b in HyperTerminal)? La stringa che ti torna indietro potrebbe non essere in formato decimale. Se è così devi modificare la rappresentazione dell'indicatore e convertire la stringa. Se invece leggi giusto può darsi che il sistema inserisca nella stringa di risposta qualche carattere (esadecimale o qualcosa del genere) che segnala al pc l'avvio corretto della comunicazione. Se riesci a leggere tutti i dati che ti servono questi in più (quadretti, cerchi, faccine) li puoi eliminare. ---------------------------------------- AUTORE: 645 DATA :02/03/2006 - 11:34:06 ---------------------------------------- Non avevo letto il post di Apollon... ma l'idea è la stessa! Eh Eh Eh... ---------------------------------------- AUTORE: 247 DATA :02/03/2006 - 11:42:32 ---------------------------------------- Ciao, CR = \"carriage return\" = \"ritorno del carrello\" LF = \"line feed\" = aggiunta di una riga\" ..praticamente sono i due caratteri non visualizzati che inserisci quando schiacci Return/Invio al termine di una riga di testo nei sistemi windows per andare a capo. Se quindi provi a scrivere in un file la lettera \"A\" e premere Invio, in realtà hai inserito nel file la successione di caratteri A+CR+LF ovvero tre caratteri perchè CR e LF sono rappresentati da un solo byte e quindi per la codifica ASCII(cercala in rete è indispensabile per il lavoro che stai facendo) da un solo carattere. Li puoi visualizzare scegliendo la rappresentazione esadecimale della stringa. Il nome un pò strano deriva dal linguaggio stile macchina da scrivere. BYE. P.S. Se non conosci il significato di CR e LF cmq ricontrolla i parametri che utilizzi per la comunicazione seriale, in particolare se usi un termination char o simile. ---------------------------------------- ================================================================================ Problema indicatori ================================================================================ AUTORE: 866 DATA :02/03/2006 - 08:14:15 ---------------------------------------- Ciao a tutti, volevo sapere se è qualcuno conosce il modo per creare indicatori luminosi a forma di FRECCIA o, eventualmente, modificando quelli esistenti. Grazie a tutti..... Byebye ---------------------------------------- AUTORE: 838 DATA :02/03/2006 - 08:40:54 ---------------------------------------- io me li sono creati a mano customizzando un pulsante booleano ci sono un sacco di metodi, anche utilizzando le picture ring ---------------------------------------- AUTORE: 838 DATA :02/03/2006 - 08:45:25 ---------------------------------------- eccoti un'esempio che ho usato qualche anno fa partendo da un pulsante bool ho modificato incollandoci l'immagine della freccia sopra al pulsante perchè mi serviva come pulsante e non come indicatore penso che a oggi se ti serve solo da indicazione è meglio usare le picture ring ---------------------------------------- ================================================================================ Creare un eseguibile ================================================================================ AUTORE: 1067 DATA :02/03/2006 - 13:36:16 ---------------------------------------- Ciao, sto provando a creare un eseguibile di un VI che quando è in esecuzione se un controllo assume un certo valore chiama un altro VI e viene visualizzato il pannello di controllo di quest'ultimo. Creo l'eseguibile attraverso Tools->Build Application; quando mando in esecuzione l'eseguibile non viene mai visualizzato il front panel del VI chiamato dal VI principale. Che cosa devo fare? Grazie \":D\" ---------------------------------------- AUTORE: 129 DATA :02/03/2006 - 15:21:21 ---------------------------------------- Presumendo tu abbia utilizzato la tecnica VISERVER, devi salvare i VI che cerchi di chiamare dinamicamente come vi dinamici appunto. ---------------------------------------- AUTORE: 838 DATA :02/03/2006 - 16:09:45 ---------------------------------------- se nel builder non includi i vi dinamici dovrebbe dare errore almeno a me in esecuzione dice che manca il vi richiamato dinamicamente prova un pò a vedere quelle impostazioni nel builder ---------------------------------------- AUTORE: 1050 DATA :02/03/2006 - 16:37:32 ---------------------------------------- Se il tuo sub-VI non è richiamato \"dinamicamente\" ma è semplicemente incluso dal tuo main VI allora l'application builder automaticamente rimuove il front panel: puoi modificare questa opzione nel tab \"VI Setting\". Sperando di aver interpretato bene il tuo problema. Saluti PS: dai uno sguardo al link NI:http://www.ni.com/support/labview/toolkits/appbuild/lv51ab.htm ---------------------------------------- ================================================================================ Cancellare il database Citadel senza fermare il tag-engine ================================================================================ AUTORE: 1120 DATA :03/03/2006 - 13:14:39 ---------------------------------------- Ciao a tutti! Sto usando LabVIEW 7.1 e modulo DSC per sviluppare un'applicazione SCADA. Vorrei archiviare periodicamente il database Citadel su un PC remoto (SERVICE) e cancellarlo sul PC originale (MAIN) per liberare spazio sull'HD. Ho provato in questi modi: 1. cancellando tutti i files nella dir del database con la funzione \"delete.vi\" di LabVIEW 2. cancellando o \"scollegando\" il database con \"detach database.vi\" o \"delete database.vi\" del DSC 3. archiviando le tracce con l'opzione \"destructive archive\" abilitata con \"archive traces.vi\" 4. cambiando il file scf corrente per poter liberamente cancellare o scollegare il database legato al vecchio scf. In ogni caso devo fermare il tag-engine perchè funzioni e ciò significa fermare la mia applicazione e riavviarla manualmente (Compare un messaggio che dice qualcosa del tipo \"To stop the tag-engine the following VIs need to be aborted...\"). Vorrei sapere se c'è un modo per cancellare il database senza fermare il tag-engine o per \"congelare\" l'esecuzione della mia applicazione mentre lo fermo e poi \"scongelarla\" quando l'engine sta girando di nuovo, senza chiudere la mia applicazione e doverla riavviare manualmente, intendo. Ho provato a farlo (in ogni VI) racchiudendo in una struttura case tutte le operazioni (read/write tag, alarm/event queries e così via) che richiedono accesso all'engine o al database; ho poi collegato una variabile globale (CONNECTED) al selettore del case. Quando devo stoppare l'engine impongo CONNECTED=false, nessuna operazione viene richiesta all'engine e posso fermarlo liberamente. Così funziona, ma solo per un VI o due per volta, mentre fallisce quando faccio girare l'applicazione completa (un VI principale che lancia l'engine e gli altri VIs, un VI usato come navigation-bar fra i pannelli, un'altro come alarm-ack bar e diversi pannelli che mostrano lo stato delle diverse sezioni dell'impianto da monitorare). Qualcuno è in grado di darmi una mano a risolvere il problema? Grazie fin d'ora! ---------------------------------------- AUTORE: 838 DATA :03/03/2006 - 13:36:42 ---------------------------------------- strano che ti va solo con alcuni vi, hai provato a mettere dei tempi morti di attesa di qualche secondo? il tuo ragionamento dovrebbe funzionare però mi chiedo una cosa: ho sempre riscontrato che quando si ha l'applicazione aperta i file dentro a data vengono cque tenuti aperti da windows, e a volte per cancellarli ho sempre chiuso tutto per forza però non ho mai avuto sta necessità quindi è tutto da sperimentare ---------------------------------------- AUTORE: 1120 DATA :03/03/2006 - 14:22:35 ---------------------------------------- I loop di refresh dei pannelli con i segnali provenienti dall'impianto sono temporizzati a 500 ms e ho verificato che tale tempistica viene rispettata anche quando tutti i pannelli girano contemporaneamente. Ho provato per sicurezza a mettere 2 minuti di attesa prima di stoppare l'engine! ma anche così non funziona. Mentre lanciando i singoli VI con CONNECTED=false posso fermarlo tranquillamente. Sto cercando di capire se possa essere dovuto a qualche variabile globale che utilizzo... o a qualche altro legame fra il VI principale e gli altri. Grazie dell'interessamento! ---------------------------------------- AUTORE: 838 DATA :03/03/2006 - 16:31:00 ---------------------------------------- hai utilizzato l'engine status? mettilo in ciclo while loopato finchè l'engine è realmente fermo, dare solo lo stop non è suff penso che lo devi utilizzare un pò dappertutto, lo stesso vale per sapere se l'engine è realmente ripartito prima di procedere con il programma (e quindi dare lo start engine non è suff) ciao ---------------------------------------- ================================================================================ Caricamento Labview ================================================================================ AUTORE: 1078 DATA :03/03/2006 - 14:36:29 ---------------------------------------- Ciao a tutti, Ho un piccolo probelma: il Getting Started di Labview 8 impiega diversi secondi per caricarsi in memoria una volta richiamato. Questo probelma è stato discusso anche al NI Day del 23 Febbraio durante la presentazione dei sistemi RT. Navigando nel forum del sito ufficiale NI ho trovato alcune indicazioni date da persone che hanno avuto a loro dire lo stesso problema ma, seguendo le loro istruzioni non l'ho risolto. Qualcuno di voi è riuscito a capire come mai il caricamento del Gatting Started è così lungo (la versione ufficiale dice che è per la ricerca dei server di licenza, ma a me anche disconnettendo il cavo di rete le tempistiche di caricamento sono lunghe)? Qualcuno sa come risolvere il problema? Grazie Ricky. ---------------------------------------- AUTORE: 4 DATA :21/03/2006 - 11:34:56 ---------------------------------------- Credo che dipenda solo dal fatto che ad ogni release LabVIEW diventa sempre più "pesante". Magari puoi evitare, se il tuo progetto lo consente, di attivare i server TCP e Active X... Ciao, ---------------------------------------- ================================================================================ Labview e fotocamera ================================================================================ AUTORE: 1121 DATA :03/03/2006 - 14:41:02 ---------------------------------------- Salve a tutti! Utilizzo Labview da circa un' annetto dal momento in cui cioè ho iniziato la tesi. Ora lo utilizzo per lavoro ma sempre per la stessa applicazione: convertitori dc-dc. Mi era venuto lo sfizio di creare un programmino per comunicare con la fotocamera digitale collegata ad una porta usb. Qualc1 mi sa dire se c'è la possibilità di fare ciò? \":?:\" Grazie!! \":D\" ---------------------------------------- AUTORE: 278 DATA :03/03/2006 - 15:03:23 ---------------------------------------- Ciao, per esperienza, ti posso dire che funzionano abbastanza bene le webcam USB, la NI (addirittura) mette a disposizione dei driver generici per Webcam (compatibili con il le funzioni di IMAQ) direttamente dal suo sito a questo link http://sine.ni.com/apps/we/niepd_web_di ... 0020E74861 Purtroppo, non ho al minima idea se con questi driver sia possibile utilizzare anche le macchine fotografiche digitali. Io sono scettico per natura, se vuoi proseguire su questa strada temo che tu debba scriverti da solo tutti i driver del caso, o peggio, partire dai blocchetti VISA per creare il canale di comunicazione USB. Facci sapere eventuali sviluppi!!!!! ---------------------------------------- AUTORE: 645 DATA :17/05/2007 - 10:59:41 ---------------------------------------- Torno a scrivere in questo vecchio post... Vorrei far comunicare la fotocamera USB con LabView: è possibile passando attraverso i blocchi VISA? In questo momento non riesco: ho cercato un approccio tipo comunicazione seriale ma non funziona... ---------------------------------------- ================================================================================ Accesso concorrente ad un file ================================================================================ AUTORE: 724 DATA :03/03/2006 - 16:17:28 ---------------------------------------- Ho creato un byte stream file con una struttura a record. Non ho usato un database dato che la mole di dati non lo richiedeva. Le specifiche dell'applicazione sono cresciute e devo adesso gestire modifiche concorrenti sul file da parte di più PC collegati in rete. Esiste un modo per tenere bloccato un record che uno dei PC sta visionando e modificando senza appoggiarsi ad una struttura database vera e propria? Attendo speranzoso, Ciao. Ghianda ---------------------------------------- AUTORE: 4 DATA :03/03/2006 - 16:25:07 ---------------------------------------- Puoi provare con questa funzione File >> Advanced >> Lock Range [quote:2kqaqucl]Locks or unlocks a range of a file specified by refnum. Details [/quote:2kqaqucl] Ciao, ---------------------------------------- AUTORE: 838 DATA :03/03/2006 - 16:27:23 ---------------------------------------- la cosa più semplice è usare un'altro file da semaforo, se c'è allora il file è protetto, se non c'è vai tranquillo dopo bidogna vedere bene che cosa ti serve, come ti serve e che applicazioni hai... ---------------------------------------- ================================================================================ Comportamento del ciclo FOR ================================================================================ AUTORE: 1108 DATA :05/03/2006 - 10:33:01 ---------------------------------------- Ciao a tutti \":lol:\" Sono agli inizi con labview, ed ho un piccolo problema con un ciclo WHILE che racchiude un ciclo FOR; il while viene arrestato correttamente mediante uno switch booleano, ma il ciclo for al suo interno continua indefinitamente la sua esecuzione, da 0 a N-1, e viene ripetuto anche se viene a mancare la condizione di ripetizione del ciclo stesso. Ho risolto passando al valore N del ciclo for il prodotto fra valore N originale e il valore booleano (convertito in decimale) che controlla il while, naturalmente così facendo il for si arresta quando deve, ma mi sembra una soluzione un pò \"grezza\", anche se funzionante. Forse il ciclo for in labview viene ripetuto sempre, anche se si arresta il loop che lo contiene? Thanks in advance \":wink:\" Sundance ---------------------------------------- AUTORE: 129 DATA :05/03/2006 - 10:51:54 ---------------------------------------- Ciao un ciclo FOr all'interno di un while deve avere questa struttura(allegato in LV7.1). Forse hai messo il boolean all'interno del FOr o qualcosa di anomalo, prova a vedere se l'esempio ti dà una mano. Benvenuto in ILVG. ---------------------------------------- AUTORE: 1108 DATA :05/03/2006 - 11:26:04 ---------------------------------------- [quote="nicola":ilmb28uf]Ciao un ciclo FOr all'interno di un while deve avere questa struttura(allegato in LV7.1). Forse hai messo il boolean all'interno del FOr o qualcosa di anomalo, prova a vedere se l'esempio ti dà una mano. Benvenuto in ILVG.[/quote:ilmb28uf] Ciao, anzitutto grazie per il benvenuto in questa comunità \":D\" Ho fatto girare il tuo esempio, e il comportamento è esattamente quello del mio vi, ovvero il for NON si arresta anche premendo il tasto \"STOP\" (la visualizzazione del numero random continua tranquillamente). Fra l'altro, la struttura proposta è identica a quella che uso nel mio vi. Da qui, ho pensato che il problema potesse risiedere nella modalità di esecuzione del vi: ebbene, se mando in esecuzione il tuo vi in modalità \"single run\", effettivamente premendo stop l'esecuzione si arresta, mentre se uso il run continuo no. A questo punto, però non mi è chiara una cosa: quando seleziono il \"run continuosly\" e imposto false la condizione del ciclo while, perchè viene eseguito il ciclo for? Il while non controlla all'inizio lo status della variabile di controllo? Se è così, trovandola false il vi dovrebbe rimanere bloccato... Grazie cmq. della risposta \":)\" Sundance ---------------------------------------- AUTORE: 680 DATA :05/03/2006 - 12:03:25 ---------------------------------------- Il run continuously, secondo me è una madalità di esecuzione che ni offre per fare debug. La tua applicazione, quindi in modalità run continuously, viene eseguita continuamente anche se in funzionamento single run si fermerebbe per effetto per esempio del pulsante di stop che ferma l'esecuzione del ciclo while. ciao....... ---------------------------------------- AUTORE: 680 DATA :05/03/2006 - 12:06:38 ---------------------------------------- Il run continuously potrebbe essere equivalente ad un qualcosa del genere (vedi allegato). ciao...... ---------------------------------------- AUTORE: 129 DATA :05/03/2006 - 23:03:44 ---------------------------------------- Il malfunzionamento ti confermo è dovuto all'esecuzione, il run continuosly esegue iterazioni continue e alla massima velocità di CPU, quindi più che usarlo per pochi istanti per fare un debug sarebbe meglio non usarlo. Come vedi negli esempi, utilizzando una struttura FOR o WHile puoi usare un temporizzatore per limitare l'uso di CPU e per meglio bilanciare la tua applicazione. ---------------------------------------- AUTORE: 1165 DATA :08/04/2006 - 11:40:47 ---------------------------------------- Un po' tardiva ma ecco anche la mia risposta: Come giustamente ti è stato detto tutti fin qui il "Run Continuously" è indice di cattiva programmazione e al massimo è saltuariamente utile per qualche debug particolare; tutto ciò che si fa con il RC può essere anche fatto senza, cioè con il Run normale. Ma a prescindere da questo io credo che il tuo problema sia un altro, come hai osservato anche tu stesso. Devi chiarirti quale è la logica delle esecuzioni del codice G, che è il linguaggio formale che governa il Labview. Questo linguaggio è di fatto un grafo orientato composto da nodi (Funzioni, SubVI e quant'altro) e da rami orientati (i fili). A questa visione si aggiungono le strutture, che sono sottoparti di grafo ben delimitate e governate secondo logiche specifiche, come i cicli (While e For) e il Case. La regola fondamentale che governa la esecuzione dei vari nodi funzionali del grafo è che un nodo non esegue finchè non siano tutti completamente disponibili i sui dati in ingresso e, una volta iniziato, non cessa di eseguire finchè non abbia completamente calcolato tutti i suoi dati in uscita. In questa ottica anche le strutture sono considerabili dei nodi (dei sovranodi se vuoi), che rispondono in pieno alla predetta regola. Se a tutto ciò aggiungi che il ciclo While testa la condizione di iterazione solo all'uscita dal ciclo (cioè esegue sempre almeno una volta), hai ora la risposta al comportamento del tuo VI. Il ciclo For che hai immerso nel While è di fatto un nodo e una volta partito esegue fino all'esaurimento del suo compito (cioè girare N volte), e questo per tutte le M volte che viene chiamato dal While. Quindi il codice all'interno del For viene eseguito NxM volte. Se ora programmaticamente o manualmente fermi il While tramite la condizione di uscita, questo significa che alla fine del M-esimo giro del While esso terminerà, ma prima deve far finire di eseguire tutto il codice al suo interno, compresa la M-esima chiamata al For, che di suo deve eseguire N volte prima di terminare. Questo sempre che tu non termini il tutto con una forzatura (Abort Execution"), che però è sempre bene evitare. Spero di aver compreso correttamente quali erano i tuoi dubbi. Ciao, Enrico. ---------------------------------------- ================================================================================ labview 8 e traparenze ================================================================================ AUTORE: 201 DATA :06/03/2006 - 12:11:50 ---------------------------------------- Ho vistu che nelle Vi properties c'è la possibilità di rendere il front panel trasparente, c'è modo di rendere solo lo sfondo ma non gli oggetti che vi sono sopra? ---------------------------------------- AUTORE: 838 DATA :06/03/2006 - 16:37:45 ---------------------------------------- esiste già un topic che spiega come gestire finestre trasparenti ci sono anche degli esempi da scaricare prova a cercare meglio nello storico del forum \":D\" ---------------------------------------- AUTORE: 278 DATA :06/03/2006 - 19:39:06 ---------------------------------------- Ciao, Guarda questo link, viewtopic.php?t=988&highlight=trasparente dovrebbe fare al caso tuo... Ciao Ciao ---------------------------------------- AUTORE: 201 DATA :06/03/2006 - 21:32:23 ---------------------------------------- A quel 3d Ale914 non mi ha mai risposto per spiegarmi come aveva fatto, e n emmeno ai pm. E io ovviamente non ho capito il meccanismo... ---------------------------------------- AUTORE: 278 DATA :06/03/2006 - 22:56:45 ---------------------------------------- Ciao, Spiegare come sia fatto non credo sia semplice... in sostanza questi vi si appoggiano ad una libreria (TransparentWin.dll) che permette di impostare un avalore di \"trasparenza\" compreso tra 0 e 255. Nell`esempio MakeWinTrasparent.vi si possono settare come trasparenti delle finestre di windows, semplicemente inserendo il loro nome al posto del \"Context Help\" di default. Non funziona invece con i front panel dei vi. Il \"Fumetto Trasparente\" invece utilizza la libreria USER32.DLL per rendere trasparente il front panel del vi a forma di fumetto. Il mio consiglio e' quello di non preoccuparsi tanto del \"come\" si fa ad avere una finestra trasparente, ma piuttosto di utilizzare queste piccole funzioni \"cosi` come sono\", modificandole adattandole alla tua applicazione. ---------------------------------------- AUTORE: 201 DATA :07/03/2006 - 12:39:02 ---------------------------------------- ok ti ringrazio ---------------------------------------- AUTORE: 1161 DATA :20/03/2006 - 20:34:06 ---------------------------------------- congratulazioni è una bella idea......!!!!!! ---------------------------------------- ================================================================================ LabView e Linux ================================================================================ AUTORE: 1078 DATA :06/03/2006 - 13:30:58 ---------------------------------------- Ciao a tutti, Sapete se creando un'applicazione con Labview per Windows, dopo la sua compilazione con App. Builder, sia possibile farla girare sotto LINUX? Grazie Ricky. ---------------------------------------- AUTORE: 4 DATA :06/03/2006 - 13:34:52 ---------------------------------------- Ciao, direi che è impossibile a meno che non installi un emulatore WIN sulla macchina LINUX. Il codice sorgente inece è portabile. Ciao, ---------------------------------------- AUTORE: 1078 DATA :07/03/2006 - 07:19:31 ---------------------------------------- Grazie dell'informazione. ---------------------------------------- ================================================================================ Gestire una periferica USB ================================================================================ AUTORE: 645 DATA :06/03/2006 - 18:19:16 ---------------------------------------- Ciao a tutti! Navigando nel forum ho letto alcuni post sulla gestione della porta USB da parte di LabView e mi pare che ci siano tante proposte, molti dubbi e poche risposte. Così ho voluto provare anche io ad interfacciarmi con la porta USB e... non ho capito un cavolo! Ho letto sul sito della National che con VISA 3.x è possibile creare i driver per gestire gli strumenti esterni collegati via USB (per esempio le schede di acquisizione National). Vorrei proporre una cosina: se anzichè comunicare con una scheda di acquisizione io volessi semplicemente salvare i dati su una chiavetta USB come posso procedere? Credo che si debba lavorare tramite VISA ma nella selezione della porta non c'è la possibilità di selezionare la porta USB. E ho paura di creare il driver con VISA perchè non vorrei che poi la mia chiavetta non venisse più letta da Windows (in pratica si tratta di creare un file .nfo che Windows utilizzerà per comunicare con la periferica in questione. Per una scheda di acquisizione National posso capire ma per una chiavetta o una periferica qualsiasi collegata alla porta USB mi fa paura). Credo che una volta capito il meccanismo si possa riutilizzare per interfacciarsi con tutti gli strumenti. Io uso LabView 7.1. Mi sembra di aver visto che in LabView 8 è stata implementata una gestione automatica della porta USB o qualcosa di simile: ho guardato la demo ma non ci ho mai lavorato. ---------------------------------------- AUTORE: 1078 DATA :07/03/2006 - 07:17:10 ---------------------------------------- Ciao, Premetto che non mi è mai capitato di dover lavorare con la porta USB, ma per salvare i file su un chiavetta USB dovrebbe essere sufficiente passare a labView il percorso della chiavetta in questione. Windows vede le chiavette UB comedegli HD installati sulla macchina, il che ti permette di lavorarci come tali. Ciao Ricky ---------------------------------------- AUTORE: 645 DATA :08/03/2006 - 15:30:04 ---------------------------------------- Beh, effettivamente per salvare i dati sulla chiavetta dovrebbe essere sufficiente passare a LabView il riferimento ad un file (di salvataggio) residente sulla chiavetta. Ma quello che mi chiedevo io è se non c'è modo di passare come riferimento VISA la periferica USB: così come passo ASRL::INSTR o COM passare USB. ---------------------------------------- AUTORE: 278 DATA :08/03/2006 - 18:15:58 ---------------------------------------- Ciao, [quote:2ip777gj]Mi sembra di aver visto che in LabView 8 è stata implementata una gestione automatica della porta USB o qualcosa di simile: ho guardato la demo ma non ci ho mai lavorato.[/quote:2ip777gj] Al lavoro ho installato la versione 8 di LV, sebbene continui a lavorare con al 7.1 (squadra vincente non si cambia \":wink:\" ) ma dei blocchi per comunicare direttamente con USB non ho trovato traccia... Anche tramite l`Example finder non ho trovato nulla. \":cry:\" \":cry:\" Che sia una bufala? Potresti gentilmente fornire qualche dettaglio su dove hai visto la presentazione o la demo? Sono molto interessato a questo aspetto... Io effettivamente utilizzo la porta USB per comunicare con delle webcam, ma tramite un add-on gratuito fornito da NI, specifico per le Webcam USB. Dato che queste funzioni sono generiche, in alcuni casi ho incontrato dei problemi con alcune Webcam, mi piacerebbe poter scrivere dei driver ad hoc quando i driver generici NI non funzionano a dovere. \":cry:\" ---------------------------------------- AUTORE: 645 DATA :09/03/2006 - 08:07:13 ---------------------------------------- Dunque, al momento non ho installato LabView 8 perchè i 30 giorni sono passati ma appena riesco la installo nuovamente per dare un'occhiata. Però mi ricordo che sulla barra delle applicazioni di Windows, vicino all'orologio, appariva l'icona della National e passandoci sopra con il mouse sembrava essere qualcosa legato al mondo USB. Provo a installare e ti faccio sapere! ---------------------------------------- AUTORE: 645 DATA :09/03/2006 - 10:35:08 ---------------------------------------- Dubbio: forse non era in LabView 8 la funzione di controllo della USB ma nelle DAQ 8. ---------------------------------------- AUTORE: 645 DATA :09/03/2006 - 12:02:00 ---------------------------------------- Eh sì, sul sito della National si legge \"NI-DAQmx Device Monitor\" per USB nella pagina delle DAQ-mx (http://digital.ni.com/softlib.nsf/webse ... 8900712CBC). Quindi per vedere l'aquilotto (già che ci siamo, il simbolo della National è un aquilotto?) vicino all'orologio di Windows bisogna installare le DAQ 8. ---------------------------------------- AUTORE: 838 DATA :10/03/2006 - 08:46:41 ---------------------------------------- confermo le daqmx 8 gestiscono le usb e si installa un servizio che quando pluggy una periferica usb puoi associarci un vi che parta in automatico, o che apre il max o che apre il test della periferica ho appena usato l'usb-6009 e devo dire che è un bell'aggeggino \":D\" ---------------------------------------- AUTORE: 838 DATA :10/03/2006 - 08:48:29 ---------------------------------------- PS: installando le daqmx 8.0 aggiorna il max a 4.0 fate un backup di sicurezza prima di farlo, su 2 pc uno mi si è sballinato tutto!!!! per fortuna che sul portatile mi si è isntallato senza problemi ---------------------------------------- AUTORE: 278 DATA :10/03/2006 - 10:16:25 ---------------------------------------- Ciao, [quote:2knfjbtz]le daqmx 8 gestiscono le usb [/quote:2knfjbtz] vero, ma solo se sono prodotti NI!!! Difatti, schede di acquisizione USB della NI vanno che è un piacere, ma se per esempio volessi collegare alla porta usb una Webcam? oppure una macchina fotografica digitale? O anche un semplice mouse USB? Non credo che LV metta a disposizione driver USB (o cmq VI di uso generico) in tal senso (eccezione fatta per le webcam USB)... ---------------------------------------- AUTORE: 838 DATA :10/03/2006 - 14:00:33 ---------------------------------------- intendevo prodotti NI come l'USB-6009 che ho citato altre periferiche usb non ne ho mai usate scusate \":oops:\" ---------------------------------------- AUTORE: 645 DATA :10/03/2006 - 14:25:05 ---------------------------------------- Aggiungo una considerazione che forse non ha dato problemi o dubbi a nessuno... ma non si sa mai! Se dovete controllare uno strumento seriale ma non avete la porta seriale sul pc potete sfruttare i convertitori USB-Seriale. Se, come è capitato a me, ne usate uno non National non ci sono problemi: nel momento in cui collegate l'adattatore alla porta USB del pc Windows inserisce una nuova COM tra le periferiche. Poi si può lavorare come con qualsiasi altra COM richiamandola direttamente dal \"VISA resource name\" (io non ho incontrato problemi dovuti ad negoziazione dei dati e cose del genere perchè l'adattatore si regolava in modo automatico). Per quanto riguarda la comunicazione con uno strumento (generico) collegato alla porta USB il problema resta l'intervento di Windows: nel momento in cui Windows seleziona un driver la periferca USB non viene visualizzata come COM (mi piacerebbe riuscire a fare questo!!!) ma come \"Controller USB\" e non può essere richiamata con il \"VISA resource name\" (a meno di creare il driver apposta con \"VISA driver development wizard\" come riportato sul sito della National). ---------------------------------------- AUTORE: 645 DATA :10/03/2006 - 14:56:57 ---------------------------------------- Spero di non entrare nei meandri della fantascienza... Se collego un adattatore USB-Seriale il pc lo vede come una nuova COM. Se collego una chiavetta USB il pc la vede come un \"Controller USB\". Non c'è il modo di far vedere la chiavetta come una COM ? ---------------------------------------- AUTORE: 645 DATA :10/03/2006 - 16:20:42 ---------------------------------------- Questa ricerca sta diventando interessante! Sembra che per sfruttare la porta USB come una COM sia necessario creare una \"Porta seriale virtuale\". Dopo questa operazione la porta USB può essere comandata come una porta seriale. E posso confermarvi che questa cosa funziona: in un altro post parlavo delle chievette USB-Bluetooth per collegare due pc; queste chievette possono gestire una porta seriale virtuale. Io ho fatto un vi dove invio dati da un pc all'altro tramite Bluetooth come se fossero collegati con il cavo seriale (proprio gli stessi comandi). Resta un problema: esiste qualcosa che permette di generare una porta seriale virtuale e associarla con una porta USB? Nel caso delle chiavette Bluetooth (e di altri prodotti che ho trovato in rete) i software di installazione permettono questa funzione. Ma, ovviamente, sono dedicati. Secondo voi si trova qualcosa di generico? ---------------------------------------- AUTORE: 645 DATA :15/03/2006 - 16:19:14 ---------------------------------------- Sono giunto ad una conclusione: per lavorare con la USB come se fosse una porta seriale \"normale\" è necessario creare una porta seriale virtuale. Credo sia possibile farlo solo per gli apparecchi che tra i propri software forniscono un programma per questo servizio. Mi rimetto alle vostre conoscenze di C e driver: io non sono molto ferrato in questo tipo di codice... Qualcuno sa se è possibile creare una porta seriale virtuale per una periferica USB qualsiasi? (non vorrei andare contro gli standard National ma riuscire a dialogare con una periferica USB qualsiasi usando i blocchi VISA potrebbe essere interessante). ---------------------------------------- AUTORE: 278 DATA :15/03/2006 - 18:12:05 ---------------------------------------- Ciao, [quote:4krq1c0a]Sono giunto ad una conclusione: per lavorare con la USB come se fosse una porta seriale \"normale\" è necessario creare una porta seriale virtuale[/quote:4krq1c0a] effettivamente, questo sembra essere l`unico modo per comandare la porta USB in LV. Temo pero` che sia piu` complicato di quello che sembra. Come da te riportato, driver di questo tipo esistono, ma sono dedicati alla periferica collegata e realizzati da chi ti vende tale periferica, quindi immagino che siano strettamente legati al prodotto che devono far funzionare. Credo che sia possibile costrursi dei driver generici per porte USB, ma a tal riguardo sono un po` spiazzato in LV, non saprei da che parte cominciare \":oops:\" \":oops:\" Immagino che con linguaggi di basso livello (C e simili) sia possibile realizzare delle dll che fungano da driver USB, ma, come gia` detto, non saprei come. ---------------------------------------- ================================================================================ cambiamento tempo ciclo loop ================================================================================ AUTORE: 683 DATA :07/03/2006 - 13:42:34 ---------------------------------------- cia a tutti, avrei bisogno si qualche suggerimento: ho un ciclo while che gestisce l'acquisizione di temperature mediante field point il mio problema visto che in certi momenti il capionamento deve essere molto lento (alcune decine di minuti) mentre in altri molto più breve (nell'ordine del minuto) come si fa a cambiare il tempo di attesa in maniera veloce? In giro per il forum ho visto qualcosa sullo stop del ciclo con le occurrence è la strada giusta?? Grazie mille a presto ---------------------------------------- AUTORE: 838 DATA :07/03/2006 - 16:21:22 ---------------------------------------- per me no basta avere il ciclo while di sola acquisizione gestito con il metronomo (lo trovi di fianco alla funzione wait) mentre con un'altro ciclo gestisci l'applicazione, quello lo puoi lasciare sui 200 msec gli passi un valore, in base a quello che ti serve, in millesecondi è importante temporizzare i cicli while, altrimenti risucchiano tutte le risorse inutilmente ---------------------------------------- AUTORE: 683 DATA :07/03/2006 - 17:05:18 ---------------------------------------- mi sa che mi sono spiefato male, il mio problema è cambiare in quando il vi è in running il tempo di acuisizione per visualizzare e/o salvare i dati acquisiti più velocemente o meno. Il nocciolo della questione è che se io per tutta la notte faccio acquisire 1 dato ogni ora e poi di giorno quando lavoro sul macchinario mi serve un tempo dia acquisizione più veloce e se vado ne vi che sta funzionando e imposto ad esempio 1 secondo come intervallo evo aspettare 1 ora prima che i dati vengano visualizzati velocemente. il problemna pernso che sia simile all'arresto rapido del cicli (vedi topic \"arresto rapido\") grazie della risp ciao ---------------------------------------- AUTORE: 645 DATA :07/03/2006 - 17:51:58 ---------------------------------------- Se inserisci nel ciclo While un blocco di attesa (di colore azzurro, con la clessidra, sembra un express) puoi passare un valore in secondi a questo blocco e condizionare il ciclo. Poi sul front panel metti un controllo e quando ti serve modificare il tempo di scansione modifichi il valore. Però molto probabilmente servirà una gestione degli eventi per far sì che la modifica sia immediata. ---------------------------------------- AUTORE: 278 DATA :07/03/2006 - 18:26:46 ---------------------------------------- Ciao a tutti, Spero di aver correttamente interpretato il problema.... Al variare del valore del tempo di ciclo devo poter essere in grado di cambiare immediatamente quest`ultimo asegnandogli il nuovo valore temporale. Ho utilizzato una struttura ad eventi, in cui il tempo di ciclo e' dettato dal valore collegato al terminale di timeout della Event structure. Passato questo tempo eseguo un`aggiornamento del valore \"I\" del loop. Al variare del terminale \"ms timeout\" entro in un evento collegato a questo controllo, leggo il nuovo valore di ciclo ed esco immediatamente. Il valore viene passato all`iterazione successiva tramite uno shift register. il quale, portando immediatamente il dato, mi permette sin da subito di modificare il tempo di timeout. Semplice no? \":D\" \":D\" \":D\" ---------------------------------------- AUTORE: 683 DATA :07/03/2006 - 20:46:04 ---------------------------------------- cappppppeeeerrrriiiii, era proprio quello che volevo, purtroppo non mi sono mai \"avvicinato\" per mancata necessità e/o pigrizia alle event structure. La tua soluzione è ottima complimenti per la pensata!! cercherò di informarmi e combinare qualcosa con le event structure grazie ancora ottimo forum ottimi moderatori!! ---------------------------------------- AUTORE: 645 DATA :08/03/2006 - 13:56:05 ---------------------------------------- Bello! E può tornare utile in vari casi. ---------------------------------------- ================================================================================ Loop Timer & Wait su FPGA: scegliere ticks o usec? ================================================================================ AUTORE: 1121 DATA :08/03/2006 - 17:30:11 ---------------------------------------- Salve a tutti! Sto cercando di sviluppare un'applicazione da eseguire su una scheda NI dotata di FPGA (che ancora non mi è arrivata), in particolare vorrei far eseguire due o più cicli while con tempistiche differenti. Ho approntanto una prima bozza sceglendo come \"Configuration Unit\" dei cicli while e delle sequenze i usec: facendo girare il programma sul mio notebook non dotato della FPGA sembra che le tempistiche vengano rispettate. Impostando invece in \"Configuration Unit\" il ticks e... i tempi non vengono rispettati. Mi sapete dire se è un problema che dipende dal pc? Sulla FPGA, dato che c'è un clock dedicato, riuscirò a far rispettare i tempi? Grazie per le eventuali risposte.Aiutatemi!!! ---------------------------------------- AUTORE: 4 DATA :21/03/2006 - 11:30:17 ---------------------------------------- L'FPGA ha un suo generatore di clock che genera dei tick ad una certa frequenza. Questa dipende dalla complessità del firmware che dovrà girare sull'FPGA stessa e ti viene indicata dal compilatore al termine della compilazione da LabVIEW a VHDL. I tick quindi dipendono dalla complessità del FW, mentre il tempo in usec è una costante (almeno sulla terra!) Se devi fare un codice che giri sempre ad una certa velocità ti consiglio usec se vuoi un codice che giri più velocemente possibile scegli tick. PS su PC non può ovviamente funzionare con i tick ma nemmeno coi usec, con windows l'unità minima è la "manciate" di ms \":wink:\" Ciao, ---------------------------------------- AUTORE: 235 DATA :21/03/2006 - 16:34:18 ---------------------------------------- Solo un precisazione (importante): nella FPGA un tick corrisponde ad un periodo di clock (la logica all'interno della FPGA funziona sincrona ad un clock). La schede schede FPGA NI hanno un clock a 40 MHz, quindi un tick corrisponde a 25 ns. E' anche possibili moltiplicare (all'interno della FPGA) questo clock, raggiungendo frequenze di 80 MHz (tick = 12,5 ns) e 120 MHz (tick= 6.25 ns). I micro secondi sono calcolati sui tick (es. 1us == 40 tick con un clock a 40 MHz) Durante la compilazione del codice LabVIEW -> VHDL -> binario, il compilatore indica semplicemente la massima frequenza di clock a cui potrebbe girare il programma fatto, il clock scelto rimane però invariato ( e quindi anche il tick). Bye P. ---------------------------------------- AUTORE: 4 DATA :21/03/2006 - 20:10:56 ---------------------------------------- toh un pallaz, il mago dell'FPGA \":wink:\" ---------------------------------------- AUTORE: 235 DATA :22/03/2006 - 12:56:05 ---------------------------------------- vebè...i maghi scompaiono e ricompaiono.... \":wink:\" bye P. ---------------------------------------- AUTORE: 1121 DATA :24/03/2006 - 12:46:32 ---------------------------------------- [quote="Ale914":28r5y0yd]toh un pallaz, il mago dell'FPGA \":wink:\"[/quote:28r5y0yd] Scusami... 4 domende: 1- come faccio ad aumentare la frequenza di clock? 2- Che significato hanno le indicazioni del report del compilatore? 3- Il programa che scarico sulla FPGA, viene immagazzinato nella sua memoria. Quanti programmi si possono scaricare ed è possibile eliminare l'intero contenuto della memoria? 4- Con il programmino che ho sviluppato, in alcuni casi mi si blocca l'uscita digitale (rimane sempre alta) che utilizzo come pwm e per sbloccarla devo spegnere il pc. Come faccio a resettare l'uscita? Scusa se ti faccio tutte queste domande, ma ho visto le potenzialità del prodotto, me ne sono innamorato \":lol:\" e voglio cercare di sfruttarlo al meglio. ---------------------------------------- AUTORE: 1121 DATA :24/03/2006 - 12:48:16 ---------------------------------------- Pallaz, grazie! farò tesoro del tuo consiglio! \":D\" ---------------------------------------- AUTORE: 1121 DATA :24/03/2006 - 12:49:00 ---------------------------------------- [quote="Ale914":ae1cikij]L'FPGA ha un suo generatore di clock che genera dei tick ad una certa frequenza. Questa dipende dalla complessità del firmware che dovrà girare sull'FPGA stessa e ti viene indicata dal compilatore al termine della compilazione da LabVIEW a VHDL. I tick quindi dipendono dalla complessità del FW, mentre il tempo in usec è una costante (almeno sulla terra!) Se devi fare un codice che giri sempre ad una certa velocità ti consiglio usec se vuoi un codice che giri più velocemente possibile scegli tick. PS su PC non può ovviamente funzionare con i tick ma nemmeno coi usec, con windows l'unità minima è la "manciate" di ms \":wink:\" Ciao,[/quote:ae1cikij] Grazie anche a te!!! ---------------------------------------- ================================================================================ esadecimale ESC ================================================================================ AUTORE: 1015 DATA :09/03/2006 - 11:27:28 ---------------------------------------- ciao a tutti, dovrei inviare il carattere ESC ad un dispositivo via seriale ma nn so come dare il suo valore ascii in esadecimale al blocco VISA Write. come posso fare? grazie 1000 ---------------------------------------- AUTORE: 645 DATA :09/03/2006 - 11:58:00 ---------------------------------------- Dai un'occhiata al sito http://it.tldp.org/man/man7/ascii.7.html : c'è la tabella completa dei caratteri ascii in notazione decimale e esadeicmale. ESC è 1b in notazione esadecimale. Altri caratteri che tornano utili quando si lavora con strumenti esterni (via seriale) sono STX e ETX per la comunicazione e LF e CR per la lettura dei dati. ---------------------------------------- AUTORE: 1015 DATA :09/03/2006 - 12:01:47 ---------------------------------------- grazie lo stesso, ma credo di essermi spiegata male... so qual è l'esadecimale che corrisponde ad ESC, solo che nn so come fare ad inviarlo alla seriale. Ho provato ad usare il blocco INTEGER TO ESADECIMAL STRING mettendo 27(=1bh) come intero per poi passarne l'uscita al VISA WRITE ma nn mi sembra vada bene. che ne dici? ---------------------------------------- AUTORE: 645 DATA :09/03/2006 - 12:10:48 ---------------------------------------- Ooppss... capito male. Fai così: crei una costante numerica all'interno della quale andrai ad inserire il valore esadecimale del parametro che devi inviare. La costante così come è però non va bene: clicca con il destro del mouse, seleziona \"Format & Precision\" e nella finestra che si apre scegli \"Hexadecimal\" come rappresentazione e nelle caratteristiche selezioni \"2\" come \"Minimum field width\" e \"Pad with zeros on left\" (guarda l'immagine zippata che è più chiara!). A questo punto nella costante inserisci il valore esadecimale del parametro che devi inviare (1b per ESC). ---------------------------------------- AUTORE: 1015 DATA :09/03/2006 - 12:15:37 ---------------------------------------- grazie mille...nn ci sarei mai arrivata! provo subito. ciao ---------------------------------------- AUTORE: 1015 DATA :09/03/2006 - 12:20:49 ---------------------------------------- solo una cosa (spero l'ultima!) come faccio a trasformare qst valore in una stringa?devo inviarlo via seriale usando il VISA WRITE... ---------------------------------------- AUTORE: 645 DATA :09/03/2006 - 12:27:08 ---------------------------------------- Per inviare il valore esadecimale alla periferica seriale ti serve il blocco write preceduto dal Type Cast (Advanced --> Data Manipulation --> Type Cast). Nell'immagine zippata ho messo un esempio di comunicazione con una periferica seriale (al posto di E8 tu hai 1B). Ps: se anche non è l'ultimo post... nessun problema!!! Eh eh eh... ---------------------------------------- AUTORE: 247 DATA :09/03/2006 - 13:52:26 ---------------------------------------- Ciao, --> strada più veloce per inviare un carattere ESC: - crea una costante stringa nel BD - tasto DX sulla stessa e scegli la rappresentazione esadecimale - scrivici dentro 1b ed il gioco è fatto. Bye. ---------------------------------------- AUTORE: 838 DATA :10/03/2006 - 08:43:42 ---------------------------------------- anche io ho fatto come apollon, ma in alcuni casi quando devi costruire dinamicamente (che non sai a priori) una stringa da inviare va convertita in hex proverò l'esempio grazie \":D\" ---------------------------------------- ================================================================================ Lanciare il datasocket server ================================================================================ AUTORE: 487 DATA :10/03/2006 - 12:58:59 ---------------------------------------- Ciao a tutti, qualcuno saprebbe dirmi se esiste la possibilità di gestire il datasocket server direttamente da labview? Devo sviluppare un'applicazione che utilizza il datasocket e vorrei che l'apertura del datasocket server, all'avvio del programma, e la sua chiusura, quando si esce dal programma, siano automatizzate. ---------------------------------------- AUTORE: 1050 DATA :13/03/2006 - 08:39:37 ---------------------------------------- Ciao, la prima cosa che mi viene in mente è unsare il system exec (vedi gif allegata). ciao ---------------------------------------- AUTORE: 487 DATA :13/03/2006 - 08:48:48 ---------------------------------------- Ciao, grazie per il suggerimento, ma in realtà è quello che sto già facendo: il problema è che una volta lanciato non riesco più a chiuderlo; è per questo che preferirei poter manipolare il datasocket server direttamente da labview ---------------------------------------- AUTORE: 1050 DATA :13/03/2006 - 10:07:59 ---------------------------------------- Ciao, questo allora andrà meglio! Fammi sapere se risolve i tuoi problemi. ciao ---------------------------------------- AUTORE: 487 DATA :13/03/2006 - 10:29:14 ---------------------------------------- Perfetto!!! Problema risolto. Tantissime grazie. ---------------------------------------- ================================================================================ Cursore su “XY Graph” ================================================================================ AUTORE: 238 DATA :10/03/2006 - 14:24:42 ---------------------------------------- Versione LabView8 In un VI ho un XY Graph dove viene visualizzato l’ andamento di dati nel tempo. Ho creato con un VI la ricerca di valori max, min, transizione valore e’ posiziono con la “proerty node” il cursore sui punti trovati (pigiando un tasto avanti/indietro). Fino a qui tutto ok ,pero’ nella “Cursor legend” il valore indicato (Timestamp+valore) mi rimane indietro di uno spostamento. Come posso fare per aggiornare i valori indicati nella “cursor legend”. \":?:\" (In LabView 6.2 fonzionava perfettamente) ---------------------------------------- AUTORE: 278 DATA :13/03/2006 - 18:39:30 ---------------------------------------- Ciao, Strano, mi viene da pensare ceh sia un "baco" di LV8... Nonostante questa nuova versione sia uscita sul mercato da pochissimo tempo (circa 5 mesi), e' stata oggetto di una revisione alquanto precoce... \":(\" \":(\" Nella home page del nostro sito potete trovare un articoletto che linka alla patch di LV 8.0.1, se nel sito NI accedi alla [url=http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/d5c32ad00f07d7d586257110007b54d2/$FILE/readme_8_0_1.html:2g3jadxw]lista dei bugfixes.....[/url:2g3jadxw] noterai che e` lunghissima!!! No l`ho letta tutta ma ti consiglio comunque di fare l`aggiornamento e di compilare tutte le directory di LV8 (vedi "mass compile") prima di rimetterti a programmare con LV8. P.S Piccola curiosita`, [quote:2g3jadxw](In LabView 6.2 fonzionava perfettamente)[/quote:2g3jadxw] 6.2?? \":o\" \":o\" Che versione e'?? \":?:\" \":?:\" ---------------------------------------- AUTORE: 238 DATA :14/03/2006 - 15:04:29 ---------------------------------------- Ho inventato una nuova versione !? La mia versione precedente era LV 6.1 ! L’ ultima versione mi e’ arrivata in febbraio 2006 ; Se quardo in \"Help / About LabView..\" mi indica Versione 8.0 \":?\" Domanda: devo scaricarmi gli aggiornamenti 8.0.1 \":?:\" ---------------------------------------- AUTORE: 278 DATA :14/03/2006 - 15:14:49 ---------------------------------------- Beh, potrebbe non essere la soluzione al tuo problema, ma comunque sia ti consiglio di scaricarla (140 MB, bella lì... tra l'altro il server FTP della NI è una lumaca...). Ciao Ciao ---------------------------------------- AUTORE: 238 DATA :15/03/2006 - 15:41:13 ---------------------------------------- Ho installato l´aggiornamento a 8.0.1; pero´ durante \"Mass Compile\" e´comparso il messaggio (vedi sotto) nonostante che il file \"lvdaq.dll\" sia presente nella cartella indicata \":evil:\" ---------------------------------------- AUTORE: 278 DATA :15/03/2006 - 16:01:14 ---------------------------------------- Mannaggia mannaggia... prova a fare cosi, apri il file incriminato da LV, se non ti dà errore all'apertura salvalo (così lo compili nella versione 8.0.1) e riprova a fare il mass compile. A [url=http://digital.ni.com/public.nsf/websearch/D5C32AD00F07D7D586257110007B54D2?OpenDocument:26kmcoxw]questa[/url:26kmcoxw] pagina sono riportate una serie di problemi legati all'operazione di mass compile e relativa soluzione. Facci sapere se risolvi il problema... ---------------------------------------- AUTORE: 238 DATA :16/03/2006 - 08:00:02 ---------------------------------------- Allora ho fatto „mass compile“ della directory nella quale stava il file incriminato, dopodichè ho rifatto “mass compile” di tutta la directory LabView8 …….. dopo SEI ore ha finito l´operazione Adesso bisogna vedere se e´cambiato qualcosa (problemi di crash LV8) Grazie del aiuto ---------------------------------------- ================================================================================ controllare SCXI con DAQmx anzichè Traditional NI-DAQ ================================================================================ AUTORE: 482 DATA :13/03/2006 - 10:25:07 ---------------------------------------- ..ma ciao! E' una cosa per la quale potrei sbattermi un attimo e farla da solo, solo che non ho hardware a disposizione quindi provo prima a chiedere qui. Sto testando la versione di LabVIEW per Linux e ho notato che per quanto riguarda l'harware devo per forza usare i moduli DAQmx che non ho mai usato. Ipotizzando di dover condizionare una scheda SCXI 1160 collegata tramite uno SCXI1000 ad una PCI6503 come devo fare per leggere i vari canali (o le porte)? Normalmente utilizzavo un VI di esempio leggermente customizzato (SCXI-1160 Digital Output.vi) nel quale dovevo dargli il nome della porta usando la sinstassi sc1 ! md1 ! 0. Nel DAQmx cosa gli passo per leggere quella serie di digitali? Devo usare il DAQmx o il BaseDAQmx ---------------------------------------- ================================================================================ Info plotter! ================================================================================ AUTORE: 892 DATA :13/03/2006 - 12:28:16 ---------------------------------------- Ciao a Tutti! Mi sapreste dare notizie o link utili sull'utilizzo o sul poter comandare un plotter da Labview? Vorrei sfruttare il plotter come strumento di motion control per poter muovere una piccola telecamera. Grazie e cordiali saluti! AntoMucci ---------------------------------------- AUTORE: 278 DATA :13/03/2006 - 18:30:02 ---------------------------------------- Ciao, purtroppo non sono a conoscenza di driver specifici per comandare plotter \":cry:\" \":cry:\" ma crdo che si possa \"facilmente\" adottare una soluzione custom. Dato che ci dovrai montare una webcam, suppongo che dovrai apportare modifiche hardware al plotter, esempio una staffa per attaccare la Webcam. Se le cose stanno cosi' potresti comandare il motore dell`asse X del plotter con una porta parallela. Se non erro, e mi auguro che sia il tuo caso, tutti i plotter o stampanti in genere, montano motori di tipo step, quindi senza l`ausilio di encoder di retroazione. Comandando il motore step con la porta parallela potresti muoverlo in modo da spostare la webcam ove desideri. Questa soluzione presuppone che tu possa scollegare i fili di controllo del motore e crearti una interfaccia custom con la porta parallela. Altra soluzione possibile e` quella di studiare il protocollo di comunicazione plotter<-->pc ed implementarlo per i tuoi scopi. Il problema in questo caso sta nel reperire (appunto) il protocollo di comunicazione. Purtroppo sono poche le case produttrici che forniscono dettagli in questo senso. Solo per info; ho fatto una rapida ricerca con google ma non ho trovato nulla \":cry:\" ---------------------------------------- AUTORE: 892 DATA :14/03/2006 - 09:00:22 ---------------------------------------- Grazie Esodar1981! Purtroppo non ho ancora info su quale tipo di plotter userò, di conseguenza non so che tipo di motore ci sia, ma credo anche io che sia uno stepper. A quanto mi han detto, molti plotter hanno l' interfaccia GPIB che National Instruments usa molto nei suoi prodotti. Se cosi è, penso che con il pacchetto Motion di Labview sia abbastanza semplice poi comandare il plotter. Grazie per la cortese attenzione. Cordiali Saluti AntoMucci ---------------------------------------- ================================================================================ dsc 7.1 e pulsanti ================================================================================ AUTORE: 838 DATA :13/03/2006 - 13:43:16 ---------------------------------------- con il dsc 7.1, creando con le wizard un pulsante monostabile switch until released che linka diretta una tag, a volte mi rimane premuto e la tag rimane settata a 1 anche con ulteriori pressioni il tasto rimane giù, e il bit rimane settato a 1 per tornare come prima si deve aprire il tag monitor e settare manualmente la tag a 0 per magia poi il tasto torna su da solo e ritorna a funzionare mi sta facendo impazzire, il problema è che capita pochissime volte, ma qundo succede è un disatro perchè chi lo usa sa a malapena distinguere un mouse da una ciambella e fargli usare il tag monitor è straimpossibile ---------------------------------------- ================================================================================ Blanking ================================================================================ AUTORE: 1029 DATA :13/03/2006 - 16:50:54 ---------------------------------------- Ciao! Devo risolvere l'ultimo problema con l'XY-GRAPH. Mando nell' asse X un dente di sega e nell'asse Y una sinusoide. Il mio problema è che ogni volta che il dente di sega ricomincia, sullo schermo appare una linea bianca orizzontale . Io vorrei che quando il dente di sega cresce allora devo tracciare la sinusoide, mentre quando decresce non devo tracciare nulla. Ho provato ad usare il CASE imponendo che quando la derivata del dente di sega è maggiore di zero si vede la sinusoide, se la derivata è minore di zero invece non deve fare nulla. Il problema è che quella riga bianca orizzontale rimane lo stesso. Come faccio ad eliminarla? ---------------------------------------- AUTORE: 129 DATA :13/03/2006 - 18:39:43 ---------------------------------------- Per avere un controllo incremento/decremento ti vengono in aiuto le functional global, ti allego l'esempio, devi semplicemente inserirlo sul dente di sega per avere un true in caso di crescita. ---------------------------------------- AUTORE: 1029 DATA :14/03/2006 - 16:01:47 ---------------------------------------- Ciao Nicola, grazie per l'aiuto! Se ho capito bene questa functional global dovrebbe darmi in uscita un valore vero o falso a seconda che il segnale cresca o decresca. I problema è che il segnale d'ingresso è del tipo dinamyc data e mi da problemi con lo shift register. Allego il tentativo che ho fatto per vedere se lo sto utilizzando in maniera corretta e se magari hai tempo per dirmi come faccio a superare questo problema con lo shift register. Grazie di tutto! ---------------------------------------- AUTORE: 129 DATA :15/03/2006 - 12:29:43 ---------------------------------------- Non riesco ad aprire il tuo VI, ma comunque prova a trasformare il dinamic type con le funzioni di conversione. Ciao ---------------------------------------- AUTORE: 645 DATA :15/03/2006 - 13:38:37 ---------------------------------------- Allego un vi realizzato con gli Express: viene generato un dente di sega, si applica un trigger e si visualizza il risultato. Il segnale è impostato per variare tra 0 e 5. Il trigger funziona quando il segnale cresce e interrompe quando il segnale decresce. È questa la tua idea? ---------------------------------------- AUTORE: 1029 DATA :16/03/2006 - 08:50:09 ---------------------------------------- Salve! Ringrazio tantissimo tutti quelli che mi hanno dato una mano. Sono riuscito ad applicare i metodi che mi avete suggerito, ma purtroppo questa riga orizzontale non vuole proprio sparire. Cerco di spiegare meglio quello che voglio ottenere in modo da poter trovare più strade per arrivare alla soluzione. Vorrei che l'EX XY-GRAPH si comportasse come lo schermo di un oscilloscopio, in un periodo del dente di sega (asse X) deve disegnare un periodo della sinusoide (asse Y)(sto supponendo che il dente di sega e la sinusoide abbiano la stessa frequenza). Quando il dente di sega sta per decrescere dovrei spegnere \"il pennello elettronico\" dell'oscilloscopio in modo che non tracci la riga orizzontale di ritorno e quando il dente di sega comincia a crescere deve ritracciare nuovamente la sinusoide. Cerco di risolvere questo problema da più di due settimane e non ho più idee di come possa fare! Vi ringrazio tutti di nuovo! ---------------------------------------- AUTORE: 1050 DATA :16/03/2006 - 09:38:00 ---------------------------------------- Ciao, per far \"sparire\" i punti Y devi sostituire quei valori con \"NaN\" (crea una costante DBL, scrivici NaN e sostituisci questo valore nei punti dell'array che non vuoi far visualizzare). Spero sia chiaro... \":wink:\" ciao ---------------------------------------- AUTORE: 645 DATA :16/03/2006 - 10:26:10 ---------------------------------------- Ho modificato il VI: non funziona proprio bene ma sono riuscito a visualizzare nel grafico XY il segnale sinusoidale solo quando il dente di sega cresce. Come si può modificare (sempre che sia una strada giusta...)? ---------------------------------------- AUTORE: 1029 DATA :16/03/2006 - 16:39:11 ---------------------------------------- Salve ragazzi, grazie per l'aiuto che mi state dando! Ho seguito il suggerimento di MagicBotolo però la riga orizzontale ancora permane, forse sbagliamo nel ragionamento? Forse c'è un errore di fondo che non riesco a vedere. Non ho ben capito il suggerimento di Antea06 però mi ha fatto venire in mente un'idea (forse irrealizzabile): c'è un modo per convertire i dynamic data in array, utilizzare la costante NaN per eliminare i punti non voluti e riconvertire in dynamic data? Se si potesse fare penso che potrebbe essere una soluzione al problema. Grazie a tutti per i suggerimenti, se avete altre strade possibili non esitate ad indicarmele, sono abbastanza disperato! Grazie ancora! ---------------------------------------- AUTORE: 1050 DATA :17/03/2006 - 09:08:10 ---------------------------------------- Ciao, ti invio due esempi: uno funziona punto-per-punto mentre l'altro si avvicina forse di più alle tue richieste (Non uso gli Express VI ma i waveform perchè li trovo + semplici). Mi sembra di aver capito che vuoi "simulare" il funzionamento di un oscilloscopio usando un segnale a dente di sega per trigger-are l'acquisizione ed il display dei dati....vero? \":?:\" ciao ---------------------------------------- AUTORE: 1029 DATA :21/03/2006 - 09:20:02 ---------------------------------------- Grazie antea! Era quello che cercavo! La riga orizzontale non c'è più! Grazie mille! ---------------------------------------- ================================================================================ Labview e Zelio ================================================================================ AUTORE: 1124 DATA :14/03/2006 - 11:11:20 ---------------------------------------- Ciao a tutti! Qualcuno riesce a darmi qualche informazione relativa alla possibilita' di dialogare mediante Labview con un rele' programmabile ZELIO (Telemecanique). Grazie ---------------------------------------- AUTORE: 129 DATA :15/03/2006 - 21:56:23 ---------------------------------------- Mi sembra che utilizzi un protocollo modbus. Devi comunque avere [url=http://www.telemecanique.it/www/tele/tele.nsf/pagine/CI5039:5yee5vmx]questa interfaccia.[/url:5yee5vmx] In labview, puoi utilizzare i vi VISA su seriale. ---------------------------------------- ================================================================================ stesso VI in parallelo su 2 porte seriali serarate ================================================================================ AUTORE: 368 DATA :15/03/2006 - 10:34:37 ---------------------------------------- Ciao a tutti, sono tornato con un altro questito da risolvere, forse questa volta un pò più complesso degli altri... \":o\" Vorrei controllare, da un unico PC, tramite le sue 2 porte COM, 2 controllori uguali, ma in maniera completamente indipendente e con lo stesso VI. Questo VI ha dei sub-VI tra cui quello relativo alla gestione del controllore. In teoria non dovrebbero verificarsi conflitti in quanto lo scambio di informazioni con ognuno dei 2 controllori avviene su una porta diversa:!: . Però i sub-VI cui si accede da ogni VI main sono gli stessi:!: \":!:\" \":?:\" I dubbi e le perplessità su una tale realizzazione sono notevoli: che voi sappiate ci sono problemi/conflitti per qualto riguarda il traffico sulla seriale; è necessario far ricorso a trucchi&segretiNonConvenzionali \":D\" Ho letto un post che fa riferimento ai semafori, ma non so se possano essermi d'aiuto(credo di no!) HELP ---------------------------------------- AUTORE: 368 DATA :15/03/2006 - 10:37:04 ---------------------------------------- Rileggendo il mio Post mi sono reso conto che forse pretendo troppo dalla vita \":lol:\" Ciao a tutti ---------------------------------------- AUTORE: 4 DATA :15/03/2006 - 10:59:37 ---------------------------------------- Non dovresti avere problemi a meno di non utilizzare le stesse variabili (locali o globali o func global) in questo caso i dati potrebbero sovrascriversi in maniera pericolosa... Ammesso che a livello dai funzioni tutto avresti in ogni caso il problema che ogni VI è unico! questo vuol dire che se chiami lo stesso VI 2 volte (A e B) avrai che mentre esegue A B aspetta che A finisca poi parte B e A si mette ad aspettare... non avrai mai due esecuzioni indipendenti. Il modo per farlo è settare un VI come rientrante (dalle proprietà di esecuzione). Ogni VI rientrante che piazzi nel tuo codice è un'istanza a se stante, vedila anche come una \"copia dell'originale\" quindi se ne usi 2 avrai realmente un esecuzione simultanea. Ciao, ---------------------------------------- AUTORE: 368 DATA :15/03/2006 - 11:29:36 ---------------------------------------- Grazie della preziosa informazione Ale... .... quidi se ho capito bene: se imposto come rientrante uno dei due VI main, ma non i sub-VI che questi hanno in comune, non dovrebbero esserci problemi di conflitti in quanto ne viene comunque eseguito uno per volta (di sub-VI e questo non è un limite per la mia applicazione), mentre i 2 main sono invece eseguiti in parallelo rispettando il proprio processo di esecuzione. Per quanto riguarda il main, in esso ci sono alcune variabili locali: basta usare nomi differenti per stare tranquillo e non creare pasticci? Scusa se approfitto, ma per ora non ho la possibilità di provare di persona e mi sarebbe molto molto utile chiarirmi le idee ---------------------------------------- ================================================================================ Conversione DEC ---> ASCII extended ================================================================================ AUTORE: 445 DATA :16/03/2006 - 07:42:21 ---------------------------------------- Ciao a tutti . Volevo sapere se esiste una funzione già pronta per effettuare la conversione di un carattere decimale in ascii esteso. Per ascii esteso intendo dal decimale 127 in avanti. La funzione standard (byte array ti string) converte correttamente in ascii ma solo la tabella standard, ciè fino al decimale 126. Grazie Saluti ---------------------------------------- AUTORE: 1050 DATA :16/03/2006 - 08:43:07 ---------------------------------------- Ciao, cosa intendi dicendo che non converte correttamente? \":?:\" A me sembra che fino a 255 la conversione corrisponda. vedi la vi allegata. ciao ---------------------------------------- ================================================================================ problema gestione memoria ================================================================================ AUTORE: 683 DATA :16/03/2006 - 09:07:01 ---------------------------------------- ciao a tutti è quasi ultimato il mio lavoro di acquisizione dati. Per mettere la data sui 3 grafici ho messo un build wavorm con il timestam e tutto il resto l'unico problema le le \"strip chart\" accumilano una casino di dati e quindi dal task manager di windows le risorse dimemoria continuano a salire quindi ho fatto una routine che ogni 5000 campioni azzera il grafico scrivendo uno zero nel property node alla voce history data lerisorse utilizzazte comunque rimangono molto alte c'è un modo per diminuire ancora la mamoria occupata dalle strip chtrs? il programma deve andare per molto tempo non vorrei che si schiantasse ciao a tutti grazie ---------------------------------------- AUTORE: 645 DATA :16/03/2006 - 10:36:36 ---------------------------------------- Potresti provare a salvare i dati su un file e visualizzare sul grafico solo gli ultimi \"tot\". Alla fine della prova recuperi il file per vedere tutti i dati (però anche sul file ti conviene memorizzare delle medie temporali piuttosto che tutti i dati altrimenti, visto che acquisisci tanti dati, diventa troppo pesante per essere aperto). ---------------------------------------- ================================================================================ Divisione Array ================================================================================ AUTORE: 904 DATA :17/03/2006 - 09:22:32 ---------------------------------------- Gentili Lettori del Forum , Vi spiego brevemente il mio problema di programmazione : Avendo un array monodimensionale di numeri devo dividerlo in due successivi array con i valori inferiori e superiori a un certo limite Diciamo per esempio : Array di 5 num 1-2-3-4-5 vorrei dividerlo nel modo in due nuovi array (con numeri <= 2 è >2) 1-2 3-4-5 Scusate per la richiesta forse un pò troppo banale ma non sono ancora pratico di Labview . In attesa vostre risposte Grazie in anticipo ... Saluti !!! \":D\" ---------------------------------------- AUTORE: 1050 DATA :17/03/2006 - 10:53:40 ---------------------------------------- Ciao, ecco un esempio. Ti consiglio comunque di sfruttare gli esempi messi a disposizione dal Labview...sono numerosi (vedi dir example). ---------------------------------------- ================================================================================ Impostare ora nel cRIO ================================================================================ AUTORE: 866 DATA :17/03/2006 - 10:08:13 ---------------------------------------- Ciao a tutti, devo impostare l'orario e la data all'interno del cRIO. Ho provato con le utilities real time, ma niente da fare. Anche utilizzando gli esempi presi dal sito NI l'orario continua ad essere completamente sbagliato (la data invece si setta correttamente), Idee??????????? Grazie Ciao ---------------------------------------- AUTORE: 4 DATA :21/03/2006 - 11:24:47 ---------------------------------------- Molto stranoio ho usato quello funzioni per settare data e ora su FP-RT senza problemi... Il supporto NI che dice? Ciao, ---------------------------------------- AUTORE: 866 DATA :21/03/2006 - 11:32:44 ---------------------------------------- Ciao, per fortuna sono riuscito a trovare il problema. Il supporto NI mi ha mandato un progetto: 1 vi che gira sul mio pc e che legge i parametri da windows 1 vi che gira sul controller che imposta l'ora usando "Set data and time" Il problema stava nel passaggio dei dati attraverso le shared variable che non funzionava..... Comunque ho aggirato il problema settando manualmente i valori al posto di utilizzare le shared variable. Ciao ---------------------------------------- AUTORE: 278 DATA :21/03/2006 - 11:34:40 ---------------------------------------- [quote:17tv9jg8]Il problema stava nel passaggio dei dati attraverso le shared variable che non funzionava.....[/quote:17tv9jg8] Bello!!! Sono appena uscite e già non funzionano??? ---------------------------------------- AUTORE: 866 DATA :21/03/2006 - 11:40:38 ---------------------------------------- A dire il vero non funzionano sul mio PC, visto che la persona del supporto NI non aveva questo problema.... Anzi,dopo tantissimi tentativi senza capire il perchè (anche perchè i valori veniva scritti e si vedevano nel tools "Variable manager", ma non passati) mi ha detto di rinstallare LabVIEW e i moduli real time....... Comunque a me continuano a non funzionare... Qualche idea???????????? Ciao ---------------------------------------- AUTORE: 4 DATA :21/03/2006 - 12:02:49 ---------------------------------------- hai gia pacciato LabVIEW 8.0 con una bella 8.0.1? Puoi provare così, trovi la 8.0.1 [url=http://digital.ni.com/softlib.nsf/websearch/4c1209d42320bcfd8625711c005fb25b:21bvrbbu]qui[/url:21bvrbbu] Ciao, ---------------------------------------- ================================================================================ acquisizione immagini da termocamera con imaq ================================================================================ AUTORE: 1015 DATA :17/03/2006 - 14:50:00 ---------------------------------------- ciao a tutti, sn ormai un'appassionata rompiscatole di qst forum e ho un nuovo problema da sottoporre. sto utilizzando una termocamera e usando i blocchetti di imaq riesco a visualizzare le immagini che riprende. a qst punto ho due prob: 1) perchè la finestra IMAQ WindDraw nn si ingrandisce?come posso fare per allargarla? 2)come posso fare per prendere una singola immagine (eventualmente salvarla) ed utilizzarla come un array di pixel da poter analizzare? grazie mille per l'aiuto ---------------------------------------- AUTORE: 278 DATA :17/03/2006 - 16:46:19 ---------------------------------------- Ciao, l'argomento è molto interessante e stimolante, mi piace parecchio lavorare con le funzioni di IMAQ, anche se a volte sono davvero complicate. Andiamo con ordine: 1)Non si ingrandisce perchè è la copia esatta dell'immagine che gli passi in ingresso, per ingrandirla devi utilizzare una funzione che si chiama IMAQ WindZoom che si trova nello stesso menù di IMAQ WindDraw. A questo punto la piazzi prima di Windraw e gli pass un intero che corrisponde all'ingrandimento che vuoi (2x,3x,4x ecc) 2)tutte le immagini in realtà sono delle matrici, in altre parole array a 2 dimensioni. Per salvarle su file devi usare la funzione IMAQ Write File e passagli in ingresso la tua immagine + il path di salvataggio. Tutte le funzioni per elaborare le immagini presenti nel pacchetto di IMAQ, sono in grado di maneggiare le immagini così come sono, non è necessario "trasformare" le immagini acquisite in array, ci pensa già LV. Ti allego un paio di esempietti semplici semplici in merito alle funzioni IMAQ WindZoom e IMAQ Write File Ciao Ciao ---------------------------------------- AUTORE: 1015 DATA :17/03/2006 - 17:03:59 ---------------------------------------- toglimi una curiosità:insieme alla termocamera mi hanno dato anche dei VI specifici. uno di qst mi dà l'immagine come array bidimensionale SGL. quando lo visualizzo ottengo un'immagine nelle tonalità di blu, mentre per me sarebbe più comodo visualizzarla nelle tonalità di rosso o qlc del genere. è per qst motivo che ho fatto ricorso a IMAQ perchè mi consente di selezionare il display palette. Sai perchè mi esce l'immagine in blu? te lo chiedo perchè mi è molto più comodo avere una specie di schermo per visualizzare l'immagine piuttosto che una finestra che si apre e chiude dinamicamente. un'altra cosa...io ho il 7.0 e nn posso vedere gli allegati. in particolare mi interessava saxe come si setta il center point perchè nn ho mai usato i cluster e vorrei fissarlo come centro dell'immagine. grazie 1000 ---------------------------------------- AUTORE: 278 DATA :17/03/2006 - 17:55:38 ---------------------------------------- [quote:3ur810p3]quando lo visualizzo ottengo un'immagine nelle tonalità di blu[/quote:3ur810p3] Probabilmente questo VI esegue` gia` la estrazione del colore, restituendoti la tonalita` Blue. Dovrebbe esserci qualche collegamento in questo VI che ti permette di selezionare la tonalita` desderata (R,G,B). Per i vi posso solo allegarti degli screenshot, non sapendo che versione IMAQ hai installato c'e' il rischio che non si riescano ad aprire comunque, anche dopo la conversione a 7.0 [quote:3ur810p3]in particolare mi interessava saxe come si setta il center point perchè nn ho mai usato i cluster e vorrei fissarlo come centro dell'immagine[/quote:3ur810p3] temo di non aver capito la domanda.. \":oops:\" \":oops:\" ---------------------------------------- AUTORE: 482 DATA :20/03/2006 - 08:09:43 ---------------------------------------- Blu....solitamente il BLU nelle termocamere indica le zone fredde...non è che ti restituisce solo tonalità di BLU perchè il range della temperatura che acquisisce è molto piu' alta di quella che stai rilevando? ---------------------------------------- AUTORE: 1015 DATA :20/03/2006 - 08:31:57 ---------------------------------------- ciao, ho riprodotto il VI per il salvataggio delle immagini ma mi dà qst errore: invalid image type. ho anche provato a cambiare il tipo di file (BMP TIFF ...) ma niente da fare. hai idea di cosa possa essere? grazie cloe ---------------------------------------- AUTORE: 278 DATA :20/03/2006 - 17:57:38 ---------------------------------------- Ciao, il file che colleghi al terminale "Image in" della funzione "IMAQ Write File" e` rotto o intero? se e` rotto vuol dire che il vi non accetta il tipo di dato che gli stai passando. Prova a convertirlo in formato IMAQ. Se invece e` intero potrebbe essere un errore interno del vi "IMAQ Write File", prova ad usare una funzione differente, tipo "IMAQ Write JPEG File". Se alleghi uno screenshot del problema potrebbe essere piu` facile individuare la causa. Ciao Ciao ---------------------------------------- ================================================================================ Piccolo progetto: accordatore per chitarra [Era: Help!] ================================================================================ AUTORE: 1156 DATA :17/03/2006 - 18:26:16 ---------------------------------------- Gentili lettori, scrivo per chiedervi se c'è qualcuno che mi potrebbe dare una dritta per un piccolo progetto ke vorrei realizzare in labview,si tratta di un accordatore per chitarra dato che sono un appassionato di musica!premetto che ho appena scoperto labview ma mi sono subito appassionato;Io ho cominciato a realizzare qualcosa ma sto avendo qualche problema ! se c'è qualcuno che mi può aiutare in questo me lo faccia sapere! mille grazie!!! ---------------------------------------- AUTORE: 278 DATA :17/03/2006 - 19:14:02 ---------------------------------------- Interessante.. Anche io sono un`appassionato di entrambe le cose, confesso di averci pure pensato, ma ho fatto prima a comprarmene uno \":wink:\" Scherzi a parte, torniamo alle cose tragiche.. \":wink:\" Per realizzare un simile oggettino, inanzitutto, puoi percorrere 2 strade con LabVIEW. Una e` quella di utilizzare una scheda daq da collegare al PC (dato che devi campionare segnali audio, assicurati che campioni ad una frequenza decente.. diciamo almeno 40~50Ks). La seconda e` quella di utilizzare la scheda audio del Pc, dato che dispone di un`entrata audio per il microfono, ha in dotazione un convertitore ADC che potrebbe essere utilizzato per il nostro scopo (per maggiori dettagli prova a cercare all`interno del forum, se non ricordo male un`argomento di questo tipo e` gia` stato discusso). Fatta la scelta dell`hardware, ti dovrai anche procurare un microfono da collegare al tuo sistema. Per quanto riguarda la parte software invece, devi realizzare un sistema che ti permetta di comparare la frequenza acquisita con una costante, quale ad esempio il LA che parte da 220Hz e poi prosegue, raddoppiando mano a mano che sali di ottava (le cosiddette armoniche). Nello specifico caso della chitarra, dovresti misurare a che frequenza vibra la seconda corda (LA), ovviamente di uno strumento ben accordato. Se disponi di una chitarra elettrica e di un oscilloscopio puoi facilmente effettuare la misura senza procurarti un microfono, collegando direttamente il segnale uscente dai pick-up della chitarra all`oscilloscopio. In conclusione, sembra una cosa banale ma puo` rivelarsi piu` difficile del previsto. Tienici aggiornati su ulteriori sviluppi!! ---------------------------------------- AUTORE: 129 DATA :18/03/2006 - 17:45:42 ---------------------------------------- Se scegli di utilizzare la scheda audio , c'è la possibilità di generare toni alla frequenza di 440Hz (LA) in modo da copnfrontarlo con quello preso dalla scheda audio. ---------------------------------------- AUTORE: 129 DATA :18/03/2006 - 18:49:30 ---------------------------------------- Bè visto che abbiamo trovato due chitarristi e mezzo (il mezzo sarei io), mancano cantante, batterista e un tastierista e poi via con il lissio..... \":lol:\" A parte battute perse, allego un VI che ho fatto tempo fa, modificandolo un pò si dovrebbe riuscire a fare il progettino che chiedevi. Clicca[url=http://www.bytelabs.it/files/Audio%20Input.zip:1vzhc0fv]qui[/url:1vzhc0fv]per scaricare il vi. ---------------------------------------- AUTORE: 1156 DATA :19/03/2006 - 18:09:39 ---------------------------------------- Ti ringrazio,vedo se riesco a fare qualcosa di decente! Grazie ancora ---------------------------------------- AUTORE: 1972 DATA :29/03/2007 - 15:44:19 ---------------------------------------- ACCORDATORE PER CHITARRA IN LABVIEW...se qualcuno lo ha fatto me lo può mandare... stò impazzendo!!!! Grazie. il mio indirizzo di posta è assodispade1984@libero.it ---------------------------------------- AUTORE: 384 DATA :30/03/2007 - 08:57:23 ---------------------------------------- Scusate se mi intrometto, ma mi sembra una cosa veramente semplice. Praticamente tutti i PC hanno l a scheda audio, quindi usiamo pure quell'hardware, anche perchè LV ha le funzioni per pilotarlo. Per il microfono i laptop lo hanno icorporato, per gli altri con circa 5 euro lo si prende all'ipermercato! Acquisito un segnale, basta farne uno spettro di potenza, prendere il picco più alto e quella è la frequenza fondamentale che lo strumento sta suonando (tutto il resto contribuisce soltanto alla "ricchezza" timbrica dello strumento). Al limite dovrete giocare un pò con la finestra (hamming, hanning, ecc). Fine del progetto! ---------------------------------------- AUTORE: 384 DATA :02/04/2007 - 15:10:13 ---------------------------------------- Cercando negli esempi di LV con "sound" si trovano una serie di VI interessanti da esplorare. Consiglio di iniziare da 'Simultaneous Sound IO.vi' che contiene l'essenziale per acquisisre e riprodurre con la scheda audio. Un'ultima informazione: queste funzioni sono disponibili sollo dalla versione "Full" i su. ---------------------------------------- AUTORE: 384 DATA :02/04/2007 - 15:18:15 ---------------------------------------- Dimenticavo: I Vi relativi sono nella subpalette: Graphics&Sound/Sound. ---------------------------------------- ================================================================================ Controllare un VI da c++ ================================================================================ AUTORE: 1158 DATA :20/03/2006 - 10:25:11 ---------------------------------------- Buon giorno a tutti, Sono nuovo del forum, ma soprattutto di labview \":)\"... e per questo vorrei chiedervi consiglio. Mi piacerebbe sviluppare un semplice programma da console, scritto in c/c++, capace di controllare una simulazione in labview. Bè forse è il caso che definisca cosa intendo per "controllare", diciamo un programma capace di avviare e fermare la simulazione, pilotare il pannello di controllo (settando variabili ecc ecc) e visualizzare i risultati sulla console. Il modello VI e il programma in c possono girare sulla stessa macchina, quindi non ho necessità di comunicazioni remote. Se avete qualche suggerimento, ve ne sarò grato \":)\"... aspetto trepidante una vostra risposta Vi ringarzio Ciao ---------------------------------------- AUTORE: 129 DATA :20/03/2006 - 11:58:25 ---------------------------------------- Di prima battuta mi viene in mente le shared variable che sono disponibili solo dall'ultima versione di labview(8.0). Altrimenti potresti ricorrere a datasocket. Anche utilizzare file esterni potrebbe essere un approccio, per esempio potrest i utilizzare xml o più semplicemente un file binario. Scusa se sono stato stringato ma giusto per darti uno spunto. Nicola ---------------------------------------- AUTORE: 1158 DATA :20/03/2006 - 13:18:44 ---------------------------------------- [quote:3dc82075]Di prima battuta mi viene in mente le shared variable che sono disponibili solo dall'ultima versione di labview(8.0). Altrimenti potresti ricorrere a datasocket. [/quote:3dc82075] Ho a disposizione labview 7, quindi non posso approfondire l argomento shared var... invece per quanto riguarda le datasocket, pensavo di utilizzarle per ricevere i dati in tempo reale dal vi ,magari utilizzando il modulo udp e scrivere un programmino in c che ascolta una porta determinata. Quello che mi lascia più perplesso è come poter comandare dall'estreno il vi. In effetti non mi sono spiegato molto bene, il modello vi (ma si chiama modello?... scusate l ignoranza) viene fatto da altri, io vorrei creare un' interfaccia con tale modello, cercando di sporcare e alterare il meno possibile il vi. Poco fa ho visto sul sito NI che c'è la possibilità di far girare il VI come un ActiveX server, potrei scrivere un ActiveX client, che ne pensate di questa soluzione? Chiarisco che non mi entusiasma molto (anche perchè non conosco un gran che il mondo DCOM ecc ecc) ---------------------------------------- AUTORE: 129 DATA :20/03/2006 - 15:07:17 ---------------------------------------- Bè con active X la penso come te. Per invece il datasocket puoi leggere scrivere quindi potresti scrivere(controllare) su c++ e leggere su labview. Ma ribadisco la semplicità e praticità di appoggiarsi a file esterni che non tirano in ballo questioni di compatibilità ecc. Tu come te la cavi con xml? Più banalmente potresti utilizzare un file binario, immagino molto banalmente una cosa del tipo da C++ setto la variabile pinco nel file pinco.dat da VI leggo la variabile pinco dal file pinco.dat Nel caso il tuo VI (un vi significa virtual instruments ed è alla stregua di un listato di codice C++) come dici deve essere realizzato da altri e magari compilato, puoi discutere con loro lo scambio dati. Se deve essere a pecchatto chiuso il modo meno drstico è l'activeX. Spero di non aver aggiunto confusione, Nic ---------------------------------------- ================================================================================ Acquisizione da GPS ================================================================================ AUTORE: 1159 DATA :20/03/2006 - 10:48:33 ---------------------------------------- Ciao a tutti! Sono nuovo del forum e quindi un neofita di questo spettacolare programma (e anche complesso...). Volevo chiedere se è possibile acquisire dati da un ricevitore GPS via Bluetooth e se avete qualche consiglio da darmi a riguardo. Grazie anticipatamente! ---------------------------------------- AUTORE: 129 DATA :20/03/2006 - 12:04:06 ---------------------------------------- Non ricordo da quale versione è disponibile, ma sicuramente dalla 7.0 si. Nella palette communication,trovi i vi per il bluetooth ---------------------------------------- AUTORE: 1159 DATA :20/03/2006 - 13:55:33 ---------------------------------------- Grazie, sapevo che esistevano i VI per il bluetooth (io ho la versione 7.1), ma non so se c'è compatibilità di dati.Questi VI ricevono qualsiasi tipo di trasmissione BT oppure il ricevitore deve trasmettere secondo particolari standard? Grazie ancora. ---------------------------------------- AUTORE: 645 DATA :20/03/2006 - 19:04:27 ---------------------------------------- L'unico inconveniente dei blocchetti LabView per Bluetooth è la compatibilità con alcuni driver. LabView permette la comunicazione Bluetooth solo se il sistema (Bluetooth) è dotato di particolari driver (per chiarirti (forse) le idee puoi guardare http://zone.ni.com/reference/en-XX/help ... etooth_VIs . Non hai la possibilità di lavorare con la porta seriale virtuale? Alcuni dispositivi Bluetooth mettono a disposizione questa funzione. ---------------------------------------- AUTORE: 645 DATA :22/03/2006 - 12:54:25 ---------------------------------------- Sul sito della National c'è una [url=http://sine.ni.com/apps/we/nievn.ni?action=display_offerings_by_event&event_id=14397&event_subtype=WEB_EVENT_DEMAND&site=NIC&l=US:36yqfq61]presentazione[/url:36yqfq61]. Io non l'ho ancora guardata ma magari è interessante! ---------------------------------------- AUTORE: 1218 DATA :20/04/2006 - 15:47:55 ---------------------------------------- Ciao a tutti! Sono un ingegnere che ahimè lavora molto frequentemente con il LabView in laboratorio per misurazioni varie. Mi sono trovato ultimamente a dover acquisire la posizione e l'altitudine da un normalissimo ricevitore gps (quelli per TomTom). Volevo solo ricordarvi che una chiavetta Bluetooth USB lavora su una porta COM, il che significa che nn avrete bisogno del blocchetto Bluetooth, ma del comunissimo blocchetto Visa reader. Vedete su che porta è settato per la lettura e scrittura dei dati dal ricevitore (generalmente sono due COM distinte) ed il gioco è quasi fatto. Premetto che il GPS tira fuori una miriade di stringhe che devono essere decodificate. Spero di essere stato chiaro! Per domande anche sulle stringhe nn esitate a contattarmi. Ciao a tutti Ing.Lu ---------------------------------------- ================================================================================ trasformare un numero da decimale a binario [ERA: Aiuto] ================================================================================ AUTORE: 1161 DATA :20/03/2006 - 20:22:27 ---------------------------------------- \":?:\" Salve a tutti ...!!! Ho un problema. Sapete spiegarmi come posso fare, utilizzando labview a trasformare un numero da decimale a binario e viceversa......??? Grazie!!! Rispondetemi al piu presto ciao. ---------------------------------------- AUTORE: 645 DATA :20/03/2006 - 22:33:19 ---------------------------------------- Dai un occhio ai blocchi presenti tra quelli delle funzioni numeriche o tra quelli da usare per le stringhe! ---------------------------------------- AUTORE: 884 DATA :21/03/2006 - 07:31:08 ---------------------------------------- ciao, se è un puro fatto di visualizzazione LV ti mette a disposizione radix negli indicatori... ---------------------------------------- AUTORE: 129 DATA :21/03/2006 - 07:53:03 ---------------------------------------- BAsta che colleghi un indicatore e ne modifichi le proprietà di visualizzazione. Puoi anche trasformare il numero in un array di bit e quindi in stringa. Ti allego un esempio ---------------------------------------- AUTORE: 1161 DATA :21/03/2006 - 16:35:00 ---------------------------------------- Grazie. è quello che mi serve.!!! \":P\" Posso sapere come posso far uscire il numero binario attraverso la porta parallela? Io ho collegato dei led su una basetta e voglio che attraverso la porta parallela mi esce il numero binario. Cioè se io inserisco il numero decimale 170 lo trasforma in binario cioè 10101010 e io questo lo devo vedere attraverso i led che si accendono.. si devono accendere i led in modo 1 acceso e 1 spento (10101010)?? Come posso fare??? grazie....... \":idea:\" ---------------------------------------- AUTORE: 680 DATA :21/03/2006 - 19:16:12 ---------------------------------------- puoi fare così.............. ciao..... ---------------------------------------- AUTORE: 1161 DATA :21/03/2006 - 19:39:17 ---------------------------------------- GRANDIOSO....!!!!!!!!!!!!!!!!!!!!! GRAZIE TANTE è PROPRIO QUELLO CHE MI SERVIVA ..... FUNZIONA!!!!!!! CI SENTIAMO CIAO.......... ---------------------------------------- AUTORE: 1161 DATA :21/03/2006 - 19:51:01 ---------------------------------------- SCUSA MA SONO TROPPO INTERESSATO!!!!!!!!!!!!!!!!!!! SI POTREBBE FARE IL CONTRARIO ??? CIOè DA BINARIO A DECIMALE??? GRAZIE ..... POI DOVRò ANCHE STUDIARMELO PERCHE LO SO FACENDO A SCUOLA E CON GLI ALTRI LINGUAGGI NON MI PIACE MI PIACE DI PIù LABVIEW. GRAZIE MILLE.......... INCASO SE LEI AVESSE UN MANUALE DELLE COSE CHE HA FATTO MI FAREBBE PIACERE CIOè DI COE HA FATTO A FARLE ..... ---------------------------------------- AUTORE: 278 DATA :22/03/2006 - 18:07:05 ---------------------------------------- Ciao, l`esempio postato da linux 120 e` molto facile, utilizza una sola funzione per convertire il numero da binario a decimale, mentre l`altra (Out port.vi) e` una funzione che ti permettere di scrivere un dato sulla porta parallela (con indirizzo 378). Nella sezione "Articoli" del forum puoi trovare una guida (Accesso diretto alle risorse I/O) che spiega come scrivere sulle porte seriali/parallele del PC utilizzando LV. Per convertire un array di booleani in numero devi usare la funzione "Boolean array to number", la puoi trovare nel pannello delle funzioni cliccando sull`icona "Boolean" Ciao Ciao ---------------------------------------- AUTORE: 1161 DATA :22/03/2006 - 18:25:44 ---------------------------------------- ciao Grazie per le risposte che mi date...!!!!!!!!!!!! Avete per caso un esempio di trasformazione di un numero binario ad un numero decimale?? cioè l'inverso che avevo kiesto prima? grazie..... ---------------------------------------- AUTORE: 680 DATA :23/03/2006 - 17:21:34 ---------------------------------------- ecco a te ciao... ---------------------------------------- AUTORE: 1161 DATA :23/03/2006 - 17:59:15 ---------------------------------------- grazie mille per l 'aiuto ---------------------------------------- ================================================================================ Race Conditions in LabVIEW 6.1 ================================================================================ AUTORE: 278 DATA :21/03/2006 - 18:29:42 ---------------------------------------- Ciao Ragazzi, vi segnalo un bug (nel caso non lo sapeste) riguardo alla versione 6.1 di LabVIEW. Il link alla pagina in inglese e` [url=http://www.vi-lib.com/bugs/RaceConditionbetweenPrope.html:8qcwin4c]questo[/url:8qcwin4c] In breve, si tratta di un fenomeno conosciuto come "Race Conditions" o "Accesso concorrente delle risorse", praticamente, come si vede nell`esempio del link, se modifichiamo il valore di un controllo prima con le variabili locali e dopo con le propery nodes, il valore assunto dall`indicatore sara` sempre quello settato con la variabile locale, e non quello impostato con il property nodes, sebbene venga eseguito dopo la variabile locale. Segnaliamo che questo bug e` presente solo nella versione 6.1, versioni precedenti o successive ne sono prive. Per un maggiore approfondimento in merito al fenomeno del "Race Conditions" consiglio di leggere il documento "Datashare in LabVIEW", oltretutto, fatto da me \":wink:\" (un po` di pubblicita' non guasta) \":wink:\" ---------------------------------------- ================================================================================ MESSAGGIO DI ATTESA RICEZIONE DATI ================================================================================ AUTORE: 673 DATA :22/03/2006 - 08:40:22 ---------------------------------------- Ciao a tutti. Mesi fa avevo realizzato un sistema di supervisione per il controllo di impianti industriali via modem. Adesso l'ho ripreso e sto cercando di apportare alcune migliorie. Intanto vi chiedo un aiuto su una questione. Quando lancio il vi, si caricano il Tag Engine e il relativo OPC Server: in questo momento il modem compone il numero di telefono ed, una volta connesso al PLC dell'impianto, incomincio a ricevere i dati sul mio pannello. Il problema è che,durante la composizione del numero da parte del modem, tutti i display che ho sul mio pannello (siano essi associati a punti digitali o analogici) assumono il loro valore di default, per esempio il valore 0 per i punti analogici. Io che ho progettato il programma so che quei dati non sono i valori che ricevo dal PLC e che il modem sta appena componendo il numero. Ma un altro utilizzatore non lo sa. Per farla breve, mi servirebbe un controllo, per esempio, un messaggio che compare all'avvio del programma di supervisione (tipo, "connessione in corso...attendere prego") e che scompare quando la connessione con il PLC è stabilita. Qualcuno sa aiutarmi e magari allegarmi un esempio di come procedere? Vi ringrazio molto. ---------------------------------------- AUTORE: 1050 DATA :22/03/2006 - 10:13:58 ---------------------------------------- Ciao, potresti usare la property "Disable" dei tuoi indicatori impostandoli "disabled and grayed" finchè non hai caricato tutti i dati (questa forse è la strada + semplice) oppure chiamare dinamicamente una vi "dialog" con un messaggio e chiuderla quando hai finito il caricamento (vedi esempio allegato). Saluti ---------------------------------------- AUTORE: 673 DATA :22/03/2006 - 12:18:41 ---------------------------------------- Ciao, grazie innanzitutto per la risposta. Prima cosa: sono andato nella proprietà Disable and Gray ma questa non mi da la possibilità di renderla Able una volta ricevuti i dati. Sai se c'è un modo? Seconda cosa: il mio livello di LabView è piuttosto basso e i tuoi vi sono un pochino complicati...soprattutto il Msg_Caller. Ma con calma cerco di studiarmelo. Però, in allegato ho messo due piccoli vi che vorrei migliorare. O meglio, uno (Main)rappresenta una simulazione del pannello principale del sistema di supervisione con all'intero del block diagram una struttura case; l'altro (Messaggio_Comunicazione) è un vi che vorrei fungesse da popup con il messaggio di attesa connessione. Quello che vorrei è che se, nel Main, la condizione è verificata allora mi viene caricato il popup, mentre quando non lo è più il popup scompare. E' possibile? Grazie ancora. ---------------------------------------- AUTORE: 645 DATA :22/03/2006 - 12:50:40 ---------------------------------------- Puoi inserire una struttura a sequenza all'interno del Block Diagram: nella sequenza inserisci le funzioni di chiamata del modem e di ricezione dei primi dati (sarebbe meglio inserire solo la ricezione del segnale di collegamento con il plc avvenuto) e fuori dalla sequenza il blocco di ricezione e visualizzazione dei dati. Poi colleghi i fili d'errore dall'interno della sequenza all'esterno. Tra i blocchi express trovi un blocco per la visualizzazione di messaggi. ---------------------------------------- AUTORE: 278 DATA :22/03/2006 - 13:20:34 ---------------------------------------- Ciao, Per far sparire il popup devi terminare l'esecuizione dello stesso (Messaggio_Comunicazione.vi). Ti allego il tuo stesso esempio modificato. Ho sostituito la variabile locale con una globale (altrimenti non avrei potuto usarla nel subVI Messaggio_Comunicazione.vi), una volta partito il subVI ciclo con un loop di 200ms controllando lo stato della variabile che corrisponde alla temperatura dell'olio. Quando questa supera il valore o il VI con il messaggio si ferma e ti permette di continuare con il tuo programma. Ho modificato anche alcune proprierà di visualizzazione del VI, per fare in modo che si apra e si chiuda al termine dell'esecuzione ho spuntato le voci "Show front panel when called" e "Close afterwards if originally closed" Ciao Ciao ---------------------------------------- AUTORE: 1050 DATA :22/03/2006 - 14:11:30 ---------------------------------------- Ciao, effettivamente è una soluzione un pò complessa per chi è all'inizio. Vedi se quella in allegato può esserti di aiuto + semplicemente. ---------------------------------------- AUTORE: 673 DATA :23/03/2006 - 06:58:39 ---------------------------------------- Eccomi, ho fatto un po' di prove prima di scrivervi. Ringrazio Antea06 ed Esodar1981 per l'aiuto, mi avete fornito dei suggerimenti veramente interessanti. Purtroppo però, funzionano e non funzionano. Ovvero, in entrambe le soluzioni compare il messaggio fino a quando si caricano il Tag Engine e l'OPC server ma quando questi hanno concluso il loro caricamento (il numero di telefono però non è stato ancora composto o è in composizione) svaniscono i messaggi di connessione in corso. Non so da che cosa possa dipendere, forse dal fatto che quel valore zero che compare per ogni punto analogico (prima del collegamento con il PLC) non sia effettivamente uno zero....ovvero non viene letto come 0 dal programma. E' singolare, infatti, il comportamento nella soluzione di Esodar: il popup compare durante il caricamento del TagEngine, poi scompare durante la composizione del numero, ricompare per un attimo quando la connessione è stabilita (ma non ricevo ancora i dati dal PLC) e scompare quando la temperatura dell'olio diventa diversa da zero (ovvero, ho ricevuto tutti i dati dal PLC). Forse dovrei trovare un'altra soluzione, cioè, considerare un'altra condizione rispetto a quella di prendere il valore di un punto analogico. Forse non sono stato chiaro, qualcuno di voi sa dare una spiegazione? Grazie ---------------------------------------- AUTORE: 1050 DATA :23/03/2006 - 08:48:05 ---------------------------------------- Ciao, per poterti rispondere devo cercare di capire bene il tuo problema. << 1. il modem compone il numero di telefono 2. ...una volta connesso al PLC 3. ...incomincio a ricevere i dati sul mio pannello ..Il problema è che,durante la composizione del numero da parte del modem, tutti i display...assumono il loro valore di default... >> Se la sequenza di operazioni è questa dovresti "mantenere" il tuo messaggio attivo (o i tuoi display nascosti) sicuramente almeno finchè non ti sei connesso al PLC ( cioè finchè l'intera fase di inizializzazione della misura non è terminata). La questione allora è: come fai a sapere che sei connesso al PLC? Potresti cominciare a confrontare i dati ricevuti rispetto al valore di default e quando questi sono diversi disabilitare il tuo messaggio. Vedi altro esempio. Se non ho ancora capito...scusami!!! \":wink:\" ---------------------------------------- AUTORE: 645 DATA :23/03/2006 - 08:55:51 ---------------------------------------- Posso fare una domandina? Quando sei collegato con il pc ricevi un segnale di avvenuto collegamento? Non so, una stringa... ---------------------------------------- AUTORE: 673 DATA :23/03/2006 - 14:27:18 ---------------------------------------- Antea, hai capito benissimo la sequenza e ho visto la tua soluzione. Ho provato ad adottarla sul mio pannello, anche se in maniera semplificata, ma mi da un errore. Non riesco a capire perchè a te non da l'errore. Allego una copia del mio pannello (per ridurne la dimensione ho cancellato le parti grafiche e di codice che non interessano) così vedi,o vedete, cosa non va. Vi ringrazio molto per l'aiuto ---------------------------------------- AUTORE: 1050 DATA :23/03/2006 - 16:11:52 ---------------------------------------- Ciao, è un pò complicato senza subvi però forse ti posso aiutare lo stesso. dai uno sguardo alle parti evidenziate in giallo. ciao PS: la prossima volta non cancellare le vi: basta che le "svuoti" lasciando intatti indicatori e controlli così almeno i fili non si spezzano. ---------------------------------------- AUTORE: 673 DATA :24/03/2006 - 10:14:58 ---------------------------------------- Grazie Antea, adesso funziona. Scusa se ho cancellato i subvi...ho fatto un po' di casino. Ringrazio anche tutti gli altri che hanno risposto. Presto vi chiederò delle altre delucidazioni. Ancora grazie. ---------------------------------------- ================================================================================ Urgente ragazzi perfavore ================================================================================ AUTORE: 1161 DATA :22/03/2006 - 22:05:33 ---------------------------------------- Urgente rsp adesso....... ho fatto un eseguibile però ho provato ad aprirlo su un altro computer dove nn c'è installato labview 8 è nn funziona mi esce un errore cioè richiede labview. Come posso fare afarlo funzionare su quest'altro computer?????????? ---------------------------------------- AUTORE: 1161 DATA :22/03/2006 - 22:14:53 ---------------------------------------- rispondete mi serve per domani!!!!!!!!!!!!! ---------------------------------------- AUTORE: 482 DATA :23/03/2006 - 07:35:32 ---------------------------------------- credo che chieda il LabVIEW runtime engine, non labview! E' il software che serve per far girare gli eseguibili realizzati con labview. Lo trovi all'interno dei CD di installazioen di LabVIEW ---------------------------------------- AUTORE: 1161 DATA :23/03/2006 - 12:20:57 ---------------------------------------- GRAZIE LO STESSO CI SONO RIUSCITO FACENDO UN INSTALLER E POI BUILD ---------------------------------------- ================================================================================ Tempi di comunicazione seriale ================================================================================ AUTORE: 482 DATA :23/03/2006 - 15:21:04 ---------------------------------------- ..ma ciao! sto comunicando in seriale con uno strumento MP2000 della AEP. Al momento uso un baud rate di 9600. Vorrei velocizzarlo ma ho dei dubbi: 1) pur avendo settato nel pannello di controllo e in MAX la seriale a 19200, se non inserisco una funzione di configurazione software nel programma, la comunicazione non funziona. Secondo voi è normale? Probabilmente la seriale si setta via software inautomatico a 9600..mah.. \":?:\" 2) ho messo in cascata il modulo di scrittura e il modulo di lettura ma ogni tanto mi restituisce un errore di timeout...C'e' un tempo di attesa da rispettare tra una scrittura e una lettura su seriale? (nel manuale non c'e' scritto niente a proposito. La cosa che mi disturba è che in 9600 funziona benissimo cosi', ma in 19200 mi sta dando questi problemi... ---------------------------------------- AUTORE: 645 DATA :23/03/2006 - 15:43:05 ---------------------------------------- Io ti consiglio di inserire all'inizio del tuo VI un blocco di configurazione della porta seriale: non so bene quale sia il rapporto con MAX ma con il blocco di configurazione inserito nel block diagram ti togli ogni dubbio. Per quanto riguarda l'errore tra scrittura e lettura posso dirti con sicurezza che esiste un intervallo di tempo richiesto dallo strumento per leggere quello che tu invii, elaborare la risposta, preparare i dati sul buffer di uscita e inviarteli. Se tu cerchi di leggere il buffer dello strumento prima che lui abbia preparato i dati incontri un messaggio di errore. Alcuni driver per strumenti (io ho lavorato con HPe3632a, generatore di tensione continua) mettono a disposizione un blocco di attesa da inserire tra scrittura e lettura. Lo allego a questo post. È molto utile, funziona da temporizzatore: trascorso il tempo da te settato legge i dati. Puoi partire con un tempo elevato e poi lo abbassi fino a quando incontri l'errore. Questo è, in teoria, il limite minimo di tempo richiesto. Potresti anche creare un blocco che reagisce agli eventi sulla porta seriale: appena vede che c'è qualcosa disponibile nel buffer dello strumento lo legge. Bello ma più complicato da preparare. La soluzione che allego è comoda e funziona! ---------------------------------------- AUTORE: 235 DATA :23/03/2006 - 21:42:05 ---------------------------------------- Ciao, 1) devi sempre usare il VI che apre la seriale, con questo VI scegli baud rate e tempo di timeout. Le impostazioni fatte con MAX valgono in MAX nel caso tu voglia provare la seriale (aprendo una VISA Session in MAX). 2) Chiaramente anche lo strumento deve essere impostato per andare a 19200, un errore di timeout avviene quando LV non riceve tutti i caratteri nel tempo di timout (impostato con il VI del punto 1)) Bye P. ---------------------------------------- AUTORE: 4 DATA :24/03/2006 - 08:19:16 ---------------------------------------- Io non sò se c'entra ma non mi sono mai fidato delle impostazioni per la seriale di windows e non ho mai capito in che modo impattano su quelle fatte da LV. Di solito riporto le impostazioni della seriale che devo utilizzare anche nei settaggi di windows (gestione periferiche). Ciao, ---------------------------------------- AUTORE: 247 DATA :24/03/2006 - 11:04:50 ---------------------------------------- Ciao, se utilizzi un blocco di lettura Visa per la seriale senza prima eseguire il blocco di configurazione della porta, LV la apre automaticamente con le impostazioni di default che sono proprio quelle a 9600 etc. BYE. ---------------------------------------- ================================================================================ OPC server ecc?? ================================================================================ AUTORE: 683 DATA :24/03/2006 - 10:25:37 ---------------------------------------- ciao a tutti, c'è qualcuno che mi può fornire una linea guida sugli opc client e server?? mi hanno proposto dei moduli I/o della bekoff e di utilizzarli con il loro OPC server e usando LV come Client mi potete dire comefunziona tutto questo?? l'opc è sempre compatibile?? come avvient la scrittura e la lettura del valore?? grazie a tutti ---------------------------------------- AUTORE: 838 DATA :27/03/2006 - 08:32:20 ---------------------------------------- beh, oltre ad avere un buon opc server occorre installare il modulo DSC questo modulo si connette come opcclient al server e ti permette di creare delle TAG che linkano alle word/bit che ti servono il DSC mette a disposizione delle funzioni di tagread/write/allarm/ecc che ti permettono poi di andare a comunicare con l'opc server io lo sto utilizzando da un pò, ma non lo trovo performante come altri prodotti come intouch o wincc e a volte mi da un sacco di grane ---------------------------------------- AUTORE: 683 DATA :27/03/2006 - 19:28:23 ---------------------------------------- scusa la mia ignoraza molto grassa ma che cos'è il modulo DSC me lo fornisce la national o il produttore dell'opc? ti spiego brevemente cosa volevo fare La beckoof e la wago fanno degli ottimi moduli I/O le le più varie interfacce(seriale, eth, profibus... ecc...) e rispetto ai moduli I/O field point sono molto più versatili e COSTANO 4 DICO 4 VOLTE DI MENO dei loro concorrenti National. La bekhoof solo per il modulo seriale fornisce delle rudimentali librerie LV che non fanno altro che pulirti la maschera dei bit in ingresso e uscita oppure forniscono il server opc e c'è una piccola guida che ti fa impostare il client da LV. Ora io sto andando con i field point seriali dovrei provare a usare l'OPC dei field point così da prenderci la mano e poi buttarmi sugli altri In relazione al tuo post cosa intendi per poco performanti? e che cosa sono gli altri che hai menzionato?? ti ringrazio buona serata ---------------------------------------- AUTORE: 384 DATA :21/07/2006 - 21:04:35 ---------------------------------------- Per usare "dispositivi" di altri marchi "OPC Compliant" NON è necessario il modulo DSC (Datalogging Supervisory Control - un ulteriore "tool kit" per LabView) - lo si può fare direttamente da LabView, attraverso il datasocket, sia impostanto la stringa di collegamento direttamente sui controlli sia usando i relativi blocchi. Io l'ho già fatto più volte e funziona benissimo. Lo svantaggio dell'OPC server è che è lento. I dati arrivano a delle velocità più basse perchè c'è un overhead nelle communicazioni molto elevato; questo è dovuto al fatto che il protocollo di communicazione è abbastanza rigido ed articolato. I vantaggi sono che è "trasparente", qualunque oggetto "OPC compliant" può essere usato, e con un minimo di cura, questi "oggetti" possono anche essere intercambiabili senza più toccare l'applicazione LabView. Come al solito, come dicono gli inglesi, non si può mangiare il biscotto e tenerselo!!! Bye. ---------------------------------------- AUTORE: 822 DATA :12/08/2006 - 12:17:12 ---------------------------------------- ciao gyc, cosa intendi dire con "è lento"? cioè qual'è l'ordine di grandezza in tempo... 1 sec, 10 sec, 30 sec.... nello scambio dati. Perchè io stò cercando attraverso i datasocket e il protocollo opc, di comunicare con le db di un plc siemens.... quando sono in lettura nessun problema, leggo (direi istantaneamente) quello che il plc mi invia... mentre quando sono in scrittura (scrivo solo un byte, nulla di più) il dato ci mette venti, trenta secondi ad aggiornarsi... per lento intendi questo? perchè se è così devo trovare un'altra soluzione, mentre invece se sono io che sbaglio.... Ti allego un semplice VI... se puoi darci un'occhiata e consigliarmi te ne sarei immensamente grato. Sepp ---------------------------------------- AUTORE: 384 DATA :15/08/2006 - 20:41:27 ---------------------------------------- Ciao. Per lento intendevo tempi di "andata/ritorno" nella scala dei 5-10 secondi, però non solo con 1 byte. C'era da trasmettere/ricevere circa 1Kb. Io uso sempre il modo "buffered read" che è abbastanza più inteligente e rx/tx solo i dati che cambiano. In più le comunicazioni erano seriali, seppure a 38.4 Kbps. Puoi verifficare direttamente sul PLC che il dato si aggiorni solo dopo 30 secs, magari facendo accendere una uscita? A me sembra molto strano. Potrebbe essere il modo in cui è "esportata" la variabile sul PLC. Tu stai scrivende/leggendo soltanto una, ma sei sicuro che il software sul PLC ne esporti solo quella? Magari il "povero" OPC server ne ha una montagna da trasportare! Sul come fare a cambiare questo sul PLC, purtroppo è oltre le mie competenze. Sul tuo vi non trovato niente di "strano". Posso consigliarti di collegare una costante che ti determina il tipo di dato al blocco di lettura e ti risparmi il "variant to flattened"; anche in scrittura puoi collegare direttamente il dato, risparmiando il "flattened to variant". Spero ti sia stato di aiuto. ---------------------------------------- AUTORE: 822 DATA :02/09/2006 - 16:58:10 ---------------------------------------- Ciao, grazie per avermi risposto. Io sono stato via in queste settimane e non ho potuto controllare i tuoi consigli, lunedì proverò. Quello che assolutamente non capisco è perchè quando utilizzo i data socket solo in lettura (leggo su pc i dati che mi invia il plc), tutto funziona velocemente (riesco a scaricare in 1-2 secondi anche una intera db di 200 e più byte), mentre quando sono in lettura scrittura il programma rallenta terribilmente. Per completezza ti dico che comunico su protocollo profibus a 12 Mb/s. Come faccio a capire che tipo di costante collegare al posto del "variant to flattened" e del "flattened to variant"? ---------------------------------------- AUTORE: 384 DATA :04/09/2006 - 09:18:02 ---------------------------------------- [quote="giuseppe.l74":1r02ud9n]Ciao, grazie per avermi risposto. Quello che assolutamente non capisco è perchè quando utilizzo i data socket solo in lettura (leggo su pc i dati che mi invia il plc), tutto funziona velocemente (riesco a scaricare in 1-2 secondi anche una intera db di 200 e più byte), mentre quando sono in lettura scrittura il programma rallenta terribilmente. Per completezza ti dico che comunico su protocollo profibus a 12 Mb/s. [/quote:1r02ud9n] Qui c'è effettivamente qualcosa che non quadra. Potrebbe essere utile coinvolgere l'assistenza NI. [quote="giuseppe.l74":1r02ud9n]Come faccio a capire che tipo di costante collegare al posto del "variant to flattened" e del "flattened to variant"?[/quote:1r02ud9n] Dipende del tipo di variabile sul PLC, e questo ovviamente lo sai tu. ---------------------------------------- AUTORE: 1477 DATA :24/09/2006 - 15:56:47 ---------------------------------------- [quote="gyc":29u9yosr]Per usare "dispositivi" di altri marchi "OPC Compliant" NON è necessario il modulo DSC (Datalogging Supervisory Control - un ulteriore "tool kit" per LabView) - lo si può fare direttamente da LabView, attraverso il datasocket, sia impostanto la stringa di collegamento direttamente sui controlli sia usando i relativi blocchi. Io l'ho già fatto più volte e funziona benissimo. [/quote:29u9yosr] Scusate se mi intrometto. Dovrei passare due valori numerici da Movicon X ai due ingressi di un regolatore fuzzy che ho costruito in Labview (7.1 senza moduli aggiuntivi) e poi passare il valore dell'uscita del regolatore a Movicon per vederla a sinottico e per registrarla con un data logger. Leggendo manuali e helps di Labview, credo che la via da seguire sia proprio quella del datasocket e così ho provato a "pubblicare" il valori di un controllo in un VI di test e a "sottoscrivere" un indicatore sullo stesso oggetto di datasocket nello stesso VI: naturalmente la cosa funziona, se varia il controllo vedo variare anche l'indicatore. Ho cercato le funzionalità Datasocket in Movicon ma sono rimasto spiazzato perchè non vedo niente di così chiaramente indicato. Però, Movicon è OPC compliant: cosa dovrei fare? Se ho capito la tua risposta, si dovrebbe poter attivare un collegamento tra Datasocket e OPC tags? Come? Avresti qualche esempio e/o link su docs o approfondimenti? La cosa può funzionare anche con Excel? Anche senza il modulo "Report..."? Chiedo scusa ancora per l'intrusione e per le tante domande. (Forse avrei dovuto iniziare un nuovo thread.... Grazie per l'ascolto. ---------------------------------------- AUTORE: 384 DATA :24/09/2006 - 18:31:03 ---------------------------------------- Non conosco la piataforma Movicon X, ma non credo che troverai niente con la dicitura esplicita "datasocket" - che è un termine coniato da N.I. Da quel poco che ho visto, essendo una piattaforma scada/hmi compatibile con "tutto", dovrebbe addirittura avere un suo server OPC; sicuramente è grado di collegarsi con qualunque altro server OPC, in particolare quello di N.I. Potrebbe anche darsi che Movicon si possa connettere al Datasocket Server di N.I. - ache se lo dubito fortemente. Se da movicon "esporti" le tue variabili in modo che siano visibili sul OPC server, ti ci potrai connettere da LabView, con gli stessi meccanismi di "subscribe" per input (leggere) e "publish" per output (scrivere). Quando farai subscribe e publish devi solo fare "browse", trovare l'OPC server ed in esso le variabili che hai "esportato" da Movicon. Ed il gioco è fatto!!! ---------------------------------------- AUTORE: 1477 DATA :24/09/2006 - 19:57:10 ---------------------------------------- Grazie per la pronta risposta e complimenti per la... domenica! Vedo che non sono l'unico. Nel frattempo, ho dato un'occhiata un po' più approfondita all'help di Movicon e ho potuto vedere che, in effetti, è possibile attivare un suo server OPC e che è possibile creare items collegati con le sue variabili interne. Dopo aver avviato il server Movicon (tra l'altro può essere attivato automaticamente dalla chiamata del client), l'ho finalmente visto nel browser del datasocket connection di Labview. Per adesso non sono riuscito a creare un collegamento completo realmente funzionante ma, non essendo io lo sviluppatore in Movicon, probabilmente non ho settato il tutto correttamente e non volevo bruciare il resto della domenica. Per adesso rinnovo i ringraziamenti. Se pensate che possa interessare pubblicare i vari passi una volta attivato il tutto, sarò lieto di pubblicare le procedure e un test VI di esempio. Dato che acquisisco con moduli Wago su Ethernet e passo i valori a Movicon ma uso Labview per il regolatore fuzzy (conoscete alternative, Fuzzytech escluso?) indagherò se anche Wago ha il suo server OPC (senza moduli aggiuntivi) e proverò a passare i valori al regolatore sia da Wago che da Movicon per vedere cos'è meglio. Grazie ancora e buon lavoro. ---------------------------------------- AUTORE: 384 DATA :25/09/2006 - 02:19:23 ---------------------------------------- Sarebbe molto utile che ci facessi partecipi dei tuoi progressi. Sarei particolarmente interessato ai moduli Wago che solo recentemente mi sono stati "presentati" e molto lodati da chi già li usa. ---------------------------------------- AUTORE: 683 DATA :21/11/2006 - 11:20:18 ---------------------------------------- io posso parlere dei moduli beckhoff "cugini" di quelli wago hanno un porprio opc server che si collega al sitema twincat è molto veloce e pittoste semplice da configurare inoltre è vermante pratico ne caso volessi leggere e scrivere dati in comunicazione col plc si può inltre settare quate risorse uscare del processore il sistema twincat comnuica anche mediate ocx e c'è una semplice sempio per implematare una comnuicazione quindi teoricamente si evita di utillizzare e quinid acquistare un opc serve beckhoff che sn 500 eurini rispetto ai soli 157 dil twincat io se posso essere d'aiuto contattatemi ---------------------------------------- AUTORE: 1477 DATA :21/11/2006 - 13:16:16 ---------------------------------------- Il software Codesys per la programmazione dei Wago, che costa 350 euro circa ma serve solo per i moduli con un cervello e non per i semplici accoppiatori di rete, contiene un OPC server compreso nel prezzo. Io ho usato questo server come gateway per scambiare informazioni fra Movicon, Labview e il Wago ethernet stesso. Per fare ciò, è stato sufficiente dichiarare le variabili d'appoggio nella cpu del vago ethernet. Ripeto, solo dichiararle. A proposito: qualcuno conosce un OPC monitor o tester free? Grazie. PS. @ ilgurzo Dovresti cambiare la tastiera perchè ti mangia le lettere e ti fa un sacco di errori... \":wink:\" ---------------------------------------- AUTORE: 683 DATA :21/11/2006 - 20:24:01 ---------------------------------------- no sono io che non sono capace a scrivere!!! buona serata ---------------------------------------- ================================================================================ Caselle di testo con limiti ================================================================================ AUTORE: 927 DATA :24/03/2006 - 13:29:57 ---------------------------------------- Vorrei creare delle caselle di testo (String Control) dove l'utente può inserire solo un numero limitato di caratteri. Inoltre vorrei che il testo si potesse digitare solo maiuscolo (il minuscolo viene convertito). Tra le proprietà delle caselle di testo di LV 7.1 non trovo niente del genere, ma so che Windows supporta perlomeno le caselle solo maiuscolo. Si può fare senza immattirsi troppo? ---------------------------------------- AUTORE: 113 DATA :24/03/2006 - 16:42:38 ---------------------------------------- Effettivamente con le property non è possibile fare quello che vuoi, un'alternativa è quella che ti allego. Rientra nell'ambito dei trucchi 'da canna del gas'... Però funziona \":wink:\" Alberto ---------------------------------------- AUTORE: 927 DATA :27/03/2006 - 08:26:46 ---------------------------------------- Interessante! Ma è possibile definire un tipo di casella di testo generica che usi questo sistema, o bisogna creare una struttura ad eventi come quella per ogni casella di testo? (non so se mi spiego...) ---------------------------------------- AUTORE: 113 DATA :27/03/2006 - 09:29:43 ---------------------------------------- Sì, chiaro! Se hai diversi controlli di testo a cui forzare l'aspetto, puoi racchiuderli in un cluster e generare un unico evento quando il contenuto del cluster viene modificato; oppure se le stringhe non sono molte puoi generare l'evento al cambio del valore di ciascun controllo. Inoltre se vuoi qualcosa di più generico e riutilizzabile vedi l'esempio allegato in cui il controllo dell'aspetto è gestito da un sub-vi a cui viene passato solo il reference della stringa. Puoi giocartela in diversi modi, tutto dipende da quante stringhe devi controllare e da come il tutto può essere implementato nella tua applicazione... P.S. non ho creato l'icona ad-hoc per la sub-vi, lascio spazio alla tua immaginazione; io in questo ne ho veramente poca... \":wink:\" Ciao, Alberto ---------------------------------------- AUTORE: 2514 DATA :23/02/2010 - 07:55:54 ---------------------------------------- Anche se il post e' vecchissimo un ringraziamento per avermi fatto risparmiare tempo. Avevo la stessa esigenza e ho potuto riutilizzare il tuo codice praticamente senza modifiche. E' bastata la solita fruttuosa ricerca sul forum. A buon rendere e grazie! \":)\" ---------------------------------------- AUTORE: 2514 DATA :23/02/2010 - 08:17:25 ---------------------------------------- L'unica precisazione, soprattutto per i nuovi utenti che si trovino ad usare questo codice, e' di settare la proprieta' di "Update while typing" delle stringhe delle quali si vuole limitare la lunghezza, altrimenti l'evento di Value Change verra' scatenato solo dopo aver terminato l'inserimento del testo e non "in diretta". Grazie di nuovo! ---------------------------------------- ================================================================================ Configurare 8 serili ================================================================================ AUTORE: 1168 DATA :24/03/2006 - 14:23:09 ---------------------------------------- Salve a tutti. Premett che sono un niubbo totale, ho appena seguito il corso base, ma ho ancora le idee parecchio confuse. Per un applicazione devo configurare 8 porte seriali che comuicano con 8 dispositivi esterni. La mia idea è di prendere il VI "basic read and write " contenuto negli esempi e incorporare tutti i campi di configurazione in un cluster. Quando richiamo questo VI poi gli passo solo il cluster che riempirò in modo adatto leggendo un file di configurazione. Cosa ne dite? Ovviamente ci sarà un metodo molto più "pulito".... Buona domenica Pietro ---------------------------------------- AUTORE: 129 DATA :24/03/2006 - 18:15:08 ---------------------------------------- Prima di tutto devi ricordare di rispettare un architettura di base, che è qualla di inizializzare all'apertura, creare un loop di lettura/scrittura e quindi quando decidi di uscire devi chiudere la sessione con le com. Ti propongo l'uso di un array di cluster per inizializzare la comunicazione(impostare le porte se vuoi. Guarda esempio ---------------------------------------- ================================================================================ continui problemi con il dsc 7.1 ================================================================================ AUTORE: 838 DATA :27/03/2006 - 10:09:40 ---------------------------------------- Dopo alcuni impianti fatto con labview 7.1 e dsc 7.1 sono giunto ad una cocnlusione: il DSC è completamente inaffidabile il massimo che si riesce a gestire è qualche livello di qualche silos, ma niente di più, NON pensateci minimamente a gestire fronti di variabili, ricette, scritture veloci di parametri, eccecc Il dsc lo trovo lentissimo, perde i dati per strada, pessimo da configurare, un tag engine veramente scandaloso A volte il centro assistenza non è assolutamente preparato su questo modulo, alcune risposte sono veramente scandalose. Il più delle volte mi sono dovuto arrangiare e inventarmi qualche ghirigori di codice per ovviare a moustrose lacune del dsc Qualcuno ha avuto la mia stessa esperienza? ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:50:01 ---------------------------------------- ho usato DSC 6.1 ed era anche peggio a livello di velocità anche se come quantità avevo sistemi da oltre 5000 TAG di cui 500 allarmi e quasi tutti loggati. avevo iniziato una migrazione a 7.1 ma non ho avuto più modo di lavorarci quindi non posso fare confronti anche se sulla carta NI lo dava per n volte meglio della versione precedente. credo che il problema sia il solito, aspettare che i prodotti si stabilizzino DSC 6.1 non era la sesta versione ma la prima e la successiva la seconda non mi stupirei di questi risultati, a discolpa di DSC posso dire che PDA o FP erano anche peggio \":wink:\" l'importante è che NI si impegni a venirne fuori con prodotti utilizzabili che non siano solo frutto di necessità di mercato... Ciao ---------------------------------------- ================================================================================ Stampa di un grafico ================================================================================ AUTORE: 487 DATA :27/03/2006 - 13:11:44 ---------------------------------------- Ciao a tutti, eccomi di nuovo quà con un problema che per me risulta incomprensibile. Si tratta di questo: ho un vi il cui front panel è costituito da un grafico che devo stampare; per la stampa utilizzo la funzione di stampa dell'intero pannello frontale; il grafico ha una griglia che viene generata settando opportunamente i marker values delle scale. La griglia risultante dovrebbe essere costituita da 10 linee orrizontali e 10 verticali. Il tutto funziona egregiamente finchè eseguo il vi, ma quando lo compilo e lancio l'eseguibile i marker sulla scala delle ordinate vengono messi a casaccio. Ho provato a mettere dei ritardi fra le varie operazioni eseguite nel vi, ma non ho ottenuto alcun risultato. Chiedo aiuto ai maghi del forum. ---------------------------------------- AUTORE: 1169 DATA :27/03/2006 - 17:11:31 ---------------------------------------- Ciao coma, Io farei la seguente: Se ti interessa vedere il grafico così com'è sul Labview secondo me fai prima ad usare un programma che ti fa gli screenshoot. Viceveresa,acquisisci i dati che ti interessa graficare e poi li elabori ad es. con Matlab. Ultima ipotesi . . . aspetta altri suggerimenti_ ---------------------------------------- AUTORE: 311 DATA :06/08/2006 - 17:50:02 ---------------------------------------- ciao, hai provato ad usare invoke node? sul diagram, click con il sx sull'icona del grafico, Crea, Invoke node. Su questo selezioni il Get Image. Ottenuta l'immagine la puoi salvare, inserire in report ecc (vedi Report Generation nella barra delle funzioni). ---------------------------------------- AUTORE: 1427 DATA :17/11/2006 - 12:49:07 ---------------------------------------- [quote="brune":2oerybbn]ciao, hai provato ad usare invoke node? sul diagram, click con il sx sull'icona del grafico, Crea, Invoke node. Su questo selezioni il Get Image. Ottenuta l'immagine la puoi salvare, inserire in report ecc (vedi Report Generation nella barra delle funzioni).[/quote:2oerybbn] anche se il messaggio e' vecchiotto accodo qui la mia richiesta, visto che l'argomento e' lo stesso. Come fai ad inserire l'immagine in un report? Da quello che ho visto io l'unica possibilità e' caricare un'immagine esterna con un link grazie ---------------------------------------- AUTORE: 977 DATA :16/03/2010 - 00:21:21 ---------------------------------------- Una risposta semplice sarebbe usare PDF creator interfacciato con labview per creare un file PDF che comprenda sia il report che l'immagine... In alternativa puoi creare un file html dove puoi inserire sia l'immagine che il report Ultima alternativa, puoi creare una mega immagine che non è altro che l'unione dell'immagine del grafico e del report trasformato in immagine... Per la prima e la seconda soluzione se cerchi PDFCreator sul forum trovi già delle discussioni con ActiveX allegati per la gestione del tutto. Per la terza soluzione : teoricamente è fattibile, ma non ho mai provato andando bene le prime 2... Altrimenti puoi anche stampare il front Pannel di LV organizzandolo in modo da avere sia l'immagine che il report contenuto in un'apposita stringa anche se tale report non deve essere troppo lungo naturalmente! Spero di esserti stato d'aiuto Saluti Davide ---------------------------------------- AUTORE: 43 DATA :16/03/2010 - 10:07:48 ---------------------------------------- [quote="coma":2fet7r18]Ciao a tutti, eccomi di nuovo quà con un problema che per me risulta incomprensibile. Si tratta di questo: ho un vi il cui front panel è costituito da un grafico che devo stampare; per la stampa utilizzo la funzione di stampa dell'intero pannello frontale; il grafico ha una griglia che viene generata settando opportunamente i marker values delle scale. La griglia risultante dovrebbe essere costituita da 10 linee orrizontali e 10 verticali. Il tutto funziona egregiamente finchè eseguo il vi, ma quando lo compilo e lancio l'eseguibile i marker sulla scala delle ordinate vengono messi a casaccio. Ho provato a mettere dei ritardi fra le varie operazioni eseguite nel vi, ma non ho ottenuto alcun risultato. Chiedo aiuto ai maghi del forum.[/quote:2fet7r18] Dai tempi di LabVIEW 3.1 (windows for workgroup 3.11) la stampa si realizza creando un apposito SubVI solitamente con Front Panel Bianco e Nero , xkè spesso le stampe sono B/N. A quel punto ai colori delle tracce nel grafico a video, vengono sostituiti i linee tratteggiate ed ingrossate nel grafico predisposto alla stampa, senza ovviamente far mancare la legenda nella quale è ben visibile l' associazione del tipo di tratto al nome della traccia stessa. Il Tuo problema dovrebbe essere affrontato guardando il codice che dovresti avere la pazienza di postare, xkè gli elementi a nostra disposizione sono insufficienti x darti un aiuto. Cmq, di norma, se il problema sta nei marker, meglio forzare il setup desiderato dei marker prima della stampa in ogni caso, per essere sicuro ciò venga fatto correttamente. Prima di dire che il problema è un baco di LabVIEW devi postare il codice! bye ---------------------------------------- ================================================================================ protocollo di comunicazione e datasocket [Era: raga perchè.] ================================================================================ AUTORE: 1171 DATA :27/03/2006 - 18:11:52 ---------------------------------------- raga ho realizzato un programmino che sostanzialmente è un protocollo di comunicazione tra un modulo chiamato "shm" e un "cmt" che sfrutta il datasocket. non capisco perchè dopo un run di entrambi dopo un po si ferma (credo dipenda dai time out) e poi riparte risolvo solo mettendo un wait con 20 ms di ritardo i file utili sono shm_test e cmt_test sapete spiegarmi il perchè? aggiungo l'allegato. grazie dario ---------------------------------------- AUTORE: 1171 DATA :27/03/2006 - 18:14:10 ---------------------------------------- allegati ---------------------------------------- AUTORE: 1171 DATA :27/03/2006 - 18:14:59 ---------------------------------------- scompattateli nella stessa cartella grazie mille a chi saprà aiutarmi saluti dario ---------------------------------------- ================================================================================ Acquisire una corrente ================================================================================ AUTORE: 588 DATA :27/03/2006 - 19:04:27 ---------------------------------------- Salve ho da sottoporre un quesito tanto banale quanto vitale per me. Devo poter leggere una corrente continua fino ad un paio di ampere con LabView 8.0 ed una scheda 4070 E oppure 4062E e relativi SCB68. Come posso fare? ---------------------------------------- AUTORE: 1165 DATA :13/04/2006 - 14:50:19 ---------------------------------------- Non ho i dati nè delle due schede nè del blocchetti di condizionamento che stai usando, quindi mi limito a darti una parte di risposta in via generale, nella speranza che ti sia comunque un po' utile: Quando vuoi acquisire una corrente robusta, come nel tuo caso (due amper sono parecchi), o ricorri a sensori tipo effetto Hall o riduci la corente da misurare inserendo nel tuo conduttore uno Shunt a partitore di corrente. In pratica metti in serie al cavo che ti porta la tua corrente una resistenza (più piccola possibile per non alterare troppo il circuito originario) ed in parallelo a questa una resistenza molto più grande, che sarà attraverstata solo da una piccola parte della corrente che attraversa la resistenza più piccola. Tu puoi misurare questa seconda, che è molto minore, e dai rapporti delle resistenze ritrovare la corrente totale che attraversa il tuo conduttore. In bocca al lupo, Enr. ---------------------------------------- ================================================================================ Supervisione impianti EIB/KNX ================================================================================ AUTORE: 1173 DATA :28/03/2006 - 07:34:25 ---------------------------------------- :evil: Premetto che non sò usare LabView e vorrei impararlo, e vorrei inoltre utilizzare Labview per una supervisione per impianti domotici EIB, qualcuno mi sà dire se la cosa è di difficile realizzazione? ---------------------------------------- AUTORE: 4 DATA :06/04/2006 - 13:37:38 ---------------------------------------- Direi proprio di si EIB supporta OPC che a sua volta è supportato da LabVIEW quindi nessun problema di integrazione... semmai i costi dell'OPC server possono essere un problema. Ciao, ---------------------------------------- AUTORE: 838 DATA :06/04/2006 - 14:46:28 ---------------------------------------- eccone un'altro allora con eib puoi sicuramente usare il loro opc server e tramite il modulo dsc della national ti puoi collegare come slave e pescarti tutto quello che ti serve ho già fatto delle prove e sono stato pure alla siemens di padova per vedere come andava sembra che i tedeschi a fare gli scada sono negati e hanno costi allucinanti, noi con labview riusciamo a mantenere i prezzi e dare un ottimo prodotto però a noi gli impianti di domotica con eib non ci soddifano appieno, vanno bene per magazzini, capannoni e forse qualche hotel per la domotica vera tipo casa superlusso stiamo valutando la hai, però usa un protocollo proprietario tutto da studiare ---------------------------------------- ================================================================================ Field Point - Se riscrivo un uscita digitale, ho un glitch? ================================================================================ AUTORE: 1168 DATA :28/03/2006 - 08:18:16 ---------------------------------------- Salve a tutti. Sto scrivendo un'aplicazione per un fieldpoint che non ho ancora a disposizione per le prove. La mia domanda è: se riscrivo un uscita digitale con il valore già presente, posso avere un glitch dell'uscita? In questo caso tutte le volte devo controllare via software cosa c'e' sul canale che mi interessa e modificare il livello solo se non c'e' il valore desiderato. Speriamo di no..... \":wink:\" Grazie Pio ---------------------------------------- AUTORE: 4 DATA :28/03/2006 - 11:32:12 ---------------------------------------- Ciao direi assolutamente no, nessun glitch, è il sw e l'hw del FP che fanno il lavoro di comparazione degli stati delle uscite prima di attivarli. Ciao, ---------------------------------------- ================================================================================ Scambiare informazioni con un sito ================================================================================ AUTORE: 201 DATA :28/03/2006 - 16:36:48 ---------------------------------------- Avete presente qui siti che permettono di inviare sms da internet? E' possibile tramite labview fare una Vi che si interfaccia con questi siti e permette di inviare sms? Se si cosa mi devo guardare per imparare a farlo? ---------------------------------------- AUTORE: 129 DATA :29/03/2006 - 11:16:18 ---------------------------------------- Potresti inserire nel pannello il controllo active-x del browser. MA imagino tu debba inviare SMS con il testo configurato da labview, in tal caso mi sà sia quasi impossibile, perchè il codice attivo solitamente viene gestito dal server e non sul client. ---------------------------------------- AUTORE: 201 DATA :29/03/2006 - 11:42:34 ---------------------------------------- [quote="nicola":37rcverw]Potresti inserire nel pannello il controllo active-x del browser. MA imagino tu debba inviare SMS con il testo configurato da labview, in tal caso mi sà sia quasi impossibile, perchè il codice attivo solitamente viene gestito dal server e non sul client.[/quote:37rcverw] Ciao, si esatto mi servirebbe che il testo sia configurato tramite labview. ---------------------------------------- ================================================================================ Conteggio fronti di onda quadra ================================================================================ AUTORE: 1177 DATA :28/03/2006 - 22:24:46 ---------------------------------------- Ciao a tutti, il mio problema è quello di conteggiare i fronti generati da un' onda quadra e il tempo in cui sono stati generati (i fronti vengono da un encoder incrementale; contandoli posso risalire alle posizioni, velocità ecc ecc del cursore su cui è montato). qualcuno ha qualche idea di come si possa fare...... ....o magari già esiste un VI pronto per analisi di questo tipo? grazie in anticipo ciao \":D\" ---------------------------------------- AUTORE: 201 DATA :29/03/2006 - 14:38:48 ---------------------------------------- Ciao, cosa intendi per il tempo in cui sono stati generati? Intendi la frequenza dell'onda quadra? O intendi che ti serve sapere il duty cycle dell'onda quadra? ciao. ---------------------------------------- AUTORE: 1177 DATA :29/03/2006 - 16:31:31 ---------------------------------------- ciao, perdonami, in effetti non sono stato molto chiaro... a me interesserebbe sapere a che istante si genera il fronte, avendo una sorgente a freq variabile.... l'optimum sarebbe che il vi mi creasse un file tipo txt con due colonne.....in una un conteggio incrementale (per l'appunto il conteggio del numero dei fronti nell'unità di tempo) e nell'altra l'istante esatto in cui sono stati generati.......il resto non mi interessa assolutamente. ciao e grazie ancora ---------------------------------------- AUTORE: 201 DATA :29/03/2006 - 20:39:43 ---------------------------------------- Ah ok, comunque per avere i fronti devi derivare l'onda quadra, in questo modo avrai solo i fronti, e sarà facilissimo rilevarli perchè il segnale resta è sempre a livello 0,tranne quando hai i fronti che in teoria tende ad infinito ma in pratica no. Ciao. ---------------------------------------- AUTORE: 1177 DATA :29/03/2006 - 22:04:48 ---------------------------------------- ok grazie, che function devo usare per derivare....... ho trovato derivate x(t) che dovrebbe fare al caso mio nell' help, però mi dice: Not in Base Package........ \":cry:\" qualcosa di alternativo? ciao e grazie ---------------------------------------- AUTORE: 1050 DATA :30/03/2006 - 08:33:11 ---------------------------------------- Ciao, con un segnale come l'onda quadra dovrebbe bastarti applicare la formula della derivata ovvero sottrarre l'elemento i-esimo con il precedente (i-1). Ti mando un esempio. ---------------------------------------- AUTORE: 1177 DATA :30/03/2006 - 14:50:33 ---------------------------------------- grazie antea era giusto quello che cercavo.... per il conteggio avrei intenzione di usare un semplice comparison, se maggiore di un cero valore scrive su file 1 se no scrive 0 ed i relativi tempi........e fin quì tutto ok la domanda è se c'è un modo per togliere i record con lo zero, ossia registrare solo quelli con l'1, in cui ho il fronte??? ciao e grazie ancora ---------------------------------------- AUTORE: 1050 DATA :31/03/2006 - 08:24:36 ---------------------------------------- Ciao, mi devi scusare ma non ho ben capito cosa intendi per : <<se c'è un modo per togliere i record con lo zero, ossia registrare solo quelli con l'1>> cosa intendi per "registrare"? Vuoi "salvare su file" solo quelli >0 (usando un IF case) o vuoi che vengano "visualizzati" solo questi su un grafico oppure altro? ---------------------------------------- AUTORE: 1177 DATA :31/03/2006 - 10:01:00 ---------------------------------------- ciao, perdona se non mi sono spiegato bene...... vorrei salvare su file solo i fronti e i relativi tempi, per costruirmi alcuni grafici. Ovviamente le righe con lo zero mi sarebbero di impiccio, dovrei toglierle io a mano o non so con qcs in fortran, però suppongo ci sia già qcs in labview...... \":?:\" grazie tante ancora ciao \":D\" ---------------------------------------- AUTORE: 1050 DATA :31/03/2006 - 15:39:05 ---------------------------------------- Ok, ti invio l'esempio di prima con l'aggiunta del salvataggio dati; la soluzione che ho usato non sfrutta alcuna delle VI messe a disposizione in Labview xchè non sono sicura che la tua versione base le abbia. Voglio dire che questa è una delle tante soluzioni che puoi usare per il tuo scopo(e quasi sicuramente non la + semplice), basterebbe dare un occhio alle funzioni di "peak search" oppure alle funzioni che usano le "waveform" (questo tipo di dato ti permette di specificare "t0" e "dt"). Nella cartella examples del labview c'è molto da scoprire. ciao ---------------------------------------- AUTORE: 1177 DATA :31/03/2006 - 18:39:31 ---------------------------------------- wow antea06 fa proprio quello che fa al caso mio...... \":D\" ti sono debitore......!!!! ti faccio un'ultima domanda, e se al posto dell'onda quandra generata mettessi il mio box di acquisizione daq.....????? nessun problema immagino??? ciao e ancora grazie infinite ---------------------------------------- ================================================================================ Chiamate a DLL ================================================================================ AUTORE: 927 DATA :29/03/2006 - 11:28:15 ---------------------------------------- Da LV chiamo una funzione su una DLL esterna, scritta in C++, che a sua volta esegue un programmino DOS (oltre a fare tante altre cose). Durante l'esecuzione del programmino, le finestre di LV si "piantano", non è possibile cliccarle e non si aggiornano, se un'altra finestra ci passa sopra rimangono bianche. Proprio come quando un programma si pianta... Solo che si riprende al termine del programmino DOS. Si può evitare questo obbrobrio? E' normale che LV "aspetti" la fine della chiamata alla DLL, è ciò che voglio, ma di norma l'interfaccia di LV dovrebbe rimanere funzionante nel frattempo! Infatti quando la DLL fa altre cose che non siano chiamare l'exe, non ci sono problemi. Per chi conosce anche il C++: Dentro la DLL, l'exe viene eseguito col classico comando system(), se invece usassi robette Microsoft più evolute come CreateProcess() o ShellExecute() potrebbe risolvere? ---------------------------------------- AUTORE: 4 DATA :29/03/2006 - 11:48:57 ---------------------------------------- Ciao tocchi un tasto dolente di LabVIEW... siediti... In LabVIEW le DLL eseguono [u:3ceqaxot]nello stesso thread[/u:3ceqaxot] delle intefacce utente. questo spiega l'apparente blocco dell'interfaccia che in effetti, eseguendo nello stesso thread della DLL, stà aspettando che questa finisca. Non ho mai capito il perchè di questa scelta da parte di NI sarebbe stato molto meglio mettere le DLL in un thread diverso e magari dedicato a loro. Una soluzione potrebbe essere quella di "spostare" o il thread dei VI di interfaccia da quello di default (UI) a un altro libero ad esempio "other 1" o "other 2" che esistono proprio allo scopo di farci eseguire funzioni "solitarie" infatti LabVIEW non li usa mai di sua spontanea volontà. Cambi questa impostazione tramite il pannello delle proprietà del VI sollo la voce Execution>>preferred execution system" Altra soluzione sarebbe quella di settare la DLL come rientrante... questa scelta è alternativa ad un' altra che si chiama "RUN in UI thread" e si setta facendo doppio click sulla chiamata alla DLL. Tutte le funzioni LV che usano DLL (calcolo della media ad esempio) l'hanno settata come reentrant. Per il concetto di rientranza e per un approfondimento sulla questione dei thread puoi leggere questo [url=http://www.ilvg.it/forum/download.php?id=297:3ceqaxot]documento[/url:3ceqaxot] Ciao, ---------------------------------------- AUTORE: 927 DATA :29/03/2006 - 13:25:36 ---------------------------------------- Grazie! Ho impostato la chiamata alla DLL come Reentrant e sembra funzionare bene. Apparentemente la situazione non è così tragica... Non ho capito però perchè, quando la DLL esegue altre operazioni lunghe che non siano una chiamata DOS, non c'è nessun blocco dell'interfaccia, anche senza usare Reentrant. Il blocco c'è solo durante l'esecuzione del programmino. ---------------------------------------- ================================================================================ info webserver ================================================================================ AUTORE: 201 DATA :29/03/2006 - 11:44:22 ---------------------------------------- Sto provando a controllare in remoto una vi, ma nel computer remoto che si connette alla vi deve essere necessariamente installato il runtime engine di labview? ---------------------------------------- AUTORE: 4 DATA :29/03/2006 - 11:51:09 ---------------------------------------- No al momento della prima connessione verrà richiesto di sacrivare un l'activex necessario a visualizzare/controllare i VI da remoto. Essendo un ActiveX (ovviamente) funziona solo su WIN. Ciao, ---------------------------------------- AUTORE: 201 DATA :29/03/2006 - 14:33:33 ---------------------------------------- Ciao, grazie per la risposta, mmm...allora c'è qualcosa che non mi torna. Allora io ho fatto una prova, ho creato una vi che contiene solo una casella per scrivere, nient'altro,blockdiagram vuoto. Poi sono andato in Tools->Web Publishing Tool e ho seguito tutti i passi, alla fine mi crea una pagine html e per raggiungerla scrivo http://miocomputer/nomepagine.html. Ho chiesto a qlc amico di raggiungere questo indirizzo(ovviamente con il mio ip al posto del nome del mio pc) ma non riescono a visualizzare nulla nonostante io abbia dato loro il plugin necessario per il browser. Dove sbaglio??? \":cry:\" grazie ancora. ---------------------------------------- AUTORE: 680 DATA :31/03/2006 - 20:19:47 ---------------------------------------- per caso hai un router o un firewall? perchè potrebbe essere lui il problema....... ---------------------------------------- AUTORE: 201 DATA :31/03/2006 - 21:52:27 ---------------------------------------- Ciao, nessun router solo i firewall di windows! ---------------------------------------- AUTORE: 680 DATA :01/04/2006 - 14:00:42 ---------------------------------------- [quote="blow":1d1annvu]b Publishing Tool e ho seguito tutti i passi, alla fine mi crea una pagine html e per raggiungerla scrivo http://miocomputer/nomepagine.html. [/quote:1d1annvu] attento all'estensione del file.. mi sembra che di default la pagine web salvata da LabVIEW hanno estensione .htm .... ---------------------------------------- ================================================================================ Da Booleano a Radio Button ================================================================================ AUTORE: 482 DATA :29/03/2006 - 15:01:07 ---------------------------------------- ...ma ciao! Da una scheda motion, acquisisco un selettore a tre posizioni. In base alla posizione del selettore vado a modificare il valore di un controllo di tipo ring. Per farlo uso una event structure che viene eseguita solo quando il selettore cambia valore. Questo perchè essendo il ring un CONTROLLO, voglio che quando il selettore è fermo, l'utente possa cambiare il valore del ring manualmente. per poter utilizzare la Event structure vorrei riportare la posizione del selettore in un radio button che è il controllo che piu' gli somiglia come funzionamento. cosa mi consigliate di fare per passare da tre booleani separati a un radio button? ---------------------------------------- AUTORE: 482 DATA :29/03/2006 - 15:23:51 ---------------------------------------- cazzarola..mi sa che la soluzione che pensavo non va bene perchè la event structure con "value change" non funziona per cambiamento di valori programmatica..deve essere un cambiamento imposto dall'utente... \":cry:\" come faccio?!?! ---------------------------------------- AUTORE: 482 DATA :29/03/2006 - 15:28:16 ---------------------------------------- ok ok...troppo panico... anzichè la event structure uso uno shift register per confrontare lo stato precedente... ma da tre booleani a un radio button c'e' una soluzione che non sia quella dell'array di booleani e una ricerca dell'indirizzo di quello vero? ---------------------------------------- AUTORE: 129 DATA :29/03/2006 - 16:06:59 ---------------------------------------- Potresti farla così ---------------------------------------- ================================================================================ Disabilitare un controllo ma non Grayed ================================================================================ AUTORE: 1168 DATA :29/03/2006 - 16:02:36 ---------------------------------------- Salve a tutti. Sto realizzando un controllo macchina con la possibiiltà di manuale/automatico. Devo disabilitare tutti i controlli (quasi tutti booleani) nel caso si lavori in automatico e in un primo momento usato il property node "Disable". Vorrei però che il controllo non diventasse grigietto. Nelle proprità del controllo dal pannello frontale c'e' Disable (non grayed). Per via programmatica si riesce? La mia idea è che comunque il valore del controllo venga cambiato automaticamente, ma l'utente non riesce a modificarlo. Grazie mille Pio ---------------------------------------- AUTORE: 278 DATA :29/03/2006 - 16:10:06 ---------------------------------------- Ciao, [quote:kpgrpfms]Nelle proprità del controllo dal pannello frontale c'e' Disable (non grayed). Per via programmatica si riesce? [/quote:kpgrpfms] per questo non devi usare la proprietà "disabled" ma "visible". Fai tasto destro sulla proprietà, percorso Properties-->Visible Ciao Ciao ---------------------------------------- AUTORE: 1168 DATA :29/03/2006 - 16:16:58 ---------------------------------------- Ma così il controllo sparisce. Vorrei solamente che l'utente non potesse cliccarci sopra. ---------------------------------------- AUTORE: 129 DATA :29/03/2006 - 16:19:30 ---------------------------------------- La property è quella giusta il numero che gli associ gli dà gli stati: 0-Enabled 1-Disabled 2-Disabled and Grayed Out ---------------------------------------- AUTORE: 278 DATA :29/03/2006 - 18:17:05 ---------------------------------------- [quote:28z9q4hy]Ma così il controllo sparisce. Vorrei solamente che l'utente non potesse cliccarci sopra.[/quote:28z9q4hy] Sorry, non avevo capito \":oops:\" \":oops:\" Fortuna che ti ha risposto correttamente Nicola \":wink:\" ---------------------------------------- ================================================================================ Problema con il timeout della event structure ================================================================================ AUTORE: 1178 DATA :29/03/2006 - 16:42:41 ---------------------------------------- Salve a tutti, sono un neoiscritto al forum. Sto realizzando una subVI nella quale è inserita una struttura a eventi che reagisce alla pressione di un pulsante nella main VI e scrive su file i valori di tensione letti in ingresso in quell'istante. Per implementarla ho usato la registrazione dinamica degli eventi. Ho però un problema con la gestione del timeout: se inserisco un tempo di timeout molto piccolo (tra 1 e 10 ms) mi capita di "perdere" alcune pressioni del pulsante presente nel front panel. Ho come l'impressione che la struttura non faccia in tempo a gestire l'evento in quanto il tempo di timeout è troppo breve, ma allo stesso tepoho l'esigenza di mantenere tale tempo ad un valore non superiore ai 10 ms. Esiste un modo per risolvere il mio problema? Vi ringrazio in anticipo per i consigli e per le eventuali soluzioni proposte. ---------------------------------------- AUTORE: 129 DATA :29/03/2006 - 18:16:07 ---------------------------------------- Mi sembra di capire dal tuo post che acquisisci e gestisci la event structure in un unico loop. Date le esigenze di acquisizione, dovresti crearti un loop di acquisizione puro e un loop di presentazione/analisi dove gestisci la tua event structure. Questa sarebbe un architettura parallela, per passare i dati da un loop ad un altro potresti utilizzare veraiabili locali o le code. Ti consiglio questo [url=http://www.ilvg.it/forum/download.php?id=297:yzde6pvh]articolo[/url:yzde6pvh] e [url=http://www.ilvg.it/forum/download.php?id=803:yzde6pvh]questo[/url:yzde6pvh] per meglio copmprendere le dinamiche di acquisizione presentazione parallela. ---------------------------------------- AUTORE: 247 DATA :29/03/2006 - 18:36:51 ---------------------------------------- Ciao, la struttura ad eventi non può perdere pressioni del pulsante se hai registrato l'evento correttamente; al massimo, se l'evento non è immediatamemnte processabile, la struttura lo mette in una coda e, appena finita l'esecuzione del codice legato all'evento che sta attualmente processando, recupera tutti gli eventi in attesa senza perderne uno. Un discorso a parte va fatto per l'evento di timeout: questo evento non viene incodato ma scatta solo in assenza di altri eventi, la sua esecuzione quindi non avviene ogni tot ms impostati con tempo di timeout ma ogni tot ms SOLO se non capitano altri eventi. In sostanza l'evento di timeout non può farti perdere pressioni. Più che una perdita di evento qundi dovresti piuttosto riscontrare, in casi critici, che premendo una sola volta il pulsante, il codice ad esso associato viene eseguito con ritardo, mentre premendo più volte che, al limite, viene eseguito il codice associato più volte tutto d'un colpo. Potresti quindi perdere pressioni solo nel caso in cui tu vada già a leggere il valore del pulsante prima(altre strutture ad eventi? lettura del controllo nel Vi principale?) o contemporaneamente alla struttura ad eventi, consumando così, nel posto sbagliato, l'evento di pressione. Cmq sia prova a postare il codice od un vi che utilizzi la stessa architettura per rendere più facile e meno "retorico" qualsiasi aiuto!:D BYE. ---------------------------------------- AUTORE: 1178 DATA :30/03/2006 - 10:38:16 ---------------------------------------- Innanzitutto vi ringrazio per le risposte. Nel mio primo post ho dimenticato di dire che il subVI in questione è inserito in un ciclo while presente nel VI principale da cui viene richiamato. Ho paura che, come dice apollon, io consumi nel posto sbagliato l'evento di pressione: probabilmente vado a leggere il valore del pulsante o prima o in contemporanea alla struttura ad eventi, oppure ho commesso qualche errore nella registrazione stessa dell'evento. Allego il suBVI in questione (timestamp2.vi): riceve in ingresso dieci dati dinamici, il percorso del file su cui andare a scrivere i valori di tensione, il Ctl Refnum relativo al pulsante presente nel VI principale. L'evento a cui è sensibile la struttura presente nel subVI è proprio il cambiamento di stato del pulsante presente nel VI principale. ---------------------------------------- AUTORE: 247 DATA :05/04/2006 - 21:13:10 ---------------------------------------- Ciao, ...ora si spiega tutto!!! Perdi le pressioni semplicemente perchè la struttura ad eventi non è sempre attiva dato che non è in un ciclo while parallelo al main ma viene attivata e termina tutte le volte che richiami il sub VI... Praticamente la tua esecuzione procede così: - avvio del VI main, che penso contenga un timer per ciclare ogni tot. - la struttura ad eventi non è attiva, la pressione del pulsante non viene percepita dal codice. - il subVI viene eseguito (prima o dopo l'altro codice presente nel ciclo main). - registri l'evento. - la struttura si mette in ascolto della pressione(attesa del primo evento). - la pressione viene rilevata. - dopo il tempo di time-out scatta l'evento time-out che manda in esecuzione la struttura(caso time-out). - la pressione smette di essere rilevata. - non essendo in un ciclo la struttura non viene riptuta ed esci dal subVI. - finisci di eseguire il codice nel main che non è ancora stato eseguito nella presente iterazione. - prosegui l'esecuzione con il successivo ciclo del main, ricomincia tutto. Come vedi quindi ti accorgi della pressione solo per il tempo in cui sei nel subVI e non è ancora scattato il timeout. L'errore più grave sta quindi nel fatto che pur volendolo non lasci attiva la struttura ad eventi come vorresti, inoltre in questo modo continui a registrare l'evento tutte le volte che esegui il subVI. Devi mettere la struttura ad eventi in un ciclo parallelo al main nel VI principale oppure rendere l'esecuzione del subVI indipendente da quella del main(caricamento dinamico del VI, vedi [url=http://www.ilvg.it/forum/viewtopic.php?t=765&start=0&postdays=0&postorder=asc&highlight=:r6anyrot]qui[/url:r6anyrot]). BYE. ---------------------------------------- AUTORE: 1178 DATA :07/04/2006 - 10:44:55 ---------------------------------------- [quote="apollon":2xz1nut6] Devi mettere la struttura ad eventi in un ciclo parallelo al main nel VI principale oppure rendere l'esecuzione del subVI indipendente da quella del main(caricamento dinamico del VI, vedi [url=http://www.ilvg.it/forum/viewtopic.php?t=765&start=0&postdays=0&postorder=asc&highlight=:2xz1nut6]qui[/url:2xz1nut6]). BYE.[/quote:2xz1nut6] Grazie mille per i suggerimenti, ho provato entrambe le soluzioni e alla fine quella che è risultata essere più consona alle mie esigenze è stata quella relativa ai due cicli in parallelo (l'altra soluzione faceva sì che il main VI si fermasse durante l'esecuzione del subVI, non era esattamente il funzionamento che volevo ottenere). Ho gestito l'acquisizione dati in un ciclo, ed ho passato i dati ottenuti al ciclo contenente la struttura ad eventi tramite l'utilizzo di variabili locali: c'è qualche controindicazione particolare nell'utilizzo di tali variabili? Grazie ancora per la gentilezza e la disponibilità dimostrata! ---------------------------------------- AUTORE: 247 DATA :07/04/2006 - 10:53:53 ---------------------------------------- [quote:3aan9m6h]c'è qualche controindicazione particolare nell'utilizzo di tali variabili? [/quote:3aan9m6h] Ciao, per l'utilizzo di variabili locali o meno leggi l'articolo/tutorial di esodar "Data Share in LabVIEW" che trovi nella sezione articoli, cmq se tutto funziona va bene così no \";-)\"! BYE. ---------------------------------------- AUTORE: 1178 DATA :07/04/2006 - 11:26:13 ---------------------------------------- [quote:3are9pgp] cmq se tutto funziona va bene così no \";-)\"! BYE.[/quote:3are9pgp] Hai perfettamente ragione! \";-)\" Ho letto l'articolo e dovrei essere a posto, grazie ancora per l'aiuto! ---------------------------------------- AUTORE: 1465 DATA :22/09/2006 - 19:24:33 ---------------------------------------- \":D\" Grazie a tutti mi avete illuminato avevo un problema con un event structure, non riuscivo a chiuderla il problema era la flat sequence ma una volta fuori dalla fla il problema è risolto il VI si chiude alla prima pressione del tasto EXIT ciao e grazie \":idea:\" \":idea:\" \":idea:\" ---------------------------------------- ================================================================================ SCHEDA NI-PCI 6221 M SERIES ================================================================================ AUTORE: 1161 DATA :29/03/2006 - 18:15:26 ---------------------------------------- Qualcuno sa usare la scheda, della "National instruments" : - PCI 6221 M SERIES DAQ RISPONDETE SE SAPETE COME FARLA FUNZIONARE UTILIZZANDO LABVIEW O ALTRO. Come riuscire a controllare gli ingressi e le uscite. (vorrei sapere) ---------------------------------------- AUTORE: 645 DATA :30/03/2006 - 08:25:51 ---------------------------------------- Con il DAQ Assistant non riesci? Per sfruttare le schede M devi installare insieme a LabView i driver DAQ-mx. Poi nel pannello degli Express trovi il DAQ Assistant che ti permette di comunicare con la scheda e acquisire i singoli canali. ---------------------------------------- AUTORE: 1161 DATA :30/03/2006 - 13:59:55 ---------------------------------------- grazie. Avevo ankio trovato degli esempi ke mi aiutavano a comunicare con la scheda... Però questo Daq aAssistent non l'ho trovato... Mi sembra però che i driver mx li ho installati. Te la sai utilizzare questa scheda?? Hai qualche esempio? Ora me la devo studiare..... ciao. ---------------------------------------- AUTORE: 645 DATA :30/03/2006 - 16:02:41 ---------------------------------------- Per sicurezza i driver li puoi trovare all'indirizzo http://digital.ni.com/softlib.nsf/webca ... =132070_US (puoi scaricare le 7.4 o le 7.5 che con LabView 7.0 e 7.1 lavorano bene. Ci sono anche le 8 ma io ti consiglio le precedenti). Dopo aver installato i driver sicuramente tra gli "Express --> Input" trovi il DAQ Assistant. Quando posizioni il DAQ Assistant sul Block Diagram si apre una schermata di guida che ti permette di configurare la scheda di acquisizione. Io ho provato a lavorare con una scheda serie M e una morsettiera BNC e tramite il DAQ Assistant sono riuscito a realizzare acquisizioni di tensione senza particolari difficoltà (beh, prima è meglio leggere qualche indicazione direttamente sul manuale della scheda o sul sito National). ---------------------------------------- ================================================================================ Interazione mouse/array ================================================================================ AUTORE: 1171 DATA :30/03/2006 - 07:42:57 ---------------------------------------- Ciao ragazzi e complimenti per il bel forum sono nuovo di labview e vi pongo questa domanda: dunque io ho diversi array contenenti ognuno delle info di un elemento del precedente ad esempio nel primo array ho degli objects, nel secondo ho delle info relative agli n objects del primo array e via in modo gerarchico... ora vi chiedo esiste un modo con il quale l'utente, cliccando su un elemento del primo array, possa vedeer aggiornarsi, ad es, le info nel secondo array in base alla scelta? spero di essere stato chiaro grazie a tutti dario ---------------------------------------- AUTORE: 645 DATA :30/03/2006 - 08:12:14 ---------------------------------------- Puoi essere più preciso? In che senso cambiando il primo devono aggiornarsi gli altri? ---------------------------------------- AUTORE: 1171 DATA :30/03/2006 - 09:12:01 ---------------------------------------- nel senso che io voglio vedere nel secondo array il contenuto di ciascun elemento del primo array tipo: io clicco sul primo elemento del primo array enel secondo vedo il contenuto clicco sul secondo elemento del primo array e nel secondo si aggiornano i contenuti ecc.... grazie ---------------------------------------- AUTORE: 645 DATA :30/03/2006 - 09:57:40 ---------------------------------------- Può funzionare? ---------------------------------------- AUTORE: 838 DATA :30/03/2006 - 10:34:12 ---------------------------------------- mi sa che non va bene l'esempio di magic in pratica hai una tabella a sinistra, con vari elementi poi nella seconda hai il dettaglio di ogni singolo elemento cliccando nella cella del primo array ti si aggiorna il secondo è possibile con le event structure, in pratica guardi in che cella hai clikkato e lo passi come indice per settare i valori del secondo più o meno è quello che ti serve? :lol ---------------------------------------- AUTORE: 1171 DATA :30/03/2006 - 10:38:28 ---------------------------------------- a lavoro ho la versione 6.1 e non me lo apre per cui non posso dirti se va bene \":(\" grazie ---------------------------------------- AUTORE: 1171 DATA :30/03/2006 - 10:41:29 ---------------------------------------- [quote="minzuk":227uhiwv]mi sa che non va bene l'esempio di magic in pratica hai una tabella a sinistra, con vari elementi poi nella seconda hai il dettaglio di ogni singolo elemento cliccando nella cella del primo array ti si aggiorna il secondo è possibile con le event structure, in pratica guardi in che cella hai clikkato e lo passi come indice per settare i valori del secondo più o meno è quello che ti serve? :lol[/quote:227uhiwv] si decisamente molto vicino a quello che mi serve immaginate di avere un array di array e cliccando sul primo valore vorrei "espandere" l'array li contenuto forse detto in questa chiave è più semplice \":)\" mi date tutte le info su come farlo al meglio? grazie ---------------------------------------- AUTORE: 645 DATA :30/03/2006 - 10:45:10 ---------------------------------------- Purtroppo non riesco a convertire il VI per LabView 6.1. Qualcuno può? Nel VI che ho allegato l'idea è che scegliendo un elemento del primo vettore, il secondo si "sposta" per mostrare l'elemento collegato (nel VI ho considerato collegati gli elementi con lo stesso indice). ---------------------------------------- ================================================================================ Dubbio tremendo - Fieldpoint e property node ================================================================================ AUTORE: 1168 DATA :30/03/2006 - 11:35:12 ---------------------------------------- Salve a tutti. Ho sempre dubbi atroci... Premessa: sto sviluppando un controllo macchina (a stati) con un sacco di booleani che poi riflettono ingressi/uscite digitali di un sistema fieldpoint. In ogni stato ci sono un po' di operazioni su questi booleani, intervallati con dei while loop in attesa che si verifichino degli ingressi. Modifico i valori dei booleani con i relativi property node "value". La mia intenzione è di mettere un loop in parallelo che aggiorni gli ingressi/uscite del fieldpoint ogni tot. Funzionerebbe? Meglio se uso un property node "value signaling" e gestisco una struttura a eventi che aggiorna il fieldpoint? Spero di essere stato chiaro. Grazie mille in anticipo. P. ---------------------------------------- AUTORE: 683 DATA :01/04/2006 - 19:52:33 ---------------------------------------- ho realizzato un'applicazione con i field point che controllano un macchinario purtroppo non ho gestito I/O booleani Io acquisisco valoti di tensioni e temperature e controllo flussimetri e riscaldatori. Ho realizzato una semplice struttura con più loop che vanno tanquillamente in parallelo e che comunica tra loro mediante variabili locali con una temporizzazione diversa e secondo la priorità del dato che sto leggendo o controllando, l'uso dei property node credo che sia comodo visto che hai ingressi logici forse ti conviene usare delle "occurence" vedi topic "arresto rapido" su questo forum un'altro consiglio e di suddividere su più file i controllo/acquisizione se le variabili diventano molte così hai un parallelismo più elevato e se ti si blocca un Vi gli altri continuano a girare evitando magari situazioni spiacevoli per linkare i dati tra + vi ti consiglio di usare o il VIServer o le varibili globali buon lavoro se hai bisogno chiedi pure ---------------------------------------- ================================================================================ Struttura ricorsiva di controllo ================================================================================ AUTORE: 645 DATA :31/03/2006 - 09:57:37 ---------------------------------------- Allego una struttura ricorsiva per il controllo di una variabile: in questo caso è una stringa ma immaginate che sia il codice di un errore... Cosa ne dite? ---------------------------------------- AUTORE: 838 DATA :31/03/2006 - 10:55:01 ---------------------------------------- non capisco cosa possa servire per il codice d'errore BOH cosa intendi? or ora la posso trovare utile per l'inserimento obbligatorio di una password, altro non ne vedo l'utilizzo ---------------------------------------- AUTORE: 645 DATA :31/03/2006 - 11:41:57 ---------------------------------------- Io l'ho usato per gestire l'inserimento di una password per l'accesso ad un database: se la password è sbagliata la connessione con il database segnala un errore e la struttura continua a chiedere la password fino a quando il dato inserito è corretto. ---------------------------------------- AUTORE: 838 DATA :31/03/2006 - 14:32:51 ---------------------------------------- allora ho capito bene \":D\" e se uno non ha la password si spara e crasha il sistema \":twisted:\" ---------------------------------------- AUTORE: 645 DATA :01/04/2006 - 15:16:43 ---------------------------------------- Beh l'idea è di adattare il VI alle proprie esigenze. Se poi ci sono soluzioni migliori ben vengano. Io cercavo un sistema per interrompere il programma e assicurare la correttezza dei dati inseriti e ho trovato questo. ---------------------------------------- ================================================================================ Intervalli ================================================================================ AUTORE: 1029 DATA :02/04/2006 - 09:21:56 ---------------------------------------- Salve ragazzi! Ho un segnale che viene visualizzato con l'EX XY GRAPH, in ordinate ho ampiezza mentre in ascissa ho frequenza. Come si fa a selezionare un intervallo di frequenza senza usare l'autoscale? In pratica vorrei che supponendo di conoscere la frequenza del segnale f0, tramite un ingresso che chiamo SPAN, il grafico mi deve visualizzare il segnale tra "f0-Span" e "f0+SPAN". Ringrazio anticipatamente tutti quanti. ---------------------------------------- AUTORE: 487 DATA :03/04/2006 - 07:53:21 ---------------------------------------- La cosa più semplice che mi viene in mente è quella di settare i marker dell'asse delle ascisse (togliendo logicamente l'autoscala), attribuendo al primo valore "f0-span" ed all'ultimo "f0+span" e suddividendo la scala come meglio credi ---------------------------------------- AUTORE: 1029 DATA :03/04/2006 - 08:59:49 ---------------------------------------- Ciao coma! Grazie per la risposta. Se ho capito bene devo andare su PROPERTIES dell' EX XY GRAPH andare su SCALES e digitare i valori su minimum e maximum desiderati. Il problema è che sia f0 che SPAN (nel pannello frontale sono dei controlli) possono variare e vorrei che ad ogni loro variazione il grafico visualizzi il giusto intervallo [f0-SPAN, f0+SPAN]. Se con il tuo suggerimento si può fare questo, potresti spiegarmi meglio cosa dovrei fare? Ti ringrazio per la collaborazione. ---------------------------------------- AUTORE: 487 DATA :03/04/2006 - 09:06:47 ---------------------------------------- Penso che il metodo più corretto sia quello di utilizzare una event structure per gestire il cambiamento della scala delle ascisse quando i tuoi controlli cambiano di valore. ---------------------------------------- AUTORE: 247 DATA :03/04/2006 - 13:44:08 ---------------------------------------- Ciao, prova a guardare l'esempio che allego, usa semplicemente un property node per settare la scala in X sulla base di f0 e di un parametro di span. Per ottenere la reference relativa al tuo grafico XY fai click destro sul terminale dell'indicatore(rosa), e scegli Create Reference, successivamente scegli un property node dalla palette advanced(o copia quello nel mio VI), fai click destro e vai a recuperare max e min della scala X seguendo: click destro->Properties->X Scale->Range->Minimum (Maximum) e poi realizza i collegamenti. Tutto ciò sempre che i valori plottati non cambino(post-processing), altrimenti devi inserire nel ciclo anche l'aggiornamento dei valori e poi della scala. Bye. ---------------------------------------- AUTORE: 1029 DATA :03/04/2006 - 16:33:50 ---------------------------------------- Grazie mille Apollon! Era quello che cercavo e ora funziona perfettamente. Non so come ringraziarti! Grazieee! ---------------------------------------- ================================================================================ variabili locali ================================================================================ AUTORE: 487 DATA :03/04/2006 - 07:49:14 ---------------------------------------- Ciao a tutti, vorrei chiedervi un chiarimento sull'uso delle variabili locali e del property node "value": quando conviene usare un metodo e quando l'altro per settare il valore di una variabile? Che differenza esiste fra i due metodi? Quale dei due preferite usare? ---------------------------------------- AUTORE: 884 DATA :03/04/2006 - 08:25:43 ---------------------------------------- ciao, il property node è sensibilmente più lento della variabile locale perchè provoca il refresh grafico dell'oggetto. La variabile locale è decisamente più veloce per settare il valore ma non ti garantisce il refresh dell'indicatore immediato (per questo è più veloce) a meno di non aver bisogno di refresh istantanei del valore di un indicatore non c'è motivo di preferire il property alla local (per settare il valore, chiaramente il prop ti permette di modificare e leggere tante proprietà dell'indicatore) Accorto alle race conditions... ---------------------------------------- AUTORE: 487 DATA :03/04/2006 - 08:28:25 ---------------------------------------- Grazie Milaus, ora mi è tutto più chiaro. ---------------------------------------- AUTORE: 1168 DATA :05/04/2006 - 08:23:41 ---------------------------------------- Da niubbo che sono io, mi piace usare i property node connettendo i terminali di errore in modo da sfruttare il dataflow per sequenzializzare delle operazioni. Ciaux P. ---------------------------------------- ================================================================================ Percorsi 8.3 ================================================================================ AUTORE: 927 DATA :03/04/2006 - 08:18:31 ---------------------------------------- C'è un modo pratico per convertire un percorso nel formato compatibile col DOS? Ad esempio C:\Documenti -> C:\DOCUME~1 ---------------------------------------- AUTORE: 884 DATA :04/04/2006 - 08:33:35 ---------------------------------------- ciao, non so se risponde ma sotto la shell di dos (con windows) puoi utilizzare le apici per esprimere percorsi 'complessi': "c:\program files" ---------------------------------------- AUTORE: 927 DATA :04/04/2006 - 10:19:52 ---------------------------------------- Lo so, ma molti programmi dos non accettano quella notazione nei parametri che gli vengono passati dalla linea di comando. ---------------------------------------- AUTORE: 884 DATA :05/04/2006 - 17:11:51 ---------------------------------------- credo che risolva... ---------------------------------------- AUTORE: 927 DATA :06/04/2006 - 10:36:34 ---------------------------------------- Bè così ero capace anch'io \":P\" In pratica aggiungi manualmente il ~1, ma non è detto che sia un 1 come tu stesso hai commentato. Inoltre non gestisci i percorsi con spazi, punti e cazzi vari. Non credo che la strada giusta sia tentare di rifarsi l'algoritmo, ma chiamare una API di windows, GetShortPathName ---------------------------------------- ================================================================================ esperienze con LUAView ================================================================================ AUTORE: 4 DATA :03/04/2006 - 09:56:21 ---------------------------------------- Nessuno di voi ha avuto modo di provare [b:8jqdcq58][url=http://www.citengineering.com/LuaVIEW/:8jqdcq58]LuaVIEW[/url:8jqdcq58][/b:8jqdcq58]? Mi piacerebbe scambiare informazioni a riguardo. Ciao, ---------------------------------------- ================================================================================ Aggiornre un file di log ================================================================================ AUTORE: 1168 DATA :03/04/2006 - 10:50:54 ---------------------------------------- Buongiorno a tutti. Allego un picolo VI che aggiorna un file di LOG ogni volta che viene chiamato scrivendo data e ora attuale e una stringa passata dal chiamante. Il file è passato attraverso una reference. Se la reference contiene un path non valido, si apre una dialog per chiedere all'utente di selezionarlo (e poi aggiorna il valore contenuto nella reference per le seguenti aperture). Magari a qualcuno fa comodo. Ciao P. ---------------------------------------- ================================================================================ aprire + pannel ================================================================================ AUTORE: 1191 DATA :03/04/2006 - 17:31:34 ---------------------------------------- salve sto creando un applicazione con LV e DSC, usando 3 pannelli, passando da uno all'altro con dei pulsanti posti sul pannel stesso; l'unico problema e che mi si posta la posizione dei pulsanti , quando fero e rifaccio partire l'applicazione. mi spiego meglio: i miei 2 pulsanti sono posti in alto a destra; lancio l'applicazione, passo da un pannel all' altro e popi stoppo tutto. faccio delle modifiche al diagram, e rilancio il tutto, a questo punto i pulsanti del pannel che ho modificato (come codice) sono o un po + in basso o piu in alto degli altri 2 pannel. come si fa a settare una posizione fissa in un pannel di dimensioni sempre euguali? ho provato con i settaggi del VI proprety, ma niente. grazie ---------------------------------------- AUTORE: 838 DATA :04/04/2006 - 07:50:11 ---------------------------------------- vi proprieties windows size: gli metti sempre la stessa risoluzione a tutti e 3 windows apparance:customize:autocenter dovrebbe bastarti \":D\" ---------------------------------------- AUTORE: 1191 DATA :05/04/2006 - 08:28:40 ---------------------------------------- grazie,ma gia provato. se percaso mi muovo con le scroll bar, e poi rilancio il tutto lui prende la posizione ultima delle scrollbar emilio ---------------------------------------- AUTORE: 129 DATA :06/04/2006 - 07:10:39 ---------------------------------------- Puoi sempre togliere la visualizzazione delle barre di scorrimento. ---------------------------------------- ================================================================================ grafica di cluster ================================================================================ AUTORE: 116 DATA :04/04/2006 - 07:37:28 ---------------------------------------- ciao Forse è una cosa banale, ma io non riesco a togliere la cornice al cluster. Dovendo fare una tabella di 30 righe in formato array contenente dei cluster di boleani e stringhe, la cornice mi prende un sacco di spazio(grafico). Per voi è possibile toglierla o è una proprietà che non si può modificare? Un grazie a chiunque mi da un suggerimento o una risposta. Alberto \":?\" ---------------------------------------- AUTORE: 838 DATA :04/04/2006 - 07:48:05 ---------------------------------------- mi sa che non si può, cque se qualcuno ha qualche suggerimento per ridurla al minimo viene utile anche a me \":D\" ---------------------------------------- AUTORE: 884 DATA :04/04/2006 - 08:16:42 ---------------------------------------- si può, si può! a parte gli scherzi puoi utilizzare i classic control, 4° riga 2° colonna. se prendi il cluster di questo tipo, che è un pò bruttino, puoi con la tool palette, selezionare il colore trasparente (la "T" in alto a destra nel dialog dei colori) per il bordo. non so se sia possibile fare lo stesso con i cluster normali (mi pare di no) ---------------------------------------- AUTORE: 884 DATA :04/04/2006 - 08:30:04 ---------------------------------------- chiedo perdono per la fessagine, pare non diminuire lo spazio tra un cluster ed il successivo, semplicemente elimina la cornice. ---------------------------------------- ================================================================================ come lanciare il web server ? ================================================================================ AUTORE: 1193 DATA :04/04/2006 - 12:06:41 ---------------------------------------- Domanda secca, forse troppo stupida, ma non sono riuscito a trovare il modo di farlo: come posso lanciare programmaticamente il web server? ---------------------------------------- AUTORE: 4 DATA :06/04/2006 - 14:06:06 ---------------------------------------- Ciao, devi usare un property node in questo modo. ---------------------------------------- ================================================================================ LETTURA EMAIL ================================================================================ AUTORE: 445 DATA :05/04/2006 - 08:45:27 ---------------------------------------- Ciao a tutti E' possibile leggere una email tramite labview e mettere il contenunto in una stringa??? Grazie Niky ---------------------------------------- AUTORE: 4 DATA :05/04/2006 - 13:50:02 ---------------------------------------- Certo ti "basta" implementare il protocollo POP su TCP (la documentazione è pubblica) non è comunque lavoro da 2 ore. Esiste un toolkit della NI che contiene una serie di VI orientati alla comunicazione quindi HTTP, FTP, SMTP e anche POP che farebbe al caso tuo. Il toolkit, però, è costoso (1000€ circa). Ciao, Alessandro. ---------------------------------------- ================================================================================ Inserimento nuovi valori nei campi controllo Stringa ================================================================================ AUTORE: 645 DATA :05/04/2006 - 13:16:26 ---------------------------------------- Il mio problema è che devo inserire una stringa in un controllo e dopo aver inserito il nuovo dato premo un pulsante che innesca una struttura ad eventi per controllare l'esattezza del dato. Se dopo aver inserito il nuovo dato clicco da qualche parte nel VI posso premere il pulsante dell'evento e fare il controllo effettivamente sul nuovo dato inserito; se non clicco da nessuna parte ma seleziono subito il bottone il controllo viene eseguito sul dato precedente. È possibile eliminare questo clic in più? PS: chiedo scusa se il titolo del topic non è proprio esatto ma non riuscivo a scriverlo in altro modo. ---------------------------------------- AUTORE: 838 DATA :05/04/2006 - 13:44:17 ---------------------------------------- event structure, value changed? ---------------------------------------- AUTORE: 645 DATA :05/04/2006 - 13:51:24 ---------------------------------------- Dunque, io uso il value change per controllare quando viene premuto il bottone ma non faccio il controllo e eventi direttamente sulla casella di testo. È per questo che ho il problema del cliccare da qualche parte per far "accettare" il nuovo valore al controllo. È che preferisco controllare il bottone piuttosto che la variazione della stringa. ---------------------------------------- AUTORE: 645 DATA :05/04/2006 - 14:11:15 ---------------------------------------- Ok, risolto: se entro nella "event structure" con il "property node" del controllo di testo (settato su Value) anzichè con la casella di testo collegata tramite filo l'elaborazione viene fatta sul nuovo valore inserito. ---------------------------------------- AUTORE: 724 DATA :05/04/2006 - 14:43:57 ---------------------------------------- clicca dx sul controllo stringa e seleziona update value while typinig ---------------------------------------- AUTORE: 645 DATA :05/04/2006 - 14:49:23 ---------------------------------------- Non so dirti esattamente cosa succede ma se seleziono "Update value while typing" rallenta il VI. ---------------------------------------- AUTORE: 838 DATA :05/04/2006 - 15:23:49 ---------------------------------------- in teoria ogni carattere che inserisci è come su tu inviassi la nuova stringa, quindi probabilmente fai molti più cicli del dovuto ---------------------------------------- AUTORE: 113 DATA :05/04/2006 - 16:17:18 ---------------------------------------- In alternativa invece di abilitare Update while typing, puoi selezionare Limit to single line; il testo inserito nella stringa genera l'evento Value changed solo dopo che premi Invio. ---------------------------------------- AUTORE: 838 DATA :05/04/2006 - 17:01:41 ---------------------------------------- ma voi l'event structure la inserite nel vostro ciclo while con un time out? io generalmente faccio un ciclo while parallelo e lo metto in attesa fino alla generazione dell'evento cosa è meglio? ---------------------------------------- AUTORE: 113 DATA :05/04/2006 - 17:34:35 ---------------------------------------- Dipende dall'esigenza. Normalmente utilizzo il secondo metodo che hai detto: due while loops paralleli, uno per gli eventi e uno per fare operazioni cicliche. Ho due vantaggi: - gli eventi sono generati solamente quando previsto, e spesso la generazione di un evento può essere molto pesante in termine di risorse - riesco ad implementare meglio gli user events L'unico problema è che si deve prevedere uno scambio di dati efficiente fra i due loops: evito local variables, tantomeno globals, utilizzo invece queues, notifiers.... ---------------------------------------- AUTORE: 645 DATA :05/04/2006 - 20:35:51 ---------------------------------------- Scusate, visto che io invece uso l'event structure dentro un while e collego all'event structure un time-out basso (10 sec di solito) che problemi posso avere? Potreste allegare un esempio di struttura a eventi con i due cicli paralleli? ---------------------------------------- AUTORE: 247 DATA :05/04/2006 - 21:22:58 ---------------------------------------- Ciao, cerca nel forum i vecchi post come [url=http://www.ilvg.it/forum/viewtopic.php?t=373&start=0&postdays=0&postorder=asc&highlight=event:1v9kkwlr]questo[/url:1v9kkwlr]. Ti allego anche un VI di gepponline leggermente modificato che illustra la struttura parallela. BYE. ---------------------------------------- AUTORE: 838 DATA :06/04/2006 - 07:32:57 ---------------------------------------- perfetto io l'ho sempre tenuto a parte e mi sono trovato sempre bene \":D\" ---------------------------------------- AUTORE: 645 DATA :06/04/2006 - 08:38:06 ---------------------------------------- Grazie per l'esempio e le indicazioni!!! ---------------------------------------- ================================================================================ cambiamento control ================================================================================ AUTORE: 1015 DATA :05/04/2006 - 14:36:06 ---------------------------------------- ciao a tutti, mi servirebbe un blocchetto (se esiste) che sia in grado di capire quando viene cambiato il valore di un control. qlc mi può aiutare? grazie 1000 ---------------------------------------- AUTORE: 838 DATA :05/04/2006 - 15:25:56 ---------------------------------------- event structure - value change in un ciclo while a parte metti una event structure, dentro metti la condizione value change sul controllo che devi tener controllato ---------------------------------------- AUTORE: 645 DATA :05/04/2006 - 15:27:37 ---------------------------------------- Di per sè non c'è un blocchetto he controlla quando cambiano i valori dei controlli in giro per il VI. È la struttura ad eventi che ti permette di controllare i cambiamenti delle variabili (blocco "Event Structure" nella paletta dei cicli). ---------------------------------------- ================================================================================ Aggiungere ad un array valori registrati in momenti diversi ================================================================================ AUTORE: 1195 DATA :06/04/2006 - 10:30:52 ---------------------------------------- La versione che ho di Labview è la 6.0 Sto comandando tramite labview due assi, registrando a intervalli regolari la posizione degli assi stessi e un segnale analogico. Un asse va in avanti, poi torna indietro fino al punto di partenza e nel frattempo un rugosimetro misura la rugosità di un pezzo. Sposto di un pochino l'altro asse e ricomincio, in modo da ottenere una griglia di valori. Il problema è che a me interessano solo i valori registrati durante la corsa di andata dell'asse; gli altri sono superflui e non devono essere registrati oppure eliminati successivamente. Il programma che gestisce tutto il movimento è scritto nel linguaggio della scheda assi (che è molto vecchia, ha più di 10 anni) e io richiamo questo programma tramite labview. Ho già separato la corsa di andata da quella di ritorno tramite: - un ciclo while - all'interno di questo una sequenza: il primo frame dà inizio alla parte di programma che comanda la corsa di andata nel secondo interrogo la scheda assi sui valori di posizione e input ogni tot millisecondi fino a che l'asse (X) non raggiunge la posizione voluta il terzo frame dà inizio alla parte che riporta l'asse X in posizione e fa muovere l'asse Y del passo desiderato il quarto frame aspetta finchè tutta la sequenza di comandi non è terminata - si ritorna al ciclo while, che fa ricominciare il tutto finchè non si sono fatti un certo numero di cicli. Tutto molto complicato ma soprattutto molto rigido, perchè per fare interagire la scheda e labview ho solo una piccola libreria del produttore che mi permette di fare poco. I valori in uscita dal secondo frame, come ho detto, devono essere registrati, quindi pensavo di metterli tutti in tre vettori e di scriverli poi in tre file txt. Il problema è che se collego i valori in uscita ad un array, labview mi registra o solo i valori del primo ciclo o peggio solo l'ultimo valore dell'ultimo ciclo, a seconda di quale uso fra i tanti modi che ho provato (ho provato praticamente tutte le funzioni che permettono di gestire le array). Per esempio la funzione insert into array sembrerebbe adatta a rimediare, ma devo collegare sia una input array sia una output array e devono per forza essere diverse. Possibile che non esista una funzione che metta i nuovi valori in fondo al vettore, anche se l'uscita dei valori viene interrotta e poi ripresa? Neanche Labview 8.0 permette di fare questo? Ho provato a rimediare salvando su dei file txt diversi ad ogni ciclo, ma considerando che i cicli dovrebbero essere 1000 mi ci vuole di più a richiamare 3000 file e a unirli con un altro programma piuttosto che a cancellare i valori indesiderati, sempre con un altro programma. Ho allegato anche un'immagine del block diagram. Si vede: il ciclo for esterno (che ha come condizione che una certa variabile letta dalla scheda assi sia diversa da zero) il secondo frame all'interno di questo un altro ciclo while che registra i valori finchè la variabile di prima resta >0 (diventa <0 quando la corsa dell'asse x è terminata e ridiventa >0 quando il movimento di ritorno è terminato). La parte centrale con tutti i comandi in rosa mi serve per poter dare piccoli comandi alla scheda assi. Si ha un po' un'idea del gran casino che è far interagire labview e la scheda: ad es devo moltiplicare per 10000 l'input e ridividerlo poi in labview, perchè labview nella trasformazione da stringa a numero perde i decimali... Oppure il modo stesso di passare da una parte del programma della scheda a un altro, con tutto il casino della variabile V1, ma purtroppo interrogare sullo stato di una variabile è quasi l'unico modo che ho per "parlare" con la mia vetusta scheda assi e il budget di un'università italiana non permette di più. Qualcuno riesce a districarsi in questo macello e ad aiutarmi? Chiara ---------------------------------------- AUTORE: 1195 DATA :06/04/2006 - 10:31:52 ---------------------------------------- Ho scordato di allegare l'immagine... ---------------------------------------- AUTORE: 1195 DATA :06/04/2006 - 10:34:21 ---------------------------------------- Ecco: [url:2xpslujr]http://img98.imageshack.us/img98/7690/schermjpg5iz.jpg[/url:2xpslujr] ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 11:32:08 ---------------------------------------- Ciao, così è un po' diffcile capire(almeno per me) quello che cerchi di fare. Vediamo, tu hai dei valori che salvi in un array in 3 momenti diversi, e vuoi poi unire questi 3 array in un unico array? ps.Se ti va posta la vi. ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 11:34:26 ---------------------------------------- [quote="Mignu":3o24bmrb]...cut Si ha un po' un'idea del gran casino che è far interagire labview e la scheda: ad es devo moltiplicare per 10000 l'input e ridividerlo poi in labview, perchè labview nella trasformazione da stringa a numero perde i decimali... Oppure il modo stesso di passare da una parte del programma della scheda a un altro, con tutto il casino della variabile V1, ma purtroppo interrogare sullo stato di una variabile è quasi l'unico modo che ho per "parlare" con la mia vetusta scheda assi e il budget di un'università italiana non permette di più. Qualcuno riesce a districarsi in questo macello e ad aiutarmi? Chiara[/quote:3o24bmrb] Labview ha un blocchetto apposta per trasformare da stringa a numero frazionario, in questo modo non perdi i decimali. ---------------------------------------- AUTORE: 4 DATA :06/04/2006 - 11:49:26 ---------------------------------------- Ci sono vari modi per fare quello che dici. Uno semplice è abilitare l'indexing del while più esterno (come hai fatto per quello più interno) in questo modo ottieni una matrice 2D che riporterà una riga per ogni scasione, ogni riga conterrà le misure fatte durante una scansione. Più in generale e per ottenere più flessibilità ti consiglio di usare dli shift registrer nei while o for loop, questi ti permettono di "portare" dati da una iterazione del ciclo alla successiva... potresti portare i valori registrati durante una iterazione in quella successiva per aggiungerli a quelli letti nell'iterazione attuale. Ciao, ---------------------------------------- AUTORE: 1195 DATA :06/04/2006 - 14:15:17 ---------------------------------------- Blow, quello che devo fare è molto più lunghetto: devo registrare 1000 volte 1000 valori (tutto questo però moltiplicato per tre variabili: quota x, y e z[la z sottoforma di segnale analogico, da trasformare poi in micron). Infatti la distanza che faccio percorrere all'asse X è di 1mm e registro valori ogni micron, quindi 1000 valori per riga. La superficie che devo misurare è di 1mm x 1mm, dunque con un passo fra una riga e l'altra sempre di 1 micron avrò 1000 righe, così alla fine ottengo 1000x1000 punti nello spazio, distanziati di un micron in orizzontale e verticale e con quota Z variabile (che mi viene dall'input del rugosimetro). Per questo è così importante per me liberarmi dei valori superflui, dato che mi raddoppiano il numero di variabili da elaborare (e già sono "tantine"...). Ci vogliono più o meno 5 ore perchè tutta l'acquisizione venga completata catturando valori a una frequenza non troppo elevata (dai 10 ms in su va bebe). Il consiglio di Ale194 non so se può essermi utile, lo proverò. Sembra ragionevole comunque. Cosa sono gli shift registrer? Il .VI non l'ho allegato per non allegare anche tutta la libreria e la sotto-libreria con i programmi in C per comunicare con la scheda assi e comunque mancherebbe la scheda assi... E anche perchè a parte il pezzo che ho catturato ci sono altre cose, rischiate di incasinarvi. Comunque appena posso lo allego con il minimo di libreria indispensabile per visualizzare i subVI che si vedono in figura (quelli in bianco e nero). ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 14:39:07 ---------------------------------------- Probabilmente hai impostato male la realizzazione della tua vi, comunque sia facciamo che tu acuisisci per ongi spostamento l'altezza Z proveniente dal rugosimetro ok? Quindi per ogni spostamento che sono 1000x1000 spostamenti, devi salvare la varibaile Z giusto? Puoi benissimo inserire in una matrice a due dimensioni i valori di Z e fin qui problemi zero credo, spiegami dov'è che incappi nel tuo problema? Che in pratica la macchina fa le letture anche mentre torna indietro? e queste letture non ti servono? E' questo che non capisco bene(è molto probabile che io sia stupido \":D\" ) ---------------------------------------- AUTORE: 1195 DATA :06/04/2006 - 14:39:34 ---------------------------------------- Ho trovato la funzione shift register. Ma cosa di preciso devo collegare alle freccette? ---------------------------------------- AUTORE: 1195 DATA :06/04/2006 - 14:43:40 ---------------------------------------- No blow, non ho impostato male la realizzazione del .VI, ho provato in mille modi e questo è l'unico possibile. C'è una scheda assi con un suo linguaggio e un suo modo di interagire con labview di mezzo. Sì, il problema è che non voglio registrare i valori di quando torna indietro, quindi mi voglio portare dietro i vecchi valori ad ogni loop. Lo shift register sembrerebbe fare al caso mio. E' un'opzione che non conoscevo... ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 14:44:07 ---------------------------------------- Allora alla "freccia" che c'è a sinistra ci colleghi all'esterno il valore che vuoi si inizializzato all'inizio del ciclio, in pratica il primo valore che deve entrare nel ciclo, poi alla "freccia" di destra ci colleghi il valore che vuoi che ritorni all'inizio del cilo.In pratica quello che colleghi alla destra rentra dalla sinistra \":)\" ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 14:51:56 ---------------------------------------- Non volevo mica offenderti dicendoti che è impostata male, è solo che è frequente "pensare" male la VI ed arrivati ad un certo punto capire che così fatta diventa difficile applicare modifiche e/o correggere errori. Ora provo a fare qlc per vedere se ti può andare bene. ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 15:05:13 ---------------------------------------- Ecco prova a vedere se qlc del genere ti può essere d'aiuto, e se centra con quel che dici perchè magari non ho azzeccato per niente il tuo problema... [img:3n8ur1b6]http://img97.imageshack.us/my.php?image=vi9zn.jpg[/img:3n8ur1b6] ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 15:06:35 ---------------------------------------- spetta l'immagine nn si vede prova qui [url:1oycebec]http://img97.imageshack.us/my.php?image=vi9zn.jpg[/url:1oycebec] ---------------------------------------- AUTORE: 201 DATA :06/04/2006 - 15:07:57 ---------------------------------------- eh..al posto di 2 mettici 1000... ps.ma xkè nn si possono modificare i post?In questo modo costringete a farne sempre uno nuovo! ---------------------------------------- ================================================================================ La prima mappa dei "wireworker" italiani! ================================================================================ AUTORE: 4 DATA :06/04/2006 - 11:05:45 ---------------------------------------- [b:3dem2agp]ILVG.it presenta la prima mappa dei "wireworker" italiani![/b:3dem2agp] Visto il grande numero di iscritti a ILVG.it, la mappa degli utenti è anche [b:3dem2agp]la prima mappa delle competenze LabVIEW in Italia[/b:3dem2agp]. Puoi trovare gli utenti ILVG.it più vicini a te ma anche aziende e professionisti che utilizzano LabVIEW. [size=150:3dem2agp][b:3dem2agp][url=http://www.frappr.com/?a=showmap&gid=614165&src=js_map:3dem2agp]Aggiungiti[/url:3dem2agp]subito o [url=http://www.ilvg.it/index.php?option=com_wrapper&Itemid=112:3dem2agp]consulta[/url:3dem2agp] la mappa![/b:3dem2agp][/size:3dem2agp] ---------------------------------------- ================================================================================ Impostazione VI ================================================================================ AUTORE: 1168 DATA :06/04/2006 - 16:00:31 ---------------------------------------- Salve a tutti. Da buon niubbo, mi metto a riscrivere un programma di controllo macchina (prima esperienza di programmazione "vasta") che proprio non riesce a piacermi. \":o\" Il sistema una camera a vuoto (quindi pompe) con una decina di elettrovalvole col rispettivo indicatore di posizione (controllo e indicatore booleano). Inoltre deve essere gestito qualche strumento di misura via RS232. Utilizzo un fieldpoint della serie 18xx e una scheda multiseriale sul PC. L'impostazione che userei è quella della macchina a stati alla quale in parallelo gira un ciclo che legge lo stato degli strumenti. Tutto il bel coclo while temporizzato a 100 ms. In parallelo a tutto ancora una struttura ad eventi che gestisce gli interlocks. Per comodità metterei tutti i controlli in un cluster e unbandlerei a seconda. Per cambiare i valori dei booleani un property node. Allego un esempio per chiarirmi meglio.... Secondo voi funziona!?!?!? E' una buona idea? Ciaux P. ---------------------------------------- AUTORE: 247 DATA :06/04/2006 - 17:38:04 ---------------------------------------- Ciao, ..no..direi che devi rifletterci ancora un pò, indicativamente per ottenere la dose di interattività che desideri devi usare sicuramente più cicli paralleli...così com'è mi dispiace ma è inutilizzabile... BYE. ---------------------------------------- AUTORE: 1168 DATA :07/04/2006 - 11:19:52 ---------------------------------------- La struttura ad eventi per gestire gli interlocks in parallelo alla macchina a stati almeno ha senso? Chiedo l'aiuto del pubblico! \":D\" P.S. non avevo specificato che la nella struttura che gestisce la disabilitazione, passo le reference dei controlli... ---------------------------------------- ================================================================================ Ancora problemi con ADO ================================================================================ AUTORE: 487 DATA :07/04/2006 - 09:36:01 ---------------------------------------- Scusatemi tutti, ma periodicamente mi ritrovo a scrivere a questo forum per problemi che mi capitano con le funzioni ado. L'ultimo è il seguente: ho sviluppato un programma che si interfaccia con un database di access, l'ho compilato ed ho utilizzato l'eseguibile per diverso tempo. Ieri accedendo nuovamente al programma mi è apparso il messaggio d'errore che ho allegato e non sono più riuscito a farlo funzionare. Qualcuno mi saprebbe dire cosa può essere successo e come fare per risolvere il problema ? Grazie. ---------------------------------------- AUTORE: 4 DATA :07/04/2006 - 10:15:53 ---------------------------------------- Usi ODBC driver per connetterti al DB Access? se si potrebbe dipendere da questo, prova a controllare le impostazioni di connessione del driver e verifica che almeno lui riesca a collegarsi. Ciao, ---------------------------------------- AUTORE: 487 DATA :07/04/2006 - 10:21:27 ---------------------------------------- Grazie per la risposta. Mi potresti dire come fare per verificare il funzionamneto del ODBC driver? ---------------------------------------- AUTORE: 4 DATA :07/04/2006 - 10:32:11 ---------------------------------------- Strumenti di amministrazione >> gestione origine dati >> DNS utente dovresti trovare la configurazione del driver ODBC per access, controlla i parametrie vedi se ti tornano, purtroppo l'ODBC non mette a disposizione un bottone di test della connessione 8come invece fà mysql ad esempio) quindi per provare il funzionamento devi ingegnarti un pò... magari esistono dei tool apposta ma non sono un grande fan di access e non ne conosco. Ciao, ---------------------------------------- AUTORE: 487 DATA :07/04/2006 - 10:49:40 ---------------------------------------- I parametri dell'ODBC sono corretti, anche perchè non li ho modificati e all'inizio funzionava tutto perfettamente. Ho fatto delle altre prove ma non riesco a creare più nessuna connessione all'ODBC ---------------------------------------- AUTORE: 4 DATA :07/04/2006 - 10:54:12 ---------------------------------------- non riesci a creare connessioni da "Strumenti di amministrazione >> gestione origine dati >> DNS utente" ? brutto segno, labview (questa volta) potrebbe non essere colpevole! sembresebbe un problema legato a ACCESS... ---------------------------------------- AUTORE: 487 DATA :07/04/2006 - 13:04:18 ---------------------------------------- Forse mi sono spiegato male: da strumenti di amministrazione >> origine dati è tutto a posto, mentre non riesco a creare la connessione con le funzioni ADO di Labview. Anzi, più precisamente, "create connection" funziona regolarmente mentre quando lancio "open connection" mi ritrovo l'errore ---------------------------------------- AUTORE: 645 DATA :07/04/2006 - 13:45:04 ---------------------------------------- Prova a creare un file ".udl" (crea un file ".txt" vuoto con blocco note e poi fai "Salva con nome"--> <nome>.udl (dal menù "tipo di file" scegli "tutti i file"). Doppio clic per aprire il file creato: puoi scegliere a quale database collegarti (con i DSN che hai impostato in "Strumenti di amministrazione"-->"Orgine dei dati (ODBC)") e fare un test di connettività. Ma leggendo i tuoi post credo che questo test andrà a buon fine. I dati che passi al blocco di LabView per l'accesso al database sono corretti (scusa la domanda banale ma magari...)? ---------------------------------------- AUTORE: 645 DATA :07/04/2006 - 13:47:36 ---------------------------------------- Stavo rileggendo l'errore... come fai a connetterti al database? Usi un "method" di LabView dopo aver aperto la connessione con l'ActiveX ADO o usi un tool apposta? ---------------------------------------- AUTORE: 487 DATA :07/04/2006 - 14:01:57 ---------------------------------------- Ciao MagicBotolo, non sono riuscito ancora a fare la prova che mi hai suggerito: ho creato il file udl ma adesso devo assegnarli il nome del dsn che ho assegnato nell "origine dati"? Se così è il risultatyo del test risulta negativo: connessione non riuscita. In labview utilizzo le funzioni contenute in LabSQL-1.1a, ma come ripeto funzionava tutto bene fino ad ieri, per cui non penso sia un errore di codice. ---------------------------------------- AUTORE: 645 DATA :07/04/2006 - 14:09:03 ---------------------------------------- Quando apri il file ".udl" nella scheda "Connessione" come "Origine Dati" inserisci il DSN del database che hai settato in "Origine dati". Inserisci anche UserID e Password (se necessari) e poi premi "Verifica connessione". Ti restituisce un errore? Cosa scrive esattamente? ---------------------------------------- AUTORE: 487 DATA :07/04/2006 - 14:56:37 ---------------------------------------- Il problema è a monte: non riesco a settare il provider; mi restituisce il messaggio "Provider non più disponibile. Verificare che il provider sia installato correttamente." ---------------------------------------- AUTORE: 645 DATA :07/04/2006 - 15:13:23 ---------------------------------------- Mi dispiace ma non ho mai incontrato un errore sul provider. Mi è capitato di ricevere errore dovuto al server spento o ai dati di accesso sbagliati. Non saprei proprio cosa fare. ---------------------------------------- AUTORE: 487 DATA :10/04/2006 - 07:11:58 ---------------------------------------- Grazie comunque. Se riuscirò a risolvere il problema vi farò sapere. Ciao ---------------------------------------- AUTORE: 487 DATA :12/04/2006 - 15:38:35 ---------------------------------------- Mi sono arreso!! Dopo aver reinstallato il framework, il service pack 2 di windows xp e dopo aver ripristinato alcune dll senza ottener alcun risultato, ho preso una drastica decisione: reinstallare il sistema operativo!! Ora funziona tutto perfettamente!!!! ---------------------------------------- AUTORE: 4 DATA :14/04/2006 - 08:43:17 ---------------------------------------- evviva windows! ---------------------------------------- ================================================================================ Question: Property node and dataflow order.. ================================================================================ AUTORE: 963 DATA :07/04/2006 - 10:16:37 ---------------------------------------- A single property node executes properties in data flow order? ---------------------------------------- AUTORE: 247 DATA :07/04/2006 - 10:47:25 ---------------------------------------- Hi, what do you mean by dataflow order for a single property node? Do you mean top-down sequential execution order for a multi-property single node? BYE. ---------------------------------------- ================================================================================ Interfaccia Array ================================================================================ AUTORE: 927 DATA :07/04/2006 - 13:38:37 ---------------------------------------- Normalmente, se si clicca col destro su un elemento di array durante l'esecuzione, esce un menù con alcune funzioni, come "delete element" e "insert element before". Nel mio programma ho diversi array di cluster, ma se li clicco col destro non esce niente \":o\" Se copio e incollo l'intero pannello in un VI vuoto e lo mando in esecuzione continua, i menù degli stessi array funzionano. Avete idea di cosa possa essere?? ---------------------------------------- AUTORE: 4 DATA :07/04/2006 - 13:43:34 ---------------------------------------- Prova a controllare se l'opzione cerchiata in rosso è attiva. Ciao, ---------------------------------------- AUTORE: 927 DATA :07/04/2006 - 16:01:25 ---------------------------------------- Era quello infatti! Grazie ---------------------------------------- ================================================================================ Creare finestra secondaria in un vi ================================================================================ AUTORE: 1108 DATA :08/04/2006 - 08:44:56 ---------------------------------------- Ciao a tutti \":D\" Vorrei creare una "finestra" richiamabile dal mio vi (magari mediante un bottone) in cui impostare alcuni parametri, giusto per mettere on pò d'ordine nel mio pannello principale (che è unico e piuttosto disordinato, benchè perfettamente funzionante)...insomma una specie di pannello richiamabile in cui impostare alcuni parametri di setup \":mrgreen:\" Qualche suggerimento? Ciao, Sundance ---------------------------------------- AUTORE: 1165 DATA :08/04/2006 - 11:06:22 ---------------------------------------- un paio di strade immediate (ma ci sono molte altre soluzioni) potrebbero essere queste: 1) Inserisci nel tuo VI prinvipale un SubVI nel cui Front Panel puoi mettere controlli per impostare tutti i tuoi parametri, eventualmente raccolti insieme in un Cluster; questo Cluster potrebbe poi essere immerso dentro un ciclo While (ricordati di temporizzare sempre in questi casi, se non sai cosa sia, chiedilo) che tu potrai terminare quendo avrai finito di settare i tuoi parametri; imposta poi le proprietà del SubVI (facendo click col tasto destro del mouse nel SubVI e scegliendo la voce "SubVI Node Setup") e settando infine "Show Front Panel when called" e "Close afterwords if originally closed"; ora quando vuoi puoi richiamare programmaticamente (ad esempio con un tasto booleano ed un Case) questo VI che si aprirà e richiuderà dopo l'uso; potrai disporre del cluster dei tuoi settaggi dal VI principale. 2) La seconda strada che ti suggerisco è un po' più macchinosa, ma molto più flessibile, specie se devi compilare il programma e distribuirlo a chi non ha l'ambiente di sviluppo a disposizione per modificare il sorgente; crea un file di testo (in formato ASCII puro) che puoi chiamare come vuoi, ad esempio "Settaggi.ini" e che puoi aprire e leggere in qualsiasi punto del tuo programma chiamante, recuperando i settaggi, che puoi definire anche off line, a programma sia in running che no; in un siffatto file *.ini puoi mettere ad esempio un parametro per ogni riga, con il nome del parametro e il suo valore di seguito (ad esempio: "path=c:/programmi/mioprogramma/settaggi.ini"); ora con un SubVI puoi rileggere questo File di testo e con le funzioni di stringa recuperare i valori che ti servono. Se ora vuoi che questi settaggi assumano la funzione di variabili di sistema li devi scrivere su qualche controllo del Front Panel (ai cui valori potrai poi riaccedere o con i collegamenti o tramite ad esempio le variabili locali), oppure li puoi memorizzare all'interno di uno Shift Register (se il tuo programma principale risiede dentro un ciclo), che viene riaggiornato solo quando tu richiami il Case che legge il SubVI dei parametri; in questa maniera di fatto avresti implementato quella che genericamente si chiama una "Variabile Funzionale". Ciao e in bocca al lupo, Enrico. ---------------------------------------- AUTORE: 1108 DATA :09/04/2006 - 18:10:32 ---------------------------------------- Ciao Enrico, anzitutto grazie per la risposta \":D\" Proverò a usare la strategia che mi hai suggerito al punto 1); se dovessi incontrare difficoltà insormontabili, chiederò lumi \":)\" Grazie anche per la risposta sul ciclo FOR, da cui s'evince che il "run continuosly" è MALE \":evil:\" Sundance ---------------------------------------- ================================================================================ Gestione seriale: creare un contatto elettrico tra due pin ================================================================================ AUTORE: 848 DATA :08/04/2006 - 18:02:31 ---------------------------------------- Salve a tutti, sono nuovo del forum e di LabVIEW, vi chiedo quindi di avere un pò di pazienza se le mie domande rilsultano banali. Vengo al problema: ho una seriale a 9 pin sul computer da gestire, labview la vede, ma non riesco a personalizzarla. Vorrei riuscire a fare questo: creare un booleano, che mi permetta di aprire e chiudere il contatto tra due pin. Faccio un esempio banale: se ho il "vertical toggle switch" su OFF, il contatto tra i pin 2 e 3 (scelti arbitrariamente) deve essere aperto, se lo metto su ON il contatto tra i due deve esssere chiuso, ovvero in corto circuito. Come posso realizzare questo? grazie tanti a tutti ---------------------------------------- AUTORE: 680 DATA :09/04/2006 - 11:26:21 ---------------------------------------- non puoi creare un contatto tra due pin della seriale... ogni pin ha la sua funzione: Pin 1 Received Line Signal Detector (Data Carrier Detect) Pin 2 Received Data Pin 3 Transmit Data Pin 4 Data Terminal Ready Pin 5 Signal Ground Pin 6 Data Set Ready Pin 7 Request To Send Pin 8 Clear To Send Pin 9 Ring Indicator per fare quello che dici, devi avere un'interfaccia all'esterno (del pc) che sia in grado di comunicare in modo seriale con porta rs232. Un'alternativa, secondo me, più semplice è quella di usare un pin della porta parallela (che funziona con segnali logici TTL) ed un relè... vedi schema allegato.... ciao... ---------------------------------------- AUTORE: 848 DATA :09/04/2006 - 21:08:07 ---------------------------------------- Ok! mi piace l'idea che mi hai dato, mi metto subito a lavorarci: non avresti mica un VI già fatto per gestire la porta LPT? grazie tante per l'aiuto \":wink:\" ---------------------------------------- AUTORE: 680 DATA :10/04/2006 - 17:26:01 ---------------------------------------- certo... ecco qui... ---------------------------------------- AUTORE: 848 DATA :11/04/2006 - 21:16:40 ---------------------------------------- Grazie ancora sto provando il circuito... ci deve essere qualcosa che non va, perchè il relè non si eccita... Ho usato un relè a 24VDC, alimentato a 24VDC. Dalla porta LPT del pc tutto regolare, esce un 4,2VDC, misurata tra il pin 1 e il 18. Provo ancora... ti faccio sapere grazie di nuovo ---------------------------------------- AUTORE: 1108 DATA :12/04/2006 - 12:02:38 ---------------------------------------- [quote="Voicetech":24vqlfji]Grazie ancora sto provando il circuito... ci deve essere qualcosa che non va, perchè il relè non si eccita... Ho usato un relè a 24VDC, alimentato a 24VDC. Dalla porta LPT del pc tutto regolare, esce un 4,2VDC, misurata tra il pin 1 e il 18. Provo ancora... ti faccio sapere grazie di nuovo[/quote:24vqlfji] Che ciruito stai usando per pilotare il tuo rele'? Nel dimensionamento, tieni presente che i pin della parallela sono in grado di erogare solo pochi mA \":!:\" Se vuoi qualche spunto per il circuito di pilotaggio del rele', puoi dare uno sguardo su epanorama: http://www.epanorama.net/circuits/paral ... laycontrol (scorri la pagina, verso la fine ci sono i circuiti). Sundance ---------------------------------------- AUTORE: 680 DATA :12/04/2006 - 12:36:22 ---------------------------------------- se hai seguito il mio schema che transistor hai usato?? qual'è la resistenza di base e la corrente di collettore del transistor (la corrente di collettore è quella che scorre sulla bobina del relè)... ---------------------------------------- AUTORE: 680 DATA :12/04/2006 - 12:45:16 ---------------------------------------- scusa, ho riguardato lo schema che ti avevo fatto... e mi sono accorto di un errore............... il diodo D1 va posto al contrario (in antiparallelo alla bobina)... quindi il catodo del diodo va collegato a VCC e l'anodo al collettore del transistor...... scusa....... ti allego nuovamente lo schema.... ---------------------------------------- AUTORE: 848 DATA :12/04/2006 - 20:11:27 ---------------------------------------- ooooooook!! FUNZIONA!!!! \":D\" mille grazie, nn scusarti assolutamente!!! Lo tengo in test tutta la notte, poi terminerò il mio progetto. [b:zwjijffq]grazie di nuovo LinuX[/b:zwjijffq] \":wink:\" [i:zwjijffq]p.s. grazie x le info Sundance[/i:zwjijffq] \":D\" ---------------------------------------- AUTORE: 1165 DATA :12/04/2006 - 23:19:56 ---------------------------------------- Ho approfittato spudoratamente anche io dei tui suggerimenti, grazie Linux, ciao, Enr. enrico.guadagni@euclide.biz ---------------------------------------- AUTORE: 1392 DATA :03/08/2006 - 09:54:43 ---------------------------------------- Ciao a tutti ho visto il circuito per comandare relè tramite impolsi ttl(porta parallela) di linux120. Vorrei gentilmente sapere come va modificato per usare relè 24 volt anzichè 12... grazie a tutti ciao ---------------------------------------- AUTORE: 680 DATA :03/08/2006 - 11:28:41 ---------------------------------------- il relè in 24 v che usi è AC o DC ? ---------------------------------------- AUTORE: 680 DATA :03/08/2006 - 12:14:32 ---------------------------------------- comunque, se è in dc lo puoi inserire nel circuito gia allegato nei post precedenti senza nessuna modifica. se invece è ac ti allego lo schema controllato da un interrutore elettronico (transistor) (rele_1.jpg) eventualmente, se devi pilotare un carico sulla rete dell'enel o comunque su una tensione alternata, puoi utilizzare un triac (vedi schema allegato); quello utilizzato nello schema sopporta al massimo correnti di 10A. bye.... ---------------------------------------- AUTORE: 1392 DATA :03/08/2006 - 14:18:49 ---------------------------------------- grazie mille allora userò lo schema di prima... perchè il rele è 24V DC, e può supportare per la corrente 220 V 6A... praticamente devo comandare tramite la parallela del PC questi rele che accenderanno e spegneranno delle luci...... Allora intanto inizio a fare l'elenco di quello che mi serve per realizzare il tuo circuito: - 1 Diodo 1N4148 - 1 resistenza 3k9 - 1 transistor BD139 - 1 Rele che gia ho... anche se è con doppio contatto (8 pin ) uso solo i pin che m servono.... - Un alimentatore 24 V - Basetta millefori - Un po di fili - Un connettore parallelo... tralascio nulla?? e seguo questo tuo circuito.... download.php?id=912 P.S Se ho ben capito per attivare un rele mi basta usare un solo pin della parallela compreso tra 2 e 9 giusto? tks mille ciao ---------------------------------------- AUTORE: 680 DATA :03/08/2006 - 18:56:45 ---------------------------------------- si attento che i pin dal 18 al 25 vanno collegati a massa comune... buon lavoro.. ---------------------------------------- AUTORE: 1392 DATA :03/08/2006 - 19:06:09 ---------------------------------------- Quindi devo collegare i pin da 18 a 25 al negativo dell' alimentatore da 24 Volt? Scusa tt queste domande ma nn vorrei bruciare la parallela del mio buon vekkio portatile 486... \":)\" ---------------------------------------- AUTORE: 680 DATA :03/08/2006 - 20:57:26 ---------------------------------------- esattamente devi collegae i pin dal 18 al 25 al negativo dell'alimentatore a 24 VDC.... ---------------------------------------- ================================================================================ Elenco Path in un file ================================================================================ AUTORE: 482 DATA :10/04/2006 - 07:42:55 ---------------------------------------- ..ma ciao! ho un problemino con un file di testo. Il mio programma utilizza diversi path per fare svariate cose. Per evitare di andare a modificarli nel programma ogni volta, ho pensato di creare un file di testo con all'interno l'elenco dei path che mi servono. Per poterli visualizzare nel file di testo in modo ragionevole (uno sopra l'altro) o gli metto un "CR" come carattere separatore, oppure creo un array bidimensionale, lo "ribalto" ed è fatta. Tenendo conto della prima soluzione, ho realizzato il mio eseguibile, solo che, in un PC funziona correttamente. In un altro invece mi legge correttamente i path, ma quando li passo ai vari VI mi restituisce un errore "1" qualcosa tipo File is missing, anche se il path contenuto nella variabie è corretto. Avete qualche suggerimento? \":?:\" ---------------------------------------- AUTORE: 1168 DATA :10/04/2006 - 08:13:41 ---------------------------------------- Hai provato a leggere/scrivere un file .ini? Io sono nuovo, ma per le impostazioni mi sto trovando bene con queste funzioni!!!! Il file è comunque in formato ASCII e quindi te le editi come vuoi col blocco note. Ciaux P. ---------------------------------------- AUTORE: 1168 DATA :10/04/2006 - 08:15:24 ---------------------------------------- Dimenticavo: i sistemi operativi sono nella stessa lingua? non è che per caso usi delle cartelle di sistema che su una macchina si chiamano, per esempio "program files" e nell' altra "programmi"? Ciaux P. ---------------------------------------- ================================================================================ Scrivere nell'header di un file tiff ================================================================================ AUTORE: 997 DATA :10/04/2006 - 10:50:07 ---------------------------------------- Ciao, volevo sapere se fosse possibile aggiungere all'header di un file tiff informazioni custom da recuparare alla successiva apertura, come ad esempio valori di alcuni parametri di interesse (temperatura, pressione, etc dell'immagine in questione). Grazie, ale ---------------------------------------- AUTORE: 4 DATA :10/04/2006 - 11:31:52 ---------------------------------------- direi di si, prova a consultare [url=http://www.ee.cooper.edu/courses/course_pages/past_courses/EE458/TIFF/:1snxbmk3]questo sito[/url:1snxbmk3]. Ciao ---------------------------------------- AUTORE: 997 DATA :10/04/2006 - 17:00:16 ---------------------------------------- Grazie Ale. Però vorrei sapere se esistono vi che svolgano questo compito. Oppure se sono costretto a scrivere il codice in c e poi richiamarlo da Labview. ale ---------------------------------------- ================================================================================ Nascondere il valore dell'index display ================================================================================ AUTORE: 706 DATA :10/04/2006 - 13:22:10 ---------------------------------------- Ciao a tutti la mia richiesta è abbastanza sciocca ma mi è stata richiesta per lo sviluppo del mio programma, anche se per me è una cosa inutile..cmq.. Il mio scopo è quello di leggere all'interno di una directoty i nomi delle sotto-directory che sono contenute al suo interno. Il fatto è che l'indicator che ne viene fuori è un array. La richiesta che mi è stata fatta è quella di tener visibile le frecce per l'incremento e il decremento e nascondere il valore dell'index display associato. E' possibile? vi allego un piccolo esempio di cosa dovrei fare. P.S Utilizzo LabView 7.0 Grazie a tutti. Ciao ---------------------------------------- AUTORE: 4 DATA :10/04/2006 - 13:33:39 ---------------------------------------- Usando gli indicatori\controlli array non puoi... puoi invece usare i text ring o gli enumerativi. Guarda l'esempio alegate, secondo me ti potrebbe essere utile. Ciao, ---------------------------------------- ================================================================================ Date/Time To Seconds ================================================================================ AUTORE: 927 DATA :10/04/2006 - 14:18:35 ---------------------------------------- La funzione Date/Time To Seconds converte un cluster contenente giorno, mese, ecc. (date time rec) in un timestamp universale in secondi. Il cluster lo considera espresso in orario locale, cioè con il fuso orario e l'ora legale, che compensa quando fa la conversione. Il mio problema è che ho dei cluster che sono già espressi nell'orario universale di Greenwich, come posso fare per convertirli in timestamp ignorando le impostazioni locali? ---------------------------------------- AUTORE: 927 DATA :21/04/2006 - 09:38:06 ---------------------------------------- Ok vedo che è sceso un religioso silenzio \":lol:\" Domanda più semplice: come potrei fare per ricavare l'attuale valore numerico del fuso orario (es. +1 per l'Italia)? Ho provato con Format date/time e il codice %Z, ma restituisce il nome del fuso a parole ("ora legale Europa occidentale")... ---------------------------------------- AUTORE: 1050 DATA :21/04/2006 - 13:12:23 ---------------------------------------- Ciao, ho trovato un articolo interessante su: http://www.windowsitpro.com/Article/Art ... 14966.html Ti invio la soluzione implementata (dipendente dal sistema operativo, nel mio caso su Windows2000). giusto per rompere il silenzio... \":wink:\" ---------------------------------------- AUTORE: 927 DATA :21/04/2006 - 14:33:50 ---------------------------------------- Funziona anche su XP! ---------------------------------------- AUTORE: 927 DATA :20/11/2006 - 08:35:19 ---------------------------------------- Per la cronaca: in Labviù 8 il problema non si pone più, perchè Date/Time To Seconds e simili hanno un nuovo ingresso per specificare se l'orario è locale o GMT. ---------------------------------------- ================================================================================ Prestazioni e rallentamento applicazione ================================================================================ AUTORE: 1199 DATA :10/04/2006 - 15:22:38 ---------------------------------------- Salve a tutti, sto realizzando un'applicazione utilizzando LabVIEW, e stò riscontrando alcune anomalie, a livello di prestazioni del mio sistema. Partendo dal presupposto che si tratta di un'applicazione piuttosto complessa con numerosi "vi" in esecuzione asincrona (devo contemporaneamente acquisire dei canali analogici, con un buon campionameto generare delle funzioni da inviare su uscite analogiche, e nel frattempo pilotare una centrale idraulica, supervisionandone l'andamento attraverso IO digitali), io ho notato che ognittanto tutto il sistema "si siede". Mi spiego meglio: oltre ad una decina di vi in esecuzione in background, ovviamente, nella mia applicazione ho anche alcuni vi che mi curano l'interfaccia grafica, la visualizzazione dei grafici e i pilotaggi da parte dell'utente delle varie utenze, e di questi mantengo monitorizzata l'esecuzione a livello di tempo ciclo. Ogni tanto tutti i vi, vanno in pausa per tre o quattro secondi, poi ripartono, e la cosa si verifica più o meno una o due volte al minuto, fino in alcuni casi anche ad arrivare a quattro o cinque volte in un minuto. Il problema maggiore è che il problema lo fa quando ancora la mia applicazione è quasi ferma, nel senso che non stò ancora visualizzando grafici, o facendo quasi nulla di quello che l'applicazione dovrà arrivare a fare. Ovviamente (prevengo la prima domanda che farei io) tutti i cicli sono dotati di metronomo o sono Timed Loop, in modo da rilasciare risorse al sistema operativo, e con un tempo variabile tra i 100 ms al secondo. All'interno delle opzioni di LabVIEW ho abilitato l'opzione "Run with multiple threads". L'impressione è che il sistema ognitanto, cerchi di rilasciare delle risorse o della memoria, ma oltre al fatto che l'utilizzo della CPU mi va al 100%, non ho notato particolari picchi nell'uso della memoria. Qualcuno di voi ha qualche consiglio? ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:43:59 ---------------------------------------- potrebbe essere in effetti un problema di memoria. Potresti fare questi test per verificare. disabilita l'opzione che impone a LV di deallocare la memoria non appena possibile e, facendo eseguire la tua applicazione, controlla con task manager che la memoria non aumenti in situazioni di "idle" e in maniera costante legati ai rallentamenti (anche se nel caso fosse questo il problema i rallentamenti dovrebbero sparire... ascapito della memoria che crescerebbe inesorabilmente fino al crollo del sistema) puoi anche usare il profile vi per indagare a fondo sull'utilizzo di tempo e memoria di ogni vi del sistema. non sono metodi risolutivi ma almeno capisci qual'è il problema.. Ciao, ---------------------------------------- AUTORE: 1199 DATA :15/05/2006 - 09:18:24 ---------------------------------------- Dunque, l'opzione di cui mi parli, mi era familiare, ed in effetti sono andato subito a cercarla nelle opzioni di LabVIEW, ma non riuscendo a trovarla. Sono andato a verificare nelle versioni precedenti, e ho trovato l'opzione solo nella versione 6.1, mentre non risco a trovarla nella versione 7.1 ne nella 8.0.1. Conosci un angolo nascosto, di cui ignoro l'esistenza, in cui rintracciare tale l'opzione? Aggiungo anche alcuni particolari non trascurabili, venuti alla luce, tra tutte le varie prove che sto comunque effettuando: innanzitutto, nella mia segnalazione avevo trascurato di specificare che stavo lavorando con LabVIEW 8.0.1. La cosa assume importanza a fronte del fatto, che ho provato a riconvertire tutta la mia applicazione alla versione precedente di LabVIEW (la 7.1) ed il problema è magicamente sparito. Il codice è rimasto sostanzialmente invariato, se non per le piccole correzioni dovute alle differenze tra le due versioni. Ovviamente io, dovendo consegnare al mio cliente un sistema funzionanete, e non avendo ormai più tempo a disposizione per le prove ho lasciato il sistema in 7.1 e lo consegnerò così, ma il problema mi preoccupa forse anche più di prima. ---------------------------------------- ================================================================================ Area attiva front panel ================================================================================ AUTORE: 866 DATA :10/04/2006 - 15:35:28 ---------------------------------------- Ciao a tutti, devo risolvere questo problema. Ho un front panel diviso in sezioni, all'interno delle quali ci sono alcuni controlli. Vorrei che, posizionandomi con il mouse sopra ad una sezione, si attivino solo i controlli compresi all'interno della sezione. E' possibile quindi definire delle aree di attivazione??????? Grazie e ciao ---------------------------------------- AUTORE: 4 DATA :10/04/2006 - 15:58:09 ---------------------------------------- Ciao. se per te è fattibile portare tutti i controlli di una stessa area dentro un cluster allora puoi usare l'esempio che ti allego... altrimenti puoi usare una tecnica simile ma le cose si complicano soprattutto in termini di "fili da tirare"., se ne può comunque parlare. Ciao, ---------------------------------------- ================================================================================ salvataggio tabella di testo ================================================================================ AUTORE: 1170 DATA :11/04/2006 - 08:18:58 ---------------------------------------- ho caricato da un file exel una tabella e dopo averla elaborata voglio salvarla per poterla recuperare in un secondo tempo la labview ho provato con "write to spreadsheet file" e con "write characters to file" ma il vi non accetta il tipo di dati (2-arrays string) come posso fare? (labview 6i) grazie. ---------------------------------------- AUTORE: 1170 DATA :11/04/2006 - 09:56:48 ---------------------------------------- ho salvato la tabella con "write file" ma non riesco a ricaricarla (con read line from file) mantenendo la stessa formattazione (LV6i) ciao. ---------------------------------------- AUTORE: 1050 DATA :11/04/2006 - 10:58:19 ---------------------------------------- Per scrivere usa le due vi "Array to spreadsheet string" e "write char...to file"; viceversa per leggere usa "spreadsheet string to array" e "read char...from file" ciao PS: nel campo "format string" scrivi %s ---------------------------------------- AUTORE: 1170 DATA :11/04/2006 - 11:07:43 ---------------------------------------- Grazie! stavo impazzendo. ---------------------------------------- ================================================================================ interrupt in labview? ================================================================================ AUTORE: 1015 DATA :11/04/2006 - 08:45:14 ---------------------------------------- ciao a tutti, avrei bisogno di realizzare qlc sul tipo interruzioni in C, ma nn so come, e se si può,fare il labview. in pratica l'idea sarebbe questa: al verificarsi di un evento (pressione di un tasto) devo eseguire una serie di operazioni, dopodichè l'esecuzione deve riprendere dalla stesso punto in cui era arrivata prima che si verificasse l'evento. ho visto che esiste l'event structure ma nn ho ben capito se fa al caso mio, nè tanto meno come si fa a collegare l'evento alla sequenza di istruzioni da eseguire. grazie mille a tutti (anche per i problemi che mi avete già risolto \":D\" ) ---------------------------------------- AUTORE: 1015 DATA :11/04/2006 - 11:51:22 ---------------------------------------- in attesa di un vostro aiuto stavo smanettando un pò con l'event stucture. ma credo nn faccia al caso mio. ora vi spiego cosa vorrei fare, così magari potete aiutarmia trovare un'altra logica per farlo. sto sempre pilotando uno stepper comunicando con un pic. il problema nasce perchè voglio inserire uno 'stop' di emergenza per fermare il motore prima che abbia terminato l'angolo di rotazione che gli è stato richiesto. per farlo avevo pensato di agire in qst modo: 1) labview invia al pic l'angolo di rotazione desiderato via seriale 2) il pic manda gli impulsi al motore per metterlo in movimento 3) quando la rotazione è terminata il pic invia un carattere 'y' via seriale a labview che nel frattempo si era messo in attesa di ricevere qst carattere (insomma una sorta di ack) io vorrei che quando viene premuto il pulsante di stop, labview invii il carattere 's' al pic. nel pic ho programmato un'interrupt che se si riceve 's' fa terminare la rotazione e manda 'y'. usando la event structure ho qst problema: poichè la lettura della y da seriale è una funzione bloccante, se pure si verifica l'evento pressione del èpulsante di stop, l'evento viene processato solo dopo che la seriale riceve la 'y' quindi nn riesco a fermare il motore prima che abbia terminato la rotazione impostata. spero di essere stata chiara \":|\" grazie 1000 a tutti ---------------------------------------- AUTORE: 247 DATA :11/04/2006 - 14:02:06 ---------------------------------------- Ciao, ho provato a modificarti un'esempio di LV(Detect Break Event.vi) che usa l'evento su seriale per adattarlo alle tue necessità, non l'ho testato perchè non ho la seriale(bei portatili moderni..\";-)\") cmq parti da questo che dovrebbe funzionare e sicuramente non è complicato da modificare. La tempistica del VI è regolata dal timeout di 50 ms, quindi questa è la latenza massima (circa..) di ogni tuo comando di stop, puoi scendere ancora ma dato che l'interazione è umana..il tutto ha un limite! BYE. ---------------------------------------- AUTORE: 1015 DATA :11/04/2006 - 14:05:48 ---------------------------------------- apollon ti ringrazio davvero tanto per avermi addirittura modificato il VI (nn speravo in tanto \";-)\" ) ho solo 1 prob...uso labview 7.0 e nn mi fa aprire il tuo file nn è che puoi fare qlc per farmelo aprire? grazie ancora ---------------------------------------- AUTORE: 247 DATA :11/04/2006 - 15:03:03 ---------------------------------------- Ciao, ci provo direttamente io, mi dà qualche errore in fase di salvataggio ma provalo cmq...al limite poi ti mando la picture.. BYE. ---------------------------------------- ================================================================================ Stampare block diagram ================================================================================ AUTORE: 1200 DATA :11/04/2006 - 15:00:44 ---------------------------------------- Ciao, in primis complimenti per il sito, (mi sono iscritto oggi, ma in un'ora di consulatazione mi sono già chiarito parecchi dubbi). Volevo chiedere se c'era la possibilità di creare un'immagine del "block diagram" dato che devo fare una relazione sul mio misero operato (il copia e incolla non funziona poichè è molto più grande dello schermo.....) Ciao e grazie ---------------------------------------- AUTORE: 1165 DATA :11/04/2006 - 15:15:19 ---------------------------------------- Ciao e ben arrivato, concordo con te che è un bel sito pieno di spunti, spero che oltre a prenderne tu sia presto in grado di darne anche agli altri. Per il tuo problema, se ho capito bene, tu vuoi stampare una immagine del tuo Block Diagram. Se è questo il tuo scopo, lo puoi fare facilmente con il comando File del menù principale e poi sottocomando Print (File>>Print). Lì si apre una finestra con varie opzioni e tu puoi scegliere quella che si confà meglio alle tue necessità. Chiedi pure se hai ancora problemi. Ciao, enrico.guadagni@euclide.biz ---------------------------------------- AUTORE: 1200 DATA :12/04/2006 - 15:31:18 ---------------------------------------- grazie mille per la risposta, ma il mio problema è un altro.... devo fare una relazione sul lavoro da me fatto e devo allegare nel documento word il block diagram e quindi volevo sapere se c'è un modo + comodo di fare le "foto" al monitor o di scannare le stampe fatte ---------------------------------------- AUTORE: 680 DATA :12/04/2006 - 18:36:53 ---------------------------------------- premi il tasto Print Screen o Stamp .... apri paint o un programma di grafica (es. Photoshop / Gimp)... crea un nuovo documeto e ... fai "control + v" per incollare il contenuto dello schermo.... ciao.... ---------------------------------------- AUTORE: 1200 DATA :13/04/2006 - 09:06:27 ---------------------------------------- scusa per la mia insistenza... ma questo è l'unico modo vero?? \":-(\"((( Dato che non c'è lo zoom, ho già provato e quest'operazione devo farla 7-8- volte..... grazie mille lo stesso ---------------------------------------- AUTORE: 680 DATA :13/04/2006 - 09:17:07 ---------------------------------------- penso di si... (so che c'è un programma della COREL che lo fa, ma agisce allo stesso modo) cmq, se hai LabVIEW 7 prova a fare così.... vai sul menù a tendina "Window" e premi "Show Navigation Window" ingrandisci la finestra e..... ciao...... ---------------------------------------- AUTORE: 1165 DATA :13/04/2006 - 09:28:15 ---------------------------------------- Se vuoi ottenere lo scopo che hai detto in apertura di topic, cioè di avere tutta l'intera immagine del tuo block diagram, a mio avviso hai solo tre modi: 1) aumenti la risoluzione del monitor e contemporaneamente riduci la dimenzione del block diagram ordinando meglio le icone per far sì che stia tutto dentro una unica schermata (se uploadi il tuo VI mi ci posso cimentare io e poi ti riposto il tutto se mi riesce); 2) stampi il tuo block diagram come ti avevo detto sopra e poi scannerizzi il tutto; 3) usi uno screen-capture (semmai di quelli gratuiti che si trovano abbondantemente su internet, compreso il metodo che ti ha consigliato Linus120) e ti catturi schermate grafiche dal tuo monitor, eventualmente riappiccicandole insieme se necessario. Ti suggerisco di usare il primo metodo, chiedi pure se vuoi altri dettagli. Ciao, Enr. ---------------------------------------- AUTORE: 1200 DATA :13/04/2006 - 11:07:05 ---------------------------------------- grazie a tutti per gli ottimi consigli, alla fine sto procedendo come mi avete consifliato voi ma al posto di fare le foto direttamente al block diagram, ho creato una stampante virtuale e poi faccio la "foto" al nuovo file così risparmio un po' di copia e incolla.... se a qualcuno interessa allego le istruzioni ---------------------------------------- AUTORE: 1200 DATA :13/04/2006 - 11:09:57 ---------------------------------------- scusate.... ---------------------------------------- ================================================================================ lettura da seriale ================================================================================ AUTORE: 1201 DATA :11/04/2006 - 16:40:55 ---------------------------------------- Ciao a tutti, sto usando labview da pochissimo e in questo momento mi serve per lavorare su dei valori letti da seriale. Come consiglio generale mi conviene cercare sempre delle stringhe valide all'interno di bytes letti, o è poco probabile che arrivino bit di informazione non legati al dispositivo che mi sta comunicando alla seriale? Grazie ---------------------------------------- AUTORE: 247 DATA :12/04/2006 - 15:26:28 ---------------------------------------- Ciao, normalmente la trasmissione non ha problemi di rumore o almeno io non ne ho mai avuti anche con velocità fuori standard tipo 115200..è comunque buona norma inserire byte di inizio trasmissione o crc o simile in testa ed in coda al mssaggio per identificarlo e garantirne la correttezza. BYE. ---------------------------------------- AUTORE: 1103 DATA :05/05/2006 - 18:34:17 ---------------------------------------- Salve, mi pare di capire che non ti riferissi a disturbi o rumori vari bensì alla stringa che puoi leggere da un qualsiasi dispositivo. E bene quello che leggi è sempre formata da un certo numero di caratteri "di controno" o meglio di header. Quindi devi sempre estrarre le informazioni che ti servono da quella stringa, magari analizzandola appunto con lab view ed estraendo la sub stringa che ti interessa ---------------------------------------- AUTORE: 645 DATA :06/05/2006 - 23:49:29 ---------------------------------------- Solitamente ogni strumento risponde con una stringa particolare. Molti strumenti hanno stringhe simili e in generale si tratta di qualcosa del tipo <dato di inizio><dati interessanti><dato di fine>. Nel manuale delle istruzioni dello strumento che usi (eventualmente si può cercare su internet o chiedendo all'azienda costruttrice) dovrebbe esserci una parte dedicata al controllo remoto. Con LabView puoi preparare un VI che invia una richiesta allo strumento, legge la stringa di risposta, considera i caratteri interessanti e in base al valore letto prende decisioni e compie azioni. I blocchi VISA Write e Read ti permettono di comunicare con gli strumenti attraverso stringhe: dovrebbe esserci (sul manuale per esempio) qualcosa simile ad un protocollo di comunicazione con le regole da seguire e l'elenco delle "domande" da porre allo strumento per ottenere particolari "risposte". ---------------------------------------- ================================================================================ calcolo media ================================================================================ AUTORE: 1201 DATA :12/04/2006 - 15:57:40 ---------------------------------------- Ho un'ultimo problema, che non riesco a risolvere visto che mi sto cimentando ora con LabView. Allego anche il sorgente di quello che sto facendo: in poche parole leggo dei valori da seriale, e questo avviene correttamente. Una volta convertiti questi valori, che poi sono graficati, vorrei prenderne N alla volta e mostrare anche la media, ad esempio con un indicatore tipo lancetta. Il problema è che non so come mettere il ciclo for che gestisce la raccolta di N valori consecutivi da inviare al modulo mean.vi. Se qualcuno mi può dare una mano gliene sono più che grato. grazie ---------------------------------------- AUTORE: 680 DATA :12/04/2006 - 18:33:57 ---------------------------------------- ecco un esempio di come fare la media degli ultimi 4 valori..... spero possa esserti utile.... ---------------------------------------- AUTORE: 1165 DATA :12/04/2006 - 23:16:07 ---------------------------------------- Mi sono permesso di ritoccare un po' l'esempio (già chiarissimo per conto suo) di Linux120 nella speranza che ti sia ancora più chiaro, sopratutto sul metodo di calcolo della media, che in questo caso si chiama Media Mobile, ovvero Moving Average. Naturalmente il ciclo While che abbiamo usato sia Linux120 che io è stato messo lì apposta per poter usufruire degli Shift Register, ma se tu hai già un ciclo While o For non avrai bisogno di mettercene un altro apposta. Come parametro di inizializzazione degli shift register (che comunque non è indispensabile) ho preferito usare il valore 0,5 che è una media tra i fondoscala del range dei valori possibili. Devi però tener presente che i primi quattro valori andrebbero comunque scartati perchè sono influenzati dal parametro 0,5 esterno e non andrebbero presi in considerazione. Quindi la tua sequenza delle medie mobili è comunque in ritardo di quattro campioni sul segnale non mediato. Se hai qualche dubbio, chiedi. Ciao, Enr. ---------------------------------------- AUTORE: 1168 DATA :13/04/2006 - 10:52:31 ---------------------------------------- Io farei così... In questo modo per i primi valori la media non è calcolata su 4 valori, ma su quelli disponibili. Non li butti, ma non sono 4... tutto qua. a seconda dell'applicazione potrebbe avere senso. Ciaux ---------------------------------------- AUTORE: 1165 DATA :13/04/2006 - 12:02:29 ---------------------------------------- Pio purtroppo qui ho solo il 7.1 e non riesco ad aprire il tuo VI .. mica potresti downgradarlo o allegare una immagine del Block Diagram per favore? Grazie anticipate, Enr. ---------------------------------------- AUTORE: 1168 DATA :13/04/2006 - 12:31:25 ---------------------------------------- Eccolo!!!!!!! Ciaux ---------------------------------------- AUTORE: 1165 DATA :13/04/2006 - 13:24:27 ---------------------------------------- UAUHH bellissima soluzione, veramente molto astutta. Mi ci ispirerò sicuramente anche in futuro. Solo una piccola nota: non dovrebbe avere il valore "4" la costante che tu hai messo a "5" all'interno del ciclo? A regime deve essere diviso il tutto per 4 no? Ciao e alla prossima, Enr. ---------------------------------------- AUTORE: 1168 DATA :13/04/2006 - 13:26:54 ---------------------------------------- Già, hai ragione! Non è un'idea mia, lo ammetto.... E' del Sig. Dremolada! O almeno questo trucco me l'ha passato lui al corso Base I dello scorso mese. Ciaux! ---------------------------------------- AUTORE: 1201 DATA :14/04/2006 - 14:13:33 ---------------------------------------- grazie a tutti! Il problema è però dovuto al fatto che all'interno del ciclo principale acquisisco dei dati, e nel ciclo interno calcolo la media, quindi se metto un ciclo egli legge lo stesso valore del ciclo principale per N volte. Sto pensando a come risolvere il problema.... ---------------------------------------- AUTORE: 1168 DATA :14/04/2006 - 14:16:02 ---------------------------------------- Mmmm.... forse non ho capito bene io, ma il ciclo che noi abbiamo usato per il VI di esempio è il tuo ciclo principale! Ovviamente tu avrai molta robe in più!!! \":-D\" Buona pasqua! ---------------------------------------- AUTORE: 13 DATA :14/04/2006 - 15:13:52 ---------------------------------------- spero solo di aver capito bene cio' che ti serviva .. prova un po con questo .... ciao ---------------------------------------- ================================================================================ LabView invio dati tramite TCP/IP ================================================================================ AUTORE: 1203 DATA :14/04/2006 - 09:23:00 ---------------------------------------- Buon giorno a tutti. Ho un problema con la conversione dei dati. Devo implementare un protocollo dati composto da 48 bytes. Il primo campo identifica la lunghezza del pacchetto nel mio caso e` appunto 48,che devo inviare con il blocchetto TCP/IP diviso in byte quindi avro` 00001100 1byte 00000000 1 byte 00000000 1 byte 00000000 1 byte Questo perche` ogni campo del mio protocollo e` di 4 byte Il problema e` che l'oggettino fatto in LabView accetta solo stringhe in ingresso.Come faccio a convertire questo numero 48 (che potrei anche lasciare come intero e dargli la rappresentazione a 32 bit ) con il corrispettivo valore stringa? GRAZIE A TUTTI COLORO CHE MI AIUTERANNO. ---------------------------------------- AUTORE: 247 DATA :14/04/2006 - 10:11:10 ---------------------------------------- Ciao, ogni byte di dati, per essere spedito via TCP, deve essere convertito nel carattere corrispondente tramite un type cast o altra elaborazione; il tuo numero a 32 bit quindi sarà trasformato in 4 caratteri che lo rappresentano. Sotto un semplice esempio. BYE. ---------------------------------------- AUTORE: 1203 DATA :14/04/2006 - 10:32:07 ---------------------------------------- \":oops:\" Grazie tanto per il tuo aiuto,ma ho la versione 7.0 di labView,pertanto ti chiedo cortesemente di convertire il VI. Grazie di cuore \":lol:\" ---------------------------------------- AUTORE: 4 DATA :14/04/2006 - 10:58:18 ---------------------------------------- eccolo in versione 7.0 Ciao, ---------------------------------------- AUTORE: 1203 DATA :14/04/2006 - 11:11:03 ---------------------------------------- \":idea:\" Grazie di cuore . Adesso studio il tutto e ti faccio sapere. \":P\" P.S. Mi hai salvato! ---------------------------------------- AUTORE: 848 DATA :15/04/2006 - 17:14:22 ---------------------------------------- [quote="Ale914":1b9sjwh3]eccolo in versione 7.0 Ciao,[/quote:1b9sjwh3] Salve, scusate l'intromissione, vorrei sapere come si fà a convertire un VI sviluppato con LV 8 in uno compatibile per LV 6.1 grazie ---------------------------------------- ================================================================================ implementazione labview p-spice ================================================================================ AUTORE: 1204 DATA :14/04/2006 - 11:41:23 ---------------------------------------- ciao a tutti sono nuovissimo di questo forum nonchè del programma labview..per motivi di studio mi sono trovato ad usarlo e girando per iternet e spulciando qualche tutorial o una minima idea di come funzioni..a questo punto dopo aver fatto le presentazioni vi pongo il mio problema: sostanzialmente ho simulato un programma in pspice e vorrei vedere la risposta armonica in labview...è possibile farlo senza dover prendere tutti i valori che produce spice e intabellarli in txt?anche perchè poi il componente labview che mi legge il file mi prende solo 19 valori sui mille che ho generato..grazie a tutti ciaooooo ---------------------------------------- AUTORE: 247 DATA :14/04/2006 - 12:06:52 ---------------------------------------- Ciao, puoi integrare la simulazione p-spice con LabVIEW utilizzando [url=http://sine.ni.com/apps/utf8/niepd_web_display.display_epd4?p_guid=C445A0AB1FB13312E034080020E74861:fkalzk6p]questi VI[/url:fkalzk6p] di NI. [quote:fkalzk6p]anche perchè poi il componente labview che mi legge il file mi prende solo 19 valori sui mille che ho generato..[/quote:fkalzk6p] ..questo invece è sicuramente un tuo errore di programmazione... \":D\" BYE. ---------------------------------------- AUTORE: 1204 DATA :14/04/2006 - 12:43:35 ---------------------------------------- ok..avevo trovato gia una cosa simile però poi nn ero riuscito a ritrovarlo all'interno di labview cercherò di nuovo..in ogni caso grazie ---------------------------------------- AUTORE: 1204 DATA :18/04/2006 - 10:35:48 ---------------------------------------- allora dal momento che sono un neofita del programma prob sono io che sono incapace di farlo funzionare però ho installato le vi del link e cmq nn mi funzionano ovvero quando vado a fargli pescare il file prodotto da pspice o nn lo vedono o ne vedono solo un pezzo per quello ceh rigurda il file origianrio che avevo prodotto io leggo una tabella txt con il componente read labview measurement file e lui mi vede solo i primi 19 termini..prob c'è da settare qualcosa ma ho provato a cercare e nn ho trovato nulla a riguardo..ciao a tutti e un grazie preventivo ---------------------------------------- AUTORE: 1204 DATA :20/04/2006 - 12:12:50 ---------------------------------------- ma ha mai funzionato a qualcuno la sub vi per acquisire dati .csd perchè a me nn funczionano nemmeno gli esempi..nn è che qualcuno ha gia riscontrato il prob e trovato la relativa soluzione?? ---------------------------------------- ================================================================================ accedere al nome dell'elemento di nu cluster ================================================================================ AUTORE: 1168 DATA :14/04/2006 - 16:03:38 ---------------------------------------- Salve a tutti. Ho tanti cluster che contengono i parametri di configurazione di N oggetti uguali. Sono tutti messi in un groooosso cluster per poi sfruttare le funzioni di bundle e unbundle by name. Per salvare un file di configurazione.ini, ho messo il blocchetto di conversione da clusterad array seguito da un ciclo for autoindicizzato. Per ogni elemento scrivo i valori delle chiavi tramite un unbundle by name. Come nome di sezione vorrei usare il nome dell'elemento, come posso accedervi? (Costante stringa col fondo giallo) Per essere più charo allego il VI. Grazie e buona pasqua, P. ---------------------------------------- AUTORE: 1165 DATA :14/04/2006 - 16:08:27 ---------------------------------------- sigh .. non ho qui il LV8 .. mica riposteresti il VI in versione 7.1? Grazie e buonaw Pasqua, Enr. ---------------------------------------- AUTORE: 4 DATA :14/04/2006 - 16:10:47 ---------------------------------------- quello che vuoi fare esiste già! è una funzione di OpenG che si chiama appunto "cluster to ini" puoi scaricare il tutto (OpenG Commander) liberamente da [url=http://www.openg.org:3h46pcux]qui[/url:3h46pcux] Ciao, ---------------------------------------- AUTORE: 1168 DATA :14/04/2006 - 16:18:14 ---------------------------------------- Ciao! Ci sono dei blocchetti non salvabili con versioni precedenti alla 8. Ora provo a vedere il sito segnalato da Alessandro.... Ciau ciao ---------------------------------------- AUTORE: 1168 DATA :18/04/2006 - 08:59:55 ---------------------------------------- Ciao! Disturbo ancora.... Non riesco a trovare la finzione "cluster to ini".... e non trovo nemmeno un funzione di "search" sul sito.... riesci a dirmi dove si trova? Secondo problema: spesso mi viene restituito l'errore "The network operation exceeded the user-specified or system time limit." OpenG usa qualche porta strana? ---------------------------------------- AUTORE: 129 DATA :18/04/2006 - 12:50:31 ---------------------------------------- Comunque se vuoi provarci, utilizza la property label per estrarre un arry degli elementi del cluster, quindi crei il tuo file .ini con le chiavi(label) e i valori del cluster. ---------------------------------------- AUTORE: 4 DATA :18/04/2006 - 13:10:30 ---------------------------------------- [quote:37fxkahu]Ciao! Disturbo ancora.... Non riesco a trovare la finzione "cluster to ini".... e non trovo nemmeno un funzione di "search" sul sito.... riesci a dirmi dove si trova?[/quote:37fxkahu] non sò se puoi scaricare i vi dal sito, puoi farlo tramite il commander le funzioni si trovano nel pacchetto "oglib_variantconfig". [quote:37fxkahu]Secondo problema: spesso mi viene restituito l'errore "The network operation exceeded the user-specified or system time limit." OpenG usa qualche porta strana?[/quote:37fxkahu] non usa porte strane per quanto ne sò, se la tua connessione passa da un prozy devi configurare il commander andando su "setting>>internet" Ciao, ---------------------------------------- ================================================================================ Salvataggio in .mat ================================================================================ AUTORE: 1121 DATA :15/04/2006 - 10:56:28 ---------------------------------------- Salve a tutti. Visto che fino ad ora mi avete aiutato molto, vi pongo un altro problema che sto cercando di risolvere da un pò: ho la necessità di salvare alcuni dati acquisiti da DAQ in .mat. Ho fatto una piccola ricerca in rete ed ho reperito dei vi che effettuano questa operazione ma vorrei da questi realizzarne uno che soddisfi le mie esigenze. In particolare dovrei salvare nel file quattro colonne di dati la cui prima riga contiene i nomi dei vettori. Mi date una mano? Inoltre una curiosità: a cosa serve il blocchettino cast? non riesco a capirlo. Grazie ---------------------------------------- AUTORE: 1165 DATA :15/04/2006 - 12:07:47 ---------------------------------------- Provo a spiegarti la funzione del blocchettino Cast con parole mie. La prendo alla larga: tu hai visto che nel Block Diagram il codice è organizzato secondo un grafo di flusso orientato, dove i nodi svolgono le varie funzioni di calcolo e i rami orientati (i fili di collegamento dei nodi) portano i dati dall'uscita di un nodo all'entrata di un altro (solo in questo verso e non al contrario, per questo si dicono "orientati"). Quello che scorre sui fili sono quindi i dati che lasciano un nodo e vanno ad un altro, permettendo il loro flusso e scambio. Ma nei fili non scorrono solo i bit di informazione sui dati puri, bensì anche i bit di informazione sui tipi di dato che stanno scorrendo in quel momento. Cioè il Labview rapprresenta in ram i dati in un certo formato e i fili portano informazione sui dati stessi e sul tipo di dato che è trasportato, che permette di decodificare i bit in ram come appartenenti ad un tipo di dato ben definito. In pratica sui fili scorrono i valori dei dati, però preceduti da un header che descrive il tipo di dato (DT, Data Type) che vi sta scorrendo. Puoi trovare tutte le informazioni al riguardo nella Application Note AN154c della NI (National Instruments), scaricabile a questo link: http://zone.ni.com/devzone/conceptd.nsf ... 33006BFB78 Ora veniamo all'uso del nodo funzionale Cast: questo serve per cambiare il DT (Data Type) di un dato che scorre in un filo senza cambiare il valore dei bit del dato. In pratica tu puoi ad esempio cambiare un vettore di tre numeri interi in precisione U8 (che assumono valori tra 0 e 255) in una stringa di tre caratteri ascii corrispondenti a quei tre valori compresi tra 0 e 255. Forse l'esempio che allego, che ho tratto dal libro in italiano "Programmare? Impariamo con il Labview" (edito dalla www.sanditmarket.it) potrebbe esserti utile (il fatto che lo abbia scritto io è solo secondario .. eh eh .. perdonami il piccolo peccato). Ciao, Enr. enrico.guadagni@euclide.biz ---------------------------------------- AUTORE: 1121 DATA :15/04/2006 - 15:28:33 ---------------------------------------- enr, grazie per la celere risposta. Soltanto con la tua spiegazione mi è chiaro il funzionamento del cast, non mi resta che provarlo. Per quanto riguarda il libro, a me sembra necessario in alcuni casi pubblicizzare, oppure vantarsi delle propie cose e questa mi sembra una di quelle occasioni. ---------------------------------------- AUTORE: 1121 DATA :17/04/2006 - 21:40:57 ---------------------------------------- Ma non c'è propio nessuno che mi sa dire come salvare in .mat? ---------------------------------------- AUTORE: 1121 DATA :17/04/2006 - 23:51:09 ---------------------------------------- Secondo voi il "NI LabVIEW Math Interface Toolkit " mi può essere utile? ---------------------------------------- ================================================================================ come stampare waveform graph e table? ================================================================================ AUTORE: 1214 DATA :19/04/2006 - 07:22:06 ---------------------------------------- ciao a tutti, il mio problema è che non riesco a stampare sulla stessa pagina una waveform graph ed una table. Per la generazione del report di stampa ho utilizzato la seguente sequenza: "new report", "appended control image" collegando la waveform graph tramite "reference"(ed infatti riesco a stamparla), dopodichè la logica mi diceva di collegare "appended text table" (formato 2D array string) alla table di risultati che ho sul panel ma non ottengo nessun risultato. L'unico modo con cui sono riuscito a stampare la table è utilizzando "appended control image" ma NON POSSO utilizzarla contemporaneamente alla stampa di waveform in quanto mi butta istantaneamente fuori dal programma. p.s.: la mia versione di LV è 6.1 ---------------------------------------- ================================================================================ LV 8.0 vs 8.0.1 ================================================================================ AUTORE: 1111 DATA :19/04/2006 - 07:43:03 ---------------------------------------- Da qualche mese utilizzo LV 8.0 e, seppur con notevole pesantezza, i programmi giravano egregiamente. Purtroppo essendo un novellino di questo ambiente di sviluppo non posso fare confronti con la 7.1, ma mi sembra di capire che le innovazioni siano tante e positive. Circa un mese fa, a seguito di una circolare di NI, ho upgradato la mia macchina con la 8.0.1, anche a fronte della lista infinita di fix che venivano promessi con questo upgrade. Da quel momento è cominciato il calvario... \":(\" il sistema è diventato instabile, i crash sono nell'ordine di due o tre al giorno, molte VI hanno comportamenti imponderabili (per es. il merge error ha un tempo di esecuzione di qualche secondo invece dei pochi microsecondi di prima, la famiglia delle VI FTP ha tempi di esecuzione biblici, e questo solo per fare qualche esempio tra le cose più comuni). Due giorni fa ho brasato il programma e ho reinstallato la 8.0 normale, e sembrerebbe che la situazione sia migliorata. Ero curioso di sapere se sono l'unico che ha riscontrato questo genere di problemi mentre il resto del mondo usa felicemente l'upgrade, o se esiste qualcun'altro ha avuto noie in questo passaggio. Buoni bit a tutti! ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:37:19 ---------------------------------------- io non ho nemmeno osato a usare (l'ho solo installata per prova) la versione 8.0 quindi non ti sò dire di problemi con la patch ma se vuoi un consiglio aspetta la 8.1 \":wink:\" Ciao ---------------------------------------- ================================================================================ Posizione del mouse su un'immagine ================================================================================ AUTORE: 927 DATA :19/04/2006 - 11:40:07 ---------------------------------------- Ho un controllo "picture" e una struttura ad eventi che mi segnala le azioni del mouse su di esso (mouse move, mouse down...). Però quando all'interno dell'evento vado a pescare le coordinate del mouse (Coords), ottengo dei valori che non sono relativi all'immagine ma all'intero pannello. A me servirebbe sapere la posizione esatta internamente all'immagine. Non posso nemmeno usare la proprietà "position" del controllo e fare la differenza, perchè mi tiene conto anche di etichetta, bordi... ---------------------------------------- AUTORE: 927 DATA :19/04/2006 - 14:32:30 ---------------------------------------- L'ho risolto, anzichè la proprietà "Coords" dell'evento uso la proprietà "Mouse.Mouse Pos" del controllo, che è relativa solo all'immagine vera e propria ---------------------------------------- ================================================================================ aquisizione multicanale ================================================================================ AUTORE: 1177 DATA :19/04/2006 - 11:40:17 ---------------------------------------- ciao a tutti, avrei la necessità di acquisire da due canali contemporaneamente due segnali di tensione provenienti da due sensori di pressione. I segnali variano da 1 a 5 volts e sono connessi agli ingressi analogici AC0 e AC1 di un interfaccia BNC-2110. Ho abbozzato un VI per l'acquisizione, ammesso che sia corretto, mi sapreste indicare come memorizzare i campionamenti dei due canali in due file differenti e come visualizzare la forma d'onda di ognuno.....(suppongo siano banalità........ma smanetto da poco \":D\" ) grazie in anticipo ciao a tutti dimenticavo la scheda è una 6036e[/img] ---------------------------------------- ================================================================================ Salvare i subVi ================================================================================ AUTORE: 706 DATA :19/04/2006 - 14:16:38 ---------------------------------------- Ciao a tutti Il mio problema riguarda il salvataggio del Vi principale e i suoi relativi subVi. Una volta che ho copiato il mio VI in un altra posizione del PC o faccio un backup e provo ad aprirlo in un altro PC questo mi chiede di indicarli dove sono i SubVI. Come posso risolvere questo problema ? Grazie per l'aiuto.. Francesco ---------------------------------------- AUTORE: 129 DATA :19/04/2006 - 14:20:15 ---------------------------------------- Devi salvare il VI come save with options, quindi developement distributions. ---------------------------------------- ================================================================================ Zmodem ================================================================================ AUTORE: 927 DATA :20/04/2006 - 08:59:11 ---------------------------------------- Sto cercando un'implementazione in LV del tradizionale protocollo Zmodem per il trasferimento di file su qualunque mezzo (anche senza ethernet). Qualcuno ha notizie? Non ho trovato niente sul sito della NI. Un mio collega ha però trovato, non so dove, il più primitivo protocollo Xmodem (ma solo la parte di rx) ---------------------------------------- AUTORE: 1165 DATA :20/04/2006 - 11:10:09 ---------------------------------------- Da una rapida occhiata su internet sono approdato a questi due siti: http://www.freedos.org/freedos/news/technote/156.html e http://cristal.inria.fr/~doligez/zmodem/ vedi se ci può essere qualcosa di utile per te. Ti allego anche un file di testo preso direttamente dal secondo sito. A suo tempo (tanti anni fa!) l'ho usato ampiamente per connettermi alle BBS, ma la memoria comincia a farmi oramai brutti scherzi, comunque se sei in difficoltà ricontattami, vediamo se riesco a mettere insieme i due neuroni di rom che usavo allora. In boccal al lupo, Enr. enrico.guadagni@euclide.biz ---------------------------------------- AUTORE: 927 DATA :20/04/2006 - 11:25:09 ---------------------------------------- Si conosco già ampiamente quel materiale... Da Labview riesco a lanciare un vecchio programma dos gratuito (TXZM) per trasferire i file, ho trovato anche i sorgenti di alcune implementazioni del protocollo in C arcaico (mai riuscito a compilarle...). Mi interesserebbe però un'implementazione in puro Labview, anche a pagamento, da poter far girare anche a bordo dei Fieldpoint, non credo che avrò il tempo e l'immattimento per farmela io! ---------------------------------------- AUTORE: 1165 DATA :20/04/2006 - 12:45:55 ---------------------------------------- Anche se devo dire che lo stimolo a buttarmi nell'impresa di provarci io è grande, molto più realisticamente devo ammettere che sono troppi anni che non sono più sul fronte caldo dello sviluppo professionale diretto (mi occupo oramai quasi solo esclusivamente di management aziendale e di didattica e, come è noto, chi sa fa e chi non sa insegna .. eh eh .. non me ne vogliano eventuali docenti). Però ho degli ottimi e giovani amici che sono molto bravi e molto attivi nel settore, se vuoi ti posso mettere in contatto con loro. Al massimo posso un po' seguirli per quanto riguarda le cose vecchie, quando loro ancora non programmavano, sempre con un po' di sforzo di memoria. Se sei interessato a questo allora contattami direttamente con un messaggio privato o con l'email e possiamo parlarne volentieri, visto poi che siamo anche abbastanza vicini. Ciao, Enr. enrico.guadagni@euclide.biz ---------------------------------------- ================================================================================ acuisizione analog e digital contemporanea ================================================================================ AUTORE: 1177 DATA :20/04/2006 - 12:24:26 ---------------------------------------- ciao a tutti, qualcuno di voi sà mica come si possa fare (se possibile) ad acquisire nel medesimo VI due segnali analogici ed uno digitale. nella fattispecie avrei due segnali di tensione 1-->5v ed un segnale digitale tipo onda quadra (con un pò di rumore) di cui vorrei contare i fronti con un counter o qualcosa di simile........il tutto nello stesso VI è possibile? grazie a tutti ciao utilizzo scheda NI 6036e ---------------------------------------- ================================================================================ il cicalino non suona con LV? ================================================================================ AUTORE: 1191 DATA :21/04/2006 - 08:29:15 ---------------------------------------- salve ho un pc con winxp, e il suo cicalino a livello hardware funziona (usando alcune funzioni della tastiera lo sento suonare). quando però uso la funzione del cicalino, sotto Labview 7.1 per farlo suonare, mi rimane muto. questa funzione l'ho gia testata sotto win98 e funziona. che sia un problema di winxp? grazie ---------------------------------------- AUTORE: 927 DATA :21/04/2006 - 09:31:13 ---------------------------------------- Credo che la tastiera raggira in qualche modo il sistema operativo, e va a suonare appunto il cicalino hardware (il bip metallico anni '70 per intenderci). Invece il Beep.vi, almeno sotto 2000/XP, usa il suono di avviso software del sistema operativo, ovvero un wav impostabile nel pannello di controllo. Quello potrebbe non essere abilitato e risente anche del volume. ---------------------------------------- AUTORE: 1191 DATA :21/04/2006 - 11:09:00 ---------------------------------------- ciao l' hanno cambiato? da quando? anche leggendo l'help mi dice che praticamente usa il cicalino del pc. per usare i .wav ci sono delle funzioni idonee. se anche tu ai winxp ,puoi provare questa funzione (beep.vi)? grazie ---------------------------------------- AUTORE: 4 DATA :21/04/2006 - 11:20:14 ---------------------------------------- a me (winxp sp2) funziona. suona il wav associato da pannello di controllo a "segnale acustico predefinito" che di default è "Windows XP Ding" Ciao, ---------------------------------------- ================================================================================ riconoscimento zone calde in un'immagine ================================================================================ AUTORE: 1015 DATA :21/04/2006 - 08:55:47 ---------------------------------------- ciao a tutti, sto utilizzando una termocamera e per la mia applicazione (spegnimento incendi) ho bisogno di individuare all'interno dell'immagine le zone + calde. le mie immagini sono bidimensionali e ho una sorta di terza dimensione che mi dà il valore di temperatura in corrispondenza di un dato pixel. al momento ho costruito un VI che in un array va a memorizzare le coordinate dei pixel + caldi. a questo punto però devo riuscire a capire se ci sn + zone calde o se è una sola perchè devo stabilire dove andare a sparare l'estinguente. esiste qualche blocchetto predefinito che mi può essere utile oppure avete qualche idea da suggerirmi? grazie mille ---------------------------------------- AUTORE: 1165 DATA :21/04/2006 - 12:30:50 ---------------------------------------- Non avendo una risposta confezionata per il tuo problema, permettimi di fare solo delle considerazioni generali sul modello che stai implementando, nella speranza che ti siano comunque di un qualche aiuto. Innanzitutto credo che avrai già considerato da solo che un sistema di visione con una sola camera è un sistema intrinsecamente bidimensionale e quindi se la tua realtà sotto osservazione si presta per essere modellizzata a due dimensioni è ovvio che una sola termocamera è sufficiente (ad esempio per osservare degli spot su una parete bidimensionale). Se invece, come mi sembra di intuire, tu hai una realtà tridimensionale da tenere sotto osservazione, per una visione e susseguente ricostruzione stereoscopica è indispensabile poter riprendere la realtà almeno da due termocamere, se non più, sempre che i budgets lo permettano (un po' di ridondanza di informazione migliora sicuramente la precisione della ricostruzione stereospica). La ricostruzione 3D vera e propria è in genere non banalissima se la vuoi implementare da solo, ma non difficilissima nel tuo caso, dove comunque se ho ben capito devi solo dare degli allarmi booleani quando in un qualche punto 3D viene superata una certa soglia. Si tratta in pratica solo di andare a tenere sotto controllo dei sottovolumi dello spazio che hai in monitoraggio (con una risoluzione spaziale che deciderai tu, ma che comunque non dovrà essere poi così fine, trattandosi di fiamme) e quando uno o più sottovolumi superano una o più volte e per più secondi, un certo valore (tutte queste scelte influiscono sulla sensibilità del sistema di monitoraggio, che è sempre funzione inversa della sua specificità, cioè del suo grado di immunità ai falsi allarmi), allora tu decidi che in quel punto (in quel sottovolume) vi sono delle fiamme. Naturalmente i dati raw (grezzi) provenienti da ognuna delle N termocamere vengono immagazzinati in N vettori bidimensionali, per ogni punto di visione. Il tuo spazio reale 3D viene quindi mappato in uno spazio virtuale 2N-dimensionale e devi costruirti delle routine di conversione tra i due spazi, in entrambe le direzioni. La determinazione dell'allarme nello spazio 3D viene così riportata alla determinazione nello spazio 2N, dove forse il più semplice algoritmo di detezione è un AND logico fra il superamento della soglia nei vari vettori bidimensionali dei dati raw. Ovviamente vi sono infinità di software che fanno già tutto questo e molto più, e la stessa NI ha dei tools di visione tra i più evoluti esistenti sul mercato e sicuramente qualcuno ti saprà consigliare in questo senso molto meglio di me. In bocca al lupo per il momento. Ciao, Enr. enrico.guadagni@euclide.biz ---------------------------------------- AUTORE: 1015 DATA :21/04/2006 - 14:13:40 ---------------------------------------- prima di tutto grazie in realtà nn devo ricostruire lo spazio in tre dimensioni quindi tutte le problematiche che mi hai elencato nn sussistono (per fortuna \":wink:\" ) io devo capire quali sono le coordinate (parliamo sempre in bidimensionale) del baricentro di una zona calda per poter capire come orientare il braccio meccanico se l'area calda fosse una sola nn avrei problemi. il problema è che potrei avere + focolai. a questo punto devo riuscire a separare le varie zone e calcolare per ognuna di esse il baricentro. nn sapendo come fare ad individuare le zone calde, avevo pensato di dividere l'immagine in 4 sottoimmagini così da ridurre la probabilità di avere 2 zone calde distinte nella stessa immagine, poi per ognuna delle sottoimmagini calcolo il baricentro. in questo modo, se pure nella sottoimmagine ho due zone calde commetto un errore che è sicuramente + basso di quello di partenza. il problema a questo punto è una stessa zona calda può essere al limite tra due sottoimmagini, quindi calcolerei due baricentri anche se la zona calda è la stessa. spero di essere riuscita a spiegarmi...è un pò una lugubrazione mentale, ma davvero nn sapevo come fare. naturalmente se riuscissi direttamente a definire il contorno di una qualsiasi zona calda, nn avrei tutti questi problemi e il margine di errore sarebbe decisamente ridotto. che ne pensi? ---------------------------------------- AUTORE: 482 DATA :21/04/2006 - 15:07:15 ---------------------------------------- ..mmhh..seonndo me potresti binarizzare l'immagine in base alle soglie di colore delle zone calde, e poi fare una analisi di forma delle varie "macchie" rimaste calcolando i vari centri... Se hai il vision assistant magari se mi mandi un immagine coampione (o fac simile) potrei farti un esempio. ---------------------------------------- AUTORE: 4 DATA :21/04/2006 - 15:19:53 ---------------------------------------- concordo con geppo, definisci una soglia di passaggio tra caldo\freddo poi trovi le "macchie" e calcoli la loro dimensione il profilo ecc usando le funzioni classiche dell'IMAQ, a questo scopo potresti guardare gli esempi del vision builder, se non ricordo male ce nè uno sul riconoscimento delle cellule e misura delle loro caratteristiche che potrebbe essere un buon punto di partenza assimilando le celule alle zone calde. Ciao, ---------------------------------------- AUTORE: 1015 DATA :28/04/2006 - 11:47:17 ---------------------------------------- ragazzi siete mitici! ho risolto alla grande con quell'esempio delle "cellule"! nn vi ringrazierò mai abbastanza! ora ho solo qualche problemino, ma credo che il grosso sia fatto. ho modificato il VI delle "cellule" e l'ho adattato alle mie esigenze, solo che nn ho capito come funziona IMAQ remove Particle anche perchè applicato alle mie immagini nn vuole funzionare. io avrei bisogno di rimuovere le zone che sn molto piccole, definendo magari la grandezza in percentuale rispetto all'area + grande. come posso fare? cosa sono le EROSION? grazie ancora di tutto cloe ---------------------------------------- AUTORE: 1111 DATA :05/05/2006 - 08:25:00 ---------------------------------------- Scusate se mi intrometto solo adesso... spero per cloe che sia ormai tardi, ma non si sa mai. \":)\" Quello che devi analizzare viene svolto egregiamente dalle IMAQ, e in particolare dalla Basic e dalla Advance morphology, e raffinato dalla Particle filter. Queste VI lavorano su immagini "binarie", quindi considerano solo la differenza tra bit a 0 e bit a 1. Per convertire le immagini in questo tipo devi prima trattare la tua immagine con un threshold. Una volta che la tua immagine è stata binarizzata, applichi un "filtro" per eliminare i cluster più piccoli (per esempio). La erosion è una di queste possibilità: effettua una erosione morfologica di un cluster (cellula) mangiando uno o più pixel partendo dai lati, o dai pixel posti a 0, eliminando le asperità o addirittura eliminando l'intero cluster (dipende dalle dimensioni del cluster e dal numero di iterazioni che effettui). Per la tua applicazione ti suggerirei di utilizzare il particle filter dando una soglia minima di area sotto la quale elimini gli "sporchi", e successivamente il particle analisys per ottenere i dati salienti delle aree superstiti. Questo strumento è estremamente potente, puoi ottenere e filtrare i dati morfologici delle cellule quali area, perimetro, posizione, centro di massa, e un'infinità di informazioni, addirittura fino ai momenti di inerzia (che prima o poi capirò anche io come utilizzare). Spero di esserti stato utile. Good luck! ---------------------------------------- ================================================================================ IMAQ Vision ================================================================================ AUTORE: 1219 DATA :21/04/2006 - 11:27:39 ---------------------------------------- Salve a tutti \":D\" Sono nuovo del forum, e mi presento in questa occasione. Il mio problema è, come comprensibile dal titolo, IMAQ Vision, Mi hanno chiesto di realizzare un software con questa tecnologia, e purtroppo ne sono a digiuno. Il mio Ambiente di lavoro, haime !, è Visual Basic, NI mi da tutti gli strumenti, e molti esempi sul come gestire il prodotto, ma mi manca una documentazione affidabile in Italiano. Chiedo a voi quindi un aiuto...qualche consiglio...chiederei anche delle idee su come affrontare il progetto. Tra le altre cose credo che sia pure abbastanza complicato, perchè lavorando nel campo dell'elettronica, mi è stato affidato il progetto di un programma che rilevi la presenza di componenti elettronici montati sulle schede... Ragazzi, resto in attesa di un vostro riscontro ---------------------------------------- AUTORE: 1165 DATA :21/04/2006 - 12:39:58 ---------------------------------------- Dai un'occhiata anche al topic "riconoscimento zone calde di un'immagine" a cui ho risposto poco fa, anche se non è assolutamente quello che tu hai chiesto, forse un qualche spunto lo puoi trarre anche da lì. Comunque per il prodotto IMAQ Vision e relativa documentazione non posso esserti di aiuto, mentre per documentazione di base in italiano sul LabVIEW chiedi a Esodar1981, forse qualcosa ti sa consigliare lui (e spero che non me ne voglia per il rimando, è un segno di stima). Ciao, Enr. ---------------------------------------- AUTORE: 482 DATA :21/04/2006 - 12:40:34 ---------------------------------------- Se posso darti un consiglio ti direi di sviluppare l'applicazione in labview e poi crearti la DLL da richiamare in VB. Se di labVIEW non ne sai niente....beh..l'ideale è procurarti il Vision assistant e al limite gli fai creare la routine in C e poi te lo adatti alla tua applicazione \":wink:\" ---------------------------------------- AUTORE: 278 DATA :22/04/2006 - 00:45:31 ---------------------------------------- Se hai installato l`IMAQ vision, dovresti anche avere installato il vision assistant. Si tratta di un tool di sviluppo per imaq vision contenente alcuni esempi, due di essi potrebbero fare al caso tuo. Io utilizzo la versione 7.1, gli esempi di cui parlo sono sotto al menu` a tendina "electronics" che appare dopo aver avviato l`applicazione (se non ricordo male devi selezionare pima Solution wizard o example). Prova a buttarci un`occhio e a familiarizzare con il pannello del vision assistant, non e` molto ma e` gia` una buona base di inizio. Ciao a tutti \":D\" ---------------------------------------- AUTORE: 1219 DATA :27/04/2006 - 21:52:16 ---------------------------------------- ok ... ho trovato il Wizard ed ho analizzato gli esempi, ho anche realizzato un nuovo Template, oltre agli altri due già presenti nell'esempio. ora avrei delle Domande... 1) lo script che io salvo, come può essere richiamato da un'ambiente esterno tipo Visual Basic ? 2) Nello Script che ho, ci sono a questo punto 3 Template. Supponiamo che io passi all'esame una foto di un circuito con più di un oggetto uguale. per esempio 3 Resistenze simili. Lo script me le rileverà tutte è tre ? o lo script è fatto in modo tale da intercettare il componente in quella precisa posizione ? Se cosi è ... significa che io se devo analizzare 5.000 componenti (anche simili tra loro, ma dislocati in posizioni diverse) dovrò avere 5.000 Template ? Grazie 1000 a tutti ---------------------------------------- AUTORE: 278 DATA :28/04/2006 - 07:33:15 ---------------------------------------- No, calma..... Non devi utilizzare lo script del vision assistant per il tuo codice, ma devi "convertire" , o se preferisci "creare" il codice nell'ambiente di sviluppo che ti occorre. Con il vision assistant puoi creare del codice in liguaggio C oppure dei VI in linguaggio LabVIEW, in quest'ultimo caso il programma ti crea un vero e proprio VI, nel caso del C credo che ti crei un file txt di codice.. Il vision assistant è un buon tool per provare e sperimentare le varie tecniche di elaborazione dell'immagine, non è in grado però di crearti un programma fatto e finito! Detto questo, non devi richiamare il codice creato dal vision assistant 5000 volte, devi solo editare questo codice inserendolo in un loop, per poi farlo eseguire tutte le volte che lo richiedi. In sostanza, il vision assistant è pensato proprio per fornire un'approccio veloce al problema, qualcosa che ti permetta in breve tempo di "sperimentare" varie soluzioni. ---------------------------------------- AUTORE: 1219 DATA :28/04/2006 - 07:46:18 ---------------------------------------- Bene... allora mi guidi cortesemente alla estrapolazione del codice in linguaggio C ? Perchè io, in base agli esempi di codice rilasciati da NI ho cercato di approssimare una sorta di test ... fotto ovviamente in VB. La cosa che mi deludeva era la scarsità di precisiore che io ero riuscito ad ottenere. Fermo restando che la cosa si potrebbe affrontare anche in Visual C++, avendo già il codice di esempio potrei capirci qualcosa in più, sempre che, alla fine non mi venga fuori lo stesso codice riportato nelle cartelle di esempio. Detto questo ... inizierò a fare delle prove e ti darò degli aggiornamenti. Grazie di tutto. ---------------------------------------- AUTORE: 278 DATA :28/04/2006 - 20:03:53 ---------------------------------------- [quote:2d31f6wo]Bene... allora mi guidi cortesemente alla estrapolazione del codice in linguaggio C ? [/quote:2d31f6wo] Volentieri, solo che di C non ne so una pippa.... \":oops:\" hem, non ci ho mai lavorato, ma posso aiutarti a produrre il codice con il vision assistant. Una volta aperto lo script con il vision assistant, devi andare sulla palette dei menu` e selezionare la voce "tool", dovresti trovare una voce "build C language" o qualcosa di simile. Perdona la mia smemoratezza ma non avendo installato il pacchetto vision a casa non posso verificare. Dopodiche` dovrebbe apparirti un wizard che ti guida durante il processo di creazione del codice. Ne aprofitto anche per rispondere a questa tua domanda, lasciata in sospeso... [quote:2d31f6wo]2) Nello Script che ho, ci sono a questo punto 3 Template. Supponiamo che io passi all'esame una foto di un circuito con più di un oggetto uguale. per esempio 3 Resistenze simili. Lo script me le rileverà tutte è tre ? o lo script è fatto in modo tale da intercettare il componente in quella precisa posizione ?[/quote:2d31f6wo] I Template, se non ricordo male, sono le immagini campione che il software dovra` riconoscere. Oltre che a definire i Template da cercare, bisogna anche dire al sistema dove cercare (creare quindi una ROI) e in caso di aree ove ce ne possa essere piu` di uno, indicare il numero massimo di oggetti che possono essere trovati. Nei caso di un`ispezione ottica di una scheda elettronica, sai sempre esattamente dove sono i componenti, sempre ammesso che il circuito stampato non cambi. Per risolvere le incertezze dovute al posizionamento meccanico del circuito sulla macchina d`ispezione, ti consiglio di prendere come punto di riferimento il fiducial presente sulle PCB dei circuiti (solitamente un pallino o una crocetta). Scusami se sono prolisso, e` un`argomento che mi piace, avendo lavorato alcuni anni nel settore della produzione di schede elettroniche. Spero di esserti stato di aiuto. ---------------------------------------- ================================================================================ enable database access ================================================================================ AUTORE: 1200 DATA :21/04/2006 - 15:04:19 ---------------------------------------- Ciao a tutti, qualcuno sa come funziona il "enable database access", io dovrei monitorare una VI che gira all'interno del mio main, all'inizio avevo pensato di creare delle variabili globali ma penso che questa funzione faccia al caso mio ma non ho trovato nessun help che mi aiuti a capire come funzioni.... ciao e grazie ---------------------------------------- AUTORE: 4 DATA :21/04/2006 - 15:26:05 ---------------------------------------- trovi delle informazioni [url=http://zone.ni.com/reference/en-XX/help/lv/71/lvhelp/Front_Panel_Datalogging/:bb48hx9g]qui[/url:bb48hx9g] Ciao, ---------------------------------------- ================================================================================ comando/controllo remoto di un relè ================================================================================ AUTORE: 848 DATA :23/04/2006 - 09:15:35 ---------------------------------------- Salve a tutti, dovrei risolvere un problemino e vorrei riuscire a capire come avvicinarmi alla soluzione. Vorrei pilotare 2 relè (indipendenti e quindi con "indirizzi diversi", situati in luoghi diversi) da un computer inserito in una intranet. Il relè ha semplicemente 2 contatti: NC, NA Dovrei forzatamente utilizzare l'uscita ethernet del computer e pilotare un [b:3105zkgm]dispositivo [/b:3105zkgm]che mi permetta di alimentare il relè e quindi eccitarlo. Come posso realizzare questo progetto? grazie a tutti ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:34:37 ---------------------------------------- sei fuori strada non puoi utilizzare una porta eth per quello che proponi, prova a orientarti su qualche scheda artigianale su porta parallela, a questo proposito trovi diverse discussioni su questo forum Ciao ---------------------------------------- AUTORE: 645 DATA :14/05/2006 - 21:55:21 ---------------------------------------- Ma il dispositivo che comanda i relè è preparato per accettare comandi dalla porta ethernet e reagire di conseguenza inviando segnali elettrici? O stai pensando come costruire un dispositivo di questo tipo? ---------------------------------------- AUTORE: 848 DATA :21/05/2006 - 18:57:36 ---------------------------------------- [i:5o2ocyc0] O stai pensando come costruire un dispositivo di questo tipo? [/i:5o2ocyc0] esatto, stavo valutando la possibilità di costruirne uno. ---------------------------------------- AUTORE: 645 DATA :22/05/2006 - 09:10:58 ---------------------------------------- Io non so di preciso come si costruiscono le schede di acquisizione/comando (anzi, potresti consigliarmi materiale?) ma mi è capitato di lavorare con sistemi preparati ad hoc da tecnici. In particolare ho lavorato con una scheda che offre la possibilità di acquisire grandezze e comandare relè collegati a motori. Nel mio caso ho utilizzato un collegamento seriale (RS232 non Ethernet ma credo che cambiare porta di comunicazione non sia un problema) attraverso il quale comandare la scheda tramite un protocollo di comunicazione: ad una certa stringa alfanumerica corrisponde un'azione (una lettura di grandezza o l'azionamento del relè). ---------------------------------------- ================================================================================ LabView data storage ================================================================================ AUTORE: 1227 DATA :25/04/2006 - 15:31:38 ---------------------------------------- ciao ho cominciato ad usare il LABView da pochi giorni, la domanda sembrera' stupida ma come si fa a salvare i dati forniti dal LABView in un formato compatibile con Matlab? Devo poter plottare dei grafici in Matlab utilizzando degli array forniti da LABView. Grazie ---------------------------------------- AUTORE: 1050 DATA :26/04/2006 - 09:14:52 ---------------------------------------- Ciao, se non sbaglio in matlab puoi salvare un array su file con le stesse funzioni C, specificando il carattere di delimitazione (virgola,tab,spazio ecc). Analogamente in labview puoi usare le funzioni "Read char from file" +"Spreedsheet string to array" per leggere e "Write char to file" +"Array to Spreedsheet string" per scrivere avendo cura di specificare nel campo "delimiter" il delimitatore utilizzato. ---------------------------------------- ================================================================================ ERRORE di LW 7.1 con LVALARMS.DLL ================================================================================ AUTORE: 32 DATA :26/04/2006 - 08:59:30 ---------------------------------------- Buongiorno e ciao a tutti, complimenti per la continua crescita del gruppo e per l'ottimo lavoro che state svolgendo. Complimenti anche per la mappa interattiva, ottima. OK, termino la sviolinata e vengo al sodo. Abbiamo un problemino, rilevato fino ad ora in due dierse applicazioni, al quale non siamo ancora riusciti a dare una risposta soddisfacente. Ormai, dall'introduzione dei TIMED LOOP, diversi nostri programmatori, hanno sostituito l'uso dei WHILE LOOP con i TIMED LOOP, in quanto "semberebbero", meglio performanti, ance se non si fa uso di real time ecc. In seguito a questo utilizzo, abbiamo riscontrato, nell'utilizzo di programmi applicativi sviluppati un errore del programma, con conseguente blocco dello stesso, errore attribuito alla libreria LVALARMS.DLL, imputata a quanto sembra della gestione dei TIMED LOOP. (allego immagine dell'errore). N.B. L'errore si è verificato solamente in due applicazioni che vengono utilizzate su programmi che devono continuare a girare 24 ore su 24, inoltre non subito dopo la messa in funzione dei programmi ma dopo qualche tempo, forse questo dovuto solamente al fatto che magari prima l'utilizzatore finale non utilizzava il programma per un tempo sufficientemente lungo?! Comunque... siamo aperti a consigli. Abbiamo già provato a sostituire tutti i TIMED LOOP con WHILE LOOP, ma non sono sicur che questo possa portare a una soluzione finale del problema. In un caso abbiamo sostituito il PC, uguale a reinstallare il S.O. e sembra che l'errore non si sia ripresentato, per ora. I nostri programmi sono fatti sfruttando una serie di librerie da noi sviluppate e quindi diciamo che tutti utilizzano TIMED LOOP e il medesimo tipo di filosofia, ma solo in due casi si è presentato questo tipo di problema Resto a disposizione e saluto tutti ---------------------------------------- AUTORE: 4 DATA :26/04/2006 - 09:43:37 ---------------------------------------- hai dimenticato di allegare l'immagine ---------------------------------------- ================================================================================ Classificazione immagini apparteneti ad un database ================================================================================ AUTORE: 1229 DATA :26/04/2006 - 16:50:26 ---------------------------------------- Salve a tutti, premetto che sono un newbie per quanto riguarda l'utilizzo di LabView volevo chiedervi è possibile tramite LabView eseguire una qualche procedura per fornire ad immagini etichette semantiche.Mi spiego meglio la procedura di dovrebbe cominciare con l'identificare un piccolo set di immagini di training, ognuno con un sola label semantica (per esempio , foresta, animale, o cielo). Un insieme di classificatori base è addestrato poi per predire l’identificazione all’appartenenza ad un membership di immagini. In questo modo avendo un set di immagini appartenenti ad un database e fornendo ogni volta una nuova immagine si dovrebbe poter classificare l'immagine assegnandogli una etichetta tra quelle disponibili nel DB. Dite che con Labview potrei fare un lavoro del genere o meglio che mi avvicini ad un altro software? Spero di essere stato chiaro e grazie a chiunque mi possa aiutare. \":wink:\" ---------------------------------------- AUTORE: 4 DATA :26/04/2006 - 22:35:01 ---------------------------------------- Ciao argomanto molto interessante ma non mi è chiara una cosa. Tu vuoi "inserire" nel file immagine una tua etichetta o vuoi associare un'immagine ad un'etichetta esterna? Nel primo caso il problema riguarda il formato del file con cui è salvata l'immagine e la possibilità che questo da di aggiungere informazioni descrittive, dipende quindi dal formato del file ma si può teoricamente fare (non dovrebbe essere nemmeno troppo complicato) Nel secondo caso è ancora più semplice, puoi utilizzare come dici tu stesso un DB in cui inserisci immagini e etichette combinando le 2 cose. LabVIEW permette in vari modi di gestire DB di vario tipo MSSQL ACCESS ORACLE MySQL... in pratica tutti quelli che supportano sql e odbc Se non vuoi utilizzare unDB esistono altri 1000 modi più spartani basterebbe ad esempio scrivere su un file tabulato sulla prima colonna i path delle tue immagini e sulla seconda le etichette... non bello ma funziona. Ciao, ---------------------------------------- AUTORE: 1229 DATA :26/04/2006 - 22:59:29 ---------------------------------------- [quote="Ale914":esv5gb7x]Ciao argomanto molto interessante ma non mi è chiara una cosa. Tu vuoi "inserire" nel file immagine una tua etichetta o vuoi associare un'immagine ad un'etichetta esterna?[/quote:esv5gb7x] Ciao, mi spiego meglio in pratica dovrei fare una applicazione tale che riesca data un certa immagine ad assegnargli una etichetta e renderla appartenete ad uno dei set delle immagini appartenenti al database che sono già etichettate. Per esempio se ho un immagine di un panorama l'applicazione dovrebbe poter riuscire a riconoscere l'immagine tra quelle presenti nel database e quindi dovrebbe assegnargli l'etichetta "panorama" ovviamente con una certa probabilità. ---------------------------------------- AUTORE: 1165 DATA :26/04/2006 - 23:50:44 ---------------------------------------- Azzardo qualche considerazione mia. L'oggetto che tu vuoi implementare si chiama "classificatore" e riceve in ingresso degli input (delle immagini nel tuo caso) e le restituisce in uscita in uno degli N canali di cui è dotato (classificatore a N uscite, ad ognuna delle quali corrisponde una delle tue etichette). Però non hai per niente detto con cosa vorresti analizzare le tue immagini per poterle classificare. Se, come credo, tu vuoi fare un classificatore automatico via software, allora devi decidere quali sono i parametri su cui vuoi operare, ad esempio le curve di distribuzione dei colori o altri parametri numerici della grafica delle immagini. Un approccio algoritmico deterministico ti richiederebbe una analisi complessa delle immagini, per evidenziare ad esempio le aree di distribuzione del colore o altri non banali parametri. Un approccio alternativo ti può venire dall'uso di reti neurali (o se preferisci neuronali artificiali, ANN). Lo schema in back propagation ti può senz'altro essere di aiuto. Io avevo collaborato ad un simile progetto anni fa per classificare alcune forme d'onda e lo avevamo proprio realizzato in labview (versione 4 o 5 mi sembra, ma non ritroverei facilmente i relativi VI, anche perchè alcune routines erano in C e poi caricate come DLL). Ma a parte la fase di apprendimento in back propagation, una rete neurale si presta benissimo a fare da classificatore e credo che puoi trovare qualcosa se imposti una ricerca come "classificatore di Koonen" o qualche cosa del genere. Non so se ti può essere di qualche aiuto. Ciao, Enr. ---------------------------------------- AUTORE: 645 DATA :27/04/2006 - 07:23:54 ---------------------------------------- Anche io non capisco bene come intendi far riconoscere le immagini al tuo VI (e potrebbe essere una discussione interessante...) ma credo che una volta classificata l'immagine sia possibile gestirne l'etichetta con un'associazione tipo database. Cioè: in una cartella memorizzi le immagini; analizzi le immagini con il tuo VI (o chi per esso) e in un database registri il nome dell'immagine sotto la colonna corrispondente. Con LabView è possibile gestire i database. In questo caso poi si tratterebbe di realizzare semplici query di inserimento e quindi non ci sono grandi difficoltà. ---------------------------------------- AUTORE: 278 DATA :27/04/2006 - 09:51:25 ---------------------------------------- Ciao, mi inserisco in questa discussione....per honoris causa!!! \":lol:\" \":lol:\" Ti confermo che con LV è possibile realizzare quello che richiedi, devi solo capire coma fare a distinguere un'immagine rappresentante un'oggetto (oggetto A) da un'altro (oggetto B). Poniti questa domanda, cos'è che mi permette di distinguere un'oggetto da un'altro??? Le risposte possono essere molteplici, colore, forma, dimensioni ecc ecc. Questi parametri sono tutti quantificabili con un sistema di visione. Supponiamo che l'oggetto A e l'oggetto B siano esattamente identici, ad eccezione dell'altezza (B è più alto di A). Se misuri l'altezza di A e di B e memorizzi i rispettivi valori in una file (o DB) hai "caratterizzato" l'oggetto, ossia hai definito un parametro, un valore che ti permette di distinguere un'oggetto A da uno B. Ovviamente, più parametri caratteristici individui, più sarai preciso nel distinguere l'immagine. Quando dovrai sottoporre un'immagine non nota (immagine X) al sistema, dovrai andare a rilevare i suoi valori caratteristici (in questo esempio l'altezza) ed andarli a confrontare con quelli immagazzinati nel tuo DB. Ciao Ciao ---------------------------------------- AUTORE: 1229 DATA :27/04/2006 - 10:12:39 ---------------------------------------- un esempio di ciò che dovrei fare è in demo in questo link http://www-i6.informatik.rwth-aachen.de ... n/fire.cgi ---------------------------------------- AUTORE: 1229 DATA :27/04/2006 - 10:16:39 ---------------------------------------- Ed un altro demo qui http://wang14.ist.psu.edu/cgi-bin/zwang ... h_show.cgi ---------------------------------------- AUTORE: 482 DATA :27/04/2006 - 14:03:49 ---------------------------------------- non ho guardato bene i dettagli dei link, ma visti cosi' sembrano della analisi di colore e centri di massa....cose abbastanza semplici. Quello ch enon capisco è il problema del DB....se il DB ti serve per una ricerca e confronto veloce tra le immagini, una soluzione potrebbe essere quella di analizzarle a priori, poi salvare nel database, per ogni immagine un record con i risultati dei vari tipi di analisi fatte sull'immagine e l'url all'immagine. In questo modo selezionandone una, e il criterio di somiglianza si puo' risalire facilmente alle immagini desiderate. ---------------------------------------- AUTORE: 1229 DATA :27/04/2006 - 17:24:05 ---------------------------------------- Quello ch enon capisco è il problema del DB....se il DB ti serve per una ricerca e confronto veloce tra le immagini, una soluzione potrebbe essere quella di analizzarle a priori, poi salvare nel database, per ogni immagine un record con i risultati dei vari tipi di analisi fatte sull'immagine e l'url all'immagine. In questo modo selezionandone una, e il criterio di somiglianza si puo' risalire facilmente alle immagini desiderate. Il DB serve per avere un set di immagini a cui riferirsi, ti faccio un esempio che dovrebbe essere molto chiaro. L'idea mia è quella di utilizzare per esempio delle immagini mediche quali radiografie per esempio della bocca, ed una volta avuta l'immagine da classificare riuscire ad avere in uscita dell'applicazione la patologia riscontrata dall'immagine avendo fatto il confronto con quelle presenti nel DB in maniera tale da ottenere un Ontologia. ---------------------------------------- AUTORE: 4 DATA :27/04/2006 - 19:20:42 ---------------------------------------- Ora la situazione mi è più chiara, in sostanza hai due problemi da risolvere 1 gestire un DB per archiviare richiamare le immagini e associarle a delle etichette 2 creare un algoritmo di riconoscimento delle immagini per il primo problema trovi molte discussioni direttamente su ilvg usando la funzione ricerca, per il secondo problema prova a partire da questa "vecchissima" [url=http://www.ilvg.it/forum/viewtopic.php?t=77:mnjyx2mu]discussione[/url:mnjyx2mu] Ciao, ---------------------------------------- ================================================================================ agire su un'immagine ================================================================================ AUTORE: 673 DATA :27/04/2006 - 07:19:05 ---------------------------------------- Ciao a tutti, volevo chiedervi un aiuto. Vorrei copiare un'immagine (per esempio il logo di un'azienda) sul pannello frontale di un vi e, una volta cliccato con il mouse su tale immagine, vorrei mi si aprisse un'altro vi. Questa procedura con altri linguaggi, tipo VB, è molto facile ma in LV non riesco ad associare ad un'immagine importata nessuna azione. Qualcuno sa dirmi come fare? Grazie. ---------------------------------------- AUTORE: 487 DATA :27/04/2006 - 08:32:20 ---------------------------------------- Ciao, l'operazione è semplice, basta che tu importi l'immagine e gli sovrapponi un pulsante. Poi con la palette dei colori rendi il pulsante trasparente ed il gioco è fatto. Cliccando sull'immagine avrai un valore booleano che potrai gestire come meglio credi (per esempio per lanciare un'altro vi). PS: fai attenzione che il pulsante trasparente deve essere in primo piano. ---------------------------------------- AUTORE: 1050 DATA :27/04/2006 - 08:53:14 ---------------------------------------- Ciao, anzichè "sovrapporre" l'immagine al controllo boolean puoi fare così: 1. seleziona il pulsante boolean 2. tasto sx del mouse, seleziona "advanced\customize" 3. sul nuovo pannello di editing del controllo seleziona il pulsante, tasto sx,import picture a questo punto puoi importi l'immagine su tutti gli "stati" del pulsante. ---------------------------------------- AUTORE: 673 DATA :27/04/2006 - 13:46:19 ---------------------------------------- Ottimo, fatto! Vi ringrazio molto. Ciao ---------------------------------------- ================================================================================ comportamento tasto dx del mouse e"control\function pal ================================================================================ AUTORE: 43 DATA :28/04/2006 - 10:04:48 ---------------------------------------- Penso sia un'amnesia, ma... DATO CHE: Premendo il tasto dx del mouse sia nel "Front Panel" che nel "Block Diagram" si ottiene la visualizzazione rispettivamente della "Control Palette" o della "Function Palette" \"8)\" MI CHIEDO: Perchè su alcuni PC ottengo la visualizzazione [u:2llmxcfd]con un solo click[/u:2llmxcfd], mentre su altri [u:2llmxcfd]devo tener premuto il tasto dx del mouse[/u:2llmxcfd], altrimenti al momento del rilascio del tasto del mouse la Palette scompare? \":roll:\" Se dipende dalle Option di LabVIEW (ma non credo..), che opzione devo settare? Se dipende dal setup di windows che cosa devo modificare? [u:2llmxcfd][b:2llmxcfd]per ottenere la visualizzazione della Palette con un solo CLICK [/b:2llmxcfd][/u:2llmxcfd]:?: \":?:\" Grazie in anticipo x la pazienza. Un saluto a tutto il Team ILVG. continuate così ragazzi \":!:\" \":!:\" \":!:\" \":wink:\" ---------------------------------------- AUTORE: 43 DATA :28/04/2006 - 12:55:35 ---------------------------------------- OK ho la soluzione!! da menu Abilitare Tools --> Options... --> Miscellaneous --> Use hot menus ed il parametro vale anche per i menu di LabVIEW ed i controlli (tipo "Ring") dove è previsto un "popup" bye ---------------------------------------- AUTORE: 278 DATA :28/04/2006 - 19:16:19 ---------------------------------------- He he he \":lol:\" \":lol:\" \":lol:\" Paracarro ne sa sempre una piu` del diavolo!!!! \":twisted:\" \":twisted:\" \":twisted:\" ---------------------------------------- ================================================================================ Listbox ================================================================================ AUTORE: 866 DATA :28/04/2006 - 11:03:26 ---------------------------------------- Ciao a tutti, vi spiego il mio problema con le listbox. Per ogni riga voglio che sia presente una casella che in caso di selezione della riga stessa sia spuntata. Qualcuno sa come si fa? Esiste un metodo più veloce che usare i property node? Grazie Ciao ---------------------------------------- ================================================================================ Problemi con Application Builder: creazione di un eseguibile ================================================================================ AUTORE: 645 DATA :28/04/2006 - 13:57:15 ---------------------------------------- Mi trovo in questa situazione: ho un VI principale (lo chiamo 1) che comunica con un database attraverso la tecnologia ADO. In un punto del VI 1 c'è un pulsante che avvia un VI 2 (chiamato attraverso i "Method"). Questo VI 2 legge e scrive dati su un file di testo esterno. Come faccio a creare l'eseguibile in modo da far funzionare tutti questi collegamenti? Ho provato sia con che senza l'Installer, allegando tutte le librerie più strane, inserendo il VI 2 come VI dinamico e il file di testo come File di Supporto ma non riesco a far funzionare il sistema. Quello che ottengo è un VI 1 (chimiamolo bis, quello dell'eseguibile) che non riesce a comunicare con il database (trovo "Ref Null" passato) e un VI 2 che non si apre: quando premo il pulsante si apre direttamente il file di testo (ma io non l'ho mai chiamato!). E tra le altre cose non riesco a trovare documentazione interessante sull'Application Builder. Adesso urlo... !!!!!!!!!!! ... ---------------------------------------- AUTORE: 1078 DATA :28/04/2006 - 14:55:24 ---------------------------------------- Innanzi tutto sarebbe interessante sapere con che versione di Labview lavori, in quanto l'application builder del 7.1 è completamente diverso dala versione dell'8.0. Poi, per quanto riguarda l'errore di "ref null" la prima cosa che ti consiglio di controllare sono eventuali "path" passate nel richiamare i file. Quando si creano programmi indipendenti le path relative cambiano e vengono puntate sul programma creato (caspita! Spero di essere stato chiaro!). Le puoi verificare inserendo un controllo provvisorio che ti visualizzi la path corrente al momento della chiamata al file esterno. Questo potresti non averlo considerato e potrebbe essere la cusa dei tuoi guai.... Fai questa verifica e poi facci sapere! ---------------------------------------- AUTORE: 645 DATA :28/04/2006 - 15:00:44 ---------------------------------------- Scusate... io lavoro con LabView 7.1 e il suo Application Builder. Per quanto riguarda il file non credo di aver capito: io richiamo un percorso relativo basato sulla cartella nella quale si trova il VI in esecuzione (e anche il VI 2 che inserisco io nella stessa cartella). ---------------------------------------- AUTORE: 4 DATA :28/04/2006 - 15:13:42 ---------------------------------------- Il discorso percorso file è molto importate e quello che suggerisce rickyè un ottimo metodo per toglersi ogni dubbio. a questo proposito leggi quello che segue [quote:1521o3fc] Quando si installa un’applicazione a bordo della macchina target, è buona norma che il comportamento sia indipendente dalla directory di installazione, in modo che l’utente possa installarla su un diverso disco rigido senza problemi e che l’installazione non sia dipendente dalla lingua del sistema operativo, dato che il nome della directory “Program Files” è tradotto nelle versioni localizzate di Windows 95, Windows 98, Windows NT e Windows 2000. Questo si fa normalmente ricorrendo alla funzione Current VI Path di LabVIEW, nel menu delle File Constants. Questa funzione restituisce il path completo del VI corrente. La funzione, purtroppo, si comporta diversamente nell’ambiente di sviluppo e in un’applicazione compilata con l’application builder. Si supponga di voler determinare la directory di installazione dell’applicazione nel VI principale del programma Main.vi, che la directory del sorgente in cui risiede il VI principale sia C:\Sources\MyApp\Bin e che il programma eseguibile MyApp.exe sia installato in C:\Program Files\MyApp. La funzione Current VI Path restituirebbe nel primo caso C:\Sources\MyApp\Bin\Main.vi e nel secondo C:\Program Files\MyApp\MyApp.exe\Main.vi, cioè includendo il nome del file eseguibile. Assumendo ovviamente che il codice sia contenuto nel VI principale dell’applicazione. Sul sito http://www.ilvg.it dalla sezione “download”, è possibile scaricare il codice descritto sopra (Path relativo.vi) [/quote:1521o3fc] Ciao, ---------------------------------------- AUTORE: 645 DATA :04/05/2006 - 10:12:06 ---------------------------------------- Ho risolto i problemi di comunicazione tra il file .EXE creato con Application Builder, il VI secondario richiamato all'interno del VI principale e il file di testo di supporto. Bisogna stare attenti ai percorsi dei file da richiamare. All'interno del VI principale avevo costruito i percorsi relativi partendo dalla posizione del VI, convertendo il percorso in un array di stringhe e sostituendo l'ultima stringa (il nome del VI principale in esecuzione) con il nome del VI secondario o del file di testo. Questo funziona bene finchè il VI principale lavora come VI con LabView aperto. Creando l'eseguibile i percorsi cambiano. Più precisamente non basta sostituire l'ultima stringa ma è necessario eliminare le ultime due: il file .EXE compare nel percorso seguito dal nome del VI. Sostituendo le ultime due stringhe con il nome del VI secondario o del file di testo tutto funziona bene. Inoltre il VI secondario è stato inserito nell'Application Builder come VI dinamico. ---------------------------------------- ================================================================================ interruzione dell'esecuzione ================================================================================ AUTORE: 1230 DATA :28/04/2006 - 15:35:58 ---------------------------------------- Ho creato un VI con alcuni while loop. Il programma, termina solo dopo la selezione dello stop di tutti i cicli. Fin qui tutto ok. Io però vorrei che fosse possibile interrompere l'esecuzione del programma in ogni istante, magari tramite un altro pulsante stop. Non è possibile mettere uno stop generale che mi consenta di interrompere tutti i cicli? Ho provato diverse soluzioni ma non sono riuscito a venirne a capo, poichè una volta che il loop è avviato non è possibile uscirne se non tramite il comando di stop interno al loop stesso. Spero che qualcuno mi possa aiutare. ---------------------------------------- AUTORE: 129 DATA :28/04/2006 - 16:57:21 ---------------------------------------- Devi ricorrere a quella che si chiamano cicli paralleli, utilizzando variabili locali del controllo stop(del while principale). Per creare la local variable devi, nel while principale crei un controllo Stop, imposta il mechanical action su pulsante o interruttore(i latch non fnziano con le local), quindi dal diagramma, fai tasto destro sul controllo stop e dal popup selezioni create/local variable. Ora ti appare una variabile locale verde(boolean con la scritta stop) sempre con il tasto destro su di essa, seleziona su change to read. Ora la variabile e di lettura, copian e incollane quate te ne servono nei vari loop sparsi sul tuo programma e il gioco è fatto. Ora quando vai in esecuzione, alla pressione del tasto stop, anche le variabili si settano a true, generando lo stop centralizzato della tua applicazione. spero di essere stato abb.za chiaro, Buona fortuna, Nicola Trovi un esempio nei template di labview. ---------------------------------------- AUTORE: 1230 DATA :29/04/2006 - 01:43:02 ---------------------------------------- Grazie. Ho risolto rapidamente con il tuo aiuto. \":lol:\" \":lol:\" ---------------------------------------- ================================================================================ Allineamento scritte e barra strumenti ================================================================================ AUTORE: 1230 DATA :29/04/2006 - 16:56:59 ---------------------------------------- Ho creato un Vi e ho notato che se cambio la grandezza dei caratteri da normale a grande dalle impostazioni di windows, si perde l'allineamento delle scritte nel front panel. E' possibile fare in modo che l'allineamento verticale si mantenga? Ho poi creato un installer con l'application builder. E' possibile eliminare la barra degli strumenti? ---------------------------------------- AUTORE: 129 DATA :29/04/2006 - 18:07:08 ---------------------------------------- [quote:3q6hk6zp]E' possibile eliminare la barra degli strumenti?[/quote:3q6hk6zp] SI, devi andare in file/property (o dal diagramma, vai sull'icona del vi in alto a dx e dal popup selezioni property). Dal menu a tendina selezioni windows appaerence e qui potresti cliccare dialog, per avere una finestra sempre in primo piano come quelle tcihe di windows. Se vuoi puoi anche andare in custo e abilitare/disabilitare le opzioni che ti interessano (ad esempio disabiliti show toolbar). ---------------------------------------- AUTORE: 712 DATA :02/05/2006 - 17:16:15 ---------------------------------------- [quote="morks":15cx6e87]Ho creato un Vi e ho notato che se cambio la grandezza dei caratteri da normale a grande dalle impostazioni di windows, si perde l'allineamento delle scritte nel front panel. E' possibile fare in modo che l'allineamento verticale si mantenga? [/quote:15cx6e87] Io di solito evito di utilizzare il font "system" o "application" se ho di questi problemi. Seleziona il testo, apri il menù a tendina del font e cambia il font predefinito (tipicamente Application Font) con uno di quelli indicati sotto (es: Arial), il quale diventerà da quel momento il "font corrente" del tuo VI. Ciao, L. ---------------------------------------- ================================================================================ documentazione analisi database access ================================================================================ AUTORE: 848 DATA :01/05/2006 - 12:01:35 ---------------------------------------- Salve, ho questo problema da risolvere: Ho importato un database Access in Labview8 usando "retrieval data from access.vi" Ora dovrei riuscire ad analizzarne le righe, utilizzando sempre Labview. Avete degli esempi o della documentrazione per poter effettuare delle operazioni di confronto/analisi tra due o più righe di un database Access? Il database è composto da 10 colonne, 30 righe. Dovrei riuscire a confrontarle tra di loro in automatico. Grazie per le info che mi darete ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:32:23 ---------------------------------------- se ho capito correttamente, puoi confrontare i tuoi dati usando tutte le funzioni nella paletta delle funzioni "string" ---------------------------------------- AUTORE: 645 DATA :14/05/2006 - 21:52:08 ---------------------------------------- Non ho presente il VI che hai usato ma immagino che le informazioni recuperate dal database vengano inserite in una tabella. Puoi lavorare con una tabella come se fosse un array solo che devi specificare due dimensioni (riga-colonna) anzichè una sola (se colleghi un array al blocco "Index" hai la possibilità ddi specificare un indice di posizione, se colleghi allo stesso blocco una matrice vedrai che gli indici diventano due). Se conosci la struttura del database puoi selezionare le colonne che ti interessano e poi lavorare sulle righe. ---------------------------------------- AUTORE: 848 DATA :21/05/2006 - 19:02:00 ---------------------------------------- tante grazie ad entrambi Faccio una prova, vi faccio sapere \":wink:\" ---------------------------------------- ================================================================================ Controllo a tre stati [era: HELP !!!] ================================================================================ AUTORE: 1235 DATA :01/05/2006 - 21:53:08 ---------------------------------------- Salve! Sono alle prime armi con labview! Come posso costruire sul front panel un controllore che assume ad esempio i valori a,b e c e una volta selezionato uno di questi faccia corrispondere un set di 3 valori differenti per ognuno da cui selezionarne uno con cui entro in un case? Grazie! ---------------------------------------- AUTORE: 247 DATA :01/05/2006 - 23:41:27 ---------------------------------------- Ciao, in [url=http://www.ilvg.it/forum/viewtopic.php?t=651&start=0&postdays=0&postorder=asc&highlight=:3e7w9vn6]questo[/url:3e7w9vn6] vecchio post avevo proposto una soluzione per la creazione di pulsanti a più stati per la versione di LabVIEW 7.0, se hai la 8 forse si può fare con i nuovi Xcontrols. Se sei alle prime armi però ti sarà un pò difficile capire la mia soluzione, vedi se riesci ad utilizzarla, altrimenti chiedi.\":D\" BYE. ---------------------------------------- AUTORE: 1235 DATA :02/05/2006 - 08:45:04 ---------------------------------------- Scusa ma non ci ho capito granchè! Io ho la 7.1 e vorrei creare un ring a cui associare il valori a, b e c e ognuno di questi valori punti un ring con 3 altri valori ad esempio il valore "a" punti un ring con valori 1 , 2 e 3 il "b" un ring con 4, 5 e 6 e il "c" un ring 7,8 e 9. Graficamente sul fronto panel vorrei che una volta selezionato il valore dal primo ring si vedesse accanto solo il ring corrispondente dove posso andare a selazionare il valore con cui pilotare il " case". Scusami ancora! GRAZIE! ---------------------------------------- AUTORE: 680 DATA :02/05/2006 - 12:59:29 ---------------------------------------- un qualcosa del genere??? ciao... ---------------------------------------- AUTORE: 1235 DATA :02/05/2006 - 13:17:42 ---------------------------------------- E' proprio quello che mi serve! GRAZIE !!! ---------------------------------------- ================================================================================ Event structure ================================================================================ AUTORE: 866 DATA :02/05/2006 - 14:21:39 ---------------------------------------- Ciao a tutti, qualcuno sa come far funzionare le event structure quando il VI gira su un cRIO. Lo stesso VI, facendolo girare sul pc funziona correttamente, mentre sul cRIO si blocca dentro la event structure senza svolgere le operazioni all'interno..... Qualche idea???? Grazie Ciao ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 19:07:19 ---------------------------------------- L'evento scatenante qual'è? ---------------------------------------- AUTORE: 866 DATA :15/05/2006 - 10:20:29 ---------------------------------------- L'evento scatenante è un pulsante di OK. In particolare viene fatto un setting di parametri e al termine, per proseguire con l'esecuzione, viene spinto OK... ---------------------------------------- AUTORE: 4 DATA :12/06/2006 - 08:54:11 ---------------------------------------- ma quando il VI è in esecuzione sul cRIO, chi "spinge" il bottone OK? Ciao, ---------------------------------------- AUTORE: 866 DATA :12/06/2006 - 09:19:05 ---------------------------------------- Ciao, il pulsante lo spinge l'utente una volta che ha settato un certo numero di parametri... Ciao ---------------------------------------- AUTORE: 4 DATA :12/06/2006 - 10:41:54 ---------------------------------------- Hai un PC colegato al crio quindi... i consiglio di fare una prova usando gli eventi dinamici piuttosto che quelli da UI. Ciao, ---------------------------------------- ================================================================================ Frequenza ================================================================================ AUTORE: 1029 DATA :02/05/2006 - 14:46:40 ---------------------------------------- Salve ragazzi! Ho un problema nel generare una sinusoide alla frequenza di 1 MHz, ho usato un SIMULATE SIGNAL, per generare la sinusoide e vario la frequenza tramite un controllore. Quando arrivo a 5 kHz mi spunta questo messaggio di errore: "Error -20061 occurred at Simulate Signal -> Untitled 2 frequency must be <= sampling rate/2" Ho provato ad aumentare la frequenza di campionamento, "Samples per second" dalle proprietà del SIMULATE SIGNAL, ma il massimo segnale che riesco a visualizzare è di 50 kHz. C'è un metodo per visualizzare la sinusoide alla frequenza che voglio? Molti componenti che fanno parte del mio programma dovrebbero lavorare vicino quella frequenza, se riesco a risolvere questo problema penso di poterle aggiustare tutto dove mi serve. Ringrazio tutti anticipatamente! ---------------------------------------- AUTORE: 680 DATA :02/05/2006 - 17:09:37 ---------------------------------------- la frequenza di campionamento (secondo il teorema di Shannon o del campionamento) deve essere maggiore o uguale a due volte la frequenza massima del segnale. fc >= 2fmax cmq ecco il vi con la sine ad 1 MHz ---------------------------------------- AUTORE: 1029 DATA :02/05/2006 - 18:23:00 ---------------------------------------- Grazie linux! Rispettavo il teorema di Shannon però poichè compariva la scritta "fewer samples are displayed than you configured" non ero mai andato a fondo, pensavo di aver sbagliato! Grazie ancora! ---------------------------------------- AUTORE: 645 DATA :03/05/2006 - 00:36:52 ---------------------------------------- Il teorema del campionamento dice che la frequenza di campionamento deve essere almeno due volte la frequenza massima interessante del segnale da campionare. Nel tuo caso: Fsegnale = 1 MHz --> Fcampionamento >= 2 MHz. Per visualizzare un numero finito di cicli si usa la formula: Fcampionamento/Fsegnale = n.° campioni per un periodo. Nel tuo caso: 2M / 1M = 2M => un sacco di punti! LabView va in crisi perchè deve visualizzare un numero spropositato di punti. A te serve vedere il segnale graficamente o generarlo? Perchè se il problema è solo di tipo grafico puoi ridurre in scala tutte le frequenze (se non comporta problemi) per visualizzare correttamente i risultati. Se invece devi generare un segnale con questa frequenza elevata devi ricorrere a schede apposite (sul sito della National puoi cercare i prodotti per le alte frequenze). ---------------------------------------- AUTORE: 1029 DATA :03/05/2006 - 16:56:33 ---------------------------------------- Grazie magic! Avevo un problema di generazione del segnale a quella frequenza, poi invece mi hanno detto che non potevo disporre di una scheda che lavorasse a quella frequenza, ora ho una scheda che può lavorare al max a 10 kHz quindi il problema si è tolto già in partenza. Grazie per l'aiuto! ---------------------------------------- ================================================================================ acquisizione di piu segnali contemporaneamente ================================================================================ AUTORE: 1239 DATA :02/05/2006 - 17:19:39 ---------------------------------------- Salve a tutti, la società in cui lavoro ha appena acquistato una nuova scheda di acquisizione LabVIEW NI DAQP 6015, che comunia con il pc attraverso la porta seriale. Sto cercando di acquisire contemporaneamente piu segnali di tensione provenienti da vari canali, ma usando i DAQ mx ho solo messaggi di errore. Ptreste gentilmente darmi delle dritte? Grazie ciao ---------------------------------------- AUTORE: 129 DATA :02/05/2006 - 17:48:44 ---------------------------------------- Non so esattamente come hai realizzato la tua applicazione, ma supponendo di iniziare da zero, creerei un task, con più canali, in modo che il vi read DAQMX, ti possa restituire un array di n dimensioni dove ogni dimensione sia il canale di misura. Altrimenti devi utilizzare cicli paralleli. MAgari posta il messaggio di errore che ti viene restituito e ancora eglio il vi che hai creato. Negli esempi (Help/Find example) dovresti trovare un esempio su acquisizione multipla. ---------------------------------------- AUTORE: 645 DATA :03/05/2006 - 00:20:17 ---------------------------------------- Scusa la domanda... la scheda NI DAQP 6015 che stai usando non dovrebbe comunicare tramite USB? Hai provato ad utilizzare il DAQ-Assistant? Con la procedura guidata puoi impostare i canali da leggere. ---------------------------------------- AUTORE: 1239 DATA :03/05/2006 - 16:50:16 ---------------------------------------- Ciao, in effetti ho sbagliato nello scrivere, la scheda di acquisizione che uso comunica con il pc tramite la USB; comunque vedendo le discussioni sui problemi di acquisizione multipla sono riuscito a risolvere i miei problemi. Vi ringrazio per avermi comunque risposto, siete stati gentili. Ciao Grazie ---------------------------------------- ================================================================================ Estrazione VI. ================================================================================ AUTORE: 1235 DATA :02/05/2006 - 20:06:54 ---------------------------------------- Scusate la domanda! Ma è possibile estrarre la VI da un'eseguibile? GRAZIE! ---------------------------------------- AUTORE: 247 DATA :02/05/2006 - 23:33:47 ---------------------------------------- Ciao, non è possibile recuperare un VI da un'eseguibile, la compilazione del codice rende "impossibile" il recupero del block diagram dei VI che lo compongono. BYE. ---------------------------------------- ================================================================================ LabView . Codifica BCD ================================================================================ AUTORE: 1203 DATA :03/05/2006 - 10:14:02 ---------------------------------------- Ciao a tutti , volevo sapere se qualcuno di voi ha gia` implementato una funzione in LabView per effettuare la codifica BCD a 24 bit. XXX XXX Khz dove ogni digit e` un numero BCD (4 bit per BCD digit). \":o\" Ringrazio per l'attenzione. A presto. \":oops:\" ---------------------------------------- AUTORE: 1203 DATA :05/05/2006 - 09:43:16 ---------------------------------------- \":idea:\" Alla fine sono riuscita a fare la codifica! Se qualcuno ne avesse bisogno,posso aiutarlo. Grazie a tutti ---------------------------------------- AUTORE: 278 DATA :05/05/2006 - 10:54:30 ---------------------------------------- Ciao, Complimenti!! Ho dato un'occhiata in internet per vedere se c'era disponibile una libreria in LV che facesse questa conversione ma niente... Se sei così gentile da postare il tuo programma (oppure mandami un messaggio privato) possiamo metterlo nella sezione Download del sito. Ciao Ciao ---------------------------------------- AUTORE: 1154 DATA :30/06/2006 - 14:22:09 ---------------------------------------- Ciao, è la prima volta che rispondo, e spero di non fare brutta figura... Volevo passare una parte di codice che mi ha permesso di convcertire un dato da una strina in BCd in un numero. Questa parte del codice l'ho ricavata da: http://forums.ni.com/ni/board/message?b ... ing&page=1 ed in particolare: http://forums.ni.com/attachments/ni/170 ... umber61.vi Ciao e fatemi sapere se è servito... ---------------------------------------- ================================================================================ Funzione o VI per lettura info pc ================================================================================ AUTORE: 445 DATA :03/05/2006 - 15:10:34 ---------------------------------------- Ciao a tutti ... esiste una funzione o un vi che restituisca una specie di elenco di tutte le info del pc? ... nome,gruppo,ip address ect ect??? grazie ---------------------------------------- AUTORE: 645 DATA :03/05/2006 - 16:17:53 ---------------------------------------- Per info intendi le informazioni di rete (IP, nome...) o i dati tecnici (versione del sistema operativo, RAM...) ? ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 10:35:01 ---------------------------------------- Anche a me servirebbe poter "scoprire" cose di questro tipo, in particolare: -MAC address della scheda di rete; -numero di serie del processore e del HD; Qualche idea? ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 10:57:59 ---------------------------------------- Per il MAC address e per tutte le info relative alla scheda di rete uso [code:2g5kaz1u]ipconfig.exe[/code:2g5kaz1u] chiamandolo dala funzione "System Exec.vi" e poi interpretando il suo output. per il disco uso [code:2g5kaz1u]disk32.exe[/code:2g5kaz1u] usando il metodo descritto sopra. Non è il massimo perchè bisogna interpretare delle stringhe ma funziona. Ciao, ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 11:06:51 ---------------------------------------- Giusta osservazione. Lo svantaggio è che l'output di queste "utilities" varia a seconda delle versioni dell'OS. Visto che questi 'programmini' prendono queste informazioni, vorrá dire che le "primitive" da qualche parte esistono. Dove? Nelle API di windows? Non c'è tra di noi qualcuno che sia anche un "wndows geek" e ce lo possa dire? ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 11:34:57 ---------------------------------------- Spiacente, only labview \":wink:\" ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 11:46:53 ---------------------------------------- Appunto, per usarle da LabView! ---------------------------------------- AUTORE: 384 DATA :01/08/2006 - 14:00:40 ---------------------------------------- Ho trovato questo ActiveX (freeware). L'ho provato e fa il suo discreto lavoro. Saluti. ---------------------------------------- AUTORE: 384 DATA :01/08/2006 - 14:11:37 ---------------------------------------- Il file è troppo grosso e non posso caricarlo qui. Ecco il link: http://www.vb-fun.de/cgi-bin/loadframe. ... 0042.shtml ---------------------------------------- AUTORE: 384 DATA :01/08/2006 - 14:16:14 ---------------------------------------- Per chi cerca il MAC address, ho scoperto che esiste il commando: getmac É sempre necessario interpretarne l'output, ma in questo comando è molto meno profuso e, quindi, molto più facile da lavorarci. ---------------------------------------- ================================================================================ Problemi di visualizzazione ================================================================================ AUTORE: 1029 DATA :03/05/2006 - 17:41:25 ---------------------------------------- Salve a tutti! Il problema che sto per esporre era stato apparentemente risolto in un topic precedente, soltanto che questa soluzione andava in conflitto con altri parti del programma che sto costruendo e l'ho dovuta scartare. Il problema è il seguente: ho 2 segnali, un sawtooth e una sinusoide. Devo usare un EX-XYGRAPH in cui mando in asse X il dente di sega e in asse Y la sinusoide. Come potete vedere nell'allegato, l'immagine sfarfalla (sfarfalla anche quando la frequenza del dente di sega è multiplo di quella della sinusoide e viceversa). Ci sono 2 problemi: eliminare lo sfarfallìo e le righe orizzontali (penso siano dovute alla mancanza di un circuito di blanking), e ultimo problema nel mio programma, fissato l'intervallo d'interesse, la curva si sposta lungo l'intervallo mentre vorrei che LabVIEW la ridisegnasse continuamente partendo dallo stesso punto, in modo da apparire ferma. Qualcuno ha un'idea di come fare? Sono fermo in questo punto da + di 2 mesi! P.S.: nel mio programma non conosco la frequenza della sinusoide. Ringrazio tutti per l'aiuto! Vi citerò nei ringraziamenti per la tesi! ---------------------------------------- ================================================================================ labview e wago ================================================================================ AUTORE: 683 DATA :03/05/2006 - 22:37:44 ---------------------------------------- ciao a tutti ragazzi, eccomi di nuovo qui a chieder aiuto ad oggi ho creato un progrmma che acquisisce controlla chide apre un sistema un po' complesso ecc.... ho realizzato tutto con i moduli I7O field point ora per motivi di consto versatilità, compattezza e reperibilità dopo essere stato alla fiera di Hannover e aver visitato lo stand della national mi sono avvicinato allao stad della wago che aveva in dimostrazione anche un esempio controllato da labview lo stesso esempio l'ho trovato sulle application note dal sito della wago. ora mi sto chiarendo le idee sulle immagini di processo ma una cosa che ho notato negli esempi è che non c'è nenache una variabile double e anche i grafici sono interi.Come faccio a tirare fuori numeri con la virgola da strinche di valori interi?? c'è qualcuno che ha già usato i moduli wago e li ha interfaciati con LV?? Ho visto anche che qualcuno usa OPC server ma ha come svantaggi una certa lentezza e il fatto che devo installare una pacchetto LV per costruireL'opc server c'è qualcuno che mi sa dare una dritta o qualche indicazione??? ve ne sarei grato buon lavoro ---------------------------------------- AUTORE: 247 DATA :04/05/2006 - 10:53:06 ---------------------------------------- Ciao, [quote:15xrgznc]Come faccio a tirare fuori numeri con la virgola da strinche di valori interi??[/quote:15xrgznc] cosa intendi con precisione? Non capisco cosa sia una stringa di interi e di conseguenza perchè vuoi interpretarla come float... BYE. ---------------------------------------- AUTORE: 683 DATA :04/05/2006 - 14:30:06 ---------------------------------------- alla mia richiesta dei numeri interi ho trovato la soluzione : dai datasheet dei moduli I/O vago c'è il campo dei valori binari e interi che ogni modulo scrive sul buffer Per quel che riguarda gli ingressi e le uscite analogiche loro lavorano con una risoluzione da 12 a 16 bit da mappare sul loro fondoscale quindi se ho un modulo 0-10V di uscita analogica corrispondete al valore 0 ho il numoero intero 0, fino ad arrivare fino a 10v che sara di valore 7FFF cioè 32768 quindi da 0 a 10V ho disponibili 32768 valori diversi e da qui con una semplicissima proporzione delle scuole elementari mi ricavo il mio numero con la virgola. Nel mio post c'era una richiesta su come far funzionare i moduli wago con LV (da wago.com c'è una quida di come implementare il protocollo modbus oppuer mediante OPC) e volevo sapere se qualcuno ha già adoperato questi moduli e se ha avuto problemi di qualsiasi genere grazie ancora buon lavoro ---------------------------------------- AUTORE: 463 DATA :23/05/2006 - 08:24:31 ---------------------------------------- Ciao, io li ho usati un pò tutti i vari tipi di moduli Wago interfacciandoli con Labview, encoder, pwm, contatori ecc, mi sono creato i driver per ogni modulo con LV e non è stato un lavoro breve, però è fattibile, ho usato i tool di connessione all'indirizzo ip del Wago tramite protocollo tcp/ip con cui comunico, poi vado a fare le procedure di askconfig, ask data e putdata e ne è saltato fuori qualcosa di molto carino! Buona fortuna! ---------------------------------------- AUTORE: 683 DATA :23/05/2006 - 18:12:59 ---------------------------------------- grazie per la risposta, quindi tu hai usato le librerie della wago con il modbusTCP?? Ti sono serviti gli esempi allegati al driver?? La velocità di acquisizione e scrittra datì su ch ordine di grandezza è?? Ora io ho sistemi con i fieldpoint ma sento il bisogno di motare quisto moduli "industriali" che a mio avviso dovrebbero funzionare meglio e costare meno! nel post hai scritto che ti sei fatto un driver per ogni modulo ma l'acqusizione el a scrittura delle immagini dei dati di processo non viene fatta un sola volta attraverso il buscupple ?? mi daresti una traccia su come implementare questo driver in maniera semplice?? per adesso non ho ancora acquistato niente me appena ho un po' di lavoro in meno mi ci dovrò mettere !! grazie per i tuoi cosigli ---------------------------------------- ================================================================================ Application builder per Linux ================================================================================ AUTORE: 653 DATA :04/05/2006 - 09:11:07 ---------------------------------------- Ciao a tutti, mi chiedevo (prima di comparlo) se l'application builder per linux consente di sviluppare il programma in ambiente WIN e creare poi un eseguibile adatto per essere installato su macchine linux. Qualcuno lo ha già fatto? Sapete se ci sono limitazioni particolari? Grazie a tutti. ---------------------------------------- AUTORE: 278 DATA :04/05/2006 - 09:23:31 ---------------------------------------- Ciao, Se non ho capito male credo di si!! Una delle caratteristiche di LV è la portabilità del codice sorgente, se sviluppi un VI in Win e poi lo porti in Linux non dovrebbe darti alcun problema. Quindi, se vuoi sviluppare in ambiente win e poi compilare in ambiente Linux puoi farlo, ma io ti consiglio di fare entrambe le cose sullo stesso sitema operativo. Ciao Ciao ---------------------------------------- AUTORE: 247 DATA :04/05/2006 - 10:44:01 ---------------------------------------- Ciao, non ho mai utilizzato l'App. Builder per creare un'applicativo in Linux basandomi su un VI creato in Win...ma posso dirti che la compatibilità diretta dei VI non è assolutamente garantita, per esperienza personale infatti un vi creato per comunicazione seriale che in Win utilizza gli eventi non può essere utilizzato in Linux perchè la funzione che gestisce l'evento non esiste... Seguendo questa falsa riga quindi, anche se a secco, posso azzardare che la compatibilità sia garantita per le sole funzioni/funzionalità fornite direttamente da LabVIEW, tipo operazioni, strutture di controllo etc, ma che quelle legate al sistema operativo, ed ai componenti che gestisce, non lo siano assolutamente! In parole povere devi minimo riverdere tutto il codice.... BYE. ---------------------------------------- AUTORE: 653 DATA :04/05/2006 - 12:06:27 ---------------------------------------- Grazie ragazzi.Ci provo e vi farò sapere.... ---------------------------------------- AUTORE: 278 DATA :04/05/2006 - 13:56:34 ---------------------------------------- [quote:fhlxh9x2]posso azzardare che la compatibilità sia garantita per le sole funzioni/funzionalità fornite direttamente da LabVIEW, tipo operazioni, strutture di controllo etc, ma che quelle legate al sistema operativo, ed ai componenti che gestisce, non lo siano assolutamente! [/quote:fhlxh9x2] Appunto per questo consiglio di fare sorgente ed eseguibile sullo stesso sitema operativo!! \":wink:\" \":lol:\" ---------------------------------------- ================================================================================ Oscilloscope ================================================================================ AUTORE: 1235 DATA :04/05/2006 - 09:24:01 ---------------------------------------- Scusate ma qualcuno ha una VI già creata che faccia da oscilloscopio e che possa visualizzare un segnale d'INGRESSO creato in ambiente Labview stesso? Quello degli esempi di Labview non può essere pilotato da un segnale del genere se non erro! GRAZIE IN ANTICIPO! ---------------------------------------- AUTORE: 645 DATA :04/05/2006 - 10:05:09 ---------------------------------------- In che senso? Se generi il segnale con LabView e vuoi visualizzarlo nello stesso VI devi usare un graph/chart. Se invece generi il segnale con LabView in un VI sul pc 1 e vuoi visualizzarlo in un VI sul pc 2 devi passare attraverso le schede di output (pc 1) e input (pc 2). ---------------------------------------- ================================================================================ Dimensioni ================================================================================ AUTORE: 847 DATA :04/05/2006 - 09:26:05 ---------------------------------------- Salve a tutti volevo sapere se c'è un metodo per dare delle dimensioni precise agli oggetti presenti nel pannello di controllo. Grazie Ciao ---------------------------------------- AUTORE: 1050 DATA :04/05/2006 - 10:07:03 ---------------------------------------- Ciao, premesso che uso il Lv7.1, seleziona il tuo controllo su pannello e sulla toolbar seleziona il tasto (menu a tendina) "resize object" che contiene "Set width and height". ---------------------------------------- ================================================================================ Trasmissione via etere con LabView ================================================================================ AUTORE: 1090 DATA :04/05/2006 - 12:11:12 ---------------------------------------- Vorrei sapere come gestire un trasmettitore e/o ricevitore radio tramite uno strumento virtuale. In pratica vorrei controllare un apparecchio radio con LabView: prima di tutto, è possibile? se sì come faccio? ---------------------------------------- AUTORE: 247 DATA :04/05/2006 - 13:52:39 ---------------------------------------- Ciao, dipende tutto da come è interfacciato il tuo apparecchio radio al PC! In pratica dall'interfaccia che utilizzi per comandarlo.. Che tipo di apparecchio radio è? BYE. ---------------------------------------- AUTORE: 645 DATA :04/05/2006 - 13:52:41 ---------------------------------------- Hai qualche info in più? Di per sè se lo strumento è comadabile dall'esterno (porta seriale, USB, onde radio, infrarossi) dovrebbe essere possibile interfacciarlo con LabView. ---------------------------------------- AUTORE: 1243 DATA :04/05/2006 - 16:21:36 ---------------------------------------- Ciao sn il vero autore dl mex d mik, il vero problema nn è cm collegare l'apparekkio al compu ma dv trovare gli strumenti x creare 1 VI d gestione dll'apparekkio stexo, in seguito vedrò quale radio usare! ciao ciao ---------------------------------------- AUTORE: 645 DATA :04/05/2006 - 16:30:26 ---------------------------------------- Bisogna preparare il VI ma LabView mette a disposizione un sacco di blocchetti. Conoscete un protocollo di comunicazione per comunicare con lo strumento? ---------------------------------------- AUTORE: 1243 DATA :04/05/2006 - 16:38:45 ---------------------------------------- Purtrpp sn appena all'inizio dl lavoro e nn ho avuto ancora il tempo d fare ttt le opportune ricerke e considerazioni, m disp d nn avere ancora molte info da darvi x risolvere il problema... m potresti xò dire in quale libreria sn qst blokketti? magari se comincio a studiare da lì, m kiarisco 1 po' le idee!!! grazie! ---------------------------------------- AUTORE: 645 DATA :04/05/2006 - 18:44:26 ---------------------------------------- LabView mette a disposizione i blocchi delle palette "Communication" e "Instrument I/O": qui puoi trovare i blocchi VISA per la comunicazione seriale, i blocchi Bluetooth, i blocchi IrDA, i blocchi TCP-IP, i driver di alcuni strumenti... Dipende come vuoi comunicare con il tuo strumento. ---------------------------------------- AUTORE: 129 DATA :04/05/2006 - 21:15:13 ---------------------------------------- Oltre a quello che ti ha consigliato magic botolo, potresti anche utilizzare l'accesso diretto alle porte. Come già detto sopra dipende da cosa hai a disposizione e cosa vuoi fare. Ma esattamente devi realizzare una ricevente e un trasmettitore per crerti una connessione dati via radio? O hai dei dispositivi e vuoi realizzare dei driver in labview? Ciao Nicola ---------------------------------------- AUTORE: 1243 DATA :05/05/2006 - 10:02:30 ---------------------------------------- Sì in realtà vorrei crearmi un piccolo sistema di trasmissione dati tra due semplici apparecchi, gestito tramite LabView... non è che un esperimento scolastico, per ora senza una precisa applicazione pratica. Ciao ---------------------------------------- AUTORE: 1243 DATA :06/05/2006 - 23:30:07 ---------------------------------------- Ciao, adesso ho sicuramente le idee un po' più chiare! la mia idea di base sarebbe di realizzare un semplice trasmettitore utilizzando un oscillatore per la portante e la scheda audio del pc per la modulante (quindi l'informazione da trasmettere), e un ricevitore. a questo punto ci sarebbero due o tre possibilità di utilizzo di labview che potrebbero interessarmi: o faccio un VI di criptaggio del segnale e realizzo un protocollo di comunicazione per il mio sistema di trasmissione, oppure tramite dei sensori posso prelevare dei segnali, li invio col trasmettitore al ricevitore collegato al PC e il VI provvederà a gestirli ed eventualmente a comandare degli opportuni attuatori. per spiegarmi meglio, un sistema di controllo domotico naturalmente in scala ridotta, via radio. Sapreste darmi dei consigli? grazie ---------------------------------------- ================================================================================ Viop con labview ================================================================================ AUTORE: 838 DATA :04/05/2006 - 14:02:45 ---------------------------------------- Devo gestire su un pc la comunicazione Voip Da citofoni e telefoni sparsi per l'azienda i segnali vengono convertiti in voip, il mio pc diventerebbe oltre che da controllore impianto anche da video citofono (gestendo la comunicazione voip e l'immagine da telecamere) Avede una minima idea in che cosa mi sto cacciando? hehe Oppure, avete qualche idea di come realizzare la gestione voip su labview? grazie ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 19:06:26 ---------------------------------------- credo che skype faccia al caso tuo \"8)\" se poi le tue esigenze non sono puramente pratiche ma didattiche allora se ne può parlare. in ogni caso bella idea avere un telefono si PC aziendali Ciao, ---------------------------------------- ================================================================================ Error 116 : lettura e scrittura file ================================================================================ AUTORE: 997 DATA :04/05/2006 - 14:49:22 ---------------------------------------- Ciao, vorrei scrivere su file i dati presenti in una multicolumn listbox e successivamente leggerli per visualizzarli. Non riuscendo a venire a capo di questa "banale" operazione di I/O, ho provato a scrivere su file il contenuto di una stringa e poi a leggerlo per visualizzarlo. Mentre per la scrittura non sembrano esserci problemi, tutte le volte che provo a leggere "quel dannato file" mi restituisce il seguente errore: Error 116 occurred at ... LabView : Unflatten or byte stream read operation failed due to corrupt, unexpected or truncated data. Posso avere l'aiuto del pubblico? Grazie, ale ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:30:22 ---------------------------------------- mi sembra un problema di formattazione del file in scrittura e di setting sbagliato della lettura. Potresti mandare un'immagine del tuo codice? Ciao ---------------------------------------- AUTORE: 997 DATA :15/05/2006 - 10:18:16 ---------------------------------------- Ciao Ale, allego due immagini, una relativa alla parte in scrittura (che sembra funzionare correttamente aprendo il file con un editor) e una relativa alla parte in lettura che restituisce l'errore di cui sopra. Come potrai vedere ho provato scrivendo e leggendo una stringa perchè pensavo fosse la situazione più semplice... Grazie, ale ---------------------------------------- AUTORE: 997 DATA :26/05/2006 - 17:51:31 ---------------------------------------- up ---------------------------------------- AUTORE: 997 DATA :29/05/2006 - 10:42:42 ---------------------------------------- [aggiornamento] Ciao, ho scoperto una cosa stranissima, magari a qualcuno chiarirà dov'è la soluzione al mio problema. Come detto se prendo una stringa, una tabella o altro e provo a scrivere su file ci riesco, ma quando cerco di leggere, mi restituisce l'errore. Invece, e questa è la novità, se creo un cluster con dentro il dato che voglio scrivere/leggere funziona tutto alla perfezione. Ovviamente devo impacchetare i dati prima di scriverli e spacchettarli dopo averli letti. Quindi? Grazie, ale ---------------------------------------- AUTORE: 4 DATA :29/05/2006 - 11:06:30 ---------------------------------------- devi colegare l'uscita della funzione open file>>file size(bytes) all 'ingresso count della funzione read, in pratica devi dirgli quanti byte leggere dal file. Ciao, ---------------------------------------- ================================================================================ Cast esplicito od implicito? ..meglio implicito. ================================================================================ AUTORE: 247 DATA :04/05/2006 - 15:19:59 ---------------------------------------- Ciao, volevo semplicemente castare numeri interi a numeri in virgola mobile single prec....ma qualcosa non andava...infatti alla fine ho trovato l'arcano e come riportato nel VI che allego il cast esplicito ha un comportamento diverso da quello implicito...ma perchè?????!!!! \":evil:\" \":evil:\" \":evil:\" \":evil:\" BYE. P.S. Forse la seguente frase tratta dall'help della funzione cast avrebbe dovuto mettermi maggiormente in guardia... "This function can generate unpredictable or useless data. Make sure the type of the existing data and the type to which you want to convert the data are compatible." Preciso anche che secondo il mio modesto parere un numero intero a 32 bit può essere tranquillamente convertito in uno in virgola mobile.... ---------------------------------------- AUTORE: 680 DATA :04/05/2006 - 16:22:06 ---------------------------------------- collegando il cast dopo il ciclo for (sull'array) funziona perfettamente però (ovviamente mettondo come tipo un array di sgl)..... ciao.... ---------------------------------------- AUTORE: 1165 DATA :04/05/2006 - 16:53:08 ---------------------------------------- Se mi permetti provo a risponderti io, Apollon: qualche giorno fa in una apposita discussione avevo cercato di spiegare dettagliatamente il funzionamento del Cast; non sono capace di creare un link alle discussioni altrimenti ti avrei messo direttamente il link (anzi se qualcuno me lo spiega come si fa ringrazio anticipatamente), però se lo cerchi lo trovi sicuramente. Comunque quello che vuoi fare non è possibile per la assoluta incompatibilità del formato di rappresentazione dei dati interi e in virgola mobile che adotta il Labview (che poi è lo circa stesso di tutti gli altri linguaggi, è proprio il principio che cambia). Innanzitutto quello che tu chiami "Cast Implicito" in realtà non è un "Cast" ma un "Coerce", che è un'altra cosa. Cioè il Coerce mantiene il tipo di dato e cambia solo la sua rappresentazione interna in memoria (in genere aumentando il numero di bit di rappresentazione), mentre il Cast cambia radicalmente il tipo di dato in memoria, mantenendo invece il numero e il valore dei bit che lo rappresentano. L'uso del Coerce è vasto e generale, mentre l'uso del Cast è veramente peculiare e speciale e in genere limitato a pochi trucchetti da prestigiatore. Nel topic di cui ti dicevo prima ho messo anche qualche esempio di applicazione, ma se tu hai dei casi specifici che ti potrebbero tornare utili li vedo volentieri insieme a te, sono veramente così pochi i casi in cui è per davvero utile, che scoprirne qualcun'altro mi fa sicuramente piacere. Se poi guardi la Application Note 154c della NI, vedi come vengono rappresentati in Ram i dati che tu hai usato: i 32 bit del tipo integer sono tutti dedicati al valore diretto del numero, mentre i 32 bit del tipo in Virgola Mobile Single Precisione sono divisi in 1 per il segno, 7 per l'esponente e 22 per il valore, quindi trasformando questi 32 bit con il Cast e rileggendoli come 32 bit in Virgola Mobile Single Precision quello che ottieni è del tutto privo di significato. Spero di esserti stato un po' di aiuto, ciao, Enrico. ---------------------------------------- AUTORE: 247 DATA :05/05/2006 - 02:55:15 ---------------------------------------- Ciao, sulla differenza tra i due hai sicuramente ragione, ho cannato perchè ultimamente utilizzando poco LV e molto C interpreto cast come parola che indica la conversone di tipo e non l'interpretazione di un tipo di dato come se fosse di un'altro(tipo cast a union in C quindi)...cmq mò me lo segno...\":D\" Thanks for the answer! BYE. ---------------------------------------- ================================================================================ Gestione di una radio ================================================================================ AUTORE: 1243 DATA :04/05/2006 - 15:48:35 ---------------------------------------- Ciao, ringrazio mik x avermi "prestato" il suo nick ma adexo m sn registrato ank'io! Voglio precisare ke x ora il mio problema nn è d collegare la radio al compu, ma d trovare le librerie dv sn gli strumenti x creare 1 VI ke controlli 1a radio o 1 trasmettitore. Grazie ---------------------------------------- ================================================================================ Retinatura e assi cartesiani ================================================================================ AUTORE: 1235 DATA :04/05/2006 - 15:52:20 ---------------------------------------- Ciao! Scusatemi ancora se ultimamente scrivo spesso! Vorrei sapere un paio di cose: 1) nel waveform chart è possibile inserire la retinatura e gli assi cartesiani nel grafico? 2) nel waveform graphic è possibile inserire gli assi cartesiani, visto che la retinatura c'è già? Grazie INFINITE ! ---------------------------------------- AUTORE: 1235 DATA :04/05/2006 - 16:44:09 ---------------------------------------- Trovato e fatto ! Grazie altrettanto ! \":D\" \":lol:\" \":P\" ---------------------------------------- AUTORE: 645 DATA :04/05/2006 - 18:34:24 ---------------------------------------- Se per te non è un problema credo sia utile spiegare lo stesso come hai fatto... ---------------------------------------- ================================================================================ DAQMX vs. Labview6 ================================================================================ AUTORE: 724 DATA :05/05/2006 - 09:32:49 ---------------------------------------- Qualcuno è a conoscneza se è possibile utilizzare una scheda supportata solo dal DAQMX (NI USB-6008) con labview6. Dalla versione 7 in poi vengono in aiuto i Traditional NI-DAQ Compatibility VIs. In mancanza d'altro dovrò acquistare schede non NI. Ciao e grazie. ---------------------------------------- AUTORE: 278 DATA :05/05/2006 - 10:55:38 ---------------------------------------- Ciao, Temo che non sia possibile, devi avere almeno la versione 6.1 per utilizzare una scheda con driver solo daqMX. Ciao Ciao!! \":wink:\" ---------------------------------------- ================================================================================ Read file ================================================================================ AUTORE: 847 DATA :05/05/2006 - 14:53:05 ---------------------------------------- Salve io utilizzo il VI express read from measurement file, all'interno di un ciclo while. Qualcuno sa dirmi come devo fare per gestire l'EOF per evitare che mi dia errore, non posso interrompere il while? Grazie Ciao ---------------------------------------- AUTORE: 129 DATA :06/05/2006 - 17:38:58 ---------------------------------------- Io ho provato a generare una sinusoide e salvarla con l'express Write labview measurement file, quindi l'ho letta senza controllare EOF con il read labview meas. file. Forse nn è che hai qualche problema diverso da EOF? Prova a postare il file che ti crea problemi. ---------------------------------------- AUTORE: 847 DATA :08/05/2006 - 07:14:31 ---------------------------------------- Quando tento di riaprire l'ultimo file che è stato aperto,(perchè metto nuove impostazioni di visualizzazione) mi compare proprio un messaggio di errrore: End Of File Encountered.Non so il motivo. ---------------------------------------- AUTORE: 645 DATA :08/05/2006 - 10:50:59 ---------------------------------------- Puoi postare un'immagine del Block Panel? ---------------------------------------- AUTORE: 847 DATA :09/05/2006 - 07:04:35 ---------------------------------------- Ho rinunciato all'uso del VI Express e ho risolto il problema, ora funziona,grazie. Ciao ---------------------------------------- ================================================================================ Event Structure....mannaggi'attè! ================================================================================ AUTORE: 482 DATA :05/05/2006 - 15:05:06 ---------------------------------------- ...ma ciao! stavo pensando di modificare un applicazione fatta di svariati case legati a controlli sul pannello e fili chilometrici che gli passano in mezzo. Ho pensato..."ma che bella struttura pulita che verrebbe con una bella event structure!". Il problema è che poi mi sono accorto che per uscire da quel VI, la condizione è un pulsante harware, e visto che il mio VI resta bloccato in attesa di un evento, la condizione di uscita non verrà considerata. Potrei mettere un evento di timeout... Pero' io per ogni pulsante vado a scrivere su delle schede SCXI, la scrittura l'ho messa fuori dalla struttura ad eventi cosi' chiamo solo una volta i miei SubVI di scrittura schede. Se mettessi un timeout, la scrittura sulle schede verrebbe effettuata ad ogni timeout, mentre lo scopo chemi ero prefissato era di andare a scrivere sulle schede solo quando ce n'era bisogno. A questo punto chiedo: 1)C'e' un modo per generare eventi da hardware o via software? 2) QUalcuno ha idea cosa sia il dynamic event che si puo' rendere visibile sul bordo della event structure? grazie Geppo! ---------------------------------------- AUTORE: 712 DATA :05/05/2006 - 16:06:55 ---------------------------------------- Non è proprio quello che avevi chiesto, però... forse può bastare? ciaooo ---------------------------------------- AUTORE: 247 DATA :05/05/2006 - 16:15:54 ---------------------------------------- Ciao, il dynamc event serve proprio a fare quello che ti serve, creare un'evento quando su una condizione che controlli tu, nel tuo caso scateni un'evento quando premi il bottone hardware... Prova a cercare "Nicola Chiari LabVIEW event structre" in google, ltr è andato ma forse ritrovi ancora da qualche perte il suo documento... BYE. ---------------------------------------- AUTORE: 129 DATA :06/05/2006 - 17:59:37 ---------------------------------------- C' è anche la possibilità di creare eventi personalizzati, prova a dare un occhiata nel find example e cercare "programmatially fire events". Ciao ---------------------------------------- AUTORE: 482 DATA :08/05/2006 - 12:37:57 ---------------------------------------- Grazie mille delle preziose indicazioni! problema risolto! \":wink:\" ---------------------------------------- ================================================================================ ERRORE web server LV 7.1 - LV 8.0.1 ================================================================================ AUTORE: 680 DATA :05/05/2006 - 19:37:57 ---------------------------------------- quando cerco di eseguire il web server, sia labview 7.1 che labview 8.0.1, mi ritorna l'errore allegato in figura.... ho provato ha reinstallare tutto ma niente da fare........ devo formattare??? \":-(\" azz.... ciao, grazie...... ---------------------------------------- AUTORE: 680 DATA :05/05/2006 - 19:39:24 ---------------------------------------- scusate, l'allegato \":?\" \":?\" ciao.... \":x\" \":x\" ---------------------------------------- AUTORE: 645 DATA :06/05/2006 - 23:44:02 ---------------------------------------- Nella figura dell'errore si parla di un "Property Node": ne hai usato uno (o +) nel tuo VI? In che modo? Non capisco bene ma dal messaggio di errore sembra che ci sia un "Property Node" che al WebServer non piace molto e ne impedisce l'avvio. ---------------------------------------- AUTORE: 680 DATA :07/05/2006 - 11:51:13 ---------------------------------------- no, non ho ho usato nessun property node, per provare ho messo solo un led ed un tasto in un ciclo while. cmq ho risolto... sono ritornato ad un punto di ripristino di 10 giorni fa ed ho reinstallato LV.... adesso funziona perfettamente ciao.... ---------------------------------------- ================================================================================ gpib e visa ================================================================================ AUTORE: 683 DATA :05/05/2006 - 22:20:54 ---------------------------------------- ciao a tutti, sapete dirmi dove posso trovare un po' di comunicazione sul portocollo gpib e sul portocollo VISA? grazie ---------------------------------------- ================================================================================ Labview e DLL ================================================================================ AUTORE: 1226 DATA :06/05/2006 - 10:58:10 ---------------------------------------- Salve a tutti, sto cercando di implementare una DLL di comunicazione con plc Saia in Labview 8.0.1 ma non c'e' verso di farla funzionare, mentre in C++ Builder funziona bene. Qui di seguito la struttura da passare alla chiamata. typedef struct tagPCDOPENDATA { SHORT Port; //@Field Port number TAPI,RAS,COMx,SOCKET <t enumComPort> SHORT Device; //@Field COM port number or Socket Port. BOOL bPguMode; //@Field TRUE=using PGU mode (S-Bus/P800) DWORD SbusMode; //@Field S-Bus mode: <t enumSBusModes> DWORD Protocol; //@Field Type of protocol, <t enumProtocol> DWORD BaudRate; //@Field 110..115200 DWORD TsDelay; //@Field S-Bus training sequence delay, mS DWORD TnDelay; //@Field S-Bus turnaround time, mS DWORD Timeout; //@Field S-Bus timeout in mS DWORD BreakLen; //@Field S-Bus break length in chars, PCD_BREAK mode DWORD UartFifoLen; //@Field Number of characters in UART Fifo buffer (to wait for RTS) // if this value is 0, the driver will handle the togging of RTS // automatically (NT/2000 only) BOOL bDontClose; //@Field Do not close the port. BOOL bPortOpen; //@Field The port is open. BOOL bConnected; //@Field The port is connected with the function PcdConnectChannel // connection DWORD dwType; //@Field Channel type: <t ChannelTypesTag>. CHAR Channel[PCD_CHANNELSIZE]; //@Field Channel name 'PGU'. <t PCD_CHANNELSIZE> CHAR Section[PCD_SECTIONSIZE]; //@Field Name of the section in INI file or Registry <t PCD_SECTIONSIZE> DWORD ModeToTry; //@Field Mode to connect: <t enumSBusModesToTry> DWORD Cpu; //@Field CPU number: 0..6 BOOL bAutoStn; //@Field TRUE=send "read S-Bus station" telegram DWORD Retry; //@Field Retry count, default = 3 // for TAPI, RAS CHAR DeviceName[PCD_DEVICESIZE]; //@Field TAPI, RAS Modem name <t PCD_DEVICESIZE> // TAPI connection BOOL bUseModem; //@Field Use dialing (TAPI modem). BOOL bAutoAnswer; //@Field Open the TAPI port in AutoAnswer mode. CHAR PhoneNumber[PCD_PHONESIZE]; //@Field Phone number for TAPI or RAS dialing. <t PCD_PHONESIZE> DWORD CountryCode; //@Field Country code (Switzerland 41). DWORD AreaCode; //@Field Area code (Morat 26). CHAR Location[PCD_LOCSIZE]; //@Field Location name. <t PCD_LOCSIZE> BOOL bUseDialing; //@Field Use dialing (translate phone number). DWORD DialRetry; //@Field Number of retry when dialing. // Bues Connection BOOL bBues; //@Field Bues flag // password dialog box parent window HWND hPWDlgParentWnd; //@Field Parent window for password dialog box <t PcdSetParentWnd>. REQSTATION ReqStation; //@Field Complete station number information <t REQSTATION> SHORT SrcSap; //@Field Source service access point for Profi-S-Bus communication SHORT DstSap; //@Field Destination service access point for Profi-S-Bus communication SHORT BDstSap; //@Field Broadcast Destination service access point for Profi-S-Bus communication // JPE 09.10.00 14:53 BYTE Reserved[70]; //@Field Reserved for future extension and padding } PCDOPENDATA; Se qualcuno mi può dare delle info utili... Grazie Ciao \":(\" ---------------------------------------- AUTORE: 247 DATA :06/05/2006 - 18:21:47 ---------------------------------------- Ciao, più che la struttura dati sarebbe utile se postassi almeno una firma tra quelle delle funzioni della DLL che non funziona e come l'hai configurata nel nodo di chiamata in LabVIEW, solo da quest'ultime info si potrebbe risalire ad un eventuale errore nella conversione di un tipo o altro. BYE. ---------------------------------------- AUTORE: 1226 DATA :16/05/2006 - 22:14:19 ---------------------------------------- In allegato esempio di codice Labview Grazie Ciao ---------------------------------------- ================================================================================ Multicolumn Listbox : quale riga selezionata ? ================================================================================ AUTORE: 997 DATA :06/05/2006 - 15:00:17 ---------------------------------------- Ciao, volevo sapere come fare a sapere quale riga è stata selezionata in una listbox multicolonna. Grazie all'evento doubleclick riesco a sapere su quale riga l'utente fa doppio click, ma nell'evento mouse down (che credo faccia al caso mio) non trovo questa proprietà. Scusate, magari non è neanche la strada giusta, ma con labview sono alle prime armi. Grazie in anticipo. ale ---------------------------------------- AUTORE: 129 DATA :06/05/2006 - 17:27:27 ---------------------------------------- Semplicemente, il numero che ti restituisce questo controllo (puoi testarlo collegandogli un idicatore numerico) ti restituisce il numero di riga selezionato. Non è necesario quindi ricorrere agli eventi, ma semplicemente utilizzando il controllo stesso. ---------------------------------------- AUTORE: 997 DATA :06/05/2006 - 17:50:45 ---------------------------------------- Grazie Nicola, mi vergogno un po' per la domanda... \":oops:\" Grazie ancora. ale ---------------------------------------- ================================================================================ Graficare le grandezze scelte ================================================================================ AUTORE: 645 DATA :07/05/2006 - 18:29:23 ---------------------------------------- Sto cercando di preparare un VI di presentazione grafica di alcune grandezze rilevate. Io vorrei dare la possibilità all'utente di selezionare le grandezze che vuole da un elenco e vederne l'andamento sul grafico. Ho realizzato una prima bozza usando le liste. Qualcuno ha qualche idea da suggerirmi? Vi allego l'immagine del VI che ho preparato. Non avete un bel sito / libro / documento che parla di grafica con LabView? Ho visto che nel forum si era parlato di problemi grafici ma io non voglio realizzare un controllo nuovo, "semplicemente" implementare un'interfaccia comoda! ---------------------------------------- AUTORE: 278 DATA :08/05/2006 - 08:56:29 ---------------------------------------- [quote:1gca1xmp]Non avete un bel sito / libro / documento che parla di grafica con LabView?[/quote:1gca1xmp] Ciao Magic, tampo addietro avevo ordinato il seguente libro "Labview GUI" che doverbbe essere la guida suprema sulla creazione di interfaccie utente con LV. Ebbene, l'ho ordinato in una libreria universitaria a gennaio, siamo in maggio e non mi è ancora arrivato. A questo punto, temo che dovro andare in inghilterra a prenderlo direttamente dalla McGraw Hill, perchè se aspetto ancora un po mi metto a scriverlo io. \":lol:\" ---------------------------------------- ================================================================================ Generatore di codice di linea AMI E HDB3. ================================================================================ AUTORE: 1235 DATA :08/05/2006 - 10:11:02 ---------------------------------------- Qualcuno mi può dare una dritta su come generare del codice di linea AMI e HDB3 a partire da un sequenza PRBS ? Grazie! ---------------------------------------- ================================================================================ Generatore di codice di linea AMI E HDB3. ================================================================================ AUTORE: 1235 DATA :08/05/2006 - 11:24:00 ---------------------------------------- Qualcuno mi può dare una dritta su come generare del codice di linea AMI e HDB3 a partire da un sequenza PRBS ? Grazie! ---------------------------------------- ================================================================================ Vedere contemporaneamente un grafico per ogni canale.. ================================================================================ AUTORE: 1252 DATA :08/05/2006 - 18:37:58 ---------------------------------------- Buongiorno a tutti, sono uno studente universitario e sto lavorando con Labview. Il mio lavoro consiste nel testare delle batterie e vederne i valori di temperatura e voltaggio. Vi espongo il mio problema: Come faccio a vedere contemporaneamente un grafico per ogni canale usato? Sto usando un case SCXI-1000, nel primo scomparto (spero si chiami così... \":D\" ) ho una periferica chiamata SXCI-1600, metre nel secondo una SXCI-1022 alla quale è collegata una basetta ( TBX-1303, ho a disposizione 31 canali) per l'acquisizione dei segnali. Ho sviluppato con Labview un programma che mi permette di monitorare i valori di temperatura e voltaggio, ma probabilmente non nel modo corretto, infatti posso monitorare solo 2 grafici. Per ottenere il valore di temperatura della termocopia uso la seguente VI "DAQmx Create Virtual Channel (AI-Temperature-Thermocouple).vi" mentre per il voltaggio uso "DAQmx Create Virtual Channel (AI.Voltage.Basic).vi". Il valore di temperatura va poi in un'altra VI "DAQmx Read (Analog DBL 1Chan 1Samp).vi mentre il secondo valore va in "DAQmx Read (Analog D DBL NChan 1Samp).vi Spero di essere stato chiaro, ma soprattutto che qualcuno possa darmi una mano!!! \":D\" Grazie a tutti. Filippo. ---------------------------------------- AUTORE: 129 DATA :09/05/2006 - 09:07:43 ---------------------------------------- Nelle label dei vi che utilizzi, dovresti selezionare multichannel e poi utilizzare le funzioni di index array per estrarre il vettore corrispondente al canale di misura(solitamente dovrebbe essere per riga. Altrimenti con MAX(Measurement Automation Explorer) dovresti crearti un task di misura multicanale. Nicola ---------------------------------------- AUTORE: 1252 DATA :09/05/2006 - 09:40:46 ---------------------------------------- Ciao, innanzi tutto ti ringrazio per avermi risposto cosí velocemente... \":D\" Mi scuso se ti chiedo ancora delle informazioni, ma sono un principiante con labview.... \":(\" Leggendo nel forum ho trovato qualche altra notizia e ho provato a modificare il mio programma. Io devo acquisire dal primo e dal secondo canale dei valori di voltaggio, mentre dal terzo un valore di temperatura, il problema è che non riesco a collegali al "DAQmx Read.vi".... Invio il file che ho creato in modo da essere piú chiaro.. \":)\" Mi scuso anticipatamente se successivamente chiederó altre informazioni. Filippo ---------------------------------------- AUTORE: 1252 DATA :09/05/2006 - 11:04:18 ---------------------------------------- Ciao a tutti, avrei un´altra cosa da chiedere..esiste una VI come "DAQmx Create Channel.vi" generica? Ossia una VI che mi legga i canali che sto usando, ma che non gli importi se sto acquisendo un valore di temperatura, voltaggio, ecc.. Spero che qualcuno mi possa aiutare... \":D\" Grazie anticipatamente!! Filippo. ---------------------------------------- AUTORE: 278 DATA :09/05/2006 - 12:04:58 ---------------------------------------- Ciao e benvenuto nel forum!!! Ti consiglio di buttare un'occhio a[url=http://www.ilvg.it/forum/viewtopic.php?t=1375&highlight=multiple:17moeatw]questa[/url:17moeatw] discussione di qualche mese fa, credo che ti possa tornare utile!! Bye!!! \":P\" ---------------------------------------- AUTORE: 1252 DATA :09/05/2006 - 12:19:51 ---------------------------------------- Ciao, grazie per la dritta... Il mio problema è un pó diverso, infatti io non devo acquisire i valori solo da un "DAQmx Create Channel (AI-Voltage-Basic).vi", ma anche da un "DAQmx Create Channel (AI-Temperature-Thermocouple).vi" e non riesco a collegare queste VI con una "DAQmx Read.vi" Nel file che ho allegato si puó vedere esattamente qual´è il mio problema. Filippo ---------------------------------------- AUTORE: 278 DATA :09/05/2006 - 21:16:32 ---------------------------------------- MMMM, questo VI e` inutilizzabile cosi` come e` fatto. Una volta che hai "dichiarato" quale misura vuoi acquisire (temperatura, voltaggio ecc) con il VI "DAQMX ceate channel" viene creato un "task", l`uscita "task out" di questo VI va collegata con un filo al vi "DAQMX read", di modo che egli sappia che misura acquisire. Mancano anche alcuni passaggi fondamentali, tipo lo "start" dell`acquisizione, attuabile tramite il VI "DaqMX Start task". Non voglio essere petulante, ma ti consiglio di rivedere la discussione che ti ho citato piu` in alto, credo proprio che si tratti di un problema simile al tuo. Piu` avanti con la discussione si parla non soltanto di acquisire da piu` canali la stessa misura, ma anche acquisire una misura di natura diversa in "parallelo" alle altre. So che a prima vista ti sembrera` lunga e noiosa (in effetti un po` lo e` \":wink:\" ) ma l`acquisizione di dati non e` proprio una cosa semplicissima... Ti consiglio anche di scaricarti gli allegati, a volte un`immagine o un vi vale molto piu` che mille parole. Se hai altre domande chiedi pure, tempo permettendo qualcuno avra cura di risponderti... \"8)\" Ciao Ciao ---------------------------------------- AUTORE: 1252 DATA :10/05/2006 - 09:27:36 ---------------------------------------- Ciao esodar1981, ho letto tutta la discussione e non è stata cosí noiosa come si pensava... \":wink:\" Ho provato a modoficare il mio programma e funziona con l´unico difetto che è LENTISSIMO!!! Invio il file con la mia IV creata. Se provo a mettere lo "Start" di acquisizione per ogni "DAQmx Create Channel.vi" mi da un errore del tipo "Error -50103 occurred at DAQmx Start Task.vi Possible reason(s): The specified resource is reserved. The operation could not be completed as specified. Task Name: _unnamedTask<13>" Adesso mi chiedo, è normale??? Filippo ---------------------------------------- AUTORE: 129 DATA :10/05/2006 - 10:11:18 ---------------------------------------- qualcosa tipo questo? ---------------------------------------- AUTORE: 1252 DATA :10/05/2006 - 10:35:49 ---------------------------------------- Ciao nicola, ho provato a far girare il file che hai inserito e ha il problema che a ogni ciclo riparte dal valore 0, quindi i grafici sono degli scalini... Non so se hai letto i messaggi sopra, ho trovato un altro modo per risolvere il mio problema, ma non funziona alla perfezione... \":(\" Ti ringrazio infinitamente lo stesso per il tempo speso per aiutarmi... \":wink:\" Filippo ---------------------------------------- ================================================================================ Note ================================================================================ AUTORE: 847 DATA :09/05/2006 - 09:26:26 ---------------------------------------- Ciao qualcuno sa dirmi come posso fare per aggiungere al mio VI la possibilità di scrivere delle note accanto al grafico(es degli appunti riguardo ai segnali) e poterle salvare in modo da recuperale la volta successiva che viene aperto il VI? Grazie Ciao ---------------------------------------- AUTORE: 129 DATA :09/05/2006 - 13:36:13 ---------------------------------------- Puoi salvare le informazioni di un controllo stringa (su cui farai le annotazioni) su file binario, o più semplicemente(si fa per dire)puoi utilizzare il metodo make current value default. prova a vedere [url=http://www.ilvg.it/forum/viewtopic.php?t=1155&highlight=table+properties:186vskle]questa discussione[/url:186vskle] ---------------------------------------- AUTORE: 847 DATA :09/05/2006 - 16:00:38 ---------------------------------------- Grazie Ciao ---------------------------------------- ================================================================================ spostare file da fp a pc ================================================================================ AUTORE: 1200 DATA :09/05/2006 - 10:44:45 ---------------------------------------- Ho una VI che gira su un field point che genera file di salvataggio su l'hd del Fp e dato che ha spazio molto limitato manualmente ogni tanto devo loggarmi via ftp e spostare i file sul mio pc, qualcuno sa se c'è una VI che fa questo in automatico (svuotare una cartella di tutti i file con una determinata grandezza).... grazie ---------------------------------------- AUTORE: 1200 DATA :09/05/2006 - 16:03:14 ---------------------------------------- navigando un po' su internet e sul forum ho visto che potrei usare con la funzione system exec i comandi che uso dal pront di dos però ho un problema come faccio a passare tanti comandi a questa funzione?cioè io da dos scivo ftp 111.111.111.111 invio username invio pass invio ecc... però se passo tutto in una singola stringa alla vi si blocca qualcuno gentilmente sa come si può fare? ---------------------------------------- AUTORE: 129 DATA :09/05/2006 - 17:26:59 ---------------------------------------- Usi un for loop. Crei una array di stringhe, con ogni stringa il comando, quindi lo colleghi ad un FOR loop, all'intero del quale fai eseguire il systemexec N volte quanti sono i comandi. ---------------------------------------- AUTORE: 1200 DATA :10/05/2006 - 12:09:36 ---------------------------------------- grazie mille ma facendo così mi dice che richiede troppa memoria.... si vede che il mio strumento ha poca potenza... ho risolto usando il comando (via dos) ftp -s:comandi.txt 111.111.111.111 e dentro al file txt scrivi tutti i comandi che deve eseguire quando stabilisce la connessione ftp ---------------------------------------- AUTORE: 838 DATA :10/05/2006 - 17:02:51 ---------------------------------------- mi puoi cortesemente scrivere che comandi usi nel txt per farlo? forse mi può tornare utile per un field point che ho in giro grazie \":D\" ---------------------------------------- AUTORE: 1200 DATA :11/05/2006 - 14:55:38 ---------------------------------------- guarda nel txt usi i comandi che useresti se fossi nel pront di dos.... guarda invio la pagina mht che ho trovato su internet che spiega i comandi che puoi usare e come, se poi hai ancora bisogna dimmi pure... ---------------------------------------- AUTORE: 838 DATA :12/05/2006 - 13:19:10 ---------------------------------------- ok grazie \":D\" ---------------------------------------- ================================================================================ restituire un tipo puntatore in Call Library Function?? ================================================================================ AUTORE: 1115 DATA :09/05/2006 - 12:53:25 ---------------------------------------- salve, ...il mio problema è il seguente: ho creato una mia dll (in c++) con alcune funzioni ed in particolare una di queste restituisce un puntatore ad una struttura. Richiamando la funzione, mediante Call library Function,è soltanto possibile scegliere i seguenti return type: void,numeric,string. Quindi in questo modo non è possibile costruire una function prototype che restituisca un puntatore!!!!!! E' possibile aggirare il problema o bisogna procedere in altro modo?? grazie:: ---------------------------------------- AUTORE: 247 DATA :10/05/2006 - 20:50:11 ---------------------------------------- Ciao, io di solito creo una struttura dati in LabVIEW, un cluster ad esempio, che sia in grado di contenere tutti i campi della struttura in C prima di chiamare la DLL e poi passo i puntatori ai campi di dato alla DLL...non molto elegante ma funziona se i parametri sono pochi, se sono tanti li "raduno" in array per tipo e poi passo puntatori ad array....la DLL quindi non crea direttamente l'oggetto poi utilizzato in LV ma lo popola solamente. Dove non esiste il tipo di dato corrispondente in LV e se non devo utilizzare la struttura direttamente in LV, ma magari solo passarla ad un'altra DLL, brutalmente copio la rappresentazione in memoria del dato non convertibile in un tipo accettato da LV e poi la reinterpreto una volta tornato nuovamente in C. Tieni presente che per poter restituire da una DLL ad esempio un'array di tipo x e dimensione y, è necessario aver precedentemente allocato la quantità necessaria di memoria in LabVIEW, inizializzando l'array con tot elementi. BYE. ---------------------------------------- ================================================================================ Ridurre a icona ================================================================================ AUTORE: 847 DATA :09/05/2006 - 13:00:48 ---------------------------------------- Ciao qualcuno sa dirmi cosa devo utilizzare per minimizzare(ridurre a icona) il VI premendo un tasto? Grazie Ciao \":x\" ---------------------------------------- AUTORE: 13 DATA :10/05/2006 - 12:54:38 ---------------------------------------- Puoi Utilizzare il vi Application Control ----> Open Vi reference crearti una Propoerty node ---------- > FRONT PANEL WINDOWS --- > MINIMIZEABLE e assegnargli un valore booleano true ( collegato a un qualsiasi controllo boleano (pulsante) ).. spero di essere statoi chiaro , non ho allegato un vi di esempio perche' al momento della risposta non avevo installato l'ambiente sul pc. se hai difficolta' dimmelo cosi' allego un vi di esempio. ciao e buon lavoro ---------------------------------------- AUTORE: 13 DATA :10/05/2006 - 13:00:03 ---------------------------------------- Scusa ho scritto una ....... , avevo interpretato male la domanda , a breve ti allego un vi per minimizzare il vi .... ho utilizzato le api di windows per farlo ....... saluti e scusa per l'errore \":-)\" ---------------------------------------- AUTORE: 13 DATA :10/05/2006 - 13:34:12 ---------------------------------------- ci sono delle utility molto interessanti che sfruttano le api di windows tra le quali anche la minimizzazione di un vi. spero ti siano utili Ciao ---------------------------------------- AUTORE: 847 DATA :10/05/2006 - 15:37:48 ---------------------------------------- Ti ringrazio ora provo, cmq credo sia proprio qll che cercavo. Grazie, Ciao ---------------------------------------- ================================================================================ Aggiornamento controlli su pc server ================================================================================ AUTORE: 537 DATA :09/05/2006 - 15:46:33 ---------------------------------------- Ho messo in rete due pc creando una connessione tcp/ip con labview 8. Il primo pc (server) è collegato, tramite GPIB, ad una macchina per prove di fatica, il secondo (client) è attualmente in grado di inviare comandi e di acquisire dati dal server. Il problema è che l'aggiornamento dei pulsanti a rilascio automatico (es. pulsante ok o stop) non viene fatto correttamente mentre per tutti gli altri non ho problemi. Dunque, se premo il pulsante (non ritentivo) sul client, osservo che il pulsante corrispondente sul server è premuto, ma il suo valore, anzichè diventare "vero" resta "falso". La struttura alla quale è collegato tale pulsante è ad eventi. Vorrei capire qual è il problema.... grazie anticipate. ---------------------------------------- AUTORE: 645 DATA :09/05/2006 - 18:44:44 ---------------------------------------- Non so se può centrare ma io ho avuto qualche problema con la struttura ad eventi e la Mechanical Action dei bottoni. Prova a cambiare azione (tasto destro, Mechanical Action) e controlla l'evento "Value change" del bottone. ---------------------------------------- AUTORE: 838 DATA :10/05/2006 - 17:11:38 ---------------------------------------- io questo problema ce l'ho da anni e labview non me l'ha mai risolto!!!! succede con i client collegati al server, a me si presenta sempre sui client e le ho provate tutti i colori per ora ho fatto una event che alla pressione del tasto mi va fare un set o reset del valore, senza usare l'hmi wizard di labview ---------------------------------------- AUTORE: 4 DATA :10/05/2006 - 21:23:49 ---------------------------------------- credo che il problema sia legato all'uso scorretto della struttura a eventi. Questa NON gestisce i cambiamenti programmatici dei valori dei controlli ma solo quelli che vengono generati da interfaccia utente quindi per esempio se da interfaccia si preme un bottone genero l'evento associato ma se forzo il valore dello stesso bottone tramite una variabile locale l'evento non scatta. Per ovviare esistono gli eventi dinamici che sono generabili programmaticamente (dal codice) Ciao, ---------------------------------------- AUTORE: 838 DATA :11/05/2006 - 07:27:45 ---------------------------------------- nel mio caso ho: sul server un pannello con un pulsante bistabile collegato con l'hmi wizard ad una tag del dsc sul client lo stesso pannello con lo stesso pulsante collegato con la stessa hmi wizard alla stessa tag del dsc (che però invece di linkare al plc linka al server) quindi l'unica differenza è nel dsc, il primo linka al plc, il secondo al server ogni tanto (metti 1 volta ogni 100 pressioni) sul server vedo una cosa, sul client un'altra. questa cosa mi ha fatto imbestialire con national, e loro non riescono a risolvermela ---------------------------------------- ================================================================================ differenza di fase ================================================================================ AUTORE: 1232 DATA :09/05/2006 - 17:30:30 ---------------------------------------- sono un novizio del mondo labview. sono alle prese con la tesi di laurea, non incentrata assolutamente su labview. tuttavia utilizzo il programma per la caratterizzazione dei moduli realizzati. ho un problema: [b]come posso calcolare la differenza di fase fra un segnale in entrata al circuito in esame e quello in uscita?[/b] dall'oscilloscopio che utilizzo (hp 54501) posso calcolarla attraverso la funzione [i]delay[/i] che non appare poi nel programma come uscita del blocco oscilloscopio. C'è un modo per calcolare tale differenza (anche attraverso figure di lissajous) in maniera automatizzata? ---------------------------------------- AUTORE: 645 DATA :09/05/2006 - 18:47:03 ---------------------------------------- Potresti usare una soglia di passaggio: misuri l'istante di tempo in cui questa soglia viene superata dai due segnali e fai la differenza. ---------------------------------------- AUTORE: 1232 DATA :10/05/2006 - 09:53:14 ---------------------------------------- eh ma il problema è proprio questo. Come faccio ha stabilire questa soglia? In teoria dovrebbe leggere un tempo [i]"relativo"[/i] sull'asse delle ascisse dell'oscilloscopio ma non so come farlo leggere al programma ---------------------------------------- ================================================================================ Colori RGB ================================================================================ AUTORE: 706 DATA :10/05/2006 - 14:28:05 ---------------------------------------- Ciao a tutti Il mio problema riguarda il salvataggio di mappe radar e in particolare l'associazione dei parametri RGB per i vari colori. Il mio programma acquisisce darti radar che elebora ed associa ad ogni 3 bit un valore da 0 a 7 che faccio corrispondere ad una precisa tonalità di colore specificata dai valori RGB e poi salvo la mappa in formato .png. Il fatto è che 9 volte su 10 i colori corrispondono, mentre nell'unico cvaso viene associato valori diversi. Da cosa pùo dipendere?.. Grazie dell'aiuto. Francesco ---------------------------------------- AUTORE: 4 DATA :10/05/2006 - 16:52:53 ---------------------------------------- Ciao non ho capito come associ 3 bit a ll'RGB dove ognicanale è un byte Ciao, ---------------------------------------- ================================================================================ differenza tra un campione ed il precedente ================================================================================ AUTORE: 1260 DATA :10/05/2006 - 16:13:44 ---------------------------------------- Salve a tutti, sono uno studente di ingegneria ed ho appena iniziato a lavorare con Labview; devo fare una cosa sicuramente molto semplice (per voi): acquisisco un segnale di pressione con una frequenza di circa 70 kHz, i campioni si trovano in un array e io dovrei eseguire la differenza tra un campione ed il precedente. Tutto cio si svolge all'interno di un ciclo while che dura per tutta la acquisizione.Qualcuno di voi potrebbe darmi un consiglio? Vi ringrazio in anticipo. un saluto ---------------------------------------- AUTORE: 1050 DATA :10/05/2006 - 16:39:46 ---------------------------------------- Ciao, guarda uno dei file allegati a questo topic precedente: c'è un esempio di come fare la differenza tra elementi di un array. viewtopic.php?t=1530&start=0&postdays=0&postorder=asc&highlight=derivata ---------------------------------------- AUTORE: 1260 DATA :10/05/2006 - 16:47:19 ---------------------------------------- Ciao , innanzitutto ti ringrazio per avermi risposto..ed anche cosi in fretta.. potresti pero inviarmi un immagine del programma che mi suggerisci?io uso il 7.1 e mi da un messaggio di errore quando cerco di aprirlo(il file è del 7.0)...ciao grazie ---------------------------------------- AUTORE: 1050 DATA :10/05/2006 - 16:56:03 ---------------------------------------- ecco (strano xchè anch'io ho il 7.1) ---------------------------------------- AUTORE: 1260 DATA :10/05/2006 - 17:24:25 ---------------------------------------- Grazie per l'aiuto, ma ti volevo chiedere una rapida spiegazione di come funziona il vi (si chiama cosi?)che mi hai madato. Scusa ma non riesco proprio a capire come funziona il primo blocco, quello che ruota gli elementi di un array, e poi perche la differenza la mandi nel blocco successivo?Ti ringrazio.ciao ---------------------------------------- AUTORE: 129 DATA :10/05/2006 - 17:42:22 ---------------------------------------- Non sono sicuro di aver capito ma potrebbe andarti bene anche questo, utilizzando uno shift register. ---------------------------------------- ================================================================================ Quale struttura per la temporizzazione ================================================================================ AUTORE: 997 DATA :10/05/2006 - 18:21:13 ---------------------------------------- Ciao, ho il seguente problema: - l'utente tramite una tabella inserisce valori di temporizzazione per un determinato compito (acquisizione); in particolare può esprimere due di questi tre parametri (il terzo viene infatti calcolato di conseguenza): numero totale acquisizioni, durata singola acquisizione (o se preferite intervallo fra due acquisizioni successive), durata totale acquisizioni. - quindi il programma esegue ad esempio n acquisizioni ogni x secondi, poi m acquisizioni ogni y secondi, e così via... Data questa premessa volevo sapere quale/i strutture (while,for,...) mi consigliate di utilizzare per assolvere questo compito. Un doppio for su righe-colonne della tabella con all'interno un timer e un check sul loop che esegue il compito (supposto che quanto ho scritto abbia un senso... \":wink:\" ) ? Spero (ma dubito) di esser stato sufficientemente chiaro. Grazie in anticipo, ale ---------------------------------------- AUTORE: 645 DATA :10/05/2006 - 23:10:49 ---------------------------------------- Non ho ben capito l'idea della tabella ma il For può funzionare: tu in questo caso sai quante acquisizioni bisogna fare. Puoi usare un For impostando come condizione di fine il numero delle acquisizioni deciso dall'utente e inserire nel For un blocco di Delay. In questo modo esegui tot acquisizioni aspettando un certo tempo tra una e la successiva. ---------------------------------------- ================================================================================ Gestione programmatica di uno scanner ================================================================================ AUTORE: 1165 DATA :11/05/2006 - 12:21:46 ---------------------------------------- Qualcuno sa darmi dei suggerimenti su come gestire un qualsiasi scanner A4 dall'interno di un VI? Mi servirebbe in particolare avere indicazioni se esiste una qualche marca e modello che rilasci direttamente la DLL di controllo, meglio se documentata. In specifico mi occorerebbe gestire le chiamate alle scannerizzazioni scegliendo se preimpostare programmaticamente dal VI, oppure no, l'area e i parametri di scansione e il nome del file, mentre è già aperta una qualche sessione di un qualche programma di acquisizione immagini, eventualmente lo stesso programma distribuito insieme alla periferica. Come alternativa potrei chiamare un eseguibile con parametri dalla linea di comando DOS, ma se possibile preferirei evitare questa strada. Un grazie anticipato a qualsiasi consiglio. Enrico. ---------------------------------------- AUTORE: 278 DATA :15/05/2006 - 09:48:48 ---------------------------------------- Ciao Enr, Hai mai provato con gli Active-X??? Ne esiste uno (se non erro si chiama twain active-X) che ti permette di gestire uno scanner generico (più o meno come fa imaging di windows). Io l'ho usato solo una volta ma con scarsi risultati... forse perchè cercavo di acquisire immagini con una webcam invece che con lo scanner!!! \":lol:\" \":lol:\" \":lol:\" ---------------------------------------- ================================================================================ Memoria temporanea ================================================================================ AUTORE: 1029 DATA :11/05/2006 - 12:32:31 ---------------------------------------- Salve a tutti! Per risolvere un problema del programma che sto realizzando, ho pensato di utilizzare un contatore avente una condizione di start e una di stop dipendente da un segnale (dente di sega); durante la salita del dente di sega devo realizzare un array che memorizza l'andamento di un altro segnale, quando il dente di sega scende visualizzo il segnale in un grafico EX XY GRAPH e azzero l'array in modo che sia pronto per memorizzare nuovi dati. C'è un modo per realizzare questa idea? C'è un comando per far simulare al grafico la persistenza dei fosfori di un oscilloscopio? Ringrazio tutti per la vostra disponibilità! P.S.: si possono ridimensionare le label nel pannello frontale? Ho visto che la dimensione del carattere resta fissa mentre vorrei ingrandirla a mio piacimento, ho visto che in altri VI ci sono label + grandi ma non posso utilizzarle perchè sono troppo grandi per i miei scopi e non posso ridimensionarle. Ringrazio di nuovo tutti! ---------------------------------------- AUTORE: 645 DATA :11/05/2006 - 13:40:54 ---------------------------------------- Puoi (così a naso ma non saprei dirti esattamente come al momento) controllare il valore assunto dal dente di sega: finchè il valore corrente è maggiore del precedente memorizzi, quando il valore corrente è minore del precedente disegni e azzeri il vettore. Continui a controllare e nel momento in cui il valore corrente ritorna ad essere maggiore del precedente ricominci a memorizzare. Per ridimensionare i caratteri nel Pannello Frontale, invece, usa il tasto che trovi nella barra di menù di LabView (per intenderci sulla riga del tasto Run, vicino alla Pausa c'è un menù a tendina che ti permette di lavorare sul carattere e sulla dimensione alla voce "Size" [io uso LabView 7.1]). ---------------------------------------- AUTORE: 1029 DATA :11/05/2006 - 16:47:14 ---------------------------------------- Grazie Magic! Ora provo a farlo e vediamo cosa esce fuori! Thanks! ---------------------------------------- ================================================================================ lettura LCD ================================================================================ AUTORE: 1264 DATA :11/05/2006 - 16:09:43 ---------------------------------------- Aiutoooo. Sono all'inizio di questo programma ed ho avuto un impegno difficile! Devo riuscire a leggere dei numeri su una schermo LCD a segmenti con unas web cam. Sono riuscito a fare l'acquisizione ma non riesco a settare il VI read LCD in instruments reader. C'è qualcuno che mi puo aiutare? ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:28:26 ---------------------------------------- ok calma. benvenuto. Specifica meglio il tuo problema. Che software usi? quali versioni? se usi IMAQ Vision Builde hai provato a guardare gli esempi? ne esiste uno apposta per il riconoscimento di caratteri di LCD. Ciao ---------------------------------------- AUTORE: 1264 DATA :15/05/2006 - 10:16:14 ---------------------------------------- grazie per il benvenuto! Il mio software è Labview 8 con installato il NI Vision 8. Sono riuscito a fare l'acquisizione(grep) attraverso la Webcam USB. Come ho gia detto quello che non mi riesce è il riconoscimento di un LCD a 7 segmenti, cioè dovrei mettere la webca di fronte a questo LCD e il programma dovrebbe sparami fuori il numero. In labview c'è un esempio sul luso del read LCD ma è veramente complicato, Soprattuto non riesco a capire bene il ROI come si descrive ---------------------------------------- ================================================================================ Eseguibile con Dll ================================================================================ AUTORE: 482 DATA :12/05/2006 - 09:26:39 ---------------------------------------- ..ma ciao! ho un dubbio penso facilmente risolvibile.. Devo creare l'eseguibile della mia applicazione all'interno della quale viene chiamata una DLL. QUando creo l'eseguibile devo fare qualcosa di particolare? 1)Gli devo dire di inserirmela tra i support file ? (non credo sia necessario) 2)Per quanto riguarda il percorso, al momento la DLL si trova in una cartella che la macchian target non ha, basta che metta la dll nella stessa cartella dell'eseguibile o devo afre qualche procedimento particolare? grazie! ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 19:04:36 ---------------------------------------- Ciao Geppo dovrebbe essere tutto come pensi tu, del primo punto sno sicuro del secondo dovrebbe essere corretto anche se ti consiglio di sviluppare già con la dll messa nel percorso giusto e cioè sotto la cartella dei sorgenti del tuo progetto. Contralla anche se la DLL ha bisogno di essere registrata sul sistema... \":|\" Ciao, ---------------------------------------- ================================================================================ Mass Compile...questo sconosciuto.... ================================================================================ AUTORE: 482 DATA :12/05/2006 - 12:35:53 ---------------------------------------- ..ma ciao! Sto installando l'aggiornamento a labview 8.0.1 per vedere come va e per farlo, appena finita l'installazione chiede di fare il mass compile della cartella di LabVIEW. Adesso vi domando: Cosa vuol dire Mass Compile? Cosa fa di concreto? Quando serve? ---------------------------------------- AUTORE: 4 DATA :12/05/2006 - 13:54:19 ---------------------------------------- ricompila tutti i vi labview (vi.lib) alla versione nuova. In pratica apre tutti i vi di libreria li ricompila e li salva... ci mette parecchio tempo (un paio di ore) Se non fai mass compile labview ti chiederà di salvare i vi suoi man mano che li usi nel tuo codica. Ciao, ---------------------------------------- ================================================================================ Acquisizione in Parallelo ================================================================================ AUTORE: 1252 DATA :12/05/2006 - 13:43:57 ---------------------------------------- Ciao a tutti, eccomi qui con un altro problema... \":wink:\" Come posso acquisire contemporaneamente dei volri di temperatura, voltaggio e corrente? Per farlo immagino debba fare un´acquisizione in parallelo, ma ci ho provato in diversi modi e non riesco, o meglio riesco a farla se devo acquisire solo 2 delle 3 variabili sopra elencate. Probabilemte uso il metodo sbagliato... \":(\" In allegato trovate il mio programma e l´errore che mi da nel momento in cui lo faccio partire. Se schiaccio su "Continua" riesco a acquisire i valori, ma a ogni acquisizione mi esce fuori questo messaggio... Ho provato a usare i metodi letti in questo forum per problemi simili, ma l´errore che mi da è sempre dello stesso tipo. Spero che qualcuno possa aiutarmi, se non sono stato chiaro non fatevi problemi a chiedere \":)\" Filippo ---------------------------------------- ================================================================================ Svuotare un array ================================================================================ AUTORE: 1029 DATA :12/05/2006 - 14:26:15 ---------------------------------------- Salve ragazzi! Ho un problema (e quando mai)! Vorrei visualizzare un periodo della sinusoide in un periodo di un dente di sega. Per fare ciò uso un XY GRAPH. Poichè ho il problema che quando finisce un semiperiodo del dente di sega compare una linea bianca, ho pensato di raccogliere i dati della sinusoide in un array quando il dente di sega è crescente. Per realizzare questa idea ho utilizzato un ciclo for. Conoscendo il numero di campioni al secondo del dente di sega (10000) e il suo semiperiodo trovo N. Quindi mando in ingresso del ciclo for la sinusoide, cosi in uscita del ciclo avrò l'array voluto. Ora vorrei che quando i=N mando l'array nel grafico, in caso contrario non voglio mandare nulla (quindi utilizzo un case). Il problema è che una volta raggiunta la condizione i=N dovrei svuotare l'array e non so come fare (la dimensione N dell'array è circa 7900). Potreste darmi una mano? Spero di aver spiegato bene il problema! Grazie mille! ---------------------------------------- AUTORE: 1029 DATA :12/05/2006 - 17:48:08 ---------------------------------------- Vi allego un VI che descrive in maniera semplificata il mio progetto in modo da rendere più chiara la spiegazione fatta sopra (almeno spero)! Il VI funziona ma rimane la riga orizzontale, forse dovrei mettere un circuito di trigger. Ringrazio tutti quanti! ---------------------------------------- AUTORE: 680 DATA :12/05/2006 - 18:00:32 ---------------------------------------- prova a vedere se ti utile questo vi.. ciao.... ---------------------------------------- AUTORE: 1029 DATA :12/05/2006 - 18:15:24 ---------------------------------------- Grazie per aver risposto così in fretta! Vedo di adattare questo VI alle mie esigenze! Grazie mille! ---------------------------------------- AUTORE: 1029 DATA :12/05/2006 - 18:51:58 ---------------------------------------- Ho modificato l'esempio, ma la linea orizzontale resta, forse devo adottare un'altra strada. Grazie di tutto! ---------------------------------------- AUTORE: 645 DATA :12/05/2006 - 22:36:20 ---------------------------------------- Premetto che non sono riuscito ad aprire l'esempio modificato (è il mio LabView che fa le bizze?) ma posso suggerirti questa strada: per memorizzare i dati nell'array usi uno "shift register"? Se colleghi allo "shift register" un array costante nullo (non fatto di zeri ma di elementi disabilitati [scegli l'array costante e come campo numerico inserisci una costante numerica. Poi clicchi sulla costante numerica e selezioni la voce "delete element" sotto "Data Operations"] ottieni un array vuoto. ---------------------------------------- AUTORE: 1029 DATA :15/05/2006 - 12:08:11 ---------------------------------------- Ciao ragazzi! Per cancellare quella riga orizzontale avevo in mente un'idea (sperando che sia fattibile): si può controllare in qualche modo l'array e cancellare tutti quei elementi che formano la riga orizzontale? Il problema è che non conosco la loro posizione nell'array e il loro numero. Vi ringrazio per la disponibilità! P.S.: il VI a cui mi riferisco è quello postato sopra! Grazie di nuovo! ---------------------------------------- AUTORE: 645 DATA :15/05/2006 - 12:14:29 ---------------------------------------- Fai un ciclo per analizzare tutti gil elementi: se sai che l'elemento corrente fa parte della "riga orizzontale" puoi cancellarlo con il blocco "Delete element" che trovi nella paletta degli array e nel ciclo successivo utilizzi l'uscita del blocco delete chiamata "Array without element". ---------------------------------------- AUTORE: 1029 DATA :15/05/2006 - 13:03:18 ---------------------------------------- Ciao Magic! Grazie per la risposta! Ho visualizzato gli array e penso che il grafico tracci la riga orizzontale quando va dal valore 1 al valore -1 del dente di sega, e quindi non ci sono valori da cancellare nell'array; forse una soluzione sarebbe di cotruirmi da me il dente di sega così metto un po' di pendenza nella discesa del segnale e posso fare il controllo sulla derivata e omettere i punti della sinusoide quando il dente di sega decresce. Ora ci provo! Grazie ancora! ---------------------------------------- AUTORE: 1029 DATA :15/05/2006 - 14:40:35 ---------------------------------------- Ciao a tutti! Ho giocato un po' con gli array e ho visto che i valori che sballano non sono dovuti al dente di sega ma alla sinusoide, ho notato che i valori sballati si hanno (oltre che al primo elemento dell'array, quindi posto 0) ogni multiplo di N (con N condizione di stop del ciclo for). Dunque dovrei creare qualcosa che ad ogni N elementi dell'array mi cancella quell'elemento e lo sostituisca col valore 0 (ho visto che dovrebbe essere 0 il valore giusto). Io penso che quello che fa LabVIEW sia quello di prendere 50 elementi alla volta (da 0 a 49) e poi concatenare i vari array da 50 elementi finchè arriva a 1000 (numero di campioni per tracciare sia il dente di sega che la sinusoide). Ho provato a cancellare quindi il primo elemento dell'array ottenuto dalla sinusoide (in modo che cancella automaticamente ogni primo elemento dell'array concatenato) e a sostituirlo con il valore zero, ma non lo fa. Come si può fare a imporgli di scrivere zero nella posizione voluta? Vi allego il VI modificato, può essere che sbaglio io a dargli qualche condizione (molto probabile)! Ringrazio tutti quanti! ---------------------------------------- ================================================================================ Real Time: configurazione del FP ================================================================================ AUTORE: 927 DATA :12/05/2006 - 15:03:57 ---------------------------------------- E' possibile, a bordo di un FP della serie 2000, leggere la configurazione dei suoi stessi moduli di I/O come farebbe il MAX? Ho visto che sotto NI measurements -> Fieldpoint -> Advanced c'è "FP Get Configuration Info", ma restituisce solo i nomi dei moduli e dei canali, e ancora sotto NI measurements -> Fieldpoint -> Advanced -> Ethernet configuration ci sono funzioni come "Configure Range" che modificano le proprietà dei canali, ma non hanno un equivalente in lettura. (uso Labviù 7.1) ---------------------------------------- ================================================================================ Ricerca di massimi e minimi in un array 2D ================================================================================ AUTORE: 310 DATA :12/05/2006 - 20:35:02 ---------------------------------------- ciao a tutti! \":D\" il mio problema è trovare i punti di max e min di un array 2D. Labview mette a disposizione una funzione di ricerca max/min che però si limita a trovare solo 1 max ed 1 min (mi sembra il primo che trova), mentre invece a me servirebbe conoscere tutti i max e tutti i min con le relative posizioni nella matrice, semmai salvando tutti queste coppie di coordinate in un array... Qualcuno può aiutarmi, semmai se si trova qualcosa di già fatto? grazie 1000 \":)\" ragazzi siete grandi! ---------------------------------------- AUTORE: 680 DATA :12/05/2006 - 20:49:56 ---------------------------------------- la funzione array max e min, accetta anche array 2D e ti dà, il numero massimo e minimo contenuti nell'array con le relative coordinate.... ciao... ---------------------------------------- AUTORE: 310 DATA :12/05/2006 - 20:53:43 ---------------------------------------- il problema è che ci potrebbero essere +più massimi e + minimi, la funzione che mi hai proposto mi da le coordinate soltanto di 1 massimo e di 1 minimo, mentre io vorrei quelle di tutti i massimi e di tutti i minimi della matrice. Se per esempio nella matrice il massimo è 43, ma si presenta 4 volte, vorrei tutte le 4 coppie di coordinate di tali massimi. comunque ti ringrazio! \":D\" ciao ---------------------------------------- AUTORE: 645 DATA :12/05/2006 - 22:27:40 ---------------------------------------- Domanda: tu vuoi cercare il massimo e il minimo e le occorrenze (quindi quante volte si ripetono) [esempio: in un array il massimo è 10 e il minimo è 0 e si ripetono 5 volte uno e 3 l'altro] o vuoi memorizzare le coordinate di ogni massimo e ogni minimo che incontri (dove ogni massimo si presenta quando i valori nell'array passano da andamento crescente ad andamento decrescente e ogni minimo si presenta nella condizione opposta) ? Spero di non aver creato troppa confusione per niente. Nel primo caso puoi usare il blocco "max-min" per sapere quali sono i valori massimo e minimo e poi controllare tutte le posizioni dell'array (ciclo for su array 1D e for annidati su array 2D) contando quante volte si presentano questi numeri e in che posizione. Nel secondo caso puoi leggere ogni valore dell'array e confrontarlo con il precedente: se il valore corrente è minore del precedente allora il precedente è un massimo, se il valore corrente è maggiore del precedente allora il precedente è un minimo. Più o meno... ---------------------------------------- AUTORE: 310 DATA :13/05/2006 - 07:05:02 ---------------------------------------- quello che voglio fare è cercare, in una matrice 2D, le posizioni (cioè le coppie x,y) di TUTTI i min e max che ci sono. Dunque mi interessano sia i due valori min e max, ma soprattutto le posizioni nella matrice di tutti i minimi (non è detto che sia uno solo) e di tutti i massimi (non è detto che sia uno solo). Spero di essermi riuscito a spiegare \":)\" Dunque credo siamo nel tuo caso 2, MagicBotolo, e la tua procedura è una classica ricerca di max/min: tuttavia una volta che trovo un max oppure un min, devo subito memorizzarne le coordinate in un array... ma non riesco a farlo! \":|\" grazie ! ---------------------------------------- AUTORE: 1015 DATA :13/06/2006 - 12:28:37 ---------------------------------------- ciao, spero di esserti ancora utile visto che è passato 1 pò di tempo da qnd hai inserito il topic... io avevo la stessa esigenza ma mi interessavano solo i massimi. cmq penso che puoi tranquillamente adattare il VI per la memorizzazione dei minimi. uso labview da poco quindi nn ti garantisco che la mia sia la soluzione ottimale. considerala un punto di partenza \";-)\" ---------------------------------------- ================================================================================ Conversione da Hex ad Ascii ================================================================================ AUTORE: 516 DATA :13/05/2006 - 13:49:13 ---------------------------------------- Ciao a tutti Eccomi di nuovo qua alle prese con un problema. Devo inviare (tramite seriale) un stringa di dati Hex a una scheda , il problema che ho è il seguente la stringa (Hex) inizia con 01 30 30 30 30 ..... 1B.... 04 ora al posto di 30 metto 0 e automaticamente in out mi trovo 30 ma per 01 ? o 04 ? che corrispondono a SHO e ETX ?? come posso fare ?? Grazie Mille Sergio ---------------------------------------- AUTORE: 247 DATA :13/05/2006 - 14:25:27 ---------------------------------------- Ciao, è semplice, fai click destro sulla costante o controllo stringa/carattere che utilizzi per formare la stringa, selezioni la rappresentazione Hex Display ed inserisci tranquillamente 01 e 04, poi concateni con il resto del messaggio e spedisci. BYE. ---------------------------------------- AUTORE: 516 DATA :13/05/2006 - 15:25:54 ---------------------------------------- GRAZIE MILLE CIAO SERGIO ---------------------------------------- ================================================================================ VI dimostrativa tcp/ip. ================================================================================ AUTORE: 1235 DATA :13/05/2006 - 14:37:09 ---------------------------------------- Qualcuno avrebbe una VI dimostrativa per far colloquiare due pc su LAN tramite protocollo tcp/ip ? GRAZIE! ---------------------------------------- AUTORE: 4 DATA :14/05/2006 - 18:25:45 ---------------------------------------- esiste già del codice negli esempi di labview, sono semplici ma molto educativi. Ciao ---------------------------------------- ================================================================================ Display Lcd ================================================================================ AUTORE: 516 DATA :13/05/2006 - 17:04:41 ---------------------------------------- Ciao Sono di nuovo io \":D\" .Volevo chiedervi dove si possono trovare visualizatori tipo display lcd o sette segmenti , inotre posso tramite labview costruirmeli ? se si sapete indicarmi dove posso trovare dei manuali o dei libri ? anche in inglese vanno bene . Ciao Sergio ---------------------------------------- AUTORE: 247 DATA :14/05/2006 - 10:14:59 ---------------------------------------- Ciao, cerca in ILVG vecchi post tipo [url=http://www.ilvg.it/forum/viewtopic.php?t=588&start=0&postdays=0&postorder=asc&highlight=grafica:r9fsfayu]questo[/url:r9fsfayu], abbiamo parlato di grafica con LV molte volte....le cose però sono cambiate con la versione otto di LV e gli X_Controls(di quest'ultimi non esistono ancora post che possano aiutarti...) BYE. ---------------------------------------- AUTORE: 516 DATA :14/05/2006 - 10:40:42 ---------------------------------------- GRAZIE MILLE Sergio ---------------------------------------- ================================================================================ problemi in ricezione ================================================================================ AUTORE: 1015 DATA :15/05/2006 - 09:44:55 ---------------------------------------- ciao a tutti, ho scritto un VI per la gestione di un motore stepper(lo stepper è comandato da un pic) e funziona a perfezione( nn sapevo come fare a salvare tutto come immagine, quindi ho messo lo schema nel pdf noack.pdf in allegato) poichè devo far interagire il motore con una termocamera ho modificato il VI introducendo un'altra scrittura via seriale così come riportato in ack.pdf a questo punto succede una cosa strana: nn riesco + a ricevere caratteri dal pic! in pratica l'esecuzione del VI resta bloccata sul blocco ack.vi , che ha la funzione di ricevere un carattere di sincronizzazione dal pic. com'è possibile che solo aggiungendo una scrittura su seriale, la seriale nn funziona + correttamente? dov'è che sbaglio? tengo a precisare che qst è l'unica modifica che ho fatto. grazie a tutti ---------------------------------------- AUTORE: 645 DATA :15/05/2006 - 10:53:07 ---------------------------------------- Domanda: quando invii il carattere "z" (al PIC o alla Termocamera? Al PIC vero?) la periferica ti invia un segnale di comunicazione avvenuta (tipo "ok"... "va bene", "ricevuto"... beh forse messaggi un po' più seri)? Se così fosse dovresti leggere questo messaggio prima di comunicare ancora con la periferica altrimenti il buffer rimane occupato da questo messaggio e non ti permette di lavorare. Puoi provare a inserire un blocco di lettura dopo il blocco di scrittura incriminato: leggi tutto il buffer e vedi se c'è qualcosa. ---------------------------------------- AUTORE: 1015 DATA :15/05/2006 - 11:11:38 ---------------------------------------- si, manda il carattere al pic. ho provato a modificare come dici tu il prog. in pratica quando il pic riconosce la 'z' inviata da labview, manda un carattere , ad ex 'k' per farmi capire che la 'z' è arrivata correttamente, quindi allo schema di prima ho fatto seguire alla scrittura della 'z' la lettura della 'k' (il riconoscimento di un particolare carattere lo fa il blocco 'ack') ora però invece di bloccarsi sul riconoscimento della 'n' si bloca sul riconoscimento della 'k' \":-(\" però tutto qst è strano perchè sn sicura che il blocco 'ack' funziona bene dato che senza mettere serial_write(z) tutto va a perfezione. ci sto perdendo la testa su sta cosa. grazie mille per l'aiuto ---------------------------------------- AUTORE: 1050 DATA :15/05/2006 - 11:34:10 ---------------------------------------- Ciao, la vi ask.vi legge da seriale, vero? il mio dubbio è: prima di usare la read controlli se ci sono bytes "disponibili" in lettura? (usando la "VISA Bytes at serial port.vi") ---------------------------------------- AUTORE: 645 DATA :15/05/2006 - 12:02:41 ---------------------------------------- Ma il PIC risponde sempre con un carattere? Se sì devi mettere il blocco di lettura dopo ogni write. Dopo il case "orario-antiorario" prova a mettere un blocco di lettura e leggi tutto il buffer. Scusa la domanda ma il PIC invia solo un carattere come risposta? Prova a leggere tanti byte quanti sono disponibili nel buffer seriale... forse l'hai già fatto... ---------------------------------------- ================================================================================ Generatore di segnale in uscita ================================================================================ AUTORE: 1282 DATA :15/05/2006 - 15:58:28 ---------------------------------------- \"8)\" Ciao a tutti!!1 sono nuovo del forum e porto alla vostra attenzione e disponibilità il mio problema: Ho creato un .vi che funge da generatore di funzione (canonico, arbitrario e polinomiale) non ho però idea di quali blocchi di codice utilizzare per mandare i segnali prodotti in sucita sulla scheda. Spero qualcuno di voi possa darmi una mano, non so se dovrei dare qualche altra spiegazione per chiarire il problema, comunque aspetto qualche proposta. ciao e grazie anticipatamente a quanti si interesseranno!! ---------------------------------------- AUTORE: 129 DATA :15/05/2006 - 18:05:42 ---------------------------------------- Hai un dispositivo DAQ NAtional instruments o altro? O addirittura vuoi uscire sfruttando la scheda audio? Se hai un dispositivo della serie daq, comptaibile con i nuovi daqMX, puoi utilizzare questi stessi (se sei molto a digiuno usa il VI express che si chiama DAQ ASSISTANT). Se non è così prova a postare il nome della scheda che uilizzi. Nicola ---------------------------------------- AUTORE: 1282 DATA :20/05/2006 - 09:58:42 ---------------------------------------- Utilizzo una sceda DAQ NI, e poi, tramite cavo, rimando il tutto ad un oscilloscopio analogico per controllare il corretto funzionamento. In poche parole il generatore si compone di un genaratore di segnale canonico e di uno arbitrario (legge ampiezze in volt da file e genera impulsi in base alla frequenza stabilita da un potenziometro dall'utente). Inoltre vi è la possibilità di sovrapporre rumore bianco di ampiezza variabile al segnale. Ora, avendo creato questo vi, non sono molto esperto e non so qual'è il modo e quali sono le funzioni per rimandare l'uscita alla scheda. Credo di dover prelevare il segnale che originariamente collegavo al grafico, ma quali sono i blocchi specifici da utilizzare? Ciao e grazie per l'interessamento P.S. non ho risposto prima perchè sono stato lontano da casa \"8)\" ---------------------------------------- AUTORE: 645 DATA :20/05/2006 - 10:28:50 ---------------------------------------- Prova a dare un'occhiata a http://volt.ni.com/niwc/daq/technologies.jsp , in particolare la prima voce parla del DAQ Assistant. Poi nel Block Diagram trovi la paletta "Ni Measurement" all'interno della quale ci sono blocchi di comunicazione con l'esterno sia con tecnologia MX che senza. Puoi trovare i blocchi per leggere un segnale in input e generare un segnale in output (guarda l'immagine allegata). Consiglio anche una lettura al manuale di LabView nel capitolo sull'acquisizione di segnali. ---------------------------------------- ================================================================================ misura commutazioni mosfet ================================================================================ AUTORE: 1266 DATA :15/05/2006 - 19:16:29 ---------------------------------------- ciao a tutti..sono nuovo del forum e ho subito un quesito per voi.. devo contare i cicli di commutazione di un mosfet e per far questo ho fatto un VI collegato tramite ethernet all'oscilloscopio le cui sonde sono connesse al mosfet. Il conteggio viene fatto dopo che è arrivato un evento del trigger e contando i picchi di corrente..il problema è che per far tutto ci vogliono almeno 100ms (nonso se per colpa dell'oscilloscopio o del labview) e quindi non posso aumentare la frequenza di commutazione. Avete dei suggerimenti per risolvere il problema?O magari un alro metodo per fare questa misura?grazie ---------------------------------------- AUTORE: 247 DATA :15/05/2006 - 19:30:00 ---------------------------------------- Ciao, beh, se per "fare tutto" intendi acquisizione della commutazione, invio tramite ethernet e "lettura" da parte di LabVIEW su PC, 100 ms non mi sembrano così strani...se poi hai anche un pannello grafico che visualizza il tutto a maggior ragione... Per aumentare la frequenza dovresti far fare il conteggio dei picchi solo all'oscilloscopio e poi farti restituire la misura, inoltre per se ora stai lavorando con il metodo che ho indicato prima rischi tranquillamente di perdere commutazioni non essendo il PC un dispositivo realtime... A proposito, come hai determinato che il tutto ha bisogno di 100ms? BYE. ---------------------------------------- AUTORE: 1266 DATA :15/05/2006 - 19:54:32 ---------------------------------------- mi è stato detto da chi ha fatto altre misure..ma con l'oscilloscopio cme posso contare i picchi?non è possibile usare un altro modo tramite labview? ---------------------------------------- AUTORE: 247 DATA :16/05/2006 - 07:01:05 ---------------------------------------- Ciao, il fatto di poter far fare certi tipi di misure direttamente all'oscilloscopio dipende ovviamente dal modello di oscilloscopio che stai utilizzando, più che una certezza che il tuo avesse questa caratteristica era piuttiosto un'invito a controllarne le specifiche ed agire di conseguenza. LabVIEW potrebbe sicuramente fornire le prestazioni che chiedi ma solamente nel caso in cui utilizzassi una scheda di acquisizione dati controllata direttamente da quest'ultimo...nella tua situazione attuale il problema è probabilmente la velocità dimisura e/o di comunicazione ed i suoi tempi di latenza quindi LabVIEW da solo non può farci nulla! Come prima cosa quindi io andrei a controllare se nel datasheet dello strumento è riportato il tempo necessario per fare la misura di corrente che utilizzi ed anche il tempo di invio del dato su ethernet(TCP/IP no?), giusto per essere sicuro che il "ritardo" maggiore sofferto non dipenda dallo strumento, questo ritardo infatti probabilmente non è modificabile. Se scopri che non è lo stumento ad inserire larga parte del ritardo puoi tentare di ottimizzare il VI di ricezione o cambiare mezzo di tasmissione dati. Ti ripeto però che se non usi un target realtime la tua misura sarà fatta tanto più alla "leggera" quanto più abbasserai la soglia tutta teorica del tempo di campionamento! BYE. ---------------------------------------- AUTORE: 1266 DATA :16/05/2006 - 16:54:25 ---------------------------------------- Io acquisisco il numero di cicli ad ogni trigger e quindi ogni volta sommo i cicli visualizzati nella finestra grafica..il problema e' che non riesco a capire quando sommarli, cioe' avrei bisogno di un comando che mi dica quando e' avvenuto l'evento di trigger..come posso fare? ---------------------------------------- AUTORE: 1266 DATA :18/05/2006 - 20:29:48 ---------------------------------------- ho risolto il mio problema,ma ne ho subito un altro.. io acquisisco dall'oscilloscopio(LeCroy) una stringa che contiene delle informarzoni su un canale. La stringa è più o meno laseguente: CUST,SWEEP,P1,numero,P2,numero ora: 1-secondo voi questa stringa può cambiare lunghezza ad ogni acquisizione? 2-come posso fare un array di questo tipo: P1 numero P2 numero Tenete conto che questi numeri mi servono per fare dei conti e quindi devono essere assolutamente precisi GRAZIE! ---------------------------------------- AUTORE: 645 DATA :18/05/2006 - 22:20:59 ---------------------------------------- Per estrarre i dati dalla stringa devi usare le funzioni che LabView mette a disposizione nella paletta "String" del Block Diagram. In pratica vai a lavorare sulla stringa spostandoti alla ricerca dei caratteri che ti interessano. Non so dire se la stringa può cambiare di dimensione ma per essere sicuro puoi spostarti tra un valore e l'altro cercando i caratteri di separazione (immagino che tra un valore e l'altro ci sia qualcosa di ricorrente tipo virgole, trattini...). Ad ogni acquisizione cerchi i valori che ti servono all'interno della stringa e li memorizzi in un vettore. ---------------------------------------- AUTORE: 1266 DATA :20/05/2006 - 21:00:42 ---------------------------------------- ho guardato nella sezione dedicata alle stringhe ma ho trovato solo funzioni che separa una stringa in due..magari mi sono sbagliato e in caso potresti dirmi cosa usare per dividere una stringa in più stringhe e metterle in un array?grazie ---------------------------------------- AUTORE: 1266 DATA :25/05/2006 - 12:42:25 ---------------------------------------- ciao a tutti..mi trovo costretto a cambiare metodo e quindi volevo chiedere se qualcuno puo' aiutarmi.. Devo misurare il numero di commutazioni di un mosfet e i relativi picchi di corrente ogni volta che si accende (non e' detto che i due coincidano);ho a disposizione un oscilloscopio collegato via ethernet, alimentatore e generatore di funzione collegati con GPIB. Aiutatemi!!grazie ---------------------------------------- AUTORE: 645 DATA :25/05/2006 - 13:29:15 ---------------------------------------- Solo un'idea... l'oscilloscopio è dotato di un proprio protocollo di comunicazione? Perchè se tu conosci quando il mosfet si accende (lo comandi tu?) puoi farti inviare dall'oscilloscopio un tot di valori dopo l'accensione per misurare le grandezze che ti servono. ---------------------------------------- AUTORE: 1266 DATA :25/05/2006 - 16:43:04 ---------------------------------------- il mosfet lo comando io con il generatore di segnali..l'oscilloscopio puo' essere comandato tramite comandi remoti:e' un Lecroy. Il punto e' capire come misurare le commutazioni..un'altra cosa..devo anche spegnere tutti gli strumenti quando il mosfet muore! ---------------------------------------- ================================================================================ Timer ================================================================================ AUTORE: 1252 DATA :16/05/2006 - 10:09:56 ---------------------------------------- Buongiorno a tutti...tanto per cambiare ho un´altro prloblema... \":oops:\" Vi chiedo scusa, ma sono un principiante con Labview... A dire la veritá i problemi sono 2 e spero che qualcuno sia in grado di darmi qualche dritta: 1)All´interno di una CASE STRUCTURE io acquisisco dei valori, se questi valori sono superiori di un certo valore vorrei che la mia Case Structrure si fermasse. La Case Structure la faccio partire con un pulsante On/Off.. Come faccio? 2)Devo fare in modo che uno switch sia in una posizione A e successivamente B per per un periodo che l´utente immette dal Front Pannel, devo far vedere anche il tempo che passa. Spero che qualcuno possa aiutarmi. Filippo ---------------------------------------- AUTORE: 1029 DATA :16/05/2006 - 12:41:44 ---------------------------------------- Ciao filippo! Ho realizzato un VI che spero si avvicini a quello che chiedevi, purtroppo non ho avuto tempo per sistemarlo bene, spero che ti possa servire. Per quanto rigurda il CASE, potresti mettere un blocco maggiore che compara i tuoi valori con soglia che decidi tu e l'uscita la mandi cin un AND all'ingresso boolean del case. Nella AND metti in ingresso il valore in uscita del blocco "maggiore" e anche lo SWITCH, e l'uscita della AND la metti nell'ingresso del CASE. Spero che si possa fare. Anch'io sono un principiante e spero di esserti stato d'aiuto, in caso contrario scusa se ti ho fatto perdere tempo! A presto! ---------------------------------------- AUTORE: 1252 DATA :16/05/2006 - 12:53:35 ---------------------------------------- Ciao frá, per prima cosa ti ringrazio di avermi risposto. Non so per quale motivo, ma non riesco a vedere il tuo file che ho scaricato, nn potresti fare un´immagine? Grazie. \":wink:\" Filippo ---------------------------------------- AUTORE: 129 DATA :16/05/2006 - 13:22:32 ---------------------------------------- Quella che chiami case structure forse è un while loop (hai bisogno che si fermi nel caso di false). Prova a vedere l'esempio che allego, dovrebbe realizzare tutto quello che chiedi. nota: il frame false del case, è vuoto. nota 2 : il blocco che acquisisce i valori devi sostituirlo al random VI. Spero di esserti stato di aiuto. ---------------------------------------- AUTORE: 1252 DATA :16/05/2006 - 14:53:01 ---------------------------------------- Ciao Nicola, grazie per avermi risposto. Ho provato ad usare la struttura che mi hai consigliato, ma mi sono dimenticato di dire che acquisisco su diversi canali temperatura, voltaggio e corrente. Ho provato a creare una struttura (allegato),ma non riesco a farla funzionare. volevo mettere nel caso False di ogni subCASE Structure una costante falsa, ma non funziona. Cosa posso fare? Filippo ---------------------------------------- AUTORE: 1252 DATA :16/05/2006 - 14:59:49 ---------------------------------------- Ok, il primo problema sono riuscito a risolverlo inserendo nel caso fale una "Local variabile" del pulsante esterno collegato con una costante falsa. \":D\" Adesso vedo come risolvere il secondo problema! Grazie!!! ---------------------------------------- ================================================================================ Leggere segnali digitali ================================================================================ AUTORE: 591 DATA :16/05/2006 - 16:57:03 ---------------------------------------- Ciao a tutti, rieccomi qui con un nuovo problema a cui spero mettiate un po' di luce. Devo realizzare uno sniffer di segnali digitali (ad esempio il segnale sulla seriale). Devo quindi convertire il segnale in una sequenza di bit e da qui il problema. Premetto che non ho mai lavorato prima con segnali digitali se non a livello molto teorico. Supponendo quindi di voler leggere, sempre per esempio, un segnale rs232 tramite le porte digitali di una daq card, supponendo che il segnale si 9600,8,1 come devo impostare il vi in modo da leggere e magari graficare l'informazione cosi' come si presenta ? Spero di essere stato chiaro e che mi date una mano. Grazie a tutti. ---------------------------------------- AUTORE: 645 DATA :16/05/2006 - 18:21:36 ---------------------------------------- Dai un'occhiata al sito http://www.vincenzov.net/tutorial/rs232/seriale.htm Qui si dice che il segnale circolante in una comunicazione seriale può assumere i valori +-12 V. Io non ho mai analizzato il segnale elettrico che circola durante una comunicazione seriale ma se i valori di tensione sono questi si può utilizzare una scheda di acquisizione e confrontare i valori letti (ogni tot di tempo in conseguenza del baud rate scelto) con il caso 0 (+12 V) o 1 (-12 V). Potrebbe essere così? ---------------------------------------- AUTORE: 1165 DATA :16/05/2006 - 20:19:16 ---------------------------------------- Provo a darti una risposta anche io, anche se del tutto incompleta. Prendila solo come un'idea buttata là. Dunque: come giustamente ti ha detto MagicBotolo puoi adottare la strada del campionamento del segnale analogico per vedere se riesci ad identificarvi dei segnali digitali nel mezzo del rumore enorme che troverai. Dovrai cioè cercare di riconoscere gli stati alti e bassi e le loro esatte transizioni, aiutato solo dal conoscere in anticipo il baud rate (se lo conosci, altrimenti dovrai avanzare induttivamente per ipotesi, da confermare o da scartare, ma i baud rate più diffusi sono oramai 4800, 9600, 19200 e più raramente le loro metà e i loro doppi). Attenzione alle tensioni, che nominalmente dovrebbero essere comprese tra -3V e -18V per lo stato logico 1 e tra 3V e 18V per lo stato logico 0, ma non c'è niente di meno standard dello standard RS232c. Una frequenza di campionamento del segnale che potrebbe essere abbastanza standard è di 16 volte la frequenza di Baud per le alte frequenze (quelle scritte sopra) e di 64 volte la frequenza di baud per le basse frequenzze di Baud (da 75 fino a 1200 baud al secondo). A questo punto dovrai cercare di ricostruire il protocollo utilizzato, spesso 8N1. Ma anche con ciò non basta, perchè questo è solo il primo strato del protocollo, poi ogni costruttore adotta in genere uno strato superiore assolutamente proprietario e ricostruirlo non è sempre banalissimo (anche se spesso invece ci si riesce). La seconda strada è quella di procurarti ed usare un analizzatore di stati logici ed analizzatore di protocollo, non chiedermi quali modelli esistano commercialmente perchè non li conosco, ma se ricerchi con i termini che ti ho detto sicuramente salta fuori qualcosa. Io proverei questa se hai tempo, è più costosa ma meno faticosa. Ciao ed in bocca al lupo. Enrico. ---------------------------------------- AUTORE: 591 DATA :17/05/2006 - 17:15:19 ---------------------------------------- Grazie per le risposte. Francamente credevo che la cosa fosse piu' fattibile magari con qualche esempio ad hoc ma anche parlando con uno dei tecnici della NI ho riscontrato che le linee digitali su scheda lowcost come la daqcard 6024e o la usb-6009 permettono di gestire i canali on demand. In pratica su queste schede non posso fissare un clock con cui leggere ma dipendo dal clock di sistema tramite il metronomo quindi non danno affidabilità. L'alternativa è dunque quella dell'acquisizione analogica e relativa interpretazione ad occhio. Approfitto per fare una domanda probilmente banale. Le linee digitali delle schede su menzionate allora che scopo hanno? in che contesto si usano? Grazie ---------------------------------------- ================================================================================ Immagine di sfondo ================================================================================ AUTORE: 232 DATA :17/05/2006 - 16:47:43 ---------------------------------------- Ciao, vorrei mettere un immagine di sfondo (nella fattispecie una piccola planimetria) su cui sovrapporre dei comandi, solo che l'immagine resta sempre in primo piano, coprendo quindi i pulsanti , come posso fare ? ---------------------------------------- AUTORE: 680 DATA :17/05/2006 - 17:33:19 ---------------------------------------- devi prima mettere l'immagine di sfondo e poi in un secondo momento, creare i pulsanti da inserire sopra l'immagine. se l'immagine viene inserita dopo la creazione dei pulsanti, questa, nasconderà gli ultimi. ciao... ---------------------------------------- AUTORE: 645 DATA :17/05/2006 - 22:56:03 ---------------------------------------- Oppure sulla linea dei tasti ""Run", ""Pause"... trovi il bottone "Reorder" (tutto a destra) per spostare avanti e indietro (come piano) gli oggetti sullo schermo. ---------------------------------------- ================================================================================ Ancora Timer ================================================================================ AUTORE: 1252 DATA :18/05/2006 - 13:05:40 ---------------------------------------- Buongiorno a tutti, eccomi di nuovo qui in quanto il problema con il Timer persiste... \":(\" Ho fatto qualche progresso, ma ho ancora dei problemi. Spiego. \":wink:\" Io vorrei che schiacciando il pulsante Start partissero contemporaneamente : - Acquisizione dei segnali - Timer che mi segni quanti secondi sono passati da quando ho schiacciato Start -Un altro Timer che mi chiude un Relay per un determinato tempo e me lo ripare per un altro determinato tempo. Questo deve essere fatto un numero N di volte. Voglio che se schiaccio Stop il tutto si blocchi. Vi allego quello che ho fatto, magari si capisce meglio. Spero che qualcuno possa darmi qualche idea.. Filippo ---------------------------------------- AUTORE: 645 DATA :18/05/2006 - 14:37:43 ---------------------------------------- Ma di preciso nel tuo VI cosa non funziona? (io non ho potuto avviarlo perchè non ho alcune librerie installate... sono in fase di aggiornamento pc...) ---------------------------------------- AUTORE: 1252 DATA :18/05/2006 - 15:10:05 ---------------------------------------- Ciao, il primo problema è che i grafici (l´acquisizione) e il Time a destra partono solo se schiaccio start prima di schiacciare "Run Continuously, e giá questo non va bene, ma si potrebbe risolvere mettendo un CASE STRUCTURE che inglobi tutto, ma a questo punto i grafici e il tempo vanno avanti fino all´infinito. Il secondo problema è che se dico di fermarsi (schiacciando di nuovo il pulsante start) si ferma solo il Time a destra e i grafici, mentre il Timer (quello dentro il ciclo FOR) continua a ripetersi all´infinito. Il mio scopo sarebbe quello di bloccare il tutto nello stesso momento,mentre fino ad ora sono riuscito solo a bloccare tutto, ma il ciclo FOR prima di bloccarsi deve finire, nn c´è un modo per bloccarlo? Adesso sto provando a fare il programma iin un modo completamente diverso, magari è proprio nell´impostazione che sbaglio. \":wink:\" Filippo. ---------------------------------------- AUTORE: 1252 DATA :18/05/2006 - 15:28:47 ---------------------------------------- Ciao, mi sono dimenticato un altro problema. Io ho un CASE STRUCTURE con dentro 3 grafici e un ciclo FOR, ma i garfici si aggiornano solo quando il ciclo FOR finisce, non esiste un modo per evitare di aspettare che il ciclo FOR finisca? Se volete vi scrivo il codice che userei se dovessi usare un programma dipo C. Grazie per le risposte che cmq mi avete giá dato... \":wink:\" Filippo. ---------------------------------------- AUTORE: 645 DATA :18/05/2006 - 16:57:43 ---------------------------------------- Allora, un pezzo alla volta: 1) effettivamente il tuo VI parte solo con il "Run Continuously" perchè il ciclo principale (il while in basso contenente il tasto Start) è impostato come "Continue if True" e quando il VI parte il bottone ha valore "False". Quello che vuoi realizzare tu è possibile con la struttura ad eventi. Devi usare un ciclo while all'interno del quale metti una struttura ad eventi che controlla il valore del bottone "Start" e successivamente passa questo valore ad un "Case": se il valore del bottone è "True" allora fai tutte le azioni altrimenti non fai niente. In questo modo avrai due bottoni, uno di Start/Stop, l'altro solo di Stop che controlla il While esterno. 2) Per evitare che il ciclo for vada avanti puoi sostituirlo con un while (e usare come criterio di terminazione la combinazione "Valore Tasto" or "Valore numerico del contatore=Valore numerico scelto dall'utente") o controllarlo con una struttura ad eventi. Immaginando che l'utente inserisca "100" come numero di cicli voluti e prema "Stop" quando sono stati eseguiti 30 cicli con la struttura for il VI lavorerà per altri 70 cicli mentre con la strutttura while lavorerà al massimo per terminare il ciclo in corso (quindi 30 o 31 a seconda dell'istante in cui viene premuto il bottone). La gestione ad eventi per interrompere un ciclo è stata discussa in un post ma non riesco a trovarlo: dai un'occhiata nel forum. Per un discorso più generale sulla temporizzazione prova a leggere download.php?id=297 Per indicazioni sulle strutture a eventi guarda il post viewtopic.php?t=373&start=0&postdays=0&postorder=asc&highlight=event ---------------------------------------- AUTORE: 680 DATA :18/05/2006 - 16:58:57 ---------------------------------------- non puoi bloccare l'esecuzione di un ciclo for, devi attendere che finisca.... per quanti rigurda i grafici, mettili all'interno del ciclo for in modo che ad ogni iterazione si aggiornino (attento che in questo modo diminuisci le performance del tuo vi poichè usi un bel po' di memoria per aggiornare il grafico ad ogni iterazione)..... per quanto riguarda il tasto di start: si, inserisci il codice in un case come hai detto tu.. ps: ti sconsiglio di usare il "run continuosly".... ciao.... ---------------------------------------- AUTORE: 1252 DATA :18/05/2006 - 18:08:02 ---------------------------------------- Vi ringrazio per le risposte... \":D\" Purtopppo adesso non posso mettere in atto i vostri consigli, ma domani mattina sarà la prima cosa che farò. Vi farò sapere come è andata. Grazie mille ancora!!!! \":D\" Filippo ---------------------------------------- AUTORE: 1252 DATA :19/05/2006 - 11:05:27 ---------------------------------------- Ciao, mi scuso se vi rompo ancora, ma sto impazzendo per capire come funzina la EVENT STRUCTURE..e non ci sono ancora riusciuto... \":(\" Ho modificato il mio programma,ma ho ancora problemi. Adesso acquisisco i valori, se sono inferiori ad un certo valore allora posso partire mostrando i valori sui grafici e facendo partire il mio Relay. Il fatto è che se metto il ciclo FOR all´interno della CASE con i grafici questi vengono aggiornati solo alla fine del ciclo, se metto i grafici nel ciclo FOR non li aggiorna. Come posso usare la EVENT per fare in modo che i grafici si aggiornino senza aspettare che il mio REALY abbia finito di fare il suo ciclo e bloccare tutto premendo stop? Vi chiedo ancora scusa per la mia ignoranza e per rubarvi del tempo. Filippo ---------------------------------------- ================================================================================ Parallelismo ++ ================================================================================ AUTORE: 927 DATA :18/05/2006 - 13:21:49 ---------------------------------------- Normalmente è possibile creare più cicli paralleli, anche con temporizzazioni diverse, ottenendo in modo automatico l'effetto del multithreading. Mi chiedevo (ma forse sto vaneggiando) se è pensabile un VI dove il numero di cicli paralleli indipendenti è variabile durante l'esecuzione, in pratica creando dinamicamente i thread. ---------------------------------------- AUTORE: 4 DATA :23/05/2006 - 08:31:58 ---------------------------------------- Certo che si può \"8)\" basta "giocare" con le funzioni nella paletta Application Control. Ti allego una presentazione molto interessante sull'argomento. Ciao, ---------------------------------------- AUTORE: 927 DATA :24/05/2006 - 13:32:35 ---------------------------------------- Molto interessante infatti! Quello che chiedevo io si può fare col metodo dei Dynamic Reentrant VI o dei Dynamic Template VI. I Template però non sembrano funzionare in RT: vedo che il file .vit non viene nemmeno trasferito sul FP. E' normale? ---------------------------------------- ================================================================================ Comando RING (forse) ================================================================================ AUTORE: 1256 DATA :18/05/2006 - 15:42:33 ---------------------------------------- Salve a tutti, vi chiedo perchè è un pò che ci sbatto la testa..... ho quattro tubazioni Ø147.5/100/80/54 con relativi diaframmi accoppiati alle tubazioni stesse Ø147.5/100 - 147.5/60 - 100/80 - 100/60 - 100/40 - 80/60 ect.... Come faccio scegliendo un valore di tubazione a parzializzare i diaframmi per quel tubo. Sono alle prime armi e lavoro con LAB vers.6.1. Ringrazio tutti. ---------------------------------------- AUTORE: 680 DATA :18/05/2006 - 20:33:00 ---------------------------------------- scusami ma non ho ben capito... che cosa devi scriverci in quell'array 2D ? ---------------------------------------- AUTORE: 1256 DATA :19/05/2006 - 16:37:23 ---------------------------------------- Nell' array 2D vorrei scrivere i valori del diametro tubo + foro di più diaframmi (es.100/80 100/60.... 80/60 80/50.....), scegliendo poi sul comando ring il diametro del tubo (es. 100) mi presenti solo i diaframmi 100/80 100/60.... cosi da poter estrarre il valore 80 60.... Spero si capisca... ---------------------------------------- ================================================================================ Lettura Scrittura Dati Consigli ================================================================================ AUTORE: 516 DATA :18/05/2006 - 18:41:35 ---------------------------------------- Ciao eccomi di nuovo qua a chiedere dei consigli e degli aiuti . Sto realizzando un programma per una stazione meteo , ora quando lancio il programma la prima cosa che devo fare è leggere un file dove all'interno ho delle costanti che uso per le varie moltiplicazioni e se il file è vuoto allora viene "lanciato" un'altro VI che ho chiamato setup . Ora la mia domanda è questa quando lancio il programma principale devo leggere se ci sono dato oppure no come devo fare ? devo mettere la lettura del file all'interno di un cas structure o di un timed loop ? , per spiegarmi meglio (spero ) non sono ancora riuscito a capire con Labview come si fa per fare delle letture un volta sola come per es la lettura del file . Inoltre secondo voi va bene se questi tipi di dati li memorizzo all'interno di un file .dat ? Grazie Mille in anticipo Sergio ---------------------------------------- AUTORE: 680 DATA :18/05/2006 - 20:27:55 ---------------------------------------- spero di aver capito bene il tuo problema... ecco una soluzione che comunque può essere migliorata... ciao... ---------------------------------------- AUTORE: 680 DATA :18/05/2006 - 20:28:56 ---------------------------------------- ah dimenticavo, devi lanciare il file "main.vi" ............... ---------------------------------------- AUTORE: 516 DATA :19/05/2006 - 08:38:09 ---------------------------------------- Ciao Scusa se ti rispondo in ritardo , si è quello che intendevo ora provo a modificarlo per la mia applicazione poi ti faccio sapere : Grazie Mille Sergio ---------------------------------------- AUTORE: 516 DATA :19/05/2006 - 11:24:22 ---------------------------------------- Ciao Grazie Mille Funziona , Ancora una domanda il mio setup è realizzato con un tab control xchè ho una decina di controlli e non riuscirei a gestirli su un vi solo . Ora ho portato fuori dal tab control i collegamenti e come mi hai fatto vedere li ho connessi al concatenates string , il problema è che vedo il dato in uscita relativo alla posizione del tab control per vedere gli altri ho dovuto usare delle variabili locali , domanda ci sono altri sistemi più intelligenti ? Ciao Sergio ---------------------------------------- ================================================================================ Fortran e Labview ================================================================================ AUTORE: 1241 DATA :18/05/2006 - 20:22:55 ---------------------------------------- Ciao ragazzi, sapete se è possibile importare in labview routine scritte in Fortran? Bisogna usare le CIN? come si fa a programmarle? ---------------------------------------- AUTORE: 235 DATA :12/06/2006 - 08:40:11 ---------------------------------------- Con i Code Interface Node (CIN) importi codice C. Per Fortran potresti fare una DLL (penso ti serva RT Fortran o qualcosa del genere) e poi usare la DLL in LabVIEW. Bye P. ---------------------------------------- ================================================================================ programma di acquisizione ================================================================================ AUTORE: 1266 DATA :18/05/2006 - 20:35:34 ---------------------------------------- ciao a tutti! Ho bisogno di qualche consiglio..devo fare un programma che quando riceve il trigger dell'oscilloscopio collegato tramite ethernet deve resettare un contatore e ricominciare a contare;in oltre devo fare una somma tipo n=n+1..quando il contatore non riceve un trigger entro un tot di secondi deve farmi uscire dal loop (l'acquisizione del trigger è continua). Grazie! ---------------------------------------- AUTORE: 645 DATA :18/05/2006 - 22:23:58 ---------------------------------------- Per le somme puoi dare un'occhiata agli shift register. Per le richieste che hai conviene usare cicli while e combinazioni di valori logici vero/falso collegati con un timer (tra i blocchi ne trovi uno che calcola il tempo che passa). ---------------------------------------- ================================================================================ problemi sui canali dii acquisizione ================================================================================ AUTORE: 1260 DATA :19/05/2006 - 15:50:46 ---------------------------------------- Salve a tutti, vi sottopongo un problema un po strano (almeno per me che non sono un grande esperto LV): sto acquisendo dei segnali provenienti da diversi sensori contemporaneamente, con una scheda DAQPad 6015. nelle impostazioni del blocco create channel ho selezionato modo differenziale....quando selezionp l'acquisizione dai primi tre canali (ai0,ai1,ai2) e pero connetto solo il ai0 ad un sensore sugli altri canali vedo il segnale del primo. ho provato a spostare la levetta (FS-GS) che c'è vicino al connettore del bnc su GS, ma non ho grossi cambiamenti. Forse sto sbagliando nell'impostare i dati. che ne dite. ciao grazie ---------------------------------------- AUTORE: 645 DATA :20/05/2006 - 00:26:36 ---------------------------------------- Gli accoppiamenti di canali (visto che usi il modo differenziale) sono giusti? E il collegamento del circuito dal quale arrivano i segnali alla morsettiera è corretto secondo lo schema dei canali impostato? ---------------------------------------- AUTORE: 482 DATA :22/05/2006 - 07:46:51 ---------------------------------------- Quando si utilizza il metodo differenziale significa che il + del tuo segnale lo devi collegare ad a0 mentre il - lo devi collegare ad a8. Confermi questo collegamento? ---------------------------------------- AUTORE: 1260 DATA :22/05/2006 - 08:18:08 ---------------------------------------- sulla scheda gli ingressi per i bnc vanno da ai0 ad ai7, anche su un manuale di istruzioni parla appunto di altri ingressi, da ai8 ad ai15, ma fisicamente dove si trovano? io in ingresso sul ai0 ho collegato un bnc proveniente da un blocco che alimenta e trsferisce il segnale di un sensore di pressione..teoricamente, per quello che devo fare io dovrei connettere al ai8 il gnd. ciao. grazie ---------------------------------------- AUTORE: 4 DATA :22/05/2006 - 08:26:54 ---------------------------------------- potrebbe essere solo un problema di distrurbo, nel senso che se lasci liberi i canali adiacenti a uno collegato, questi pescano il segnale di quello collegato. Prova a chiudere i canali aperti basta anche un semplice filo nei contatti del BNC Ciao, ---------------------------------------- AUTORE: 1260 DATA :22/05/2006 - 08:40:39 ---------------------------------------- Si forse potrebbe essere cosi, ma il mio duubio è :se attivo un canale ma non collego nessun bnc, è possibile che questo peschi il segnale del canale adiacente, ma cio non dovrebbe verificarsi anche quando nel canale attivato collego un bnc, cioe il segnale che pesco dal canale adiacente non si dovrebbe sovrapporre al mio segnale?questo falserebbe le mie misure ciao ---------------------------------------- AUTORE: 4 DATA :22/05/2006 - 08:50:45 ---------------------------------------- no assolutamente, se colleghi il segnali misuri correttamente. fai la prova mettendo il canale libero a massa. Ciao, ---------------------------------------- AUTORE: 645 DATA :22/05/2006 - 08:52:49 ---------------------------------------- All'indirizzo http://www.ni.com/pdf/manuals/370969b.pdf, pagina 10, figura 2 c'è un terminale 29 indicato come massa. Non trovo manualetti migliori: su quelli che hai tu non ci sono indicati i collegamenti per uso differenziale e single ended? ---------------------------------------- AUTORE: 1260 DATA :22/05/2006 - 09:55:07 ---------------------------------------- Si effettivamente succede come mi hai detto, cioe se collego un segnale noto non sento piu il disturbo che invece avevo quando il connettore bnc era scollegato dall'ingresso; a questo punto mi chiedo pero il perche questo accada, cioe perche quando collego l bnc il disturbo scompare?succede a livello hardware o software? ciao ---------------------------------------- AUTORE: 4 DATA :22/05/2006 - 10:22:29 ---------------------------------------- a livello hw semplicemente perchè il segnale libero non ha riferimento a niente ed è flottante. Ciao, ---------------------------------------- AUTORE: 1260 DATA :23/05/2006 - 08:38:36 ---------------------------------------- grazie, con i vostri consigli sono riuscito a risolvere il mio problema.ciao ---------------------------------------- ================================================================================ Salvataggio Dati ================================================================================ AUTORE: 516 DATA :20/05/2006 - 23:32:50 ---------------------------------------- Ciao a tutti Vorrei una dritta devo salvare una decina di dati (numerici e stringa) in un file .dat i dati numerici possono anche avere la virgola , nel mio VI scrivo questi dati all'interno della casella numeric properties , sono partito con l'idea di mandare tutti questi dati all'interno di un bundle e poi ho mandato l'uscita al write . Ora il problema che mi si presenta è questo i dati di tipo testo non ho problemi li leggo correttamente , mentre quelli di tipo numerico vengo visualizzati con caratteri ascii , come posso fare , e inoltre come posso leggerli ? Come sempre Grazie Mille Sergio ---------------------------------------- AUTORE: 4 DATA :22/05/2006 - 15:46:32 ---------------------------------------- Ciao prova così: alla funzione write setti l'opzione HEADER=TRUE, alla funzione read passi la tua struttura dati (il cluster) all'ingresso BYTE STREM TYPE lasciando scollegato COUNT Ciao, ---------------------------------------- AUTORE: 516 DATA :23/05/2006 - 15:54:43 ---------------------------------------- Ciao Grazie Mille per la dritta ho risolto il problema . Scusa se ti ho risposto in ritardo ma ho avuto qualche problema con il pc Ciao Sergio ---------------------------------------- ================================================================================ Da dove cominciare con Labview ================================================================================ AUTORE: 1297 DATA :21/05/2006 - 10:30:19 ---------------------------------------- Buon giorno a tutti, mi scuso anticipatamente se è un argomento trito e ritrito, ma sono un tantino incasinato al momento, difatti mi ritrovo a lavorare anche sabato e domenica, sto leggendo qua e la sul forum. Mi hanno appioppato un progettino nuovo da fare, e questa volta mi vedo costretto ad usare Labview, costretto perchè sono uno di quei pochi che a tutt'oggi si trova più a proprio agio con davanti un monitor nero e il cursore che lampeggia piuttosto che un desktop pieno di iconcine, quando sento "trascina la cartella nella finestra" mi riempio di bolle... però per motivi di tempo devo inchinarmi (alla Balasso) alle necesstà, una volta che lo strumento sarà funzionante potrò dedicarmi con maggiore calma allo studio approfondito, ai dettagli dello strumento e allo sviluppo di tutti gli accessori..chiamiamoli così. Veniamo al sodo: Devo acquisire un segnale DC 0-10V (un tantino ballerino) registrarne i valori a 2 sample al secondo, fare un grafico in tempo reale, dopo dieci minuti interrompere la registrazione e stampare un report con media, valore massimo minimo ecc. ecc.. Ho seguito i tutorial della guida Getting started with Labview che ho trovato sul sito NI ma non sono per niente soddisfatto, sarà la fretta che ho, chi mi sa dire dove trovare del materiale veramente valido da leggere per essere produttivi da quasi subito? sul sito National non mi ci trovo affatto bene. Ah il set up attuale è PC Uindous con scheda PCI6224 e labview 7 Flavio ---------------------------------------- AUTORE: 1297 DATA :21/05/2006 - 10:45:18 ---------------------------------------- Nel frattempo sto leggendo "LabVIEW Introduction-ThreeHour" FL ---------------------------------------- AUTORE: 129 DATA :28/05/2006 - 09:20:31 ---------------------------------------- Abbiamo raccolto un pò di tutorial che si trovano nella rete [url=http://www.ilvg.it/index.php?option=com_content&task=view&id=50&Itemid=97:ylo3sgzn]qui[/url:ylo3sgzn]. Il lavoro che devi fare è abbastanza semplice, direi che è legato più alle performance della scheda che non al programma. Ti consiglio di guardare gli esempi (menu help/find example) dove trovi modelli di acquisizione già fatti. Con un pò di malizia, poi aggiungi il codice di calcolo che ti serve. Buon Lavoro. ---------------------------------------- ================================================================================ Event Structure ================================================================================ AUTORE: 1252 DATA :22/05/2006 - 08:29:12 ---------------------------------------- Buongiorno a tutti, qualcuno puó dirmi brevemente cosa serve e come funziona una Event Structure? Vi ribgrazio anticipatamente!! \":wink:\" Filippo ---------------------------------------- AUTORE: 4 DATA :12/06/2006 - 08:56:40 ---------------------------------------- Ciao, trovi molti post che ne parlano su questo forum (usa la funzione cerca) oppure leggi questa [url=http://zone.ni.com/reference/en-XX/help/lv/71/glang/Event_Structure/:3lv76izk]introduzione[/url:3lv76izk] sul sito NI Ciao, ---------------------------------------- ================================================================================ LabVIEW e PLC ================================================================================ AUTORE: 847 DATA :22/05/2006 - 10:11:49 ---------------------------------------- Salve premetto che non conosco molto i PLC,ma mi è stato chiesto di fare un VI per comunicare con PLC Siemens(Step 7) connesso al PC attraverso un addatatore esterno fornito dalla Siemens. Qualcuno sa darmi delle indicazioni su cosa devo usare quali blocchi e/o software aggiuntivi devo utilizzare? Grazie ---------------------------------------- AUTORE: 683 DATA :24/05/2006 - 15:11:10 ---------------------------------------- che protocollo di comunicazione usa questo PLC siemens?? ---------------------------------------- AUTORE: 179 DATA :06/06/2006 - 08:30:09 ---------------------------------------- Devi utilizzare un OPC server e i datasocket di LabView oppure acquistare il pacchetto DSC. Ciao ---------------------------------------- AUTORE: 748 DATA :07/06/2006 - 01:25:05 ---------------------------------------- Oltre agli OPC servers puoi usare una normale scheda ethernet e un adattatore ethernet sul PLC utilizzando il protocollo Modbus. In questo caso però devi programmarti il protocollo (anche se qualche VI per il Modbus via seriale si trova) ---------------------------------------- AUTORE: 847 DATA :07/06/2006 - 10:53:14 ---------------------------------------- Ok, questo è il mio caso.. ora devo capire meglio come utilizzare il modbus cerco negli esempi? Grazie ciao ---------------------------------------- AUTORE: 748 DATA :07/06/2006 - 21:19:17 ---------------------------------------- [url=http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F1582737BACF5CA8E0340003BA7CCD71&p_node=DZ52363&p_source=External:128mty4p]Qui[/url:128mty4p] trovi delle VIs create da NationalInstruments: Qui un VI con un comando implementato: http://www.morechemistry.com/publ/labvi ... /wm14.html Infine ci sono diversi link che parlano del protocollo Modbus TCP http://www.eecs.umich.edu/~modbus/docum ... US_300.pdf http://www.lammertbies.nl/comm/info/modbus.html C'e' anche la possibilità degli OPC servers di NationalInstruments. Personalmente apprezzo molto il Modbus perchè usa banali schede ethernet ed è esente da royalties... per cui vale la pena studiarselo un pò approfonditamente. Mark ---------------------------------------- AUTORE: 847 DATA :08/06/2006 - 07:11:24 ---------------------------------------- Grazie,molto utili i link che mi hai inviato.. ---------------------------------------- ================================================================================ Aiuto su banale lettura ================================================================================ AUTORE: 1282 DATA :22/05/2006 - 18:17:36 ---------------------------------------- \":o\" Scusate per la banalità ma "sto fondendo" eppure non riesco a superare questo stupido problema: ho un file txt tipo quello allegato in cui ho una serie di valori separati dal tab. Ora vorrei poter leggere da questo file e mettere i valori letti in un array monodimensionale. Questo però utilizzando le funzioni Open file, write file e close file in modo da poter avere una gestione errori. Spero qualcuno sia così gentile di abbassarsi a risolvere questo problema perchè non so il motivo ma in qualunque modo provo non ottengo mai il funzionamento desiderato. Ciao e grazie! \"8)\" ---------------------------------------- AUTORE: 645 DATA :22/05/2006 - 18:54:19 ---------------------------------------- Vediamo... potresti usare il blocco "Read Line" per leggere tutta la riga di dati e poi separarli usando le funzioni di ricerca delle stringhe (cerchi gli spazi e leggi i caratteri che seguono...). L'importante è che: apri il file (blocco open), leggi il file o ci scrivi sopra, chiudi il file (close). Per una struttura ciclica puoi aprire il file prima di un ciclo while, entrare nel while, leggere o scrivere (magari collegando il tutto a due pulsanti), uscire dal ciclo e chiudere il file. Se nel blocco open non specifichi il percorso del file LabView te lo chiede durante l'esecuzione. ---------------------------------------- AUTORE: 1282 DATA :23/05/2006 - 11:10:05 ---------------------------------------- Non riesco ad uscirmene... il vi in allegato credo sia la strada giusta ma non riesco a completarlo. Se potete darmi una mano: ho scritto stesso nel codice dov'è il problema che non riesco a risolvere. Spero qualcuno mi dia una mano e ringrazio tutti anticipatamente Ciao ---------------------------------------- AUTORE: 680 DATA :23/05/2006 - 13:13:57 ---------------------------------------- ecco qua...... ciao... ---------------------------------------- AUTORE: 482 DATA :23/05/2006 - 13:18:03 ---------------------------------------- Io ti consiglio di usare "REad from spreadsheet file" Una funzioncina di numero (si trova nella palette nella sezione dei file) che tipermette di leggere tutti i valori presenti nel file senza bisogno di fare nessun ciclo e ti restituisce l'array di valori \":wink:\" ---------------------------------------- AUTORE: 1282 DATA :23/05/2006 - 13:53:21 ---------------------------------------- avevo già fatto qualcosa del genere (poi completavo con un potenziometro per la frequenza e visualizzavo su grafico) ma così facendo non ho alcuna possibilità di tener conto di un eventuale errore nella convenzione con cui è scritto il file? ---------------------------------------- AUTORE: 1282 DATA :23/05/2006 - 16:30:56 ---------------------------------------- Secondo voi non è propriopossibile corregere il vi che ho postato prima per farlo funzionare nel modo desiderato? io credo non sia difficile partendo da quella base ma c'è qualche conversione che non so fare o non so che. P.S. Ma l'EOF come si indica se voglio utilizzarlo come costante? Aspetto una vostra risposta, ho quasi termintato il progetto che dovevo fare e purtroppo se non completo questo blocco ho un intero subvi che non va Ciao e grazie \"8)\" ---------------------------------------- AUTORE: 645 DATA :24/05/2006 - 18:04:29 ---------------------------------------- Ti allego un VI che legge i valori presenti nel file di testo. Inoltre ti segnala dopo quante posizioni si trova la fine del file. Secondo me potresti usare semplicemente il blocco di lettura linea: per una gestione particolare dell'errore dipende cosa devi fare. Se l'apertura va a buon fine non ci dovrebbero essere altri errori importanti (in lettura). L'indicazione della posizione della fine dati può tornarti utile? Fammi sapere... ---------------------------------------- ================================================================================ realizzazione scada ================================================================================ AUTORE: 1299 DATA :23/05/2006 - 16:08:15 ---------------------------------------- CIAOA TUTTI, CERCO AIUTO PER LA REALIZZAZIONE DI UNO SCADA. USO PLC SIEMENS S7 200 CON CPU 224 E LO DOVREI INTERFACCIARE CON UN PROGRAMMA IN LABVIEW. hO SEGNALI ANALOGICI E DIGITALI. GRAZIE MILLE ---------------------------------------- AUTORE: 247 DATA :23/05/2006 - 16:49:40 ---------------------------------------- Ciao, spiegati meglio o limita il campo di "aiuto" perchè così sembra un'offerta di lavoro... \":D\" ! BYE. ---------------------------------------- AUTORE: 1299 DATA :24/05/2006 - 13:57:27 ---------------------------------------- no apollon offerta di lavoro non è \":P\". io ho dei segnali digitali e analogici che li faccio acquisire da un plc siemens s7-200 cpu 224. bene cerco come fare a far comunicare plc to labview. e labview to plc. non conososco nulla di labview e poco di siemens... ---------------------------------------- AUTORE: 660 DATA :18/07/2006 - 22:33:17 ---------------------------------------- Per quello che ne so, anche se non è molto, credo che tu abbia bisogno di utilizzare l'OPC server per far colloquiare LV con il PLC. Ciao ---------------------------------------- AUTORE: 748 DATA :21/07/2006 - 00:21:31 ---------------------------------------- Ciao, non ricordo a memoria se il PLC S7 abbia qualche scheda di comunicazione preinstallata (ma ne dubito). In genere sei tu che decidi con che protocollo vuoi fare dialogare il plc con il mondo esterno (profibus, modbus, Canopen, etc) collegandolo all'apposito modulo. Le soluzioni al tuo problema possono essere diverse e hanno diversi costi: Compri una scheda di comunicazione per il PLC con protocollo proprietario (ad esempio profiBus), compri una scheda Profibus per Pc dalla NationalInstruments con i realtivi OPC servers e fai comunicare PC e PLC. Il vantaggio di questa soluzione è che non ti devi programmare il linguaggio profibus dal momento che se ne occupa l'OPC server lo svantaggio è che le schede profibus della NI costano un occhio. La seconda soluzione consiste nel comprare una scheda ethernet per pc (costo irrisorio) e una scheda di comunicazione Modbus per il PLC (costo contenuto) e utilizzare la rete ethernet per il dialogo tra PC e PLC Il vantaggio di questa soluzione sono i costi molto contenuti, il fatto che usi una banalissima rete ethernet e la semplicità/scalabilità del linguaggio usato lo svantaggio è che devi programmarti il protocollo Modubus per la comunicazione (a meno di comprarsi qualche libreria già preconfezionata) Mark ---------------------------------------- ================================================================================ Local Variable sv Sequence Local ================================================================================ AUTORE: 997 DATA :23/05/2006 - 20:11:53 ---------------------------------------- Ciao, volevo sapere quale differenze esiste (se esiste) nell'utilizzo fra due sequenze di local variables e sequence local per riportare un valore. Grazie, Ale ---------------------------------------- AUTORE: 4 DATA :23/05/2006 - 22:33:42 ---------------------------------------- la differenza è che il valore della variabile locale è accessibile in tutto il VI in cui viene utilizzata mentre la seq local solo all'interno della sequenza, inoltre quest'ultima permette a un solo "attore" di scrivere il valore e atutti gli altri di leggerlo la locale non si fà invece problemi di questo tipo. Ciao, ---------------------------------------- AUTORE: 997 DATA :23/05/2006 - 22:52:41 ---------------------------------------- Quindi dal punto di vista delle prestazioni (velocità, memoria, ecc.) se da una sequenza all'altra passo i valori con le variabili locali anzichè con le "sequence" non cambia nulla? Ale ---------------------------------------- AUTORE: 4 DATA :24/05/2006 - 08:23:02 ---------------------------------------- invece cambia, una local ha prestazione peggiori perchè coinvolge anche il front panel durante le operazioni di lettura\scrittura del valore inoltre ogni local che piazzi nel tuo VI è una duplicazione dell'area di memoria contenente il dato e non un riferimento a questo come succede per le sequence local. Ciao, ---------------------------------------- AUTORE: 997 DATA :24/05/2006 - 08:39:45 ---------------------------------------- [quote:ly35r8o8]invece cambia[/quote:ly35r8o8] purtroppo lo sospettavo... [quote:ly35r8o8]una local ha prestazione peggiori perchè coinvolge anche il front panel durante le operazioni di lettura\scrittura del valore[/quote:ly35r8o8] questo avviene anche se siamo in un subvi che non "mostra" il front panel? [quote:ly35r8o8]ogni local che piazzi nel tuo VI è una duplicazione dell'area di memoria contenente il dato e non un riferimento a questo come succede per le sequence local.[/quote:ly35r8o8] verificherò le prestazioni. Grazie, Ale ---------------------------------------- ================================================================================ Caratteri come in C ================================================================================ AUTORE: 927 DATA :24/05/2006 - 09:30:59 ---------------------------------------- C'è un modo semplice per fare l'equivalente di for (x='a'; x<='z'; x++) ... O almeno un modo per convertire singoli caratteri da/a codice ASCII? ---------------------------------------- AUTORE: 13 DATA :24/05/2006 - 09:57:17 ---------------------------------------- Puoi utilizzare la funzione String to byte array contenuta nella palette numeri ----- conversione. spero di esserti stato di aiuto ---------------------------------------- AUTORE: 1050 DATA :24/05/2006 - 12:20:06 ---------------------------------------- Ecco un esempio. Forse ci sono sistemi + veloci. Ciao ---------------------------------------- AUTORE: 482 DATA :24/05/2006 - 12:45:09 ---------------------------------------- L'equivalente in Labview, non sapendo cos adevi fare di preciso, potrebbe essere questo! \":wink:\" ---------------------------------------- AUTORE: 482 DATA :24/05/2006 - 12:48:57 ---------------------------------------- Sorry, il vi di prima era sbagliato! ---------------------------------------- AUTORE: 927 DATA :24/05/2006 - 12:53:18 ---------------------------------------- Ok direi che van bene entrambi i metodi. Il Byte Array to String c'era anche sotto String Functions... non m'ero accorto... Il type cast l'avevo provato ma non avevo pensato di specificare il tipo U8 alla costante! ---------------------------------------- AUTORE: 927 DATA :24/05/2006 - 12:57:07 ---------------------------------------- Gepponline, nel tuo VI i caratteri DOVE sarebbero, di grazia? \":roll:\" ---------------------------------------- AUTORE: 482 DATA :24/05/2006 - 13:06:23 ---------------------------------------- sorry..non avevo notato A e Z come caratteri \":(\" ---------------------------------------- AUTORE: 482 DATA :24/05/2006 - 13:16:40 ---------------------------------------- mq bast arimpiazzare i numerici con dei caratteri e al +1 si sostituisce l'esempio di antea. Cambia che io ho utilizzato la funzione inrange anzichè utilizzare direttamente la condizione del case. ---------------------------------------- ================================================================================ PLS HELP ================================================================================ AUTORE: 1302 DATA :24/05/2006 - 15:44:10 ---------------------------------------- a)Create a VI. Project3.vi that writes a 1-D array of three random numbers(between 0 to 100) and their average every 1 second to a file Proj3data.dat continuously in ASCII format with one digit after floating point, for 10 seconds. b) Build a VI Proj3databack.vi which reads the file you created (that is, Proj3data.dat). Get the original data back in an arry indicator. pls also send me: physics.fizik@gmail.com ---------------------------------------- AUTORE: 645 DATA :24/05/2006 - 18:12:29 ---------------------------------------- Hi, there is an example of this program in directory "example" of LabView. It is called "Read data file". ---------------------------------------- ================================================================================ while loop ================================================================================ AUTORE: 1266 DATA :24/05/2006 - 19:53:58 ---------------------------------------- Ho visto che esiste un loop che è possibile comandare esternamente..cioè posso impostare io ogni quanto tempo fargli incrementare la variabile i. Il mio problema è che il valore temporale che mi serve lo devo generare dentro il loop e quindi non riesco a collegare il tutto. Qualcuno sa aiutarmi?oppure non posso farci nulla? ---------------------------------------- AUTORE: 680 DATA :24/05/2006 - 20:11:27 ---------------------------------------- le variabili locali fanno proprio al caso tuo.... ---------------------------------------- AUTORE: 1266 DATA :24/05/2006 - 20:37:42 ---------------------------------------- ok grazie,ma in che modo? ---------------------------------------- AUTORE: 645 DATA :24/05/2006 - 22:52:36 ---------------------------------------- Puoi usare il normale ciclo while inserendo un blocco di ritardo all'interno: questo blocco accetta in ingresso un valore in millisecondi (o secondi se usi la versione express) e condiziona il ciclo facendo in modo che tra un'esecuzione e la successiva trascorra il tempo specificato. ---------------------------------------- ================================================================================ Calcolo dell' EXOR ================================================================================ AUTORE: 516 DATA :24/05/2006 - 23:48:03 ---------------------------------------- Ciao a tutti Dovrei fare il calcolo dell'exor di una stringa di dati che ricevo dalla seriale , avete mica qualche suggerimento ? Ciao e Grazie Sergio ---------------------------------------- AUTORE: 482 DATA :25/05/2006 - 07:43:18 ---------------------------------------- Ti serve per il calcolo del CRC? ---------------------------------------- AUTORE: 516 DATA :25/05/2006 - 18:56:36 ---------------------------------------- Si esatto Ciao ---------------------------------------- AUTORE: 482 DATA :26/05/2006 - 07:13:05 ---------------------------------------- Questo è il VI che ho realizzato tempo fa per il calcolo del CRC. In ingresso pero' non ho una stringa ma i valori già portati in byte esadecimali. Onestamente non mi ricordo bene la teoria di come va calcolato, l'avevo trovato in internet e in base alle istruzioni avevo realizzato il VI. QUindi prova a dargli un occhiata e magari se trovi un testo delal teoria per calcolarlo potresti postarlo qui \":wink:\" Per i mod. : Si potrebbe inserire nel titolo anche la scritta CRC in modo che in un eventuale ricera venga trovato piu' facilmente? ---------------------------------------- AUTORE: 516 DATA :26/05/2006 - 16:25:02 ---------------------------------------- Ciao Grazie Mille Ora lo scarico e poi ti faccio sapere e se viene bene lo poso molto volentieri Ciao Sergio ---------------------------------------- ================================================================================ HELP ================================================================================ AUTORE: 487 DATA :25/05/2006 - 08:06:26 ---------------------------------------- Ciao a tutti, avrei intenzione di sviluppare tutta la parte di help di un programma, ma sinceramente non saprei da dove iniziare. Qualcuno ha esperienza in merito? Saprebbe darmi qualche dritta? Grazie ---------------------------------------- ================================================================================ Tabelle su FPGA ================================================================================ AUTORE: 1303 DATA :25/05/2006 - 09:10:08 ---------------------------------------- Ciao! Mi servirebbe una mano per implementare una tabella (o qualcosa di simile) su FPGA. Sto usando l'FPGA per controllare un iniettore di un motore e, in base all'apertura dell'accelleratore (ingresso analogico) e al n° di giri del motore (ingresso digitale), devo ottenere il tempo di iniezione (uscita digitale). Ho già una tabella (dati ottenuti in maniera sperimentale) che associa i due ingressi all'uscita, come si può inserire su un VI che gira su FPGA? Se qualcuno ha già risposto a domande del genere o se c'è qualcosa di attinente sul sito della NI fatemi sapere! [b:3t6a7aoo]Grazie![/b:3t6a7aoo] Luigi ---------------------------------------- AUTORE: 4 DATA :12/06/2006 - 08:51:36 ---------------------------------------- Ciao una tabella su FPGA è in sostanza un array 2d niete di più, il "problema" è che devi conoscere la dimensione della tabella a priori e allocare la dimensione in maniera statica, questo vuol dire che devi creare un array a dimensione fissa all'inizion del tuo sw. Ciao, ---------------------------------------- ================================================================================ Labview 7 demo ? ================================================================================ AUTORE: 1165 DATA :25/05/2006 - 09:35:51 ---------------------------------------- Qualcuno per favore sa dirmi dove posso trovare e scaricare la versione demo del Labview 7? Ho scaricato la versione 8 dal sito NI, ma la 7 non la trovo più. Sarebbe eventualmente ben gradito anche un invio tramite FTP (il file dovrebbe essere sui 400 MB), o se qualcuno ha il CD e me ne potesse spedire una copia rimborserei i costi di spedizione. Grazie mille in anticipo a chiunque volesse aiutarmi. Ciao, Enrico. ---------------------------------------- ================================================================================ Coordinate dei pixel di una riga sull'immagine ================================================================================ AUTORE: 997 DATA :25/05/2006 - 11:53:27 ---------------------------------------- Ciao, volevo sapere come fare a recuperare le coordinate dei pixel di una linea tracciata dall'utente tramite apposito strumento in un controllo Image Display (Vision). Mi serve per mostrare all'utente la bontà della messa a fuoco valutando la ripidezza del gradino che si genera nel passaggio nero/bianco su un bordo. Grazie, Ale ---------------------------------------- AUTORE: 482 DATA :25/05/2006 - 13:20:48 ---------------------------------------- IMAQ wind get ROI ti restituisce le caratteristiche dell'are aselezionata dall'utente. Da li puoi ricavarti i pixel che compongono la linea,trasformare la ROI in linea e mandarla in pasto alla Line profile che ti premette di visualizzare poi l'andamento dei contrasti sulla linea. ---------------------------------------- AUTORE: 997 DATA :25/05/2006 - 13:43:34 ---------------------------------------- Grazie ! ---------------------------------------- AUTORE: 997 DATA :25/05/2006 - 13:52:59 ---------------------------------------- Abbi pazienza ancora. Io non uso una finestra per visualizzare l'immagine, ma il controllo Image Display. Ho pensato quindi di utilizzare il vi MaskToROI, ma non sono sicuro che sia la scelta giusta. Avrei potuto recuperare le info sulla ROI direttamente dalla property, ma qui nasce un piccolo inghippo: - l'utente può selezionare una ROI (rettangolare nel mio caso) per definire la zona dell'immagine di interesse - l'utente può tracciare la linea di cui sopra Ora poichè l'immagine è il risultato di un'acquisizione da una telecamera, il setup viene effettuato solo la prima volta e ogni volta che la ROI cambia. Non corro il rischio di veder la mia immagine diventare una "fettina"in corrispondenza di un'azione che certo non voleva selezionare una regione di interesse? Non c'è un modo per sapere quale strumento sto usando, così da sapere se devo o non devo aggiornare la "vera" ROI? Grazie, Ale ---------------------------------------- AUTORE: 482 DATA :25/05/2006 - 16:03:36 ---------------------------------------- certo che c'e' il metodo! Dal controllo, crea un invoke node e associagli il metodo "Get last Event" e ti restituisce il tool utilizzato, il tipo di azione intrapresa e le coordinate. In base al tool selezionato gli farai fare quello che vuoi \":wink:\" ---------------------------------------- ================================================================================ Trovare alcuni caratteri in una stringa ================================================================================ AUTORE: 645 DATA :25/05/2006 - 14:05:11 ---------------------------------------- Forse lo sapete già ma io mi ci sono scontrato e lo riporto: se usate il blocco "Match Pattern" per cercare caratteri in una stringa incontrate qualche problema quando cercate il punto ".". Infatti questo simbolo fa parte dei caratteri speciali (http://zone.ni.com/reference/en-XX/help ... MatchPatt/). Per cercare il punto è sufficiente specificare come stringa da cercare [.] anzichè il solo punto. Le parentesi quadre permettono di cercare i caratteri contenuti con la congiunzione "or". In questo caso c'è solo il punto e LabView riesce a trovarlo. ---------------------------------------- AUTORE: 748 DATA :30/05/2006 - 11:59:28 ---------------------------------------- Si può anche utilizzare il valore esadecimale del punto (ossia 2E) nella forma \2E ---------------------------------------- ================================================================================ cliccare dentro in un array indicator ================================================================================ AUTORE: 838 DATA :26/05/2006 - 07:24:43 ---------------------------------------- come faccio a ottenere il valore cliccato? esempio: ho un array indicator di 10 stringhe visualizzate sul front panel l'utente clikka sullaa 3 riga (in questo caso non succede niente perchè è indicator) con l'event structure riesco a vedere che mi clikka sull'array, ma non riesco a capire su quale riga ha clikkato!! al massimo rilevo le coordinate del mouse, ma non me ne faccio niente qualcuno ha già affrontato il problema? GARZIE MILLE \":D\" ---------------------------------------- AUTORE: 645 DATA :26/05/2006 - 07:30:03 ---------------------------------------- Potresti usare una lista anzichè un array dy stringhe: tra i property node della lista ce n'è uno che ti segnala il valore selezionato dall'utente. ---------------------------------------- AUTORE: 1050 DATA :26/05/2006 - 08:11:05 ---------------------------------------- Ciao, usando l'array come indicator ho potuto solo estrarre il valore dell'elemento selezionato ma non direttamente l'indice. se può servirti vedi l'esempio. ciao ---------------------------------------- AUTORE: 838 DATA :26/05/2006 - 08:22:06 ---------------------------------------- grazie dei consigli ora provo quello che mi avete detto \":D\" ---------------------------------------- ================================================================================ local variable ================================================================================ AUTORE: 1266 DATA :27/05/2006 - 12:21:54 ---------------------------------------- volevo chiedere se qualcuno sa dirmi se è possibile associare un valore ad una variabile solo in determinate condizioni durante l'esecuzione del programma ---------------------------------------- AUTORE: 645 DATA :27/05/2006 - 23:35:29 ---------------------------------------- Puoi associare il valore dall'interno di una struttura case... Per associare un valore ad una variabile locale clicchi con il tasto destro sulla variabile e selezioni la voce "change to write". ---------------------------------------- AUTORE: 1266 DATA :28/05/2006 - 13:15:43 ---------------------------------------- quindi pur essendo la copia di un indicatore, ad esempio, io posso assegnare un valore alla variabile senza che cambi il valore dell'indicatore da cui l'ho creata? ---------------------------------------- AUTORE: 645 DATA :28/05/2006 - 18:04:31 ---------------------------------------- Cioè tu hai bisogno di usare un certo valore (A) per una variabile per fare i calcoli mentre l'indicatore associato visualizza un altro valore (B)? ---------------------------------------- AUTORE: 1266 DATA :29/05/2006 - 12:48:16 ---------------------------------------- praticamente si', o meglio questo succede nella prima iterazione del ciclo e poi basta ---------------------------------------- AUTORE: 645 DATA :29/05/2006 - 12:58:26 ---------------------------------------- Ti allego un VI nel quale i valori assunti dall'indicatore e dalla variabile non coincidono. Ci sono alcuni commenti: prova a leggerli e poi fammi sapere se più o meno si avvicina a quello che serve a te. ---------------------------------------- AUTORE: 1266 DATA :30/05/2006 - 12:41:25 ---------------------------------------- ok appena guardo te lo dico, intanto avrei un'altra domanda..ho un programma con un loop, quando schiaccio il tasto di stop il loop si ferma, ma il programma rimane bloccato..in pratica devo chiuderlo e riavviarlo perche'? ---------------------------------------- AUTORE: 645 DATA :30/05/2006 - 15:40:32 ---------------------------------------- Puoi postare un'immagine del Block Diagram almeno per quanto riguarda la parte del loop? ---------------------------------------- ================================================================================ Videosorveglianza remota ================================================================================ AUTORE: 807 DATA :28/05/2006 - 10:06:22 ---------------------------------------- Salve a tutti, vorrei conoscere i vantaggi di un sistema di videosorveglianza remota in ambiente LabVIEW rispetto ai vari software già esistenti. Su google ho trovato una soluzione open source in ambiente Java: http://opentss.altervista.org/page.php?14 Grazie anticipatamente ---------------------------------------- AUTORE: 247 DATA :29/05/2006 - 08:50:56 ---------------------------------------- Ciao, Dipende da cosa intendi per videosorveglianza remota, se intendi: 1- Possibilità di ricevere uno streaming video dell'area di interesse in qualsiasi posto tu voglia per poter poi intervenire "di persona" in caso di pericolo: Meglio sicuramente Java che ti consente di utilizzare l'applicazione da praticamente ogni client utilizzando applet e tecnologie simili e perchè sicuramente trovi qualcosa di già fatto. 2- Possibilità di ricevere uno streaming video dell'area di interesse in una postazione determinata per poter poi intervenire a distanza, ad esempio comandando chiusura porte, allarmi etc: Preferirei LabVIEW per la maggiore facilità di interazione con l'hardware, inoltre avendo un'unica o poche postazioni di ricezione, se non nessuna se utilizzi l'analisi dell'immagine per gestire l'allarme, puoi tranquillamente installare una piccola applicazione LV ed il runtime di LV su ogni client. Se infine intendi personalizzare l'applicazione scegli semplicemente il linguaggio che ti è più familiare, risparmi sicuramente. BYE. ---------------------------------------- ================================================================================ Unbundle by Enum ================================================================================ AUTORE: 1168 DATA :29/05/2006 - 08:34:09 ---------------------------------------- Salve a tutti! In un sub-VI avrei bisogno di avre un unbundle by name gestito da un unum. In pratica l'elemento del cluster da estrarre è selezionabile col controllo Enum. Avete qualche idea di come rpocedere? Grazie P. ---------------------------------------- AUTORE: 1050 DATA :30/05/2006 - 08:22:26 ---------------------------------------- Ciao, se ho capito bene il tuo enum contiene il "nome" (label) dei singoli controlli da estrarre dal cluster; se è così potresti: 1. dall'enum usando la vi "format into string" estrai la stringa selezionata 2. dal property node del cluster estrai l'array di "reference" dei singoli elementi del cluster 3. con un loop sull'array di reference estrai la label ed il value del singolo elemento 4. confronti la label con la stringa estratta dal tuo enum e se TRUE estrai il value del tuo controllo. 5. il punto ora è: il value è VARIANT quindi per ricostruire il "tipo" devi usare la vi "variant to data" conoscendo però il type...se gli elementi del tuo cluster sono tutti dello stesso tipo non c'è problema, usi una costante altrimenti.. \":roll:\" ..ci risentiamo e vediamo come proseguire! ---------------------------------------- ================================================================================ color ramp ================================================================================ AUTORE: 73 DATA :31/05/2006 - 09:58:21 ---------------------------------------- Avrei una banale richiesta grafica: uso il color ramp x riuscire a capire visivamente se la temperatura di alcuni anelli è arrivata al livello di guardia xò il color ramp ha forma quadrata. E' vero che svolge comunque la sua funzione ma per un puro sfizio mi sarebbe piaciuto averlo di forma o corona circolare o almeno tondo Sapete se è possibile? Ciao e Grazie ---------------------------------------- AUTORE: 73 DATA :31/05/2006 - 14:11:23 ---------------------------------------- Sono giunto a un'alchimia: Usare un booleano tondo e fargli cambiare colore in base a come cambia il color ramp; ok x il property node che prende e dà il colore x il booleano ma voi sapete qual'è il property node con cui si può leggere che colore ha il quadrato del color ramp? Io non lo trovo \":roll:\" ---------------------------------------- AUTORE: 482 DATA :31/05/2006 - 15:23:34 ---------------------------------------- devi usare la proprietà RGB Value \":wink:\" ---------------------------------------- AUTORE: 73 DATA :31/05/2006 - 15:29:34 ---------------------------------------- Ok fino lì...... è che non la trovo ........mandami il percorso del menu a tendina del property node premetto che uso labview 6.0 non è che la hanno inserita dopo? Grazie cmq ---------------------------------------- AUTORE: 73 DATA :31/05/2006 - 16:15:19 ---------------------------------------- Io ci sono riuscito così e per chiunque fosse interessato allego il vi: è un anello che passa da verde fino al giallo e quindi fino al rosso in dipendenza di un controllo numerico che passa da 0 a 300(il giallo è intorno a 100), questi parametri sono importanti nel vi xchè da questi dipende il tipo di colore e quando viene a comparire Ciao a tutti e grazie per l'aiuto che mi date sempre!!!! \":wink:\" ---------------------------------------- AUTORE: 680 DATA :31/05/2006 - 19:53:32 ---------------------------------------- io ho creato un anello come delpi però utilizzando la base dei colori del color ramp... ciao... ---------------------------------------- AUTORE: 482 DATA :01/06/2006 - 07:23:41 ---------------------------------------- [quote="delpi":n7cpdyfk] premetto che uso labview 6.0 non è che la hanno inserita dopo?[/quote:n7cpdyfk] Potrebbe essere visto che è nella prima tendina come ultimo valore in basso, non bisogna cercarlo granchè...questo nella versione 7.1 \":roll:\" ---------------------------------------- AUTORE: 73 DATA :01/06/2006 - 08:50:29 ---------------------------------------- gepponline potresti almeno salvarlo in 7.0 così lo posso guardare con il pc di un amico grazie ---------------------------------------- AUTORE: 680 DATA :01/06/2006 - 12:39:46 ---------------------------------------- se vuoi ecco l'immagine del pannello frontale e del diagramma a blocchi... ciao.... ---------------------------------------- ================================================================================ diagramma X-Y con limiti di bonta ================================================================================ AUTORE: 1308 DATA :31/05/2006 - 17:17:19 ---------------------------------------- ciao a tutti, salto subito al problema; ho un diagramma xy che interpola due segnali, ho bisogno di costruire 2 segmenti torici che dovrebbero simulare la tolleranza superiore e inferiore entro la quale dovrebbe generarsi l'interpolazione xy, naturalmente quando un punto dell interpolazione interseca una spezzata teorica deve segnalarmi l'errore. io oggi ci ho gia perso 8 ore, quacuno riesce in pochi minuti ? \":-)\" ciao e grazie comunque buon lavoro! ---------------------------------------- AUTORE: 645 DATA :31/05/2006 - 17:46:40 ---------------------------------------- Ti allego un qualcosa che forse può essere un punto di partenza. Nel mio caso ho creato un segnale e l'ho confrontato con due valori costanti. Nel tuo caso al posto dei valori costanti devi inserire i valori assunti dalle curve limite. Considerando tutte le curve come array è sufficiente confrontare i valori in posizioni corrispondenti. ---------------------------------------- AUTORE: 1308 DATA :31/05/2006 - 19:19:32 ---------------------------------------- primaditutto grazie per l'alegato,è certo che io sono meno di un pivello, ma o non mi sono spiegato oppure credo che io mi debba arrendere.... ho allegato un immagine magari vi puo permettere di capire meglio cio che non sono riuscito a spiegare (forse) ( siam partiti tutti dal nulla..) ---------------------------------------- AUTORE: 645 DATA :31/05/2006 - 21:58:37 ---------------------------------------- Ti allego un VI per disegnare più grafici nello stesso XY (ci sono due segnali: modificando il primo vettore si modifica anche il secondo perchè sono collegati e l'asse x dipende dalle dimensioni dei vetttori; i segnali di soglia sono in forma vettoriale e possono essere modificati liberamente). Ho provato a giocare con i "Property Node" del grafico ma non sono riuscito in alcun modo a far colorare nel grafico le zone fuori dai limiti. Per il momento vengono controllati i segnali e in caso di sorpasso dei limiti un indicatore segnala la condizione (vedi uno sfarfallio del led). Se qualcuno ha suggerimenti... ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 08:20:35 ---------------------------------------- è bello cvedere come un aiuto su un forum ti puo dare il sorriso al risveglio, cosi come è altrettanto triste scoprire quando non riesci ad adattarlo alle tue esigenze... MagicBotolo, ci siamo quasi, perfetti i campi di tolleranza il mio problema è che X è un canale acquisito dalla scheda, io acquisisco 2 segnali Ai1 e Ai2 l'interpolazione di questi 2 segnali mi danno la curva che deve stare entro i limiti. ( una birra è gia sul tuo conto) ciao Andrea ---------------------------------------- AUTORE: 113 DATA :01/06/2006 - 11:24:52 ---------------------------------------- Ciao Andrea, visto che il segnale è generato da coppie di valori (x,y), il confronto rispetto ai limiti devi farlo con il modulo del vettore di ciascun punto rispetto ai moduli dei vettori dei limiti. \":o\" A spiegarlo è un casino, dai un'occhiata all'esempio allegato, sperando sia chiaro... \":wink:\" Nel for loop si genera il segnale e i limiti, tutti con coppie di valori (x,y). Si calcola il modulo dei vettori di tutti i punti (teorema di Pitagora) Si verifica su il modulo del segnale è inferiore a entrambi i moduli dei limiti. Spero di aver capito e in qualche modo risolto il tuo problema! Alberto ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 11:45:52 ---------------------------------------- HAHAHAHAH MA VOI MI VOLETE FARE UNO SKERZO !? è lo scotto che deve pagare il rughi ? quando ho messo in funzione il VI, ho detto, anche qua sembra che andiamo molto bene.... quando ho aperto quello a blocchi mi si è fermato il cibo in gola, visto che anche se sono in pausa pranzo sto navigando per cercare manuali o esempi tra una forchettata e l'altra. ora sono a casa appena torno in ufficio provo ad allegare il mio VI, forse non vi aiutera molto.... ma finche non mi mandate a quel paese io ci riprovo. ciao GRAZIE! ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 12:25:24 ---------------------------------------- rieccomi, allego immagine del desktop in modo da rendere meglio l'idea di come risulta la curva che acquisico ( interpolazione can ai1 e ai2 ) allego anche il mio tentativo di progetto la fase incriminata è in basso a destra, cosa ne pensate del mio modo di costruire i limiti inferiori e superiori ? immagino possa restare il problema di sincronixxare l'asse x. ( cmq ho gia un certo cerchio alla testa) ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 12:26:56 ---------------------------------------- ops ---------------------------------------- AUTORE: 645 DATA :01/06/2006 - 12:27:27 ---------------------------------------- Ehm... gli allegati? ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 12:31:22 ---------------------------------------- non capisco comemai non allega... riprovo ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 12:32:19 ---------------------------------------- uff ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 12:34:01 ---------------------------------------- scusatemi ---------------------------------------- AUTORE: 1308 DATA :01/06/2006 - 12:46:22 ---------------------------------------- era piu di 250k.... ---------------------------------------- AUTORE: 1308 DATA :06/06/2006 - 10:36:03 ---------------------------------------- nel grafico XY in rosso sono rappresentati i limiti di tollerana cosrtuiti con gli ARRAY Y, ARRAY Y2 e ARRAY X, in verde la curva acquisicta che è l'interpolazione dei segnali can a e can b (select signals 3 e select signal 4). Come posso "sincronizzare" i lalori di ARRAY X con i valori sdi select signals 4 ? ---------------------------------------- ================================================================================ creazione di un installer su Labview PDA ================================================================================ AUTORE: 591 DATA :05/06/2006 - 09:35:24 ---------------------------------------- Ciao a tutti, vorrei avere informazioni su come creare con Labview PDA un installer per fornire l'applicazioni per PDA a terzi . Ho provato a vedere sul sito NI ma mi rimanda o a microsoft (credo ci sia da acquistare qualcosa) o a un sofware gratuito, EZSETUP, che pero' richiede la presenza di un file .ini, di un file .cab e di altri file che comunque non dovrebbere essere particlarmenti difficili da implementare. Se qualcuno ha gia' avuto eperienza a riguardo e la volesse condividere mi aiuterebbe tantissimo avendo tempi stretti. Ciao ---------------------------------------- AUTORE: 1528 DATA :03/11/2006 - 14:18:55 ---------------------------------------- nessuno lo sa...interesserebbe anche a me... Ho creato l'.exe ma nn sono come creare l'msi... ---------------------------------------- AUTORE: 1528 DATA :03/11/2006 - 18:45:52 ---------------------------------------- Ci sono riuscito...un po' una follia! A breve vedrò di fare una mini guida se qualcuno ne avesse bisogno ---------------------------------------- ================================================================================ sbloccare un VI ================================================================================ AUTORE: 1313 DATA :05/06/2006 - 17:03:02 ---------------------------------------- Salve ragazzi, mi hanno dato un VI da modificare(devo sostituire il vecchio daq con lo USB-6008) ed ho scoperto che un subVI non mi permette di vedere il block diagram perchè è disabilitato. sapreste dirmi come fare???? Grazie in anticipo \":wink:\" \":wink:\" ---------------------------------------- AUTORE: 129 DATA :05/06/2006 - 20:35:11 ---------------------------------------- Dal menu property/security, devi spuntare unlocked, nel caso il VI sia in locked(no password. Se invece ha la password, mi sa che non riesci a tirarlo fuori. ---------------------------------------- AUTORE: 1313 DATA :06/06/2006 - 10:46:49 ---------------------------------------- Grazie per la risposta, ma era già unlocked. Quindi essendo un programma abbastanza vecchio mi vengono due domande: 1)E' possibile che non avendo il service pack 2 mi dia problemi?? 2)Oppure l'applicazione girava su win2000/nt e simili, usando il runtime engine V5.XX. Quindi è possibile che non avendo quella versione di runtime mi dia qualche problema?? Oppure accetto tutti i consigli ?? \":cry:\" ---------------------------------------- AUTORE: 724 DATA :06/06/2006 - 11:19:16 ---------------------------------------- Esiste la possibilità che il vi sia stato salvato senza diagramma. In questo caso penso che senza i sorgenti originali non si possa far niente ---------------------------------------- AUTORE: 1313 DATA :06/06/2006 - 13:06:52 ---------------------------------------- grazie mille, penso che sia come dici , visto che mi hanno passato l'exe ed il pacchetto con i "sorgenti". Va bbè per fortuna/sfortuna questo subvi è uno di quelli da modificare. \":wink:\" ---------------------------------------- ================================================================================ Aiuto per valutazione e consigli su progetto ================================================================================ AUTORE: 1282 DATA :06/06/2006 - 00:11:45 ---------------------------------------- Ciao a tutti!!! Spero qualcuno abbia un po' di tempo da perdere: ho bisogno di qualche dritta. Il file in allegato è un progetto di un generatore di segnale canonico ed arbitrario (progetto.vi) che produce l'onda visualizzata a video in uscita su una scheda DAQNI. Gli altri file contenuti nell'archivio sono i subVi mentre in file di testo per il momento va messo sotto C:\ per un corretto funzionamento. Volevo una valutazione da qualcuno sicuramente più esperto di me, la soluzione dei vari case non dovrebbe essere la migliore ma sembra comunque funzionale. In più volevo un aiuto: io ho provato il progetto in laboratorio su una PCI-6024E e volevo sapere su quali altre schede dovrebbe funzionare questo tipo di vi perchè ne ho bisogno per una relazione. Infine volevo sapere se c'era un modo per creare un eseguibile in modo che l'utente generico possa vedere solo il Front Panel ed utilizzarlo senza apportare modifiche. Scusate per lo "sproloquio", spero di essere stato chiaro per chiunque abbia voglia di darmi una mano. Ringrazio anticipatamente tutti!!! Ciao Orlando \"8)\" ---------------------------------------- AUTORE: 645 DATA :06/06/2006 - 10:08:29 ---------------------------------------- La soluzione con i case per la scelta del tipo di segnale è molto comoda e funziona bene. L'unico consiglio che posso darti è quello di impostare qualche valore iniziale per i parametri (per esempio per i parametri di campionamento e per l'ampiezza del segnale). E gestire l'errore nel file "Progetto.vi" scatenato dalla mancanza del file di testo dal quale caricare i dati: se il vi non trova il file non deve continuare a cercarlo ma deve chiedere all'utente dove si trova. Altrimenti il programma va in crash. Allo stesso modo conviene controllare eventuali errori di campionamento (Fcamp>=2 FmaxSegnale). Non saprei dirti esattamente i modelli di scheda che possono essere usate con il tuo programma ma in generale tutte quelle che prevedono un output possono andare bene (considerando eventualmente i valori limite). ---------------------------------------- AUTORE: 1282 DATA :06/06/2006 - 10:30:17 ---------------------------------------- grazie dell'aiuto! eppure io ero convinto che la soluzione dei case non era un gran che ma ora mi sto ricredendo. Per la gestione dell'errore sai darmi qualche indicazione in più, perchè io non c'ho capito molto ed ho solo collegato le funzioni di controllo errore ai vari error out. Ciao e grazie ancora. \"8)\" ---------------------------------------- AUTORE: 1282 DATA :07/06/2006 - 12:39:51 ---------------------------------------- Scusate se vi disturbo ancora sullo stesso progetto ma ho ancora bisogno di aiuto: ho finito le ore di labratorio e non ho più la possibilità di provare il progetto su una scheda. Volevo chiedere a qualcuno che ne aveva la possibilità se la manopola della fase in uscita aveva davvero un effetto o era inutile. ciao e grazie \"8)\" ---------------------------------------- ================================================================================ Scala logaritmica ================================================================================ AUTORE: 1314 DATA :06/06/2006 - 01:00:49 ---------------------------------------- Ciao a tutti!! Volevo chiedere aiuto riguardo un problema su cui sto sbattendo la testa da tempo!!Ho un'array di valori di corrente e li devo graficare lasciando la scelta tra scala logaritmica o lineare all'utente tramite interfaccia!!Avevo pensato all'uso di una struttura Case!!!Ma non ho la più pallida idea di come si possa risolvere il problema della conversione in scala logaritmica!! Vi prego aiutatemi!!! Vi ringrazio in anticipo e mi scuso per la mia ignoranza ma sono ancora alle prime armi!!! ---------------------------------------- AUTORE: 487 DATA :06/06/2006 - 08:04:36 ---------------------------------------- Ciao, spero di aver capito bene il tuo problema. Prova a vedere se ti può servire l'esempio che ti ho allegato ---------------------------------------- AUTORE: 1314 DATA :06/06/2006 - 23:11:53 ---------------------------------------- Grazie mille è più o meno quello che mi serviva comunque mi è servito molto per lavorarci di sopra.. grazie ancora ---------------------------------------- AUTORE: 1314 DATA :08/06/2006 - 23:02:06 ---------------------------------------- Ciao coma!!! Sapresti per caso come posso fare se ad esempio volessi prendere nel caso di campionamento in scala logaritmica 3 campioni per decade e nel caso di scala lineare 1 campione al secondo? Grazie mille!! ---------------------------------------- AUTORE: 487 DATA :09/06/2006 - 07:22:45 ---------------------------------------- Scusa ma non so se ho capito bene. Tu stai facendo un'acquisizione di dati e vorresti acquisire 3 campioni al secondo (o per decade) oppure è un'analisi a posteriori su dei dati già acquisiti? In quest'ultimo caso qual'è stata la tua velocità di campionamento durante l'acquisizione? ---------------------------------------- ================================================================================ Test LPT ================================================================================ AUTORE: 1033 DATA :06/06/2006 - 14:35:02 ---------------------------------------- Ciao, dovrei implementare un test per la porta parallela non utilizzando possibilmente hw esterno se non un "tappo". L'idea iniziale era quella di utilizzare lo stesso approccio cella seriale: chiudere il tx sul rx e vedere se trasmetto e ricevo. Come sw ho utilizzato i vi di esempio che fornisce LV7.1, poi ho provato a chiudere il dato0 sul dato1 e variare il dato0 in scrittura e leggere sul dato1 la variazione. Beh, non mi funziona. Se però forzo alto o basso un dato utilizzando una sorgente esterna funziona. Qualcuno a già fatto qualcosa di simile? Grazie, ciao. ---------------------------------------- AUTORE: 1304 DATA :06/06/2006 - 14:58:49 ---------------------------------------- Mmm...così di primo acchito mi viene in mente che la parallela potrebbe inviare segnali basandosi sul fronte, e non sul livello, però sono un pò arrugginito in merito, e non ho sottomano documentazione; se però fosse questo il caso, credo potrebbe bastare un semplicissimo buffer tra i due pin, al limite una rete RC molto volante \":)\" Se però mi son sbagliato, ogni flame è ben accetto! \":D\" A presto, HCL ---------------------------------------- AUTORE: 1304 DATA :06/06/2006 - 16:45:35 ---------------------------------------- No, scusate, mi sa di aver scritta una marea di sciocchezze... \":cry:\" La prossima volta lascio perdere i suggerimenti della fretta, sorry... A presto, HCL ---------------------------------------- AUTORE: 680 DATA :06/06/2006 - 16:56:20 ---------------------------------------- l'argomento porta parallela è stato trattato più volte in questo forum... prova a fare una ricerca con la parola "parallela" .... se non capisci, chiedi pure... ciao.. ---------------------------------------- AUTORE: 645 DATA :06/06/2006 - 17:12:55 ---------------------------------------- Magari può tornare utile: http://www.pctuner.net/php/Articoli/Articolo.php?ID=142 ---------------------------------------- ================================================================================ Interfacciamento strumento ================================================================================ AUTORE: 1314 DATA :06/06/2006 - 23:19:45 ---------------------------------------- Volevo chiedere se possibile un aiuto sull'interfacciamento con lo strumento! Il problema è che ho fatto un programma con labview per controllare un keithley 236. Riesco ad arrivare al bus 488 ma non riesco a parlare con lo strumento! Se qualcuno avesse la soluzione lo ringrazierei a vita!! ---------------------------------------- AUTORE: 645 DATA :06/06/2006 - 23:32:11 ---------------------------------------- Puoi postare un'immagine del tuo Block Diagram? Hai seguito un protocollo di comunicazione? ---------------------------------------- ================================================================================ Read From File ================================================================================ AUTORE: 847 DATA :07/06/2006 - 10:58:11 ---------------------------------------- Ciao io utilizzo il blocco chiamato "Read From Spreadsheet File" ma ogni volta che nel VI inserisco un path o un file errato si ferma il ciclo del VI. Come posso fare per fare un controllo preventivo del file e dare un messsaggio di avvio, oppure far gestire l'errore al sistema operativo? Grazie Ciao ---------------------------------------- AUTORE: 1304 DATA :07/06/2006 - 11:28:12 ---------------------------------------- Beh, prima di leggere effettivamente il file potresti verificare questo esista davvero (ad esempio con un open file); gestendo l'errore puoi stabilire se il path da te inserito è corretto, ed in tal caso processare lo spreadsheet, oppure no. In quest'ultimo caso potresti, per esempio usare un dialog per inserire un nuovo file (e via da capo...) A presto, HCL ---------------------------------------- AUTORE: 847 DATA :07/06/2006 - 13:46:45 ---------------------------------------- OK, ti ringrazio non avevo mai usato sti strumenti ora ho capito come si fa e ho sistemato tutto. Una cosa: è possibile inserire immagini nel dialog? Grazie Ciao ---------------------------------------- ================================================================================ state diagram editor ================================================================================ AUTORE: 1305 DATA :07/06/2006 - 12:38:51 ---------------------------------------- salve a tutti, sono alle prime armi con labview e con grande difficoltà sto facendo un programmino per la gestione di un impianto pilota. Ho usato lo state diagram editor. Da uno stato di check vengono controllati tutti i sensori, la data e l' ora. A seconda delle condizioni che si verificano si passa a uno stato piuttosto che a un altro. Il mio prob è: una volta all' ora devo fare acquisizione di T e P... quindi, CHE COMANDO DEVO METTERE NELLO STATO "CHECK" PER PASSARE ALLO STATO "ACQUISIZIONE" UNA VOLTA ALL' ORA? scusate per la banalità della domanda, ma nn so come fare. Allego la strutt semplificata, se qualcuno può aggiornarla gliene sono grato.... ---------------------------------------- AUTORE: 748 DATA :07/06/2006 - 21:58:54 ---------------------------------------- Ciao, programmare è un pò come cucinare... ognuno ha le sue ricette. A me non piace molto la programmazione a stati che hai fatto per cui ti riporto un VI abbozzato con il ciclo che avrei utilizzato io per risolvere il problema. Nella parte superiore del ciclo viene eseguita la lettura di tutti i sensori ed in base alla loro lettura viene eseguita un'azione. Tale lettura viene effettuata ogni 1000 ms perchè il temporizzatore a lato è impostato su tale valore. Sotto c'e' l'acquisizione della P e T solo quando sono trascorsi 3.600.000 ms (1 ora) dalla lettura precedente. Immagino che questa seconda parte faccia inorridire molti programmatori (e farebbero bene ad inorridire) ma è un modo semplice per fare una lettura "circa ogni ora" (questo sistema accumula errori dell'ordine dei secondi man mano che passano i giorni) senza ricorrere ad una programmazione più avanzata Mark ---------------------------------------- ================================================================================ Personalizzare le strutture ================================================================================ AUTORE: 487 DATA :08/06/2006 - 08:10:21 ---------------------------------------- Ciao a tutti, ho letto l'articolo di Ale e Nicola sulle specifiche formali di programmazione e devo dire che l'ho trovato molto interessante: riuscire a standarizzare il più possibile il metodo di programmazione renderebbe più facilmente leggibili i diagrammi sviluppati da altri. Il mio sforzo, dunque, è stato quello di cercare di seguire le linee guida presentate nell'articolo. Per questo motivo mi chiedevo se esiste la possibilità di personalizzare i colori delle strutture (While Loop, Case, ecc.) in maniera da non doverle colorare ogni volta che vengono inserite nel diagramma. Qualcuno saprebbe darmi qualche suggerimento? ---------------------------------------- AUTORE: 247 DATA :08/06/2006 - 13:37:10 ---------------------------------------- Ciao, sarebbe molto interessante una colorazione un pò più indicativa direttamente in partenza...cmq non ne ho ancora sentito parlare. Piuttosto in qualche vecchio post di Ale914, che ti invito a cercare, veniva proposta la colorazione automatica del block diagram sfruttando i riferimenti agli oggetti del BD recuperati da un VI dimenticato aperto da NI (vedi [url=http://www.ilvg.it/forum/viewtopic.php?t=271:4guye518]Ecco come generare codice LV programmaticamente[/url:4guye518]), quindi in pratica la colorazione la puoi anche realizzare in modo automatico ogni tot piuttosto che colorare tutto a mano ogni volta... BYE. P.S. se non erro Ale914 non era riuscito a trovare un modo per colorare automaticamente soloamente il bordo del while loop! \":D\" ---------------------------------------- AUTORE: 487 DATA :08/06/2006 - 15:24:44 ---------------------------------------- Grazie Apollon per la risposta. Avevo già visto il post di Ale, ma purtroppo non ho capito come fare ad utilizzare tutte quelle informazioni. In realtà speravo che qualche opzione già presente in Labview mi consentisse di ottenere le personalizzazioni desiderate, ma visto che tu mi confermi che non è così, continuerò a fare tutto manualmente (con un po' di pazzienza!!!). ---------------------------------------- AUTORE: 4 DATA :08/06/2006 - 16:30:23 ---------------------------------------- Ciao 1 il famoso tool di colorazione non è ancora pronto visto che l'ho abbandonato in quanto presentava diversi prolemi (non colora i bordi delle strutture... insostenibile \":wink:\" ) 2 esiste un trick per fare delle strutture colorate e trovarsele pronte all'uso... fai così: - crea un nuovo vi e ci piazzi per es. un while e coloralo a tuo gusto, io faccio bordo rosso e interno grigio ma sono solo convenzioni mie. - ricorda di tenere il loop piccolo - salva il vi - labview>>tools>>advanced>>edit palette view - crea una nuova palette e la chiami ad esempio "mia palette" - vai sulla palette delle funzioni dove si trovano le strutture - tasto DX "insert VI" - scegli il VI col while che hai appena creato - una volta inserito clicca DX sulla sua icona che è apparsa sulla palette e selezona "Merge VI" - salva le modifiche alla palette ora prova a fare un nuovo vi, e scegliere dalla palette delle strutture il tuo vi... non è esattamente quello che volevi forse ma si avvicina molto. PS questa tecnica ovviamente vale per tutti i VI non solo per le semplici strutture colorate Ciao, ---------------------------------------- AUTORE: 487 DATA :09/06/2006 - 07:45:18 ---------------------------------------- Grazie Ale, come al solito i tuoi suggerimenti risultano prezziosi. E' vero, non è esattamente quello che mi attendevo, però si avvicina parecchio e soprattutto mi risparmia un bel po' di lavoro. Grazie ancora. ---------------------------------------- ================================================================================ Tabella consumi di memoria ================================================================================ AUTORE: 1078 DATA :08/06/2006 - 09:37:53 ---------------------------------------- Ciao a tutti, ho qualche problema con il dimensionamento di alcuni file binari scritti in labview, avrei bisogno di dimensionare un claster formato da un booleano, una stringa e un double. Per dimensionare intendo che devo conoscere esattamente quanto spazio occupa su disco fisso il mio cluster e quanto spazio in memoria (che dovrebbero essere uguali!). Qualcuno sa indicarmi delle tabelle precise sul dimensionamento di ogni singola variabile... Per essere chiaro: Bollean = 1byte, double = 4byte... ecc.. Spero di essere stato chiaro. Grazie Ricky. ---------------------------------------- AUTORE: 4 DATA :08/06/2006 - 09:47:16 ---------------------------------------- Ciao, questo e il [url=http://zone.ni.com/devzone/conceptd.nsf/webmain/370DFC6FD19B318C86256A33006BFB78#1:10kz67js]link[/url:10kz67js] che fà per te. Ciao, ---------------------------------------- AUTORE: 1078 DATA :08/06/2006 - 09:55:47 ---------------------------------------- Grazie mille... adesso ci do un'occhio... ma dovrebbe essere proprio quello che cercavo. Ciao e buon lavoro a tutti! ---------------------------------------- ================================================================================ linguaggio NI VISA ================================================================================ AUTORE: 1317 DATA :08/06/2006 - 09:46:22 ---------------------------------------- ciao a tutti. Premetto che solo recentemente mi sono avvicinato a labview. Vorrei acquisire una forma d'onda da un oscilloscopio tektronix e sto usando i driver dello strumento. Mi interesserebbe registrare tutta la forma d'onda sull'oscilloscopio ma le impostazioni di default date dai driver non me lo permettono. Sapreste dirmi dove trovare una lista snella dei comandi NI VISA? Grazie a tutti ---------------------------------------- AUTORE: 645 DATA :08/06/2006 - 10:10:25 ---------------------------------------- Qui trovi un file su VISA: http://digital.ni.com/manuals.nsf/webse ... 47007B00B3 . Di per sè ti servono VISA Write, VISA Read e i comandi dell'oscilloscopio per il controllo remoto (qualcosa tipo "MEAS" o "IDN"). questi comandi dovresti trovarli sul manuale di istruzioni dello strumento, magari sotto la voce "Comunicazione Seriale" o "VISA". ---------------------------------------- ================================================================================ Stringhe di lunghezza fissa ================================================================================ AUTORE: 1078 DATA :08/06/2006 - 10:28:11 ---------------------------------------- Ciao, sono di nuovo io che rompo, il problema di dimensionare la memoria dei miei dati mi porta a ad un secondo dubbio: è possibile in labview dimensionara un controllo di testo con un massimo di carittari inseribili, o meglio fissare il numero di caratteri? In che senso: l'utente potrà inserire al massimo 20 caratteri, se ne inserisce meno la stringa che vado a leggere sarà composta da 20 caratteri, quelli battutti dall'utente + un numero di spazi pari al numero di caratteri mancanti... Spero di essere stato chiaro? [color=red]Il tutto tramite una proprietà di un controllo![\color] ---------------------------------------- AUTORE: 645 DATA :08/06/2006 - 12:42:50 ---------------------------------------- A naso... per riempire la stringa con caratteri "vuoti" puoi controllare la dimensione della stringa e inserire tanti caratteri "vuoti" quanti ne mancano per raggiungere il numero di caratteri voluti. Per limitare il numero di caratteri che l'utente può inserire puoi fare un controllo dopo che l'utente ha premuto un tasto per proseguire (così puoi fare contemporaneamente il controllo per limitare i caratteri e il riempimento con i caratteri che mancano). Oppure puoi cliccare con il tasto destro del mouse sul controllo stringa, selezionare "Update value while typing" e gestire l'evento "modifica valore" della stringa controllando la lunghezza della stessa (guarda VI allegato). ---------------------------------------- AUTORE: 1078 DATA :08/06/2006 - 13:12:41 ---------------------------------------- Grazie... funziona benissimo!!!! ---------------------------------------- AUTORE: 680 DATA :08/06/2006 - 20:36:16 ---------------------------------------- posso consigliare di utilizzare le variabili locali piuttosto che i property node? richiedeno meno memoria....... ciao....... ---------------------------------------- ================================================================================ si può dividere un file? ================================================================================ AUTORE: 1318 DATA :08/06/2006 - 13:22:35 ---------------------------------------- Salve a tutti, è da poco che "Spippolo" con LabView, lo utilizzo per campionare il segnale da due canali e pilotarne un terzo. Ho la necessità di campionare i segnali con una data frequenza e salvarli su di un file. Data la velocità di campionamento e la durata del fenomeno il file può contrnere più di 65536 linee. Come posso far spezzare il file dal programma in modo da poterlo aprire successivamente con Exel? grazie mille ---------------------------------------- AUTORE: 1304 DATA :09/06/2006 - 07:04:18 ---------------------------------------- Beh, così su due piedi ti suggerirei di salvare i dati in Access, per poi esportarli in Excel... A presto, HCL ---------------------------------------- AUTORE: 4 DATA :09/06/2006 - 08:19:37 ---------------------------------------- Ciao puoi semplicemente contare quante righe inserisci una volta che arrivi a quota 65535 crei un nuovo file (file dati_02) e inizi a salvare su questo resettando a 0 il contatore delle righe. Ciao, ---------------------------------------- ================================================================================ Firewire camera ================================================================================ AUTORE: 873 DATA :08/06/2006 - 13:27:10 ---------------------------------------- Salve a tutti!!! Ho un problema penso banale ma non riesco nemmeno a cominciare:ho una normalissima camera fireware a colori...ho installato i driver per labview e pure il soft 'vision 8.0' ...con vision assistant riesco a vedere in real time il flusso video, ma ora voglio fare un semplicissimo programma a mano (ho labview \"8)\" che mi faccia il display del video in una finestra in mezzo allo schermo....uso tutti i blocchetti (penso ) dovuti (init/setup etc etc) ma non riesco ad ottenere nessuna immagine, neppure uno snap, è cosi difficile ottenere il display di un video??? non so proprio come fare e non ho neppure trovatro aiuto sull'help.....helpppppppppppppppppppppp ffogs ---------------------------------------- AUTORE: 873 DATA :08/06/2006 - 16:20:45 ---------------------------------------- posto un immagione dello schema a blocchi realizzato.... se provo ad usare il trigger mode ho sempre errore perche' dice che la camera non po accetta....in effetti anche vision assistant acquisisce solo se il trigger mode e' disattivato....mah, non so proprio come ottenere un immagine senza usare MAX /Vision assistant.... ffogs ---------------------------------------- ================================================================================ s7-200/labview ================================================================================ AUTORE: 1299 DATA :08/06/2006 - 13:42:23 ---------------------------------------- Ciao a tutti. spero tanto che qlc possa aiutarmi... ho un plc s7-200 cp 224 utilizzo la porta freeport per farlo comunicare con un protocollo modbus!! con un simulatore (modsim32) funziona. adesso volevo sapere come interrogare i registri tramite il labview sempre con un cavo rs232/rs485 spero tanto in un vostro aiuto grazie mille P.S. di labview ne so veramente poco ciao ciao e grazie di nuovo! ---------------------------------------- AUTORE: 748 DATA :08/06/2006 - 15:30:41 ---------------------------------------- [url=http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F1582737BACF5CA8E0340003BA7CCD71&p_node=DZ52363&p_source=External]Qui [/url] dovrebbe esserci quel che cerci. Se leggi nel mio post precedente sui PLC trovi anche altri links relativi al Modbus Mark ---------------------------------------- ================================================================================ Check Button in LabView ================================================================================ AUTORE: 645 DATA :08/06/2006 - 15:35:11 ---------------------------------------- Io ho bisogno di selezionare più voci all'interno di un elenco e vorrei farlo con una struttura Check Button. In LabView c'è solo la struttura Radio Button con la quale si può selezionare un valore per volta. Mi piacerebbe riuscire a costruire una struttura simile al Radio Button con i Check Button in modo da poter sfruttare i Property Node per inserire o eliminare via software valori dall'elenco. Qualche idea? ---------------------------------------- AUTORE: 482 DATA :08/06/2006 - 16:09:10 ---------------------------------------- Cosi' dici che è troppo macchinosa? ---------------------------------------- AUTORE: 645 DATA :09/06/2006 - 12:14:11 ---------------------------------------- Grazie mille! Sto facendo qualche modifica per adattarlo alle mie esigenze... quando è pronto vedo di postarlo! ---------------------------------------- AUTORE: 482 DATA :25/07/2006 - 10:55:54 ---------------------------------------- Ho modificato il file che ti avevo allegato perchè tornava comodo anche a me. Cosi' è decisamente piu' gradevole Con il doppio click selezioni un oggetto e se ci riclicchi lo deselezioni. In uscita alla fine prenderai l'array dei check anzichè il valore della listbox. ---------------------------------------- AUTORE: 645 DATA :25/07/2006 - 12:17:46 ---------------------------------------- Molto bello! Io ho utilizzato la tua versione "vecchia" per qualche prova e funziona a meraviglia: cliccando una sola volta seleziono una grandezza da graficare e cliccando nuovamente la cancello dal grafico. Quando sarà tutto pronto ti dirò come ho utilizzato il tuo sistema con qualche immagine che può sempre tornare utile! ---------------------------------------- AUTORE: 838 DATA :26/07/2006 - 16:34:56 ---------------------------------------- bellissimo quello di geppo!! mi sembra fatto veramente bene \":D\" ---------------------------------------- AUTORE: 482 DATA :27/07/2006 - 08:00:09 ---------------------------------------- Scusate, inserendolo all'interno del mio programma mi sono accorto che mi ero complicato la vita piu' del dovuto... Ecco la versione ottimizzata! \":wink:\" (poi nel programma l'ho inserito con il timeout nella event senno'mi bloccava tutta l'esecuzione) ---------------------------------------- AUTORE: 13 DATA :27/07/2006 - 09:13:43 ---------------------------------------- Puoi semplificartela ancora di piu' \":-)\" io l'ho pensata cosi' \":-)\" ciao ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 09:27:51 ---------------------------------------- ottimi entrambi \":D\" ---------------------------------------- AUTORE: 13 DATA :27/07/2006 - 09:36:33 ---------------------------------------- Gia che ci siamo posto anche un probabile checkbox a tre stati , se ne possono avere quanti se ne vogliono basta solo aumentare il grado di controllo nell'event double click... saluti la prossima vi posto un bel menu a tendina pilotato con tasto dx del mouse, mi e' venuto proprio bene \":-)\" SALUTI A TUTTI ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 14:18:58 ---------------------------------------- posta posta \":D\" ---------------------------------------- AUTORE: 645 DATA :27/07/2006 - 15:18:24 ---------------------------------------- Ehilà, che robine interessanti... Scherzi a parte sta arrivando materiale veramente forte! E soprattutto comodo per realizzare cose di grafica che, diciamocelo, in LabView non sono spiegate molto! ---------------------------------------- ================================================================================ Memoria insufficente ================================================================================ AUTORE: 1252 DATA :08/06/2006 - 16:25:56 ---------------------------------------- Buongiorno!! Vi espongo subito il mio problema... Sto acquisendo diversi valori di voltaggio, temperatura, ecc...ed dopo circa 70 minuti che lavoro mi esce una finestra che mi dice che la memoria è insufficente e mi chiude il programma (veramente lo blocca, ma pazienza \":(\" ). Come posso risolvere il problema e perchè succede? Grazie... Filippo ---------------------------------------- AUTORE: 1252 DATA :09/06/2006 - 07:23:10 ---------------------------------------- Ciao, mi rendo conto di non essere satao molto chiaro nel mio problema. Il messaggio che mi viene fuori è. " Fatal Internal Error memory.cpp line 611". Spero che qualcuno possa dirmi cosa fare!!! Filippo ---------------------------------------- AUTORE: 4 DATA :09/06/2006 - 08:06:03 ---------------------------------------- Prova a usare il profile vi da tools>>advanced>>profile vi con questo tool dovresti capire chi tra i tuoi VI mangia la memoria. Una volta idividuato facci sapere e magari posta il codice incriminato. Ciao, ---------------------------------------- AUTORE: 645 DATA :09/06/2006 - 08:26:44 ---------------------------------------- Magari insieme al codice posta anche i dati del pc che usi (memoria, prestazioni, sistema operativo...) ---------------------------------------- AUTORE: 1252 DATA :09/06/2006 - 09:04:03 ---------------------------------------- Ciao, ho provato ad usare il POROFILE VI, ma non mi dice nulla, mi da tutti i valori ugualia zero..è piú probabile che non sia io in grado di usarlo.. Il pc che uso ha un sistema operativo Windows XP Professional, Pentium 4 CPU 3,20 GHz con una RAM da 2 GB, HD da 110 GB. Filippo ---------------------------------------- AUTORE: 645 DATA :09/06/2006 - 09:09:46 ---------------------------------------- Lavori con una DLL o passando dati tra Matlab e LabView? Prova a vedere se questo post sul forum della National può tornarti utile: http://forums.ni.com/ni/board/message?b ... .id=142805 (soprattutto gli ultimi due messaggi). ---------------------------------------- AUTORE: 1252 DATA :09/06/2006 - 09:14:53 ---------------------------------------- Ma quanto sono ignorante!! \":oops:\" Non sto usando Matlab, quindi credo di usare una DLL. Il post del forum della NI l´avevo giá letto, ma la domanda è: come faccio a sapere se ho memoria a sufficenza? e come faccio per aumentarla?sempre se si puó fare..o almeno spero!! ---------------------------------------- AUTORE: 645 DATA :09/06/2006 - 09:26:04 ---------------------------------------- Sul sito della NI: http://digital.ni.com/public.nsf/allkb/ ... 47000f4319 ci sono collegamenti che forse possono essere utili (metà pagina, punto 2). In particolare consiglia il capitolo 4 del manuale http://www.ni.com/pdf/manuals/370109b.pdf . Sembra un passaggio di dati sbagliato alla DLL e non tanto un problema di prestazioni del pc: quasi che passando qualcosa di sbagliato alla DLL venga allocata memoria "sbagliata". Magari si tratta di una differenza nel tipo di dato passato all'interno del VI. ---------------------------------------- AUTORE: 1252 DATA :09/06/2006 - 14:18:30 ---------------------------------------- Per prima cosa vi ringrazio per le risposte... \":D\" Ho provato a leggere il manuale come mi consiglia il sito della NI, ma non sono un gran appassionato di computer e ci ho capito poco o nulla... \":cry:\" ---------------------------------------- ================================================================================ Visualizzazione ================================================================================ AUTORE: 1029 DATA :08/06/2006 - 17:00:19 ---------------------------------------- Salve ragazzi! Ho un problema! Ho un segnale ad una certa frequenza (f<f0) e un segnale sinusoidale la cui frequenza varia linearmente (con un dente di sega). Questi due segnali vengono moltiplicati e fatti passare all'interno di un filtro passabanda con frequenza centrale f0. La parte del segnale sinusoidale (di frequenza linearmente variabile) l'ho risolta, il mio problema è il segnale all'uscita del filtro. Io vorrei che il segnale in ingresso del filtro entrando a poco a poco nel filtro (perchè la sua frequenza varia linearmente) in uscita mi restituisse la curva di risposta del filtro in modo da poterla visualizzare correttamente in un grafico. Vorrei quindi che il segnale all'uscita del filtro venga mandato in un grafico e che questo grafico sia la curva di risposta del filtro. Avete un'idea di come fare? Ringrazio tutti anticipatamente! ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 10:19:09 ---------------------------------------- Se ho capito bene la tua necessità è visualizzare i dati filtrati su un grafico un istante dopo che li hai acquisiti. Se è così puoi usare le funzioni "point by point " che trovi nella paletta sotto Analyze Ciao ---------------------------------------- ================================================================================ Porta Seriale PAssare da COM1 a COM 2 ================================================================================ AUTORE: 516 DATA :08/06/2006 - 21:26:19 ---------------------------------------- Ciao a Tutti Come sempre avrei bisogno del vostro aiuto , ho realizzato un SUBVI che uso per comunicare con la seriale , ora questo SUBVI lo carico con un'altro programma e fino a qui tutto ok funziona , vorrei ora però aver la possibilità di settare (dal secondo SUBVI) la porta seriale che desidero , ho provato con il propety node ma senza alcun risultato , qualche suggerimento ? Grazie Mille in Anticipo Sergio ---------------------------------------- AUTORE: 487 DATA :09/06/2006 - 07:27:08 ---------------------------------------- Ciao Giants, prova a postare un'esempio di quello che stai facendo e vediamo se riesco ad aiutarti. Così a grandi linee se utilizzi le VISA non dovresti aver problemi a passare dalla COM1 alla COM2; ricordati sempre di chiudere i collegamenti di una COM prima di passare all'altra. ---------------------------------------- AUTORE: 645 DATA :09/06/2006 - 08:24:49 ---------------------------------------- La selezione della porta COM avviene tramite una stringa: non dovrebbero esserci particolari difficoltà. Puoi postare un'immagine come suggerisce coma? ---------------------------------------- AUTORE: 516 DATA :09/06/2006 - 15:00:37 ---------------------------------------- Ciao Vi ho posato il subvi della seriale (anche se molto semplice sto ancora facendo delle prove) , non riesco propio a capire come cambiare la porta di lettura tramite un'altro SUBVI Ciao e GRAZIE MILLE Sergio ---------------------------------------- AUTORE: 129 DATA :09/06/2006 - 17:53:34 ---------------------------------------- Prova con questo. Io preferisco l'uso delle stringhe che non vengono modificate se li apro su un altro PC. ---------------------------------------- AUTORE: 516 DATA :09/06/2006 - 21:21:40 ---------------------------------------- Ciao Grazie Mille ora provo , non sapevo che potevo utilizzare una stringa per il controllo . cosa intendi con "Io preferisco l'uso delle stringhe che non vengono modificate se li apro su un altro PC" ? Ciao e Grazie Sergio ---------------------------------------- ================================================================================ Esistenza di un file ================================================================================ AUTORE: 927 DATA :09/06/2006 - 10:43:01 ---------------------------------------- Qual è un buon metodo per vedere se un file esiste? Oltre a fare Open File o File Info e vedere se dà errore... ---------------------------------------- AUTORE: 680 DATA :09/06/2006 - 14:38:38 ---------------------------------------- potresti fare un "list directory" e controllare sull'array di uscita se esiste un elemento con il nome del file.... bye... ---------------------------------------- AUTORE: 1304 DATA :12/06/2006 - 07:31:19 ---------------------------------------- Mmm...ma non è un tantino più oneroso, in termini di calcolo? E magari c'è il problema del "case sensing" in giro...mah, io resterei su un File Open, "più rapido, più veloce, più seducente"... ...un pò come il Lato Oscuro, insomma! \":twisted:\" A presto, HCL ---------------------------------------- AUTORE: 927 DATA :12/06/2006 - 08:31:10 ---------------------------------------- Non saprei... sui Fieldpoint con File Open ho avuto esperienza di impallamenti facendo troppi "apri e chiudi". Ma certamente List Directory è molto + pesante. In DOS c'è semplicemente il comando IF EXIST, strano che non ci sia un equivalente... ---------------------------------------- AUTORE: 1304 DATA :12/06/2006 - 09:27:19 ---------------------------------------- Beh, i comandi DOS sono comandi di shell, implementati per ottenere una buona velocità di esecuzione, realizzati con linguaggi atti allo scopo, come ad esempio C; non so come funzioni esattamente una File Open in LabView: se, ad esempio, per poi velocizzare la lettura dei dati, fa un precaricamento degli stessi, allora una scansione dei contenuti della directory è probabilmente più rapida; se, al contrario, assegna meramente un file pointer, allora dovrebbe essere meglio la Open. Purtroppo non sono ancora molto uso a LabView, per il momento me lo studio quando ho un qualche attimo a disposizione, per cui le mie risposte si basano soprattutto sulla mia esperienza di programmazione. Ah, hai fatto cenno ad un blocco File Info, prova anche con quello; magari potresti fare la prova coi tre metodi per file diversi, segnarti i timestamp e postare la tua esperienza? \":)\" A presto, HCL ---------------------------------------- AUTORE: 4 DATA :12/06/2006 - 10:36:18 ---------------------------------------- io uso la funzione "file info" e controllo l'errore, non mi sembra male come soluzione, si sicuro è migliore di open file che richiede anche di fare una close. Ciao, ---------------------------------------- AUTORE: 927 DATA :12/06/2006 - 11:13:36 ---------------------------------------- Diciamo che stamattina avevo poca voglia di lavorare, e ho fatto la prova... in termini di pura velocità, la Open/Close è appena appena più veloce della FileInfo. La List è mostruosamente lenta e cresce col numero di file nella cartella ---------------------------------------- AUTORE: 482 DATA :12/06/2006 - 12:50:49 ---------------------------------------- [quote="linux120":1o2h8grj]potresti fare un "list directory" e controllare sull'array di uscita se esiste un elemento con il nome del file.... [/quote:1o2h8grj] Con la list directory si puo' dare in ingrsso al pattern il nome esatto del file cosi' poi non bisogna controllare nell'array ma basta valutare se l'array è vuoto o meno. Ho fatto anche io la prova perchè il MOSTRUOSAMENTE lento di SnamProgetti non mi tornava. Effettivamente è piu' lento della file info o della open, ma si parla sempre di 10 o 20 millisecondi niente di particolarmente gravoso...quindi dipende un po'dalle esigenze di progetto..cmq io voto per "file info" \":wink:\" ---------------------------------------- AUTORE: 927 DATA :12/06/2006 - 12:57:26 ---------------------------------------- Si ovviamente ho messo il nome esatto nel pattern di ricerca, ma lui scandisce ugualmente tutta la cartella anche se il file lo trova subito... Facendolo 1000 volte nella cartella di Windows ci metteva 10 secondi, abbastanza mostruoso rispetto agli 0,1 secondi degli altri 2 metodi!! ---------------------------------------- AUTORE: 482 DATA :03/08/2006 - 10:18:06 ---------------------------------------- Domanda... Utilizzando il File Info per valutare l'esistenza di un file, voi cosa usate come uscita? Prendete il cluster di errore intero o il codice 7 ? Lo cheido perchè stavo valutando quali altri casi di errore potrebbero esserci nella file info e non me ne vengono in mente, nel caso del solo 7 eviterei ogni volta di fare l'unbundle e configurare gli eventuali case structure... ---------------------------------------- AUTORE: 680 DATA :03/08/2006 - 12:23:11 ---------------------------------------- non so neach'io quali altro potrebbero accadare con file info.. sicuramente potrebbe capitare anche error 8: File permission error gli altri non so... bye...... ---------------------------------------- AUTORE: 927 DATA :03/08/2006 - 12:50:38 ---------------------------------------- Sicuramente ho visto anche gli errori 1 e 6, e poi non sai mai cosa succederà... meglio controllare il codice 7, e poi ti dirò una banalità: perchè fare "ogni volta" l'unbundle, fatti un piccolo VI che fa tutto il lavoro! ---------------------------------------- AUTORE: 482 DATA :03/08/2006 - 14:39:37 ---------------------------------------- Ottima osservazione, infatti procedero' con un SubVI che mi controlla l'esistenza tramite l'errore 7. Piccola nota. Ho visto che il vi di controllo di esistenza esiste nelle librerie openG, tuttavia va a controllare solo la presenza dell'errore e non il codice, quindi potrebbe essere non veritiera l'uscita di quel vi. \":wink:\" ---------------------------------------- AUTORE: 482 DATA :03/08/2006 - 16:19:48 ---------------------------------------- ehi ehi ehi..qui mi sa che c'e' un po' di confusione.... Nessuno degli errori che mi avete citato puo' presentarsi al file info. Quel blocco verifica solo l'esistenza del file ignorando assolutamente quello che c'e' al suo interno o le sue proprietà... quindi è corretto quello che c'e' nell'OpenG, non serve controllare il codice 7 perchè è sempre e comunque l'unico errore possibile in uscita da quel blocco. Ovviamente sto ingnorando l'errore 1 in caso di path non valido. Se qualcuno ha qualche esempio per smentire questa mia conclusione si faccia avanti! perchè sto rimbalzando continuamente tra una soluzione e l'altra... ---------------------------------------- AUTORE: 680 DATA :03/08/2006 - 19:04:03 ---------------------------------------- ecco un esempio di errore 8.... file permission error... bye... ---------------------------------------- AUTORE: 482 DATA :04/08/2006 - 07:37:39 ---------------------------------------- i Permessi sono dovuti al fatto che non è un disco locale? ---------------------------------------- AUTORE: 927 DATA :04/08/2006 - 08:24:37 ---------------------------------------- L'errore 6 me lo dà ad esempio se gli passo Z:\... Un caso estremo, ma ripeto, non sai mai cosa potrà accadere, perchè rischiare? Non sarà certo un controllino in più sul codice che ti appesantirà il programma... ---------------------------------------- AUTORE: 680 DATA :04/08/2006 - 08:35:53 ---------------------------------------- il fatto che sia un disco remoto non influenza.... il problema è che in quella cartella che ho cercato il file, l'utente di windows, non ha i permessi necessari per poter leggerne il contenuto. questo potrebbe accadare anche in "locale" tra due utenti windows (amministratore e account limitato)..... ---------------------------------------- AUTORE: 482 DATA :04/08/2006 - 09:17:04 ---------------------------------------- Ok mi avete convinto, lascio tutto com'e' col controllo sul 7 \";)\" ---------------------------------------- ================================================================================ Intestazione File ================================================================================ AUTORE: 516 DATA :10/06/2006 - 20:22:26 ---------------------------------------- Ciao Vi scrivo per sapere cosa ne pensate , prima di memorizzare dei dati all'interno di un file devo creare un'intestazione ho pensato di fare così cosa ne pensate ? altri suggerimenti ?. Ovviamente questo è solo un test non sono stato a preoccuparmi di creare il file se non esiste . Ciao e GRAZIE Sergio ---------------------------------------- AUTORE: 645 DATA :11/06/2006 - 08:24:48 ---------------------------------------- Per essere comodo è comodo! Si potrebbe pensare di mettere un'intestazione non solo all'inizio del file ma ogni volta che, per esempio, si cambia prova o che l'utente decide di creare una sezione nuova... ---------------------------------------- AUTORE: 516 DATA :11/06/2006 - 09:18:23 ---------------------------------------- Ciao Prima di tutto Grazie Mille per la risposta , si pensavo di creare un SUBVI dove la persona potesse inserire alcuni dati che venivano poi scritti nell'intestazione . Ciao Sergio ---------------------------------------- ================================================================================ Timer ================================================================================ AUTORE: 1252 DATA :12/06/2006 - 09:15:26 ---------------------------------------- Ciao a tutti, per prima cosa mi scuso se continuo a rompervi le scatole... \":oops:\" Vi espongo il mio nuovo problema: ho provato a fare un timer usando un ciclo while, il tutto mi funziona alla grande \":D\" , ma vorrei che il mio timer mi mostrasse non solo i secondi, ma i minuti,le ore e se fosse possibile anche i giorni...come posso fare? Vi invio il programma che ho fatto per capire meglio.... \":wink:\" Grazie. Filippo ---------------------------------------- AUTORE: 927 DATA :12/06/2006 - 11:22:00 ---------------------------------------- Per trovare i minuti dividi per 60! Il quoziente sono i minuti e il resto sono i secondi... e così via per ore e giorni. Il VI per la divisione intera è sotto "Numeric", è quadrato. P.S. quello "STOP" non serve... ---------------------------------------- AUTORE: 1252 DATA :12/06/2006 - 13:38:25 ---------------------------------------- Ok che devo dividere per 60 ecc..,ma in questo modo mi sembra di capire che non riesco a vedere il timer come voglio io (h:min:sec) ma dovrei avere 3 indicatori (uno per le ore, uno per i minuti e uno per i secondi). Inoltre in questo modo quando i secondi arrivano a 60 non ripartono da 0, ma vanno avanti. Purtroppo non sono ancora riuscito a provare questo metodo perchè sto usando LV per un altro lavoro, ma appena lo provo ti faccio sapere se funziona come dico... \":wink:\" Filippo ---------------------------------------- AUTORE: 4 DATA :12/06/2006 - 13:41:25 ---------------------------------------- prova [url=http://www.ilvg.it/index.php?option=com_content&task=view&id=44&Itemid=84:1qbu1o4y]questo[/url:1qbu1o4y] VI. Ciao, ---------------------------------------- AUTORE: 1252 DATA :12/06/2006 - 15:00:15 ---------------------------------------- É esattamente quello che mi serviva!!! \":D\" GRAZIE!!! \":D\" \":D\" \":D\" Filippo ---------------------------------------- ================================================================================ driver tektronix TDS3032 ================================================================================ AUTORE: 1317 DATA :12/06/2006 - 13:46:58 ---------------------------------------- ciao a tutti..spero che qualcuno possa risolvere il mio problema..possiedo un TDS3032 della tektronix e i driver di questo modello per la versione 7.0 funzionano solo utilizzando le impostazioni di default mentre non permettono l'acquisizione cambiando ad esempio il periodo di acquisizione.Qualcuno può darmi qualche consiglio?Grazie a tutti \":D\" ---------------------------------------- ================================================================================ minicorso con USB-6008 ================================================================================ AUTORE: 1321 DATA :13/06/2006 - 10:25:25 ---------------------------------------- Da qualche mese mi sto interessando di LabVIEW, realizzando programmini di base per USB-6008 e solo ora vengo a conoscenza di questo forum. Chi fosse interessato ai programmi puo' accedervi con: http://www.electroportal.net/vis_resour ... Corso&id=6 Sarei grato agli esperti che mi segnalassero eventuali imprecisioni. ---------------------------------------- ================================================================================ visualizzare file jpg ================================================================================ AUTORE: 1015 DATA :13/06/2006 - 12:16:37 ---------------------------------------- ciao a tutti, vorrei visualizzare un'immagine .jpg memorizzata sul pc. sto usando "readJPGfile.vi" ma non ho capito come fare per visualizzarla. grazie ---------------------------------------- AUTORE: 680 DATA :13/06/2006 - 13:12:06 ---------------------------------------- ecco qua ciao....... ---------------------------------------- ================================================================================ Filtro ================================================================================ AUTORE: 1029 DATA :14/06/2006 - 08:24:59 ---------------------------------------- Salve ragazzi! Vorrei realizzare una curva come in figura (vedere allegato). Center deve essere un control che fissa una frequenza voluta, mentre RBW deve essere un control che fissa la larghezza della curva, anche l'ampiezza deve essere fissata da un control. Potreste darmi una mano? Grazie a tutti! ---------------------------------------- AUTORE: 1304 DATA :14/06/2006 - 11:27:47 ---------------------------------------- Ciao fra'! \":)\" Fammi capire, la curva è una parabola, o un pezzo di curva "a sombrero" (tipo sin(x)/x, ad esempio) oppure ha una forma totalmente empirica? Nel caso sia descrivibile con una funzione, puoi usare un blocco Expr (cioè del tipo che ti permette di inserire una funzione da te definita) e far selezione eventualmente sui valori in uscita, altrimenti...boh? \":lol:\" Insomma, molto dipende dalla descrizione matematica della curva stessa... A presto, HCL ---------------------------------------- AUTORE: 1029 DATA :14/06/2006 - 11:59:58 ---------------------------------------- Ciao HCL! La curva è del tipo senx/x di cui mi serve soltanto il "lobo" principale, si può rappresentare solo quello? Inoltre vorrei anche regolare la larghezza di base del "lobo". Se hai qualche idea, fammi sapere! Grazie mille! ---------------------------------------- AUTORE: 680 DATA :14/06/2006 - 12:02:32 ---------------------------------------- credo volesse un qualcosa del genere... dovrebbe essere la curva di risposta in frequenza di un filtro passa banda... [url:2biy1o5t]http://upload.wikimedia.org/wikipedia/commons/5/54/Bandwidth.png[/url:2biy1o5t] ---------------------------------------- AUTORE: 680 DATA :14/06/2006 - 12:03:41 ---------------------------------------- comunque se non sbaglio sugli express dovrebbe essere il filtro passa banda... ---------------------------------------- AUTORE: 1029 DATA :14/06/2006 - 12:47:18 ---------------------------------------- Ciao linux! Si la curva è proprio quella di risposta del filtro passa banda, soltanto che utilizzando il blocco VI di LabVIEW filtra il segnale e non mi disegna la curva di risposta, mentre vorrei invece avere un grafico che rappresenta la curva di risposta del filtro. C'è un VI che permette di fare questo? ---------------------------------------- AUTORE: 1304 DATA :14/06/2006 - 12:54:45 ---------------------------------------- Doh! E dire che mi bastava leggere il titolo del post x capire volessi la risposta del filtro...anche se qualche dubbio vedendo l'immagine mi era venuto... \":oops:\" Sotto non ho LV, però, ad occhio, non dovresti graficare la risposta del filtro, ma la sua trasformata, la sua analisi spettrale insomma...l'assenza del software però mi impedisce di verificare COSA esca effettivamente dal filtro, anche se credo sia il segnale "temporale"... A presto, HCL ---------------------------------------- AUTORE: 1029 DATA :14/06/2006 - 16:33:34 ---------------------------------------- Il problema è che all'uscita del blocco del filtro c'è il segnale filtrato e basta, non so come fare per prendere solo la curva di risposta del filtro. ---------------------------------------- AUTORE: 1050 DATA :15/06/2006 - 08:15:10 ---------------------------------------- Ciao, forse ti può essere utile questa vi della NI (nella figura c'è anche il path). saluti ---------------------------------------- AUTORE: 1029 DATA :15/06/2006 - 17:51:40 ---------------------------------------- Grazie antea per l'aiuto! In questi giorni ci lavoro e ti faccio sapere! Grazie mille! ---------------------------------------- AUTORE: 1029 DATA :17/06/2006 - 15:24:52 ---------------------------------------- Grazie antea funziona! ---------------------------------------- ================================================================================ Creare eseguibile da .vi [era: "aiutoo!!"] ================================================================================ AUTORE: 1325 DATA :15/06/2006 - 10:03:57 ---------------------------------------- salve sono nuovo del forum e del labview ho cominciato a sviluppare le prime applicazioni mooolto semplici... ...volevo chiedere come si fa a trasformare un *.vi in un eseguibile *.exe in windows con labview 7.1? lo fa stesso labview o c'è bisogno di applicazioni esterne? vi prego aiutatemi è per la tesi che devo scrivere!!! grazie a tutti \":lol:\" ---------------------------------------- AUTORE: 645 DATA :15/06/2006 - 10:30:14 ---------------------------------------- Ti serve un'aggiunta di LabView chiamata "Application Builder". Per sapere se sul tuo pc è installato puoi controllare in LabView nel menù "Tools": se "Application Builder" è installato nel menù c'è la voce "Build application or shared library". ---------------------------------------- AUTORE: 1325 DATA :15/06/2006 - 11:11:34 ---------------------------------------- ti ringrazio x l'aiuto... solo una cosa nel caso io non l'avessi? come posso installarlo o dove lo trovo? \":cry:\" ---------------------------------------- AUTORE: 645 DATA :15/06/2006 - 12:16:52 ---------------------------------------- Si può comprare come tool a sè (http://sine.ni.com/nips/cds/view/p/lang/it/nid/10731). Però costa... ---------------------------------------- AUTORE: 952 DATA :28/06/2006 - 15:38:58 ---------------------------------------- Ciao, una buona alternativa a comprare il modulo della NI e scaricare un tool analogo da OpenG http://openg.org/index.php. Devi scaricare il Commander che si auto installa e poi puoi scaricare molti tools e vi fra i quali anche un application builder e un package builder. ---------------------------------------- ================================================================================ Catturare l'evento della scrollbar nel Multicolumn ================================================================================ AUTORE: 645 DATA :15/06/2006 - 22:00:56 ---------------------------------------- Sto lavorando con una "Multicolumn Listbox" e ho bisogno di sapere quando l'utente muove la scrollbar orizzontale per muovere di conseguenza una serie di indicatori stringa esterni alla tabella. Ho provato a controllare il Property Node riguardante la cella "Top left visible cell" ma prima di ottenere un nuovo numero di colonna devo muovere la scrollbar un po' con il risultato di un evidente ritardo tra lo spostamento della Multicolumn e lo spostamento degli indicatori. Qualcuno ha mai provato a lavorare con lo spostamento della scrollbar orizzontale? O avete qualche idea interessante per controllare la posizione? Grazie 1000... ---------------------------------------- AUTORE: 645 DATA :15/06/2006 - 22:01:52 ---------------------------------------- Dimenticavo: lavoro con LabView 7.1.1 (ho visto che con LabView 8.0 sono stati introdotti nuovi eventi e nuovi Property Node ma quello che serve a me non mi pare di averlo trovato). ---------------------------------------- AUTORE: 482 DATA :16/06/2006 - 08:15:42 ---------------------------------------- ...siccome il forum LabVIEW è una delel prime cose che apro alla mattina, prima di mettermi al lavoro ho dato un occhiata al tuo problema... purtroppo pero' adesso mi tocca lavorare quindi ti allego quello che ho realizzato...dimmi se ti puo' essere utile. ---------------------------------------- AUTORE: 645 DATA :16/06/2006 - 12:28:20 ---------------------------------------- Grazie per il suggerimento ma purtroppo non è quello che volevo fare io. Comunque ho risolto con un trucchetto diverso: in pratica io lavoro con una Multicolumn Listbox all'interno della quale pubblico dati letti in un database. Le intestazioni di questa tabella assumono i nomi dei campi estratti dal database. Avevo l'esigenza di poter modificare questi nomi senza però perdere la possibilità di interrogare il database basandomi sui nomi dei campi: con questo criterio di interrogazione posso utilizzare lo stesso VI con database diversi senza preoccuparmi di come si chiamano i campi nei singoli casi. Allora pensavo di utilizzare una seconda Multicolumn, o meglio solo le intestazioni di una seconda Multicolumn sovrapposta alla prima. In questo modo potevo modificare le intestazioni della seconda tabella dando l'impressione di modificare le intestazioni della prima. Con il problema di gestire lo spostamento della riga delle intestazioni della seconda tabella in base allo scroll orizzontale della prima (da qui la curiosità della gestione dell'evento). Poi ho modificato il VI: con un continuo rimbalzo tra un vettore di supporto (non più una tabella secondaria) e la tabella principale riesco a fare tutto. Posso modificare le intestazioni delle colonne senza perdere il nome vero. È un po' incasinato da spiegare ma l'effetto finale è puramente di comodo per il programma che sto preparando. Vi siete persi nella descrizione? Io un po' sì... ---------------------------------------- ================================================================================ Problemi con la scala ================================================================================ AUTORE: 1029 DATA :17/06/2006 - 16:18:46 ---------------------------------------- Ciao ragazzi! Il VI che mi avete suggerito (e che ho allegato) permette di tracciare la risposta di un filtro e funziona perfettamente. L'unico problema è la scala che è errata. Se setto un dt pari a 1E-3 la curva è rappresentata con una scala corretta. Io vorrei visualizzare la curva fino a 2kHz quindi ho settato il dt a 1E-4 (con dt=1E-3 non la visualizza per il teorema di Shannon). Il problema è che se inserisco le frequenze di taglio inferiore e superiore a 1000 Hz e 1200 Hz la curva è rappresentata tra 100 Hz e 120 Hz. Cosa si può fare? Vi ringrazio per l'aiuto! ---------------------------------------- AUTORE: 1029 DATA :17/06/2006 - 16:23:47 ---------------------------------------- Io utilizzo LabVIEW 8.0 vi lascio anche una figura del block diagram per coloro che non possono aprire il VI. ---------------------------------------- AUTORE: 1050 DATA :19/06/2006 - 08:47:13 ---------------------------------------- Ciao, dal cluster info filter puoi estrarre f0 e df per ottenere la giusta rappresentazione. Per quanto riguarda il dt, se Fmax=2KHz=fs/2 allora dt=1/2Fmax=0.00025. Comunque dai uno sguardo al manuale (pdf) labview analysiy concept \":wink:\" . Saluti ---------------------------------------- AUTORE: 1029 DATA :19/06/2006 - 14:39:07 ---------------------------------------- Grazie mille antea per l'aiuto! ---------------------------------------- ================================================================================ Array che passione... ================================================================================ AUTORE: 1330 DATA :19/06/2006 - 14:27:30 ---------------------------------------- Salve a tutti, sono uno studente universitario iscritto al corso di laurea specialistica di Ingegneria Meccanica. Per un laboratorio di meccanica mi trovo a dover scrivere un programma in LabVIEW che controlla un motore, legge da un encoder e da un telemetro (il tutto “infilato” in un CFP). Il problema che non riesco a risolvere è questo: Ho un tubo tra due contropunte, ed un telemetro che ne misura il diametro, io devo trovarne la lunghezza. [img:1n7e2jjd]http://www.ludolega.it/Upload%20Bazzu/schema%20misura%20tubo.jpg[/img:1n7e2jjd] Ora sono riuscito a leggere il telemetro, l’encoder ed a “manovrare” il motore elettrico che muove il telemetro. La mia idea sarebbe, leggo encoder e telemetro, infilando le letture in un array, quando la lettura precedente risulta più piccola di un certo tot rispetto alla lettura successiva io estraggo il dato e lo tengo da parte. Successivamente andrò a cercare la fine del tubo, quindi quando la lettura precedente è superiore di un certo tot alla lettura successiva. Quando ho estratto entrambi i dati, basta fare una sottrazione tra le letture dell'encoder per avere la lunghezza del tubo. La cosa che in tutto questo mi risulta ostica è fare tutte queste operazioni con gli array, come posso estrarre dati da un array, confrontarli fra loro ed eventualmente teneri da parte? Sempre considerato che la lettura del tubo nel suo complesso (quindi un array pieno di coppie encoder- telemetro) lo vorrei conservare per farci altre operazioni. Qualcuno può darmi qualche dritta? ---------------------------------------- AUTORE: 645 DATA :19/06/2006 - 23:30:14 ---------------------------------------- Nella paletta degli Array trovi la funzione "Index Array": con questo blocco puoi analizzare un singolo valore dell'array. Poi trovi anche il blocco "Size Array": con questo puoi conoscere quanti elementi ci sono nel tuo vettore. Per confrontare tra loro alcuni elementi puoi usare il blocco "Index" passando il vettore e la posizione dell'elemento da controllare (l'ultimo elemento ha posizione "Size"-1 perchè la numerazione delle posizioni parte da zero). ---------------------------------------- AUTORE: 482 DATA :20/06/2006 - 07:48:33 ---------------------------------------- Visto che si parla di due letture successive io eviterei addirittura di usare un array. All'interno di un ciclo puoi tranquillamente utilizzare degli shift register per portarti al ciclo successivo il valore precedente. In alternativa puoi usare una semplice variabile locale. Il valore precedente lo associ all'indicatore e quello successivo lo confronti con la sua variabile locale. ---------------------------------------- AUTORE: 645 DATA :20/06/2006 - 08:13:33 ---------------------------------------- Effettivamente se si tratta sempre di due letture successive senza bisogno di memorizzare tutti i dati per poi riutilizzarli la soluzione dello shift register è più semplice e veloce. ---------------------------------------- AUTORE: 1330 DATA :29/06/2006 - 15:40:33 ---------------------------------------- Grazie a tutti per i preziosi consigli, sono riuscito a risolvere. Alla prossima. ---------------------------------------- ================================================================================ Supereterodina ================================================================================ AUTORE: 1029 DATA :19/06/2006 - 15:59:45 ---------------------------------------- Ciao antea, vorrei chiederti una cosa. E' possibile collegare in qualche modo un segnale con il Design IIR Filter? Vorrei che si generasse la curva di risposta ogni volta che un segnale attraversa un filtro e che la curva di risposta abbia la stessa ampiezza del segnale. In pratica ho un segnale con frequenza fs, con la tecnica della supereterodina trasporto in frequenza il segnale in una frequenza f0 (f0>fs) che è la frequenza centrale di un filtro. Io vorrei visualizzare la curva di risposta del filtro (avente ampiezza pari a quella del segnale) ogni volta che i segnale entra nel filtro. Se qualcuno ha un'idea mi potrebbe dare una mano? Grazie ---------------------------------------- AUTORE: 1029 DATA :19/06/2006 - 18:05:29 ---------------------------------------- Ho visto che in libreria c'è il VI "Design IIR Filter For N-Waveform" che dal titolo sembrerebbe la soluzione al mio problema, però non ho capito come si usa, non ci sono gli Help che spiegano il suo funzionamento. C'è da qualche parte una guida che spiega il funzionamento di questo VI? Ringrazio tutti anticipatamente! ---------------------------------------- ================================================================================ Utilizzare labview senza strumentazione..... ================================================================================ AUTORE: 1331 DATA :19/06/2006 - 17:52:07 ---------------------------------------- So che è una domnda strana, ma non avendo a casa la strumentazione adeguata volevo sapere se c'è qualche modo per simulare il comportamento dei dispositivi di acquisizione, se sono disponibili dei modelli di questo etc....sono alle prime armi e prima di fare un casino in laboratorio vorrei fare delle prove...vi ringrazio tutti per le vostre "dritte" ---------------------------------------- AUTORE: 1029 DATA :19/06/2006 - 18:00:58 ---------------------------------------- Puoi utilizzare i Simulate signal che permettono di simulare forme d'onda come sinusoide onda trinangolare onda quadra etc... Li trovi cliccando sul block Diagram col tasto destro del mouse e selezionando Express -> Input-> Simulate signal. Spero che tu abbia chiesto questo. A presto! ---------------------------------------- AUTORE: 247 DATA :19/06/2006 - 20:43:24 ---------------------------------------- Ciao, utilizzando il MAX(versione dalla 4 se non erro) è possibile simulare la presenza di alcuni deviuce di acquisizione in modo da poter utilizzare i blocchi ad es. Daqmx, all'interno dei propri programmi senza ottenere errori per la mancanza della risorsa. Questa è la procedura per creare una scheda simulata: - Apri MAX (Measurement and Automation eXplorer). - Click destro su "My comuter->Devices and Interfaces" - Scegli Create New nel menu che ti appare. - Nella lista che compare successivamente seleziona "NI-DAQmx Devices -> NI-DAQmx Simulated Device" A questo punto puoi utilizzare i blocchi daqmx nel programma, il segnale che viene acquisito è fisso ma almeno puoi far girare il programma prima di utilizzarlo in laboratorio. BYE. ---------------------------------------- ================================================================================ Re: DAQ USB-6009 leggere e graficare segnali analogici ================================================================================ AUTORE: 1313 DATA :20/06/2006 - 10:47:57 ---------------------------------------- Salve ragazzi, ho un daq USB-6009, ed uso daq-mxBase e Labview 7.1, ho visto dagli esempi come leggere segnali analogici single-end e differential, ho visto come graficare il segnale, ma non ho capito come far uscire contemporaneamente il grafico di tutti i segnali che leggo, . Cris P.S. non sono un esperto quindi mi aspetto qualche figuraccia. ---------------------------------------- AUTORE: 113 DATA :20/06/2006 - 16:03:31 ---------------------------------------- Ciao, per fare un'acquisizione multipla innanzi tutto devi configurare come Phisical channels tutti gli ingressi analogici che vuoi acquisire, poi dvei configurare la vi DaqMx Read per un'acquisizione appunto di canali multipli. Ti allego un'immagine della porzione di un mio diagramma in cui si configura un'acquisizione continua degli 8 canali che vengono graficati. Seconda cosa: ti sconsiglio di utilizzare i drivers DaqMx-Base; dalla versione 7.5 i drivers NI-Daq Mx supportano i moduli USB 68xx, con essi utilizzi le funzioni Mx tradizionali (come nel mio esempio). P.S. Di solito sono gli esperti, o i presunti tali, a fare le figuracce... \":wink:\" Ciao, Alberto ---------------------------------------- AUTORE: 113 DATA :20/06/2006 - 16:05:52 ---------------------------------------- Scusa, ma non mi allega l'immagine, ci riprovo. ---------------------------------------- AUTORE: 1313 DATA :20/06/2006 - 17:19:44 ---------------------------------------- Grazie Mille, ma non riesco a vedere, per capirci, 2,3, opiù linee contemporaneamente. poi devo acquisire segali differenziali, basta che lo seleziono in ingresso al task mx?? grazie in anticipo, cris ---------------------------------------- AUTORE: 1313 DATA :20/06/2006 - 18:18:07 ---------------------------------------- Ciao , Vi ho allegato il mio VI, come posso fare?? Cris ---------------------------------------- AUTORE: 1313 DATA :21/06/2006 - 11:32:31 ---------------------------------------- Scusami mi sai dire come fare plottare tutti i segnali a assieme??? come avrete visto dall'immagine allegata precedentemente ho fatto tutti i passi necessai. Help Me!!! grazie in anticipo ---------------------------------------- AUTORE: 113 DATA :21/06/2006 - 13:21:03 ---------------------------------------- Dunque la tua acquisizione è configurata per acquisire 4 canali in differenziale. L'array che ottieni contiene i valori delle 4 letture fatte sugli ingressi ad ogni ciclo di loop. Per graficare i dati ti consiglio l'utilizzo di un waveform chart, ovvero un grafico a scorrimento in cui visualizzi sequenzialmente i valori. Devi convertire l'array in un cluster con la funzione Array to Cluster che trovi nella palette relativa alle funzioni cluster, quindi collegare l'uscita direttamente al chart. Per una visualizzazione corretta ricordati di selezionare la cluster size a 4 (tasto destro del mouse sulla funzione...). Se non ti sono chiari i passaggi ti consiglio vivamente di dare un occhio agli esempi di LV relativi ai charts, in particolare a Charts.vi che trovi in : ...\labview\examples\general\graphs\charts.llb Ciao, Alberto ---------------------------------------- AUTORE: 1313 DATA :21/06/2006 - 16:53:16 ---------------------------------------- GRAAANDE ALBERTO!!! funziona benissimo, e mi sono chiarito anche alcuni concetti. Quindi adesso, ricapitolando, creo un task per acquisizione di 4 segnali analogici differenziali, i quali sono in un array che trasformo in cluster e grafico a video. Quindi a questo punto per memorizzare i dati in un file, premettendo che ho visto nei vari post la creazione ecc, cosa mi convienefare. In altre parole devo prendere i dati dall'array o dal cluster ?? (sempre se lo posso fare in tutti e due i modi) Grazie p.s. spero che a tutiti i principianti come me sia utile il topic. ---------------------------------------- AUTORE: 1313 DATA :22/06/2006 - 09:16:15 ---------------------------------------- Allora, ho scoperto che esiste già un "blocchetto" di labview che scrive il segnale in un file. Però per fare un pò di pratica volevo scrivero da solo. Quindi, sono riuscito a creare/aprire, scrivere e chiudere un file. Però i valori presi dall'array di output del task vengono scritti come caratteri strani, come mai??? Come posso scriverli correttamente?? Grazie in anticipo, Cris ---------------------------------------- ================================================================================ Possibile baco comunicazione LV -> MySql ================================================================================ AUTORE: 952 DATA :20/06/2006 - 15:17:58 ---------------------------------------- Ciao, facendo dei test di connessione ad un db di MySql (4.1) tramite connettore ODBC 3.5.1 ho verificato questo strano caso: la connesione funziona invertendo i parametri user e password rispetto a quanto settato in MySql Per connetermi ho seguito le linee guida dell'articolo di Gabriele Melani qui pubblicato (complimenti, molto chiaro) e i componenti del LV DB toolset. Ho controlato i collegamenti del codice nel VI NI e sono a posto, a questo punto non rimane che un baco in LV od in MySql... Qualcuno ha avuto esperienze analoghe? Ciao PS io uso la versione 7.0 di LV ---------------------------------------- AUTORE: 952 DATA :20/06/2006 - 15:40:12 ---------------------------------------- Come non detto mi sa che mi ero fumato qualcosa di molto potente... Cancellate pure il topic Ciao ---------------------------------------- AUTORE: 645 DATA :20/06/2006 - 16:09:34 ---------------------------------------- Capperi, grazie per i complimenti! Meno male che poi è tornato a funzionare altrimenti era meglio dare un'occhiata a quanto scritto... Scherzi a parte comunque io non ho mai trovato questo problema. Però mi è capitato di riuscire ad accedere al database inserendo solo UserID e nessuna Password. Ma non so di preciso cosa combinasse il mio VI perchè poi non mi è più successo. ---------------------------------------- ================================================================================ Salvataggio file: non tutti i dati... ================================================================================ AUTORE: 645 DATA :20/06/2006 - 16:24:26 ---------------------------------------- Ho una tabella (per la precisione Multiclumn Listbox) piena di dati (400 righe e 20 colonne). Voglio salvare i dati: uso il blocco di creazione/apertura, scrivo sul file le intestazioni delle colonne, scrivo sul file tutti i dati con un ciclo che scorre tutte le righe e per ogni riga scorre tutte le colonne. Però non metto il blocco di chiusura del file. Questa scrittura file si trova all'interno di una "Case Structure". Dopo aver scritto tutti i dati il VI torna in attesa dell'evento successivo. Risultato? Se apro il file ".xls" con Excel (ma lo stesso avviene con un normale file ".txt" aperto con il Blocco Note) trovo che non sono stati salvati tutti i dati ma solo una piccola parte (tipo una trentina di righe). Inserendo anche il blocco di chiusura file prima di tornare alla struttura ad eventi i dati vengono salvati correttamente. Qualcuno sa come mai? Il problema si è risolto ma mi rimane la curiosità di capire cosa combina LabView (7.1). ---------------------------------------- AUTORE: 113 DATA :20/06/2006 - 16:47:44 ---------------------------------------- Ciao Mago! Da quello che ne so dovrebbe essere un comportamento normale di Windows. Credo infatti che per la scrittura su file venga creato un buffer di memoria che viene svuotato con la scrittura dei dati quando chiudi il file. Non so dirti nei dettagli come funziona il meccanismo, ma ti consiglio di utilizzare la funzione Flush File che trovi nella palette Advanced File Functions, dovrebbe svuotare il buffer al volo e scrivere i dati. Ciao, Alberto ---------------------------------------- AUTORE: 1078 DATA :21/06/2006 - 14:23:03 ---------------------------------------- Ciao, Ho provato a replicare il tuo problema. Ho inventato questo VI che simula la tua situazione, unica differenza è che ho utilizzato una Tabella di testo anzichè un Multicolum List, l'effetto è comunque uguale. Un dettaglio che potresti aver trascurato è il fatto di inserire nel file .TXT il fine riga, quindi non vedi 400 righe ma una strnga lunga che si spezza di tanto in tanto perchè hai raggiunto i limiti di carrello dati da windows. Nel mio SW puoi vedere che costruisco una tabbella con le dimensioni che hai indicato e che salvo i dati separando le colonne con il carattere di tabulazione e le righe con il carattere di fine riga e ritorno a capo. Non ho inserito le intestazioni di riga e di colonna perchè non so come le vuoi salvare!!!! Ciao... ---------------------------------------- ================================================================================ Ricampionare un segnale ================================================================================ AUTORE: 660 DATA :20/06/2006 - 16:32:56 ---------------------------------------- Ciao a tutti, ho un segnale analogico acquisito utilizzando come trigger un encoder a 1024 impulsi/giro. Devo "ricampionarlo" a 360 impulsi/giro qualcuno di voi ha qualche suggerimento da darmi? Grazie Max ---------------------------------------- AUTORE: 748 DATA :21/06/2006 - 00:49:36 ---------------------------------------- Se ti basta un'interpolazione lineare dei valori e un programmino "alla buona" io farei come in figura. L'input è una matrice unidimensionale in floating point Mark ---------------------------------------- AUTORE: 1050 DATA :21/06/2006 - 07:59:04 ---------------------------------------- Ciao, puoi usare "[b:3gwygy0i]Analyze\Waveform Conditioning\Resample Waveform.vi[/b:3gwygy0i]" oppure "[b:3gwygy0i]Analyze\Signal Processing\Time Domain\Decimate.vi[/b:3gwygy0i]" la prima usa una waveform in inout mentre la seconda accetta un array. Saluti ---------------------------------------- AUTORE: 660 DATA :21/06/2006 - 12:33:54 ---------------------------------------- grazie ad entrambe, la prima soluzione l'ho appena provata e funziona egregiamente, adesso provo anche l'altra. Ciao Max ---------------------------------------- ================================================================================ Scorrimento automatico di una tabella ================================================================================ AUTORE: 1078 DATA :21/06/2006 - 14:35:57 ---------------------------------------- Ciao a tutti, Devo realizzare un SW che consenta all'utente di inserire dati in una tabella composta da 6 colonne e 5 righe. Nel mio front panel posso visualizzare al massimo 4 colonne e tutte le righe della tabella. Vorrei che l'utente potesse inserire i dati scorrendo i campi con l'utilizzo del tasto tabulatore e che arrivato all'ultima colonna la tabella si spostasse automaticamente sulle due colonne nascoste. Ho provato in diversi modi ma non riesco a far spostare la visualizzazione delle colonne, riesco ad allargare il controllo e visualizzare tutto il resto ma non è ciò che voglio. Qualcuno sa come si possa risolvere il problema? Spero sia chiaro. Ciao e grazie.... ---------------------------------------- ================================================================================ Mini centralina Luci.. aiuto please ================================================================================ AUTORE: 1161 DATA :21/06/2006 - 16:31:22 ---------------------------------------- Salve, Io sto facendo una piccola centralina luci con labview, cioè io metto in labview 8 led e 1 dispositivo per controllare la velocità di come le lampadine i led in labview devono lampeggiare..... Sapreste dirmi che dispositivo mettere per fare questa opzione di lampeggiamento delle luci? Non riesco a trovare la funzione per farle lampeggiare....e se perfavore potete dirmi qual'è l out per vedere ciò sul mio dispositivo che è un BNC-2120 Perfavore aiutatemi.... grazie ---------------------------------------- AUTORE: 278 DATA :21/06/2006 - 16:49:53 ---------------------------------------- [quote:1r7d1h11]Sapreste dirmi che dispositivo mettere per fare questa opzione di lampeggiamento delle luci?[/quote:1r7d1h11] non ho capito cosa intendi.... Se usi dei led, puoi accenderli e spegnerli sfruttando le uscite digitali della basetta BNC-2120. Devi solo attivare e disattivare di continuo l'uscita collegata al LED per vederlo lampeggiare (ricordati di inserire una resistenza di polarizzazione per ogni led). Per aumentare o diminuire la velocità del lampeggìo puoi aumentare o diminuire la velocità del loop che attiva/disattiva l'uscita digitale. I connettori BNC presenti sulla scheda BNC-2120 sono uscite ed ingressi analogici, non credo che servano al tuo scopo. ---------------------------------------- AUTORE: 1161 DATA :22/06/2006 - 10:27:23 ---------------------------------------- Grazie di avermi risposto..... Chiedo, ma sul Labview c'è una funzione di lampeggiamento delle luci... cioè posso vedere io sul labview le luci che si accendono e si spengono come io lo desidero.....Come le luci di una discoteca, che si accendono tutte insieme o una dopo l'altra o due a due...capito come dico?? Avresti un piccolo esempio...? ---------------------------------------- AUTORE: 1161 DATA :22/06/2006 - 10:30:51 ---------------------------------------- vorrei fare una simulazione di una centralina di luci di una discoteca...però la simulazione la voglio vedere sul labview....io con i comandi gli imposto la velocita e il ritmo delle luci....serie (una dopo l'altra), due a due, tutte insieme io ho 4 luci..... Se ha un pikkolo esempio da mostrarmi, se ha capito quello he voglio la ringrazio moltissimo... ---------------------------------------- AUTORE: 680 DATA :23/06/2006 - 20:21:12 ---------------------------------------- questa potrebbe essere una soluzione..... sicuramente può essere migliorata... bye ---------------------------------------- AUTORE: 1161 DATA :26/06/2006 - 14:40:09 ---------------------------------------- Grazie per l'aiuto...ora vedrò di vedere se è quello che mi serve grazie comunque.. Ti farò sapere...... ---------------------------------------- AUTORE: 1161 DATA :26/06/2006 - 15:05:54 ---------------------------------------- Grande!!!! Ti ringrazio davvero è proprio quello kie mi serviva grazie... ora vedrò di modificare....e divertirmi perkè ora devo provare a comunicare con IL BNC 2120..... GRAZIE..... ---------------------------------------- ================================================================================ app builder: dll e llb mancanti ================================================================================ AUTORE: 712 DATA :21/06/2006 - 16:33:11 ---------------------------------------- Salve a tutti, ho il seguente problema: creando un eseguibile con l'app builder e installandolo su una macchina "vergine", quando provo a lanciarlo mancano in sequenza tutta una serie di dll (nilvaiu.dll, nidaq32.dll ecc.) e quindi, una volta inserite "a mano" nell'installazione usando l'opzione files di installer settings, mi viene pure segnalato che mancano tutta una serie di files (DIO port config.vi ecc.); la cosa non mi era mai successa fino ad ora, dato che normalmente il VI principale si tira dietro tutto ciò che gli serve automaticamente, quindi non so come fare per uscirne fuori. Avete qualche idea in proposito? labview e app builder V. 7.0 ---------------------------------------- AUTORE: 278 DATA :21/06/2006 - 16:56:24 ---------------------------------------- Ciao, spero di aver correttamente interpretato il tuo problema e di essere in grado di darti una risposta soddisfacente.... \":oops:\" Immagino che sulla macchina "vergine" tu abbia installato solo il runtime engine. Quando crei l'eseguibile (attenzione, non l'installer) LV NON copia tutte le DLL relative alle schede DAQ e alle varie funzioni di imaging... le devi inserire tu a mano, specificandole una ad una. Se invece crei l'installer dovrebbe (il condizionale è d'obbligo) inserire tutto quello che serve per il corretto funzionamento del vi, ad esclusione dei file di supporto (file di config ecc) e le librerie esterne non NI. ---------------------------------------- AUTORE: 482 DATA :22/06/2006 - 07:22:54 ---------------------------------------- Vedendo gli errori cosi' direi che non aveva installato neanche il run time engine. Quindi quando di sfa un eseguibile "standard" che usa le librerie DAQ occorre portare sul pc vergine: -Eseguibile; -Cartella DATA creata insieme all'eseguibile; -Run time engine; -NI DAQ; Tutto questo nel caso non siano utilizzati nel programma particolari toolkit, altrimenti le possibilità diventano svariate. ---------------------------------------- AUTORE: 1137 DATA :22/06/2006 - 08:40:38 ---------------------------------------- Primo consiglio, passare da LV7 a LV 7.1, che si sa che le versioni .0 non sono affidabili... \":-)\" Poi, per creare l'eseguibile ci sono due strade: 1. nell'installer richiamare le .dll 2. installare i pacchetti con le dll sulla macchina destinazione Io uso entrambe le strade, ma prevalentemente la seconda, che ha lo svantaggio che devi assolutamente scriverti qual'e' la versione delle dll da installare perche' con la versione dopo (o prima) non funzionera' piu' niente. Ha il vantaggio che le dll si troveranno sempre allo stesso posto e ci saranno tutte. Lo svantaggio della prima tecnica e' che se fai un aggiornamento delle dll sul pc dove compili, rischi di mandare a monte tutto ancora per incompatibilita'. Se ne vale la pena per il tuo progetto, la cosa migliore e' avere un disco rimovibile per ogni progetto, dove l'ambiente di sviluppo (versione LV, dll ecc) cambia solo quando lavori su quel progetto, e se ti serve fare una modifica, ficchi dentro il disco e riparti esattamente da dove l'hai lasciato. Good Luck! ---------------------------------------- AUTORE: 712 DATA :26/06/2006 - 13:16:04 ---------------------------------------- ragazzi grazie a tutti per i suggerimenti causa trasferte non posso iniziare l'indagine prima di giovedì, cmq prometto che vi terrò informati! ciao, L. ---------------------------------------- AUTORE: 5314 DATA :01/11/2012 - 17:35:54 ---------------------------------------- ciao a tutti anch' io ho lo stesso problema quando vado a compilare una applicazione che con labview 8 funziona con labview 2011. In pratica quando eseguo l' app nella macchina target, mi mancano sempre dei vi che sono all' interno della vi.lib e che non sono stati messi dentro al progetto. Perchè il fatto di copiare la vi lib nella macchina target nella stessa cartella dell' eseguibile non funziona piu (con l' 8 funzionava!) \":x\" Qualcuno può aiutarmi? grazie ---------------------------------------- AUTORE: 2601 DATA :13/06/2013 - 13:29:51 ---------------------------------------- Ciao a tutti, utilizzano il Build Application di LV2010 ho lo stesso problema. Devo far girare il VI su una macchina un po' datata ho creato l'eseguibile, ma non riesco a portarmi dietro la libreria nilvaiu.dll, ho tentato anche copiandola, ma mi da l'errore "non è un immagine valida di windows.." Non credo che bisogna installare NI-DAQ per avere solo le librerie necessarie all'esecuzione del VI. Qualcuno è riuscito a risolvere? ciao grazie D. ---------------------------------------- AUTORE: 482 DATA :14/06/2013 - 07:21:22 ---------------------------------------- non è che sviluppi in 64 bit? ---------------------------------------- ================================================================================ convertire intero in stringa ================================================================================ AUTORE: 1313 DATA :22/06/2006 - 13:34:25 ---------------------------------------- Salve ragazzi, sapete come convertire un intero in una stringa??? grazie in anticipo, Cris ---------------------------------------- AUTORE: 487 DATA :22/06/2006 - 13:45:38 ---------------------------------------- Ciao Cris, puoi trovare le funzione che ti serve in: function palette >> string >> string/number conversion >> number to decimal string ---------------------------------------- ================================================================================ acesso programatico ad attributi di elementi di un cluster ================================================================================ AUTORE: 238 DATA :22/06/2006 - 16:59:59 ---------------------------------------- Piccolo problema \":!:\" Ho un cluster composto da stringe, booleani e numeri; esiste un modo di cabiare BG dei singoli elementi , disabilitare l’ input e la visibilita’ di certi elementi \":?:\" ---------------------------------------- AUTORE: 129 DATA :22/06/2006 - 17:11:32 ---------------------------------------- Certo basta che clicchi tasto dx sul singolo controllo e create/property dal pop-up. Adesso ti rimane solo selezionare la property color, che è composta dal cluster BG color e FP color. Spero esserti stato di aiuto,Nic ---------------------------------------- AUTORE: 238 DATA :23/06/2006 - 07:40:42 ---------------------------------------- Mi sono spiegato male \":oops:\" Siccome il cluster contiene ca 40 elementi cercavo un modo di accedere alle proprieta’ dei singoli elementi attraverso i label degi elementi o l’ ordine. Si puo’ \":?:\" ---------------------------------------- AUTORE: 1050 DATA :23/06/2006 - 07:58:03 ---------------------------------------- Ciao, un metodo è creare un property node del cluster e selezionare come proprietà "Controls[]": questo è un array di reference ai singoli elementi del cluster; a questo punto puoi usare un ciclo for e collegare i singoli reference ad un property node. Saluti ---------------------------------------- AUTORE: 238 DATA :23/06/2006 - 09:03:12 ---------------------------------------- Funziona \":D\" Grazie \":!:\" Piu´veloci della luce \":arrow:\" ---------------------------------------- ================================================================================ USB e Video Assistant 7.1 ================================================================================ AUTORE: 516 DATA :22/06/2006 - 22:11:17 ---------------------------------------- Ciao a tutti Ho trovato sul sito della NI come gestire una webcam , ho scaricato il loro sw ma quando lo "lancio" mi dice che devo avere Vision Assistant 7.1 , con la mia versione di Labview 7.1 ho vision assistant 7.0 sul sito della NI ho visto un upgrade ma al massimo diventa 7.0.1 , dove posso trovarlo Vision Assistent 7.1 ? quancuno di voi ha già provato a smanettare con la webcam ? Grazie Mille a tutti Ciao Sergio ---------------------------------------- AUTORE: 278 DATA :23/06/2006 - 08:25:06 ---------------------------------------- ciao, il vision assistant 7.0 è una versione rilasciata prima della 7.1, esattamente come LV 7.0 e 7.1. Non esistono (che io sppia) degli upgrade che ti portano la versione 7.0 alla versione 7.1. In sostanza, ti devi rivolgere a NI e procurarti la versione 7.1. del vision assistant. Io ho una discreta esperienza in merito a vision e webcam USB, se hai qualceh domanda.....chiedi pure!! [img:2wwgc0xc]http://faccine.forumfree.net/boxed3_h4h.gif[/img:2wwgc0xc] ---------------------------------------- AUTORE: 516 DATA :23/06/2006 - 18:22:49 ---------------------------------------- Ciao Grazie Mille per la risposta . Quello che vorrei fare io (al momento) sarebbe riuscire a gestire una webcam (della logitec) tramite labview , per forza devo avere vision assistant 7.1 ? o posso realizzarlo in altro modo ? Ciao Sergio ---------------------------------------- ================================================================================ Visualizzazione segnale a dente di sega ================================================================================ AUTORE: 1029 DATA :23/06/2006 - 12:34:16 ---------------------------------------- Ciao a tutti! Devo risolvere un piccolo problema e ho pochissimo tempo e se non riesco a finire in tempo sono nei guai! Ho un segnale a dente di sega con periodo T=0,8 sec. Questo dente di sega è stato generato tramite un Simulate Signal con frequenza di campionamento pari a 10000 Hz e numero di campioni pari a 1000. Devo visualizzare questo segnale e ho utilizzato un Waveform graph. Il problema è nella visualizzazione del segnale. LabVIEW visualizza il segnale tra 0 e 0,1 sec, se tolgo l'autoscale e gli dico di visualizzarlo tra 0 e 0,8 sec mi traccia il dente di sega sempre tra 0 e 0,1 sec. Come faccio a visualizzare il segnale tra 0 e 0,8 sec? Inoltre vorrei che cominciasse a tracciare il dente di sega non a partire da zero, ma a partire dal suo valore minimo d'ampiezza. Quello che penso che faccia LabVIEW sia di visualizzare il segnale ogni 1000/10000 sec=0,1 sec, ma in questo modo mi visualizza solo porzioni del dente di sega (in quanto il periodo è 0,8 sec). Una soluzione sarebbe di modificare il numero di campioni ad 8000, ma poi avrei altri problemi. Si può far generare il segnale con 1000 campioni e poi farlo visualizzare con 8000 campioni? Cmq se c'è un altro metodo va benissimo, l'importante è che devo generare il dente di sega con frequenza 10000 Hz e con 1000 campioni. Vi ringrazio tantissimo e spero che mi possiate aiutare! ---------------------------------------- AUTORE: 909 DATA :23/06/2006 - 14:02:11 ---------------------------------------- [quote="fra'":1l29wwzx]Ciao a tutti! Devo risolvere un piccolo problema e ho pochissimo tempo e se non riesco a finire in tempo sono nei guai! Ho un segnale a dente di sega con periodo T=0,8 sec. Questo dente di sega è stato generato tramite un Simulate Signal con frequenza di campionamento pari a 10000 Hz e numero di campioni pari a 1000. Devo visualizzare questo segnale e ho utilizzato un Waveform graph. Il problema è nella visualizzazione del segnale. LabVIEW visualizza il segnale tra 0 e 0,1 sec, se tolgo l'autoscale e gli dico di visualizzarlo tra 0 e 0,8 sec mi traccia il dente di sega sempre tra 0 e 0,1 sec. Come faccio a visualizzare il segnale tra 0 e 0,8 sec? Inoltre vorrei che cominciasse a tracciare il dente di sega non a partire da zero, ma a partire dal suo valore minimo d'ampiezza. Quello che penso che faccia LabVIEW sia di visualizzare il segnale ogni 1000/10000 sec=0,1 sec, ma in questo modo mi visualizza solo porzioni del dente di sega (in quanto il periodo è 0,8 sec). Una soluzione sarebbe di modificare il numero di campioni ad 8000, ma poi avrei altri problemi. Si può far generare il segnale con 1000 campioni e poi farlo visualizzare con 8000 campioni? Cmq se c'è un altro metodo va benissimo, l'importante è che devo generare il dente di sega con frequenza 10000 Hz e con 1000 campioni. Vi ringrazio tantissimo e spero che mi possiate aiutare![/quote:1l29wwzx] ciao, se generi un segnale di 1000 sample con Fc=10000 ne generi i primi 0,1s e su questo penso ci sia poco da fare. Il segnale una volta generato deve essere utilizzato per pilotare un generatore di funzioni o lo utilizzi così come esce simulato ? ---------------------------------------- AUTORE: 1165 DATA :23/06/2006 - 14:02:58 ---------------------------------------- Non sono sicuro di aver capito bene il tuo problema e quindi provo a risponderti per quel che mi sembra di aver capito io, o meglio esattamente come ti sei risposto tu: se hai un segnale generato ad una frequenza di 10.000 campioni al secondo e di questo segnale prendi solo 1.000 campioni (sequenziali!) è ovvio che tu puoi solo vedere 0,1 secondi di traccia, qualunque sia l'artificio grafico di visualizzazione che vai ad usare. Non vi sono altre possibilità, se non quella di "indovinare" (estrapolare) gli altri punti successivi, ma non è questo il tuo caso mi sembra. Quindi devi decidere se ridurre la frequenza di campionamento del segnale (sempre nel rispetto del teorema di Shannon-Nyquist, eventualmente con la pratica diffusissima della decimazione nel tempo, cioè prendendo un campione ogni tot campioni), oppure accettare di visualizzare un numero maggiore di campioni (nel tuo caso 8.000 per avere almeno 0,8 secondi di traccia visibile). Non mi sembra che vi siano altre soluzioni, sono comunque curioso di vedere se a qualcun altro viene in mente qualcosa di meglio. Ciao, Enr. ---------------------------------------- AUTORE: 1029 DATA :23/06/2006 - 14:15:18 ---------------------------------------- Ciao enr! Mi potresti spiegare questa tecnica della decimazione del tempo? Si può fissare il periodo a 0,8 sec e distribuire 1000 campioni in questo periodo anzichè in 0,1 sec? Per rispondere a David questo dente di sega mi serve per far variare la frequenza di una sinusoide e contemporaneamente per pilotare l'asse X di un EX XY GRAPH. Spero che ci sia una soluzione! Grazie a tutti! ---------------------------------------- AUTORE: 1165 DATA :23/06/2006 - 14:27:03 ---------------------------------------- La tecnica della decimazione nel tempo non è niente di trascendentale, banalmente dei tuoi 10.000 campioni al secondo prendi solo un campione ogni tanto, ad intervalli regolari, di fatto abbassando la frequenza di campionamento del segnale, stando attento a non scendere sotto il limite di Nyquist. Ad esempio nel tuo caso potresti prendere (solo per gli scopi di graficazione) un campione ogni dieci (trascurando gli altri nove) e graficare solo questi, perdendo naturalmente un po' di informazione, ma mi sembra che nel tuo caso questi valori ci possano stare. Così quando grafichi 1.000 punti ti ritrovi sul grafico un dente di sega intero più un pezzettino (esattamente un quarto in più). Se non sono stato chiaro dimmelo e vedrò di provare a dire il tutto più dettagliatamente. S.C.S.V. (salvo c..avolate e svarioni vari) ciao ed in bocca al lupo. Enr. P.S. lo sapevate che il contrario di TRASCENDENTALE è TRASALENTIZIO vero???? ---------------------------------------- AUTORE: 1029 DATA :23/06/2006 - 14:41:25 ---------------------------------------- Grazie per avermi risposto velocemente! Premetto che non sono molto pratico di questo linguaggio di progammazione, cmq mi sembra strano che sia così complicato visualizzare un periodo del dente di sega in una sola finestra di osservazione, il problema è che per i miei scopi non può andare bene vedere questo segnale pezzo per pezzo, ma lo devo visualizzare nella sua interezza. Esiste un blocco VI che permette di uitlizzare la tecnica della decimazione? Se hai tempo di spiegare come dovrei fare ne sarei felice! Grazie mille per l'aiuto! ---------------------------------------- AUTORE: 1165 DATA :23/06/2006 - 14:55:07 ---------------------------------------- Il tuo problema non nasce dalle caratteristiche del Labview, sarebbe lo stesso in qualsiasi altro linguaggio (sempre che io abbia capito correttamente quello che chiedevi), quindi non è un problema di visualizzazione, ma di conteggio dei campioni necessari per formare un forma d'onda. Per la decimazione prova ad usare il blocco "Analyze\Signal Processing\Time Domain\Decimate.vi", ho appena adesso rubato il suo path in un altro topic, dovrebbe funzionare bene. Tieni però presente che io, come mia filosofia personale di programmazione (ma è solo un parere molto personale!) preferirei farmelo da solo (è sicuramente molto facile anche per un neofita, e sicuramente molto più didattico e chiaro). Ti basterebbe un ciclo FOR dove colleghi il tuo array di forma d'onda (wavefor array) ad un tunnel di ingresso con l'autoindexing abilitato e con un CASE selezioni solo un campione ogni tot da mandare in un tunnel di uscita (usando come variabile selettore ad esempio il valore dell'indice del ciclo diviso per il tot di passo di decimazione), sempre con l'autoindexing abilitato. E' veramente molto semplice, ti consiglio di provarci. Di nuovo in bocca al lupo, ciao, Enr. ---------------------------------------- AUTORE: 1029 DATA :23/06/2006 - 15:01:52 ---------------------------------------- Grazie per l'aiuto, il fatto è che questa volta ho pochissimo tempo; entro domenica devo aver risolto tutti i problemi altrimenti sono nei guai, ora provo con entrambe queste strade sperando che si possa fare anche con i Dynamic Data. Grazie per l'aiuto! ---------------------------------------- AUTORE: 1029 DATA :23/06/2006 - 15:21:50 ---------------------------------------- Mi sta venendo in mente un'altra idea, per la generazione utilizzo Fc=10000 Hz e 1000 campioni, mentre per la visualizzazione in qualche modo devo riadattare il dente di sega sempre con Fc=10000 ma con numero di campioni=8000. Rimane sempre il problema che il dente di sega parte da zero e non dal valore minimo d'ampiezza del dente di sega. Avete qualche idea di come fare? Grazie mille! ---------------------------------------- ================================================================================ error code21 ================================================================================ AUTORE: 116 DATA :23/06/2006 - 15:43:57 ---------------------------------------- ciao Il venerdi sera non è certo il momento, ma il fine settimana potrebbe portare consiglio...bando alle ciance Io ho questa rogna e non riesco a venirne fuori. dopo aver compilato il miei bei VI, faccio l'installazione in un altro PC e poi quando lancio il prog. si apre questo popup: An error occurred loading VI "mean.vi" LabVIEW load error code 21: An external subroutine required for execution could not be found le ho provate tutte ma dopo ore di tentativi mi sono rotto i... qualcuno riesce a darmi una dritta? per il momento ringrazio Alberto ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 08:49:57 ---------------------------------------- Sembrerebbe mancare la DLL "\lvanlys.dll". Questa è una dll della NI che esegue gran parte delle operazioni matemetiche. Una delle cause potrebbe essere che sulla macchina target non hai installato correttamente il run-time di LV (o hai una versione diversa da quella della macchina sorgente oppure hai escluso l'inerimento dal run-time delle funzioni di analisi) Prova a ricontrollare bene tutti i paramentri dell'app builder e, se ne hai disponibilità, prova ad installare su una macchina che non ha mai visto LV. Ciao, ---------------------------------------- AUTORE: 116 DATA :04/07/2006 - 07:37:20 ---------------------------------------- ciao Ale scusa se non ho potuto rispondere prima è proprio come dici tu, manca la libreria matematica per il mean.vi è stato sufficente includere in "advaced..." la libreria "Analyze VIs Support" e ricompilare il tutto. facendo le prove in un P.C. "vergine" ho verificato che funzioni tutto anche senza installare il RUN TIME [b:2tqxeuca]considerazione personale[/b:2tqxeuca]: mi sembra esagerato il RUN TIME 7.1 (oltre 30MB) anche l'installazione del mio programma (16MB) non è venuta piccola. se sono installazioni da eseguire personalmente con P.C. in mano non ci sono problemi, ma quando il cliente deve fare il down load dal nostro sito internet può diventare un problema. National dovrebbe trovare una soluzione dove il programmatore include solo quello che gli serve.!! ciao grazie Alberto ---------------------------------------- ================================================================================ Ancora sul dente di sega ================================================================================ AUTORE: 1029 DATA :23/06/2006 - 16:33:14 ---------------------------------------- Grazie ad un topic precedente ho risolto il problema della visualizzazione nell'asse X. Il problema rimane nell'ampiezza. Vorrei visualizzare il dente di sega a partire dal valore (ad esempio) -10 V fino al valore 10 V e vederlo nella sua interezza e non a poco a poco (i valori della scala dell'asse Y devono rimanere fissi). Spero che si sia capito, allego il VI, e scusate se oggi sto scrivendo troppi topic. Grazie mille! ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 08:51:36 ---------------------------------------- Basta fare tasto DX sulla grafico sulla scala delle Y e disablilitare l'auto scaligin e il fitting, poi imposti a mano direttamente sulla scala del grafico i valori minimo e massimo. Ciao ---------------------------------------- ================================================================================ Form Utente ================================================================================ AUTORE: 1219 DATA :23/06/2006 - 18:45:11 ---------------------------------------- Salve ragazzi, Inutile dire che sono alle prime armi... comunque : Ho realizzato il mio bel pannello con labView con pulsantini e quant'altro... ... ora però un dubbio mi assale come faccio a renderlo utilizzabile \":?:\" \":?:\" mi spiego meglio : caricato il .vi ... restano le barre di scorrimento laterali ... visualizzo il menù ... premuto il tasto di avvio tutto scompare, sono riuscito a disabilitare i controlli ... ma vorrei che tutte queste cose fossero invisibili già all'avvio del .vi come si fà \":?:\" \":?:\" ---------------------------------------- AUTORE: 13 DATA :26/06/2006 - 10:08:07 ---------------------------------------- Ciao Devi semplicemente utilizzare L'application Builder se vuoi che il tuo Programma sia utilizzabile su una macchina che non abbia l'ambiente di sviluppo. Se invece non sei in possesso dell'application Builder , ma vuoi cmq utilizzare il tool senza barre laterali e quant'altro devi andare a modificare le proprieta' del vi nel seguente modo. File ----- Vi properties ----> Category (windows appareance) --------> Customize li trovi tutte le proprieta' del vi compresa la visualizzazione delle barre dei tasti run , dei menu e tutto il resto....... SALUTI Peppe \":-)\" se ti servono informazioni in piu' a riguardo chiamami al mio interno IL CICCA sa come rintracciarmi ..... \":-)\" CIAO CIAO CIAO CIAO CIAO CIAO CIAO CIAO ---------------------------------------- AUTORE: 1219 DATA :26/06/2006 - 19:43:13 ---------------------------------------- Ok ... grazie per la disponibilità ... in effetti avevamo a disposizione la versione 5.5 di labview e quella non prevede il builder, compilare con un versione più recente era forse una soluzione, ma abbiamo fatto delle prove ed il risultato non ci soddisfaceva ... alla fine il collega "alwaysgood" ha avuto un'intuizione geniale ... mettere il tutto in un ciclo "while" con pulsantino di uscita. Questo però ci faceva partire di continuo il programma, quindi interno al ciclo "while" una struttura "case - True/False " con tanto di pulsantino sempre in ON. Ne è venuto fuori un laverro niente male ... Saluti Cobuccit ---------------------------------------- AUTORE: 13 DATA :27/06/2006 - 08:21:28 ---------------------------------------- La soluzione adottata e' quella utilizzata di solito in un programma , pero' ti consiglio se hai la possibilita' di passare a Labview dalla 7 in poi . Nelle versioni successive alla 5 e' stata introdotta la gestione degli eventi , la quale ti da la possibilita' di avere un controllo piu' adeguato in termini di prestazioni. L' utilizzo inoltre dell'application builder e' quello di non caricare ogni volta tutto l' ambiente di sviluppo e dio utilizzare il programma anche su macchine dove labview non e' installato. Inoltre se osservi il task manager durante l'esecuzione del tuo programma vedrai un utilizzo della cpu sempre al 100% , questo e' dovuto dal fatto che labview durante il cilco while senza la gestione ad eventi , utilizza la cpu in maniera continua. Nella programmazione ad eventi tutto cio' non accade , per il semplice motivo che utilizza la cpu solo ed esclusivamente quando un evento ( double click , la pressione di un tasto etc... ) viene richiamato. Il mio consiglio sempre se ti e' possibile e' di passare a una versione successiva di labview. Vedrai moltissime funzioni aggiuntive molto utili per lo sviluppo di un programma veloce e affidabile. SALUTI E buon lavoro p.s. Anche x la 5.5 esiste l'application builder. \":-)\" ---------------------------------------- AUTORE: 1219 DATA :27/06/2006 - 14:04:55 ---------------------------------------- tutto giusto ... hai ragione riguardo all'utilizzo della CPU ... ma se mi dici che dalla 5.5 già esite l'application builder ... allora ci darò un'occhiata meglio ... poi ti farò sapere Grazie Ciao ---------------------------------------- ================================================================================ modifica colore sfondo ed elementi ================================================================================ AUTORE: 1313 DATA :24/06/2006 - 21:55:18 ---------------------------------------- Salve ragazzi, una domanda un pò banale. Ho scaricato un vi ed ho visto che ha lo sfondo bianco, anche i vari elementi visuali hanno lo sfondo bianco. Sapreste dirmi come si modifica il colore?? grazie in anticipo, Cris ---------------------------------------- AUTORE: 129 DATA :26/06/2006 - 06:47:37 ---------------------------------------- BAsta che utilizzi il tool pennello e premi SX sullo sfondo o sul controllo che intendi modificare. Per selezionare il tool pennello, basta che premi il tabulatore finchè non ti compare, oppure dalla barra menu: windows/shows tool palette. Ciao ---------------------------------------- AUTORE: 1313 DATA :26/06/2006 - 07:48:53 ---------------------------------------- Grazie, adesso il mio VI è più allegro. Cris ---------------------------------------- ================================================================================ File di configurazione ".ini" ================================================================================ AUTORE: 1199 DATA :26/06/2006 - 11:14:57 ---------------------------------------- Salve a tutti il problema che vorrei sottoporre, è in realtà di tipo quasi estetico. Io nelle mie applicazioni mi appoggio sempre ad un file INI nella cartella della mia applicazione, in cui vado a configurare il comportamento di alcune parti dell'applicazione che voglio rendere configurabile. Fin qui direi di aver detto un'ovvietà. Non so se però avete mai notato, che se utilizzando i blocchetti di LabVIEW dedicati alle operazioni su INI si salvano dei valori nel'INI (o magari semplicemente passando True al parametro "write configuration file? (T)" del blocchetto "Close Configuration Data.vi") questo compatta il testo dell'ini, togliendo le righe vuote che magari avevo inserito per separare meglio le varie sezioni, e aggiunge un "=""" alla fine di tutte le righe di commento (che nei file ini di prassi sono quelle precedetute da ";"). Io ho ovviato al problema, utilizzando le API di Windows quando devo scrivere anzichè usare i blocchetti che mette a disposizione LabvIEW, ma volevo sapere se qualcun'altro ha avuto il problema e/o magari lo ha risolto, in un modo migliore. ---------------------------------------- AUTORE: 645 DATA :26/06/2006 - 15:30:04 ---------------------------------------- Sembrerà una risposta del cavolo ma io uso i blocchi di lettura e scrittura su file classici e lavoro su un file con estensione ".ini" senza problemi. ---------------------------------------- AUTORE: 1199 DATA :26/06/2006 - 16:09:16 ---------------------------------------- Bhe, come precisato nel mio post i "problemi" sono in realtà solo di carattere quasi estetico. Se provi ad inserire delle righe vuote in un file ini e Poi scrivi dei valori usando i blocchetti standard di LabVIEW, le righe vuote vengono rimosse. Ci sono poi un altro paio di incovenienti, comunque tutti della stessa entità. Provare per credere. ---------------------------------------- ================================================================================ DaqMx read problema ================================================================================ AUTORE: 904 DATA :26/06/2006 - 11:30:48 ---------------------------------------- Per cortesia qualcuno saprebbe indicarmi come risolvere il seguente problema: Ho creato tre data neighborhood NI-DAQmx task (rispettivamente 3 analog input in tensione). Nella VI principale ho inserito la loro lettura tramite la VI DaqMx read impostata come analog dbl 1chan 1 sample. Succede però che dei tre canali ho solo la lettura corretta di 1 data neighborhood mentre gli altri due canali generano il seguente error out error 89130 DAQmx Read (Analog DBL 1Chan 1Samp).vi<append> <B>Task Name: </B>MyVoltageTask Per cortesia qualcuno saprebbe indicarmi dove sto sbagliando ? In attesa di un vostro aiuto Ringrazio Anticipatamente Saluti \":D\" ---------------------------------------- AUTORE: 1050 DATA :26/06/2006 - 12:11:06 ---------------------------------------- Ciao, non ho compreso completamente il problema (hai creato 3 task diversi o un unico task?) comunque prova a darti un suggerimento: se hai creato un task con 3 AI e devi leggere 1 sample sui 3 canali allora la read che devi usare è: "Analog 1D DBL [u:2rb6h6m7]N Chan[/u:2rb6h6m7] 1 Sampl". saluti ---------------------------------------- AUTORE: 904 DATA :26/06/2006 - 12:48:39 ---------------------------------------- Ho creato 3 diversi task con 1 canale per task .... Vale la stessa regola che mi hai suggerito ? Grazie Saluti \":)\" ---------------------------------------- AUTORE: 1050 DATA :26/06/2006 - 14:24:57 ---------------------------------------- Ciao, ho provato 3 tasks diversi con "1 Chan 1 Sampl" e funziona (vedi foto). Il codice di errore a cui ti riferisci sembra legato all'impossibilità di comunicare con la scheda DAQ perchè in fase di "reset": forse il tuo problema potrebbe non essere la vi di read... ---------------------------------------- ================================================================================ 2D Array ================================================================================ AUTORE: 1252 DATA :26/06/2006 - 12:20:53 ---------------------------------------- Buongiorno a tutti, tanto per cambiare avrei bisogno del vostro aiuto... \":wink:\" Ho un 2D Array e devo fare in modo di sommare i primi due elementi e questa somma la devo sommare al terzo elemento e cosí via...ho provato a farlo, ma non funziona come vorrei... \":oops:\" Spero che qualcuno mi possa aiutare.. grazie. Filippo ---------------------------------------- AUTORE: 482 DATA :26/06/2006 - 12:41:59 ---------------------------------------- Se si tratta di una semplice sommatoria di un array c'e' tra i modulini delle operazioni sui numerici , un modulino che si chiama "add array element". Prende in ingresso un array e restituisce in uscita la somma di tutti gli elementi. Stavo cercando di costruire un VI sulle tue spiegazioni...e mi son reso conto che hai spiegato in una maniera contortissima il voler sommare tutti gli elementi di un array. \":lol:\" ---------------------------------------- AUTORE: 1252 DATA :26/06/2006 - 13:11:29 ---------------------------------------- In effetti hai ragione...me ne sono reso conto adesso del fatto che si capiva poco quello che volevo... \":oops:\" Comunque grazie, adesso provo a vedere se funziona! \":D\" Filippo ---------------------------------------- AUTORE: 1252 DATA :26/06/2006 - 13:30:26 ---------------------------------------- Ho appena provato a usare il modulino "add element array", ma non funziona come dovrebbe. Probabilmente sono io che sbaglio in qualcosa, ma non capisco in cosa. Allego il programma che ho fatto cosí che magari qualcuno puó dirmi dove sbaglio, la parte in questione è quella in basso a sinistra. Filippo ---------------------------------------- AUTORE: 482 DATA :26/06/2006 - 13:56:01 ---------------------------------------- Non mi è molto chiaro in che formato ti escono i dati..cmq... direi che è chiaro che esce un array bidimensionale e non un array monodimensionale tuttavia il risultato del modulino non cambia...fa LA SOMMA DI TUTTI GLI ELEMENTI DELL'ARRAY. Quindi visto che il modulino non puo' sbagliare l'unica cosa che mi viene in mente sia che il risultato che vuoi ottenere non è la somma di tutti gli elementi dell'array. Potrebbe essere che di quell'array bidimensionale tu abbia bisogno solo la prima o solo la seconda riga... ---------------------------------------- AUTORE: 1252 DATA :26/06/2006 - 14:04:04 ---------------------------------------- Non so se il modulino puó sbagliare o meno, ma visto che i valori li salvo su un file, ho provato a fare la somma a mano e il risultato è diverso. Io voglio che nel Numeric Indicator "Capacity [mAh]" ad ogni iterazione mi esca la somma degli elemnti che ci sono nel mio array, il che vuol dire che ad ogni nuova iterazione il mio numerino dovrebbe aumentare. Invece questo non accade, il numerino che esce è il valore che sto acquisendo in quel momento e non la somma. ---------------------------------------- AUTORE: 645 DATA :26/06/2006 - 15:38:19 ---------------------------------------- Ho dato un'occhiata la VI ma siccome ci sono un sacco di collegamenti mi sono perso un po' via... Comunque per sommare gli elementi di un array mono o bi dimensionale puoi usare anche gli indici delle posizioni da analizzare. Se si tratta dell'ultima posizione puoi usare "Array Length"-1 (il -1 serve perchè il conteggio delle posizioni parte da zero). Quando colleghi un array bidimensionale ad un blocco per il calcolo della dimensione LabView ti permette di dividere il numero di righe dal numero di colonne: poi scegli ciò di cui hai bisogno. ---------------------------------------- AUTORE: 482 DATA :26/06/2006 - 15:59:18 ---------------------------------------- ah cazzarola! stavo pensando....perforza!! Perchè quell'array che tu hai in uscita non è un array storico dei dati..è un array che sarà credo composto da un elemento!! Per far funzionare il tutto devi mettere il risultato in uno shift register e poi accodare di volta in volta il nuovo risultato per fare poi la somma! Credo che quello che tu devi fare sia una cosa del genere. ---------------------------------------- AUTORE: 1252 DATA :26/06/2006 - 18:31:51 ---------------------------------------- Per prima cosa ti ringrazio...purtroppo adesso non ho la possibilità di controllare se funziona, ma domani mattina lo provo e ti faccio sapere. \":D\" Cmq GRAZIE MILLE!! \":D\" Filippo ---------------------------------------- AUTORE: 1252 DATA :27/06/2006 - 09:28:41 ---------------------------------------- Ciao, sono riuscito a provare il software che mi hai mandato e sembra funzioni!! GRAZIE!!!! \":D\" \":D\" \":D\" Filippo ---------------------------------------- ================================================================================ conversione stringa esponenziale ================================================================================ AUTORE: 1313 DATA :26/06/2006 - 13:02:54 ---------------------------------------- Salve ragazzi, ho un bel quesito, io leggo dalla porta seriale la seguente stringa: 0,1.0000E-09,9.0000E-07 <CR> io leggo questa stringa come caratteri ascii, e devo tradurre le due stringhe in esponenziali da plottare. sapete come fare?? grazie in anticipo, Cris ---------------------------------------- AUTORE: 1199 DATA :26/06/2006 - 13:23:32 ---------------------------------------- Bhe ti chiedo un paio di chiarimenti: 1) immagino che nella stringa che ricevi il punto "." sia il separatore decimale e la virgola ",", invece separi gli lementi. E' corretto? 2) in seconda istanza tu per esponenziali da plottare cosa intendi? Ti servono dei valori numerici (ad esempio dei Double), o ti serve una stringa in un formato particolare? ---------------------------------------- AUTORE: 247 DATA :26/06/2006 - 13:25:24 ---------------------------------------- Ciao, taglia la stringa che ricevi in pezzi contenenti i singoli numeri e usa "string palette->scan from string" dandogli come tipo d dato che vuoi ottenere in uscita un double. BYE. ---------------------------------------- AUTORE: 1313 DATA :26/06/2006 - 13:30:10 ---------------------------------------- Scusami l'imprecisione, ma la cosa sta così: 1) è così, quindi 0,1.0000E-09 , ecc. si traduce in 1E-9 2) intendo, io devo etrarre la stringa letta sulla seriale e devo tradurla in un numero (esponenziale , perchè c'è la E) e devo buttarlo in un grafico Cris ---------------------------------------- AUTORE: 1199 DATA :26/06/2006 - 13:37:34 ---------------------------------------- Il sistema più veloce secondo me è usare "Spreadsheet String To Array" che trovi nella Palett delle stringe... gli dai in ingresso un array monodimensionale di Double e slui in uscita ti da i un array con i valliri dentro. Nel tuo caso ti verranno tre valori: [0] [0.000000001] [0.0000009] Ti allego un esempio... ---------------------------------------- AUTORE: 1313 DATA :26/06/2006 - 13:40:21 ---------------------------------------- Grazie Ragazzi, appena posso fare due prove , vedo un pò come va. Cris ---------------------------------------- AUTORE: 645 DATA :26/06/2006 - 15:41:50 ---------------------------------------- Quindi lo zero non serve, poi c'è il primo numero per dieci alla 9 e il secondo numero per dieci alla nona... Giusto? Se è così anche secondo me, come dice Apollon, ti conviene analizzare la stringa per estrarre i singoli pezzi. ---------------------------------------- ================================================================================ Aiuto su cose banali ================================================================================ AUTORE: 1335 DATA :26/06/2006 - 13:20:30 ---------------------------------------- Ciao a tutti, sono nuovo del forum anche se è da un mesetto che sto sviluppando SW in labview per la mia tesi. Sto sviluppando un software di biofeedback che mi permetta di allenare i muscoli dei soggetti su cui effettuerò delle misure. Uso labview 6.0. volevo farvi alcune domande che vi sembreranno banali: 1) nella schermata principale del programma, con un tasto devo essere in grado di aprire una finestra di pop-up dove far vedere un grafico dell'andamento degli ingressi dell'ultima acquisizione... per poi ritornare alla schermata principale. Che comando devo usare per far aprire la finestra di dialogo? 2) questa è una sciocchezza, che però mi sta facendo perdere tempo... Come faccio adimpostare il colore della colorbar in modo che vada dal verde al rosso (invece della gradazione attuale, cheva dal nero al bianco)??? Grazie a tutti E* ---------------------------------------- AUTORE: 645 DATA :26/06/2006 - 15:47:56 ---------------------------------------- Ti rispondo sul primo problema che non è così banale come sembra: devi creare un VI secondario al quale passi i riferimenti ai dati da graficare. Poi richiami il VI secondario dal VI principale e aspetti che sia terminato il VI secondario prima di tornare la VI principale. Ti allego un'immagine. Per creare il percorso del VI secondario puoi usare il VI "Path Relativo" che trovi nella sezione Download del sito ILVG (http://www.ilvg.it/index.php?option=com ... &Itemid=84). ---------------------------------------- ================================================================================ Più pulsanti di stop ================================================================================ AUTORE: 595 DATA :26/06/2006 - 14:26:55 ---------------------------------------- Domanda facile ma non per me..... vorrei usare più pulsanti di stop (posizionati su più tab control) che possano agire su di un solo ciclo while Non so se mi sono capito! ma.. sono scusato è il mio primo topic! ---------------------------------------- AUTORE: 645 DATA :26/06/2006 - 15:32:03 ---------------------------------------- Devi combinare i vari pulsanti con blocchi OR e collegare l'uscita al valore di fine ciclo. Facendo così tutti i pulsanti puntano alla fine del ciclo e basta che uno di essi sia vero (condizione OR) per far fermare il ciclo. ---------------------------------------- AUTORE: 595 DATA :27/06/2006 - 08:53:47 ---------------------------------------- grazie....... ma non si potrebbero usare funzioni presenti sul property node o variabili locali per ottenere lo stesso risultato? ---------------------------------------- AUTORE: 680 DATA :27/06/2006 - 09:04:03 ---------------------------------------- si puoi usare anche la variabili locali ma richiedono più memoria... ti consiglio anch'io il metodo di MagicBotolo .... bye ---------------------------------------- ================================================================================ Memoria ================================================================================ AUTORE: 1029 DATA :26/06/2006 - 15:54:31 ---------------------------------------- Ciao a tutti! Ho un problema di immagazzinamento dati. Ho un array di 8000 elementi (gli elementi dell'array variano velocemente) vorrei memorizzarli in un altro array e solo quando si è riempito tutto mandarlo in un grafico. Si può fare? Ringrazio anticipatamente! ---------------------------------------- AUTORE: 645 DATA :26/06/2006 - 18:01:17 ---------------------------------------- Dovrebbe essere sufficiente collegare il primo array ad un ciclo for, memorizzare ogni posizione nel nuovo array e passare il nuovo array come uscita del ciclo for. Fuori dal ciclo for, alla fine dello stesso, metti il graph. ---------------------------------------- ================================================================================ Array ================================================================================ AUTORE: 516 DATA :26/06/2006 - 23:05:41 ---------------------------------------- Ciao a tutti Vi scrivo per chiedermi se mi aiutate a risolvere un problema . Devo visualizzare la direzione del vento ,il sensore è stato realizzato con un potenziometro che modificato ruota a 360° . Ora io mi trovo con una tabella di 82 valori ai quale corrisponde il punto cardinale pensavo di mettere il tutto all'interno di un array 2D dove memorizzo il valore e il punto cardinale , fino a qui nessun problema \":D\" ecco il quesito io devo trovare dove il mio valore del potenziometro sta all'interno della tabella mi spiego se es. 199 158 120(ohm) corrispondono nel mio caso al sud ora se il mio valore del potenziometro vale es: 170 ohm devo poterlo comunque associare al sud qualche idea ? come sempre grazie mille a tutti Sergio ---------------------------------------- AUTORE: 680 DATA :27/06/2006 - 07:21:30 ---------------------------------------- prova a vedere se ti va bene un qualcosa del genere..... ---------------------------------------- AUTORE: 516 DATA :27/06/2006 - 18:11:47 ---------------------------------------- Ciao Grazie Mille per la risposta , si lo trovo molto interessante ora provo a metterlo all'interno del mio programma cosi poi faccio delle prove Ciao Sergio ---------------------------------------- ================================================================================ LabVIEW su MAC OS 10.4 ================================================================================ AUTORE: 1337 DATA :27/06/2006 - 09:58:05 ---------------------------------------- Saluti a tutti Qualcuno usa labview su Mac? Vorrei realizzare il controllo di una casa collegandomi all'impianto tramite modbus, è realizzabile? Posso avere la visualizzazione e il controllo da più postazioni? ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 08:40:59 ---------------------------------------- Ciao purtroppo non ho mai usato LV su MAC quindi non posso darti nessuna certezza. In ogni caso quello che vuoi fare si può fare tranquilamente sotto WIN. Credo che su MAC sia fattibile allo stesso modo. L'unico dubbio potrebbe essere il MODBUS visto che è la "cosa" più legata all'HW del tuo sistema, per win esistono varie librerie di VI non sò se sono compatibili con MAC. Ciao, ---------------------------------------- AUTORE: 1337 DATA :03/07/2006 - 20:06:43 ---------------------------------------- Mah stando a quello che dice NI nellla versione 8.0 ci sono le librerie Modbus anche per Mac o si possono aggiungere, mi informerò meglio. Quello che mi preoccupa è mettere insieme i vari pezzi per la comunicazione. ---------------------------------------- ================================================================================ Controllo remoto [ERA:aiuto!!] ================================================================================ AUTORE: 1325 DATA :27/06/2006 - 11:42:47 ---------------------------------------- salve a tutti... vi spiego il mio problema io devo condividere un'applicazione labview (un oscilloscopio) con un altro computer , in maniera che questo acceda (come client) e utilizzi quando si connette a me (che faccio il server)solo quella singola schermata e non tutto il desktop!! c'è possibilità di realizzare tale cosa e se si come? vi prego è importante x una tesi di laurea ---------------------------------------- AUTORE: 645 DATA :27/06/2006 - 12:08:03 ---------------------------------------- Due strade... 1) sul pc server devi avviare il VI e pubblicare la rispettiva pagina Web. Dal pc client puoi richiamare la pagina Web attraverso la rete (LAN sei due pc) e controllare il VI: puoi accedere solo al VI pubblicato e a niente altro. 2) se puoi interfacciare lo strumento con le "Traditional DAQ" puoi realizzare il VI direttamente sul client e comandare lo strumento accedendo ad esso attraverso il pc server che deve comunque essere acceso ma non necessita di VI attivi. ---------------------------------------- ================================================================================ nascondere un elemento ================================================================================ AUTORE: 1313 DATA :27/06/2006 - 12:55:45 ---------------------------------------- Salve ragazzi, sto facendo un interfaccia che comunica via RS232 con uno strumento. Ho inserito un oggetto ring, collegato ad uno case structure, per selezionare il comando da eseguire. A questo punto mi domandavo: esiste un modo per nascondere un oggetto?? così a seconda del comando farei comparire solo gli oggetti che mi servono. Altrimenti esiste un'alternativa?? Grazie, Cris ---------------------------------------- AUTORE: 4 DATA :27/06/2006 - 13:17:41 ---------------------------------------- Ciao, si esiste. Fai tasto DX sull'oggetto che vuoi nascondere e scegli "create >> property node" ora dal block diagram vai sul property "Visible" appena creato e fai tasto DX >> change to write. A questo punto se passi True all'ingresso del property l'oggetto sarà visibile se passi false sparirà. Ciao, ---------------------------------------- AUTORE: 1313 DATA :27/06/2006 - 14:02:21 ---------------------------------------- Perfetto, era quello che cercavo. Grazie ---------------------------------------- ================================================================================ Block Diagram ================================================================================ AUTORE: 1029 DATA :27/06/2006 - 15:06:13 ---------------------------------------- Salve ragazzi! Il block diagram del VI che ho realizzato è molto grande e non entra in unica schermata. Esiste un modo per ottenere direttamente l'immagine del block diagram? Grazie come sempre! ---------------------------------------- AUTORE: 680 DATA :27/06/2006 - 15:42:07 ---------------------------------------- nel VI allegato devi inserire il path del VI da estrarre l'immagine del block diagram..... poi ti chiederà dove salvare il jpg.... bye....... ---------------------------------------- AUTORE: 1029 DATA :27/06/2006 - 17:44:37 ---------------------------------------- Grazie mille! Forte come VI! ---------------------------------------- AUTORE: 645 DATA :27/06/2006 - 20:02:57 ---------------------------------------- Ciao Linux, complimenti! Comodissimo... ---------------------------------------- ================================================================================ CPU USAGE e LOOP ================================================================================ AUTORE: 873 DATA :27/06/2006 - 16:18:56 ---------------------------------------- Salve a tutti!! Ho il seguente problema: hoo una scheda NI con I/O digitali....ho fatto una semplice VI che mi legga uno di questi ingressi e che termini l'esecuzione appena lo trovi a uno. Su questa linea (normalmente bassa) ho un segnale TTL compatibile, che e' un impulso molto stretto (50us).Ho utilizzato un while loop con una temporizzazione, impostata a 10us (altrimenti rischio di perdere qualche impulso, se metto un valore piu alto...).Il problema e' che quando vado in run, la CPU va al 100% e il pc e' inutilizzabile, ora, un P4 a 3GHz credo che possa gestire comodamente un loop temporizzato con ben 10us....o c'e qualche via piu furba per monitore un ingresso in continuazione finche' non passa ad un valore 'alto'?? Grazie a tutti! ffogs ---------------------------------------- AUTORE: 247 DATA :27/06/2006 - 16:47:45 ---------------------------------------- Ciao, prima di tutto devo chiederti se con 10us intendi, come consuetudine, 10 microsecondi...una temporizzazione del genere non è nemmeno lontanamente raggiungibile per un PC non configurato come target RealTime, LabVIEW fornisce infatti come base dei tempi per la temporizzazione i millisecondi (ms) per i PC normali (sia per la funzione Wait che Wait until Next ms), cmq non garantendo affatto che il tuo codice venga eseguito con quella tempistica... L'unico metodo che hai per non perdere nemmeno uno degli impulsi digitali che stai controllando è quello di utilizzare un counter, praticamente tutte le schede ne hanno almeno uno, che ti consente di contare gli impulsi; il tuo programma andrà quindi solamente a leggere il suo valore ogni tot (..) ed aggionerà il FP. BYE. ---------------------------------------- AUTORE: 873 DATA :27/06/2006 - 17:00:55 ---------------------------------------- si...per 10us intendo microsecondii!! Il counter ??? uauuuu sembra una buona idea....io ho una 6509 che ho solo i/o digitali....mi sai dire dove trovo questo timer che non mi pare di aver visto nessun accesso diretto dalle varie pallette.... Ciauuu egrazie!!!! ffogs ---------------------------------------- AUTORE: 873 DATA :27/06/2006 - 17:13:00 ---------------------------------------- ....ho la tremenda sensazione che la mia scheda non abbia alcun timer.... \":-(\" qualcuno mi puo confermare?? PCI6509.... ---------------------------------------- AUTORE: 247 DATA :27/06/2006 - 17:18:11 ---------------------------------------- Ciao, ...allora non avevi sbagliato la scrittura dell'unità di misura! La tua scheda non ha un COUNTER (che non è un timer), cmq se l'impulso che devi controllare non è troppo frequente (frequenza massima direi 100 Hz ma se parliamo di semplici Hertz è MOOLTO meglio..) puoi utilizzare la funzione di Change Detection per contare il numero degli impulsi senza sovraccaricare il PC. BYE. ---------------------------------------- AUTORE: 873 DATA :28/06/2006 - 07:19:33 ---------------------------------------- Ciaooooo!! In effetti io devo lilevare con precisione solo il primo di questi impulsi stretti, si ripetano non prima di 5 secondi quidni il tempo in questo caso no e'un problema.....Ieri appunto sfogliando il manuale della scheda ho visto la possibilita di usare un change detection....ho cercato sulll help e su vari esempi ma....la subVI che si occupa di cio da in uscita un task out che non mi e'kiaro come usare...ovvero io mi aspetto che una subVI che riveli un cambiamento di stato abbia un uscita alto o bassa a seconda se l 'ha letto o no....e quindi sarebbe facile fare un loop...ma come faccio a fare una cosa del genere con questa subVi? ovvero continua ad acquisire, appena rilevi un cambiamento (rising edge) esci dal ciclo e ferma esecuzione? Ciaoooo e grazie1000!!! ffogs ---------------------------------------- AUTORE: 873 DATA :28/06/2006 - 08:17:25 ---------------------------------------- Ho risolto estraendo da 'data'del task un boolean array (digital to boolean) e facendo un or logico tra tutti gli elementi, il risultato lo collego direttamente al controllo di fine loop e ottengo cio'che voglio...con cpu al 0% !!! Grazie ancora a tutti!!! Ciao ffogs ---------------------------------------- ================================================================================ Generatore Trigger ================================================================================ AUTORE: 1339 DATA :27/06/2006 - 16:38:29 ---------------------------------------- Salve, ho la necessita' di utilizzare una lampada strobo della Perkin Elmer Modello MSV 4100 (http://optoelectronics.perkinelmer.com/ ... vs4100.pdf) Secondo voi e' possibile collegare tale lampada con il pc via seriale e mediante Labview generare il trigger necessario (The strobe needs a +5V, 20mA,10-100µsec pulse to be triggered). grazie in anticipo. ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 08:45:22 ---------------------------------------- Ciao, non ho avuto tempo di leggere in DS della lampada ma posso darti due differenti risposte. 1 la lampada ha un protocollo seriale - in questo caso puoi fare ciò che vuoi se esiste un comando seriale per dire alla lampada di fare gli impulsi ogni x usec. 2 la lampada ha solo un ingresso per il trigger - in questo caso in linea teorica si potrebbe ma in pratica no visto che dovresti controllare la seriale tramite LV su WIN (immagino) che non sono sistemi RT (anzi...) e quindi non garantiscono il rispetto dei tempi che nel tuo caso credo siano fondamentali. Ciao, ---------------------------------------- AUTORE: 1339 DATA :05/07/2006 - 13:05:01 ---------------------------------------- Allora, update al post la lampada ha un connettore di questo tipo [url:36mji1l5]http://img95.imageshack.us/my.php?image=9pinconnector6dz.jpg[/url:36mji1l5] ora ho a disposizione oltre la lampada una scheda NI PCI 6229 M e un connector Block SCB68 come posso in labview generare un segnale con quelle caratteristiche di cui sopra?? grazie ---------------------------------------- AUTORE: 1339 DATA :06/07/2006 - 14:09:37 ---------------------------------------- Ulteriore Update Allora ho provato a navigare tra gli esempi del DAQmx ce ne sono un paio che potrebbero andare bene in particolare Gen Dig Pulse.vi l'unico dubbio che ho e': L'esempio dice che l'output del segnale generato sta sul ctr0 ora io sulla lampada ho il connettore a 9pin dove c'e' segnato che il Pin 5 corrisponde al Trigger + e il Pin 4 corrisponde al Trigger -. se cosi' fosse dovrebbe essere collegato il pin 5 al Ctr0 della Controbox ma ancora non ho capito dove collegare il pin 4 sulla CB. Help! ---------------------------------------- AUTORE: 278 DATA :07/07/2006 - 08:46:22 ---------------------------------------- Ciao, il pin 4 dovresti collegarlo a massa... ---------------------------------------- AUTORE: 1339 DATA :07/07/2006 - 14:45:38 ---------------------------------------- Thanks! ---------------------------------------- AUTORE: 1339 DATA :18/07/2006 - 08:37:24 ---------------------------------------- ho collegato solo il pin 5 e funziona..........mah.... ---------------------------------------- ================================================================================ differenze graph chart ================================================================================ AUTORE: 1313 DATA :27/06/2006 - 16:42:56 ---------------------------------------- Salve ragazzi, mi è capitato di usare graph e chart, per plottare dei valori, ma non ho capito che differenza c'è fra i due. Sapreste dirmi se c'è qualche vantaggio nell'usare l'uno o l'altro?? Grazie in anticipo, Cris P.S. l'unica differenza riscontrata è quando ho un arrei di valori e voglio plottarli con vari colori diversi, in quel caso il chart mi permette di fare ciò. ---------------------------------------- AUTORE: 1030 DATA :06/07/2006 - 16:02:52 ---------------------------------------- Guarda questo link: http://digital.ni.com/public.nsf/allkb/ ... enDocument ciao ---------------------------------------- AUTORE: 645 DATA :06/07/2006 - 16:29:52 ---------------------------------------- In soldoni, tanto per intendere la differenza principale, il Chart si aggiorna continuamente (se inserisci il Chart in un ciclo e ad ogni iterazione passi un valore il Chart mantiene i valori vecchi e aggiunge il valore nuovo) mentre il Graph disegna i valori tutti insieme (per esempio alla fine di un ciclo). ---------------------------------------- ================================================================================ Velocità nelle pagine web ================================================================================ AUTORE: 645 DATA :28/06/2006 - 09:02:53 ---------------------------------------- Ho pubblicato il mio VI su pagina web (con la funzione di LabView per la pubblicazione HTML) e scopro che il caricamento dei dati è lentissimo. Il VI in questione interroga un database e carica i dati sia in forma tabellare che all'interno di alcuni grafici. Ho dato un'occhiata al documento della National (http://zone.ni.com/devzone/conceptd.nsf ... /AN168.pdf) ma non saprei come fare per velocizzare il processo. Secondo voi dipende dalla rete? Eppure gli stessi problemi di velocità li incontro se guardo il VI dalla rete locale anzichè da Internet. Sapete indicarmi qualche documento o qualche sito dove trovare informazioni? ---------------------------------------- AUTORE: 748 DATA :02/07/2006 - 15:30:05 ---------------------------------------- Ciao, non ho idea di quanti siano i dati che devi inserire nello spazio web e la velocità richiesta ma io avevo risolto utilizzando un server con MySQL (database) e un pò di programmazione in PHP (non è molto difficile da imparare per una programmazione di base). In pratica interroghi in modo dinamico una pagina inserendo dati nel database: www.miosito.it/database.php?modo=inseri ... 00-300-400 I dati quindi sono all'interno dell'URL ed hai un'ottima velocità. In Labview basta formattare l'url in modo appropriato e utilizzare un semplice blocco per l'interrogazione della pagina web per l'inserimento o l'acquisizione di dati. Mark ---------------------------------------- ================================================================================ schema labview ================================================================================ AUTORE: 1340 DATA :28/06/2006 - 09:49:07 ---------------------------------------- Ciao a tutti, mi sono registrato da poco e vorei porvi una domanda su un problema che non riesco a risolvere. Non riesco a realizzare in labview uno schema di trasmissione Wireless MAN OFDM tra un trasmettitore e un ricevitore per la simulazione in laboratorio i tale sistema. Spero possiate aiutarmi, un saluto... P.S. a buon rendere!! ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 08:38:15 ---------------------------------------- Ciao e benvenuto. Potresti specificare meglio cosa non ti è chiaro? In qusto modo potremo darti dei consigli mirati. Ciao, ---------------------------------------- ================================================================================ salvare un array come immagine ================================================================================ AUTORE: 1015 DATA :28/06/2006 - 10:08:30 ---------------------------------------- ciao a tutti, sto usando una termocamera dalla quale prelevo le immagini e le visualizzo come array bidimensionale SGL. ho l'esigenza di salvare in qualche modo queste immagini come jpeg o (sarebbe il massimo!) video. come posso fare? grazie 1000 ---------------------------------------- AUTORE: 645 DATA :28/06/2006 - 10:42:08 ---------------------------------------- All'interno di LabView ci sono dei blocchi per il salvataggio di immagini ma francamente non so se fanno al caso tuo perchè non le ho mai usate. Le trovi nella paletta "Graphics & Sound" del Block Diagram. ---------------------------------------- AUTORE: 113 DATA :28/06/2006 - 14:05:23 ---------------------------------------- Dipende un po' da come sei attrezzato con LV: - Se hai il pacchetto add-on Vision hai le funzioni per creare 'al volo' i file in formato immagine: PNG, JPG, ecc. Inoltre hai le funzioni per creare filmati AVI - Se non hai Vision, come ha anticipato MagicBotolo, puoi usare le funzioni che trovi nella palette Graphic Formats soppo Graphics & Sound. Ti allego un semplice esempio per instradarti sul metodo: la prima funzione converte la pixmap in formato Image di LV, la seconda crea il file jpg. Ti ho collegato la pixmap [V32] a 24bit pensando che la tua immagine sia a colori, in caso di immagine monocromatica devi collegarti all'ingresso 8bit. Spero di esserti stato utile. Ciao, Alberto ---------------------------------------- AUTORE: 1015 DATA :28/06/2006 - 16:52:03 ---------------------------------------- ciao alberto, ho provato la tua soluzione ma l'immagine che salvo è tutta nera! la cosa strana è questa: 1) acquisisco da termocamera e visualizzo l'immagine con il blocco "intensity graph properties" SGL. qst'immagine nn capisco perchè esce tutta nella tonalità di blu indipendentemente dai valori dei pixel 2) passo l'array a flatten pixmap e poi salvo come jpeg ma esce tutto nero 3) a qst punto passo la stessa image data al blocco draw flattened pixmap e visualizzo la picture e riesco a vedere l'immagine anche se in gradazioni di rosso (boh). come è possibile che riesco a vedere l'immagine nella picture e vedo tutto nero se la salvo come jpeg? ---------------------------------------- AUTORE: 680 DATA :28/06/2006 - 16:53:29 ---------------------------------------- riesci a postare l'array di un immagine? bye... ---------------------------------------- AUTORE: 1015 DATA :28/06/2006 - 17:05:49 ---------------------------------------- se mi spieghi come si fa, lo faccio subitissimo. per il momento ti mando un'immagine del tutto grazie ---------------------------------------- AUTORE: 1015 DATA :28/06/2006 - 17:08:35 ---------------------------------------- scusa ho dimenticato l'allegato \":-)\" ---------------------------------------- AUTORE: 482 DATA :29/06/2006 - 07:54:36 ---------------------------------------- Il modo piu' semplice per mandare un array di esempio è che esegui il tuo vi,poi quando lo fermi prendi l'array di single e lo copy brutalmente in un nuovo VI. Al che vai su OPERATE->Male current Values Default. Dopodichè salvi il vi e lo alleghi in un post qui sul forum. \":wink:\" ---------------------------------------- AUTORE: 1015 DATA :29/06/2006 - 08:23:46 ---------------------------------------- ciao geppo, ti allego il VI... grazie ancora ---------------------------------------- AUTORE: 482 DATA :29/06/2006 - 10:18:58 ---------------------------------------- Allora...facendo un po' di prove ho notato che: 1) non so come cambiare (se possibile) la tonalità di colore nell'intensity graph; 2) L'immagine è visualizzata in tonalità di rosso perchè di default all'ingresso color ha un array che gli da quelle tonalità. Basta inserire in ingresso dei nuovi valori e si ottengono i colori che si vogliono. 3) Sia con Vision che con i blocchi di immagine semplici non riesco a slavare un immagine che non sia ad 8 bit. Il problema è che la visualizzazione ad 8 bit non funziona perchè..boh... ---------------------------------------- ================================================================================ Timestamp in secondi LV8 ================================================================================ AUTORE: 238 DATA :28/06/2006 - 17:11:56 ---------------------------------------- Da una data mi dovrei creare il timestamp in secondi. In LV8 la funzione “Date/Time To Seconds“ mi da un timestamp spostato di un ora se converto una data nel periodo “ora solare”. Con l’ingresso “is UTC” mi sposta il timestamp creato avanti di un ulteriore ora ! ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 08:36:55 ---------------------------------------- Michele ma dov'è il trucco? La tua costante cluster ha un elemento di troppo, in totale ha10 elementi mentre ne dovrebbe avere 9, strano poi che sia un DBL quello di troppo e che il filo non si rompa. Prova a postare direttamente il VI. Ciao, ---------------------------------------- AUTORE: 238 DATA :03/07/2006 - 14:40:31 ---------------------------------------- Il decimo elemento del Timestamp e´ DST \":?:\" . Ho provato a cambiare DST = -1 allora mi funziona corettamente. ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 14:45:37 ---------------------------------------- ahh versione 8.0.1 di LV non riesco ad aprire il codice. in ogni caso io (LV7.1) il DST ce l'ho nei 9 parametri... ci deve essere stato un cambiamento il quella funzione passando dalla 7 alla 8 ... Ricorda che tutte le funzioni che lavorano sul tempo sono legate alle impostazioni del sistema operativo... Ciao, ---------------------------------------- ================================================================================ Timer nel Timer ================================================================================ AUTORE: 516 DATA :28/06/2006 - 17:58:19 ---------------------------------------- Ciao Come sempre mi rivolgo al forum per un'aiuto . Devo realizzare un timer con un tempo che può variare da 5 sec a 180 sec e quando è nella fase on al suo interno deve partire un'altro timer che ogni secondo mi invia una stringa alla seriale e poi si disatttiva , qualche suggerimento ? Come sempre grazie mille a tutti Sergio ---------------------------------------- AUTORE: 680 DATA :28/06/2006 - 18:07:48 ---------------------------------------- potresti utilizzare l'express "Elapsed Time".... bye..... ---------------------------------------- AUTORE: 645 DATA :28/06/2006 - 18:55:24 ---------------------------------------- Due cicli uno dentro l'altro con due timer, uno con intervallo modificabile dall'utente o dal fenomeno scatenante e l'altro con intervallo fisso di un secondo trascorso il quale fai partire il messaggio seriale (per sapere quanto tempo è passato puoi usare il blocco suggerito da Linux120). ---------------------------------------- AUTORE: 516 DATA :28/06/2006 - 19:09:01 ---------------------------------------- Ciao grazie ad entrambi per il suggerimento , scusate la sfacciataggine avete mica un'esempio perchè ho delle difficoltà a realizzarlo anche il blocco elapsed imposto il tempo ma non riesco a resettarlo una volta che ha raggiunto il tempo eppure se non mi sono fumato il cervello una volta lo usavo per far lampeggiare un led Grazie come sempre Sergio ---------------------------------------- AUTORE: 680 DATA :29/06/2006 - 11:57:00 ---------------------------------------- prova a vedere se va bene un qualcosa del genere... bye... ---------------------------------------- AUTORE: 129 DATA :29/06/2006 - 13:51:24 ---------------------------------------- Ho realizzato questo e sembra rispondere alle tue specifiche. Usa il vi elapsed timer, che trovi allegato all'interno di un ciclo qualsiasi (ti ho messo anche un esempio), il bello è che è indipendente. Devi solo inserire un pò di codice per resettarlo, ma non penso sia un problema. Ciao ---------------------------------------- AUTORE: 516 DATA :29/06/2006 - 18:36:24 ---------------------------------------- GRAZIE MILLE A TUTTI ORA PROVO SUBITO . GRAZIE ANCORA CIAO Sergio ---------------------------------------- ================================================================================ Retroazioni ================================================================================ AUTORE: 1341 DATA :29/06/2006 - 07:22:15 ---------------------------------------- Ciao a tutti, leggendo un articolo pubblicato su Electroportal http://www.electroportal.net/vis_resour ... o&id=75#p5 sull'utilizzo di LabView, viene evidenziata la possibilità di utilizzare delle retroazioni ponendo sul segnale una funzione (indicata come una freccia) che trasforma l'esecuzione da combinatoria a sequenziale. Il mio problema di fondo è che non ho trovato da nessuna parte questa funzione. Potete aiutarmi e dirmi dove la posso trovarla o come si implementa? Saluti e grazie ---------------------------------------- AUTORE: 482 DATA :29/06/2006 - 07:49:41 ---------------------------------------- SI trova all'interno della Function palette tra le structure (cicli e case vari). QUella funzione è l'equivalente di uno shift register solo che non comporta fili in giro per tuttto il diagramma a blocchi. ---------------------------------------- AUTORE: 4 DATA :29/06/2006 - 09:16:43 ---------------------------------------- Che versione di LV usi? mi pare che la funzione di feedback (la freccia) è stata introdotta in LV 7.x. In ogni caso ha ragione geppo, è del tutto identica al classico while loop anche se forse peggiora la lettura del codice facendo pensare, come nel tuo caso, che sia una retroazione... Ciao, ---------------------------------------- AUTORE: 1341 DATA :29/06/2006 - 11:10:36 ---------------------------------------- Ho capito ma per essere sicuro, quale potrebbe essere uno schema generico di una retroazione fatta con un ciclo while? Riuscireste a mandarmi uno schema semplice semplice giusto per farmi un'idea? Grazie Ciao ---------------------------------------- AUTORE: 680 DATA :29/06/2006 - 11:46:08 ---------------------------------------- ecco l'equivalente del latch con lo shift register.... bye ---------------------------------------- AUTORE: 1341 DATA :29/06/2006 - 12:21:55 ---------------------------------------- Perfetto... Grazie mille! Era come pensavo ma adesso ne ho avuto conferma! Ciao ---------------------------------------- ================================================================================ Step motor control ================================================================================ AUTORE: 873 DATA :29/06/2006 - 10:19:44 ---------------------------------------- Salve a tutti! Ho la necessita di pilotere una piattaforma collegata con un motore passo passo....ho fatto un semplice loop temporizzato che da la corretta abilitazione alle fasi del motore (al controller) e cosi riesco a far girare la piattaforma.Variando il timing del loop riesco a controllare la velocita di rotazione (ovviamente entro i limiti di capacita del motore)....ho una scheda con soli in/out digitali (PCI 6509), quello che succede e'che mentre il motore gira, a caso ho dei saltellamenti, a volte brevi inversioni di direzione, o in generale perdita di passi (il motore va a singhiozzo), riproducible se per esempio apro un programma a caso sul pc dove sta labview (suppongo che lóut digitale subisca un rallentamento inprovviso a causa dellútilizzo della cpu da parte di un altro programma ed automaticamente línerzia del motore (anzi della piattaforma) causi tutti questi problemi. Ho pensato di utilizzare dei buffer di uscita (sperando che nella borad ce ne siano)...ma quando tento di usarli con daqmx ottengo un errore come se la mia scheda non ne avesse.Qualcuno sa come faccio a sapere se la mia scheda dispone di questi buffer, o una soluzione per evitare questi movimenti asimmetrici del motore ? (devo usare per forza un pc con winXP) cè'qualche strategia particolare per ovviare a questo? Grazie a tutti! ffogs ---------------------------------------- AUTORE: 247 DATA :29/06/2006 - 10:25:17 ---------------------------------------- Ciao, [quote:3a213atq]Qualcuno sa come faccio a sapere se la mia scheda dispone di questi buffer[/quote:3a213atq] Semplice, controlla il data sheet delle tua scheda che trovi a [url=http://sine.ni.com/nips/cds/view/p/lang/en/nid/12919:3a213atq]questo[/url:3a213atq] indirizzo. BYE. ---------------------------------------- AUTORE: 482 DATA :29/06/2006 - 10:30:23 ---------------------------------------- Cmq la scheda è una "Software Timed"...quindi è un bel casino usarla per generare delle frequenz...nel senso...non è che puoi avere chissà quale precisione di moto... ---------------------------------------- AUTORE: 873 DATA :30/06/2006 - 10:27:48 ---------------------------------------- Grazie a tutti!!!!! Vado a disperarmi in laboratorio..... \":-)\" Ciauuu ffogs ---------------------------------------- ================================================================================ Aiuto: software di biofeedback!!! [segnali biomedici] ================================================================================ AUTORE: 1335 DATA :29/06/2006 - 17:54:32 ---------------------------------------- Ciao a tutti ragazzi, mi presento: sono un laureando in ing biomedica e devo fare una tesi bella spessa sull'elettromiografia (segnali provenienti dai muscoli). Quello che dovrei fare è questo: progettare un software di biofeedback che mi permetta di visualizzare sul monnitor il livello di attivazione di 4 muscoli. In pratica, devo prelevare 4 uscite di un amplificatore, convertirle in digitale e visualizzare sul monitor alcune cosette. Uso labview 6.0, le versioni successive non le posso utilizzare e quindi non posso vedere nessun vi che avete messo in rete!! ho alcuni problemi, potete aiutarmi? 1) devo abilitare/disabilitare delle colorbar; ora, il problema sembra semplice, ma devo permetterlo in due sequenze distinte. Come si fa? in una collego il pulsante di attivazione al property node che voglio, ma nell'altra sequenza come faccio? 2) che differenza c'è tra property node, invoke node, local variable, e reference? 3) come si fa per cambiare colore ad una color ramp? 4) Visto che il programma è lungo, c'è qualche metodo che mi eviti di tirare mille mila fili da una parte all'altra dello schermo? Se mi potete dare una mano sarete i miei idoli!!! è un mese che sono sopra a questo programma, ma sto incontrando più difficoltà del previsto!! Grazie a tutti ---------------------------------------- AUTORE: 1050 DATA :30/06/2006 - 08:11:40 ---------------------------------------- Ciao, tante domande....comincio con il risponderti io in modo però sintetico (poi penso che dal forum riceverai altri consigli). [b:cyk4w3mr]property node[/b:cyk4w3mr]: accedono alle "proprietà" di un oggetto, alle sue caratteristiche (colori, dimensioni, valore, ecc..); [b:cyk4w3mr]invoke node[/b:cyk4w3mr]: accedono ai "metodi", alle azioni che puoi compiere su quegli oggetti; [b:cyk4w3mr]reference[/b:cyk4w3mr]: ha la funzione di un "puntatore" all'oggetto, ti permette quindi di accedere all'oggetto da punti diversi del programma, anche quindi da subVI; è appunto il reference che devi usare per poter gestire azioni sull'oggetto da un'altro VI (vedi esempio allegato: ci sono 2 vi, un main ed una subvi); Per quanto riguarda le dimensioni del programma, la prima cosa da fare (visto che sei alle prime armi) è dividere il tuo programma in + subVI possibili (esempio, seleziona una parte del tuo programma e nel menu EDIT seleziona la voce " Create SubVI") e poi usare le strutture "sequence" (questo per non creare diagram enormi ed illeggibili. Spero di non averti confuso troppo. saluti ---------------------------------------- AUTORE: 1030 DATA :30/06/2006 - 08:37:12 ---------------------------------------- Ciao, fammi capire meglio: Per colorbar intendi la Color Ramp del front panel? E cosa intendi per due sequenze distinte? ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 12:18:51 ---------------------------------------- [quote="Mark Of Life":xc318uco]Ciao, fammi capire meglio: Per colorbar intendi la Color Ramp del front panel? E cosa intendi per due sequenze distinte?[/quote:xc318uco] Ancora alcune cose non mi sono chiare... a quanto ho capito i reference servono fra vi diversi giusto? Ecco, a me invece mi servirebbe per comandare la chiusura di due cicli diversi in sequenza con lo stesso pulsante. Vi posto un po' di immagini per farvi cpire meglio... sequenza originale [url=http://img239.imageshack.us/my.php?image=immagine17xz.gif:xc318uco][img=http://img239.imageshack.us/img239/3984/immagine17xz.th.gif][/url:xc318uco] seconda sequenza [url=http://img119.imageshack.us/my.php?image=immagine20jf.gif:xc318uco][img=http://img119.imageshack.us/img119/5964/immagine20jf.th.gif][/url:xc318uco] per la colorbar, si, intendo color ramp... ci sto perdendo troppo tempo su come si cambia colore!! Ora mi va dal nero al bianco, e io vorrei farlo dal verde al rosso!! Grazie di tutto Erik ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 12:41:16 ---------------------------------------- Altra cosa... con altri oggetti come indicatori, ecc... mi basta utilizzare variabili globali per comandare per esempio una color ramp dalla sequenza 1 alla sequenza due? perchè al momento ho sempre fatto così, ma magari ci sono alcuni problemi che ignoro... però, non riesco a controllare la chiusura dei due cicli con una variabile locale... ---------------------------------------- AUTORE: 1050 DATA :30/06/2006 - 12:45:03 ---------------------------------------- Ciao, riguardo la color ramp ti invio la risposta. appena ho tempo verifico l'altro problema. ciao ---------------------------------------- AUTORE: 1050 DATA :30/06/2006 - 12:56:29 ---------------------------------------- Ciao, dall'immagine non si vede molto bene ma: io ho inteso che: [SEQUENZA frame 1] parte il 1° loop lo fermi con un boolean [SEQUENZA frame 2] Parte il secondo loop vuoi fermare il 2° loop con lo stesso boolean (??) se è così devi aggiungere prima del frame 2 un altro frame nel quale reimposti al tuo boolean il valore di default altrimenti il 2° loop esce subito. se invece vuoi fare in modo che il 2° loop non giri se hai premuto il boolean allora conviene che tu lo includa in un case IF. ciao ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 13:03:48 ---------------------------------------- [quote="antea06":2r0skugc]Ciao, dall'immagine non si vede molto bene ma: io ho inteso che: [SEQUENZA frame 1] parte il 1° loop lo fermi con un boolean [SEQUENZA frame 2] Parte il secondo loop vuoi fermare il 2° loop con lo stesso boolean (??) se è così devi aggiungere prima del frame 2 un altro frame nel quale reimposti al tuo boolean il valore di default altrimenti il 2° loop esce subito. se invece vuoi fare in modo che il 2° loop non giri se hai premuto il boolean allora conviene che tu lo includa in un case IF. ciao[/quote:2r0skugc] Mi sa che non riesco bene a farmi capire, quindi vi chiedo scusa per quanto sono prolisso... è uno dei difetti che ho quando ho fretta. Vi posto l'immagine del front panel ok? \";)\" unica cosa, dove puntano le frecce dovrebbero comparire 4 colorramp, che sono quelle di cui parlavo prima... in pratica, cambiano colore a seconda dell'attivazione del muscolo. -Devo fare 3 prelievi (quindi per semplicità uso 3 cicli in sequenza); -Ogni ciclo deve partire col pulsante "start mvc" -Ogni ciclo si ferma col pulsante "stop". Il mio problema è comandare la partenza e l'arresto di ogni ciclo con questi due pulsanti, tra una sequenza e l'altra. Come faccio? spero di aver capito, scusate ancora per l'incomprensibilità di alcune mie frasi ERik p.s. vi ringrazierò sui ringraziamenti ufficiali della tesi... \";)\" non scherzo ---------------------------------------- AUTORE: 1050 DATA :30/06/2006 - 13:13:01 ---------------------------------------- soluzione veloce ti serve [u:ok5cfo3x]un while in parallelo[/u:ok5cfo3x] alla tua sequenza nel quale vai a leggere i pulsanti di start e stop ogni x msec e copi i loro valori in rispettive globali. includi tutti i cicli in un if a cui connetti la globale start in tutti i cicli connetti come condizione di uscita la globale stop start e stop dovrebbero essere mutuamente esclusivi quindi una soluzione veloce è: - all'inizio del programma abilita start e disabilita stop (property node "disabled") - quando premi start disabilita start ed abilita stop PS: voglio copia della tesi [u:ok5cfo3x]se[/u:ok5cfo3x] funziona!!! \":wink:\" ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 13:23:48 ---------------------------------------- [quote="antea06":3jjg5031]soluzione veloce ti serve [u:3jjg5031]un while in parallelo[/u:3jjg5031] alla tua sequenza nel quale vai a leggere i pulsanti di start e stop ogni x msec e copi i loro valori in rispettive globali. includi tutti i cicli in un if a cui connetti la globale start in tutti i cicli connetti come condizione di uscita la globale stop start e stop dovrebbero essere mutuamente esclusivi quindi una soluzione veloce è: - all'inizio del programma abilita start e disabilita stop (property node "disabled") - quando premi start disabilita start ed abilita stop PS: voglio copia della tesi [u:3jjg5031]se[/u:3jjg5031] funziona!!! \":wink:\"[/quote:3jjg5031] Per la tesi no problem!! però scusa, il ciclo while che controlla ogni ms i tasti non è un casino da fare? non corro il rischio che si impalli tutto? perchè in contemporanea faccio solo acquisizioni... ad ogni modo, come si fa a fare un ciclo in parallelo? ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 13:33:59 ---------------------------------------- scusate, posto l'immagine del front panel: [url=http://img119.imageshack.us/my.php?image=immagine39vk.gif:3raqc8j1][img=http://img119.imageshack.us/img119/7544/immagine39vk.th.gif][/url:3raqc8j1] ---------------------------------------- AUTORE: 1050 DATA :30/06/2006 - 13:52:33 ---------------------------------------- Bel pannello!! vedi esempio loop // (avevo sbagliato a dirti dell'IF, sorry) PS: la mechanical action dei pulsanti start e stop deve essere "switch" ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 14:03:16 ---------------------------------------- [quote="antea06":21kxnnvt]Bel pannello!! vedi esempio loop // (avevo sbagliato a dirti dell'IF, sorry) PS: la mechanical action dei pulsanti start e stop deve essere "switch"[/quote:21kxnnvt] Scusa antea, ma non ho capito bene... che vuol dire che la mechanical action deve essere di tipo switch? tipo "uno esclude l'altro"? loop // è loop parallelo nè? nel disegno che mi hai mandato, il ciclo principale è quello sopra giusto? però potrei avere problemi, perchè in pratica il programma principale acquisisce 128 campioni per volta, a 1024 camp/secondo, e ne calcola l'RMS plottandolo... Il mo dubbio è: se metto un loop in // rallento di brutto l'esecuzione vero? p.s. ma in labview non ci sono pulsanti che simulano proprio il comportamento di un pulsante (tipo schiaccio e dopo un attimo torna indietro)? non sarebbe piùcomodo? si potrebbe utilizzare il comando sensibile ai fronti di salita/discesa, se esiste, no? ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 14:05:18 ---------------------------------------- altra domanda: nella seconda sequenza, posso plottare direttamente i dati sul chart utilizzando una variabile locale riferitaalla chart vero? ---------------------------------------- AUTORE: 1050 DATA :30/06/2006 - 14:29:13 ---------------------------------------- Seleziona il boolean, mouse tasto destro, Mechanical action. Qui c'è quello che cerchi. Sì se scegli "latch" come action il pulsante torna al suo stato iniziale. Ci sono varie combinazioni di pulsanti che puoi usare: la mia risposta si riferiva al caso dei 2 pusanti. Non ti preoccupare, puoi gestire tranquillamente il loop parallelo (//), non succederà nulla (l'esempio che ti ho mandato funziona, provalo!). Sì, puoi usare la variabile locale per aggiornare il tuo chart. Sì, il loop "main" è il tuo 1° loop. ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 16:10:52 ---------------------------------------- Cacchio, nonmi gira il programma... Vi invio il file html col programma che ho fatto finora, qualora vi fossero dubbi... Uso labview 6.0 questa schermata fa parte di un programma più corposo; essa serve per prelevare dal paziente il valore massimo di forza esercitabile in un esercizio (Maximum Volume Contraction); in questo programma si chiede il paziente di fare la contrazione con più forza possibile, per 3 volte, e poi si prende il max delle 3 contrazioni. Mancano ancora alcuni dettagli, ma una volta che l'ho finito sono a cavallo!! ma perchè non ho scoperto prima questo forum??? \":?:\" ---------------------------------------- AUTORE: 1335 DATA :30/06/2006 - 16:26:27 ---------------------------------------- Ho provato a farlo girare ma si blocca, i pulsanti non fungono più dopo solo un ciclo... Ora cerco di metterlo a posto... Fra llaltro, se qualcuno ha voglia, può farmi notare gli errori grossolani che ho commesso nel diagramma a blocchi? dimenticavo: questo programma girerà su un pc vecchissimo dotato di una scheda di acquisiizione pci1200... non si sa mai se può tornarvi utile questa info \";)\" ---------------------------------------- AUTORE: 1335 DATA :01/07/2006 - 20:39:51 ---------------------------------------- \":?:\" help \":)\" ---------------------------------------- AUTORE: 1050 DATA :03/07/2006 - 08:02:20 ---------------------------------------- Ciao, un pò ansioso eh? Nel loop della sequenza 2 hai collegato la globale stop al conditional terminal del loop impostandolo però come "Continue while true" anzichè "Stop if true": è per questo che se premi lo stop rimani nel loop invece che uscire!! \":wink:\" ---------------------------------------- AUTORE: 1050 DATA :03/07/2006 - 08:13:38 ---------------------------------------- un'altra osservazione: [u:2w39i8un]il loop "wait for start" deve stare solo nel primo frame della sequenza[/u:2w39i8un]. ---------------------------------------- AUTORE: 1335 DATA :03/07/2006 - 09:50:38 ---------------------------------------- bella, grazie mille!! è che sono indietrissimo con il lavoro, quindi per questo posso sembrare ansioso... Grazie mille ancora, ora provo ok? ---------------------------------------- AUTORE: 1335 DATA :03/07/2006 - 10:20:44 ---------------------------------------- Ragazzi, domandina semplicesemplice: come si fa a resettare il grafico di una chart? tra le opzioni dei property node non lo trovo \":?:\" p.s. ma nelle versioni più recenti di labview lavorare è più intuitivo? ---------------------------------------- AUTORE: 1335 DATA :05/07/2006 - 12:26:37 ---------------------------------------- Ciao Ragazzi, ho ancora alcune domande per voi. Banalità. 1) come si fa ad azzerare una chart prima di chiudere il programma? c'è un comando che mi azzera tutti i valori degli indicatori? 2) come si fa a cambiare i limiti dell'asse y della chart? Certo che misembra strano non trovare queste opzioni... Ho cercato dappertutto!! Grazie a chi mi aiuterà erIk ---------------------------------------- AUTORE: 1050 DATA :06/07/2006 - 08:55:57 ---------------------------------------- Ciao, allora il loop // funziona? Per "pulire" un chart devi "svuotare" la history (property node del chart) come nell'esempio NI: [i:23dz1dbv]Refer to the How to Clear Charts & Graphs VI in the labview\examples\general\graphs\charts.llb for an example of clearing graphs and charts programmatically.[/i:23dz1dbv] Per modificare i limiti del chart devi sempre usare un property node (Y scale -> Range). Per inizializzare tutti i controlli ed indicatori del pannello puoi usare questo sistema... Apri un reference alla tua vi (con Open VI Reference) e connetti un invoke node: seleziona "Reinitialize all to default". Saluti ---------------------------------------- AUTORE: 1335 DATA :06/07/2006 - 11:01:21 ---------------------------------------- Ciao antea e grazie mille per l'aiuto. Non ho capito una cosa, cioè come collegare l'invoke node al open vi reference; potresti spiegarmi meglio? sono troppo niubbo... \":(\" ---------------------------------------- AUTORE: 1050 DATA :06/07/2006 - 12:01:14 ---------------------------------------- vedi picture. ciao ---------------------------------------- AUTORE: 1335 DATA :06/07/2006 - 14:35:58 ---------------------------------------- mi inchino... ave a te oh saggio antea, sarai il primo nella lista dei ringraziamenti della tesi... che finirò forse fra un anno... \":(\" ---------------------------------------- AUTORE: 1335 DATA :26/07/2006 - 16:58:04 ---------------------------------------- AIutooo!!! sto per farvi la domanda più niubba del mondo. Allora, il software è sempre in evoluzione. Ora devo fare questo che sto per dirvi. Dunque, quando schiaccio il pulsante di inizio, parte un impulso che sincronizzi l'acquisizione della scheda che gira col programma, con l'acquisizione dei segnali analogici provenienti dai due amplificatori EMG. Il problema è questo: come faccio a coordinare l'acquisizione della scheda con quella degli ampli, per poter plottare poi dopo tutto assieme?? mi spiego meglio. Quando inizio l'acquisizione, allora succede che dopo l'impulso un primo ciclo prende 128 campioni in uscita dalla scheda di acquisizione, li processa un po' (calcola RMS, grafica un po' di cose, e aggiorna altre cose ecc) e poi li sputa fuori per salvarli in una variabile globale. Ora, quanto tempo passa tra un valore acquisito nella variabile globale e il suo successivo? Ve lo chiedo perchè le uscite dell'amplificatore di segnale EMG sono campionate a 2048 Hz, e devo sapere più o meno come riallineare il segnale EMG con quello acquisito col mio programma. Grazie a chi mi aiuterà, in anticipo!! ---------------------------------------- ================================================================================ scrittura esadecimale su seriale ================================================================================ AUTORE: 1313 DATA :30/06/2006 - 08:36:52 ---------------------------------------- Salve ragazzi, una domandina, ho messo assieme i blocchi visa per scrisere sulla seriale come riportato in allegato. Quindi io devo scerivere la seguente stringa: """"""""""" 1) 0x00 2) 0x10 3..13)0x00 " , ma nella write dove scrivo 0x10 mi ritorna 2 è corretto?? percè secondo me dovrebbe tornarmi 1 cioè deve scrivere 1 byte. Grazie in anticipo, Cris ---------------------------------------- AUTORE: 1313 DATA :30/06/2006 - 08:37:25 ---------------------------------------- mancava l'allegato ---------------------------------------- AUTORE: 748 DATA :02/07/2006 - 17:13:50 ---------------------------------------- Non ho controllato nè fatto verifiche ma secondo me: - tu trasformi in esadecimale il valore decimale 16. 16->0x10 - lo invii come stringa (lui manda la stringa 10) - il blocco della seriale lo interpreta come numero binario 10 - 10(binario) = 2 (decimale) Mark ---------------------------------------- ================================================================================ Come filtrare un analog input su daq card ================================================================================ AUTORE: 904 DATA :30/06/2006 - 12:26:02 ---------------------------------------- Ciao a tutti \":D\" Ho un problema durante l'acquisizione di un segnale analogico su un usb daq pad 6016 . Sul canale "0" è collegato un trasduttore pressione 0-1000 mbar 4-20 mA (con shunt da 100 ohm). Dal lato pratico leggo il segnale in tensione 0,4 - 2 volt . Il fatto che è che ho una variazione durante l'acquisizione in VI di alcuni centesimi o millesimi di volt che mi portato ad avere una variazione del valore scalato in pressione di alcuni mbar che mi porta ad avere il sistema instabile ..... Qualcuno sa indicarmi un esempio di filtro che tende a stabilizzare le variazioni di tensione della lettura del segnale analogico . Grazie in anticipo per il vostro supporto Saluti \":)\" ---------------------------------------- AUTORE: 4 DATA :03/07/2006 - 08:26:58 ---------------------------------------- Ti sembrerà banale ma la media funziona benissimo! Prova a sovra campionare e poi mediare i dati, ad esempio se oraprendi un dato ogni 100ms prova ad acquisire ogni 10ms e ogni 10 campioni fai la media. I questo modo otterrai sempre un dato ogni 100ms ma sarà il risultato di 10 campioni mediati. Ciao, ---------------------------------------- ================================================================================ lettura file e array ================================================================================ AUTORE: 516 DATA :01/07/2006 - 18:28:25 ---------------------------------------- Ciao a tutti Eccomi di nuovo qua \":D\" a porvi un'altro quesito , leggo dei dati da un file ora una volta letti pensavo che memorizzandoli all'interno di un'array poi potevo chiudere tranquillamente la gestione della lettura di questi dati e prendermeli dall'array tutte le votle che volevo ma non è cosi \":(\" perchè ? come posso fare ? . Grazie Mille a tutti Ciao Sergio ---------------------------------------- AUTORE: 247 DATA :01/07/2006 - 19:31:28 ---------------------------------------- Ciao, mi sembra un comportamento strano, prova a postare il diagram...in effetti dipende tutto da cosa intendi per "chiudere tranquillamente la gestione della lettura di questi dati".. BYE. ---------------------------------------- AUTORE: 1165 DATA :01/07/2006 - 19:51:12 ---------------------------------------- Non ho capito esattamente la domanda, così provo a risponderti in via generale, augurandomi che ti sia comunque utile. Come giustamente hai detto, per leggere dentro un file devi prima aprirlo con una apposita funzione, dopodichè i dati così letti li potrai depositare su un vettore (che quindi sarà un oggetto del Front Panel definito in scrittura, cioè un indicatore) e potrai (e dovrai) infine chiudere la sessione di lettura dal file con le apposite funzioni. Ora tu hai un oggetto vettore che contiene i tuoi dati, ma non potrai accedervi direttamente con un filo perchè questo oggetto è definito come indicatore e quindi in scrittura, non in lettura come servirebbe a te. Puoi aggirare semplicemente il problema creando una variabile locale associata al tuo oggetto vettore e definendola in lettura, cioè con comportamento da controllo e non da indicatore. Per far ciò hai varie strade, ma la più breve è semplicemente fare click col tasto destro del mouse sul tuo oggetto vettore e al pop up menù che ti comparirà scegli la voce "crea variabile locale", col che ti comparirà nel Block Diagram un terminale di variabile che rappresenta una esatta replica del tuo vettore e quindi potrai usarlo per prendervi un filo da portare dove vuoi tu. Spero di averci preso. Ciao, Enrico. ---------------------------------------- AUTORE: 516 DATA :02/07/2006 - 08:45:02 ---------------------------------------- Ciao Grazie per la risposta , vi poso il progetto , credo di aver capito dov'è l'errore ma non so come risolverlo , un'altra domanda che vorrei fare è questa non riesco a capire perchè il tempo di eseguzione del programma è così lento lo noto dal fatto che ho bisogno di un timer (come vedete nel progetto) e vedo che non aggiorna il valore continuamente , inoltre (non l'ho posato per non creare file enormi) richiamo altri due subvi uno di setup e uno di comunicazione con la seriale non è questo almeno credo che rende tutta l'eseguzione del programma lento ARGH!!!!! \":(\" non riesco a capire dove sbaglio . Per mia fortuna ci siete voi Ciao e GRAZIE Sergio ---------------------------------------- AUTORE: 516 DATA :02/07/2006 - 08:50:51 ---------------------------------------- Ciao Vi poso il file dati ---------------------------------------- AUTORE: 680 DATA :02/07/2006 - 09:31:16 ---------------------------------------- ti ho creato la parte per la lettura del file..... per quanto riguarda la lentezza, potrebbe essere la comunicazione seriale ma mi sembra strano... prova a postare anche i due subvi.... ---------------------------------------- AUTORE: 516 DATA :02/07/2006 - 10:21:12 ---------------------------------------- Ciao Grazie Mille per la tempestiva risposta , ti poso anche la lettura della seriale , che oltre a leggere i dati ne fa anche il crc . Ti faccio una domanda te hai messo la lettura dei dati all'esterno del ciclo do while quindi lo esegue solo una volta giusto ? e cioè quanda si lancia il programma , ora se la risposta è si io devo da programma poter modificare questi dati e memorizzarli (e anche qui ho già creato il subvi che ti poso . La domanda è come posso rileggere i nuovi dati in tempo reale dal programma principale ? Ciao Sergio ---------------------------------------- ================================================================================ Velocizzare un programma ================================================================================ AUTORE: 516 DATA :02/07/2006 - 18:06:29 ---------------------------------------- Ciao a Tutti Domanda è giusto secondo voi per velocizzare un programma scomporlo in più SUBVI ? Ciao Sergio ---------------------------------------- AUTORE: 1165 DATA :02/07/2006 - 19:46:28 ---------------------------------------- Questa è una di quelle domande alle quali si può rispondere in via generale con estrema chiarezza, ma che in un linguaggio di programmazione maturo come è oramai il Labview si prestano con facilità ad essere contraddette da qualche trucchetto del bagaglio personale di qualche programmatore. Comunque, seppur a rischio di smentita, ti rispondo direttamente ed indirettamente. 1) risposta diretta: no, la scomposizione in subVi non inferisce sulle prestazioni di un Vi, semmai in minimissima parte le degrada (veramente in maniera trascurabilissima credo) per il sovraccarico (overhead) nel gestire le chiamate; 2) risposta dettagliata: quanto detto prima è rigorosamente vero, però la scomposizione di un codice in subroutines (subVi) aiuta enormemente ad ottimizzarlo e quindi indirettamente a migliorarne le prestazioni generali, permettendo di vedere meglio dove intervenire per parallelizzare i task (multitreading), per evitare ridondanze di codice, per ottimizzare le chiamate ai subVi per far sì che siano caricati in ram solo quelli effettivamente necessari e, last but not least, per agire meglio nella microprogrammazione dei singoli algoritmi in maniera più efficace, viste le dimensioni ridotte dei Vi. Spero di aver almeno in parte risposto e di non averti ancor più confuso le idee. Ciao, Enrico. ---------------------------------------- AUTORE: 516 DATA :02/07/2006 - 20:10:45 ---------------------------------------- wow \":D\" , in parte mi hai illuminato , la cosa che mi confonde o meglio che non ho ancora capito bene (e la sto provando propio ora) è questo . Sto realizzando un programma per una stazione meteo , per cui mi carico dei dati di correzione per fare dei calcoli da un file dopo di che ho usato la funzione calculator dove realizzo i mie calcoli in base ai dati che mi arrivano , in realtà ne ho usate sette una per ogni calcolo , non so se è questo ma noto che il programma prima che legge i dati e poi li trasferisce a ogni singolo calculator ci passa un bel pò di tempo circa 1 minuto che mi sembra esagerato anche perchè circa ogni 5 sec dovrei interpellare la centralina e questo non mi è possibile visto i tempi , inoltre (ho messo un'interruttore virtuale) quando spengo prima di veder visualizzato il valore 0 in ogni casella passa anche qui 1 minuto , tutto questo mi manda al quando in confusione perchè non riesco a capire dove sia realmente il problema se sono io o il pc o il programma mal strutturato , ma se penso che ho un cilco do while e all'interno due select case dove in uno ci sono i calcoli e nell'altro salvo i dati in un file ogni 5 minuti ARGH!!!!!!!!! non so più che prove fare qualche suggerimento ? Ciao Sergio ---------------------------------------- AUTORE: 482 DATA :03/07/2006 - 07:51:47 ---------------------------------------- [quote="Giants":2ftk3u17]dopo di che ho usato la funzione calculator dove realizzo i mie calcoli in base ai dati che mi arrivano , in realtà ne ho usate sette una per ogni calcolo[/quote:2ftk3u17] Prova a verificare nelle proprietà del vi calculator (è un sub Vi vero?) se nelle EXECUTION è settato la "reentrant execution" nel tuo caso dovrebbe essere settata per permetterti di effettuare i 7 VI in contemporanea, altrimenti li esegue in sequenza, appena finsce uno comincia l'altro. Verifica questa cosa poi fammi sapere. \":wink:\" ---------------------------------------- AUTORE: 516 DATA :03/07/2006 - 18:50:29 ---------------------------------------- HAI FATTO BINGO . Ora sembra un pò più veloce ma non ancora come vorrei io \":(\" . Ora faccio ancora delle prove poi ti faccio sapere Ciao Sergio ---------------------------------------- ================================================================================ File Info di un collegamento ================================================================================ AUTORE: 927 DATA :03/07/2006 - 11:48:26 ---------------------------------------- Quando faccio "File/Directory Info" di un file .lnk, ovvero un collegamento, Labviù tenta di restituire le informazioni sul file collegato. Ad esempio se avessi "collegamento a C.lnk", mi darebbe informazioni su C:\. Come faccio invece ad ottenere le informazioni sul collegamento vero e proprio, ovvero sul failetto .lnk stesso? ---------------------------------------- AUTORE: 927 DATA :04/08/2006 - 08:29:37 ---------------------------------------- Nel caso a qualcuno interessasse: sul forum NI mi han risposto che in pratica non c'è un modo diretto. Bisogna trattare separatamente i file .lnk con qualche raggiro ---------------------------------------- ================================================================================ Consiglio realizzazione progetto ================================================================================ AUTORE: 1348 DATA :03/07/2006 - 14:19:47 ---------------------------------------- Salve, sono nuovo nel campo di labview e del forum perciò prima di tutto saluti a tutti! Dovrei realizzare un controllo da pc che in base a delle temperature e altri sensori analogici (esempio fotoresistenza per la luce) mi attivi e disattivi le uscite digitali/analogiche. E' possibile farlo con le schde DAQ USB-6008/6009? E' possibile, nel caso della fotoresistenza avere 1 in uscita dopo un accumulo di luce e non al tot valore? Chi mi sa dare una dritta per cominciare? Ringrazio tutti anticipatamente! ---------------------------------------- AUTORE: 247 DATA :03/07/2006 - 14:57:51 ---------------------------------------- Ciao, è sicuramente fattibile, controlla solamente che il segnale analogico proveniente dai sensori sia compatibile con il range degli ingressi analogici della scheda, in caso contrario condiziona il segnale, e che la risoluzione dell' ADC(12 bit) della scheda sia adatta alle tue necessità. [quote:3ccxoht3]E' possibile, nel caso della fotoresistenza avere 1 in uscita dopo un accumulo di luce e non al tot valore? [/quote:3ccxoht3] Più o meno si...mi spiego: via software puoi integrare(=accumulo?) il segnale analogico per relazionarlo al tempo in cui tale segnale esiste ed al suo livello, il problema è che in un sistema normale non RT la base di tempo non è costante...cmq se ti basta sapere se un segnale è ON per almeno qualche secondo ce la fai di sicuro senza problemi. BYE. ---------------------------------------- AUTORE: 1348 DATA :04/07/2006 - 00:42:04 ---------------------------------------- Eh no.. io dovrei dare più o meno tempo in uscita in base al valore variabile per X tempo in ingresso. Mi spiego meglio. Se ho una radiazione solare di 3 W/m2 per 1 ora accumulo X W/m2 e quindi do il tempo preimpostato in uscita. Grazie per la collaborazione! ---------------------------------------- AUTORE: 1348 DATA :04/07/2006 - 22:19:31 ---------------------------------------- Vi chiedo anche se qualcuno sa o ha una scheda per iniziare con qualche I/O per imparare un pò a programmare... Grazie ancora \":D\" ---------------------------------------- AUTORE: 1348 DATA :17/07/2006 - 13:26:08 ---------------------------------------- Eccomi di nuovo. E' in arrivo la scheda DAQ-USB-6008 per le mie prime prove.. Vorrei chiedervi un consiglio: Con una cella fotovoltaica su un ingresso analogico vedo la differenza di tensione in base all'intensità del sole ma fino ad un certo punto.. mi spiego meglio. Io dovrei stabilire la potenza che mi sa dare nel variare del tempo il sole quindi dovrei simulare un consumo? Qualcuno sa da dove f armi cominciare? Grazie!! ---------------------------------------- AUTORE: 278 DATA :18/07/2006 - 09:21:13 ---------------------------------------- Ciao, per quantificare la potenza, devi avere anche un carico resistivo ove far scorrere della corrente... La resistenza va messa in parallelo alla cella fotovoltaica, cerca di prendere una resistenza di basso valore ma di vattaggio adeguato alla potenza erogata dalla cella... Con il Daq puoi misurare la tensione, poi con qualche formuletta ti calcoli il consumo in watt che se non ricordo male è V^2*R, o, se preferisci, V*I. ---------------------------------------- AUTORE: 680 DATA :18/07/2006 - 12:19:48 ---------------------------------------- le formule per il calcolo di potenza su carico resistivo sono: P = V^2 / R P = V * I P = R * I^2 ---------------------------------------- ================================================================================ LabView, Browser, PHP e JavaScript ================================================================================ AUTORE: 1349 DATA :03/07/2006 - 14:45:34 ---------------------------------------- Ciao a tutti, premetto che a livello pratico di LV so poco. Per automatizzare l'analisi di alcuni componenti vorrei creare una interfaccia web dove inserire manualmente alcuni dati e in una delle pagine vorrei mettere una pagine che carichi un VI, lanciare l'acquisizione ( e fin qui mi pare che con LV sia possibile) e vorrei che mi restituisse le acquisizioni in delle variabili Php. E' possibile richiamare LV come oggetto COM e avere indietro i vettori con le acquisizioni fatte. Successivamente dovrei fare qualche operazioni in JavaScript e poi inviare tutto ad un database. Vorrei evitare di utilizzare i moduli di LV per inviare direttamente i dati ad database, anche perchè devo pre-eleborarli. Si è capito niente ? Grazie, rosma197x ---------------------------------------- ================================================================================ SCADA ================================================================================ AUTORE: 660 DATA :03/07/2006 - 17:53:49 ---------------------------------------- Ciao a tutti, qualcuno di voi sa dove si possono trovare delle "immagini" per realizzare dei simulacri di impianti industriali senza dover acquistare da NI il pacchetto DSC che costa un occhio? Grazie Max ---------------------------------------- AUTORE: 645 DATA :04/07/2006 - 08:36:21 ---------------------------------------- Ti servono immagini per creare sfondi o esempi di programma? Se cerchi in internet dovresti trovare un documento (mi pare in spagnolo ma le immagini sono buone) intitolato "SCADA con LabView" o qualcosa di simile. ---------------------------------------- AUTORE: 660 DATA :04/07/2006 - 12:13:53 ---------------------------------------- mi servono per realizzare i front panel di LV. Ad esempio: tubi, pompe, valvole, nastri trasportatori, ecc ---------------------------------------- AUTORE: 247 DATA :04/07/2006 - 16:28:03 ---------------------------------------- Ciao, non ho la soluzione ma scartabellando i vecchi post trovi [url=sfarfallio immagini]queste[/url] fantastiche prove "grafiche" in LV! BYE. ---------------------------------------- AUTORE: 838 DATA :07/07/2006 - 14:04:25 ---------------------------------------- dicamo che il dsc serve principalmente per altre cose rispetto alla grafica con il labview base puoi fare tutta la grafica che vuoi, ma la gestione degli allarmi, degli utenti, delle password, storici, database e altro sono il dsc \":D\" ---------------------------------------- AUTORE: 660 DATA :11/07/2006 - 13:03:26 ---------------------------------------- E' proprio per quello che il pacchetto DSC completo non mi serviva! Ciao Max ---------------------------------------- ================================================================================ ENum con ttti i comuni italiani ================================================================================ AUTORE: 482 DATA :05/07/2006 - 09:54:47 ---------------------------------------- ..ma ciao! stavo sviluppando un applicazione privata per fare delle registrazioni... volevo realizzare un enum con con l'elenco delle regioni e in base alla regione un altro enum con tutti i comun di quella regione. Sapete per caso se online c'e' qualcosa con l'elenco dei comuni italiani di viso per regioni? ---------------------------------------- AUTORE: 1030 DATA :05/07/2006 - 10:17:23 ---------------------------------------- Ho avuto anch'io un problema del genere per una applicazione non LabVIEW... è stato noioso ma ho preso i nomi di comuni e provincia sul sito http://www.comuni-italiani.it/. ciao. Forza Azzurri! ---------------------------------------- AUTORE: 482 DATA :05/07/2006 - 15:19:48 ---------------------------------------- ..mmhh...allora...sono a questo punto... qualche soluzione?? Purtroppo con i property node non riesco ad avere la proprità controls come array bidimensionale e quindi a risalire sia alle provincie che ai nomi ecc... Se avete qualche idea è ben accetta. Grazie.. ---------------------------------------- AUTORE: 129 DATA :05/07/2006 - 17:04:12 ---------------------------------------- MA nella prima proposta parlavi di enum, prova a vedere se ti va bene questo esempio (ho usato un ring). Ciao ---------------------------------------- AUTORE: 645 DATA :05/07/2006 - 17:24:18 ---------------------------------------- E una soluzione di questo tipo? (vedi allegato). Il secondo menù si modifica in base alla scelta fatta nel primo menù (tipo javascript all'interno delle pagine web). ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 07:51:29 ---------------------------------------- ehm...scusate non mi sono spiegato..l'avevo dato per scontato. Come fare a gestire i ring (o enum) in cascata so già come farlo....(piu' o meno). Il problema che ho adesso è che NON VOGLIO scrivermi manualmente tutti i valori negli array. Vorrei prenderli dalla struttura che ho allegato, ma non riesco a trovare il modo. Mi andrebbe bene anche estrarli e poi metterli in un database con qualche struttura..solo che li ho salvati cosi' e non so come estrarli.... \":cry:\" ---------------------------------------- AUTORE: 645 DATA :06/07/2006 - 08:28:41 ---------------------------------------- Se fai "unbundle by name" sui cluster delle regioni puoi dividere i comuni e per ogni comune trovare un array. Poi lavorando sull'array puoi memorizzare i vari elementi. (vedi immagine) ---------------------------------------- AUTORE: 487 DATA :06/07/2006 - 08:47:46 ---------------------------------------- Ciao, non sono sicuro di aver capito bene cosa vorresti fare, comunque prova a vedere se ti può essere utile il vi che ho modificato. ---------------------------------------- AUTORE: 129 DATA :06/07/2006 - 09:16:42 ---------------------------------------- \"8)\" Dimenticavo ....(un pò mi sembrava troppo invero che non conoscevi le property su ring e enum, ma magari una svista), sorry.... Prova questo, cion una piccola modifica dovresti tirare fuori anche le label... Ciao ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 09:56:13 ---------------------------------------- Grande Nicola! Questo è quello che mi mancava!! io cercavo di estrapolarli con le property e basta anzichè prendere il nome dei controlli dal Vi reference pensavo di mettere tuto in un cluster unico ma non riuscivo ad accedere poi ai "sottocluster"..cosi' direi che è la soluzione ideale! grazie mille a tutti. ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 11:21:49 ---------------------------------------- eh no cazzarola! Mi manca ancora un pezzo!!! come faccio ad estrapolare il nome delle province?!?!? ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 11:23:36 ---------------------------------------- forse ho capito..ma inche guaio mi sono cacciato?!?!? \":cry:\" ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 12:47:52 ---------------------------------------- Ok..allora.... sono arrivato alla soluzione. Purtroppo pero' l'elenco delle regioni devo averlo già nell'enum perche' la soluzione consigliata da nicola funziona solo in edit mode. questo è quelo che volevo fare... il bello sarebbe prelevare i dati da un file (ma al momento non sapreicon che struttura salvarli). altro problema è che ho dei nomi memorizzati male...dei tab che non funzionavano e quindi alcuni nomi sono due comuni diversi nello stesso elemento dell'array e sta cosa mi mmhh...diciamo rattrista..!!!!!!!!!!!!!! \":evil:\" Tornando all'inizio...se io ho un cluster con all'interno dei cluster a sua volta, perchè posso risalire con le property ai controls del primo cluster e non a quelli contenuti nei controls interni?? ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 12:48:16 ---------------------------------------- dimenticavo l'allegato! ---------------------------------------- AUTORE: 129 DATA :06/07/2006 - 14:59:11 ---------------------------------------- Stavolta mi deludi \":D\" , se utilizzi il ring anzichè l'enum, puoi farlo anche in run time..... Scherzo ovviamente, spero che il ring ti risolva.... \"8)\" ---------------------------------------- AUTORE: 482 DATA :07/07/2006 - 07:59:37 ---------------------------------------- Si, infatti quando ti avevo ringaziato la prima volta avevo usato il ring, poi l'avevo convertito in ENUM per comodità, in modo che nel case mi visualizzasse il nome delle regioni senno' tra nomi e numeri non mi ritrovavo piu'. In ogni caso, mi risolve la questione delle regioni..ma il dubbio su perchè non posso accedere alle proprietà dei cluster nidificati mi rimane qui (e con il qui immaginatevi il gesto classico). \":wink:\" ---------------------------------------- AUTORE: 1050 DATA :07/07/2006 - 08:32:04 ---------------------------------------- Ciao, non ho seguito la discussione dall'inizio ma forse per quanto riguarda i "cluster nidificati" cercavi qualcosa di simile (vedi allegato). un altra cosa, io ancora non li ho mai usati ma forse per la tua applicazione l'oggetto + appropriato da usare potrebbe essere un tree anzichè i cluster. saluti ---------------------------------------- AUTORE: 482 DATA :07/07/2006 - 12:41:24 ---------------------------------------- Grandissimo!! Ecco cosa mi mancava!! era il To more specific class!! Grandee!! ---------------------------------------- ================================================================================ Acquisizione di Immagini in RAM ================================================================================ AUTORE: 1339 DATA :05/07/2006 - 14:19:34 ---------------------------------------- Salve, vorrei qualche vostro suggerimento circa un progetto al quale devo lavorare. In pratica ho una videocamera Firewire e da questa necessito di acquisire delle immagini. In Particolare Dovrei avere la possibilita' di selezionare solo una piccola regione e acquisire solo quella parte, le immagini devono essere immagazzinate in Ram per velocizzare appunto l'acquisizione e successivamente trasferite su HD. avete qualche suggerimento da darmi visto che sono un niubbo. Thanks. ---------------------------------------- AUTORE: 278 DATA :06/07/2006 - 09:06:33 ---------------------------------------- Ciao, [quote:2qvrtf1z]In Particolare Dovrei avere la possibilita' di selezionare solo una piccola regione e acquisire solo quella parte[/quote:2qvrtf1z] ci sono 2 modi per ottenere questo: 1) Mascherare le zone non interessate, direttamente dall'hardware della telecamera (non tutte le telecamere lo permettono) 2) Una volta acquisita limmagine creare una ROI (Region of interest) e ritagliare via software le porzioni d'immagine che non ti servono. Le immagini acquisite, di default vengono immagazzinate in ram, solo che questo per un programmatore LV è trasparente. Successivamente, puoi decidere di salvarle su HD Ciao ciao ---------------------------------------- AUTORE: 1339 DATA :06/07/2006 - 09:10:50 ---------------------------------------- ma mi serve vision per fare sta cosa?? ---------------------------------------- AUTORE: 1339 DATA :06/07/2006 - 09:12:59 ---------------------------------------- ma non e' possibile acquisre direttamente solo la ROI tipo acquisire la prima immagine intera selezionare una ROI e di tutte le immagini successive acquisire solo la regione selezionata in modo da avere immagini piu' piccole e velocizzare tutta l'operazione ---------------------------------------- AUTORE: 4 DATA :06/07/2006 - 10:43:44 ---------------------------------------- Dipende strettamente dalla videocamera che usi, cerca nella documentazione. Ciao, ---------------------------------------- AUTORE: 1339 DATA :06/07/2006 - 12:36:49 ---------------------------------------- si la videocamera lo puo' fare semplicemente non legge i pixel fuori dalla ROI. ---------------------------------------- AUTORE: 4 DATA :06/07/2006 - 13:12:18 ---------------------------------------- allora ti server IMAQ vison per farlo co labview. Ciao ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 13:17:52 ---------------------------------------- Sbaglio o si sta dimenticano l'opzione piu' importante cioè quella di far acquisire solo una parte dell'immagine direttamente al frame grabber?? Ok la telecamera, ok il software, ma di mezzo c'e il nostro caro amico MAX che permette di parzializzare l'immagine da acquisire \":wink:\" Questo soprattutto perchè mascherarla via software comporta una perdita in tempi di risposta non indifferente \"8)\" ---------------------------------------- AUTORE: 1339 DATA :06/07/2006 - 13:20:01 ---------------------------------------- [quote="gepponline":151ot6xf]Sbaglio o si sta dimenticano l'opzione piu' importante cioè quella di far acquisire solo una parte dell'immagine direttamente al frame grabber?? Ok la telecamera, ok il software, ma di mezzo c'e il nostro caro amico MAX che permette di parzializzare l'immagine da acquisire \":wink:\" Questo soprattutto perchè mascherarla via software comporta una perdita in tempi di risposta non indifferente \"8)\"[/quote:151ot6xf] ciao mi spiegeresti meglio come funziona sta cosa?? ---------------------------------------- AUTORE: 482 DATA :06/07/2006 - 14:14:42 ---------------------------------------- allora..il frame grabber..cioè quello che acquisisce l'immagine e la porta su pc, puo' stabilire se elaborare tutti i dati che gli arrivano dalla telecamera o solo alcune parti. nel MAX (Measuremente & Automation Explorer) tu hai la possibilità di settare le dimensioni dell'immagine ch evuoi acquisire e l'offset in pixel dal bordo. cosi' facendo anche se la telecamera acquisisce 1Mpixel tu puoi scegliere di elaborare solo una porzione di quei pixel ad esempio 320x240 velocizzando cosi' tutte le operazioni che vengono fatte in seguito. Se hai già la scheda di acquisizione e la telecamera, aprendo il max trovi subito quello di cui sto parlando \":wink:\" ---------------------------------------- AUTORE: 1339 DATA :06/07/2006 - 14:21:46 ---------------------------------------- ma scusa a cosa mi serve la scheda di acquisizione? io voglio acquisire mediante Firewire. Vision c'e' qui in Laboratorio anche se non ho ancora avuto modo di provarlo.... cmq la cosa principale che mi interessa e' acquisire piu' immagini possibili al secondo in ram.....l'acquisizione deve essere velocissima (ovviamente ci sono dei limiti fisici legati all'hardware utilizzato) poi per la fase di storage non mi interessa la velocita'. Visto che spesso la tipologia di immagini da acquisire e' tale che solo piccole regioni sono di interesse, ho pensato che sfruttando questa caratteristica e' possibile velocizzare tutto il flusso di acquisizione semplicemente selezionando una piccola ROI. ---------------------------------------- AUTORE: 482 DATA :07/07/2006 - 07:56:05 ---------------------------------------- Ok pardon, avevo trascurato il fatto dell'acquisizione firewire. Io per adesso ho sempre acquisito con dei framegrabber, quindi non saprei dirti come funziona con le firewire (almeno quelle collegate alle porte standard del pc), cmq se la telecamere è visibile in MAX, sta cosa potresti comunque farla. La questione della ROI che dici tu è giusta..il problema è sempre quello che al pc arrivano TUTTI i pixel, poi vengono sottratti quelli che non ti servono ad ogni ciclo. ---------------------------------------- AUTORE: 1339 DATA :07/07/2006 - 08:36:21 ---------------------------------------- [quote="gepponline":3kp8ie02] La questione della ROI che dici tu è giusta..il problema è sempre quello che al pc arrivano TUTTI i pixel, poi vengono sottratti quelli che non ti servono ad ogni ciclo.[/quote:3kp8ie02] se fosse cosi' allora mi sa che non velocizzerei niente. Riporto pero' quello che c'e' scritto sul Manuale: [i:3kp8ie02]"This camera supports Partial-scannin operation in each mode. Partial Scannin is a procedure in wich only a portion of the image is scanned. It is possible to increase the frame rate by reducing the number of vertical ines scanned."[/i:3kp8ie02] ---------------------------------------- AUTORE: 278 DATA :07/07/2006 - 08:40:30 ---------------------------------------- [quote:5u7wfl2z]La questione della ROI che dici tu è giusta..il problema è sempre quello che al pc arrivano TUTTI i pixel, poi vengono sottratti quelli che non ti servono ad ogni ciclo.[/quote:5u7wfl2z] Come anticipato da Ale914, questo non è sempre vero e dipende in gande misura dall'hardware utilizzato. Mi sembra di aver capito che la telecamera Firewire in tuo possesso ti permette già a livello hardware di creare delle ROI, agendo direttamente sul sensore della telecamera. In questo caso, mascherando direttamente le zone non interesate, la telecamera fornirà al PC solo i "pixel" voluti, velocizzando il processo di acquisizione. Solitamente, il frame rate di una telecamera è inversamente proporzionale alla risoluzione utilizzata, quindi, più è piccola la zona da acquisire (in termini di pixel) più riesci ad avere un frame-rate elevato. ---------------------------------------- AUTORE: 1339 DATA :07/07/2006 - 12:18:12 ---------------------------------------- Grazie per le info. In realta' sto studiando un po' il vision per capire se puo' fare al mio caso. Ho controllato il datasheets delle videocamera Firewire sul quale tra le speccifiche c'e' scritto che la videocamere riesce ad acquisire circa 40 frames al second con binning 8X8. ora io voglio capire come faccio a creare un VI che mi permetta di acquisire in maniera velocissima (in RAM) piu' immagini possibili...e poi successivamente memorizzarle in (HD) impegando tutto il tempo che vuole! ---------------------------------------- AUTORE: 482 DATA :07/07/2006 - 12:46:13 ---------------------------------------- Esattamente. Come dice esodar dipende dall'hardware. Io parlando di ROI ho inteso delel ROI software. La parzializzazioen dell'immagine via hardware non credo sia corretto denominarla ROI. Il problema tuo al momento è che devi parzializzare via harware l'immagine..ma per fare questo o hai i suoi driver o eventualmente dei protocolli di comunicazione, altrimenti ciccia... ---------------------------------------- AUTORE: 1339 DATA :07/07/2006 - 13:02:18 ---------------------------------------- ho dei driver adattati.......infatti la videocamera gia' funge su altri programmi sempre sviluppati in Labview ---------------------------------------- AUTORE: 482 DATA :07/07/2006 - 13:34:16 ---------------------------------------- si ok, ma riesci a configurarla?? Hai parlato di acquisire 40 frames al second con binning 8X8 ma dovrai dirglielo in qualche modo, senno' ti acquisirà sempre l'immagine piena e poi dovrai parzializzarla via software... ---------------------------------------- AUTORE: 1339 DATA :07/07/2006 - 13:52:17 ---------------------------------------- credo di si! ho vari VIs tra cui DCAM capture, DCAM, Close, DCAM init, DCAM live ed ad esempio se apro DCAM capture vi sono dei settings tra cui anche il Binning. ---------------------------------------- AUTORE: 482 DATA :07/07/2006 - 14:21:57 ---------------------------------------- Beh allora sei a cavallo..fai quei settaggi e hai tutta la velocità che vuoi \";)\" se usi il vision..beh attento ad usare l'acquire anzichè il grab e a ottimizzare tutti i calcoli che non servono nei cicli \":wink:\" ---------------------------------------- AUTORE: 1339 DATA :07/07/2006 - 14:40:57 ---------------------------------------- Innanzitutto, Grazie mille a tutti per il vostro prezioso aiuto! non mi e' ancora chiaro il Vision come lo devo usare.....sto facendo delle prove. al momento non avendo la videocamera sulla macchina che sto utilizzando ....sto semplicemente Simulando l'acquisizione...... ma poi come faccio a fare il VI ce faccia quest'acquisizione??? ---------------------------------------- AUTORE: 1339 DATA :11/07/2006 - 08:53:29 ---------------------------------------- caro Geppo, intendi dire che devo usare il vi dell'acquire invece del vi del grab?? non ho capito ancora pero' dove trovo questi VI. ---------------------------------------- AUTORE: 482 DATA :11/07/2006 - 12:35:15 ---------------------------------------- Devi avere installato il modulo Vision e li trovi nel gruppo di acquisizione se hai labview 8 o in un gruppo motion/vision con 7.1 ---------------------------------------- AUTORE: 1339 DATA :11/07/2006 - 12:48:11 ---------------------------------------- Allora ho Labview 8 e ho installato Vision ho il gruppo motion e vision ma non trovo i VIs grab, acquire etc........... ---------------------------------------- AUTORE: 1339 DATA :11/07/2006 - 13:27:42 ---------------------------------------- mi sa che devo mettere Vision Acquisition Software right???? ---------------------------------------- AUTORE: 1339 DATA :11/07/2006 - 14:00:15 ---------------------------------------- ok installato Vision Acquisition Software mi ritrovo tutti i vi che dicevamo non c'e' pero' acquire ma ho un Grab Acquire .....intendevi quello?? poi a sto punto non ho capito come utilizzare i vi DCAMAPI ---------------------------------------- AUTORE: 482 DATA :11/07/2006 - 15:10:31 ---------------------------------------- Si si, è il Grab Acquire che intendevo. ..e che sono i DCAMAPI ?? \":o\" ---------------------------------------- AUTORE: 1339 DATA :11/07/2006 - 15:30:57 ---------------------------------------- i driver della mia videocamera ---------------------------------------- AUTORE: 1339 DATA :13/07/2006 - 19:06:57 ---------------------------------------- Ragazzi, ricapitolando Ho installato il vision ed inoltre ho installato tutte le librerie per labview della mia videocamera Firewire ma ancora non ho capito come fare per acquisire in ram piu' immagini possibvili al secondo e dopodiche' memorizzarle in hard disk............ ---------------------------------------- AUTORE: 482 DATA :14/07/2006 - 07:50:45 ---------------------------------------- Fossi in te proverei con l'imaq sequence. MA che tipo di velocità vuoi raggiungere? Che velocità massima ha la telecamera? ---------------------------------------- AUTORE: 1339 DATA :14/07/2006 - 07:59:54 ---------------------------------------- allora siamo a circa 9 fps a immagine intere ma gia se effetuiamo un binnin 2x2 andiamo a 16.3 con un binning 8x8 supporta una velocita' di 43 fps......... ---------------------------------------- AUTORE: 482 DATA :14/07/2006 - 12:34:44 ---------------------------------------- quindi mi stai dicendo che vai al massimo a 16,3 in 2x23 quando dovrebbe arriavre a 43 in 8x8?? A sto punto direi che c'e' qualcosa di troppo nella programmazione..non hai un po' di codice da allegare? ---------------------------------------- AUTORE: 1339 DATA :17/07/2006 - 09:21:57 ---------------------------------------- il codice lo sto ancora scrivendo il fatto e' che non mi e' chiaro ancora come fare ad acquisire prima i frames nella RAM e finita l'acquisizione Svuotare la RAM salvando tutti in frames su HD. quei valori del Binning li ho letti sul Datasheet della videocamera ma ancora non li ho testati.... ---------------------------------------- AUTORE: 482 DATA :17/07/2006 - 13:10:02 ---------------------------------------- ..ehm... stavo pensando...ma c'e' un motivo particolare per bufferizzare le immagini in RAM? Le possibilità sono due se non sbaglio offerte dal vision, creare un buffer di immagini oppure acquisirne una per volta. Ma stavo pensando, se ne acquisisci una per volta e crei tu tramite gli shift register un array di immagini che poi in seguito salvi su disco non puo' bastare? Cmq nelle funzioni di vision dovresti guardarti il modulino: IMAQ sequence per valutare se fa al caso tuo ---------------------------------------- AUTORE: 1339 DATA :17/07/2006 - 13:58:38 ---------------------------------------- [quote:1qwruc2q] stavo pensando...ma c'e' un motivo particolare per bufferizzare le immagini in RAM?[/quote:1qwruc2q] Bah pensavo che in questo modo l'acquisizione fosse piu' veloce. [quote:1qwruc2q] Le possibilità sono due se non sbaglio offerte dal vision, creare un buffer di immagini oppure acquisirne una per volta. [/quote:1qwruc2q] in realta' io devo usare i moduli della mia videocamera che sono il Dcampi Labview Library e l'hamamatsu Video Capture Library [quote:1qwruc2q] Ma stavo pensando, se ne acquisisci una per volta e crei tu tramite gli shift register un array di immagini che poi in seguito salvi su disco non puo' bastare?[/quote:1qwruc2q] ok ma per salvare poi devo utilizzare un altro LOOP? ---------------------------------------- AUTORE: 1339 DATA :17/07/2006 - 14:56:42 ---------------------------------------- questo e' il codice che dovrebbe fare l'acquisizione ---------------------------------------- AUTORE: 1339 DATA :17/07/2006 - 14:59:38 ---------------------------------------- acquisizione [url=http://imageshack.us:2nq6xszf][img:2nq6xszf]http://img216.imageshack.us/img216/2364/seqhamaek8.jpg[/img:2nq6xszf][/url:2nq6xszf] ---------------------------------------- AUTORE: 482 DATA :17/07/2006 - 15:14:47 ---------------------------------------- e cosi' com'e' adesso è lento? ---------------------------------------- AUTORE: 1339 DATA :18/07/2006 - 15:53:57 ---------------------------------------- mmmmmmmm quello di sopra in realta' non mi funziona proprio adesso ne sto provando un altro ma non mi e' chiara una cosa allora nel While Loop ho creato un loop tunnel dove ad ogni iterazione viene inserita l'immagine catturata........ Ora se dal tunnel (abilitando l'indexing) creao un indicatore reisco ad avere un array dove si presuppone abbia le immagini catturate giusto??? Come faccio ora a scrivere queste immagini su HD??? thanks. ---------------------------------------- AUTORE: 482 DATA :19/07/2006 - 07:14:50 ---------------------------------------- Con le funzioni del vision "IMAQ write file" oppure puoi creare un video con le funzioni AVI \":wink:\" ---------------------------------------- AUTORE: 1339 DATA :20/07/2006 - 08:41:17 ---------------------------------------- Grazie per il consiglio. Sto provando questi due programmi per l'acquisizione........ma non riesco ad andare piu' di 4 o al massimo 5 frame acquisiti al secondo.....lentissimo [url=http://img84.imageshack.us/my.php?image=seqaz1.jpg:1lhp621u][img:1lhp621u]http://img84.imageshack.us/img84/186/seqaz1.th.jpg[/img:1lhp621u][/url:1lhp621u] ---------------------------------------- AUTORE: 1339 DATA :20/07/2006 - 08:45:27 ---------------------------------------- ovviamente ho provato sia effettuando la visualizzazione real-time sia senza ma non cambia molto ---------------------------------------- AUTORE: 482 DATA :20/07/2006 - 12:41:23 ---------------------------------------- 1) non ho capito cos'e' quel modulino con quel 5000 in ingresso; 2) Prova a mettere un wait until next multiple all'interno del ciclo con una costante di 30ms in ingresso ---------------------------------------- AUTORE: 1339 DATA :24/07/2006 - 12:54:11 ---------------------------------------- 1) allora ti scrivo proprio quello che c'e' nell'Help in merito al modulino al quale ti riferivi: [i:36ye4in7]This waits for a user specified event to be generated. Once the event has been signaled, this function will return. Create a constant or control from the Code In terminal to get a list of valid IDs. If the elapsed waiting time exceeds the value set as timeout, then the function will return.[/i:36ye4in7] ---------------------------------------- ================================================================================ array in ordine alfabetico ================================================================================ AUTORE: 680 DATA :05/07/2006 - 19:18:27 ---------------------------------------- per caso qualcuno ha gia creato del codice per ordinare alfabeticamente gli elementi di un array di stringhe..... bye... ---------------------------------------- AUTORE: 680 DATA :05/07/2006 - 19:20:40 ---------------------------------------- scusate mi ero dimenticato della funzione sort 1D array...... bye...... ---------------------------------------- ================================================================================ Spampa di un VI ================================================================================ AUTORE: 1078 DATA :06/07/2006 - 09:34:36 ---------------------------------------- Ciao a tutti.... Ho un piccolo problema con la stampa di un VI che fa da report per la mia applicazione. Il problema che mi si presenta è questo: la stampa del mio VI ha sempre lo sfondo grigio, nonostante la proprietà Backcolor del mio VI sia bianco. Sapete dirmi come fare a stampare il VI con il colore di sfondo bianco? Grazie della dritta.... Ricky ---------------------------------------- AUTORE: 4 DATA :06/07/2006 - 11:04:37 ---------------------------------------- al posto di usare le proprietà colora il pannelo di bianco a mano. ho sperimentato anche io cose esotiche usano le proprietà estetiche prima di stampare i FP, a volte sembravano non avere effetto. Ciao, ---------------------------------------- AUTORE: 1078 DATA :07/07/2006 - 10:33:50 ---------------------------------------- Grazie Ale, ma non riesco a capire cosa intendi per impostare il colore di sfondo a mano. Ti invio un'esempio... Nel VI di esempio ho colorato lo sfondo del VI di bianco con la tools palette e non ho programmato assolutamente nulla. Sto utilizzando LV8 e stampo il VI dalla funzione Print VI del menu File, nonostante stia utilizzando dei sistemi semplici, messi a disposizione direttamente da LV lo sfondo del mio VI viene stampato di colore grigio... Non riesco proprio a capire dov'è l'errore. ---------------------------------------- AUTORE: 1078 DATA :07/07/2006 - 10:35:12 ---------------------------------------- OOpppppss.... mi sono dimenticato di allegare il file.....!!!!!! \":oops:\" ---------------------------------------- AUTORE: 1078 DATA :14/07/2006 - 12:44:49 ---------------------------------------- Ciao a tutti, Il mio semplice problema è diventato più complesso di quanto immaginavo. Ho scoperto (sottoponendo il problema alla NI) che è un bug di labview 8. Per aggirare l'ostacolo è necessario disegnare in back ground un controllo decorativo (tipo raised box) e colorarlo di bianco! Se qualcuno vuole maggiori informazioni può consultare questo forum: [url:2qnqgxue]http://forums.ni.com/ni/board/message?oard.id=170&message.id=157956&requireLogin=False[/url:2qnqgxue] ---------------------------------------- ================================================================================ parentesi quadre e match pattern... ================================================================================ AUTORE: 680 DATA :06/07/2006 - 14:57:03 ---------------------------------------- devo estrarre un numero racchiuso tra parentesi quadre in una stringa del tipo: testo fdkgjsog [51] qualcuno sa come fare? ciao grazie...... ---------------------------------------- AUTORE: 1030 DATA :06/07/2006 - 15:53:24 ---------------------------------------- Puoi utilizzare la successione di due "Match Pattern" con ingresso di regular expression la parentesi quadra aperta per il primo, la parentesi quadra chiusa per il secondo. La parentesi quadra è un carattere speciale devi quindi usare la slash \ prima di [ e ] Ti allego l'esempio ---------------------------------------- AUTORE: 680 DATA :06/07/2006 - 21:14:24 ---------------------------------------- grazie mille!!! mi era sfuggito il discorso dello slash......... \":lol:\" \":lol:\" \":lol:\" bye.... ---------------------------------------- ================================================================================ Hardware Driver API vs. LabVIEW ================================================================================ AUTORE: 705 DATA :06/07/2006 - 16:02:47 ---------------------------------------- Ho un tappeto di sensori di pressione provvisto di una Windows API per la loro visualizzazione sullo schermo del pc. Vorrei acquisire e visualizzare invece i dati in ambiente LabVIEW. Ho provato a costruire una DLL ed a utilizzare il Call Library Function Node, ma senza successo: i dati nell'API vengono copiati in memoria solo all'arrivo di un messagio hardware (vedi linea 185 nel file allegato, TrialSampleView.cpp). Che posso fare ? Molte grazie per qualunque suggerimento. ---------------------------------------- ================================================================================ Comunicazione controllore-FPGA ================================================================================ AUTORE: 1347 DATA :07/07/2006 - 12:13:19 ---------------------------------------- Ciao a tutti. Sono disperatamente alla ricerca di un paramentro che molto semplicemente, ne sono sicuro, potrete fornirmi voi. Qual'è la capacità di comunicazione tra lo chassis FPGA e il controllore della centralina (sto utilizzando una cRIO 9004 con chassis 9102, in particolare solo un modulo di analog input) Ringraziandovi già per la risposta, mi scuso per la stupidità della domanda ciao federico ---------------------------------------- AUTORE: 247 DATA :07/07/2006 - 23:57:33 ---------------------------------------- Ciao, non ho la risposta ad una domanda stupida ma da quello che ho letto posso dirti che tra controllore e FPGA esiste un bus di comunicazione di tipo PCI. Solitamente il bus PCI va alla metà della frequenza della memoria RAM...si, però non è dato sapere (datasheet) quale si la frequenza di funzionamento di quest'ultima per il cRIO...e quindi non saprei risalire nemmeno a quella del bus... Buona ricerca..\";-)\" BYE. ---------------------------------------- AUTORE: 1347 DATA :10/07/2006 - 14:48:21 ---------------------------------------- Infinitamente ti ringrazio. La mia ricerca prosegue, con qualche elemento di speranza in più. Grazie federico ---------------------------------------- ================================================================================ Cluster e Variant ================================================================================ AUTORE: 1355 DATA :07/07/2006 - 16:56:28 ---------------------------------------- Salve a tutti sono nuovo del forum. Il mio problema è questo: Ho un variant che contiene un cluster e altri controlli. E' possibile conoscere i dati contenuti nel cluster senza sapere quali sono gli altri controlli ma conoscendo la composizione del cluster? Grazie a chiunque voglia rispondere. Ciao. ---------------------------------------- AUTORE: 4 DATA :13/07/2006 - 08:53:34 ---------------------------------------- Ciao, io ho utilizato le librerie di openg.org per la gestione dei variant. Esiste una funzione che permette di estrarre il calore di un controllo nel variant conoscendone il nome. Ciao, ---------------------------------------- AUTORE: 1355 DATA :14/07/2006 - 08:06:56 ---------------------------------------- Grazie ho fatto alcuni progressi: Ho trovato la funzione "Cluster to Array of VData__ogtk__ogc.vi" che restituisce un array di variant per ogni elemento del cluster e la funzione "Get Cluster Element Names__ogtk__ogc.vi" che restitusce un array con i nomi dei controlli del cluster ma la funzione che mi hai indicato no. Vorrei sapere cosa intendi per calore di un controllo e se puoi dirmi il nome della funzione che intendevi. Ciao ---------------------------------------- AUTORE: 4 DATA :14/07/2006 - 08:23:37 ---------------------------------------- ehmmm scusa, chiaramente volevo scrivere VALORE ma la c è troppo vicina alla v... \"8)\" Ciao, ---------------------------------------- ================================================================================ Tabelle e Multicolumn Listbox ================================================================================ AUTORE: 645 DATA :10/07/2006 - 14:37:03 ---------------------------------------- Secondo voi è possibile estrarre dati da un file e memorizzarli in una tabella o in una Multicolumn Listbox in formato decimale anzichè stringa? Io ho provato un po' di tutto ma riesco a memorizzare gli elementi nella Multicolumn Listbox solo attraverso la voce "Items Names": facendo così però memorizzo i dati in formato stringa. Siccome poi li ho bisogno come numeri devo riconvertirli prima di usarli. Se i dati diventano tanti questo procedimento mi rallenta il VI. Che dite? ---------------------------------------- AUTORE: 482 DATA :10/07/2006 - 15:43:50 ---------------------------------------- ....mi sa che in quanto listbox è intrinsecamente una tabella di stringhe. Stavo provando con un array bidimensionale esteticamente riadattato ma è un casino con le selezioni... \":cry:\" ---------------------------------------- AUTORE: 645 DATA :10/07/2006 - 15:46:45 ---------------------------------------- Io avevo provato a combinare i simboli di una listbox con le caselle di un array ma graficamente è un po' un gran casino. Capperi però... Anche con i formati variant e le varie conversioni rimangono dati stringa. ---------------------------------------- ================================================================================ Elaborazione video firewire ... ================================================================================ AUTORE: 873 DATA :11/07/2006 - 13:19:53 ---------------------------------------- Ho Labview 8 completo di vision assistant, una camera firewire a colori da usare per eseguire il tracking di un led rosso in una stanza buia.Devo eseguirlo in real time....ho visto tutte le funzioni di elaborazione e color match applicate ad un 'immagine,ma non ad un flusso video...e' possibile cio'? o meglio e' possibile in una via piu intelligente di spezzare continuamente il flusso video con la funzione 'snap' ed elaborare il frame ottenuto?questa via non mi fa tenere 25 frame a secondo....ma al max 3-4 L idea sarebbe di avere l'immagine di questa stanza buia con il solo led acceso, e far fare a labview una specie di cerchio o qualcosa a video che insegua in real time lo spostamento del led (la velocita di spostamento e' cmq molto bassa....) Grazie a tutti! ffogs ---------------------------------------- AUTORE: 1111 DATA :11/07/2006 - 17:02:17 ---------------------------------------- Ciao ffogs, mi sembra abbastanza strano un comportamento come quello che descrivi. La strada che hai individuato è quella giusta: devi fare un'acquisizione di un frame, lo sposti in un buffer di lavoro e chiedi un nuovo frame alla camera. Nel frattempo analizzi l'immagine per trovare il led. Io per le mie applicazioni uso una struttura similare, anche se con piccole varianti, e riesco a tenere un frame rate di circa 40 coppie di fotogrammi stereoscopici (quindi 2 camere firewire sullo stesso bus) al secondo, analisi compresa. Il perchè tu abbia questi rallentamenti può dipendere da molti fattori: 1 - camera lenta. 2 - analisi immagine poco ottimizzata. 3 - struttura dell'applicazione che ha qualche inciampo (per es. cicli loop non ben temporizzati). 4 - Pc di lavoro moooolto lento \":wink:\" Purtroppo senza vedere il codice è difficile poterti dare una mano, se vuoi postalo e cercherò di aiutarti. \":)\" Ico ---------------------------------------- AUTORE: 873 DATA :11/07/2006 - 18:01:59 ---------------------------------------- Tu per ogni loop esegui anche una visualizzazione 'real time' dei frame elaborati? Credo che il piccolo (anzi grande) programma iniziale che ho fatto...frutto di pezzi presi qua e la di esempi sia SICURAMENTE non ottimizzato...provo a seguire la tua struttura e se non ne esco ti posto il vi.... \":o\" Grazieeeeee!! Ciao ffogs ---------------------------------------- AUTORE: 1111 DATA :11/07/2006 - 18:15:03 ---------------------------------------- Se serve visualizzo, ma questo fa perdere circa 10 millisecondi, quindi normalmente la visualizzazione viene abilitata solo nelle fasi di taratura. Per velocizzare le performance utilizzo le VI di basso livello IEEE1394, dove alloco l'immagine e configuro la camera all'inizio del programma, e poi uso il GetImage per chiedere un frame. Sempre per migliorare le performance a volte uso due loop paralleli (ottimizzazione del multithreading) di cui uno si occupa della gestione della camera, e il secondo si macina l'analisi. Il passaggio dell'immagine dal loop di acquisizione a quello di analisi può essere effettuato con le queue, metodo molto robusto e affidabile. Naturalmente ci sono molti modi differenti per costruire una infrastruttura acquisizione - analisi, per esempio una macchina a stati, ma parallelizzando i processi la velocità globale ne guadagna, soprattutto se il SW gira su una macchina biprocessore. Una domanda importante, il rallentamento avviene nella fase di acquisizione o in quella di analisi? Ico ---------------------------------------- AUTORE: 2266 DATA :16/11/2009 - 11:54:11 ---------------------------------------- ciao a tutti, mi rendo conto che questo post sia un po' datato ma mi trovo ad affrontare un problema simile, con una competenza sicuramente inferiore alla vostra. dovrei acquisire con webcam (però se possibile userei una usb) i movimenti di un occhio e avvisare realtime se questo si muove oltre una certa soglia. potreste perfavore pubblicare un printscreen del vostro vi? (dispongo solo di labview 7.0) grazie in anticipo per la disponibilità ---------------------------------------- ================================================================================ Importare in Access con gli ActiveX ================================================================================ AUTORE: 482 DATA :11/07/2006 - 15:32:22 ---------------------------------------- ..ma ciao! Ho due dataase, uno in rete e l'altro stand alone su una macchina. Ogni tanto devo importare quello stand alone in quello in rete. Le due abelle dei database hanno una chiave primaria (contatore)indipendente (cioè i numeri possono essere duplicati). Per questo per importare i dati, ho pensato di esportare i dati di quello fuori rete in un file di testo poi nell'altro PC importarlo trascurando il campo chiave primaria in modo che ai dati importati mi venga assegnata una nuova chiave. E fin qui tutto bene. Il problema nasce quando l'utente verrà ogni tot a chiedere a me di importargli il DB perchè l'utente è ignorante e l'operazione non la sa fare. Quindi pensavo di automatizzare questo processo. Pensavo di usare gli activeX ma non riesco a capire come fare. Arrivoa far eseguire il Docmd con il comando acCmdImport solo che facendo questo mi si apre la finestra di scelta file ecc ecc e non ho la possibilità di settarle programmaticamente. Qualcuno che sa smanettare con gli activeX misa dire come posso fare (non ho voglia di perdermi nei meandri di proprietà e metodi!!). Sono ben accette anche alternative alla modalità di importazione che non siano di inserire record per record tutte le voci importate please \":wink:\" ---------------------------------------- AUTORE: 482 DATA :11/07/2006 - 15:56:38 ---------------------------------------- Problema risolto dopo un lampo di genio! \":wink:\" Se qualcuno è interessato me lo dica che posto il VI! ---------------------------------------- AUTORE: 645 DATA :11/07/2006 - 16:28:06 ---------------------------------------- Io normalmente uso i database senza activeX: vedere un VI nuovo mi incuriosisce! Se puoi postare guardo volentieri... ---------------------------------------- AUTORE: 482 DATA :12/07/2006 - 15:53:42 ---------------------------------------- Io prima discoprire le ADO utilizzavo solo gli activeX. Ovviamente in questo caso non si parla di Db generici ma di gestione in ACCESS. Ti allego il file che esegue programmaticamente l'importazione da File di testo. N.B.All'interno del DB deve esserci una regola di esportazione che abbia il nome indicato. ---------------------------------------- ================================================================================ DATI SU EXCEL ================================================================================ AUTORE: 1359 DATA :12/07/2006 - 08:23:27 ---------------------------------------- SALVE VORREI SAPERE \":lol:\" COME FARE AD INSERIRE DATI IN UNA CELLA DI EXCEL! IL MIO PROBLEMA E' PRENDERE UN DATO RILEVATO DAL MIO DISPLAY E INSERIRLO IN UNA CELLA DI EXCEL A MIO PIACERE. GRAZIE. \":o\" ---------------------------------------- AUTORE: 129 DATA :12/07/2006 - 11:48:32 ---------------------------------------- Prova lesempio nella llb allegata, inserisce il contenuto della stringa nelle celle individuate da renge. Sfrutta ACtiveX. Nota: ho notato che molti usano questo vi, vi prego di tenere il nome autore. ---------------------------------------- ================================================================================ SCRITTURA DATI IN MEMORIA E LETTURA DA LV ================================================================================ AUTORE: 705 DATA :12/07/2006 - 09:46:46 ---------------------------------------- E' possibile scrivere dati (un array) in memoria all'interno di un programma C++ e leggere gli stessi run-time in LabVIEW ? Facendo cioè girare in contemporanea sia l'eseguibile che una .vi LV ? grazie ! ---------------------------------------- AUTORE: 4 DATA :12/07/2006 - 10:35:48 ---------------------------------------- Vediamo se ho capito, tu hai due applicazioni una scitta in C++ e una scritta in LabVIEW. Queste due applicazioni devono scambiarsi dei dati (un array nel tuo caso). E' corretto? Ciao, ---------------------------------------- AUTORE: 705 DATA :12/07/2006 - 10:42:05 ---------------------------------------- Esatto. In C++ è scritta una API Windows che mi interfaccia con un array di sensori, collegati attraverso la porta USB. Questa API è concepita per visualizzare i valori letti da questi sensori sullo schermo del pc. Io vorrei fare la stessa cosa, ma acquisendo i dati in LabVIEW. I miei tentativi di costruire una DLL ed usare un Call Library Function Node sono fin'ora falliti. grazie ! ---------------------------------------- AUTORE: 4 DATA :14/07/2006 - 08:45:34 ---------------------------------------- L'argomento è complesso, prova a partire da [url=http://zone.ni.com/reference/en-XX/help/371361A-01/lvhowto/building_a_shared_library_dll_/:vv1q7b5u]qui[/url:vv1q7b5u] Ciao, ---------------------------------------- ================================================================================ togliere bordatura oggetti ================================================================================ AUTORE: 838 DATA :12/07/2006 - 10:14:09 ---------------------------------------- Sto diventando matto: Rendo gli oggetti trasparenti (stringhe, pictur ring,...) ma mi rimane sempre il bordo sfumato grigio!! Una volta sono riuscito a tolgiere anche il bordo rendendo l'oggetto completamente trasparente, ma non mi viene più! mi sembrava che era suff clikkare con il trasparente sul bordo, ma non mi va come cavolo si fa????? grazie \":D\" ---------------------------------------- AUTORE: 4 DATA :12/07/2006 - 10:25:23 ---------------------------------------- usa i coltrolli e indicatori nella paletta "classic". Ciao, ---------------------------------------- AUTORE: 838 DATA :12/07/2006 - 10:29:26 ---------------------------------------- ho provato pure quelli, ma nella picture ring ho qualche problema ora riprovo, grazie \":D\" ---------------------------------------- ================================================================================ simulazione schede daq ================================================================================ AUTORE: 1319 DATA :12/07/2006 - 10:50:53 ---------------------------------------- Ciao a tutti Ho da poco iniziato a lavorare con Labview... quindi le mie conoscenze in materia sono attualmente limitate. Volevo chiedere se è possibile simulare il funzionamento di una scheda DAQ tipo PCI-6220. Mi spiego meglio: ho installato questo scheda sul mio PC tuttavia non posso attualmente connetterci dei sensori perchè sono già utilizzati dal sistema a cui devo rimodernare il controllo, che è attualmente in funzione. Questo sistema (banco prova delle trasmissioni di trattori) deve rimanere fermo il meno possibile, quindi vi chiedevo se è possibile simulare in Labview il comportamento della scheda collegata ai sensori, simulando proprio i canali su di essa occupati. Ho guardato un po' il DAQ assistant ma non credo serva al mio scopo in quanto credo che con esso si configuri la scheda funzionante con i sensori realmente ad essa collegati. Spero di aver esposto in modo comprensibile il mio dubbio. Aspetto con ansia una vostra risposta. Grazie ---------------------------------------- AUTORE: 645 DATA :12/07/2006 - 16:35:12 ---------------------------------------- Con gli ultimi driver DAQ-mx (mi sembra dalla 7.4 in poi) c'è la possibilità di configurare MAX come se la scheda fosse effettivamente agganciata al computer e simulare segnali presenti ai terminali della stessa. In questo modo è possibile preparare il VI simulando la scheda e quando poi questo VI verrà agganciato alla scheda vera saranno sufficienti picolissime modifiche. Non so esattamente quante e quali schede si possano simulare ma puoi guardare http://digital.ni.com/public.nsf/allkb/ ... cc006e25a2 per iniziare. ---------------------------------------- ================================================================================ creazione eseguibile con NI-DAQ ================================================================================ AUTORE: 1358 DATA :12/07/2006 - 11:16:15 ---------------------------------------- Ho provato a costruire un eseguibile con LabVIEW 8 da un VI che permette l'acuisizione di un segnale analogico tramite uno strumento NI, il USB 6009. Premesso che: 1) ho sviluppato il VI con gli EXPRESS 2) ho costruito l'eseguibile seguendo la procedura descritt nel help di LV 3) il VI funziona sul mio pc Ho provato a far girare l'eseguibile su un pc sul quale non è installato LV. Prima ho installato su tale pc il CD in dotazione con lo strumento di acquisizione e ho quindi collegato lo strumento al computer, poi ho fatto partire l'eseguibile. Ovviamente, non funziona. L'errore che mi dà è negli allegati. Sembra come se l'eseguibile non riesca a riprinstinare il task di collegamento allo strumento. Qualcuno sa dirmi qualcosa in merito? Grazie Francesco[/img] ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 10:15:14 ---------------------------------------- Hai installato di driver DaqMX sulla macchina finale? Ciao ---------------------------------------- AUTORE: 645 DATA :06/09/2006 - 11:55:51 ---------------------------------------- Prova a guardare http://digital.ni.com/public.nsf/allkb/ ... AE007401DD e il documento collegato ("Altri file necessari quando si crea un eseguibile") http://digital.ni.com/public.nsf/websea ... enDocument . ---------------------------------------- AUTORE: 1313 DATA :06/09/2006 - 12:24:00 ---------------------------------------- hai ricreato i task nel sw Mesurement6Automation?? Uno dei problemi potrebbe essere quello, oltre a dove installare il labview run-time Cris ---------------------------------------- ================================================================================ Creazione eseguibile per NI-DAQ ================================================================================ AUTORE: 1358 DATA :12/07/2006 - 15:59:25 ---------------------------------------- Ho provato a costruire un eseguibile con LabVIEW 8 da un VI che permette l'acuisizione di un segnale analogico tramite uno strumento NI, il USB 6009. Premesso che: 1) ho sviluppato il VI con gli EXPRESS 2) ho costruito l'eseguibile seguendo la procedura descritt nel help di LV 3) il VI funziona sul mio pc Ho provato a far girare l'eseguibile su un pc sul quale non è installato LV. Prima ho installato su tale pc il CD in dotazione con lo strumento di acquisizione e ho quindi collegato lo strumento al computer, poi ho fatto partire l'eseguibile. Ovviamente, non funziona. L'errore che mi dà è negli allegati. Sembra come se l'eseguibile non riesca a riprinstinare il task di collegamento allo strumento. Qualcuno sa dirmi qualcosa in merito? Grazie Francesco ---------------------------------------- AUTORE: 4 DATA :17/07/2006 - 11:08:39 ---------------------------------------- Non basta creare l'eseguibile ma devi anche creare l'installer. In questo modo crei un cd di installazione che provvede ad installare tutti i sw necessari al corretto funzionamento del tuo programa anche su macchine "vergini". Ciao, ---------------------------------------- ================================================================================ interfacciare con seriale vecchi strumenti ================================================================================ AUTORE: 1317 DATA :13/07/2006 - 08:31:37 ---------------------------------------- Ciao a tutti.Dovrei riuscire ad interfacciare con windows XP un vecchio controllore di temperatura che fino ad ora è stato governato da seriale con visual basic. La procedura passa attraverso l'utilizzo del VISA?Se qualcuno può darmi anche solo un piccolo consiglio....grazie!!!! \":lol:\" javascript:emoticon(':lol:') Laughing ---------------------------------------- AUTORE: 683 DATA :13/07/2006 - 09:34:56 ---------------------------------------- dovresti vedere sul datasheet che tipo di protocollo seriale adotta lo strumento (se è vecchio probbrebbe comunque essere rs232 classico) nel esempi di LV c'è un esempio di comunicazione seriale porva a vedere cosa lo stumento scrive sul bus in uscita ciao ---------------------------------------- AUTORE: 645 DATA :13/07/2006 - 10:28:21 ---------------------------------------- Come già accennato da ilGurzo prova a guardare sul manuale dello strrumento (o sulle specifiche del programma in VB che governa lo strumento): devi cercare il protocollo di comunicazione, la sezione riguardante il controllo remoto dello strumento. Dovresti trovare qualcosa del tipo "mando allo strumento la stringa <ciao> e lui mi risponde con la scritta <ciao>". Con LabView, blocchi VISA, puoi implementare questa struttura: solitamente invii una stringa allo strumento per comandarlo, modificarne i parametri, leggere grandezze. In particolare VISA Open, VISA Close, VISA Write, VISA Read sono i blocchi da guardare. ---------------------------------------- AUTORE: 482 DATA :13/07/2006 - 12:34:54 ---------------------------------------- se non hai i dati di protocollo dovresti provare con unosniffer a vedere che dati passano avanti e indietro dalla seriale ---------------------------------------- AUTORE: 1317 DATA :18/07/2006 - 08:59:41 ---------------------------------------- il manuale dice di seguire due fasi: selecting e polling e vi è un elenco di istruzioni da inviare in esadecimale. La comunicazione avviene attraverso RS232 con XON/XOFF poichè a valle degli strumenti vi è un commutatore rs485/rs232. I comandi in esadecimale vanno inviati mediante VISA??. Scusate ma sono proprio all'inizio!!Grazie ---------------------------------------- AUTORE: 482 DATA :18/07/2006 - 09:13:56 ---------------------------------------- Allora...232 o 485 non cambia per il VISa...se tu devi inviare una stringa invii la stringa e basta. Il problema sta tutto nel protocollo. Tu hai parlato di selecting e polling. Da questo potrei ipotizzare che si tratti di inviare un messaggio di richiesta, dopodichè vengono inviati in continuazione i risultati. QUindi la prima cosa che ti consiglio è di utilizzare l'esempio di labview "Basic Serial Write and Read.vi". Basta che vai nell'example finder e cerchi SERIAL. Quello ti permette di fare una richiesta e leggere una risposta. Da li vedi subito se la cosa funziona o se ricevi degli errori. ---------------------------------------- AUTORE: 645 DATA :19/07/2006 - 08:23:48 ---------------------------------------- Solo un consiglio: occhio alle temporizzazioni tra scrittura e lettura! Una richiesta troppo rapida di elementi dallo strumento dopo aver inviato "la domanda" potrebbe bloccare lo strumento. La comunicazione funziona ma i tempi impostati non vanno bene. Prova a partire dall'esempio che ti suggerisce Gepponline ---------------------------------------- ================================================================================ Estensimetria - Ponte di Wheatstone ================================================================================ AUTORE: 1361 DATA :13/07/2006 - 10:02:36 ---------------------------------------- Ciao a tutti, sono nuovo del forum e sto facendo una tesi in ingegneria meccanica utilizzando il Labview 7.1. ho una scheda di acquisizione 6062E e una morsettiera BNC-2120. ho scoperto che, nel DAQ assistant quando scelgo che tipo di segnale voglio acquisire, posso scegliere "custom voltage with excitation". questo permette, da quello che ho capito di simulare un ponte di Wheatstone per misurare le variazioni di resistenza di sensori come gli estensimeri. Sempre in DAQ Assistant posso scegliere se usare una tensione di eccitamento interna o esterna. se scelgo interna mi dà errore dicendomi che la mia scheda non può fornire un'eccitazione interna. se scelgo esterna non dà nessun errore. La mia domanda è: come faccio a eccitare esternamente un estensimetro e acquisirne il segnale di variazione di resistenza? Mi viene anche il dubbio che non simuli un ponte di Wheatstone ma che abbia bisogno di un apparecchio aggiuntivo che funzioni da ponte. Magari mi manca la conoscenza specifica del ponte o di Labview. Qualcuno più esperto potrebbe aiutarmi? Ringrazio in anticipo chi mi risponderà. ---------------------------------------- AUTORE: 1304 DATA :13/07/2006 - 13:37:06 ---------------------------------------- Ciao Tonino Carotone! \":lol:\" Allora, giusto per dare una risposta più o meno rapida: un ponte di Wheatstone viene usato per misurare variazioni in una resistenza (o anche più di una), misurando la variazione di tensione tra due dei suoi punti; un estensimetro è per l'appunto una resistenza variabile, e la sua variazione è in ragione della variazione di una o più delle sue misure (lineari e /o angolari). Il ponte viene alimentato con una tensione costante (continua o alternata in base alle esigenze della misura). Fatta una piccola introduzione, che mi pareva doverosa, passiamo a: - non hai bisogno di eccitare l'estensimetro, anzi! Se proprio, puoi usare l'uscita della scheda per alimentare il ponte, anche se consiglierei con decisione di usare un alimentatore esterno stabile - basta campionare lo sbilanciamento del ponte e con due formulette (quelle almeno dovrebbero avertele date se stai facendo una tesi!) ti calcoli l'epsilon che ti interessa, e la relativa tensione nel materiale se questo è il tuo scopo Spero di esserti stato d'aiuto, ma comunque chiedi per ogni delucidazione ulteriore \":)\" A presto, HCL ---------------------------------------- AUTORE: 1361 DATA :14/07/2006 - 11:23:25 ---------------------------------------- Grazie HCLollo... conosci anche Tonino... grande! \":P\" la tua risposta è stata molto utile, ma non ho ancora chiaro qualcosa: da quello che ho capito dal DAQ Assistant, il software può simulare un ponte di Wheatstone... mi chiede anche se è il mio collegamento è a quarto di ponte, a mezzo ponte ecc. Se così fosse io dovrei solo collegare all'input della scheda i due poli dell'estensimetro, senza alimentare niente, anche perchè non ci sarebbero altri fili da collegare... Quello che non mi torna è che il ponte di Wheatstone serve a diminuire i disturbi ed il rumore nella misurazione, facendo sì che i disturbi su i vari rami del ponte si annullino a vicenda. Questo effetto non è possibile simularlo via software a mio avviso, quindi si avrebbe una misura meno accurata. Ora, ammettendo che ci voglia un circuito che costituisca il ponte, dovrebbe avere 3 resistenze regolabili per poterlo azzerare (la mia misura è a quarto di ponte), e questo non è quello che speravo... Spero di essere stato chiaro e non troppo prolisso. \":?\" Grazie di nuovo a chi mi risponderà. \":)\" ---------------------------------------- AUTORE: 1365 DATA :18/07/2006 - 13:01:08 ---------------------------------------- caro mecagoenelamor ma è proprio sicuro di avere studiato bene gli esami di misure ed elettrotecnica? Una scheda di acquisizione acquisisce. E basta. Peraltro la sua è anche a bassa risoluzione. Lasci perdere tutti i taroccamenti software: prenda un ponte di W. con amplificatore e bilanciamento e metta l'output nella scheda, previo filtraggio se è in dinamica; oppure prenda una scheda con condizionamento del segnale. buon lavoro e si ricordi che non si cava sangue dalle rape ---------------------------------------- ================================================================================ Conversione VI da ni-daqmx a ni-daq tradizionale ================================================================================ AUTORE: 566 DATA :13/07/2006 - 14:23:38 ---------------------------------------- Ciao a tutti, che voi sappiate è possibile convertire AUTOMATICAMENTE un .VI per una dio96 PCI che usa le ni-daqmx in un .VI per una dio96 USB che usa forzatamente le ni-daq tradizionali? \":roll:\" ---------------------------------------- AUTORE: 278 DATA :17/07/2006 - 09:42:29 ---------------------------------------- Ciao, purtroppo, temo che ciò non sia possibile... [img:xhz6rknq]http://faccine.forumfree.net/dunno.gif[/img:xhz6rknq] ---------------------------------------- ================================================================================ RUN-Time menu ================================================================================ AUTORE: 238 DATA :13/07/2006 - 17:55:44 ---------------------------------------- Ho un VI con un “Run-Time-Menu” e vorrei accedere alle singole “voci” del menu anche tramite dei pulsanti \":?:\" ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 10:01:36 ---------------------------------------- Ciao, se per "accedere" intendi che vuoi una voce menù e un pulsante che facciano la stessa operazione allora puoi realizzarlo con gli eventi. Potresti fare un event case dove intercetti sia il menu sia il bottone. Ciao, ---------------------------------------- AUTORE: 129 DATA :02/08/2006 - 11:53:45 ---------------------------------------- Per non usare l'event structure, puoi utilizzare il case structure. Ti allego l'esempio, devi mettere come runtime menu quello allegato. ---------------------------------------- ================================================================================ Realizzazione installer ================================================================================ AUTORE: 660 DATA :14/07/2006 - 15:34:02 ---------------------------------------- Ciao a tutti, utilizzo LV8 con l'application builder e fin qui tutto, o quasi, bene. Il mio problema è che devo effettuare svariate installazioni del mio "pacchetto" dove c'è un unico file il cui contenuto è diverso da un'installazione ad un'altra. Sono riuscito a risalire in che file .cab l'appliaction builder mette il file che dovrei sostituire, ma se lo sostituisco (nonostante le dimensioni siano le stesse) l'installazione non funziona più. La parte interessante è che non si lamenta del file che ho sostituito, ma dive di non trovare più un altro file che non ho neppure toccato (e che c'è ancora). Qualcuno sa darmi una mano? Grazie ---------------------------------------- AUTORE: 4 DATA :17/07/2006 - 11:12:26 ---------------------------------------- Credo che non si possano toccare i cab a piacimento! sono file binari non possono essere scambiati. Spiegami perchè devi fare un'installazione diversa dall'altra o perchè ti serve cambiare a mano i file cab Ciao, ---------------------------------------- AUTORE: 660 DATA :17/07/2006 - 15:58:52 ---------------------------------------- Ho dato un'occhiata e ho visto che i file cab altro non sono che file compressi senza algoritmi particolari: li si apre senza alcun problema con powerarchiver e con lo stesso li si ricrea, se non che i file ricreati sembrano non funzionare con l'installer di labview (mentre continuano a funzionare perfettamente con powerarchiver). Il motivo per cui mi serve "maneggiarli" è che ho un file di configurazione che DEVE essere diverso da macchina a macchina e viene caricato dal VI principale all'avvio. Adesso l'unico modo per mantenere il file di configurazione nella directory corretta è quello di farlo installare insieme all'eseguibile.... e qui sono sorti i problemi. Ciao ---------------------------------------- AUTORE: 1137 DATA :18/07/2006 - 16:41:00 ---------------------------------------- normalmente il file di configurazione e' costituito da un file di default con dei valori di massima che possono andare bene ad inizio installazione. Durante l'installazione, o attraverso opzioni di configurazione si modificano i valori. Se il file di configurazione e' gia' presente, l'installer non deve modificarlo. ---------------------------------------- AUTORE: 660 DATA :18/07/2006 - 17:59:34 ---------------------------------------- infatti io non voglio che l'installer me lo modifichi, vorrei solo poter sostituire il file che ho messo nel pacchetto di installazione la prima volta che l'ho creato con quello che deve essere usato dalla macchina su cui vado, in seguito, ad installare nuovamente il SW. Tutto questo senza dover ricompilare l'installer dopo aver sostituito il file in questione. Ciao ---------------------------------------- AUTORE: 4 DATA :19/07/2006 - 14:13:01 ---------------------------------------- Il problema è che il file cab viene "firmato" dall'installer, potrebbe essere che ne guardi la dimensione o ne faccia un MD5 non sò cosa di preciso, di conseguenza se modifichi i file nel cab l'installer non lo riconosce come valido. Secondo me dovresti porvare a compilare senza il file di config ma includerlo semplicamente nella distribuzione come file a parte (sul CD ad esempio avresti l'installer + il file di config) Poi potresti sfruttare la possibilità di eseguire alla fine dell'installazione un certo sw eseguibile (.exe o .bat ad esempio) questa cosa la configuri dal builder di labview. Potresti richiamare un sw che semplicamente prenda il file di config dal CD e lo copi nella cartella di installazione del tuo sw o cmq sulla macchina target. Mi rendo conto che è u bel giro ma al momento non mi viene in mente altro. Ciao, ---------------------------------------- ================================================================================ Aiuto!! mi gira su XP ma non su win2000!!! ================================================================================ AUTORE: 1335 DATA :15/07/2006 - 15:53:26 ---------------------------------------- Ciao a tutti. Dunque, ho fatto un programma qualche tempo fa (il biofeedback); l'ho provato sul mio pc e con una scheda pcimpcia 6024e e mi girava benissimo. Installato sul pc su cui deve effettivamente girare, però, il programma non mi gira più!! Questo pc monta una scheda della national PCI1200. uso labview 6.0; il mio pc ha win xp e quello con la pci1200 ha windows 2000. Il problema, nel dettaglio, è che sul pc con Win2000 mi esce (appena lanciato il programma) un avviso tipo "il programma con l'istruzione xxx fa riferimento alla cella di memoria yyy che è solo "read"." Dopodichè posso scegliere se modificare il programma con visual C++ (mi compare una sorta di codice assembler) oppure se chiudere tutto. Mi potete dare una mano? Vi allego il codice che ho scritto. Grazie a tutti!! ---------------------------------------- AUTORE: 1335 DATA :17/07/2006 - 08:35:55 ---------------------------------------- help!! brutte notizie: mi hanno detto che se non finisco il software per oggi mi crocifiggeranno!!! \":(\" \":?:\" ---------------------------------------- AUTORE: 4 DATA :17/07/2006 - 08:41:33 ---------------------------------------- prova a reinstalare i diver della PCI1200 sulla macchina win2000 e buona fortuna! Ciao, ---------------------------------------- AUTORE: 482 DATA :17/07/2006 - 08:50:34 ---------------------------------------- Ho dato un occhiata al tuo software. A parte che mancano dei pezzi per poterlo far girare... cmq...le prime due sequenze a che servono?? Dai un 5 all'uscita analogica per poi rimetterla a 0 un istante dopo. Per il resto ti consiglio due cose fondamentali: 1) temporizza il ciclo while principale perchè senno' ti occuperà il 100% delle risorse. (se non sai come fare, devi inseire un waiy until next multiple ocn una costante di..mmh..fai 100ms cmq il solo metterlo ti sistemerà dei problemi). 2) Ho visto che alla fien hai messo un blocco per reinizializzare a default i valori. Perchè? Se è perchè non crei l'eseguibile ma lo fai girare in LabVIEW allora ticonsiglio di metterlo all'inizio del programma con una struttura a sequenza e un filo che OBBLIGHI il programma ad eseguire prima quello poi tutto il resto. Sistemate queste due cose fammi sapere. ---------------------------------------- AUTORE: 1078 DATA :17/07/2006 - 09:08:23 ---------------------------------------- Anche a me è successa una cosa simile, il sw che avevo creato non girava su win200.... Ho risolto il problema installando prima il service pack4 di win2000 e poi il framework con l'ultimo aggiornamento. Gli update della microsoft li trovi sul sito microsoft, prova a verificare che il PC di destinazione sia correttamente aggirnato. ---------------------------------------- AUTORE: 1335 DATA :17/07/2006 - 09:36:52 ---------------------------------------- [quote="gepponline":1s34vd50]Ho dato un occhiata al tuo software. A parte che mancano dei pezzi per poterlo far girare... cmq...le prime due sequenze a che servono?? Dai un 5 all'uscita analogica per poi rimetterla a 0 un istante dopo. Per il resto ti consiglio due cose fondamentali: 1) temporizza il ciclo while principale perchè senno' ti occuperà il 100% delle risorse. (se non sai come fare, devi inseire un waiy until next multiple ocn una costante di..mmh..fai 100ms cmq il solo metterlo ti sistemerà dei problemi). 2) Ho visto che alla fien hai messo un blocco per reinizializzare a default i valori. Perchè? Se è perchè non crei l'eseguibile ma lo fai girare in LabVIEW allora ticonsiglio di metterlo all'inizio del programma con una struttura a sequenza e un filo che OBBLIGHI il programma ad eseguire prima quello poi tutto il resto. Sistemate queste due cose fammi sapere.[/quote:1s34vd50] Dunque, le prime 2 sequenze servono per per mandare un impulso di trigger a due amplificatori di segnale. questa schermata fa parte di un programma un po' piú complicato.. per questo ho messo alla fine la reinizializzazione di tutto. domanda: ma temporizzando il ciclo while, non è che ho dei problemi con la frequenza di acquisizione? ---------------------------------------- AUTORE: 482 DATA :17/07/2006 - 12:55:24 ---------------------------------------- Bhe devi temporizzarlo tenendo presente quello... ---------------------------------------- ================================================================================ Contatore tempo. ================================================================================ AUTORE: 1235 DATA :15/07/2006 - 19:18:45 ---------------------------------------- Ciao. Dovrei programmare una VI che mi conti il tempo trascorso in secondi minuti ore e giorni da quando premo un bottone. Mi potete dare un aiutino ? Grazie mille in anticipo! ---------------------------------------- AUTORE: 680 DATA :15/07/2006 - 20:04:15 ---------------------------------------- prova a vedere se così puo andare bene..... bye ---------------------------------------- AUTORE: 1137 DATA :17/07/2006 - 08:55:36 ---------------------------------------- Io propongo una telecamera, una scheda acquisizione immagini, una scheda di I O digitale, un orologio (digitale per semplicita') e un calendario. Piazzare il calendario sul muro, vicino all'orologio, ma in modo che non ci siano riflessi che possano compromettere la lettura. Collegare l'eletronica al PC e la scheda di IO al campanello di casa. Il vi legge l'immagine e con un OCR deduce le cifre sull'orologio e il calendario. Moltiplicando per 60 i minuti, per 3600 le ore e via di seguito si ottiene il tempo in secondi. Quando si preme il campanello, parte l'acquisizione, e c'e' anche il feedback sonoro per essere sicuri che il bottone e' stato premuto veramente. Questo orologio pero' avra' solo la precisione del secondo, piu' o meno uno. Si puo' fare di meglio, e arrivare alla precisione del millisecondo. A questo punto, attenzione, occorre dotarsi di un modulo compact RIO, collegato in parallelo al campanello e alla telecamera, che misura in real time lo sfasamento fra istante in cui sale il fronte del segnale di attivazione del pulsante e quello di acquisizione del frame della telecamera. Questo tempo ovviamente va aggiunto in millisecondi. Pero' qui la cosa si complica perche' l'occhio umano non va cosi' veloce, e quindi ci vuole un terzo sistema per produrre una lettura istantanea con stampa del tempo nel momento in cui l'utente proprio precisamente si sta chiedendo, "Ma quanto tempo sara' passato?". Purtroppo il modulo che legge il pensiero N.I non ce l'ha ancora... pero' la community ve la trova una soluzione... sono sicuro! \":)\" ---------------------------------------- AUTORE: 482 DATA :17/07/2006 - 09:02:46 ---------------------------------------- ghghhgghghhggh \":lol:\" ---------------------------------------- ================================================================================ creazione task per daq-mx ================================================================================ AUTORE: 1313 DATA :17/07/2006 - 07:40:55 ---------------------------------------- Salve Ragazzi, Ho realizzato un sw per gestire due daq usb, ma: 1) quando premo lo stop nel VI mi da un errore di "unnamed Task XX error", sapreste dirmi cosè?? e come eliminarlo?? 2) Ho creato un task (uso daq-mx ) per ogni canale del daq, ma è corretto? o avrei dovuti creare un solo task per tutti i canali equivalenti?? (mi spiego nel daq-usb6009 ho analog input, analog outpit, digital inpit ecc, avrei dovuto creare un task unico per AI, uno per tutti gli AO ecc) scusate se la domanda è un pò contorta, ma spero di essere stato chiaro. Grazie in anticipo, Cris ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 08:54:20 ---------------------------------------- [quote:2fen2ipr]1) quando premo lo stop nel VI mi da un errore di "unnamed Task XX error", sapreste dirmi cosè?? e come eliminarlo?? [/quote:2fen2ipr] potrebbe essere che non chiudi correttamente il task usando l'apposita funzione [quote:2fen2ipr]2) Ho creato un task (uso daq-mx ) per ogni canale del daq, ma è corretto? o avrei dovuti creare un solo task per tutti i canali equivalenti?? (mi spiego nel daq-usb6009 ho analog input, analog outpit, digital inpit ecc, avrei dovuto creare un task unico per AI, uno per tutti gli AO ecc) [/quote:2fen2ipr] Come prestazioni dovrebbe essere identico ma per "pulizia" io avrei creato un task per ogni gruppo: AI, AO, ecc Ciao ---------------------------------------- AUTORE: 1313 DATA :06/09/2006 - 09:35:55 ---------------------------------------- Grazie per la risposta, io per chiudere il task, chiamo il DAQmxClearTask, adesso mi sorge il dubbio forse dovrei chiamare prima il task che stoppa l'acquisizione, quindi la sequenza corretta di operazioni dovrebbe essere: 1) Task: creazione virtual channel 2) Task: inizzializzazione tipolo gia di acquisizione (per esempio timing) 3) Task: start 4) Task:read value 5) Task: Stop 6) Task: clear Io non usao il task del punto 5. E' possibile che sia questo il mio errore?? Cris ---------------------------------------- AUTORE: 1313 DATA :06/09/2006 - 09:38:12 ---------------------------------------- P.S. io ho seguito gli esempi ---------------------------------------- AUTORE: 1030 DATA :06/09/2006 - 10:25:26 ---------------------------------------- ciao la sequenza di task che hai scritto è corretta: se usi il vi di "Start Tak" è meglio aggiungere lo "Stop Task" anche se in alcune applicazioni non è necessario. Se non usi lo Start e lo Stop il vi di lettura dati, che immagino sia dentro un ciclo while, parte e si stoppa ripetutamente riducendo le performance della tua applicazione. ---------------------------------------- ================================================================================ Scroll automatico di una stringa.... COme si fà? ================================================================================ AUTORE: 977 DATA :17/07/2006 - 11:55:12 ---------------------------------------- Salve gente! Purtroppo sono di nuovo qui a disturbarvi e a chiedervi aiuto, ma mi trovo di fronte a un problema che nella sua banalità mi stà complicando notevolmente la vita e.... il lavoro! In sintesi ho una stringa che viene aggiornata continuamente da alcuni dati provenienti da un ciclo in parallelo; la mia necessità è che il testo nella stringa "scorra" ovvero che sia sempre ben visibile l'ultima riga "aggiornata". Ho provato ha mettere le scrollbar verticali e a cercare qualche strana proprietà che mi permettesse di usarle per risolvere questo mio problema, ma niente.... Ho provato anche con altre soluzioni un po' più complesse ma non c'è stato nulla da fare!! Sinceramente mi sembra strano non esista una proprietà o un blocchetto che renda possibile quanto accennato, ma non riesco a trovarlo. Spero che qualcuno di voi possa aiutarmi altrimenti temo dovrò cambiare mezza l'impostazione della macchina a stati e sarebbe un bel casino...!! Quasi dimenticavo : il programma è scritto con Labview 7.0 sotto windows XP. Ringraziandovi anticipatamente per i vostri suggerimenti vi saluto e vi auguro buona giornata!! A presto... Dave ---------------------------------------- AUTORE: 680 DATA :17/07/2006 - 12:23:49 ---------------------------------------- tra le proprietà delle stringe (property node) che la proprietà TEXT - SCROLL POSITION metti 100 su quella proprietà e ti mostrerà sempre la parte finale della stringa..... bye.... ---------------------------------------- AUTORE: 1898 DATA :12/11/2007 - 16:41:34 ---------------------------------------- grandissimo!!! proprio quello che cercavo!!! solo che io ho il tutto inserito in in ciclo while temporizzato a 250ms e quando eseguo il VI e voglio scorrere il testo mediante la scrollbar mi "sfarfalla" su e giù rendendo impossibile leggere i dati! se qualcuno sà come posso rimediare si faccia avanti! \":D\" ---------------------------------------- AUTORE: 680 DATA :12/11/2007 - 17:40:59 ---------------------------------------- riesci a postare il codice? ---------------------------------------- AUTORE: 1898 DATA :13/11/2007 - 13:34:34 ---------------------------------------- Per il momento ho risolto mettendo il property node allinterno di un ciclo case attivato dallo stesso tasto che serve per aggiungere una riga. Non sò se c'è un modo più fine per risolvere la questione, ma così cmq mi và bene. Per farti cmq vedere il problema ho riprodotto il mio caso in un esempio altrimenti il file originale risultava poco leggibile e dispersivo! Nell'allegato trovi il file "scrollbar1" dove c'è il problema dello sfarfallio, mentre nel file "scrollbar2" dove ho risolto come sopra descritto. ---------------------------------------- ================================================================================ risposta ================================================================================ AUTORE: 977 DATA :17/07/2006 - 12:11:54 ---------------------------------------- ho controllato sul forum e ho trovato un topic che spiega come risolvere il mio problema...!! Purtroppo ho ancora un piccolo casino che, spero, mi possiate aiutare a risolvere : la stringa che viene "passata" dalla macchina a stati non è di lunghezza fissa; più precisamente è composta da un numero indefinito e non prevedibile di righe... Es. Stringa originaria : as az ax aw Stringa da aggiungere : b1 b2 b3 . . . bn Stringa completa : as az ax aw b1 b2 b3 . . . bn LA domanda è questa : esiste un "blocchetto" o si può realizzare un VI che in qualche modo calcoli il numero di righe della stringa "da aggiungere"?! Spero mi possiate aiutare... A presto... Dave Ps: questa volta prima di fare una domanda ho controllato che l'argomento non fosse già stato trattato... \":)\" ---------------------------------------- AUTORE: 680 DATA :17/07/2006 - 12:26:38 ---------------------------------------- puoi contare quante volte è presente il carattere CARRIAGE RETURN (invio) e da qui dedurre quante sono le linee della stringa... bye ---------------------------------------- AUTORE: 645 DATA :19/07/2006 - 08:17:35 ---------------------------------------- Non ho capito in base a cosa decidi che la stringa da aggiungere è lunga 1, 2, 3 o n caratteri. ---------------------------------------- ================================================================================ Change Detection ================================================================================ AUTORE: 724 DATA :17/07/2006 - 13:59:53 ---------------------------------------- Devo chiudere una elettrovalvola sul fronte di discesa di un impulso (ampiezza 40 / 150 ms) con un ritardo minimo che non mi è stato esattamente quantificato. Usando i canali digitali di una scheda NI e sfruttando l'opzione Change Detection sul segnale di trigger con quale ritardo riuscirei a chiudere l'elettrovalvola? Non ho ancora individuato la scheda NI per l'applicazione che devo implementare. In realtà le ev sono 6, ognuna con il suo segnale di trigger e devono funzionare indipendentemente una dall'altra. ---------------------------------------- AUTORE: 4 DATA :17/07/2006 - 14:27:41 ---------------------------------------- Potresti implementare la cosa via SW... tutto dipende da quanto tempo hai per azionare la valvola e dalle conseguenze in caso di mancato azionamento... Ciao ---------------------------------------- AUTORE: 724 DATA :17/07/2006 - 14:51:04 ---------------------------------------- Il tempo di risposta deve essere circa 20 ms. In caso di mancato azionamento (che non deve accadere) risulta fail la taratura del DUT.Pensate che si riesca tramite sw ho devo implementare un hw che piloti il tutto? ---------------------------------------- ================================================================================ Valore efficace (RMS) per corrente alternata ================================================================================ AUTORE: 1361 DATA :17/07/2006 - 16:03:21 ---------------------------------------- Ciao a tutti, spero che qualcuno di voi abbia già affrontato il mio problema e possa darmi una mano. Non ho ben chiaro come il Labview calcoli il valore efficace (RMS) di un segnale in ingresso. L'RMS dovrebbe essere calcolato in un periodo di una funzione sinusoidale come una corrente alternata (che è proprio quello che serve a me). Il V.I. RMS del Labview, però la calcola sul pacchetto di valori che riceve, che è poi quel "Samples to read" che si deve settare nel DAQ Assistant, e restituisce un valore ogni n che riceve, diminuendo così la frequenza di risposta. Io vorrei un V.I. che innanzitutto calcoli l'RMS sul periodo, e poi che faccia scorrere i dati su cui fa il calcolo in modo che l'ultimo dato che entra spinga fuori il primo. Una specie di media mobile insomma. In questo modo avrei un valore di RMS con la stessa frequenza con cui sto acquisendo. Spero di essere stato abbastanza chiaro e che qualcuno mi risponda... Grazie! Ciao \":)\" ---------------------------------------- AUTORE: 482 DATA :17/07/2006 - 16:12:52 ---------------------------------------- Usa lo sforzoooo!!! Il segretosta negli shift register! \":roll:\" ---------------------------------------- AUTORE: 1365 DATA :18/07/2006 - 12:47:49 ---------------------------------------- Semplicemente usa il vi "averaged DC-RMS" che trovi nella paletta Waveform Measurements. Fa il running RMS (oppure Running DC) di cui hai bisogno (si comporta in maniera simile ad un voltmetro analogico AC) in maniera computazionalmente efficiente. Se vuoi una storia in uscita con lo stesso dt della storia in ingresso, imposta il controllo "averaging time" al valore del dt della storia in ingresso. Se lasci il default -1, in uscita ti troverai un solo valore corrispondente all'RMS del blocco in ingresso Attenzione a non usare il simile (ma diverso "Basic DC-RMS") buon lavoro ---------------------------------------- AUTORE: 645 DATA :19/07/2006 - 08:28:07 ---------------------------------------- In generale quando non si sa bene come LabView faccia alcune operazioni si possono usare combinazioni di operazioni base con attorno strutture (magari cicliche) che fanno qualcosa che serve per preparare i dati in ingresso. Per esempio uno shift register si ricorda i dati del ciclo precedente: si può eliminare il primo dato del ciclo vecchio e poi aggiungere alla fine il dato del ciclo nuovo. Così si può realizzare una media mobile (o altro che assomiglia) usando funzioni base. Oppure i blocchi FIFO con il modulo RealTime per esigenze più spinte. ---------------------------------------- AUTORE: 1361 DATA :19/07/2006 - 15:54:09 ---------------------------------------- Innanzitutto grazie a chi mi ha risposto... il problema, purtroppo, non l'ho ancora risolto... l'Averaged DC-RMS restituisce un valore per ogni pacchetto di dati che riceve (come anche il Cicle Average and RMS), per questo, per avere, ad esempio, 500 valori di RMS al secondo dovrei acquisire a 10000Hz e prendere 20 campioni, oppure acquisire a 100 Hz e prendere 2 campioni. Comunque parlando in secondi, il pacchetto di input nel v.i. dovrebbe corrispondere a 2 millesimi di secondo (0,002 secondi). In questo modo, chiaramente, l'RMS che mi dà è completamente sballato... anche se la sua media mi darebbe il valore esatto, ma perdendo informazioni nei transitori. Lunica soluzione sarebbe usando quei benedetti shift register, ma per quanto SFORZO abbia usato non sono ancora riuscito a trovare una soluzione soddisfacente... Qualcuno mi può dare una mano? Vi scrivo anche [url=http://groups.google.it/group/comp.lang.labview/browse_thread/thread/d5e838f9a512f4db/f2f89f3cd354156d#f2f89f3cd354156d:2lcz894e]l'url di un post[/url:2lcz894e] che ho messo su Google Gruppi dove ho cercato di spiegare il mio problema... Ringrazio in anticipo chi mi risponderà. ---------------------------------------- AUTORE: 1533 DATA :19/10/2006 - 09:48:35 ---------------------------------------- ho anche io il tuo stesso problema \":cry:\" solo che io devo acquisire da una generatore di funzioni. sinceramente ho implementato (non so fino a che punto sia corretto e su questo vorrei un vostro parere) la cosa in questo modo: ho creato un for che itera per n= fc/f dove fc è la frequenza di campionamento all'interno del for ho moltiplicato il valore vi per se stesso e il risultato l'ho inviato ad un blocchetto che esegue la somma. Ora questo blocchetto (sempre all'interno del for) riceve in ingresso il valore che gli viene dalla moltiplicazione e il valore che in uscita va a porre nello shit register. Ho preso poi il valore in uscita dello shit register e l'ho diviso per fc/f e poi l'ho inviato sotto radice. Sinceramente nessuno mi ha saputo dire se è fatto bene o no \":|\" ottendo le vostre correzioni. \":)\" ---------------------------------------- ================================================================================ errore installar lv8.0.1 ================================================================================ AUTORE: 680 DATA :17/07/2006 - 21:06:41 ---------------------------------------- quando provo a fare l'installer di un progetto labview, mi dà il seguente errore: CDK_Build_Invoke.vi.ProxyCaller >> CDK_Build_Invoke.vi >> CDK_Engine_Main.vi >> CDK_Engine_AddProductsToDistribution.vi >> NI_MDF.lvlib:MDFDistBuildList_Close.vi Loading product deployment information Loading product deployment information ************** *** Error: Internal error. (Error code -40) Product 'NI LabVIEW Run-Time Engine 8.0.1' depends on a product that cannot be found on the system. ID of missing product: 'NI Uninstaller' - {5B0CB826-E499-4E6B-94F0-75B6327ED934} *** End Error Report ************** ---------------------------------------- AUTORE: 680 DATA :18/07/2006 - 00:07:03 ---------------------------------------- ho reinstallato labview e adesso funziona... ho però un altro problema: quando lancio l'eseguibile creato, mi apre tutti i sub-vi anche se sulle proprietà non è impostato "show front panel on called" qualche idea? bye ---------------------------------------- AUTORE: 680 DATA :18/07/2006 - 00:09:53 ---------------------------------------- scusate ho sbagliato a fare l'eseguibile.... sarà anche per l'ora.... \":wink:\" \":wink:\" ---------------------------------------- ================================================================================ Acquisizione dati ================================================================================ AUTORE: 1367 DATA :19/07/2006 - 14:16:46 ---------------------------------------- Salve a tutti, devo realizzare un software di acquisizione dati tramite LabVIEW e una scheda della NI; sono un neofita e fino ad un mesetto fa non avevo mai utilizzato questo programma. Passo ora ad esporvi il problema che mi trovo a dover risolvere. L'applicazione in questione riceve due segnali (un'onda sinusoidale e un'onda quadra) che visualizza su un grafico e dei quali determina lo sfasamento. Fin qua tutto bene, nel senso che l'applicazione è funzionante, ma mi è stato richiesto di aggiungere un pulsante che faccia eseguire le operazioni seguenti: 1) quando viene premuto il pulsante, il programma deve acquisire 4 valori di sfasamento, ad intervalli di 3 secondi (ad esempio) e salvarli in un array. 2) mentre avviene questo, deve contemporaneamente continuare l'acquisizione dei segnali, l'aggiornamento dei grafici e i calcoli sullo sfasamento. Ho provato a realizzare qualcosa, riesco più o meno ad acquisire i valori, ma mentre viene eseguita la parte di codice comandata dal pulsante, i grafici e gli indicatori relativi al calcolo dello sfasamento non vengono più aggiornati con la stessa rapidità di quando non viene fatto il salvataggio dei valori. la mia domanda è questa (sperando che la premssa sia sufficientemente chiara): è possibile realizzare quanto mi è stato richiesto, mantenendo l'aggiornamento dei grafici e degli indicatori, oppure no? Vi ringrazio anticipatamente, Andrea ---------------------------------------- AUTORE: 645 DATA :19/07/2006 - 15:28:10 ---------------------------------------- Hai provato ad usare una struttura a cicli paralleli? In questo modo puoi eseguire i soliti comandi più quelli imposti dal pulsante. Secondo me si dovrebbe riuscire a mantenere aggiornati i grafici (ma il grafico è uno solo con due segnali?). Prova a guardare la presentazione di Ale (download.php?id=297) per un'introduzione al parallelismo. ---------------------------------------- AUTORE: 1367 DATA :19/07/2006 - 19:49:35 ---------------------------------------- Grazie del link, leggerò il documento. Nel caso doveste avere altri suggerimenti, sono ben accetti. Saluti e ancora grazie. Andrea ---------------------------------------- ================================================================================ configurazione blocco scrittura file .lvm ================================================================================ AUTORE: 1313 DATA :20/07/2006 - 07:42:28 ---------------------------------------- Salve ragazzi, Ho un problema, che penso vi sia capitato di incontrare. Faccio acquisizione di valori da 4 termocoppie, tramite daq usd6009, ora per salvare i dati uso il blocco apposito(come riportato nell'allegato. Ora la mia domanda è: Come faccio a dare i nomi alle colonne?? e qual'è l'intervallo di tempo di scrittura?? Ragazzi, vi prego illuminatemi, altrimenti mi tocca farmi un subVI per la scrittura del file. Grazie in anticipo, Cris ---------------------------------------- AUTORE: 645 DATA :20/07/2006 - 08:32:12 ---------------------------------------- Per intervallo di tempo intendi "ogni quanto viene eseguita la scrittura" o "quanto tempo impiega il blocco a scrivere i dati sul file"? Nel primo caso sei tu che decidi ogni quanto tempo scrivere sul file temporizzando il ciclo contenente il blocco di scrittura, nel secondo caso puoi crearti un piccolo VI di prova contenente una sequenza di operazioni: nel primo e nel terzo blocco metti il "tick count", nel secondo blocco l'istruzione di scrittura su file. Poi fai la differenza tra il tick del terzo blocco e quello del primo blocco e trovi il tempo in ms. Per le intestazioni del file potresti fare una scrittura a parte delle sole intestazioni la prima volta che lavori sul file e poi utilizzare il blocco express segnando "no headers" e "append to file" per continuare il file inizializzato con le intestazioni (vedi immagine). ---------------------------------------- AUTORE: 1313 DATA :20/07/2006 - 09:15:31 ---------------------------------------- Grazie, per la rapidità, per intervallo intendo "ogni quanto viene eseguita la scrittura". La tua soluzione è ottima, solo che poi non saprei come recuperare il nome dell'utente del Pc. Cioè , a me interessa sapere chi è loggato su windows, per scrivere il nome dell'operatore che usa l'applicazione, sapresti come revuperarlo?? Grazie in anticipo, Cris ---------------------------------------- AUTORE: 645 DATA :20/07/2006 - 09:27:24 ---------------------------------------- Per l'utente non saprei: probabilmente tramite qualche dll di Windows si può ma proprio non ti saprei indicare. Magari cercando in internet... Per la temporizzazione inserisci un timer nel ciclo in modo da eseguire l'operazione quando vuoi. ---------------------------------------- AUTORE: 1313 DATA :20/07/2006 - 10:56:06 ---------------------------------------- Ho pensato, dimmi che ne pensi, io creao il file normalmente, ed alla fine lancio un subVI che sovrascrive la riga che mi interessa?? Cris ---------------------------------------- AUTORE: 645 DATA :20/07/2006 - 10:59:11 ---------------------------------------- Io personalmente non uso gli express per creare i file e preferisco, dove possibile, usare semplici file di testo gestibili con i blocchi "normali" di LabView. In che senso sovrascrivere la riga interessata? Puoi aprire il file all'inizio del VI decidendo un nome o presentando all'utente un prompt nel quale inserire un nome e selezionare una directory di salvataggio e poi scrivere i dati di volta in volta alla fine del file (la tecnica dell'append). ---------------------------------------- AUTORE: 1313 DATA :20/07/2006 - 11:03:40 ---------------------------------------- Nel senso che l'express VI mi scriverà: """"""""""""""2 LabVIEW Measurement Writer_Version 0.92 Reader_Version 1 Separator Tab Multi_Headings No X_Columns One Time_Pref Relative Operator CRIS Date 2006/07/19 Time 11:29:57.625 ***End_of_Header*** Channels 2 Samples 100 100 Date 2006/07/19 2006/07/19 Time 11:29:57.625 11:29:57.625 X_Dimension Time Time X0 0.0000000000000000E+0 0.0000000000000000E+0 Delta_X 0.001000 0.001000 ***End_of_Header*** X_Value Sine Sine Comment 0.000000 0.000000 0.000000 0.001000 0.064672 0.064672 0.002000 0.129073 0.129073 .............. .............. ............. """"""""""""" Ed io al posto di X_VAlue e sine scrivo: "Time(ms) ThermocopleO(C°) ThermocoupleT1(C°) ...." Come la vedi?? Cris ---------------------------------------- AUTORE: 645 DATA :20/07/2006 - 11:11:15 ---------------------------------------- Ah, non avevo mai notato che l'express scrivesse nel file .lvm il nome dell'operatore. Uao! Per quanto riguarda la sostituzione delle stringhe non è male. Ma non si trova un modo più semplice? Ps: bella questa comunicazione in tempo reale... tanto per parlare tecnici... eh eh eh... ---------------------------------------- AUTORE: 1313 DATA :20/07/2006 - 11:17:34 ---------------------------------------- Sinceramente penso di no, però essendo standard l'header non ci dovrebbero essere grossi problemi poichè basta contarele righe. Adesso provo e vediamo. P.S. non so se hai provato, ma il file .lvm lo puoi aprire con excel ---------------------------------------- AUTORE: 1313 DATA :20/07/2006 - 11:39:29 ---------------------------------------- Io sto provando , ma non trovo un modo di saltare le righe, mi spiego: riesco a spostarmi di n caratteri, ma non di n linee. Sai se esiste un modo??? Cris ---------------------------------------- AUTORE: 645 DATA :20/07/2006 - 12:12:51 ---------------------------------------- Hai provato a cercare l'inizio della riga che vuoi sostituire (cioè a cercare "X_Value") anzichè spostarti tra righe e caratteri? ---------------------------------------- AUTORE: 1313 DATA :20/07/2006 - 12:38:31 ---------------------------------------- Potresti dirmi quale blocco e come usarlo per fare lo scan??? Ciao ---------------------------------------- AUTORE: 645 DATA :20/07/2006 - 13:36:13 ---------------------------------------- Nella paletta "File I/O" c'è il blocco "Read Lines from file" (so che con i file di testo funziona bene: legge righe singole fino a trovare il "vai a capo" <carattere CR>) con il quale potresti leggere le linee fino a trovare quella contenente le stringhe da sostituire; oppure si può provare con il blocco "Scan from file" (sempre paletta "File I/O") che però non so come funzioni. ---------------------------------------- AUTORE: 1313 DATA :20/07/2006 - 14:14:17 ---------------------------------------- Allora per adesso uso la soluzione allegata, cioè scorro il file di n linee e sovrascrivo quella che mi interessa. Se qualcuno sa un'alternativa me la faccia sapere, anche se trovo qualcosa io lo posto. Sotto riporto lo screenshot del blocco realizzato. Ciao, Cris ---------------------------------------- ================================================================================ Maneggiare stack dei front panel modali ================================================================================ AUTORE: 384 DATA :20/07/2006 - 14:31:24 ---------------------------------------- Ciao a tutti. Mi si è posta la necessità di manipolare lo stack dei front panel quando sono in modale. Spiego meglio (cioè, ci provo!): In una mia applicazione tutti i front panel di interfaccia operatore sono modali (in modo che non si possa avere acesso al PC se non tramite password). Nel front panel principale c'è tutta la descrizione dello stato del sistema ed è necessario che sia sempre visibile. Ciò non ostante, ci sono alcune operazioni di impostazione del sistema che si fanno on-line, mentre tutto gira, su un front panel diverso che copre quello principale mentre ci si lavora. Queste operazioni possono essere lunghe (diversi minuti) e non possono essere interrotte, pena dover buttare tutto e ripartire da capo. Inevitabilmente sorge la necessità di dare un'occhiata allo stato del sistema durante questi minuti, quindi mi servirebbe poter riportare in primo piano in panello principale e rimandarlo indietro per continuare le impostazioni. Si può fare una cosa del genere? Se si, come? Io ho spulciato le varie proprietà dei VI e delle Application e non ho trovato nulla. Ringrazio qualunque indizio! Gyc ---------------------------------------- AUTORE: 129 DATA :20/07/2006 - 17:48:49 ---------------------------------------- Potresti settare tutte le windows a floating. ---------------------------------------- AUTORE: 384 DATA :20/07/2006 - 18:10:57 ---------------------------------------- Credo non risolva il problema perchè le finestre ocupano tutto lo schermo. Come faccio a "portare in primo piano" uno specifico front panel programaticamente? ---------------------------------------- AUTORE: 748 DATA :21/07/2006 - 00:04:16 ---------------------------------------- Potresti utilizzare la funzione di Windows AlwaysOnTop che ti porta in primo piano una determinata finestra. trovi la funzione in winutil.llb Mark ---------------------------------------- AUTORE: 129 DATA :21/07/2006 - 13:16:31 ---------------------------------------- Oppure potresti usare i subpanel all'interno di un vi a tutto schermo. ---------------------------------------- AUTORE: 384 DATA :21/07/2006 - 17:02:53 ---------------------------------------- Grazie Mark per il suggerimento del winutil.llb; ora lo scarico e ci guardo. Grazie Nicola per il suggerimento del subpanel; devo studiare questa potenziale soluzione perchè questi miei front panel sono abbastanza pieni, ma potrebbe valerne la pena. Grazie ancora. Gyc ---------------------------------------- ================================================================================ la data e ora suddivisa in byte ================================================================================ AUTORE: 838 DATA :21/07/2006 - 09:22:02 ---------------------------------------- devo trasferire la data del pc su una scheda via seriale dovrei passargli in byte tutti i dati, cioè: ORA, MINUTI, GIORNO, MESE, ANNO, GG SETT la funz di labview mi da la data o in secondi o in stringa, ma non così avete già idea di come fare? grassie \":D\" ---------------------------------------- AUTORE: 838 DATA :21/07/2006 - 15:26:43 ---------------------------------------- fatto! ho usato formate date/string e ho preso un valore alla volta \":D\" ---------------------------------------- ================================================================================ Memorizzazione valori Default su VI eseguibile ================================================================================ AUTORE: 1369 DATA :21/07/2006 - 09:28:10 ---------------------------------------- Vorrei salvare come default i parametri correnti utilizzati sul pannello di un VI eseguibile. Uso spesso la soluzione "Make Current Value as Defualt" disponibile nel Labview 8.0, mi piacerebbe implementare una funzione simile anche sugli eseguibili. Pensavo di generare un file di configurazione sul quale caricare e salvare i parametri, ma vorrei evitarla dato che i parametri sono molti. Ciao!!! ---------------------------------------- AUTORE: 680 DATA :21/07/2006 - 10:11:56 ---------------------------------------- buona l'idea del file di configurazione... per semplificare il lavoro, se hai molti controlli potresti utilizzare la funzione del property node Get all control value.... e poi richiamarli con set control value... ---------------------------------------- AUTORE: 4 DATA :21/07/2006 - 13:47:13 ---------------------------------------- Ciao Avlas Benvenuto! potresti salvare i valori di controlli (ma anche indicatori) usando la funzione di openg.org "write panel to ini". Oppure, se vuoi andare oltre, puoi usare la lib [url=http://www.kshif.com/lv/:2as9ksy9]Property Saver[/url:2as9ksy9] che ti permette di salvare e ripristinare da file anche i valori delle property dei controlli o indicatori LabVIEW, ad esempio è possibile salvare le impostazioni di visualizzazione di un grafico e poi ricaricarle uguali all'avvio successico del software. Ciao, ---------------------------------------- ================================================================================ media acquisizioni scheda USB-6008/9 ================================================================================ AUTORE: 1313 DATA :21/07/2006 - 10:44:26 ---------------------------------------- Salve ragazzi, un'altra delle mie domande. Devo fare la media dei primi N valori acquisiti dalla scheda, che ho fatto, ho provato a fare un for con uno shift register, ma mi da errore nel task di chiusura. Mi date qualche suggerimento???? gracias ---------------------------------------- AUTORE: 1313 DATA :21/07/2006 - 13:51:48 ---------------------------------------- Ragazzi ho risolto, senza accorgemi si era attivato "enabeling indexing", nel loop tunnel. Disabilitando l'opzione funziona, ora devo solo testare le medie. Ciao ---------------------------------------- ================================================================================ Device driver ================================================================================ AUTORE: 1121 DATA :21/07/2006 - 15:41:32 ---------------------------------------- Salve a tutti! Vorrei realizzare un data logger da collegare alla porta usb, quindi dovrei implementare un driver. Mi chiarite meglio i concetti per la sua realizzazione in modo da poter utilizzare lo strumento in labview o in cvi? ---------------------------------------- AUTORE: 645 DATA :21/07/2006 - 23:31:36 ---------------------------------------- Argomento interessante: una volta creato il driver dovresti poter comunicare attraverso la porta USB come una porta COM (per esempio) usando i blocchi VISA. Ma il problema è "come si crea un driver USB per software non National?" (per il software National c'è un applicativo apposito che permette di creare driver conoscendo alcuni parametri della periferica USB o riconosce direttamente l'hardware collegato al pc). ---------------------------------------- AUTORE: 1121 DATA :22/07/2006 - 10:20:56 ---------------------------------------- Visto che non so propio come fare, mi sai dire dove lo posso trovare (uso già Labview) ---------------------------------------- AUTORE: 645 DATA :22/07/2006 - 10:26:58 ---------------------------------------- Che versione usi? Se scarichi la nuova versione di VISA dal sito ni.com vedrai che parla di un "Development Wizard" per driver e di supporto USB. Scarica l'aggiornamento e installalo. Poi, sempre su ni.com, puoi trovare le indicazioni per usare il "Driver Development Wizard" per USB. ---------------------------------------- ================================================================================ media valori tsk daqmx ================================================================================ AUTORE: 1313 DATA :21/07/2006 - 16:40:59 ---------------------------------------- Salve Ragazzi, Sapete come fare la media di n valori aquisiti con un task daqmx??? Grazie in antcipo. Cris ---------------------------------------- AUTORE: 1313 DATA :24/07/2006 - 13:35:31 ---------------------------------------- Per tutte le persone che sono rimaste con la curiosità o che cmq stiano cercando la soluzione in allgegato ho messo lo screenshot. Ho risolto come segue: 1) ho impostato 10 acquisizioni per ogni canale 2) ho aumentato la frequenza di acquisizione 3) ho fatto un for per calcolare la media. Cris ---------------------------------------- AUTORE: 1030 DATA :24/07/2006 - 14:05:28 ---------------------------------------- Ho visto il tuo screenshot: Il ciclo for così come lo usi non serve: fai la media dello stesso array in ingresso ben 10 volte sovrascrivendo ogni volta il risultato. Vedi solo il risultato dell'ultimo ciclo (che comunque è uguale ai 9 precedenti!!!) ciao ciao ---------------------------------------- AUTORE: 1313 DATA :24/07/2006 - 18:11:15 ---------------------------------------- Hai ragione che stupido, dovevo attivare il tooneling, in modo da ricevere in output dal for solo l'ultimo valore, cioè la media. Grazie mille, per la nota. Cris ---------------------------------------- AUTORE: 1313 DATA :24/07/2006 - 18:17:38 ---------------------------------------- Ops sono di coccio, ho tolto il for. Cris ---------------------------------------- AUTORE: 660 DATA :25/07/2006 - 07:48:32 ---------------------------------------- Scusate io utilizzo la stessa modalità di acquisizione (campiono più segnali ad una frequenza più elevata da poi mediare) ma anzichè utilizzare un ciclo for con tunneling utilizzo semplicemente il VI che effettua la media. In questo momento non ricordo in quale menu sia ma accetta in ingresso un array e restuituisce il valore medio. La domanda è: che differenza c'è tra questi due sistemi? Grazie ---------------------------------------- AUTORE: 1030 DATA :25/07/2006 - 08:40:54 ---------------------------------------- Nessuna differenza tranne quella che il VI della media ti da un risultato con 2 cifre decimali dopo la virgola mentre con il ciclo for potresti fare in modo di avere più cifre decimali ed avere un risultato più accurato. ciao ---------------------------------------- AUTORE: 1313 DATA :25/07/2006 - 10:26:23 ---------------------------------------- Grazie mille della risposta, adesso mi è tutto chiaro. Sei stato precisissimo. Thanks, Cris ---------------------------------------- AUTORE: 660 DATA :25/07/2006 - 12:23:25 ---------------------------------------- grazie 1 \":D\" \":D\" \":D\" ---------------------------------------- ================================================================================ Performance database ================================================================================ AUTORE: 463 DATA :21/07/2006 - 17:15:25 ---------------------------------------- Ciao a tutti, ho realizzato un tool per la scrittura su database sql (chiamato via odbc creando file DSN) che deve popolare circa 4000 record suddivisi su 16 tabelle. Il tool è funzionante ma i tempi di esecuzione sfiorano i 30 secondi. Mi chiedo se esistano altre funzioni più performanti in sostituzione del blocco "Insert" standard presente nella paletta "DatabaseConnectivity". Come faccio a diminuire tali tempi? E' colpa di LW o dell'ODBC? Per la funzione di selezione ho trovato nelle librerie degli addon un blocco che esegue la "SelectData" molto più performante di quello presente nella paletta "DatabaseConnectivity" ma non ho trovato nulla di analogo per la funzione "Insert". Qualcuno ha già affrontato tale questione? Ringrazio sin da ora chiunque mi sappia dare indicazioni utili a ridurre tali tempi di scrittura!!!! ---------------------------------------- AUTORE: 645 DATA :21/07/2006 - 23:27:33 ---------------------------------------- Io sto usando in questo periodo database di 12000 dati e più: leggo, estraggo i dati, suddivido in grafici. Ogni tanto interrogo il database per aggiornamenti o query particolari. Lavoro con ODBC, DSN, Microsoft SQL Server e MySQL e non ho tempi così lunghi. Prova a guardare nella sezione articoli del sito download.php?id=946 . Ho scritto due idee su questo tipo di comunicazione. Non te lo indico per pubblicità ma solo per comodità: ci sono riassunte un po' di idee. Se poi si scoprono considerazioni nuove si possono sempre aggiungere. ---------------------------------------- AUTORE: 645 DATA :22/07/2006 - 08:53:24 ---------------------------------------- [quote="MagicBotolo":flqy5fcy]Io sto usando in questo periodo database di 12000 dati e più: leggo, estraggo i dati, suddivido in grafici. Ogni tanto interrogo il database per aggiornamenti o query particolari. Lavoro con ODBC, DSN, Microsoft SQL Server e MySQL e non ho tempi così lunghi. Prova a guardare nella sezione articoli del sito download.php?id=946 . Ho scritto due idee su questo tipo di comunicazione. Non te lo indico per pubblicità ma solo per comodità: ci sono riassunte un po' di idee. Se poi si scoprono considerazioni nuove si possono sempre aggiungere.[/quote:flqy5fcy] E anche download.php?id=299 (l'articolo di Nicola sui Database sempre nella sezione "Articoli"). ---------------------------------------- AUTORE: 36 DATA :04/10/2006 - 11:38:16 ---------------------------------------- Ciao, volevo chiedere un informazione a proposito di performance con database gestiti attraverso LV. Sto utilizzando LV 7 Express, ho creato un vi che legge i dati da un DB Access, la cosa che balza subito all'occhio è che per caricare 10000 record ci vogliono all'incirca 10-15 minuti affinchè possano essere visualizzati a video tramite il front panel...un tempo mostruoso...è normale? Esistono dei limiti massimi per cui labview riesca ad aprire fino ad un numero massimo di record sempre di Access? In allegato metto il vi in questione...probabilmente sbaglio qualcosa...ringrazio chiunque mi dia una mano.. Roberto ---------------------------------------- AUTORE: 129 DATA :05/10/2006 - 08:04:45 ---------------------------------------- La connessione è sufficiente eseguirla 1 sola volta, quindi l'open automation ref deve essere eseguito solo la prima volta, tutti gli altri metodi e proprietà sono legati a questa connessione direttamente. Non capisco l'esigenza di tutti quei item/index che fanno lavorare la connessione, se vuoi ordinare i record, lo puoi fare con labview con il recordset estratto mediante query. Usa nell'esempio allegato estrai tabella.vi e quindi usa le funzioni di array per ordinare il tuo recordset. Nella stringa puoi iserire una query di selezione o il nome della tabella. Ovviamente oil consiglio di leggere gli articoli del messaggio di Magic è sempre valido. ---------------------------------------- AUTORE: 36 DATA :05/10/2006 - 15:12:14 ---------------------------------------- Grazie mille per la dritta, ora è davvero tutta un altra cosa... Avevo già dato un occhiata ai vari tutorial sulla gestione dei DB con laview ma una versione cosi ottimizzata non l'avevo trovata... Ci sentiremo presto per un'altro argomento riguardante labview, gli ActiveX e il famigerato webserver di labview...ora mi metto al lavoro per ottimizzare al meglio la ns. applicazione... Grazie ancora Roberto ---------------------------------------- ================================================================================ Riconoscimento vocale ================================================================================ AUTORE: 1372 DATA :22/07/2006 - 16:33:25 ---------------------------------------- Salve . Vorrei sapere se ci sono degli strumenti per il riconoscimento vocale , in Labview . Ho cercato un po' su intenet ma non ho trovato niente . Grazie . ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 09:56:54 ---------------------------------------- Ciao, se intendi sapere se esistono lib già preconfezionate per il riconoscimento vocale, la risposta è no. Esistono invece delle lib per l'analisi del suono, sono anche molto evolute, tramite quelle si può sicuramente costruire quello che ti interessa. Considere che tali lib sono NI e sono a pagamento. Ciao, ---------------------------------------- AUTORE: 838 DATA :01/08/2006 - 07:22:11 ---------------------------------------- c'è anche uno che ha sviluppato il voip \":D\" ---------------------------------------- ================================================================================ PDA ================================================================================ AUTORE: 516 DATA :22/07/2006 - 16:36:05 ---------------------------------------- Ciao a tutti Devo realizzare per un'amico un programma su di un palmare (HP hx2100) io son in possesso di labview 7.1 cosa mi devo procurare per "esportare" la mia applicazione sul palmare ? esiste una versione di labview per i palmari ? Grazie Mille a tutti Ciao Sergio ---------------------------------------- AUTORE: 927 DATA :28/07/2006 - 07:54:26 ---------------------------------------- Si, esiste il modulo PDA / Pocket PC, ma va acquistato a parte: http://sine.ni.com/nips/cds/view/p/lang/it/nid/12222 ---------------------------------------- AUTORE: 838 DATA :28/07/2006 - 13:10:45 ---------------------------------------- costa sui 1500 euro circa mi sembra, e poi devi spendere 50 euro a licenza runtime per ogni palmare (li vendono anche a pacchetti da 10 a 500 euro) mi ero info tempo fa, ma dovrebbe essere ancora così il pacchetto ti fa compilare anche per Win CE e Win Mobile \":D\" ---------------------------------------- AUTORE: 516 DATA :28/07/2006 - 15:01:59 ---------------------------------------- Ciao Grazie Mille a entrambi , ora mi informo Ciao Sergio ---------------------------------------- ================================================================================ Consigli ================================================================================ AUTORE: 1368 DATA :23/07/2006 - 08:29:03 ---------------------------------------- Ciao a tutti, sono un nuovo iscritto. Da circa due giorni sto usando labview per motivi lavorativi, ma da subito mi sono accorto che non e cosi intuitivo e semplice come dice il mio titolare \":?\", volevo sapere se esisteva qualche altro programma che usa le stesse estensioni di labview, magari un po piu semplice e veloce da imparare. Grazie per eventuali risposte. Ciao Luca ---------------------------------------- AUTORE: 129 DATA :23/07/2006 - 08:40:37 ---------------------------------------- Non conosco un programma che ti permetta di sviluppare codice G allo stesso modo di labVIEW. Abbiamo raccolto qualche tutorial disponibile in rete, che sono certo ti orienterà sul linguaggio in breve tempo. [url=http://www.ilvg.it/index.php?option=com_content&task=view&id=50&Itemid=97:3srjh62u]Qui trovi la lista dei tutorial....[/url:3srjh62u] ---------------------------------------- AUTORE: 516 DATA :23/07/2006 - 08:48:05 ---------------------------------------- Ciao Oltre ai tutorial esiste anche un libro che si chiama "Programmare ? impariamo con il labview" credo che per iniziare sia un buon libro se non altro ti aiuta a partire . Ciao Sergio ---------------------------------------- AUTORE: 1368 DATA :23/07/2006 - 08:56:20 ---------------------------------------- grazie. ora inizio a leggere un po. vediamo se ci capisco qualcosa \":)\" . ---------------------------------------- AUTORE: 1165 DATA :23/07/2006 - 10:30:09 ---------------------------------------- Caro slupz, oltre agli ottimi consigli che ti hanno già dato sopra, permettimi di farti una considerazione generale, che forse ti potrebbe essere utile ad organizzare gli sforzi che comunque inevitabilmente dovrai affrontare se vuoi produrre qualcosa (non scordarti che i latini dicevano: "per aspera ad astra"). Imparare a programmare (in qualsiasi linguaggio) richiede almeno due distinti sforzi, assolutamente scollegati tra loro. Il primo consiste nell'imparare a programmare vero e proprio, che è una conoscenza che esula dal linguaggio di programmazione che poi andrai ad usare, che sia l'assembly, il C, Basic, il Pascal o altri. Questo processo è lungo e non facile, come tutte le cose che valgono qualcosa. Dopo di che per programmare ti devi imparare un linguaggio di programmazione e tra tutti il Labview è sicuramente uno dei più intuitivi da imparare. Attenzione che volutamente non ho usato la parola "facile" perchè facile non è, come tutte le lingue nuove. Ma di sicuro è uno dei più intuitivi e più affascinanti. Se nel tuo futuro di programmatore avrai modo di confrontare vari linguaggi, sono convinto che potrai trovarti anche tu d'accordo con tutto ciò. E comunque io affermo oramai da molti anni che non so se il futuro della programmazione sarà il labview o no, ma di sicuro il futuro della programmazione sarà grafico, nello stile del linguaggio G. E ora, se dopo tutto questo, la National Instruments non mi paga una vacanza di un mese alle Canarie, confesso di aver detto tutto quanto precede sotto tortura! Buone letture. Enrico. ---------------------------------------- AUTORE: 645 DATA :24/07/2006 - 07:56:56 ---------------------------------------- Sicuramente girando in rete puoi trovare un sacco di dispense e manualetti introduttivi su LabView. Ma secondo me l'aspetto più divertente di questo ambiente di programmazione è la possibilità di implementare codice per via grafica: vuoi fare una somma? Usa il blocco con il più... Una sottrazione? Quello con il meno. Un confronto? Tira due "fili" per collegare i numeri da confrontare. Quello che sto cercando di dire è che LabView ti permette di fare alcune cose di base con un po' di intuito e immaginazione. Poi per le cose avanzate ci vogliono indicazioni precise. Ma per iniziare a giochicchiare basta un po' di fantasia e un mouse che funzioni bene! ---------------------------------------- AUTORE: 1368 DATA :25/07/2006 - 10:34:23 ---------------------------------------- Grazie a tutti, per i consigli. Cmq cavolo non e cosi semplice come mi aveva detto il titolare \"8)\" loro fanno tutto semplice \":twisted:\" ---------------------------------------- AUTORE: 1313 DATA :13/08/2006 - 09:18:19 ---------------------------------------- Io conosco LabView da 1 anno circa ed ho fatto un bel progettino partendo da zero, il mio consiglio è di leggerti un po le guide in giro(come già Ti hanno consigliato) e poi applicare la filosofia "pay as you go" (impara quello che Ti serve). Infatti labview rispotto ad altri linguaggi è molto più semplice (parola di programmatore). In sostanza un pò di sforzo tuo un po di aiuto dai ragazzi del forum(a me è servito tantissimo, perchè sono ingamba) e vedi che non avrai problemi. Cris \":lol:\" ---------------------------------------- ================================================================================ Intercettare messaggi Windows da applicazioni terze ================================================================================ AUTORE: 705 DATA :23/07/2006 - 17:22:50 ---------------------------------------- Faccio riferimento all'esempio http://sine.ni.com/apps/utf8/niepd_web_ ... 0020E74861 relativo alla possibilità di intercettare messaggi Windows. Devo intercettare un messaggio impostato da una applicazione terza, attivo su una finestra "non LabVIEW". Come fare ? Quale istruzione dei file allegati all'esempio deve essere modificata ? \":roll:\" La mia applicazione è una Windows API scritta in C++. Devo intercettare il messaggio WM_USER di questa applicazione. grazie ! \":)\" ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 10:20:40 ---------------------------------------- Ciao ho scaricato l'esempio "Windows_Messaging_Que.zip" dal link che hai segnalato. Se vuoi intercettare i messaggi "uscenti" da una finestra diversa dalla tua (LV) devi modificare la funzione inclusa nell'esempio "Create Windows Message Queue.vi" passando il nome della tua finestra alla funzione "Get Window RefNum.vi" Poi devi intercettare i messaggi USER che hanno codice x400 (trovi i codici nel readme dell'esempio stesso) Ciao, ---------------------------------------- AUTORE: 1078 DATA :31/07/2006 - 15:18:41 ---------------------------------------- Ciao Marco, Ho scaricato l'esempio, e ho provato a passare direttamente il nome di un'applicazione aperta alla funzione "Get Window RefNum.vi" (nel particolare [Senza nome - Blocco note] che è un nuovo documento di Blocco note) La funzione "Get" restituisce un riferimento valido ma l'applicazione si blocca quando viene chiamata la funzione call library "Config Messagging". Analizzando il codice in C della funzione chiamata il bug dovrebbe essere nella creazione del gancio alla finestra [variabile hHOOK] non avendo un debugger per C non riesco a darti una mano maggiormente, controlla comunque la funzione "Config Messagging".... a me lì si blocca. Spero di esserti stato di aiuto, Ciao e alla prossima..... ---------------------------------------- ================================================================================ Acquisizione da analizzatore WT3000 della Yokogawa ================================================================================ AUTORE: 1377 DATA :25/07/2006 - 12:58:57 ---------------------------------------- Salve a tutti. Uso Labview da pochissimo tempo. Non ho mai acquisito nessun segnale. Ora dovrei acquisire dei segnali dall´analizzatore della Yokogawa WT3000 mediante cavo USB. Il costruttore mi fornisce una libreria dedicata. Pur avendo utilizzato il blocco VISA, non riesco a selezionare il dispositivo da cui acquisire i dati. Quest´ultimo è funzionante e correttamente collegato (ne sono certo perchè lo controllo dal mio pc e acquisisco segnali con un software dedicato). Spero che qualcuno possa aiutarmi anche se non ha mai usato questo analizzatore. Accetto volentieri consigli anche sull´aquisizione da altri dispositivi. Grazie ---------------------------------------- AUTORE: 384 DATA :25/07/2006 - 21:06:15 ---------------------------------------- É quasi garantito che lo strumento non è conforme alla specifica USB della classe TM488, quindi non è visibile dal MAX, quindi NON lo puoi usare attraverso i blocchi VISA. Se hai una libreria dedicata, devi usare quella. Immagino che ci siano i blocchi per LAbView! Se invece hai solo una DLL, ti ci devi interfacciare con i "Call Library Function Node". Bisognerà vedere se funziona, perchè una DLL deve essere costruita apposta con particolarei accorgimenti per essere interfacciabile con LabView. Auguri! ---------------------------------------- AUTORE: 1377 DATA :26/07/2006 - 07:27:48 ---------------------------------------- Grazie per avermi risposto. Nella libreria dedicata per LabVIEW gli unici blocchi che potrei usare per comunicare con lo strumento sono: -Instrument I/O assistent (ma non prevede connessioni USB) -DAQ assistent (che mi dice "nessun dispositivo trovato") -blocchi VISA Write,read,open,close... Ti invio un piccolo file.Cosa c´´e che non va?Nel blocco Visa resource name va iserito USB::0B21::0025::91F514689. Spero qualcuno mi possa aiutare. Ringrazio anticipatamente. ---------------------------------------- AUTORE: 384 DATA :26/07/2006 - 09:03:16 ---------------------------------------- Non risco ad aprire il VI perchè ho la versione 7.1. Potresti ricaricarlo salvandolo prima in questa versione? ---------------------------------------- AUTORE: 645 DATA :26/07/2006 - 09:30:49 ---------------------------------------- Con la versione più aggiornata di VISA (scaricabile dal sito NI.com) viene fornita un'applicazione chiamata "Driver Development Wizard" che permette di creare driver per dispositivi non riconosciuti al volo da LabView. Puoi provare con questa applicazione. Per le istruzioni cerca sul sito NI alla voce "Driver Development Wizard". In pratica dovrebbe crearti una voce in MAX e di conseguenza dovresti riuscire a vedere lo strumento con LabView. ---------------------------------------- AUTORE: 1377 DATA :26/07/2006 - 10:55:41 ---------------------------------------- Non riesco a salvare il file con una versione di LabVIEW precedente.Apro il file e scelgo salva con nome. A differenza di quanto accade per tantissimi software, non ho la possibilitá nel menú a tendina relativo al tipo di scegliere la versione di LabVIEW.Mi sapete consigliare una via alternativa? Grazie ---------------------------------------- AUTORE: 247 DATA :26/07/2006 - 11:20:43 ---------------------------------------- Ciao, devi scegliere più sotto save with options e non salva con nome, ti appare un menù tra i quali c'è anche la possibilità di salvare per versioni di LV precedenti. BYE. ---------------------------------------- AUTORE: 1377 DATA :27/07/2006 - 07:06:29 ---------------------------------------- Ciao a tutti. Sono riuscito ad acquisire i segnali dall´analizzatore WT3000 grazie ai vostri consigli.Per quanto riguarda il file allegato,ora funziona correttamente.Comunque è stato salvato con LabVIEW 7.1 ---------------------------------------- AUTORE: 1377 DATA :27/07/2006 - 07:44:32 ---------------------------------------- Ciao a tutti.Vorrei fare questo:avviare l´acquisizione mediante un pulsante,acquisire per un minuto 2 sole grandezze,calcolare il valore medio di entrambe le grandezze nel periodo di acquisizione,visualizzare e salvare in un file Exel solo quasti 2 dati. Allego il file che vorrei usare. Spero che qualcuno mi possa aiutare. Grazie anticipatamente ---------------------------------------- AUTORE: 1377 DATA :31/07/2006 - 08:51:50 ---------------------------------------- Ciao a tutti. Nessuno ha risposto al mio messaggio precedente. Forse sono stato poco chiaro nell´esporre il mio problema.Ora ci riprovo. Mediante uno stumento acquisisco la tensione e la frequenza di rete con una frequenza di campinamento pari a 50ms.Voglio acquisire queste 2 grandezze per un tempo definito mediante un control e calcolare il valore medio dei valori misurati.Questi 2 valori (valore medio delle misure di tensione e valore medio delle misure di frequenza) devono essere salvati,diagrammati (V in funzuione di f) e visualizzati in una tabella. Mi sapreste consigliare che struttura devo usare?Allego il nuovo file su cui sto lavorando.Le cose non vanno come vorrei. Attendo con ansia il vostro aiuto. Grazie ---------------------------------------- ================================================================================ Problemi con porte com. ================================================================================ AUTORE: 1164 DATA :26/07/2006 - 09:03:21 ---------------------------------------- Non sono molto esperto di Labview e mi trovo a dover pilotare dei motori passo passo tramite porta com. con trasmettitori in fibra ottica RS232...il programma in labview fornitomi dalla ditta costruttrice dei motori ha la possibilità di scegliere il numero della porta com. da selezionare, ma su 4 porte disponibili solo la 1° è funzionante.Sulle altre 3, se selezionate, mi viene segnalato un error code 37! Non so proprio come fare visto che ho assolutamente bisogno di almeno due porte funzionanti. Scusate la mia inesperienza....Vi ringrazio. ---------------------------------------- AUTORE: 384 DATA :26/07/2006 - 09:14:56 ---------------------------------------- Quel errore dice che il dispositivo selezionato non esiste, quindi, molto probabilmente hai soltanto una porta seriale disponibile sul tuo pc. Ti consiglio di aggiungerne usando dei convertitori USB-Seriale che oggi si trovano un pò dappertutto a circa 15 euro (in eBay anche meno, nuovi). Se vuoi usare delle schede multiport per il bus PCI, ti consiglio di lasciar perdere quelle low cost "da supermercato" - ne ho provate varie e ho avuto solo delle grane: NON funzionano! Invece ho usato quelle della B&B Electronics (http://www.bb-europe.com) e vanno MOLTO bene. Costichiano un pocchino, ma sono VERAMENTE plug&play. ---------------------------------------- AUTORE: 645 DATA :26/07/2006 - 09:41:09 ---------------------------------------- Dal sito National: http://digital.ni.com/public.nsf/websea ... enDocument e http://digital.ni.com/public.nsf/websea ... enDocument . Nel secondo in particolare si dice che l'errore 37 può essere dovuto anche al fatto che LabView sta cercando di accedere ad una porta già utilizzata da un altro programma. Non è che magari sei in questa situazione? ---------------------------------------- AUTORE: 1164 DATA :26/07/2006 - 09:55:12 ---------------------------------------- [quote="gyc":2kszuq0u]Quel errore dice che il dispositivo selezionato non esiste, quindi, molto probabilmente hai soltanto una porta seriale disponibile sul tuo pc. Ti consiglio di aggiungerne usando dei convertitori USB-Seriale che oggi si trovano un pò dappertutto a circa 15 euro (in eBay anche meno, nuovi). Se vuoi usare delle schede multiport per il bus PCI, ti consiglio di lasciar perdere quelle low cost "da supermercato" - ne ho provate varie e ho avuto solo delle grane: NON funzionano! Invece ho usato quelle della B&B Electronics (http://www.bb-europe.com) e vanno MOLTO bene. Costichiano un pocchino, ma sono VERAMENTE plug&play.[/quote:2kszuq0u] Purtroppo...sono sicuro che le altre porte funzionano perchè con altri programmi non mi danno problemi...io penso sia proprio un problema di questo vi. Ma penso comunque di fare una prova con le porte usb. Ti ringrazio tanto per la risposta...a risentirci. ---------------------------------------- AUTORE: 1164 DATA :26/07/2006 - 10:13:53 ---------------------------------------- [quote="MagicBotolo":1uccdzkz]Dal sito National: http://digital.ni.com/public.nsf/websea ... enDocument e http://digital.ni.com/public.nsf/websea ... enDocument . Nel secondo in particolare si dice che l'errore 37 può essere dovuto anche al fatto che LabView sta cercando di accedere ad una porta già utilizzata da un altro programma. Non è che magari sei in questa situazione?[/quote:1uccdzkz] Sarà proprio cosi visto che l'errore è proprio quello. Purtroppo però non so come risolverlo anche perchè è sicuramente un problema del programma stesso che va ad impegnare le altre porte. Secondo voi può essere significativo un warning del genere:"Com port uses data range coercion, which now only applies to data entry; values will not be coerced when passed to subVis. to coerce passed values, use the In range and coerce function" ?? Scusate.....Grazie! ---------------------------------------- AUTORE: 645 DATA :26/07/2006 - 10:30:24 ---------------------------------------- Puoi postare un'immagine del Block Diagram del tuo VI? Così vediamo... ---------------------------------------- AUTORE: 1164 DATA :26/07/2006 - 10:48:47 ---------------------------------------- [quote="MagicBotolo":270jnfdu]Puoi postare un'immagine del Block Diagram del tuo VI? Così vediamo...[/quote:270jnfdu] Il VI in questione è questo.... ---------------------------------------- AUTORE: 977 DATA :27/07/2006 - 01:06:54 ---------------------------------------- Da quello che ho potuto vedere sembra che Labview non ti riconosca alcune porte... Posso sapere che versione di Labview usi e mi potresti anche dire qual'è il blocchetto che usi per la comunicazione con la seriale perchè non riesco a trovarlo...!! Senza rancore, ma hai un modo di programmare che è caotico e, almeno per me, poco comprensibile!! Sono sicuro che sai precisamente di cosa stò parlando, ma mi permetto di ricordarti che un codice oltre che efficente deve essere leggibile e il tuo, mi spiace dirlo, non lo è. Comunque se puoi darmi le informazioni che ti ho chiesto vedrò se posso fare qualcosa per aiutarti... Un saluto e a presto!! Davide ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 07:50:25 ---------------------------------------- non ho scaricato il tuo codice, ma io ho risolto così: ho creato un selettore con le varie com (dalla1 alla \"8)\" in modalità testo poi con un case con in ingresso il selettore ho usato la costante visa (quella che ti crea clikkando crea costante sulla porta com) e rinominando dalla 1 alla 8 la costante così mi va su tutte su qualsiasi pc che uso \":D\" ---------------------------------------- AUTORE: 645 DATA :27/07/2006 - 08:31:39 ---------------------------------------- Per selezionare una porta seriale per la comunicazione io ti consiglio di usare all'inizio del VI il blocco di configurazione della seriale (Block Diagram-->Instrument I/O-->Serial-->VISA configure serial port) e creare un blocco di controllo per scegliere la porta seriale: questo blocco si presenta come un menù a tendina dal quale puoi selezionare le porte presenti effettivamente sul pc dove sta girando il VI (vedi immagine allegata). ---------------------------------------- AUTORE: 1164 DATA :27/07/2006 - 09:25:08 ---------------------------------------- Grazie a tutti per le risposte.....provo subito a mettere in atto i consigli ricevuti (selettore porte com) e vi farò sapere le evoluzioni anche se non sono molto fiducioso...... Accetto e concordo , consapevole dei miei pasticci, le critiche di davide82...comunque uso LabView versione 6 e versione 8 anche se il problema è uguale su entrambe le versioni! ---------------------------------------- ================================================================================ Generazione report office ================================================================================ AUTORE: 1378 DATA :26/07/2006 - 14:36:45 ---------------------------------------- Salve a tutti, sto cercando di creare un programma di acquisizione dati. Ho il problema di creare un report dei dati acquisiti in un file excel. Qualcuno mi può aiutare? Ho provato col report generation for microsoft office senza alcun risultato. Grazie a chiunque voglia aiutarmi. sul sito della National Instrument ho trovato file .llb che non so aprire. Scusate, ma sono alle prime armi con questo programma. Fabio ---------------------------------------- AUTORE: 645 DATA :26/07/2006 - 14:50:04 ---------------------------------------- Il Report Toolkit ti permette di generare documenti Office a partire dai dati presenti nel tuo VI. Ho provato ad aprirlo qualche volta ma non saprei esattamente come funziona. Però posso dirti che tra i blocchi di salvataggio su file è presente il blocco "Write Spreadsheet File" (il nome assomiglia a questo ma al momento non ho LabView a portata di mano) che prepara i dati per essere memorizzati su un file Excel. Puoi "costruire" il report passando una riga di intestazioni e poi i dati divisi come preferisci. Per passare grafici interi puoi provare con le funzioni che lavorano sulle immagini (mai usate) o puoi creare una macro all'interno del file di destinazione Excel se sai smanettare con VBA. ---------------------------------------- AUTORE: 129 DATA :26/07/2006 - 17:35:29 ---------------------------------------- Se hai bisogno di fare anche una cover e qualcosa di un pò ricamato, puoi utilizzare il write to spreadshet file salvando in formato txt. Crearti un modello Excel, con un foglio dedicato all'importazione dati da file di testo, quindi utilizzando le funzioni di cerca verticale ecc. in Excel, vai a recuperare le info esportate, oppure puoi realizzare un grafico ecc. Ma visto che hai il report toolkit, dovresti guardarti un pò di documentazione, perchè dovresti riuscire a fare molto.(Purtroppo io non l'ho mai usato). Nic \":wink:\" ---------------------------------------- AUTORE: 1313 DATA :27/07/2006 - 00:00:45 ---------------------------------------- Sinceramente, se ti vuoi semplificare la vita usa il blocco per la scrittura del file .lvm In pratica imposti i commenti, le descrizioni ecc, poi colleghi i dati che a acquisisci e lui ti crea un file che puoi .lvm che puoi aprire con excel. Ciao, Cristiano P.S. io ho fatto così ---------------------------------------- AUTORE: 1313 DATA :27/07/2006 - 00:03:59 ---------------------------------------- Questo è il link al post contenente lo screenshot del blocco che uso: download.php?id=1082 Ciao, Cris ---------------------------------------- ================================================================================ progetto ================================================================================ AUTORE: 1340 DATA :26/07/2006 - 17:52:44 ---------------------------------------- salve, in particolare mi interesserebbe sapere come poter realizzare un blocco di generazione di un segnale, speeder, upsample, filter, modulatore inoltre non so come implementare un convertitore A/D o D/A. Consapevole della vostra collaborazione vi mando i più cordiali saluti. ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 10:13:46 ---------------------------------------- Ciao, potresti specificare meglio di cosa hai bisogno? ---------------------------------------- ================================================================================ acquisizione dati e dimensioni memoria allocata ================================================================================ AUTORE: 977 DATA :27/07/2006 - 00:01:09 ---------------------------------------- Salve a tutti! Purtroppo mi trovo di fronte ad un problema nettamente al di sopra delle mie capacità e spero che qualcuno di voi possa aiutarmi a trovare una soluzione. In sintesi ho un un VI "primario" che compie una serie di acquisizioni dati "analogici" e "digitali" (per darvi un'idea posso dirvi che le acquisizioni "analogiche" sono più di 200 per una media di 60.000 campioni per acquisizione). Il VI "primario" è organizzato come una macchina a stati abbastanza complessa e purtroppo non posso inviare il file sorgente dato che le dimensioni, di tutta la libreria, superano i 200 Mbyte... Il problema è che man mano che vengono acquisiti i dati, la memoria allocata da Labview aumenta esponenzialmente con punte intorno ad 1 Gbyte !! Sinceramente non so spiegarmi il motivo di questo gravoso allocamento di memoria che a lungo andare rallenta il programma falsando numerose misure. Dato che ogni acquisizione mi serve in definitiva per calcolare, al max, una ventina di dati finali ho pensato che Labview non disallocasse le aree di memoria contenenti le varie waveform che acquisisco, ma sinceramente non ho trovato nessuna opzione che mi possa aiutare in tal senso... Questa è l'unica idea plausibile che mi è venuta in mente per motivare questa gigantesca allocazione di memoria, ma è possibile che il problema sia un'altro... Il programma gira su un AMD, se non ricordo male a 1,8 GHz, con 1 Gbyte di Ram e una "memoria virtuale" intorno ai 4 Gbyte. Il sistema operativo è Windows Xp Home e la versione di Labview è la 7.0. Spero che qualcuno di voi possa aiutarmi a risolvere questo problema anche perchè non ho ancora trovato una discussione che riesca ad aiutarmi ne su questo forum ne su quello della national! Spero di avere presto vostre notie.. Saluti Davide ---------------------------------------- AUTORE: 482 DATA :27/07/2006 - 07:43:59 ---------------------------------------- Secondo me c'e' qualche problema di ottimizzazione dell'acquisizione... Potresti isolare una sola acquisizione e postarla? ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 07:47:13 ---------------------------------------- può essere un uso anomalo delle variabili globali o una continua dichiarazione ciclica di nuovi array che ti occpuano memoria senza vedere il codice è diffile \":D\" ---------------------------------------- AUTORE: 977 DATA :27/07/2006 - 15:16:49 ---------------------------------------- Per quanto riguarda le variabili globali lo escludo in quanto non ne uso nemmeno una... Per quanto riguarda il codice sorgente cercherò di isolare un VI e inviarvi la libreria corrispondente al più presto anche se temo di non potercela fare prima di stanotte... dimensioni permettendo... A presto e ancora grazie per i suggerimenti! Davide ---------------------------------------- ================================================================================ scaricare immagine da video server ================================================================================ AUTORE: 838 DATA :27/07/2006 - 15:05:51 ---------------------------------------- ho un video server su ip che mi rende disponibile le seguenteimmagini: http://192.168.0.210/cgi-bin/video1.jpg e ad ogni refresh di explorer mi aggiorna l'immagine come cavolo faccio a importarla in una picture di labview????? aiuuuuuuuuuuuuuuuuuuuuuuuuuuuuuto \":D\" ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 15:58:42 ---------------------------------------- sto guardando un pò in giro ma mi sembra una cosa infattibile non c'è modo? qualche espertone batta un colpo hehe ---------------------------------------- AUTORE: 482 DATA :27/07/2006 - 16:07:25 ---------------------------------------- Non vedo niente!..su quella pagina c'e' solo l'immagine? se si, potresti usare gli activex per importarla... ---------------------------------------- AUTORE: 482 DATA :27/07/2006 - 16:22:18 ---------------------------------------- Altra domanda..sull'immagine devi lavorarci? Se si tratta solo di visualizzazione puoi usare anche un activex container e con le proprietà farti aprire la pagina \":wink:\" ---------------------------------------- AUTORE: 645 DATA :27/07/2006 - 16:25:57 ---------------------------------------- Prova qui: http://sine.ni.com/apps/utf8/niepd_web_ ... 0020E74861. Non ho capito bene come fa ma riesce a caricare immagini. ---------------------------------------- AUTORE: 645 DATA :27/07/2006 - 16:26:46 ---------------------------------------- [quote="MagicBotolo":vji53t2s]Prova qui: http://sine.ni.com/apps/utf8/niepd_web_ ... 0020E74861 . Non ho capito bene come fa ma riesce a caricare immagini.[/quote:vji53t2s] Scusa il punto non fa parte dell'indirizzo... ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 16:30:03 ---------------------------------------- grazie l'immagine la devo solo visualizzare visto che è come una netcam in una picture a video già ho fatto un applicativo che carica le jpg da file e le metto a video, ma mi manca il download da remoto ora provo a vedere \":D\" ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 16:35:51 ---------------------------------------- l'esempio di magic non va bene quello mette una jpg in una pagina di explorer a me serve il contrario scaricare un immagine jpg da un indirizzo http e metterla in labview cque grazie per la ricerca \":D\" ---------------------------------------- AUTORE: 645 DATA :27/07/2006 - 16:37:50 ---------------------------------------- Per scaricare da remoto qualcosa con DataSocket? ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 16:53:08 ---------------------------------------- ?? ho il link http che ho scritto sopra, e dovrei visualizzare la jpg cque dal tuo esempio ho girato la frittata e mettendo come URL dell'activex quello che linko io da explorer mi visualizza la jpg nell'activex!! per poi abbellire l'activex vedo se si può fare il problema ora è che mi chiede la pwd per accedere al video server, devo superare questo scoglio ora grazie mille \":D\" ---------------------------------------- AUTORE: 838 DATA :27/07/2006 - 16:59:39 ---------------------------------------- la cosa è un pò ostica, ma forse non è neanche la via migliore ora provo a fare un pò di test per vedere che salta fuori ---------------------------------------- AUTORE: 482 DATA :28/07/2006 - 07:25:40 ---------------------------------------- Sto cercando di mandarti un allegato ma mi dice "try to upload empty file" \":cry:\" ---------------------------------------- AUTORE: 247 DATA :28/07/2006 - 08:32:34 ---------------------------------------- Ciao, [quote:sw9okuf2]Sto cercando di mandarti un allegato ma mi dice "try to upload empty file" Crying or Very sad[/quote:sw9okuf2] probabilmente hai finito lo spazio limitato concesso ad ogni utente per uplodare allegati...prova a controllare dal tuo pannello personale di non aver esaurito lo spazio a tua disposizione per gli upload! BYE. ---------------------------------------- AUTORE: 482 DATA :28/07/2006 - 08:55:39 ---------------------------------------- [size=150:211tjpv0]OT[/size:211tjpv0] e dov'e' il mio pannello personale??? ---------------------------------------- AUTORE: 4 DATA :28/07/2006 - 09:48:29 ---------------------------------------- [b:28gn7zmm]COMUNICAZIONE:[/b:28gn7zmm] la cartella sul server dedicata a raccogliere gli allegati del forum era satura... ho aggiunto dello spazio e ora è di nuovo possibile allegare file. Scusate per il disservizio ma ultimamente il sito stà crescendo molto in termini di traffico e spazio usati. Ciao, ---------------------------------------- AUTORE: 482 DATA :28/07/2006 - 10:12:19 ---------------------------------------- allora ecco il file! \":wink:\" ---------------------------------------- AUTORE: 247 DATA :28/07/2006 - 10:40:28 ---------------------------------------- Ciao, [quote:1wqc1tg6]OT e dov'e' il mio pannello personale???[/quote:1wqc1tg6] Raggiungi il tuo pannello personale velocemente clikkando sul tuo nick name che compare sempre nei post che scrivi sopra l'avatar (il tuo ovviamente è gepponline..\";-)\") Nel pannello puoi controllare la situazione dei tuoi allegati clikkando su "Pannello di Controllo Allegati", puoi vedere tutti gli allegati che ti appartengono ed eventualmente cancellarne qualcuno se hai problemi di spazio. BYE. ---------------------------------------- AUTORE: 645 DATA :28/07/2006 - 10:49:59 ---------------------------------------- Beh, foto a parte ( \":o\" ), non è male! In pratica, correggimi se sbaglio, usi un web browser per collegarti da qualche parte (in questo caso al sito) e scaricare un contenuto (in questo caso l'immagine)? Si possono fare altre cose con questo sistema? Tipo realizzare pagine web a partire da un VI senza usare l'utility di creazione pagine web contenuta in LabView (è molto comoda ma mi da problemi con VI grossi: ho tempi di caricamento pagina lunghissimi)? ---------------------------------------- AUTORE: 482 DATA :28/07/2006 - 11:00:01 ---------------------------------------- Potere credo si possa... il problema degli ActiveX è che ci puoi fare delle grandi cose, ma ci si perde per niente perchè le proprietà e i metodi non sono cosi' semplici da trovare. Io tutte le volte che l'ho fatto l'ho fatto per tentativi (cosi' come realizzavo le stesse funzioni di ADO utilizzando gli activeX). Per il momento io ho usato il controllo WebBrowser, quindi puoi fare browsing, pero' se hai installato frontpage o qualsiasi altro editor di pagine web puo' essere che ti mettano a disposizione proprietà e metodi per creare le pagine (quasi sicuro). \":wink:\" ---------------------------------------- AUTORE: 838 DATA :28/07/2006 - 13:04:41 ---------------------------------------- siete dei grandi!!! infatti appena ho visto che mettendo l'indirizzo internet nell'url si collega alla foto ho pensato che rimaneva solo da pescare la jpg dall'activex per risolvere il problema della password ho disabilitato tutto sul video server, così non rompe le scatole richedendo il login ora guardo l'esempio di geppo e vi faccio sapere qualcosa poi quando è a posto vi mando i miei risultati che saranno sicuramente utili per chi vorrà interagire con netcam o video server ip per ora buon week end \":D\" ---------------------------------------- AUTORE: 838 DATA :31/07/2006 - 07:07:15 ---------------------------------------- il discorso ora è questo: io passo l'indirizzo web o intranet al mio active x, ma ora come faccio a estrarre la sola jpg? visto che la devo inserire in una mia picture (senza il refresh per eliminare lo sfarfallio dell'immagine e per adattarla meglio alla spv) come cavolo si fa? ho provato tutti i menu dell'active x, ma non ho trovato niente che si riferisce al contenuto dell'oggetto visualizzato. suggerimenti? \":D\" ---------------------------------------- AUTORE: 482 DATA :31/07/2006 - 07:42:49 ---------------------------------------- ehe..ahimè di suggerimenti non ne ho, per questo ti avevo chiestose dovevi lavorarci sull'immagine o se dovevi solo visualizzarla. \":?\" Il problema è proprio aprire delle immagini dal web. Nel senso che, se si potesse passare ai moduli di read file un path remoto il problema non sussisterebbe. MA al momento tu ti ritrovi con una pagina web in cui al limite puoi sapere che all'interno della pagina c'e' un oggetto con un astensione JPG (o qualsiasi altra sia) ma in activeX non puo' sapere che si trata di un immagine. Provando ad ipotizzare una soluzione (pero' gli activeX te li smazzi tu \":wink:\" ) ti direi: Ti colleghi alla pagina e tramite activeX la salvi su disco. Una volta salvata te la apri normalmente e la visualizzi. Nel caso tu non apessi a priori il nome dell'immagine potresti andare a visualizzare al sorgente di pagina e da li localizzare il nome dell'immagine (sempre tramite activeX). ---------------------------------------- AUTORE: 482 DATA :31/07/2006 - 13:11:24 ---------------------------------------- sto sviluppando la soluzione per il tuo problema ma ho trovato un intoppo... qualcuno mi sa dire a cosa mi corrisponde questo dato: VT_BSTR dovrebbe essere una stringa UNICODE...cioè??? cosa gli devo mandare in ingresso al blocco "to variant"?? ---------------------------------------- AUTORE: 838 DATA :01/08/2006 - 07:19:31 ---------------------------------------- sei troppo avanti anche per me non saprei come aiutarti \":D\" grazie per l'impegno, ggi mi dedico anche io alla cosa \":wink:\" ---------------------------------------- AUTORE: 838 DATA :07/08/2006 - 07:05:25 ---------------------------------------- dopo innumerevoli tentativi ecco la mia soluzione: scarico con una sessione dos/ftp il file contenente l'immagine sul mio pc poi la carico leggendola dall'hard disk essendo la sessione ftp un pò lenta, invio la richiesta di download di 10 immagini (sempre la stessa, ma me ne arriva 1 ogni 6 dec/sec) e le carico in continuo nel vi, così da ottenere il video un pò fluido ho provato anche con un 100 di immagini, il video risulta fluido ma un pò "in differita" ora provo con i comandi ftp di labview, sperando siano più veloci della sessione dos per ora ho trovato un esempio di file upload e non download, ci do un'occhiata per vedere di convertire il codice per il mio uso vi farò sapere quando è tutto finito ciao ---------------------------------------- ================================================================================ Porte com Bluetooth ================================================================================ AUTORE: 591 DATA :27/07/2006 - 17:01:38 ---------------------------------------- Ciao a tutti i frequentatori, vorrei sapere se qualcuno di voi ha avuto esperienza con i dispositivi bluetooth sotto labview ed in particolare con le porte com virtuali via bluetooth. Contattando l'assistenza NI mi hanno detto di utilizzare come driver quelli forniti a corredo con XP sp2 per la periferica BT da installare sul pc solo che con questi ultimi la porta (periferica) viene vista e apparentamente abilitata ma in realta la com è muta portando ad un errore di timeout. Utilizzando i driver a corredo con il pennino BT (widcomm o bluesoleil) la com viene vista ed attivata e con i widcomm è gestibile anche via visa. Avete consigli a riguardo? ---------------------------------------- AUTORE: 645 DATA :28/07/2006 - 06:58:15 ---------------------------------------- Per lavorare con il Bluetooth ci sono essenzialmente due strade: lavorare con i blocchi appositamente forniti da LabView per questo tipo di comunicazione o utilizzare la seriale virtuale (una nuova COM) che il tuo dispositivo dovrebbe creare quando viene installato sul pc. Io avevo realizzato un sistema di comunicazione tra due pc con due chiavette Bluetooth: uno dei due mandava i dati sulla porta seriale virtuale (COM 4 se non ricordo male, ma puoi vedere il numero dal Pannello di Controllo--> Sistema--> Gestione periferiche) e l'altro leggeva quando si accorgeva che c'era qualcosa disponibile nel proprio buffer. Se trovo il file lo posto. Si tratta comunque di una comunicazione seriale vera e propria. ---------------------------------------- AUTORE: 591 DATA :28/08/2006 - 08:59:11 ---------------------------------------- Anche se tardiva grazie per la risposta. Il sistema di attivare la com esternamente a labview l'ho gia' utilizzato con successo. L'unico problema è quello di utilizzare driver WIDCOMM e non altri (vedi bluesoleil) e tantomeno driver di windows xp sp2 (con questi ultimi non riesco ad attivare la comunicazione con la porta ottenendo come risposta "impossibile aprire la porta"). Il mio problema resta sempre quello di effettuare tutto il controllo internamente a labview (compreso il pairing) ma per gestire il BT devo usare i driver di WIN XP sp2 (fonte NI) e con questi non c'e' verso (anche esternamente a labview) di usare la com virtuale. Se qualcuno ha qualche dritta a riguardo mi darebbe un grosso aiuto. ---------------------------------------- AUTORE: 645 DATA :28/08/2006 - 09:54:09 ---------------------------------------- Ma tu sei costretto ad usare i driver di XP sp2? Non puoi installare i driver a corredo della penna bluetooth e poi chiamare la porta seriale virtuale creata da questi driver? ---------------------------------------- AUTORE: 591 DATA :28/08/2006 - 11:52:02 ---------------------------------------- Purtroppo si. Volendo realizzare una applicazione BT per terzi devo utilizzare i blocchi BT forniti da Labview che come gia' detto funzionanano solo con i driver win xp sp2. La soluzione della com virtuale va bene per nostro uso interno e per farci dei test ma non per clienti che pagando chiedono e pretendono una gestione puramente BT. ---------------------------------------- AUTORE: 645 DATA :28/08/2006 - 13:20:08 ---------------------------------------- Forse hai già visto ma prova a dare un'occhiata a http://zone.ni.com/devzone/conceptd.nsf ... 7500726F15 dove viene sviluppata un'applicazione Bluetooth come se fosse un'applicazione client-server con TCP-IP. Poi c'è il manuale per PDA (http://www.ni.com/pdf/manuals/370624b.pdf) nel quale si parla di comunicazione tra dispositivi. Se tutto funziona (io ho incontrato qualche difficoltà nell'installazione di dispositivi Bluetooth in Windows XP per conflitti tra driver proprietari e driver di Windows) con il blocco "Bluetooth Discover" puoi fare un check iniziale dei dispositivi collegati al tuo sistema e poi sfruttare un'architettura tipo client-server per scambiare dati. Se scopri qualcosa di nuovo facci sapere perchè è un argomento interessante... ---------------------------------------- AUTORE: 591 DATA :29/08/2006 - 16:28:57 ---------------------------------------- Grazie per le risposte. Se scopro qualcosa condivido. ---------------------------------------- AUTORE: 1095 DATA :09/11/2006 - 23:43:09 ---------------------------------------- vorrei chiedervi come fare a configurare windows sp2 per poter far andare il blocchi bluetooth di labview 8.0...oppure come configurare bluesoleil ( o equivalenti driver bluetooth)... vorrei provare a ricevere messaggi bluetooth da un cellulare nokia 6600... vi prego aiutatemi nella configurazione...sto impazzendo \":twisted:\" ---------------------------------------- ================================================================================ Ascisse dei Chart ================================================================================ AUTORE: 927 DATA :27/07/2006 - 17:07:50 ---------------------------------------- Vorrei fare un chart dove l'intervallo visibile delle ascisse sia impostabile da programma (con i Property Node). Inoltre devon essere impostabili l'origine (l'ascissa del primo elemento) e il passo tra i dati (la differenza tra le ascisse di due elementi consecutivi). Nel mio caso specifico lavoro con date/ore, ma faccio un esempio + semplice: se ho intervallo 10, origine 100 e passo 2, gli elementi devono avere ascisse 100,102,104... e a un dato istante possono esser visibili ad esempio le ascisse 220,222,224,226,228,230. Ho provato a fare come nell'allegato ma a volte funziona a volte no... ---------------------------------------- AUTORE: 927 DATA :28/07/2006 - 07:37:03 ---------------------------------------- (non mi funzionano gli allegati...) ---------------------------------------- AUTORE: 4 DATA :28/07/2006 - 08:30:54 ---------------------------------------- Probabilmete non riesci ad allegare file perchè ha un'estensione o una dimensione non supportate, puoi controllare quali sono quelle concesse da questo link [url=http://www.ilvg.it/forum/attach_rules.php?f=1:1dzzhb4g]Estensioni e dimensioni permesse[/url:1dzzhb4g] Ciao, ---------------------------------------- AUTORE: 927 DATA :28/07/2006 - 09:07:34 ---------------------------------------- no no, il file va benissimo... Cmq forse ho risolto il problema (almeno per ora non ha scazzato), impostando prima Xscale.Offset e Xscale.Multiplier con un property node, poi Xscale.Minimum e Xscale.Maximum con un altro property node. Magari qualcun altro ha voglia di provare? \":roll:\" ---------------------------------------- AUTORE: 4 DATA :28/07/2006 - 09:47:39 ---------------------------------------- [b:252jgg9b]COMUNICAZIONE:[/b:252jgg9b] la cartella sul server dedicata a raccogliere gli allegati del forum era satura... ho aggiunto dello spazio e ora è di nuovo possibile allegare file. Scusate per il disservizio ma ultimamente il sito stà crescendo molto in termini di traffico e spazio usati. Ciao, ---------------------------------------- ================================================================================ Aiuto waveform chart ================================================================================ AUTORE: 1378 DATA :28/07/2006 - 11:49:59 ---------------------------------------- come è possibilie effettuare la stampa in modo diretto di una waveform chart, ovvero di quanto appare a video creando un tasto dedicato? Grazie ---------------------------------------- AUTORE: 838 DATA :28/07/2006 - 13:08:02 ---------------------------------------- cerca nel forum, sono sicuro che è già stato trattato alla grande non mi ricordo bene e quindi non vorrei dire stupidate \":D\" ---------------------------------------- AUTORE: 129 DATA :29/07/2006 - 07:06:47 ---------------------------------------- Puoi utilizzare un invoke, in particolare Get image, quindi utilizzi dalla palette Graphic & SOund//Graphics format per selzionare un formato su cui salvare l'immagine. MA questo non era l'obiettivo, che rimane quello di stampare, il controllo, allora potresti tentare il metodo "Print panel" dalla classe VI, che ti stampa il pannello di controllo, in questo caso se vuoi stampare solo il grafico, puoi realizzare un vi con all'interno solo il grafico, e che prende i dati dal vi principale e contenga anche il metodo(invoke) "print panel" in modo che quando lo chiami ti stampa siolo il grafico. Ti allego comunque un esempio. ---------------------------------------- ================================================================================ e-mail di allarmi/eventi ================================================================================ AUTORE: 307 DATA :28/07/2006 - 13:31:57 ---------------------------------------- [quote="nicola":fa360c9m]Utilizzando il tcp/ip dovresti riuscire anche a ricevere , io personalmente non ho mai provato, ti invio un vi che ho trovato in giro che ti fa vedere come utilizzare le tcp/ip....[/quote:fa360c9m] Ciao Nicola Sono nuovo da queste parti. Ho costruito un semplice vi di visualizzazione e acquisizione allarmi/eventi sfruttando le potenzialità del modulo DSC di LabView. Ricevo i dati via OPC da un server su cui è installata una scheda 6509 (ex PCI DIO 96) a 96 input/output digitali e li visualizzo associati ad un messaggio a seconda dello stato 0 o 1, definito nel database scf. Avrei bisogno che lo stesso messaggio in alcuni casi, a seconda di certi livelli di criticità, venga inviato come mail passando per un server Exchange all'interno di una Lan aziendale, pensi che sia possibile? Penso cambi come minimo la porta d'uscita, vero? \":wink:\" ---------------------------------------- AUTORE: 838 DATA :28/07/2006 - 13:38:44 ---------------------------------------- penso che non cambi granchè, solo a livello di indirizzo ma la mail deve uscire dalla rete o rimane solo un messaggio interno? magari se il pc che utilizzi è abilitato a internet, puoi andare direttamente all'esterno senza passare per exchange ---------------------------------------- AUTORE: 307 DATA :28/07/2006 - 14:28:59 ---------------------------------------- [quote="minzuk":qy1xm1y4]penso che non cambi granchè, solo a livello di indirizzo ma la mail deve uscire dalla rete o rimane solo un messaggio interno? magari se il pc che utilizzi è abilitato a internet, puoi andare direttamente all'esterno senza passare per exchange[/quote:qy1xm1y4] Il PC è abilitato ad internet ma il Pop3 è bloccato dal proxy In ogni caso la mail sarebbe solo interna, dato che l'applicazione è aziendale. ---------------------------------------- ================================================================================ Nome drive ================================================================================ AUTORE: 660 DATA :28/07/2006 - 16:42:33 ---------------------------------------- Ho un installer che mi installa il mio applicativo fatto con LV8 sul PC in una cartella che l'utente volendo può modificare. Il problema è: dopo che l'installazione è terminata come faccio a 1) scoprire in quale cartella l'utente ha deciso di installare il SW 2) scoprire qual'è la lettera associata al CD-ROM utilizzato per l'installazione? Evidentemente il tutto usando LV. Grazie ---------------------------------------- AUTORE: 129 DATA :29/07/2006 - 06:40:09 ---------------------------------------- Per la prima puoi utilizzare il vi "current vi's path" dal menu File//File constant, lo inserisci nel vi principale. Per la sceonda, l'unica cosa che mi viene in mente è provare con qualche funzione avanzata, tipo volume info.vi . ---------------------------------------- AUTORE: 660 DATA :29/07/2006 - 11:20:38 ---------------------------------------- chiedo scusa, ma ho dimenticato un dettaglio: devo scoprire dove è stata effettuata l'installazione utilizzando un altro eseguibile, non quello installato! ---------------------------------------- AUTORE: 129 DATA :29/07/2006 - 21:29:55 ---------------------------------------- Puoi appoggarti su un file .ini o anche un binario per scambiare il dato che il vi installato scrive e il programma client legge. Oppure usare un collegamento datasocket o shared variable. ---------------------------------------- ================================================================================ Funzione New Directory ================================================================================ AUTORE: 516 DATA :29/07/2006 - 17:22:10 ---------------------------------------- Ciao a tutti Vi scrivo per chiedervi un'aiuto ho usato la funzione new directory il problema è che la prima volta la crea però poi la seconda volta che la trova mi dà un'errore (come da help in linea) non riesco a configurarla come :se non c'è crea la nuoa directory e se esiste ok , quanhe suggerimento ? Grazie a tutti Ciao Sergio ---------------------------------------- AUTORE: 838 DATA :29/07/2006 - 18:36:39 ---------------------------------------- prima di crearla fai una dir list, se la trovi nell'array non la crei \":D\" ---------------------------------------- AUTORE: 516 DATA :29/07/2006 - 19:44:25 ---------------------------------------- Ciao GRAZIE MILLE Sergio ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 09:54:34 ---------------------------------------- Oppure la crei sempre lo stesso, ma ignori esplicitamente l'errore. ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 10:03:00 ---------------------------------------- [quote:2ylego0i]Oppure la crei sempre lo stesso, ma ignori esplicitamente l'errore.[/quote:2ylego0i] Concordo, è il metodo che uso da sempre. Se voui essere più preciso costruisciti una funzione che ignora solo certi codici di errore. Ciao, ---------------------------------------- AUTORE: 516 DATA :31/07/2006 - 17:17:03 ---------------------------------------- Ciao Grazie Mille a tutti quanti Ciao Sergio ---------------------------------------- ================================================================================ Salvare file con data ================================================================================ AUTORE: 516 DATA :30/07/2006 - 10:52:44 ---------------------------------------- Ciao Eccomi di nuovo qua \":wink:\" , ho un'applicazione che gira 24h su 24 e che deve memorizzare dei dati , ora vorrei che alla mezzanotte mi chiudesse il file e ne aprisse un'altro (il nome del file non è altro che la data del giorno) , e tutto stamattina che faccio delle prove ma senza risultato qualcuno può darmi una mano ? Ciao Grazie Mille Sergio ---------------------------------------- AUTORE: 129 DATA :30/07/2006 - 14:47:15 ---------------------------------------- Per la path usa questo, devi solo inserire l'estensione e il tipo (solo data,solo ora, tutti e due). Ciao e buon lavoro. ---------------------------------------- AUTORE: 516 DATA :30/07/2006 - 16:38:53 ---------------------------------------- Ciao Ti ringrazio per la risposta , il problema non è creare la path è quello dopo nel senso che se metto il componete (es. new) all'interno del while loop il programma continua a scrivere sopra al file in pratica ho solo una riga e se metto il blocco fuori quest'ultimo non si "accorge" quando la data cambia ARGH!!!! non riesco a trovare la soluzione Ciao Sergio ---------------------------------------- AUTORE: 129 DATA :30/07/2006 - 17:14:58 ---------------------------------------- Ho abvbozzato una proposta, sicuramente da migliorare, in ogni caso usando il firstcall.vi, dovresti risolvere. Prova a modificare il mio esempio magari è quello che cercavi. Ciao, Nic ---------------------------------------- AUTORE: 516 DATA :30/07/2006 - 17:25:34 ---------------------------------------- Ciao Grazie Mille ora provo poi ti faccio sapere Ciao Sergio ---------------------------------------- AUTORE: 129 DATA :30/07/2006 - 17:58:23 ---------------------------------------- Effettivamente puoi fare meglio anche con File directori info, se colleghi lo state del cluster error alla condizione del cas structure, salva solo in caso non ci sia già un altro file. Ho modificato anche la generazione del path, caso mai dovesse trovarsi in una llb.... Ti allego l'esempio ---------------------------------------- AUTORE: 516 DATA :30/07/2006 - 18:14:52 ---------------------------------------- Ciao Ho appena provato il nuovo file che mi hai mandato wow funziona e alla grande , ti chiedo ancora un favore mi dai due dritte su come funziona perchè l'ho guardato e riguardato ma ho difficoltà a capire come funziona Ciao Sergio GRAZIE MILLE ---------------------------------------- AUTORE: 129 DATA :30/07/2006 - 18:26:52 ---------------------------------------- Il primo vi, si incarica di creare la path, all'interno ho dovuto giocare un pò di stringa, perchè deve prevedere alcune casistiche (llb,start directory ecc.) il file/directory.vi esegue un controllo sulla path e ne restituisce info e nessun errore in casoi di esistenza, nel caso inverso restituisce l'errore, quindi lo collego al case in modo che se esiste il file non deve riscriverlo, se non esiste può scriverlo. Sul selettore case, ho usato una and, per dare la possibilità di bloccarlo dall'esterno (che so si può utilizzare per dire che è ora di salvare). Direi che questo è quello che fà, se hai dei dubbi non esitare. Nic ---------------------------------------- AUTORE: 516 DATA :31/07/2006 - 07:18:22 ---------------------------------------- Ciao Scusa se ti rispondo in ritardo ma poi ieri sera ho avuto problemi con il pc , ora provo ad adattarlo al mio caso poi ti faccio sapere, ancora grazie Ciao Sergio ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 10:13:59 ---------------------------------------- Aggiungo un ulteriore suggerimento. Quando ho necessità del genere, uso per il nome dei file: YYYYMMDD_NomeFile.ext Cioè, per esempio, oggi sarebbe: 20060731_Datafile.dat Cosí facendo, il grande vantaggio è che i file si trovano già ordinati cronologicamente, quando si ordinano per nome. Quindi anche da una applicazione, basta leggere la directory, ordinare l'array dei nomi e l'ordine cronologico è a posto, senza dover andare a leggere ulteriori dettagli sul file. ---------------------------------------- AUTORE: 516 DATA :31/07/2006 - 17:16:34 ---------------------------------------- Ciao Grazie Mille a tutti quanti Ciao Sergio ---------------------------------------- ================================================================================ programazione di una DAQ ================================================================================ AUTORE: 1384 DATA :31/07/2006 - 09:48:56 ---------------------------------------- Salve,sono stephan,sono al mio primo mese di labview.ora dispongo di una USB DAQ DT9803 avendo 16-bit resolutione e la devo programare in modo che mi faccia la conversione digitale di un segnal messo in ingresso.Non so come fare? Spero di essere stato chiaro nella descrizione. grazie per l'aiuto. \":cry:\" ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 09:52:32 ---------------------------------------- Ciao Benvenuto! Ho cercato il codice della tua scheda sul sito NI ma non ho trovato niente! Ch scheda è? Ciao ---------------------------------------- AUTORE: 1384 DATA :01/08/2006 - 10:07:19 ---------------------------------------- ciao, si tratta di una DT9803.L o si puo trovare consultando "www.datatranslation.com" grazie mille ---------------------------------------- AUTORE: 278 DATA :01/08/2006 - 11:10:00 ---------------------------------------- Ciao, tramite il sito da te segnalato ho trovato al scheda che possiedi, per utilizzarla in LV devi avere le librerie DT-LV Linkâ„¢ scaricabili gratuitamente da [url=ftp://ftp.datx.com/Public/DataAcq/DtLVLink/software/Setup.exe:2d13rq9r][u:2d13rq9r]QUI[/u:2d13rq9r][/url:2d13rq9r] ---------------------------------------- AUTORE: 1384 DATA :02/08/2006 - 16:25:25 ---------------------------------------- ciao,il mio problema è di poter leggere un dato da un file come se fosse il valore analogico letto da un canale e convertirlo in digitale utilizzando ovviamente la libreria DT-LV. grazie anticipatamente ---------------------------------------- ================================================================================ file multitiff ================================================================================ AUTORE: 1385 DATA :31/07/2006 - 10:19:48 ---------------------------------------- ciao a tutti, mi sono appena registrata perchè ho urgente bisogno del vostro aiuto... ho bisogno di capire come funzionano i file multitiff: in pratica con un programma di acquisizione (non in labview) riesco a salvare un certo numero di immagini tutte insieme (il file multitiff appunto): come faccio a separale una per una dopo??? grazie mille ---------------------------------------- AUTORE: 247 DATA :31/07/2006 - 10:49:05 ---------------------------------------- Ciao, cerca in rete il progamma "Tiffsplitter", dovrebbe fare al caso tuo! BYE. P.S. ?E LabVIEW dove sta \":wink:\" ? ---------------------------------------- AUTORE: 1385 DATA :31/07/2006 - 11:26:44 ---------------------------------------- grazie apollon per l'informazione: il fatto è che il problema non è finito qui. adesso io devo prendere i singoli tiff che ho ottenuto con il programma che tu mi hai indicato e raggrupparli in un certo numero di sottogruppi (per esempio se il multitiff originale conteneva 100 tiff io devo creare 10 gruppi da 10 tiff); questo so farlo con labview (o almeno credo) ma come faccio poi a salvare i 10 sottogruppi in 10 nuovi file multitiff da dare in pasto ad un altro programma (tra l'altro fatto da altri...)??? grazie ---------------------------------------- ================================================================================ Come evitare l'istanzione multipla di una applicazione LV ================================================================================ AUTORE: 384 DATA :31/07/2006 - 10:49:24 ---------------------------------------- Ciao a tutti. Ho un'applicazione LabView, runtime. Vorrei evitare che, per distrazione o altri motivi legati all'operatore, la si possa istanziare (cioè, "lanciare" in esecuzione) più di una volta. Qualche idea da dove iniziare? Grazie. ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 11:28:25 ---------------------------------------- Non capisco, se l'applicazione è sempre la stessa (stesso file exe) è windows che si occupa di prevenoire questa cosa. Se invece hai 2 o più installazioni della stessa applicazione ma in percorsi diversi allora windows non gestisce niente e in effetti partono 2 applicazioni identiche anche se i due file exe hanno nomi identici. Un'altra cosa è la doppia installazione, se usi lo stesso installer lui stesso controllerà la presenza dell'applicazione sul sistema e se la trova fà partire la procedura di dis-installazone, se non la trova parte l'instalazione. E' difficile quindi installare 2 applicazioni uguali anche con lo stesso inastaller sulla stessa macchina se l'installer è diverso il discorso cambia. in ogni caso puoi prevenire il lancio in maniera programmatica usando questo trucchetto: 1 al lancio del tuo SW chiami la funzione "Get Window RefNum.vi", che ti ritorna il reference a una finestra attiva a partire dal suo nome. 2 se ottieni un errore vul dire che non esiste nessuna finestra con quel nome quindi la tua app non sta girando, se ottieni errore allora vuol dire che sta già eseguendo una app che ha quel nome 3a nel primo caso puoi lanciare la tua app 3b nel secondo esci dalla tua app ATTENZIONE. fai attenzione a controllare l'esistenza del nome PRIMA di lanciare il main della tua app, altrimenti "trovi te stesso" e non arti mai, otresti usare una piccola funzione splash che fa il controllo e poi lancia la vera app. Ciao, ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 11:54:51 ---------------------------------------- >Non capisco, se l'applicazione è sempre la stessa (stesso file exe) è >windows che si occupa di prevenoire questa cosa. Non credo. Di fatti possiamo lanciare quante volte vogliamo word, excell, IE, la finestra dei commandi e tante altre applicazioni. Lo stesso MAX può essere lanciato più volte. Comunque grazie dei suggerimenti. Proverò, ma già così come descritto mi sembra che possa essere la soluzione giusta. All'apertura del vi allegato mi risultano errori perchè manca qualche subVI, ma quello fa parte di winutil.llb, giusto? (e quello ce l'ho!) ---------------------------------------- AUTORE: 482 DATA :31/07/2006 - 12:33:21 ---------------------------------------- Anche io non capisco...se ho un applicazione, posso provare a lanciarla quante volte voglio ma mi resta sempre e solo la prima lanciata. Word ed excel aprono diverse istanze perchè vanno a gestire diversi docuemnti, un applicazione labview non fa questa cosa... \":?:\" \":?:\" ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 12:53:38 ---------------------------------------- Ho provato ed è vero: le applicazioni generate da LabView non si possono lanciare più volte. (altre applicazioni si, però, compreso MAX) Allora com'è che un cliente si lamenta che essendo a volte l'applicazione lenta ad avviarsi, l'operatore la rilancia (convinto che la prima volta non sia andata bene) partono entrambe, esce "uno strano errore" e si impianta tutto? Potrebbe essere uno di quesi casi in cui stano combinando qualche pasticcio di cui non sano ne come lo fanno ne come ne escono? ---------------------------------------- AUTORE: 482 DATA :31/07/2006 - 13:09:22 ---------------------------------------- aspetta.... Ricorda che le applicazioni LabVIEW, se non si setta un particolare valore nel file INI corrispondente, generano due finestre nella barra delle applicazioni e puo' sembrare che si lancino due applicazioni separate. In effetti clikkando su una qualsiasi di queste due finestre nella barra delle applicazioni si apre la finestra dell'eseguibile, e questo puo' trarre in inganno. Tuttavia una sola fa riferimento all'applicazione. Per risolvere questo inconveniente devi inserire nel file ini dell'applicazione una stringa di questo tipo: [code:2kxele7g][nomeapplicazione senza estensione] HideRootWindow=True[/code:2kxele7g] \":wink:\" ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 13:12:14 ---------------------------------------- giusto potrebbe essere questo il caso oppure come dici tu [quote:2to7fyw3]Potrebbe essere uno di quesi casi in cui stano combinando qualche pasticcio di cui non sano ne come lo fanno ne come ne escono?[/quote:2to7fyw3] Ciao, ---------------------------------------- AUTORE: 384 DATA :31/07/2006 - 13:13:07 ---------------------------------------- Grazie del suggerimento, ma questo lo faccio sempre - quindi non è il problema. ---------------------------------------- AUTORE: 4 DATA :31/07/2006 - 13:21:33 ---------------------------------------- giusto potrebbe essere questo il caso oppure come dici tu [quote:axerpo72]Potrebbe essere uno di quesi casi in cui stano combinando qualche pasticcio di cui non sano ne come lo fanno ne come ne escono?[/quote:axerpo72] [quote:axerpo72]All'apertura del vi allegato mi risultano errori perchè manca qualche subVI, ma quello fa parte di winutil.llb, giusto? (e quello ce l'ho!)[/quote:axerpo72] si tratta solo di un ref quindi un numero, in ogni caso ti allego il ctl Ciao, ---------------------------------------- ================================================================================ Reference o property node ================================================================================ AUTORE: 487 DATA :01/08/2006 - 14:10:42 ---------------------------------------- Ciao a tutti, mi è sorto un dubbio tremendo \":o\" : a livello di ottimizzazione del codice è meglio usare le reference o i property node per accedere alle proprietà di un controllo? \":?:\" Qualcuno mi può dare delle delucidazioni in merito? Grazie in anticipo. ---------------------------------------- AUTORE: 384 DATA :01/08/2006 - 14:20:53 ---------------------------------------- Per come si usano, e dato che una reference si può convertire direttamente in un property node, mi verrebbe da dire che è la stessa cosa. Però, non ho sufficienti conoscenze di LabView a cosí basso livello per poterlo affermare. ---------------------------------------- AUTORE: 4 DATA :01/08/2006 - 14:48:09 ---------------------------------------- Ho trovato queste discussioni molto interessanti [url=http://ideasinwiring.blogspot.com/2006/03/performance-impact-of-property-nodes.html:3fax5rgl]- Performance Impact of Property Nodes[/url:3fax5rgl] [url=http://forums.lavag.org/index.php?showtopic=3045&hl=:3fax5rgl]- Performance of execution[/url:3fax5rgl] In ogni caso conviene usare direttamente i property se il controllo\indicatore che devi modificare è nello stesso VI che "esegue" la modifica se no sei costretto a usare i reference da passare in ingresso al subVI che esegue sui property node... diciamo che più una questione di capire quello che ti serve... è inutile usare i reference se poi accedi alle property direttamente dal VI che contiene il controllo. Ciao ---------------------------------------- AUTORE: 838 DATA :01/08/2006 - 14:53:45 ---------------------------------------- a volte mi faccio degli array di reference di controlli a video per gestirli con un unico for loop per proprietà comuni altrimenti per singole cose uso le proprety \":D\" ---------------------------------------- AUTORE: 487 DATA :01/08/2006 - 14:54:43 ---------------------------------------- Grazie per le risposte. Sono perfettamente d'accordo con te, Ale, ma i dubbi mi sono sorti perchè ho visto il codice di un programma sviluppato da un professionista (???), nel quale vengono utilizzate le reference, anzichè i property node, all'interno del medesimo vi. E' per questo che mi sono chiesto se non ci fosse un motivo particolare per utilizzare le reference. ---------------------------------------- AUTORE: 4 DATA :01/08/2006 - 15:16:08 ---------------------------------------- siamo sicuri che si tratti di un professionista? \":lol:\" \"8)\" Ciao, ---------------------------------------- AUTORE: 129 DATA :02/08/2006 - 12:02:26 ---------------------------------------- Secndo me anche all'interno dello stesso VI, no solo semplicemente per un discorso di forma converrebbe utilizzare le reference, con la classica architettura la apro, la uso e la chiudo. Questo tiene molto meno esoso il dispendio di risorse, soprattutto se le property si utilizzano all'interno di cicli. Senza dimenticare che con le reference posso realizzare codice riutilizzabile. ---------------------------------------- ================================================================================ Grafici ================================================================================ AUTORE: 1377 DATA :01/08/2006 - 15:32:08 ---------------------------------------- Ciao a tutti.Vorrei sapere se è possibile visualizzare sullo stesso diagramma 2 curve. Sull´asse delle ascisse non c´è il tempo ma la variabile indipendente x. Le due curve vengono costruite in tempi successivi (prima la prima, poi la seconda,ecc...). Ho pensato di usare un XY graph. E´possibile differenziare le due curve (colori e tipi di linea diversi)? Grazie ---------------------------------------- AUTORE: 680 DATA :01/08/2006 - 17:12:55 ---------------------------------------- si, un xy dovrebbe fare al caso tuo.. guarda l'esempio allegato. per cambiare le proprietà della "funzione" clicca in alto a destra del grafico si plot... ciao... ---------------------------------------- AUTORE: 1377 DATA :02/08/2006 - 10:18:19 ---------------------------------------- Grazie per l´esempio.Ti allego un´immagine in cui si vede che ho usato una struttura case. Ci sono 3 casi; a seconda del valore del controllo test, voglio che sia diagrammata una curva, lasciando visualizzate le altre eventualmente presenti. Ora ho questo problema:quando comincio a costruire per punti la prima curva,il primo punto è sempre l´origine nonostante abbia scelto tra le proprietá del xy graph "Fill to none". Cosa devo fare per non visualizzare questo punto che non è un punto acquisito?L´ultima domanda è la seguente:è possibile differenziare automaticamente le tre curve riportate sul grafico usando colori diversi? Grazie. ---------------------------------------- AUTORE: 384 DATA :02/08/2006 - 23:55:25 ---------------------------------------- Prova a caricare il tuo vi. Confesso che dalla descrizione non sono riuscito a capire bene il problema. ---------------------------------------- AUTORE: 1377 DATA :03/08/2006 - 07:47:12 ---------------------------------------- Ciao!Chiedo scusa per la non chiarezza. Questo è il mio VI. ---------------------------------------- AUTORE: 384 DATA :03/08/2006 - 08:36:28 ---------------------------------------- Io non ho installato la versione 8 \"8)\" e quindi non riesco ad aprirlo. Ragazzi, ci date una mano? ---------------------------------------- AUTORE: 1377 DATA :03/08/2006 - 09:03:55 ---------------------------------------- Ti ringrazio ugualmente. Alla prossima. Massimo ---------------------------------------- ================================================================================ FieldPoint con IP dinamici ================================================================================ AUTORE: 927 DATA :02/08/2006 - 10:55:56 ---------------------------------------- Da Labviù posso trovare i suddetti FP con il vi "RT Ping Controllers" (avendo installato il modulo real time), e poi riconoscerli in base a nome, MAC, eccetera. Se sono fuori da Labviù, ad esempio voglio accedere al contenuto FTP di un FP con un normale browser, come faccio a trovarlo senza sapere l'IP? C'è modo di far assegnare dal DNS al FP un indirizzo di rete? Tipo mi collego a nomefp.dominio.it e vualà... ---------------------------------------- AUTORE: 384 DATA :02/08/2006 - 23:36:13 ---------------------------------------- Per assegnarene dei nomi automaticamente presso il DNS bisognerebbe: 1) che il tuo server DHCP sia in grado di offrire quel servizio 2) che il DNS lo supporti *e* sia configurato per accettarlo 3) che il FP si in grado di richiederlo, proponendo un suo nome nella richiesta dhcp (nome che ovviamente dovresti configurare su ciascuno) Cosí lo trroveresti con il suo nome, dovunque nella tua subnet. A me sembra chiedere MOLTO, ma puoi provare a verificare le 3 condizioni. Io partirei con la terza; non avendo mai lavorato con gli RT non ti so dire se lo può fare, ma se già non può, è inutile andare a "rompere" il tuo network admin. ---------------------------------------- ================================================================================ Cambiare programaticamente le dimensini di un grafico ================================================================================ AUTORE: 384 DATA :02/08/2006 - 23:52:52 ---------------------------------------- Ciao ragazzi. Ho un vi con diversi grafici (XY Graph). Dato il numero, devono essere relativamente piccoli per starci nella schermata. Non posso separarli in più "pagine" per ridurne il numero ed aumentare le dimensioni perchè serve vederli tutti per un'analisi comparativa dei dati. Soltanto occasionalmente serve gardare in dettaglio. Per farlo, mi è venuto in mente di fare uno "zoom" sul grafico prescelto dal click del mouse e ripristinarlo quando non serve più. Per variarne le dimensioni, ho trovato la proprietà "PlotArea.Size", ma questa è relativa all'area "interna" dove effettivamente c'è il grafico. Dato che la scala Y è automatica (e mi serve cosí), quando faccio lo zoom la dimensione effettiva del grafico (quella esterna) varia a seconda della scala - che non si sa mai quanto è - perchè essa va a "sommarsi" alla "PlotArea". Per quanto operativamente non sia un grosso problema, esteticamente fa abbastanza pietà. Le proprietà "Bounds", sono solo in lettura, quindi non si possono toccare. C'è un modo di imporre la dimensione esterna? ---------------------------------------- AUTORE: 927 DATA :03/08/2006 - 13:07:46 ---------------------------------------- Effettivamente non trovo il modo... Ma ti posso suggerire come raggirare il problema: crea sia una versione piccola che una grande di ogni grafico, poi le fai apparire/sparire a seconda dei casi con la proprietà Visible! ---------------------------------------- AUTORE: 384 DATA :03/08/2006 - 13:38:51 ---------------------------------------- Grazie dell'idea! Il "trucchetto" non è male!!! Quindi si conferma che non si può! ILVG STAFF: Devo riperterlo nella lista dei desideri oppure basta qui? ---------------------------------------- AUTORE: 129 DATA :03/08/2006 - 15:09:12 ---------------------------------------- Potrebbe essere veramente un bel trucchetto, ma secondo me la prima pista del plotareasize potresti utilizzarla, e per quanto riguarda i valori in caso di autoscale, potresti ottimizarli facendoti delle scale prefissate. ---------------------------------------- AUTORE: 129 DATA :03/08/2006 - 16:04:25 ---------------------------------------- C'era, qualcosa che mi veniva in mente, e cercando un pò mi sono ricordato di questo [url=http://www.ilvg.it/forum/viewtopic.php?t=626&highlight=tab:2pbtxkft]topic[/url:2pbtxkft] in cui si parla di forzare le property di ridimensionamento (Grazie Apollon)...MAI dire MAI... \":wink:\" Ti allego il vi che dovrebbe fare al caso tuo. ---------------------------------------- AUTORE: 384 DATA :03/08/2006 - 16:52:07 ---------------------------------------- [quote="nicola":wh7y1atw]Potrebbe essere veramente un bel trucchetto, ma secondo me la prima pista del plotareasize potresti utilizzarla, e per quanto riguarda i valori in caso di autoscale, potresti ottimizarli facendoti delle scale prefissate.[/quote:wh7y1atw] É anche vero, ma in pratica perderei il vantaggio dell'autoscale. Comunque grazie del suggerimento. ---------------------------------------- AUTORE: 129 DATA :03/08/2006 - 22:19:22 ---------------------------------------- Se guardi però l'ultimo esempio non hai più necessità di bloccare l'autoscale, perchè agisce sull'esterno. ---------------------------------------- AUTORE: 384 DATA :04/08/2006 - 10:47:16 ---------------------------------------- Quando ho quotato Nicola, non c'era il post con l'esempio... \":?\" Oppure sono io già mezzo andato \":roll:\" e non l'ho visto \":oops:\" . Comunque, questo esempio è fatto (bene) per tutti i tipi di controlli, usando la proprietà più adatta a seconda del caso. Per i grafici usa la proprietà "PlotArea.Size", la stessa che ho usato io e quindi avrà gli stessi problemi. Non credo che accedervi da un property node "diretto" oppure da uno con in ingresso un reference cambi il comportamento. Ad ogni modo, il sugerimento di gestire meglio la formatazione della scala è sicuramente valido e può risolvere il problema. Non ultimo, il truchetto di usare un grafico "grande e fisso" da rendere visibile all'ocorrenza può essere efficace - per quanto a molti di noi possa sembrare "meno elegante" dal punto di vista di programazione. Grazie a tutti per l'ottima discussione. G. ---------------------------------------- AUTORE: 2659 DATA :25/06/2009 - 10:32:47 ---------------------------------------- nell'esempio manca l' Item...manca il subVI.. ---------------------------------------- ================================================================================ Remote fireware camera ================================================================================ AUTORE: 873 DATA :03/08/2006 - 09:38:12 ---------------------------------------- Salve a tutti!!! Qualcuno sa se e' possibile visualizzare e controllare una camera firewire fisicamente connessa ad un altro PC collegato in rete??Non riesco ad uscirne con gli help....con vision assistant sembra possa essere possibile inserire l IP del PC remoto a cui collegarsi....ma ogni volta la psw dice essere errata....ma che psw vuole? tutti i pc fanno parte di una rete aziendale e l'accesso avviene con ID+psw quindi non saprei cosa metterci in quel campo.....in MAX la camera e' configurata ok (nell host) ma non ho verso di vederla dall'altra parte, neppure inserendo l IP corretto dell'host. su alcuni help parlano che bisogna avere labview real-time...non ne vedo la necessita visto che la camera e' firewire....qualcuno ha esperienza a riguardo?? Grazieeee ffogs ---------------------------------------- ================================================================================ NI...e poi ================================================================================ AUTORE: 847 DATA :03/08/2006 - 10:26:33 ---------------------------------------- Scusate la domanda ma non son risucito a rispondermi con chiarezza nei vari punti.qualcuno sa spiegarmi velocemente ma in modo chiaro l'utilità dei vari programmini: -NI DAQmx -Traditional NI-DAQ - NI Visa - NI-IMAQ - NI-Motion - NI-SWITCH -NI-Scope -NI-FGEN -NI-HSDIO -NI-CAN -NI-DNET Grazie Ciao ---------------------------------------- AUTORE: 129 DATA :03/08/2006 - 11:02:14 ---------------------------------------- Il mio consiglio è quello di leggere le pagine di presentazione dei nomi menzionati: Puoi andare su [url=http://www.ni.com:2xh975kh]ni.com[/url:2xh975kh]e in alto a destra nella casella di ricerca scrivere il software di cui vuoi sapere info. Non li conosco tutti, ma in genere si tratta di driver per il funzionamento di HW specifico NI. [b:2xh975kh]Daq-MX e Traditional Daq[/b:2xh975kh], è l'insieme dei driver e dei tool che permettono di utilizzare le schede di acquisizione DAQ della NI; unica differenza tra i due è che il DAQ-MX è di nuova concezione e pertanto bisogna valutare che le schede più anzianotte funzionano con i Traditional esclusivamente e viceversa alcune schede nuove funzionano solo con MX. [b:2xh975kh]NI-VISA[/b:2xh975kh] , permette la comunicazione con strumentazione seguendo lo standard VISA (Virtual Instrument Software Architecture ) supporta le interfacce: GPIB, VXI, PXI, serial (RS232/485), Ethernet, USB e/o IEEE 1394. Alternative a VISA può essere la IVI foundation standard. [b:2xh975kh]NI-IMAQ [/b:2xh975kh] E' un toolkit o meglio un addon, che contiene sia i driver che gli strumenti e le funzioni per realizzare sistemi di visione, supporta sia HW NI che altri, nelle ultime versioni sono supportate anche le videocamere USB. Il vison Assistant, completa questo add on forneno un potente wizard per la realizzazione di potenti sistemi di VISION. [b:2xh975kh]NI-MOTION[/b:2xh975kh] Analogamente al IMAQ è un addon che però viene dedicato a sistemi di controllo assi e di movimento in genere (MOTION appunto). [b:2xh975kh]NI-SWITCH[/b:2xh975kh] invece è un software per facilizzare la gestione dei contatti in sistemi switch complessi (es. matrici ecc.) [b:2xh975kh]NI-CAN[/b:2xh975kh] si incarica della comunicazione con interfacce CAN-OPEN Ciao e buona ricerca, Nicola ---------------------------------------- ================================================================================ Passaggio da control di LabVIEW a cella di Exel ================================================================================ AUTORE: 1377 DATA :03/08/2006 - 15:36:48 ---------------------------------------- Ciao a tutti. Avrei bisogno di un aiuto per fare la seguente cosa. Vorrei spostare automaticamente il contenuto di un controllo di LabVIEW in una particolare cella di un file Exel. Premetto che mediante i blocchi Exel tool riesco ad aprire il file di Exel selezionato mediante una path. Una volta aperto vorrei, per esempio, che nella cella A5 ci sia la riga che ho scritto in labVIEW. Allego il VI che vorrei utilizzare. Aspetto con ansia il vostro aiuto. Grazie ---------------------------------------- AUTORE: 1030 DATA :04/08/2006 - 10:17:09 ---------------------------------------- Ciao ho cercato di aprire i tuoi VI ma non posso aprirli con LV 7.1 Visto che potrebbero essere in tanti a non avere ancora LV 8 ti chiedo di allegarli salvandoli tramite l'opzione "Save for previous" (che raggiungi dal menù "save with options") in modo da renderli visualizzabili anche con la versione LV 7.1. Grazie ---------------------------------------- AUTORE: 1377 DATA :04/08/2006 - 12:15:57 ---------------------------------------- Ho risolto il problema da solo. Allego il VI che ho usato, salvato per LV 7.1 e l´immagine del block diagram per coloro che non riescono ad aprire il VI.IL VI allegato al messaggio precedente era stato giá salvato per LV 7.1. Non so perchè non siete riusciti ad aprirlo. ---------------------------------------- AUTORE: 1030 DATA :04/08/2006 - 13:23:27 ---------------------------------------- Non riuscivo ad aprire il vecchio file "To exel.vi" ed infatti continua a darmi errore! Boh! Comunque poco male visto che hai già risolto! Alla prox ciao ciao ---------------------------------------- ================================================================================ Coordinate polari ================================================================================ AUTORE: 129 DATA :04/08/2006 - 09:38:27 ---------------------------------------- Devo fare un programmino di isura video, devo calcolare le coordinate polari (o cartesiane) per calcolare distanza e angolo di un punto rispetto ad un altro. Essendo la finestra trasparente, posso utilizzare questo vi sopra una foto, e muovendo due punti, ne posso determinare distanza e angolo. Il problema è che mi sono un pò (tanto) imbrigliato nel trovare una relazione tra lo spostamento del mouse e le coordinate dell'oggetto che devo muovere (nel mio caso ho utilizzato un numeric per visualizzare anche la misura)... Qualcuno mi può dare ua mano per relazionare la posizione del mouse alla posizione dell'oggetto e calcolarne le coordinate? Grazie, Nic ---------------------------------------- AUTORE: 384 DATA :04/08/2006 - 11:06:57 ---------------------------------------- Ciao Nicola. Se fai il display dell'immagine in un controllo di tipo 'picture', hai la proprietà "mouse" che ti ritorna, tra altre cose, la posizione del mouse relativa all'origine del controllo, quindi, mappata sull'imagine stessa. Guarda "Modified Smith Plot with Zooming.vi" negli esempi (demos.llb). Second me è qualcosa di vicino a ciò che ti serve. G. ---------------------------------------- ================================================================================ data : Da stringa a numerico ================================================================================ AUTORE: 482 DATA :04/08/2006 - 11:13:35 ---------------------------------------- ...ma ciao! allora... Ho un indicatore numerico in formato "absolute time/data" in cui ignoro l'ora. Lo trasformo in stringa e lo salvo su un file. QUando riapro il file, come faccio a riportare questo valore stringa in un indicatore numerico? Probabilmente è una cazzata ma non riesco a trovare il modo \":cry:\" ---------------------------------------- AUTORE: 384 DATA :04/08/2006 - 12:03:31 ---------------------------------------- Se l'indicatore è numerico, lo è anche il valore che contiene e che tu ignori. É solo il "formato" che ti fa vedere il valore in "absolute time/date". Allora, rileggilo da file, riconvertilo in numerico con lo "scan from string" o "*** string to number" e fai il display formattato in "absolute time/data". O magari non ho capito bene il problema... ---------------------------------------- AUTORE: 482 DATA :04/08/2006 - 12:34:56 ---------------------------------------- eh si..non hai capito il problema... Ho trovato una soluzione sul sito della NI..ma mi turba il fatto che esista un dato di tipo Timestamp e non esistono operazioni per riconvertirlo direttamente. cmq...il mio problema è: ho una stringa fatta cosi': 04/08/2006 e devo metterla in un indicatore numerico che me la visualizzaerà nello stesso modo. ---------------------------------------- AUTORE: 384 DATA :04/08/2006 - 13:08:45 ---------------------------------------- Ecco, mi sembrava! \":oops:\" In LabView, l'ora e data sono rappresentati come il numero di secondi passati dalla mezzanotte del 1 Gennaio 1904 (lasciamo perdere le time zones). Con il tipo "timestamp" esiste un blocchetto di conversione da "numero" a "timestamp" nella subpallette dei convertitori numerici (prima riga tutto a destra). Poi, nella pallete "Time & Dialog"esistono le funzioni "Date/Time To Seconds" e "Seconds To Date/Time" che fanno la coversione fra il tipo "timestamp" e un cluster di numerici separati per anno, giorno, ecc, minuti e secondi. L'unica alternativa è ricuperare dalla stringa i valori separati con il "scan from string" e convertirli in timestamp con le suddette funzioni. Se proprio insisti nel avere il valore in secondi (vuoi proprio soffrire, eh! \":wink:\" ), allora un pò di sana aritmetica! \":cry:\" Una funzione che lo faccia direttamente di un colpo solo credo che effettivamente non ci sia. ---------------------------------------- AUTORE: 482 DATA :04/08/2006 - 13:39:58 ---------------------------------------- No no ma io ho detto che i secondi ecc ecc li ignoro proprio! \":wink:\" Cmq ecco qui a soluzione di NI...e tutt'ora mi sembra assurdo che non ci abbiano fatto un blocchetto invece che lasciarla cosi'.. ---------------------------------------- AUTORE: 384 DATA :04/08/2006 - 14:19:45 ---------------------------------------- Era proprio ad una funzione cosí che pensavo. Comunque sono d'accordo: anche a me sembra aasurdo che ci sia un tipo di dato e non ci siano delle funzioni per manipolarlo. . ---------------------------------------- ================================================================================ stampa block diagram ================================================================================ AUTORE: 1378 DATA :04/08/2006 - 15:26:36 ---------------------------------------- devo stampare il block diagram Ho provato ha trasformarlo in immagine con il vi che ho scaricato da questo sito ma mi da errore perche non c'è memoria sufficiente. il mio VI è di 2,28M. è troppo pesante? ---------------------------------------- AUTORE: 680 DATA :04/08/2006 - 15:45:22 ---------------------------------------- strano perchè io ho un vi da 3,06 Mb e mi crea il file jpg senza alcun errore..... ---------------------------------------- AUTORE: 680 DATA :04/08/2006 - 15:46:32 ---------------------------------------- l'errore, lo dà solo con quel vi o anche con altri? ---------------------------------------- AUTORE: 1378 DATA :04/08/2006 - 15:49:12 ---------------------------------------- per altri VI non mi da problemi. se vuoi ti invio il VI ---------------------------------------- AUTORE: 680 DATA :04/08/2006 - 16:59:55 ---------------------------------------- se riesci ad inviarmelo.... ---------------------------------------- AUTORE: 1378 DATA :07/08/2006 - 08:08:40 ---------------------------------------- HO PROVATO AD INVIARLO, MA è TROPPO PESANTE, GRAZIE LO STESSO. CIAO ---------------------------------------- ================================================================================ While loop Case Structure ================================================================================ AUTORE: 516 DATA :06/08/2006 - 17:25:26 ---------------------------------------- Ciao a tutti Ecco la mia domanda alla quale non riesco darmi una risposta e a risolvere il problema . Ho un case structure con all'interno un while loop dove ho messo un contatore ora per portare a true il case structure uso un toggle switch (dove all 'interno risiede il while loop) . La cosa "strana" è questa quando lancio la prima volta il subvi tutto è ok il contatore è a zero poi attivio il toggle switch e il contatore inizia il suo conteggio e fino a qui ok , ora se porto il toggle switch in posizione off il contatore continua a contare perchè ?????? e come posso fare per fermare il contatore quando il toggle switch è in posizione off ? devo per forza usare questa condizione Case structure e while loop Grazie Mille a tutti Ciao Sergio ---------------------------------------- AUTORE: 680 DATA :06/08/2006 - 18:39:57 ---------------------------------------- quando porti il tasto (toggle) in posizione off, devi terminare anche l'esecuzione del ciclo while... potresti utilizzare una variabile locale del tasto che ferma il ciclo while quando si porta in posizione di off.... se non hai capito, prova a postare il vi che ti dò un aiutino....... ---------------------------------------- AUTORE: 516 DATA :06/08/2006 - 19:23:49 ---------------------------------------- Ciao Ho provato a farlo usando una variabile (usando lo stesso tasto) ma non riesco a femarlo , mentre se metto un'altro tasto che apposito per il ciclo tutto ok funziona alla grande \":(\" Ciao Sergio ---------------------------------------- AUTORE: 516 DATA :06/08/2006 - 19:34:55 ---------------------------------------- Arghhhh!!!!!!! ho dimenticato di posarti il vi eccolo qui Ciao Sergio ---------------------------------------- AUTORE: 482 DATA :07/08/2006 - 07:26:59 ---------------------------------------- Ecco a te il il tuo VI corretto \":wink:\" ---------------------------------------- AUTORE: 516 DATA :07/08/2006 - 16:44:06 ---------------------------------------- Ciao GRAZIE MILLEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE Ciao Sergio ---------------------------------------- ================================================================================ Come visualizzare un vettore (fisico) su di un grafico ================================================================================ AUTORE: 1335 DATA :06/08/2006 - 23:51:34 ---------------------------------------- Ciao a tutti. Dunque, ho il seguente problema. Ho due torchimetri, uno messo in verticale e uno in orizzontale. I segnali in uscita mi danno le componenti verticale ed orizzontale di un vettore di forza. Ora, vorrei visualizzare su di un grafico questo vettore, in modo da poter visualizzare la sua direzione, e gli eventuali cambiamenti di direzione nel tempo. Ho provato con xygraph ma non va bene, funziona male. Avete idee sul come fare? Grazie a tutti di cuore! anche ad agosto ho bisogno del vostro indispensabile aiuto!! E. ---------------------------------------- AUTORE: 247 DATA :07/08/2006 - 08:23:55 ---------------------------------------- Ciao, [quote:y4rnkhi7]Ho provato con xygraph ma non va bene, funziona male. Avete idee sul come fare? [/quote:y4rnkhi7] Prova a postare il grafico xy con la visualizzazione che non ti va bene e soprattutto spiega che cosa vorresti ottenere graficamente, se restringessi il campo sarebbe più facile darti una mano! BYE. ---------------------------------------- AUTORE: 1137 DATA :10/08/2006 - 09:59:26 ---------------------------------------- potresti disegnare una retta dallo zero del grafico al punto (x,y) del tuo vettore. Se tieni in memoria il valore precedente potresti disegnare un'altra freccia dal punto (x,y) precedente al nuovo. Mi sembra piu' una cosa di grafica che di plot di funzioni. Potresti provare con le funzioni di "disegna retta". Il casino e' che nei disegni le coordinate partono da 0,0 in alto a sx e la y e' invertita, quindi devi fare qualche trasformazione di coordinate. fattibile. \":|\" ---------------------------------------- ================================================================================ Richiesta di conferma ================================================================================ AUTORE: 1378 DATA :07/08/2006 - 09:28:15 ---------------------------------------- Ho creato un programma di acquisizione dati all'iterno del quale vi è una struttura per l'impostazione delll'intervallo ddel tempo di acquisizione (continuo, 5 sec, 1 min,...). Tutto funzione bene trane i primi due cicli di assestamento che non rispettano la regla del programma. è normale o è necessario correggere il programma? Grazie, Fabio ---------------------------------------- AUTORE: 838 DATA :07/08/2006 - 10:29:50 ---------------------------------------- per me non è normale e dovresti rivedere bene il programma prova prima a definire i parametri e poi passare alla acquisizione magari con due cicli separati ---------------------------------------- ================================================================================ CP5512 e Labview ================================================================================ AUTORE: 1394 DATA :07/08/2006 - 11:36:00 ---------------------------------------- Salve a tutti, sono una new entry del gruppo (che mi sembra dinamico e preparato), la mia domanda riguarda la comunicazione tra PLC Siemens attraverso la scheda PCMCIA della Siemens la CP5512 e Labview. In particolare vorrei sapere se esiste la possibilita' di utilizzare la comunicazione OPC ed i datasoket di LV per leggere e scrivere dati tra PLC e LV. Qualcuno che ha gia' intrapreso questa strada, mi puo' dare qualche consiglio? ---------------------------------------- AUTORE: 838 DATA :07/08/2006 - 13:02:50 ---------------------------------------- prima di tutto devi configurare l'opc server della siemens poi puoi accedere come opc client o tramite i datasocket o tramite il modulo DSC della National, creando le tag ---------------------------------------- AUTORE: 1394 DATA :07/08/2006 - 13:08:19 ---------------------------------------- Mi potresti dare qualche suggerimento pratico per configurare l'OPC client tramite datasocket in Labview? Ho cercato anche sul sito della National, ma quello che ho trovato e' poco chiaro. L'OPC server e client possono anche essere installati sullo stesso PC? ---------------------------------------- AUTORE: 838 DATA :08/08/2006 - 07:16:36 ---------------------------------------- devono essere installati sullo stesso pc!! se hai due pc devi configurare un client che si collega al tuo client tramite rete, e poi quest'ultimo si collega al server residente sullo stesso pc io uso il DSC della nationa, ho fatto pochissimo usando direttamente i datasocket, non saprei come consigliarti qui nel forum dovresti trovare qualcosa ciao ---------------------------------------- ================================================================================ Creare un File di Help ================================================================================ AUTORE: 516 DATA :07/08/2006 - 21:44:42 ---------------------------------------- Ciao a tutti Sto finendo un programma e vorrei creare un file di help su come funziona che voi sappiate labview fornische qualche tool di sviluppo per creare help ? oppure posso usare qualsiasi tool , e poi per richiamarlo come posso fare ? per caso qualcuno ne ha già realizzati ? avete qualche suggerimento da darmi ? Grazie Mille Sergio ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 10:25:25 ---------------------------------------- Esiste una funzione (credo da LabVIEW 7.x ed successivi) che permette di controllare i file di help. Si chiama "Control Online Help " la trovi nella paletta sotto "Application Control>>Help" Ti riporto la sua descrizione: [quote:3g1k5x7c]Control Online Help Controls a compiled help file by displaying the table of contents, jumping to a specific topic in the file, or closing the help file. You can create a compiled help file and use this function to link from a VI to the help file. You also can use this function to display an HTML file in the default browser. [/quote:3g1k5x7c] Per creare il file devi usare un tool esterno. Ciao ---------------------------------------- AUTORE: 77 DATA :06/10/2006 - 13:02:25 ---------------------------------------- Ciao, io per la creazione del file di Help uso Shalom Help Maker. E' gratuito e facile (nonchè divertente) da usare. Per richiamare l'help dalla VI (o dall'eseguibile) uso una funzione chiamata "Call WinHelp.vi" contenuta in una LLB che ho scaricato liberamente dalla rete. Ciao, Stefano ---------------------------------------- AUTORE: 516 DATA :06/10/2006 - 13:38:20 ---------------------------------------- wow Grazie Mille , ne approfitto sai anche darmi l'indirizzo di dove si trova la dll ? Ciao Sergio ---------------------------------------- AUTORE: 129 DATA :06/10/2006 - 14:55:58 ---------------------------------------- Io utilizzo HelpScribble, ti permette di creare file help in formato windows 16 e 32 bit.. ---------------------------------------- AUTORE: 516 DATA :06/10/2006 - 17:09:04 ---------------------------------------- Grazie Mille a tutti Ora provo a scaricare i programmi Ciao Sergio ---------------------------------------- ================================================================================ Acquisizione dati ================================================================================ AUTORE: 1378 DATA :08/08/2006 - 15:31:52 ---------------------------------------- Ho creato un sistema di acquisizione dati per sensori 4-20 mA.il mio problema è che i canali che ho creato sono dedicati(ad ogni canale posso connettere un solo tipo di sensore). Ora vorrei rendere flessibile il mio programma in modo da poter connettere in ogni canale un sensore diverso(pressione, temperatura, portata) a seconda delle necessità di cantiere. è possibile creare in ogni canale di acquisizione un menù a tendina per dare all'operatore la possibilità di connettere sensor di diverso tipo? Grazie, Fabio Spero di essere stato sufficientemente chiaro. Purtroppo non posso inviasre il mio VI perche è troppo pesante. ---------------------------------------- AUTORE: 247 DATA :09/08/2006 - 12:09:14 ---------------------------------------- Ciao, ma cosa intendi per canali "dedicati"? Se tutti i sensori sono in corrente 4-20 mA questa corrente è la grandezza elettrica che acquisisci, il tipo di sensore che la produce è ininfluente quindi puoi intercambiare i sensori senza problema, connettori creati ad-hoc permettendo, grazie al software poi interpreterai il valore elettrico a seconda del sensore attaccato come pressione, temperatura..etc. BYE. ---------------------------------------- AUTORE: 1378 DATA :09/08/2006 - 13:49:58 ---------------------------------------- Forse non mi sono spiegato bene, comunque mi hai dato un'idea per risolvere il problema. Ti farò sapere, grazie ---------------------------------------- ================================================================================ Banalità: come si gestiscono gli errori in una stacked seque ================================================================================ AUTORE: 1168 DATA :09/08/2006 - 06:48:09 ---------------------------------------- Ovvero: devo aggiungere una sequence local per ogni frame per collegare il filo dell'errore e che poi uso nel frame dopo come ingresso del filo di errore dal frame precedente? C'e' un modo più furbo? sicuramente si, ma me lo dite? \":-)\" L'ideale sarebbe aggiungere qualcosa tipo un "shift register"... a destra il dato in uscita dal frame e a sinistra il dato in ingresso, che era l'uscita del frame precedente... Grazie in anticipo, P. ---------------------------------------- AUTORE: 4 DATA :09/08/2006 - 09:50:21 ---------------------------------------- [quote:2wjwewqj]Ovvero: devo aggiungere una sequence local per ogni frame per collegare il filo dell'errore e che poi uso nel frame dopo come ingresso del filo di errore dal frame precedente?[/quote:2wjwewqj] purtroppo il modo è quello che dici tu... oppure usa una variabile locale. Ciao, ---------------------------------------- AUTORE: 1168 DATA :09/08/2006 - 11:10:23 ---------------------------------------- Lo includiamo nella Wish list? \":)\" Che ne so, chiamiamolo sequence register! \":-)\" ---------------------------------------- ================================================================================ stesso pusante stop, 2 while loop ================================================================================ AUTORE: 595 DATA :09/08/2006 - 13:24:06 ---------------------------------------- intanto grazie in anticipo vorrei usare lo stesso pulsante di stop per due cicli while loop distinti nello stesso vi. Ho provato con la local variable ma non funziona, avete suggerimenti in merito? \":roll:\" ---------------------------------------- AUTORE: 247 DATA :09/08/2006 - 13:58:16 ---------------------------------------- Ciao, l'utilizzo della Local Variable funziona, prova a postare il tuo vi od uno screen del block diagram che la controllo, probabilmente non la utilizzi correttamente. BYE. ---------------------------------------- AUTORE: 595 DATA :09/08/2006 - 14:09:46 ---------------------------------------- scusa ma non ho capito, io creo una variabile sul controllo appare questo errore quando lo collego al secondo while loop. If a Boolean control has associated local variables, it cannot use latch mechanical action. The first local variable to read a Boolean control with latch action would reset its value to the default. ---------------------------------------- AUTORE: 680 DATA :09/08/2006 - 15:48:57 ---------------------------------------- perchè devi impostare il tasto come "switch when ..." per farlo devi: dal pannello frontale: tasto dx del mouse sul controllo "Mechanical Action" --> "Switch when released" ciao.. ---------------------------------------- AUTORE: 595 DATA :10/08/2006 - 08:50:33 ---------------------------------------- grazie funziona \":lol:\" ciao!! ---------------------------------------- AUTORE: 129 DATA :13/08/2006 - 10:45:18 ---------------------------------------- Le local e le global non funzionano con il meccanismo latch che viene impostato di default nei boolean. Si possono usare invece in tutti e tre i meccanismi switch. ---------------------------------------- ================================================================================ Comunicazione tra LabVIEW, Matlab e ControlDesk (dSPACE) ================================================================================ AUTORE: 1377 DATA :10/08/2006 - 08:03:48 ---------------------------------------- Ciao a tutti. Vorrei un aiuto per risolvere questi due problemi. Probabilmente è capitato a molti di voi di dover scambiare dati in tempo reale tra 2 programmi. Il primo problema è questo: ho creato un VI in cui c´e´un tasto (button) per avviare l´acquisizione dallo strumento. Io vorrei che l´acquisizione fosse avviata mediante comando in ControlDesk (per esempio mediante un tasto). E´possibile? Il secondo problema è questo: vorrei acquisire con LabVIEW alcuni valori numerici calcolati con Matlab.E´necessario che tali valori vengano acquisiti prima possibile (meglio ancora se nello stesso istante in cui vengono calcolati). Attendo con ansia qualche vostro consiglio. Grazie ---------------------------------------- ================================================================================ Problema ad aggiungere driver ================================================================================ AUTORE: 1168 DATA :10/08/2006 - 10:14:20 ---------------------------------------- Salve a tutti. Ho scaricato un driver per uno strumento dal link http://pspfeifer.de/Download/LV6/PR4000F.zip e lo estraggo nella cartella C:\Program Files\National Instruments\LabVIEW 8.0\instr.lib\PR4000 Il mio problema è che poi sulla palette ho un sacco di bei punti di domanda. E' dovuto al fatto che ho la versione 8.0, mentre il driver è stato sviluppato per la 7.1? spero di no.... Grazie mille in anticipo! \":P\" ---------------------------------------- AUTORE: 1168 DATA :10/08/2006 - 10:28:58 ---------------------------------------- Risolto, grazie! \":lol:\" ---------------------------------------- ================================================================================ Office generation toolkit ================================================================================ AUTORE: 1378 DATA :11/08/2006 - 10:02:35 ---------------------------------------- Ho un VI che funziona correttamente. Quando però vado a richiedere la generazio ne di un rapporto con office il programma subisce un drastico ralentamento e il file generato è di circa 4M. sepppur contenete pochi dati. Ho provato ha creare un subVI per la generazione d3l rapporto, ma il problema rimane identico. Qualcuno ha suggertimenti da darmi? ---------------------------------------- AUTORE: 482 DATA :11/08/2006 - 11:07:06 ---------------------------------------- In generale come toolkit è buono e comodo pero' non è il massimo della velocità, o ticrei qualcosa di tuo usando gli activex, oppure non so che dirti. Riguardo ai 4 Mb..per caso metti delle immagini nel report? ---------------------------------------- AUTORE: 1378 DATA :11/08/2006 - 12:11:16 ---------------------------------------- Non metto nessuna immagine nei report. Grazie per la tua risposta. Ciao ---------------------------------------- AUTORE: 1313 DATA :13/08/2006 - 09:06:39 ---------------------------------------- Non so cosa ti serve, ma con il blocco "write LabView Mesurement File" puoi generare un file che apri con excel. Io mi sono trovato benissimo. Cris ---------------------------------------- AUTORE: 1378 DATA :14/08/2006 - 15:18:45 ---------------------------------------- Stai parlando del file lvm? Hai ragione quello no mi da problemi. Ho voluto provare il report generation toolkit per creare qualcosa di migliore ma non ce l'ho fatta. ---------------------------------------- AUTORE: 1313 DATA :17/08/2006 - 00:57:38 ---------------------------------------- sisi, il file .lvm. Per me la potenza sta nel fatto che lo puoi aprire come file excel ---------------------------------------- ================================================================================ problema di lentezza con datasocket write ================================================================================ AUTORE: 822 DATA :11/08/2006 - 15:13:10 ---------------------------------------- ciao, ho fatto un VI che attraverso l'utilizzo di un opc server mi permette di comunicare in profibus con un plc siemens. quando gira solo in lettura (leggo con "datasocket read" i dati che il plc ha in memoria) gira velocemente, mentre quando lo avvio in lettura/scrittura è molto lento, credo di aver fatto un errore nella configurazione del datasocket write che mi pianta il sistema, c'è qualcosa che non và con le variabili variant... non le so utilizzare... e gli aiuti di labview non mi sono molto di.... aiuto. Vi allego il VI, dove sbaglio? ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 08:50:52 ---------------------------------------- Il problema potrebbe essere che, anche se non ricevi niente, comunque fai una DS write ogni 200ms scrivendo 00 (il tuo vaolore di default nel case). Potrebe essere un problema? In questo caso dovresti condizionare la scrittura ad una lettura avvenuta correttamente (non in timeout e con dati validi) Per i variant non vedo niente di sbagliato \";)\" Ciao, ---------------------------------------- AUTORE: 822 DATA :06/09/2006 - 12:53:49 ---------------------------------------- sì, potrebbe essere un problema.... ma non risolutivo. Spiego meglio il mio problema: Immagina di avere due funzioni una di read e l'altra di write e immagina di mandarne in run una per volta (esegui il comando una sola volta) su due byte differenti della DB del PLC. Quando esegui la funzione di read in circa mezzo secondo leggi la variabile. Quando esegui la funzione di write (una ed una sola volta, quindi al di fuori di un loop) passano circa 5 secondi prima che il dato arrivi sulla DB. E questo è strano.... Giuseppe ---------------------------------------- ================================================================================ Interazione led e controllo numerico ================================================================================ AUTORE: 1161 DATA :11/08/2006 - 15:31:00 ---------------------------------------- Sto facendo una picola prova. Sto utilizzando una slide, due led led1 e led2,e un numeric. Voglio che quando aumento il valore del numeric si accende il led 1 e quando non aumento piu cioè mi fermo si deve spegnere, mentre voglio che quando diminuisco il valore del numeric si accende il led2 e quando mi fermo si spegne. sto trovando difficolta nel spegnere il led avete un esempio da farmi grazie...... ---------------------------------------- AUTORE: 247 DATA :11/08/2006 - 16:06:50 ---------------------------------------- Ciao, potresti fare come nel'esempio che ti allego, semplice confronto tra valore attuale e precedente. BYE. ---------------------------------------- AUTORE: 1161 DATA :11/08/2006 - 16:17:45 ---------------------------------------- grazie..... ---------------------------------------- ================================================================================ Immagine ================================================================================ AUTORE: 516 DATA :11/08/2006 - 15:53:11 ---------------------------------------- Ciao a tutti devo inserire un'immagine all'interno di un vi, volevo utilizzare il controllo pict ring ma non riesco a capire come inserire l'immagine all'interno \":(\" . GRAZIE MILLE Sergio ---------------------------------------- AUTORE: 247 DATA :11/08/2006 - 16:11:59 ---------------------------------------- Ciao, metti l'immagine negli appunti di win, semplicemente aprila e fai copia, nel picture ring di LV scegli tasto destro import picture ed il gioco è fatto! Ovviamente import picture after l'aggiunge nel prossimo frame mentre import picture before la aggiunge prima del frame che stai visualizzando attualmente. BYE. ---------------------------------------- AUTORE: 516 DATA :11/08/2006 - 17:09:24 ---------------------------------------- GRAZIE MILLE Ciao Sergio ---------------------------------------- ================================================================================ Ethernet invio stringe ================================================================================ AUTORE: 238 DATA :12/08/2006 - 20:24:38 ---------------------------------------- Problema devo inviare delle stringe di comando attraverso una rete Ethernet (TCP/IP) ad un apparecchio. L’ apparecchio riesco a vederlo nelle “risorse di rete” del PC come ftp://SSP:1234@200.200.0.1/ dove SSP e il nome del apparecchio ; 1234 e la passwort di accesso all’apparecchio Qualcuno sa dirmi come si inviano delle stringe \":?:\" ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 08:45:42 ---------------------------------------- Se usi FTP puoi mandare solo dei file. Se vuoi usare tcp edevi conoscere, oltre l'IP, anche la porta su cui il tuo dispositivo aspetta l'arrivo delle stringhe. Ciao ---------------------------------------- AUTORE: 238 DATA :13/09/2006 - 10:41:27 ---------------------------------------- Ho risolto il tutto con i comandi UDP. Siccome la soluzione e diventata una cosa utilizzabile solo con quel determinato apparecchio (Omron CJ1W-ETN21) , non ho messo il VI nel forum ---------------------------------------- ================================================================================ Lettura dello stato dello strumento ================================================================================ AUTORE: 1377 DATA :14/08/2006 - 13:07:43 ---------------------------------------- Ciao a tutti. Avrei bisogno di un consiglio. Il mio strumento puó funzionare in modalitá master o slave. Vorrei creare una struttura case in cui la condizione discriminante sia la modalitá di funzionamento dello strumento. Ho bisogno di acquisire dallo strumento questa informazione. Sapreste aiutarmi? Grazie PS- ho pochissimo tempo.aiutatemi!!! ---------------------------------------- AUTORE: 247 DATA :14/08/2006 - 14:41:31 ---------------------------------------- Ciao, beh, descrivi almeno lo strumento che stai utilizzando e quale bus utilizzi per la comunicazione: dalla tua richiesta non si deduce nulla di utile per poterti aiutare... Ad occhio e croce si tratta di uno strumento di misura su GPIB...ma qualche informazione in più o conferma non farebbe male! \";-)\" BYE. ---------------------------------------- AUTORE: 1377 DATA :14/08/2006 - 14:50:39 ---------------------------------------- Chiedo scusa per non essere stato sufficientemente charo. Lo strumento è collegato al PC mediante cavo USB. Si tratta di analizzatore di precisione. Usando Visa interactive control non riesco a leggere qual´è la modalitá di funzionamento dello strumento. Forse dovrei usare un property node ma non l´ho mai usato e non sono assolutamente pratico.Che consiglio mi date? Grazie ---------------------------------------- ================================================================================ Gestione database in LabVIEW ================================================================================ AUTORE: 1378 DATA :14/08/2006 - 15:20:47 ---------------------------------------- è possbile attraverso labview creare un programma per gestione dei database? per capirci avrei bisogno di creare qualcosa di simile a access. ---------------------------------------- AUTORE: 247 DATA :14/08/2006 - 16:02:41 ---------------------------------------- Ciao, scarica questi due articoli dalla sezione [url=http://www.ilvg.it/index.php?option=com_content&task=blogcategory&id=0&Itemid=93:2181wdwb]"Articoli e Guide"[/url:2181wdwb] del sito, dovrebbero contenere le informazioni che cerchi: - Comunicazione tra LabVIEW e i Database - Database & LabVIEW BYE. ---------------------------------------- ================================================================================ programmazione di una scheda di acquisizione ================================================================================ AUTORE: 1384 DATA :14/08/2006 - 19:40:47 ---------------------------------------- Salve,sto programmando con una DT 9803.il pb è che non so come far per leggere insieme 6 signali analogici e acquisirli? grazie ---------------------------------------- AUTORE: 1313 DATA :15/08/2006 - 11:20:11 ---------------------------------------- ma sei già riuscito a leggere un canale solo?? ---------------------------------------- AUTORE: 1384 DATA :15/08/2006 - 13:32:05 ---------------------------------------- Si!!! utilizzando la libreria del DT9803 ---------------------------------------- AUTORE: 1313 DATA :17/08/2006 - 01:02:21 ---------------------------------------- allora potresti usare una stacked sequence in un while, e quindi leggere sei valori ad ogni iterazione del while. Come la vedi?? ---------------------------------------- ================================================================================ Comunicazione con scheda rs 485 ================================================================================ AUTORE: 1161 DATA :16/08/2006 - 15:36:57 ---------------------------------------- Voglio kiedere una cosa .... Io ho fatto un pikkolo programma con labview per muovere un motorino....prima di fare l eseguibile voglio kiedervi, come faccio a comunicare all esterno di questa scheda per far muovere il motorino... devo mettere un istruzione che ce in labview? un pacchetto o non so...spero che mi avete capito...potete aiutarmi perfavore? grazie.. ---------------------------------------- ================================================================================ domanda su "wait until next ms multiple" ================================================================================ AUTORE: 1168 DATA :16/08/2006 - 16:31:54 ---------------------------------------- Salve a tutti. Sto sviluppando un VI abbastanza semplice (credo) che si può schematizzare come una pompa che svuota un serbatoio. Sulla mia user interface, ho messo un interruttore che quando azionato chiama un subVI che gestisce il pompaggio. In pratica il subVI fa partire la pompa ed aspetta un segnale booleano che diventa alto quando il serbatoio è vuoto. A quel punto si ferma la pompa e si esce dal subVI. Nel subVI ho inserito un ciclo while che ogni 5 secondi controlla l'ingresso, e per la temporizzazione ho usato il blocchetto wait until next ms (Blocchetto d'ora in poi)... Il mio problema è che finchè non esco dal subVI l'interfaccia utente non viene aggiornata. il Blocchetto non rilascia le risorse un po' come fa il doevents del visual basic? Se no, come posso fare ad ovviare a questo problema? Grazie a tutti, Pio ---------------------------------------- AUTORE: 1168 DATA :16/08/2006 - 16:53:42 ---------------------------------------- Pensandoci mi sorgono altri dubbi.... visto che il refresh dell'interfaccia utente (250 ms), è velocissimo rispetto alla durata del subVI, non è che l'interfaccia cerca di lanciarmelo n-milioni di volte facedndo ripetere la sequenza di pompaggio un mucchio di volte? Rigrazie ---------------------------------------- AUTORE: 247 DATA :16/08/2006 - 16:54:30 ---------------------------------------- Ciao, il comportamento è corretto, l'esecuzione del VI principale è bloccata finchè il subVI chiamato non ha terminato la propria esecuzione. Puoi ovviare a quest'inconveniente caricando dinamicamente il subVI tramite il Vi-Server, oppure più semplicemente visto che il VI è semplice metti la gestione della pompa in un loop parallelo anzichè in un subVI e gestisci l'esecuzione del codice tramite case. BYE. ---------------------------------------- ================================================================================ scheda di comunicazione MOXA 118u ================================================================================ AUTORE: 1161 DATA :16/08/2006 - 20:11:27 ---------------------------------------- Salve gente...sono ankora io...sto utilizzando una scheda di comunicazione MOXA 118u....ma il mio programma fatto in labview non sta comunicando..ho fatto di tutto ma niente....ho messo invece la 485 e mi funziona potete spiegarmi il perkè? anche con un altro ti po di scheda non mi funziona si kiama "advanced", mi funziona solo con la 485... Perfavore rispondetemi sto impazzendo....(dite che è colpa di labview? cioè che non è configurato con altri tipi di schede?9 non lo so) grazie... ---------------------------------------- AUTORE: 1168 DATA :17/08/2006 - 14:26:44 ---------------------------------------- La scheda funziona con un altro programma? I drivers sono a posto? Io della MOXA uso delle multiseriali senza alcun problema... Ciaux Pio ---------------------------------------- AUTORE: 247 DATA :17/08/2006 - 14:29:15 ---------------------------------------- Ciao, [quote:ipxul3mj]...ho messo invece la 485 e mi funziona potete spiegarmi il perkè?[/quote:ipxul3mj] Ok che con la 485 funziona, ma prima con cosa eri collegato? BYE. ---------------------------------------- AUTORE: 1161 DATA :17/08/2006 - 15:26:45 ---------------------------------------- Anche io usa delle multiseriali...e non mi funziona...ma te la usi con il labview? si tutto apposto driver ecc.. prima usavo delle multiseriali 485.... CI Puo essere qualcosa che non la fa comunicare? Per esempio qualcosa di labview o non so? ---------------------------------------- AUTORE: 1168 DATA :17/08/2006 - 16:41:17 ---------------------------------------- mmmm... sai che mi sa essere proprio lo stesso prodotto? Io non ho avuto problemi di sorta, se non quello di metterci un ora ad installare i driver! Sembra che ti chieda di installarli 8 (seriali)+1 volte (scheda), ma servono tutte! Il MAX ti vede le porte? se provi a mandare una stringa al tuo strumento con hyperterminal, funziona? Ti ripeto, io non ho avuto alcun tipo di problema, ho installato la scheda ed ho iniziato ad usare COM5, COM7, COM10 tranquillamnete. Nel caso prova a reinstallare la scheda. Ciao P. ---------------------------------------- ================================================================================ VI nascosto nella barra delle applicazioni ================================================================================ AUTORE: 680 DATA :17/08/2006 - 11:18:05 ---------------------------------------- dovrei riuscire a far girare un vi (unico) con il pannello frontale visibile senza che compaia il nome nella barra delle applicazioni ciao.... ---------------------------------------- AUTORE: 384 DATA :18/08/2006 - 00:13:56 ---------------------------------------- Ahia... Non credo si possa fare!!! Il più simile che conosco sono le icone nel "application tray", ma non ho idea se da LabView si possa fare (non credo)... ---------------------------------------- ================================================================================ Problema di sincronizzazione, fieldpoint e aggiornamento UI ================================================================================ AUTORE: 1168 DATA :17/08/2006 - 17:28:08 ---------------------------------------- Salve a tutti. per prima cosa mi scuso per l'oggetto del post, ma non so come descrivere meglio il problema. Allora, vediamo se riesco a descrivere il problema: Ho un interfaccia utente che gestisce un fieldpoint con ingressi/uscite praticamente solo booleani. Il mainVI è strutturato con due cicli while in parallelo. Il primo while gestisce: - lettura periodica di alcuni strumenti tramite RS232 (ininfluente) - lettura degli ingressi e aggiornamento degli indicatori relativi - lettura delle uscite e aggiornamento dei controlli relativi tramite dei property node (value) Il secondo while gestisce: - stato dei controlli e relativa scrittura sulle uscite del cFP (funzionamento manuale) - vari case a seconda dello stato (funzionamento automatico). questi possono scrivere indipendentemente sulle uscite del cFP. I due while sono temporizzati con lo stesso tempo. PROBLEMA: nel funzionamento in manuale, quando clicco su un controllo lo stato sull'interfaccia cambia, ma quando il primo while va a leggere lo stato delle uscite del cFP, mi ri-modifica il controllo a video e lo stato alla fine non cambia. Questo accade il 90% delle volte. Cosa sbaglio? ---------------------------------------- AUTORE: 384 DATA :18/08/2006 - 00:11:43 ---------------------------------------- Dalla tua descrizione mi sembra di aver capito che sta usando i controlli anche come indicatori... Se è cosí, quello che succede è che il ciclo di lettura sovrascrive il tuo "click" (probabilmente attraverso una variabile) prima che il ciclo di scrittura abbia l'opportunitá di scriverlo sul FP. Prova in prima battuta a usare indicatori e controlli separati. Poi, se questo elimina il problema, devi trovare il modo di "sincronizzare" le due cose. Personalmente, quando è cosí, preferisco avere controlli ed indicatori separati. ---------------------------------------- ================================================================================ Help accensione led ================================================================================ AUTORE: 516 DATA :18/08/2006 - 11:16:59 ---------------------------------------- Ciao a tutti Ho bisogno del vostro AIUTO non riesco a capire perchè non riesco a far funzionare questo programma , in pratica (da come si vede) premendo su di un led devo spegnere quelli accesi ma non riesco a farlo funzionare non riesco a capire dove è l'errore \":(\" . Grazie Mille a tutti Sergio ---------------------------------------- AUTORE: 680 DATA :18/08/2006 - 11:59:25 ---------------------------------------- io ho risolto in questo modo (vedi allegato...) credo che il tuo metodo non funzionerà mai perchè quando premi un led, nel formula node ci sono 2 condizioni if vere e labview le esegue entrambe annullando il risultato! ciao... ---------------------------------------- AUTORE: 680 DATA :18/08/2006 - 12:09:39 ---------------------------------------- ah, scusa dimenticavo l'allegato... ---------------------------------------- AUTORE: 516 DATA :18/08/2006 - 13:13:49 ---------------------------------------- Ciao Grazie Mille per l'allegato , ora controllo nuovamente il mio non sono ancora riuscito a capire dov'è l'errore Sergio ---------------------------------------- ================================================================================ Event Structure ================================================================================ AUTORE: 516 DATA :18/08/2006 - 22:24:39 ---------------------------------------- Eccomi di nuovo qua \":D\" Nell'aiuto che ho chiesto prima mi è stato suggerito per risolverlo di usare un ' event structure e fino a qui nessun problema funziona alla grande vorrei chidervi se potete spiegarmi come funziona ho cercato in rete ma quello che ho trovato non mi ha chiarito di molto le idee , inoltre mi trovo con questo problema ho messo questo controllo all'interno di un case structure che abilito con una variabile locale diventando true , il problema è che non riesco più a portare questa variabile in false per uscire dal blocco case structure come devo fare ? Ciao e GRAZIE MILLE Sergio ---------------------------------------- AUTORE: 680 DATA :20/08/2006 - 10:36:33 ---------------------------------------- l'event structure è gia stato discussa più volte qui in forum, prova a fare una ricerca... e gurada qui: [url:11b66hwt]http://zone.ni.com/devzone/conceptd.nsf/webmain/e5f8474bda20c97786256b5a0066968b[/url:11b66hwt] per il problema della variabile globale, non ho ben capito... cmq riesci a postare il VI? ciao........ ---------------------------------------- AUTORE: 516 DATA :20/08/2006 - 13:48:29 ---------------------------------------- Ciao Grazie Mille per la risposta , ho dato un'occhiata al manuale e sono riuscito a realizzare quello che mi serviva , grazie 1000 ancora Ciao Sergio ---------------------------------------- ================================================================================ ACQUISIZIONE DATI ANALOGICI ================================================================================ AUTORE: 1419 DATA :20/08/2006 - 15:44:18 ---------------------------------------- Salve, mi sono iscritto a questo bel forum solo oggi, ho cerco qualcuno che possa aiutarmi a risolvere una mia problematica. Ho un'imbarcazione la cui strumentazione (contagiri, pressione olio, temperatura motore, voltometro, amperometro, indicatori livello liquidi, ecc.) sono di tipo analogico. Questi strumenti lavorano con variazione di tensione, in pratica gli indici si muovono a seconda della tensione applicata agli strumenti, essa varia in un range compreso tra 0V e 14V in corrente continua. Vorrei realizzare una scheda di conversione A/D ad otto ingressi per poter convertire i valori di tensione da analogico a digitale e quindi poter leggere gli stessi su una seriale RS232. Ringrazio sin d'ora chi vorrà essermi d'aiuto, claudio ---------------------------------------- AUTORE: 680 DATA :20/08/2006 - 20:43:34 ---------------------------------------- vuoi utilizzare hardware NI o crearti tu l'hardware (custom)... in tal caso, con quale risoluzione (n° di bit) e precisione vuoi che risulti la tua conversione A/D e conseguentemente la tua lettura? ---------------------------------------- AUTORE: 1419 DATA :20/08/2006 - 20:48:04 ---------------------------------------- Vorrei creare io un'hardware ad ok, per quanto riguarda la risoluzione basterebbe anche a 8bit o al max 16bit. ---------------------------------------- AUTORE: 1165 DATA :20/08/2006 - 22:33:06 ---------------------------------------- Provo a darti qualche informazione anche io, ma vedrai che questo argomento ti porterà molte risposte molto più dettagliate delle mie: se fossi in te valuterei bene la giusta domanda che ti ha fatto linux120. Sono due approcci filosofici completamente diversi al problema. Anzi io ci vedrei ben tre diversi approcci. 1) Hardware acquistato tutto: la National Istruments ha introdotto da tempo delle linee di prodotti per acquisizione dati veramente a buon mercato (almeno rispetto ai prezzi precedenti) che danno ottimi risultati e si interfacciano con facilità con Labview; ma anche altre case hanno sul mercato ottimi prodotti (spero che NI non mi iscriva sul libro nero!), spesso più economici e comunque buoni, ma non sottovalutare il vantaggio che ti da NI con l'assistenza, comunque sono scelte strategiche che devi fare tu. In ogni caso un range di tensioni come quello che hai detto tu (fino a 14V) richiede di valutare bene i prodotti, perchè spesso i range standard di ingresso sono tra 0 e +5V o +10V) e quindi devi condizionare analogicamente i tui segnali prima di acquisirli (in particolare potrai bufferizzarli con un opamp per disadattare le impedenze e ridurli con amplificazione a coefficiente minore di 1 2) Hardware assemblato da te, con stadio analogico di condizionamento, stadio digitale di conversione A/D e stadio di comunicazione con il PC (in genere via seriale o USB, ci sono degli integrati specifici che potrebbero fare al caso tuo) 3) Hardware assemblato da te, con stadio analogico di condizionamento seguito da un microprocessore (o meglio microcontrollore) che assomma in se le due funzioni di acquisizione e comunicazione e in più, grazie alla sua programmabilità, ti lascia la libertà di configurarti la tua scheda come vuoi tu, dandogli tutte le funzioni che più ti fanno comodo. Questa è la via che seguirei io se volessi divertirmi ed avessi un sacco di tempo da perdere, ma devi essere cosciente che ti richiede di imparare a programmare un micro, cosa non difficilissima, ma all'inizio non banale. Se proprio vuoi prendere questa strada ti informo che anche la NI ha messo in circolazione un suo sistema a microprocessore che si dvrebbe programmare in Labview, è costoso ma sembra interessante, cerca nel forum e troverai delle indicazioni in questo senso. Ultima nota: cercati tra le Application Note della NI una che riguarda il collegamento dei segnali analogici prima di essere acuisiti. Vi sono importanti considerazioni analogiche che potrebbero tornarti utili (scusa se non ti indico direttamente la App Note, ma me la dovrei ricercare da capo). Buon divertimento, enr. ---------------------------------------- AUTORE: 1165 DATA :20/08/2006 - 22:38:46 ---------------------------------------- Scusa mi ero dimenticato una cosa rapidissima: capisco che tu desideri una acquisizione di almeno 8 bit (corrispondenti alla precisione di una parte su 256, cioè circa due cifre e mezzo sul display), ma propio non capisco cosa tu te ne faccia di una precisione di 16 bit, corrispondente ad una precisione di una parte su 64.536, cioè di circa quattro cifre e mezzo, che ti richiederebbe da una parte un costo dei convertitori A/D o dei micro molto più alto e dall'altra una precisione ed accortezza di progettazione secondo me assolutamente esagerata rispetto al tuo problema. Spesso le precisioni ritenute sufficienti in campo industriale (salvo casi eccezionali) vanno dagli 8 bit ai 10 o 12 o 14. Nel tuo caso 10 bit, che corrispondono a circa tre cifre sul display, mi sembrano più che sufficienti. Di nuovo ciao, enr. ---------------------------------------- AUTORE: 1168 DATA :21/08/2006 - 06:55:17 ---------------------------------------- Altra alternatova: compri una demo board pe run microcontrollore e ti costruisci da te la poca elettronica che ti serve per condizionare il segnale prima dell'acquisizione. In questo modo hai già tutto l'hardware di comunicazione/conversione e devi solo metterci uno stadio per disaccoppiare gli strumenti col microcontrollore (Op-amp con guadagno minore di 1 come prima). La soluzione a microprocessore ti permette di aggiungere facilamente un display, magari 4x20, che ti permette di avere sott'occhio tutti i valori anche senza PC collegato. ---------------------------------------- AUTORE: 516 DATA :21/08/2006 - 08:06:52 ---------------------------------------- Ciao Se ti vuoi costruire l'hardware da te ti consiglio questo sito www.silabs.com vendono già delle demoboard che sono fantastiche con dei micro 8051 che all'oro inreno hanno già dei convertitori A/D D/A RS232 USB devi solo più adattarti i segnali esterni Ciao Sergio ---------------------------------------- AUTORE: 1419 DATA :21/08/2006 - 13:05:58 ---------------------------------------- Vi ringrazio tutti, purtroppo non sono molto ferrato in elettronica, a questo punto penso sia il caso di acquistare una scheda d'acquisizione bella e fatta e che non necessiti la programmazione di microprocessore. In pratica una scheda a cui collegare 8 ingressi analogici ( anche 0-5V o 0-10V) 8bit e che mi fornisca in uscita, sulla RS232 un pacchetto contenente i dati digitali relativi alle 8 misure. Sapreste indicarmi un prodotto da acquistare , non troppo costoso? Su quale sito posso effettuare l'acquisto on line? grazie ---------------------------------------- AUTORE: 129 DATA :21/08/2006 - 15:50:29 ---------------------------------------- Ti consiglio la 6008 di NI, che puoi trovare a circa 150€ qui: [url=http://sine.ni.com/nips/cds/view/p/lang/it/nid/14604:1tk71ugf]6008 USB[/url:1tk71ugf] ---------------------------------------- AUTORE: 1419 DATA :21/08/2006 - 16:25:23 ---------------------------------------- Grazie nicola, è una bella scheda, ma non fa al mio caso, mi serve che abbia l'uscita seriale RS232 e non USB e poi voglio spendere meno. Altri suggerimenti? P.S. Siete tutti splendidi \":)\" ---------------------------------------- AUTORE: 384 DATA :04/09/2006 - 12:45:46 ---------------------------------------- Ciao a tutti. Esistono dei sistemi modulari di acquisizione con communicazione seriale. Tra altri riferimenti, che posso condividere "in privato" con chi lo vorrá, c'è: http://www.measurementcomputing.com/index.html Anche loro hanno moduli seriali ma non particolarmente convenienti. Invece per i moduli USB i prezzi sono OK. Un'altro potenziale vantaggio da non sottovalutare è che questa azienda è stata acquisita da National Instruments, quindi il "canale diretto" c'è. Probabilmente è una manovra di NI per "entrare" nel mercato del HW a buon mercato. Saluti. ---------------------------------------- AUTORE: 645 DATA :04/09/2006 - 14:46:31 ---------------------------------------- Domandina: hai bisogno della seriale perchè non hai assolutamente la possibilità di avere porte USB sul sistema di elaborazione? Perchè se invece il problema è di programmazione non preoccuparti perchè acquisire da una seriale e da una USB (National) richiede + o - gli stessi blocchi LabView. ---------------------------------------- AUTORE: 129 DATA :04/09/2006 - 15:02:59 ---------------------------------------- Rivedendo il tuo post, mi sembra che non hai proprio necessità di un sistema di monitoraggio che funzioni sempre con il PC attaccato, forse ti serve un datalogger, che memorizzi i dati per poi elaborarli in seguito con il PC. Il problema della seriale/USB è relativo perchè in giro trovi convertitori di qualsiasi tipo per adattarli ai segnali USB/SERIALE.... Comunque ti propongo anche questo sito: [url=http://www.datataker.com/products/index.html:1x6xekyz]Datataker[/url:1x6xekyz] ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 15:58:54 ---------------------------------------- Io ho usato dei moduli di output digitale della ICP-DAS. Mi sono trovato bene, il protocollo è semplice (il mio era su 485 ma esiste anche la versione seriale) e i moduli sono molto obusti, veloci e costano poco (intorno ai 60€ per 16 output 200mA ciascuno) [urlhttp://www.icpdas.com/products/Remote_IO/i-7000/i-7000_introduction.htm]Questo è il link[/url] ai moduli I\O remoto. Ciao ---------------------------------------- ================================================================================ Percorso DLL ================================================================================ AUTORE: 1226 DATA :21/08/2006 - 10:49:05 ---------------------------------------- Ciao a tutti Vorrei creare un VI con un riferimento al percorso ad una dll impostabile. Mi spiego meglio, in una chiamata ad una dll occorre necessariamente impostare la dll usata impostandone il percorso. Se volessi farlo programmaticamente, per accedere a librerie simili ma in percorsi diversi? Qualcuno sa come fare? Grazie Ciao Fabio ---------------------------------------- AUTORE: 247 DATA :21/08/2006 - 12:46:37 ---------------------------------------- Ciao, mi sa che non ci si scappa di molto...ti consiglio di creare un subVI con case contenente nei vari "slot" le chiamate alle singole dll; se le dll sono intercambiabili ed hanno quindi stesse firme per le funzioni, puoi mantenere controlli ed indicatori del caso. Nel Vi chiamante poi selezioni la dll in base al controllo del case che hai portato fuori. BYE. P.S. altra strada percorribile soprattutto se hai già fatto i singoli VI sarebbe quella di inserirli in un VI polimorfico, sempre che il tuo pacchetto LV te lo consenta. ---------------------------------------- AUTORE: 1226 DATA :21/08/2006 - 13:05:27 ---------------------------------------- Grazie, a quanto capisco non è possibile inserire un campo di controllo tipo stringa per indicare la dll di chiamata. Ciao ---------------------------------------- ================================================================================ Ring constant Aggiornabile ================================================================================ AUTORE: 1168 DATA :21/08/2006 - 12:25:28 ---------------------------------------- Salve a tutti. Uso una ring constant per dare dei nomi ai canali di un fieldpoint, in modo che se leggo l'array con i valori degli ingressi/uscite di un modulo, posso facilmente estrarre i canali che mi servono. Mi piacerebbe che se ad un certo punto dello sviluppo del software, aggiungo il nome ad un canale che prima era libero, tutte gli stessi ring constant mi si aggiornassero. Lo so, non sarebbero più constanti, ma si può fare? Grazie P. ---------------------------------------- AUTORE: 247 DATA :21/08/2006 - 12:54:05 ---------------------------------------- Ciao, devi creare un controllo di tipo ring e poi tipizzarlo utilizzando Edit->Customize Control e successivamente scegliendo Type Def. dopo averlo riempito con i valori di tuo interesse. Nei tuoi VI poi inserisci il controlo appena creato, trasformandolo in costante dove necessario, e se è settata (default) l'opzione AutoUpdate, ogni copia del controllo utilizzata rispecchierà le moifiche che apporti al controllo che hai tipizzato in principio. Per maggiori info consulta il sito NI cercando Create Control Typedef o giù di lì! BYE. ---------------------------------------- AUTORE: 1168 DATA :21/08/2006 - 13:07:04 ---------------------------------------- E' che io non volevo creare un controllo... volevo una costante nel block diagram, senza riempire il front panel di controlli. Mi sa che non c'e' soluzione... \":-(\" Ciao e grazie. ---------------------------------------- AUTORE: 247 DATA :21/08/2006 - 14:40:28 ---------------------------------------- Ciao, [quote:26je8h2s] volevo una costante nel block diagram, senza riempire il front panel di controlli. [/quote:26je8h2s] non devi riempire il front panel con nessun controllo: piazzi una volta il controllo tipizzato, tasto dx e trasformi in costante, dopodichè lo usi quante volte vuoi nel BD copiandolo con ctrl+click sx+trascinamento oppure ctrl+C e ctrl+V, tutte le istanze costanti cmq fanno riferimento al controllo e si aggiornano sulla base dei cambiamenti di quest'ultimo. BYE. ---------------------------------------- ================================================================================ Evento in LV8 ================================================================================ AUTORE: 238 DATA :21/08/2006 - 16:27:20 ---------------------------------------- Devo aggiungere ad una struttura ad evento (LV8) un evento che viene scaturito dal cambiamento di un booleano che esce come risultato da un altro VI \":?:\" ---------------------------------------- AUTORE: 247 DATA :21/08/2006 - 19:20:52 ---------------------------------------- Ciao, [quote:f7osj6ln]un evento che viene scaturito dal cambiamento di un booleano che esce come risultato da un altro VI[/quote:f7osj6ln] cosa intendi con l'espressione "esce come risultato da un'altro VI"? Questo "altro VI" è in esecuzione parallela, oppure il VI è un subVI che termina la propria esecuzione e solo successivamente tu vai a controllare e nel caso a far scattare l'evento? BYE. ---------------------------------------- AUTORE: 238 DATA :22/08/2006 - 07:47:35 ---------------------------------------- Il VI (Sub_VI) si trova nel Time-Out della struttura ad evento Ciao ---------------------------------------- AUTORE: 247 DATA :22/08/2006 - 08:27:12 ---------------------------------------- Ciao, beh allora prima di entrare nella struttura ad eventi registri dinamicamente un'evento che per te corrisponderà al cambio di valore del booleano(Create user event e Register user event); alla chiusura del subVI ti fai restituire l'informazione sul booleano, se ha il valore che ti intressa fai scattare l'evento o meno con il solito case. BYE. ---------------------------------------- AUTORE: 238 DATA :22/08/2006 - 16:09:15 ---------------------------------------- Ok Grazie ; ho trovato un esempio sul sito NI http://sine.ni.com/apps/utf8/niepd_web_ ... 03BA7CCD71 ---------------------------------------- ================================================================================ loop e incrementi ================================================================================ AUTORE: 1164 DATA :21/08/2006 - 18:51:29 ---------------------------------------- Salve a tutti..ho due problemucci dati dall'inesperienza! se nel VI ho una stacked sequence structure con ad esempio 6 livelli è possibile inserire un comando per esempio al 6°livello che faccia riprendere l'esecuzione del programma dal 2° livello? Secondo problema: come posso fare per eseguire un incremento automatico di un numero inserito dal front panel...ad esempio...inserisco il numero di partenza "1" e il numero di arrivo "7"dal front panel. Con un incremento fisso di passo 1 mi voglio fermare quando dal numero di partenza sono arrivato a"7".Ho provato a farlo memorizzando ogni volta l'incremento in un file e sembrava funzionare ma ho avuto problemi con il loop che gestisce la scrittura e lettura del file. Grazie a tutti per l'attenzione. Ciao. ---------------------------------------- AUTORE: 247 DATA :21/08/2006 - 19:10:37 ---------------------------------------- Ciao, [quote:16qq2cip]se nel VI ho una stacked sequence structure con ad esempio 6 livelli è possibile inserire un comando per esempio al 6°livello che faccia riprendere l'esecuzione del programma dal 2° livello? [/quote:16qq2cip] No, a meno di non utilizzare un primo livello nel quale le istruzioni sono racchiuse in un case che abiliti o disabiliti con un valore setatto ad es. nel sesto livello precedente e passato alla successiva iterazione della struttura con uno shift register, var locale o altro. Personalmente se devi escludere "livelli" io trasformerei il tutto in una macchina a stati dove i livelli sono stati, in questo modo passi da uno stato all'altro con assoluta tranquillità...insomma io non utilizzerei una sequenza in casi di non-sequenzialità...\";-)\" [quote:16qq2cip]come posso fare per eseguire un incremento automatico di un numero inserito dal front panel...ad esempio...inserisco il numero di partenza "1" e il numero di arrivo "7"dal front panel. Con un incremento fisso di passo 1 mi voglio fermare quando dal numero di partenza sono arrivato a"7".Ho provato a farlo memorizzando ogni volta l'incremento in un file e sembrava funzionare ma ho avuto problemi con il loop che gestisce la scrittura e lettura del file. [/quote:16qq2cip] Argh! con un file??? Semplifica il tutto e vai ad incrementare il controllo sul front panel finchè è minore o uguale ad un secondo numero (7 nel caso): nel block diagram avrai quindi un ciclo while o for che esegue 7 volte, il controllo è in un case che ne impedisce l'aggiornamento quando l'indicatore dell'iterazione supera la tua soglia (7 nel caso, ricorda che i parte da 0!) BYE. P.S. Se non mi sono espresso benissimo rinfacciamelo pure che ti allego un'esempio \":D\" ! ---------------------------------------- AUTORE: 1164 DATA :22/08/2006 - 09:34:36 ---------------------------------------- Non mi è molto chiaro il concetto di macchina a stati anzichè a livelli! Sono abituato a programmare in c dove il programma è una sequenza con vari salti e adesso con Labview non mi trovo...non riesco a trasformare in "codice" il mio diagramma di flusso. Puoi mica darmi qualche dritta? Grazie... ciao. ---------------------------------------- AUTORE: 247 DATA :22/08/2006 - 10:32:47 ---------------------------------------- Ciao, la macchina a stati è un'architettura utilizzatissima anche per tradurre diagrammi di flusso: nella macchina a stati i tuoi blocchi si trasformano in stati che compiono operazioni e le condizioni di salto/scelta del prossimo blocco del diagramma diventano condizioni di scelta del/salto al prossimo stato da mandare in esecuzione della macchina. Prova a cercare esempi e info direttamente su questo forum, ne abbiamo parlato molte volte, se però non trovi nulla che ti soddisfi torna a chiedere consiglio! \";-)\" BYE. ---------------------------------------- AUTORE: 1164 DATA :24/08/2006 - 08:53:28 ---------------------------------------- Perfetto....ho adoperato la macchina a stati e funziona benissimo...ottimo consiglio! Ho però ancora il problema dell'incremento automatico...infatti voglio che il valore inserito dal front panel subisca un incremento, ma non deve incrementare il valore nel controller, in modo da vedere in ogni momento il valore di partenza. Grazie comunque mi avete già risolto un grosso problema...ciao ---------------------------------------- AUTORE: 129 DATA :24/08/2006 - 13:09:04 ---------------------------------------- Puoi utilizzare uno shift register, per crearlo devi fare dx sul bordo del ciclo while (quello più esterno della macchina a stati) ,create shift register, nel case in cui vuoi incremnentare (o esterno se devi incrementare ad ogni sequenza, inserisci un add, in cui un terminale va collegato allo shift out(sinistra) e l'altro terminale al tuo controllo di incremento, quindi l'uscita dell'operazione la colleghi allo shift in(destra). Praticamente lo shift register è quello che dovresti aver utilizzato già nel costruire la macchina a stati. ps: nel caso lo colleghi su uno dei case, tutto gli altri case, devono essere collegati semplicemente collegando il tunnel d'ingresso (il quadratino che ti si forma sul perimetro del case in cui hai fatto entrare il filo) e il tunnel di8 uscita che3 altrimenti è bianco e il run di esecuzione è spezzato). Ciao ---------------------------------------- AUTORE: 1164 DATA :25/08/2006 - 08:45:45 ---------------------------------------- Ok! Vi ringrazio. .....ottimo forum....Ciao. ---------------------------------------- ================================================================================ differenza tra bundle e build array e tra cluster e array ================================================================================ AUTORE: 1335 DATA :22/08/2006 - 11:38:31 ---------------------------------------- ciao a tutti. Grazie ancora per il supporto che date. Domanda velocissima: che differenza c'è tra bundle e build array? ---------------------------------------- AUTORE: 680 DATA :22/08/2006 - 12:07:42 ---------------------------------------- BUILD ARRAY: concatena array multipli o appende elementi ad un array n-dimensionale. BUNDLE: serve per assemblare i cluster. ps: evita di usare questi nomi per i post, il titolo dovrebbere sintetizzare problema... ---------------------------------------- AUTORE: 1335 DATA :22/08/2006 - 13:56:36 ---------------------------------------- grazie mille per l'aiuto. Hai ragione per il titolo, chiedo scusa. Ma ho ancora un dubbietto: tra cluster e array, la differenza qual'è di preciso? gli array hanno dimensiodi definite; un cluster può essere assimilato a un insieme di array differenti? ---------------------------------------- AUTORE: 680 DATA :22/08/2006 - 14:21:24 ---------------------------------------- ARRAY: gli array ragruppano elementi di dati dello stesso tipo. Un array consta di elementie dimensioni. Gli elementi sono i dati che costituiscono l'array. Una dimensione è la lunghezza, l'altezza o la profondità di un array. Un array può aver uno o più dimensioni e fino a (2^31)-1 elementi per dimensione, memoria permettendo. CLUSTER: i cluster raggruppano elementi di dati di tipo misto, come un fascio di fili di un cavo di linea telefonica, dove ogni filo nel cavo rappresenta un differente elemento del cluster. Un cluster è simile a un record o una struct dei linguaggi di programmazione testuale. Raggruppando elementi diversi tipi di dato in cluster si elimina il disordine di fili sullo schema a blocchi. Tratto da LabVIEW Corso Base I bye.... ---------------------------------------- AUTORE: 247 DATA :22/08/2006 - 19:07:43 ---------------------------------------- [size=200:30479xlc][b:30479xlc][quote:30479xlc]ps: evita di usare questi nomi per i post, il titolo dovrebbere sintetizzare problema...[/quote:30479xlc][/b:30479xlc][/size:30479xlc] ...Megaquote! Volevo solo ricordarvi di... \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" NON UTILIZZARE TITOLI FASULLI!!! \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" \":evil:\" BYE. P.S. Per chi non si capacitasse del mio flame, prima che lo cambiassi il titolo di questo post era \":(\" "domanda assolutamente niubba" \":(\" ...uno dei peggiori titoli che si siano mai visti... ---------------------------------------- AUTORE: 1335 DATA :22/08/2006 - 19:24:11 ---------------------------------------- chiedo immensamente scusa... \":(\" ---------------------------------------- AUTORE: 247 DATA :23/08/2006 - 08:14:32 ---------------------------------------- Ciao, scuse accettate ma che no si ripeta!!! \":D\" \":D\" \":D\" \":D\" BYE. ---------------------------------------- ================================================================================ Savataggio Impostazioni ================================================================================ AUTORE: 847 DATA :23/08/2006 - 08:27:56 ---------------------------------------- Ciao a tutti, io ho fatto uno strumento per leggere le tensioni,ho generato un exe per utilizzarlo, c'è un sistema per salvare le impostazioni utilizzate l'ultima volta che ho lanciato l'eseguibile? Intendo dire io uso lo strumento, imposto la scala con una manopola o con dei tastini on/off, quando avvio nuovamente l'eseguibile trovarmi le ultime impostazioni utilizzate. Grazie Ciao ---------------------------------------- AUTORE: 680 DATA :23/08/2006 - 08:58:46 ---------------------------------------- certo! potresti creare un file di configurazione... quando esci dal programma salva le impostazioni ed invece quando lo apri, carichi le impostazioni salvate.... bye... ---------------------------------------- AUTORE: 847 DATA :23/08/2006 - 09:13:10 ---------------------------------------- Grazie, scusa ma non sono tanto esperto di programmazione e LabView.. come faccio a far generare questo file di configurazione? ciao ---------------------------------------- AUTORE: 680 DATA :23/08/2006 - 18:14:42 ---------------------------------------- prova a vedere il vi che ti ho allegato.... ---------------------------------------- AUTORE: 847 DATA :24/08/2006 - 08:32:37 ---------------------------------------- Grazie per l'esempio molto chiaro.. ora provo.. Ciao ---------------------------------------- ================================================================================ Problema lentezza ciclo: troppe local variable? ================================================================================ AUTORE: 1335 DATA :23/08/2006 - 09:42:15 ---------------------------------------- ciao a tutti. ho scritto un programma che fa questo lavoro: 1) prende 128 campioni di 6 segnali campionati a 1024Hz: i primi 2 (provenienti da 2 torchimetri) sono quelli più importanti, gli altri 4 mi servono solo per fare dei plot 2) elabora un po' i segnali: i primi 2 li plotto in un xygraph e in un waveform chart, mentre gli altri 4 in una waveform chart 3) il tutto ripetuto 3 volte: per ogni volta, devo salvare i segnali di coppia. Ho il quindi seguente problema: devo effettuare come dettotre cicli quasi uguali, uno dietro l'altro. In pratica, premendo il bottone di start, parte il primo ciclo che fermo con un pulsante di stop. successivamente, ripremo start e fermo con stop per altre due volte. Nel primo ciclo collego direttamente tutto agli indicatori, mentre nei cicli successivi utilizzo per ogni indicatore una variabile locale. Il problema è che nel secondo e nel terzo ciclo, il plot è lentissimo, mentre nel primo tutto funziona come deve. Ho provato ad aumentare il tempo del temporizzatore ma niente, solo il primo ciclo funge bene. quale può essere il problema? i due segnali di coppia dovrebbero essere campionati almeno a 20 hz. c'è modo di poterlo fare, graficando anche i segnali in modo che risulti un po' più fluida la cosa? per chi fosse interessato, il file l'ho messo qui perchè era troppo grande (1,7 mega...): http://www.filefactory.com/file/832bf8/ utilizzo labview 6.1, la mia scheda di acquisizione è una pci1200 e campiona a 1024 secondi. ho cmq a disposizione labview 7.1 che però non posso utilizzre sul pc con la scheda di acquisizione perchè se no non me la legge. potete darmi una mano? p.s. spero il titolo vada bene \":)\" ---------------------------------------- AUTORE: 247 DATA :23/08/2006 - 12:49:06 ---------------------------------------- Ciao [quote:um47jvjd]prende 128 campioni di 6 segnali campionati a 1024Hz:[/quote:um47jvjd] ho guardato velocemente il tuo VI e ho visto che i 128 campioni li prendi singolarmente (AI Single Scan.vi), in questo modo la frequenza di campionamento che dichiari non è assolutamente ne garantita ne ipotizzabile...(se la freq. di campionamento fosse 1024 su 6 canali in parallelo, il tuo run di misura durerebbe solamente circa 125 ms, che mi sembrano pochi per misure su parametri "umani"). [quote:um47jvjd]Il problema è che nel secondo e nel terzo ciclo, il plot è lentissimo, mentre nel primo tutto funziona come deve. Ho provato ad aumentare il tempo del temporizzatore ma niente, solo il primo ciclo funge bene. quale può essere il problema? [/quote:um47jvjd] Se utilizzi le locali crei in memoria una copia dei dati visualizzati dall'indicatore, il problema secondo me, però non ho visto con pazienza il VI, risiede nel fatto che aggiorni continuamente gli indicatori riscrivendone il valore ed indicatore e variabile locale devono riallocare memoria tutte le volte che superano quella inizialmnte o precedentemente allocata. Il problema più grosso rispetto alle prestazioni secondo me sta nella prima osservazione che ti ho fatto, ti invito a ricontrollare la ferq. di campionamento perchè mi sa che stai sbagliando. BYE. P.S. Se ho tempo poi guardo meglio il tuo VI. ---------------------------------------- AUTORE: 1335 DATA :23/08/2006 - 13:49:11 ---------------------------------------- grazie per la risposta. Alla fine ho modificato il vi perchè sennò oggi mi pelavano, quindi come disse saggiamente un mio prof "l'ingegnere deve far funzionare le cose": mi sono ingengnato e ho modificato il vi in modo da utilizzre sempre lo stesso ciclo (quello funzionante) per tutti i tentativi. Ma per quanto riguarda la frequenza di campionamento, mi basta aumentare il numero di punti prelevati portandolo da 128 a 256, e aumqntare anche la frequenza di campionamento? 128 punti, secondo i miei calcoli, andavano bene perchè prelevo segnale emg, che ha una banda di 400 Hz (quindi, minimo erano 800 hz di frequenza di campionamento); ne prelevo 128, perchè in quel tempo ci sono 5 potenziali di azione in genere. ---------------------------------------- ================================================================================ Gestione avviso allarmi in automatico ================================================================================ AUTORE: 904 DATA :23/08/2006 - 10:47:27 ---------------------------------------- Saluti a tutti i lettori del forum \":)\" Per cortesia qualcuno saprebbe indicarmi come risolvere il seguente problema per la gestione automatica di controllo di soglie di allarme . Per il controllo del livello di una vasca ho impostato due soglie di allarme (valore > ......)che corrispondono a un riempimento medio e uno massimo . Al superamento della soglia di allarme 1 vorrei inviare un email di avviso idem al superamento della soglia di allarme 2 ..... Il problema è che non riesco a trovare un sistema che mandi un solo segnale di latch al superamento della soglia 1 e una sola volta al superamento della soglia 2 (vasca piena) . Qualcuno ha qualche idea da suggerire per gestire tale sistema ? In attesa di un vostro aiuto Ringrazio Anticipatamente Grazie e Saluti !!!! \":D\" PS La gestione dell'email l'ho completata ma ho bisogno di avere un segnale latch "automatico" per gestire il case true / false che da l'ok per l'invio dell'email ---------------------------------------- AUTORE: 247 DATA :23/08/2006 - 12:57:55 ---------------------------------------- Ciao devi inserire una seconda condizione alla scelta di invio mail, usa un booleano per andare o meno ad inviare la mail: praticamente quindi all'inizio il booleano è true rendendo attivo l'invio mail, la prima volta che hai l'allarme il booleano diventa false (si consuma) impossibilitando ulteriori invii. Per riattivare il tutto poi scegli la politica di azzeramento/reset del suddetto booleano. BYE. ---------------------------------------- AUTORE: 904 DATA :23/08/2006 - 13:23:38 ---------------------------------------- Grazie per le informazioni \":)\" ....... Saresti in grado di farmi un breve esempio della tua spiegazione ? Grazie molte Saluti ---------------------------------------- AUTORE: 247 DATA :23/08/2006 - 13:39:00 ---------------------------------------- Ciao, esempio brutale brutale. BYE. ---------------------------------------- AUTORE: 904 DATA :23/08/2006 - 13:48:57 ---------------------------------------- OPS ho perso l'allegato ...... \":cry:\" ...... Quello che mi hai spiegato vale anche per il reset in automatico ? Scusa per le domande ovvie .... Grazie Saluti \":)\" ---------------------------------------- AUTORE: 247 DATA :23/08/2006 - 13:53:07 ---------------------------------------- Ciao, si può valere per allarmi sia automatici che non. Ho rimosso l'allegato perchè ho modificato la scritta che appariva al momento dell'allarme...sai ogni tanto mi dimentico di mantenere un giusto contegno vista la mia posizione... \":o\" \":o\" \":D\" \":D\" \":D\" BYE. ---------------------------------------- AUTORE: 904 DATA :23/08/2006 - 14:02:11 ---------------------------------------- Molte grazie del supporto ora è tutto chiaro !!!! Ci sarei rimasto ancora un pò di ore a pensarci !!!! \":oops:\" Saluti \":D\" ---------------------------------------- ================================================================================ come disegno un itinerario marino? ================================================================================ AUTORE: 884 DATA :23/08/2006 - 12:51:56 ---------------------------------------- ciao a tutti, dovrei tracciare un itinerario, "marino" su di una cartina. Per il momento ci sto solo pensando, quindi mi piacerebbe avere aiuti di tipo "filosofico" piuttosto che implementativo. Posto che ho la cartina e che riesco a distinguere tra terra e mare, come faccio a disegnare un itinerario che 'segua' la costa proseguendo via mare? In altre parole se dovessi congiungere Roma a Pescara, con una linea retta passerei via terra e non deve succedere. Piuttosto dovrei tracciare una curva che scende fino allo stretto di Messina, lo attraversa e risale Ionio ed Adriatico. Diciamo che la problematica è come 'aggirare' efentuali coste in modo da mantenere la traccia sempre in acqua. Un esempio meno drastico potrebbe essere Roma Napoli, dovrei scendere sul tirreno costeggiando l'Italia. Ringrazio quanti leggono la richiesta ed ancor di più chi mi suggerisce un algoritmo (o anche un'idea da approfondire) ---------------------------------------- AUTORE: 247 DATA :23/08/2006 - 13:22:28 ---------------------------------------- Ciao, presumendo che nell'immagine la terra abbia colore marrone ed il mare blu (bastano colori distinguibili), filosoficamente potresti: - fissare gli assi sull'immagine. - determinare da che parte è la tua meta. - analizzare i punti intorno al tuo punto di partenza con la politica di sondare circonferenze, con centro punto di partenza, di raggi in pixel sempre maggiori finchè non trovi, analisi colore, il punto di mare più vicino.- - tracci una retta fino al punto sulla costa. - dal punto in mare, sempre tramite analisi dei punti vicini al punto in cui ti trovi con politica "a circonferenza", trovi il punto di mare che si trova nella direzione(ovviamente scan 360° scelta del punto più vicino con varie politiche) della tua meta e che abbia obbligatoriamente un punto di terra vicino, i punti rintracciati saranno quindi due. - scegli indifferentemente la prima volta di spostarti in uno dei due. - continui fino alla meta in mare (rintracciata come per la partenza), più vicina al tuo punto d'arrivo scegliendo sempre il punto di mare con vicino almeno uno di terra e non tornando mai indietro (escludi il punto in cui eri dalla ricerca del prossimo). - una volta calcolata la distanza percorsa (proporzionale al numero di punti), per ottimizzare il tutto rifai la simulazione di spostamento con la stessa tecnica ma scegliendo l'altro punto disponibile in partenza. - alla pine manrchi nel colore che vuoi i punti corrispondenti al percorso più corto. BYE. ---------------------------------------- AUTORE: 884 DATA :24/08/2006 - 17:39:37 ---------------------------------------- trovato metodo 'semplice'. costruisco un grafo associato alla mappa ed utilizzo l'algoritmo di Dijkstra! ---------------------------------------- ================================================================================ domanda sicuraente banale, creare un csv non numerico ================================================================================ AUTORE: 1427 DATA :24/08/2006 - 09:11:08 ---------------------------------------- So che questa domanda e' banale, ma nella mia inesperienza finora non ho trovato come fare ad arrivare alla soluzione. Io volevo creare un piccolo database su 3 colonne di un file di testo separati da virgola o da un tab e' indifferente che poi inserisco in una Multicolumn Listbox. Solo che sia i comandi Read and Write SpreadSheet File e quelli per measurement file manipolano numeri anziche' stringhe ed io mi trovo con una bella fila di zeri. Chi mi da una dritta? grazie mille ---------------------------------------- AUTORE: 1427 DATA :24/08/2006 - 09:25:08 ---------------------------------------- Aggiungo la second aparte della domanda, che mi e' restata nella tastiera. E' possibile poi inglobare il file di testo cosi' generato in una libreria llb? ---------------------------------------- AUTORE: 680 DATA :24/08/2006 - 09:25:14 ---------------------------------------- prova ad utilizzare la funzione "Array To Spreadsheet String"... la trovi su All functions --> String bye... ---------------------------------------- AUTORE: 645 DATA :24/08/2006 - 18:03:37 ---------------------------------------- Potresti (così al volo) scrivere i dati su un file di testo con i campi delle colonne separate da / anzichè spazi. Poi leggere il file riga per riga inserendo l'elemento analizzato nell'apposita casella della tabella che presenti su schermo. Ps: le domande non sono mai banali! ---------------------------------------- AUTORE: 1427 DATA :25/08/2006 - 16:34:37 ---------------------------------------- [quote="linux120":1m0p0ziy]prova ad utilizzare la funzione "Array To Spreadsheet String"... la trovi su All functions --> String bye...[/quote:1m0p0ziy] ringrazio tutti per la cortese attenzione e tu in particolare perche' era proprio il comando che cercavo e che non riuscivo a trovare! \":-)\" ---------------------------------------- ================================================================================ Report Excel ================================================================================ AUTORE: 238 DATA :25/08/2006 - 15:21:20 ---------------------------------------- Aiuto \":!:\" Ho un file Excel “Template.xls” che ha un solo worksheet e un altro file report “Pippo.xls” che ha piu worksheet. Devo inserire (copiare) come ultimo sheet il sheet del file “Template.xls” e crearmi poi il nuovo report su questo sheet. Non riesco ad inserire il Worksheet del template nel report “Pippo.xls” \":?:\" ---------------------------------------- AUTORE: 238 DATA :26/08/2006 - 19:36:00 ---------------------------------------- Mi rispondo \":wink:\" ---------------------------------------- AUTORE: 238 DATA :01/09/2006 - 08:03:43 ---------------------------------------- Eccovi la versione (CopySheet_Excel1_to_Excel2.vi) che ho creato per copiare un sheet da un foglio Excel ad un altro con le funzioni “Report” di LV. Se qualcuno ha un suggerimento per migliorare il VI … In “Execute_copySheet.vi” mostro l’utilizzo del VI. ---------------------------------------- ================================================================================ LabVIEW 8.2 e programmazione a Oggetti ================================================================================ AUTORE: 4 DATA :27/08/2006 - 19:51:12 ---------------------------------------- Con la nuova versione di LabVIEW 8.2 finalmente è possibile programmare ad oggetti in maniera nativa. Questo apre molte possibilità a noi sviluppatori e ci mette a disposizione tutte le caratteristiche vincenti della programmazione Object Oriented. Vi segnalo un [url=http://forums.lavag.org/index.php?showforum=68:2lhf7r7o]link[/url:2lhf7r7o] alle discussioni sul tema fatte sul forum di LAVA ---------------------------------------- AUTORE: 838 DATA :29/08/2006 - 14:36:29 ---------------------------------------- ora passerò anche io dalla 7.1 alla 8.2 il problema sarà il DSC del 7.1 e l'8.2, che non possono convivere sullo stesso SO mi toccherà partizionare il disco e fare un dual boot UFFFFFF ---------------------------------------- AUTORE: 15 DATA :25/09/2006 - 20:42:32 ---------------------------------------- Aaaaaaalleluia Alleluia Alleluiaaaaaaaaaaa Finalmente!! avevo un po' abbandonato labview anche per questo motivo. Non vedo l'ora di fare qualche prova sulla nuova versione, si può provarlo online, ma pare che il mio adsl non sia abbastanza. L'ultimo difetto rimane il fatto che labview è piuttosto chiuso e costoso. Ma offre anche dei grossi vantaggi. ---------------------------------------- AUTORE: 15 DATA :25/09/2006 - 21:47:31 ---------------------------------------- Aggiungo un utile link per capire qualcosa di più su labview e oggetti [url:367gst64]http://eyesonvis.blogspot.com/[/url:367gst64] Ciao ---------------------------------------- ================================================================================ programazione in LABview ================================================================================ AUTORE: 1384 DATA :28/08/2006 - 08:10:15 ---------------------------------------- Ciao a tutti. ho un problema che può sembrare banale. in effetti, vorrei saper com'è possibile eseguendo un VI passare all'esecuzione di un sub VI mediante un comando di controlo inserito nel VI principale. Et ritornare all'esecuzione del VI dopo il sub VI. Spero di essermi fatto capire. Grazie anticipatament. ---------------------------------------- AUTORE: 680 DATA :28/08/2006 - 08:44:53 ---------------------------------------- vediamo se ho capito bene.... prova a vedere questo esempio..... bye.. ---------------------------------------- AUTORE: 645 DATA :28/08/2006 - 10:01:06 ---------------------------------------- Nell'immagine allegata c'è la chiamata ad un subVI ch esegue una query su un database. L'idea è che tramite property node si effettua la chiamata, si manda in esecuzione il subVI (in questo caso il pannello frontale del subVI non viene reso visibile durante l'esecuzione ma tra le casistiche del property node ce n'è una che riguarda l'apertura del pannello frontale) e quando il vi è terminato si torna al VI principale. ---------------------------------------- ================================================================================ Array di Led ================================================================================ AUTORE: 516 DATA :28/08/2006 - 15:43:21 ---------------------------------------- Ciao a tutti Devo realizzare una corona composta da 96 led , ora volevo trattare questi led come se fossero un'array poichè mi risulterebbe molto più semplice gestirne l'accensione e lo spegnimento e inoltre sapere chi è acceso e chi no . come posso fare ? Grazie Mille a tutti Ciao Sergio ---------------------------------------- AUTORE: 645 DATA :28/08/2006 - 23:08:35 ---------------------------------------- Così come crei un array numerico inserendo un controllo numerico in un array così puoi creare un array di led inserendo un led in un array vuoto. Poi puoi gestire i vari led accedendo alle loro posizioni nell'array. Questo per quanto riguarda la questione di programmazione. Per la grafica puoi creare una linea di led estendendo il vettore ma una corona circolare non saprei. ---------------------------------------- AUTORE: 4 DATA :29/08/2006 - 08:26:00 ---------------------------------------- Purtroppo la forma circolare non si può fare, almeno io non saprei come, utilizzando un array. Puoi invece utilizzare un cluster di led che dovrai disporre in circolo... a mano. Poi li potrai gestire quasi come se fosse un array utilizzando le funzioni "Array to Cluster" e "Cluster to Array" Ciao ---------------------------------------- AUTORE: 516 DATA :29/08/2006 - 10:03:20 ---------------------------------------- GRAZIE MILLE A ENTRAMBI . Credo che inizierò a fare le prove con il cluster dopo le ferie \":D\" Ciao Sergio ---------------------------------------- ================================================================================ Più istanze dello stesso VI tramite template ================================================================================ AUTORE: 645 DATA :29/08/2006 - 10:47:19 ---------------------------------------- Ho preparato un VI principale che chiama un VI secondario. Questo VI secondario viene chiamato più volte, in pratica chiamo più istanze del VI secondario. Il primo problema consisteva nel riuscire a chiamare più volte lo stesso sotto VI anche se era già aperto. Ho risolto utilizzando i template (consiglio trovato su http://digital.ni.com/public.nsf/allkb/ ... 7400828d0e ). A questo punto ho due nuovi problemi: modificare la barra del titolo del sotto VI (utilizzando la strada dei template il nome del VI secondario viene modificato tutte le volte che viene mandato in esecuzione aggiungendo un numero progressivo al nome del VI stesso) per poter assegnare un nome interessante al VI e soprattutto vorrei evitare la finestra di richiesta salvataggio quando chiudo il VI secondario. Mi spiego meglio: quando termino il VI secondario appare la finestra di salvataggio dati (si riferisce al cambiamento di nome imposto dal fatto che essendo un template all'apertura viene aggiunto il numero progressivo alla fine del nome); vorrei che questa finestra non apparisse tanto non devo salvare nulla. È possibile impedire il salvataggio via programmazione nel block diagram? ---------------------------------------- AUTORE: 645 DATA :29/08/2006 - 10:49:19 ---------------------------------------- Alla prima domanda mi rispondo da solo: con i property node si può modificare il titolo del VI (vedi immagine allegata). ---------------------------------------- AUTORE: 645 DATA :29/08/2006 - 10:55:11 ---------------------------------------- Sempre io... in pratica alla chiusura del VI secondario devo impedire che esca la finestra di salvataggio (tanto non salvo niente) e fare altre operazioni (queste operazioni posso inserirle dopo la pressione del tasto STOP dato che il VI viene chiuso con tasto stop e non con la croce della barra della finestra). ---------------------------------------- AUTORE: 645 DATA :29/08/2006 - 12:52:24 ---------------------------------------- Su Lava ho trovato questo post http://forums.lavag.org/index.php?showtopic=2649&hl= ma non capisco come usare la struttura ad eventi visto che nel mio caso dopo la pressione del tasto stop esco dal ciclo principale. ---------------------------------------- AUTORE: 645 DATA :29/08/2006 - 13:13:24 ---------------------------------------- Allora, piccolo aggiornamento. Il mio problema è che l'evento "Panel Close?" viene intercettato quando si cerca di chiudere il VI con la X nella barra della finestra. Io invece voglio chiudere il VI con il tasto STOP. C'è un modo per "simulare" l'evento "pressione della X nella barra"? In questo modo potrei premere il tasto Stop e scatenare l'evento chiusura. ---------------------------------------- AUTORE: 645 DATA :01/09/2006 - 10:17:41 ---------------------------------------- Piccolo aggiornamento: con LabView 8 sono riuscito nel mio intento. Il VI secondario è settato come "reentrant" e tra le opzioni "Windows Appearance" ho barrato le caselle "Apri pannello frontale" e "Chiudi pannello frontale al termine". A questo punto il VI principale può chiamare il secondario quante volte vuole e sullo schermo ottengo diverse istanze del VI secondario. Ma il problemino è che normalmente io uso LabView 7.1.1: quando seleziono "reentrant" nelle opzioni del VI non posso più selezionare "Apri pannello frontale" e "Chiudi pannello frontale" perchè le relative caselle vengono disabilitate. Qualcuno sa dirmi se devo abilitare qualche altro comando o se invece si tratta di un limite di LabView 7.1.1 ? Attendo risposte anche dal servizio di supporto della National. ---------------------------------------- AUTORE: 645 DATA :01/09/2006 - 13:56:16 ---------------------------------------- La National mi ha risposto: il mio problema è una limitazione di LabView 7.x che è stata risolta in LabView 8.x . Però il progetto funziona. Lo allego a questo post: si tratta di un VI principale che richiama "n" istanze di un VI secondario. (VI preparati con LabView 8.0.1). ---------------------------------------- ================================================================================ Salvare dati in un file in continuo ================================================================================ AUTORE: 1427 DATA :29/08/2006 - 15:23:43 ---------------------------------------- Buongiorno a tutti torno a chiedere un vostro consiglio su come e' meglio pensare una subroutine. In pratica io mi trovo ad acquisire un segnale con una frequenza variabile che puo' andare dai 50Hz ad un punto ogni 3 minuti per tempi che possono essere anche abbastanza lunghi. Volevo evitare di tenere tutti i punti acquisiti in ram, sia per non satuare il buffer, sia per mettermi al riparo di possibili "spegnimenti" che causerebbero la perdita di tutto cio' acquisito fino ad ora. Quindi pensavo di salvare il punto acquisito aggiungengolo ad un file che pensavo struttura con qualche riga con i parametri della prova e poi via via i dati che si aggiungono i maniera sequenziale. Tale algoritmo deve essere pero' anche sufficientemente veloce per "star dietro" alle prove con una frequenza elevata. Quale puo' essere a vostro avviso l'approccio migliore per risolvere questo mio problema? Vi ringrazio ancora una volta per l'attenzione. ---------------------------------------- AUTORE: 1030 DATA :29/08/2006 - 16:27:18 ---------------------------------------- Ciao, provo a darti una mano: hai una frequenza variabile ma per non perdere punti devi comunque acquisire e salvare ad una frequenza almeno il doppio di quella massima. Se la massima freq è 50Hz salvare a 200 Hz può andare bene. A questo punto puoi salvare l'array dei dati utilizzando le normali funzioni di write che labVIEW ti mette a disposizione. Puoi dare un'occhiata anche agli Example di labVIEW! ciao ---------------------------------------- AUTORE: 247 DATA :29/08/2006 - 18:22:09 ---------------------------------------- Ciao, ricordati di mettere il salvataggio in un ciclo parallelo a quello di campionamento in modo da non pregiudicare assolutamente l'esattezza del secondo in caso di rallentamenti dovuti al primo. Se vuoi qualche consiglio su come passare dati tra i due loop in modo corretto leggi: [url=http://www.ilvg.it/index.php?option=com_content&task=blogcategory&id=0&Itemid=93:1y8o4j6l]Multithreading, Parallelismo, Meccanismi di Temporizzazione e Sincronizzazione in LabVIEW[/url:1y8o4j6l] che trovi tra gli articoli presenti nell'apposita sezione di questo forum. BYE. ---------------------------------------- AUTORE: 645 DATA :30/08/2006 - 08:51:36 ---------------------------------------- Se puoi permetterti di perdere (eventualmente, in caso di errore o spegnimento) qualche punto ogni tanto puoi salvare i dati ogni "tot" punti anzichè in continuazione. Senza dimenticare i cicli paralleli come suggerisce Apollon! ---------------------------------------- ================================================================================ da waveform a numerico. come fare? ================================================================================ AUTORE: 1434 DATA :30/08/2006 - 16:03:46 ---------------------------------------- Ciao! forse la domanda è stupida - sono un novellino! - : come posso fare a passre da un waveform al formato numerico? mi andrebbe bene sia come numeri singoli che come array... grazie! ---------------------------------------- AUTORE: 1030 DATA :30/08/2006 - 16:11:40 ---------------------------------------- Ciao puoi fare quello che ti seve attraverso la funzione "Get Waveform Components": è proprio il primo blocchettino nella sezione waveform della function pallet. Ciao Ciao ---------------------------------------- ================================================================================ Log Allarmi rientrati DSC ================================================================================ AUTORE: 1333 DATA :30/08/2006 - 17:16:04 ---------------------------------------- Ciao a tutti, avrei una domanda da porvi... sto realizzando un'applicazione che tra le varie cose deve registrare su un file l'entrata e l'uscita dallo stato di allarme di alcune variabili linkate via rete ad un server OPC. (Per poter controllare le variabili linkate via OPC ho installato labview dsc ver 8 ). Per la registrazione dell'entrata in allarme di una variabile non ho problemi, utilizzo il VI "Read Alarms.vi" facente parte della libreria del DSC il quale fornisce gli allarmi attivi nell'istante di lettura, Il mio problema è accorgermi e registrare su file l'uscita dallo stato di allarme della variabile...questa informazione non è data dal vi sopra citato in quanto l'allarme una volta rientrato viene considerato dal DSC una cosa "passata" e quindi viene messo nell' historical data. Il fatto è che il mio database con gli allarmi storici è parecchio grande e non posso pensare di andare a controllare ciclicamente l'informazione da li in quanto essendo molte informazioni richiede parecchie risorse del sistema e rischia di rallentare l'applicativo. Avete qualche idea su come ricavare l'informazione che mi serve senza passare dall'historical data del DSC? Non so se sono stato chiaro...spero di si Grazie ---------------------------------------- AUTORE: 4 DATA :06/09/2006 - 08:43:17 ---------------------------------------- Ciao e benvenuto! Puoi semplicemente inserire il vi Read Alarms.vi in un ciclo while e passare la sua uscita in uno shift register. Ad ogni ciclo poi valuterai lo stato attuale del Read Alarms.vi e quello precedente salvato nello shify register, comparando i due dai potrai controllare se c'èstata una transizione e quindi chiamare il tuo VI che esegue il log degli allarmi. Ciao ---------------------------------------- AUTORE: 1333 DATA :07/09/2006 - 09:08:22 ---------------------------------------- Grazie! E' proprio quello che ho fatto non trovando nessuna soluzione nativa del DSC per tale scopo. Grazie ancora ---------------------------------------- ================================================================================ Lettura dati da excel ================================================================================ AUTORE: 1319 DATA :01/09/2006 - 08:07:32 ---------------------------------------- Ciao ragazzi Ho un piccolo problema: dovrei graficare con il mio LV8 dati contenuti in un foglio di excel, ma non so come fare... Qualcuno sa darmi qualche suggerimento? \":oops:\" Magari con una spiegazione di come impostare il diagram block in questione... Spero non ci siano da usare gli ActiveX... Grazie mille ---------------------------------------- AUTORE: 1030 DATA :01/09/2006 - 08:24:45 ---------------------------------------- Ciao per estrarre i dati da un file .xls puoi utilizzare la funzione"Read from spreadsheat file". Non so come sia formattato il tuo file da leggere comunque facendo alcune prove dovresti riuscire ad ottenere i dati che ti servono. ciao ciao ---------------------------------------- AUTORE: 1319 DATA :01/09/2006 - 08:33:54 ---------------------------------------- Ciao Grazie per la dritta! Adesso provo a smanettarci sopra, ti farò sapere se tutto è filato liscio. A presto P.s.accidenti che velocità a rispondermi \":D\" ---------------------------------------- AUTORE: 1319 DATA :01/09/2006 - 16:51:13 ---------------------------------------- Ciao Il mio file excel contiene una colonna con tutti i dati di interesse. Guarda, ho provato ad utilizzare la funzione che dici, ma riscontro dei problemi: non riesco a fargli leggere i dati dal foglio di calcolo... Sai aiutarmi su come utilizzare quella funzione da te indicatami o semmai utilizzandone un'altra utile allo scopo? Grazie mille ---------------------------------------- AUTORE: 680 DATA :01/09/2006 - 17:40:30 ---------------------------------------- se il file è un binario creato da microsoft excel, mi sa che devi utilizzare per forza gli activex.. prova a guardare qui c'è un tool bello e pronto.... [url:fapljsuc]http://www.ilvg.it/forum/viewtopic.php?t=1886&highlight=excel+tool[/url:fapljsuc] bye... ---------------------------------------- ================================================================================ inserire cella di testo in array numerico ================================================================================ AUTORE: 1317 DATA :01/09/2006 - 14:39:16 ---------------------------------------- ciao a tutti.è possibile etichettare una colonna di dati in uscita da un oscilloscopio e salvata in un array con una cella iniziale in formato testo?grazie per l'aiuto ---------------------------------------- AUTORE: 247 DATA :01/09/2006 - 15:07:48 ---------------------------------------- Ciao, dipende dal tipo di dato che l'array può contenere nel tuo caso, ogni array infatti può contenere solamente dati tutti appartenenti allo stesso tipo, quindi se il tuo array è un array di stringhe puoi aggiungere nella prima cella un'etichetta, altrimenti se è numerico, come è probabile trattandosi di misure, l'aggiunta diviene impossibile. In parole povere se nel block diagram l'indicatore è rosa hai qualche speranza, se è di altri colori nessuna...\":D\" BYE. ---------------------------------------- AUTORE: 1030 DATA :01/09/2006 - 15:35:10 ---------------------------------------- ...altrimenti puoi utilizzare un cluster formato dall'array numerico dei tuoi dati e da una stringa con il relativo nome che vuoi dargli. ciao ---------------------------------------- AUTORE: 660 DATA :01/09/2006 - 16:02:03 ---------------------------------------- Altrimenti puoi usare un trucchetto, se e solo se DEVI per forza mantenere l'array numerico. Il trucco consiste nell'utilizzare il codice ascii dei caratteri componenti la stringa anzichè i caratteri stessi. Il problema della sua implementazione è che sei costretto a crearti un codificatore che prenda la tua stringa e te la trasformi in ascii ed il relativo decodificatore che in lettura ti restituisca la stringa originaria. Se hai bisogno da qualche parte dovrei aver messo un tale accrocchio e provo a cercartelo. Ciao ---------------------------------------- AUTORE: 129 DATA :01/09/2006 - 16:14:43 ---------------------------------------- Altrimenti puoi convertire in stringa i numerici ed elaborarli come stringa. Ti allego un esempio ---------------------------------------- ================================================================================ pulsanti e booleani ================================================================================ AUTORE: 1241 DATA :05/09/2006 - 17:38:23 ---------------------------------------- Ciao a tutti, purtroppo penso di avere un'altra domanda stupida stupida ma non so come risolvere il mio problema. un control booleano (un pulsante) mi attiva una soubroutine che si esegue in un certo tempo, quindi tale pulsante deve rimanere attivo durante questo tempo. Finita la soubroutine il pulsante deve disattivarsi, ovvero deve essere possibile riattivarlo, o meglio la disattivazione di tale pulsante permette il proseguo del programma. Come realizzare ciò? confido nel vostro aiuto ---------------------------------------- AUTORE: 247 DATA :05/09/2006 - 18:15:02 ---------------------------------------- Ciao, [quote:6v400dwy]mi attiva una soubroutine che si esegue in un certo tempo, quindi tale pulsante deve rimanere attivo durante questo tempo.[/quote:6v400dwy] non penso che sia questo il comportamento del tuo pulsante, il suo valore viene controllato solamente prima della chiamata alla sub, dopodichè se non hai realizzato codice particolare che lo vada ad interrogare di nuovo all'interno del codice della subroutine, il suo valore è del tutto ininfluente per la continuazione della stessa. [quote:6v400dwy]Finita la soubroutine il pulsante deve disattivarsi, ovvero deve essere possibile riattivarlo, o meglio la disattivazione di tale pulsante permette il proseguo del programma. [/quote:6v400dwy] Impostando il pulsante come Latch when Release (tasto dx sul controllo->Mechanical action->scegli Latch When Released) dovresti ottenere il comportamento che vuoi. BYE. ---------------------------------------- AUTORE: 1241 DATA :05/09/2006 - 18:27:06 ---------------------------------------- Ciao apollon, grazie per esser venuto in mio aiuto anche stavolta \":D\" il mio pulsante attiva una struttura true/false all'interno della quale c'è la soubroutine (che è una trasmissione su porta seriale \":)\" ) quindi il pulsantedeve rimanere attivo per tutto il tempo in cui avviene la trasmissione dei bytes. ho provato con latch when released ma è troppo rapido e non si completa la soubroutine. c'è un altro modo per ovviare al problema? ---------------------------------------- AUTORE: 247 DATA :05/09/2006 - 18:37:14 ---------------------------------------- Ciao, [quote:2jk9u0sw]quindi il pulsantedeve rimanere attivo per tutto il tempo in cui avviene la trasmissione dei bytes.[/quote:2jk9u0sw] No, il tuo pulsante autorizza solamente l'esecuzione del caso true della struttura case nella quale hai inserito la sub di trasmissione seriale, una volta entrati nel case il valore del tuo pulsante non è più importante fino al prossimo ciclo quando viene letto di nuovo. [quote:2jk9u0sw]c'è un altro modo per ovviare al problema?[/quote:2jk9u0sw] Devi completare la trasmissione seriale e solo poi uscire dalla subroutine(ovviamente metti anche un timeout che ti fa uscire comunque dalla sub dopo tot indipendentemente dal risultato della comunicazione.). Quindi pressione del pulsante->lettura del pulsante con azzeramento del suo valore->entri nel case (caso true o false a seconda dl valore del pulsante)->eventuale (caso true) trasmissione seriale iniziata e completata interamente dalla subroutine->prossimo ciclo e si ricomincia! BYE. ---------------------------------------- AUTORE: 1241 DATA :05/09/2006 - 19:31:04 ---------------------------------------- Ciao Apollon, come al solito mi sei stato di grande aiuto. Ho inserito la visa-write in una struttura error-no error e all'interno ho messo un contatore per dare il tempo di effettuare la scrittura. Così ho fatto per la visa-read e sulla porta com del bus della scheda madre funziona. Domani lo proverò sulla macchina che controllo tramite porta seriale. senti un altro piccolo problema: non riesco a mettere in primo piano controlli e indicatori su una decorazione (flat box in particolare) sai dirmi come si fa? Ciao e GRAZIE TANTE! ---------------------------------------- AUTORE: 247 DATA :06/09/2006 - 09:43:07 ---------------------------------------- Ciao, [quote:2roiw4kt]Ho inserito la visa-write in una struttura error-no error e all'interno ho messo un contatore per dare il tempo di effettuare la scrittura. Così ho fatto per la visa-read[/quote:2roiw4kt] e' un pò dura capire cosa hai fatto, non mi suona benissimo cmq: la scrittura(visa-write) non ha bisogno di attesa esplicita, il tempo necessario per scrivere sulla seriale in questo caso è già "compreso" nella funzione stessa, limitato dal timeout che imposti per la scrittura, piuttosto l'attesa è necessaria prima dell'operazione di lettura, cmq se vuoi sfruttare le risorse al massimo e sei in ambiente Windows, prova ad etilizzare gli eventi sulla seriale(lettura principalmente). [quote:2roiw4kt]senti un altro piccolo problema: non riesco a mettere in primo piano controlli e indicatori su una decorazione (flat box in particolare) sai dirmi come si fa? [/quote:2roiw4kt] Seleziona la decorazione ed utilizza Move to back o Move backward che trovi nel menù a tendina con le due frecce che si rincorrono, nella barra dove c'è il run etc. BYE. P.S. Posti il VI? ---------------------------------------- AUTORE: 1241 DATA :06/09/2006 - 17:11:08 ---------------------------------------- Ciao Apollon, scusa il ritardo. Ti invio il VI e te lo spiego: mando tramite porta seriale 5 comandi ad un inverter, cui corrispondono 3 operazioni di scrittura e di lettura della risposta dell'inverter. Per ogni comando bisogna inviare 8 bytes, ci sono delle soubroutine di calcolo dei bytes del CRC che se vuoi ti posso inviare. Fammi sapere cosa ne pensi grazie ancora ---------------------------------------- AUTORE: 247 DATA :07/09/2006 - 11:06:29 ---------------------------------------- Ciao, [quote:2x84uohf]Fammi sapere cosa ne pensi[/quote:2x84uohf] Bird View! Scelgo te! \":D\" \":D\" \":D\" Il tuo Vi è strutturato in modo piuttosto scorretto, ok, la risorsa seriale è una e quindi le operazioni sono obbligatoriamente sequenziali, ma per come lo hai impostato tu, corri grossi rischi di non avere la giusta correlazione tra ciò che chiedi tramite il pannello frontale ed il codice che viene eseguito, soprattutto a livello di tempistiche. Hai inoltre molti punti in cui duplichi codice già scritto, prova a strutturare il VI in modo da scrivere parti identiche di codice una sola volta e poi riutilizzarle. Errori che puoi facilmente correggere: - devi condizionare l'esecuzione delle wait prima o dopo le operazioni di write creando esplicitamente una dipendenza tra le due funzioni, per come hai utilizzato tu la wait, non puoi sapere se verrà eseguita prima o dopo la write. - togli la wait da 5 sec. che si trova fuori dal ciclo while principale in basso a dx del ciclo stesso, crea un'attesa iniziale di 5 sec. senza motivo (penso) (probablimente una dimenticanza). A occhio e croce io lo rifarei completamente, se funziona qualcosa tienilo da conto e tenta di riscriverlo alla luce dell'esperienza appena fatta. BYE. ---------------------------------------- AUTORE: 1241 DATA :08/09/2006 - 12:02:35 ---------------------------------------- Ciao Apollon, grazie per avermi controllato il VI e grazie per i tuoi consigli. Effettivamente le tue obiezioni hanno ragion d'essere ma il codice che ti ho inviato è l'unico che mi permette di ricevere una risposta dall'inverter, diciamo quindi che sono andato per tentativi. Ti spiego brevemente cosa sto facendo per la tesi: al politecnico di Bari c'è un banco di prova per una trasmissione CVT con dei sensori. Mio compito è realizzare l'azionamento del banco (motore elettrico elettrovalvole e freno) e acquisizione dati con un unico software realizzato in Labview. Insomma nel codice che ti ho inviato devo aggiungere gli input e output di una DAQ 6259. Spero di poterti ricontattare per quanto riguarda la DAQ. Ciao ---------------------------------------- ================================================================================ CPU AL MASSIMO E COMPUTER LENTISSIMO ================================================================================ AUTORE: 1440 DATA :06/09/2006 - 22:46:28 ---------------------------------------- Ciao a tutti,sono nuovo del forum. Io ho iniziato a usare labview in tesi. In questi anni ho fatto alcuni programmi di gestione degli strumenti del nostro laboratorio del dipartimento di fisica. Adesso abbiamo la versione 7.1. Il problema che mi si propone è che quando avvio un programma scritto con labview o anche un suo eseguibile la CPU schizza la 100% e il computer rallenta in maniera spaventosa, sia nel mio portatile che monta un Centrino 1.5 GHz che nel fisso che monta un Pentim 4 2.8 GHz e 1 Gb di RAM. Il fatto è che questo accade anche se il programma è semplicissimo. Esempio ciclo while con all'interno un Case azionato da un booleano, se si clicca il booleano si compie una somma altrimenti si riprende col ciclo while. Potete aiutarmi in merito? Grazie ---------------------------------------- AUTORE: 487 DATA :07/09/2006 - 07:21:40 ---------------------------------------- Ciao, da quello che hai scritto mi sorge un dubbio: il ciclo while l'hai temporizzato? Se così non fosse tutte le risorse del sistema vengono impiegate per ripetere il ciclo alla massima velocità possibile. ---------------------------------------- AUTORE: 1030 DATA :07/09/2006 - 08:03:12 ---------------------------------------- Ciao anch'io penso che il problema sia la non temporizzazione del ciclo while. Per un approfondimento sulle funzioni di "Wait" e "Wait until next ms Multiple" la cui differenza spesso non è chiara guarda questo link sul sito della NI: http://zone.ni.com/devzone/conceptd.nsf ... endocument ---------------------------------------- ================================================================================ Generare segnali con labview ================================================================================ AUTORE: 1441 DATA :07/09/2006 - 08:21:05 ---------------------------------------- Buongiorno a tutti.Premetto che inizio ad usare labview da oggi e quindi sono praticamente a zero come nozioni e competenze. Desideravo però rivolgermi a voi per sapere se è possibile (ovviamente penso di si) realizzare con labview un programma (si dice così) che possa generare in uscita dal PC dei segnali adatti a pilotare dei generatori di segnale per elettrostimolazione. Devo iniziare a lavorare in università su questo tipo di progetto e mi pare che in fase di acquisizione non ci siano particolari problemi. Disponiamo della scheda di acquisizione e utilizziamo Measurement&Automation. Qualcuno mi può dare delle informazioni? A breve potrò dire meglio le specifiche degli strumenti in nostro possesso (scheda ecc..) Grazie a tutti Paolo ---------------------------------------- AUTORE: 1030 DATA :07/09/2006 - 09:43:43 ---------------------------------------- Ciao e Benvenuto, realizzare un programma (o VI cioè Virtual Instrument) che generi in uscita segnali è possibile, devi naturalmente avere una scheda che te lo permetta è necessario sapere quindi di quale scheda disponi tu nello specifico. Per iniziare a lavorare sul tuo progetto e per prendere confidenza con LabVIEW ti consiglio di iniziare a leggere qualche manuale di programmazione LabVIEW in modo da avere un'idea sulle sue potenzialità. Dai un'occhiata a questi link del "Development Library" http://zone.ni.com/devzone/devzone.nsf/ ... 3f006e1d6d ---------------------------------------- AUTORE: 1441 DATA :07/09/2006 - 10:55:45 ---------------------------------------- al più presto cercherò di specificare il tipo di schede che abbiamo a disposizione. Inizierò a leggermi quel link che mi hai postato. Grazie ---------------------------------------- AUTORE: 1030 DATA :07/09/2006 - 13:32:00 ---------------------------------------- Ciao ricordavo che dal sito NI si poteva scaricare un manuale di Fondamenti LabVIEW ma quando ti ho risposto prima non avevo avuto tempo di cercarlo. Ora l'ho trovato;ti posto il link dal quale puoi scaricarlo.Per iniziare ad imparare la sintassi LabVIEW ti può essere utile: http://www.ni.com/pdf/manuals/374029a.pdf A presto ---------------------------------------- AUTORE: 645 DATA :07/09/2006 - 16:18:32 ---------------------------------------- Con LabView è possibile generare ed acquisire segnali elettrici. La parte hardware deve consentire queste operazioni: se hai a disposizione una scheda I/O puoi sfruttare i vecchi blocchi (Traditional DAQ) o i nuovi DAQ-mx per interagire con l'esterno. ---------------------------------------- AUTORE: 1441 DATA :08/09/2006 - 16:38:06 ---------------------------------------- Per fare quanto ho specificato disponiamo di: Dispositivo della NI BNC-2090 module assy con 16 dac input 2 dac output 1 extref 1 pf10 trig1 2 user e una DAQ card 6024E con 16 input 2 output 12 bit multifunction I\O Il software oltre a labview di cui disponiamo è NIDAQ7 VI LOGGER Grazie a chi mi può consigliare. ---------------------------------------- ================================================================================ Baco strutturale in Labview ================================================================================ AUTORE: 482 DATA :07/09/2006 - 09:42:36 ---------------------------------------- stavo seguendo una discussione sul LAVA forum e la cosa un po' mi sconvolge.. C'e' un baco che affligge anche l'ultima versione di LabVIEW che a mio parere non è accettabile...fa crollare tutte le certezze che dovrebbe dare un ambiente di sviluppo. Allego la riproduzione del baco. Notate come il while loop causa un errore che non ha senso, pur facendo i tre cicli la stessa identica cosa. Tutto cio' mi spaventa non poco...non mi sembra una struttura molto particolare da poter considerare un caso estremo..mi sembra abbastanza comune come operazione...(tralasciando il fatto che nel while loop non gli faccio fare niente) ---------------------------------------- AUTORE: 838 DATA :07/09/2006 - 17:08:25 ---------------------------------------- di bachi ce ne sono una marea, a volte ho spedito il codice al centro assistenza e hanno sempre fatto finta di niente non risolvendomi i problemi io ne h trovati almeno una ventina (e molti con il dsc) ---------------------------------------- AUTORE: 947 DATA :07/09/2006 - 20:51:35 ---------------------------------------- [quote:tgu7kp4r]C'e' un baco che affligge anche l'ultima versione di LabVIEW che a mio parere non è accettabile...fa crollare tutte le certezze che dovrebbe dare un ambiente di sviluppo.[/quote:tgu7kp4r] \":o\" A dir poco [color=red:tgu7kp4r]S C O N V O L G E N T E !!![/color:tgu7kp4r] \":o\" Guardatelo e..... meditate gente !!! E ki si fida più ??? ---------------------------------------- AUTORE: 4 DATA :13/09/2006 - 09:48:53 ---------------------------------------- molto brutto. [quote:1wphbnmr]Tutto cio' mi spaventa non poco...non mi sembra una struttura molto particolare da poter considerare un caso estremo..mi sembra abbastanza comune come operazione...(tralasciando il fatto che nel while loop non gli faccio fare niente)[/quote:1wphbnmr] il problema è proprio quello, il while non fà niente e LV non alloca altra memoria per i dati in uscita continuando ad usare l'area di memoria dei dai in ingresso (l'indicatore copia). Basta mettere un'operazione a caso sui dati in ingresso al while per eliminare il problema, basta anche solo spostare il +1 dentro il ciclo. Secondo me è proprio un problema di puntatori alle aree di memoria dati, se usate il tool "show buffer allocation" e fate qualche prova ve ne potrete rendere conto facilmente. Provate anche a fare girare il while due volte (exit if i=1) e guardate l'effetto, questo perchè il puntatore si è spostato di una quantità pari alla memoria occupata dall'indicatore "Prima riga +1", se infatti fate girare il while almeno 2 volte noterete che il problema sparisce. Resta il fatto che da vedere è veramente uno schifo e in effetti fà paura. Ciao ---------------------------------------- AUTORE: 838 DATA :13/09/2006 - 13:59:10 ---------------------------------------- bisogna imparare a girare intorno a tanti bachi, il problema è che saltano fuori sempre quando si è di corsa e dal cliente!!! \":(\" ---------------------------------------- ================================================================================ configurazione canali con data acquisition ================================================================================ AUTORE: 1439 DATA :07/09/2006 - 10:19:32 ---------------------------------------- salve qualcuno mi sa spiegare come faccio a configurare i canali per utilizzare le sub vi data acquisition? in attesa di una risposta vi porgo i miei saluti ---------------------------------------- AUTORE: 247 DATA :07/09/2006 - 11:16:10 ---------------------------------------- Ciao e benvenuto, per avere una risposta sensata alla tua domanda devi dare qualche informazione aggiuntiva: - tipo di scheda d'acquisizione. - versione di LabVIEW. - versione dei driver NI-DAQ. - sistema operativo. Lo so, sembrano tante informazioni ma sono tutte necessarie. \":D\" BYE. ---------------------------------------- AUTORE: 1030 DATA :07/09/2006 - 11:22:59 ---------------------------------------- ciao, se utilizzi Labview 7.0, o successivo, puoi configurare i canali attraverso il "DAQ Assistant". E' un Express VI che trovi nella Function Palette sotto Express/Input. Parte un wizard di configurazione appena posizioni il VI sul Block Diagram. ciao ciao ---------------------------------------- AUTORE: 1439 DATA :07/09/2006 - 15:50:55 ---------------------------------------- salve io uso una stazione di misura composta da: 3 schede di acquisizione NI PXI - 6123 1 scheda di acquisizione NI PXI - 6722 sitema operativo windows XP versione labview 8 il mio problema e il seguente: configurare i canali delle sub vi che si trovano nella palette Functions>>Data Acquisition>>Analog Input non voglio usare DAQ Assistent qualcuno può aiutarmi per favore? grazie ---------------------------------------- ================================================================================ problema tcp/ip ================================================================================ AUTORE: 884 DATA :07/09/2006 - 10:33:03 ---------------------------------------- salve ho fatto un'applicazione server che dovrebbe scrivere un pacchetto contenente 22 bytes a 100 Hz via TCP/IP Ho fatto un vi (veramente stupido) che legge 22 byte da TCP/IP e li butta (non li interpreta neppure). l'esecuzione locale mi dice che il client riceve sempre i pacchetti l'esecuzione remota (ovvero client su pc diverso da server) impiega almeno 200 ms a ricevere i dati. In dettaglio impiega 200 ms e dopo per un pò impiega 0. Io spiego la cosa pensando che il SO (sia WIN che PHARLAP) non 'consegna' i dati all'applicazione finchè non passano i 200 ms. Passati i 200 ms li consegna tutti. Quindi l'applicazione può leggere diverse volte 22 byte a tempo 0. Qualcuno ha idea del perchè??? Esiste qualche impostazione che dice a WINDOWS di leggere/scrivere i pacchetti senza bufferizzare? grazie a tutti, sopratutto a chi risponde... ---------------------------------------- AUTORE: 884 DATA :08/09/2006 - 08:14:59 ---------------------------------------- risolto: win bufferizza il TCP IP (come fa a capire se i messaggi sono arrivati? boh!) pharlap fortunatamente no! ---------------------------------------- AUTORE: 4 DATA :13/09/2006 - 09:31:24 ---------------------------------------- Esatto windows aspetta di avere il buffer pieno prima di trasmettere almeno con TCP, se può bastarti l'UDP non dovresti avere questo genere di problemi. Ciao ---------------------------------------- ================================================================================ Riavvio del sistema e Impostazione dell'ora ================================================================================ AUTORE: 927 DATA :07/09/2006 - 10:55:20 ---------------------------------------- Come si fa a generare un riavvio/spegnimento del sistema (Windows)? E a impostare l'orologio? Per quest'ultimo ho visto che funziona "RT Set Date and Time.vi" ma non mi piace tirare in ballo il modulo RT quando non c'entra niente... ---------------------------------------- AUTORE: 247 DATA :07/09/2006 - 11:28:29 ---------------------------------------- Ciao, per fare il restart esegui: shutdown -r -t 01 per spegnere: shutdown -r -s 01 E' un normale comando che puoi provare con il programma CMD oppure menu Start->Esegui. BYE. P.S. Login a parte! ---------------------------------------- AUTORE: 927 DATA :07/09/2006 - 11:37:30 ---------------------------------------- Qui (windows 2000) non riconosce il comando \":|\" ---------------------------------------- AUTORE: 13 DATA :07/09/2006 - 13:14:55 ---------------------------------------- Guarda se questo puo' esserti di aiuto. per il settaggio dell'ora ho fatto qualcosa in passato , fa uso delle api di windows, appena lo trovo te lo invio. saluti Peppe ---------------------------------------- AUTORE: 927 DATA :07/09/2006 - 13:45:42 ---------------------------------------- Grazie! Immaginavo di dovermi fare una DLL in C, mi hai risparmiato la fatica... Se trovi anche l'altro mi va grassa \":)\" ---------------------------------------- AUTORE: 487 DATA :07/09/2006 - 13:53:16 ---------------------------------------- Per quanto riguarda l'impostazione dell'orologio, se cerchi nel forum si è già parlato dell'argomento. Se non mi ricordo male, io il problema l'ho risolto con il comando "time hh:mm:ss" di windows. ---------------------------------------- AUTORE: 927 DATA :07/09/2006 - 16:19:35 ---------------------------------------- Non lo trovo, cmq si, ora ricordo che già nel DOS esistevano i comandi time e date per impostare ora e data. La soluzione è buona, però sui pc di alcuni paesi stranieri il comando date potrebbe richiedere il mese e il giorno in posizione invertita! ---------------------------------------- AUTORE: 838 DATA :07/09/2006 - 17:05:52 ---------------------------------------- usando il system exec il "time" di windows non va, mentre il "date" si usando xp e lw 7.1 se qualcuno ha qualche altro metodo interessa anche a me ---------------------------------------- AUTORE: 487 DATA :08/09/2006 - 07:21:35 ---------------------------------------- E' vero il comando "time" non può essere utilizzato direttamente con il system exec; però si può scrivere un file bat con la riga di comando che interessa e poi lanciare il file con il system exec (io l'avevo proprio sviluppato proprio con labview 7.1 in ambiente windows xp) ---------------------------------------- AUTORE: 487 DATA :08/09/2006 - 07:25:18 ---------------------------------------- Provate a vedere anche il topic "orologio", Ale aveva suggerito altre soluzioni. ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 07:39:11 ---------------------------------------- grande, provo allora con un bat e provo a cercare il topic orologio grazie ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 08:40:36 ---------------------------------------- non lo trovo \":(\" ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 08:41:40 ---------------------------------------- trovato!!!! \":D\" ---------------------------------------- AUTORE: 927 DATA :08/09/2006 - 10:04:49 ---------------------------------------- Così dovrebbe essere a prova di 2000/XP, ora legale, nazionalità ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 10:16:21 ---------------------------------------- è un pò brutto dover allegare un file bat al proprio progetto, labview lo usano per andare sulla luna e noi dobbiamo infilare un file bat di dos altrimenti non va...... che tristezza! sto provando la dll dell'altro topic, va abbastanza bene ma rimane sempre da allegare la dll ma è pox che all'interno di labview non ci sia niente?? \":D\" ---------------------------------------- AUTORE: 927 DATA :08/09/2006 - 10:48:56 ---------------------------------------- Che ci vuoi fare... System exec è una mondezza (almeno su Windows), mi ha sempre dato un sacco di problemi \":|\" Che poi ci sia Get date/time ma non Set date/time è un bello scherzo! Ci sarà da sperare in Labviù 8? \":roll:\" ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 10:56:24 ---------------------------------------- a breve installo l'8.2 (dividendo in 2 il pc perchè non convive bene con il 7, quindi servono 2 win xp ben separati.....) ---------------------------------------- AUTORE: 487 DATA :08/09/2006 - 13:03:40 ---------------------------------------- Vi devo dare subito delle brutte notizie: ho installato da poco Labview 8.2 ma non mi sembra proprio che sia stato introdotto un comando "set date/time" o roba simile. Per quanto riguarda l'installazione, io ho installato le versioni 7.1, 8.01 e 8.2 di Labview sotto il medesimo sistema operativo (Windows XP) e finora non ho avuto alcun problema (speriamo in bene per il futuro!!!) ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 13:28:35 ---------------------------------------- scusami, io utilizzo anche il DSC e con quello ci sono ENORMI problemi di compatibilità solo Labview dovrebbe coesistere \":D\" ---------------------------------------- AUTORE: 487 DATA :08/09/2006 - 14:23:43 ---------------------------------------- E' vero: ho parlato qualche giorno fà con una persona della National e mi ha detto che per quanto riguarda il DSC non c'è assolutamente compatibilità. A proposito di retrocompatibilità.... beh, questo è un'altro argomento, è meglio che apra un'altro topic. ---------------------------------------- AUTORE: 13 DATA :11/09/2006 - 11:35:56 ---------------------------------------- Studiando un poco le funzioni in Kernel32.dll sono riuscito a implementare in un vi , l'uso della function SetLocalTime . L'utilizzo di questa funzione ci da la possibilita' di impostare la data e l'ora di sistema utilizzando un metodo molto piu' elegante , visto che non utilizza shell dos e file.bat Allego il vi per modificare DATA E TIME , spero di esservi stato di aiuto . i campi che vedete con il punto interrogativo in effetti non servono allo scopo li ho impostati a 1. Saluti Peppe ---------------------------------------- AUTORE: 838 DATA :11/09/2006 - 13:15:08 ---------------------------------------- interessante \":D\" ---------------------------------------- AUTORE: 927 DATA :12/09/2006 - 10:23:13 ---------------------------------------- Attenzione, la SetLocalTime.vi sbaglia quando si passa da un'orario con ora legale a uno senza, e viceversa. Forse quei parametri col punto interrogativo c'entrano qualcosa? ---------------------------------------- ================================================================================ plottare segmento fra due punti in XYgraph ================================================================================ AUTORE: 1335 DATA :07/09/2006 - 11:18:26 ---------------------------------------- Ciao a tutti. Volevo chiedere come si fa per plottare una linea collegante due punti in un xygraph; esiste un modo o devo arrangiarmi e fare, per esempio, un interpolazione con altri punti? Uso labview 6.1. Grazie mille erik p.s. ribadisco che ringrazierò ufficialmente chi mi aiuta nella tesi, è il minimo!! ---------------------------------------- AUTORE: 645 DATA :07/09/2006 - 16:05:10 ---------------------------------------- Prova così... ---------------------------------------- AUTORE: 1335 DATA :07/09/2006 - 16:58:17 ---------------------------------------- ma ho fatto così.... spe che metto una foto... e se usassi un po' di polar plot uno dietro l'altro? ---------------------------------------- AUTORE: 645 DATA :07/09/2006 - 17:54:43 ---------------------------------------- L'idea è che passi al grafico due vettori, il primo contenente tutte le x e il secondo contenente tutte le y nelle rispettive posizioni (in modo da avere corrispondenza tra le x in un vettore e le y nell'altro). ---------------------------------------- AUTORE: 1335 DATA :08/09/2006 - 01:33:39 ---------------------------------------- lo sto già facendo, con due punti, però non mi disegna il segmento... dove può essere il problema? mi pare di fare tutto correttamente... domani provo il polar plot per vedere se funziona, poi vi dico. Ma il problema con l'xygraph proprio non lo spiego... ---------------------------------------- AUTORE: 1335 DATA :08/09/2006 - 14:09:22 ---------------------------------------- help.... \":(\" ---------------------------------------- AUTORE: 680 DATA :08/09/2006 - 14:17:41 ---------------------------------------- [quote="kobane":w7o0ihcq]lo sto già facendo, con due punti, però non mi disegna il segmento... dove può essere il problema? mi pare di fare tutto correttamente... domani provo il polar plot per vedere se funziona, poi vi dico. Ma il problema con l'xygraph proprio non lo spiego...[/quote:w7o0ihcq] ho fatto come hai fatto tu (allegato dell'immagine) e funziona senza problemi..... (vedi allegato!!!) non capisco quale sia il tuo problema????? ---------------------------------------- AUTORE: 1335 DATA :08/09/2006 - 14:21:36 ---------------------------------------- ma non è che lo fa solo con labview 7.1? io uso il 6.1... ho provato a modificare mille cose dei property node, ma nada... mah... ---------------------------------------- AUTORE: 482 DATA :11/09/2006 - 08:13:26 ---------------------------------------- allora..direi di procedere per punti: Estrapola l'inserimento di dati nel grafico in un nuovo VI e mettici delle costanti verificando se il grafico viene plottato. a) Se viene plottato,valutare i valori che gli arrivano in ingresso dal programma; b) Se non viene plottato direi di controllare per prima cosa i fondoscala di x e di y e il colore del plot. c) Altro controllo da fare è il tipo di grafico che si è scelto di tracciare, ci sono diversi tipi, modificabili tramite le voci Common plots e Interpolation che compaiono cliccando col destro sulla plot legend FAtti questi controlli non esiste motivo alcuno per il quale non dovrebbe disegnarti la retta tra due punti \":wink:\" ---------------------------------------- AUTORE: 1335 DATA :11/09/2006 - 11:29:04 ---------------------------------------- [quote="gepponline":14qyw4fa]allora..direi di procedere per punti: Estrapola l'inserimento di dati nel grafico in un nuovo VI e mettici delle costanti verificando se il grafico viene plottato. a) Se viene plottato,valutare i valori che gli arrivano in ingresso dal programma; b) Se non viene plottato direi di controllare per prima cosa i fondoscala di x e di y e il colore del plot. c) Altro controllo da fare è il tipo di grafico che si è scelto di tracciare, ci sono diversi tipi, modificabili tramite le voci Common plots e Interpolation che compaiono cliccando col destro sulla plot legend FAtti questi controlli non esiste motivo alcuno per il quale non dovrebbe disegnarti la retta tra due punti \":wink:\"[/quote:14qyw4fa] capito, però non ho capito bene come fare... uso dei property node in lettura? ma soprattuto come si estrapola l'inserimento di dati in un nuovo VI? scusatemi tanto la domanda niubba, purtroppo mi sono imparato da solo il labview ed ho delle lacune enormi... \":(\" ---------------------------------------- AUTORE: 482 DATA :11/09/2006 - 14:54:44 ---------------------------------------- occhei, son stato poco chiaro: ESTRAPOLA il pezzo di diagramma che scrive nel grafico, nel senso che, tracci col mouse un rettangolo attorno all'indicatore e ai bundle, fai un copia, poi apri un nuovo VI e fai INCOLLA. Inserendo delel costanti in ingresso. Per quanto riguarda le proprietà invece, apri il pannello e fai tutto col destro, direttamente sul pannello, senza programmare niente, sono solo impostazioni visive del controllo. ---------------------------------------- AUTORE: 1335 DATA :11/09/2006 - 16:56:45 ---------------------------------------- ma ovvio, il mio problema era sulla plot legend!!! ma che spina che sono... grazie ragazzi, a volte anche le cose più banali sono difficilissime per chi non ha esperienza... Grazie ancora. e* ---------------------------------------- AUTORE: 645 DATA :11/09/2006 - 18:26:58 ---------------------------------------- Ehm, in che senso? Siccome credo che il tuo problema possa ripresentarsi a qualcun altro puoi dirci esattamente cosa hai fatto per risolverlo? ---------------------------------------- AUTORE: 1335 DATA :11/09/2006 - 19:16:25 ---------------------------------------- sulla plot legend, avevo impostato il tutto per plottare solo i punti del vettore e non i segmenti congiungenti questi ultimi... ho cliccato col destro e impostato in modo che tracci la congiungente dei punti. ---------------------------------------- ================================================================================ LabView, PLC, DSC..come partire? ================================================================================ AUTORE: 1442 DATA :08/09/2006 - 09:51:43 ---------------------------------------- Innanzitutto salve a tutti... Il mio problema è probabilmente banale, ma come da oggetto sottolineo che sono un neofita di LabView... Io devo utilizzare delle variabili di I/O dall'OPC Twincat nel mio VI di LabView, ma non capisco come fare ad ottenerle... Sò che si può utilizzare la datasocket connection per il binding delle variabili, ma da lì non so più andare avanti... Ho anche il pacchetto DSC però non sò neppure da dove partire... Scusate il disturbo, spero che mi possiate aiutare, Vi ringrazio anticipatamente, T. ---------------------------------------- AUTORE: 384 DATA :08/09/2006 - 15:02:11 ---------------------------------------- Prima che arrivi Apollon e ti "brucci vivo" (ed avrebbe pure ragione!), te lo dico io: -hai scritto un subject assolutamente "odiato" da tutti quanti frequentano i forum, perchè non c'è alcuna pista chiara e succinta sul tuo effettivo problema! Poi ti suggerisco di andare agli esempi di labview e cercare OPC. Troverai 4 o 5 vi di esempio dove già capirai come "arrivare" a delle variabili di un opc server. Vedrai che è molto più semplice capire guardando quelli esempi che non leggendo una descrizione di chiunque di noi, necessariamente lunga ed articolata. Quando avrai risolto questi dubbi iniziali ti arriveranno altri (garantito!) ed allora noi saremmo qui tutti ancora per continuare ad aiutarti! ---------------------------------------- AUTORE: 1442 DATA :08/09/2006 - 15:55:16 ---------------------------------------- Azz! Chiedo scusa... In particolar modo ad Apollon \":oops:\" Farò come mi hai suggerito... Grazie ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 16:01:58 ---------------------------------------- a partire da zero è un pò complicata la cosa. mica impari ad usare le basi in pochi minuti... con il dsc importi le tag da un opc server installato sul tuo pc (quindi: hai già configurato l'opc server sul tuo pc che comunica con il plc? hai provato con un opc client fornito con il sever se tutto è a posto?) una volta importate le tag nel dsc, nei strumenti di labview troverai il modulo dsc, prendi l'oggetto read tag o write tag e..... parti dagli esempi, te lo straconsiglio!!!!!!!! ---------------------------------------- AUTORE: 247 DATA :08/09/2006 - 16:49:39 ---------------------------------------- Ciao, Va beh, vista "l'invocazione" ho applicato un cast esplicito e soprattutto forzato al titolo del post...\":wink:\" Cheers a tutti! \";-)\" e benvenuto Teo. BYE. P.S. almeno stavolta però Teo aveva scritto due parole, LabVIEW e PLC, che lo pongono ben lontano dalla vetta dei niubbissimi novelli scrittori di titoli di post! Peccato che quando modifichiamo un titolo non lo conserviamo...bisogna iniziare! \";-)\" ---------------------------------------- ================================================================================ Applicazione LV non gira in stand alone! ================================================================================ AUTORE: 384 DATA :08/09/2006 - 10:03:39 ---------------------------------------- Ciao ragazzi. Sono alle prese con un'applicazione LV che mi sta dando del filo da torcere: -se la faccio girare sotto ambiente di sviluppo, funziona tutto bene. -se la faccio girare compilata, parte ed esce subito senza errori. Il main vi è un classico "splash screen" che non fa altro che mostrare una schermata mentre fa le inizializzazioni dopodicchè lancia un vi dinamico che è la vera applicazione (e che a sua volta usa anche dei vi dinamici) e si chiude. Ho verificato ed i vari "path" ai vi dinamici sono a posto. Inserendpo dei blocchi di controllo errore mi da un errore su un "invoke node", ma non capisco perchè solo in runtime, perchè ho verificato che tutte le proprietà e metodi che uso siano disponibili in entrambi i casi. Purtroppo non posso postare il tutto perchè (1) è grosso, (2) è proprietario. Con questi dati, qualcuno ha un'idea di dove iniziare a cercare l'inghipo? Grazie. ---------------------------------------- AUTORE: 645 DATA :08/09/2006 - 10:20:05 ---------------------------------------- Il VI comunica con il mondo esterno (VISA, DAQ...)? Se sì, hai inserito nell'eseguibile tutte le librerie necessarie? Magari creando l'eseguibile come installer anzichè come applicazione stand-alone? Prova a guardare http://digital.ni.com/public.nsf/allkb/ ... a900648083 . ---------------------------------------- AUTORE: 927 DATA :08/09/2006 - 10:22:55 ---------------------------------------- Forse potresti mandarci solo un pezzo di codice dove viene lanciato un VI dinamico vuoto. Cmq controlla se è un problema di percorsi: magari quando lanci i VI dinamici usi un ben preciso percorso, che varia quando sei nell'exe. In particolare i VI compilati fanno una cosa strana: come percorso di sè stessi considerano ad esempio c:\cartella\programma.exe\subvi.vi ---------------------------------------- AUTORE: 384 DATA :08/09/2006 - 10:54:54 ---------------------------------------- Ringrazio entrambi i suggerimenti. Non è un problema di percorsi, ho già verificato, e sono al corrente del cambio di comportamento sotto 'exe' - eh si! Anch'io ci ho sbatutto il muso... \":oops:\" Per quanto riguarda eventuali librerie, sto provando ad eseguire lo stand-alone nella macchina di sviluppo, dove tutto è installato. In particolare questa applicazione si collega ad un "server" dati via TCP e fa accesso ad un database via ODBC - cose che già faceva prima, ma i vi non erano dinamici. Le librerie necessarie sono quindi rimaste le stesse. Mi è venuta un'altra idea \":idea:\" : ora provo a compilarla in un'altra macchina, a vedere se cambia qualcosa. Come diceva Sherlock Holmes, dopo le cose probabili, quelle improbabili, per quanto sembrino impossibili, sono le uniche rimaste!!! \":lol:\" Comunque accetto ancora suggerimenti. ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 10:58:01 ---------------------------------------- ma se è un vi dinamico, l'hai inserito nel progetto del builder come vi dinamico? o hai messo solo il vi di partenza? ---------------------------------------- AUTORE: 384 DATA :08/09/2006 - 11:12:16 ---------------------------------------- Si, certo! ---------------------------------------- AUTORE: 384 DATA :08/09/2006 - 11:14:14 ---------------------------------------- Cosí come tutti gli altri vi dinamici lanciati durante l'esecuzione dell'applicazione... ---------------------------------------- AUTORE: 4 DATA :08/09/2006 - 12:01:45 ---------------------------------------- Non ci sono molti motivi per cui un'app labview esce "di colpo"... uno è l'uso della funzione quit LabVIEW... tu la usi nel tuo codice? Ciao ---------------------------------------- AUTORE: 384 DATA :08/09/2006 - 14:48:33 ---------------------------------------- No, non uso il blocco Exit. L'applicazione si chiude quando io chiodo esplicitamente il front panel e poi il reference a se stesso. Ho compilato il tutto in un'altra macchina e ancora non funziona, ma almeno sono riuscito a scoprire dove succede l'errore. Io ho due cicli FOR "nested" (innestati, si direbbe?) che lanciano un'array virtuale di vi dinamici. L'origine è un template (.vit) al quale passo dei parametri (gli indici (i,j)) che lo identificano univocamente. Il path a questo template è giusto ma già il blocco di apertura del reference producce l'errore 1055, cioè "invalid reference". La cosa ulteriormente curiosa è che l'errore succede la prima volta e si ferma tutto, cioè, NON si completano i due clicli for; ho messo un blocco di errore e quindi dovrei cliccare su OK ixj volte, giusto? Invece dopo il primo click si ferma tutto! Allego un pdf con l'imaggine del vi, cosí vedete anche il punto dove trovo l'errore - laddove è collegato il relativo blocco. Ripeto che sotto LV, invece, tutto funziona correttamente!!! ---------------------------------------- AUTORE: 384 DATA :08/09/2006 - 19:52:30 ---------------------------------------- Ciao ragazzi. Ho trovato il problema. In realtà era da tutt'latra parte ed è legato alle proprietà dei VI. Le seguenti proprietà: Exec.ShowFPOnLoad Exec.RunOnOpen Exec.SuspOnCall provocano l'errore 1043 in uscita dal property node quando settate in run time, anche se nel'help vengono elencate come disponibili. L'unica "restrizione" è che sono ignorate se il vi è gestito attraverso il VI Server (cioè, se è dinamico). Nel mio caso, il vi dove si produceva l'errore non è dinamico! Lo è il suo chiamante - ma questo credo non abbia alcuna importanza. Qualcuno sa qualcosa in merito? Appunto perchè non mi aspettavo degli errori non li controllavo e questo produceva una serie di effetti a catena abbastanza intricati e molto difficili da isolare. In più c'è la difficoltá aggiuntiva di dover compilare tutto ogni volta che si fa una qualunque modifica... sopratutto costa tempo (questa applicazione impiega quasi 1 minuto a compilare!). Insomma, mi ha dato da fare! Ringrazio tutti quanti hanno scritto ed auguro a tutti buon week-end! Gyc ---------------------------------------- AUTORE: 927 DATA :11/09/2006 - 08:05:43 ---------------------------------------- nested = annidati, non innestati \":lol:\" ---------------------------------------- ================================================================================ Applicazione labview chiamata da un codice caller ================================================================================ AUTORE: 1443 DATA :08/09/2006 - 11:20:27 ---------------------------------------- salve, ho una domanda.. Qualcuno sa se è possibile far restituire ad un programma labview (exe) un codice di uscita analogo al return x del C, in modo che possa essere intercettato da un codice chiamante, ad es. un Job di SQL Server? Grazie. ---------------------------------------- AUTORE: 4 DATA :13/09/2006 - 09:29:50 ---------------------------------------- mmm non puoi compilare il tuo codice Labview in DLL piuttosto che in Exe? in quella maniera potresti usare la DLL all'interno dei tuoi SW. Ciao ---------------------------------------- AUTORE: 1443 DATA :20/09/2006 - 14:39:59 ---------------------------------------- \"8)\" Si potrei farlo tranquillamente. ..è solo che ho un eseguibile schedulato da un batch manager (in questo caso SQL Server Agent), installato presso un cliente e vorrei poter intercettare il codice di uscita per effettuare eventuali azioni in maniera rapida. Altrimenti dovrei vedere come lanciare una funzione di DLL da script Transact-SQL. Ciao ---------------------------------------- ================================================================================ Retrocompatibilità ================================================================================ AUTORE: 487 DATA :08/09/2006 - 14:35:23 ---------------------------------------- Ciao, qualcuno saprebbe dirmi se esiste la possibilità di salvare (magari tramite una applicazione) un vi sviluppato in una determinata versione di labview, in formato leggibile da una versione precedente, ma non quella immediatamente prima? Forse mi sono spiegato in maniera un po' complicata, mi spiego con un esempio: sviluppo con la versione 8.2 e voglio poter leggere il codice con la versione 7.1 o precedenti. Chiaramente si può fare avendo tutte le versioni comprese e facendo più passaggi di conversione, ma non vorrei essere costretto a tenere installate tante versioni solo per convertire del codice. Ho chiesto in National, ma la risposta, come prevedibile, è stata negativa, d'altra parte a loro non conviene ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 14:41:14 ---------------------------------------- non capisco.... io ho la 7.1 ho paerto molti vi fatti con la 6 e me li ha convertiti senza problemi, avendo solo ed esclusivamente la 7.1 installato la 8.2 deve aprire e convertire tutti quelli precedenti, senza averli installati almeno spero sia così!!! ---------------------------------------- AUTORE: 487 DATA :08/09/2006 - 14:46:54 ---------------------------------------- Scusa, mi sono spiegato male, anzi malissimo. Io vorrei fare il contrario di quello che hai fatto tu, cioè prendere dei vi scritti con la versione 8.2 ed aprirli con labview 7.1 ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 14:52:13 ---------------------------------------- beh, quello è impossibile per ovvie ragioni \":D\" ---------------------------------------- AUTORE: 645 DATA :08/09/2006 - 22:22:48 ---------------------------------------- Non vorrei sbagliare ma la versione 8.2 (ho provato solo la demo) salva per 8.2 e per 8. Quindi non saprei... ---------------------------------------- AUTORE: 4 DATA :09/09/2006 - 09:37:25 ---------------------------------------- Purtroppo ogni versione permette di tornare indietro di "un solo passo". Se hai un VI in 7.1 e vuoi arrivare alla 5.1 devi passare da 7.1 a 7.0 poi a 6.1 quindi a 6.0 e infine alla 5.0... non male vero? Ciao ---------------------------------------- AUTORE: 838 DATA :11/09/2006 - 07:38:51 ---------------------------------------- ASSURDO!!!!!!!!!!! \":o\" ---------------------------------------- AUTORE: 487 DATA :11/09/2006 - 08:10:51 ---------------------------------------- Ok, so benissimo che data una versione si può salvare in formato compatibile con la versione precedente, ma mi chiedevo se non esistesse un tool (magari esterno a labview) per fare più salti in una sola volta. Un po' di tempo fà ho provato, per esempio, a creare degli eseguibili per la ricompilazione del codice. L'idea era quella di creare un eseguibile con labview 8.0 per ottenere un codice ricompilato in versione 7.1, poi, con labview 7.1, creare un eseguibile per ottenere il codice ricompilato in versione 7.0 e così via. Il problema era stato che i vi, per ricompilare il codice, in formato sorgente giravano benissimo, ma una volta creato l'eseguibile non funzionavano più. Pensate che tutto questo non si possa fare? Devo rinunciare? ---------------------------------------- AUTORE: 4 DATA :11/09/2006 - 08:24:02 ---------------------------------------- ho capito cosa intendi ma credo che per poter "ricompilare" LV usi il suo runtime, quindi dovresti avere tutti gli exe ma ache tutti gli RT sulla macchina su cui ricompili. In pratica otterresti un sistema automatico per ricompilare senza la necessità di installare tutti i LV sulla macchina ma solo i loro RT che... sono gratuiti. Ciao, ---------------------------------------- AUTORE: 487 DATA :11/09/2006 - 08:49:54 ---------------------------------------- Perfetto Ale, allora se mi dici che secondo te si può fare ci riprovo e poi vi faccio sapere. Grazie ---------------------------------------- AUTORE: 1447 DATA :11/09/2006 - 17:20:06 ---------------------------------------- Sono nuovo del forum ma non di Labview che utilizzo dalla versione 3. Premetto che non ho competenze tecniche specifiche (laurea in medicina) ma mi arrangio... tuttavia, avendo acquistato la versione 8 di Labview ho faticato non poco ad installarlo sul mio PC per problemi legati alla impossibile coesistenza di LV 6 con 8. Problema interessante che è fuori tema ma se qualcuno fosse interessato... Ora IL problema per il quale chiedo aiuto. Dal sito National si apprende che i VI che impiegano CIN scritti con precedenti versioni di LV NON sono trasportabili! Bizzarro se si considera che questi VI, come per esempio la routine STRIP BINARY HEADER è generata dalla national e non è scritta da me. Morale, sembra proprio che l'unica soluzione per poter far girare programmi scritti con la 6 sotto la 8 sia riscriverli. Magari qualcuno di voi conosce una soluzione meno scema di questa trovata da me? ---------------------------------------- AUTORE: 1165 DATA :11/09/2006 - 19:03:27 ---------------------------------------- Francesco mi potresti contattare in privato? .. sono molto incuriosito dal tuo percorso e dalle applicazioni mediche del Labview .. anche se oramai sono comletamente impegnato su altri campi ho di fatto debuttato anche io molti anni fa con la versione 3 e proprio in ambito medico .. implementando un sistema di acquisizione cardiologica con susseguente valutazione della variabilità dell'RR per stimare in maniera non invasiva la bilancia simpato-vagale .. un grande progetto e un grande impegno purtroppo finito in molto fumo e poco arrosto .. sai come è la ricerca in Italia .. ma mi è rimasta una forte attrazione per tutte le applicazioni alla fisiologia umana .. e quindi mi incuriosirebbe scambiare due chiacchiere con te se vuoi .. oviamente fuori da questo topic altrimenti andiamo fuori tema qui .. ciao a presto spero. Enrico. ---------------------------------------- AUTORE: 487 DATA :15/09/2006 - 14:19:49 ---------------------------------------- Delusione su tutta la linea: niente da fare!!! Malgrado abbia seguito i consigli di Ale, una volta creato l'eseguibile non riesco più a salvare il codice nella versione precedente di labview. La cosa che più mi fa incavolare è che con i vi sorgenti la ricompilazione del codice funziona benissimo!?! ---------------------------------------- AUTORE: 129 DATA :15/09/2006 - 23:20:51 ---------------------------------------- Da quanto ne so io, si può Salvare alla versione precedente un vi (da 8 a 7.1 per ex.) Se si usa l'application builder del 7.1 per compilare, il file necessita del RT 7.1 Se si usa l'AB del 8.0 di conseguenza si và con RT 8.0 Mi è capitatpo di dover convertire all versione 7.0 dalla 7.1 e di conseguenza creare i relativi exe per RT7.0, utilizzando l'AB della 7.0 non ho avuto problemi. Non ho provato sulle recenti versioni. ---------------------------------------- AUTORE: 487 DATA :18/09/2006 - 07:25:49 ---------------------------------------- Io ho provato a passare dalla versione 8.2 alla 7.0. Ho create tre eseguibili uno con la 7.1 uno con la 8.0 e uno con la 8.2. Ho installato sulla macchina tutti i relativi runtime, ma il risultato è stato nullo. ---------------------------------------- AUTORE: 487 DATA :18/09/2006 - 08:37:45 ---------------------------------------- Ho fatto delle altre prove: l'eseguibile mi restituisce un errore 1043, mentre, come al solito, il vi funziona egregiamente. Nicola, potresti inviarmi il tuo vi di conversione? Non riesco a capire dove sbaglio!!! ---------------------------------------- AUTORE: 129 DATA :18/09/2006 - 08:56:08 ---------------------------------------- Scusa, non ho un vi di conversione, ho semplicemente salvato alla versione più recente (la 7.0) un VI(7.1), quindi l'ho compilato con l'application della 7.0 e non mi ha dato problemi (ovviamente con il RT della 7.0). Tutto, qui. Scusa se non mi sono spiegato bene, \":wink:\" ---------------------------------------- AUTORE: 487 DATA :18/09/2006 - 09:00:57 ---------------------------------------- Scusa Nicola, non avevo capito bene. Vi allego il mio vi di conversione, forse qualcuno saprà dirmi dove sbaglio (spero!!!!!) ---------------------------------------- AUTORE: 129 DATA :18/09/2006 - 10:10:20 ---------------------------------------- Se guardi nell' help, questo metodo non è disponibile in Run Time. Chiarito quindi il perchè non ti funziona in runtime mode.... Purtroppo la procedura deve essere fatta a mano, i'm sorry... Nic ---------------------------------------- AUTORE: 487 DATA :18/09/2006 - 10:15:41 ---------------------------------------- OK, Nicola, grazie per l'aiuto. Chiuso il capitolo e morta ogni speranza, sigh \":cry:\" ---------------------------------------- ================================================================================ While a comando! ================================================================================ AUTORE: 1235 DATA :08/09/2006 - 15:22:57 ---------------------------------------- Ciao innanzitutto, avrei bisogno URGENTEMENTE di un aiutino. Ho creato una VI che tra l'altro comprende un WHILE. L'inconveniente è che il WHILE mi parte quando mando in esecuzione la VI. Vorrei, una volta mandata in esecuzione la VI e settati alcuni parametri di controllo che pilotano ill WHILE ( che posso selezionare solo con la VI in esecuzione!) , che il WHILE inizi e magari si fermi al comando di un bottone di controllo ( alla nuova pressione del tasto il while dovrebbe ripartire da zero! ). IL WHILE effettua una misura che si può fermare o volontariamente ( per ripartire da zero! ) o al verificarsi della condizione di fine ciclo! Spero di essere stato chiaro e grazie per l'aiuto in anticipo! ---------------------------------------- AUTORE: 927 DATA :08/09/2006 - 15:33:54 ---------------------------------------- Ti dò il "la": metti il TUTTO dentro un altro grande ciclo WHILE; racchiudi solo il while di misura dentro un CASE comandato dal bottone di avvio. Quando il bottone di avvio va a true la misura parte, e quando la misura si ferma (magari a causa di un altro bottone di arresto collegato allo stop), si torna al while grande in attesa di una nuova partenza... ---------------------------------------- AUTORE: 1030 DATA :08/09/2006 - 15:38:00 ---------------------------------------- Ciao penso che tu abbia bisogno di 2 while: uno esterno che contiene un struttura di "case" e uno interno che contiene il tuo VI. L'ingresso della "case structure" deve comandare anche lo stop del while più interno. ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 15:46:07 ---------------------------------------- confermo \":D\" ---------------------------------------- AUTORE: 1235 DATA :08/09/2006 - 16:00:03 ---------------------------------------- Ho già provato, ma non ci riesco! \":-(\" Forse sbaglio qualcosa! Mi date una dritta con qualche esempio gia fatto? Grazie! ---------------------------------------- AUTORE: 838 DATA :08/09/2006 - 16:06:30 ---------------------------------------- \":o\" hai già il tuo while fatto questo while lo fai concludere quando hai finito la misura le metti dentro ad un enorme case il case lo comandi con un bottone tutto queso lo metti dentro ad un'enorme while questo while lo fai terminare con il pulsante stop spero di essere stato chiaro \":D\" ---------------------------------------- AUTORE: 1235 DATA :08/09/2006 - 17:03:03 ---------------------------------------- Funziona qualcosa! Però... \":-)\" Io ho bisogno che il while interno si azioni tramite un unico bottone start/stop e che se il ciclo si interrompe o perche premo stop o per condizione di fino ciclo ( penso possa farlo con un OR ) alla sua "ripressione" il while interno riparta da zero con la VI generale sempre in esecuzione! Complicato forse!? \":-(\" ---------------------------------------- AUTORE: 129 DATA :09/09/2006 - 23:37:45 ---------------------------------------- Modificando l'esempio, dovresti riuscire ad ottenere ciò che cerchi. Si tratta di una macchina a stati che gestisce l'intera esecuzione del VI. Il ciclo esterno ha il solo compito di mantenere lo stato di run e di passare le informazioni tra i frame (shift register). Ovviamente è solo un esempio e le scelte dei frame sono solo a carattere di esempio. ---------------------------------------- AUTORE: 1235 DATA :11/09/2006 - 15:12:21 ---------------------------------------- MOLTO INTERESSANTE! GRAZIE MILLE! \":D\" ---------------------------------------- ================================================================================ Tempi in RT ================================================================================ AUTORE: 927 DATA :08/09/2006 - 15:24:57 ---------------------------------------- Notando delle stranezze nei sincronismi di un mio programma in RT, ho fatto una prova: ho lanciato un semplice VI con un ciclo, con periodo di un secondo, che scrive su file l'ora esatta (compresi i millesimi). Sul PC niente di strano, ma in RT i tempi scritti non corrispondono esattamente ai secondi, ottengo qualcosa del tipo: 14:00:37.124 14:00:38.120 14:00:39.118 14:00:40.113 14:00:41.111 14:00:42.107 ... Cioè periodi sempre più brevi di qualche millesimo. Questo usando il Timed Loop; usando il While temporizzato avviene circa il contrario! 14:05:28.717 14:05:29.718 14:05:30.719 14:05:31.720 14:05:32.721 14:05:33.721 ... Se imposto il FP per usare un Time Server, è la stessa cosa ma ogni tanto ci sono dei "salti" dovuti probabilmente al Time Server che riallinea l'orologio: ... 13:42:31.979 13:42:32.974 13:42:33.971 13:42:34.968 13:42:36.112 13:42:37.109 13:42:38.106 13:42:39.102 ... E' come se, in RT, il timer dell'orologio e il timer usato dai VI andassero per i ca... loro. Avete info sulla faccenda e idee su come ovviarla? ---------------------------------------- AUTORE: 4 DATA :13/09/2006 - 10:03:45 ---------------------------------------- Strano, io non ho fatto prove di questo tipo su FPrt ma ricordo che erano affidabili, in ogni caso i problemi potrebbero essere diversi. Col timed Loop dovresti provare a "giocare con le sue impostazioni ad esempio alzando la priorità (vale solo se hai altri loop paralleli altrimenti non è influente) o potresti usare la base tempi più veloce se non lo hai già fatto. Col while dipende tutto se usi la funzione wait o wait until next... dal tuo esempio pare che tu stia usando la wait In ogni caso la funzione di scrittura file potrebbe metterci del suo rallentando i maniera non deterministica, se hai a disposizione un oscilloscopio prova a far generare al FP un treno di impulsi su un digitale e usa quello come metodo di misura. Ciao PS ho sotto mano un CVS magari faccio una prova anche io \";)\" ---------------------------------------- AUTORE: 4 DATA :13/09/2006 - 11:51:03 ---------------------------------------- Ho fatto la prova, ok io ho un CVS ma dovrebbe essere lo stesso SO. Questo è il file che ottengo [code:2ecau13l]05.49.38.776 05.49.39.776 05.49.40.776 05.49.41.776 05.49.42.776 05.49.43.776 05.49.44.776 05.49.45.776 05.49.46.776 05.49.47.776 05.49.48.776[/code:2ecau13l] come vedi è ok. Ti allego anche l'immagine del codice. Ciao ---------------------------------------- AUTORE: 927 DATA :13/09/2006 - 12:05:38 ---------------------------------------- Sul forum in inglese mi hanno risposto che è un baco del RT 7.1 e che dalla 8.0 l'orologio di sistema è sincronizzato con gli altri. Io e i miei colleghi sospettiamo che il motivo per cui nella 8.0 funziona sia un altro... la 8.0 gira sui Compact FP, una generazione con processori più potenti; nei FP classici il ciclo dell'orologio di sistema (che a quanto pare non ha priorità critica) semplicemente non riesce a star dietro agli altri! Per rispondere alle tue osservazioni: Certo che usavo wait until next! La funzione di scrittura file impiega sicuramente del tempo variabile, ma quello non è un ritardo che si accumula, ogni iterazione del ciclo comincia al secondo netto, poi magari la scrittura avviene qualche frazione dopo. E' sicuramente l'orologio di sistema che non va, e lo dimostra l'effetto del time server. Ti sono grato se puoi fare delle prove più "ufficiali", ma ricorda è un problema dei FP classici (20xx), non dei Compact ---------------------------------------- AUTORE: 927 DATA :13/09/2006 - 12:11:43 ---------------------------------------- Scusa non c'era ancora il tuo mex quando ho scritto il mio, cmq i concetti son sempre validi, che FP hai usato? ---------------------------------------- AUTORE: 4 DATA :14/09/2006 - 09:01:41 ---------------------------------------- Non ho usato il FP ma un [url=http://sine.ni.com/nips/cds/view/p/lang/en/nid/12298:2n9vccyx]CVS1450[/url:2n9vccyx] Ciao ---------------------------------------- AUTORE: 247 DATA :14/09/2006 - 10:11:03 ---------------------------------------- Ciao, ho provato con lo stesso VI di Ale914 su cFP 2020 con LabVIEW 8. [quote:3uwnf2et]09.08.56.515 09.08.57.515 09.08.58.515 09.08.59.515 09.09.00.515 09.09.01.515 09.09.02.515 09.09.03.515 09.09.04.515 09.09.05.515 09.09.06.515[/quote:3uwnf2et] BYE. ---------------------------------------- ================================================================================ Problemi con Shared Variables e Vi del DataSocket ================================================================================ AUTORE: 928 DATA :08/09/2006 - 16:52:16 ---------------------------------------- Ho bisogni di leggere da alcune shared variables in due modi: con il metodo "normale" usando il nodo delle shared variables, e usando i VI del datasocket in modo da sfruttare la funzione "wait for updated value". Non posso conoscere a priori quale sarà l'ordine in cui le due modalità di accesso verranno utilizzate. I problemi iniziano quando cerco di leggere da una shared variable con il primo metodo dopo che questa sia stata acceduta con i VI del datasocket. Ho creato un semplice VI per replicare l'errore: per generarlo basta far partire il VI, cliccare su "READ WITH SHVAR", cliccare su "READ WITH DS", e cliccare ancora su "READ WITH SHVAR". Dovrebbero comparire errori "Unable to locate variable in the Shared Variable Engine" in corrispondenza delle variabili accedute con i VI del datasocket. Qualche suggerimento per risolvere il problema? Grazie Luca ---------------------------------------- ================================================================================ FRONT PANEL SECONDARIO ================================================================================ AUTORE: 1235 DATA :11/09/2006 - 15:18:15 ---------------------------------------- Ciao, Ho creato la mia bella VI con un front panel molto ricco. Per nascondere un pò di controlli e parametri di secondaria importanza, vorrei creare allora un front panel secondario che si possa aprire e chiudere da quello primario pigiando su un bottone! E' possibile? Grazie ancora una volta! \":!:\" ---------------------------------------- AUTORE: 1030 DATA :11/09/2006 - 15:38:33 ---------------------------------------- Potresti usare un "tab control". Lo trovi nella palette dei controlli sotto "Containers". ciao ciao ---------------------------------------- AUTORE: 1235 DATA :11/09/2006 - 15:53:27 ---------------------------------------- Grazie! Ma nel mio front panel principale sono gia presenti dei tabs control! Io vorrei creare un secondo front panel che si possa chiudere e aprire premendo un pulsante dal front panel primario! E' possibile? Grazie ancora! ---------------------------------------- AUTORE: 1030 DATA :11/09/2006 - 16:21:41 ---------------------------------------- Si è possibile farlo. Devi inserire il subVI dentro una "Case Structure" comandata da un pulsante true/false. In questo modo se per esempio metti il subVI nel caso True questo verrà eseguito alla pressione del tasto. spero vada meglio. Ciao ciao ---------------------------------------- AUTORE: 1235 DATA :11/09/2006 - 16:29:31 ---------------------------------------- Quale sub VI ? Scusa forse non capisco! Io non ho bisogno di fare eseguire una sub VI tramite un tasto , io vorrei spostare solo che alcuni grafici, parametri e controlli del front panel primario su un secondo front panel che si veda o no pigiando un tasto. Ciao. ---------------------------------------- AUTORE: 1030 DATA :11/09/2006 - 16:38:30 ---------------------------------------- [size=150:3il6qc95]NON[/size:3il6qc95] puoi avere un VI con due Front Panel!!! Hai solo 2 possibilità: 1) Tab Control 2) Crei un secondo VI in cui metti alcuni controlli che visualizzi tramite un pulsante ciao ciao ---------------------------------------- AUTORE: 1235 DATA :11/09/2006 - 16:44:57 ---------------------------------------- Sorry! Peccato! A me serviva per visualizzare dei grafici e dei parametri di uscita! Grazie! Ciao. ---------------------------------------- AUTORE: 645 DATA :11/09/2006 - 18:24:54 ---------------------------------------- Potresti inserire in un Case i Property Node dei controlli che vuoi nascondere e regolare la proprietà "visible" su False. Nel momento in cui premi un bottone setti la stessa proprietà su True e i controllo nascosti compaiono. Non si tratta di un secondo Front Panel: i controlli, anche quelli nascosti, sono tutti presenti sul Front Panel principale solo che alcuni non si vedono a meno che tu prema un pulsante apposta. ---------------------------------------- AUTORE: 1235 DATA :11/09/2006 - 19:21:26 ---------------------------------------- Ho già adottato più o meno la stessa soluzione accorpando tutti i controlli, parametri e grafici in un cluster e agendo sulla sua Property Node! Funziona bene! Era quello che volevo! Forse la richiesta di un Front Panel secondario era fuorviante! \":oops:\" Grazie comunque! Ciao. ---------------------------------------- AUTORE: 487 DATA :12/09/2006 - 07:31:42 ---------------------------------------- Non so che versione di Labview tu abbia, però dalla 7.0 c'è la possibilità di utilizzare i sub-panel che ti consentono di visualizzare i front panel di più vi sul front panel del vi chiamante. ---------------------------------------- ================================================================================ sincronizzazione segnali provenienti da DAQdopo elaborazione ================================================================================ AUTORE: 1335 DATA :11/09/2006 - 22:04:21 ---------------------------------------- ciao a tutti. Ho il seguente problema: devo acquisire 6 segnali contemporaneamente con una scheda di acquisizione; acquisisco a 1024 Hz, prendo 128 campioni in fila per ogni canale, quindi devo salvare contemporaneamente il valore RMS calcolato su quella finestra di 128 campioni. Il problema che sorge è questo: come faccio ad essere sicuro che i 128 campioni siano prelevati singolarmente, e che siano relativi allo stesso istante di tempo? Inoltre, come faccio ad essere sicuro che i valori RMS siano equispaziati nel tempo? spero di essere stato chiaro, intanto vi ringrazio di cuore per l'aiuto che mi state dando da qualche mese. e* ---------------------------------------- AUTORE: 1335 DATA :12/09/2006 - 09:26:46 ---------------------------------------- allego, già che ci sono, il link al programma che ho fatto, tanto per farvi un'idea di come l'ho fatto. http://www.hostfiles.org/download.php?id=D01EADF6 grazie! ---------------------------------------- AUTORE: 645 DATA :12/09/2006 - 12:16:27 ---------------------------------------- Provare il determinismo offerto da DAQmx? ---------------------------------------- AUTORE: 1335 DATA :12/09/2006 - 13:11:25 ---------------------------------------- [quote="MagicBotolo":1pe9div2]Provare il determinismo offerto da DAQmx?[/quote:1pe9div2] scusa non ho capito... potresti spiegarmi un po' meglio come funziona quesa cosa qui e dove la vado a prendere? mi quanto sono niubbo... \":?\" \":|\" ---------------------------------------- AUTORE: 645 DATA :12/09/2006 - 13:24:44 ---------------------------------------- Questi sono alcuni link a pagine riguardanti daqmx e i problemi di tempo: http://zone.ni.com/devzone/devzone.nsf/ ... 1900467FC1 http://zone.ni.com/devzone/devzone.nsf/ ... 190047F05D http://zone.ni.com/devzone/conceptd.nsf ... 990080A720 . Non so indicarti niente di più preciso: non ho particolare esperienza con le questioni di determinismo perchè non ho incontrato molti problemi realtime. Però ho un collega che usa realtime e sfrutta abbastanza le tecniche daqmx. Se riesco a trovare qualcosa di più preciso ti dico... ---------------------------------------- AUTORE: 247 DATA :12/09/2006 - 15:51:38 ---------------------------------------- Ciao, [quote:fp0ntahk]come faccio ad essere sicuro che i 128 campioni siano prelevati singolarmente, e che siano relativi allo stesso istante di tempo? [/quote:fp0ntahk] a meno che tu non abbia una scheda con un ADC per ogni canale in ingresso capaci di campionamenti simultanei basati sullo stesso clock di scan, la contemporaneità non solo non è garantita ma è addirittura sicuro il contrario, ovvero la contemporaneità di campionamento è impossibile dato che l'unico ADC presente viene multiplexato tra gli ingressi e quindi ovviamente il valore degli ingressi viene letto in successione. dovresti dire che modello di scheda stai utilizzando per fugare i dubbi. [quote:fp0ntahk]come faccio ad essere sicuro che i valori RMS siano equispaziati nel tempo? [/quote:fp0ntahk] Per ottenere un'acquisizione con tempistiche piuttosto certe devi utilizzare il clock interno della scheda di acquisizione, la precisione temporale dipenderà quindi dalla frequenza del clock interno che insieme al counter determinerà se è arrivato il momento di attivare la conversione del segnale analogico in digitale; attualmente il clock medio delle schede dovrebbe essere di circa 80 MHz per una risoluzione temporale corrispondente di 12,5 ns. A queste "tempistiche" devi però aggiungere i tempi di cui ti parlo sopra in caso di ADC multiplexato. BYE. ---------------------------------------- AUTORE: 1335 DATA :12/09/2006 - 16:00:50 ---------------------------------------- [quote:dfrus8e4]Ciao, [quote:dfrus8e4]come faccio ad essere sicuro che i 128 campioni siano prelevati singolarmente, e che siano relativi allo stesso istante di tempo? [/quote:dfrus8e4] a meno che tu non abbia una scheda con un ADC per ogni canale in ingresso capaci di campionamenti simultanei basati sullo stesso clock di scan, la contemporaneità non solo non è garantita ma è addirittura sicuro il contrario, ovvero la contemporaneità di campionamento è impossibile dato che l'unico ADC presente viene multiplexato tra gli ingressi e quindi ovviamente il valore degli ingressi viene letto in successione. dovresti dire che modello di scheda stai utilizzando per fugare i dubbi. [quote:dfrus8e4]come faccio ad essere sicuro che i valori RMS siano equispaziati nel tempo? [/quote:dfrus8e4] Per ottenere un'acquisizione con tempistiche piuttosto certe devi utilizzare il clock interno della scheda di acquisizione, la precisione temporale dipenderà quindi dalla frequenza del clock interno che insieme al counter determinerà se è arrivato il momento di attivare la conversione del segnale analogico in digitale; attualmente il clock medio delle schede dovrebbe essere di circa 80 MHz per una risoluzione temporale corrispondente di 12,5 ns. A queste "tempistiche" devi però aggiungere i tempi di cui ti parlo sopra in caso di ADC multiplexato. BYE.[/quote:dfrus8e4] Detto così mi fa paura... \":o\" la scheda che uso è una pci1200, ma non penso abbia un ADC per ogni canale, bensì penso l'acquisizione sia multiplexata. In questo caso, potresti spiegarmi un po' meglio cosa dovrei fare? siete riusciti a scaricare il file che ho hostato? Ricordo che uso labview 6.1. Grazie a tutti!! e* ---------------------------------------- AUTORE: 247 DATA :12/09/2006 - 16:25:47 ---------------------------------------- Ciao, [quote:kipb5apy]Detto così mi fa paura... la scheda che uso è una pci1200, ma non penso abbia un ADC per ogni canale, bensì penso l'acquisizione sia multiplexata. [/quote:kipb5apy] il datasheet della tua scheda dice: [color=blue:kipb5apy]The single-channel sampling rate of the ADC is 100 kS/s.[/color:kipb5apy] vuol dire che è sicuramente multiplexata e che la velocità massima quando l'ADC è dedicato ad un solo canale è 100Ks/s. Se la utilizzi al massimo sui tuoi sei segnali ottieni teoricamente max 16,6 Ks/s, sufficiente per i tuoi 1024Hz (Devi proprio spiegarmi perchè utilizzi una potenza del due come freq. camp. \";-)\"!). [quote:kipb5apy]In questo caso, potresti spiegarmi un po' meglio cosa dovrei fare? [/quote:kipb5apy] ho visto tra le altre cose che la tua scheda è piuttosto vecchia, e soprattutto che utilizzi LabVIEW 6...quindi niente DAQmx...\":(\" Purtroppo con le vecchie DAQ chiunque mi dà una paga che nemmeno immagini...\":D\" \":D\" \":D\" comunque devi impostare un'acquisizione di 128 campioni con timing dettato dalla scheda, sembra complicato ma è la base, devi capire che quando vuoi un pò di determinismo, l'unica cosa su cui puoi veramente contare è l'hardware grezzo della scheda dalla quale solo poi trarrai i dati per le eventuali visualizzazioni/elaborazioni. [quote:kipb5apy]siete riusciti a scaricare il file che ho hostato? [/quote:kipb5apy] Non l'ho ancora fatto! BYE. ---------------------------------------- AUTORE: 1335 DATA :12/09/2006 - 16:35:15 ---------------------------------------- [quote:1zozqluk] (Devi proprio spiegarmi perchè utilizzi una potenza del due come freq. camp. \";-)\"!). [/quote:1zozqluk] la utilizzo perchè i segnali devono essere sincronizzati con quelli degli elettromiografi da cui arrivano i segnali, che campionano a 1024 oppure 2048 o ancora 4096 \";)\"... anche se mi sembra di capire che ho poche speranze di sincronizzare il tutto... e se volessi sincronizzare anche sommariamente l'acquisizione dei segnali? io adesso per iniziare l'acquisizione faccio che mandare un impulso di trigger agli elettromiografi, i quali (tramite altro software) vanno avanti per 5 secondi e poi smettono di acquisire; la scheda di acquisizione che devo programmare continua poi finchè non le dico di smetterla. NOn esiste un modo anche sommario di sincronizzazione? anche non perfetta, in fondo devo acquisire segnali da un torchimetro... e* ---------------------------------------- AUTORE: 247 DATA :12/09/2006 - 17:03:54 ---------------------------------------- Ciao, penso che tu possa sincronizzare l'inizio dell'acquisizione con lo stesso trigger che utilizzi per gli elettromiografi, controlla il manuale della tua scheda. Per il "sommariamente" non potrai mai far meglio dell'hardware che hai a tua disposizione ed pewr questo non parlerei di errore , perchè non stai sbagliando, ma semplcemente di limiti della tua scheda non ce la fà!!! CMQ 100Ks/s e multiplexer->l'errore di sincronizzazione tra il primo segnale che acquisisci ed il sesto è circa 60 microsecondi. BYE. ---------------------------------------- AUTORE: 1335 DATA :12/09/2006 - 17:15:20 ---------------------------------------- [quote:2ogphe9a]Ciao, penso che tu possa sincronizzare l'inizio dell'acquisizione con lo stesso trigger che utilizzi per gli elettromiografi, controlla il manuale della tua scheda. Per il "sommariamente" non potrai mai far meglio dell'hardware che hai a tua disposizione ed pewr questo non parlerei di errore , perchè non stai sbagliando, ma semplcemente di limiti della tua scheda non ce la fà!!! CMQ 100Ks/s e multiplexer->l'errore di sincronizzazione tra il primo segnale che acquisisci ed il sesto è circa 60 microsecondi. BYE.[/quote:2ogphe9a] Allora, supponiamo che il mio sistema acquisisca con questo ritardo i miei segnali (vabè, fa niente, ce lo facciamo andare bene). Che funzione devo utilizzare, e come? secondo voi, se utilizzassi un AI multi PT andrei bene? Finora (come si vede nel file che ho hostato) uso un AI s-scan in un ciclo for, e rendo il tutto continuo utilizzando un ciclo while esterno. Non è la stessa cosa? posso sincronizzare il ciclo while più esterno facendo in modo che i dati in uscita lo siano a circa 1/8 di secondo? Grazie ancora e* ---------------------------------------- ================================================================================ coordinate ================================================================================ AUTORE: 1435 DATA :12/09/2006 - 12:41:07 ---------------------------------------- qualcuno può dirmi quale routine devo usare per estrarre le coordinate da un immagine... vi prego, non ne posso più di cercare disperatamente... vi ringrazio di già... Manuel \":roll:\" ---------------------------------------- AUTORE: 1435 DATA :12/09/2006 - 12:48:35 ---------------------------------------- Ho fatto un pò di casino... Comunque, mi spiego meglio... io ho trovato il contorno di un immagine e devo estrarre le coordinate di quest'ultimo, magari riuscendo ad isolare una parte di questo con delle barre verticali ed orizzontali... Grazie a tutti... ---------------------------------------- AUTORE: 4 DATA :12/09/2006 - 13:18:07 ---------------------------------------- Ciao e benvenuto! non ho capito una cosa: quando parli di "immagine" intendi IMAQ o semplicemente un "picture control"? Ciao ---------------------------------------- AUTORE: 1435 DATA :12/09/2006 - 13:36:23 ---------------------------------------- parlo di imaq, io ho acquisito un immagine, ho provveduto ad elaborarla tramite il vision assistent. Perciò ora ho un'immagine in cui è evidenziato l bordo rispetto al resto, però voglio poter estrarre le coordinate di quest'ultimo e non sò come fare!! Spero di essere stato un pò più chiaro... ---------------------------------------- AUTORE: 4 DATA :13/09/2006 - 09:54:45 ---------------------------------------- che funxione usi per trovare il bordo? questa dovrebbe già ritornarti le coordinate. Ciao ---------------------------------------- AUTORE: 1435 DATA :13/09/2006 - 10:55:33 ---------------------------------------- per trovare il bordo converto l'immagine in bianco e nero attraverso color thersolds, poi MORPHOLOGY ed infine gray morphology. Però non mi da nessuna coordinata. Guardando le altre routine, imaq get point on contourn da come uscita segment information, cioè un array di colore violetto in cui tra le varie informazioni ci sono le coordinate (in marrone) però non so se e come si faccia ad estarre solo quell'informazione. A me interessano solo quelle perchè poi devo interpolare i punti attraverso GENERAL POLYNOMIAL FIT, perciò dovrò convertire nuovamente i dati! Per favore mandami un esempio di come potrei fare, ti ringrazio di già! ---------------------------------------- AUTORE: 1030 DATA :13/09/2006 - 11:40:20 ---------------------------------------- Non so nulla di imaq, ma da quello che scrivi penso che quando parli di colore [i:3f918820]violetto[/i:3f918820] in realtà tu intenda il tipo di tado stringa e quando parli di colore [i:3f918820]marrone[/i:3f918820] intenda un dato di tipo cluster. Se così fosse puoi estrarre l'informazione che ti serve dal cluster attraverso la funzione "unbundle" o "unbundle by name". P.S. prima di avventurarti ti consiglio di leggere qualcosa sulle basi della programmazione LabVIEW (per esempio sui tipi di dato). Non conoscendo imaq non posso inviarti un esempio. ciao ciao ---------------------------------------- AUTORE: 1435 DATA :13/09/2006 - 12:32:13 ---------------------------------------- Certo, Mark of Life, le tue precisazioni sono corrette, cercherò di documentarmi meglio, la mia definizione effettivamente era troppo alla buona ma ero di fretta e non ricordavo le tipologie di variabili. Se qualcuno può mandarmi un esempio sulla richiesta di esempio per collegare imaq get point on contourn e GENERAL POLYNOMIAL FIT per fare l'interpolazione dei punti, lo ringrazierei! Fatemi sapere se la strada che sto cercando di perseguire è corretta o meno! Vi ringrazio di già per l'aiuto che mi state fornendo, davvero, non pensavo ci fosse tutta questa partecipazione, cercherò di condividere con voi le mie conoscenze,(appena ne sarò in possesso)!! \":idea:\" Spero che qualcuno mi possa aiutare per ultimare il mio lavoro!! \":wink:\" ---------------------------------------- AUTORE: 1435 DATA :13/09/2006 - 13:15:44 ---------------------------------------- Ho provato ad utilizzare la funzione unbundle ed unbundleByName ma non funziona perche io devo dare come ingresso una stringa(viola) e voglio ottenere in uscita i cluster(marrone), cioè le coordinate dei punti... HELP HELP \":?\" \":?:\" ---------------------------------------- AUTORE: 1030 DATA :13/09/2006 - 13:27:42 ---------------------------------------- Non capisco cosa intendi!!! In uno dei post precedenti scrivevi :"[i:3g1xnwda]un array di colore violetto in cui tra le varie informazioni ci sono le coordinate (in marrone)[/i:3g1xnwda] \":?:\" \":?\" Se l'informazione che hai è un array di stringhe puoi prendere gli elementi che ti interessano e poi crearti il cluster che ti serve..., se intendi altro non capisco proprio. ---------------------------------------- AUTORE: 1435 DATA :13/09/2006 - 13:51:11 ---------------------------------------- [quote="Mark Of Life":2eyv22wm]Non capisco cosa intendi!!! In uno dei post precedenti scrivevi :"[i:2eyv22wm]un array di colore violetto in cui tra le varie informazioni ci sono le coordinate (in marrone)[/i:2eyv22wm] \":?:\" \":?\" [/quote:2eyv22wm] Esatto, è proprio ciò che ho, un array violetto ove ci sono all'interno delle informazioni relative a dati tipo cluster. Con la tua funzione unbundle o unbundlebyname bisogna inserire in ingresso un dato tipo cluster. Probabilmente mi son spiegato male io, spero che te abbia capito qual'è il mio problema e mi possa consigliare sulla routine da usare!! ---------------------------------------- AUTORE: 1030 DATA :13/09/2006 - 14:11:12 ---------------------------------------- invia un'immagine della struttura se puoi! ---------------------------------------- AUTORE: 1435 DATA :14/09/2006 - 08:22:19 ---------------------------------------- ecco l'immagine... \":(\" ---------------------------------------- AUTORE: 1030 DATA :14/09/2006 - 10:34:05 ---------------------------------------- Non hai allegato l'immagine!!! \":o\" riprova \":wink:\" ---------------------------------------- AUTORE: 1435 DATA :14/09/2006 - 15:16:17 ---------------------------------------- Spero di averlo allegato ora... Scusami! \":cry:\" ---------------------------------------- AUTORE: 1435 DATA :14/09/2006 - 15:20:38 ---------------------------------------- mah!? ---------------------------------------- AUTORE: 1435 DATA :14/09/2006 - 15:21:42 ---------------------------------------- ora ho fatto l'allegato, che faticaccia... beh, se qualcuno mi può aiutare.. grazie!! ---------------------------------------- AUTORE: 278 DATA :15/09/2006 - 09:29:01 ---------------------------------------- Ciao, purtroppo, l'allegato è solo una funzione di IMAQ, non ci aiuta molto a capire il tuo problema... Potresti rispiegarci per benino cosa vuoi fare con la tua immagine?? Non ho capito bene se: 1) vuoi sapere le coordinate del bordo della tua immagine (e qui è facilissimo, basta sapere la sua risoluzione...) 1) vuoi ricavare le coordinate di un'oggetto all'interno dell'immagine 3)......????? Ciao ciao ---------------------------------------- ================================================================================ run vi senza installare labview ================================================================================ AUTORE: 595 DATA :13/09/2006 - 13:24:38 ---------------------------------------- Ho realizzato un Vi per regolazione ,controllo e acquisizione dati tramite schede Daqmx. Il tutto funziona correttamente + o -. Ora non mi rimane che creare un eseguibile che giri su un qualsiasi pc su cui non è installato Labview; so che si può fare! qualcuno mi può aiutare? Ci sono controindicazioni in merito? ---------------------------------------- AUTORE: 1030 DATA :13/09/2006 - 13:31:27 ---------------------------------------- Per realizzare un'applicazione LabVIEW stand-alone hai bisogno dell' Application Builder. E' un package a parte! ciao ciao ---------------------------------------- AUTORE: 595 DATA :13/09/2006 - 13:52:04 ---------------------------------------- scusami ma non ti seguo, in parole povere? ---------------------------------------- AUTORE: 838 DATA :13/09/2006 - 13:56:48 ---------------------------------------- puoi creare un eseguibile .exe che contiene tutto il tuo lavoro basta installare le runtime (gratuite e di pochi mega) e copiare solo il file eseguibile poi il gioco è fatto \":D\" per creare l'eseguibile occorre l'Application Builder, è un AddOn di Labview da comprare a parte ---------------------------------------- AUTORE: 748 DATA :20/09/2006 - 20:19:41 ---------------------------------------- In alternativa puoi includere nella directory dell'eseguibile i files presenti nella directory: C:\Programmi\National Instruments\Shared\LabVIEW Run-Time\7.1 Non mi ricordo bene in quali casi non funziona (quasi sicuramente con IMAQ vision) ma in genere è una valida alternativa per chi non vuole installare le run-time Mark ---------------------------------------- AUTORE: 278 DATA :21/09/2006 - 08:59:24 ---------------------------------------- [quote:35chw3io]scusami ma non ti seguo, in parole povere?[/quote:35chw3io] Praticamente, l'Application Builder è un "pacchetto" software che ti permette di creare dei file eseguibili (.exe) partendo dai codici sorgnete di LV. Questo Applicaton builder non è contenuto nella versione "base" di LV, va installato da un cd a parte. Questo epr quanto riguarda la compilazione. Per "lanciare" un eseguibile creato con LV, devi avere installato sulla macchina target il "run time engine", altro software scaricabile gratuitamente dal sito National. Si tratta di un'insieme di librerie, tipo il Java runtime environment. ---------------------------------------- ================================================================================ Applicazioni a tutto schermo ================================================================================ AUTORE: 927 DATA :13/09/2006 - 14:26:21 ---------------------------------------- Vorrei che la finestra dell'applicazione fosse sempre massimizzata, così ho tolto "allow user to resize window" e messo "size the front panel to the entire screen". Funziona a parte una cosetta, la finestra si mangia anche la barra delle applicazioni di Windows, o a volte peggio ancora, la barra si vede ma non è cliccabile. Se si massimizza una finestra a mano questo non succede... C'è modo di rispettare la barra? ---------------------------------------- AUTORE: 1450 DATA :13/09/2006 - 15:31:21 ---------------------------------------- Prova con quello che dicono in questo link: http://digital.ni.com/public.nsf/websea ... enDocument Ciao Ken ---------------------------------------- AUTORE: 927 DATA :14/09/2006 - 15:58:23 ---------------------------------------- In effetti dicono di fare le stesse cose che faccio io... Cmq credo di aver scoperto l'inghippo, non so se è voluto o se è un baco: dipende dallo stato della finestra prima dell'esecuzione, quando il VI è in fase di sviluppo. Se la massimizzo, quando poi lancio il VI si mangia anche la barra. Se la lascio a grandezza libera, quando lancio il VI si massimizza senza mangiare la barra. (7.1) ---------------------------------------- AUTORE: 838 DATA :14/09/2006 - 16:52:39 ---------------------------------------- ho notato pure io ste cose è molto importante ricordarsi di come si usa nello sviluppo la finestra io sono diventato pazzo per un'apllicazione 800x600, sul mio pc a 1600x1200 andava corettamente lasciando grigia la parte "in più", dal cliente un disastro, le finestre erano sballate ho impostato 800x600 il mio pc, ho semplicemente risalvato i vi, poi per magia andava tutto \":twisted:\" ---------------------------------------- ================================================================================ Acquisizione dati analogici ================================================================================ AUTORE: 963 DATA :13/09/2006 - 14:40:42 ---------------------------------------- Ciao a tutti, ho un piccolo problema con l'acquisizione di segnali di tensione e correnti attraverso MeetView. Facendo la scansione multipoint e continuando a richiamarla perdo ogni volta alcuni dati dopo ogni chiamata... Ho provato con la funzione onepoint ma non riesco a visualizzare una forma d'onda coinvincente.... ---------------------------------------- AUTORE: 4 DATA :05/10/2006 - 11:35:08 ---------------------------------------- A che velocità campioni? Dovresti valutare di usare l'acquisizione continua, trovi diversi esempi tra quelli di LabVIEW Ciao ---------------------------------------- AUTORE: 963 DATA :05/10/2006 - 14:23:58 ---------------------------------------- Ho provato ad utilizzare anche la scansione continua ma si comporta uguale a quella one point perchè, invece di visualizzare una bella forma d'onda, visualizzo un'onda che sembra un disturb0 ( non so se mi sono spiegato bene). Con il multipoint visualizzavo una bella forma d'onda ma non acquisivo parte di segnale. Per il campionamento ho creato un while loop con temporizzazione 10 ms ( sufficente per un segnale a 50 HZ) con in esso la funzione onepoint. Così facendo dovrebbe acquisire un campione ogni 10 ms ma non ho avuto un risultato soddisfacente... \":cry:\" Ciao ---------------------------------------- AUTORE: 247 DATA :05/10/2006 - 21:48:04 ---------------------------------------- Ciao, [quote:2e1af7y3]visualizzo un'onda che sembra un disturb0 ( non so se mi sono spiegato bene)[/quote:2e1af7y3] puoi postare un'immagine? Il fatto che ti sembri un disturbo potrebbe semplicemente derivare dal fatto che non visualizzi correttamente l'onda che stai acquisendo, l'effetto visivo è simile a quello che si ha guardando sull'oscilloscopio un'onda senza trigger? [quote:2e1af7y3] Per il campionamento ho creato un while loop con temporizzazione 10 ms ( sufficente per un segnale a 50 HZ) con in esso la funzione onepoint. Così facendo dovrebbe acquisire un campione ogni 10 ms ma non ho avuto un risultato soddisfacente... Crying or Very sad [/quote:2e1af7y3] se utilizzi un normale while temprizzato in abbinamento alla onepoint non avrai mai la certezza di campionare ad una data frequenza, inoltre 10 ms sono assolutamente il limite inferiore, che io non utilizzerei mai, per acquisire un segnale supposto con freq. 50Hz. BYE. ---------------------------------------- AUTORE: 963 DATA :06/10/2006 - 10:33:51 ---------------------------------------- Se sono riuscito ad allegare l'immagine si dovrebbe vedere una forma d'onda che dovrebbe essere una tensione 230 50 Hz.... Come posso fare per essere certo di acquisire ad una determinata frequenza? Probabilmente allora è per quello che non la visualizzo correttamente.... Non so se è un problema di grafica perchè ho provato a cambiare scala al chart ma non sono riuscito ad avere una visualizzazione migliore... Ciao, grazie ---------------------------------------- AUTORE: 645 DATA :06/10/2006 - 10:56:23 ---------------------------------------- Concordo con Apollon sul fatto che usare il limite minimo per un corretto campionamento non è mai consigliabile. Prova ad aumentare la frequenza di campionamento (magari 5 ms) e vedi se la forma d'onda migliora. Se non hai esigenze strettissime di determinismo (RealTime) prova a usare soluzioni tipo "Wait until" anzichè "Delay" per aumentare la precisione della scansione (se puoi modificare il codice sorgente dell'applicazione). ---------------------------------------- AUTORE: 963 DATA :06/10/2006 - 11:28:04 ---------------------------------------- Ho provato a diminuire il tempo d'intervallo ed utilizzare anche wait until ma non è cambiato niente.. Allego il VI che ho costruito cambiando tipo di acquisizione e che però mi dà comunque il problema.... Ciao, grazie ---------------------------------------- AUTORE: 963 DATA :06/10/2006 - 11:30:26 ---------------------------------------- Aggiungo pure che non so se il modo maggiormente consono per acqusire ma è da poco che uso LabView e quindi devo ancora imparare i trucchetti del mestiere... \":D\" Ciao, CIao ---------------------------------------- AUTORE: 645 DATA :06/10/2006 - 12:11:42 ---------------------------------------- Una cosa così? (vedi immagine). Devi aggiungere gli altri nomi dei canali presenti nella tua scheda. In Max vedi i nomi dei canali che vuoi acquisire? (I1, I2, I3...) ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 12:38:24 ---------------------------------------- Fatte attenzione all'uso che si fa del teorema di Nyquist (o di Shannon, comunque lo conosciate). \":)\" Se un segnale ha uno spettro in frequenza nullo oltre Fmax, può (sempre nella teoria) essere acquisito campionandolo con una frequenza Fs=2*Fmax. Attenzione, però, che ci sono condizioni a cui "la funzione", cioè, il segnale, deve ubbidire perchè si possa applicare il teorema e che noi - lasciata l'universitá - non verifichiamo mai! \":wink:\" Senza richiamare le tanto odiate e fastidiosissime formule matematiche \":roll:\" , si può dire che un segnale campionato a 2*Fmax può essere ricostruito, si, ma solo con l'aiuto di una sèrie di funzioni "sinc()" [sin(x)/x)] - il classico "zero order hold" non può bastare. In generale vale la seguente regola: 1) se si campiona un segnale per farne la FFT ed elaborarlo in frequenza, allora Fs=2*Fmax. Attenzione a non stare stretti su Fmax, perchè sappiamo che non esistono segnali reali con lo spettro perfettamente nullo oltre una certa Fmax; bisogna dare un pò di margine per evitare fenomeni di aliasing. 2) se si devono fare misurazioni di tempo o di ampiezza, oppure se si deve ricostruire il segnale, vale anche se solo per visualizzarlo, è buona norma Fs=10*Fmax come minimo, fermo restando che possa essere necessário aumentare Fs empiricamente. L'alternativa è fare i conti: Fs va determinata in funzione del minor dettaglio che si vuole apprezzare nel punto di derivata massima del segnale da campionare. Nel caso di una sinusoide f(t)=A*sin(2*pi*F*t) è facile: semplicemente non può essere campionata a 2*F, perchè può capitare che la si prenda sempre sui punti di zero e quindi non si ha informazione; invece va vista la derivata che è massima negli istanti multipli di pi (cioè t=k*pi) e vale 2*pi*F*A. Essendo quindi df/dt=2*pi*F*A, avendo stabilito df (il minor dettaglio che si vuole apprezzare), si determina dt, e cioè, Fs. Non volevo che ne uscisse una lecture, e me ne scuso con quanti mi taciterano di "saputello". Siccome è una difficoltá che ricordo benissimo di aver dovuto districare da solo (ahimè, tanto tempo fa!), e più volte ho osservato, ho voluto condividere questa riflessione con tutti. Saluti. ---------------------------------------- AUTORE: 963 DATA :11/10/2006 - 10:41:16 ---------------------------------------- Ciao a tutti... Per il solito problema d'acquisizione ho provato ad utilizzare multipint ma, come si può notare dall'immagine, ogni volta che, essendo in un while, si richiama, perdo alcuni dati dell'onda... come posso fare per risolvere il problema? Ciao, grazie ---------------------------------------- ================================================================================ multi-subVi ================================================================================ AUTORE: 1451 DATA :13/09/2006 - 23:23:32 ---------------------------------------- Salve! Volevo un suggerimento riguardo il problema di lanciare lo stesso subVi più volte partendo da un Vi base. Esempio: Base.vi----->subvi.vi |--->subvi.vi ................ ................ |--->subvi.vi quindi con la possibilità di potermi spostare tra i vari subvi.vi semplicemente cliccando sul title bar di ognuno di loro. Devo fare questo perchè la subvi.vi mi deve elaborare con appositi comandi l'immagine e nel frattempo confrontarla con l'altra immagine che si trova su un altro subvi.vi Ho provato di tutto e ho notato che si può chiamare lo stesso subvi.vi solamente sè stato chiuso quello precente ad esso. Come devo fare? \":|\" ---------------------------------------- AUTORE: 645 DATA :13/09/2006 - 23:35:17 ---------------------------------------- Che versione di LabView usi? ---------------------------------------- AUTORE: 838 DATA :14/09/2006 - 07:21:25 ---------------------------------------- mi sembra sia possibilire richiamare più volte lo stesso subvi contemporanemanete. ma la national mi aveva detto che potevano esserci dei problemi per la sovrascrittura della stessa aera di memoria. però ci dovrebbe essere una opzione nel vi execution che dovrebbe fare al caso tuo attendiamo qualcuno di più esperto ---------------------------------------- AUTORE: 1165 DATA :14/09/2006 - 07:36:42 ---------------------------------------- Dovresti definire il sub-vi come "reentrant", in modo che ogni singola volta che viene chiamato si alloca una sua propria area di memoria non condivisa con nessun'altra chiamata al medesimo vi. Una delle conseguenze immediate, oltre al non sovrascriversi fra "istanze" differenti, è quella che non si devono "aspettare" fra loro. Ciao, Enrico. ---------------------------------------- AUTORE: 645 DATA :14/09/2006 - 08:55:04 ---------------------------------------- Su questo post molto incasinato ( viewtopic.php?t=2014&highlight= ) ho affrontato un problema simile. Tra le opzioni del VI (in realtà del subVI) puoi settare la voce "reentrant": così hai la possibilità di richiamare n volte il subVI all'interno di un VI principale senza condizionare l'esecuzione del programma. Durante l'esecuzione LabView segue la logica del flusso di dati e non dell'ordine di scrittura dei comandi. Significa che ogni nodo (ogni pezzo) di codice viene eseguito solo quando tutti gli ingressi sono disponibili. Se richiami n volte un subVI non otterrai mai un'esecuzione "in parallelo" perchè, anche creando strutture a cicli multipli che permettono l'esecuzione "in parallelo", ogni istanza del subVI viene eseguita dopo l'istanza chiamata in precedenza in modo da non accedere contemporaneamente alla memoria. Settando il subVI come "reentrant" questa limitazione viene annullata. Se però devi chiamare più volte lo stesso subVI a partire da un VI principale (una specie di interfaccia principale che apre più volte la stessa interfaccia secondaria) devi settare, oltre all'opzione "reentrant", alcune opzioni per il pannello frontale ("Apri pannello frontale" e "Chiudi pannello frontale alla fine"). Queste due opzioni sono disponibili da LabView 8 in poi (in LabView 7 ci sono ma vengono disabilitate nel momento in cui attivi la proprietà "reentrant"). ---------------------------------------- ================================================================================ Programma per scanivalve. ================================================================================ AUTORE: 1452 DATA :14/09/2006 - 14:27:48 ---------------------------------------- Ciao a tutti Sono nuovo da queste parti e soprattutto sono un nuovo utilizzatore di Labview. Le mie conoscenze sono prossime allo zero. Devo fare un programma che mi permetta di controllare via software una scanivalve. PEr chi non lo sapesse una scanivalve è un misuratore di pressione a più porte. esempio Porte 1-2-3-4-5-6-7-8-9-10 Il programma deve leggere porta 1 scrivere i dati spostare il sensore su porta 2 leggere porta 2 e così via. Non ho la benchè minima idea di come far "spostare" il sensore! Qualcuno di voi ha 5 minuti da spendere per questa nobile causa? Vi ringrazio anticipatamente! Luca ---------------------------------------- AUTORE: 645 DATA :14/09/2006 - 15:53:28 ---------------------------------------- Hai un manuale di questo strumento? Qualche link in internet per trovare le specifiche? Come ti colleghi a questo strumento? Tramite porta seriale, ethernet... ---------------------------------------- AUTORE: 1452 DATA :14/09/2006 - 16:26:14 ---------------------------------------- Allora mi collego tramite porta seriale. Il problema è che è una sorta di strumento fatto in casa. Per spiegarlo velocemente è un tubo grande con tanti tubicini lungo la circonferenza. Il mio problema principale è che non ho idea di come impostare il programma avendo zero esperienza di labview. Ora sto andando a tentoni ma i risultati sono scarsi. Per darti un'idea di cosa possa essere una scanivalve guarda qui: http://www.scanivalve.com/ Grazie comunque per l'attenzione e per aver risposto Luca ---------------------------------------- AUTORE: 645 DATA :14/09/2006 - 18:40:04 ---------------------------------------- Ho guardato il sito: di questi manuali (http://www.scanivalve.com/doc/support_manuals.htm ) ce n'è uno che si avvicina al prodotto che usi tu? O hai costruito in casa tutto il sistema? L'idea è che se a bordo del sistema c'è una logica che in base a determinati comandi attua qualche azione (muove un motore, esegue una lettura da un sensore...) si può comandare questa logica con LabView. Di solito comunicando per porta seriale si possono inviare stringhe di dati che corrispondono a comandi precisi e ottenere i risultati voluti, siano essi di output o di input. ---------------------------------------- AUTORE: 278 DATA :15/09/2006 - 09:31:27 ---------------------------------------- Ciao, perdona la domanda banale, ma cosa intendi per "spostare" il sensore??? Intendi "leggere" da un canale diverso o porprio spostare fisicamente un'oggetto?? \":o\" \":o\" ---------------------------------------- AUTORE: 1452 DATA :15/09/2006 - 10:11:17 ---------------------------------------- Intendo spostare fisicamente il sensore. Dare il comando per spostarlo. A quel punto credo che l'aquisizione possa essere fatta su un unico canale. In ogni caso lo schema credo sia quello nell'allegato. Non ho la minima idea di che comando usare per comunicare tramite una porta seriale. Ho sempre solo fatto acquisizione dati tramite schede di acquisizione. Grazie \":(\" Luca ---------------------------------------- AUTORE: 278 DATA :15/09/2006 - 10:56:04 ---------------------------------------- Adesso ho capito.. credo \":wink:\" Lo scainvalve dovrebbe darti a disposizione un comando per fare questo "scambio" di sensore, e imamgino che tu debba daglielo via seriale. Usare la seriale in LabVIEW è facilissimo, ti consiglio di guardare gli esempi e cercare il "basic serial write and read" o qualcosa di simile (cmq, argomento molto trattato su qs. forum). Imposti la porta (baud rate, stop bit, parità ecc), a questo punto mandi il comando per lo swap del sensore. Prendi confidenza con lo strumento, sperimenta qualche comando via seriale, dopo pensiamo a fare l'automa a stati per il tuo progetto... \":wink:\" Ciao ciao ---------------------------------------- AUTORE: 1452 DATA :15/09/2006 - 11:21:00 ---------------------------------------- Ottimo. Ora cerco di iniziare da capo con calma. Grazie mille comunque! ---------------------------------------- AUTORE: 645 DATA :15/09/2006 - 12:10:41 ---------------------------------------- Scusa se rifaccio praticamente la stessa domanda... io non ho capito se a bordo del tuo sistema c'è una logica che può ricevere comandi per agire di conseguenza (attivare qualcosa o leggere il valore di un sensore). ---------------------------------------- AUTORE: 1452 DATA :15/09/2006 - 13:22:41 ---------------------------------------- Credo sia presente dato che il sensore può essere spostato via software ma è anche presente la porta seriare a 25pin che permette di collegarlo al computer. Inoltre mi han detto che anni fa è stato fatto un orgramma in labview per questo stesso sistema che funzionava come ti ho detto in precedenza. Acquisisci, scrivi, cambia sensore. Aquisisci, scrivi, cambia sensore. So che è difficile parlare con me data la mia enorme ignoranza in materia e quindi uso parole che possono essere fraintese o non sono quelle esatte. ---------------------------------------- AUTORE: 645 DATA :15/09/2006 - 13:54:00 ---------------------------------------- No no, le parole sono giuste. Il problema è che per fare tutte le operazioni di spostamento e lettura bisogna conoscere le "parole" da dire allo strumento. Dovresti riuscire a recuperare queste parole da un manuale o da chi ha già usato qualcosa di simile. ---------------------------------------- AUTORE: 1452 DATA :17/09/2006 - 12:26:53 ---------------------------------------- Continuo ad avere problemi. Dalla base! Pare che non ci sia comunicazione tra il computer e lo strumento. Se faccio l'analisi della porta con labview ho errori in scrittura e lettura. Devo forse settare la porta in qualche modo? Magari tramite bios? Per l'esattezza lo strumento è collegato alla porta parallela lpt1. Grazie ---------------------------------------- AUTORE: 1452 DATA :19/09/2006 - 10:55:24 ---------------------------------------- Ok, proviamo così. Come faccio a gestire una porta parallela? Input ed output? Magari da qui poi riesco ad andare avanti... Grazie ---------------------------------------- AUTORE: 645 DATA :19/09/2006 - 12:10:08 ---------------------------------------- Con i blocchi VISA puoi gestire la comunicazione attraverso porta seriale e parallela. Dai un'occhiata alla pagina http://sine.ni.com/apps/we/niepd_web_di ... e=external : scarica il file indicato. Si tratta di una semplice operazione di scrittura su "porta". Puoi scegliere una COM per gestire una seriale o Lpt1 per gestire una parallela (il blocco VISA Resource Name che trovi nella paletta VISA nel Block Diagram ti permette di scegliere). Con i blocchi Write e Read comunichi con lo strumento collegato. Per verificare se la tua porta sta lavorando puoi seguire il consiglio che trovi a pagina http://digital.ni.com/public.nsf/allkb/ ... cc007ec828 . Tienici aggiornati! ---------------------------------------- AUTORE: 1452 DATA :19/09/2006 - 12:52:39 ---------------------------------------- Ora provo a scaricarlo. Il problema è che, come vedi dal file che ho allegato, i pin sono tutti cambiati. PBson i pin di output e PA sono quelli di input. DEvo per caso scaricare qualche porgramma per settare i pin nel modo corretto? ---------------------------------------- AUTORE: 645 DATA :19/09/2006 - 12:56:36 ---------------------------------------- Non ci sono allegati nei tuoi post... ---------------------------------------- AUTORE: 278 DATA :19/09/2006 - 13:00:21 ---------------------------------------- Ciao, dallo schema riportato, ogni output è girato verso l'input, non è che si tratta di uno schema di "test" dello scainvalve?? Così com'è, dubito fortemente che si riesca a collegare alla parallela del pc....che , se non erro, tale collegamento deve essere fatto con un cavo pin-to-pin compatibile con connettore DB25. ---------------------------------------- AUTORE: 278 DATA :19/09/2006 - 13:04:56 ---------------------------------------- Dimenticavo.. per l'utilizzo della porta parallela, ti consiglio [url=http://www.ilvg.it/forum/download.php?id=298:2hv95v8o][u:2hv95v8o]questo[/u:2hv95v8o][/url:2hv95v8o] articolo scritto dal nostro Nicola... \":wink:\" ---------------------------------------- AUTORE: 1452 DATA :19/09/2006 - 13:16:32 ---------------------------------------- Il fatto che ogni input sia girato verso un output è stato fatto solo per evidenziare i pin corrispondenti. Non sono collegati tra loro. Il fatto è che numerosi pin che dovrebbero essere a massa sono invece attivi, così come output e input sono mischiati. Insomma... un bel pastrocchio! ---------------------------------------- ================================================================================ Generazione report NON CON WORD ================================================================================ AUTORE: 482 DATA :15/09/2006 - 07:15:04 ---------------------------------------- ...ma ciao! mi ritrovo a dover sconvolgere un mio software perchè è stato sviluppato utilizzando il report generation toolkit e realizzando un report in word tramite un template e i suoi bookmark, solo che adesso stiamo passando ad office 2003, poi passeremo ad office 2007 e questo crea dei problemi di compatibilità tra i pc che montano diverse versioni di office (soprattutto nelle consociate estere). Detto questo, ho pensato di sviluppare un report in html in modo che sia standard, senza problemi di versione software ecc. Il problema è che il report è un po' eleborato come layout e le funzioni di base non mi bastano, sarebbe comodo qualcosa tipo bookmark anche qui. Volevo chiedere se avete esperienze del genere e se ci sono alternative all'html..che ne so...rtf, xml...qualcosa che mi permetta di mettere a video una cosa del genere: - Intestazione; - tre colonne di dati con nome del dato e il dato in grassetto - immagine di un grafico - tabella con una riga evidenziata e gli headers in grassetto. Al momento sto realizzando una pagina html tipo template per poi modificare il codice html programmaticamente..... \":|\" ---------------------------------------- AUTORE: 129 DATA :15/09/2006 - 07:48:45 ---------------------------------------- Perchè non usi un VI bianco, con su il template che desideri e gli passi i dati? XML deve essere un ottima soluzione per lo scambio dati, potrest fare un template e ricevere i dati in xml, ma non l'ho mai fatto e non saprei nemmeno da dove cominciare (penso dalle function integrate in labview e dagli example) Vista la situzione multiutente, perchè non investi in un database?. Ciao,Nic ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 09:22:15 ---------------------------------------- C'e' già un database con i dati, il problema è che io devo creare una stampa direttamente dal mio software senza bisogno che loro accedanoal database, aprano il test necesario e lo stampino... ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 09:44:57 ---------------------------------------- Stavo valutando l'idea del front panel di un VI da stampare ma.... Nel mio report c'e' una tabella.... Come si a a fargli fare un autosize alle celle?? E a settare il carattere ? Ci sono i property node adatti? ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 10:23:14 ---------------------------------------- Allego il VI con il template di come andrebbe stampato. Se lo stampassi cosi' andrebbe tutto bene TRANNE LA TABELLA. Ed è quella sempre il problema grosso. Io dovrei Fare in modo che si vedano solo le caselle compilate, e che le colonne si ridimensionassero in qualche modo visualizzando tutto il testo contenuto negli headers e cmq se ci sono troppe colonne si stringessero...come dicevo prima..un autosize fit to width o qualcosa di simile. Qualcuno mi sa aiutare? ---------------------------------------- AUTORE: 247 DATA :15/09/2006 - 12:13:49 ---------------------------------------- Ciao, puoi scalare di una versione il VI che hai postato? Me lo da come 8.2 e non l'ho ancora installata! \";-)\" BYE. ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 12:47:39 ---------------------------------------- Cosi' è per la 8. C'e' un inizio di autosize che sto provando... ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 12:59:14 ---------------------------------------- Notavo inoltre che non è possibile mettere degli headers a piu' righe, cosa che mi servirebbe se devo modificare la larghezza delle colonne....ppff... ---------------------------------------- AUTORE: 247 DATA :15/09/2006 - 13:03:22 ---------------------------------------- Ciao, niente, me lo dà ancora per la 8.2...mumble mumble... BYE. ---------------------------------------- AUTORE: 129 DATA :15/09/2006 - 13:11:53 ---------------------------------------- Ecco la versione 8.0 ---------------------------------------- AUTORE: 129 DATA :15/09/2006 - 13:14:40 ---------------------------------------- [quote="gepponline":4ian2qpd]Stavo valutando l'idea del front panel di un VI da stampare ma.... Nel mio report c'e' una tabella.... Come si a a fargli fare un autosize alle celle?? E a settare il carattere ? Ci sono i property node adatti?[/quote:4ian2qpd] Se usi ambiente Access, puoi uilizzare ActiveX su DAO per eseguire una mcro di stampa per esempio.... ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 13:18:43 ---------------------------------------- si ma gli activeX sono legati alla versione di office...il mio problema originale... ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 13:20:07 ---------------------------------------- ah no aspetta..su ADO dici..mmhh.... ---------------------------------------- AUTORE: 247 DATA :15/09/2006 - 13:22:39 ---------------------------------------- Ciao, quello di nicola lo apre, forse il tuo gepponline è caduto nel tranello: [url=http://digital.ni.com/public.nsf/allkb/57BBAC42B44B1DBF8625719C004976BE:28qngbzd]VIs Saved for Previous From LabVIEW 8.2 to LabVIEW 8.0 May Not Work Correctly[/url:28qngbzd] That's all LabVIEW Folks! BYE. ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 13:26:27 ---------------------------------------- eh..ma per farlo dovrei avere anche la 8.0 installata e non ce l'ho...mmhh... cmq immaginati una tabella di testo...normalissima...con degli headers lunghi ch enon si vedono completamente....e un numero di colonne che deve essere variabile. Io all'interno di una larghezza fissa dell'indicatore tabella devo fare in modo che si autodimensionino le colonne per poter farci stare tutti i dati visibili... ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 13:30:23 ---------------------------------------- Cmq sta cosa degli ActiveX e ADO mi sa di piu' complicata che non facendomi una pagina html interamente in codice perchè non ho nessuna base per trovare proprietà e metodi che mi servono \":cry:\" ---------------------------------------- AUTORE: 129 DATA :15/09/2006 - 13:58:08 ---------------------------------------- Nenache io ho la 8 installata , ma a me funziona... Potresti usare un invoke per salvarti l'immagine del grafico, e gli oggetti che non riesci a ricrearti in html, poi ti crei una stringa di codice html che salvi su file pipo.html e il tuo report è fatto.... Non avevo pensato alle immagini, forse è più semplice e più creativo.... Good look ---------------------------------------- AUTORE: 482 DATA :15/09/2006 - 14:00:39 ---------------------------------------- In effetti al momento sto sviluppando quella via, e la tabella me la creo in codice html...quella in automatico si adatta alla pagina e si autoscala cosi' mi evita problemi! Fatto sta che in tutto questo ho riconfermato la mia delusione per la scarsa duttilità estetica delle tabelle di labview \":wink:\" ---------------------------------------- AUTORE: 748 DATA :20/09/2006 - 22:10:09 ---------------------------------------- Ciao, se permetti un consiglio non usare HTML... lo trovo un linguaggio più adatto al web che non a dei documenti. Io mi son trovato bene con i formati OpenDocument che hanno una struttura XML. Io generalmente procedo in questo modo: - Creo l'ossatura del report con un programma che possa salvare in OpenDocument (giusto per esser precisi OpenOffice) - A questo "apro" il file .ODT (sono dei files zippati per cui basta cambiare l'estensione in zip e vedere cosa c'e' dentro) e osservo i files .XML presenti all'interno - apro il file content.xml e faccio le modifiche standard necessarie (ad esempio sostituisco !testo! con il testo del report, aggiungo righe alle tabelle, etc) - ottenuto il file XML modificato ricreo il file ODT col processo inverso. Per riassumere: 1- ricavo il file content.xml che sarà la base dei report (operazione che fai un'unica volta) 2- copio il testo di content.xml nel VI e creo il file .ODT zippando tutti i files necessari e cambiando estensione Mark ---------------------------------------- AUTORE: 482 DATA :21/09/2006 - 08:04:29 ---------------------------------------- io ho usato lo stesso procedimento ma in html. Il problema dell'open document è cmq che poi per visualizzare i report dovrei installarmi sulla macchina il software adatto ( in questo caso OpenOffice). Il vantaggio dell'html è che non devo installare software aggiuntivo e se ho la necessità di mandare in giro ad altri laboratory o a vari enti i risultati dei miei test non ho problemi e possono aprirli tranquillamente indipendentemente dal software che montano sulle loro macchine. ---------------------------------------- ================================================================================ Digital Waveform Graph e LabView 8.2 ================================================================================ AUTORE: 1453 DATA :15/09/2006 - 09:10:46 ---------------------------------------- Buongiorno a tutti. Sto provando la versione 8.2 di Labview per la visualizzazione di segnali digitali(la nuova proprietà compare data mi torna utile per evidenziare segmenti di segnale). Il problema sta nel fatto che aggiungendo o togliendo un segnale, questo avviene nella parte superiore del grafico e non sin quella inferiore. Si può verificare il tutto nel vi DG_Test.vi che allego. Ho anche utilizzato la proprietà Yscale.Flipped che è perennemente FALSE pur collegando una costante TRUE. Qualche suggerimento in meriro ? Con la versione 7.1 il problema non sussiste, ma non vi è la possibilità "nativa" di evidenziare segmenti di segnale al fine di modificarne il valore. Grazie. Saluti Filippo ---------------------------------------- AUTORE: 1453 DATA :15/09/2006 - 09:20:09 ---------------------------------------- Ecco il vi che doveva essere allegato Filippo ---------------------------------------- ================================================================================ lettura dati da matlab ================================================================================ AUTORE: 1434 DATA :15/09/2006 - 10:14:17 ---------------------------------------- Ciao!devo passare un array da MATLAB a LabVIEW, ho provato a scriverlo su file di testo e file binari, ma ho sempre problemi di lettura. non resco a ottenere i dati come double \":|\" avete consigli o anche solo del materiale un po' approfondito sul fileI/O ? GRAZIE!!!! Andrea ---------------------------------------- AUTORE: 1030 DATA :15/09/2006 - 10:56:08 ---------------------------------------- Ciao Eccoti un link con alcuni esempi esempi di lettura e scrittura file . Magari trovi qualcosa di interessante. Comunque tutto dipende da come hai crato il file in MatLab! http://search.ni.com/nisearch/nisearchs ... file+I%2FO ---------------------------------------- ================================================================================ gestire una scheda tramite porta seriale RS232 ================================================================================ AUTORE: 1455 DATA :15/09/2006 - 11:15:06 ---------------------------------------- Ciao a tutti...sono al mio primo post e vorrei un consiglio su come utilizzare un VI per poter controllare una scheda di acquisizione da me realizzata. Premetto che sono alle prime armi con labview e nonostante abbia seguito le indicazioni del manuale non ho ottenuto dei risultati sperati. Passo ad illustrarvi la mia scheda: 5 ingressi analogici 0-5V 1 uscita analogica 0-5V precisione 8 bit. Dunque..se voglio acquisire dai canali devo inviare alla scheda la stringa $I0, I sta per input e 0 tutti i canali, lei converte la lettura di ciascun canale nel corrispondente carattere ascii e invia il pacchetto di 5 caratteri(da ch0 a ch4)al pc, quindi devo separare i 5 caratteri, convertirli e visualizzarli. Se invece voglio una certa tensione in uscita devo inviare $O seguito dal carattere che codifica il valore da porre in uscita (0:255) (0=0 Volt, 255=5 Volt) per esempio 1.6Volt: N=Vout*255/5=82 , devo convertire quindi il valore 82 nel carattere ascii (R) e la stringa completa sarà $OR, chiaramente vorrei prevedere la conversione nel VI in modo da poter inserire il valore numerico della tensione, in questo caso 1,6 . Ringrazio anticipatamente Sergio ---------------------------------------- AUTORE: 278 DATA :15/09/2006 - 11:17:36 ---------------------------------------- Ciao, hai già provato a comunicare con il tuo strumento?? Per le prime prove, ti consiglio di cercare negli esempi di LV, in particolare il "Basic serial write and read". ---------------------------------------- AUTORE: 1455 DATA :15/09/2006 - 11:44:46 ---------------------------------------- Ciao, ho realizzato in VB6 un programmino che dialoga benissimo con la scheda quindi sono sicuro del suo funzionamento..inoltre ho già provato ad utlizzare il "Basic serial write and read" il quale riesce ad inviare la stringa ma vorrebbe modificato in modo da poter convertire e leggere i relativi valori, cosa che non sono riuscito a fare. Io cmq inizialmente vorrei realizzare un VI dotato di quattro termometri, due vmeter e uno slider. Con lo slider vario la tensione che voglio in uscita alla scheda visualizzando contemporaneamente il valore sul vmeter, con l'altro vmeter visualizzo la tensione che ad un ingresso e con i termometri le temperature delle sonde applicate ai quattro ingressi. ---------------------------------------- AUTORE: 645 DATA :15/09/2006 - 12:09:09 ---------------------------------------- Con i blocchi VISA Write e VISA Read puoi comunicare con lo strumento. Selezioni una porta (tipo COM1), invii una stringa, aspetti un minimo di tempo per lasciare allo strumento la possibilità di comprendere i dati ricevuti ed elaborare la risposta, leggi dallo strumento e poi formatti la stringa ricevuta in base alle tue esigenze. A questo punto i dati formattati possono essere visualizzati in modo numerico o grafico. Guarda anche in giro per il forum perchè ci sono parecchie discussioni sulla comunicazione seriale... ---------------------------------------- AUTORE: 1455 DATA :16/09/2006 - 07:58:36 ---------------------------------------- Ciao MagicBotolo, il mio primo problema è quello di dover prendere in uscita dal blocco visa read il pacchetto di cinque caratteri ascii ricevuto dalla scheda( per esempio RRRRR) convertirli in in valore numerico (82-82-82-82-82) quindi visualizzare separatamente i cinque valori. Ho girato per il forum ma non sono riuscito a trovare qualcosa che mi potesse aiutare, è ancora troppo complesso per me. Grazie Sergio \":)\" ---------------------------------------- AUTORE: 645 DATA :16/09/2006 - 08:02:54 ---------------------------------------- La conversione che devi fare è da ASCII al corrispondente valore decimale? ---------------------------------------- AUTORE: 1455 DATA :16/09/2006 - 08:18:36 ---------------------------------------- Esatto.. ---------------------------------------- AUTORE: 129 DATA :16/09/2006 - 13:07:54 ---------------------------------------- Nella palette string trovi la function string to byte array, che ti restituisce un array di unsigned 8bit che corrispondono alla codifica che devi fare. Ti allego l'esempio. ---------------------------------------- ================================================================================ Immagini e etichette ================================================================================ AUTORE: 927 DATA :15/09/2006 - 11:33:19 ---------------------------------------- Come si fa ad accedere alle proprietà di immagini e etichette (le scritte indipendenti) nel pannello frontale? Non sembra possibile creare un property node. In particolare mi interesserebbe scalare in proporzione alla finestra le immagini, se non automaticamente come i controlli, almeno da programma. E cambiare da programma il carattere e simili delle etichette. ---------------------------------------- AUTORE: 927 DATA :15/09/2006 - 13:29:36 ---------------------------------------- Ho fatto passi avanti! Ho trovato come accedere alle proprietà delle decorazioni: Da un property node del VI ho preso la proprietà Front Panel, da questa a sua volta la proprietà Decorations[] che dà tutte le reference alle decorazioni, poi con un "To More Specific Class" si arriva alle proprietà del singolo oggetto... Un po' macchinoso, e non si capisce subito di chi è ogni reference... Idee migliori?? Poi ho visto che le immagini effettivamente le scala automaticamente come i controlli! Solo una certa immagine che ho copiato da un VI di un mio collega non me la scalava, vorrei sapere cosa gli ha fatto di speciale \":lol:\" ---------------------------------------- ================================================================================ multi vi ================================================================================ AUTORE: 1451 DATA :15/09/2006 - 17:16:33 ---------------------------------------- \":?\" Sono arrivato alla conclusione di dover lavorare con LabView 8.x, a quanto pare MagicBotolo a ragione che è una limitazione di LabView 7.x perchè ho provato di tutto ma nulla di buono. Alla prossima grazie a tutti! ---------------------------------------- ================================================================================ Apertura del file più recente in una cartella ================================================================================ AUTORE: 1458 DATA :16/09/2006 - 15:59:15 ---------------------------------------- Ciao a tutti! Utilizzo da poco LabVIEW e ho già i primi problemi. \":roll:\" Dovrei realizzare un vi che continui a girare e apra i file presenti in una cartella ma con le seguenti regole: -non bisogna aprire un file già aperto; -un file già aperto non può essere canellato (ciò significa che dovrei tenere in memoria in un array il nome dei file già aperti); -devo aprire il file + recente presente nella cartella. Avete qualche idea? Grazie 1000! ---------------------------------------- AUTORE: 129 DATA :16/09/2006 - 20:56:52 ---------------------------------------- Per verificare la data, puoi usare la funzione File directory info nella function palette -> File/Advanced. L'array memoria, per sapere se un file è già stato lanciato funziona se i file li apri esclusivamente da labview e quindi non riesci a sapere se è gia aperto.. ---------------------------------------- AUTORE: 1458 DATA :17/09/2006 - 11:47:26 ---------------------------------------- [quote="nicola":3ncsktgv]Per verificare la data, puoi usare la funzione File directory info nella function palette -> File/Advanced. L'array memoria, per sapere se un file è già stato lanciato funziona se i file li apri esclusivamente da labview e quindi non riesci a sapere se è gia aperto..[/quote:3ncsktgv] ti ringrazio per la risposta! ho già pensato di utilizzare la File directory info, ma il problema è che devo prima utilizzare la Directory list per avere un'array dei file presenti e poi utilizzare un for per cercarne di ognuno la data di modifica. Non esiste un altro modo per aprire solo l'ultimo file modificato? Grazie! ---------------------------------------- ================================================================================ partitore di tensione e corrente ================================================================================ AUTORE: 1464 DATA :18/09/2006 - 12:28:24 ---------------------------------------- salve a tutti, siamo 2 studenti del 5° anno dell itis A.Rossi di vicenza. Dobbiamo sviluppare mediante l'uso di Labview 8.0 un circuito elettrico che spieghi il funzionamento dei partitori di tensione e di corrente.Chiedavamo spiegazioni e chiarimenti al riguardo. Distinti saluti. ---------------------------------------- AUTORE: 278 DATA :18/09/2006 - 14:08:29 ---------------------------------------- Ciao Ragazzi, benvenuti!!! [img:3403l7rc]http://faccine.forumfree.net/bye1.gif[/img:3403l7rc] Cosa dovete fare di preciso?? Dovete simulare il comportamento di un partitore di tensione/corrente?? ---------------------------------------- AUTORE: 129 DATA :18/09/2006 - 14:14:15 ---------------------------------------- Ciao, ragazzi Siete stati molto generici e di conseguenza lo dovrò essere anche io. Per fare un lavoretto decente e d'impatto, dovreste fare una bella interfaccia grafica, io vi consiglio di usare due slide per le due parti di partitore che indicano la tensione che si ripartisce appunto. Per quanto riguarda il diagramma dovreste solo inserire le varie formule e crearvi indicatori che vi possono fornire il livello del segnale. In allegato la mia proposta ---------------------------------------- AUTORE: 645 DATA :18/09/2006 - 14:33:59 ---------------------------------------- Ciao, volete creare un partitore "hardware" (generatore, resistenze variabili e scheda di acquisizione) o "software" (un segnale e due formule matematiche camuffate da resistenze variabili)? Nel primo caso vi serve la strumentazione e la possibilità di acquisire i valori di tensione (ricreate un oscilloscopio collegato ad un circuito). Nel secondo caso LabView permette di generare i segnali e applicare formule matematiche. ---------------------------------------- AUTORE: 1464 DATA :20/09/2006 - 10:53:31 ---------------------------------------- Ottimo, grazie a tutti, ora ci metteremo al lavoro. Quest'anno lavoreremo molto con questo curioso software Saluti e buon lavoro ---------------------------------------- ================================================================================ gestione grafico ================================================================================ AUTORE: 1384 DATA :19/09/2006 - 11:53:34 ---------------------------------------- Ciao, volevo saper come far per graficare un vettore di 3 cordinate(ad esempio) in funzione del tempo in modo che l andamento di ogni cordinate sia rapresentato da una curva diversa. Grazie ---------------------------------------- AUTORE: 645 DATA :19/09/2006 - 12:11:20 ---------------------------------------- Scusa, non riesco a capire cosa intendi... ---------------------------------------- AUTORE: 1030 DATA :19/09/2006 - 13:17:00 ---------------------------------------- Se ho capito bene, dovresti crearti 3 vettori diversi uno per ogni coordinata e graficarli contemporaneamente creandoti una matrice (3xn) tramite il "build array" da passare al grafico. ciao ciao ---------------------------------------- AUTORE: 1465 DATA :19/09/2006 - 14:33:08 ---------------------------------------- se ho capito bene a te servirebbe dover parametrizzare le tre coordinate in funzione del tempo e tracciare la traiettoria in un grafico 3D ciao ---------------------------------------- AUTORE: 1465 DATA :19/09/2006 - 14:34:30 ---------------------------------------- se ho capito bene a te servirebbe dover parametrizzare le tre coordinate in funzione del tempo e tracciare la traiettoria in un grafico 3D ciao ---------------------------------------- AUTORE: 1384 DATA :22/09/2006 - 15:56:11 ---------------------------------------- [quote="bbrizio":2tr7gfi9]se ho capito bene a te servirebbe dover parametrizzare le tre coordinate in funzione del tempo e tracciare la traiettoria in un grafico 3D ciao[/quote:2tr7gfi9] propio cosi ciao ---------------------------------------- AUTORE: 645 DATA :22/09/2006 - 16:19:35 ---------------------------------------- Qualcosa di simile? ---------------------------------------- ================================================================================ Utilizzo di application builder con LabVIEW 8.0 ================================================================================ AUTORE: 424 DATA :20/09/2006 - 09:21:12 ---------------------------------------- Ciao a tutti ragazzi! Averi una cortesia da chiedere: qualcuno potrebbe illuminarmi sull'utilizzo di application builder? Come si creano gli eseguibili? Mi trovo un po' nei casini... Grazie! ---------------------------------------- AUTORE: 1030 DATA :20/09/2006 - 09:35:26 ---------------------------------------- Ciao la domanda è un pò generica, ma qua, forse, puoi trovare tutto quello che ti serve: http://zone.ni.com/devzone/conceptd.nsf ... F30062EC31 Buon Lavoro! ---------------------------------------- AUTORE: 278 DATA :20/09/2006 - 10:55:27 ---------------------------------------- Ciao, nella versione 8.0 l'application builder è un tantino differente dalle precedenti versioni... guarda [url=http://zone.ni.com/devzone/conceptd.nsf/webmain/5ADBC06AC32E508A8625706E0062EBD1#1:1rl5t91n][u:1rl5t91n]qui[/u:1rl5t91n][/url:1rl5t91n] ---------------------------------------- ================================================================================ Aumentare l'ora attuale del PC di 2 ore ================================================================================ AUTORE: 706 DATA :20/09/2006 - 11:03:11 ---------------------------------------- Ciao a tutti, Devo creare un subVI che mi restituisca insieme all'ora attuale anche l'ora attuale più 2 ore. C'è qualcosa di già fatto in LabView con alcuni blocchi ? Grazie per l'aiuto Francesco ---------------------------------------- AUTORE: 1030 DATA :20/09/2006 - 11:15:09 ---------------------------------------- ciao Tramite la funzione Get Date/Time in seconds ottieni il timestamp dell'ora attuale; se aggiungi i secondi corrispondenti a 2 ore (7200) ottieni il timestamp dell'ora attuale + 2 ore. Poi converti in stringa con la funzione Get Date/Time string ciao ciao ---------------------------------------- ================================================================================ Partitore di corrente ================================================================================ AUTORE: 1471 DATA :20/09/2006 - 11:32:54 ---------------------------------------- Ciao, sono un ragazzo e uso labview da poco tempo, Devo realizzare un partitore di corrente mediante labview 8.0 Avrei bisogno di consigli e di un'aiuto... Grazie ---------------------------------------- AUTORE: 645 DATA :20/09/2006 - 12:33:28 ---------------------------------------- Dai un'occhiata a viewtopic.php?t=2075&highlight= dove si parla di un problema simile. Se serve una mano siamo qui! ---------------------------------------- AUTORE: 278 DATA :20/09/2006 - 12:49:09 ---------------------------------------- hehehe, non scopiazzatelo, altrimenti il prof se ne accorge e ci da' la colpa a noi... \":lol:\" \":lol:\" ---------------------------------------- ================================================================================ Inserire un elemento in un array 2D ================================================================================ AUTORE: 1458 DATA :21/09/2006 - 10:39:02 ---------------------------------------- Ciao a tutti, mi ritrovo con questo problema che magari avrete già affrontato ma non sono riuscito a trovare risposte... ho un array 2D e devo inserire un elemento in una certa riga e colonna. Ho visto che con la funzione Insert Into Array si può inserire nel mio caso solo un array 1D. Devo allora inserire un array 1D con solo il primo elemento riempito e poi togliere dall'array finale gli elementi vuoti? o ci sono altri modi? grazie!!! ---------------------------------------- AUTORE: 1469 DATA :22/09/2006 - 01:07:22 ---------------------------------------- Prova ad utilizzare al posto della funzione "Insert into array" la funzione "Replace Array Subset", ha la stessa struttura. N.B. prima di collegare l'elemento da inserire nell'Array 2D devi specificare sia l'indice di riga che quello di colonna (se ne specifichi uno solo ti fa inserire un array 1D anzichè un singolo elemento). \":)\" ---------------------------------------- AUTORE: 1458 DATA :22/09/2006 - 07:15:34 ---------------------------------------- [quote="fabricio":vi8i70s9]Prova ad utilizzare al posto della funzione "Insert into array" la funzione "Replace Array Subset", ha la stessa struttura. N.B. prima di collegare l'elemento da inserire nell'Array 2D devi specificare sia l'indice di riga che quello di colonna (se ne specifichi uno solo ti fa inserire un array 1D anzichè un singolo elemento). \":)\"[/quote:vi8i70s9] ma io devo proprio aggiungere un elemento, non sostituirne uno con un altro... posso utilizzare ugualmente il Replace? \":roll:\" grazie! ---------------------------------------- AUTORE: 1469 DATA :24/09/2006 - 11:25:57 ---------------------------------------- Se devi inserire un elemento in un array 2D, è chiaro che questo array gia esiste ovvero sarà una matrice di n righe ed m colonne (al massimo con elementi tutti uguali a zero). La funzione "Replace Array Subset" sostituisce uno degli elementi della matrice con quello da te indicato, la funzione "Insert Into Array" invece inserisce in una determinata posizione una riga o una colonna (array 1D); in questo modo però viene modificata una delle dimensioni dell'array 2D (viene incrementata di uno), inoltre a seconda della posizione di inserimento gli elementi dell'array originario vengono spostati di posizione. Non è possibile inserire in un array 2D un singolo elemento, poichè altrimenti si avrebbero una riga ed una colonna con un elemento in più rispetto alle altre, mentre le righe e le colonne di un array devono avere tutte la stessa lunghezza.\":|\" ---------------------------------------- AUTORE: 1458 DATA :24/09/2006 - 12:17:46 ---------------------------------------- [quote="fabricio":3v3i3gpu]Se devi inserire un elemento in un array 2D, è chiaro che questo array gia esiste ovvero sarà una matrice di n righe ed m colonne (al massimo con elementi tutti uguali a zero). La funzione "Replace Array Subset" sostituisce uno degli elementi della matrice con quello da te indicato, la funzione "Insert Into Array" invece inserisce in una determinata posizione una riga o una colonna (array 1D); in questo modo però viene modificata una delle dimensioni dell'array 2D (viene incrementata di uno), inoltre a seconda della posizione di inserimento gli elementi dell'array originario vengono spostati di posizione. Non è possibile inserire in un array 2D un singolo elemento, poichè altrimenti si avrebbero una riga ed una colonna con un elemento in più rispetto alle altre, mentre le righe e le colonne di un array devono avere tutte la stessa lunghezza.\":|\"[/quote:3v3i3gpu] certo, questo mi era chiaro, ma pensavo esistesse un metodo per inserire un elemento unico, in modo da aumentare la dimensione di una riga o una colonna dell'array e fare un padding di elementi vuoti negli elementi delle altre righe/colonne. Grazie della risposta! ---------------------------------------- AUTORE: 1458 DATA :24/09/2006 - 12:19:18 ---------------------------------------- ovviamente intendevo dire che il padding deve essere fatto negli elementi finali della riga/colonna dell'array... ---------------------------------------- AUTORE: 129 DATA :24/09/2006 - 17:00:23 ---------------------------------------- Nell esempio allegato uso sia il insert in to array che il build array, prova a vedere se fa al caso tuo... Comunque nella sezione progetti/libreria ilvg, troviu uno stack register fatto con le code che puoi utilizzare per inserire disinserire dati... Ciao Nic ---------------------------------------- AUTORE: 1458 DATA :07/10/2006 - 12:17:09 ---------------------------------------- Grazie mille! ---------------------------------------- ================================================================================ [help] come variare i limiti di una color ramp in un ciclo ================================================================================ AUTORE: 1335 DATA :21/09/2006 - 15:28:55 ---------------------------------------- ciao ragazzi, vi pongo il mio nuovo problema. Sono dentro ad un ciclo while, e devo visualizzare un segnale con una color ramp. Vorrei poter variare in automatico i limiti minimo e massimo della color ramp, dimodochè il range di questa si adatti al massimo e al minimo valore del segnale. Come si può fare in modo automatico? Vi allego uno schema semplificato di quello che ho fatto finora, e che non mi funziona. Grazie a tutti! e* p.s. questo schema è in labview 7.1 ma lo devo fare col 6.1. Grazie ancora! ---------------------------------------- AUTORE: 1335 DATA :21/09/2006 - 19:10:07 ---------------------------------------- ragazzi, finora l'ho risolta utilizzando un chart con l'autoscale e poi settando min e max della colorramp con i property node della chart... però non c'è un metodo più immediato? ---------------------------------------- AUTORE: 1335 DATA :22/09/2006 - 16:05:57 ---------------------------------------- uppino \":)\" ---------------------------------------- AUTORE: 129 DATA :23/09/2006 - 14:04:37 ---------------------------------------- Se guardi bene, in scale, c'è la property Scale.hight color e scale.low color, dovrebbero fare al caso tuo. Ciao, nic ---------------------------------------- ================================================================================ FUNZIONE DI TRASFERIMENTO ================================================================================ AUTORE: 1474 DATA :22/09/2006 - 10:39:58 ---------------------------------------- Salve è da poco che uso il Labview e sono in difficoltà, infatti non riesco a determinare la funzione di tasferimento tra le pressioni acustiche misurate da due microfoni in un tubo di impedenza. Ho allegato il mio VI ed uno schema della strumentazione ---------------------------------------- AUTORE: 129 DATA :24/09/2006 - 17:54:28 ---------------------------------------- Scusa, non capisco se devi trovare la funzione o se conosci la fdt e non sai come implementarla, purtroppo non conosco questa fdt, quindi se posti la funzione troviamo il metodo di implementarla. Nicola ---------------------------------------- AUTORE: 1474 DATA :24/09/2006 - 18:29:16 ---------------------------------------- Il mio problema è trovare la funzione di trasferimento secondo questo schema tra le due posizioni microfoniche, H = p2/p1 ? ---------------------------------------- AUTORE: 384 DATA :24/09/2006 - 18:45:52 ---------------------------------------- Ciao. Apparentemente il tuo vi è corretto. Io avrei determinato la FDT tutta in frequenza, ma è una questione di scelta personale oppure di opportunitá, da come si implementa il resto del codice. Cos'è che non ti torna? ---------------------------------------- ================================================================================ allineamento celle tra array ================================================================================ AUTORE: 116 DATA :25/09/2006 - 13:50:44 ---------------------------------------- Ciao Ho sempre casini di grafica passando da un PC all’altro. Per esempio se nel mio PC allineo le celle di due array (un buleano e un numerico), dopo la compilazione(che non dovrebbe centrare niente) e il trasferimento al PC finale, sembrano cambiare i font all’interno del numerico, di conseguenza l’allineamento delle celle va a farsi friggere.(vedere foto) Ma per far rimanere costanti le dimensioni di queste celle esiste un metodo? Grazie a tutti coloro che possono dare un suggerimento Alberto S. ---------------------------------------- AUTORE: 116 DATA :25/09/2006 - 14:01:56 ---------------------------------------- non riesco ad allegare la foto... ---------------------------------------- ================================================================================ Aggiungere il logo della ditta nell'eseguibile ================================================================================ AUTORE: 706 DATA :26/09/2006 - 14:07:13 ---------------------------------------- Ciao a tutti, Mi è stato richiesto dalla ditta in cui lavoro di realizzare gli eseguibili rendendo visibile però nella voce HELP-->ABOUT il logo della ditta più la versione del programma (eseguibile) ed infine una descrizione sulle modifiche apportate rispetto alla precedente versione. Penso sia possibile durande la creazione dell'eseguibile ma non so come fare. Mi potete aiutare? Utilizzo la versione di LabView 7.0. Grazie Francesco ---------------------------------------- AUTORE: 838 DATA :26/09/2006 - 15:24:22 ---------------------------------------- mah, io mi sono creato l'icona con il mio logo e la metto nell'application builder così da sostituire il logo national quando lanci l'applicativo per il discorso help non saprei, non l'ho mai usato \":D\" ---------------------------------------- AUTORE: 482 DATA :27/09/2006 - 08:40:52 ---------------------------------------- ehm... basta creare un subVI con l'immagine del logo e le descrizioni che vuoi. E un bel pulsante di stop per chiudere il subVI \":wink:\" ---------------------------------------- ================================================================================ risolvere equazioni/ricerca di zeri ================================================================================ AUTORE: 1241 DATA :26/09/2006 - 16:16:47 ---------------------------------------- Ciao ragazzi, devo risolvere un'equazione implicita in labview ma newton raphson.vi, p.es., non mi da dei valori se inserisco delle funzioni trigonometriche. Forse sbaglio nell'inserire le funzioni come stringa? sono disponibili altre vi che permettano di risolvere equazioni? ---------------------------------------- AUTORE: 384 DATA :27/09/2006 - 08:15:20 ---------------------------------------- Ciao. Nel gruppo di funzioni "Formula", esistono delle funzioni avanzate di risoluzione e parsing di formule. Magari ci trovi il modo di risolvere la tua. Mi viene in mente una scorciatoia: perchè non sostituisci le tue funzioni trigonometriche con un loro sviluppo in serie di Taylor, magari solo con 3 o 4 termini? Tienici aggiornati! ---------------------------------------- AUTORE: 1241 DATA :27/09/2006 - 09:57:06 ---------------------------------------- Ciao gyc, grazie per avermi risposto. Mi vien da ridere al pensiero di quello che sto per dirti: non mi funziona il programma di windows di visualizzazione dell'help quindi come mio unico aiuto per il Labview c'è il contest help (riduttivo) e questo forum. Ho trovato più di una funzione di "parsing formula", cosa si intende? ---------------------------------------- AUTORE: 384 DATA :27/09/2006 - 10:25:44 ---------------------------------------- Ciao. Le funzioni di parsing fanno una sorta di pre valutazione della sintassi. Ma ce ne sono altre di risoluzione diretta. Sfortunatamente avrai bisogno dell'help per guardarci. Io ho avuto un problema simile in passato; purtroppo non ricordo la soluzione, ricordo solo che mi è arrivata dai ragazzi di NI. Comunque, se proprio non ti va, usa la serie di Taylor (MacLaurin). É veramente banale da implementare e già con 3 termini è precisa da -pi/2 a pi/2. Guarda qui: http://dotancohen.com/eng/taylor-sine.php ---------------------------------------- AUTORE: 384 DATA :27/09/2006 - 11:07:40 ---------------------------------------- Ciao. Ho fatto una prova scema con il "Newton Raphson.vi" per determinare lo zero di sin(x)/x. Ha funzionato normalmente, scrivendo la formula esattamente come sopra! Com'e che non ti funziona? ---------------------------------------- ================================================================================ Fuzzy editors ================================================================================ AUTORE: 1477 DATA :26/09/2006 - 20:01:23 ---------------------------------------- Non sono un grande esperto di Labview e sono anche molto arrugginito. Per cui ho proprio bisogno d'aiuto. Mi chiedono di creare un regolatore con la logica fuzzy. La logica la conosco e ho dato un'occhiata non superficiale al modulo PID & fuzzy e so come creare un regolatore usando il Fuzzy set editor del modulo apposito. Mi restano un paio di problemi (almeno...): 1) Il modulo di editing "semplicemente" genera un file contenente i parametri che dovranno essere caricati dal VI di regolazione mediante apposito subVI "load from file". In realtà, io ho necessità di poter cambiare programmaticamente i parametri che definiscono le membership functions dei due ingressi del regolatore e quelle di uscita al che le strade praticabili che vedo sono 3: A - riesco a capire in che formato è scritto il file dei parametri e vado a riscriverne solo alcune righe programmaticamente lanciando poi un reload nel regolatore, sperando che non abbia qulche controllo di checksum B - riesco a modificare il subVI "fuzzy controller" in modo che certi parametri non li prenda dal file ma da controlli o da sottoprogrammi che posso implementare io C - qualcuno molto avanzato abbia sviluppato un regolatore fuzzy custom (con due ingressi e un'uscita, almeno) e accetti di condividerlo, non necessariamente gratis, dato che a me serve per lavoro. Grazie per l'ascolto. ---------------------------------------- AUTORE: 1137 DATA :02/10/2006 - 13:47:18 ---------------------------------------- Se non ho capito male, per poter essere d'aiuto occorre aver installato il Fuzzy Logic Toolkit per Labview. Io non ne so niente. Si compra a parte? \":?\" Per le modifiche ai file di configurazione, ho fatto una cosa simile per l'IMAQ, andando a modificare piu' o meno dinamicamente dei file di configurazione di NI (.icd) , ma aprendrendoli come file di testo, si trovava una banale struttura .ini, righe e righe di variabile = valore. spiace di non saperne di piu'... ---------------------------------------- AUTORE: 645 DATA :02/10/2006 - 16:24:29 ---------------------------------------- Il toolkit per la Fuzzy si trova insieme al toolkit per i regolatori PID. Io l'ho trovato inserito nel pacchetto Real-Time. Non so se si possa comprare a parte. Per quanto riguarda la domanda di fabiospark mi spiace ma non saprei aiutarti perchè non ho mai programmato in logica Fuzzy. Però so che il toolkit ti offre la possibilità di caricare regolatori preparati in logica Fuzzy dall'esterno. Come prepararli non so; un inizio può essere http://digital.ni.com/manuals.nsf/webse ... 81007356B0 ; http://digital.ni.com/softlib.nsf/webse ... 71005DEC49 ; http://digital.ni.com/public.nsf/allkb/ ... 500079B1C8 . Altre info puoi trovarle sul sito National ( www.ni.com ) cercando "fuzzy". ---------------------------------------- ================================================================================ run VI Builder ================================================================================ AUTORE: 595 DATA :27/09/2006 - 10:02:25 ---------------------------------------- salve a tutti , Ho un problemino con un VI builder che ho creato da poco; in pratica voreei che il mio VI non partisse (freccetta in run) quando clicco sull'icona dell'eseguibile per aprirlo. Perchè va automaticamente in run? Grazie in anticipo ---------------------------------------- AUTORE: 645 DATA :27/09/2006 - 12:00:28 ---------------------------------------- Nelle impostazioni di Application Builder devi sistemare la voce "Run when opened". Settata su True fa partire l'eseguibile dopo il doppio clic sull'icona, settata su False regola l'eseguibile in modo che dopo il doppio clic si apra la finestra principale ma l'avvio venga dato dall'utente premendo la freccia di Run. ---------------------------------------- AUTORE: 595 DATA :27/09/2006 - 13:16:50 ---------------------------------------- grazie devo ancora provare ma credo di capire che la cosa è semplica ---------------------------------------- ================================================================================ generazione onda quadra ================================================================================ AUTORE: 1439 DATA :27/09/2006 - 10:32:24 ---------------------------------------- salve ho un problema non riesco a generare un'onda quadra, ho usato le sub vi DAQmx write, ma non so che devo collegare sul terminale data per far si che in uscita ci sia un'onda quadra di ampiezza e durata impostata da me io uso una stazione di misura composta da: I/O usato per prelevare ingressi e uscite digitali e un BNC-2110 3 schede di acquisizione NI PXI - 6123 1 scheda di acquisizione NI PXI - 6722 sitema operativo windows XP versione labview 8 il mio problema e il seguente: ---------------------------------------- ================================================================================ creazione bottone.... ================================================================================ AUTORE: 1325 DATA :27/09/2006 - 13:09:31 ---------------------------------------- ciao a tutti non sono molto esperto di labview però ho un problema parecchio urgente.... ...si puòcreare un bottone che simuli la pressione dei tasti da tastiera...?? ....nel mio caso avrei bisogno di tenere premuto alt e poi digitare "o" e "d" vi prego rispondetemi \":roll:\" grazie ---------------------------------------- AUTORE: 645 DATA :27/09/2006 - 13:27:26 ---------------------------------------- Così a freddo ti direi che tra le azioni meccaniche associabili ai bottoni (le trovi cliccando tasto destro del mouse sul bottone --> mechanical action) ce n'è una che prevede di mantenere lo stato True fino a quando il bottone è premuto e tornare a False quando viene lasciato. Poi bisogna catturare l'evento "pressione tasto" da tastiera: mi sembra si possa ma non so come. ---------------------------------------- AUTORE: 13 DATA :27/09/2006 - 15:10:31 ---------------------------------------- Ti allego la libreria per fare cio che chiedi. I vi si collegano alla user32.dll , l'utilizzo e' molto semplice il vi da utilizzare e' sendkey.vi e si trova all'interno di SendKey.llb spero sia stato di tuo aiuto ciao Peppe ---------------------------------------- ================================================================================ 2 cose sulle DAQ ================================================================================ AUTORE: 1241 DATA :27/09/2006 - 13:43:03 ---------------------------------------- Ciao ragazzi, sapete dirmi come specificare la frequenza di acquisizione di un task anzichè il numero di samples? Un'altra cosa: ho una daq ni6259 ma non l'ho ancora installata e quindi non so cosa aviene durante l'acquisizione, vale a dire se ho un grafico, i samples vengono diagrammati in tempo reale? ciao e scusate le domande banali ---------------------------------------- AUTORE: 1030 DATA :27/09/2006 - 14:53:30 ---------------------------------------- Ciao prima una domanda: usi la libreria DAQmx ? Se si, utilizzando la funzione "DAQmx Timing" hai un ingresso (rate) che specifica la freq di campionamento. Durante l'acquisizione se visualizzi i tuoi dati su un grafico possiamo dire che la visualizzazione sul front panel avviene in un "tempo reale" dell'ordine di un sitema operativo non [i:22zulhg2]real time[/i:22zulhg2]. Avrai comunque un ritardo di visualizzazione che potrebbe essere trascurabile per la tua applicazione. ---------------------------------------- AUTORE: 1241 DATA :27/09/2006 - 16:01:32 ---------------------------------------- ciao mark of life innanzitutto grazie per avermi risposto, se volessi specificare il tempo di acquisizione come posso fare? forse specificare il tempo e poi moltiplicarlo per la frequenza di campionamento ricavandomi implicitamente il numero di samples? ---------------------------------------- AUTORE: 645 DATA :27/09/2006 - 16:08:20 ---------------------------------------- Almeno inizialmente si potrebbe usare il DAQ-Assistant con le DAQ-mx (so che dicendo questo mi sto tirando addosso le ire di alcuni ma almeno all'inizio il DAQ-Assistant non è malvagio...) ---------------------------------------- AUTORE: 1030 DATA :27/09/2006 - 16:20:20 ---------------------------------------- Si, quella da te suggerita è la formula inversa esatta per ricavarti il numero di samples conoscendo il tempo d'acquisizione e la Fc. Se questo è quello che ti serve ok! ciao ciao ---------------------------------------- ================================================================================ Write To Spreadsheet File salva in colonne? ================================================================================ AUTORE: 1157 DATA :28/09/2006 - 10:21:54 ---------------------------------------- ho un problema con il Write To Spreadsheet File. In pratica salva i dati in formato righa. E quando si apre il documento con excel, si riscontra il probelma del limite di numero di colonne dell'excel. Il problema lo si potrebbe scavalcare, facendo salvare i dati in colonna(essendo il numero di righe di svariate migliaia). Ma come posso modificare il programma in tal senso? Ps: allego il file x chi non lo conoscesse. Grazie a tutti ---------------------------------------- AUTORE: 129 DATA :28/09/2006 - 11:00:37 ---------------------------------------- Usa il transpose array prima di passarlo al write to spreadsheet. Praticamente ti gira un array bidimensionale, così non hai più il limite di colonne che in realtà sarebbero le righe. Nicola ---------------------------------------- AUTORE: 1157 DATA :28/09/2006 - 12:05:35 ---------------------------------------- ti ringrazio, funziona!!! \":D\" approfitto della tua esperienza.... :sempre il Write To Spreadsheet File permette di salvare, ma non con il file aperto. Cioè bisogna chiudere prima il file e poi procedere con una uova esecuzione del programma. C'è un modo per ovviare a ciò e lasciare il file aperto? Grazie grazie grazie ---------------------------------------- AUTORE: 384 DATA :29/09/2006 - 12:47:21 ---------------------------------------- Ciao. La funzione "Write To Spreadsheet File.vi" apre e chiude il file OGNI volta che ci deve scrivere qualcosa, quindi, per scrivere sullo stesso file senza cancellare i dati già presenti, anche in diverse esecuzioni del vi, devi settare TRUE l'ingresso "append to file". Se vuoi non avere questo "overhead" di apri/chiudi, devi aprire il file prima del tuo loop principale di acquisizione, scrivere i dati mentre sei nel loop, e chiuderlo alla fine dell'esecuzione. Tiene presente che da una esecuzione all'altra di un vi, COMUNQUE non è possibile tenere il file aperto. Anche se non lo chiudi esplicitamente, esso verrá chiuso automaticamente quando il vi termina la sua esecuzione. ---------------------------------------- AUTORE: 482 DATA :29/09/2006 - 14:55:50 ---------------------------------------- Per non aprire e chiudere il file non devi usare wuella funzione ma una normale write. Starà a te metteretabulare i dati nel modo adatto. ---------------------------------------- AUTORE: 129 DATA :29/09/2006 - 15:33:09 ---------------------------------------- Ti allego un esempio modificando il tuo vi ---------------------------------------- ================================================================================ utilizzo codice visual basic ================================================================================ AUTORE: 1317 DATA :29/09/2006 - 09:43:05 ---------------------------------------- ciao a tutti..avrei bisogno di utilizzare con LABview un programma di controllo per PID scritto in visual basic. Riscrivere da zero il programma sarebbe (almeno per me) una grande impresa.C'è possibilità di sfruttare questo vecchio codice ridisegnando unicamente l'interfaccia?grazie a tutti ---------------------------------------- AUTORE: 129 DATA :29/09/2006 - 14:08:02 ---------------------------------------- Labview ti permette di connetterti a dll e sfruttarne le fuzioni. Dovresti però conoscere i tipi di dato e gli ingressi uscite di ogni funzione. ---------------------------------------- ================================================================================ Domanda facile facile ================================================================================ AUTORE: 73 DATA :29/09/2006 - 11:22:28 ---------------------------------------- Sapete se si può cambiare il colore di sfondo di un dialog tab control e se sì come?(Io ho provato con il pennello ma naturalmente non funziona e non è nella lista dei colori che labview dà di default nelle option delle tools) Ciao grazie \":lol:\" ---------------------------------------- AUTORE: 1050 DATA :29/09/2006 - 11:27:22 ---------------------------------------- Ciao, che io sappia i dialog hanno caratteristiche grafiche legate al sistema operativo quindi non puoi cambiare il colore di sfondo. Puoi usare però lo stesso controllo che si trova in "Classic Controls\Classic Containers" che è 2D e gli somiglia molto! ciao ---------------------------------------- AUTORE: 645 DATA :29/09/2006 - 12:15:22 ---------------------------------------- Io con il pennello sono riuscito a colorare lo sfondo (vedi immagine). Intendevi così? ---------------------------------------- AUTORE: 1050 DATA :29/09/2006 - 12:53:34 ---------------------------------------- Ciao magic, penso che tu sia riuscito a colorare il tab control che si trova in "Containers" mentre se provi a fare la stessa cosa con il DIALOG tab control non dovresti riuscire a colorarlo. Ho trovato il riferimento su labview user manual, pg 4-25 : "These controls (i DIALOG appunto) appear in the colors you have set up for your system.....When you run the VI on a different platform, the dialog controls adapt their color and appearance to match the standard dialog box controls for that platform." ciao ---------------------------------------- AUTORE: 645 DATA :29/09/2006 - 13:01:33 ---------------------------------------- Oops... effettivamente ho usato l'altro TabControl. Con il Dialog ho cercato di usare anche i Property Node ma non si riesce a modificare il colore. A questo punto: delphi devi usare proprio un Dialog TabControl? Non va bene "l'altro" TabControl per i tuoi scopi? ---------------------------------------- AUTORE: 73 DATA :29/09/2006 - 13:10:19 ---------------------------------------- Ok avete pienamente ragione io stavo usando il dialog tab control quando invece si poteva usare il tab control .e basta che tra le altre cose è permesso che si possa colorare.....spero che me lo faccia cambiare senza problemi ciao e Grazie ---------------------------------------- ================================================================================ ultime domande sulla daq (spero) ================================================================================ AUTORE: 1241 DATA :29/09/2006 - 16:27:24 ---------------------------------------- Ciao ragazzi, ho ancora bisogno del vostro prezioso aiuto prima cosa: devo realizzare un output analogico: se è analogico, perchè devo specificare frequenza e numero di samples? a me interessa semplicemente avere in uscita un valore di tensione che stabilisco io seconda domanda: devo acquisire degli analog input e poi fare delle operazioni su di essi (fft ecc.), senza far terminare il vi. che faccio li salvo in un file e poi lo riapro? oppure al termine dell'acquisizione i samples rimangono comunque in memoria? spero di aver formulato le domande in maniera comprensibile ciao ---------------------------------------- AUTORE: 129 DATA :30/09/2006 - 06:45:58 ---------------------------------------- [quote:348govpr]devo acquisire degli analog input e poi fare delle operazioni su di essi (fft ecc.), senza far terminare il vi.[/quote:348govpr] Non è necessario salvare i dati a meno che tu non li debba riutilizzare in futuro; dovresti realizzare un architettura che ti consente di acquisire i dati, analizzarli e poi ritornare ad acquisirli se necessario. Tutto ciò è possibile con una macchina a stati, realizzabile con un while loop(ti consentirà di restare nel vi finchè non premi stop) e un case il cui terminale viene collegato su uno shift register (da creare sul while loop).... Su questo forum e su NI, puoi trovare molte info sulla macchina a stati. In sostanza il meccanismo è quello di passare i dati ad un frame successivo che li analizzerà e se vui li salva, per poi riportarsi in modalità acquisizione.[/quote] ---------------------------------------- AUTORE: 1241 DATA :30/09/2006 - 17:27:32 ---------------------------------------- Ciao Nicola, penso di aver capito cmq vedo di informarmi circa la macchina a stati e per quanto riguarda gli analog output?puoi aiutarmi? ---------------------------------------- AUTORE: 129 DATA :30/09/2006 - 18:23:54 ---------------------------------------- A dire il vero non ho ben compreso la tua domanda sugli output, infatti se utilizzi i driver Daq-mx hai un Vi di inizializzazione, poi un vi di write che puo essere dbl normale...Se usi invece l'express ti dà la possibilità di inserire i dati in modo bufferizzato, in pratica gli mandi un array e gli specifichi la frequenza con cui ti deve buttare fuori il segnale. In questo caso hai una lunghezza di dati e una frequenza, e penso che siano queste le caratteristiche richieste giustamente dalla scheda.. ---------------------------------------- AUTORE: 1241 DATA :30/09/2006 - 18:44:47 ---------------------------------------- Ciao Nicola, ti ringrazio molto per avermi risposto. Effettivamente sono io che non ho ben chiaro cosa sia un analog output. Spero di non abusare troppo se ti spiego un attimo il mio problema: devo controllare una elettrovalvola con un segnale in tensione 0-10 V. Quello che a me interessa non è creare una forma d'onda in uscita ma, per esempio, dare un segnale 3 V costante che per esempio, corrisponda a 15 bar della valvola. ti premetto che il codice non lo posso sperimentare a cavolo sulla valvola per non danneggiarla ecco perchè scrivo spesso su questo forum anche perchè il prof che mi segue nella tesi se ne frega e la responsabilità sarebbe solo mia. Ho provato a creare un task con Measurement e automation ma mi da delle forme d'onda sinusoidali o triangolari in uscita. Puoi aiutarmi tu in qualche modo? ps hai degli esempi già fatti per quanto riguarda la macchina a stati? sto continuando a cercarli ciao ---------------------------------------- AUTORE: 247 DATA :30/09/2006 - 19:53:58 ---------------------------------------- Ciao, [quote:2dmywc5x]ti premetto che il codice non lo posso sperimentare a cavolo sulla valvola per non danneggiarla ecco perchè scrivo spesso su questo forum anche perchè il prof che mi segue nella tesi se ne frega e la responsabilità sarebbe solo mia. [/quote:2dmywc5x] A parte che se la valvola è "del tuo profe" e tu sei uno studente la responsabilità è sempre sua qualsiasi cosa dica...cmq, se hai dubbi, prima utilizza un multimetro per leggere il valore di tensione che imposti in uscita, sono apparecchi indistruttibili, soprattutto per i valori di tensione e corrente caratteristici di una scheda. BYE. ---------------------------------------- AUTORE: 129 DATA :01/10/2006 - 08:44:59 ---------------------------------------- [quote:3m5wcdw3]Quello che a me interessa non è creare una forma d'onda in uscita ma, per esempio, dare un segnale 3 V costante che per esempio, corrisponda a 15 bar della valvola. [/quote:3m5wcdw3] Assolutamente puoi farlo, volevo solo spiegarti il perchè ti chiedeva frequenza e numero di sample. Anche da MAX(Measurement Automation Explorer) di default ti dà la copstruzione di una waveform, ma puoi modificare selezionando 1 sample. Ti allego il vi da modificare per avere una tensione di riferimento singola.... ---------------------------------------- AUTORE: 1241 DATA :01/10/2006 - 19:11:29 ---------------------------------------- Ciao Nicola, mi hai dato un grande aiuto! Grazie! ho trovato anche i vi relativi alla macchina a stati. il tuo esempio però mi ha fatto sorgere un dubbio: consideriamo un analog input, generalmente la daqmx read è inserita all'interno di un while loop, che senso ha allora specificare il numero di samples che la daq deve leggere se comunque continuerà a leggere fino a quando la condizione del while è vera? ---------------------------------------- AUTORE: 129 DATA :01/10/2006 - 20:15:23 ---------------------------------------- praticamente è lo stesso per l'input, puoi acquisire un buffer di campioni oppure 1 sample per ciclo. ---------------------------------------- ================================================================================ funzione collector ================================================================================ AUTORE: 1319 DATA :29/09/2006 - 17:39:37 ---------------------------------------- Ciao a tutti. Scusate la mia ignoranza ma non riesco proprio a capire a cosa serva questa funzione (collector). Potreste spiegarmelo? Semmai facendomi anche un esempio di utilizzo, per capire meglio... Grazie mille! Ciao ---------------------------------------- AUTORE: 129 DATA :30/09/2006 - 07:12:42 ---------------------------------------- Ti restituisce gli ultimi n elementi di un array che inserisci. Per esempio se lo imposti a 4 elementi, e inserisci [4,3,2,1,5] ti restituisce [3,2,1,5]. ---------------------------------------- ================================================================================ Rendere invisibile un controllo ================================================================================ AUTORE: 516 DATA :01/10/2006 - 14:28:03 ---------------------------------------- Ciao a tutti Come da oggetto ho alcuni controlli su di un pannello che devo rendere invisibili come devo fare ? Grazie Mille a tutti Ciao Sergio ---------------------------------------- AUTORE: 129 DATA :01/10/2006 - 15:24:27 ---------------------------------------- Utilizzi la property visible, inserendo una costante false per renderala invisibile. Dovresti fare questo per ogni controllo, potresti crearti anche un vi per modificare queste impostazioni. Ti allego un esempio, poi decidi tu come usarlo. ---------------------------------------- AUTORE: 516 DATA :01/10/2006 - 15:51:31 ---------------------------------------- Ciao GRAZIE MILLE Sergio ---------------------------------------- ================================================================================ concatena stringhe ================================================================================ AUTORE: 1137 DATA :02/10/2006 - 09:03:35 ---------------------------------------- ciao, utilizzo Labview 6.1 da un po', ma ci trovo ancora sorprese! Dopo anni di utilizzo di shift register... ho scoperto come si concatena un array di stringhe! Lo sapevate? SAPEVATELO! \":wink:\" ---------------------------------------- AUTORE: 278 DATA :02/10/2006 - 10:55:40 ---------------------------------------- HAHAHAHAHA \":lol:\" \":lol:\" Bellissima questa, siamo in 2 allora!!! Ora che lo SAPREI anche io, lo SAPESSIMO tutti... \":lol:\" \":lol:\" \":lol:\" ---------------------------------------- ================================================================================ task separati per legger 2 canali da DAQ6008 ================================================================================ AUTORE: 1313 DATA :02/10/2006 - 10:06:48 ---------------------------------------- Salve ragazzi, ho creato due task separati /usando DAQmx) per leggere da due canali del mio daq usb 6008, ma avviando il VI una volta legge da un canale usando un tas, la volta successiva legge l'alrtro canale usando l'altro task, e così via. Sapreste indicarmi il problema?? per essere più chiaro: Run VI -> task1 -> read Ch1 -> stop VI -> Run VI -> task2 -> read Ch2 -> stop VI -> Run VI -> task1 -> read Ch1 ............ Grazie in anticipo, cris p.s. lo scopo e settare il tipo di termocoppia per singolo canale ---------------------------------------- AUTORE: 1313 DATA :02/10/2006 - 10:35:18 ---------------------------------------- Per essere preciso quello che dovrebe fare il VI è: Run VI -> start Task1 e Task2 -> read Ch1 e Ch2 -> read Ch1 e 2 -> .... ---------------------------------------- AUTORE: 1030 DATA :02/10/2006 - 10:56:55 ---------------------------------------- ciao Ma perchè hai creato 2 task separati ? Un task è una collezione di uno o più canali. Quindi se ti serve leggere da entrambi i canali contemporaneamente puoi creare un task che comprende 2 canali. ciao ciao ---------------------------------------- AUTORE: 1313 DATA :02/10/2006 - 10:58:50 ---------------------------------------- Questo lo so, ma se devo settare dei parametri per un canale e non per tutti come faccio?? nello specifico, per ogni canale devo settare un tipo di thermocoppia, però non so come farlo se non creando un task per ogni canale. Tu lo se ssia possibile??? ---------------------------------------- AUTORE: 1030 DATA :02/10/2006 - 11:09:34 ---------------------------------------- In MAX puoi configurare i Virtual Channel di una Task separatamente! Un cnale virtuale è una collezione di proprietà come canale fisico, tipo di misura, nome ecc ciao ---------------------------------------- AUTORE: 1313 DATA :02/10/2006 - 11:57:11 ---------------------------------------- Grazie Mille, adesso provo. Cris ---------------------------------------- AUTORE: 1313 DATA :03/10/2006 - 09:56:06 ---------------------------------------- Con il virtual channel non funzionava, forse perchè lo scopo è creare un acanale virtuale e non modificarne uno esistente. Alla fine ho risolto usando il PropertyNode. e funge tutto alla grande. Cris ---------------------------------------- ================================================================================ LabView e i sinottici ================================================================================ AUTORE: 1368 DATA :02/10/2006 - 13:39:49 ---------------------------------------- Ciao a tutti, e possibile creare dei sinottici con labview?? grazie a tutti ciao ---------------------------------------- AUTORE: 645 DATA :02/10/2006 - 16:06:18 ---------------------------------------- Cosa in particolare? ---------------------------------------- AUTORE: 1368 DATA :02/10/2006 - 16:59:31 ---------------------------------------- devo creare un sinottico per un impianto biogas, sto realizzando il lay-out con paint shop pro che poi importo in labview, ma diciamo che e scomodo e non mi piace, non esiste un qualcosa per fare tutto direttamente su labview con tanto di simboli grafici industriali?? grazie a tutti ---------------------------------------- AUTORE: 645 DATA :02/10/2006 - 19:42:48 ---------------------------------------- Se hai il modulo DSC dovresti avere anche i disegni industriali. Altrimenti, anche se più scomodo, puoi preparare l'immagine di base più tutte le eventuali variazioni (in seguito ad un allarme cambia un disegno, quando la temperatura sale cambia il disegno...) e associare i vari disegni a bottoni invisibili inseriti sopra il disegno base. Quando lo stato del bottone cambia (in seguito ad un evento) compare l'immagine associata. Guarda sul sito della National, dovresti trovare qualcosa. ---------------------------------------- AUTORE: 1030 DATA :03/10/2006 - 08:24:04 ---------------------------------------- Se hai LabVIEW 8 potresti usare le funzioni "3D picture control". Partendo da alcune forme geometriche di base puoi costruire forme più complicate (che magari riproducano il tuo impianto) ciao ciao ---------------------------------------- AUTORE: 1368 DATA :03/10/2006 - 10:03:25 ---------------------------------------- ma il dsc 8.2 va bene anche per labview 8.0 ?? grazie ---------------------------------------- AUTORE: 645 DATA :03/10/2006 - 10:27:37 ---------------------------------------- Prova a dare un'occhiata sul sito www.ni.com se dicono qualcosa (sotto la voce Prodotti). ---------------------------------------- AUTORE: 1368 DATA :03/10/2006 - 11:02:02 ---------------------------------------- Ho cercato sul sito ma non ho trovato nulla sul incompatibilità tra labview 8.0 e il dsc 8.2. In questi giorni magari provo la demo e vedo un po. ---------------------------------------- ================================================================================ Conversione VI da LV 7.1 a LV 8.2 e lentezza ================================================================================ AUTORE: 1494 DATA :02/10/2006 - 18:24:50 ---------------------------------------- Ciao a tutti, sono nuovo del forum e vorrei ringraziare chiunque trovasse il tempo per rispondermi. Vorrei sapere se vi è capitato di convertire VI sviluppati con LabVIEW 7.1 verso LabVIEW 8.2 e avete riscontrato che rallentano parecchio? Grazie, ciao Arrigo ---------------------------------------- AUTORE: 129 DATA :03/10/2006 - 08:48:21 ---------------------------------------- Io ho salvato ma non ho avvisato lentezza, a cosa ti riferisci per lentezza? Apertura,esecuzione caricamento di LV o cosa? Il caricamento maggiore è dovuto a tante feature aggiunte che magari non vengono utilizzate mai, bisogna quindi rivedere l'installazione e le opzioni per caricare il giusto numero di moduli. Apertura ed esecuzione, non mi risultano particolarmente più lunghe a meno che i file non siano dispersio per il pc e quindi deve fare una ricerca per trovare i subvi... ---------------------------------------- AUTORE: 1494 DATA :03/10/2006 - 08:59:31 ---------------------------------------- Ciao, grazie per la risposta. Per lentezza intendo sia l'apertura del VI che l'esecuzione, per capirci se con LV 7.1 ci metteva circa 3 secondi ora passa a 40 sec. Interessante il discorso delle feature aggiunte dal 7.1 all' 8.2 che magari non utilizzo, ora ci guardo. ---------------------------------------- ================================================================================ DT9800 ================================================================================ AUTORE: 1384 DATA :02/10/2006 - 18:54:45 ---------------------------------------- ciao, sto usando la scheda di acquisizione DT9800 con il labview, il pb è che quando la faccio funzionare con un programa che chiamo un altro programa che usa sempre la stessa scheda, il programa si ferma e mi scrive "subroutine in use" come posso fermarla dal primo VI chiamando il secondo VI. spero di essere stato abbanstanza chiaro. grazie ---------------------------------------- ================================================================================ Errore 63 nell'utilizzo di TCP Open Connection ================================================================================ AUTORE: 1458 DATA :03/10/2006 - 10:03:02 ---------------------------------------- Ciao a tutti, ho un problema nella comunicazione tra 2 pc (uno che svolge la funzione di client ed uno di server). Utilizzo il protocollo TCP e le funzioni TCP Open Connection sul client e TCP Listen sul server. Quando faccio delle prove inviando dati sul localhost, tutto funziona bene. Anche quando faccio le prove tra 2 pc appartenenti ad una stessa sottorete e collegati attraverso un router (in questo caso ovviamente specifico nel client l'indirizzo del pc server nella sottorete). Quando però cerco di far comunicare due pc attraverso internet mi viene presentato l'errore 63: LabVIEW: The network connection was refused by the server. Ho pensato ci fossero problemi di firewall, e allora ho aperto le porte sul firewall di XP e sul router, ma senza risultati... \":!:\" Qualcuno ha qualche idea che mi possa aiutare??? \":idea:\" Grazie!!! ---------------------------------------- AUTORE: 645 DATA :03/10/2006 - 10:30:16 ---------------------------------------- Puoi postare il block diagram almeno per la parte che implementa la comunicazione TCP-IP? O hai mantenuto la struttura Server-Client dell'esempio presente in LabView? ---------------------------------------- AUTORE: 1458 DATA :03/10/2006 - 16:37:31 ---------------------------------------- Alla fine mi sono accorto di aver impostato male il NAT sul router... Era solo quello! Adesso ci sono riuscito! Grazie comunque dell'interesse! p.s. alla fine la versione del client e del server che utilizzavo era simile a quella degli esempi LabVIEW, ma modificata per eseguire alcune operazioni in più (niente di speciale) ---------------------------------------- ================================================================================ impostare ora relativa in LVM file ================================================================================ AUTORE: 1313 DATA :03/10/2006 - 10:48:06 ---------------------------------------- Salve ragazzi , sto usando il blocco "Write LabView Mesurent File", per scrivere un file, non riesco ad impostare l'orare relativa, cioè vorrei avere nella colonna dei tempi 10:00:00 AM ecc. sapete come si imposta??? Grazie in anticipo, Cris ---------------------------------------- AUTORE: 1313 DATA :03/10/2006 - 21:42:34 ---------------------------------------- Per chiunque fosse interessato ho risolto come segue: 1) creo il file tramite il blocco "mesurement ecc" 2) modifico l'header 3) uso il blocco per prendere l'ora e per convertire numeri in stringe, concateno tutto e lo scrivo nelfile 4) chiudo il file Cris ---------------------------------------- AUTORE: 1299 DATA :03/10/2006 - 22:50:16 ---------------------------------------- [quote="crisVI":175p7cxc]Per chiunque fosse interessato ho risolto come segue: 1) creo il file tramite il blocco "mesurement ecc" 2) modifico l'header 3) uso il blocco per prendere l'ora e per convertire numeri in stringe, concateno tutto e lo scrivo nelfile 4) chiudo il file Cris[/quote:175p7cxc] Potresti postare il file relativo al topic cortesemente perche ne sarei interessatop grazie mille ciao ciao ---------------------------------------- ================================================================================ MAX - task e global task ================================================================================ AUTORE: 660 DATA :03/10/2006 - 13:06:12 ---------------------------------------- Scusate se la domanda è idiota, ma leggendo i nuovi messaggi mi è balenata in mente. Sapete che differenza c'è tra i due? (task e global task) Non è che il secondo possa essere utilizzato per "racchiudere" più task insieme? Grazie ---------------------------------------- ================================================================================ Menu About.. eseguibile ================================================================================ AUTORE: 706 DATA :03/10/2006 - 14:35:55 ---------------------------------------- Ciao a tutti, Il mio problema riguarda la visualizzazione della licenza della mia azienda mediate il menu HELP-->About dell'esegubile. Quando clicco siulla voce about dell'eseguibile mi appare una finestra (che non è altro che un SubVi) che mi mostra il nome della ditta e la descrizione di cosa fa l'eseguibile. però mi succede che quando appare questa finestra, la freccia di Run dell'eseguibile mi diventa "spezzata" mentre io vorrei che rimanga "integra". Come posso risolvere questo problema?Dipende dalle opzioni del Vi o del SubVI?Dipende dall'application builder? Ciao e grazie, Francesco ---------------------------------------- AUTORE: 645 DATA :03/10/2006 - 14:49:41 ---------------------------------------- Vediamo se ho capito: tu chiami il SubVI che ti apre una finestra (tipo pop-up) contenente il logo della ditta e la spiegazione del programma. Questo pop-up appare con la freccia di Run interrotta mentre tu vorresti avere la freccia intera? Questo SubVI contiene un ciclo che esegue particolari operazioni o si tratta solo di una finestra che appare con logo e spiegazione come la voce "About" di altri programmi, come per esempio Word o Excel? ---------------------------------------- AUTORE: 706 DATA :03/10/2006 - 15:26:40 ---------------------------------------- Ciao, Tutto giusto quello che dici se non che la freccia che viene interrotta non è quella del subVi del logo( che ha nel font pannel una figura importata, mentre nel block diagram ha un ciclo WHILE che è regolato da una costante e quindi si può chiudere solamente cliccando sul bottone rosso con la X del SubVI : il normale bottone per chiudere le finestre in windows) ma quella del VI principale. Spero di essermi spiegato meglio. Attendo una tua risposta. Grazie Francesco ---------------------------------------- AUTORE: 645 DATA :03/10/2006 - 15:30:26 ---------------------------------------- Puoi postare un'immagine del Block Diagram dove effettui la chiamata al SubVI del logo? ---------------------------------------- AUTORE: 706 DATA :03/10/2006 - 15:38:08 ---------------------------------------- Quel che uso nel VI principale per associare il mio SubVI al menu About è: "Current VI's Menubar" e "Get Menu Selection " per associare ad un Case Structure nel caso "About" il mio subVI. Ciao e ancora grazie, Francesco ---------------------------------------- AUTORE: 645 DATA :03/10/2006 - 15:54:28 ---------------------------------------- Seguito le istruzioni lette su http://zone.ni.com/reference/en-XX/help ... ialog_box/ e utilizzando LabView 7.1 tutto funziona. Con LabView 8.x devi considerare il Project Manager. Fammi sapere se gira! ---------------------------------------- ================================================================================ Right Data Node del Timed Loop ================================================================================ AUTORE: 927 DATA :03/10/2006 - 16:53:04 ---------------------------------------- Se lo uso per modificare contemporaneamente sia il Periodo che il Mode, non importa con quali valori (incluso No Change), il ciclo mi impazzisce e inizia ad andare a velocità esagerata. Succede anche a voi? Che gli prende? (7.1) ---------------------------------------- ================================================================================ Write/read To Measurement File ================================================================================ AUTORE: 1299 DATA :03/10/2006 - 17:24:00 ---------------------------------------- Salve a tutti, ho un piccolo problemino.... Premetto che sono alle primissime esperienze nella programmazione del labview... Sto leggendo un valore 4-20 mA tramite scheda cfp-1804 faccio vedere i valori letti in un grafico e vado a scrivere gli teesti valori in un file col comando "Write To Measurement File" e fin qui tutto fila liscio. sempre nello stesso loop ma in una scheda a parte (tab control) devo poter leggere il file scritto in precedenza... appena lo leggo mi va in ---------------------------------------- Possible reason(s): LabVIEW: End of file encountered. --- NI-488: Invalid argument or arguments." ---------------------------------------- Qualcuno saprebbe aiutarmi??? grazie mille ---------------------------------------- AUTORE: 384 DATA :04/10/2006 - 08:38:11 ---------------------------------------- Ciao. Come probabilemente sai, ogni file ha un "puntatore" mantenuto dal sistema operativo che indica dove scrivere/leggere - l'ingresso "pos offset" dei blocchi di read/write. Quello che ti succede è che mentre scrivi, il puntatore del file viene lasciato puntando alla fine del file, pronto per la scrittura successiva. Quando leggi, di fatto non c'è niente da leggere doppo il puntatore. Se devi leggere e scrivere dallo stesso file durante la stessa esecuzione di un programma, devi tu tenere un "puntatore" che indica dove leggere e un'altro per dove scrivere. ---------------------------------------- AUTORE: 1299 DATA :04/10/2006 - 09:53:07 ---------------------------------------- [quote="gyc":13sguxqa]Ciao. Come probabilemente sai, ogni file ha un "puntatore" mantenuto dal sistema operativo che indica dove scrivere/leggere - l'ingresso "pos offset" dei blocchi di read/write. Quello che ti succede è che mentre scrivi, il puntatore del file viene lasciato puntando alla fine del file, pronto per la scrittura successiva. Quando leggi, di fatto non c'è niente da leggere doppo il puntatore. Se devi leggere e scrivere dallo stesso file durante la stessa esecuzione di un programma, devi tu tenere un "puntatore" che indica dove leggere e un'altro per dove scrivere.[/quote:13sguxqa] umm... Sapresti così gentile da farmi qualche esempio pratico cortesemente. è il primo programma che faccio con il labview. grazie mille ---------------------------------------- AUTORE: 384 DATA :04/10/2006 - 17:38:01 ---------------------------------------- Ecco qua. Con un generatore "random" si creano dati che vanno su un graph e scritti su file. Con il pulsante "Read File" si recuperano i dati dal file e si visualizzano su un'altro graph tutti in una volta. Credo sia molto semplice, ma se hai bisogno di altri chiarimenti basta chiedere. ---------------------------------------- AUTORE: 1299 DATA :06/10/2006 - 09:16:25 ---------------------------------------- [quote="gyc":38vdhjwx]Ecco qua. Con un generatore "random" si creano dati che vanno su un graph e scritti su file. Con il pulsante "Read File" si recuperano i dati dal file e si visualizzano su un'altro graph tutti in una volta. Credo sia molto semplice, ma se hai bisogno di altri chiarimenti basta chiedere.[/quote:38vdhjwx] Grazie mille per il file... ma come scrivevo sopra sono spraticissimo di labview... ora come ora io scrivo un file, i cui dati li acquisisco tramite filedpont, il file che genero è un txt con i relativi valori. il programma fa un file per giorno denominandolo con la data della crezione... col file che mi hai fornito non capisco come far funzionare la cosa ... ti alelgo anche il file fatto da me magari per capire un po cosa devo fare.... ti ringrazio tantissimo per la tua disponibilità. ciao ciao P.s. il file che ti allego è solo il write... poi devo fare il read di un qlc file scritto da ql programma ma mi ritorna end of file se puoi darmi qlc dritta su come modificare il file che mi hai inviato mi faresi veramente molto contento ciao ciao e grazie di nuovo ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 12:50:00 ---------------------------------------- Ciao. Non riesco ad aprie il vi. Lo riposteresi, magari salvandolo in versione 7.1? ---------------------------------------- AUTORE: 1299 DATA :06/10/2006 - 13:13:44 ---------------------------------------- non me lo fa salvare in 7.1 ti allego un'immagine. ciao ciao e grazie ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 13:37:09 ---------------------------------------- In questo caso, stai usando una funzione per scrivere che ogni volta apre il file, scrive il dato e chiude il file. Immagino che il tempo ciclo sia elevato, quindi è una scelta che può aver senso. Essendo il nome de file determinato dalla funzione stessa, si sfrutta la relativa uscita e con un "if" si va aleggere dal file. Anche qui usiamo la funzione express che apre il file, lo legge tutto e lo chiude. Non dobiamo occuparci dei puntatori perchè già lo fa LabView in quanto operando ogni volta su un file aperto apposta per l'operazione. Allego un vi con quello che devi aggiungere al tuo per fare ciò che descrivevi - almeno per quanto ho capito. Saluti. ---------------------------------------- AUTORE: 1299 DATA :06/10/2006 - 15:01:09 ---------------------------------------- [quote="gyc":2cdcdhr5]In questo caso, stai usando una funzione per scrivere che ogni volta apre il file, scrive il dato e chiude il file. Immagino che il tempo ciclo sia elevato, quindi è una scelta che può aver senso. Essendo il nome de file determinato dalla funzione stessa, si sfrutta la relativa uscita e con un "if" si va aleggere dal file. Anche qui usiamo la funzione express che apre il file, lo legge tutto e lo chiude. Non dobiamo occuparci dei puntatori perchè già lo fa LabView in quanto operando ogni volta su un file aperto apposta per l'operazione. Allego un vi con quello che devi aggiungere al tuo per fare ciò che descrivevi - almeno per quanto ho capito. Saluti.[/quote:2cdcdhr5] non è prorprio così... il file lo scrive sempre e fa un file diverso ogni giorno. con il read io devo poter leggere un file qualsiasi di quelli scritti in precedenza, che scelgo sempre io, e rappresentarlo in un grafico.. quindi: scrivo un file che ogni giorno cambia nome o meglio genera un file al giorno.. poi devo scegliere il file da leggere e trasferirlo nel grafico dedicato ai file letti... non so se è chiaro... Grazie cmq per il tuo aiuto ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 16:59:20 ---------------------------------------- Ora è chiaro. Dopo tutti i discorsi di prima, pensavo dovessi scrivere e leggere "contemporaneamente" sul file in uso. Nel tuo caso ti serve solo un pò di "gestione files". Guarda il vi allegato; mi sembra ciò che ti serve. Devi integrarlo nel tuo. Rimangono valide le considerazioni sull'uso delle funzioni "express" che aprono e chiudono il file ad ogni operazione di scrittura/lettura, quindi il codice potrà visualizzare anche il file del giorno. Cosí com'è il vi, l'elenco dei file viene aggiornato solo all'avviamento del vi. Se questo vi dovesse girare per giorni consecutivi senza mai interrompersi, allora devi prevvedere un meccanismo di aggiornamento dell'elenco comandato da un pulsante all'interno del loop principale. Te lo lascio come esercizio, non è dificile: devi solo usare uno shift register, un pulsante ed un "if" (boolean case structure). Buon divertimento. ---------------------------------------- AUTORE: 1299 DATA :09/10/2006 - 08:04:10 ---------------------------------------- [quote="gyc":3bhr86i4]Ora è chiaro. Dopo tutti i discorsi di prima, pensavo dovessi scrivere e leggere "contemporaneamente" sul file in uso. Nel tuo caso ti serve solo un pò di "gestione files". Guarda il vi allegato; mi sembra ciò che ti serve. Devi integrarlo nel tuo. Rimangono valide le considerazioni sull'uso delle funzioni "express" che aprono e chiudono il file ad ogni operazione di scrittura/lettura, quindi il codice potrà visualizzare anche il file del giorno. Cosí com'è il vi, l'elenco dei file viene aggiornato solo all'avviamento del vi. Se questo vi dovesse girare per giorni consecutivi senza mai interrompersi, allora devi prevvedere un meccanismo di aggiornamento dell'elenco comandato da un pulsante all'interno del loop principale. Te lo lascio come esercizio, non è dificile: devi solo usare uno shift register, un pulsante ed un "if" (boolean case structure). Buon divertimento.[/quote:3bhr86i4] Ciao ti ringrazio e scusmi se non ho postato prima ma sn tornato oggi al lavoro. fra un po lo provo e poi ti faccio sapere ciao ciao e grazie ---------------------------------------- AUTORE: 1299 DATA :09/10/2006 - 08:06:56 ---------------------------------------- oh oh non si apre il file \":(\" io ho la 8.0 come versione ciao ciao ---------------------------------------- AUTORE: 384 DATA :09/10/2006 - 08:52:20 ---------------------------------------- Ciao. Io sono ancora alla 7.1; però le versioni successive aprono sempre i vi di quelle anteriori. Riposto il vi. ---------------------------------------- AUTORE: 1299 DATA :11/10/2006 - 08:23:14 ---------------------------------------- ti ringrazio non il sistema dovrebbe funzinare adesso lo devo modificare in modo che mi visualizzi il bene il grafico e la possibilità seleziona la cartella no quando lo mando in esecuzione ma qnd voglio leggere un file. perche ho + strumenti collegati al FP quindi.... ti ringrazio ciao ciao ---------------------------------------- ================================================================================ utilizzare codice visual basic ================================================================================ AUTORE: 1317 DATA :04/10/2006 - 11:46:35 ---------------------------------------- spero che il mio messaggio sia scappato a molti..!!ci riprovo!avrei bisogno di utilizzare con LABview un programma di controllo per PID scritto in visual basic. Riscrivere da zero il programma sarebbe (almeno per me) una grande impresa.C'è possibilità di sfruttare questo vecchio codice ridisegnando unicamente l'interfaccia?AIUTOOO... ---------------------------------------- ================================================================================ acquisizione di più segnali contemporaneamente ================================================================================ AUTORE: 1500 DATA :04/10/2006 - 11:51:57 ---------------------------------------- ciao a tutti, scusate se il problema potrebbe essere banale, ma sono alle prime armi, non riesco ad acquisire due segnali (tensione e corrente) contemporaneamente da due multimetri Agilent 34401a tramite cavi seriali 232, ho intuito che il problema potrebbe essere quello che ho un solo canale...ma come posso impostare due canali senza utilizzare i DAQmx? praticamente quello che succede è che prima viene acquisita la tensione/corrente dal primo multimetro e quando questa termina viene acquisita la tensione/corrente dal secondo. Metto un'immagine per chiarire meglio il discorso. Ringrazio anticipatamente tutti quelli che mi aiuteranno. ---------------------------------------- AUTORE: 1050 DATA :04/10/2006 - 12:15:02 ---------------------------------------- Ciao, forse anche la mia domanda sarà banale ma stai usando 2 COM differenti per pilotare gli strumenti, vero? PS: manca l'immagine che volevi allegare ---------------------------------------- AUTORE: 1500 DATA :04/10/2006 - 12:22:02 ---------------------------------------- si sto utilizzando due COM differenti, scusa l'immagine era troppo grande e non è stata allegata, la rimando. ---------------------------------------- AUTORE: 1500 DATA :04/10/2006 - 12:33:58 ---------------------------------------- te la zippo, forse è meglio.... ---------------------------------------- AUTORE: 1050 DATA :04/10/2006 - 13:16:23 ---------------------------------------- Mi sembra che il tuo programma sia ok. Riguardo problemi con la gestione della seriale la NI raccomanda l'upgrade del driver NI 488.2 alla versione 2.4. Puoi controllare almeno questo per ora. Ciao ---------------------------------------- AUTORE: 1500 DATA :04/10/2006 - 13:27:15 ---------------------------------------- ti ringrazio per il consiglio, ma il problema non penso sia la gestione della seriale perchè le acquisizioni avvengono perfettamente, il problema è che i due segnali non vengono acquisiti contemporaneamente, l'acquisizione del secondo segnale avviene solo dopo la fine di quella del secondo e questo nn mi va bene perchè io voglio il valore della tensione e quello della corrente allo stesso istante. ---------------------------------------- AUTORE: 1050 DATA :04/10/2006 - 13:39:27 ---------------------------------------- Vado un pò a tentativi: perchè non provi ad impostare la properties execution dei tuoi Vi in parallelo a "reentrant execution" ? (dal pannello clicca sull'icona della VI con il tasto destro è seleziona properties\execution ) ---------------------------------------- AUTORE: 1050 DATA :06/10/2006 - 08:24:25 ---------------------------------------- Ciao, per migliorare la tua misura dovresti (forse lo hai già pensato) cercare di far partire in parallelo solo le vi di lettura dei valori V ed I e non tutte le altre che servono a configurare lo strumento e fanno perdere molto tempo. Dovresti praticamente scomporre la VI della "NI HP34...Example" (vedi esempio in figura). ciao PS: se non ti rispondo nei prossimi giorni è perchè starò via. ---------------------------------------- AUTORE: 645 DATA :06/10/2006 - 09:11:10 ---------------------------------------- Io ti consiglio di lasciar perdere i driver e utilizzare i blocchi VISA Write e Read. Io ho lavorato con un altro alimentatore della Agilent e mi sono trovato comodissimo nell'utilizzo di un blocco contenuto nei driver per l'attesa in caso di errori ("Wait until error" o qualcosa del genere) ma le restanti operazioni le ho fatte usando i blocchi VISA. Se guardi il manuale dell'alimentatore ( http://cp.literature.agilent.com/litweb ... -90004.pdf ) al capitolo 4 (Remote Interface) trovi le stringhe da inviare allo strumento per ottenere determinati risultati (lettura tensione, lettura corrente, reset dell'apparecchio, trasferimento remoto del controllo per poter lavorare da LabView, gestione degli errori...). Potresti creare una struttura con due cicli paralleli; prima dei cicli inizializzi le porte seriali, all'interno dei cicli leggi tensione e corrente, fuori dai cicli chiudi le porte seriali. Potrebbe funzionare... fammi sapere! (se cerchi nel forum, tra gli esempi LabView o sul sito www.ni.com trovi un po' di esempi per l'uso dei blocchi VISA). ---------------------------------------- AUTORE: 1500 DATA :06/10/2006 - 11:01:19 ---------------------------------------- ciao antea, volevo chiederti come faccio a fare partire in parallelo solo le VI di misura? \":roll:\" grazie anche a te magicbotolo per il suggerimento, ma anke nel tuo caso come faccio a creare una struttura a cicli paralleli? \":roll:\" ---------------------------------------- AUTORE: 645 DATA :06/10/2006 - 11:10:14 ---------------------------------------- Puoi vedere cicli in parallelo qui http://digital.ni.com/public.nsf/allkb/ ... 1b00651eb9 o qui http://zone.ni.com/devzone/cda/epd/p/id/4970 . Si tratta di inserire nel Block Diagram più cicli aventi lo stesso filo di errore in ingresso. In questo modo hai più cicli che partono contemporaneamente e fanno cose indipendenti. Per fermarli devi usare, per esempio, le variabili locali (si vedono nel primo link). ---------------------------------------- ================================================================================ temporizzazioni... ================================================================================ AUTORE: 1319 DATA :04/10/2006 - 14:03:49 ---------------------------------------- Ciao a tutti Ecco il mio problema: Nel mio sistema rilevo una temperatura con una termocoppia, mi è stato chiesto di rilevarla ogni decimo di secondo finchè il programma è in esecuzione. Devo graficare i valori rilevati ed ogni 500 campioni devo farne la media. Qualcuno ha idea di come posso fare? Io ho mezza idea ma non so se è il metodo giusto per eseguire questo compito SENZA PERDERE ALCUN CAMPIONE che gli ho detto di rilevare: cioè mi sto riferendo al problema della temporizzazione SW col 'time delay' che lascia il tempo che trova in fatto di affidabilità di sampling rate con freq > 2Hz. Spero di essermi spiegato. Grazie in anticipo, ciao! ---------------------------------------- AUTORE: 645 DATA :04/10/2006 - 15:27:18 ---------------------------------------- Anzichè il "Time Delay" puoi usare il blocco "Wait Until" e creare due cicli paralleli: quando raggiungi i 500 campioni passi i valori raccolti al secondo ciclo che si occupa di visualizzarli su un grafico mentre il primo ciclo continua ad acquisire. ---------------------------------------- AUTORE: 1319 DATA :04/10/2006 - 17:36:54 ---------------------------------------- Ciao Il problema non è quale funzione di temporizzazione software mettere: in tutte e due le funzioni citate con sampling rate > 2Hz è facile che perda dei campioni per strada per una qualsiasi cazzatina che mi imoega un po' di CPU del mio PC.... Io speravo che qualcuno mi desse qualche dritta su come configurare il DAQ assistent task timing o in alternativa la funzione DAQmx timing... Ad esempio impostare che deve leggere 500 samples ad un rate di 10Hz dentro un ciclo while... può andare bene come idea? Qualche suggerimento? Ciao ---------------------------------------- AUTORE: 384 DATA :04/10/2006 - 18:05:14 ---------------------------------------- Una termocoppia ha di sè una precisione non migliore di 0.5 gradi ed i fenomeni di temperatura sono inerentemente lenti. Non vedo, quindi, la reale necessità di prendere la temperatura ad intervali di 100ms per poi mediare su 500 campioni (ed avere un dato soltanto ogni 50 secondi!). Se anzichè ogni 100ms, prendi un campione ogni secondo e fai una media mobile su 50 campioni credo otterrai lo stesso risultato, in più con in uscita un dato valido ogni secondo. In questo caso, credo che il problema del "jitter" inerente alla temporizzazione con il "Wait Until Next ms Multiple" sia assolutamente trascurabile. In ultima analisi, c'è sempre il "While Temporizzato" dove puoi controlare la priorità ed anche sapere se, per qualche motivo, il ciclo si è dilungato oltre la temporizzazione. O magari non ho capito il problema. ---------------------------------------- AUTORE: 645 DATA :04/10/2006 - 18:06:30 ---------------------------------------- Come hardware riesci ad acquisire a quella velocità? Se sì non capisco bene quali perdite di dati potresti avere. Per i blocchi DAQ-mx guarda sul sito della National ( www.ni.com ). Quello di cui parli tu si riferisce alla possibilità di lavorare con determinismo, con la sicurezza di acquisire sempre indipendentemente da altri processi in corso sul pc: questo è il Real-Time. ---------------------------------------- AUTORE: 384 DATA :04/10/2006 - 18:13:47 ---------------------------------------- Per esserene ASSOLUTAMENTE sicuri, si serve il real Real Time. Però ri riesce ad avere un'ottima approssimazione con una scheda impostando le acquisizioni in modo da fare "streaming", cioè, la scheda acquisisce continuamente dei "tronconi"di dati di una certa dimensione con una certa frequenza di campionamento e li mette in un buffer, da dove vengono prelevati dal software. ë compito nostro andare a prelevare ogni "buffer" prima che venga sovrascritto dal successivo, il che è abbastanza più facile. Ripeto che non vedo la necessitá di farlo per fenomeni di temperatura. ---------------------------------------- AUTORE: 1165 DATA :04/10/2006 - 18:51:28 ---------------------------------------- ti confermo anche io quanto ti sta dicendo gyc .. per fenomeni di temperatura non mi sembra proprio il caso di impazzire tanto .. non ne vedo il motivo .. un campionamento più basso e una media mobile sono sicuramente più indicati .. anche (grazie gyc .. non mi era venuto subito in mente) considerando la scarsa precisione delle termocoppie .. ma non ti scrivo per ripetere quanto hai già sentito ma per correggere un errore sistemico che hai fatto sopra .. scusa se mi permetto .. ma il "wait until next .." lavora in maniera completamente diversa e la sua precisione temporale è deterministica con errore temporale inferiore al millisecondo e questo in (quasi) tutti i casi di utilizzo della cpu (almeno finchè temporizzi sui cento millisecondi) .. guardati bene come funziona (in altro punto del forum ho provato a tracciarne una sintesi di funzionamento) .. a parte gli strumenti dedicati è sicuramente la via migliore di sincronizzazione e determinazione temporale ---------------------------------------- ================================================================================ terminare un vi ================================================================================ AUTORE: 487 DATA :04/10/2006 - 14:43:32 ---------------------------------------- Ciao a tutti. Ho un vi con al suo interno diversi while loop temporizzati tutti con un tempo piuttosto alto. Il problema è che quando premo il pulsante per uscire dal vi devo aspettare tutto il tempo che vengano eseguiti i while loop prima che il vi termini. Come posso fare a forzare la fine dei cicli? Grazie ---------------------------------------- AUTORE: 1030 DATA :04/10/2006 - 14:49:32 ---------------------------------------- Usa le occorrenze! ciao ---------------------------------------- AUTORE: 487 DATA :04/10/2006 - 15:11:26 ---------------------------------------- Hai ragione!!!! Non so come mai non ci avevo pensato: penso di aver fuso oggi!!! Grazie. ---------------------------------------- AUTORE: 1477 DATA :04/10/2006 - 22:33:10 ---------------------------------------- Qualche esempio, per favore (LV 7,1 se possibile). Grazie. PS Come la mettiamo che NI consiglia l'uso dei notifiers invece? Qualche esempio anche qui? Meglio se diverso da quelli on board. Avrei una domanda inerente ma credo sia meglio aprire un altro thread. Grazie. ---------------------------------------- AUTORE: 4 DATA :04/10/2006 - 22:39:28 ---------------------------------------- Ni consiglia Notifiers?... tanto anche loro a basso livello usano le occorrenze! Vi segnalo questa [url=http://www.ilvg.it/forum/viewtopic.php?t=1242:161byt1t]discussione[/url:161byt1t] storica sull'argomento e anche il download di questa [url=http://www.ilvg.it/forum/download.php?id=297:161byt1t]presentazione[/url:161byt1t] che parla anche di occorrenze. Ciao ---------------------------------------- ================================================================================ Relink Vi ================================================================================ AUTORE: 1501 DATA :04/10/2006 - 16:08:08 ---------------------------------------- Salve, questo e' il mio problema: dopo aver copiato le cartelle contenenti i VIs da una postazione di lavoro all'altra, tentando di far girare il programma, mi e' stato notificato il seguente errore - SubVI 'Nome del file.vi': bad linkage to subVI. Per correggerlo ho dovuto re-linkare tutti i riferimenti a quella vi nelle altre funzioni. Ora: esiste un modo per evitare questo errore o quantomento per fare il relink automatico in tutti i vi? Altra domanda, se io utilizzo labview solo per eseguire un vi, come mai all'uscita mi chiede se voglio salvare le modifiche? Grazie in anticipo, abelli PS: utilizzo LabView 6 ---------------------------------------- AUTORE: 645 DATA :04/10/2006 - 16:27:09 ---------------------------------------- Se chiami il SubVI in modo dinamico ti consiglio di usare il VI "Percorso relativo" che trovi nella sezione Download del sito ILVG ( http://www.ilvg.it/index.php?option=com ... &Itemid=84 ) preparato da Alessandro. Se chiami il SubVI inserendolo direttamente nel Block Diagram ti consiglio di copiarlo prima nella stessa diretory di lavoro del VI principale e poi linkarlo: in questo modo quando sposti i dati su un'altra postazione sposti l'intera cartella e il link rimane valido (dovrebbe). ---------------------------------------- AUTORE: 1501 DATA :04/10/2006 - 16:29:55 ---------------------------------------- grazie mille per la tempestivita'. ---------------------------------------- ================================================================================ Unico invio all'interno di un ciclo while ================================================================================ AUTORE: 706 DATA :04/10/2006 - 16:34:26 ---------------------------------------- Ciao a tutti, Il mio quesito riguarda la possibilità di effettuare un invio di un file mediante ftp una sola volta all'interno di un ciclo il cui invio del file deve essere controllato da un bottone "booleano" che mi cosa sto facendo. Mi spiego meglio: mediante un bottone di scelta (RICEVI DATI RAW/NON RICEVO DATI RAW) che si trova all'interno di un ciclo while, controllo il trasferimento di un file che servirà ad un computer remoto a stabilire se mandare i dati raw o no. Spero di essere stato chiaro. Attendo una soluzione. Grazie; Francesco ---------------------------------------- AUTORE: 384 DATA :04/10/2006 - 17:57:56 ---------------------------------------- Se ho capito, questo vi potrebbe fare al caso tuo. ---------------------------------------- ================================================================================ Come creare un MenuRing con costanti ripetute? ================================================================================ AUTORE: 384 DATA :05/10/2006 - 09:18:38 ---------------------------------------- Ciao Ragazzi. Mi occorrerebbe avere un MenuRing con un elenco di stringhe - nomi di costanti che hanno un senso in un certo ambiente - di cui, in 2 o tre casi il valore numerico associato alla costante si ripete. L'esempio che faccio sotto è stupido ma illustra il mio problema: GY_OK = 0 GY_NOERR = 0 GY_TIMEOUT=1 ecc. LV non mi permette di farlo - anche se non vedo perchè non dovrebbe. É un pò che ci penso e non ho ancora trovato una soluzione. Qualcuno ha avuto lo stesso problema? Ed ha trovato soluzione? Grazie del aiuto. G. ---------------------------------------- AUTORE: 645 DATA :05/10/2006 - 13:12:06 ---------------------------------------- Potresti fare un MenuRing per i nomi delle costanti e un array per i valori delle costanti. Leggi la posizione del valore scelto nel MenuRing e usi il valore contenuto nell'array nella posizione corrispondente. Però così dovresti usare due cose (MenuRing, Array) anzichè una sola. ---------------------------------------- AUTORE: 384 DATA :05/10/2006 - 15:39:00 ---------------------------------------- Giust'appunto ciò che vorrei evitare!!! ---------------------------------------- ================================================================================ Errore strano durante l avvio di un programma ================================================================================ AUTORE: 1368 DATA :05/10/2006 - 10:32:49 ---------------------------------------- Ciao a tutti, sto lavorando su un programma gia fatto, devo fare alcune modifiche, dopo aver compilato tutto ed installato tutto, avvio il programma e mi appare questo errore, non arrivo a capire che cosa puo essere vi allego uno screenshot ciao ---------------------------------------- AUTORE: 4 DATA :05/10/2006 - 11:27:50 ---------------------------------------- Succede anche con la versione sorgente? Ciao ---------------------------------------- AUTORE: 645 DATA :05/10/2006 - 13:19:07 ---------------------------------------- Sembra parlare di un file INI salvato insieme all'eseguibile. C'è un file di configurazione dal quale il programma si aspetta di leggere dati? Ho provato a cercare sul sito della National ma non ho trovato nulla che assomigli a questo errore: hai provato a girare l'immagine al servizio di supporto della National ( www.ni.com nella sezione "Support") ? ---------------------------------------- AUTORE: 1368 DATA :05/10/2006 - 13:33:24 ---------------------------------------- ho risolto, non avevo compilato un altra parte del programma dove crea un file llb e mi dava quell errore molto strano perche non parla per niente di questo file. ---------------------------------------- ================================================================================ can bus ================================================================================ AUTORE: 116 DATA :05/10/2006 - 11:19:11 ---------------------------------------- ciao sto lavorando a una comunicazione "can bus". per ora uso l'interfaccia della "kvaser" e di conseguenza la sua libreria con driver per labvew. finito il lavoro con la kvaser devo implementare la comunicazione anche con l'interfaccia "IXXAT" ,ma non trovo la libreria per il LV \":?\" qualcuno ci ha gia sbattuto la testa? \":(\" aspetto consigli da tutti grazie \":wink:\" Alberto S. ---------------------------------------- AUTORE: 4 DATA :05/10/2006 - 11:26:34 ---------------------------------------- Ciao, io stò lavorando su canopen e uso una scheda IXXAT. Il driver LabVIEW ce lo siamo costruiti noi partendo dall'interfaccia ActiveX fornita da IXXAT. Se hai bisogno di altre info scrivi pure, mi farebbe piacere confrontarmi con chi è sulla mia stessa barca \";)\" Ciao ---------------------------------------- ================================================================================ property node e termocoppie ================================================================================ AUTORE: 1313 DATA :05/10/2006 - 14:19:14 ---------------------------------------- Salve Ragazzi, volevo chiedervi se vi sembra corretto o se avete un idea migliore a questo subvi: 1) lancio il VI principale, cerea il task ed entra in un while 2) nel while stoppo il task controllo i setting delle termocoppie tramite il subvi allegato , avvio il task 3) faccio le mie acquisizioni Grazie in anticipo, Cris ---------------------------------------- AUTORE: 1313 DATA :05/10/2006 - 14:23:20 ---------------------------------------- dimenticavo il subvi ---------------------------------------- AUTORE: 1313 DATA :06/10/2006 - 10:26:20 ---------------------------------------- HELP ME!!! NON funziona, la soluzione property-node per settare le termocoppie non funzione,. Qualcuno sa darmi un suggerimento??????? Grazie in anticipo, CRris \":?\" \":?\" ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 17:10:21 ---------------------------------------- L'elenco di proprietà dei property node sono "eseguiti" sequenzialmente nel ordine in cui si trovano. Devi quindi, PRIMA, impostare il canale attivo e POI settarne le proprietà. ---------------------------------------- AUTORE: 1313 DATA :09/10/2006 - 07:39:09 ---------------------------------------- Grazie per la risposta, ma non capisco, scusami io il canale lo attivo con un DAQmx create channel inizzializzo il daq ed i canali e quì li setto. In che senso intendi attivare il canale?? Cris P.S. la sequenza che uso è crea task con la lista dei canali da usare imposta il clock e setta i parametri. ---------------------------------------- AUTORE: 384 DATA :09/10/2006 - 08:55:19 ---------------------------------------- Ciao. Mi riferisco soltanto alla struttura property node. Nell'elenco di proprietà da settare, deve comparire pre PRIMA il riferimento del canale le cui proprietà si vogliono cambiare. . ---------------------------------------- AUTORE: 384 DATA :09/10/2006 - 08:58:03 ---------------------------------------- Ho dimenticato l'esempio... ---------------------------------------- AUTORE: 1313 DATA :09/10/2006 - 10:20:25 ---------------------------------------- OK!, grazie, mi sembrava strano che non funzionava. Appena provo ti faccio sapere. Cris ---------------------------------------- ================================================================================ gestione di subroutine ================================================================================ AUTORE: 1384 DATA :05/10/2006 - 15:06:48 ---------------------------------------- Ciao a tutti, sono un neo programatore del labview.il mio pb e di programare una subroutine che viene chiamato dal VI principal e sopratutto quest'ultimo non si ferma mentre si esegue la subroutine grazie ---------------------------------------- AUTORE: 384 DATA :05/10/2006 - 15:47:07 ---------------------------------------- Detto cosí è un pò troppo generico e non riesco a capire quale è il reale problema. Potresti magari descriverlo un più in dettaglio, e forse anche allegare il tuo vi al pot? ---------------------------------------- ================================================================================ labview 8.2 ================================================================================ AUTORE: 838 DATA :05/10/2006 - 15:25:56 ---------------------------------------- ho da poco installato l'8.2 mettendo nel cassetto l'amato 7.1 il primo approccio è abbastanza ruvido poichè lavorando molto con il dsc qui me l'hanno completamente cambiato molte altre funzioni sono diverse e quindi su alcune cose sono un pò spaesato 1 domanda: esiste una documentazione chiara e in italiano che spiega come usare le shared variables, e quando conviene usarle al posto delle global? 2 domanda: in poche parole a cosa serve il project manager? mi raggruppa i vi che sto usando e definisco le opzioni per il builder? 3 domanda: ma chi me lo ha fatto fare a passare all'8.2????!!!!! \":lol:\" ---------------------------------------- AUTORE: 384 DATA :05/10/2006 - 15:44:11 ---------------------------------------- [quote="minzuk":1np9jtp6]3 domanda: ma chi me lo ha fatto fare a passare all'8.2????!!!!! [/quote:1np9jtp6] Oh, yeahhh!!! \":lol:\" ---------------------------------------- AUTORE: 1165 DATA :06/10/2006 - 07:15:32 ---------------------------------------- 1) Cerca nel forum "traduzione della AN223", è la traduzione in italiano della Application Note 223 che parla proprio delle variabili shared. 2) Tutto il mondo della programmazione (e più in generale delle interfacce) cerca di raggruppare le impostazioni comuni ad una certa classe di problemi, quindi appare logico centralizzare alcune scelte comuni a parametri che riguardino il medesimo progetto. Ne capisco la logica, ma venendo anche io dal mondo del vecchio stile fatico a ritrovarmici. Mi consola che non sono il solo! 3) Chi bello vuole apparire .. un poco deve soffrire!! ---------------------------------------- AUTORE: 838 DATA :06/10/2006 - 08:41:36 ---------------------------------------- [img:unml699s]http://www.freesaveweb.it/hwupgrade/smile/cartelloni/thx4info.gif[/img:unml699s] ---------------------------------------- ================================================================================ Eseguibile con DataSocket ================================================================================ AUTORE: 482 DATA :05/10/2006 - 16:11:52 ---------------------------------------- ..ma ciao! Ho realizzato un eseguibile di monitoraggio di un applicazione. Il monitoraggio avviene tramite DSP. Devo adesso installarlo sulla amcchian che farà il monitoraggio. Oltre al Runtime engine di labview, cosa devo installare sulla macchina? Sicuramente qualcosa che mi gestisca il protocollo datasocket ma dove lo trovo? in quale degli svariati CD National Instruments? Fino ad ora non avevo sto problema perchè le altre macchien di monitoraggio montavano già il MAX per altri motivi. ---------------------------------------- AUTORE: 645 DATA :05/10/2006 - 16:32:48 ---------------------------------------- Se crei l'installer puoi aggiungere, tra le opzioni avanzate, componenti particolari. Dovrebbe (a memoria) esserci supporto per DataSocket. ---------------------------------------- AUTORE: 482 DATA :06/10/2006 - 09:03:49 ---------------------------------------- ...ma ciao! ho prelevato la cartella dal CD di installazione di LabVIEW perchè non mi andava di fare un installer apposta. Il problema è che una volta lanciata l'installazione e andata abuon fine, il datasocket server non partiva perchè alcune dll non venivano installate e mi dava errore in cwdss.exe perchè non trovava le dll lkXXXX che avrebbero dovuto trovarsi in windows/system32. Ho risolto copiando manualmente quelle librerie dal mio pc e ora tutto funziona \":wink:\" ---------------------------------------- ================================================================================ forma del front panel ================================================================================ AUTORE: 1241 DATA :05/10/2006 - 16:12:13 ---------------------------------------- Ciao ragazzi, sapete per caso se è possibile modificare la forma del front panel? no ridimensionarlo ma proprio cambiare forma, chessò col contorno di un gatto p. es. ---------------------------------------- AUTORE: 129 DATA :05/10/2006 - 16:32:18 ---------------------------------------- Sfruttando le api di windows si... Ti allego un esempio trovato su internet.... In pratica rende trasparente la finestra e quindi una figura all'interno(su cui appoggi i tuoi controlli) rappresenta il perimetro della tua interfaccia)... ---------------------------------------- ================================================================================ Loops paralleli: sincro, reset e molto altro. (Post lungo) ================================================================================ AUTORE: 1477 DATA :05/10/2006 - 21:24:41 ---------------------------------------- Ho un while loop di acquisizione con clock di 1 sec. La variabile di processo l'ho messa su una media mobile di 7,5 minuti all'interno del loop. Ogni 15 minuti devo: - leggere il valore della media mobile della variabile di processo - calcolare l' "errore" (processo - set point) - calcolare la differenza tra l'errore appena letto e quello letto 15 minuti prima e su questa differenza applicare un calcoletto per ottenere la "variazione differenziale" (è quasi una derivata ma il dt è di un minuto quindi lo faccio con l'algebra semplice) - passare i due valori - errore e variazione nel tempo dell'errore - ad un algoritmo fuzzy che mi genera un'uscita da aggiungere al set point di un altro strumento. - Nel while loop di acquisizione ho anche un confronto continuo (stesso clock di prima, of course) tra il valore della media mobile e una soglia di allarme (portata troppo alta). Se la supero devo interrompere [b:1iq9sckt]subito[/b:1iq9sckt] l'intervallo di regolazione (15 min), assegnare un valore arbitrario costante alla variabile stessa e attivare un intervallo di solo 5 minuti alla fine del quale, se non ho più l'allarme di alta devo far ripartire (da zero) l'intervallo di 15 minuti sopra descritto. Se l'allarme c'è ancora faccio un altro "giro di giostra" coi 5 minuti e poi ricontrollo. - A monte di tutto questo devo poter inserire e disinserire la regolazione. - Ho anche un valore bool da un ingresso che me la può fermare nel qual caso dovrei essere obbligato a riavviarla manualmente dopo che questo bool è ridiventato true. Per i cicli di controllo da 15 e 5 minuti ho creato un while loop parallelo con all'interno due CASE annidati: - sul terminale di controllo di quello più esterno ho messo i booleani per ON/OFF regolazione. Per adesso non ho affrontato il problema del relè latch (set/reset) e ho solo un paio di AND e uso azioni meccaniche permanenti. - nel case FALSE ho un clock di 1 sec, per evitare sprint non voluti e una semplice assegnazione di un valore ad un indicatore di testo con una indicazione di CONTROLLO SPENTO. - Nel case TRUE ho un case più piccolo dentro al quale ho: FALSE = REGOLAZ SOSPESA e clock di 5 minuti TRUE = REGOLAZ ATTIVA , somma fuzzy out + set point precedente e clock di 15 minuti. Al suo terminale di controllo ho messo una local che prende il valore dalla soglia di alta portata dall'altro while. Nel case grande ho anche il calcolo della variazione dell'errore tra lettura attuale e precedente per la quale ho trovato molto comodo e immediato lo shift register (sul while più esterno). Il passagio dei valori da un while all'altro lo faccio con delle locals. Per la barra di scorrimento corrispondente all'intervallo di controllo (15 min) ho messo un Tick counts nel while di controllo e un'altro nel while di acquisizione dal quale sottraggo quello del controllo per avere un elapsed time del while del controllo. Problemi da risolvere: 1) se raggiungo la soglia di alta portata devo [b:1iq9sckt]commutare immediatamente[/b:1iq9sckt] dal ciclo di 15 minuti a quello di 5. Ora non mi si ferma e devo aspettare la fine dei 15 min per vedere la commutazione sul ciclo da 5 (CASE più interno) 2) se disinserisco il regolatore o mi cade il bool da esterno, devo [b:1iq9sckt]fermare immediatamente[/b:1iq9sckt] il loop da 15 min senza neanche commutare su quello da 5 (CASE più esterno) 3) se reinserisco il regolatore mi deve partire [b:1iq9sckt]subito[/b:1iq9sckt] il ciclo da 15 (o da 5 se sono già in alta portata) (CASE più esterno) 4) se cambio alcuni parametri di regolazione (set point, tempo di intervallo tra i controlli ecc) devo [b:1iq9sckt]automaticamente far ripartire l'intervallo di controllo da zero[/b:1iq9sckt] e già la prima volta mi deve contare fino al tempo impostato e non a quello precedente. L'ho fatto con un =/ ma si attiva solo alla fine del ciclo in corso 5) la barra di scorrimento che mi segnala quanto manca al prossimo controllo dovrebbe essere [b:1iq9sckt]ben sincronizzata con il reale tempo[/b:1iq9sckt] del ciclo da 15 (o 5 o altro): com'è adesso non mi sembra. 6) naturalmente le segnalazioni testuali di regolazione inserita, disinserita e/o sospesa devono apparire [b:1iq9sckt]sincronizzate con lo stato effettivo del regolatore[/b:1iq9sckt]: com'è adesso non mi sembra Ho scandagliato l'help e il find examples ma, finora, non son riuscito a capire bene come risolvere i miei problemi. Non chiedo soluzioni svolte o pronte ma qualche indirizzamento e, perchè no, qualche esempio (non sono riuscito a trovarne uno con le occorrenze). Grazie per l'ascolto e scusate per la lunghezza del post. Non ho allegato il vi perchè, per ora, non è molto presentabile. Grazie ancora. ---------------------------------------- ================================================================================ Task e global channel ================================================================================ AUTORE: 46 DATA :06/10/2006 - 08:01:32 ---------------------------------------- Buongiorno a tutti Non mi è chiara la differenza esistente tra un DAQmx task name constant e un DAQmx global channel constant, ai quali è possibili riferirsi nelle funzioni di acquisizione. Sto utilizzando l'USB-6008 per acquisire segnali digitali e, fino ad ora, ho meccanicamente sempre fatto riferimento a DAQmx global channel constant (nel quale definivo direttamente il canale dal quale andare ad acquisire) per inizializzare, ad esempio, DAQmx Read. Potrei fare la stessa cosa anche con DAQmx task name constant ? Chiedo scusa per la terminologia sicuramente poco corretta; spero però di essermi fatto capire. Grazie per l'attenzione Claudio ---------------------------------------- ================================================================================ Problema installaz. Device Drivers (quelli forniti con 8.2) ================================================================================ AUTORE: 1168 DATA :06/10/2006 - 09:00:21 ---------------------------------------- Salve a tutti. Ho avuto dei problemi installando i device drivers forniti con la versione 8.2 di LabVIEW, nel senso che i CD mi impallavano l'accesso al CDROM e quindi il pop-up continuava a chiedermi di inserire il CD coi device drivers... tutti e tre! L'unica è stata copiare i CD sull'hard disk e installare da lì. Non so se è ststo un problema di Installshield o di CD. Spero di essere stato chiaro... Qualcuno ha avuto lo stesso problema? Ciao P. ---------------------------------------- AUTORE: 838 DATA :06/10/2006 - 09:47:25 ---------------------------------------- nessun problema non cambia nulla se li installi dai cd o se li copi su hard disk o se li rimasterizzi su dvd io ad esempio mi sono fatto un dvd con dentro tutto labview dsc fpga relatime pda driver \":D\" ---------------------------------------- AUTORE: 1168 DATA :06/10/2006 - 10:02:25 ---------------------------------------- Grazie! Era solo per sapere se altri hanno avuto il mio stesso problema... ---------------------------------------- AUTORE: 238 DATA :06/10/2006 - 16:27:28 ---------------------------------------- Visto che si parla di installazione di LV8.2 volevo chiedere \":arrow:\" ho installato LV8.0 + megaaggiornamento , per installare la versione 8.2 bisogna prima disinstallare la 8.0 \":?:\" ---------------------------------------- AUTORE: 414 DATA :13/10/2006 - 15:48:56 ---------------------------------------- Mi accodo all'ultima domanda, perchè ho 'solo' installato sul mio PC Lv 6.1-7.1-8.0 in contemporanea e vorrei aggiungere anche 8.2 ---------------------------------------- ================================================================================ Custom Control: slide in diagonale ================================================================================ AUTORE: 482 DATA :06/10/2006 - 10:01:22 ---------------------------------------- ..ma ciao! sto creando un via di simulazione di una macchina che movimenta un cilindro pneumatico montato in diagonale rispetto al punto di osseravzione. Che voi sappiate è possibile orientare un controllo slide in modo da farlo restare in posizione diagonale? anche qualcosa di vagamente simile come soluzioen mi puo' andare bene. ---------------------------------------- AUTORE: 660 DATA :06/10/2006 - 10:35:22 ---------------------------------------- Non ho ancora verificato con la nuova versione 8.2, ma mi sembra che con le vecchie non lo si potesse fare. Ti consiglio di crearti una picture ring (non so se sia il nome corretto) e di metterci dentro una serie di immagini che rappresentano le varie posizioni che vuoi visualizzare. Se qualcuno ha soluzioni migliori non vedo l'ora di poterle usare anch'io, infatti quella sopra è un po' laboriosa anche se funzionante. ciao ---------------------------------------- AUTORE: 482 DATA :06/10/2006 - 10:39:33 ---------------------------------------- Per il momento ho ovviato utilizzando un Gauge e ridimensionandogli la scala a un quarto del cerchio... ---------------------------------------- ================================================================================ Open G Application builder ================================================================================ AUTORE: 1168 DATA :06/10/2006 - 10:22:31 ---------------------------------------- Salve a tutti. Non so se è il forum adatto, ma qualcuno di voi usa l'application builder di OpenG? si appoggia su quello Ni (e quindi serve la licenza) o è completamente scollegato? Grazie in anticipo, P. ---------------------------------------- AUTORE: 129 DATA :08/10/2006 - 11:07:50 ---------------------------------------- Non l'ho mai provato ma dovrebbe essere indipendente da application builder. ---------------------------------------- AUTORE: 952 DATA :09/10/2006 - 10:01:25 ---------------------------------------- Si appoggia a quello NI, perciò serve la licenza. Però è un pò meglio di quello NI, almeno per quanto riguarda la versione 7. ---------------------------------------- ================================================================================ array e iterazioni ================================================================================ AUTORE: 1241 DATA :06/10/2006 - 12:45:59 ---------------------------------------- ciao ragazzi, non mi vogliate male ma ho ancora problemi durante un'acquisizione dati entra in una subroutine iterativa di calcolo di zeri di una funzione. i valori in uscita (gli zeri) devono essere inseriti in un array colonna o in un grafico. Il problema è che i valori del secondo array (allego vi e subroutine)non vengono proprio visualizzati. simulo l'acquisizione dati con un segnale. forse il calcolo degli zeri non riesce ad essere consequenziale con il segnale? forse ho sbagliato ad impostare la subroutine? potete aiutarmi per favore? ---------------------------------------- AUTORE: 1241 DATA :06/10/2006 - 13:52:49 ---------------------------------------- Fatto, allego il file corretto per chiunque ne avesse bisogno. Unico problema: la pressione del booleano non ferma il programma boh? ---------------------------------------- AUTORE: 1241 DATA :06/10/2006 - 14:03:48 ---------------------------------------- nei file inviati in precedenza manca la funzione. eccola il metodo di ricerca degli zeri proposto è molto semplice e veloce, modificando la funzione e i valori dei primi due tentativilo si può applicare ad ogni equazione non lineare però non riesco ancora a fermare il ciclo di simulazione.vi. qualcuno può aiutarmi? ---------------------------------------- ================================================================================ Variabili in formula node ================================================================================ AUTORE: 1441 DATA :06/10/2006 - 16:47:04 ---------------------------------------- Ho creato un VI che contiente un formula node che esegue alcuni calcoli "semplici" (rapporti somme di variabili ecc...) y=a0+bx Non capisco però perchè il risultato non sia esattamente quello che io desidero ma leggermente diverso come se le approssimazioni delle cifre decimali influissero. Ho dichiarato come variabili float64 ma non cambia nulla. Che mi consigliate? Grazie Paolo ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 17:13:13 ---------------------------------------- Nei formula nodes i calcoli sono sequenziali. Potrebbe esserne una causa? Senza altri dettagli non mi viene in mente altro. ---------------------------------------- AUTORE: 1441 DATA :07/10/2006 - 10:19:21 ---------------------------------------- ti allego il contenuto del formula node... il mio problema è che F cioè la frequenza del segnale che voglio generare, che deve andare da 2 a 50 Hz (per esempio) non arriva a 50 ma 50,12313813.... non so se è impossibile realizzare questo o se è un problema di variabili mal definite... Fmax è definito dall'utente Fi è definito dall'utente F0 viene aggiornato ad ogni ciclo al nuovo valore di F Tm è definito dall'utente T0 si aggiorna ad ogni ciclo al nuovo valore di T float b, x, T, F, d, P; b=(Fmax-Fi)/Tm; x=1/F0; F=F0+(b*x); T=T0+x; d=(1000-(0.1*F))/F; P=(1000-d)/10; Spero sia sufficente a chiarire le idee...posso anche inviale il file di LV se preferisci... Grazie Paolo ---------------------------------------- AUTORE: 384 DATA :09/10/2006 - 11:13:28 ---------------------------------------- Quindi quello che succede è che calcolate queste espressioni all'interno di un formula node oppure con le operazioni esplicite di laview il risultato cambia? Sicuramente devi dichiarare le variabili "float64"- che è l'equivalente al DBL - se vuoi più di 6 decimali di precisione. Potresti allegare il tuo VI? (ver. 7.1!) ---------------------------------------- AUTORE: 1441 DATA :09/10/2006 - 13:58:33 ---------------------------------------- ti allego il file...anche con float64 non cambia nulla...avevo già provato, riproverò....vorrei capire se è impossibile realizzare quel che voglio o se questa strada magari è sbagliata e dovevo seguirne un'altra.. Grazie ---------------------------------------- AUTORE: 384 DATA :09/10/2006 - 15:29:47 ---------------------------------------- Ciao. Ho riprodotto le tue espressioni con i normali blocchi di LV ed ho trovato delle differenze dell'ordine del 1E-15 e più piccole, cioè dell'ordine della stessa precisione del tipo di dato DBL. Questo se i tuoi controlli "START FREQ." e "T0" sono del tipo "extended precision" - ovviamente perchè il tipo "ext" si propaga nei calcoli normali e non attraverso il formula node. Se invece quei controlli sono sono definiti DBL, per lo più le differenze sono ZERO; occasionalmente si osservano valori del tipo 1E-17, cioè oltre la precisione del tipo di dato e quindi non più significativi. Non so che lavoro tu debba fare, ma errori di questo tipo mi sembrano assolutamente trascurabili. Tra l'altro, ma hardware - sia D/a che A/D - che garantisca precisioni superiori a 6 decimali (cioè, più di 20 bit!), non è proprio di "uso comune", costa intere fortune e sicuramente ha bisogno di circuiteria esterna e condizionamento particolarmente curati - andiamo a livello di nucleare o metrologia di certificazione di primo livello. Allego il vi come l'ho modificato. ---------------------------------------- AUTORE: 1441 DATA :13/10/2006 - 14:13:38 ---------------------------------------- grazie per esserti dato da fare con il mio file...ho notato la differenza quasi nulla fra i valori generati... avrei però anche un altro problema... se io salvo il segnale generato con il "write to measurement file" posso notare che l'applicazione viene eseguita più lentamente e che il tempo calcolato con il mio formula node non coincide con quello vero trascorso calcolato mediante elapsed time... ma come posso fare a salvare un segnale prodotto senza che questa cosa influisca sulla qualità del segnale stesso... ---------------------------------------- AUTORE: 384 DATA :13/10/2006 - 16:20:43 ---------------------------------------- Guardanto il formula node vedo che T=T0+x dove x=1/F0. Sia T0 che F0 sono i valori di T ed F del ciclo precedente. In queste circostanze, l'incremento da un ciclo all'altro non è costante e nemmeno lineare. In più non vedo come questo calcolo del tempo sia sincronizzato con il tempo ciclo del loop, quindi non mi stupisce che tu veda cose non concordi. Molto spesso il problema di lentezza nel salvataggio dati è dovuto al fatto che le funzioni di più alto livello aprono e chiudono i file ad ogni operazione di scritura, il che è MOLTO oneroso in tempo. La soluzione per snellire il processo è aprire il file prima del loop e chiuderlo solo dopo l'uscita dal loop. All'interno del loop, l'operazione è una scrittura "pura". Vedi se non è questo il tuo problema. Comunque, le alternative non sono molte. 1. tutto quello che devi fare deve stare all'interno del tempo ciclo, comprese operazioni su disco. 2. se proprio non si riesce, si deve usare un meccanismo di "serbatoio tampone" indipendente dove spedire tutti i dati da salvare. Il salvataggio andrà per conto suo, tenendo presente che se riceve più dati di quanti "consuma" per unitá di tempo continuerà a riempirsi. Bisogna fare in modo che non "trabocchi" e anche qui non ci sono molte soluzioni; eventualmente ne discuteremo se servirà. Questo "serbatoio" può essere un loop parallelo al primo ed i dati vi si spediscono con una coda. ---------------------------------------- AUTORE: 1441 DATA :18/10/2006 - 10:37:25 ---------------------------------------- In pratica è sbagliato tutto quello che ho fatto... La cosa che principalmente mi servirebbe è quella di fare in modo che il tempo della rampa di stimolazione coincida esattamente con il tempo reale. DA quanto scrivi pare che nel mio programmino questo non avvenga: come posso fare quindi? In altre parole se io dico che la frequenza di partenza è 2Hz e la max 50 in 10 secondi io voglio che questo incremento avvenga. E voglio che i 10 secondi siano esatti... Come fare? ---------------------------------------- AUTORE: 384 DATA :18/10/2006 - 11:13:43 ---------------------------------------- [quote="paologaffu":3toh0exh]In pratica è sbagliato tutto quello che ho fatto... La cosa che principalmente mi servirebbe è quella di fare in modo che il tempo della rampa di stimolazione coincida esattamente con il tempo reale. DA quanto scrivi pare che nel mio programmino questo non avvenga: come posso fare quindi? In altre parole se io dico che la frequenza di partenza è 2Hz e la max 50 in 10 secondi io voglio che questo incremento avvenga. E voglio che i 10 secondi siano esatti... Come fare?[/quote:3toh0exh] In pratica devi usare come "passo" temporale il tempo del ciclo. Usando il loop temporizzato, hai già in partenza la "certezza" che questo tempo è costante e sai anche quanto è perchè lo imposti tu. Ripetto che devi fare in modo che TUTTE le operazioni eseguite all'interno del loop si eseguano il quel tempo. Comunque, il loop temporizzato ha una uscita che avvisa se per caso questo non avviene, in modo da poter prendere i provvedimenti del caso. Tutto qua. ---------------------------------------- AUTORE: 1441 DATA :18/10/2006 - 11:19:54 ---------------------------------------- Diciamo che il loop che io uso come puoi vedere viene ripetuto non in modo costante ma dopo un delta T che è calcolato nel formula node. E questo è esatto; infatti se da 2 HZ poi voglio uno stimolo ad una frequenza maggiore dovrò anche fare in modo che questo stimolo sia prodotto dopo un delta T inferiore rispetto a prima e così via fino ai 50 Hz. Quindi non un loop costante ma variabile come credo di aver fatto...ma forse sto cercando la soluzione di un problema che in realtà non esiste... ---------------------------------------- AUTORE: 384 DATA :18/10/2006 - 11:22:29 ---------------------------------------- Ma perchè non usi la funzione "Sawtooth Waveform"? ---------------------------------------- AUTORE: 384 DATA :18/10/2006 - 11:31:48 ---------------------------------------- [quote="paologaffu":1cr4l5pk]Diciamo che il loop che io uso come puoi vedere viene ripetuto non in modo costante ma dopo un delta T che è calcolato nel formula node. E questo è esatto; infatti se da 2 HZ poi voglio uno stimolo ad una frequenza maggiore dovrò anche fare in modo che questo stimolo sia prodotto dopo un delta T inferiore rispetto a prima e così via fino ai 50 Hz. Quindi non un loop costante ma variabile come credo di aver fatto...ma forse sto cercando la soluzione di un problema che in realtà non esiste...[/quote:1cr4l5pk] Con questo tuo messaggio ho avuto la sensazione che tu stia mischiando cose diverse. Ti serve generare un'onda a dente di sega oppure uno "sweep" in frequenza? ---------------------------------------- AUTORE: 1441 DATA :18/10/2006 - 11:40:58 ---------------------------------------- uno sweep in frequenza dove la frequenza è applicata ad un onda quadra ---------------------------------------- AUTORE: 384 DATA :18/10/2006 - 12:30:22 ---------------------------------------- Mi sono perso. Potresti magari spiegare l'applicazione? Se pubblicare i dettagli è un problema potremmo trasferire la discussione su e-mail privato. ---------------------------------------- AUTORE: 1441 DATA :23/10/2006 - 18:19:42 ---------------------------------------- necessitiamo di generare con il pc un onda quadra con segnale on per 0,0001 secondi. Tale segnale on rappresenta lo stimolo che pilota un "elettrostimolatore" applicato ai muscoli che si desiderano "testare". Lo stimolo deve partire da 2 hz ed aumentare secondo la funzione y=ao+bx che se ben ricordo è una retta vero?Quindi da 2 hz fino ad un massimo stabilito dall'utente in un tempo pure stabilito. Vuoi altri chiarimenti? ---------------------------------------- AUTORE: 384 DATA :23/10/2006 - 19:07:32 ---------------------------------------- Quindi, se ho capito bene, ti serve uno sweep in frequenza. La "retta", è soltanto il parametro frequenza. Ogni volta che lo cambi devi generare l'onda quadra con quella frequenza, ricalcolando il duty cycle perchè il tempo di ON è fisso. Guarda il vi allegato. Ogni volta che il loop gira, la frequenza viene incrementata di un certo valore. La frequenza pare da 2 Hz ed il loop finisce quando raggiunge i 50 Hz. Il tempo che il loop impieaga a fare questa "scansione" dipende dal periodo del loop e del'incremento stesso. A seconda del dispositivo che userai per fare l'output potrai rimpiazzare del tutto il blocco generatore oppure darne quell'output in ingresso al generatore reale. ---------------------------------------- AUTORE: 1441 DATA :24/10/2006 - 14:18:19 ---------------------------------------- Esatto il file che mi hai dato è perfetto e funziona alla grande... Due sole precisazioni ci sarebbero da fare: La prima: la durata della rampa deve essere definita dall'utente e quindi l'incremento deve essere "proporzionale" al tempo stabilito per andare dal minimo al massimo. Quindi l'equazione della retta y=a0 + bx contiene proprio questo valore di pendenza che è b e deve essere dato da: (Fmax-Finiz)/Tmax dove Tmax è quello stabilito per raggiungere la Fmax. La seconda: la frequenza di stimolo...cerco di spiegarmi: nel tuo esempio la frequenza aumenta in modo lineare. Ogni tot secondi aumenta di tot Hz giusto? Noi vorremmo: 1 stimolo a 0 secondi a 2Hz. Il successivo stimolo arriverà quindi dopo 0,5 sec. quindi per capirci con un tempo di salita T=7,5 Fmax=50 e Finiz=2 e dove x=1/Fn F0=2+b*0 --> dove b= 6,4 e quindi F0=0 F1=2+6,4*0,5 --> x=1/2=0,5 e quindi F1= 5,2 F2= 5,2 + 6,4*0,192 --> x=1/5,2 e quindi F2=6,4288 ecc ecc Quindi lo stimolo avviene dopo un tempo T corrispondente a x... è contorto ma forse riesci a capire dato che sei una specie di super esperto... Vista la tua disponibilità penso che me ne sto approfittando un po troppo... Spero cmque si capisca il problema...ciao e grazie ---------------------------------------- AUTORE: 1441 DATA :31/10/2006 - 09:05:43 ---------------------------------------- Cosa sarebbe quel valore nel rettangolino 1000 con sotto un altro 1000 che entra nel sample rate? non riesco proprio a capire... ---------------------------------------- AUTORE: 1441 DATA :31/10/2006 - 11:10:26 ---------------------------------------- riguardo all'ultima domanda ho più o meno risolto la questione da me...per il resto lascio il problema aperto... ciao ciao ---------------------------------------- AUTORE: 384 DATA :08/11/2006 - 11:41:21 ---------------------------------------- Guarda l'esempio "Optimizing timed loop rate.vi" dove si mostra come cambiare dinamicamente il "periodo" di un timed loop. Credo possa essere ciò che cerchi. Ad ogni ciclo ti permette di dare un'impulso, calcolare il "tempo di attesa" fino al prossimo ed impostarlo come tempo ciclo. ---------------------------------------- AUTORE: 1441 DATA :13/11/2006 - 10:06:37 ---------------------------------------- ma io sto file nn lo trovo proprio dove lo posso trovare? ---------------------------------------- AUTORE: 384 DATA :13/11/2006 - 10:43:54 ---------------------------------------- La struttura timed-llop esistes soloo dalla versione 7.1 in poi. Se apri il "example finder" di LabView clicchi sul tab "search" ed inizi a scrivere compariranno nella finestrella sotto diverse voci tari cui - appunto 'timed-loop'. Facendoci doppio click sulla finestra di destra esci un elenco di vi di esempio. Guardali perchè hanno tanta informazione. Comunque quello specifico a cui mi riferivo lo allego qui. ---------------------------------------- AUTORE: 384 DATA :13/11/2006 - 10:47:59 ---------------------------------------- [quote:3syftspv]La struttura timed-llop esistes soloo dalla versione 7.1 in poi. Se apri il "example finder" di LabView clicchi sul tab "search" ed inizi a scrivere compariranno nella finestrella sotto diverse voci tari cui - appunto 'timed-loop'. Facendoci doppio click sulla finestra di destra esci un elenco di vi di esempio. Guardali perchè hanno tanta informazione. Comunque quello specifico a cui mi riferivo lo allego qui.[/quote:3syftspv] Non so cos'è successo, il mio messaggio è uscito pieno di "typos"!!! \":evil:\" Eccolo di nuovo. [quote:3syftspv]La struttura timed-loop esiste solo dalla versione 7.1 in poi. Se apri il "example finder" di LabView, clicchi sul tab "search" ed inizi a scrivere, compariranno nella finestrella sotto diverse voci tra cui - appunto - 'timed-loop'. Facendoci doppio click, sulla finestra di destra esce un elenco di vi di esempio. Guardali perchè hanno tanta informazione. Comunque quello specifico a cui mi riferivo lo allego qui.[/code] (n.d.r. è il vi allegato al messaggio precedente!) [/code][/quote:3syftspv] ---------------------------------------- AUTORE: 1441 DATA :19/12/2006 - 11:16:07 ---------------------------------------- finalmente sono riuscito a sistemare una parte del programmino. Il problema ora però è che non riesco ad interfacciarmi con l'esterno. Uso il DAQ assistant ma continuo ad avere problemi. Secondo te frequentando un corso su lab view posso risolvere il mio problema oppure sono problem i troppo specifici?come posso fare a capire come risolverli? ---------------------------------------- AUTORE: 384 DATA :19/12/2006 - 11:48:02 ---------------------------------------- Se hai la possibilità di frequentare un corso, io direi che devi cogliere l'opportunità, semplicemente perchè ti verrà data una base "organizzata" e "sistematica", dalla quale sará poi molto più facile progredire. In più si stabilisce un rapporto diretto con NI ed un rapporto molto interessante con gli altri partecipanti. Ciò detto, ritengo che non sia stretamente necessario. Gli esempi di LabView coprono praticamente tutto quello che c'è da sapere, quindi ti consiglio di partire sempre da lí. Secondo passo, se il primo non esaurisce la necessità, la ricerca sul sito NI. In fine, il nostro forum. Qui devi solo scegliere la sezione dove "postare" il tuo messaggio (Programazione, Prog. Avanzata, Hardware, ecc.) e descrivere nel modo più chiaro, sintetico e specifico possibile la tua difficoltà: qualcuno sicuramente risponderà. Spesso in più rispondono e si generano degli scambi molto interessante e sopratutto istruttivi. Forza! [/quote] ---------------------------------------- ================================================================================ Mandare stringhe ad una parallela ================================================================================ AUTORE: 1504 DATA :06/10/2006 - 17:32:17 ---------------------------------------- Sto cercando di mandare una stringa di formato LPRINT"Ha0" alla parallela. Secondo voi quale oggetto uso della libreria di conversione stringa numero perchè il VI Out Port.VI lo veda correttamente? Grazie Robin ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 17:47:22 ---------------------------------------- Ciao. Da quando windows 3.11 è andato in pensione non si può più scrivere direttamente sui registri hardware - è bloccato dal sistema operativo. Non puoi quindi usare la parallella scrivendo direttamente sull'indirizzo canonico (0x378 se ricordo). Devi usare i blocchi VISA per aprire il port, scrivere/leggere e chiuderlo quando non serve più. ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 17:57:37 ---------------------------------------- Quanto ho scritto nel post precedente è solo parzialmente vero: - è vero che non si può più accedere all'hardware direttamente, perchè è bloccato dal sistema operativo. - i vi InPort.vi ed OutPort.vi funzionano, quindi, evidentemente, LabView ha sotto un device driver per permettere l'accesso "diretto" all'hardware. Per quanto riguarda la parallela, io continuo a raccomandarne l'utilizzo tramite i blocchi VISA. Ciò non ostante, negli esempi di LabView ne esistono due di utilizzo della porta parallela che usano il OutPort.vi ed InPort.vi e almeno girano senza dare errori. Non ho nulla collegato alla parallela, quindi non posso verificare che questi esempi effettivamente funzionino, ma nemmeno ho motivi per dubitarne. ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 18:04:25 ---------------------------------------- Per tornare alla domanda originale, se si usano i blocchi VISA, le stringhe si trasmettono semplicemente come sono, senza alcuna conversione. In più, la communicazione è gestita dai blochi stessi. Se si usano le funzioni "dirette" (OutPort.vi e InPort.vi) bisogna convertire la stringa in un array di bytes (String To Byte Array) e poi trasmetterli, uno ad uno gestento direttamente il timing e l'handshaking. Se si sta controllando una stampante, io userei i VISA. Se invece si sta controllando dell'hardware proprietario, allora è più adeguato l'accesso "diretto" tramite 'port. Saluti. ---------------------------------------- AUTORE: 1504 DATA :06/10/2006 - 19:23:48 ---------------------------------------- Ti ringrazio per i consigli. Ho usato out port.Vi solo per vedere se funzionava e tutto è andato bene spedendo numeri. Speravo che convertendo la stringa in numero avrei potuto usare la stessa procedura ma temo che dovrò usare i VISA. Ti faro sapere ---------------------------------------- AUTORE: 1504 DATA :10/10/2006 - 14:42:31 ---------------------------------------- Ho risolto con il VI Out Port.vi. Ho splittato la stringa in singoli caratteri che ho convertito in ASCII e spedito alla parallela. ---------------------------------------- ================================================================================ PLC ================================================================================ AUTORE: 963 DATA :06/10/2006 - 17:46:15 ---------------------------------------- Salve a tutti!! Avrei un quesito da porvi.... Con LabView posso programmare un plc della Allen-Bradley? Se questo è possibile mi potete spiegare come si fa?? Grazie, buona serata! ---------------------------------------- AUTORE: 384 DATA :06/10/2006 - 18:32:53 ---------------------------------------- La risposta corta è: no, non si può programmare un PLC con LabView. Per farlo, dovresti creare con LabView un'applicazione equivalente al software che solitamente il fabbricante del PLC fornisce, cioè un'ambiente di sviluppo. Mi sembra che non sia il caso, anche perchè non credo siano disponibili pubblicamente tutte le informazioni necessarie per farlo. Si può invece comunicare con delle applicazioni che girano sui PLC per scambiare dei dati, impostazioni, dati di processo, allarmi e quant'altro. Attenzione: questo pressupone che sul PLC giri un programma che a sua volta deve "esportare" quei dati che vogliamo rilevare e "importare" quelli altri che vogliamo impostare, oltre a fare funzionare la macchina/sistema/impianto dove si trova. La programmazione di PLC si avale di sistemi particolari, anche se esistono degli standard; oggi alcuni hanno già sistemi di sviluppo ispirati alla programmazione grafica ad oggetti. Detti "ambienti di sviluppo" vengono forniti - quasi sempre a pagamento - dai rispettivi fabbricanti di PLC. ---------------------------------------- ================================================================================ Trasformare while lento + shift in while veloce + array(?) ================================================================================ AUTORE: 1477 DATA :07/10/2006 - 16:18:56 ---------------------------------------- Ho un while loop con un clock di 900000 ms (15 minuti). Al suo interno, mediante una local leggo il valore attuale da un altro while loop, esterno e parallelo a questo e che acquisisce con clock di 1 sec, lo butto su uno shift register e faccio la sottrazione con lo shift di sinistra. In questo modo, pur acquisendo ogni secondo, con un semplice shift reg. riesco a fare la sottrazione ad un intervallo definito da un controllo (in questo caso 15 minuti). Come sapete, il problema è che tutto quello che c'è nel loop di controllo viene aggiornato solo ogni 15 minuti. Vorrei poter ottenere la sessa cosa ma impostando un tempo di 1 sec anche nel loop di controllo: come faccio a fare la sottrazione tra il valore attuale e quello di 900 iterazioni fa? Credo di dover usare gli arrays ma vorrei evitare di crearne uno da 900 elementi quando quel che mi interessa sono solo il primo e l'ultimo. Grazie per l'ascolto. ---------------------------------------- AUTORE: 1165 DATA :07/10/2006 - 18:33:25 ---------------------------------------- Una soluzione che mi viene in mente al volo è di temporizzare il tuo ciclo a 1 ms e di dividere, con divisione intera, l'indice I del ciclo per 900 e di testare con un boolen il resto. Quando è nullo sei ad un multiplo di 900. Sicuramente molte altre soluzioni sono possibili e valide. Ciao, enr. ---------------------------------------- AUTORE: 1165 DATA :07/10/2006 - 18:44:02 ---------------------------------------- scusa .. correzione sul post precedente .. dove dicevo 1 ms ovviamente volevo intendere 1 s (un secondo) .. pardon ---------------------------------------- AUTORE: 129 DATA :08/10/2006 - 11:01:18 ---------------------------------------- Concordo con la soluzione di enr, e aggiungo : perchè utilizzare due loop? potresti fare tutto in un unico loop, ti allego la mia proposta. Il contatore serve per tenere appunto il timer a 1sec e far scattare un evento solo al termine di 900 sec. Dovresti modificare l'esempio per resettare il counter al termine dei 900 sec. e magari inserire nel blocchetto anche la sottrazione con il suo shift, così non hai troppi fili in giro. Ciao ---------------------------------------- ================================================================================ GOOP LV8.2 ================================================================================ AUTORE: 129 DATA :08/10/2006 - 11:46:13 ---------------------------------------- Qualcuno ha già iniziato a lavorare con LV8.2 e magari con la programmazione a oggetti che finalmente è stata implementata in labview? Io ho provato a fare qualcosa, ma non riesco a capirne i vantaggi reali, in quanto mi sembra molto basato sulla tecnica dei cluster e non vedo tutta sta novità. IN pratica usando type def o strictly type def, riesco a careare un tipo di dato da utilizzare anche con il meccanismo dell'ereditarietà. Realizzare un oggetto con property e metods in cui appunto posso dire che le propietà sono contenuti nel cluster e i vi che lo utilizzano scaturiscono i metodi (azioni), mi sembra già fattibile fin dai primi labview. Non riesco inoltre a utilizzare oggetti al di fuori di un progetto, per me un oggetto và creato proprio per essere usato ovunque e quindi non capisco come poter fare. Per il discorso delle destinzaioni d'uso come privato,pubblico, mi sembra che anche qui volendo si possono sfruttare alcuni meccanismi. E' vero che la disponibilità dei wizard (sempre più frequenti in labvioew) aiuta la realizzazione, ma per chi ha già i calli su labview, la trovo una difficoltà, in quanto obbliga a ridocumentarsi su cose in realtà gia note. Attendo vostre segnalazioni ---------------------------------------- ================================================================================ Variant di un cluster "marrone" e booleano ================================================================================ AUTORE: 1168 DATA :09/10/2006 - 08:41:07 ---------------------------------------- Salve a tutti. Come dato inuscita di una functional global uso un variant al quale passo a volte un cluster, a volte un booleano. E già qui ho il primo problema: sul booleano mi da filo rotto dicendomi che ho connesso due tipi di dati diversi, il primo è un booleano, l'altro un cluster di due valori. Ma il variant non dovrebbe accettare tutto? Creando la costrante cluster che mi serve (un DBL e un Enum (I32)). Il bordo del cluster mi diventa marroncino... perchè? cosa significa? Grazie mille in anticipo, P. ---------------------------------------- AUTORE: 927 DATA :13/10/2006 - 09:39:35 ---------------------------------------- Con "a volte" intendi a seconda della pagina di un case? I variant accettano tutto ma i tunnel di uscita dei case no... Usa il blocchetto di conversione "To Variant" dentro il case. Da me è sotto Advanced/Data Manipulation/Variant. Non chiedermi perchè, ma i cluster sono marroni quando contengono solo dati numerici, e rosa quando contengono anche stringhe, booleani, ecc... ---------------------------------------- ================================================================================ DSC?? Introduzione ed esempi ================================================================================ AUTORE: 683 DATA :09/10/2006 - 08:55:03 ---------------------------------------- ciao a tutti, dopo un lungo periodo di assenza sono di nuovo qui che chiedo consigli e aiuto Qualcuno mi sa dare 2 dritte sul DSC e magari fonirmi qualche link per potermi documentare con files di esempio?? Non ho assolutamtente presente come funziona questo modulo, quindi avrei bisogno di qualche linea guida in modo da poter instradare il mio lavoro grazie a tutti ---------------------------------------- AUTORE: 838 DATA :09/10/2006 - 09:18:55 ---------------------------------------- ma di quale versione? dalla 7.1 alla 8.2 c'è un'abisso \":D\" ---------------------------------------- AUTORE: 683 DATA :09/10/2006 - 10:25:21 ---------------------------------------- la 8.2 avrei bisogno in genrale di una dritta sul funzionamento e come intervine sui vi Ps l'ho installato ieri grazie buona giornata e buon lavoro ---------------------------------------- ================================================================================ passare uno stop in un subvi ================================================================================ AUTORE: 1427 DATA :09/10/2006 - 11:24:57 ---------------------------------------- ciao a tutti! grazie anche ai vostri prezioni consigli ho quasi ultimato un programma, impresa titanica per un newby come me. Mi rimane un'ultimo scoglio che non riesco a superare. Nel codice principale ho creato una subvi che contiene un ciclo while. Questo codice si deve fermare quando dal pannello del programma principale viene premuto un tasto. E qui mi nascono i grossi problemi in quanto ovviamente quando importo il valore logico del pulsante nel subvi questo prende il valore iniziale (false) ed il ciclo del subvi non va piu' a controllare se nel main il valore del pulsante viene cambiato. Come posso risolvere? Mi e' balenata l'idea di usare una shared variable, ma non sono riuscito a capire come utilizzarla. Ringrazio ancora per l'attenzione e porgo a tutti i piu' cordiali saluti! ---------------------------------------- AUTORE: 4 DATA :09/10/2006 - 11:57:13 ---------------------------------------- Se il vi che voiu fermare si trova all'interno del VI in cui c'è il bottone di stop... non c'è verso di farlo funzionare. Ti spiego, mentre il tuo subVI esegue il ciclo esterno rimane fermo in atesa della fine del subVI, in effetti non potrebbe fare altrimenti visto che hai un while dentro l'altro. Per risolvere devi usare dei while paralleli, potresti mettere il botone di stop in uno e il tuo subvi nell'altro e poi passare il valore del bottone di stop come meglio credi. Un metodo semplice potrebbe essere usare una variabile globale (anche se io "odio" le globali a volte possono risolvere velocemente parecchi casini... e crearne degli altri \":lol:\" ) Oppure, puoi usare le [b:23g5asje]occorrenze[/b:23g5asje] (il mio metodo preferito che ti dà anche molti altri vantaggi) Se ti interessa usare le occorrenze prova a guardare questa [url=http://www.ilvg.it/forum/download.php?id=297:23g5asje][b:23g5asje]presentazione[/b:23g5asje][/url:23g5asje] che parla anche di loop paralleli e del loro arresto. Ciao ---------------------------------------- AUTORE: 1427 DATA :09/10/2006 - 14:14:42 ---------------------------------------- [quote="ale914":m3ruz1qi] Oppure, puoi usare le [b:m3ruz1qi]occorrenze[/b:m3ruz1qi] (il mio metodo preferito che ti dà anche molti altri vantaggi) Se ti interessa usare le occorrenze prova a guardare questa [url=http://www.ilvg.it/forum/download.php?id=297:m3ruz1qi][b:m3ruz1qi]presentazione[/b:m3ruz1qi][/url:m3ruz1qi] che parla anche di loop paralleli e del loro arresto. Ciao[/quote:m3ruz1qi] grazie mille davvero gentilissimo! Guardo subito ---------------------------------------- ================================================================================ stringa numerica da visualizzare in un grafico ================================================================================ AUTORE: 1317 DATA :10/10/2006 - 08:41:54 ---------------------------------------- ciao a tutti..vorrei sapere qual'è il passaggio meno costoso in termini di tempo per rappresentare un numero (in uscita da un amperometro) sotto forma di stringa in un grafico.posso poi salvarlo facilmente per essere letto da exel??grazie a tutti ---------------------------------------- AUTORE: 384 DATA :11/10/2006 - 07:46:46 ---------------------------------------- Per avere un grafico, basta prendere il valore numerico (cosí come acquisito) e darlo in input ad un "Waveform Chart" per esempio. Per scriverlo in un file ascii puro, leggibile da excel, puoi: -scrivere direttamente con "Write to Spreadsheet File"; -usare una delle funzioni di conversione (e.g. "Number To Decimal String") oppure "Format Into String" e poi scrivere su file con "Write Characters to File"; Cosa intendi con " rappresentare un numero sotto forma di stringa in un grafico"? ---------------------------------------- AUTORE: 1317 DATA :11/10/2006 - 08:44:03 ---------------------------------------- ..mi rendo conto di essermi espresso molto male..ricevo dei valori da un amperometro sottoforma di stringa..vorrei visualizzarli in un chart ma non riesco a farlo a meno di convertirli in numero.questa operazione è però dispendiosa in termini di tempo e mi chiedevo se esistesse una soluzione alternativa.grazie dell'aiuto ---------------------------------------- AUTORE: 384 DATA :11/10/2006 - 09:20:11 ---------------------------------------- La risposta è no. Si possono "graficare" soltanto valori numerici - daltronde non c'è proprio alternativa: una stringa è un insieme di 'simboli' che può avere diversi significati a seconda di come sono interpretati. Nel momento in cui si deve fare un grafico, quei simboli devono per forza essere convertiti in un numero. Che lo si faccia esplicitamente o lo faccia implicitamente la funzione "grafico", da qualche parte lo si DEVE fare. Però non capisco una cosa: Ho fato una prova e la conversione da stringa a DBL con la funzione "Decimal String To Number" impiega 0.2 microsecondi. La conversione con "Scan From String" impiega 2 microsecondi. (Il mio PC è un M778 a 2.18GHz) Io non so che PC hai ne quanti dati/sec da convertire hai, ma il fatto che li ricevi in stringa mi fa pensare che la velocità di acquisizione non è elevatissima (come ti arrivano: seriale, usb, visa?) quindi non capisco come mai questo tempo di conversione possa essere cosí pesante per i tuoi scopi. ---------------------------------------- AUTORE: 384 DATA :11/10/2006 - 09:30:48 ---------------------------------------- Ho sbagliato una delle funzioni nel test che ho fatto. I valori che ho rilevato, medi su 1e8 cicli di conversione sono: Fract/Exp String To Number - 1.4 microsec Scan From String - 2.4 microsec Comunque, ciò non cambia l'essenza delle mie considerazioni. ---------------------------------------- AUTORE: 129 DATA :11/10/2006 - 09:31:41 ---------------------------------------- Se vuoi rappresentare un valore su di un grafico è ovvio che devi usare un numerico e quindi devi convertire la tua stringa in un numero, il fatto che sia dispendioso immagino lo imputi al fatto che ti sottrae temp ciclo in acquisizione, ma puoi sempre operare in modo parallelo. Crei due cicli uno di acquisizione e uno di monitoraggio, magari usi una coda per passare i dati senza perderne e avere tutta la risoluzione. La converisone stringa numero dici che è pesante ma che tipo di stringa hai?. Come soluzione alternativa puoi sempre ricorrere a quanto detto sopra quindi acquisisci e poi passi i dati a Excel per tracciare il grafico ma dovresti farlo in due tempi separati .... Per un dettaglio maggiore puoi: - Allegare il tuo VI - Fornire il tipo di stringa da elaborare Nicola ---------------------------------------- AUTORE: 1317 DATA :11/10/2006 - 10:22:54 ---------------------------------------- CODA?sono un po' alle prime armi...credo mi basterebbe sapere se indicizzando il ciclo for il programma svolge prima le acquisizione e poi svolge il resto del programma per la creazione dell'array numerico. ---------------------------------------- ================================================================================ Chart XY e' possibile? ================================================================================ AUTORE: 1427 DATA :10/10/2006 - 13:08:40 ---------------------------------------- ciao a tutto ed eccomi ancora qui a chiedere un consiglio. RIesco sempre ad uscire pazzo su cose apparentemente stupide. Allora, in un programma io acquisisco in un ciclo due valori analogici crescenti e vorrei poterli plottare "al volo" dove il primo rappresenta l'ordinata ed il secondo l'ascissa. Ovviamente potrei farlo a fine ciclo in un grafico XY ma non mi servirebbe a nulla perche' devo poter monitorare la prova nel tempo. Come posso fare? Pare impossibile usando i grafici a disposizione \":-(\" grazie mille per l'attenzione ---------------------------------------- AUTORE: 10 DATA :10/10/2006 - 15:25:51 ---------------------------------------- Prova con questo: Ciao ---------------------------------------- AUTORE: 10 DATA :11/10/2006 - 16:31:40 ---------------------------------------- In allegato la JPG del vi di prima, buono dalle versione 5 in poi ---------------------------------------- AUTORE: 1427 DATA :11/10/2006 - 19:43:20 ---------------------------------------- non per piaggeria, lo dico sinceramente, molto raramente avevo trovato un gruppo di discussione frequentato da persone tanto gentili, veloci e competenti! grazie molte ---------------------------------------- ================================================================================ aggiornamenti automatici ================================================================================ AUTORE: 1368 DATA :11/10/2006 - 07:31:04 ---------------------------------------- ciao a tutti, qualcuno di voi ha mai inserito nei propri programmi la possibilita di aggiornarsi in automatico o anche manuale via web?? ciao ---------------------------------------- ================================================================================ contalitri ================================================================================ AUTORE: 1368 DATA :11/10/2006 - 10:44:35 ---------------------------------------- ciao a tutti, altro problema, ho un contalitri in un sinottico, dove all avvio di una pompa inizia a contare, quando si ferma viene azzerato e ri inizia a contare al prossimo riavvio. devo creare una paginetta con il totale dei litri. volevo appoggiarmi ad un file dove andare a scrivere i litri e poi sommarli ai nuovi litri, ma su labview non saprei proprio come fare. scusate se la domanda e un po stupida \":?\" grazie ---------------------------------------- AUTORE: 1520 DATA :12/10/2006 - 17:48:04 ---------------------------------------- Ciao Luca, hai proprio bisogno di un file? Non sarebbe più semplice appoggiarsi ad una variabile globale numerica? Matteo ---------------------------------------- AUTORE: 1368 DATA :18/10/2006 - 07:52:12 ---------------------------------------- ciao alla fine mi sono appoggiato ad un registro del programma del plc dove vado direttamente a leggere il dato, in modo che se si connettono da piu pc tutti leggono lo stesso dato ---------------------------------------- ================================================================================ Connessione TCP Agilent CSA ================================================================================ AUTORE: 1513 DATA :11/10/2006 - 10:57:18 ---------------------------------------- CIAO!!!! Avremo bisogno di qualche dritta su come creare un VI client da interfacciare via TCP/IP con un analizzatore di spettro AGILENt CSA N1996A(funziona da server). grazie ---------------------------------------- AUTORE: 1513 DATA :11/10/2006 - 11:00:24 ---------------------------------------- P.S..Non abbiamo i driver NI per il nostro strumento...... ---------------------------------------- AUTORE: 645 DATA :11/10/2006 - 11:34:02 ---------------------------------------- Cioè comunicate tra pc e strumento con la connessione TCP-IP? Avete provato una struttura Server-Client tipo quella presentata negli esempi di LabView? Lo strumento comunica con un protocollo particolare (forse nel manuale se ne parla)? ---------------------------------------- AUTORE: 1513 DATA :13/10/2006 - 08:07:17 ---------------------------------------- si esatto comunichiamo tramite Tcp/ip.l- Agilent Csa non usa nessun protocollo particolare.ora stiamo controllando se c " e" qualche esempio interessante in labview..ma per ora senza risultati... ---------------------------------------- AUTORE: 645 DATA :13/10/2006 - 13:32:36 ---------------------------------------- Nel datasheet dello strumento c'è scritto che il controllo remoto può avvenire tramite SCPI e connessione LAN. Nel manuale dovrebbe esserci qualcosa che parla di controllo remoto o "Message Based". C'è? ---------------------------------------- ================================================================================ start dopo evento ================================================================================ AUTORE: 1317 DATA :11/10/2006 - 15:08:25 ---------------------------------------- ciao a tutti.avrei bisogno di far partire una parte del mio programma dopo aver mandato in esecuzione la parte di inizializzazione.devo sincronizzare (manualmente) un amperometro con una rampa di temperatura e ho bisogno che l'acquisizione avvenga appena dopo la pressione dello start..GRAZIE A TUTTI ---------------------------------------- AUTORE: 645 DATA :11/10/2006 - 15:52:24 ---------------------------------------- Hai provato con la gestione degli eventi? Metti un pulsante e nel momento in cui viene premuto fai partire l'acquisizione. ---------------------------------------- ================================================================================ PT100 fai da te ================================================================================ AUTORE: 1313 DATA :12/10/2006 - 10:56:21 ---------------------------------------- Salve ragazzi, Premetto che so poco e niente su come funzionano gli RTD . Devo leggere un RTD, mi hanno detto che hanno un PT100 e che posso perndere una resistenza e metterla in input al daq che ho. Volevo sapere un po come funziona, che resistenza usare, che prove fare?? non so ragazzi mi affido a voi. Grazie in anticipo, Cris ---------------------------------------- AUTORE: 278 DATA :12/10/2006 - 13:09:21 ---------------------------------------- Ciao, nemmeno io so molto, ma quello che ho trovato in internet può essere interessante.. guarda [url=http://www.picotech.com/applications/pt100.html:2vjk9gbg][u:2vjk9gbg]qui[/u:2vjk9gbg][/url:2vjk9gbg] ---------------------------------------- AUTORE: 645 DATA :12/10/2006 - 17:06:05 ---------------------------------------- Puoi usare un partitore di tensione: in base al valore di resistenza assunto dal sensore puoi sapere che temperatura sta rilevando. Dovresti avere tabelle riferite al sensore in tuo possesso oppure puoi usare la proporzione generica che trovi nel link suggerito da Esodar. Tu fornisci una tensione fissa e leggi quanta tensione c'è sulla resistenza aggiunta: di conseguenza sai quanta tensione c'è sulla pt100, quanto vale la resistenza della pt100 e quanta temperatura sta rilevando. ---------------------------------------- AUTORE: 1521 DATA :13/10/2006 - 01:45:50 ---------------------------------------- Un sensore PT100 è una resistenza di platino valore 100ohm a zero gradi. La resistenza varia con la temperatura ma la variazione è minima. Per misurare la temperatura fai circolare una corrente nota nel sensore e misuri la tensione ai capi della PT100. L'idea di MagicBotolo è valida però nella PT100 non puoi far circolare troppa corrente altrimenti hai autoriscaldamento e sbagli la misura. Di solito si utilizza una corrente di 1mA e collegamenti particolari a 3 o 4fili per evitare gli errori introdotti dalle resistenze dei fili di collegamento. Tu però avrai un sensore bello e confezionato magari se aggiungi qualche info possiamo aiutarti a collegarlo ---------------------------------------- AUTORE: 1124 DATA :14/10/2006 - 18:22:21 ---------------------------------------- Ciao a tutti. Spero che da quando hai inviato la richiesta di help tu sia comunque riuscito a risolvere il problema di lettura della PT100. Quanto suggerito dagli altri amici è corretto, ma come evidenziato da Accacca occorre avere avere qualche informazione in più per completare il lavoro: 1) il DAQ accetta (immagino) in ingresso valori elettrici in tensione, ma quali sono i suoi limiti? 2) in quale range di temperatura lavora la RTD? 3) la RTD è a 3 o 4 fili? Potresti in effetti alimentare a tensione fissa un partitore resistivo costituito dalla PT100, da cui derivare il segnale da collegare al DAQ, ma fai attenzione ad utilizzare una resistenza dummy di opportuno valore e con con una sensibilità termica molto bassa, in quanto la resistenza della PT100 cambia molto poco il proprio valore in funzione della temperatura, pertanto rischieresti di misurare variazioni di tensioni proporzionali (non linearmente) alla variazione di temperatura rilevata sia dalla PT100 sia dalla resistenza dummy. In genere io utilizzo dei dispositivi di condizionamento del segnale a cui collego il sensore (PT100) e che generano un segnale in corrente (4-20mA) o in tensione 'linearmente proporzionale' alla temperatura rilevata dalla PT100. Questo sistema elimina la maggior parte dei contributi di tipo aleatorio alla incertezza finale del valore di temperatura misurato. Ciao ---------------------------------------- AUTORE: 1313 DATA :14/11/2006 - 08:05:43 ---------------------------------------- Salve Ragazzi, grazie per le risposte, e scusatemi la scomparsa, ma nel frattempo ho comperato il PT100 su RS ed ora mi è arrivato. ho preso quello a 4 fili. Scusatemi se sono di coccio, ma non ho capito come collegarlo, io ho un daq NI SB-6009. potreste darmi un ulteriore indicazione?? Grazie in anticipo, Cris ---------------------------------------- AUTORE: 1313 DATA :14/11/2006 - 08:08:52 ---------------------------------------- P.S. il codice del sensore è 621-7399 (su RS) ---------------------------------------- AUTORE: 1124 DATA :14/11/2006 - 10:22:45 ---------------------------------------- Ciao ho individuato il tipo di sensore che stai usando. non ho mai usato il modulo USB, ma credo che accetti in ingresso dei segnali in tensione. Il sensore è a 4 fili per permettere di usarne 2 per alimentarlo e 2 per derivare il segnale e convertirlo in un segnale elettrico attivo. A questo punto devi dotarti di idoneo 'condizionatore di segnale' che provvede ad alimentare a corrente costante la sonda e converte il segnale derivato, proporzionale alla temperatura a cui è sollecitato il sensore, in una grandezza elettrica linearizzata e normalizzata secondo gli standard. Se devi scegliere un convertitore per RDT PT100 devi tenere conto che la maggior parte di questi dspositivi hanno uscita in corrente 4-20mA, pertanto poi devi riconvertirla in tensione mediante un resistore il cui valore ohmico non si modifichi nel tempo e non sia sensibile alle variazioni termiche (non usare resistenze al carbonio!). Il valore del resistore va calcolato in funzione dl valore max misurabile da un canale Analog Input del dispositivo USB. Esistono anche dei convertitori con uscita in tensione, ma fai attenzione che sebbene programmabili, non ti permettono di definire il campo della tensione di uscita a tuo piacere. Il convertitore può anche essere per RDT a 3 fili: poi si seguono le istruzioni di collegamento e si lascia morto il filo non usato. In alternativa pui usare una uscita ANALOG OUTPUT (se esiste e comunque la devi mantenere ad un valore noto e costante) del modulo USB per alimentare un partitore resistivo costituito dal sensore (una coppia di fili) e da una resistenza di caduta calcolata per avere una corrente dell'ordine di 1microA. Ho qualche dubbio che il modulo USB sia in grado di garantire una tensione costante a questo valore. Scusa se mi sono dilungato, ma spero di di non averti creato ulteriore confusione. Come ti trovi con il modulo USB? Ciao ---------------------------------------- AUTORE: 1313 DATA :14/11/2006 - 11:39:41 ---------------------------------------- Grazie per la risposta, ho fatto la seguente prova: collego 2 fili (bianco e rosso) ad un alimentatore agilent e lo posiziono su 1.09V , leggo sul display che il sensore succhia 0.010 collego l'altra coppia all'input del daq (analogico) imposto in labview acquisizione RTB con excitation 10mA e parto, il test panel mi porta una temperatura di 22°C, però se immergo il sensore nell'acqua o se lo avvicino ad un saldatore accesso, non vedo cambiamenti di temperatura. Ho sbagliato qualcosa???, forse l'RTD è lento a convergere alla nuova temperatura?? non so, forse ho sbagliato qualche collegamento?? Cris \":(\" \":(\" ---------------------------------------- AUTORE: 1313 DATA :14/11/2006 - 11:40:24 ---------------------------------------- P.S. ho fatto riferimento anche al seguente link : http://digital.ni.com/public.nsf/allkb/ ... D5006DC0C0 ---------------------------------------- AUTORE: 1124 DATA :14/11/2006 - 14:10:51 ---------------------------------------- Ciao Cris se ho capito bene tu alimenti a 1.09Vdc la RTD e mediante un milliamperometro leggi una corrente che circola di 0.01 A. Quello che non ho capito è cosa colleghi al DAQ: il segnale in corrente o quello derivato e quindi in tensione? Se il DAQ ti consente di leggere un segnale in corrente noterai che immergendo la RTD in acqua a T diversa da quella ambiente il valore di corrente cambia, altrimenti se hai collegato il segnale direttamente derivato dalla RDT il tuo DAQ leggerà sempre 1.09Volt e il test panel, ammesso che sia configurato correttamente ("acquisizione RTB con excitation 10mA "???), indicherà sempre 22C. Per prova aggiungi in serie alla tua RDT una resistenza di circa 100ohm: il segnale in tensione si dimezza, ma lo vedrai variare in funzione della temperatura con cui solleciti la sonda. Se hai le caratteristiche della sonda verifica se 10mA sono accettabili o sono eccessivi, perchè rischi di dannegiare il sensore e comunque di falsare la misura in quanto aggiungi circa 1Watt al sistema di cui stai misurando la temperatura. Ciao ---------------------------------------- AUTORE: 1313 DATA :16/11/2006 - 13:02:45 ---------------------------------------- Grazie per la risosta. Ho risolto , il problema era che il mio alimentatore deve esere esettato per fissare la corrente. Qualcuno sale quale daq NI ha degli output analogici in corrente??? (il mio ha solo V) Cris \":D\" ---------------------------------------- ================================================================================ errore inatteso e incomprensibile ================================================================================ AUTORE: 1317 DATA :12/10/2006 - 13:22:46 ---------------------------------------- ciao a tutti.stavo terminando un programma per l'acquisizione dati da un amperometro e dopo vari tentativi in cui tutto fnzionava viene fuori l'errore (LABVIEW:memory is full,,..VI was stopped at loop tunnel 0xc2XO)...qualcuno ha idea di quale sia la soluzione?grazie ---------------------------------------- AUTORE: 645 DATA :12/10/2006 - 17:07:08 ---------------------------------------- Per caso usi loop (While o For) non temporizzati? ---------------------------------------- ================================================================================ Build application error ================================================================================ AUTORE: 1520 DATA :12/10/2006 - 17:42:50 ---------------------------------------- Salve a tutti, vado subito al punto. Ho sviluppato un'applicazione e per la prima volta mi trovo a compilare un eseguibile. L'applicazione gira in LV senza problemi ma quando provo a "Buildare" l'operazione non va a buon termine. Il prompt suggerisce che uno specifico VI potrebbe non essere eseguibile ma di fatto lo è. Qualcuno sa come aiutarmi? Mister P.S.:Io uso LV 8.0 ---------------------------------------- AUTORE: 278 DATA :12/10/2006 - 18:30:25 ---------------------------------------- mm, non saprei, da LV8.0 in poi, l`application builder e` cambiato parecchio..personalmente, non mi e` ancora capitato di utilizzarlo... Cmq, molte info a riguardo le puoi trovare [url=http://zone.ni.com/devzone/cda/tut/p/id/3303#1:1yl9tnpt][u:1yl9tnpt]qui[/u:1yl9tnpt][/url:1yl9tnpt] Ciao ciao ---------------------------------------- AUTORE: 1520 DATA :13/10/2006 - 11:04:29 ---------------------------------------- Problema risolto. \":D\" In realtà non ho ben afferrato il perchè ma il problema era legato ad una conditional disable variable legata al progetto. Se la tengo con un certo valore non da problemi, altrimenti non termina la compilazione correttamente anche se a mio parere dovrebbe comunque. Cerco di approfondire un po' la questione. Matteo ---------------------------------------- ================================================================================ Ancora un dubbio su excel... ================================================================================ AUTORE: 1319 DATA :12/10/2006 - 21:47:55 ---------------------------------------- Ciao ragazzi Devo creare un file di testo in cui memorizzo dei dati provenienti da vari trasduttori organizzandoli in una tabella. Tale operazione avviene premendo il pulsante di log sul mio front panel. Tale documento sarà apribile con excel in un secondo momento, da ambiente windows. Fin qua nessun problema. Il mio problema è il seguente: voglio anche che le intestazioni dei dati in colonna (es. data, ora, pressione, temperatura...) siano alloggiate in colonne di larghezza appropriata alla loro lunghezza e non in una colonna di larghezza standard, come avviene di default creando una tabella e poi aprendola con excel ad esempio. Ritengo ci siano da scomodare le macro di excel, sbaglio? Per la macro che mi adatta la larghezza della colonna al suo contenuto ce la posso fare con i miei mezzi ma per il resto datemi una mano, consigliatemi please! Devo usare i miesteriosi ActiveX anche se non devo aprire il foglio di calcolo di excel ma semplicemente crearlo per poi aprirlo in un secondo momento fuori dall'ambiente LW? Grazie a tutti!!! ---------------------------------------- AUTORE: 384 DATA :13/10/2006 - 09:33:23 ---------------------------------------- Ciao. Il file creato in LabView dalle funzioni standard è un file ascii puro, quindi non hai nessun controllo sulla "larghezza" delle colonne ne nessun'altra formatazione. Questo file, quando aperto da un normale editor di testo (e.g. notepad) potrebbe non avere un bel aspetto, ma questo credo non sia il problema perchè non è con l'editor che lo si utilizzerá. Qualunque altra manipolazione della tabella (formato, grafici, ecc.) andrà fatta in excel (con delle macro) una volta aperto il file. Per quello che intendi fare tu, cioè manipolare la formatazione della tabella già nel file, dovresti scriverlo in formato excel vero. Per questo esite un toolkit a pagamento - che comunque si appoggia ad excel - con il queale puoi creare i tuoi file già pronti in tutti i particolari. ---------------------------------------- ================================================================================ Bottoni con immagine ================================================================================ AUTORE: 927 DATA :13/10/2006 - 09:20:05 ---------------------------------------- E' possibile creare bottoni che abbiano disegnata sopra un'immagine generica, anzichè la solita sfumatura? Come i tipici bottoni delle toolbar. Ho trovato un VI che usa un trucco un po' zozzo, ha impostato come trasparente il colore del bottone e l'immagine è semplicemente sotto. Non so come abbia fatto perchè a me il "trasparente" non lo fa impostare per i bottoni... e cmq questo non permette di cambiare immagine quando il bottone è premuto. ---------------------------------------- AUTORE: 247 DATA :13/10/2006 - 09:53:48 ---------------------------------------- Ciao, devi utilizzare customize control e crearti il pulsante custom con le immagini che desideri, info sia su questo forum che sul sito NI! \";-)\" BYE. ---------------------------------------- ================================================================================ Compatibilità Application Builder a differenti S.O. ================================================================================ AUTORE: 947 DATA :13/10/2006 - 10:35:27 ---------------------------------------- Salve, ho lavorato abbastanza con il LV 7.0 e LV 7.1 e ho avuto modo di sviluppare [b:2ojzm5kx]molto [/b:2ojzm5kx]codice. Ho avuto diverse volte la necessità di creare eseguibili, con non poche difficoltà ogni volta dovute al fatto che non sempre il comportamento dei VI è uguale a se stesso nelle modalità Debug (cioè nell'ambiente LV stesso) e Release (cioè una volta compilati i sorgenti). Ma ogni volta siamo riusciti a risolvere i problemi. Tuttavia non ho avuto modo di sperimentare la compatibilità del sw compilato con i vari [color=darkred:2ojzm5kx][b:2ojzm5kx]Sistemi Operativi[/b:2ojzm5kx][/color:2ojzm5kx]. O meglio... mi è capitato di aver creato eseguibili su WinXp con il relativo pacchetto d'installazione ed averli poi installati ed utilizzati senza problemi sia su [b:2ojzm5kx]WinXp[/b:2ojzm5kx] che su [b:2ojzm5kx]Win2000[/b:2ojzm5kx]. Ciò mi fa pensare che non dovrei avere problemi su altre piattaforme Windows (sempre che non si utilizzino driver di dispositivi). Ma cosa succede se un sw sviluppato e compilato con WinXp lo installo su [b:2ojzm5kx]Unix[/b:2ojzm5kx], [b:2ojzm5kx]Linux[/b:2ojzm5kx], [b:2ojzm5kx]Mac OS [/b:2ojzm5kx]... ??? \":roll:\" Non ho modo di provare e mi chiedo se qualcuno ci ha già sbattuto la testa sopra... se ha avuto problemi e di che tipo... oppure se non è prorpio possibile compilare con LV per Win un exe da far girare su Unix (per es) ... e se dovessi avere la necessità di produrre sw per Unix, come potrei fare? Grazie in anticipo per tutte le risposte!! ---------------------------------------- AUTORE: 4 DATA :16/10/2006 - 18:28:10 ---------------------------------------- LabVIEW è cross paltform almeno nella forma "srogente" nel senso che un VI (lo stesso) lo puoi aprire su diversi SO senza modifiche. per compilare un eseguibile su diversi SO ti occorre l'app builder specifico del SO ma anche questo è fattibile ti "basta" comprare la versione di LabVIEW adatta al SO su cui vuoi compilare. Chiaramente il VI in sè e compatibile su tutti i SO anche diversi da quello in cui è stato creato ma le chiamate alle funzioni di basso livello devono essere adattate al SO in uso, pensa solo ala differenza della struttura dei file su windows e su linux. Ciao ---------------------------------------- AUTORE: 482 DATA :17/10/2006 - 07:46:20 ---------------------------------------- [quote="Luca.glt":3jmjcnpm]Ciò mi fa pensare che non dovrei avere problemi su altre piattaforme Windows [/quote:3jmjcnpm] Si, se l'eseguibile è stato sviluppato con una versione di labVIEW dalla 7.1 in giu' allora va bene su tutti i SO windows, dalla 8 in poi windows 98 non è piu' supportato. [quote="Luca.glt":3jmjcnpm] Ma cosa succede se un sw sviluppato e compilato con WinXp lo installo su [b:3jmjcnpm]Unix[/b:3jmjcnpm], [b:3jmjcnpm]Linux[/b:3jmjcnpm], [b:3jmjcnpm]Mac OS [/b:3jmjcnpm]... ??? \":roll:\" [/quote:3jmjcnpm] boh...non credo che l'eseguibile sia cross platform....per come diceva ale per la struttura dei file, inoltre molti VI di labVIEW per windows utilizzano delle API di windows che ovviamente in Linux non ci sono e idem per la questione degli activeX che se non dico cacchiate è un concetto che in Linux non c'e'. Credo che per distribuire in ambiente Unix tu debba sviluppare sotto Linux e non ci sia altra via... ---------------------------------------- AUTORE: 482 DATA :17/10/2006 - 07:47:18 ---------------------------------------- ..c'e' sempre l'opzione wine che magari ti permette di far girare qualche eseguibile... ---------------------------------------- AUTORE: 947 DATA :18/10/2006 - 08:15:57 ---------------------------------------- Ricapitolando (correggetemi se erro!!) : 1) Per creare eseguibili compatibili per tutte le versioni di Windows a partire dal Win 98, non ci sono problemi, purchè si utilizzi da LV7.1 in giù. 2) Per creare exe compatibili con altri SO, occorre svilupparli con la versione di LV adeguata allo specifico SO o (probabilmente) semplicemente aprire con il LV dello specifico SO i VI creati con un LV qualunque (facendo attenzione alle versioni ovviamente!!). Quindi l'exe di per se NON è CROSS PLATFORM. OK... ma, riferendomi a quanto scritto da Gepponline: << ..c'e' sempre l'opzione wine che magari ti permette di far girare qualche eseguibile... >> cosa sarebbe questa <<[b:lkqqcqe0][u:lkqqcqe0]opzione wine[/u:lkqqcqe0][/b:lkqqcqe0]>> ??? Inoltre... probabilmente mi sbaglio... ma il fatto che gli exe creati con LV per girare hanno bisogno del "[b:lkqqcqe0]Runtime Engine[/b:lkqqcqe0]" non potrebbe tornare utile?? cioè... non può essere che cambiando SOLO il "Runtime Engine" e utilizzando quello di ogni specifico SO il mio EXE diventi di fatto Cross Platform e cominci a funzionare??? Parlo sempre di VI semplici con funzioni di base, lasciando perdere per adesso gli ActiveX o altra roba... poi per il problema dei file... che ci pensi il "Runtime Engine" !!! Ed infine, ultima domanda ... Se il "Runtime Engine" invece non serve affatto a questo... ma allora... a che serve ?!?!?!?!?!?!?!?!? Grazie per le risposte che mi avete dato fin ora sono state utilissime continuate a rispondermi!!! Ciao ---------------------------------------- AUTORE: 482 DATA :18/10/2006 - 10:05:06 ---------------------------------------- quella che ho chiamato opzione wine altro non è che wine. wine è un programma sotto linux che ti permette di far girare eseguibili windows emulando il sistema operativo... ---------------------------------------- AUTORE: 482 DATA :18/10/2006 - 10:12:15 ---------------------------------------- Cmq questa è la risposta che cercavi: http://digital.ni.com/public.nsf/allkb/ ... E70080BF34 ---------------------------------------- AUTORE: 947 DATA :19/10/2006 - 10:06:29 ---------------------------------------- Ok!! Quel link era proprio quello che cercavo... una [b:9o8rg3us]risposta ufficiale della NI[/b:9o8rg3us] sul problema da me sollevato. Se poi aggiungiamo anche le info che mi hai mandato in privato (e che riporto di seguito per condividerle con il resto del forum) ... ... bhe... posso ritenermi soddisfatto!! Grazie a tutti... Ciao e alla prox!!! _____________________________________________ da: Gepponline _____________________________________________ [quote:9o8rg3us]Sul runtime engine so dirti che ogni piattaforma ha il suo specifico e credo che fondamentalmente contenga delle librerie di esecuzione sia grafica che software che pero' non c'entrano con la compilazione dell'eseguibile. Questo per dire che se un eseguibile è compilato per windows, non basta il runtime di Linux per farlo girare su Linux, proprio perchè l'architettura dei dati è diversa... credo... [/quote:9o8rg3us] ---------------------------------------- ================================================================================ Disegnare Interfaccia ================================================================================ AUTORE: 1339 DATA :13/10/2006 - 11:50:07 ---------------------------------------- Salve, per una mia applicazione ho la necessita di disegnare un interfaccia grafica in labview...in pratica questa applicazione comanda un sistema complesso e vorrei che sull'interfaccia compaiano i componenti del sistema.... in questo modo vorrei che il controllo che setta un particolare parametro di un determinato componente del sistema compaia proprio sul disegno del componente.... pero' non so come disegnare i componenti utilizzando Labview.....e' possibile??? altre soluzioni?? Thanks ---------------------------------------- AUTORE: 645 DATA :13/10/2006 - 13:18:11 ---------------------------------------- LabView ti offre la possibilità di usare controlli già pronti modificabili e adattabili alle tue esigenze. Però puoi anche inserire delle foto di comandi particolari e creare bottoni che a seconda dello stato Premuto-NonPremuto mostrano una determinata immagine. Prova a guardare sul sito www.ni.com cercando qualcosa tipo "button and picture". Ma in particolare quali controlli devi realizzare? ---------------------------------------- AUTORE: 1339 DATA :13/10/2006 - 14:00:32 ---------------------------------------- allora in pratica per i controlli utilizzo quelli standard di LV pero' mi interessa creare immagini ad esempio di Bombole, Valvole etc......... ---------------------------------------- AUTORE: 129 DATA :14/10/2006 - 08:32:42 ---------------------------------------- Prelevi l'immagine della bombole o un disegno, in formato gif o bmp e vai in advanced/customize control (da palette dx su controllo) e inserisci l'immagine precedentemente copiata sul controllo. Devi solo fare un pò di pratica e tenere presente il tipo di dato, per esempio un boolean avrà due stati (magari un elletrovalvola che può essere accesa o spenta) mentre un tank è numerico e quindi devi prvedere l'immagine fissa del tank e sfruttare la colorazione mobile già disponibile nel tank. ti allego un paio di esempi ---------------------------------------- ================================================================================ SYSTEM EXEC.vi ================================================================================ AUTORE: 724 DATA :13/10/2006 - 14:55:03 ---------------------------------------- Con la SYSTEM EXEC.vi chiamo un batch file che effettua un'operazione di ping verso un dispositivo ethernet attaccato al PC. Se setto false la variabile "wait until completion? (T)" la finestra dos visualizza correttamente l'operazione di ping ma perdo il controllo di quando l'operazione è conclusa (l'operatore chiude la finestra dos). Se setto true la variabile "wait until completion? (T)" in modo da poter tener sotto controllo la chiusure della finestra dos quest'ultima non visualizza l'operazione di ping (rimane nera). Qualcunoha già avuto e risolto un problema simile? Ciao e Grazie, Ghianda ---------------------------------------- AUTORE: 838 DATA :16/10/2006 - 07:51:11 ---------------------------------------- ho fatto un vi che pinga, analizza la risposta (appoggiandola in un file temporaneo) e mi restituisce se pinga correttamente o se ci sono problemi cercavo qualcosa che mi restituisce lo stato di un video server, se è online e offline, e mi sono dovuto inventare sta roba good job \":D\" ---------------------------------------- AUTORE: 724 DATA :16/10/2006 - 09:29:43 ---------------------------------------- Se setti true "wait until..." e "run minimized" ti ritrovi la risposta del ping nella variabile in uscita "Standard output" senza doverti appoggiare al file. ---------------------------------------- AUTORE: 838 DATA :16/10/2006 - 09:46:37 ---------------------------------------- mi sembrava di aver provato, ma non mi funzionava riproverò ancora \":D\" ---------------------------------------- ================================================================================ array di stringhe ================================================================================ AUTORE: 36 DATA :13/10/2006 - 15:53:30 ---------------------------------------- Ciao volevo avere un informazione veloce Esiste un numero massimo di stringhe da inserire in un array? A me sembra di si...ma magari mi sbaglio (utilizzo strumento sbagliato) Grazie ---------------------------------------- AUTORE: 1504 DATA :13/10/2006 - 16:34:30 ---------------------------------------- Ho avvena provato a farne uno da 10000 stringhe e non mi pare di aver avuto problemi. Quante stringhe vorresti mettere? ---------------------------------------- AUTORE: 129 DATA :14/10/2006 - 08:22:08 ---------------------------------------- Dall'Help di LV: [quote:edzl4x69]An array can have one or more dimensions and as many as (2^31)–1 elements per dimension, memory permitting. [/quote:edzl4x69] ---------------------------------------- ================================================================================ Cronometro ================================================================================ AUTORE: 1235 DATA :13/10/2006 - 16:07:08 ---------------------------------------- Sicuramente esistono altri modi! Ma come risolvere questo mio "stupido" problema? Mi spiego: quale valore "DOUBLE" bisogna sottrarre nella VI allegata affinchè il contatore " Cronometro" parta da zero? Grazie in anticipo. George. ---------------------------------------- AUTORE: 1165 DATA :13/10/2006 - 23:00:12 ---------------------------------------- sigh .. purtroppo in questo momento ho solo la 7.0 .. se me lo riconverti in basso di un passo provo a guardarci ---------------------------------------- AUTORE: 1235 DATA :14/10/2006 - 08:04:49 ---------------------------------------- Ecco la VI con la 7.0 Grazie in anticipo. ---------------------------------------- AUTORE: 129 DATA :14/10/2006 - 08:14:34 ---------------------------------------- Prova con questo sistema.. ---------------------------------------- AUTORE: 1235 DATA :14/10/2006 - 09:21:58 ---------------------------------------- Scusa ma io conosco già qualche altro sistema! Ma purtroppo sono costretto a lavorare con i paramatri della mia VI e non riesco a capire come fare per azzerare il contatore cronometro! So solo che alla stringa " 01/01/1904 2h 00m 00s " dovrebbe corrispondere un valore DOUBLE, che però NON CONOSCO in modo da poterlo sottrarre! Scusami ancora! ---------------------------------------- AUTORE: 1165 DATA :14/10/2006 - 12:54:32 ---------------------------------------- scusa nicola ma non riesco ad aprire il tuo .. comunque mando un paio di soluzioni differenti (io preferisco la seconda) sperando di aver colto il senso della richiesta (ho calcolato il tempo in secondi dall'avvio del ciclo ed ho anche inserito un pulsante di stop per il ciclo stesso altrimenti mi faceva immattire) .. da notare che il ciclo andrebbe temporizzato perchè così come è succhia troppe risorse macchina .. cioè va assolutamente aggiunto uno stato di attesa tra un ciclo e l'altro .. ciao, enr ---------------------------------------- AUTORE: 129 DATA :15/10/2006 - 06:45:18 ---------------------------------------- QUello che ti ho inviato io ha solo il fatto di mantenere le informazioni di data-ora e tempo. Per resettare i sostanza (lo vedi bene nell'esempio di enr) ti è sufficente sottrarre l'uscita di GET-Time second. ---------------------------------------- AUTORE: 1235 DATA :16/10/2006 - 08:32:20 ---------------------------------------- Grazie! Forse non mi ero spiegato bene! Ma ho risolto così quello che mi serviva. ---------------------------------------- ================================================================================ collegamento a file pdf ================================================================================ AUTORE: 1241 DATA :13/10/2006 - 16:19:44 ---------------------------------------- Ciao ragazzi, vorrei sapere se è possbile aprire, p es un file pdf tramite un VI, cioè una volta avviato il VI, vorrei visualizzare un file pdf dopo apposito comando è possibile fare una cosa del genere? ---------------------------------------- AUTORE: 927 DATA :17/10/2006 - 10:46:46 ---------------------------------------- Potresti semplicemente fargli aprire il pdf esternamente con Acrobat Reader. Ovviamente dev'essere installato sul pc! Per aprirlo usa System Exec.vi, gli passi come parametro "command line" il percorso dell'exe del Reader seguito dal percorso del documento, ad esempio io gli passo: C:\Programmi\Adobe\Acrobat 7.0\Reader\AcroRd32.exe "D:\Documenti\blabla.pdf" Se invece vuoi che il pdf si veda proprio all'interno del VI, la strada da seguire è quella dei controlli ActiveX e cmq ti serve un lettore installato. Non mi risulta che Labviù abbia un suo lettore pdf interno. ---------------------------------------- AUTORE: 1241 DATA :17/10/2006 - 15:06:03 ---------------------------------------- grazie "snamprogetti" per avermi risposto, ho inserito nel forum una soluzione trovata sul sito ni che fa riferimento alle active x ma credo che la tua idea sia più affidabile era proprio quello che cercavo grazie ---------------------------------------- AUTORE: 1241 DATA :17/10/2006 - 15:53:44 ---------------------------------------- grazie "snamprogetti" per avermi risposto, ho inserito nel forum una soluzione trovata sul sito ni che fa riferimento alle active x ma credo che la tua idea sia più affidabile era proprio quello che cercavo grazie ---------------------------------------- ================================================================================ 19jv54oe', 1, 0, '', 1, 0, 0), ================================================================================ AUTORE: 1 DATA :13/10/2006 - 16:53:50 ---------------------------------------- ---------------------------------------- AUTORE: 247 DATA :13/10/2006 - 23:13:44 ---------------------------------------- Ciao, beh, solitamente lo stato alto od uno logico corrisponde al booleano true/vero e così anche lo stato logico zero o basso si abbina al booleano false. Il true del pulsante quindi mette a uno il bit d'uscita corrispondente e viceversa in caso di input. Utilizza la funzione apposita per la conversione. BYE. ---------------------------------------- AUTORE: 129 DATA :14/10/2006 - 07:25:22 ---------------------------------------- Devi usare la funzione boolean array to number, così trasformi un array di boolean (i tuoi tasti corrispondenti ai pin) in un valore binario, valido per la funzione outport.vi. Ricorda che l'indirizzo della porta (esempio 378) è in HEX, quindi il numerico adress che è decimale lo devi convertire in HEX se vuoi utilizzare lo stesso formato numerico. Ciao ---------------------------------------- ================================================================================ visualizza pdf: per chi ne avesse bisogno... ================================================================================ AUTORE: 1241 DATA :13/10/2006 - 19:07:18 ---------------------------------------- è disponibile un esempio di codice per visualizzare pdf all'indirizzo: http://zone.ni.com/devzone/cda/epd/p/id/4867 ---------------------------------------- AUTORE: 1165 DATA :13/10/2006 - 22:54:20 ---------------------------------------- grazie mille .. capiti proprio a proposito per me .. ma sapresti anche come mostrare programmaticamente sul front panel anche un file jpg? ---------------------------------------- AUTORE: 1241 DATA :14/10/2006 - 16:40:00 ---------------------------------------- non saprei dirti, potresti creare un property node-visible e giocarci con un booleano cmq, riguardo al pdf, non mi funziona tanto bene, a te come va? ---------------------------------------- AUTORE: 129 DATA :15/10/2006 - 07:36:05 ---------------------------------------- Per visualizzare un file jpg potresti utilizzare il picture control, ma non è uguale a quello utilizzato nei prg Microsoft, che ha anche la possibilità di ridimensionamento senza sgranare. Ti allego un esempio ---------------------------------------- AUTORE: 1165 DATA :15/10/2006 - 10:50:25 ---------------------------------------- grazie nicola .. è esattamente quello che cercavo .. sei stato rapidissimo ed efficace .. e grazie anche per avermelo messo nella versione 7.0 .. a buon rendere .. enrico. ---------------------------------------- ================================================================================ Visualizzare curva statica (funzione) ================================================================================ AUTORE: 1477 DATA :15/10/2006 - 10:18:54 ---------------------------------------- 1) Vorrei visualizzare in forma grafica una curva definita da 4 punti scelti dall'utente. Esempio: a(x=-10;y=0) b(x=-1;y=1) c(x=1;y=1) d(x=10;y=0) I valori elencati, in pratica definiscono un trapezio isoscele centrato sullo zero, con base maggiore da -10 a +10, base minore da -1 a + 1 e altezza (y) da 0 a 1.La scala x potrebbe essere (-20/+20) e la y (0/1,1) Dovrei poter definire i valori di x mediante controlli (e questo non è un problema) e dovrei poter visualizzare sullo stesso grafico fino a 5 di queste curve, ognuna con coordinate diverse per i suoi vari nodi. (Per chi conosce la fuzzy logic, questo serve per visualizzare la forma delle membership functions di una variabile di ingresso, mentre le si impostano. In pratica vorrei riottenere quello che fa il fuzzy editor del PID toolkit, ma in tempo reale e direttamente sul regolatore e non sul file di dati.) Quale approccio mi consigliate? Finora ho sempre usato solo charts e qui, dove il tempo non entra in gioco, non so che direzione prendere. Grazie per l'ascolto. ---------------------------------------- AUTORE: 1165 DATA :15/10/2006 - 10:55:09 ---------------------------------------- risposta rapidissima ed incompleta .. me ne scuso ma spero che possa comunque esserti di una qualche utilità: quando non entra in gioco il tempo (cioè non hai una ascissa necessariamente crescente e quindi ad una stessa ascissa possono corrispondere anche più ordinate) allora puoi usare gli XY graph che sono stati pensati proprio per questo .. guardane l'help e gli esempi di aserie della National .. in bocca al lupo ---------------------------------------- ================================================================================ Salvare dati in formato excel ================================================================================ AUTORE: 516 DATA :15/10/2006 - 22:06:38 ---------------------------------------- Ciao a tutti Ho provato a cercare nei post ma non sono riuscito a trovare una risposta inoltre usando la versione 7.1 non riesco ad aprire gli esempi fatti con le nuove versioni . Il mio problema è che quando dò il comando di andare a capo nelle celle vengono scritti anche i valori (vi allego la prova che sto facendo) devo trasformare tutto quanto in un array di tipo stringa ? Grazie mille in Anticipo Ciao Sergio ---------------------------------------- AUTORE: 384 DATA :16/10/2006 - 09:03:09 ---------------------------------------- La funzione "Writo to Spreadsheet File" si incarica da sè di aggiungere gli "end-of-line" dove servono - il programmatore non deve fare nulla. Guarda il VI che ho corretto. ---------------------------------------- AUTORE: 516 DATA :16/10/2006 - 18:18:19 ---------------------------------------- GRAZIE MILLE Ciao Sergio ---------------------------------------- ================================================================================ Comando Modem GSM VISA ================================================================================ AUTORE: 904 DATA :16/10/2006 - 11:28:19 ---------------------------------------- Gentili lettori del forum , Chiedo la vostra assistenza per risolvere un problema di programmazione (sicuramente ovvio per persone più esperti di me ad usare labview). Ho acquistato un modem gsm e per gestire i comandi at via seriale ho creato la VI allegata . Per quanto riguarda l'invio dell sms no problem (in comando manuale). Mentre vorrei anche implementare un refresh in automatico ogni tot secondi della "memoria 1 della sim card " per leggere un eventuale comando mandato via sms tipo ad esempio "invia valore temperatura". Vorrei che una volta arrivato un sms di comando questo esegua l'invio di un msg con il "valore temperatura" e poi vada a eliminare nella memoria 1 della sim card il comando precendentemente inviato . Se qualcuno ha voglia di indicarmi la via . \":o\" Vi ringrazio anticipatamente .... Grazie e Saluti \":D\" ---------------------------------------- AUTORE: 247 DATA :16/10/2006 - 11:42:11 ---------------------------------------- Ciao, sono tutti normali comandi AT o AT extended, selezioni la memoria del telefono leggi, spedisci e cancelli, la sintassi dei comandi AT la trovi nel manuale di istruzioni del modem che hai acquistato. BYE. ---------------------------------------- AUTORE: 904 DATA :16/10/2006 - 12:48:49 ---------------------------------------- I comandi AT li ho inseriti nella VI , ma ho un problema a gestire il write e read del comando via VISA . Se riesci ad aprire il mio VI prova a vedere se non vedi degli errori di programmazione . Grazie in anticipo . Saluti . ---------------------------------------- AUTORE: 247 DATA :16/10/2006 - 17:51:30 ---------------------------------------- Ciao, Ah, non si era capito..sono un pò dumb..\";-)\", pensavo avessi problemi nel trovare il comando...mi sembrava strano.. Cmq guardando il tuo VI si vede che sbagli a settare l'attesa prima della lettura, così come la usi nel case della creazione delle stringa da inviare non serve a nulla perchè viene eseguita prima della scrittura quindi tenti di andsare a leggere troppo presto, inoltre usi il Bytes at port ma poi non escludi la lettura se la proprietà legge zero (chiedere di leggere 0 bytes è causa di warning); devi inserire la pausa tra Visa Write e Visa Read...dovrebbe già risolvere molto, tieni cmq presente che il modem/cell non è una scheggia nel rispondere! BYE. ---------------------------------------- ================================================================================ Convertire Stringa di 1 e 0 in numero binario ================================================================================ AUTORE: 1458 DATA :16/10/2006 - 11:37:27 ---------------------------------------- A voi probabilmente sembrerà una cosa semplicissima, ma al momento non ho molte idee.. \":roll:\" Ho una stringa formata dai soli caratteri 1 e 0 e devo convertirla in un numero binario... come posso fare? Grazie mille! ---------------------------------------- AUTORE: 1458 DATA :16/10/2006 - 12:38:43 ---------------------------------------- Penso di aver risolto con la funzione Scan from string... \":D\" ---------------------------------------- AUTORE: 384 DATA :17/10/2006 - 09:04:32 ---------------------------------------- Si può fare anche in quest'altro modo. Probabilmente è più veloce; magari fai fai una prova misuranto il tempo e facci sapere. ---------------------------------------- AUTORE: 1458 DATA :20/10/2006 - 16:46:31 ---------------------------------------- Ho fatto velocemente una provetta.. e i due metodi si equivalgono mi sembra. Devo estrarre 2 bit in particolare dalla stringa,e quindi ho modificato un pò il vi... Se a qualcuno può servire lo invio! \":wink:\" ---------------------------------------- AUTORE: 384 DATA :20/10/2006 - 16:51:04 ---------------------------------------- Non tutti hanno installato la versione 8.0 e posteriori di labview! \":wink:\" \":lol:\" ---------------------------------------- ================================================================================ subset positivo di un array ================================================================================ AUTORE: 1317 DATA :16/10/2006 - 14:01:40 ---------------------------------------- ciao a tutti. sto cercando di estrarre i valori positivi di un array usando un ciclo for e un case.Il problema è che non riesco a fare in modo che nel caso in cui il valore sia positivo (o negativo) il processo non mi inserisca nell'array negativo (positivo) almeno lo spazio vuoto!!c'è un modo per avere due array distinti formati solo dai numeri dell'array di partenza?grazie ---------------------------------------- AUTORE: 482 DATA :16/10/2006 - 15:45:15 ---------------------------------------- utilizza gli shift register. In ingresso al registro gli dai un array vuoto, e se il numero è (mettiamo il caso positivo)maggiore di zero aggiungi l'elemento all'array e lo rimandi allo shift register. Probabilmente tu invece utilizzavi l'indexing del valore. In quel modo ad ogni iterazione del ciclo corrisponde sempre e comunque un valore. ---------------------------------------- AUTORE: 1317 DATA :16/10/2006 - 16:17:06 ---------------------------------------- grazie mille..ha funzionato al primo colpo!! ciao ---------------------------------------- ================================================================================ Aiutino Tesi ================================================================================ AUTORE: 1528 DATA :16/10/2006 - 15:00:43 ---------------------------------------- Salve navigando ho trovato molto interessante questo forum e sempre pronti gli utenti!!! Sto facendo una tesi in labview per la rappresentazione grafica di carte di controllo. Volevo qualche consiglio, critica o "scorciatoia" per il lavoro fatto fin'ora!!! Per chi mi volesse aiutare...basta scompattare ed runnare INDEX.vi per la prima prova o inserite i dari a mano...(mettete numeri a caso) o caricate p_dati.txt Una volta calcolata la prima cdc e salvata avrete anche l'xml formattato come lo vuole LV. Grazie Mille!!! ---------------------------------------- AUTORE: 1528 DATA :17/10/2006 - 11:03:08 ---------------------------------------- nada? \":(\" ---------------------------------------- AUTORE: 278 DATA :17/10/2006 - 13:39:45 ---------------------------------------- Ciao, ci stavo guardando proprio ora. Non ho niente da dire, mi sembra ben fatto (benchè io non abbia la minima idea di che calcoli stai eseguendo...\":oops:\" ). Solo un piccolo appunto; nel SubVi "InsertManually.vi" c'è un loop non temporizzato... questo ti fa schizzare la cpu al 100%... ---------------------------------------- AUTORE: 1528 DATA :17/10/2006 - 16:57:14 ---------------------------------------- Nel primo while dici? (quello dove immettere N e M) ? ---------------------------------------- AUTORE: 278 DATA :18/10/2006 - 07:58:14 ---------------------------------------- [quote:1fgb13zp](quello dove immettere N e M) ?[/quote:1fgb13zp] esatto, proprio quello dove fai l'inserimento manuale di N e M. Ciao ciao!! \":wink:\" ---------------------------------------- AUTORE: 977 DATA :20/10/2006 - 14:42:46 ---------------------------------------- ciao, Personalmente ti posso dire che mi pare che tu faccia un uso eccessivo di variabili locali!! Cerca di usare il più spesso possibile il semplice filo anche a costo di incasinare un po' lo schema a blocchi! Le variabili locali inoltre devono essere ancor più evitate se la dimensione dei dati da passare è grande ossia se il dato è un'array, un claster o una lista... Non ricordo più il VI incriminato ma all'interno di esso passavi una Matrice (Matrix) attraverso una variabile locale allo stato successivo e non ne ho proprio capito il motivo se non sovraccaricare la memoria.... Visto che il tuo VI è comunque molto semplice e leggero questi piccoli difetti non incidono sul suo rendimento in generale, ma, visto che ci sei, fossi in te li eliminerei... Spero di esserti stato d'aiuto! Saluti Dave ---------------------------------------- AUTORE: 278 DATA :20/10/2006 - 15:28:49 ---------------------------------------- In effetti, se proprio vogliamo fare le pulci.... \":lol:\" \":lol:\" Scherzi a parte, invece di utilizzare variabili locali e globali, ti suggerisco di usare le "functional global". Non perchè l'ho fatto io..( \":lol:\" \":lol:\" ) ma ti consiglio di leggere [url=http://www.ilvg.it/forum/download.php?id=803:2jpuixww][u:2jpuixww]questo[/u:2jpuixww][/url:2jpuixww] articolo. Ciao ciao ---------------------------------------- AUTORE: 1528 DATA :29/10/2006 - 09:46:24 ---------------------------------------- Dovendo Adattare il tutto per PDA Module ho tolto tutte le variabili locali inserendo variabili globali...grazie dell'articolo è stato molto utile! ---------------------------------------- ================================================================================ Collegamento USB ================================================================================ AUTORE: 1397 DATA :16/10/2006 - 20:29:57 ---------------------------------------- Ciao, sono nuvo e sicuramte quello che vorrei chiedere sicuramente sarà gia stato chiesto, ma purtroppo nei vecchi messagi non sono stati utili nel mio caso. Devo interfacciare Labview con un generatore di segnali, un Agilelent 33220A. Sto facendo tutta la prcedura di iterffacciamento con il generatore con il computer(una mezza rottura perchè il computer è del prof e son quasi sempre bloccato dai permessi). Comunque la mia domanda è questa dopo aver interfacciato il generatore con il computer, posso usare il generatore tramite solo il cavo USB?Cioè attacco il cavo USB e poi sono a posto,ovviamte dopo aver fatto un programino in Labview? O devo per forza usare la scheda GPIB? son costretto a usarlo? La conessione tramite LAN la troverei forse molto fattibile, perchè nei mauali di iterfacciameto non mi dice di una presenza di una scheda; ma poichè il computer è del professore sicuramente dovrò chiedere di sboccarmi altri permessi. BUona serata ---------------------------------------- AUTORE: 278 DATA :17/10/2006 - 08:12:58 ---------------------------------------- ciao, secondo me fai un pò di confusione... Se vuoi comandare uno strumento tramite LV devi per forza di cose attaccare lo strumento al pc ove gira l'applicativo, a meno che tu abbia uno strumento wireless... \":D\" \":D\" Poi, mi sembtra di aver capito che lo strumento inq uestione supporta 3 tipi di connessioni, GPIB, USB e LAN, ti conviene scegliere il bus di comunicazione a te + congeniale e usare solo quello... ---------------------------------------- ================================================================================ interfacciare strumenti con labview ================================================================================ AUTORE: 1529 DATA :17/10/2006 - 00:51:54 ---------------------------------------- Salve Questa è la prima volta che utilizzo Labview (ho a disposizione la versione 7). Devo sviluppare un programma per la mia tesa per automatizzare le misure. In particolare, devo collegare un Keithley 2410 (alimentatore) e un HP 4284A al mio computer tramite collegamento GPIB. Voglio precisare che sul computer non ho nessuna scheda GPIB e quindi devo utilizzarne una con conettore USB. Ora la mia domanda è questa: Come faccio a controllare 2 strumenti contemporneamente? Devo utilizzare due schede distinte, o ne basta una sola? Devo assegnare due indirizzi GPIB differenti, o devono essere uguali? Ho provato e riprovato, ma non riesco a far comunicare gli strumenti con il computer. HELP ME PLEASE !!! Forse è sbagliato in programma. Devo inizializzare qualche cosa? Ci sono alcune procedure particolari da seguire? Parametri da settare? Lo so que questa domanda è banalissima, ma essendo la prima volta, non so proprio dove sbattere la testa. Ringrazio fin da ora chiunque risponderà a questo SOS \":(\" Giuseppe ---------------------------------------- AUTORE: 278 DATA :17/10/2006 - 08:06:05 ---------------------------------------- Ciao e benvenuto!! Come prima cosa, mi preoccuperei di far funzionare un solo strumento, comiunciando magari dall'HP 4284A, ho trovato i driver [url=https://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=E3B19B3E9346659CE034080020E74861:1ed3nucj][u:1ed3nucj]qui[/u:1ed3nucj][/url:1ed3nucj] Negli esempi di LV, se non ricordo male , ce n'è uno che tratta la comunicazione GPIB, con questo VI puoi cominciare a mandare qualche comando ai tuoi strumenti. Ciao ciao ---------------------------------------- AUTORE: 645 DATA :17/10/2006 - 09:48:34 ---------------------------------------- Per interfacciare LabView con strumenti esterni puoi seguire due strade: utilizzare driver (come ha detto Esodar), cioè piccoli programmi già pronti che ti permettono di comunicare con lo strumento o creare la comunicazione seguendo le indicazioni che dovresti trovare sul manuale dello strumento alla voce "Controllo remoto" o qualcosa del genere. Con i driver, di solito, funziona tutto molto bene. Ti consiglierei di cercare qualcosa anche sul sito www.ni.com , inserendo come voce di ricerca "Driver" o "Instrumental control" o "GPIB". Leggi qualcosa anche a proposito dei blocchi VISA (li trovi nella paletta di controllo strumenti nel Block Diagram). ---------------------------------------- AUTORE: 1529 DATA :17/10/2006 - 19:47:40 ---------------------------------------- Grazie mille per avermi risposto. Però non capisco come vanno usati i drivers. Ho scaricato quelli per l'HP 4284A... e adesso? Come faccio ad usarli? Devo copiarli in qualche directory di Labview? Quelli per il Keithley2410 non riesco a trovarli Ancora grazie mille per il vostro supporto! G. ---------------------------------------- AUTORE: 278 DATA :18/10/2006 - 08:20:10 ---------------------------------------- Ciao, allora... li devi copiare nella directory instr.lib, leggi il file [i:25derfql]hp428xa Readme.html[/i:25derfql] contenuto nei driver, ti spiega in modo + dettagliato... Una volta installati i driver in questa directory, riavvia LV, dovreti trovare poi nella paletta dei VI anche quelli per l'HP-Agilent 4284A. Nei driver ci sono anche degli esempi, puoi prendere spunto da quelli.... Ciao ciao \":wink:\" ---------------------------------------- AUTORE: 1529 DATA :23/10/2006 - 20:04:24 ---------------------------------------- Ciao a tutti Tutti driver dello strumento che devo utilizzare richiedono l' "instrument handle" in ingresso. Ma cos'è ??? qual'è il blocco che mi genera lo stato iniziale da passare successivamente alle altre funzioni? Grazie ---------------------------------------- AUTORE: 1529 DATA :24/10/2006 - 00:57:13 ---------------------------------------- Ciao a Tutti non riesco proprio a venirne fuori... eppure il programma che sevo fare è di una semplicità bestiale: imporre un arry di tensioni con il quale lo strumento deve eseguire le misure e leggere il valore di corrente per ogni V. Più facile di così !!! Solo che proprio non riesco a far comunicare il computer con lo strumento. Ho scaricato dal sito della KEITHLEY un programma che dovrebbe fare proprio questo, ma neppure quello funziona. Non da nessun segno di vita. Lo strumento è il modello 2410. Qualcuno lo ha già utilizzato prima? Grazie ---------------------------------------- AUTORE: 645 DATA :24/10/2006 - 08:47:40 ---------------------------------------- Puoi postare un'immagine del Block Diagram del tuo VI? ---------------------------------------- AUTORE: 278 DATA :24/10/2006 - 15:53:12 ---------------------------------------- Ciao, l'instrument handle, in realtà non è altro che il canale di comunicazione con lo stumento Per ottenere questo "handle", solitamente si fa uso dei blocchetti di inizializzazione dello stumento. Purtroppo, non possedendo al strumentazione da te utilizzata, posso solo ipotizzare quale sia il tuo problema. Per lo strumento HP 4284A ti consiglio di vedere gli esempi per capire come operare con lo strumento, per il Keithley2410 a grandi linee dovrai fare le stesse cose che fanno gli esempi dell'HP 4284A. Ho trovato qualcosa [url=https://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=E3B19B3E941C659CE034080020E74861:1s0yk77n][u:1s0yk77n]qui[/u:1s0yk77n][/url:1s0yk77n] e [url=http://digital.ni.com/public.nsf/allkb/3AA9F0DE80C495D386256B98005EFBA7:1s0yk77n][u:1s0yk77n]qui[/u:1s0yk77n][/url:1s0yk77n], ma sicuramente altre risorse le troverai sul sito Keithley, per esempio, guarda [url=http://www.keithley.com/products/currentvoltage/?path=2410/Downloads#4:1s0yk77n][u:1s0yk77n]qui[/u:1s0yk77n][/url:1s0yk77n], ora mi devi una birra... \":wink:\" ---------------------------------------- ================================================================================ Eseguire più task... come fare? ================================================================================ AUTORE: 1319 DATA :17/10/2006 - 00:54:08 ---------------------------------------- Ciao Nella foto che allego potete vedere un block diagram di un VI per l'aquisizione di un segnale in maniera continua. All'interno del ciclo while entra un solo task e non ci sono problemi. Ho tenuto fuori i 'start' e 'stop' e 'clear' per ottimizzare l'esecuzione del VI. Se volessi far entrare nello stesso ciclo while più task, in quanto devo gestire diversi sensori, come posso fare per esser sicuro che tutti i task entrino e vengano eseguiti? non si crea qualche ambiguità? E' una cosa fattibile? Avete qualche soluzione alternativa per poter gestire più task contemporaneamente senza problemi? Ciao e grazie in anticipo. ---------------------------------------- AUTORE: 482 DATA :17/10/2006 - 07:51:46 ---------------------------------------- Beh, credo che come le altre strutture di labVIEW basti creare un nuovo task e configurarlo mandandolo in ingresso. Credo che i VI siano configurati in reentrant execution cioe' non creino conflitti se lo stesso vi viene chiamato contemporaneamente in due punti del codice. Tutto questo pero' dipende dai task...nel senso..se sono dello stesso tipo puoi tranquillamente metterli in ingresso al create task e avrai in uscita un riferimento a piu' task ---------------------------------------- AUTORE: 1319 DATA :17/10/2006 - 10:05:51 ---------------------------------------- Purtroppo sono ancora un novizio di LV, quindi credo di non aver capito come c'è da fare per gestire più task (oltre ad altre cose che chiederò in seguito, ma partiamo con ordine...). Ad esempio, la foto che allego è un estrapolazione di una parte del mio programma che già nel suo piccolo mi da un errore riferendosi al blocco di start task dicendo 'The specified resource is reserved. The operator could not be completed as specified. ' Come mai? Una mezza idea ce l'ho in quanto i due task separatamente funzionano ma messi così a convivere funzionano o l'uno o l'altro, tuttavia chiedo lumi! Come posso fare? Ciao e grazie ---------------------------------------- AUTORE: 482 DATA :17/10/2006 - 12:41:16 ---------------------------------------- allora.. nell'immagine allegata come puoi vedere io do in ingresso alla gestione del task, due task dello stesso tipo quindi quando andro' a leggere anzichè fargli leggere un array gli faro' leggere un array a due dimensioni. ---------------------------------------- AUTORE: 1533 DATA :17/10/2006 - 14:12:33 ---------------------------------------- io ho provato a farlo nell'acquisizione da parte di due generatori differenti (ma impostati agli stessi parametri eccetto che per l'ampiezza) di due sinusoidi ma non riesco a spiegarmi lo sfasamento che mi introduce... \":?\" ---------------------------------------- AUTORE: 482 DATA :17/10/2006 - 14:57:39 ---------------------------------------- cosa intendi per sfasamento? sono due generatori separati e quindi non sincronizzati giusto? ---------------------------------------- AUTORE: 1533 DATA :17/10/2006 - 15:06:28 ---------------------------------------- [quote="gepponline":vfve9boq]cosa intendi per sfasamento? sono due generatori separati e quindi non sincronizzati giusto?[/quote:vfve9boq] no i due segnali sono sincronizzati da due trigger.leggendo altri post nel forum credo di aver capito che si tratta di un problema di scheda perchè stando a quello che hanno scritto gli altri la contemporaneità di campionamento è quasi impossibile visto che l'unico ADC viene multiplexato tra gli ingressi.poi non saprei...sono quasi sicuro di aver capito io male \":roll:\" ---------------------------------------- AUTORE: 1319 DATA :17/10/2006 - 18:37:58 ---------------------------------------- Ma come faccio a gestire singolarmente, una volta iniziato il task contenente più canali, i segnali che ho raggruppato? Ad esempio se voglio visualizzare un segnale su un grafico e l'altro segnale su un altro grafico come posso fare? Devo usare una funzione simile a unbundle per poter trattare singolarmente i miei segnali? Grazie mille in anticipo. ---------------------------------------- AUTORE: 1241 DATA :17/10/2006 - 18:52:44 ---------------------------------------- Ciao, in uscita dalla funzione di DAQmxread hai un array in cui in ciascuna riga (o colonna?) sono riportati i samples di ogni canale, ti basta indicare con un indice il subarray che ti interessa ti allego un vi trovato su questo forum, non ti preoccupare delle vi che non trova, riguarda un'acquisizione di 10 canali ---------------------------------------- AUTORE: 1241 DATA :17/10/2006 - 18:53:36 ---------------------------------------- ecco il vi ---------------------------------------- AUTORE: 1319 DATA :17/10/2006 - 20:28:36 ---------------------------------------- Ciao L'esempio che mi hai mostrato mi chiarisce alcuni dubbi, ma me ne crea altri... ad esempio perchè ha utilizzato 2 nodi di read? non ne bastava 1? C'è un modo per farne bastare 1? (magari se definisco i global channel in MAX e poi li elenco tutti nell'input 'phisical channel'...). Inoltre a cosa serve il nodo index array nel contesto? Grazie mille... porta pazienza... ---------------------------------------- AUTORE: 1241 DATA :18/10/2006 - 08:25:08 ---------------------------------------- allora, ci sono 2 blocchi di read perchè ci sono 2 task, uno per leggere dati da termocoppia e uno per leggere analog input, a dire la verità non so dirti perchè poi crea un array dei 2 task e inserisce un index array. Io p. es. acquisisco 6 analog input e 1 contatore e ho realizzato 3 tasks con 3 blocchi di read però ho problemi di visualizzazione e di ritardi (sto per creare un nuovo post su questo forum) perchè tu vuoi necessariamente avere un unico blocco di read? p.s. in un task puoi leggere quanti canali vuoi, basta che siano della stessa tipologia (termocoppie, AI ecc.), dalla DAQmx palette scegli task constant, clicca sulla freccetta e scegli browse e poi seleziona più canali cliccando col mouse e tenendo premuto un tasto della tastiera (non ricordo il nome) che ti permette di selezionare più elementi oppure vedi il VI che mi ha generato il MAX nel momento in cui ho definito un task con 5 canali, alla fine del timing mettici il blocco di read in un while loop ---------------------------------------- AUTORE: 1319 DATA :18/10/2006 - 09:17:14 ---------------------------------------- Ciao Mamma mia, qui i problemi non finiscono mai... Ero partito col crearmi un task per segnale (1 per il primo sensore di giri, 1 per il secondo sensore di giri,1 per la pressione...) ma ho appurato che non posso far eseguire contemporaneamente più task dello stesso tipo. Allora mi sono creato un global channel per segnale (1 per il primo sensore di giri, 1 per il secondo sensore di giri,1 per la pressione...), fatto questo mi sono creato un task che mi raggruppa i 4 ingressi analogici in tensione che devo analizzare (per le termocoppie ho creato un altro task). Il suo sampling rate è uguale a quello che avevo impostato nei singoli task creati erroneamente all'inizio ma ora mi dice che è un sampling rate troppo elevato per la scheda... ma come? se prima era ok tale sampling rate applicato ai vari task monocanale come mai ora non è più corretto? Tenendo presente che la mia scheda (PCI-6220) arriva a 250KS/s mentre io gli chiedo 1KS/s... Hai spiegazioni? Qualcuno ha spiegazioni? Inizio a sudare... Grazie mille in anticipo p.s.il fatto del singolo read da me richiescto era solo una curiosità ---------------------------------------- AUTORE: 482 DATA :18/10/2006 - 10:02:56 ---------------------------------------- un VI in allegato non ce lo mandi? \":wink:\" ---------------------------------------- AUTORE: 1319 DATA :18/10/2006 - 10:48:47 ---------------------------------------- Ciao Io speravo prima di risolvere questo problema di timing, quando andrà qualcosa certamente che lo posto per chiedervi come fare per migliorare o risolvere altri problemi.. ma ora proprio non mi va... non mi crea il task multicanale (Io lo creo in MAX.... dovrei crearlo direttamente in LV?)... hai qualche soluzione al problema del timing che ho descritto? Grazie mille!! ---------------------------------------- AUTORE: 1319 DATA :18/10/2006 - 22:42:09 ---------------------------------------- Ciao A voi è mai capitato che un canale singolo in un task possa avere un determinato sampling rate mentre con più canali in un task non si riesca ad arrivare a tale valore del sampling rate pur usando la stessa scheda di aquisizione? Può essere un fenomeno dovuto al fatto che sulla mia scheda è presente un solo ADC che quindi non riesce a garantire a tutti i canali contemporaneamente elevati valori di sampling rate? (per elevati intendo 1KHz...) Potrebbe essere il mio caso? Mah Aspetto con ansia qualche vostra considerazione, grazie mille! ---------------------------------------- ================================================================================ scrittura di una variabile su plc usando libreria .NET ================================================================================ AUTORE: 1530 DATA :17/10/2006 - 08:43:08 ---------------------------------------- salve a tutti... ho un problema urgente da risolvere... Dovrei riuscire a scrivere una word su PLC beckhoff usando la libreria .NET TwinCAT.Ads.dll . Non riesco a capire perchè riesco a leggere, ma non a scrivere... Cioè, usando il vi in allegato "readVar" riesco a leggere le variabili, mentre con "writeVar" non riesco a scrivere... La differenza tra i due sta ovviamente nell'invocazione di metodi in lettura per il primo e di scrittura per il secondo. All'avvio dei vi bisogna indicare il percorso della libreria TwinCAT.Ads.dll che ho inserito nell'allegato nella cartella .NET. In allegato c'è anche il programmino PLC di prova su cui sto testando i vi. Spero di essere stato chiaro e che questo topic stimoli la vostra curiosità... Grazie per qualsiasi eventuale consiglio, M. ---------------------------------------- AUTORE: 1530 DATA :17/10/2006 - 12:41:58 ---------------------------------------- Risolto. Grazie cmq.. Arrivederci a tutti. M. ---------------------------------------- AUTORE: 683 DATA :21/11/2006 - 10:38:41 ---------------------------------------- anche te utilizzi moduli beckhoff? senti potresti postarmi un'immagine o se possibile salvare il file in 7.1 visto ke non ho il labview 8? fammi capire, tu con l'ads vai a leggere direttamente sull'accoppiatore bus ma devi comunque utilizzate il twincat io? io per ora utilizzo twincat io che mi manda l'immagine all'opc server nn ho ancora provato ad fare un vi ke utilizzi le funzioni di activex e ti diro sn abbastanza nuovo dell'ambiete beckhoff grazie anticipatamente ci sentiamo ciao ciao ---------------------------------------- AUTORE: 645 DATA :21/11/2006 - 10:43:32 ---------------------------------------- Ciao Montezuma... vorrei chiederti un favore: puoi spiegarci come hai risolto il problema? Può essere utile per altri utenti del forum! ---------------------------------------- ================================================================================ Versioni di LabView ================================================================================ AUTORE: 963 DATA :17/10/2006 - 10:36:16 ---------------------------------------- Ciao a tutti... Volevo chiedere una cosa.. E' possibile, se ho fatto un software con versione 8.2 farlo andare con la versione 6.1?? Bisogna convertire il VI? Ciao, buona giornata ---------------------------------------- AUTORE: 645 DATA :17/10/2006 - 11:11:16 ---------------------------------------- Un VI fatto con una certa versione non può essere aperto da versioni precedenti a meno di salvare lo stesso VI appositamente per la versione precedente in questione. A parte la risposta che anche io faccio fatica a capire (ogni tanto mi stupisco di come scrivo), se hai fatto il VI con la 8.2 non puoi aprirlo con la 6.1. A meno di salvare il VI per la 6.1 (da LabView salvi per versione precedente). Oppure puoi creare l'eseguibile. ---------------------------------------- AUTORE: 963 DATA :17/10/2006 - 13:11:27 ---------------------------------------- Ciao, ho provato a salvare il VI come una versione precedente ma il menù di scelta delle versioni comprende solamente LabView 8.0 e 8.2..... Forse perchè 6.1 non ce l'ho presente sul computer? Ciao, grazie ---------------------------------------- AUTORE: 645 DATA :17/10/2006 - 13:21:10 ---------------------------------------- Guarda questa discussione: viewtopic.php?t=2044&highlight=versioni . ---------------------------------------- AUTORE: 4 DATA :17/10/2006 - 13:24:02 ---------------------------------------- [url=http://www.ilvg.it/forum/viewtopic.php?t=2044&postdays=0&postorder=asc&start=0:1yijkbfh]questa discussione[/url:1yijkbfh] di sicuro ti interesserà. Cia ---------------------------------------- ================================================================================ Ridurre l'utilizzo della CPU ================================================================================ AUTORE: 645 DATA :17/10/2006 - 12:26:52 ---------------------------------------- Avrei un problemino: sapete indicarmi qualche strada particolare per ridurre la CPU utilizzata dal mio VI? Ehm... sono a quota 50% per un VI di lettura Database e non mi era mai successo... ecco perchè funziona tutto un po' lentamente... ---------------------------------------- AUTORE: 927 DATA :18/10/2006 - 10:14:30 ---------------------------------------- Mi sa che sto dicendo un'ovvietà, ma perchè non abbassi la priorità dell'esecuzione? ---------------------------------------- AUTORE: 1165 DATA :18/10/2006 - 10:32:15 ---------------------------------------- Magic, vista la tua esperienza non credo che tu sia caduto nelle più banali motivazioni tipo loops non temporizzati o altre cose simili, quindi probabilmente il problema va ricercato in motivazioni meno evidenti e forse non sono io la persona più competente qui in questo forum per darti una risposta sicura. Ma se provi ad inviarmi il VI (per favore in formato 7.0) provo a guardarlo per bene, se non altro sarà un utile allenamento per me e chissà che qualcosa non scappi fuori. Ciao, enrico. ---------------------------------------- AUTORE: 645 DATA :18/10/2006 - 10:42:49 ---------------------------------------- Sto cercando di sistemare alcune query: il mio VI si occupa di interrogare un database e ho trovato un punto in cui eseguo una query "sbagliata" per la quantità di dati che devo estrarre. Modifico e vi faccio sapere. Per Enr: grazie della proposta ma prima provo a sistemare questa cosa. ---------------------------------------- AUTORE: 683 DATA :21/11/2006 - 11:15:12 ---------------------------------------- ah ragazzi occhio all'utilizzo degli opc server che girano sul pc!! a me l'opc del fiedlpoint se nn opportunamente gestito prende un tantissime risorse per niente ciao e buon lavoro ---------------------------------------- AUTORE: 645 DATA :24/11/2006 - 10:34:05 ---------------------------------------- Dopo un po' di tempo torno qui... Ho modificato la struttura del VI e lavoro occupando meno CPU (mi riferisco ai dati che si posson vedere con il Task Manager di WinXP). Però aumenta la dimensione del file di paging. Qualcuno sa indicarmi qualche sito o articolo da leggere sul miglioramento delle prestazioni in WinXP, riduzione di CPU usata (o cause di consumo eccessivo), ottimizzazione file di paging? Ho cercato ma non ho trovato niente di davvero interessante... E in LabView c'è modo di "svuotare" la RAM (so che ci sono alcune funzioni ma non le ho mai usate... e non so se sia la strada giusta da seguire per i problemi di CPU e file di paging). \":o\" \":o\" \":o\" ---------------------------------------- ================================================================================ Acquisizione DAQmx ================================================================================ AUTORE: 1533 DATA :17/10/2006 - 12:50:28 ---------------------------------------- Sto cercando di acquisire un segnale da un function generator utilizzando i blocchettini DAQmx del labview. Ho utilizzato i seguenti blocchetti: il create virtual channel, il timing, lo start task, all'interno di un ciclo while ho inserito il blocco Read,ed infine all'esterno di esso un clear task. Ho notato che se cambio il sample rate del DAQmx Timing durante l'acquisizione purtroppo continuo ad campionare alla stessa frequenza di partenza. Ho pensato allora di portare il gruppo timing & start task all'interno del ciclo while ma non riesco a visualizzare nulla...qualcuno di voi può aiutarmi a capire perchè non funziona e come devo disporre i componenti per poter cambiare il sample rate anche durante la fase di acquisizione? Grazie ---------------------------------------- AUTORE: 235 DATA :17/10/2006 - 13:09:24 ---------------------------------------- La cosa più facile che puoi fare è fermare il task (DAQmx STOP Task), modificare il sample rate e quindi fare ripartire il task. Il clear usalo solo alla fine del programma. Bye P. ---------------------------------------- AUTORE: 1533 DATA :17/10/2006 - 13:22:42 ---------------------------------------- Wau perfetto! non ci sarei mai arrivato \":D\" Davvero grazie. ---------------------------------------- AUTORE: 1533 DATA :17/10/2006 - 13:48:26 ---------------------------------------- Ho notato che quando acquisisco ed effettuo una sincronizzazione mi viene una visualizzazione strana. Cioè ho visto che se mando a video il segnale prima del trigger l'acquisizione procede correttamente dopo il trigger però l'ultima parte del segnale visualizzato (quella che ho segnato in rosso nell'immagine) inizia a lampeggiare. Ho pensato ad un problema di campionamento ma sinceramento non riesco a risolverlo... \":?\" grazie ancora per la vostra disponibilità [url=http://img152.imageshack.us/my.php?image=immaginejj4.jpg:13e73zug][img:13e73zug]http://img152.imageshack.us/img152/756/immaginejj4.th.jpg[/img:13e73zug][/url:13e73zug] ---------------------------------------- AUTORE: 1533 DATA :17/10/2006 - 15:28:14 ---------------------------------------- ecco un'altra visualizzazione strana che compare dopo il trigger quando acquisisco due segnali... [url=http://img145.imageshack.us/my.php?image=immagineiq0.jpg:3ldcuhy6][img:3ldcuhy6]http://img145.imageshack.us/img145/9854/immagineiq0.th.jpg[/img:3ldcuhy6][/url:3ldcuhy6] il segnale sembra annullarsi ma non capisco il perchè... \":?\" sto pieno di dubbi.aiutatemi plz \":cry:\" ---------------------------------------- ================================================================================ build waveform ================================================================================ AUTORE: 1241 DATA :17/10/2006 - 16:03:38 ---------------------------------------- ciao ragazzi ho questo problema: devo ricostruire una waveform partendo da dei samples salvati in un file di testo. nella "Y" dei parametri di "build waveform" ci metto i samples e nel "dt"? potete aiutarmi? ciao e grazie ---------------------------------------- AUTORE: 1241 DATA :17/10/2006 - 18:54:48 ---------------------------------------- è l'inverso della frequenza (in samples/sec) del segnale! ---------------------------------------- ================================================================================ RMS con il DAQmx ================================================================================ AUTORE: 1533 DATA :18/10/2006 - 06:44:46 ---------------------------------------- Dovrei effettuare il calcolo dell'RMS ed anche una eventuale FFT sul mio segnale acquisito. Essendo la formula dell'RMS pari a radice quadrata di 1/N sommatoria di vi^2 volevo sapere come fare per calcolare esattamente il numero N. grazie ---------------------------------------- ================================================================================ impostazioni di stampa ================================================================================ AUTORE: 1368 DATA :18/10/2006 - 07:53:21 ---------------------------------------- Ciao a tutti, in un programma durante la stampa devo poter visualizzare le proprieta di stampa di windows, come posso fare?? ---------------------------------------- AUTORE: 927 DATA :18/10/2006 - 11:14:31 ---------------------------------------- Se intendi lo stato dei documenti in coda di stampa, prova con il comando LPQ (per mandare comandi si usa System Exec.vi) ---------------------------------------- AUTORE: 1368 DATA :19/10/2006 - 09:48:21 ---------------------------------------- mi interessava richiamare le impostazioni di stampa di windows in modo che l utente puo scegliere la carta la stampante etc etc ---------------------------------------- AUTORE: 384 DATA :20/10/2006 - 10:37:35 ---------------------------------------- Credo che questo sia ciò che stai cercando: http://zone.ni.com/devzone/cda/epd/p/id/1885 ---------------------------------------- ================================================================================ Lista stampanti ================================================================================ AUTORE: 53 DATA :18/10/2006 - 09:04:07 ---------------------------------------- Ho utilizzato il property nody App (LV 7.0) con la proprieta "All Available Printer", ma la lista delle stampanti non è completa. Mi restituisce solo le "locali" e non quelle che fanno parte di un dominio; su un altro PC con le stesse impostazioni la lista invece è completa. Posso comunque recuperare i dati dal registro di sistema, ma perchè farlo se ho una funzione che "dovrebbe funzionare"? Qualche idea ? Grazie a tutti. Mauro ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 09:55:49 ---------------------------------------- che SO usi sulle due macchine? Ciao ---------------------------------------- ================================================================================ Arresto motori passo-passo ================================================================================ AUTORE: 1536 DATA :18/10/2006 - 09:11:52 ---------------------------------------- Ciao, espongo un problema arcinoto nel forum ma con alcune differenze di cui non ho trovato soluzioni nei precedenti post. Ho a che fare con la movimentazione di motori passo-passo, e semplificando in un unico VI ho il SubVI che manda impulsi logici al controller e un'altro SubVI che legge i fine corsa. Per rendere il movimento dei motori il più regolare\fluido possibile, devo dare il treno di impulsi tutti insieme e anche se il SubVI dei fine corsa legge che ho oltrepassato il fine corsa il SubVI di controllo motori continua a farli muovere fino ad esaurimento del numero di "step" impostato. In alternativa dovrei per ogni passo dei motori leggere i fine corsa e ripartire, ma il movimento è troppo "scattoso". Ho provato (con le poche conoscenze che ho) con le occurence ma non sembra cambiare niente. C'è soluzione? Grazie Marco ---------------------------------------- AUTORE: 645 DATA :18/10/2006 - 10:44:39 ---------------------------------------- Hai provato i While Temporizzati in parallelo con priorità diversa e possibilità per il loop dei fine corsa di fermare anche l'altro ciclo? ---------------------------------------- AUTORE: 1536 DATA :18/10/2006 - 15:45:18 ---------------------------------------- Ciao, ho provato a seguire il tuo consiglio ma non sembra succedere nulla di nuovo. L'immagine in allegato è quella del VI in questione: nel ciclo sopra ci sono i due VI che muovono i motori, a ognuno va dato la porta (var. globale X o Z), il numero di step (controllo) e la direzione (booleano). Nel ciclo sotto invece il VI in giallo legge continuamente se i fine corsa sono stati raggiunti e interrompe il ciclo. Questo non ha alcuna conseguenza nel ciclo di sopra che continua a dare impulsi ai motori anche a fine corsa raggiunti. Grazie, Marco ---------------------------------------- AUTORE: 247 DATA :19/10/2006 - 09:00:50 ---------------------------------------- Ciao, penso che Magic con "While temporizzati" intendesse i Timed Loop, cmq il tuo VI non funzionerà mai come vuoi, prova semplicemente come si fa di solito a seguire questa sequenza semplicissima messa in un loop: 1 - leggi finecorsa: se attivo disabiliti il movimento per l'asse collegato al finecorsa attivo(ovviamente solo per il movimento nella direzione incriminata). 2- leggi numero step asse x, se >0 mandi l'implulso per realizzare l'avanzamento e decrementi di uno contatore step, se =0 nulla e se <0 imposti direzione negativa per l'asse, mandi l'impulso e decrementi di uno contatore step. 3- Idem passo 2 per asse z e qualsiasi altro asse. Molto semplice ma molto efficace. BYE. ---------------------------------------- ================================================================================ Gestire numeri complessi ================================================================================ AUTORE: 1537 DATA :18/10/2006 - 09:27:17 ---------------------------------------- Ciao a tutti, come da oggetto vorrei sapere come inserire e manipolare i complessi su labview, comincio ora a usarlo... \":wink:\" grazie! ---------------------------------------- AUTORE: 1319 DATA :18/10/2006 - 09:35:16 ---------------------------------------- Ciao Vai nella paletta delle funzioni del block diagram e segui il seguente percorso programming-->numeric-->complex Qui c'è tutto quello che ti serve... almeno spero! ---------------------------------------- AUTORE: 1537 DATA :18/10/2006 - 09:42:47 ---------------------------------------- ci sono gli strumenti x la conversione, ma resta il problema di inserire un complesso nel block diagram. non c'è qualche blocco che prende in ingresso parte re e parte im e restituisce il complesso? ---------------------------------------- AUTORE: 1319 DATA :18/10/2006 - 09:54:20 ---------------------------------------- Ciao Susa ma il blocco Re/Im to complex non fa al caso tuo? Altrimenti non ho capito cosa vuoi fare... ---------------------------------------- AUTORE: 1537 DATA :18/10/2006 - 10:12:27 ---------------------------------------- si scusa, ora ho risolto ma non riesco a fare operazioni tra complessi. per esempio quando sommo insieme un reale e un complesso mi esce solo la somma delle parti reali... ci sono blocchi appositi per questo? grazie dell' aiuto ---------------------------------------- AUTORE: 1319 DATA :18/10/2006 - 10:32:26 ---------------------------------------- [quote="danysanca":30menol3]si scusa, ora ho risolto ma non riesco a fare operazioni tra complessi. per esempio quando sommo insieme un reale e un complesso mi esce solo la somma delle parti reali... ci sono blocchi appositi per questo? grazie dell' aiuto[/quote:30menol3] Ciao Se sommi un reale con un complesso il reale viene automaticamente trasformato in un complesso con parte immaginaria = 0. Si può notare l'avvenuta di questa operazione notando un puntino in corrispondenza del connettore di input interessato nel blocco operazionale in questione. Poi sta a te scegliere il formato nel quale rappresentare il numero cliccando di dx sull'icona del controllo o dell'indicatore o della costante che contiene il numero di tuo interesse. Per fare la somma o la sottrazione si usano i soliti blocchi i quali automaticamente si adattano al dato ricevuto. Spero di esserti stato di aiuto ---------------------------------------- AUTORE: 1537 DATA :18/10/2006 - 11:39:52 ---------------------------------------- ok grazie tutto risolto, gentilissimo! ---------------------------------------- ================================================================================ Conversione immagini Compact RIO ================================================================================ AUTORE: 866 DATA :18/10/2006 - 09:54:49 ---------------------------------------- ciao a tutti, ho un GROSSO problema con la conversioni di immagini. Devo generare un report HTML in cui allego diverse immagini. Il problema è che le immagini devono essere dei JPG mentre il CompactRIO accetta solo dei BMP. Qualcuno sa come fare la conversione tra i due formati?????? Grazie Ciao ---------------------------------------- AUTORE: 927 DATA :18/10/2006 - 11:07:36 ---------------------------------------- Non so la compatibilità con il CompactRIO, ma in genere per convertire le immagini con Labview puoi usare i blocchetti sotto Graphic & Sound / Graphic Formats. Usa Read BMP File.vi seguito da Write JPEG File.vi ---------------------------------------- AUTORE: 866 DATA :06/11/2006 - 16:01:48 ---------------------------------------- Ciao, informazione per chi si trovasse nella mia situazione: il Compact RIO NON supporta il formato JPEG, come confermato dal supporto tecnico National a Houston. Ciao ---------------------------------------- ================================================================================ array di opc items ================================================================================ AUTORE: 683 DATA :18/10/2006 - 10:55:41 ---------------------------------------- ciao a tutti, come di fa a colleggare traimite il datasoket, le item di un opcserver e raggrupparli tutti in un'array? ad esempio utilizzo i Fieldpoint tramite OPC e ho un modurlo rele che vorrei comandare direttamente da un'array come faccio a collegarli?? GRazie a tutti buon lavoro ---------------------------------------- AUTORE: 927 DATA :30/11/2006 - 15:08:10 ---------------------------------------- Ho avuto poco tempo fa lo stesso problema (anche se con le Shared e non Datasocket), e per un casualissimo caso ho visto ora la tua domanda. Ho avuto conferma da fonti certe che i server OPC NON pubblicano i dati in formato array e non ci sono ca...i ---------------------------------------- AUTORE: 683 DATA :30/11/2006 - 18:46:34 ---------------------------------------- l'opc die fieldpoint pbblica solo item, ho avuto a che fare anche con opc dei moduli di acquisizione nn Natinalinstrument e li col il loro opc server collegato all'imagine di processo si possono assegnare ad un array di 1 2 o più byte i rispettivi bit di un numero binario! confermo che OPC NI nn pubblica array e misogna socrrere tutti elemento per elemento ciao buon lavoro ---------------------------------------- AUTORE: 384 DATA :01/12/2006 - 09:45:24 ---------------------------------------- Non ho mai usato l'OPC della NI, ma gli altri che ho usato trattano normalmente gli array! ---------------------------------------- ================================================================================ Aggiornamento delle variabili ================================================================================ AUTORE: 482 DATA :18/10/2006 - 11:10:47 ---------------------------------------- ..ma ciao! mi si è presentata una situazione un po' strana... In un applicazione ereditata da chi faceva il mio lavoro prima di me, ho una struttura che mi gestisce in base ad un ingresso, un uscita all'iterazione successiva. Cosa succede... All'interno del case io scrivevo la variabile e la leggevo mandandola all'uscita. Ai tempi la variabile si aggiornava al nuovo valore solo all'iterazione successiva. Adesso invece si aggiorna subito a meno che non metta una sequenzialità in cui prima leggo e poi scrivo. Volevo sapere..sapete qualcosa a riguardo di cambiamenti nell'aggiornamento dei valori delle variabili in base alal versione di LabVIEW? Allego un immagine del VI. Nelle versioni precedenti alla 8.2 se premi il tasto di condizione del case, ho subito un uscita true o solo all'iterazione successiva? ---------------------------------------- AUTORE: 927 DATA :23/10/2006 - 08:39:48 ---------------------------------------- L'ho provato nella 7.1 e non funziona, l'uscita è sempre false. Ma in generale mi sembra un modo sbagliato di programmare, qualunque sia la versione di Labviù non hai la garanzia di quale blocco viene eseguito prima a meno che non usi le sequenze. Dovresti usare uno shift register! ---------------------------------------- ================================================================================ opc e datasocket ================================================================================ AUTORE: 683 DATA :18/10/2006 - 12:06:01 ---------------------------------------- ciao a tutti, girando per gli esempi di LV sugli opc e datasoket mi sono accorto ke per leggere e scrivere dati vengono utilizzati dei vi appositi e con funzioni che che aprono la connessione al DS leggono dati in varie modalità ec... Le prima applicazione che ho fatto però ho utilizzato una connessione diretta facendo click destro e datasocket connection e assegnato l'url alla variabile e ciudendo tutto in ciclo while e tutto funziona bene qual'è la differenza tra i due metodi pro e contro? grazie a tutti e buona giornata ---------------------------------------- ================================================================================ Array per un numero . ================================================================================ AUTORE: 1372 DATA :18/10/2006 - 12:18:52 ---------------------------------------- Salve . Allora ... penso che la cosa sia abbastanza stupida ma non so perche' mi moltiplica sempr solo l'ultimo numero , il resto rimane imtato . Se qualcuno ha un codice disponibile , magari per un aray 2d ... \":)\" ---------------------------------------- AUTORE: 1030 DATA :18/10/2006 - 13:38:18 ---------------------------------------- Per prendere tutti gli elementi di un array hai bisogno di passare l'array in un ciclo while (o for) abilitando l'indexing (cioè l'auto indicizzazione). Dentro il ciclo metti la funzione di moltiplicazione. Nel caso di un array 2D hai bisogno di 2 cicli uno dentro l'altro per prendere prima tutte le righe e poi i singoli elementi. Nel caso non riuscissi siamo qua! ciao ciao ---------------------------------------- AUTORE: 1165 DATA :18/10/2006 - 14:30:04 ---------------------------------------- Una caratteristica di molti operatori del Labview è il polimorfismo, che significa che in ingresso accettano molteplici tipi di dati differenti, eventualmente adattandosi da soli. In particolare gli operatori aritmetici accettano in ingresso senza problemi, oltre a due scalari, anche un vettore e uno scalare, restituendo un vettore analogo per dimensioni e cardinalità, ma con gli elementi operati con quello specifico scalare. Semmai, prova che io non ho mai fatto e quindi parlo un po' a caso, verifica se eventualmente gli operatori aritmetici diadici sono sensibili alla posizione del vettore e dello scalare. Forse il vettore deve stare sul primo connettore in alto e lo scalare sul secondo, non so. ---------------------------------------- AUTORE: 482 DATA :18/10/2006 - 15:23:59 ---------------------------------------- Con labview 8.2 l'operazione non comporta problemi di sorta...metti il numero e l'array ai due terminali e ti moltiplica ogni numero dell'array per il numero voluto. pe rle versioni precedenti SE è diverso presumo che ci sia l'opzione sul terminale di uscita del tipo add aggregates invece che elements o roba simile... ---------------------------------------- AUTORE: 1030 DATA :18/10/2006 - 15:24:55 ---------------------------------------- Enr ha ragione, se quello che serve è solamente moltiplicare ogni elemento basta collegare l'array al connettore in alto (della funzione "moltiplicazione") e il numero per cui moltiplicare al connettore in basso. E' una strada molto più semplice rispetto a quella indicata da me in precedenza, che comunque rimane valida nel caso dovessi fare altre operazioni più complicate o dovessi trattare altri tipi di dati come per esempio le stringhe!!! ciao ---------------------------------------- AUTORE: 482 DATA :18/10/2006 - 15:48:45 ---------------------------------------- boh..nella 8.2 non conta che sicolleghi al terminale sopra o quello sotto... ---------------------------------------- ================================================================================ legere file e trasfrmarli in array ================================================================================ AUTORE: 910 DATA :18/10/2006 - 13:09:30 ---------------------------------------- Ciao qualcuno mi può aiutare? Riesco a leggere i file e trasformarli in una data string ora quello che mi serve e andare a leggere i singoli valori della data string e metterli su un array. questo è quello che vedo nella data string e che devo estrarre riga per riga grazie G01 C0 G01 X12,39 C0 G01 X2,39 C0 G01 X2,378 C0,1 G01 X2,366 C0,2 G01 X2,354 C0,3 G01 X2,342 C0,4 G01 X2,33 C0,5 G01 X2,319 C0,6 G01 X2,307 C0,7 G01 X2,295 C0,8 ---------------------------------------- AUTORE: 1030 DATA :18/10/2006 - 13:32:19 ---------------------------------------- Ciao a questo punto per estrarre le righe puoi usare la funzione "spreadsheet string to array" che trovi sotto Function->String. ciao ciao ---------------------------------------- AUTORE: 645 DATA :18/10/2006 - 15:54:57 ---------------------------------------- Oppure puoi usare le funzioni per le stringhe e cercare i path (gli insiemi di caratteri) da inserire nelle posizioni dell'array. Mi spiego meglio: cerchi un insieme di caratteri, lo prendi (i blocchi di ricerca nelle stringhe danno la possibilità, una volta trovato l'insieme, di utilizzarlo separatamente dal resto della stringa) e lo metti nella posizione dell'array. Un po' più incasinato... ---------------------------------------- AUTORE: 384 DATA :19/10/2006 - 09:01:55 ---------------------------------------- Io leggerei il file riga per riga ed estrarrei i valori subito con lo "scanf". Credo sia più immediato. ---------------------------------------- AUTORE: 1598 DATA :15/11/2006 - 08:12:50 ---------------------------------------- Ciao a tutti, sono nuovo da queste parti! Ho anch'io il problema di riempire un array di stringhe: vorrei che ogni singola riga del mio file di testo diventi un elemento dell'array. Le ho provate tutte, ma non ci sono riuscito \":roll:\" In particolare non ho trovato nessuna funzione che, come per gli array di numeri, dia la possibilità di inserire la stringa che voglio nella posizione che voglio all'interno dell'array di stringhe finale. Mi date una dritta? Grazie!! ---------------------------------------- AUTORE: 384 DATA :15/11/2006 - 09:39:48 ---------------------------------------- Mi sombra di non aver capito bene il tuo problema. Così come lo descrivi, mi sembra che basti leggere il file riga per riga con un loop per ritrovarci in uscita un array di stringhe in cui ogni elemento dell'array è la corrispondente riga nel file. ---------------------------------------- AUTORE: 1598 DATA :16/11/2006 - 09:26:17 ---------------------------------------- E' vero, il problema di riempire un array di stringhe a partire da un file di testo si risolve banalmente con la funzione "Read text file", cliccandoci col destro e spuntare "read lines". Però, se di queste righe ne voglio tenere solo alcune, come faccio a riempire un altro array di stringhe con solo le stringhe che voglio? Per farla breve, questo file di testo contiene i dati salvati con un oscilloscopio ed insieme ai dati che mi servono, ci sono anche righe di headers, che vorrei elimenare automaticamente. ---------------------------------------- AUTORE: 384 DATA :18/11/2006 - 22:03:43 ---------------------------------------- Suggerirei di scorrere l'array e individuare le tringhe che vuoi. Quelle le "accodi" ad un secondo array che "gira" in uno "shift register". Guarda l'esempio che allego. Per quanto minimalista, potrebbe fare al caso tuo? ---------------------------------------- AUTORE: 1598 DATA :30/11/2006 - 07:43:50 ---------------------------------------- Grazie Gyc! Mi sei stato di grande aiuto!! ---------------------------------------- AUTORE: 384 DATA :30/11/2006 - 08:49:53 ---------------------------------------- Il forum esiste per questo!!! ---------------------------------------- ================================================================================ problemi in visualizzazione segnali acquisiti ================================================================================ AUTORE: 1241 DATA :19/10/2006 - 13:26:17 ---------------------------------------- Ciao ragazzi, ho questo problema devo acquisire 6 analog input e 1 counter. ho fatto 3 task: 4 analog input 0-10V, 2 analog input -5/5 V, 1 counter, ho impostato read 1D waveform, 500 samples, 1000 rate (per canale suppongo) le daqmxread sono in un while loop c'è poi un enum che mi permette di visualizzare il canale scelto su un unico grafico. la waveform viene precedentemente filtrata con una subvi di Labview ho però una estrema lentezza nella visualizzazione della waveform sul grafico, inoltre la visualizzazione di uno stesso canale si interrompe. come posso fare per migliorare la visualizzazione? agire sui sample, sul rate, diminuire i task? se volete vi posto il VI mi potete aiutare? ---------------------------------------- AUTORE: 10 DATA :19/10/2006 - 16:03:41 ---------------------------------------- Puoi postare il vi? e' difficile dirti qualcosa senza avere il codice... ---------------------------------------- AUTORE: 1241 DATA :19/10/2006 - 16:22:53 ---------------------------------------- ok, ho eliminato una trasmissione seriale (contemporaneamente dovrebbe avvenire una trasmissione seriale, dopo pressione di pulsante, è un problema?) ---------------------------------------- AUTORE: 10 DATA :20/10/2006 - 07:28:56 ---------------------------------------- Puoi convertire tutto con LV 7.1? Non vedo i vi. Hai postato 4 vi, i tre untitled, cosa sono? ---------------------------------------- AUTORE: 1241 DATA :20/10/2006 - 12:33:42 ---------------------------------------- ciao max io ho labview 8.0, come faccio a convertirlo in 7.1? i 3 untitled sono delle subroutine in cui vengono specificate le caratteristiche dei 3 task, quindi pensavo fosse utile avere anche queste informazioni mi dispiace che ti stai prendendo questo disturbo ma ti ringrazio ---------------------------------------- AUTORE: 977 DATA :20/10/2006 - 14:03:02 ---------------------------------------- per convertire dalla versine 8.0 alla versione 7.1, vai sul menù File e seleziona save with options... Si aprirà una finestra nella quale selezionerai la voce "Save to previus version" e così salverai i vi nella versione 7.1.... Chiedo scusa se qualche termine è sbagliato, ma il mio inglese fà sempre più pena!! a presto.... ---------------------------------------- ================================================================================ Saturazione Segnale & altri problemi ================================================================================ AUTORE: 1533 DATA :20/10/2006 - 08:29:05 ---------------------------------------- Ho notato che quando acquisisco i due segnali uno di loro va in saturazione (per la precisione quello di ampiezza 10). Se provo ad aumentare i valori max e min sul circuito non so perchè ma non visualizzo piu' nulla e sono convinto che l'offset sul function generator sia settato bene perchè l'ho visualizzato prima su un oscilloscopio senza notarne la presenza... Vi posto l'immagine in cui si evidenzia non solo il problema della presunta saturazione ma anche quello che un altro, quello evidenziato nel grafico del segnale sincronizzato, che non so proprio spiegarmi..in pratica il segnale nell'ultimo semiperiodo da un'oscillazione strana (quasi da crisi epilettica) nonchè è come se i due segnali a turno tendessero ad annullarsi \":?\" ..... [url=http://img208.imageshack.us/my.php?image=foto1wv3.jpg:613xmgqf][img:613xmgqf]http://img208.imageshack.us/img208/527/foto1wv3.th.jpg[/img:613xmgqf][/url:613xmgqf] Spero che qualcuno di voi gentilmente riesca a risolvermi questi problemi..perchè non so proprio dove metterci le mani e sono estremamente confuso \":cry:\" Vi aggiungo anche il circuito. ---------------------------------------- AUTORE: 1533 DATA :20/10/2006 - 10:15:41 ---------------------------------------- Allora credo di aver capito il perchè di quel funzionamento anomalo ma non riesco cmq a risolverlo \":cry:\" in pratica credo sia dovuto al fatto che tento di visualizzare un periodo in piu'. Ovvero dal momento che nel segnale reale visualizzo ad esempio 500 campioni quando vado a triggherare ovviamente perdo una parte del segnale iniziale (quello precendente all'azione del trigger) e il labview automaticamente (per come è costruito il mio circuito) va a visualizzare diciamo quella parte mancante "prendendola" dal vettore successivo. Ora io vorrei evitare questo...cioè vorrei fare in modo da visualizzare i famosi 500 campioni - la parte che taglio all'inizio. ---------------------------------------- AUTORE: 1533 DATA :20/10/2006 - 13:30:49 ---------------------------------------- non so...sono stato poco chiaro?magari provo a riformulare meglio il problema se è necessario...plz aiutatemi \":cry:\" ---------------------------------------- AUTORE: 278 DATA :20/10/2006 - 15:47:41 ---------------------------------------- Ciao, non è sempre facile venire incontro a questi problemi, la causa può dipendere da un sacco di cose, oltretutto non è possibile per chi non ha l'hardware ripetere l'esempio.. Ma anche solo aprire il VI, dato che usi le DaqMX, non tutti possono averle installate nel PC, di conseguenza non vengono caricate. quindi, provo un pò ad indovinare... Il motivo per cui l'onda sinuosoidale si "smussa" nel semiperiodo positivo è che supera la massima ampiezza misurabile dal daq. Se il segnale in ingresso supera i 10Vpp l'unica soluzione è inserire nella catena d'acquisizione un circuito di condizionamento che riporti la tensione da misurare a valori compatibili per la scheda daq che stai utilizzando. Un'altra "ipotesi" è che ci sia una leggera tensione di offset che ti fa "traslare" il segnale oltre il + 10V, di conseguenza si verifica la perdita dei campioni oltre il limite fisico del DAQ. ---------------------------------------- AUTORE: 1533 DATA :20/10/2006 - 16:04:38 ---------------------------------------- si hai ragione il problema era legato alla tensione max che la scheda poteva acquisire \":)\" tnx \":)\" Come ho scritto su avrei un altro problemino... \":(\" vorrei visualizzare il mio segnale triggerato dal punto in cui inizia il trigger fino alad N=500 campioni. Ho pensato allora di utilizzare un array subset che ha 3 parametri in ingresso: 1-in array gli ho inviato il segnale acqusito che ho vettorizzato precedentemente con un index array. 2-in index gli ho inviato il segnale in uscita del trigger 3-in lenght avevo pensato di inviare il prodotto tra il numero N=frequenza di campionamento / frequenza del segnale e il numero di periodi da visualizzare... Ebbene anche in questo caso mi appare una cosa strana \":|\" in pratica ogni tanto il segnale sul grafico è come se si spingesse verso sinistra...dal momento che ero interessato a capire il perchè ho posto una sonda sull'uscita del trigger e ho notato che questo fenomeno dello spostamento a sinistra si verificava ogni volta che la probe arrivava a zero...ovviamente non ho capito il xkè \":(\" ---------------------------------------- ================================================================================ FFT ================================================================================ AUTORE: 1533 DATA :20/10/2006 - 10:21:26 ---------------------------------------- Dovrei effettuare un calcolo della fft sul periodo. Tutti i blocchetti che il labview mette a disposizione però non sembrano avere un parametro in ingresso per i campioni. Avete suggerimenti? \":cry:\" ---------------------------------------- AUTORE: 1533 DATA :20/10/2006 - 13:29:25 ---------------------------------------- nessuno sa spiegarmi come funziona il blocchetto FFT in labview?e quale fa al mio caso? \":|\" ---------------------------------------- AUTORE: 1241 DATA :20/10/2006 - 13:35:18 ---------------------------------------- cosa intendi per fft sul periodo? la fft ti trova le frequenze di un segnale, il periodo è semplicemente l'inverso della frequenza del segnale ---------------------------------------- AUTORE: 384 DATA :20/10/2006 - 15:09:17 ---------------------------------------- Se è necessario operare su dati organizzati in modo specifico, molto spesso conviene preparare i dati PRIMA di darli in pasto all'elaborazione. Lo si può fare acquisendo i dati direttamente come andranno elaborati, oppure acquisendone tanti, mettendoli in un buffer da dove poi si vanno a prendere a "spezzoni" come si vuole. Inoltre si può sfruttare il parallelismo "intrinseco" di LabView ed i suoi meccanismi di comunicazione (e.g., le code) per facilmente implementare una struttura "produttore/consumatore": un loop acquisisce dati (produttore), un'altro li elabora (consumatore). Guardate qui: http://zone.ni.com/devzone/cda/tut/p/id/3023 http://zone.ni.com/devzone/cda/epd/p/id/1977 ---------------------------------------- AUTORE: 1533 DATA :20/10/2006 - 15:50:44 ---------------------------------------- Allora sto sempre lavorando su un segnale che acquisisco da function generator ora quello che voglio fare è la FFT del segnale che ho impostato a frequenza 50Hz con frequenza di campionamento 5kHz. Se uso il blocchettino già predefinito per la FFT non so xkè ma mi trovo con l'ampiezza del segnale (ho impostato il peak non l'RMS) ma non con la frequenza. La fondamentale ce l'ho a 0.01 che (sarà un caso??) è proprio pari a 1/100 ovvero 1/N=1/(5k/50) .... mentre dovrei visualizzarla a 50Hz... \":(\" Cosa ancora + strana è che se faccio le stesse operazioni su un Waveform Generator di labview questo problema non si pone \":o\" cioè la frequenza sul grafo dell'FFT si muove man mano che faccio commutare la frequenza del segnale originario... \":o\" Perchè sul segnale che acquisisco non me lo fa?ho pensato anche di cambiare i parametri interni al grafo ma ovviamente appena cambio i parametri della funzione cambia tutto \":cry:\" ---------------------------------------- AUTORE: 384 DATA :20/10/2006 - 16:10:42 ---------------------------------------- La tua descrizione mi fa pensare che hai dimenticato di impostare la freq. di campionamento (cioè, il dt) sulla waveform oppure sul blocco FFT. ---------------------------------------- AUTORE: 645 DATA :20/10/2006 - 16:14:38 ---------------------------------------- Scusa io non ho capito una cosa: stai acquisendo il segnale dall'esterno (prodotto con un generatore di funzioni) e il blocco FFT ti restituisce un grafico con frequenza fondamentale sbagliata. Allora hai sostituito il segnale esterno con un segnale prodotto dai blocchi LabView e tutto funziona? ---------------------------------------- AUTORE: 1533 DATA :20/10/2006 - 16:25:04 ---------------------------------------- [quote="gyc":1dqr1ru6]La tua descrizione mi fa pensare che hai dimenticato di impostare la freq. di campionamento (cioè, il dt) sulla waveform oppure sul blocco FFT.[/quote:1dqr1ru6] ehm come si imposta la frequenza di campionamento sul blocco FFT? \":oops:\" io ora sto usando lo spectral measurements che ha in ingresso il signal ed in uscita il FFT peak te quale mi consigli di usare? [quote:1dqr1ru6]Allora hai sostituito il segnale esterno con un segnale prodotto dai blocchi LabView e tutto funziona?[/quote:1dqr1ru6] esattamente ho rifatto un circuito ex novo con i blocchetti di labview per la generazione del segnale e funziona \":|\" ---------------------------------------- AUTORE: 645 DATA :20/10/2006 - 16:42:06 ---------------------------------------- Fai una prova volante: al segnale in ingresso (dal generatore di funzione) collega il blocco FFT Express (nella paletta degli Express) e guarda se il problema della frequenza fondamentale rimane o viene risolto. ---------------------------------------- AUTORE: 384 DATA :20/10/2006 - 16:42:58 ---------------------------------------- Usando lo spectral Measurements, imagino che tu gli butti dentro l'array di double puro, vero? Il blocco si incarica de fare tutte le conversioni dati necessarie. Peccato che così facendo non c'è l'informazione sulla frequenza di campionamento! Dovresti aquisire il tuo segnale come "waveform" ed allora il problema si risolve in automatico. Alternative: 1)FFT Spectrum (Mag-Phase).vi Ha in ingresso una waveform. La puoi costruire tu a partire dal tuo array dati e visto che conosci la Fs fai dt=1/Fs e t0=zero. 2)Amplitude and Phase Spectrum.vi Riceve l'array e il valore df (dt=1/Fs) Apri l'help di LabView, cerca FFT e clicca sulla voce "LabVIEW Analysis Concepts" che trovi in verde in mezzo al testo. Se non si apre nulla, cerca il file "analcon.pdf" nella directory 'manuals' di LabView e vai al capitolo 4. C'è una trattazione veloce con tutto l'essenziale sulla FFT. ---------------------------------------- AUTORE: 384 DATA :20/10/2006 - 16:44:47 ---------------------------------------- Scusate, piccolo errore di battittura \":oops:\" : 2)Amplitude and Phase Spectrum.vi Riceve l'array e il valore [b:32xxkzch]dt[/b:32xxkzch] (dt=1/Fs) ---------------------------------------- AUTORE: 1533 DATA :20/10/2006 - 18:02:26 ---------------------------------------- [quote="gyc":3kfl9gi5] Alternative: 1)FFT Spectrum (Mag-Phase).vi Ha in ingresso una waveform. La puoi costruire tu a partire dal tuo array dati e visto che conosci la Fs fai dt=1/Fs e t0=zero. 2)Amplitude and Phase Spectrum.vi Riceve l'array e il valore df (dt=1/Fs) [/quote:3kfl9gi5] \":oops:\" ehm non ho capito \":oops:\" puoi farmi un esempio pratico?magari su circuito? grazie per la tua disponibilità \":mrgreen:\" sei stato davvero molto gentile ---------------------------------------- AUTORE: 384 DATA :22/10/2006 - 18:15:50 ---------------------------------------- Ecco una illustrazione. Comunque, carca FFT negli esempi di labview; fra quelli che esistono, probabilmente troverai addirittura uno che potrai modificare per fare al caso tuo. ---------------------------------------- AUTORE: 1533 DATA :23/10/2006 - 10:24:33 ---------------------------------------- ok domani la provo perchè oggi sono a casa senza labview \":)\" ti ringrazio e mi scuso ancora per il disturbo che ti ho arrecato ---------------------------------------- ================================================================================ Salvataggio dati in file ================================================================================ AUTORE: 1319 DATA :20/10/2006 - 13:09:02 ---------------------------------------- Ciao Vi sottopongo un nuovo problema. Ho il mio ciclo while nel quale acquisisco continuativamente i dati dai miei sensori e ne visualizzo la media sui relativi grafici. Vorrei iniziare salvare i dati premendo un pulsante nel mio front panel e vorrei che il salvataggio si interrompesse quando premo nuovamente lo stesso pulsante. Sopra ciascuna colonna contenente un diverso tipo di file vorrei un intestazione (data, ora, pressione1...). Questo mi blocca... Sapete darmi una mano? Grazie mille ---------------------------------------- AUTORE: 1030 DATA :20/10/2006 - 13:20:19 ---------------------------------------- Ciao una soluzione semplice può essere quella di inserire un case True/false dentro il ciclo while d'acquisizione comandato dal pulsante salva/non salva. Nel case true dovrai inserire la funzione di scrittura su file "write to file". Se hai bisogno di un'intestazione puoi utilizzare 2 volte in cascata la funzione write scrivendo prima l'header e poi i dati acquisiti. Il vi di lettura dei file che crei dovrà tenere conto di come crei il file e fare esattamente le operazioni inverse di lettura header e lettura dati. Prova a dare un'occhiata all'help delle funzioni e anche agli examples che LV ti mette a disposizione. ciao ciao ---------------------------------------- AUTORE: 1319 DATA :20/10/2006 - 13:25:41 ---------------------------------------- Ciao Io vorrei creare file che dopo siano apribili con excel e non con altri VI di LV. Inoltre, facendo come dici te, non si alternano sempre una riga di intestazioni con una riga di valori e cos' via? Grazie mille! ---------------------------------------- AUTORE: 1241 DATA :20/10/2006 - 13:39:43 ---------------------------------------- apri-file, poi ciclo while, all'esterno del ciclo un altro blocco di write, infine chiudi-file io ho un vi abbastanza elaborato che fa questo, mi crea 6 spreadsheet file per ogni canale alla pressione del tasto, poi in un altro vi, riapro i 6 files, ne estraggo il contenuto e lo metto in un unico file con intestazioni ecc., infine i 6 files vengono automaticamente cancellati ---------------------------------------- AUTORE: 1319 DATA :20/10/2006 - 19:37:30 ---------------------------------------- Ciao Ma se voglio fare direttamente le intestazioni nel spreadsheet come faccio? Grazie ancora ---------------------------------------- AUTORE: 1241 DATA :21/10/2006 - 09:29:01 ---------------------------------------- dunque tu devi scrivere un spreadsheet file per l'acquisizione, quindi ti serve un write to file all'interno di un while loop. all'inizio del while fai open or create, poi gli metti il write con l'intestazione poi un read from file, il text in uscita entra nel while e a quello gli "appendi" le stringhe del blocco di write al'interno del while loop, poi all'uscita del while chiudi il file prova così ---------------------------------------- AUTORE: 384 DATA :21/10/2006 - 16:37:15 ---------------------------------------- Quando mi serve una cosa del genere, prima del'apertura del file verifico se esiste. Se già esiste, lo apro e basta; se invece non esiste ancora lo apro e ci scrivo subito l'intestazione. ---------------------------------------- AUTORE: 1319 DATA :23/10/2006 - 12:16:37 ---------------------------------------- Ciao ragazzi Questo dubbio ce l'ho fatta a risolverlo da solo, esattamente come volevo io. Allego il VI, così potete farvi un' idea di quello che avevo in mente e della soluzione adottata per saltarci fuori. Grazie comunque per le risposte ---------------------------------------- AUTORE: 1157 DATA :02/02/2007 - 19:20:59 ---------------------------------------- ciao maverick, potresti allegare la versione in 7.1 di questo VI? Te ne sarei molto grato, grazie luca ---------------------------------------- ================================================================================ compact filedpoint & touch tpc-2006 ================================================================================ AUTORE: 838 DATA :20/10/2006 - 13:42:24 ---------------------------------------- Qualcuno di voi ha esperienza e fatto qualcosa con i nuovi compact filed point cfp-2100 e il nuov touch panel di ni tcp-2006? in max mi son tirato dentro il filedpoint e nel progetto con l'8.2 l'ho inserito per il resto non so più ninete, sopratutto come far comunicrae le due cose in definitiva.... non so da che parte cominciare \":D\" ---------------------------------------- AUTORE: 838 DATA :07/11/2006 - 10:20:07 ---------------------------------------- bene, dopo molte prove concludo che: labview 8.2 non è per niente maturo pda module 8.2 non lo sanno nemmeno quelli della national il tpc-2006 non sanno manco come funziona e pretendono di venderlo il supporto è pessimo, ci sono innumerevoli buchi nel software e nella configurazione. non sanno nemmeno loro come venirne fuori..... voto assoultamente negativo, se immaginavo un susseguirsi di problemi e bug avrei certamente preso altri prodotti di altre marche \":evil:\" ---------------------------------------- AUTORE: 4 DATA :07/11/2006 - 10:39:57 ---------------------------------------- \":lol:\" che mi dici del cFP invece, io non l'ho mai usato ma non mi sembra male... almeno meccanicamante mi sembra migliorato rispetto al FP classico che faceva il famoso "effetto fisarmonica" se era composto da più di 2 moduli ... Ciao ---------------------------------------- AUTORE: 838 DATA :07/11/2006 - 10:49:00 ---------------------------------------- per quello non ho ancora nulla da ridire tranne: appena arrivato aveva un sacco di problemi, non stava online e non andava niente spianato, formattato, reinstallato tutto il software a bordo. ora è stabile per scaricarci l'eseguibile runtime bisogna spianare il cfp, reinstallare tutto, e metterci l'eseguibile se l'eseguibile è già a bordo, labview dice che lo copia ma in realtà non lo sovrascrive... cque sto facendo un banco di collaudo per dei filtri, mo se ci sono dei problemi saltano fuori tutti quanti!!! e il cliente è iper inka perchè sono in ritardo.... ---------------------------------------- AUTORE: 838 DATA :07/11/2006 - 10:50:34 ---------------------------------------- altro problema non da poco nel TPC-2006 tutte le volte che lo spegni perde il supporto alle shared variable, e fino ad ora non mi sanno dare una soluzione... ---------------------------------------- AUTORE: 4 DATA :07/11/2006 - 10:52:20 ---------------------------------------- purtroppo i sw e l'hw dell'ultima ora nel senso di super innovativi, hanno sempre dei problemi. Anche io con la 8.2 stò avendo problemi. si blocca va spesso in crash (10 volte di più della 7.1) e occupa 150MB di RAM contro i 50 della 7.1 Ciao ---------------------------------------- AUTORE: 838 DATA :07/11/2006 - 13:15:12 ---------------------------------------- shared variable sembra risolto. va copiato a mano un cab nel touch panel creando a mano harddisk\wince\config e sbatterglielo dentro ogni volta che il touch parte si autoinstalla il support variable e va ovviamente scritto da nessuna parte e dopo innumerevoli incazzature con l'assistenza per ora l'8.2 mi si pianta 4 volte al giorno, uscendo da tutto e perdendo le modifiche non salvate. devo salvare il lavoro ogni 5 secondi..... per la pesantezza non mi sembra poi tanto peggio del 7.1, a parte appunto la gestione delle shared che per me è a dir poco sconvolgente!! io che giro con 3000 tag mi viene il voltastomaco ogni volta che devo fare delle modifiche e di software furbi che gestistoco tag ce ne sono tanti, bastava copiare un pochino i concetti BASE per l'editing delle variabili..... ---------------------------------------- ================================================================================ recupero dati dal buffer ================================================================================ AUTORE: 1334 DATA :21/10/2006 - 22:26:44 ---------------------------------------- Buongiorno, vorrei sottoporvi un mio problema a cui non riesco a trovare una soluzione. Ho un programma con 10 canali in input, i cui dati vengono salvati con un certo campionamento e con una certa frequenza. Ho bisogno che il salvataggio dei dati cominci ad essere il più veloce possibile oltre un certo punto in quanto devo osservare un fenomeno che accade nel giro di mezzo secondo circa (mentre prima è piuttosto lento), il che comporta una variazione del campionamento e della frequenza nel daqmax. Come trigger ho deciso di utilizzare la lettura di uno di questi canali in input, in quanto, quando il fenomeno avviene, questo comincia ad avere un andamento in discesa. I problemi sono fondamentalmente 2; il primo è questo: poichè è un fenomeno molto veloce, vorrei riuscire a recuperare gli ultimi valori prima che ascatti il trigger (perchè potrebbe essere già troppo tardi); suppongo che ci sia bisogno dell’utilizzo dei dati salvati nel buffer per fare ciò, ma non ho la minima idea di come farlo!! Il secondo è che non riesco ad utilizzare le funzioni di trigger, non capisco quali dati vogliano e cosa restituiscano, ma cmq ho un modo per ovviare al problema in modo non eccezionale ma (forse) efficace. Se però aveste qualche esempio da farmi vedere ve ne sarei riconoscente! Vi ringrazio molto, ale. ---------------------------------------- AUTORE: 645 DATA :22/10/2006 - 10:21:13 ---------------------------------------- Dai un'occhiata su www.ni.com : nel motore di ricerca inserisci "trigger daqmx" per il trigger con le DaqMx e "buffer daqmx" per l'acquisizione con il buffer e le DaqMx. ---------------------------------------- AUTORE: 1334 DATA :23/10/2006 - 17:09:26 ---------------------------------------- ti ringrazio molto! purtroppo sono agli inizi di labview a devo ammettere che sono anche un po impedita, però non riesco a far fare quello che voglio io alle funzioni di trigger che ho trovato, è tutto il giorno che ci sbatto la testa! mi spiego: io devo fare triggerare il segnale uscente da un canale, ma io sto già acquisendo, quando lo faccio, voglio solo aumentare la velocità di acquisizione, e non solo di un canale bensì di tutti e 10. tutto ciò che riesco a fargli fare, invece, è cominciare a salvare, quando scatta il trigger (e anche questo non mi viene bene). ma quello che più mi preme è riuscire a recuperare gli ultimi dati prima che scattasse il trigger, su di quello non riesco a trovare nessun esempio e non so proprio come fare. mi spiace che non riesco a cavarmela da sola consultando il sito e gli esempi, ma a quanto pare la mia mente non ragiona come labview! grazie 1000!!! ---------------------------------------- ================================================================================ Grande dubbio riguardo VI con multichannel task ================================================================================ AUTORE: 1319 DATA :22/10/2006 - 21:43:32 ---------------------------------------- Ciao ragazzi Un nuovo problema mi affligge. Nel mio sistema devo acquisire più segnali analogici. Ho creato per ciascuno un global channel in MAX, dopo li ho riuniti in uno stesso task creato in ambiente LV. Dei valori acquisiti dai sensori mi interessa visualizzare la media su 100 campioni ogni mezzo secondo. Ebbene ho fatto delle prove con il sistema in azione (banco prova per trasmissioni di trattrici agricole) ma le medie visualizzate non mi parevano esatte. Ho quindi ridotto il mio VI lasciando un solo segnale da trattare (per scovare l'errore più agevolmente), ottenendo il VI nominato 'wrong'. Nei miei intenti questo VI dovrebbe crearmi una media diamica su 100 valori letti durante ogni ciclo dalla termocoppia (innanzitutto è vero secondo voi? Cioè, con sampling rate 200 S/s e delay time del ciclo di 0.5 sec ottengo la media desiderata con la funzione 'mean'?) ma solo il primo valore di media che mi visualizza è esatto, tutti quelli dopo sono errati, coerenti fra loro ma errati. (es. se il valore di media corretto è 50°, tale valore appare solo nella prima iterazione del ciclo mentre in tutte quelle conseguenti appaiono valori che si aggirano sui 30°). Ma che diavolo... Tuttavia se modifico il programma come nella versione 'right' ottengo sempre dei valori di temperatura media corretti. Non riesco a capire... Qualche suggerimento? Grazie a tutti! ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 09:53:06 ---------------------------------------- hai controllato che i dati non mediati siano corretti, numero di campioni e valori e che non si siano errori nei blocchetti di acq? Ciao ---------------------------------------- ================================================================================ Compatibilità schede con Taditional DAQ e DAQ-mx ================================================================================ AUTORE: 645 DATA :24/10/2006 - 10:20:44 ---------------------------------------- All'indirizzo http://www.ni.com/support/daq/versions_pci_pxi.htm si possono trovare le tabelle di compatibilità tra schede National e software DAQ (Traditional DAQ e DAQ-mx). Può essere utile... \":o\" ---------------------------------------- ================================================================================ chiusura finestre ================================================================================ AUTORE: 1520 DATA :24/10/2006 - 11:33:52 ---------------------------------------- Salve a tutti, volevo chierdere se qualcuno sa come si possa gestire la chiusura di una finestra da parte dell'utente. E' possibile generare un evento registrato in qualche modo in un VI chiamante, magari? Grazie in anticipo. Mr. ---------------------------------------- AUTORE: 645 DATA :24/10/2006 - 12:15:54 ---------------------------------------- Con l'Event Structure puoi gestire la chiusura della finestra. Puoi guardare http://zone.ni.com/reference/en-XX/help ... el_closeq/ come punto di partenza per documentazione sulla gestione degli eventi. ---------------------------------------- AUTORE: 1520 DATA :24/10/2006 - 13:13:17 ---------------------------------------- si, grazie botolo! avevo appena risolto. Quello che non sapevo era che l'evento di chiusura poteva essere mascherato al sistema operativo e gestito direttamente anche solo dall'event case. Mr. ---------------------------------------- ================================================================================ ALGORITMO DI SERIOUS ================================================================================ AUTORE: 1220 DATA :24/10/2006 - 13:27:33 ---------------------------------------- Ciao,qualcuno a mai sentito parlare dell'algoritmo di serious?è un algoritmo che serve per calcolare il determinante di una matrice...dovrei fare questo programma per calcolare il determinante di una matrice con il turbo pascal...sono un po in difficoltà perche in turbo pascal letta la matrice,poi crea un'altra procedura dove faccio la matrice estesa e poi non so come strutturare la procedura del calcolo del determinante....che sarebbe l'algoritmo di serious....qualkuno mi puo dare una mano?grazie..... ciao.... ---------------------------------------- AUTORE: 927 DATA :25/10/2006 - 13:26:38 ---------------------------------------- A parte che questo è il forum di Labview... \":roll:\" Non ho mai sentito nominare quell'algoritmo e non sono il solo, guarda un po' qua: http://it.wikipedia.org/wiki/Determinante DEVI usare Serious per motivi didattici? Sennò mi pare che in informatica si usi di solito Gauss. ---------------------------------------- AUTORE: 1528 DATA :25/10/2006 - 20:30:48 ---------------------------------------- Ma parlavi della regola di Sarrus??? ---------------------------------------- ================================================================================ daqmx read multisamples vs read 1 sample on demand ================================================================================ AUTORE: 1241 DATA :24/10/2006 - 14:45:45 ---------------------------------------- Ciao ragazzi ho questo problema urgente: da un'acquisizione dati leggo da un AI task 6 waveforms per i 6 canali del task, devo acquisire però anche dei samples da un encoder lineare. ho visto che riesco a visualizzare i dati dell'encoder solo con l'opzione 1 sample on demand mentre se faccio un'acquisizione bufferizzata non riesco a visualizzare nessun valore. i dati dell'encoder vanno messi in relazione (con alcune operazioni matematiche) con le waveforms che acquisisco, ma io dall'encoder ottengo 1 numero mentre per gli altri canali un array, ad ogni ripetizione del ciclo while come soluzione ho pensato di inserire con uno shift register i samples dell'encoder in un array, ma alla fine dell'acquisizione non ottengo un numero di samples inferiore rispetto agli altri canali? avete qualche idea a proposito? vi ringrazio come al solito per l'attenzione che ponete ai miei quesiti ---------------------------------------- AUTORE: 4 DATA :26/10/2006 - 12:01:10 ---------------------------------------- non ho capito perchè non funziona l'acquisizione bufferizzata dell'encoder. In ogni caso il problema è che stai acquisendo segnali a frequenze di campionamento diverse quindi non potrai mai avere lo stesso numero di valori tra canali analogici ed encoder. Ciao ---------------------------------------- AUTORE: 1241 DATA :26/10/2006 - 15:09:51 ---------------------------------------- ciao, per fortuna qualcuno ha risposto. a dire il vero non so neanche io perchè non funzioni, forse la frequenza con cui vengono emessi i segnali dall'encoder è troppo bassa. detto questo, ho necessità di riempire il gap ,in termini di samples, esistente tra gli AI e l'encoder, stavo pensando di realizzare un time loop separato per l'encoder e i dargli una frequenza di ripetizione maggiore rispetto a quello della lettura degli AI. cosa ne pensi? ---------------------------------------- ================================================================================ Gestire la velocità di un motore in continua con PWM ================================================================================ AUTORE: 1546 DATA :24/10/2006 - 14:51:22 ---------------------------------------- Ecco il quesito: Con una PWM,realizzata in labview,si varia la velocità di un motore in continua collegato al PIN n°2 della porta parallela,con le dovute osservazioni. La domanda che vi pongo è questa... Come si realizza questa PWM? Premetto che vorrei realizzarlo con uno slide(quando l'indicatore è in alto da la max velocità al motore ,e quando e giu lo fa andare lentamente). Aspetto consigli. Ciau a tutti \":D\" ---------------------------------------- AUTORE: 645 DATA :24/10/2006 - 15:16:23 ---------------------------------------- Puoi usare il blocco di generazione dell'onda quadra collegando un controllo (slide) al morsetto del duty cicle. ---------------------------------------- AUTORE: 1546 DATA :24/10/2006 - 15:42:39 ---------------------------------------- Provato ma nulla....In pratica rimane sempre a girare anke quando cambio l'address della porta LPT \":|\" \":|\" \":|\" In pratica sono andato su [b:3k97dvo4]Block Diagram | Input | Simulate Sig |[/b:3k97dvo4] -> Poi ho selezionato square come tipo d'onda... Ho preso la porta parallela ( Out-Port ) e su address ho messo un controllo numerico,facendo click col destro del mouse e facendo "create control" e ho messo la predefinita 888 (floating point) Successivamente ho messo lo slide come mi ha suggerito lei sul duty cycle del "[b:3k97dvo4]Simulate sig[/b:3k97dvo4]" e l'uscita [b:3k97dvo4](Square)[/b:3k97dvo4] l'ho portata al "[b:3k97dvo4]Write value[/b:3k97dvo4]" della LPT. Adesso nn so il perchè ma ho il presentimento che ho sbagliato proprio alla fine.... \":?\" \":?\" \":?\" \":|\" Ci sono altre modalità di generazione di una PWM variabile? ---------------------------------------- AUTORE: 645 DATA :24/10/2006 - 15:50:43 ---------------------------------------- Hai inserito dei cicli? Puoi postare un'immagine del Block Diagram del VI? E mi raccomando... dammi del tu! ---------------------------------------- AUTORE: 1546 DATA :24/10/2006 - 15:56:25 ---------------------------------------- D'accordo \":)\" Ti darò del tu \":D\" \":D\" \":D\" . Oookk torniamo a noi. Ecco un'immagine del block diagram: [img:2p0cfk4r]http://img190.imageshack.us/img190/8204/pwmun4.jpg[/img:2p0cfk4r] PS:Cosa intendi per cicli? ---------------------------------------- AUTORE: 247 DATA :24/10/2006 - 16:16:37 ---------------------------------------- Ciao, [quote:9udtxnhu]Provato ma nulla....In pratica rimane sempre a girare anke quando cambio l'address della porta LPT Neutral Neutral Neutral [/quote:9udtxnhu] A che pin della parallela hai collegato il motore? Alcuni pin hanno sempre livello logico alto in idle quindi potresti aver collegato uno di questi al tuo motore. [quote:9udtxnhu]Ho preso la porta parallela ( Out-Port ) e su address ho messo un controllo numerico,facendo click col destro del mouse e facendo "create control" e ho messo la predefinita 888 (floating point) [/quote:9udtxnhu] Come hai scelto l'indirizzo della porta? Devi assicurarti che sia lo stesso assegnatogli dal tuo sistema operativo. Inoltre il tipo del dato è I16, non floating point, lo vedi dal colore blu e proprio dalla scritta I16 presente sul controllo. [quote:9udtxnhu]Successivamente ho messo lo slide come mi ha suggerito lei sul duty cycle del "Simulate sig" e l'uscita (Square) l'ho portata al "Write value" della LPT. [/quote:9udtxnhu] Hai settato lo slide per assumere solo valori compresi tra zero e uno? Un duty cicle maggiore di uno infatti non ha senso e viene interpretato come uno quindi motore al massimo. A parte questo il tuo VI non ha temporizzazione, non funzionerà mai così com'è, devi inviare alla parallela sequenze di uno e zero con frequenza dell'uno proporzionale alla velocità desiderata del motore, in modo da realizzare il PWM... BYE. ---------------------------------------- AUTORE: 645 DATA :24/10/2006 - 16:18:56 ---------------------------------------- Guarda http://zone.ni.com/reference/en-XX/help ... /out_port/ se trovi qualche info sul blocco OutPort e http://digital.ni.com/public.nsf/allkb/ ... f3007ac765 per la porta parallela. Ma fai girare il VI con il Run Continuosly? ---------------------------------------- AUTORE: 1546 DATA :24/10/2006 - 16:28:14 ---------------------------------------- Dato che con il generatore d'onda quadra nn funzica...Come faccio a realizzarlo con gli stati logici 0 ed 1 con le temporizzazioni? ---------------------------------------- AUTORE: 1546 DATA :24/10/2006 - 16:33:23 ---------------------------------------- [quote:1p3ttc5m]Ma fai girare il VI con il Run Continuosly?[/quote:1p3ttc5m] Yes! ---------------------------------------- AUTORE: 247 DATA :24/10/2006 - 17:08:05 ---------------------------------------- Ciao, prova il Vi che ti allego, sostituisci l'indicatore 0,1 come set per il pin della parallela collegato al motore, dovrebbe fare da PWM molto casalingo con tempo di duty 1 sec. e risoluzione 10ms, puoi anche tentare risoluzioni più spinte ma in Win non significherebbe granchè. BYE. ---------------------------------------- AUTORE: 1546 DATA :24/10/2006 - 19:59:06 ---------------------------------------- Bhe fantastico!!!Funzica di brutto! Un'altra piccola cosa per piacere... Al posto di 10ms nn si possono mettere circa 0,1? ---------------------------------------- AUTORE: 1546 DATA :24/10/2006 - 20:09:30 ---------------------------------------- Ok ok risolto! \":)\" Vi ringrazio a tutti infinitamente x l'aiuto! Siete grandi e mooolto pazienti coi niubbi \":)\" ---------------------------------------- ================================================================================ Frequenze negli zeri della parte immaginaria ================================================================================ AUTORE: 1545 DATA :24/10/2006 - 15:12:51 ---------------------------------------- Ciao ragazzi,il mio problema è ke devo fare un programma in labview ke mi acquisisca i dati da un network analyzer e mi fornisca le frequenze in corrispondenza dei passaggi per lo zero della parte immaginaria dei parametri di diffusione(Scattering)della cavità ke misuro.Qualcuno ha qualche idea o suggerimento? Grazie Stefy ---------------------------------------- AUTORE: 645 DATA :24/10/2006 - 15:20:53 ---------------------------------------- Puoi fare un esempio del formato dei dati acquisiti? O almeno che tipo di network analyzer usi? ---------------------------------------- AUTORE: 1545 DATA :24/10/2006 - 15:24:18 ---------------------------------------- Acquisisco i parametri di scattering della cavità in forma grafica utilizzando un network analyzer HP 8720 ES. Grazie per l'interesse Stefy ---------------------------------------- AUTORE: 247 DATA :24/10/2006 - 15:29:19 ---------------------------------------- Ciao, prova a spiegarti meglio, devi dettagliare meglio qual'è il sistema di misura che utilizzi e soprattutto come ti colleghi ad esso per prelevarne i dati; illustra meglio anche il fenomeno che vuoi analizzare, se l'acquisizione e l'elaborazione sono online oppure a posteriori, che sensori utilizzi e tutto ciò che può essere utile ad inquadrare il problema: ad esempio non capisco come tu possa dire di volere "le frequenze in corrispondenza dei passaggi per lo zero della parte immaginaria dei parametri di diffusione" dato che se sono parametri di regola sono fissati all'inizio e non variano durante la misura...quindi non hanno un'attraversamento dello zero! BYE. ---------------------------------------- AUTORE: 1545 DATA :24/10/2006 - 15:53:56 ---------------------------------------- ok, uso il network per eccitare da una porta con un'antennina una cavità risonante e dall'altra porta prelevo la risposta in frequenza della cavità stessa in termini di parametri di scattering ke sono i coefficienti di trasmissione e riflessione al variare della frequenza(li devo vedere su un grafico del pannello frontale ma come parte immaginaria);infatti essi hanno dei picchi alle frequenze di risonanza e dei passaggi x lo zero.Il network è collegato poi ad un macintosh,x eseguire le istruzioni da remoto on line,mettendo nella VI un istruzione VISA open con l'indirizzo GPIB dello strumento.Quindi con labview tramite un opportuno subVI acquisisco una serie di valori del coefficiente di trasmissione, man mano ke faccio entrare nella cavità l'antennina di eccitazione,sotto forma di vettore.Quindi mi serve un subVI in questo vettore trovi le posizioni degli zeri e in corrispondenza di esse mi dia le frequenze.Spero di essere stata + chiara. Grazie Stefy ---------------------------------------- AUTORE: 247 DATA :24/10/2006 - 16:32:00 ---------------------------------------- Ciao, Comincio a capire qualcosa \";-)\"! ..forse... Quindi hai un "vettore" di curve che rappresentano la risposta in frequenza della cavità in esame al variare della posizione della sonda in ingresso che provoca l'eccitazione e vuoi ricavare da ogni curva i punti di zero(sono punti di zero o passaggi per lo zero come scrivi tu?), che penso corrispondano alle frequenze più o meno completamente assorbite/non trasmesse dalla cavità, ho capito male? In effetti non sò a cosa tu ti riferisca parlando della parte immaginaria della misura.. Alla fine quindi tu dovresti solamente ricavare le frequenze alle quali si presenta uno zero per tutte le tue curve no? BYE. ---------------------------------------- AUTORE: 247 DATA :08/11/2006 - 14:02:26 ---------------------------------------- Ciao, ricostruisco sotto la discussione di questo topic che risultava purtroppo sparsa in più post. BYE. [quote:3s96ew9g][i:3s96ew9g][b:3s96ew9g]stefy[/b:3s96ew9g][/i:3s96ew9g] ha scritto: ragazzi sono avvilita(sono alle prime armi con labview),nessuno mi da indicazioni x il mio problema eppure c'era apollon ke aveva afferrato la questione(mi potrebbe dare ancora un pò retta?).Lo so forse "tradurla" in labview è una pazzia ma mi sono impuntata e mi servirebbe molto.So ke mi basterebbe qualche input da parte vostra x potercela fare. Crying or Very sad Scusate se insisto e grazie già da ora x gli eventuali aiuti!! Stefy[/quote:3s96ew9g] [quote:3s96ew9g][i:3s96ew9g][b:3s96ew9g]stefy[/b:3s96ew9g][/i:3s96ew9g] ha scritto: ciao ragazzi sono sempre io, e ancora nn ho risolto il mio problema:uso il network per eccitare da una porta con un'antennina una cavità risonante e dall'altra porta prelevo la risposta in frequenza della cavità stessa in termini di parametri di scattering ke sono i coefficienti di trasmissione e riflessione al variare della frequenza(li devo vedere su un grafico del pannello frontale ma come parte immaginaria);infatti essi hanno dei picchi alle frequenze di risonanza e dei passaggi x lo zero.Il network è collegato poi ad un macintosh,x eseguire le istruzioni da remoto on line,mettendo nella VI un istruzione VISA open con l'indirizzo GPIB dello strumento.Quindi con labview tramite un opportuno subVI acquisisco una serie di valori del coefficiente di trasmissione, man mano ke faccio entrare nella cavità l'antennina di eccitazione,sotto forma di vettore.Quindi mi serve un subVI in questo vettore trovi le posizioni degli zeri e in corrispondenza di esse mi dia le frequenze. A qualcuno viene in mente qualcosa?HELP! Stefy[/quote:3s96ew9g] [quote:3s96ew9g][i:3s96ew9g][b:3s96ew9g]apollon[/b:3s96ew9g][/i:3s96ew9g] ha scritto: Ciao, ...con tutta la simpatia che nutriamo spudoratamente;-) per gli utenti di sesso femminile non credo proprio che le tue richieste sarebbero rimaste senza risposta!!! Infatti io e Magic abbiamo tentato di seguirti, ma se ricontrolli la prima discussione che hai iniziato, alla fine sei tu che non hai più risposto alla mia domanda e non hai dato conferma alle mie supposizioni...solo dall'assenza di una tua risposta è dipeso il disinteresse nei confronti della tua questione... Cmq sia preambolo troppo lungo Wink Direi di riprendere la tua prima discussione linkata sopra(rispondi!) e pace fatta! Very Happy BYE.[/quote:3s96ew9g] [quote:3s96ew9g][i:3s96ew9g][b:3s96ew9g]stefy[/b:3s96ew9g][/i:3s96ew9g] ha scritto: Hai ragione Embarassed pardon,la verità è ke nn sempre posso collegarmi a questo sito,qui a lavoro mi "uccidono"di cose diverse da fare. spero davvero ke pace sia fatta Very Happy . Cmq riguardo il probl labview hai compreso a pieno:"Alla fine quindi tu dovresti solamente ricavare le frequenze alle quali si presenta uno zero per tutte le tue curve no? ".Per qnt riguarda il mio discorso sulla parte immaginaria significa ke il formato di rappresentazione delle curve sul network deve essere la parte immaginaria(sono possibili anke rappresentaz in log,in parte reale,in carta di smith ecc.) Grazie ancora x il vostro interessamento!!!!! Stefy[/quote:3s96ew9g] [quote:3s96ew9g][i:3s96ew9g][b:3s96ew9g]gyc[/b:3s96ew9g][/i:3s96ew9g] ha scritto: Da quanto mi sembra di aver capito, ricavi dal tuo network analyser dei coefficienti di trasmissione che sono una funzione della frequenza. Se è cosí, oltre all'array di coefficienti, devi anche avere il corrispondente array delle frequenze che ne hanno dato origine - in modo da avere 2 array: uno con la variabile indipendente, l'altro con la variabile dipendente. Per trovare gli zeri, devi solo scorrere l'array della variabile dipendente (icoefficienti). Trovato un valore nullo, oppure "abbastanza vicino" allo zero, con il suo indice ricuperi la frequanza dal'altro array. Per trovare i picchi, ci sono dei blocchi di LabView. Questi danno in uscita non solo il valore del picco ma anche l'indice. Con questo puoi ricuperare la frequenza con lo stesso metodo di prima. Ti consiglio di leggere con attenzione l'help di LabView su questi blocchi perchè gli "indici"in output hanno bisogno di qualche manipolazione prima di essere utilizzati.[/quote:3s96ew9g] [quote:3s96ew9g][i:3s96ew9g][b:3s96ew9g]stefy[/b:3s96ew9g][/i:3s96ew9g] ha scritto: Il probl è ke l'array dei coefficienti e delle frequenze mi vanno poi in ingresso ad un nuovo subVI che ricerca tre massimi relativi all'interno dei dati acquisiti e le loro posizioni;il valore del massimo viene inserito in un apposito vettore,mentre attraverso la sua posizione si individua la relativa frequenza ke viene registrata in un altro vettore.Alla fine di un ciclo for in tale subVI ricavo un vettore con le sole frequenze ai massimi che mi viene immesso in una matrice ke contiene tutte le frequenze acquisite (corrisponednti ai massimi) ke viene fornito automaticamente.Il fatto è ke dovrei avere un subVI ke mi fa lo stesso ma dandomi la matrice con le frequenze nei punti di zero automaticamente(purtroppo nn posso solo andare direttam a leggere i valori delle frequenze dall'array ma me le deve dare il programma:èquesto lo scopo!)[/quote:3s96ew9g] X stefy: Continuiamo la discussione in questo thread, qui sotto. Cheers \":D\" BYE. ---------------------------------------- AUTORE: 1545 DATA :08/11/2006 - 16:16:52 ---------------------------------------- [quote="apollon":3lcnu826]Ciao, ricostruisco sotto la discussione di questo topic che risultava purtroppo sparsa in più post. BYE. ...... X stefy: Continuiamo la discussione in questo thread, qui sotto. Cheers \":D\" BYE.[/quote:3lcnu826] ok il riassunto è perfetto,spero ke sia di kiarimento ulteriore! Stefy ---------------------------------------- AUTORE: 247 DATA :08/11/2006 - 22:41:23 ---------------------------------------- Ciao, ok. lets get it deeper!! 1- Per ogni posizione dell'antenna, che inserisci man mano nella cavità(n step), ottieni dal network analyzer un'array di coefficienti di trasmissione correlato ad un'array di frequenze? Quindi alla fine hai n coppie di array coefficiente-frequenze? Tipo: posizione 1: frequenze[], coefficienti[] posizione 2: frequenze[], coefficienti[] ... posizione n: frequenze[], coefficienti[] 2- [quote:14nda6aq]mi vanno poi in ingresso ad un nuovo subVI che ricerca tre massimi relativi all'interno dei dati acquisiti e le loro posizioni;il valore del massimo viene inserito in un apposito vettore,[/quote:14nda6aq] Come mai i tre massimi relativi diventano uno solo? Come lo scegli? è quello assoluto visto che poi lo usi per la ricerca della frequenza? Se è così, perchè all'inizio ne cerchi tre? 3-[quote:14nda6aq]mentre attraverso la sua posizione si individua la relativa frequenza ke viene registrata in un altro vettore. Alla fine di un ciclo for in tale subVI ricavo un vettore con le sole frequenze ai massimi che mi viene immesso in una matrice ke contiene tutte le frequenze acquisite (corrisponednti ai massimi)[/quote:14nda6aq] OK, esegui la ricerca della frequenza come dice gyc, ma lo fai per ogni coppia di array(vedi punto 1), ovvero per ogni posizione imposta all'antenna ottieni la frequenza per cui è massimo il coefficiente di trasmissione no? Altrimenti non saprei spiegarmi la presenza del for successivo e soprattutto la presenza di più massimi che vanno a costituirti un'array.. Ma soprattutto potresti riscrivere/spiegarmi la frase "Alla fine di un ciclo for in tale subVI ricavo un vettore con le sole frequenze ai massimi che mi viene immesso in una matrice ke contiene tutte le frequenze acquisite (corrisponednti ai massimi)" non riesco a capirla, mi sembra che si morda la coda da sola..un vettore contenente le frequenze dei massimi che viene immesso in una matrice contenente le frequenze corrispondenti ai massimi...potrebbe andare bene ma come mai ottieni una matrice? Anche validando la supposizione al punto 1 al massimo ottieni un'array/vettore di frequenze corrispondenti ai massimi, non una matrice, fai più esperimenti con cavità differenti? Come mai cambia la dimensione del dato? 4- [quote:14nda6aq]ke viene fornito automaticamente.[/quote:14nda6aq] Holy grail...approccio molto poco "tecnico/informatico" al probema... 5- [quote:14nda6aq]Il fatto è ke dovrei avere un subVI ke mi fa lo stesso ma dandomi la matrice con le frequenze nei punti di zero automaticamente[/quote:14nda6aq] Puoi postare il subVI di cui parli con costanti "sensate" agli ingressi, magari create da dati reali? Crea un'indicatore fittizio collegato ai fili in ingresso al subVI e, se questo non è contenuto in un ciclo, alla fine dell'esecuzione l'indicatore conterrà i dati processati, trasforma gli indicatori in costanti (tasto dx Change to Constant) copia tutto in un VI nuovo e posta facendo i dovuti collegamenti tra le nuove costanti e gli ingressi del subVI... A parte le domande che versione di LabVIEW utilizzi? (per postarti esempi che puoi leggere). BYE. P.S. ..speriamo di farcela!!! \";-)\" Non è sicuramente difficile ma tenta di parlare un pò più "informatichese", di ogni dato indica il tipo, la dimensione, delle strutture non dire "Alla fine di un ciclo for" ma spiega perchè le utilizzi, dettaglia meglio e più precisamente il flusso di dati...le tue spiegazioni sono troppo "grafiche".,;-( Cheers. ---------------------------------------- AUTORE: 1545 DATA :09/11/2006 - 10:01:26 ---------------------------------------- Ora provo a spiegarmi anche con i grafici: -uso labview 6.0 x macintosh -sì,ho n coppie di array coeff-freq -x ogni curva acquisita ho 3 max relativi a 3 frequ come vedi dal front panel(TRECELLEfp) -sì,x ogni posizione dell'antenna ottengo 3 frequ, x le quali è max il coefficiente di trasm.:vedi il vettore e la "FREQ"in uscita al subVI acqd,che vanno in ingresso al subVI staramp(in particolare al ciclo for x la costruzione del cluster grafico con cui si rappresenta la curva acquisita sul pannello frontale).Poi nel successivo subVI calcmax(è questo ke dovrei sostituire visto ke nel programma ke voglio fare nn mi interessano + i max ma le freq nei punti di zero)si ricercano i 3 max relativi all'interno dei dati acquisiti: cioè dopo vari passaggi(vedi ciclo for x es.)ho la strutt.case in cui dal vettore originario dei dati si estrae un sottovett ke poi si invia ad un sottoprogramma della libreria ke individua max a min.I val dei max vengono inseriti in un altro vettore,mentre attraverso le loro posiz si individua la freq ke viene registrata in un ulteriore vettore.Alla fine del ciclo for i 2 nuovi vettori conterranno tutti i max trovati e le freq associate.All'uscita della subVI calcmax si ha il vettore delle freq ke tramite il ciclo for viene immesso in una matrice di 3 righe ke contiene tutte le freq acquisite.Al termine dell'acquisiz totale dal pannello frontale della VI viene schiacciato il pulsante STOP;il ciclo while termina e si kiude il collegam tra PC e network.Ti allego tutti i grafici così è + facile farmi capire anke senza tanto "informatikese"Grazie x la pazienza.Stefy ---------------------------------------- AUTORE: 1545 DATA :09/11/2006 - 10:04:11 ---------------------------------------- Scusate avevo dimenticato di allegare altri file;eccoli!!!!!!poi mi dite se è o nn è una mission impossible! \":o\" Stefy ---------------------------------------- AUTORE: 247 DATA :09/11/2006 - 11:16:08 ---------------------------------------- Ciao, già molto meglio, grazie alle immagini è tutto più capibile! Appena ho tempo e soluzione mi faccio vivo, altrimenti se qualcuno mi batte sul tempo ben venga. BYE. ---------------------------------------- ================================================================================ Creare dinamicamente controlli ================================================================================ AUTORE: 927 DATA :24/10/2006 - 16:30:40 ---------------------------------------- E' possibile creare dinamicamente a run-time controlli o indicatori? In particolare pensavo di usarlo per allocare dinamicamente delle strutture dati, nel qual caso il controllo mi interesserebbe solo per il suo contenuto. La reference al controllo avrebbe la funzione del "puntatore" nei linguaggi di programmazione tradizionali. O forse la cosa si ottiene creando un intero VI reentrant che contiene il controllo...? ---------------------------------------- AUTORE: 247 DATA :24/10/2006 - 17:13:56 ---------------------------------------- Ciao, Io utilizzerei proprio la seconda possibilità che indichi, preferirei quindi utilizzare subVI reentrant per poter allocare/accedere le varie strutture piuttosto che utilizzare le proprietà dei controlli, ammettendo di poterne creare dinamicamente che eseguono in user thread, potrebbe però essere fattibile anche l'utilizzo di array che contengono le strutture ma dovresti preoccuparti personalmente di mantenerne l'identità e tracciabilità. BYE. ---------------------------------------- AUTORE: 927 DATA :25/10/2006 - 13:06:47 ---------------------------------------- OK, ma non ho capito la risposta alla domanda principale: si può creare dinamicamente un controllo? E se si, come si fa? \":P\" Usare array è quello che faccio di solito, il problema è che diventa pesante quando i dati sono tanti. Per cambiare una virgola devi leggere tutto l'array, indicizzare, poi riscriverlo tutto... naturalmente evitando le condizioni di concorrenza. ---------------------------------------- AUTORE: 4 DATA :25/10/2006 - 13:11:27 ---------------------------------------- [url=http://www.ilvg.it/forum/viewtopic.php?t=271:6i6ojns4]questa[/url:6i6ojns4] discussione ti potrebbe interessare. Ciao ---------------------------------------- AUTORE: 927 DATA :25/10/2006 - 15:35:43 ---------------------------------------- Divagazione: tornando agli array, ho visto che è possibile ottenere la reference a un singolo elemento con la proprietà Array Element. Quindi tramite la proprietà Value si può accedere in lettura/scrittura direttamente al contenuto dell'elemento. In pratica sembrerebbe possibile evitare di leggere/scrivere l'intero array con i soliti problemi di efficienza e concorrenza! Unico intoppo, mi opera sempre sull'ultimo elemento che ho cliccato, e non ho capito come fare a sceglierne un altro (le Selection[] non sembrano funzionare)! Suggerimenti? ---------------------------------------- ================================================================================ Come segnalare a uno scada (OPC) che un VI è running? ================================================================================ AUTORE: 1477 DATA :24/10/2006 - 21:27:20 ---------------------------------------- Sto interfacciando un regolatore fuzzy realizzato con Labview con uno scada (Movicon) tramite OPC e datasocket. Alla fine lo scada fungerà da front panel per un VI che girerà invisibilmente. E' un po' complesso ma ci sono quasi. Mi mancano due cosette però: 1 - come posso segnalare con certezza allo scada che il VI è in run? 2 - tra le altre cose, il VI comanda l'accensione/spegnimento di un motore attraverso un booleano su datasocket. Il problema è che, se per qualche motivo LV esce dalla modalità run, c'è il rischio che il booleano di comando motore rimanga true (lo è per la maggior parte del tempo). Come posso mandarlo sicuramente a false quando si rompe il run? Ho cercato nell'help con VI status e LV status ma non ho trovato nulla. Grazie per l'ascolto. ---------------------------------------- AUTORE: 4 DATA :24/10/2006 - 22:39:10 ---------------------------------------- [quote:3f4uiojg]1 - come posso segnalare con certezza allo scada che il VI è in run?[/quote:3f4uiojg] potresti usare una variabile in modo da simulare un watchdog software, se labview si ferma lo scada deve intercettare che il watchdog non scatta nei tempi richiesti e intraprendere le azioni del caso. [quote:3f4uiojg]2 - tra le altre cose, il VI comanda l'accensione/spegnimento di un motore attraverso un booleano su datasocket. Il problema è che, se per qualche motivo LV esce dalla modalità run, c'è il rischio che il booleano di comando motore rimanga true (lo è per la maggior parte del tempo). Come posso mandarlo sicuramente a false quando si rompe il run? Ho cercato nell'help con VI status e LV status ma non ho trovato nulla. [/quote:3f4uiojg] Come mai il VI dovrebbe uscire dal run? al limite quello che può succedere è che lavbiew vada in crash, non c'è molto da fare a quel punto... o il motore ha un watchdog hardware comandato da labview, si fermerà allo scadere di questo altrimenti sfruttando il metodo della risposta 1, ti accorgi dallo scada che labview è morto e mandia false la variabile di controllo del motore ammesso che tu ne abbia visibilità dallo scada... Ciao ---------------------------------------- AUTORE: 1477 DATA :25/10/2006 - 08:45:55 ---------------------------------------- Ma, Labview non ha una qualche variabile di sistema, o di stato, che sia sicuramente true solo quando un VI è in run? Con tutte le segnalazioni di errore che ci sono, non ne esiste una di "non errore + VI running"? Per il secondo caso, vorrei avere la possibilità di definire con certezza lo stato del bool che comanda il motore (nello scada) potendo scegliere anche fra true o false. Se LV avesse quanto detto al punto precedente, nello scada potrei automaticamente impostare il valore di default scelto per il bool in caso di caduta di LV: possibile che un software con così tante funzionalità manchi di strumenti così semplici come un watch dog? (E di moduli timer, moduli set/reset ecc). Grazie. ---------------------------------------- AUTORE: 4 DATA :25/10/2006 - 15:10:24 ---------------------------------------- [quote:gl5lwj2o] Ma, Labview non ha una qualche variabile di sistema, o di stato, che sia sicuramente true solo quando un VI è in run? Con tutte le segnalazioni di errore che ci sono, non ne esiste una di "non errore + VI running"?[/quote:gl5lwj2o] Se apri un reference del VI che vuoi monitorare puo avere il suo stato dal punto di dvista di LabVIEW è cioe Run, Idle, ecc usando la property "execution.state". Devi poi trovare il modo di comunicare questa info a movicon e ovviamente se LV stesso si blocca il valore non verrà più aggiornato impedendoti di capire in modo esatto in che stato è il tuo VI, la tecnica del WD elimina questo problema. [quote:gl5lwj2o]Per il secondo caso, vorrei avere la possibilità di definire con certezza lo stato del bool che comanda il motore (nello scada) potendo scegliere anche fra true o false. Se LV avesse quanto detto al punto precedente, nello scada potrei automaticamente impostare il valore di default scelto per il bool in caso di caduta di LV: possibile che un software con così tante funzionalità manchi di strumenti così semplici come un watch dog? (E di moduli timer, moduli set/reset ecc). Grazie.[/quote:gl5lwj2o] Possibilissimo! LabVIEW non è uno scada o un "semplice" software di automazione tipo ladder ma un vero linguaggio di programmazione, se ti serve una funzione che non c'è la puoi sempre costruire. Ciao ---------------------------------------- ================================================================================ semplice programma per lettura di un sensore ================================================================================ AUTORE: 1549 DATA :25/10/2006 - 16:19:45 ---------------------------------------- ciao a tutti, ho da poco iniziato ad utilizzare labview nella versione 8. Sto cercando di creare un programmino semplice che i dati di temperatura da una sonda ( nel mio caso una PT100). Leggendo via internet alcuni tutorial e la guida di labview, mi sembra di aver capito che il primo passo sia quello di immettere nel block diagram la vi DAQ assistant, ma procedendo arrivo al punto in cui selezionando il sensore (RTD) mi dice: " no supported device found". Ora mi chiedo e` la procedura sbagliata o c'e` un problema nel collegamento tra la sonda e labview ? \":?\" ---------------------------------------- AUTORE: 4 DATA :25/10/2006 - 16:21:59 ---------------------------------------- che HW (scheda di acquisizione) hai a disposizione. Ciao ---------------------------------------- AUTORE: 1549 DATA :25/10/2006 - 18:31:13 ---------------------------------------- mi pare sia PCI 4350 ---------------------------------------- ================================================================================ immagine di sfondo ================================================================================ AUTORE: 683 DATA :26/10/2006 - 09:48:49 ---------------------------------------- ciao a tutti, tramite copia e incolla ho messo un immagine sul pannello frontale come faccio a mettera in sececondo piano, in modo da far vedere i controlli? Grazie buona giornata ---------------------------------------- AUTORE: 1030 DATA :26/10/2006 - 09:56:00 ---------------------------------------- ciao attraverso i tasti "move backward", "move forward" ecc che trovi nella barra dei bottoni del front panel (bottone reorder), puoi spostare i controlli in primo o in secondo piano. ciao ciao ---------------------------------------- ================================================================================ MKS 651c, problema comunicazione RS232 ================================================================================ AUTORE: 1168 DATA :26/10/2006 - 10:48:24 ---------------------------------------- Ragassi... ci sto perdendo delle ore e non capisco proprio dove sbaglio... Allora, ho collegato alla RS232 uno strumento (MKS Automatic pressure controller 651c per la cronaca) e se ci parlo con Hyper terminal nessun problema se invio l'end of line di windows (CR +LF, ASCII 10+13). Io gli parlo e lui mi risponde se deve. Invece con LabVIEW non c'e' verso di comunicare e non capisco perchè! Ho connesso un altro PC con hyperterminal in ricezione e quello che riceve è effettivamente quello che voglio sia trasmesso. La configurazione della porta la faccio nel mio VI, quindi il MAX non dovrebbe centrare. mi sbaglio? Il fatto che lo strumento non reagisca con un errore a comandi sbagliati di certo non mi aiuta. Allego il VI di prova in versione 8.0 (la più "retrò" che posso inviare... non commentate lo stile è solo per vedere se funziona la comunazione. Grazie mille e (ormai) buona domenica! ---------------------------------------- AUTORE: 4 DATA :26/10/2006 - 11:50:45 ---------------------------------------- vedo varie cose che potrebbero contribuire a causare il tuo problema. 1 hai il casattere di terminazione abilitato e usi come carattere "0xA = '\ ' = LF" , questo vuol dire che finchè il carattere terminatore non arriva la read non ti dà risultati. 2 non hai nessun tempo di attesa tra write e read non lasci il tempo all'MKS di rispondere 3 usi la read impostata per leggere 100 byte, finchè non hai 100 yte sul butter la read continuerà a non darti dati in uscita 4 non hai nessun sistema di attesa dei dati ne di gestione del timeout, in pratica la read viene chiamata una volta sola e se a trova 100 byte b trova il carattere terminatore allora riporta i dati altrimenti no devi mettere la read in un loop e leggere SOLO i dati che hai sul buffer seriale (hai il conteggio dei byte usando la property Byte At Serial Port) poi ti consiglio di disabilitare la gestione del carattere terminatore e implementarla nel loop in cui c'è la read. Poi è fondamentale implementare un timeout sulla read. Ciao ---------------------------------------- AUTORE: 1168 DATA :26/10/2006 - 13:41:53 ---------------------------------------- Ciao! In effetti ho messo il blocchetto di Read solo per ricordarmi di sviluppare anche quella parte... tutta la gestione era ancora da fare! Ho provato ora con l'esempio advanced serial write/read e funziona... l'unica differenza sono i blocchetti nell'immagine allegata che non ho messo... Inoltre non capisco perchè il VISA write è in un loop. Ciao e grazie ancora. P! ---------------------------------------- AUTORE: 645 DATA :26/10/2006 - 14:12:47 ---------------------------------------- Hai allegato un'immagine? Se sì non è arrivata. Inoltre solo una prova: cambia la costante stringa "End of line" con "Carriage return". A me qualche volta ha dato problemi la prima mentre ha funzionato bene la seconda. ---------------------------------------- AUTORE: 1168 DATA :27/10/2006 - 06:52:59 ---------------------------------------- Mi sono dimenticato l'immagine, anche se Xon/xoff no jnli uso.... misteri... ora anche col "advanced derial writre/read" non funziona... Ci perderò ancora un po'. Ciao P. ---------------------------------------- AUTORE: 1168 DATA :27/10/2006 - 13:07:28 ---------------------------------------- Una cosa strana l'ho capita. Sto sviluppando col portatile attaccato ad una dock station. Se uso la seriale della dock station non funziona, se uso quella del portatile staccandolo dalla dock station, nessun problema.... Mah.... Buona domanica a tutti. Ciao P! ---------------------------------------- ================================================================================ Compressione file binario ================================================================================ AUTORE: 706 DATA :26/10/2006 - 15:33:57 ---------------------------------------- Ciao a tutti, Ho un problema: il mio scopo è quello di riempire raccogliere dati binari che ottengo da uno strumento e vengono immagazzinati in un array che li contiene tutti. In seguito questi devono essere inseriti all'interno di un file (1600 bit alla volta per circa 4000 operazioni) e spediti tramite ftp. Il fatto è che utilizzando il subVI di LabView "Write To I16 File " la dimensione finale del file salvato è di circa 3MB. Ci sono altri subVI che mi permettono sempre di salvare dati binari ma che mi fanno risparmiare in spazio? Utilizzo la versione LabView 7.0. Grazie, Francesco ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 09:49:27 ---------------------------------------- tutte le funzione di "alto livello" per la scrittura dei file in fondo usano la stessa funzione "Write File" potresti provare ad usare direttamente quella ache se non credo che vedrai grossi benefici. Nella versione 8.0 esistono le funzioni per gestire i file zip ma tu sei ancora alla 7 quindi.. come alternativa potresti usare le funzioni gzip che trovi su www.openg.org Ciao ---------------------------------------- ================================================================================ generatore di segnale in LabVIEW ================================================================================ AUTORE: 1552 DATA :27/10/2006 - 09:36:40 ---------------------------------------- salve, sto creando un generatore di segnale per la mia tesi e ho bisogno di sapere se qualcuno sa come fare a simulare la pressione di un pulsante mentre gli altri si alzano automaticamente.Praticamente se premo il pulsante corrispondente ad un onda sinusoidale, i pulsanti corrispondenti alle altre onde(triangolate,quadrata) se già selezionati devono deselezionarsi come nel generatore di segnale analogico. Attendo una risposta e grazie. ---------------------------------------- AUTORE: 4 DATA :27/10/2006 - 11:25:46 ---------------------------------------- ciao le versioni più recenti di labview (se non ricordo male dalla 7.x in poi) hanno il controllo Radio Button che è esattamente quello che ti serve. Ciao ---------------------------------------- AUTORE: 1552 DATA :30/10/2006 - 09:05:06 ---------------------------------------- Salve, grazie per il suggerimento ,ma non fa quello che voglio. Io voglio sapere come poter far a disabilitare un controllo tramita un altro controllo separato dal primo. Grazie , attendo risposte. ---------------------------------------- AUTORE: 645 DATA :30/10/2006 - 09:10:01 ---------------------------------------- Si potrebbe creare una cosina tipo: pulsante con led incorporato. Come comportamento meccanico selezioni quello che mantiene il bottone nello stato di "true" o "false" in modo che se schiacci il pulsante questo rimane schiacciato con il led acceso. Se lo rischiacci il pulsante si alza e il led si spegne. Poi crei una struttura Case (magari con gli eventi) che in base alla pressione di un pulsante setta come "false" tutti gli altri. A questo punto, in base al pulsante selezionato (l'unico su "true") generi il segnale che ti serve. Assomiglia ai generatori da laboratorio che hanno i pulsanti a scatto: la pressione di uno riporta gli altri in stato di "non premuto". ---------------------------------------- ================================================================================ creazione e cancellazione di file ================================================================================ AUTORE: 1553 DATA :27/10/2006 - 12:15:57 ---------------------------------------- Salve a tutti, dovrei creare un VI che giri su un fieldpoint e che: acquisisca un certo numero di misure e le salvi un file html nella memoria del fieldpoint; ogni giorno dove essere creato un nuovo file con le misure relative al giorno in questione; alla fine del mese, i 30 file creati devono essere cancellati per lasciare spazio ai file relativi al mese successivo. Sul forum di ni.com ho trovato dei VI che mi hanno permesso di risolvere il problema relativo alla scrittura e al salvataggio del file, ma non so come risolvere i due punti successivi... potete darmi una mano? Grazie mille, ciao! Marco ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 09:25:15 ---------------------------------------- Ciao Marco, per la creazione di un file ad ogni giorno, ti consiglio di la funzione potresti usare un vi come quello che ti allego Per cancellare i file ogni 30 giorni crea un loop parallelo a tutto il tuo codice che giri controllando la data e al cambio del mese, provveda a cancellare tutti i file del mese precedente. Puoi identificare questi file o legendo la loro data di creazione o meglio organizzandoli il cartelle divise per mese direttamente duranete la creazione. Ciao ---------------------------------------- AUTORE: 1553 DATA :31/10/2006 - 00:22:39 ---------------------------------------- nel VI che mi hai mandato ho trovato un problema... magari puoi dirmi come risolverlo... tieni conto che uso labview da poco tempo!! quando alla funzione "write to binay file" sostituisco il controllo "data" con un canale del fiedpoint o semplicemente con la funzione "random number", il file non viene scritto correttamente e al posto del numero trovo una serie incomprensibile di lettere... se invece lascio il controllo data e inserisco un numero qualsiasi nel pannello frontale, allora va tutto bene... perchè? Inoltre, il valore compare sotto il campo data, mentre i campi misura e ora rimangono vuoti... nel VI devo aggiungere qualcosa? Puoi darmi dei consigli in merito? Grazie mille per la disponibilità Ciao! ---------------------------------------- AUTORE: 1553 DATA :02/11/2006 - 17:15:31 ---------------------------------------- ciao,ho risolto il problema relativo alla visualizzazione dei dati, ma adesso ne ho un'altro: potresti dirmi come strutturare il loop esterno che cancella i file quando cambia il mese? Grazie, ciao! ---------------------------------------- AUTORE: 1528 DATA :02/11/2006 - 19:49:01 ---------------------------------------- Ogni mese potresti creare una directory col numero del mese...ogni giorno quando vai a creare il file controlli che mese è...se è diverso da quello della directory...cancelli e crei la nuova! ---------------------------------------- AUTORE: 1553 DATA :03/11/2006 - 15:31:13 ---------------------------------------- però non riesco a capire come confrontare il mese attuale con il numero della cartella, quindi come cancellare la cartella al cambio del mese..... potete darmi una mano? ---------------------------------------- AUTORE: 1528 DATA :03/11/2006 - 18:22:55 ---------------------------------------- tempo fa feci un'applicazione che necessitava dello stesso vi... In pratica questo subVI ti chiede in ingresso un path (Quello che conterrà la cartella con i mesi) e ti restituisce il path+mese All'interno se è il primo giorno del nuovo mese crea la nuova cartella e distrugge la vecchia! Dentro ci sono anche 3 MessageBox che ti avvisano se è un nuovo mese, se la cartella del mese precedente è stata cancellata o se no esisteva! Fammi sapere Ciao ---------------------------------------- ================================================================================ Come creare 3 vi simili ma indipendenti? ================================================================================ AUTORE: 1477 DATA :28/10/2006 - 18:00:12 ---------------------------------------- Sto realizzando dei regolatori che usano il moduly fuzzy e che si interfacciano con uno SCADA tramite OPC e Datasocket. Lo scada è unico ma i regolatori devono essere 3 separati e indipendenti così che, specialmente adesso, nella fase di sviluppo sul campo, si possa facilmente intervenire su uno (run/stop/modifiche) senza influenzare gli altri. Si tenga presente che sono praticamente gemelli, tranne alcuni valori costanti che devono/possono essere diversi, e tranne i segnali in ingresso dal campo (portate) che possono esse molto diverse tra loro. Quello che non mi è ancora ben chiaro è: - come devo salvare i tre vi perchè siano "effettivamente" indipendenti? Non vorrei correre il rischio che due o più regolatori chiamino lo stesso subvi nello stesso momento (Fuzzy controller, per es) passandogli valori diversi e ottenendo quindi valori di uscita fuori range. Ho provato a leggere le sezioni relative di help e user manual ma mi rendo conto che qualcosa mi sfugge. Vorrei usare una struttura di cartelle di questo tipo: Principale - Regolatore 1 - file 1 - file 2 ... - Regolatore 2 - file 1 ... ... - devo copiare tutti i subvis in ognuna delle cartelle "Regolatore n"? - devo anche rinominare tutti i subvis in ogni regolatore? - posso usare in ogni regolatore gli stessi subvi presi da una cartella comune (user.vi per es) perchè anche se hanno lo stesso nome e la stessa provenienza, una volta caricati in memoria nelle tre istanze sono comunque visti come vi diversi e non si disturbano? - se ne modifico uno in un regolatore, verranno per forza modificati tutti gli altri? Anche l'originale? Grazie per l'attenzione. Nell'attesa di qualche eventuale risposta vado a ripassare l'argomento sulla documentazione disponibile. LV71. ---------------------------------------- AUTORE: 129 DATA :28/10/2006 - 21:34:04 ---------------------------------------- Puoi settare come rientanti i subvi che svolgono le funzioni che devi triplicare, quindi nel vi principale inserisci tre volte i subvi sopracitati. Per spuntare il reentrant, devi andare nelle propietà del vi e quindi execution. Attenzione: per ovvie ragioni, il pannello dei vi settati come rientranti non è aggiornato, quindi devi utilizzarli solo nel diagramma e sfruttarne gli input output per generare i dati su un vi principale(non rientrante). ---------------------------------------- AUTORE: 1477 DATA :29/10/2006 - 15:52:56 ---------------------------------------- Grazie per la risposta. OK, sembra che con il settaggio a reentrant diventano indipendenti. Dopo aver settato i sub come reentrant, ho provato a salvare con le opzioni: - new location - single prompt - save entire hierarchy (con tutte le inclusioni) Ma, in questo modo, ho visto che sia l'originale che il clone usano i subvis dalla cartella del clone invece di usare ognuno quelli della sua cartella (e libreria). Io, in sostanza, vorrei ottenere questo: dato che i miei tre regolatori sono proprio uguali tranne che per qualche costante e per i paths, vorrei svilupparne uno e, quando lo riterrò finito, "clonarlo" in tre diverse cartelle. Vorrei che ognuna di esse contenga tutti i files relativi al mio vi e che essi siano completamente indipendenti. PS A proposito: devo settare come reentrant anche i subvis dei subvis dei subvis ecc? Grazie. Vado ad approfondire l'argomento con l'help e lo UM. ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 09:43:19 ---------------------------------------- piuttosto che copiare fisicamente i 3 VI, che comporta poi problemi di manutenzione (ogni singolo bug dovresti poi correggerlo 3 volte) ti consiglio di usare il VI server di LabVIEW. In pratica crei un sol VI, lo setti reentrant, tutte le variabili specifiche del tuo controllo devono essere su controlli in ingresso al VI. A questo punto puoi usare una struttura tipo quella che ti allego per lanciare in esecuzione i tuoi VI passando a ognuno i parametri caratteristici di ogni regolatore. Ciao ---------------------------------------- AUTORE: 384 DATA :30/10/2006 - 10:15:25 ---------------------------------------- Usando il VI server, non sarebbe meglio creare un VI template, anzichè settare il VI come "reentrant"? ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 10:39:08 ---------------------------------------- Dipende da quello che ti serve, io di solito uso i VI reentrant perchè lasciano la maggiore diniamicità al SW, posso caricarli e scaricarli dalla memoria a run-time in modo semplice. Il vantaggio di usare i Vit è che ne puoi controllare ogni singola istanza da FP, a ogni chiamata il vit genera un VI diverso (in memoria) con nome univoco. Anche questo ultimo punto cade con la versione 8.20 che, a quandto mi pare, permetta di fare debug anche dei VI reentrant (aprendo un clone di questo come se fosse un vit se lo apro mentre è in esecuzione) Esiste una presentazione di M. Aivaliotis scaricabile da [url=http://lavausergroup.org/niweek2004/meeting/lava_niweek_2004.zip:21e57a5q][b:21e57a5q]qui[/b:21e57a5q][/url:21e57a5q] che illustra molto bene queste caratteristiche poco note di LabVIEW. Ciao ---------------------------------------- ================================================================================ Tones and Noise Waveform ================================================================================ AUTORE: 1533 DATA :28/10/2006 - 20:15:16 ---------------------------------------- Mi serve questo blocchetto per un progetto. In pratica devo generare 2 segnali sinusoidali in cui la frequenza della fondamentale deve essere sempre uguale mentre devo poter scegliere quale armoniche voglio inserire per ogni segnale e il valore per ogni armonica. Devo inoltre fare in modo che la fase del secondo segnale tenga presente quella del primo più uno sfasamento ulteriore. Il problema sorge dal momento che questo dispositivo in ingresso ha il tones che è un'array di cluster...avevo pensato di utilizzare il bundle ma non funziona... qualcuno può darmi qualche suggerimento?grazie \":wink:\" ---------------------------------------- AUTORE: 927 DATA :31/10/2006 - 08:54:55 ---------------------------------------- Se ho ben capito, tu sai quali valori mettere nell'array Tones, il problema è solo che non sai come costruire fisicamente l'array? Il bundle dovrebbe funzionare eccome, prima fai il Bundle delle tre componenti per ogni onda, poi usa Build Array per unire le onde. In che senso "non funziona"? ---------------------------------------- ================================================================================ Inizializzazione Cluster di Array ================================================================================ AUTORE: 955 DATA :30/10/2006 - 08:03:04 ---------------------------------------- Vorrei inizializzare un cluster di array così da farlo partire direttamente dall'indice 1 anzicchè dall'indice 0. E' possibile farlo?come? grazie per l'aiuto \":)\" ---------------------------------------- AUTORE: 955 DATA :30/10/2006 - 08:10:05 ---------------------------------------- sono stato poco chiaro chiedo scusa \":oops:\" allora ho questo cluster di array e quello che vorrei è che nel front panel invece di partire da 0 l'array parta direttamente da 1 o comunque da un valore da me fissato. è più che altro un problema di visualizzazione che vorrei cercare di risolvere perchè potrebbe creare confusione. Di nuovo grazie ---------------------------------------- AUTORE: 645 DATA :30/10/2006 - 09:05:57 ---------------------------------------- Puoi inserire nella posizione zero un array vuoto. Oppure mantenere l'indice che parte da zero ma visualizzare l'indice più un numero per arrivare al numero che vuoi tu (per esempio l'indice rimane zero ma visualizzi zero+1 in modo da avere uno). [scusa la risposta confusionaria]... ---------------------------------------- AUTORE: 955 DATA :30/10/2006 - 09:17:24 ---------------------------------------- [quote="MagicBotolo":2s076yew][scusa la risposta confusionaria]...[/quote:2s076yew] ehm non ho capito \":oops:\" puoi farmi un esempio pratico?grazie \":)\" ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 09:28:49 ---------------------------------------- crea un property node dell'array e selezione la proprietà "Index Value". Scrivendo questa proprietà puoi cambiare a piacimento il valore dell'indice del tuo array. Ciao ---------------------------------------- AUTORE: 645 DATA :30/10/2006 - 09:30:25 ---------------------------------------- Ripensando un po' a quello che ho scritto: tu puoi lavorare con l'array mantenendo gli indici normali (quindi lavori normalmente). Se il problema è visualizzare indici che partono da 1 anzichè da 0 puoi fare in modo da leggere l'indice effettivo dell'array (per esempio il primo, la posizione 0) e presentarlo all'utente come 1. Questo però funziona se il tuo problema è puramente di visualizzazione. Nell'immagine vedi quello che intendo (il programma non è proprio funzionalissimo ma mostra quello che intendo). Ripeto che è una soluzione puramente visuale! ---------------------------------------- AUTORE: 955 DATA :30/10/2006 - 09:41:37 ---------------------------------------- mmm forse con un disegno del circuito sarà più chiaro mostrare quello che intendo: [url=http://img172.imageshack.us/my.php?image=immagineyv1.jpg:1rmu6y7c][img:1rmu6y7c]http://img172.imageshack.us/img172/3695/immagineyv1.th.jpg[/img:1rmu6y7c][/url:1rmu6y7c] quello che voglio è che l'indice del cluster parta direttamente da 1 e non da 0 come da impostazione predefinita. Purtroppo non ho la più pallida idea di come si fa \":roll:\" ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 09:44:45 ---------------------------------------- leggi la mia risposta sopra ---------------------------------------- AUTORE: 955 DATA :30/10/2006 - 09:50:48 ---------------------------------------- [quote="ale914":2dh9xsbm]leggi la mia risposta sopra[/quote:2dh9xsbm] mmm ce ne sono diversi di property node e non saprei quale usare \":(\" c'è il .NET , ActiveX , Application Control , Visa Advanced e forse mi sarà sfuggito ma nessuno di loro ha l'index value \":(\" puoi dirmi quale prendere?grazie \":)\" ---------------------------------------- AUTORE: 955 DATA :30/10/2006 - 11:13:26 ---------------------------------------- niente da fare...non sono riuscito a capire quale blocco usare ale puoi darmi chiarimenti tu? grazie ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 11:17:46 ---------------------------------------- ti allego il VI. Ciao ---------------------------------------- AUTORE: 482 DATA :30/10/2006 - 15:26:51 ---------------------------------------- ehm..ma se invece porti l'arraya 1 e gli dici make current value default? E all'inizio del VI usi il metodo del controllo Reinitialize to Default. ---------------------------------------- AUTORE: 927 DATA :30/10/2006 - 16:05:06 ---------------------------------------- gepponline: quello vale per il contenuto dell'array, non mi risulta che valga anche per l'indice (non nella 7.1 almeno!) ---------------------------------------- AUTORE: 482 DATA :31/10/2006 - 07:13:24 ---------------------------------------- eh si..giusto, ho detto la vaccata, quindi confermo quanto detto da Ale. Mandagli un ingresso al property node IndexValue (che ottieni cliccando col destro sul terminale->create->property node->Index Value. E' un parametro che vuole come ingresso un array di valori perchè prevede un valore per ogni dimensione dell'array, se l'array è monodimensionale tu mandagli solo un valore. \":wink:\" ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 07:59:47 ---------------------------------------- il problema è che io sto trattando un cluster di array non un array semplice...la cosa è più complicata...credo... \":oops:\" ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 08:02:44 ---------------------------------------- e poi nel circuitino che mi hai fornito se voglio farlo partire da indice 2 o indice 3 non lo fa e mi porta sempre ad indice 1... perchè? \":?\" ---------------------------------------- AUTORE: 927 DATA :31/10/2006 - 08:38:16 ---------------------------------------- E' la stessa cosa, ma clicca direttamente sull'array all'interno del cluster nell'interfaccia. Oltretutto puoi scegliere a quale controllo si riferisce un property node anche dopo averlo creato: clicchi col destro il node e poi "Link to..." ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 09:01:26 ---------------------------------------- Ah ok ora funziona \":D\" grazie ---------------------------------------- ================================================================================ Best fit ellissoide ================================================================================ AUTORE: 1427 DATA :30/10/2006 - 10:51:29 ---------------------------------------- Ciao a tutti! Ho una richiesta flash... prima di mettermi a scriverlo per mio conto, che voi sappiate esiste reperibile da qualche parte un vi per fare un best fit di un ellissoide? grazie e buon lavoro! Marco ---------------------------------------- AUTORE: 1168 DATA :30/10/2006 - 16:37:43 ---------------------------------------- In che senso scusa? Da un'immagine o da un array di coordinate x-y? ---------------------------------------- AUTORE: 1427 DATA :30/10/2006 - 22:18:36 ---------------------------------------- [quote="Pio":1by32c2i]In che senso scusa? Da un'immagine o da un array di coordinate x-y?[/quote:1by32c2i] hai ragione, non mi sono ben spiegato. Un algoritmo di bestfit partendo da un set di punti x,y,z ---------------------------------------- AUTORE: 1168 DATA :31/10/2006 - 10:40:55 ---------------------------------------- [quote="gatto_mannaro":1xwen9vn] Un algoritmo di bestfit partendo da un set di punti x,y,z[/quote:1xwen9vn] x,y,[color=red:1xwen9vn]Z[/color:1xwen9vn]? \":o\" Quindi è un ellissoide di rotazione? ah..... mi spiace, già 2D avrei qualche problema... Ciaux. ---------------------------------------- AUTORE: 927 DATA :02/11/2006 - 09:03:37 ---------------------------------------- Intanto ti posso dire che nel LabVIEW Full and Professional... non c'è. C'è soltanto "Fitting on a Sphere" che fa la stessa cosa ma solo per una sfera regolare ---------------------------------------- ================================================================================ datalogger ================================================================================ AUTORE: 1555 DATA :30/10/2006 - 12:11:07 ---------------------------------------- ciao a tutti !! sono nuovo ed è poco che conosco labview, vorrei porvi il mio problema: il programma si basa sul monitoraggio del valore efficace della tensione in ingresso, viene impostato il valore di soglia max e quando il segnale lo supera il valore viene registrato con relativa data ora min e sec. il segnale ha frequenza 50 Hz e il sample rate di 2000 quindi 40 campioni per periodo, il problema è che vorrei effettuare una misura del valore efficace dopo 40/80 o max 200 campioni ottenendo così 50/25 o 10 valori efficaci per secondo che sono troppi da memorizzare ; io vorrei memorizzare il più alto dei valori efficaci che superano la soglia in un secondo. scusate la confusione ---------------------------------------- AUTORE: 4 DATA :31/10/2006 - 08:35:07 ---------------------------------------- potresti semplicemente usare la funzione che trova i massimi in un array e la fai lavorare sull'array di dati che hai durante l'evento di "segnale alto". Quindi al superamento della soglia di segnale alto inizi ad accodare i tuoi dati in un array apposta per un secondo e alla fine del secondo prendi il valore max e lo salvi nel file, ricorda anche di svuotare l'array da un secondo una volta che hai salvato il valore in modo che all'evento successivo riparti da una situazione "pulita". Ciao ---------------------------------------- AUTORE: 1555 DATA :31/10/2006 - 17:52:39 ---------------------------------------- grazie per la risposta! effettivamente anche io avevo pensato a una cosa del genere ma non riesco a capire come creare un array che viene "riempita" con dati successivi nel tempo di un secondo. il problema è come inserire il tempo di un secondo? ho provato ad inserire un while for con all'interno un wait con 1 ms impostando il blocco in modo che si blocchi dopo 1000 iterazioni ma ovviamente questo provoca uno stop di 1 sec. ---------------------------------------- AUTORE: 129 DATA :01/11/2006 - 07:09:08 ---------------------------------------- Puoi utilizzare un while che esegue una sola iterazione (global function) mettendogli poi uno shift register per memorizzare il conteggio temporale e quindi un comparatore per resettare e scatenare un evento al raggiungimento del tempo. L'esempio esegue un conteggio fino al raggiungimento di una soglia dove si resetta e invia sull'uscita OK uno stato true, che può essere utilizzato per pilotare una case structure in cui vai ad inserire il codice che vuoi. Per riferirlo al tempo di ciclo (per avere 1 secondo) devi dividere il valore di soglia per il tempo di timer ciclo impostato, quindi avrai che per contare 1 sec. devi eseguire 4 conteggi a 200ms(tempo timer), 5 a 250ms e così via. ---------------------------------------- AUTORE: 1555 DATA :01/11/2006 - 14:06:59 ---------------------------------------- grazie domani provo tutto! ---------------------------------------- AUTORE: 1555 DATA :02/11/2006 - 12:00:29 ---------------------------------------- non riesco ad aprire il file perchè ho la versione 7.0 \":cry:\" ---------------------------------------- AUTORE: 1555 DATA :01/12/2006 - 14:21:01 ---------------------------------------- eccomi di nuovo! il problema non l'ho risolto perchè valutando alcuni aspetti il programma funziona bene anche così (con misura del valore efficace ogni 400 campioni). il problema che si pone adesso è il seguente: con il vi creato per ogni secondo ci sono 5 cifre (2000 diviso 4) e fino qui ok, questi dati vengono memorizzati in un unico file dove per ogni riga è presente data ora sec e valore misurato, quindi per lo stesso secondo ci sono 5 valori. adesso vorrei salvare la curva che ha generato l'evento quindi è possibille che in un secondo vi siano 5 curve. io ho provato a scrivere un file che ha per nome la data ora e sec , ma siccome per ogni sec ci sono 5 curve ho fatto in modo che vengano generati 5 file (es "01_11_2006 14.30.24_1" "01_11_2006 14.30.24_2" "01_11_2006 14.30.24_3" "01_11_2006 14.30.24_4" "01_11_2006 14.30.24_5") ma questo non accade cioe ne vengono generati solo 3 e credo che il problema sia dovuto al fatto di dover creare scrivere e chiudere un file in una frazione di sec. questa scelta è stata fatta in modo da poter visualizzare l'onda in un preciso istante attraverso un'altro vi scusate se sono stato un pò lungo \":)\" ---------------------------------------- AUTORE: 384 DATA :04/12/2006 - 12:27:28 ---------------------------------------- Perchè non scrivi tutti i 5 valori nella stessa riga? ---------------------------------------- AUTORE: 1555 DATA :12/12/2006 - 18:57:22 ---------------------------------------- si è vero ci ho pensato sù ed ho risolto il problema, non avevo visto che nel blocco che calcola il valore efficace è possibile inserire il tempo \":D\" grazie mille ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 14:50:05 ---------------------------------------- Più generalmente, si può comporre qualunque combinazione di informazione da scrivere in ogni riga di un file dati. Lo si può fare di soli valori numerici in un array che viene convertito "in automatico" prima della scrittura (Array to Spreadsheet File) oppure a piacimento e completo controllo del programmatore con la funzione Format Into String. ---------------------------------------- ================================================================================ Reference a control in un tab ================================================================================ AUTORE: 1520 DATA :30/10/2006 - 12:49:46 ---------------------------------------- Salve a tutti, problemino probabilmente banale ma ci sto perdendo troppo tempo: ho bisogno di recuperare da un vi il riferimento ad un array che è contenuto in una pagina di un controllo tab. Fino al tab non ho problemi ma poi come faccio a farmi dare il riferimento al mio array? Ho provato a vedere il "to more specific class" ma quando gli passo il tipo di dato mi da un errore. \":?\" Qualcuno mi sa aiutare? Matteo ---------------------------------------- AUTORE: 4 DATA :30/10/2006 - 13:09:39 ---------------------------------------- devi riferirti direttamente all'array senza passare dal tab, questo infatti non si comporta come un cluster ma è solo un controllo grafico che non ha nessun effetto sugli oggetti (controlli e indicatori) a livello di block diagram. Ciao ---------------------------------------- AUTORE: 1520 DATA :30/10/2006 - 14:24:49 ---------------------------------------- Ciao Ale, non ho forse ben spiegato che il mio riferimento è dinamico, mi riferisco cioè ad un controllo che non è nel VI che sto sviluppando. se lo cerco per nome dalla lista dei controlli che ci sono nel panel (tramite le proprietà del VI che contiene il controllo) non trovo direttamente l'array ma il tab si. Non so, ci sono vie alternative? Matteo ---------------------------------------- ================================================================================ Shared Variable ================================================================================ AUTORE: 487 DATA :30/10/2006 - 14:32:10 ---------------------------------------- Ciao a tutti, ho appena modificato un vechhio programma che utilizzava il protoccollo tcp-ip per la trasmissione di dati tra due pc collegati in rete. Ho pensato di utilizzare le tanto publicizzate shared variable per ottenere il medesimo risultato,ma ... non mi funziona più niente. Ho fatto delle prove in locale e tutto sembra girare perfettamente, ma quando compilo l'applicazione e la trasporto sui pc in rete, non gira più niente. Probabilmente mi manca qualche passaggio di configurazione, qualcuno di voi che ha esperienza a riguardo può darmi una mano? Grazie. ---------------------------------------- AUTORE: 482 DATA :30/10/2006 - 15:31:07 ---------------------------------------- Io ho avuto dei problemi simili passanto dal Datasocket alle shared variable. Il mio problema era di iniesperienza, cioè avevo linkato i controlli sia in locale che in remoto a degli indirizzi di rete, invece quello in locale non dovevo linkarlo ma semplicemente bindarlo dalle proprietà....non so se mi sono spiegato. Cmq mi è stato di aiuto disegnarmi uno schemino della logica delle variabili che usavo (chi leggeva e chi scriveva). Lo share variable engine credo ti parta in utomatico quando lanci il vi per cui non credo sia quello...pero'....verifica anche quello \":wink:\" ---------------------------------------- AUTORE: 487 DATA :31/10/2006 - 07:51:28 ---------------------------------------- Ho controllato il variable engine ed è installato, ho ricontrollato le impostazioni delle variabili e mi sembra tutto a posto (tra l'altro quando le provo con il localhost funziona tutto egregiamente). Ho provato ad installare il variable manager e qui ho scoperto una cosa alquanto strana: non mi vede nessuna variabile!!! Come è possibile? C'è forse qualcosa da settare nell'installer che non ho settato? Un'altra cosa strana, quando lancio il vi come sorgente mi si apre la finestra "Deploy ...", quando invece faccio la medesima operazione con l'eseguibile ciò non avviene: è normale o è indice di qualcosa che non funziona? ---------------------------------------- AUTORE: 487 DATA :02/11/2006 - 07:39:43 ---------------------------------------- Ho trovato delle informazioni sul sito della National; in effetti sembra che mi manchi un passaggio di programmazione: devo inserire nel codeice il deploy library delle shared variable, altrimenti quando creo l'eseguibile non viene effettuato il deploy. Ci provo, poi vi faccio sapere. PS: se qualcuno ha dei problemi simili , provi a leggere [url=http://digital.ni.com/public.nsf/allkb/04D9A85B6967EE87862571140065EEC6:3pxmue4e]quì[/url:3pxmue4e] ---------------------------------------- AUTORE: 487 DATA :08/11/2006 - 08:57:09 ---------------------------------------- Dopo una settimana di prove e tentativi vari, in collaborazione con il supporto di National, abbiamo risolto il problema: il codice era perfettamente corretto, ma il firewall di windows non sbloccava la comunicazione fra i pc, anche se si era premuto il pulsante "sblocca" nella finestra di avviso del firewall che compare quando si lancia il programma. ---------------------------------------- ================================================================================ case constant ================================================================================ AUTORE: 1465 DATA :30/10/2006 - 16:02:55 ---------------------------------------- ciao a tutti, mi potreste chiarire la funzione del case constant??? grazie mille ciao! ---------------------------------------- AUTORE: 1030 DATA :31/10/2006 - 08:28:33 ---------------------------------------- Ciao io non ho mai sentito parlare di "case constant"... puoi specificare meglio cosa intendi? ciao ciao ---------------------------------------- ================================================================================ Onda quadra ad un led ================================================================================ AUTORE: 1546 DATA :30/10/2006 - 16:45:26 ---------------------------------------- Raga come si fa a generare un'onda quadra ke faccia lampeggiare un diodo led?Magari ke sia possibile controllare la velocità delle pulsazioni del diodo led mediante la frequenza. Thx a tutti ---------------------------------------- AUTORE: 645 DATA :30/10/2006 - 19:52:52 ---------------------------------------- Per generare prova il generatore di segnali della paletta Express e gioca con il duty cicle per la durata del lampeggio... Non ho provato ma potrebbe funzionare \":P\" ---------------------------------------- AUTORE: 645 DATA :30/10/2006 - 19:53:28 ---------------------------------------- Scusa,ci vorrà anche un case per gestire l'on-off del led o qualcosa del genere. ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 08:37:42 ---------------------------------------- Guarda il VI allegato: può andare un'idea del genere? ---------------------------------------- AUTORE: 683 DATA :13/11/2006 - 13:26:00 ---------------------------------------- per fare lampeggiare dei lad nn potresti giorcare con i tru e false? ad esempio: hai 2 led che rappresentao il bit 0 e il bit 1 in binario quindi 4 posizioni possibili fai un for da 4 giri e prendi il valo della i e lo converti in array di binario estari l'elemto zero e l'elemento 1 e vedrai che i led collegati faraano il cicolo 00 - 01 -10 -11 richiudi tutto in un cilco while e lla storia sarà per sempre per al temporizzazione basta che inserisci un classico wait ciao ---------------------------------------- ================================================================================ Tabelle ================================================================================ AUTORE: 955 DATA :31/10/2006 - 09:27:40 ---------------------------------------- Dovrei inserire dei dati in una tabella nel front panel e poterli prendere nel block diagram. Ad esempio sto cercando di acquisire valori da una tabella di 3 colonne ed un numero qualsiasi di righe (uso il multicolumn Listbox)...ma non ci riesco...come si fa? \":cry:\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 09:35:22 ---------------------------------------- Tramite i Property Node (clicchi con il destro sulla tabella nel Block Diagram, crei il Property Node e come proprietà scegli "Item Names") puoi estrarre i dati presenti nella tabella sottoforma di matrice di stringhe. Prima di usare i numeri ricordati di convertirli se ti servono per calcoli. ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 10:00:28 ---------------------------------------- ok perfetto funziona \":D\" ore però ho estrapolato i valori in una matrice e da lì in un array. Se non voglio imporre un numero di righe come faccio ad estrapolare tutti i valori senza dover creare un'infinità di index array? la prima cosa che mi viene è di effettuare un while finchè non incontro una riga vuota ma a parole mi sembra facile ma in pratica non ho la più pallida idea di come si fa \":oops:\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 10:18:42 ---------------------------------------- Guarda il VI allegato... ---------------------------------------- AUTORE: 1520 DATA :31/10/2006 - 10:20:42 ---------------------------------------- Se fai un ciclo for senza indice labview automaticamente lo esegue per il numero di elementi dell'array. Dovrebbe funzonare anche con un array bidimensionale penso proprio estraendo riga per riga ad ogni nuovo ingresso nell ciclo. Matteo ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 10:36:42 ---------------------------------------- [quote="MagicBotolo":3n0ijyi5]Guarda il VI allegato...[/quote:3n0ijyi5] si ci ero riuscito già grazie alle prime indicazioni che mi hai dato però ho cmq trovato molto interessante il modo in cui riesci a riprendere il nome della colonna \":wink:\" [quote:3n0ijyi5]Se fai un ciclo for senza indice labview automaticamente lo esegue per il numero di elementi dell'array. [/quote:3n0ijyi5] purtroppo non lo fa \":(\" io sto provando a far bloccare l'esecuzione fin quando non riceve una stringa "vuota" ma ho un problema sulla dimensione delle stringhe. ovvero avevo pensato di utilizzare i seguenti blocchi: 1-Number To Decimal String per convertire il valore che mi esce dall'index array di nuovo in stringa; 2-String Subset ; 3-Match True/False String dove in ingresso inviavo la mia stringa e la stringa da paragonare ovvero quella vuota " "; però mi da errore nei collegamenti...dovrei riuscire a convertire l'2-D o l'1-D array of string in string semplice...ma non so come si fa \":(\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 10:48:00 ---------------------------------------- Secondo me ti conviene estrarre gli elementi della tabella con il property node e poi utilizzare l'index array per recuperare solo le colonne che ti servono. Il ciclo For può essere condizionato direttamente dalla dimensione dell'array ma conviene passare array monodimensionali: con le matrici non so cosa combina. Funziona molto bene se l'array è a una dimensione: si possono leggere le dimensioni della matrice e passarle al ciclo For una alla volta (due cicli uno dentro l'altro) come condizioni di terminazione. ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 11:57:47 ---------------------------------------- il problema sta essenzialmente nel fatto che non so fino a che punto incrementare l'index dell'index array... \":(\" ho notato che se anche provo a fare un for e a mettere in ingresso all'index dell'index array il valore i del ciclo non visualizzo nulla \":(\" ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 12:01:57 ---------------------------------------- ok ho detto na fesseria \":oops:\" avevo fatto un'iterazione superiore al numero di elementi che avevo memorizzato \":oops:\" avrei ora una domanda: come faccio a paragonare una stringa vuota (la stringa vuota è questa qui "" ?) con quella che acquisisco dalla tabella? \":(\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 12:11:30 ---------------------------------------- Puoi usare la costante "Empy String" nella paletta delle stringhe... ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 12:16:54 ---------------------------------------- e per caso sai come si fa a trasformare una 2-D string of array in stringa semplice? \":roll:\" grazie per tutto l'aiuto che mi hai dato oggi.sei stato davvero gentile \":wink:\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 12:18:27 ---------------------------------------- Cosa intendi con "2-D string of array"? Mi fai un esempio? ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 12:36:59 ---------------------------------------- è il valore che mi esce dal property node ovvero una matrice che ha numero di colonne e di righe pari a quelle che ho settato nella tabella. io ho provato a postarti un mio tentativo ma noterai subito che legge solo la prima riga della matrice e salta tutte le altre... \":cry:\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 12:47:59 ---------------------------------------- Puoi salvarlo per la versione 7.1 o postare un'immagine? In questo momento non ho sottomano la versione 8 di LabView... ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 13:34:23 ---------------------------------------- [url=http://img402.imageshack.us/my.php?image=immaginexn8.jpg:vbvzs3xg][img:vbvzs3xg]http://img402.imageshack.us/img402/3425/immaginexn8.th.jpg[/img:vbvzs3xg][/url:vbvzs3xg] purtroppo ho solo lab 8 \":(\" ---------------------------------------- AUTORE: 1520 DATA :31/10/2006 - 14:47:02 ---------------------------------------- Ciao a tutti, scusate l'assenza. Le indicazioni sul for loop del mio intervento precedente funzionano solo se l'array è monodimensionale altrimenti Labview non sa più che dimensione contare. Per quanto riguarda il tuo problema ti propongo questa soluzione allegata Ciao \":D\" ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 14:59:08 ---------------------------------------- premesso che non ho capito la tua cosa fa di preciso...io cmq l'ho risolto così: [url=http://img340.imageshack.us/my.php?image=immaginefm2.jpg:1spi0l66][img:1spi0l66]http://img340.imageshack.us/img340/9213/immaginefm2.th.jpg[/img:1spi0l66][/url:1spi0l66] ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 15:00:28 ---------------------------------------- in ogni caso ti ringrazio \":wink:\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 15:02:11 ---------------------------------------- C'è qualcosa che non capisco: tu vorresti analizzare tutte le caselle della tabella? Perchè nell'immagine che hai postato c'è un ciclo while che legge riga tot e colonna tot: significa che ti sposti lungo la "diagonale principale" della tabella... Dovresti fare così: leggi i dati con il property node, li converti in numeri passando la matrice estratta al blocco di conversione "da stringa a numero", leggi le dimensioni della matrice e ottieni due valori (un array di due righe e una colonna). Il primo è il numero delle righe, il secondo delle colonne. Passi questi numeri a due cicli For uno dentro l'altro: il più esterno si sposta lungo le righe, l'interno si sposta lungo le colonne. E analizzi i numeri letti. Così facendo controlli tutte le celle. Però se usi i For non puoi interrompere il ciclo in caso di condizione particolare: se, per esempio, devi fermarti quando trovi una casella vuota, allora puoi usare due cicli While uno dentro l'altro (anzichè due For) che si fermano quando il numero delle iterazioni è uguale al numero delle righe o delle colonne (a seconda che si tratti, rispettivamente, del ciclo più esterno o più interno) oppure quando la casella in esame è verificata. ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 15:07:51 ---------------------------------------- magic dal momento che non riuscivo a risolverlo così come te l'ho mostrato prima, ho visto che il propety node da in uscita anche il numero di righe per cui iterando per tutte le righe dovrei avere ogni valore ...o almeno credo \":)\" solo che così facendo leggo tutte le righe anche quelle bianche...mentre io volevo interrompermi alla prima riga bianca che compariva... \":cry:\" ---------------------------------------- AUTORE: 645 DATA :31/10/2006 - 15:28:42 ---------------------------------------- Ma se tu usi i cicli while per analizzare le caselle e come condizione di fine ciclo metti una combinazione (numero iterazioni=numero righe/colonne)or(casella=vuota) ti fermi appena trovi il vuoto. ---------------------------------------- AUTORE: 955 DATA :31/10/2006 - 15:34:00 ---------------------------------------- sarà la stanchezza ma non riesco a ragionarci su \":cry:\" mi fai un esempio pratico se ti è possibile e se non ti è troppo di disturbo? grazie ---------------------------------------- AUTORE: 1533 DATA :04/11/2006 - 08:42:03 ---------------------------------------- [quote="MagicBotolo":232ujqyg]Dovresti fare così: leggi i dati con il property node, li converti in numeri passando la matrice estratta al blocco di conversione "da stringa a numero", leggi le dimensioni della matrice e ottieni due valori (un array di due righe e una colonna)..[/quote:232ujqyg] sto provando a farlo ma mi sono inceppato come fai a leggere le dimensioni della matrice? grazie e scusa se son così petulante \":oops:\" ---------------------------------------- AUTORE: 1533 DATA :04/11/2006 - 09:00:16 ---------------------------------------- ok risolto con un array size seguito da due index array uno con index zero ed uno con index 1...può andare bene così? \":roll:\" grazie ---------------------------------------- AUTORE: 1533 DATA :04/11/2006 - 09:59:42 ---------------------------------------- ho provato a fare come mi hai suggerito però in pratica mi legge solo la prima riga/colonna...why? ti posto un'immagine del circuito...se puoi dagli un'occhiata \":wink:\" grazie [url=http://img291.imageshack.us/my.php?image=provafi3.jpg:1l7r92p2][img:1l7r92p2]http://img291.imageshack.us/img291/1113/provafi3.th.jpg[/img:1l7r92p2][/url:1l7r92p2] ---------------------------------------- AUTORE: 645 DATA :05/11/2006 - 15:30:56 ---------------------------------------- Ti allego un VI che analizza il contenuto della tabella: controlla il primo elemento di ogni riga. Se c'è qualcosa va avanti (il programma è fatto per funzionare se hai ugual numero di elementi in ogni colonna), se la casella è vuota si ferma. Prova a guardarlo e poi fammi sapere. ---------------------------------------- AUTORE: 1533 DATA :05/11/2006 - 17:40:13 ---------------------------------------- non me lo apre \":(\" io uso il lab 8.0 mi fai un jpeg così lo ricostruisco da me \":)\" . grazie ---------------------------------------- AUTORE: 645 DATA :05/11/2006 - 18:19:20 ---------------------------------------- E così? L'ho salvato per la versione 8... ---------------------------------------- AUTORE: 1533 DATA :05/11/2006 - 19:24:16 ---------------------------------------- gli do un'occhiata domani perchè ora sto troppo fuso. ti ringrazio anticipatamente \":wink:\" ---------------------------------------- AUTORE: 955 DATA :06/11/2006 - 08:19:21 ---------------------------------------- ho analizzato il tuo programma ma purtroppo non è quello che cercavo \":(\" io devo leggere i dati che inserisco nella tabella cioè devo leggere ogni singolo valore riga/colonna perchè quei valori poi li devo utilizzare per effetturare delle operazioni matematiche su un segnale sinusoidale e poi devo imporre la condizione sulla casella vuota \":?\" ---------------------------------------- AUTORE: 955 DATA :06/11/2006 - 08:45:25 ---------------------------------------- olè ho risolto e mi sei stato di grande aiuto magic \":D\" ti posto il programmino c'è un po' di te (anzi direi parecchio di te) in questa implementazione \":lol:\" grazie di tutto \":wink:\" ---------------------------------------- AUTORE: 645 DATA :06/11/2006 - 08:47:55 ---------------------------------------- Nel VI che ti ho allegato ho preparato solo il controllo sulla casella vuota. Il programma si comporta così: guarda la prima casella di ogni riga; se c'è un valore entri nel Case con la situazione True, se la casella è vuota entri nel Case con la situazione False. Nella situazione True puoi poi lavorare analizzando i valori della riga: sicuramente ci sarà qualcosa e quindi, se con l'index array vai a selezionare la casella (riga-colonna, come la battaglia navale) che ti interessa, avrai un numero sul quale lavorare. Nel momento in cui trovi la condizione False sei arrivato alla fine perchè il ciclo si conclude (dopo essere passato per la condizione False del Case nella quale puoi inserire una memorizzazione finale o un messaggio di saluto... insomma un'operazione conclusiva). ---------------------------------------- AUTORE: 645 DATA :06/11/2006 - 08:48:32 ---------------------------------------- Ooppss... ho scritto prima di vedere che avevi risolto! Ottimo... ---------------------------------------- AUTORE: 955 DATA :06/11/2006 - 10:52:31 ---------------------------------------- qualcuno riesce a spiegarmi perchè non riesco a visualizzare nulla sul grafico e mi da errore di memory full? \":oops:\" \":cry:\" per provarlo dovreste settare nel dispositivo kB un valore pari a 16384 e poi va beh valori a caso nel V1. grazie \":wink:\" ---------------------------------------- AUTORE: 955 DATA :06/11/2006 - 10:53:52 ---------------------------------------- ops dimenticavo il circuito \":(\" scusate \":roll:\" ---------------------------------------- AUTORE: 955 DATA :06/11/2006 - 15:35:30 ---------------------------------------- è possibile leggere dalla tabella valori reali cioè sia interi che non? come? \":roll:\" ---------------------------------------- AUTORE: 645 DATA :06/11/2006 - 15:48:12 ---------------------------------------- Dipende come vengono salvati i valori nella tabella e come, di seguito, vengono convertiti in numeri: se converti in numeri interi ottieni numeri interi, se converti in numeri reali ottieni numeri reali. Potrebbe esserci qualche problema con le impostazioni internazionali di Windows e l'uso del punto e della virgola come indicatore delle cifre decimali o delle migliaia. ---------------------------------------- AUTORE: 955 DATA :06/11/2006 - 15:51:42 ---------------------------------------- io ho provato a mettere sia 1.3 che 1,3 ma mi esce sempre 1... \":roll:\" altra cosa come faccio a stoppare l'esecuzione del programma da te realizzato se ad esempio arriva 1 2 3 e poi 4 niente 6 7 8 9 in pratica vorrei che si fermi a niente \":)\" ---------------------------------------- AUTORE: 955 DATA :06/11/2006 - 16:02:18 ---------------------------------------- ok risolto per la stringa vuota non ancora però per i numeri con la virgola o decimali... \":roll:\" ---------------------------------------- AUTORE: 1533 DATA :07/11/2006 - 16:43:54 ---------------------------------------- avrei bisogno di un ulteriore chiarimento \":oops:\" quando acquisisco i valori dalla tabella quei valori sono stringhe. a me ora interessa sapere quando la stringa è vuota e questo il programma che magicbotolo ha realizzato lo fa solo che io vorrei una cosa ancora più specifica. Vorrei che il programam di magicbotolo stoppasse un case structure che lo segue (in cui effetto la visualizzazione dei segnali acquisiti dalla tabella) se nell'ambito della riga 1 o 2 colonne sono vuote e non mi deve far visualizzare nulla..cioè nel waveform graph non deve apparire nulla. Se invece ricevo una o più righe piene in tutte e 3 le colonne e poi tante altre righe vuote in tutte e tre le colonne devo poter visualizzare le prime 3 righe piene e fermarmi quando finiscono le righe della tabella. se invece ricevo 3 righe piene in tutte e 3 le colonne e una vuota in tutte e 3 le colonne seguita da altre piene devo poter visualizzare le righe piene finchè non finiscono le righe della tabella. Vi faccio una serie di esempio così da rendere la cosa + chiara \":roll:\" così devo visualizzare le prime 2 righe 1 2 3 4 5 6 - - - - - - dove per - si indica la riga vuota realizzata in labview con "". così devo visualizzare la 1a la 3a e la 4a riga 1 2 3 - - - 7 8 9 - - - 13 14 15 mentre così non devo visualizzare assolutamente nulla 1 2 3 4 - 6 7 8 9 Io ci sto smanettando da stamattina ma sono riuscito a trovare solo una soluzione di escamotage in pratica se metto al posto delle - degli 0 nelle rispettive tre colonne e lascio lo - la dove non voglio alcun elemento il mio programma parte ...ma non credo sia una soluzione accettabile.... Gentilmente qualcuno di voi potrebbe postarmi qualche schema su come risolvere il problema? grazie di cuore \":wink:\" ---------------------------------------- AUTORE: 384 DATA :08/11/2006 - 10:59:40 ---------------------------------------- Esiste una funzione per sapere la lunghezza di una stringa, quindi la puoi usare per sapere se la stringa è vuota (lunghezza=0). Facendo quindi l'analisi delle tue stringhe PRIMA delle conversioni, hai la possibilità creare una uscita booleana componendo con AND, OR, NOT, ecc le varie condizioni che trovi. Alla fine basta un "if" (case structure booleano) per decidere se fare o no la visualizzazione. ---------------------------------------- AUTORE: 955 DATA :08/11/2006 - 11:06:11 ---------------------------------------- [quote="gyc":10ipfmr5]Esiste una funzione per sapere la lunghezza di una stringa, quindi la puoi usare per sapere se la stringa è vuota (lunghezza=0). Facendo quindi l'analisi delle tue stringhe PRIMA delle conversioni, hai la possibilità creare una uscita booleana componendo con AND, OR, NOT, ecc le varie condizioni che trovi. Alla fine basta un "if" (case structure booleano) per decidere se fare o no la visualizzazione.[/quote:10ipfmr5] ehm \":roll:\" puoi farmi un esempio pratico in labview 8? grazie \":wink:\" ---------------------------------------- AUTORE: 384 DATA :08/11/2006 - 11:24:43 ---------------------------------------- Ecco qua. É in LV 7.1. Non ho mai installato la 8.0 e non so ancora se installare la 8.2. \":wink:\" ---------------------------------------- AUTORE: 955 DATA :08/11/2006 - 11:42:32 ---------------------------------------- [quote="gyc":22yfz16w]Ecco qua. É in LV 7.1. Non ho mai installato la 8.0 e non so ancora se installare la 8.2. \":wink:\"[/quote:22yfz16w] non l'hai postato \":lol:\" cmq np ho sia l'8 che il 7.1 quindi non dovrebbe essere un problema \":wink:\" grazie ---------------------------------------- AUTORE: 384 DATA :08/11/2006 - 11:58:26 ---------------------------------------- Scusa! \":oops:\" . ---------------------------------------- AUTORE: 955 DATA :08/11/2006 - 16:49:53 ---------------------------------------- non ce la faccio + con queste tabelle \":cry:\" ora devo fare in modo che solo quando mi arriva una stringa vuota non devo visualizzare nulla.ovvero se dalla tabella mi arriva 123 456 - - - devo visualizzare fino a 456 viceversa se mi arriva 123 4 6 non devo visualizzare assolutamente nulla. sto nella crisi + assoluta.ho il cervello fuso e non ci riesco proprio ad arrivare \":cry:\" quello che sono riuscito a realizzare mi visualizza il primo caso perfettamente mentre nel secondo caso mi visualizza fino al 123 mentre vice dovrebbe darmi valori nulli. HELP! \":cry:\" ---------------------------------------- AUTORE: 645 DATA :08/11/2006 - 18:03:58 ---------------------------------------- Potresti creare uno stadio intermedio: leggi tutti i valori ricevuti e solo alla fine della lettura li visualizzi. O meglio: se è arrivato tutto visualizzi, altrimenti non visualizzi o visualizzi tutto nullo o visualizzi un messaggio con scritto "Dati mancanti" o visualizzi un messaggio con scritto "Aiuto, sono impazzito"... ---------------------------------------- AUTORE: 384 DATA :09/11/2006 - 08:11:42 ---------------------------------------- Ottimo suggerimento questo di MagicBotolo. Crea uno stadio intermedio in cui dopo aver scorso la tabella riga per riga i risultati siano "riga ok", "riga mancante" e "riga incompleta". Per codificare questi risultati puoi usare un "enumeration" oppure un "ring". Uscirai quindi con un array di una sola dimensione in cui ogni valore è il risultato della corrispondente riga. Poi, cerca in questo array (c'è una funzione per questo); -prima ricerca, se trovi un risultato "riga incompleta" ti fermi e non visualizzi nulla. -seconda ricerca, se trovi un risultato "riga mancante" visualizzi fino a quel indice. Se non hai trovato nessuno di questi errori visualizzi tutto. Non è banalissimo - è vero - ma non è particolarmente dificile. Usa pure le sequenze per aiutarti a separare meglio la logica dei vari passi. Lo dico così perchè in futuro dovrai cercare di evitare le sequenze il più possibile; sepure utili - ed inevitabili in alcuni casi - bloccano il meccanismo naturale di labview di parallelizzare il codice e così ottimizzare la performance del software. ---------------------------------------- AUTORE: 955 DATA :09/11/2006 - 14:31:27 ---------------------------------------- ok grazie \":wink:\" ---------------------------------------- ================================================================================ Relink automatico delle TypeDef ================================================================================ AUTORE: 384 DATA :31/10/2006 - 11:40:52 ---------------------------------------- Ciao ragazzi. Ho definito delle TypeDef nel mio progetto. Ora ho fatto delle modifiche ad una di queste ma i vi che la usano non "vedono" tali modifiche, anche se l'opzione "AutoUpdate" è spuntata. Non vedo nel menu a tendina un'opzione di relink come quando edito un vi e mi sembra stupido dover rimpiazzare tuttle le costanti e controlli a mano (oltre che very time consuming). Credo che se ne è già discusso di questo ma non riesco a risalire ai messaggi e - peggio - ho dimenticato come si fa. \":oops:\" Help!!! \":o\" ---------------------------------------- AUTORE: 4 DATA :31/10/2006 - 11:59:09 ---------------------------------------- [quote:1qy7r45y]Ho definito delle TypeDef nel mio progetto. Ora ho fatto delle modifiche ad una di queste ma i vi che la usano non "vedono" tali modifiche, anche se l'opzione "AutoUpdate" è spuntata. [/quote:1qy7r45y] molto strano i typedef servono proprio a questo... prova a ripetere i passaggi di modifica del controllo partendo dal file ctl usando il comando di file>>open, se infatti fai doppio click su un controllo typedef per aprirlo, labview lo apre ma non è il tuo typedef ma un controllo diverso anche se identico quindi quando salvi le modifiche in realtà ne hai modificato uno nuovo. Potresti anche pensare di usare gli strict typedef che eliminano questo "inconveniente" che in realtà è una cosa voluta (credo) Ciao ---------------------------------------- AUTORE: 247 DATA :31/10/2006 - 12:18:08 ---------------------------------------- Ciao, il non aggiornamento ti capita indifferentemente sia per i controlli linkati alla typedef che alle costanti derivanti da questi? se non erro io ho avuto lo stesso problema ma solo con le costanti.. BYE. ---------------------------------------- AUTORE: 384 DATA :31/10/2006 - 13:52:22 ---------------------------------------- Si, è indiferente su controlli e costanti. Effettivamente, anche se normalmente cambio le TypeDef con "Open TypeDef" dal menu a tendina, non posso giurare che non l'abbia fatto aprendo direttamente il file - tanto, sapevo esattamente cosa fare. Ma allora, com'è che sono diversi? Dove sono fisicamente localizate le due "versioni"? ---------------------------------------- AUTORE: 1168 DATA :02/11/2006 - 07:37:27 ---------------------------------------- Anche io ho lo stesso problema, ma solo con le costanti. Ciao P! ---------------------------------------- ================================================================================ Uso della comunicazione DataSocket ================================================================================ AUTORE: 645 DATA :31/10/2006 - 12:42:04 ---------------------------------------- \":?:\" Vi chiedo un parere: qualcuno ha usato DataSocket e sa dirmi vantaggi e svantaggi? Oggi ho provato a pubblicare dati su un server con ip statico e leggere quei dati con un VI funzionante sul mio pc tramite internet. Funziona benissimo: poco codice e solo un momento iniziale di sincronizzazione. Quello che non so è se la pubblicazione dei dati sul server occupa memoria e quindi, in caso di programmi pensati per funzionare molti giorni ed esaminare dati estratti da un database, potrebbe portare al crash del sistema. Sto provando perchè la pubblicazione di dati in internet tramite la creazione di pagina web del VI principale risulta molto ma molto lenta mentre con i DataSocket potrei pensare di creare un VI principale che fa tutte le varie operazioni e un VI secondario da usare come client per accedere al VI principale (in sola lettura, ma va bene per quello che devo fare). ---------------------------------------- ================================================================================ Event structure, evento "mouse down" non legge il ================================================================================ AUTORE: 384 DATA :31/10/2006 - 18:17:42 ---------------------------------------- Cia. Ho scoperto questo strano comportamento per caso: In una event structure, se uso l'evento mouse down per accettare che l'utente clicchi sul "label" oltre che sul pulsante, il codice dell'evento si esegue, ma il controllo stesso non viene letto. Guardate il vi allegato. (LV 7.0 - ahimè!). Qualcuno ha notato questo? Come mai si comporta cosí? Saluti. ---------------------------------------- AUTORE: 384 DATA :31/10/2006 - 18:22:18 ---------------------------------------- Magari lo spiego meglio: Il pulsante "Incrementa" è impostato su azione "latch When Released". Se si clicca sul label, funziona tutto come ci si aspetta. Se si clicca sul pulsante, il suo stato cambia (in TRUE), il codice del'evento si esegue - il contatore viene incrementato! - ma il pulsante non viene letto e quindi non viene resettato (a FALSE). Mi sfugge il perchè. ---------------------------------------- AUTORE: 680 DATA :31/10/2006 - 19:10:50 ---------------------------------------- utilizza "value change" al posto di "mouse down" vedrai che funziona correttamente....... ---------------------------------------- AUTORE: 384 DATA :31/10/2006 - 19:21:57 ---------------------------------------- Lo so che con il "value change" funziona. É con il "mouse down" che non capisco il comportamento. Lo dovrei usare perchè l'utente del software, per come sono disposti i controlli, vorrebbe poter cliccare anche sul 'label' anzichè soltanto sul pulsante stesso. ---------------------------------------- AUTORE: 680 DATA :31/10/2006 - 19:48:28 ---------------------------------------- [quote="gyc":25l77obb]Lo so che con il "value change" funziona. É con il "mouse down" che non capisco il comportamento. Lo dovrei usare perchè l'utente del software, per come sono disposti i controlli, vorrebbe poter cliccare anche sul 'label' anzichè soltanto sul pulsante stesso.[/quote:25l77obb] allora puoi impostate sullo stesso event case il value change del tasto ed il mouse down della label..... ---------------------------------------- AUTORE: 384 DATA :31/10/2006 - 20:03:14 ---------------------------------------- [quote="linux120":1bx3be0t] allora puoi impostate sullo stesso event case il value change del tasto ed il mouse down della label.....[/quote:1bx3be0t] In questo modo genera due eventi quando si clicca sul pulsante, quindi non va bene. ---------------------------------------- AUTORE: 129 DATA :01/11/2006 - 06:43:57 ---------------------------------------- col tasto destro però funziona. ma non è che dovresti usare un altro latch (latch when pressed?), con quello funziona perfettamente. Comunque anche secondo me dovrebbe ripristinare il pulsante prima di uscire dall'evento. ---------------------------------------- AUTORE: 482 DATA :02/11/2006 - 07:29:01 ---------------------------------------- Ho fatto una prova ed effettivamente quel tipo di latch crea un po' di casini.. la questione Mouse down... Il problema è che l'evento si genera prima che il booleano abbia cambiato di stato. Quindi viene bloccato il booleano ad uno stato intermedio quindi il case legge l'ultimo stato valido credo... effettivamente il case Mouse Down non è forse quello piu' adatto per rilevare una modifica su un controllo. Tral'altro se non mi ricordo male, per quanto riguarda il rapporto tra gli eventi e i controlli, c'era qualcosa da tener presente nella differenza tra i case con la freccetta rossa e quelli con la freccetta verde..voi sapete qualcosa in merito? ---------------------------------------- AUTORE: 384 DATA :02/11/2006 - 09:36:15 ---------------------------------------- [quote="nicola":10je6a1g]col tasto destro però funziona. ma non è che dovresti usare un altro latch (latch when pressed?), con quello funziona perfettamente. Comunque anche secondo me dovrebbe ripristinare il pulsante prima di uscire dall'evento.[/quote:10je6a1g] Per l'utente non è "ovvio" che deve cliccare su un pulsante con il tasto destro. Ho provato con il "latch when pressed" e funziona meglio, ma ogni tanto il pulsante rimane "premuto". Non sempre come con "latch when released" ma qualche volta. [quote="gepponline":10je6a1g]Tral'altro se non mi ricordo male, per quanto riguarda il rapporto tra gli eventi e i controlli, c'era qualcosa da tener presente nella differenza tra i case con la freccetta rossa e quelli con la freccetta verde..voi sapete qualcosa in merito?[/quote:10je6a1g] Gli eventi con la "freccia rossa" hanno un "properties box" a destra della structure che sipossono settare. In particolare c'e'il "discard?" che permette di buttare l'evento, cioè, da codice si può decidere di far come se l'evento non fose mai sucesso. . ---------------------------------------- AUTORE: 927 DATA :02/11/2006 - 10:47:52 ---------------------------------------- Probabilmente le hai già lette, cmq nella documentazione di Labviù ci sono due pagine interessanti: "Using Events with Latched Boolean Controls" e "Handling a Latched Stop Boolean Control in an Event Structure" ---------------------------------------- AUTORE: 384 DATA :02/11/2006 - 14:15:35 ---------------------------------------- Si, le ho viste, ma non aggiungono niente di nuovo. Cmq grazie. ---------------------------------------- ================================================================================ Scheda USB ================================================================================ AUTORE: 248 DATA :02/11/2006 - 15:17:20 ---------------------------------------- Buongiorno, dovrei utilizzare per la prima volta una scheda USB con una dll dedicata per la gestione di alcuni I/O. Non ho mai usato una call library function e sono in difficoltà nell'implementazione (in particolare come devo parire e chiudere il dispositivo e magari ad esempio settare un uscita digitale).Metto i file con la dll e la sintassi delle chiamate a disposizione per chi volesse perdere due minuti a scrivere un vi di esempio. Grazie in anticipo ---------------------------------------- AUTORE: 248 DATA :03/11/2006 - 12:32:51 ---------------------------------------- Ciao, ho tentato di fare un piccolo vi per capire come funziona l'oggetto in funzione delle specifiche che ho allegato in precedenza. Da quello che ho capito, se metto in ingresso il numero di scheda esatto (0-1-2-3) mi deve restituire in uscita il numero stesso sennò deve darmi "-1". Quello che mi ritrovo invece è un bel messaggione di errore che dice che labview.exe è andato in errore, che potrei aver perso i dati e fine di labview. E' un errore del vi o potrebbe essere un difetto di installazione? (labview 8.0 con windows XP Home). Grazie a chi volesse partecipare. ---------------------------------------- AUTORE: 384 DATA :05/11/2006 - 17:11:33 ---------------------------------------- Una DLL deve essere creata con alcuni particolari accorgimenti per poter essere usata con LabView. Temo che la tua non sia compatibile con LabView. Ho avuto lo stesso problema con un'altro tipo di hw. C'era la DLL ma LabView si impiantava all prima chiamata. L'unica possibilità è che il fabbricante sia disposto a compillare il suo software in una DLL compatibile con LabView. Ritengo sia un'ipotesi MOLTO remota. Nel mio caso, l'hw era anche utilizzabile tramite un server OPC, quindi ho seguito quella strada. Per info sulle DLL in LabView, guarda qui: http://zone.ni.com/reference/en-XX/help ... rary_dll_/ Comunque, se cerchi su NIZone con "dll building" trovi tutte le informazioni. ---------------------------------------- AUTORE: 248 DATA :06/11/2006 - 07:58:55 ---------------------------------------- \":evil:\" e dire che mi avevano detto che tutto ciò che era interfacciabile con visual basic poteva essere letto anche dal labview... Quello che mi dici "mi sconvolge"... \":o\" \":o\" \":cry:\" ---------------------------------------- AUTORE: 384 DATA :06/11/2006 - 08:23:48 ---------------------------------------- Non so chi te l'abbia detto, ma evidentemente non era molto conoscitore di LabView. Mi sembra molto un'affermazione da venditore!!! . ---------------------------------------- AUTORE: 248 DATA :06/11/2006 - 08:55:51 ---------------------------------------- [quote="gyc":14iot9k5].......Mi sembra molto un'affermazione da venditore!!! .[/quote:14iot9k5] \":evil:\" gia!! \":evil:\" \":evil:\" ---------------------------------------- AUTORE: 384 DATA :06/11/2006 - 08:59:04 ---------------------------------------- Nel caso di hw USB, se riesci a farti dare il protocolo di comunicazioni (cioè, il linguaggio di commandi), puoi provare a implementarlo direttamente con i blocchi VISA. La tua scheda è visibile dal MAX? Non so che tipo di applicazione devi fare, ma esistono altri fabbricanti di hw usb compatibile con LabView e con prezzi abbastanza modici: http://www.dataq.com/products/software/activex.htm http://www.measurementcomputing.com/index.html In generale, per garantire che un certo hw sia utilizzabile con LabView si deve verificare almeno una delle seguenti condizioni: -forniscano una libreria di VI -se forniscono solo una DLL, che essa sia compatibile con LabView -forniscano dei controlli ActiveX -forniscano un OPC server ---------------------------------------- AUTORE: 248 DATA :06/11/2006 - 09:22:59 ---------------------------------------- grazie sei stato utilissimo!! ---------------------------------------- AUTORE: 248 DATA :07/11/2006 - 07:28:42 ---------------------------------------- ho trovato la soluzione (non è farina del mio sacco). A chiunque interessi, la rendo pubblica. \":oops:\" \":lol:\" ---------------------------------------- ================================================================================ "Scrematura" dati in arrivo dalla seriale ================================================================================ AUTORE: 1568 DATA :02/11/2006 - 16:50:36 ---------------------------------------- Ciao a tutti! sono nuovo e questo è il mio primo post sul forum. Ho bisogno di un aiuto in quanto sono alle primissime armi e trovo difficoltà anche nelle cose più banali perciò non arrabbiatevi se la mia domanda può sembrarvi banale. Stò inviando dati di conteggi di tempo effettuati da un PIC, tramite seriale, al PC. Ora, il PIC è programmato in modo che quando il timer và in overflow venga inviato il byte 0xFF (255). Io vorrei eliminare dal flusso di dati che arrivano dalla seriale tali bytes (che sono misure non valide), magari sostituendoli con il precedente tempo valido misurato e segnalando l'overflow con una spia luminosa. Ho provato ad usare il Delete from Array ma non capisco come usarlo. Qualcuno può aiutarmi? Vi posto il mio VI così Gli potete dare un occhiata e farmi tutte le domanda del caso. ---------------------------------------- AUTORE: 1154 DATA :03/11/2006 - 07:14:10 ---------------------------------------- Ciao, volevo sapere se usi qualche carattere speciale per dividere i dati tra loro? potresti analizzare la singola stringa di misura letta e fare un confronto con la stringa che vuoi eliminare... Non sono riuscito ad aprire il tuo VI forse perchè ho ancora la versione 7.1, che versione usi? intanto prova così poi caso mai ti posto un esempio Ciao ---------------------------------------- AUTORE: 1568 DATA :03/11/2006 - 09:54:38 ---------------------------------------- Dunque Fabio, intanto grazie dell'attenzione. Nella trasmissione non uso nessun carattere speciale di inzio e fine pacchetto ne controlli di alcun tipo (parità, CRC ecc..). E' uno streaming di dati semplicissimo. La logica di funzionamento è questa: -Il microcontrollore conta un Tempo che intercorre tra due eventi attraverso il suo timer interno, lavorando con le interruzioni. - appena il dato è disponibile il microcontrollore disabilita le interruzioni e invia il dato sulla seriale - Appena la trasmissione è finita il micro riabilita le interruzioni e si mette in attesa di un nuovo conteggio. Possono accadere due cose: 1) Il secondo evento arriva troppo tardi o non è rilevato affatto dal sensore connesso al PIC e dunque il Timer và in overflow. Quando ciò accade un aposita interruzione si preoccupa di inviare per convenzione il valore 255 (byte 11111111) sulla seriale ad indicare che non ho rivelato un dato valido. 2) Poichè la seriale è settata a 9600 Kb/s può anche accadere che il dato non sia ancora pronto quando ho inviato il precedente e dunque mi ritrovo in ricezione uno zero (NUL) (PS: almeno io così mi sono spiegato la presenza di numerosi 0 nei dati in arrivo, magari stò dicendo una castroneria \":-)\" ) Entrambi i casi individuano eventi non corretti e dunque da scartare dal flusso di valori che voglio graficare attraverso Labview. Ho visto che esiste il Delete from Array ma non ho la più pallida idea di come usarlo. Un' altra idea che avevo provato era di usare dei comparatori con 0 e 255 connessi entrambi ad un OR, per ottenere un boolean che diviene TRUE quando ho appunto uno 0 o 255. Come usarlo però? pensavo ad una struttura case che quando ho true non fà passare il dato e quando ho false invece sì, ma mi dà 1000 errori a partire dal fatto che non vuole che colleghi la mia variabile booleana alla condizione del case perchè dice che è un array di boolean (?!). Spero di averti chiarito un pò le idee. PS: la mia versione è labview 8.0, non sò se c'è un modo per rendere il mio VI accessibile anche a te. ---------------------------------------- AUTORE: 1154 DATA :03/11/2006 - 10:58:40 ---------------------------------------- Ciao per salvare in una versione precedente, vai su "file" "save with options" e selezioni a sinistra "save for previus" Ti allego una bozza dove vedi come fare la comparazione con 0 o FF visto che la lettura della seriale viene vista come una stringa... Spero che sia utile Ciao Fabio ---------------------------------------- AUTORE: 1568 DATA :03/11/2006 - 12:02:45 ---------------------------------------- oh Fabio grazie mille dell'aiuto che mi stai dando, sei l'unico che stà perdendo tempo con il mio problema. Confesso che mi aspettavo qualcosa di più soprattutto dai veterani del labview e del forum \":-)\" Ti mando il mio programma sperando di non aver fatto casino perchè nella conversione mi ha dato un pò d'errori. Il programma, che spero vedrai, funziona così: prelevo dati dalla seriale, converto da carattere a numero, moltiplico per un coefficiente, filtro i dati con un filtro a media mobile e plotto su grafico. Contemporaneamente posso salvare su file di testo LVM le misure oppure leggere da file e graficare. La pulitura dei dati andrebbe ad inserirsi sullo streming in real time e su quello da file. Per quanto riguarda il tuo programma è praticamente quello che avevo pensato anch'io, però il problema è che non ho un carattere, ma un 1-D array di numeri e quando collengo questi all'ingresso dei comparatori mi dà un errore sul filo in uscita dalla OR. Mi dice che il mio segnale è (giustamente) un 1-D array di boolean e che invece la struttura CASE vuole sull'ingresso "?" un boleano singolo (T o F). Come fare? ---------------------------------------- AUTORE: 1154 DATA :03/11/2006 - 12:30:11 ---------------------------------------- Ciao Ho provato a guardare il VI, (èremetto non sono molto esperto) potresti per prima cosa isolare la lettura dalla seriale con un ciclo while singolo, dove lo vai a stoppare quando i byte ricevuti sono uguali a quelli che deve leggere, questo ti permetterebbe: di analizzare una stringa completa in arrivo, e potresti pulire i tuoi dati direttamente dalla stringa in arrivo. Puoi quindi ottenere tutti i valori separatamente e confrontarli uno ad uno separandoli (creeresti un VI enorme), altrimenti dal 1D array, tramite un ciclo For li analizzi singolarmente i valori e li riporti nell'array in uscita (secondo me questa è la starda) Sarebbe meglio se il PIC inviasse un separatore tra una misura ed un'altra questo ti permetterebbe di leggere questo segnale ed andresti meglio a riconoscere gli eventuali errori. ora ti devo lasciare. Intanto prova queste soluzioni poi vediamo se c'è qualcun altro con latre idee... (PS un consiglio, prima di andare a leggere i dati dalla seriale pulisci il buffer in modo da non occupare troppa memoria... Blocchi "instrument I/O" poi "Visa" poi "visa advanced" poi "iterface Specific" poi "Visa flush I/O Buffer" con valore in ingresso 64 così cancelli il buffer riportandolo a 0) ---------------------------------------- AUTORE: 1568 DATA :05/11/2006 - 10:38:33 ---------------------------------------- Il trucco dello svuotamento del buffer lo provo subito, non lo sapevo! Per quanto riguarda il discorso dei cicli, scusami, ma sono un pò poco pratico perciò non ho capito bene. Il blocco visa read non dovrebbe già leggere di per sè un n° di bytes specificato da me? Comunque mi sembra di capire da quel che dici che dovrei ridurmi ad un vettore di N elementi alla volta per manipolarlo poi con un ciclo for controllandolo elemento per elemento giusto? Come faccio però a creare un simile Array? ---------------------------------------- AUTORE: 645 DATA :05/11/2006 - 15:11:01 ---------------------------------------- Allora vediamo... con il blocco VISA Read leggi del buffer gli "n" byte impostati (come nel tuo VI zippato): se con questa lettura leggi tutti i caratteri disponibili sul buffer della seriale, dopo la lettura il buffer dovrebbe essere vuoto (senza usare il "Flush"). Per leggere tutti i caratteri disponibili puoi mettere prima della lettura un "Property Node" (clicchi con il tasto dx sul riferimento alla porta seriale e... guarda l'immagine 1). L'uscita del "Property Node" appena creato la usi come ingresso del blocco VISA Read: in questo modo leggi tutti i caratteri presenti nel buffer seriale. Poi... per confrontare le posizioni di un array con una costante (per esempio 255 o 0 per poterli scartare) devi analizzare le singole posizioni dell'array: per fare questo passi l'array ad un ciclo For e controlli ogni elemento (immagine 2). A seconda del risultato della comparazione passi il valore dell'array al grafico oppure no. Fai qualche prova e poi fai sapere... ---------------------------------------- AUTORE: 1568 DATA :05/11/2006 - 19:03:47 ---------------------------------------- Bè intanto grazie, vedo che piano piano questo thread stà prendendo "corpo". Più o meno credo di aver capito quello che devo fare, anche se ho dei problemi sul property node visto che non sò nemmeno cosa sia \":oops:\" Vedrò di leggere qualcosa a riguardo e poi fare delle prove. A risentirci ---------------------------------------- AUTORE: 1568 DATA :06/11/2006 - 10:10:35 ---------------------------------------- Bene. Grazie al vostro aiuto sono riuscito ad ottenere una scrematura dei dati della seriale. Adesso mi manca solo di capire come rimpiazzare il valore corrotto con il precedente valore valido ricevuto. Qualche idea? PS: Magic Botolo ancora non ho capito il discorso sul property node, dove lo devo inserire? e perchè? ---------------------------------------- AUTORE: 645 DATA :06/11/2006 - 10:47:23 ---------------------------------------- Quando leggi i valori dalla seriale ottieni un array di dati. Quando analizzando il valore dell'array scopri che corrisponde ad un valore non valido puoi utilizzare il valore presente nell'array nella posizione precedente (se usi un ciclo per controllare le singole posizioni dell'array puoi accedere alla posizione precedente usando "Index Array" con indice pari all'indice del ciclo diminuito di 1). Per quanto riguarda i "Property Node" li crei cliccando con il tasto destro sull'elemento che ti interessa e selezionando la voce "Create--> Property Node". A seconda dell'elemento selezionato LabView mette a disposizione proprietà diverse tra le quali scegliere corrispondenti alle caratteristiche dell'elemento selezionato (per esempio ti permettono di accedere agli elementi o alle intestazioni di una Tabella, al valore di un Indicatore...). Per le periferiche seriali una delle proprietà è "Numero di byte sul buffer". Guarda l'immagine... ---------------------------------------- AUTORE: 1568 DATA :06/11/2006 - 11:47:07 ---------------------------------------- ok, pensavo anch'io all'idea del blocco index array. C'è però un problema: io voglio che ogni 0 e 255 sia rimpiazzato con un valore misurato VALIDO. Ora, se succede che 2 o più valori consecutivi sono non validi, ad esempio due 0, il primo viene effettivamente sostituito con un dato valido, ma il secondo viene sostiutito con uno 0! quindi dovrei fare un indicizzazione sui valori che escono dalla struttura case che rappresenteno i dati validi. Quest'ultimo pasaggio mi stà creando delle difficoltà. Provo a postare il file aggiornato con gli ultimi ritocchi ---------------------------------------- AUTORE: 645 DATA :06/11/2006 - 12:10:46 ---------------------------------------- Se analizzi un dato alla volta non hai problemi in caso di dati successivi non validi: controlli una posizione alla volta e se trovi un dato non valido lo sostituisci con quello precedente che è sicuramente valido. Nel momento in cui hai due dati non validi che si susseguono sostituisci il primo quando lo trovi. A questo punto puoi sostituire il secondo perchè al posto del primo hai messo un dato valido. È un gioco di parole un po' contorto ma spero si capisca... ---------------------------------------- AUTORE: 1568 DATA :06/11/2006 - 13:17:48 ---------------------------------------- ho capito perfettamente \":)\" è quello che intendevo dire anch'io, però il valore precedente è inteso come "dell' array ripulito dai dati corrotti" E' proprio questo il mio problema: reimmettere il precedente dato valido uscito dal ciclo case dentro al case nel caso di condizione true. Mi compare automaticamente il feedback node, ma mi dà un errore.... non sò se mi sono spiegato... ---------------------------------------- AUTORE: 645 DATA :06/11/2006 - 13:22:12 ---------------------------------------- Prova con uno "shift register": alla fine di ogni ciclo tieni in memoria il valore utilizzato per poterlo riusare nell'iterazione successiva. ---------------------------------------- AUTORE: 1568 DATA :06/11/2006 - 14:37:25 ---------------------------------------- ok! fatto! finalmente! Grazie davvero a tutti e due per avermi dato una mano, magari vi cito nella mia tesi... \":D\" ---------------------------------------- ================================================================================ modbustcp beckoff ================================================================================ AUTORE: 683 DATA :03/11/2006 - 14:37:04 ---------------------------------------- ciao a tutti, sn appena venuto in possesso di moduli di acquisizione beckoff comunicano anche con il portocollo modbus tcp ho provato le librerie gratuite di NI scaricate del sito ma ninete di che allora seguendo la guida del intrefaccia ho guardato i comando modbus tcp ora io m sn fatto una piccolo vi ke manda i byte in una connessione tcp alli moduli l'unica cosa ke nn rieco a far cabiare di stao i coil in modulo comunque risponde con i dati che io mando qualcuno ha già implementato un modbus tcp su questi tipi di moduli?? ---------------------------------------- ================================================================================ protezione software ================================================================================ AUTORE: 24 DATA :05/11/2006 - 19:24:53 ---------------------------------------- Buon giorno a tutti. Avrei intenzione di proteggere l'seguibile generato con Labview. Desiderei che l'eseguibile sia tale solo sul computer installato e non su altri. Esiste un modo di leggere un codice specifico del pc dove l'applicazione è installata e confrontarlo con quella scritta nel codice dell'eseguibile. Tipo le keyprovvisorie di National Instruments, dove serve comunicare il numero seriale della macchina. Avete qualche sempio? Grazie \":(\" ---------------------------------------- AUTORE: 384 DATA :06/11/2006 - 06:50:14 ---------------------------------------- Se cerchi in rete, esistono tantissimi sw che sono compatibili con labview e che permetono diverse tipologie di protezioena: -legato al HD, al processore, MAC address -protezione a scadenza -numero finito di installazioni ecc. Puì generalmente si può implementare un meccanismo "fatto in casa" raccogliendo questi dati. Guarda gli allegati. ---------------------------------------- AUTORE: 1168 DATA :06/11/2006 - 07:32:41 ---------------------------------------- Bellloooooo... ma come faccio ad eseguire codice cpp in Labview? Tutto in un formula node? E come lavoro con gli ocx? (forse questo è un altro topic) Che ne dici di postare un VI che usa il codice che hai già allegato come esempio? Grazie mille in anticipo, Ciao P! ---------------------------------------- AUTORE: 384 DATA :06/11/2006 - 11:18:35 ---------------------------------------- Devi richiamare la funzione della DLL con un "Call Library Function Node" (guarda l'help di LabView). I sorgenti cpp servono solo a capire il prototipo per poter configurare il "Call Library Function Node". Per l'OCX, devi prima registrarlo (register32.exe, guarda l'help di windows oppure cerca in rete). Ho solo un esempio con l'OCX. Lo allego. . ---------------------------------------- AUTORE: 1168 DATA :08/11/2006 - 10:42:40 ---------------------------------------- Ciao! Ho registrato l'ocx, poi siccome il VI continuava a dirmi che non poteva caricare il controllo, ho reinserito un oggetto activeX linkandolo al file dell'ocx. Ora mi restituisce "Null refnum passed as input"... hai un'idea del perchè? Ho la versione 8.2 Full.... ---------------------------------------- AUTORE: 384 DATA :08/11/2006 - 11:05:50 ---------------------------------------- A me funziona normalmente su LV 7.1. Non ho ancora installato la 8.2 (e da quello che leggo, forse non lo faró nemmeno! \":o\" ) quindi davvero non so se posa dipendere dalla versione. Prova magari a contattare diretamante Nicola, MagicBotolo o Ale914. Loro hanno la 8.2. ---------------------------------------- AUTORE: 384 DATA :08/11/2006 - 11:10:46 ---------------------------------------- Prova a cliccare con il pulsante destro sul controllo, scegli HardwareInfo/Properties. Si dovrebbe aprire una finestra con tutte le caratteristiche rilevate organizzate in tab. Se già questo non funziona o i risultati sono vuoti, allora hai dei problemi con la registrazione del controllo OCX. Lo ha copiato ed installato dalla directory system32 di windows? ---------------------------------------- AUTORE: 1168 DATA :08/11/2006 - 12:20:16 ---------------------------------------- L'ho risolto rilinkando il controllo dalla lista di quelli presenti. Io gli dicevo di creare un nuovo controllo da file e andavo a selezionare l'ocx... Ciao P! ---------------------------------------- ================================================================================ Case Structure ================================================================================ AUTORE: 955 DATA :06/11/2006 - 14:43:20 ---------------------------------------- Devo fare una cosa che sulla carta non credo sia così complicata ma ad implementarla in labview beh ci sto perdendo la testa da stamane... \":roll:\" Vi allego il circuito così forse è + chiaro.. per come l'ho costruito ora non parte perchè mi da errore di memoria. Ho notato però che se riesco a portare tutto cioè che c'è a destra del case structure in poi ovvero dal build array a seguire all'interno del case structure esegue senza problemi...il problema però è che devo avere un unico tone &noise generator che sia in grado di rappresentarmi sia la continua sia la fondamentale che le armoniche... come si fa? cioè come si fa ad implementare contemporaneamente sia il case 0 che il case 1 che quelli superiori al 2? \":?\" \":?\" grazie \":)\" ---------------------------------------- AUTORE: 927 DATA :07/11/2006 - 09:48:31 ---------------------------------------- Non mi apre il VI, e non mi dà nemmeno alcun messaggio di errore! Che versione di Labviù è? ---------------------------------------- AUTORE: 482 DATA :07/11/2006 - 13:41:09 ---------------------------------------- Trovato il problema. Dove hai scritto "Sample to Read Veri", nel caso in cui i sia diverso da 1 quidni alla iterazione 0 passi uno zero come divisore. Quidni in uscita hai un NaN (Not A Number) questo valore indica il numero di campioni che vuoi fargli analizzate nel Tones & Noise. Con questo ingresso il VI senza andare ad indagare troppo cosa faccia di preciso crasha riempiendo la memoria. Modifica quel passaggio e sei a posto! \":wink:\" ---------------------------------------- ================================================================================ Inserire un messaggio ogni X secondi ================================================================================ AUTORE: 1575 DATA :06/11/2006 - 21:35:01 ---------------------------------------- Ciao a tutti! Qualcuno potrebbe dirmi come si puoi fare in questo esempio in Lab View in modo che quando si preme il pulsante Start/Stop e cambia il valore della variabile "comp" si puoi vedere il messaggio? Nel mio esempio si puoi vedere ma continuamente e solo voglio vederlo quando cambia il valore della variabile "comp" (da 1 a 0 oppure da 0 a 1) Ho pensato anche farlo con il nuovo e vecchio valori della variabile "comp" (con una XOR) ma non so in che modo posso ritenere il vecchio valore, qualcuna idea? Sono una spagnola nuova in Italia e forse il mio italiano non è molto buono, mi dispiace \":cry:\" Grazie mille e saluti! ---------------------------------------- AUTORE: 1528 DATA :06/11/2006 - 22:43:18 ---------------------------------------- Ma nel senso che periodo è ogni quanto vuoi che si vede il messaggio? ---------------------------------------- AUTORE: 247 DATA :06/11/2006 - 23:33:56 ---------------------------------------- Ciao, Ovvimente Benvenutissssssimaaaaa!!! [quote:ifofa9om]Ho pensato anche farlo con il nuovo e vecchio valori della variabile "comp" (con una XOR) ma non so in che modo posso ritenere il vecchio valore, qualcuna idea? [/quote:ifofa9om] Quello che ti serviva era uno shift register, è il metodo che ti consente di recuperare nel ciclo n un valore appartenente ad un controllo od indicatore al ciclo precedente, lo puoi aggiungere alle strutture iterative (while e for) facendo click destro sul bordo della struttura e selezionando Add shift register; se ti servono maggiori info chiedi, cmq sono sempre ben spiegati anche nei manuali NI proprio perchè fondamentali. Ho provato a modificare il tuo VI come chiedevi, dimmi se ti va bene così. Ho tolto la struttura ad eventi, per ora non dovrebbe servirti. BYE. P.S. Vita facile per le spagnole che parlano poco l'italiano in Italia no? \";-)\" Besos. ---------------------------------------- AUTORE: 1528 DATA :07/11/2006 - 14:26:42 ---------------------------------------- Ma in definitiva la differenza tra shift register e feedback node qual'è? ---------------------------------------- AUTORE: 4 DATA :07/11/2006 - 14:34:07 ---------------------------------------- nessuna è solo una differenza estetica che, secondo me, peggiora la leggibilità del codice e produce confusione... ---------------------------------------- ================================================================================ File TXT ================================================================================ AUTORE: 1299 DATA :07/11/2006 - 08:32:23 ---------------------------------------- SAlve a tutti e rieccomi qui. Sto avendo qlc problemuccio a leggere dei dati da un file txt per puoi visualizzarli in un grafico. Il mio file txt contiene una colonna con data e tempo e altre colonne in base ai segnali che acquisisco qualcuno potrebbe aiutarmi? sugl'esempi non ho trovato nulla grazie mille ---------------------------------------- AUTORE: 247 DATA :07/11/2006 - 08:48:07 ---------------------------------------- Ciao, tutto dipende da come hai formattato i dati nel file di testo, ad esempio è importante sapere quale sia il carattere che hai utilizzato per separare le colonne...posta qualche riga del file e vediamo.. BYE. ---------------------------------------- AUTORE: 1299 DATA :07/11/2006 - 08:59:33 ---------------------------------------- alelgo il file che scrivo grazie in anticipo ---------------------------------------- AUTORE: 4 DATA :07/11/2006 - 09:01:26 ---------------------------------------- ciao, immagino che il file sia in formato testo e non binario. Supposto questo sai quale carattere delimita le colonne? Se non lo sai prova ad aprirlo con execl, la procedura dovrebbe dirti di che tipo di file si tratta, nella maggior parte dei casi il separatore è il carattere TAB (file TAB delimited) o la virgola. Dal lato labview, leggi il file come testo usando read from file (non altre funzioni più di alto livello) poi passa la stringa ottenuta alla funzione [i:gpq3e5uz]Spreadsheet String To Array[/i:gpq3e5uz] passandogli come separatore o tab o virgola ecc ecc e come tipo dato una matrice 2d di stringhe. Ciao ---------------------------------------- AUTORE: 1299 DATA :07/11/2006 - 10:11:35 ---------------------------------------- scusatemi ma non riesco... il separatore è il TAB vedo un unico segnale che è zero e scorre nel tempo. invece il grafico deve essere istantaneo del senso che deve plottare solo i dati presi dal file. scustemi sono nuovissimo di qst programma! grazie mille! ---------------------------------------- AUTORE: 1299 DATA :07/11/2006 - 10:39:57 ---------------------------------------- posto il file generato con l'8.0 vedo che la non me la plotta nell'asse delle x ma mi genera un'altro segnale... grazie per l'aiuto ---------------------------------------- AUTORE: 482 DATA :07/11/2006 - 13:33:00 ---------------------------------------- Ehm..a me sembra QUASI tutto ok.... mi spiego: Tu hai 4 colonne nel file e chiedi di plottare come DATI (quindi array di Y) tutte e 4 le colonne. 1) data e tempo -> vuoi usarlo come asse dei tempi (X) o vuoi ignorarlo? 2) dati rilevati -> li visualizza correttamente 3 e 4) Dati costanti e quidni si visualizza una riga orizzontale. Quindi al momento il valore massimo di X corrisponde al numero di elementi della colonna piu' lunga. Se vuoi che i tempi siano presi dalla prima colonna devi manipolare il dato e utilizzare l'XY graph anzichè il waveform. Se invece i dati dei tempi non ti interessano devi semplicemente dirgli di prendere i dati eliminando la prima colonna. L'unico errore che vedo nel tuo VI e' che hai messo il tutto in un ciclo e NON TEMPORIZZATO cosi' continui a leggere il file il piu' velocemente possibile, praticamente continui a fare un operazione inutile ammazzando le risorse del pc \":wink:\" ---------------------------------------- AUTORE: 1299 DATA :07/11/2006 - 13:41:05 ---------------------------------------- geppoline grazie per l'aiuto io devo usare la prima colonna sarebbe qll relativa al tempo come asse delle x e le altre 3 colonne come y. come posso fare? grazie mille ---------------------------------------- AUTORE: 482 DATA :07/11/2006 - 14:01:27 ---------------------------------------- Provo a lavorarci... ti annuncio che il vaoro è semplic eper quanto rigard ai dati, la cosa difficile è che purtroppo i formati DATA/ORE non sono gestiti benissimo e quindi è un po' un casino convertire da stringa a data. ---------------------------------------- AUTORE: 482 DATA :07/11/2006 - 14:26:25 ---------------------------------------- Ecco a te quello che volevi! \":wink:\" L'ho salvato in versione 8.0, spero ti vada bene. ---------------------------------------- AUTORE: 1299 DATA :07/11/2006 - 14:48:00 ---------------------------------------- grazie mille ho lasciato l'orario e tolto la data grazie mille !!!! ---------------------------------------- ================================================================================ aiuto per progetto universitario ================================================================================ AUTORE: 1579 DATA :07/11/2006 - 19:34:15 ---------------------------------------- [color=blue:18cyxlzr]<STAFF>[/color:18cyxlzr][b:18cyxlzr]Post spostato dalla sezione Download, era stato inserito nel topic "SchmidtTrigger" di enr al quale sifrana chiedeva, come si legge qui di seguito, di poter utilizzare il suo VI...questo è il [url=http://www.ilvg.it/forum/viewtopic.php?t=1517&start=0&postdays=0&postorder=asc&highlight=:18cyxlzr]link al topic[/url:18cyxlzr][/b:18cyxlzr][color=blue:18cyxlzr]<STAFF>[/color:18cyxlzr] Ciao sono Francesca,studio Ing.Informatica a parma, ma attualmente mi trovo in Spagna per il progetto Erasmus. Ho una materia qui in cui bisogna presentare un progetto avanzato in labview8..io non l'ho mai visto prima e lo sto imparando..ma devo trovare qualcosa entro la fine di novembre.... Il tuo trigger mi sembra una buona opportunità... mi potresti aiutare? Grazie mille Fra ---------------------------------------- AUTORE: 384 DATA :08/11/2006 - 11:15:58 ---------------------------------------- Benvenuta al ILVG! Prova a descrivere brevemente il tuo problema. In questo forum ci sono tanti volenterosi "cavalieri della programmazione" che non mancherano di aiutare una "donzella" in pericolo! \":wink:\" ---------------------------------------- AUTORE: 1165 DATA :08/11/2006 - 12:51:47 ---------------------------------------- ciao francesca .. grazie per il tuo interesse in quel piccolo algoritmo che ho sviluppato qualche anno fa .. come però tu stessa puoi vedere è una piccola cosa .. un semplice algoritmo sequenziale che implementa un po' il comportamento del trigger di schmidt hardware .. cercando di ripulire e risquadrare un segnale hardware corrotto da rumore (ovviamente solo fino ad un certo punto) impostando due soglie di guardia settabili dall'utilizzatore .. se comunque sei interessata posso molto volentieri vedere come aiutarti .. però devo confessarti che dopo qualche anno ho una certa difficoltà anche io a ricostruirne il funzionamento .. e a questo proposito se qualcune del forum vuole contribuire a dare una spiegazione esauriente dei dettagli di funzionamento è ben accetto e avrà anche la mia gratitudine .. oltre ad aver aiutato te .. ma comunque fammi sapere ok?? ---------------------------------------- ================================================================================ LabVIEW e HID ================================================================================ AUTORE: 1137 DATA :08/11/2006 - 13:20:25 ---------------------------------------- ciao, qualcuno qui dentro ha mai visto un parser HID in LabVIEW? HID = Human Interface Device Se ho capito bene, e' una specifica sviluppata da usb.org (vedi sito www.usb.org) abbastanza complicata, dove si da in pasto al driver un elenco di oggetti, scritti con una sintassi particolare, e il driver, in base al parse della definizione degli oggetti, e' in grado di leggere e generare messaggi composti da gruppi di 8 byte, che rappresentano una codifica binaria delle informazioni da trasmettere. Esempio: 0x09, 0x01, // USAGE (iName) 0x85, 0x02, // REPORT_ID (2) 0x75, 0x08, // REPORT_SIZE (8) 0xb1, 0x00, // FEATURE (Data,Ary,Abs) 0x09, 0x02, // USAGE (PresentStatus) 0xa1, 0x00, // COLLECTION (Physical) 0x09, 0x6c, // USAGE (Switchable) Aioo, nonnno, una roba ssarda, proprio! \":cry:\" ---------------------------------------- AUTORE: 384 DATA :09/11/2006 - 08:28:30 ---------------------------------------- Sarebbe utile avere indicazioni sul'oggetto specifico. Da questa descrizione mi viene da chiedere perchè devi fare il parsing. Da un'applicazione fatta in LabView, mi aspetterei solo di "comporre" dei commandi da spedire al dispositivo. PS - Sono, per caso, quei "pulsanti" con un mini display che si può far cambiare a seconda della funzione che dovranno eseguire? ---------------------------------------- AUTORE: 1137 DATA :09/11/2006 - 14:41:32 ---------------------------------------- ciao, il dispositivo in questione e' un UPS, che comunica con un protocollo semi-proprietario che chiamano SHUT, che sarebbe il protocollo USB HID di alto livello, pero' impacchettato e spedito su RS232. A livello di RS232 non ci sono problemi. Il pacchetto lo ricevo e lo spedisco tranquillamente. Il problema e' capire che m....a sta dicendo nel pacchetto dati. Devo fare il parse perche' possono arrivare notifiche asincrone, e soprattutto perche' se gli mando una richiesta di stato, devo anche capire la risposta, oltre che dirgli ACK. Il protocollo HID è generico per tutti gli UPS (oltre che per tutti i mouse, le tastiere e qualsiasi altro dispositivo ti viene in mente....), pero' il costruttore e' libero di usarne una parte e di definire nuovi oggetti e proprieta'... \":x\" \":x\" ---------------------------------------- AUTORE: 645 DATA :09/11/2006 - 15:32:58 ---------------------------------------- Ma tu effettivamente invii alla periferica delle stringhe? Oppure invii le stringhe a qualcosa che implementa il protocollo HID (tipo DLL) e questo qualcosa comunica con la periferica... e a te serve scoprire cosa questa cosa (scusa il gioco) invia alla periferica? O non ho capito niente? Sul protocollo HID hai qualche link interessante? Ho guardato sul sito www.usb.org e su altri link ma non ho trovato cose particolari... ---------------------------------------- AUTORE: 384 DATA :09/11/2006 - 15:38:25 ---------------------------------------- [quote="ziounclesi"]ciao, Il protocollo HID è generico per tutti gli UPS (oltre che per tutti i mouse, le tastiere e qualsiasi altro dispositivo ti viene in mente....), pero' il costruttore e' libero di usarne una parte e di definire nuovi oggetti e proprieta'.../quote] Ahia... se può anche essere proprietario dovrai anche avere quelle informazioni dal fabbricante, che di solito non è molto "generoso" a renderle pubbilche. Io ho già dovuto gestire delle UPS, ma mi sono dovuto accontentare del fatto che di solito usano i pin RI e CTS per segnalare la condizione di "power down". Devo dire che è stata un'odissea già riuscire a trovare queste informazioni. ---------------------------------------- AUTORE: 129 DATA :11/11/2006 - 07:53:28 ---------------------------------------- Ma l'UPS in questione ha un suo SW di interfaccia? Se SI potresti usare un programma sniffer per rs232 (Su download.com ne trovi uno veramente potente) e far girare il programma con la sua periferica attaccata, lo sniffer registrerà i comandi che successivamente puoi riutilizzare come stringhe in labVIEW(TM). ---------------------------------------- ================================================================================ Overlay di immagini ================================================================================ AUTORE: 1520 DATA :08/11/2006 - 15:46:09 ---------------------------------------- Salve a tutti, mi trovo di fronte ad un anomalo funzionamento di un semplice ciclo while in Labview. In pratica devo disegnare alcune strutture su un'immagine di sfondo. Ho cominciato a lavoraraci con un piccolo vi che crea l'immagine, carica lo sfondo e poi entra in un ciclo while dove a seconda di un tasto sul front panel viene sovrapposta o meno una sorta di maschera. Quello che mi succede è che pare che una volta sovrapposte le strutture di overlay all'immagine queste ci rimangono anche se smetto di disegnarle. Anzi, se inserisco una probe all'inizio del while sull'immagine vedo che effettivamente ingloba anche l'overlay. E' un comportamento dovuto a delle differenze del modulo vision? O semplicemente mi sto incominciando a rincoglionire un po'? \":?:\" Matteo ---------------------------------------- AUTORE: 645 DATA :08/11/2006 - 16:25:56 ---------------------------------------- Scusa, non ti posso aiutare ma colgo l'occasione per farti una domanda: quei blocchi vicino allo spazio per disegnare (dove puoi selezionare se disegnare una curva, una figura...) dove li hai trovati? Fanno parte delle aggiunte del pacchetto Vision? Scusa la domanda... non ho mai usato i blocchi Vision! ---------------------------------------- AUTORE: 1520 DATA :08/11/2006 - 16:37:40 ---------------------------------------- Ciao Magic, si i blocchetti in questione fanno parte del modulo vision. Io sto incominciando a lavorarci adesso quindi non ho una grande esperienza ancora ma se vuoi qualche informazione a proposito sono a disposizione. Matteo ---------------------------------------- AUTORE: 113 DATA :09/11/2006 - 16:52:35 ---------------------------------------- Ciao, non ti stai rincoglionendo...!!! \":lol:\" Le funzioni vision funzionano così! In pratica, le modifiche che applichi ad un'immagine vanno a modificare il contenuto di memoria dedicato all'immagine stessa, e quindi rimangono 'permanenti'. Per ovviare al problema all'inizio devi fare una copia dell'immagine originale in una nuova immagine che tieni come riferimento senza modificarla, usa in pratica la funzione IMAQ Copy. Guardati bene l'help in linea, fa riferimento anche ad un esempio che ti mostra il principio. Alberto ---------------------------------------- AUTORE: 1520 DATA :12/11/2006 - 10:17:50 ---------------------------------------- [quote:17qpab48]Per ovviare al problema all'inizio devi fare una copia dell'immagine originale in una nuova immagine che tieni come riferimento senza modificarla, usa in pratica la funzione IMAQ Copy. [/quote:17qpab48] Grazie Alberto per l'informazione, immagino che sia per evitare di utilizzare troppa memoria per immagazzinare le immagini. Ho poi visto che c'è anche una comoda funzione per cancellare gli overlay creati sull'immagine che poi è la soluzione che ho attualmente adottato. Matteo ---------------------------------------- ================================================================================ Controllo via web di uno strumento con labview ================================================================================ AUTORE: 1547 DATA :08/11/2006 - 18:16:28 ---------------------------------------- Salve a tutti! devo scrivere una tesi sul controllo remoto via web di un Digital Transmission Analyzer della HP. Qualcuno ha del materiale da inviarmi sul controllo via web tramite labview? Grazie ---------------------------------------- AUTORE: 247 DATA :08/11/2006 - 23:10:34 ---------------------------------------- Ciao, con controllo remoto via web intendi controllo dell'analizzzatore all'interno di un web browser? BYE. ---------------------------------------- AUTORE: 645 DATA :09/11/2006 - 07:58:25 ---------------------------------------- Se la risposta alla domanda di Apollon è "sì" cerca sul sito www.ni.com : ci sono alcuni testi che parlano di questo tipo di controllo. Sempre nello stesso sito puoi cercare "Remote control" e "web control". Per quanto riguarda LabView puoi dare un'occhiata alla funzione "Tools -> Web Publishing Tool" che crea una pagina HTML contenente un riferimento (statico o dinamico) al tuo VI. ---------------------------------------- AUTORE: 1547 DATA :09/11/2006 - 08:47:31 ---------------------------------------- Intanto grazie mille ! La risposta alla domanda di Apollon è si! Seguirò le vostre indicazioni. A presto! ---------------------------------------- ================================================================================ Creare una immagine da un waveform graph ================================================================================ AUTORE: 1582 DATA :08/11/2006 - 20:35:55 ---------------------------------------- Ciao, ho bisogno di un aiuto. Ho la versione 6i di LabVIEW. Ho dei waveform graph dove vengono visualizzate delle forme d'onda analizzate, poichè ne devo creare una relazione vorrei che questi grafici venissero salvati in jpg, o bmp o png insomma una immagine. Qualcuno sa aiutarmi. Ringrazio vivamente chiuque sappia risondere a questo mio quesito. marco ---------------------------------------- AUTORE: 1528 DATA :08/11/2006 - 22:29:03 ---------------------------------------- Con Labview 6 no ho mai lavorato...ma dal 7.0 in poi basta andare sul block diagram clickare col destro e creare un invoke node! tra i possibili metodi c'è "GetDataImage" in uscita hai un filo fuksia che usi come ingresso del save jpg/bmp/png ---------------------------------------- AUTORE: 1582 DATA :08/11/2006 - 22:33:50 ---------------------------------------- Col 7 o anche 8 lo posso fare tranquillamente, ma con il 6 la procedura descritta non funziona.Dove devo lanciare poi il programma ha una DAQ con slot ISA, che alla meglio fa girare labview 6, figuriamoci il sette. comunque sia nessuno sa aiutarmi? grazie per la risposta ---------------------------------------- ================================================================================ CHIAMATA DLL PER DISPOSITIVO USB ================================================================================ AUTORE: 1583 DATA :09/11/2006 - 10:19:35 ---------------------------------------- ciao a tutti, dovrei chiamare una dll di una dispositivo usb. il parametro da assare è un puntatore a struttura che non so come realizzare nè come passare l'indirizzo. la funzione che sta nella dll è la seguente: DWORD __stdcall CAN_Read(TPCANMsg* pMsgBuff); dove typedef struct { DWORD ID; BYTE MSGTYPE; BYTE LEN; BYTE DATA [8]; } TPCANMsg; grazie mille ragazzi!!!! ---------------------------------------- AUTORE: 927 DATA :14/11/2006 - 10:45:39 ---------------------------------------- Non so niente del dispositivo USB, ma in generale per passare un puntatore a struttura a una DLL io faccio così: creo la struttura sotto forma di cluster, col normale bundle, stando attento alle dimensioni dei componenti (BYTE = U8, DWORD = I32...); poi quando passo il parametro alla DLL, ne definisco il tipo come "adapt to type" e "handles by value". Dovrebbe funzionare... ---------------------------------------- AUTORE: 1583 DATA :14/11/2006 - 11:15:29 ---------------------------------------- grazie mille! ---------------------------------------- ================================================================================ Labview e FileMaker ================================================================================ AUTORE: 1045 DATA :09/11/2006 - 11:36:03 ---------------------------------------- Salve,ritorno dopo un po di tempo al sempre prezioso forum. Ho due quesiti da porre: 1) è possibile risalire da un programma compilato tramite Build Application al suo programa sorgente ? 2) Dovrei realizzare un vi con il quale effettuare alcune movimentazioni su motori in seguito a dei valori immessi da postazione remota tramite il programma FIleMaker 6. Alla fine della movimentazione dovrei rimandare i parametri ottenuti ancora tramite FileMaker 6 alla postazione remota. In effetti mi serve capire come far dialogare Labview 7.1 con FileMaker 6 o successivi. Ringrazio quanti mi possano dare una mano. ---------------------------------------- AUTORE: 1168 DATA :09/11/2006 - 12:06:20 ---------------------------------------- Mmmmm... 1) Penso proprio di no! 2) Non conosco Filemaker, ma dispende come puoi accederervi, magari tramite DLL. Ti conviene sentire quelli di FileMaker e chiedergli se si possono scambiare informazioni col programma in qualche maniera, al massimo salvando le informazioni su dei files temporanei. Ciao P! ---------------------------------------- AUTORE: 645 DATA :09/11/2006 - 12:21:34 ---------------------------------------- FileMaker salva database... ma in che formato? Si può accedere ai database salvati con FileMaker nello stesso modo con cui si accede ai database Access o Sql? Puoi cercare qualcosa in questa direzione. Oppure creare dei file di interscambio tra FileMaker e LabView (magari file .txt) dai quali pescare i dati da usare per a movimentazione dei motori. ---------------------------------------- ================================================================================ Lettura MIO serial number ================================================================================ AUTORE: 1033 DATA :09/11/2006 - 14:36:32 ---------------------------------------- Ciao, ho la necessità di leggere dal mio codice LV il serial number della "MIO" che ho istallato. Quello che si vede dalle properties di Max per intenderci. Sapete dove potrei andare a pescare questa informazione. Ho cercato tra i file .ini della cartella NI ma non ho trovato nulla. Grazie, ciao. ---------------------------------------- AUTORE: 113 DATA :09/11/2006 - 16:38:17 ---------------------------------------- Hai due possibilità: 1) Il tuo device (scheda) supporta le funzioni DAQ-Mx (dipende dal modello): vai nella palette DAQ Mx Data Acquisition - DAQ Mx Advanced - System Setup e utilzza il blocco DAQ Mx Device Property Node; prima seleziona il tuo device con la proprietà Active Device, poi aggiungi la proprietà DeviceSerialNumber che trovi all'interno del sotto-menù Identification 2) Il tuo device supporta solo le traditiona DAQ: utilizza la vi Get DAQ Device Information.vi che trovi in Data Acquisition - Calibration & Configuration. Fai riferimento all'help in linea. Spero di essere stato chiaro, non riesco a buttarti giù un esempio perchè sono di corsa, ma fammi sapere se hai problemi!!! Ciao, Alberto ---------------------------------------- AUTORE: 1033 DATA :09/11/2006 - 17:13:25 ---------------------------------------- Chiarissimo! Grazie. ---------------------------------------- ================================================================================ Reset Variabili ================================================================================ AUTORE: 1299 DATA :09/11/2006 - 16:21:24 ---------------------------------------- Ciao a tutti ... rieccomi qui con un nuovo problemuccio... come faccio a resettare delle variabili quando sul case structure sono in false??? le variabili si trovano fuori dal case e servono per inserire dei dati nel grafico. posto il "mio" programma per intederci... Grazie mille anticipatamente! ---------------------------------------- AUTORE: 487 DATA :10/11/2006 - 07:37:40 ---------------------------------------- Ciao, prima di tutto ti consiglierei di non usare le local variable, visto che puoi collegare direttamente tutti gli "output cluster" al buidl array. In tal modo avrai dei tunnels di uscita dalle due case structure e puoi impostare un valore di default nei casi "false". Una domanda: ti serve veramente continuare a leggere i files ad ogni iterazione del while loop? ---------------------------------------- AUTORE: 1299 DATA :10/11/2006 - 10:01:34 ---------------------------------------- coma sinceramente + stata la prima idea che mi è venuta lo vista come soluzione + semplice, visto che non conosco il programma, cmq adesso provo a farlo senza variabili. grazie mille. cmq sono riuscito a resettarle il while mi serve perche nello stesso grafico devo avere la possibilit di cambiare file e graficarlo c'è qlc altro modo? grazie ---------------------------------------- AUTORE: 487 DATA :10/11/2006 - 11:13:36 ---------------------------------------- Ok per il while, ma io non andrei ad aprire sempre il medesimo file ad ogni iterazione, a meno che il file continui a cambiare. Ti allego un semplice esempio di come potresti fare: è solo un'idea , sicuramente migliorabile, ma potrebbe essere un punto di partenza. Ciao. ---------------------------------------- ================================================================================ generazione e acquisizione sincronizzata ================================================================================ AUTORE: 1585 DATA :09/11/2006 - 18:47:37 ---------------------------------------- Salve a tutti, sto usando la scheda pci-6259 con la quale ho le necessità di effettuare generazione ed acquisizione sincronizzata di segnali analogici. Per la sincronizzazione sto usando un trigger software. Non ho problemi finchè acquisisco da un solo canale, ma quando aggiungo altri canali di input, su questi altri, perdo il sincronismo. Penso sia dovuto al fatto che la scheda utilizza un solo convertitore analogico-digitale multiplexato. Qualcuno sa darmi indicazioni su come risolvere il problema? Grazie ---------------------------------------- AUTORE: 247 DATA :10/11/2006 - 10:25:15 ---------------------------------------- Ciao, non potrei mai ottenere un'acquisizione simultanea e sincronizzata con una scheda dotata di un solo ADC...dovresti acquistarne una con un ADC per canale oppure accontentarti purtroppo...\";-)\" BYE. ---------------------------------------- ================================================================================ AIUTO BLUETOOTH ================================================================================ AUTORE: 1095 DATA :09/11/2006 - 23:45:18 ---------------------------------------- vorrei chiedervi come fare a configurare windows sp2 per poter far andare il blocchi bluetooth di labview 8.0...oppure come configurare bluesoleil ( o equivalenti driver bluetooth) facendo funzionare la comunicazione bluetooth con altri tipi di blocchi ( in caso spiegatemi dettagliatamente quest altro metodo )... vorrei provare a ricevere messaggi bluetooth da un cellulare nokia 6600... vi prego aiutatemi nella configurazione...sto impazzendo \":evil:\" \":twisted:\" ---------------------------------------- AUTORE: 1944 DATA :27/12/2008 - 22:14:27 ---------------------------------------- Io ho avuto i tuoi stessi problemi. Come prima cosa ho cercato di connettermi tramite il software proprietario dell'adattatore (il famigerato BlueSolei ), ma da subito non funzionava quasi nulla. Poi ho disinstallato tutto ciò che riguarda il Bluetooth (sia hardware sia software). Prima ho disinstallato l'hardware per mezzo del pannello di controllo attraverso l'icona "Sistema\Hardware\Gestione periferiche", seleziono l'adattatore, tasto destro, disinstalla. Poi rimuovo l'ardware ed infine disinstallo tutti i software. A questo punto un riavvio ci stà bene. A computer acceso (ammesso che l'adattatore che usi sia usb) lo inserisci ed attendi che si autoinstalli. Terminata l'installazione puoi vedere se con gli esempi di LabVIEW il Bluetooth funziona. Io ti consiglio il file "Advanced Bluetooth Client". In ogni caso la tua idea mi interessa. Se vuoi il mio indirizzo di messenger è in mio username: se vuoi mi trovi lì. Ciao Ciao Fabio ---------------------------------------- ================================================================================ Da 8.0 a 7.1 ================================================================================ AUTORE: 1235 DATA :10/11/2006 - 07:58:30 ---------------------------------------- Scusate la domanda! Avendo creato una VI con la 8.0 è possibile con tale versione salvare la VI anche nella versione 7.1 come si poteva fare nelle precedenti versioni che permettevano un salvataggio nella versione appena precedente ? Grazie e ciao. ---------------------------------------- AUTORE: 1030 DATA :10/11/2006 - 08:45:30 ---------------------------------------- Ciao si puoi farlo; su File trovi un "Save for Previous Version"! ---------------------------------------- ================================================================================ Leggere la Versione dell'eseguibile ================================================================================ AUTORE: 482 DATA :10/11/2006 - 13:36:48 ---------------------------------------- ..ma ciao! QUalcuno ha idea di come si possa fare per andare a leggere la versione di un eseguibile? In dettaglio io creo il mio eseguibile con l'application builder e di volta in volta incremento il numero della versione. Questo numero al momento lo riporto manualmente come etichetta nel pannello frontale della mia applicazione. C'e' modo di andarlo a leggere direttamente dalle proprietà del file? O meglio, il modo di sicuro c'e'. Qualcuno lo conosce o ha idea di quale dll usare per arrivarci? ---------------------------------------- AUTORE: 1050 DATA :10/11/2006 - 15:07:41 ---------------------------------------- Ciao, prova così: copia un property node sul diagramma della tua VI e seleziona dallo shortcut menu "Application->version number"...dovrebbe funzionare. ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 15:13:34 ---------------------------------------- Purtroppo cosi' ottengo la versione di labview e non del mio eseguibile \":cry:\" ---------------------------------------- AUTORE: 1050 DATA :10/11/2006 - 15:18:07 ---------------------------------------- ...ottieni la versione del Labview se stai facendo girare il codice sorgente ma quando fai girare l'eseguibile dovresti ottenere la versione del tuo eseguibile....almeno così sapevo....non posso controllare perchè ora non ho a disposizione il builder... fammi sapere. ciao ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 15:23:04 ---------------------------------------- io ho appena provato... \":cry:\" ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 15:25:57 ---------------------------------------- Anche perchè in ogni caso, quando compili un eseguibile, alla base c'e' sempre un VI che si appoggia sul runtime di LabVIEW... Credo che occorra entrare nelle proprietà del file eseguibile per risalire alla versione..ppff.... ---------------------------------------- AUTORE: 113 DATA :10/11/2006 - 15:26:15 ---------------------------------------- Da quello che mi risulta, il metodo descritto da Antea ti restituisce la versione di LV con cui è stata creata la vi/eseguibile; ma non vorrei sbagliarmi... Un metodo alternativo è inserire la versione nella description di una vi della tua applicazione, ad esempio la vi principale. A quel punto puoi puntare con i Vi server direttamente alla vi anche se hai creato un eseguibile e utilizzare la proprietà description per leggere la versione. Per puntare a una vi in un eseguibile devi includere lo stesso nel percorso. Esempio:....\Applicazione.exe\LaTuaVi.vi \":wink:\" Ovviamente se non vuoi utilizzare la description, una volta aperto il reference alla vi, puoi leggere direttamente il contenuto del controllo della versione sul front panel. Alberto ---------------------------------------- AUTORE: 113 DATA :10/11/2006 - 15:28:08 ---------------------------------------- Mentre rispondevo non ho visto le altre vostre risposte..... \"8)\" ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 15:28:09 ---------------------------------------- Eh appunto dico..se devo comunque aggiornare manualmente la description, tanto vale modificarla direttamente nel front panel no? ---------------------------------------- AUTORE: 1050 DATA :10/11/2006 - 15:42:46 ---------------------------------------- Hai già dato uno sguardo a questo link? http://forums.ni.com/ni/board/message?b ... ogin=False ciao ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 15:49:45 ---------------------------------------- SI, stavo giusto guardando li e ne ho trovato uno ch enon us ail framework di .NET solo ch eho chiuso la finestra di Firefox e non trovo piu' il link....lunedi' magari posto il VI, adesso lo sto analizzando un po' ma sembra funzionare! ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 15:58:15 ---------------------------------------- Trovato! http://forums.ni.com/ni/board/message?b ... 99#M183560 Verso la fine de l topic c'e' un vi chiamato GetFileVersionInfo 7.0.zip QUello fa quello che mi serve..anche se onestamente mi sembra molto piu' complicato del previsto cazzarola.... nel senso...se devo mettere nel mio programma una cosa che funziona ma non so che cacchio fa, magari ci penso prima di metterla... ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 16:07:28 ---------------------------------------- Ok, allora credo che a me basterebbero i primi due SubVI poi con un paio di operazioni sulle stringhe avrei il mio risultato. Qualcuno di voi vuole aiutarmi a capire un pelo piu' nel dettaglio cosa fanno gli altri subvi? ho capito che servono per tradurre in modo comprensibile i dati prelevati dalle info del file, ma in che modo lo fanno mi sembra assurdo... ---------------------------------------- AUTORE: 482 DATA :10/11/2006 - 16:17:47 ---------------------------------------- AGgiungo un ultima cosa... non è strano che abbiano aggiunto la funzionalità per inserire il numero della versione e altre info nell'eseguibile e nessun modo per leggerle? mah...un po' come il tipo di dato Timestamp, lo puoi creare in un colpo ma non lo puoi convertire... \":wink:\" ---------------------------------------- AUTORE: 384 DATA :10/11/2006 - 18:45:36 ---------------------------------------- [quote="gepponline":3v2gab89]un po' come il tipo di dato Timestamp, lo puoi creare in un colpo ma non lo puoi convertire...[/quote:3v2gab89] Lo si può fare, è solo macchinoso! Sono d'accordo che dovrebbero esserci le funzioni per le conversioni in entrambe le direzioni! ---------------------------------------- ================================================================================ Estrarre testo da una costante enum ================================================================================ AUTORE: 1168 DATA :10/11/2006 - 14:25:18 ---------------------------------------- Salve a tutti. A fini di logging, mi servirebbe estrarre il testo da una costante enumerate. Si può? Grazie e buon weekend, P! ---------------------------------------- AUTORE: 1050 DATA :10/11/2006 - 15:03:06 ---------------------------------------- Ciao, basta (per esempio) collegarla al "Format into string" con format string %s. ciao ---------------------------------------- AUTORE: 384 DATA :10/11/2006 - 18:26:04 ---------------------------------------- [quote="antea06":c8ery9e6]Ciao, basta (per esempio) collegarla al "Format into string" con format string %s.[/quote:c8ery9e6] Questo è valido solo per gli "enum". Nel caso dei "ring" non si può usare. Un'alternativa è usare i property node. ---------------------------------------- ================================================================================ consiglio per memorizzare dati in excel ================================================================================ AUTORE: 516 DATA :10/11/2006 - 20:49:21 ---------------------------------------- Ciao a tutti Vi scrivo per chiedervi un consiglio , devo memorizzare dei dati all'interno di un file excel and fino a qui tutto ok , il mio problema è che che la prima volta che il file viene gererato devo memorizzare nelle prime 4 celle i nomi che corrispondono poi ai campi dopo di che memorizzo i dati , come posso creare questo ? cioè memorizzare solo per la prima volta i nomi ? Grazie Mille a tutti Ciao Sergio ---------------------------------------- AUTORE: 384 DATA :11/11/2006 - 14:56:29 ---------------------------------------- Il modo di scrivere un "header" in un file dipende dalle condizioni in cui lo usi: 1) se il file viene creato una volta sola e poi mai più toccato oppure se ogni volta viene ricreato da zero, allora si può aprirlo e prima di qualsiasi altra cosa scrivere l'header; solo allora lo si riempie con i dati del caso. 2) se il file viene creato, scritto e chiuso per magari essere riaperto ed aggiornato ad ulteriori riprese io di solito richiedo informazioni sul file prima dell'apertura. Se la funzione ritorna l'errore di file non trovato, allora so che lo sto aprendo per la prima vola e quindi ci scrivo l'header immediatamente dopo l'apertura. ---------------------------------------- AUTORE: 516 DATA :11/11/2006 - 15:07:06 ---------------------------------------- Ciao Grazie Mille per la risposta . Nel mio caso viene creato nuovo ogni 24 ore . Ciao Sergio ---------------------------------------- AUTORE: 384 DATA :11/11/2006 - 16:22:40 ---------------------------------------- Quindi l'esempio che fa per te è il primo del vi che ho allegato. Probabilmente lo troverai forse troppo complicato per le tue necessità ma l'ho fatto apposta per darti un'idea delle potenzialità in un caso del genere. Sta a te prosseguire. Naturalemte il forum è sempre qui! \":)\" (anche di sabato \":cry:\" ) ---------------------------------------- AUTORE: 516 DATA :11/11/2006 - 20:22:15 ---------------------------------------- Ciao Grazie ancora , e già si lavora anche di sabato sera \":(\" Sergio ---------------------------------------- AUTORE: 683 DATA :13/11/2006 - 13:14:58 ---------------------------------------- io devo salvare dati ogni 10 minuti e rinnovare il file ogni 24 ore se ti può essere d'aiuto io faccio file con il nome eche corrispode alla data del giorno corente e quando il giorno cambia la data cambia e quindi creo un nuovo file. per scivere l'intestazione e mettere il nome ad ogni primo salvataggiodei dati concateno la prima stringa doce c sn i titoli ciao ---------------------------------------- AUTORE: 516 DATA :14/11/2006 - 21:35:03 ---------------------------------------- Ciao Si mi interessa moltissimo Grazie Mille Sergio ---------------------------------------- AUTORE: 683 DATA :16/11/2006 - 15:15:09 ---------------------------------------- ora nn sono dal pc dove ho il file appensa lo trovo te lo posto sul forum ciao ciao ---------------------------------------- AUTORE: 516 DATA :16/11/2006 - 18:54:37 ---------------------------------------- ok Grazie ancora Ciao Sergio ---------------------------------------- ================================================================================ Help per DAQmx ================================================================================ AUTORE: 276 DATA :12/11/2006 - 09:17:18 ---------------------------------------- Salve a tutti, averi bisogno di un'info, è da poco che utilizzo LV, per farmi le ossa un amico mi ha passato un suo programma, ma all'apertura mi vengono richieste varie VI tipo "DAQmx read" ed altre della stessa serie, penso di aver installato tutto il pacchetto di LV8, ma a questo punto mi viene un dubbio, cosa mi manca? Grazie per l'aiuto. Paperinik29 ---------------------------------------- AUTORE: 4 DATA :12/11/2006 - 09:44:18 ---------------------------------------- Ciao e benvenuto. detta così direi che ti mancano i driver Daq e daqMX che si trovano su altri 2 CD diversi da quello di installazione di LabVIEW. Ciao ---------------------------------------- AUTORE: 276 DATA :12/11/2006 - 10:05:55 ---------------------------------------- Oltre ai 14 cd dell'installazione di LV8.0? \":o\" ---------------------------------------- AUTORE: 4 DATA :12/11/2006 - 10:11:19 ---------------------------------------- 14? non sò cosa tu abbia potuto installare con 14 CD! labVIEW è installabile da un solo CD. \"8)\" Ciao ---------------------------------------- AUTORE: 276 DATA :12/11/2006 - 11:02:18 ---------------------------------------- Ho installato i seguanti cd: -cd1: full development -cd2: device drivers 1 -cd3: device drivers 2 -cd4: update for psc (non installato) -cd6: labvwindows CVi non installato, come pure i manuali pdf -cd9: measurament studio -cd10: measurament studio for visual studio (non installato) -cd11: signalexpress -cd12: datalogging... -cd13: OPC server -cd14: toolkit software Allora che cosa mi manca secondo te? Ciao Paperinik29 ---------------------------------------- AUTORE: 129 DATA :12/11/2006 - 15:26:24 ---------------------------------------- Non ti manca nulla, o meglio durante l'installazione, ti chiede se vuoi installare i traditional daq o i daqmx, prova a fare così: Su Windows: Da pannello di controllo/Install.applicazioni/National instruments ti si apre l'applicazione di NI d'installazione, controlla se i driver DAQ-MX è spuntato e comunque prova a spuntarlo e procedere, ti verrà chiesto di inserire il cd driver e conclusa l'operazione dovresti avere disponibile il driver DAQ-mx. Benvenuto. ---------------------------------------- AUTORE: 276 DATA :12/11/2006 - 22:36:14 ---------------------------------------- Grazie per il saluto ed il consiglio, ho provato a fare come mi hai detto, indicando come modalità "repair" sia su nidaq traditional che su 7.4, ho seguito le istruzioni ma quando apro il mio vi che utilizza i ni daq mi continua a cercare i vi (ad esempo ni daq read). Non so forse ho sbagliato ancora qaulcosa? Grazie comunque. Ciao Paperinik29 ---------------------------------------- AUTORE: 482 DATA :13/11/2006 - 07:07:59 ---------------------------------------- Io ti consiglierei di reinserire il cd dei Device Drivers e nelle opzioni dirgli di installare tutto il possibile immaginabile \":wink:\" Mi sorge pero' un altro dubbio... C'e' la possibilità che i DAQmx a cui fa riferimento il programma siano quelli di DAQmx Base, i quali non sono contenuti in nessuno di quei cd, ma te li devi scaricare dal sito (a me è successa sta cosa per dei compactrio USB... Verifica che hardware utilizza chi ti ha passato il software. ---------------------------------------- ================================================================================ Strano? ================================================================================ AUTORE: 1235 DATA :12/11/2006 - 09:43:18 ---------------------------------------- Ciao! Mi succede una cosa che prima non avevo mai notato! Quano chiudo tutte le VI, ma rimango con labview 8.0 aperto , le "Functions" e "Controls" palette si chiudono regolarmente, mentre la "Tools" palette non si chiude, che automaticamnte sparisce però se faccio un click sul desktop! E' normale? O c'è qualche problema? O qualche settaggio particolare? Grazie e ariciao! ---------------------------------------- AUTORE: 1235 DATA :12/11/2006 - 10:15:42 ---------------------------------------- Confermo che la " Tools " palette mi compare anche all'avvio di labview quando si apre il " Getting started". Boh!? ---------------------------------------- AUTORE: 927 DATA :13/11/2006 - 08:42:35 ---------------------------------------- Effettivamente mi fa lo stesso scherzo anche nella 8.2, credo sia un piccolo baco senza conseguenze ---------------------------------------- ================================================================================ Evento double click ================================================================================ AUTORE: 129 DATA :12/11/2006 - 17:05:24 ---------------------------------------- Mi servirebbe utilizzare un evento doppio click su un array, ma nella event structure non ho trovato questo evento. Qualcuno ha soluzioni per lanciare un evento al doppio clic? Grazie in anticipo,Nic. ---------------------------------------- AUTORE: 680 DATA :12/11/2006 - 17:59:31 ---------------------------------------- prova a guardare qui: [url:1wgwabom]http://zone.ni.com/devzone/cda/epd/p/id/691[/url:1wgwabom] ---------------------------------------- AUTORE: 384 DATA :13/11/2006 - 07:00:06 ---------------------------------------- Dalla versione 7.0 in c'è nella event structure. Nascosta ma c'è! ---------------------------------------- AUTORE: 129 DATA :13/11/2006 - 12:50:42 ---------------------------------------- Grazie, era proprio quello che speravo. ---------------------------------------- AUTORE: 384 DATA :13/11/2006 - 12:57:33 ---------------------------------------- Di nulla!!! ---------------------------------------- ================================================================================ Data Binding e Fieldpoint (8.2) ================================================================================ AUTORE: 927 DATA :13/11/2006 - 11:47:00 ---------------------------------------- Quando si configura una Shared Variable, oppure direttamente un indicatore, per collegarla ad un canale di un Fieldpoint, è possibile specificare come percorso d'origine un IO point definito in un file IAK? Provo a spiegarmi meglio... Normalmente se configuro il Path del dato tramite il tasto Browse posso accedere a un elenco di Network Items, tra i quali trovo il Fieldpoint con i suoi moduli e canali, e ottengo un percorso del tipo: \\172.23.252.195\FP\3AI\00 Però è un percorso composto da indirizzi "fisici" e non logici, mi sembra un po' ignorante, soprattutto se cambia l'IP del Fieldpoint (e cambierà quando metterò il sistema in campo...) devo cambiare a mano tutti i percorsi di tutte le variabili condivise? Preferirei identificare il canale con un IO point come si fa quando si accede a un Fieldpoint in modo tradizionale, ad esempio: Test\TEST\FP-AI-100 @3\Channel 0 Dove tutti i componenti del percorso sono definiti in Test.iak con il MAX. Si può inserire uno iak in un progetto e utilizzarlo in qualche modo? ---------------------------------------- AUTORE: 927 DATA :13/11/2006 - 16:20:45 ---------------------------------------- Un problema strettamente collegato è che non so come, se si può, agganciare un'unica shared variable di tipo array a tutti i canali di un modulo (multi-channel item); cioè sembra non esserci un equivalente di: Test\TEST\FP-AI-100 @3\All ---------------------------------------- AUTORE: 927 DATA :20/11/2006 - 09:39:28 ---------------------------------------- La soluzione era: usare il server OPC. Tasto dx sulla libreria -> new -> I/O Server -> ecc ecc ---------------------------------------- ================================================================================ differenza tra variant e flattened string? ================================================================================ AUTORE: 683 DATA :13/11/2006 - 13:10:22 ---------------------------------------- ciao a tutti, utilizzo il vi server e mediante invoke node acchiappo valori qua e la in un altro vi con get alla contro value variant ho porvato af utilizzare anche quello ke da in uscita flattened data ma mi viene più comdo usare i tipo di dato variant che differenza c'è tra i due tipi di dati?? grazie a tutti e buon lavoro ---------------------------------------- ================================================================================ Path di una pendrive ...... ================================================================================ AUTORE: 904 DATA :13/11/2006 - 13:47:00 ---------------------------------------- Un saluto a tutti i lettori del forum . Provo a descrivere una situazione di programmazione dove mi sono arenato ..... Vorrei creare un sistema di autenticazione (password) mediante pendrive USB . Vale a dire quando si inserisce la pendrive usb vado a leggere un file testo presente sulla key. Il file testo lo leggo con il VI read text from file .... il problema che se estraggo la pendrive la VI rimanda un messaggio di errore che segnala che il path del file è mancante . Ho ovviato al messaggio di errore usando un booleano che abilita o disabilità la lettura della password dal path del pendrive ...... Sapreste indicarmi se esiste un sistema che abiliti in automatico la lettura dal path della USB pendrive solo se è effettivamente collegata .... Fiducioso in qualche consiglio Grazie in Anticipo \":D\" Saluti ---------------------------------------- AUTORE: 1168 DATA :13/11/2006 - 14:15:23 ---------------------------------------- Beh, non puoi smeplicemente cancellare l'errore? Non ho capito molto bene a cosa serve la chiavetta... Se ti serve come blocco hardware, non mi sembra sia un problema che se la chiave non sia inserita si generi un'errore! Per poi fare le cose fatte bene, vai a leggere il codice di errore e lo gestisci facendo magari apparire un pop-up che dice "chiave hardware non trovata" e esce dall'applicazione. A meno che tu voglia poi poter scollegare la chiave e lasciare il sistema "autenticato". In quel caso, come hai fatto tu, una volta autenticato disabiliti la lettura della chiave! Ciao P! ---------------------------------------- AUTORE: 904 DATA :13/11/2006 - 14:58:40 ---------------------------------------- Grazie per le info .... Il fatto è che vorrei evitare che si vengano visualizzati messaggi di errori o pop up . Se la Pen USB è inserita deve autenticare la password altrimenti il resto della vi deve continuare a runnare senza messaggi o altro ...... Quello che intendevo io è questo .... è possibile abilitare\disabilitare un booleano true / false solo se ad esempio è presente nel path e:\password.txt (dove e:\ è il path che si crea in auto quando inserisco la pen drive) Grazie e Saluti \":)\" ---------------------------------------- AUTORE: 482 DATA :13/11/2006 - 15:07:11 ---------------------------------------- Credo che il file di lettura test restituisca direttamente il popup di errore. Per fare in modo di non avere il popup di uscita o costruisci tu una procedura di lettura a livello piu' basso, oppure, basta che gli colleghi un indicatore non visibile a pannello all'uscita dell'errore. Se non sbaglio quel vi crea il popup solo se non c'e' collegato niente al terminale di uscita. ---------------------------------------- AUTORE: 1168 DATA :13/11/2006 - 15:28:31 ---------------------------------------- Beh, allora basta cancellare l'errore dopo la lettura della chiave!!! ---------------------------------------- AUTORE: 384 DATA :14/11/2006 - 08:29:58 ---------------------------------------- Scusatemi, ma mi manca capire una cosa: che senso ha continuare come se niente fosse in assenza della chiave usb, quindi senza l'autenticazione? Questo evento, a mio parere, dovrebbe quanto meno essere rigestrato sul log *[b:2dudbiex]e[/b:2dudbiex]* riferito a video. Per il resto, all'apertura di un qualunque file, la funzione ritorna un cluster di errore. Si può sgegliere di ignorarlo semplicemente (esiste anche la funzione) oppure prendere azioni specifiche in funzione del errore stesso con un semplice case. ---------------------------------------- AUTORE: 645 DATA :14/11/2006 - 09:03:57 ---------------------------------------- Non puoi spezzare le cose? Cioè, fai girare il VI normalmente e aggiungi un pulsante "Comandi avanzati" o qualcosa di simile... Se l'utente preme vai a leggere il file sulla chiavetta. Se lo trovi bene, altrimenti ti si genera un errore: puoi decidere di ignorarlo (con il blocco di cancellazione errore, nella paletta degli errori) e continuare con il VI o segnalarlo (io segnalerei che l'accesso ai comandi avanzati può essere fatto solo con chiave USB o qualcosa di simile)... Spero di aver capito +o- quello che vuoi fare... ---------------------------------------- ================================================================================ Senza front panel: si può? ================================================================================ AUTORE: 1477 DATA :14/11/2006 - 16:42:05 ---------------------------------------- LV71 Ho realizzato un VI che esegue una regolazione fuzzy. Invece del suo front panel, devo usare il sinottico di uno scada (Movicon) come front end. Nello scada ho fatto inserire oggetti che sono ora disponibili su OPC server e, tramite datasocket, li ho linkati ai controlli del mio regolatore (VIs). Il tutto sembra funzionare. Al boot up, per questioni di OPC, devo avviare prima il VI e poi lo scada ma vorrei che il VI, pur in esecuzione, non si "presentasse" nemmeno e non ci fosse niente parcheggiato sulla task bar. E' possibile compilare il VI così che venga eseguito in background e che non abbia nè il block diagram nè il front panel? Ho provato a compilarne uno ma nell'app builder, non riesco a disattivare il suo FP. Grazie. ---------------------------------------- AUTORE: 927 DATA :15/11/2006 - 14:19:22 ---------------------------------------- Usa un property node, come classe seleziona "VI", come proprietà "Front Panel Window.State", e passagli la costante "Hidden". Il pannello dovrebbe magicamente sparire, anche dalla barra delle applicazioni. ---------------------------------------- AUTORE: 1477 DATA :15/11/2006 - 16:14:50 ---------------------------------------- In caso di emergenza, posso farlo riapparire? Come? Grazie. ---------------------------------------- AUTORE: 927 DATA :16/11/2006 - 08:36:13 ---------------------------------------- Se dal block diagram premi ctrl-E riappare. In effetti se hai chiuso anche il block diagram non ho trovato il modo di farlo tornare! Da programma puoi farlo tornare con un altro property node, se te lo sei preparato prima... sennò mi sa che l'unica è ctrl-alt-canc e terminare Labviù \":lol:\" ---------------------------------------- ================================================================================ programmazione per scheda acquisizione pci-6220 ================================================================================ AUTORE: 1463 DATA :14/11/2006 - 18:22:30 ---------------------------------------- Ciaooo!!! Molto piacere...Paolo. Sono uno studente alle prime armi. Devo riuscire a programmare in Labview per utilizzare una scheda di acquisizione pci-6220. Io devo utilizzarla usando un campionamento sia suo (interno) sia usando un clock esterno. Avete per caso qualche Vi che potrebbe tornarmi utile,o del materiale gentilmente da passarmi o qualche consiglio da darmi?! GRAZIE MILLE!!!!!!!!! e buona serata!!!!! P. ---------------------------------------- AUTORE: 4 DATA :16/11/2006 - 09:03:26 ---------------------------------------- ciao e benvenuto, puoi iniziare guardando gli esempi inclusi in labview, ci sono per entrambe le tue necessità. Se hai dubbi siamo qui. Ciao ---------------------------------------- ================================================================================ Acquisizione dati che non fanno bloccare il programma ================================================================================ AUTORE: 1592 DATA :15/11/2006 - 07:22:03 ---------------------------------------- Salve, probabilmente e' una cosa banale, ma se qualcuno puo' spiegarmela sarei molto grato. Praticamente devo acquisire dei dati (da una seriale e da un database) pero' il caricamento di questi dati e' piuttosto lento e continuativo (anche 1-2 secondi per cose normali, ma puo' essere che si arrivi a 1 minuto), e ogni volta che carico la routine di acquisizione il programma si "blocca" e fino a che non completa l'acquisizione non mi fa altro (premo i pulsanti ma non esegue il comando). E' possibile chiamare una subroutine in modo che non aspetti la sua fine per continuare? Insomma, che l'esecuzione di queste acquisizioni vadano in parallelo al programma principale e non in serie? grazie ---------------------------------------- AUTORE: 927 DATA :15/11/2006 - 14:02:49 ---------------------------------------- In generale, due blocchi non collegati tra loro vengono eseguiti in parallelo. Se ad esempio un programma contiene due cicli while uno di fianco all'altro, non interconnessi da fili, i due vanno avanti in maniera indipendente e non si aspettano. Un modo per risolvere il tuo problema è mettere l'acquisizione (e ciò che la fa avviare) in un ciclo, e tutte le altre operazioni indipendenti in un altro ciclo. ---------------------------------------- AUTORE: 1592 DATA :15/11/2006 - 17:10:00 ---------------------------------------- Grazie, infatti mi mancava questo passaggio... Facendo tenti cicli while effettivamente viene molto meglio il programma, visto che io lo facevo tutto intrecciato grazie ---------------------------------------- ================================================================================ registrare i crash dei programmi fatti con labview ================================================================================ AUTORE: 1368 DATA :15/11/2006 - 07:39:43 ---------------------------------------- ciao a tutti, come si puo fare per creare un log di un programma con labview, cioe capita spesso che dal cliente succedono cose pazzesche e nel nostro pc no. esiste una funzione per registrare gli eventi in caso di crash?? grazie ciao ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 18:12:02 ---------------------------------------- Per registrare proprio il crash ed i suoi motivi (tipo un debugger), dovresti avere una sorta di supervisore. Forse non è impossibile; sicuramente non è una cosa banale da implementare. Io uso la politica di registrare (in un file o database) tutte le operazioni che ritengo importanti e/o critiche quando la relativa funzione viene chiamata e finita (avviamento/spegnimento, login/logout, impostazioni, ecc). In questo modo, se c'è un crash si può seguire il log e almeno capire l'ultima operazione importante e che potrebbe essere all'origine del evento. Tra l'altro, scoprirai che quando il tuo cliente scoprirà che tu sai per filo e per segno tutto ciò che loro "pasticciano", queste "avarie" frequenti ed improvvise calerano subito e di molto!!! Lo dico per esperienza e ve lo racconto brevemente: Diversi anni fa, il reparto dove ero appena stato assunto aveva appena finito e consegnato un'impianto robotizzato di produzione. Qualche settimana dopo, il direttore di produzione chiamò a lamentarsi di quanto fossero frequenti i fermi (riportati dagli operatori) per incepamenti e guasti vari. Siamo andati a scaricare il log e l'abbiamo fatto vedere al direttore:l'impianto era fermo si, ma non per problemi - era semplicemente fermo, non operato. Da quel momento in poi non ci sono stati più problemi fuori dalle normali e previste percentuali di fermo macchina. . ---------------------------------------- AUTORE: 1368 DATA :28/11/2006 - 09:42:25 ---------------------------------------- bello \":lol:\" e sempre facile dare la colpa alla macchina, ora vedo come creare i file di log, anche se lo vedo un po complicato quando si tratta di grandi impianti, pensavo ci fosse una funzione particolare. ---------------------------------------- AUTORE: 384 DATA :28/11/2006 - 10:19:39 ---------------------------------------- [quote:34hs3cvb]e sempre facile dare la colpa alla macchina, ora vedo come creare i file di log, anche se lo vedo un po complicato quando si tratta di grandi impianti, pensavo ci fosse una funzione particolare.[/quote:34hs3cvb] No, non esiste una funzione. Io ho una, autonoma, con in ingresso nome del file, nome/codice operatore (se esiste), operazione (creo un typedef per quelle), descrizione/commento, data/ora. Questa funzione poi la "sparpaglio" nei vari punti dove conviene registrare cio che sucede. Guarda l'allegato. ---------------------------------------- AUTORE: 1368 DATA :28/11/2006 - 10:52:59 ---------------------------------------- grazie ora devo adattarlo al mio impianto, accensione e spegnimento delle luci di una piscina \":lol:\" cosi per provare un po che combino, mi registro l accensione e lo spegnimento di tutte le luci \":o\" ---------------------------------------- ================================================================================ valori su asse temporale ================================================================================ AUTORE: 1549 DATA :16/11/2006 - 09:19:50 ---------------------------------------- Domanda: io sto acquisendo dati da una sonda che poi mostro nel front panel tramite una chart, ma nell'asse delle x labview mi mostra il numero di scans. E` possibile mostrare su quell'asse il tempo? Come faccio? ---------------------------------------- AUTORE: 1050 DATA :16/11/2006 - 09:58:15 ---------------------------------------- Ciao, apri le proprietà del tuo chart (tasto destro del mouse, seleziona "properties"), seleziona "Format & precision": a questo punto scegli "Time (X-Axis)" ed inpostalo su "relative time". ciao ---------------------------------------- AUTORE: 1549 DATA :16/11/2006 - 13:52:58 ---------------------------------------- grazie.... se metto absolute mi prende l'ora dalla cpu ? ---------------------------------------- ================================================================================ VISA o GPIB? ================================================================================ AUTORE: 1596 DATA :16/11/2006 - 11:38:00 ---------------------------------------- devo far comunicare un analizzatore di reti agilent 8720ES col pc...ma devo utilizzare un blocco visa oppure gpib?...ke differenza passa tra i due?...una curiosità:ma il blocco old visa open dv si trova? Crying or Very sad scusate ma è il mio primo incontro col labview Rolling Eyes...certo di 1 vostra risp vi ringrazio anticipatamente! ---------------------------------------- AUTORE: 384 DATA :18/11/2006 - 22:11:29 ---------------------------------------- Se hai lo strumento collegato via GPIB (como credo visto che è un HP) devi usare i blocchi GPIB. ---------------------------------------- AUTORE: 1596 DATA :20/11/2006 - 16:11:37 ---------------------------------------- ho provato a far comunicare l'analizzatore cm si vede nel file allegato...mi dà error 30(no gpib address input) cm mai?.... \":cry:\" ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 19:47:56 ---------------------------------------- Hai fatto l'inizializzazione del controller GPIB del tuo PC? ---------------------------------------- AUTORE: 1596 DATA :24/11/2006 - 11:02:12 ---------------------------------------- salve gyc...ho risolto:ho usato blocchi visa open\write\ ead ho inizializzato cm hai detto tu... grazie x il suggerimento!!!ps.sai dirmi xkè nella versione 5 c'è il blocco visa open(old) ke ha un pin in più rispetto al visa open versione 6ì (ke è quella ke utilizzo)?tale pin permette l'inserimento dell'indirizzo dello strumento tramite una stringa costante mentre nella versione 6i tale indirizzo(in mancanza del pin sopra)devo inserirlo nel controllo I\O tramite pannello frontale! ---------------------------------------- AUTORE: 384 DATA :24/11/2006 - 11:09:07 ---------------------------------------- Perchè dalla 5 alla 6i sono stati inglobati nel VISA tutti i tipi di comunicazione ed è cambiata tutta la struttura di indirizzamento del VISA. ---------------------------------------- AUTORE: 1596 DATA :24/11/2006 - 11:15:00 ---------------------------------------- grazie gyc....rispondi in real time!!! \":)\" ---------------------------------------- AUTORE: 384 DATA :24/11/2006 - 12:14:44 ---------------------------------------- Quando sono in ufficio ed ho tempo, si! ---------------------------------------- ================================================================================ VI rientranti ed eventi ================================================================================ AUTORE: 1520 DATA :16/11/2006 - 17:48:40 ---------------------------------------- Salve a tutti, sto sviluppando un'applicazione per cui vorrei avere più processi uguali ma indipendenti con diversi input (per cui pensavo ad uno stesso vi rientrante) che però si devono sincronizzare. Pensavo perciò di creare un'ulteriore applicazione che temporizza il sistema che ogni tanto notifica un'evento. L'evento viene sentito dai VI rientranti in contamporanea ed essi procedo a fare le operazioni a cui sono preposti. Il mio problema è che non riesco a capire bene come funziona la gestione del riferimento all'evento nei VI rientranti. Nel senso che non sto riuscendo a mettere in ascolto tutti i VI cloni sullo stesso evento. Qualcuno ha qualche idea o informazione in proposito? Matteo ---------------------------------------- AUTORE: 1520 DATA :17/11/2006 - 08:15:28 ---------------------------------------- Ho pensato di cambiare un po' strategia. Adesso provo utilizzando i rendez-vous. Poi vi dico come procede. \":wink:\" ---------------------------------------- AUTORE: 4 DATA :17/11/2006 - 08:44:44 ---------------------------------------- io uso spesso strutture di questo tipo ma preferisco passare dai ai vi rientranti usando code o notifiche, gli eventi dinamici non mi hanno mai convinto fino in fondo soprattutto per quel che riguarda la leggibilità del codice che ne risulta. Ciao ---------------------------------------- AUTORE: 1520 DATA :17/11/2006 - 09:08:16 ---------------------------------------- Sempre io, l'idea sembra funzioni molto bene. In pratica ho agito così: ho creato un main task di sincronizzazione che agisce come metronomo e fissa i tempi di funzionamento. In più si occupa rispondendo ad un evento di generare dei task che effettuano le operazioni sul sistema. Questi task aspettano, per proseguire ciclicamente le loro operazioni, ad un rendez-vous. A me interessa che TUTTI i task abbiano finito la loro esecuzione e che anche il "metronomo" abbia dato il suo OK (insomma tutti devono aver terminato). Scendendo nel dettaglio implementativo mi sono appoggiato ad una variabile globale per il ref del rendez-vous. Il rendez-vous viene creato nel main task e distrutto se/quando questo termina. Sempre il main task apre in modalità rietrante i task secondari passandogli i parametri ed incrementa la dimensione del rendez-vous. Se termina uno dei task secondari uscendo diminuisce le dimensioni del rendez-vous. Spero possa essere utile. Ciriciao gente \":D\" ---------------------------------------- AUTORE: 927 DATA :17/11/2006 - 10:38:11 ---------------------------------------- In realtà non serve la variabile globale, se ogni volta crei un randevù con lo stesso nome ti restituisce la ref a quello già esistente ---------------------------------------- ================================================================================ PLOTTAGGIO su grafico di grandezze diverse ================================================================================ AUTORE: 1463 DATA :16/11/2006 - 21:33:07 ---------------------------------------- Ciaoooo!!!!! Ho il seguente problema. Devo acquisire da 2 canali diversi due grandezze diverse (per esempio una tensione, unita di misura in V, e una forza, con unita di misura Newton). Il mio problema è questo: 1)è possibile plottare i 2 segnali acquisiti (uno di tensione e l'altro di forza) sullo stesso grafico? 2)è possibile creare la legenda con le due diverse unità di misura? GRAZIEEEEEE!!!!!!!! ---------------------------------------- AUTORE: 4 DATA :17/11/2006 - 08:46:16 ---------------------------------------- certo che si può \";)\" puoi creare tutte le scale che vuoi e associare ogni plot ad una scala, prova a guardare tra gli esempi di labview cercando multiplot per vedere un pò di codice a riguardo. Ciao ---------------------------------------- AUTORE: 482 DATA :17/11/2006 - 09:12:47 ---------------------------------------- A parte che non trovo niente mettendo in ricerac multiplot.... Mi chiedevo, ma le scale si autoassociano in automatico al plot da sinistra verso destra cioe' il piu' a sinistra corrisponde al primo...è possibile in qualche modo cambiare questa sequenza? ---------------------------------------- AUTORE: 482 DATA :17/11/2006 - 09:14:36 ---------------------------------------- no, ho detto una cazzata... non cpaisco proprio come funzionano le multiscale \":cry:\" ---------------------------------------- AUTORE: 482 DATA :17/11/2006 - 09:16:37 ---------------------------------------- ok ci sono....è nelle proprietà dei plot, non delle scale! \":wink:\" ---------------------------------------- AUTORE: 4 DATA :17/11/2006 - 09:50:43 ---------------------------------------- puoi farlo anche "a mano" selezionando la scala dalla legenda dei plot del grafico ---------------------------------------- AUTORE: 1463 DATA :26/11/2006 - 11:40:28 ---------------------------------------- ciaooo.... ho visto la proprietà dei plot, ma non posso "a mano" mpostare che per esempio uno è un valore di tensione, e un altro plot una forza.... o forse si può? ---------------------------------------- AUTORE: 384 DATA :27/11/2006 - 10:28:53 ---------------------------------------- Certo che si può! Se rendi visibile la legenda dei plot, cliccando con il pulsante destro su ciscuno plot si può seleziona a quale scala verticale lo si vuole "associare". Naturalmente, devi prima "aggiungere" almeno una seconda scala verticale. Tutto questo lo si può fare anche dalla "pagina" di proprietà del greafico stesso. ---------------------------------------- ================================================================================ Sincronizzazione progress bar ================================================================================ AUTORE: 368 DATA :17/11/2006 - 08:56:41 ---------------------------------------- Saluto tutto il mitico ILVG \":D\" , Ho un problema che mi sta dando non pochi grattacapi: vorrei sincronizzare una progress bar con il mio VI, per avere informazioni sullo stato di avanzamento del test in esecuzione. Il VI non è banale ma formato da numerosi cicli, sequenze e subVI. Non so come approcciare il problema, avete consigli o esempi da darmi? Grazie in anticipo ---------------------------------------- AUTORE: 482 DATA :17/11/2006 - 09:22:41 ---------------------------------------- io l'unica volta che ho usato una progression bar l'ho usata in un ciclo for. Sapendo già dall'inizio il numero di cicli che avrei dovuto fare, tramite l'indice stabilivo a che percentuale del programma mi trovavo. ---------------------------------------- AUTORE: 645 DATA :17/11/2006 - 12:47:39 ---------------------------------------- Io ho provato ad usarla per indicare il caricamento di alcuni dati da un database: sapevo quanti erano e ho calcolato la percentuale passandola alla Progress Bar. Forse potresti decidere arbitrariamente le percentuali di avanzamento inserendo all'interno dei vari cicli l'incremento del valore della Progress Bar attraverso una variabile locale o un Property Node --> value. ---------------------------------------- ================================================================================ Utilizzare programmi gia esistenti da linguaggio Java ================================================================================ AUTORE: 1602 DATA :18/11/2006 - 13:57:07 ---------------------------------------- Salve per un progetto di un esame ad ingegneria, devo realizzare un encoder avi. Poichè gia possiedo dei convertitori da raster a JPEG. Vorrei farli interagire nel mio programma. Cioè vorrei sapere se esiste un VI che mi prende in ingresso gli argomenti dei miei programmini JAVA (sono solo applicazioni testuali) ed in uscita ai miei VI vorrei i dati dello standad error. Se ci sono piu soluzioni al problema riportatemele tutte (se riuscite). ---------------------------------------- AUTORE: 645 DATA :20/11/2006 - 08:24:57 ---------------------------------------- Dai un'occhiata qui: http://digital.ni.com/public.nsf/allkb/ ... C80068A49A . ---------------------------------------- ================================================================================ AIUTOOO:acquisizione indipendente da 4 schede usandoEncoder ================================================================================ AUTORE: 1463 DATA :18/11/2006 - 15:12:16 ---------------------------------------- Ciao a tutti e scusate l'ennesimo disturbo. Devo acquisire dei segnali per mezzo di encoder. L'acquisizione avviene, attraverso 4 schede poste sul mio PC,prelevando il segnale da una macchina. Il problema è che l'acquisizione dalle 4 sezioni,deve avvenire in modo indipendente. Per esempio, se nella prima do lo start, posso voler intanto vedere e stoppare la terza (per es) e cose del genere. Qualcuno ha qualche consiglio da darmi?!? VI PREGOOOOO!!!!!!!!!!!!!!! Grazie millle!!!!!! P. ---------------------------------------- AUTORE: 129 DATA :18/11/2006 - 21:20:59 ---------------------------------------- Potresti realizzare un architettura a cicli paralleli usando 4 while loop, oppure potresti realizzare un VI che faccia l'acquisizione dagli encoder, lo rendi reentrant (dalle propietà di esecuzione) e quindi inserisci 4 copie dello stesso VI all'inteno dei 4 while loop. Ancora potresti realizzare 4 VI indipendenti e chiamarli caricandoli con il VI server. ---------------------------------------- AUTORE: 129 DATA :19/11/2006 - 14:20:06 ---------------------------------------- Ti allego un esempio, con l'architettura a cicli paralleli. Il core.vi rappresenta il VI in cui esegui l'acquisizione. NOta che il tempo di loop è inserito all'interno del vi core e inoltre lo stesso vi core deve avere spuntato la modalità reentrant da property/execution. La tecnica VI Server, viene utilizzata in situazione di un interfaccia principale che interagisce con VI esistenti anche su PC diversi ed anche remoti. Nel tuop caso mi è sembrata sproporzionata. ---------------------------------------- AUTORE: 1463 DATA :19/11/2006 - 15:31:41 ---------------------------------------- quindi....scusa.....tu dici, il core.vi lo uso creando il programma per l'acquisizione,ed esempio loop parallelo.vi, come main,giusto? Pero cosi io non posso rendere l'acquisizione per ognuna della 4 makkine,indipendenti.... Cioè io devo per esempio poter stoppare la prima, dare poi lo start alla seconda...e cosi via....e poter selezionare su una per esempio acquisizone con trigge rinterno, e su un'altra esterno...proprio indipendenti..... ---------------------------------------- AUTORE: 645 DATA :19/11/2006 - 16:53:14 ---------------------------------------- Premetto che non ho guardato il VI di Nicola ma concordo sul fatto che con 4 cicli while paralleli puoi realizzare la struttura che desideri: nel tuo Block Diagram inserisci 4 cicli paralleli. In ogni ciclo metti le istruzioni relative ad una scheda e i pulsanti per comandare questa scheda. Quando clicchi su un pulsante questo genera l'azione corrispondente nel ciclo corrispondente e, quindi, sulla scheda corrispondente. Poi inserisci un pulsante generale che coordina tutti i cicli, uno STOP generale che se premuto blocca l'esecuzione di tutti i codici. Oppure lavori con pulsanti di STOP su ogni ciclo (ma te ne serve uno che comunque blocca l'intero VI agendo sui 4 cicli contemporaneamente). ---------------------------------------- AUTORE: 129 DATA :19/11/2006 - 17:47:42 ---------------------------------------- Hai ragione, non sono stato completo come info. Il core è autonomo e deve contenere anche le azioni "indipendenti" che vuoi associare al tuo VI. Per questo scopo utilizzerei una macchina a stati. Ho modificato il primo esempio inserendo nei vi core una macchina a stati, le azioni "indipendenti sono configurabili dal pannello principale. Ti allego l'esempio. ---------------------------------------- ================================================================================ estrarre parti da una stringa ================================================================================ AUTORE: 1605 DATA :19/11/2006 - 21:43:58 ---------------------------------------- Buonasera a tutti Esite un'istruzione per acquisire parti di stringa simile al basic mid,left e right in CVI? Grazie ---------------------------------------- AUTORE: 487 DATA :20/11/2006 - 07:42:19 ---------------------------------------- Ciao, esistono svariate funzioni, per le operazioni sulle stringhe, che ti consentono di estrarre una qualsiasi porzione di stringa a partire da un qualsiasi punto o di cercare determinati caratteri all'interno della stringa e... insomma guardati le palette functions>>string ---------------------------------------- ================================================================================ Timed Sequence ================================================================================ AUTORE: 515 DATA :20/11/2006 - 10:44:47 ---------------------------------------- Ciao! Ho notatao in labview 8.2 una nuova struttura temporizzata, la timed sequence. Quello che non ho ben capito dall'help on line \":oops:\" è se la temporizzazione si occupa di scandire i singoli frames (o meglio, il passaggio dall'uno all'altro) o se provvede anche ad eseguirli in modo ciclico (ovvero, passo in continua dall'ultimo frame al primo... ) Qualcuno l'ha già usato? E a cosa serve, esattamente? Grazie \":D\" ---------------------------------------- ================================================================================ vi di interfaccia ================================================================================ AUTORE: 1553 DATA :20/11/2006 - 12:07:32 ---------------------------------------- salve, sto realizzando un Vi che serve da "interfaccia" ad altri VI: in particolare, da questo VI devono poter essere inseriti dei valori che devono essere inviati ad altri VI (che diventano SubVI) e devo anche poter cancellare dei dati all'interno di alcune cartelle... e ciascuna azione deve essere eseguita premendo un tasto. avevo pensato ad una Case Structure, da attivare mediante un controllo booleano, ma se il controllo viene commutato da False a True mentre il VI è già in esecuzione non succede nulla... perchè? grazie a tutti, ciao! ---------------------------------------- AUTORE: 927 DATA :21/11/2006 - 13:01:21 ---------------------------------------- Difficile rispondere senza vederlo, ma sembrerebbe che il tuo bottone viene letto una sola volta... hai messo il bottone e tutta la Case dentro un ciclo While? Il ciclo rimane in esecuzione per tutta la durata del programma? I sottoVI che stanno dentro al Case terminano la loro esecuzione in pochi istanti, o ce n'è qualcuno che continua a girare (e di conseguenza il VI principale aspetta che sia finito)? ---------------------------------------- AUTORE: 645 DATA :21/11/2006 - 13:08:47 ---------------------------------------- Puoi postare un'immagine del tuo VI? Potrebbe trattarsi, come dice Snamprogetti, di pulsanti posizionati nel posto sbagliato all'interno del VI (sono dentro il ciclo vero?). I VI che ricevono i dati devono funzionare contemporaneamente al VI principale o funzioneranno in altri momenti? Perchè potresti pensare un passaggio di valori tramite variabile globale. Oppure potresti richiamare i VI secondari in maniera dinamica dal VI principale... \":D\" ---------------------------------------- AUTORE: 1553 DATA :22/11/2006 - 01:09:39 ---------------------------------------- E' possibile che il problema sia dovuto il fatto che anche il subVI sta all'interno di un ciclo while? ho provato a fare una copia molto semplificato del progetto e se il subVI non sta nel ciclo va tutto ok... purtoppo però il ciclo è fondamentale!!! Come posso fare? ---------------------------------------- AUTORE: 645 DATA :22/11/2006 - 09:33:15 ---------------------------------------- Nel subVI c'è un ciclo? Può essere che questo ciclo condizioni tutta l'esecuzione... un'immagine del Block Diagram non riesci proprio a postarla? ---------------------------------------- AUTORE: 1553 DATA :22/11/2006 - 18:12:43 ---------------------------------------- Con una variabile globale sono riuscito a risolvere il problema. il problema era dovuto al fatto che il dato veniva letto una sola volta, poi iniziava il ciclo del subVI e se il dato veniva modificato non riusciva più ad essere letto perchè il valore non veniva più richiamato... forse non sono stato chiarissimo!! Cmq grazie![/quote] ---------------------------------------- AUTORE: 645 DATA :23/11/2006 - 08:48:45 ---------------------------------------- Puoi provare ad usare il "Property Node--> Value" riferito alla variabile che vuoi leggere dopo aver iniziato il ciclo. ---------------------------------------- ================================================================================ sintassi ================================================================================ AUTORE: 1596 DATA :20/11/2006 - 16:52:58 ---------------------------------------- il mio problema è qst: nn riesco a trovare sul manuale del labview la sintassi ke posso utilizzare...mi spiego meglio:istruzioni del tipo *IDN? ; GPIB0::18::INSTR ; cm posso fare x conoscere qste informazioni x tenerle tutte sott'occhio?x intenderci mi servirebbe una sorta di elenco analitico!!! ---------------------------------------- AUTORE: 247 DATA :20/11/2006 - 17:25:20 ---------------------------------------- Ciao, L'elenco di stringhe alle quali il tuo strumento risponde in GPIB le trovi sul manuale del tuo strumento, non su quello di LabVIEW. BYE. P.S. potresti usare meno abbreviazioni quando scrivi, please? ---------------------------------------- AUTORE: 1596 DATA :21/11/2006 - 09:39:15 ---------------------------------------- grazie apollon...scusa per le abbrev. \":wink:\" ---------------------------------------- ================================================================================ Lettura encoder con LPT ================================================================================ AUTORE: 482 DATA :21/11/2006 - 08:40:12 ---------------------------------------- ...ma ciao! stavo facendo delle prove... Ho un encoder di tipo A,B,N con i rispettivi negati a 1024 impulsi al giro. Vorrei legegrlo con la porta parallela ma: 1) Con che criterio logico devo combinare i tre ingressi? 2) A che frequenza al massimo posso leggere con la parallela? e..... basta, direi che è tutto. ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 19:04:07 ---------------------------------------- [quote:aprvt7e8] Ho un encoder di tipo A,B,N con i rispettivi negati a 1024 impulsi al giro. Vorrei legegrlo con la porta parallela ma: 1) Con che criterio logico devo combinare i tre ingressi? 2) A che frequenza al massimo posso leggere con la parallela? [/quote:aprvt7e8] A e B sono i segnali che permettono discernere la direzione e, prendendo uno di loro, contare i passi. N è l'impulso di origine giro. Per quanto riguarda la massima frequenza che poi leggere, lo puoi solo determinare provando prima sul PC che userai quanto velocemente puoi leggere la parallela stessa. Una buona "thumb rule" ci dice che la massima frequenza di passi che riuscirai a leggere è circa un decimo di quell'altra. ---------------------------------------- AUTORE: 482 DATA :24/11/2006 - 07:13:29 ---------------------------------------- eh si...ma con che criterio potrei stabilirlo? Io al momento ho collegato l'encoder e andavo a leggere il canale A. Ho messo la temporizzazione a 1 millisecondo. Poi ovviamente se facevo girare l'encoder lentamente,in un giro leggevo 1000 e passa inpulsi, se lo facevo girare veloce non arrivavo neanche a 200. io so che l'ancoder è da 1024 impulsi giro, dovrei stabilire la velocità massima alla quale posso esser sicuro di non perdere impulsi. Come posso fare? ---------------------------------------- AUTORE: 384 DATA :24/11/2006 - 09:31:29 ---------------------------------------- [quote:35e6mlaz]eh si...ma con che criterio potrei stabilirlo? Io al momento ho collegato l'encoder e andavo a leggere il canale A. Ho messo la temporizzazione a 1 millisecondo. Poi ovviamente se facevo girare l'encoder lentamente,in un giro leggevo 1000 e passa inpulsi, se lo facevo girare veloce non arrivavo neanche a 200. io so che l'ancoder è da 1024 impulsi giro, dovrei stabilire la velocità massima alla quale posso esser sicuro di non perdere impulsi. Come posso fare? [/quote:35e6mlaz] Facendo due conti, con una temporizzazione di 1 ms, fai 1000 letture/s della parallela. Usando la "thumb rule", quindi, ci si aspetta di poter leggere al massimo 100 passi al secondo. Se l'encoder è da 1024 passi/giro, si riesce a leggere alla massima velocità di circa un decimo di giro al secondo senza perdere passi. Inizia a non mettere nessuna temporizzazione e misura il tempo ciclo del tuo loop. Questo ti dará la massima frequenza di *lettura* dalla parallela. Trovata questa, sai che i passi dell'enconder non potranno essere letti tipicamente a più di un decimo di quella frequenza. Attenzione ad alcune cose: -questa è una thumb rule, cioè, un'indicazione tipica; non è detto che non si riescano a leggere passi anche più veloci. In teoria basta che fra 2 letture consecutive il segnale (A o B) non cambi stato più di 1 volta. -qualunque elaborazione o codice aggiuntivo nel tuo loop andrá a cambiare il suo tempo ciclo; ---------------------------------------- ================================================================================ VI server in libreria llb ================================================================================ AUTORE: 683 DATA :21/11/2006 - 10:33:21 ---------------------------------------- cioa a tutti, utilizzo il vi server per leggere e scrivere valori qua e la per tutti i vi che girano sul mio pc, ora ho raggruppato tutto in una Vi library come faccio a dargli la path per creare la reference a quel vi che prima era savato in una cartella e ora è dentro la libreria? grazie a tutti ciao ciao ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 19:11:11 ---------------------------------------- Mi sembra di ricordare che il nome della LLB si comporta proprio come se fosse una "ulteriore" directory. Qualcuno conferma? ---------------------------------------- AUTORE: 683 DATA :23/11/2006 - 20:59:01 ---------------------------------------- io ho porvato a insere path da dal controlpaht forse devo mettergli l'indirizzo a mani es: c:\prova.llb\miVI.vi??? grazie ciao ---------------------------------------- AUTORE: 927 DATA :24/11/2006 - 09:03:46 ---------------------------------------- In genere per i file dentro le LLB è proprio così. Inoltre nelle Browse Options del controllo Path c'è "Treat LLBs as folders" che ti permette anche di sfogliarle (questo nella versione 8; nella 7 è un po' diverso ma c'è). ---------------------------------------- ================================================================================ Resize di una immagine ================================================================================ AUTORE: 1427 DATA :21/11/2006 - 11:19:24 ---------------------------------------- ciao a tutti! ho un problemino apparentemente stupido ma che non riesco a risolvere: io credo un report HTML nel quale allego delle immagini. Purtroppo le immagini risultano essere piu' grandi di un foglio A4, e cosi' le vorrei rimpicciolire prima di includerle, solo che usando LabView senza Vision (il codice deve girare anche su OSX) non riesco proprio a capire come fare. C'e' qualcuno che ha la soluzione a portata di mano? \":-)\" grazie! ---------------------------------------- AUTORE: 482 DATA :21/11/2006 - 12:39:26 ---------------------------------------- se fossi in te inserirei l'immagine utilizzando una stringa HTML. Anche il VI delle librerie LabVIEW non fa altro che generare codice html. Solo che nond ala possibilità di settare le dimensioni dell'immagine ma solo l'allineamento. Tu dovresti fare in modo che oltre ai paremetri SRC e ALIGN ci sia anche il SIZE e settarlo magari a 100% in modo che ti occupi sempre la dimensione della pagina in larghezza o altezza vedi tu. ---------------------------------------- AUTORE: 1427 DATA :21/11/2006 - 20:22:02 ---------------------------------------- [quote="gepponline":1qto0mrc]se fossi in te inserirei l'immagine utilizzando una stringa HTML. [/quote:1qto0mrc] mi sembra il consiglio vincente e ti ringrazio. Solo che nemmeno questo saprei fare \":-P\" Io salvo l'immagine sapendo nome del file ed il path. Come posso poi passare al report il codice HTML e qual e' il "comando" per caricare una immagine? Grazie mille per l'attenzione! ---------------------------------------- AUTORE: 482 DATA :22/11/2006 - 07:22:30 ---------------------------------------- allora..innanzitutto usa un vi per aggiungere testo al report e inserisci una stringa del genere: [code:dmziahvk]<img style="width: 700px; height:280px;" alt="" src="IMMAGINE.JPG">[/code:dmziahvk] IMMAGINE.JPG indica il nome dell'immagine che vuoi inserire. Se risiede in un altra cartella rispetto al file html allora devi mettergli davanti il percorso completo con la sintassi [code:dmziahvk]file:///C:/cartelladiesempio/IMMAGINE.JPG[/code:dmziahvk] DOve hai width e height puoi specificare l'altezza e la larghezza in pixel, come dicevo precedentemente, l'alternativa è mettere come widht 100% (% anzichè px) per occupare tutta la pagina in larghezza. buon lavoro! \":wink:\" ---------------------------------------- ================================================================================ Alcune domande ================================================================================ AUTORE: 955 DATA :21/11/2006 - 13:00:05 ---------------------------------------- Avrei un paio di domande 1-Volevo sapere come si fa a creare un sub-VI che abbia 6 uscite 2-sto utilizzando un cRIO e devo generare 4 segnali.Dovrei quindi utilizzare 4 blocchi read/write e vorrei fare in modo che ogni elemento di ciascun segnale venga memorizzato consecutivamente nelll'address. ovvero ad esempio: elemento 1: memorizzo il primo elemento di ognuno dei 4 segnali. elemento 2: memorizzo il secondo elemento di ognuno deii 4 segnali come si fa? ---------------------------------------- AUTORE: 645 DATA :21/11/2006 - 13:11:26 ---------------------------------------- Per la prima domanda: devi creare un SubVI e quando modifichi il pattern dei collegamenti (clicca sull'icona con il tasto destro e seleziona "Show Connector") scegli una soluzione con 6 (o almeno 6) connettori. Per la seconda domanda: non ho mai usato un CRio ma se ricevi i dati dal modulo e li memorizzi come array puoi lavorare sulle singole posizioni dell'array per ricavare nuovi vettori con i dati disposti come desideri. ---------------------------------------- AUTORE: 955 DATA :21/11/2006 - 13:34:43 ---------------------------------------- come si crea un sub vi?non lo so fare \":oops:\" ---------------------------------------- AUTORE: 927 DATA :21/11/2006 - 14:10:29 ---------------------------------------- Un subVI è semplicemente un altro VI... Puoi crearlo e salvarlo a parte, poi per inserirlo dentro gli altri VI usa "Select a VI..." nel menù delle funzioni. Per stabilire ingressi/uscite vai nel Front Panel, clicca col dx nell'icona in alto a destra, fai "Show Connector", e collega i terminali (quadratini bianchi) ai controlli/indicatori cliccando prima gli uni e poi gli altri. Oppure, se il diagramma del subVI che vuoi fare esiste già dentro il VI, selezionalo e poi fai Edit->Create SubVI, il diagramma ti si "restringe" diventando il subVI con gli ingressi già pronti. O meglio ancora, leggi l'help \":D\" ---------------------------------------- AUTORE: 4 DATA :21/11/2006 - 14:31:03 ---------------------------------------- martinmistere, due appunti. 1 apri una discussione per ogni domanda 2 usa dei titoli che facciano intendere la domanda Ciao ---------------------------------------- AUTORE: 955 DATA :21/11/2006 - 14:35:54 ---------------------------------------- [quote="ale914":12zjhyfb]martinmistere, due appunti. 1 apri una discussione per ogni domanda 2 usa dei titoli che facciano intendere la domanda Ciao[/quote:12zjhyfb] si scusa pensavo di fare una cosa buona mettendo lì tutte e due le domande così da non intasare il forum \":oops:\" scusate \":oops:\" ---------------------------------------- AUTORE: 4 DATA :21/11/2006 - 14:37:57 ---------------------------------------- figurati, comunque il forum non si intasa di certo quindi apri pure tutti i topic che ti servono! Ciao ---------------------------------------- ================================================================================ Delay... ================================================================================ AUTORE: 1608 DATA :21/11/2006 - 18:16:56 ---------------------------------------- Sono un nuovo utente di Labview...ho bisogno di un consiglio per un progetto scolastico..Come faccio a trovare il ritardo tra due segnali acquisiti da un daq? pensavo di usare la correlazione e cercare quando si trova il massimo, ma non so come procedere. Qualcuno ha gia provato qualcosa di simile? ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 18:51:44 ---------------------------------------- La correlazione è il modo giusto. Nella pallette di funzioni Analyze\SignalProcessing\TimeDomain esiste un VI Express che permete di fare delle prove direttamente in modo semplice. Leggi anche il suo help. ---------------------------------------- AUTORE: 1608 DATA :24/11/2006 - 10:30:59 ---------------------------------------- Davvero esiste un vi gia pronto? perche cercando non ho trovato niente che mi permettesse di trovare direttamente il ritardo..solo di ritardare un segnale. In ogni caso provero a guardare, grazie. ---------------------------------------- AUTORE: 384 DATA :24/11/2006 - 11:21:08 ---------------------------------------- Non produce il valore del ritardo, bensi permette di "giocare" con le funzioni correlazione, ecc., (Analyze\SignalProcessing\TimeDomain\Convolution and Correlation) senza preocupparsi delle varie impostazioni. Bisognerà sempre rilevare il picco nell'array di uscita della correlazione, ma anche per questo c'è una funzione (Analyze\SignalProcessing\TimeDomain\Convolution and CorrelationPeakDetector.vi). ---------------------------------------- AUTORE: 1608 DATA :24/11/2006 - 17:44:15 ---------------------------------------- Bene..sono salvo allora! Grazie! Per calcolare la correlazione su dati provenienti da un daq devo prima creare un array? ---------------------------------------- AUTORE: 384 DATA :24/11/2006 - 18:46:34 ---------------------------------------- [quote:20rulct1]Per calcolare la correlazione su dati provenienti da un daq devo prima creare un array?[/quote:20rulct1] In generale i dati acquisiti vanno sempre a finire in un array; in questo caso a maggior ragione. Non so che segnali devi acquisire, ma ti consiglio di usare comunque i blocchi DAQmx per l'acquisizione. Sono molto flessibili e permettono l'uscita dati in formato "waveform" che è mooolto più como per le elaborazioni numeriche. Fai sempre riferimento all'help ed agli esempi di LabView per iniziare a conoscere le funzioni e fare le prime prove. E poi ci siamo sempre noi, qua nel forum! E magari, mentre attendi risposte, fai un giro sul sito della [url=http://ni.com:20rulct1]National Instruments[/url:20rulct1]. Vi sono tantissime informazioni ed ulteriori esempi. ---------------------------------------- AUTORE: 1608 DATA :26/11/2006 - 11:55:58 ---------------------------------------- devo acquisire segnali da tre microfoni, per poi calcolare i tempi di arrivo del segnale. Purtroppo il mio hardware non mi consente di usare i blocchi daqmx, perche è un daq a basso costo della dataq (sono uno studente..quindi non posso permettermi altro) quindi ho i dati come numero. Ricapitolando: devo acquisire i dati, creare un array, calcolare la correlazione, poi? Ho fatto un lavoro simile con Matlab, li calcolavo la correlazione all'interno di un ciclo while, poi riardavo un segnale e calcolavo di nuovo la correlazione, fino ad ottenere il massimo, a questo punto era sufficiente contare di quanti campioni era stato ritardato il segnale. Devo fare qualcosa di simile anche con labview?. In simulink, invece, in una libreria c'era un blocco che trovava il ritatdo da solo, molto comodo, peccato che non mi serva ora. Scusate se la spiegazione non è molto chiara.. ---------------------------------------- AUTORE: 384 DATA :27/11/2006 - 10:21:08 ---------------------------------------- In labview dovrai acquisire i segnali in un array. Poi, con la funzione CrossCorrelation.vi, dai i due array in input ed ottieni la *funzione* correlazione. Quindi devi solo trovare il massimo (PeakDetector.vi). Queste funzioni si trovano nella palette: Analyze\SignalProcessing\TimeDomain Di nuovo, raccomando l'help della funzione di correlazione. Spiega in dettaglio come funziona ed ha anche un piccolo diagrammino. Sul sito NI ho trovato [url=http://zone.ni.com/devzone/cda/epd/p/id/4186:3demmifd]How to track the position of an acoustic signal source[/url:3demmifd]. Magari ha delle informazioni utili. (io non posso aprirlo perchè non ho LV8.2) [/url] ---------------------------------------- AUTORE: 1608 DATA :27/11/2006 - 19:17:34 ---------------------------------------- nemmeno io ho lv 8.2, pero grazie lo stesso..provero a fare come mi consigli! Questo metodo posso usarlo anche per trovare il delay in "tempo reale"? ---------------------------------------- AUTORE: 384 DATA :28/11/2006 - 11:00:03 ---------------------------------------- Certamente! Devi solo avere un PC che sia in grado di eseguire il tutto con sufficiente celeritá. ---------------------------------------- AUTORE: 1608 DATA :03/12/2006 - 19:22:44 ---------------------------------------- beh..ci ho provato..ma ancora non riesco..se allego il mio vi qualcuno mi puo dare qualche consiglio? No ---------------------------------------- AUTORE: 384 DATA :04/12/2006 - 09:20:31 ---------------------------------------- P.f. posta il tuo vi in versione 7.1; non ho la 8.0 installata. ---------------------------------------- AUTORE: 1608 DATA :06/12/2006 - 18:35:44 ---------------------------------------- Ecco, scusate se ci ho messo cosi tanto..Il vi fa davvero pena, non c'è niente tranne la funzione che ho bisogno ora..se qualcuno mi puo aiutare a capire come posso trovare il ritardo tra due segnali, ricordi che contribuira a salvare lo stupido progetto di un liceale troppo ambizioso.. ---------------------------------------- AUTORE: 384 DATA :07/12/2006 - 11:25:02 ---------------------------------------- Beh, è con questi "stupidi progetti" che i "liceali ambiziosi" diventano bravi professionisti, facendosi le ossa da subito! \":)\" Dai un'occhiata al vi che allego. In linea di principio i concetti erano già quasi tutti presenti. Ciò che ho aggiunto io sono funzioni per visualizzazione ed alcune elaborazioni richieste (e descritte nella documentazione) dal modo in cui operano le funzioni di LabView. Ho comentato il diagramma, ma ciò non toglie che poi sempre chiedere maggiori chiarimenti. ---------------------------------------- AUTORE: 1608 DATA :07/12/2006 - 17:20:51 ---------------------------------------- Grazie..grazie..ora lo guardo e cercherò di capire! Ovviamente scherzavo riguardo agli "stupidi progetti" ma il mio progetto è davvero un po ambizioso...e devo presentarlo per gennaio! Perô ora avendo il ritardo posso dire che il grosso è fatto! ---------------------------------------- AUTORE: 1608 DATA :09/12/2006 - 17:21:46 ---------------------------------------- Grazie..grazie ancora..il vi funziona..ora ne ho fatto un subVi da integrare nel resto del programma! Ho bisogno di un consiglio, se mando il vi mi puoi dire se è giusto come ho proceduto per "preparare" i dati in modo da calcolarne il ritardo? ---------------------------------------- AUTORE: 384 DATA :11/12/2006 - 18:33:58 ---------------------------------------- Si, vai tranquillo. Ricordati che non ho le versioni 8.x installate. Ah, sarò via un paio di giorni, quindi non risponderò subito. ---------------------------------------- AUTORE: 1608 DATA :13/12/2006 - 18:39:39 ---------------------------------------- Ecco ti allego il mio vi..ho bisogno anche di un parere sullo script che ho aggiunto per poter stimare la posizione a partire da 3 ritardi..è piuttosto lento..esiste modo di ottimizzarlo? ---------------------------------------- AUTORE: 1608 DATA :18/12/2006 - 18:02:57 ---------------------------------------- Proprio nessuno può aiutarmi? ---------------------------------------- AUTORE: 384 DATA :18/12/2006 - 18:55:11 ---------------------------------------- Ho aperto il tuo VI ma non ho il MathScript, quindi quel non non è eseguibile. Confesso che non sono riuscito a capire il chi è chi delle variabili.Riusciresti a trasferire quel codice in un normale Formula Node? ---------------------------------------- AUTORE: 1608 DATA :18/12/2006 - 20:00:43 ---------------------------------------- Non penso...perchè quel mathscript e un codice matlab preso tale e quale...posso provarci ma ho i miei dubbi..perchè è un vero programma nel vi..serve per costruire delle iperboli a partire dai ritardi e a trovarne l'intersezione...comunque il resto dovrebbe funzionare tutto..solo non riesco a capire se è normale che il ritardo, quando lo mostro in un grafico non sia sempre costante ma oscilli molto rapidamente..pensavo che se emettessi un suono da una posizione fissa il ritardo fosse ragionevolmente stabile..devo raccogliere i ritardi in un array e calcolarne la media?devo usare il valore istantaneo?In ogni caso le variabili in entrata sono i 3 ritardi che vanno moltiplicati per la velocità del suono, in modo da ottenere la TDOA e le posizioni di due ricevitori in coordinate polari (angolo e distanza)[il terzo è supposto fisso nell'origine]. Purtroppo non posso ancora sapere se funziona davvero..perchè ho un microfono "morto", ma domani a scuola dovrei avere tutto il materiale per poter provare. ---------------------------------------- AUTORE: 384 DATA :19/12/2006 - 01:09:54 ---------------------------------------- É normale che le misure oscillino. C'è da vedere quanto oscillano e da quello stabilire se la causa è la precisione intrinseca, interferenze (rumore elettrico o di altro tipo) oppure dovuto a degli eventuali calcoli. É sempre una buona idea prendere una media mobile (moving average) delle misurazioni: da 5 a 10 campioni solitamente vano bene, ma potrebbero servire di più - dipende da ciò che si sta misurando, delle condizioni, dai sensori, etc. Talvolta servono anche filtraggi "pesanti". Comunque, la maggior parte dello sforzo conviene dedicarlo alla qualità del "segnale" da acquisire; quando questo è di scarsa qualità, non c'è molto che si possa fare. Ricorda che qualunque elaborazione non può MAI aumentare la 'quantità' ne la qualità globale dell'informazione originalmente presente, anzi, tipicamente la riduce. Alla meglio la mantiene, ma è rarissimo. L'unica cosa che può fare è migliorare la qualità di certe informazioni però sempre a scapito di altre. Questo è particolarmente vero - e sopratutto visibilmente apprezzabile - in elaborazione di immagini. Quando si fanno calcoli, bisogna prestare molta attenzione e cercare di capire se essi non introducono "rumore". Questo rumore è proporzionale alla derivata. Per esempio, se si cerca di determinare una velocità misurando un tempo - sapendo che v=s/t - è necessaria una enorme attenzione nelle misure del tempo perchè, essendo esso in denominatore, qualsiasi piccola variazione avrà un impatto notevole sul valore calcolato - tanto più grande quanto più piccolo il valore del tempo stesso. ---------------------------------------- AUTORE: 1608 DATA :19/12/2006 - 16:36:20 ---------------------------------------- Oggi a scuola ho provato..le misure oscillano senza alcuna ragione apparente..anche quando nessun microfono è collegato. Ora ho alcune domande: -è giusta l'idea di usare un collector per formare un "vettore" con i dati ottenuti dal daq, in quanto mi da dei numeri come output?Che dimensione devo usare? -le oscillazioni sono piuttosto piccole rispetto al segnale, ma disturbano lo stesso...posso immaginare di usare una funzione di soglia, che mi dia 0 se la misura è inferiore a un certo valore (ampiezza minima del segnale del microfono)? -come faccio a visualizzare un grafico "bello" dei dati che sto acquisendo..nel software della scheda si vedono delle onde ben definite..in lv vedo tutto a "scale" e scorre lentissimo.. _è possibile che i disturbi vengano perche ho usato dei cavi non adatti dal microfono al daq? ---------------------------------------- AUTORE: 384 DATA :20/12/2006 - 08:44:22 ---------------------------------------- [quote="bafe":1ideweil]Oggi a scuola ho provato..le misure oscillano senza alcuna ragione apparente..anche quando nessun microfono è collegato.[/quote:1ideweil] Questo mi fa pensare a rumore di fondo. Verifica che i tuoi cavi di segnale non passino vicino ad alimentatori o altre potenziali sorgenti (strumenti, ecc.). Tenerli lontani dal computer il più possibile aiuta. [quote:1ideweil]Ora ho alcune domande: -è giusta l'idea di usare un collector per formare un "vettore" con i dati ottenuti dal daq, in quanto mi da dei numeri come output?Che dimensione devo usare?[/quote:1ideweil] Se con questo intendi un array dal quale fare una media mobile, la risposta è si. Se ora stai campionando il suono ad una certa frequenza, e vuoi fare una media mobile su 10 campioni, dovrai campionare a 10 volte la frequenza di prima. La dimensione dipende da come lo implementerai. Potresti prendere "grossi" tronchi di dati e poi mediarli oppure prenderene soltanto quei 10 alla volta. [quote:1ideweil]-le oscillazioni sono piuttosto piccole rispetto al segnale, ma disturbano lo stesso...posso immaginare di usare una funzione di soglia, che mi dia 0 se la misura è inferiore a un certo valore (ampiezza minima del segnale del microfono)?[/quote:1ideweil] Cosa vuol dire "piutosto piccole"? Devi valutare il loro rapporto (non è altro che il raporto segnale/rumore) e quanto questo incide nel tuo valore finale. Di quanto varia quest'ultimo? É entro la precisione che ti viene richiesta? Questa á la domanda da rispondere, non si deve per forza "eliminare assolutamente qualunque variazione"... Usare una soglia come dici tu fa soltanto la cosmesi del segnale; non è una buona idea perchè elimina il sintomo ma non le cause - che tra l'altro non si sono capite - e non ci mette al riparo dello [b:1ideweil]stesso[/b:1ideweil] problema se dovesse ulteriormente intensificarsi per qualche motivo. Talvolta può essere la soluzione, a condizione che si abbia capito COMPLETAMENTE il problema a monte, perchè può aiutare e cosa produce. [quote:1ideweil]-come faccio a visualizzare un grafico "bello" dei dati che sto acquisendo..nel software della scheda si vedono delle onde ben definite..in lv vedo tutto a "scale" e scorre lentissimo..[/quote:1ideweil] Questo potrebbe essere un problema di quantizzazione, cioè, stai usando soltanto una parte della scala disponibile. Se per esempio il segnale del tuo microfono raggiunge al massimo 50 mV e hai impostato la scheda per massimo 1 Volt in ingresso, stai predendo risoluzione e vedrai questo effetto a "scalini". Imposta l'ingresso della scheda su una scala il più vicino possibile al tuo segnale. Se scorre lentissimo potrebbe essere legato alla tua frequenza di campionamento. Un'altro problema che poi avere legato alla frequenza di campionamento è il teorema di Nyquist (che molti conoscono come teorema di Shanon, non del tutto correttamente perchè è stato Nyquist a stendere le basi del lavoro di Shanon). Esso ci dice che dobbiamo campionare un segnale ad almeno due volte la ferquenza del segnale stesso. Ma attenzione!!!!! Se intendiamo fare misure sui dati nel dominio del tempo, questo NON É SUFFICIENTE!!! Leggi [url=http://www.ilvg.it/forum/viewtopic.php?p=9036#9036:1ideweil]questo mio post[/url:1ideweil] sull'argomento. [quote:1ideweil]_è possibile che i disturbi vengano perche ho usato dei cavi non adatti dal microfono al daq?[/quote:1ideweil] Tecnicamente si. Se hai usato dei normali 'fili' non schermati lunghi qualche metro questo è proprio un "invito a cena" per il rumore. Ma se li hai usati di 20 o 30 centimetri, oppure un normale cavo schermato da microfono, purchè non di "molti" metri, non vedo problemi. Se proprio questo fosse il problema, dovrai preamplificare il segnale dei microfoni posizionando i preamplificatori elettrica e fisicamente vicino ai microfoni stessi. Comunque io lascerei per ultimissimo quest'ipotesi. Sono assolutamente convinto che il problema non sia lì (tanto che con il software della scheda vedi dei segnali puliti!). ---------------------------------------- AUTORE: 384 DATA :20/12/2006 - 08:45:53 ---------------------------------------- Scusate. Mi si è impiantato il browser e prima di accorgemene ho cliccato 3 volte su "invia". ---------------------------------------- AUTORE: 1608 DATA :20/12/2006 - 18:31:04 ---------------------------------------- -non sono risucito a trovare la fonte del disturbo -Intendevo che il mio daq mi da solo una serie di numeri, 14400 al secondo, ma la funzione che calcola il ritardo ha il bisogno di un vettore, in ingresso, vero?Mi sono sono spiegato male,l'altra volta. -La stessa funzione è molto sensibile alla piccole variazioni (rumore)? Cambiando la soglia posso cambiare la sua sensibilità? -Il mio microfono è gia preamplificato, se collego un altra sorgente (motore elettrico o altro) al daq ho lo stesso problema La frequenza di campionamento è piuttosto alta (5khz per canale), immagino che questo non giustifichi la lentezza quando cerco di visualizzare su un waveform chart.. ---------------------------------------- AUTORE: 1608 DATA :20/12/2006 - 19:00:13 ---------------------------------------- Ancora una domanda: il subVi che ho fatto della tua funzione è giusto? Posso usarlo all'interno di un ciclo while? Per usare il mio daq (un rottame infernale) devo lavorare tutto all'interno di un ciclo while dove la funzione GetScaledData possa contiunamente darmi il numero come output. Il ciclo while puo darmi problemi? ---------------------------------------- AUTORE: 384 DATA :21/12/2006 - 15:42:52 ---------------------------------------- Se ricevi 14400 numeri/secondo dal tuo DAQ, la frequenza `di campionamento non può essere 5KHz, neanche per canale - perchè non sono multipli. Sicuramente vedo un problema di impostazioni. Per quanto riguarda il mio VI può tranquillamente essere usato all'interno di un loop. Forse è in quel loop che stai "perdendo" tempo - e campioni. Poi confesso che non sono riuscito a capire che 'vettore' devi dare in ingresso alla tua funzione. Fai attenzione che in programmazione si usa molto spesso la parola vettore per significare un normale array monodimensionale (a prescindere della sua lunghezza) e quindi magari stiamo (sto io!) confondendo questo con il classico vettore cartesiano definito da una coppia (x,y) o terna (x,y,z). Per quello ti chiedevo il codice matlab "tradotto" in labview: non sono riuscito a capire che cosa entra. É vero che non ho avuto molto tempo da dedicarci. Adesso sarò "in silenzio" fino a dopo Natale. Riprenderemmo allora. Buone Feste! ---------------------------------------- AUTORE: 1608 DATA :21/12/2006 - 17:23:05 ---------------------------------------- Innanzitutto scusami, mi sono spiegato male, infatti la frequenza di campionamento non è esattamente 5khz ma 14400/3 cioe 4800Hz per canale visto che ho impostato l'uso di 3 canali. Per quello che riguarda i vettori, intendo un array, non un vettore caratesiano, ma la sua generalizzazione. Abituato da scuola ho usato vettore per indicare un array monodimensionale Forse non ho spiegato bene il mio problema: mi chiedevo se fosse necessario raccolgiere i dati dal mio daq (numeri) in un array, per poi poterne calcolare il ritardo..per quello che ne so non è possibile calcolare la correlazione su un numero. Per caso il vi "correlation and convolution" ,presente nel tuo vi, provvede automaticamente a raccogliere i dati in un array, prima di calcolare la correlazione? ---------------------------------------- ================================================================================ scrittura lettura vettore bidimensionale su file binario ================================================================================ AUTORE: 1463 DATA :21/11/2006 - 18:25:31 ---------------------------------------- Ciaooo!!!!!! e scusate l'ennesimo disturbo.... Vi spiego il mio problema: devo salvare i dati prelevati dalla scheda di acquisizione provenienti da due ingressi differenti. Quindi ho due segnali. Una volta prelevati li metto assieme (con un build array) creando un vettore bidimensionale. Io devo riuscire a salvare i due segnali su file binario, per poi poterli rileggere. le domande sono: 1)E' possibile salvare un vettore bidimensionale su un unico file binario? 2)comè' che posso caricare due file binari contemporaneamente e visualizzarne i valori su uno stesso grafico? Non è che qualcuno sarebbe cosi gentile, se ha tempo, da modificare i file allegati x le modifiche al mio problema? GRAZIE INFINITE!!!!!!!!! ---------------------------------------- AUTORE: 927 DATA :24/11/2006 - 09:20:08 ---------------------------------------- Non ho visto i file, ma: 1) Al Write File (Labviù 7) o Write Binary File (Labviù \"8)\" puoi mandare in ingresso dati in qualsiasi formato, quindi anche un vettore 2D. 2) Se usi ad esempio un Waveform Graph, puoi mandargli in ingresso un vettore 2D (che sai già costruire) e ottieni un grafico con 2 tracce. E così via per N tracce. E' questo che intendevi? ---------------------------------------- AUTORE: 927 DATA :24/11/2006 - 09:20:53 ---------------------------------------- Ehm, quella faccina era un 8 \":lol:\" ---------------------------------------- AUTORE: 1463 DATA :25/11/2006 - 12:46:30 ---------------------------------------- eh si...grazie molllto gentile..... Per il salvataggio, ok!!! Quandopero uso il read binary file dagli esempi di labview, lui legge il file, ma mi plorra una traccia sola, per altro tutta incasinata.Come posso fare? ---------------------------------------- AUTORE: 927 DATA :27/11/2006 - 08:39:55 ---------------------------------------- Che versione di Labviù hai? Che tipo di grafico vuoi usare esattamente? Io lascerei perdere gli esempi. Prendi un Read Binary File (se hai la 8 ); nell'ingresso "data type" mettici un vettore 2D di tipo uguale a quello che hai scritto sul file (va bene anche uno costante vuoto). Dagli ovviamente il percorso nellì'ingresso "file", e su "data" ti dovrebbe uscire il vettore 2D ---------------------------------------- AUTORE: 1463 DATA :27/11/2006 - 09:29:21 ---------------------------------------- ciaoooo...ho fatto come hai detto (vedi allegato)...ma....nulla........... ---------------------------------------- ================================================================================ Controllo gateway con labview ================================================================================ AUTORE: 1611 DATA :22/11/2006 - 09:09:14 ---------------------------------------- Ciao a tutti sono Daniele e ho un progetto in corso col labview che non reisco a portare avanti.Spero mi possiate aiutare. Dovrei controlllare con il labview,in modo da ricevere e acquisire informazioni, un gateway della woodhead. Tale gateway e' collegato al pc tramite ethernet e ad un PLC tramite profibus. E' possibile sapere come fare o almeno avere un'immagine dello schema a blocchi che dovrei utilizzare? Per maggiori informazioni contattatemi su msn a danicint@hotmail.com chiedo aiuto..rispondetemi grazie!!!!!!!!!! \":P\" ---------------------------------------- AUTORE: 1611 DATA :23/11/2006 - 10:02:20 ---------------------------------------- Be'..spero che qualcuno sappia di cosa sto parlando...cmq il gateway in questione ha dei moduli Vi base gia' fatti come Close e INizializate solo che bisogna editarli ad esempio con i comandi del gateway...ma dove trovo questi comandi ???dove si leggono?? ad esempio error query command o roba simile?? ---------------------------------------- AUTORE: 645 DATA :23/11/2006 - 11:16:33 ---------------------------------------- Hai guardato nel manuale del prodotto? ---------------------------------------- ================================================================================ subVI e tabelle ================================================================================ AUTORE: 955 DATA :22/11/2006 - 10:14:48 ---------------------------------------- Sto lavorando con il compact Rio e devo creare un subVI da cui attingere alcuni parametri come tensioni, correnti,offset etc etc. Fin qui ci sono arrivato senza problemi. Ora però nel subVI ho anche la famigerata tabella (che ha fatto impazzire tanto me che non la sapevo fare e voi che mi avete aiutato \":wink:\" ). La domanda (valida anche per i parametri come tensioni e correnti) è: se io setto come ingresso/uscita i parametri su citati quando nel VI vado a modificare quei parametri questi vengono visti dal subVI? \":roll:\" perchè a giudicare da quanto genero...ehm direi di no \":oops:\" ---------------------------------------- AUTORE: 955 DATA :22/11/2006 - 14:28:04 ---------------------------------------- ho verificato ed effettivamente se vario i parametri del front pannel del VI principale questi vengono variati anche nel subVI ma se nel front pannel modifico le tabelle queste non vengono modificate nel subVI...perchè? in cosa sbaglio? \":?\" ---------------------------------------- AUTORE: 927 DATA :22/11/2006 - 14:51:41 ---------------------------------------- Non ho capito... cos'è che dovrebbe collegare le tabelle del VI alle tabelle del subVI? E' chiaro che non si modificano da sole, i dati devi passarli tu, di solito usando gli ingressi e le uscite del subVI ---------------------------------------- AUTORE: 955 DATA :23/11/2006 - 07:43:54 ---------------------------------------- [quote="Snamprogetti":3on8cubv]Non ho capito... cos'è che dovrebbe collegare le tabelle del VI alle tabelle del subVI? E' chiaro che non si modificano da sole, i dati devi passarli tu, di solito usando gli ingressi e le uscite del subVI[/quote:3on8cubv] allora io ho realizzato un subVI e ho messo come ingressi/uscite 1 frequenza fondamentale 4 ampiezze di tensioni e correnti 1 dimensione della forma d'onda 3 tabelle (rappresentanti le armoniche) ora fino alla dimensione della forma d'onda funziona tutto perfettamente cioè inserisco i dati nel VI e questi vengono modificati nel subVI se però vado a variare i parametri delle 3 tabelle beh restano impostati i dati che ho inserito nel subVI... \":roll:\" perchè? ---------------------------------------- AUTORE: 955 DATA :23/11/2006 - 08:37:04 ---------------------------------------- leggendo tra i vari post del forum mi è parso di capire che il property node in un subVI non può essere usato ma bisogna utilizzare un reference...ho capito bene? se è così gentilmente mi potreste fare un programmino per un subVI con una tabella che utilizzi il reference?così riuscirei a capire bene come funziona \":oops:\" . grazie mille \":wink:\" ---------------------------------------- AUTORE: 645 DATA :23/11/2006 - 08:47:40 ---------------------------------------- Puoi postare un'immagine del Block Diagram? ---------------------------------------- AUTORE: 927 DATA :23/11/2006 - 08:53:34 ---------------------------------------- Ok forse ho capito \":wink:\" Passi le tabelle come uscite del VI, collegandole direttamente ai connettori di uscita. Però dall'ultima domanda che hai fatto, sembra che usi un property node per accedere al contenuto delle caselle. Anzitutto, sono proprio controlli "Table"? Perchè se stai usando "Multicolumn Listbox" (uguale alla tabella, più ha i titoli delle colonne) il valore che passa NON è il contenuto delle caselle, è l'indice della riga selezionata, e per leggere/scrivere le caselle servono appunto i property node. Le "Table" vere e proprie passano invece il contenuto, proprio come gli array 2D di stringhe. Se usi i controlli giusti, non dovresti aver bisogno delle reference in questa applicazione... ---------------------------------------- AUTORE: 955 DATA :23/11/2006 - 08:58:17 ---------------------------------------- si sto usando il multicolum listbox ed è esatto passo gli indici della tabella tramite il property poi da li con un index array li estrapolo ma nel subVI non prende i parametri ---------------------------------------- AUTORE: 645 DATA :23/11/2006 - 08:59:55 ---------------------------------------- Prova a lavorare con i "Property Node"... trovi Item Names per gli elementi presenti in tabella e Headers per gli elementi delle intestazioni. ---------------------------------------- AUTORE: 927 DATA :23/11/2006 - 09:32:46 ---------------------------------------- Io ribadisco che farei senza reference \":lol:\" Nel subVI sostituirei la Listbox con un normale array di stringhe (tanto non si vede...), e gli passerei direttamente quelle, dopo averle estratte col property node "Item Names" nel VI chiamante. Cmq se vuoi usare la reference, si fa così: nella Listbox fai Create -> Reference e ottieni la costante. Dalla costante fai Create -> Control/Indicator per creare i terminali di ingresso/uscita. Nel VI chiamante passa la Ref costante all'uscita. Nel subVI chiamato prendi la Ref dall'ingresso e mandala al property node, da cui tiri fuori con Item Names direttamente il contenuto della tabella originale. Notare che, anche in questo caso, la Listbox nel subVI non ha alcun motivo di esistere... ---------------------------------------- AUTORE: 955 DATA :23/11/2006 - 10:44:04 ---------------------------------------- mah ho risolto utilizzando un table \":)\" viene che è una bellezza \":lol:\" grazie ragazzi \":wink:\" ---------------------------------------- ================================================================================ visualizzazione dati su interfaccia grafica ================================================================================ AUTORE: 1067 DATA :22/11/2006 - 11:47:25 ---------------------------------------- Ho la necessità di visualizzare su interfaccia grafica il contenuto di file di grandi dimensioni. Ho provato ad utilizzare tabelle e liste ma quando i file sono troppo grandi (esempio 9000 righe di tabella), dopo un certo numero di righe il processo si rallenta sempre più e diventa inaccettabile il tempo impiegato. Come posso risolvere questo problema? ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 18:27:22 ---------------------------------------- Se è una questione di visualizzazione - quindi da parte di un umano (almeno si pera! \":wink:\" ) - si può sfruttare il fatto che l'umano è sempre molto più lento della macchina e fare accesso diretto al file, cioè, non caricare in memoria tutto il file ma solo una parte; questa potrebbe essere un certo numero di righe prima e dopo quella che è al momento sotto il "cursore". ---------------------------------------- ================================================================================ While parallelo ================================================================================ AUTORE: 1157 DATA :22/11/2006 - 13:03:49 ---------------------------------------- so che è una domanda stupida, cioè elementare, ma non ricordo la sequenza per creare una variabile locale che mi leghi due cicli while in parallelo. Grazie, grazie anticipatamente. ---------------------------------------- AUTORE: 645 DATA :22/11/2006 - 14:01:46 ---------------------------------------- Guarda http://zone.ni.com/devzone/cda/epd/p/id/4970 ... Per creare una variabile locale, in generale, clicchi con il destro sulla grandezza e selezioni "Create --> Local Variable". \":D\" ---------------------------------------- AUTORE: 1157 DATA :22/11/2006 - 15:17:31 ---------------------------------------- Grazie MagicBotolo, ho provato ma mi da errore, sicuramente sbaglio nella costruzione, in particolare come lego lo stop dei due cicli...? Grazie mille ---------------------------------------- AUTORE: 645 DATA :22/11/2006 - 15:23:23 ---------------------------------------- Puoi postare un'immagine del VI che hai preparato? Con le immagini è un po' più semplice... di solito... \":)\" ---------------------------------------- AUTORE: 1157 DATA :22/11/2006 - 15:51:40 ---------------------------------------- Ti allego lo scheletro dei due while loop in parallelo, e l'error list mi da come risposta: "Boolean latch action is incompatible with local variables". Lo sono ottuso, ma c'è qualcosa che mi sfugge... Grazi MagicBotolo ---------------------------------------- AUTORE: 645 DATA :22/11/2006 - 16:18:17 ---------------------------------------- Ti rispondo con il tuo VI modificato e un VI in più in alternativa. Ho modificato il tuo VI cambiando l'azione meccanica del pulsante (clicca con il tasto destro sul pulsante e scegli l'azione meccanica... guarda quella che ho scelto io). Poi ho inserito dei ritardi nei cicli: per fermare il tutto devi tenere abbassato il pulsante per un tot di tempo, nel caso peggiore per l'intervallo di tempo necessario al ciclo principale per leggere il valore del pulsante (in questo esempio il pulsante si trova nel ciclo "Principale" e il richiamo alla variabile nel ciclo "Secondario"). Nel secondo file ho sostituito i while con i while temporizzati: c'è un'istruzione in più che all'uscita del ciclo principale blocca tutti gli altri cicli (in questo caso solo il "Secondario") e non serve più la variabile locale. ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 18:34:42 ---------------------------------------- Un pò di benzina sul fuoco: Perchè non usare le "occurences"? Vano che è una meraviglia per questo! (anche altro!) ---------------------------------------- AUTORE: 1157 DATA :23/11/2006 - 18:56:08 ---------------------------------------- grazie "per la benzina sul fuoco", ma per capire meglio... che differenza c'è nell'usare una variabile locale o una occurences per legare due while in parallelo? ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 20:14:44 ---------------------------------------- Per prima cosa la variabile locale ti costringe a modificare la "mechanical action" del pulsante - che dovrai "tirare su" manualmente prima di finire oppure prima di iniziare. Secondo, le occurrences usano molto meno risorse (memoria, processore). Terzo - ma assolutamente non meno importante - l'uso di variabili "rompe" il flusso dei dati e la connessione logica fra i blocchi che sono la principale forza di LV. Questo, oltre che rendere il codice molto meno leggibile, ti fará letteralmente impazzire quando dovrai "debuggare" i tuoi vi man mano diventeranno piu complessi. Quarto, la trovo una tecnica di programazione oltre che efficiente, molto più elegante. E anche se questa ultima può essere tacciuta di pura opinione personale, non sono l'unico a condividerla. Ultimo, visto che non appesantisce il codice, ha tutti questi vantaggi ed in certi casi è veramente insostituibile, perchè non iniziare ad usarla in queste cose semplici e padroneggiarla per quando i VI si faranno "seri"? ---------------------------------------- AUTORE: 1157 DATA :23/11/2006 - 22:04:15 ---------------------------------------- Ti ringrazio tantissimo del consiglio sulle occurences, approfitto della tua esperienza per chiederti un consiglio sulla scroll bar delle waveform charts. Dalle prove che sto facendo dopo un po di tempo lo scroll bar scompare, è come se avesse un buffer limitato. Ti invio anche il mio programma modificato col tuo consiglio(ocurrences al posto della variabile locale), ma anche così mi dà problemi. grazie ---------------------------------------- AUTORE: 1157 DATA :23/11/2006 - 22:10:34 ---------------------------------------- ...eccolo ---------------------------------------- AUTORE: 1157 DATA :23/11/2006 - 22:58:45 ---------------------------------------- questo è con occurrences ---------------------------------------- AUTORE: 4 DATA :24/11/2006 - 09:57:13 ---------------------------------------- pecoranera, se vuoi fare una domanda diversa dall'argomento del topic, aprine un altro. Detto questo, le occorrenze sono il mio pane quotidiano, coemdice gyc sono molto potenti e versatili. Se ti interessa approfondire l'argomento ti consiglio di leggere la presentazione che ho scritto per l'NIDays 2005 a Roma e che trovi nella sezione articoli di ILVG, questo è il [url=http://ilvg.it/forum/download.php?id=297:2lpaevvh]link[/url:2lpaevvh] Ciao ---------------------------------------- AUTORE: 384 DATA :24/11/2006 - 10:00:57 ---------------------------------------- [quote:2rml5ofw] Dalle prove che sto facendo dopo un po di tempo lo scroll bar scompare, è come se avesse un buffer limitato. [/quote:2rml5ofw] Di fatti è così! Se fai click destro sul grafico, in basso nella finestrella di pop-up c'è la voce "Chart History Length" che ti permette di impostare quanti campioni il grafico si tiene nella sua memoria locale. Se la scala dei tempi è tale da coprire tutto il buffer, la scroll bar ovviamente scompare - in quanto non necessaria. Io sinceramente non la trovo molto utile se non quando il VI è fermo oppure se si riesce a fermare il flusso di dati verso il grafico. Un ultimo consiglio, per fare il display del tempo, esistono già dei blochi preposti anche con le formatazioni. ---------------------------------------- ================================================================================ Scrivere su file pdf ================================================================================ AUTORE: 1600 DATA :22/11/2006 - 13:07:36 ---------------------------------------- Come posso fare per salvare dati in un file pdf ? ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 18:21:44 ---------------------------------------- I file PDF sono essenzialmente un versione virtuale di una stampa. Un modo pratico e fattibile programaticamente, è preparare un report e stamparlo su una stampante virtuale che crea il PDF. Di "stampanti" pdf, ne esistono anche freeware in internet. Io uso il "PrimoPDF" ma se cerchi con "pdf creator" trovi solo l'imbarazzo della scelta. ---------------------------------------- AUTORE: 278 DATA :24/11/2006 - 08:31:43 ---------------------------------------- Ciao, se intendevi "stampare" programmaticamente i dati da LV, se non ricordo male, puoi usare un controllo activeX... ora non ricordo bene il nome... piazza un container activeX, fai tasto destro su di esso e dovresti vedere qualcosa come "insert activeX object", poi buttati, fai qualceh prova... \":wink:\" ---------------------------------------- ================================================================================ Shared variable node dinamico ================================================================================ AUTORE: 927 DATA :22/11/2006 - 14:29:55 ---------------------------------------- Mi farebbe comodo qualcosa come un nodo Shared Variable, dove però la variabile letta o scritta non è sempre la stessa, ma può essere decisa a runtime, ad esempio passandogli il nome. E' possibile? Nel modulo DSC esiste anche la "shared variable name costant", che è una reference utile per accedere dinamicamente alle proprietà di una shared... ma non al suo valore, a quanto vedo. ---------------------------------------- AUTORE: 927 DATA :16/07/2007 - 08:38:08 ---------------------------------------- A titolo informativo: tempo dopo trovai una soluzione... le Shared si possono leggere/scrivere anche con i blocchi DataSocket, dove l'URL è una stringa psp, quindi si può cambiare anche a runtime. Vedere nell'esempio "Shared Variable Client - Server", il VI "Datasocket API client.vi" ---------------------------------------- ================================================================================ Operazioni con stringhe CVI ================================================================================ AUTORE: 1605 DATA :22/11/2006 - 15:19:00 ---------------------------------------- Esite il modo per estrarre da una stringa una parte ossia n caratteri finali n caratteri iniziali ecc. ---------------------------------------- AUTORE: 645 DATA :22/11/2006 - 15:27:15 ---------------------------------------- Nella paletta "String" del Block Diagram ci sono molte funzioni per lavorare con le stringhe. Dai un occhio ad altri post su questo forum e sul sito www.ni.com . ---------------------------------------- AUTORE: 1605 DATA :22/11/2006 - 15:46:03 ---------------------------------------- USando cvi ---------------------------------------- AUTORE: 645 DATA :22/11/2006 - 15:52:23 ---------------------------------------- Allora non so... \":?\" ---------------------------------------- AUTORE: 384 DATA :23/11/2006 - 18:16:03 ---------------------------------------- CVI si basa su C e nella libreria standar del C esiste il gruppo di funzioni str***() che servono appunto per gestire le stringhe. ---------------------------------------- ================================================================================ Sovrapposizione di due Poligoni ================================================================================ AUTORE: 13 DATA :23/11/2006 - 13:52:25 ---------------------------------------- Salve a tutti Volevo sapere se esisteva qualche funzione o vi , che mi dava la possibilita ,dati due rettangoli in una picture box ,di controllarne la collisione. Sto impazzendooooooooooooooooooooooooooooooooooooooo dei due quadrati conosco le coordinate dei vertici. ringrazio e saluto ---------------------------------------- AUTORE: 927 DATA :24/11/2006 - 08:37:28 ---------------------------------------- Due rettangoli dritti? Il VI non c'è, ma con un po' di <= e >= si fa... Basta controllare che almeno uno dei vertici di un rettangolo stia dentro l'altro rettangolo; ovvero che la sua X sia compresa tra le due X dell'altro rettangolo, e così per la Y. ---------------------------------------- AUTORE: 13 DATA :24/11/2006 - 13:53:28 ---------------------------------------- Ti ringrazio del consiglio ma con tanta pazienza ho scritto l'algoritmo corretto. la soluzione che mi dicevi tu non vale piu' se i poligonio sono di diversa grandezza , quindi uno puo' contenere l'altro e viceversa. alla fine ci siamo riusciti \":-)\")))))))))))))))))))) SALUTI Il tool adesso e' al 90% bye bye bye bye bye Bellisssssiiiimmmmoooooooooooooooooooooo ---------------------------------------- AUTORE: 927 DATA :24/11/2006 - 15:04:46 ---------------------------------------- Per la cronaca: la mia soluzione vale eccome... se sono rettangoli! Si parlava di rettangoli o poligoni generici?? ---------------------------------------- ================================================================================ charts e scroll bar ================================================================================ AUTORE: 1157 DATA :23/11/2006 - 17:57:00 ---------------------------------------- Salve a tutti, Ho riscontrato un problema con lo scroll bar della mia waveform charts. Io ho un acquisizione di un dato analogico (temperatuta tramite field point) ma probabilmente non so settare le [color=red:13322z5j]proprerties[/color:13322z5j] dal Front Panel, o c'è qualcosa da sapere su " APPAREANCE, FORMAT and PRECISION, SCALES" Grazie a tutti, ma un po di più a chi m'"illumina"!!!! ---------------------------------------- AUTORE: 927 DATA :24/11/2006 - 08:49:04 ---------------------------------------- Ahem, ma QUAL è il problema?? \":roll:\" ---------------------------------------- ================================================================================ VISA Open ================================================================================ AUTORE: 1612 DATA :23/11/2006 - 21:33:44 ---------------------------------------- Ciao a tutti, spero di non ripetere problemi già risolti ma non ho ancora trovato soluzione. Sto cercando di fare un collaudo automatico usando seriale, parallela e un FLUKE 189 (multimetro). Parallela ok. Per la seriale e il fluke riscontro lo stesso problema. FLUKE: Scaricati i driver da internet (Labview 7.1) non riesco a far girare nemmeno il codice di esempio. Quando fa l'inizializzazione dello strumento, esattamente con il VI Visa Open mi da subito l'errore -1073807202. Il numero della com è quello giusto. il dubbio che mi viene è che ci qualche impostazione dettata dal sistema operativo che mi da fastidio. SERIALE: Anche qui non riesco nemmeno a far girare i VI di esempio della versione 7.1 perchè mi da un errore nello stesso punto del fluke. Spero qualcuno riesca ad aiutarmi. \":?:\" ---------------------------------------- AUTORE: 384 DATA :24/11/2006 - 09:34:48 ---------------------------------------- Quel codice di errore corrisponde alla mancanza dei device driver del VISA. Prendi i cd del NI-DAQ e installa tutto il gruppo VISA. ---------------------------------------- AUTORE: 1520 DATA :24/11/2006 - 09:40:57 ---------------------------------------- Così su due piedi ti posso dire che il codice di errore corrisponde a questo –1073807202 VI_ERROR_LIBRARY_NFOUND A code library required by VISA could not be located or loaded. Quindi in effetti può essere un problema di installazione o di diritti dell'utente. Matteo ---------------------------------------- ================================================================================ Visa open... (2) ================================================================================ AUTORE: 1612 DATA :24/11/2006 - 08:05:43 ---------------------------------------- Ciao a tutti! Ho migliorato (o peggiorato, chi può dirlo!) il controllo del fluke ha cambiato codice di errore allego la foto! (cod. errore -1073807341) aiutoooo!!!! ---------------------------------------- AUTORE: 1612 DATA :24/11/2006 - 08:13:20 ---------------------------------------- scusate ho aperto una nuova discussione invece di continuare sotto quella precedente... Errore di gioventù... Scusate di nuovo! ---------------------------------------- AUTORE: 645 DATA :24/11/2006 - 08:26:27 ---------------------------------------- Hai provato a comunicare con lo strumento senza usare i driver? Cioè con i blocchi di configurazione (e apertura) della seriale, VISA Write, VISA Read, VISA Close...? Trovi esempi qui nel forum e tra gli esempi di LabView. ---------------------------------------- AUTORE: 1612 DATA :24/11/2006 - 08:49:06 ---------------------------------------- Ciao, se faccio come dici tu torno all'errore -1073807202. ?????????????????????????????? ---------------------------------------- AUTORE: 645 DATA :24/11/2006 - 09:05:09 ---------------------------------------- Mi sa che ti mancano i driver NI-VISA: http://digital.ni.com/public.nsf/allkb/ ... 32004EC84D ... ---------------------------------------- AUTORE: 1612 DATA :24/11/2006 - 13:09:40 ---------------------------------------- ciao, effettivamente avevi ragione adesso l'inizializzazione funziona. (Ho istallato i visa). Adesso mi da questo errore... Error -1073807341 occurred at prova fluke.vi Possible reason(s): VISA: (Hex 0xBFFF0013) Invalid access mode. Prima o poi spero funzionerà! ---------------------------------------- AUTORE: 1612 DATA :24/11/2006 - 13:36:53 ---------------------------------------- Niente, l'errore continua... ---------------------------------------- AUTORE: 1612 DATA :24/11/2006 - 14:34:41 ---------------------------------------- Non capisco... anche dal pannello del VISA Measurament & Automation explorer riesco ad aprire con open visa test palnel tutte le com tranne quella in cui ho collegato il fluke che mi da errore... Che disperazione! \":(\" ---------------------------------------- AUTORE: 645 DATA :26/11/2006 - 13:01:44 ---------------------------------------- Guarda http://zone.ni.com/reference/en-XX/help ... ror_codes/ ... Il tuo errore si riferisce ad un modo sbagliato di accedere alla periferica. Puoi indicare l'ordine delle operazioni che fai per comunicare con lo strumento? Oppure postare un'immagine del Block Diagram? ---------------------------------------- AUTORE: 645 DATA :26/11/2006 - 13:08:55 ---------------------------------------- Guarda http://zone.ni.com/reference/en-XX/help ... ror_codes/ ... Il tuo errore si riferisce ad un modo sbagliato di accedere alla periferica. Puoi indicare l'ordine delle operazioni che fai per comunicare con lo strumento? Oppure postare un'immagine del Block Diagram? ---------------------------------------- AUTORE: 1612 DATA :27/11/2006 - 08:44:52 ---------------------------------------- Ciao, sto verificando perchè ho sentito anche altri che con la nuova versione del Fluke 189, (interfaccia USB ma riconosciuto dal pc come com) hanno i miei stessi problemi... Probabilmente tutto si potrebbe risolvere avendo il cavo di interfaccia seriale. Oggi pome provo con un altro multimetro che dovrebbe arrivare in mattinata... Ti faccio sapere. Riguardo il mio modo di accedere dovrebbe essere giusto, lo utilizzavo in un altro collaudo con un multimetro diverso e funzionava... Avevo comunque dimenticato di installare i driver VISA!!! ---------------------------------------- AUTORE: 645 DATA :27/11/2006 - 09:40:29 ---------------------------------------- Ma tu cerchi di accedere al Fluke attraverso la USB usando la porta come fosse una COM? Effettivamente mi suona strano però... Io ho usato qualche volta il convertitore Seriale-USB e non ho avuto problemi \":)\" ---------------------------------------- AUTORE: 1612 DATA :27/11/2006 - 12:06:29 ---------------------------------------- Ciao, risolto: 1) Come dicevi bisognava installare i VISA 2) I driver della fluke che mi fanno vedere il multimetro come fosse collegato effettivamente su una seriale hanno qualche problemino o meglio sono un po' lentini (ho parlato con il tecnico fluke)... Adesso non ho più errori e mi legge la misura. GRAZIE ---------------------------------------- ================================================================================ cRio 9002 & spikes ================================================================================ AUTORE: 955 DATA :24/11/2006 - 11:02:21 ---------------------------------------- Sto lavorando con labview 8 sul cRIO 9002 ed utilizzo il modulo 9263 per la generazione di 4 segnali sinusoidali ad una stessa frequenza (l'ho fissata a 50Hz) e con armoniche. Ho creato l'FPGA e l'ho compilato correttamente, quando però vado a generare i segnali sull'oscilloscopio mi appare ad esempio la forma d'onda del canale 1 ma compaiono tantissimi spikes come se al mio segnale si sovrapponessero degli zeri. Ho provato a graficare la funzione prima e dopo l'esecuzione dell'FPGA e sul labview il problema che mi compare ad oscilloscopio non si presenta...anzi le due sinusoidi del canale 1 sono perfettamente identiche. Sono arcisicuro che non si tratta di un problema dell'oscilloscopio perchè grafica perfettamente i segnali generati da un generatore di funzione...in cosa sbaglio?help plz ci sto uscendo pazzo ---------------------------------------- AUTORE: 955 DATA :27/11/2006 - 10:02:52 ---------------------------------------- nessuno può aitarmi? non so devo postare i VI? ---------------------------------------- ================================================================================ sub VI ================================================================================ AUTORE: 1596 DATA :24/11/2006 - 11:10:24 ---------------------------------------- salve a tutti, vorrei editare un sub VI però riesco solo ad editare la parte grafica e non riesco ad editare i pin...ho consultato il manuale ma niente in merito \":(\" help!!! ---------------------------------------- AUTORE: 927 DATA :24/11/2006 - 15:12:08 ---------------------------------------- Cliccando col destro sull'iconcina del VI (in alto a destra nel pannello frontale) e facendo "Show Connector", ti appaiono i pin; per assegnarne uno ad un ingresso/uscita, lo clicchi e poi clicchi il controllo/indicatore. ---------------------------------------- AUTORE: 1596 DATA :24/11/2006 - 16:10:44 ---------------------------------------- grazie x la considerazione snamprogetti...c'ho provato,faccio così:nel pannello frontale(xkè solo lì lo permette) tasto dx sull'icona e show connector poi clikko su un pin e diventa nero; a qst punto ho provato a clikkare come mi hai detto sia sugli indicatori\controlli nel pannello frontale ke nel diagramma ma nulla di fatto \":(\" ---------------------------------------- AUTORE: 1520 DATA :24/11/2006 - 17:00:13 ---------------------------------------- Le operazioni di connessione dei PIN si fanno solo sul pannello frontale quindi dimenticati il diagram per il momento. E' strano che la procedura non ti funzioni però. Una volta cliccato sul pin da connettere il puntatore dovrebbe trasformarsi in un rocchetto. A quel punto se clicchi sul controllo/indicatore dovrebbe linkarli. Se non riesci prova a postare il VI. ---------------------------------------- ================================================================================ accesso remoto ================================================================================ AUTORE: 73 DATA :24/11/2006 - 11:31:25 ---------------------------------------- Vorrei alcuni consigli x quanto riguarda l'accesso remoto, mi spiego meglio ( anche se non dovrebbe essercene bisogno \":P\" ) : -Vorrei vedere il pannello frontale del programma labview da un'altro pc in rete, -Vorrei poter avere il controllo del programma per poter cambiare parametri, -Se possibile vorrei avere il completo controllo del pc x leggere dei file salvati( ma questo non è fondamentale) Per fare queste cose bisogna installare del software ni accessorio o sono funzioni che sono già in Labview(io ho la versione 6i)? Dal punto di vista della sicurezza(Modello Hacker) che problemi ci possono essere? Voi lo usate comunemente e se sì quali problemi avete incontrato? Grazie anticipatamente a tutti per il contributo \":idea:\" ---------------------------------------- AUTORE: 4 DATA :27/11/2006 - 10:35:01 ---------------------------------------- labview ti permette di "esportare" linterfaccia dei tuoi sw sul browser web in maniera quasi automatica (esiste un wizard nel menmu di labview stesso) Questo però ha delle limitazioni - 1 solo client può essere collegato via browser salvo comprare licenze aggiuntive - il browser è solo IE e solo su pc (niente palm...) - il client deve installare un activeX per poter funzionare - il client deve essere windows per il resto puoi fare quello che vuoi e cioè controllare e visualizzare il tuo pannello come se fosse sulla tua macchina da remoto. A livello di sicurezza non sò dirti, non credo che ci siano molti hacker che conoscono labview... Questo è quello che sò, spero ti sia utile. Ciao ---------------------------------------- AUTORE: 73 DATA :27/11/2006 - 10:38:48 ---------------------------------------- grazie ale, io xò volevo sapere se qualcuno lo usa abitualmente e ha avuto problemi di qualche natura ---------------------------------------- AUTORE: 4 DATA :27/11/2006 - 10:51:56 ---------------------------------------- ok, io ho solo fatto test ma non ho nessun sw che sfrutta questa caratteristica installato sul campo. Quando ho docuto realizzare interfacce remote me le sono sempre costruite "a mano" Conosco due modi, uno 100% labview e uno no 100% LabVIEW, crei un applicazione server e una cliente, crei il tuoi protocollo di comunicazione basato su tcp o udp. Il server controlla e monitora l'impianto il o i client remoti ti permettono di visualizzare i sinottici e controllare l'impianto. Il vantaggio è che hai massima libertà di movimento certo che costruiri a mano l'applicazione e il protocollo richiede tempo anche se una volta fatto te lo ritrovi per progetti futuri. secondo mkdo server labview client Applet Java, vantaggio che il client non deve installare nessun sw aggiuntivo (basta un browser qualsiasi) e non sei limitato a windows, svantaggi devi creaer il protocollo tra applet e labview (tcp o udp) fattibilissimo e anche qui te lo ritrovi in futuro, e devi saper programmare in java \";)\" il risultato è comunque molto valido efficente e funzionale. Ciao ---------------------------------------- AUTORE: 384 DATA :28/11/2006 - 10:55:13 ---------------------------------------- Io, per ora, non ho mai dovuto avere il controllo del front panel remotato. In un caso ho dovuto "dislocare" una funzione ed ho usato il metodo descritto da Ale, via TCP con un mio protocollo. Nei casi di sola visualizzazione uso semplicemente il web server di labview e da qualunque browser se ne può guardare il front panel con l'url: http://pc-esecutore/.snap?vi-da-pubblicare.vi I meccanismi di sicurezza sono abbastanza essenziali, ma si presume che un controllo del genere lo si faccia su rete locale, non direttamente su internet. Se la dislocazione è fra più sedi, in generale esistono le VPN che te lo rendono trasparente. Se proprio ti serve il controllo remoto del PC, per casi in cui sei su un'altra rete, devi accedere via modem, ecc, il pachetto PCAnywhere è uno dei meglio quotati. Invece se sei in rete locale, il [url=http://www.vnc.com:mfkbotcb]Real VNC[/url:mfkbotcb] è freeware e funziona veramente molto bene. Esistono versioni a pagamento con più funzionaltà ma che a me non sono mai servite. ---------------------------------------- ================================================================================ Salvataggio su file TXT ================================================================================ AUTORE: 1614 DATA :24/11/2006 - 18:27:07 ---------------------------------------- Ciao sono nuovo del forum... Vi volevo chiedere se e' possibile salvare dei valori in un file di testo TXT senza dover chiudere il file per aggiornarlo. Grazie per ora ---------------------------------------- AUTORE: 247 DATA :25/11/2006 - 12:39:32 ---------------------------------------- Ciao, certo che è possibile! Basta appunto non chiudere il file e scrivere partendo dall'ultima posizone utilizzata. BYE. ---------------------------------------- AUTORE: 384 DATA :27/11/2006 - 10:37:24 ---------------------------------------- C'è stata una discussione su questo tema recentemente nel forum. Clicca [url=http://www.ilvg.it/forum/viewtopic.php?t=2222&highlight=salvataggio+file:146tzd1l]qui[/url:146tzd1l]. ---------------------------------------- ================================================================================ diverso comportamento tra eseguibili ================================================================================ AUTORE: 706 DATA :25/11/2006 - 11:08:52 ---------------------------------------- Ciao a tutti, ho riscontrato un comportamento strano nell'eseguibile che ho creato. Spiego: una volta creato il mio eseguibile sul mio portatile, lo lancio e funziona correttamente (eseguibile che controlla un radar meteorologico). Se lo stesso eseguibile lo installo su un altro PC e lo lancio, ha un comportamento diverso, sbegliato. Io non so proprio da cosa sia dovuto; mi è venuto in mente che possa dipendere da una diversa configurazione del PC rispetto al mio portatile e non dal passaggio dell'eseguibile dal mio portatile al PC. Sapete darmi una risposta al problema? meglio.. vi è capitato una cosa simile? Può dipendere dai driver dell'apparato di intefìrfacciamento tra PC e Radar? Grazie, Francesco ---------------------------------------- AUTORE: 4 DATA :27/11/2006 - 10:29:17 ---------------------------------------- detta così sembra o - diversa configuraione hardware \ software - mancanza o diversi driver installati. Che tipo di problemi ti dà l'exe sulla macchina in cui non funziona? Sei sicuro di aver creato l'installer correttamente, includendo tutte le lib e i driver necessari al tuo sw? Ciao ---------------------------------------- ================================================================================ impostare un generatore di segnale ================================================================================ AUTORE: 1615 DATA :25/11/2006 - 12:37:50 ---------------------------------------- in lab view (a quanto so) c'è già un generatore di onde, però devo impostare L'ampiezza e la sua frequenza non dallo schema a blocchi ma dal pannello di fronte come posso fare?? ---------------------------------------- AUTORE: 927 DATA :27/11/2006 - 08:49:03 ---------------------------------------- Piazza il blocco generatore del segnale che vuoi nel diagramma. Poi clicca col dx sui terminali "frequency" eccetera, e fà Create->Control. Oppure prima crea i controlli che preferisci nel pannello, ti appariranno i terminali corrispondenti anche nel diagramma, collegali al blocco generatore con dei fili... E' l'ABC di Labviù \":)\" ---------------------------------------- AUTORE: 1615 DATA :29/11/2006 - 20:44:43 ---------------------------------------- ora ho un'altro problema... dato che ora lo devo regolare in seguito alla soluzione di una formula, come mai mi da errore?? ---------------------------------------- AUTORE: 927 DATA :30/11/2006 - 08:08:13 ---------------------------------------- Dicci almeno QUALE errore!! ---------------------------------------- AUTORE: 645 DATA :30/11/2006 - 09:29:37 ---------------------------------------- Colleghi l'uscita della formula (non so come calcoli la formula ma ci sarà un risultato) al controllo di ampiezza/frequenza/fase... dipende quale parametro calcoli con la formula! ---------------------------------------- AUTORE: 1615 DATA :30/11/2006 - 13:24:51 ---------------------------------------- infatti vorrei impostare la frequenza con una formula e l'ampiezza con un'altra ma, mi da errore "Error -20061 occurred at Simulate Signal2 ->" ---------------------------------------- AUTORE: 645 DATA :30/11/2006 - 13:31:23 ---------------------------------------- http://zone.ni.com/reference/en-XX/help ... ror_codes/ parla di "Selection Invalid"... come fai a calcolare il risultato della formula? ---------------------------------------- AUTORE: 1615 DATA :30/11/2006 - 13:31:50 ---------------------------------------- questo è il circuito ---------------------------------------- AUTORE: 1615 DATA :30/11/2006 - 13:33:22 ---------------------------------------- è solo l'immagine spero che capiate lo stesso ---------------------------------------- AUTORE: 645 DATA :30/11/2006 - 13:35:25 ---------------------------------------- Puoi mandare direttamente il VI? Così non lo ricopio... ---------------------------------------- AUTORE: 1615 DATA :30/11/2006 - 13:48:55 ---------------------------------------- lo devo comprimere un botto ---------------------------------------- AUTORE: 1615 DATA :30/11/2006 - 13:59:01 ---------------------------------------- ecco ce l'ho fatta ---------------------------------------- AUTORE: 1615 DATA :30/11/2006 - 14:12:34 ---------------------------------------- è un'attimo incasinato ma dovrebbe essere una linea di trasmissione dati!! ---------------------------------------- ================================================================================ Controllare applicazioni esterne da LabView ================================================================================ AUTORE: 645 DATA :27/11/2006 - 09:45:13 ---------------------------------------- Nel forum NI ( http://forums.ni.com/ni/board?board.id=7170 ) ho trovato una discussione sul controllo delle applicazioni esterne ( http://forums.ni.com/ni/board/message?b ... age.id=178 ) che può essere interessante. La soluzione rimanda alla pagina http://digital.ni.com/public.nsf/websea ... enDocument . ---------------------------------------- AUTORE: 927 DATA :28/11/2006 - 15:54:02 ---------------------------------------- Sto sfogliando quelle funzioni e devo dire che sono ottime! E addirittura risalgono a Labviù 6... Mi mangio le mani a non averlo visto prima!! Molte di quelle funzioni per controllare processi, lanciare programmi... in passato me le sono dovute programmare io in C oppure le ho trovate in giro ma sparse una a una. Ben fatto \":)\" ---------------------------------------- ================================================================================ salvataggio su binario splittandolo in parti + file ini ================================================================================ AUTORE: 1463 DATA :27/11/2006 - 10:22:38 ---------------------------------------- [b:2apo8kjj]Ho i seguenti due problemi da porti: 1) devo acquisire segnale da una daq e MENTRE sto acquisendo, vista la mole di dati, (l'acquisizione dura anche una settimana) salvarlo contemporaneamente su un file binario. Mi è stato kiesto che dopo 3 Mb di salvataggio, il file venga chiuso e creato un altro chiamato per esempio parte 2.In modo tale che alla fine, io abbia tutta l'acquisizione separata su un certo numero di file. Come posso fare questo? 2)ho creato un .ini, in cui cui ho i parametri di acquisizione (schede daq).... (nome canale,freq campionamento) Come faccio a richiamare per esempio la sezione 1 dove ho la voce dev1/ctrl0 e mandare questa voce in ingresso a un canale di un blocchetto di acquisizione daq? CIAO E...GRAZIE!!!![/b:2apo8kjj] ---------------------------------------- ================================================================================ personalizzare linea grafico 3d ================================================================================ AUTORE: 1620 DATA :27/11/2006 - 12:51:19 ---------------------------------------- Ciao a tutti sto realizzando un'applicazione grafica per mostrare il profilo di un pozzo di petrolio in 3D. Normalmente lo sviluppo del pozzo nello spazio è rappresentato da una semplice linea. Volevo sapere se esiste la possibilità di personalizzare la linea e rappresentarla come un cilindro vuoto grazie benedetto66 ---------------------------------------- AUTORE: 4 DATA :27/11/2006 - 13:25:04 ---------------------------------------- ciao e benvenuto, se ho capito bene il tuo problema, potresti usare i grafici 3d di labview. Prova a guardare negli esempi di labview per farti un'idea di come funzionano. Ciao ---------------------------------------- AUTORE: 1574 DATA :19/01/2007 - 20:33:17 ---------------------------------------- Per creare grafici 3D personalizzabili l'ambiente LabVIEW non offre molte soluzioni.... \":cry:\" Un toolkit National abbastanza interessante è il 3D picture Control [url:ysw2en81]http://zone.ni.com/devzone/cda/tut/p/id/4411[/url:ysw2en81] che ti permette di visualizzare oggetti 3D. Buon divertimento... \":P\" ---------------------------------------- ================================================================================ esempio collegamento con opc-server ================================================================================ AUTORE: 1368 DATA :27/11/2006 - 14:05:28 ---------------------------------------- ciao a tutti, sapete indicarmi dove posso trovare un esempio di comunicazione tra labview w un opc-server?? grazie ---------------------------------------- AUTORE: 4 DATA :27/11/2006 - 14:21:12 ---------------------------------------- Puoi cercare "OPC" tra gli esempi di labview, in particolare guarda NI Demo OPC Client. Ciao ---------------------------------------- AUTORE: 1368 DATA :28/11/2006 - 09:13:24 ---------------------------------------- ottimo grazie ---------------------------------------- AUTORE: 1368 DATA :05/12/2006 - 16:35:27 ---------------------------------------- sto cercando di usare il modulo dsc per gestire gli allarmi, qualche anima pia che mi passa un esempio ? grazie ---------------------------------------- AUTORE: 927 DATA :06/12/2006 - 13:55:17 ---------------------------------------- Labviù 7 o 8? cambia parecchio... ---------------------------------------- AUTORE: 1368 DATA :06/12/2006 - 14:07:00 ---------------------------------------- labview 8 non riesco a capire come usare i modulli dsc per comandare l opc e poi non riesco sempre ad usare gli allarmi del dsc per collegarli all opc grazie ---------------------------------------- AUTORE: 927 DATA :06/12/2006 - 15:31:57 ---------------------------------------- Difficile farti un programma di esempio, dato che i server OPC dipendono dall'hardware che abbiamo. Cmq in generale ti servono le variabili Shared: crea il tuo progetto, dentro di esso crea una libreria, dentro di essa crea le variabili. Ogni variabile Shared si può collegare a un canale (di ingresso e/o uscita) fornito da un server OPC. Devi creare anche un oggetto "I/O server" all'interno della libreria (tasto destro sulla libreria, poi New...). Come tipo naturalmente scegli OPC, poi ti chiederà i dettagli e quelli dipendono dal server che vuoi usare. Dopo la creazione puoi verificare l'I/O server cliccandoci col dx e facendo "View I/O items". Ora apri le proprietà di una variabile Shared. Usa "bind to source" nella pagina principale: sfoglia i Project Items, ci troverai il tuo I/O server con tutti i canali che pubblica. Ne scegli uno e vualà, ora quando leggi/scrivi la variabile, leggi/scrivi il canale dell'OPC. Questo è il punto di partenza su cui mi ero arenato un po' anch'io... ora inutile che vada avanti, la documentazione gli esempi e le prove spiegano molto meglio di me \":roll:\" ---------------------------------------- AUTORE: 1368 DATA :06/12/2006 - 15:59:59 ---------------------------------------- come server noi usiamo EIBOPCSERVER, mi sa che non e compatibile con le dsc che sfiga ---------------------------------------- ================================================================================ cFP-1804 ================================================================================ AUTORE: 1299 DATA :27/11/2006 - 14:47:42 ---------------------------------------- Ciao a tutti vorrei chiedervi dove posso trovare della documentazione per quanto riguarda la programmazione della comunicazione no in seriale ma in ethernet se qlc sa darmi qlc indicazione ne sarei molto felice grazie mille a tutti ---------------------------------------- AUTORE: 1168 DATA :27/11/2006 - 16:08:12 ---------------------------------------- Non è che sei sato molto chiaro... vuoi usare un cFP con labview o con altri ambienti? Con LV si usano smeplicemtne i controlli I/O fieldpoint. In pratica ne hai uno che ti da l'indirizzo e con un blocchetto scegli se leggere/scrivere! Ciao P! ---------------------------------------- AUTORE: 1299 DATA :28/11/2006 - 08:04:09 ---------------------------------------- IlSi voglio usare iil cFP con il labview ho già fatto il programma per far comunicare il cFP con il pc tramite seriale... Adesso dovrei cambiare il modo di far comunicare il cFP con il pc ovvero tramite la porta Ethernet che è già a bordo sul cFP. Non riesco a trovare nullla a riguardo e quando vado a fare la configurazione del iak file mi da come opzione solo il fieldpoint seriale... Quindi dove trovo del materiale che mi dice o meno come posso utilizzare la porta ethernet a bordo del mio cFP? Grazie mille di cuore a tutti ---------------------------------------- AUTORE: 645 DATA :28/11/2006 - 08:30:00 ---------------------------------------- Hai provato a dare un'occhiata sul sito www.ni.com cercando la documentazione per i Field Point? Sul manuale dello strumento non dice nulla? ---------------------------------------- AUTORE: 1299 DATA :28/11/2006 - 08:54:26 ---------------------------------------- provato a cercare ma niente da fare.. ---------------------------------------- AUTORE: 1168 DATA :28/11/2006 - 08:59:35 ---------------------------------------- Ciao! mi sembra strano... Se parti da una configurazione vuota via ethernet funziona tutto? In questo caso mi sa che ti conviene rifare il file iak di configurazione. Ciao P. ---------------------------------------- AUTORE: 4 DATA :28/11/2006 - 09:12:52 ---------------------------------------- da quello che ho capito vuoi fare comunicare il fp e il pc utilizzando ethernet e non più la seriale. Immagino che tu ti sia costruito un protocollo seriale ad hoc per la tua applicazione e che tu voglia rigirarlo su ethernet. In quetso caso guarda gli esempi di labview cercando tcp, ti consiglio di vedere gli esempi client server e di riadattarli alle tue necessita dove immagino il fp sia il server che crea i dati e il pc il client che li riceve. Ciao ---------------------------------------- AUTORE: 1299 DATA :28/11/2006 - 09:35:01 ---------------------------------------- scusate... ma il problema è alla fonte.. come faccio a fare il iak file con comunicazione per ethernet??? grazie mille ---------------------------------------- AUTORE: 927 DATA :28/11/2006 - 11:56:57 ---------------------------------------- Se ho ben capito non vedi il cFP nemmeno col MAX. Assicurati di averlo collegato ad un hub di rete con un cavo di rete "dritto" oppure direttamente alla porta ethernet del pc con un cavo di rete "storto" (chiedi se parlo arabo). Si vedono lampeggiare i due led vicino alla porta sul cFP? Prova a resettare il cFP perchè potrebbe avere un IP sbagliato: sposta il dipswitch su "Reset", stacca e riattacca la corrente, poi rimetti a posto il dipswitch. Nel MAX dovresti vedere il cFP sotto "Remote Systems" inizialmente con l'IP 0.0.0.0, poi glie ne assegnerai uno diverso. ---------------------------------------- AUTORE: 1299 DATA :28/11/2006 - 12:43:38 ---------------------------------------- grazie ragazzi sono riuscito a vederlo a comunicare e tutto... ma solo una cosa non mi è chiara... il timestamp dei canali hanno un ora diversa le posso impostare io con l'attuale ora e data? grazie mille ---------------------------------------- AUTORE: 927 DATA :28/11/2006 - 12:59:16 ---------------------------------------- Da MAX non si può, ma basta abilitare il Time Server; un qualunque PC in rete dove sia installato il software NI Fieldpoint può fare da Time Server. Dagli l'IP di quel PC tramite MAX, riavvia il FP, e lui terrà il suo orario automaticamente aggiornato a quello del PC. Inoltre nel modulo RT c'è un VI apposito per impostare da programma l'ora sui FP. Nella 7.1 è sotto "Real-Time utilities". Nella 8.2, con mio grande sgomento, non lo trovo... Qualcuno sa dirmi dov'è finito? \":P\" ---------------------------------------- AUTORE: 1299 DATA :29/11/2006 - 09:39:29 ---------------------------------------- non so perchè... ma con collegamento in seriale il timestamp è uguale a qll del pc .. in ethernet no come faccio a settare l'ora??? ho provato a mettere anche l'indirizzo ip del pc con cui si deve interfacciare ne server time ma niente... non voglio modificare il programma che in seriale funziona.... qlc saprebbe aiutarmi? grazie mille ---------------------------------------- ================================================================================ I° Meeting ILVG! ================================================================================ AUTORE: 4 DATA :27/11/2006 - 14:55:40 ---------------------------------------- [url=http://www.ilvg.it/forum/viewtopic.php?t=2375:1g4ucz18][b:1g4ucz18]leggi qui[/b:1g4ucz18][/url:1g4ucz18] ---------------------------------------- ================================================================================ Duplicare un progetto ================================================================================ AUTORE: 1368 DATA :28/11/2006 - 09:19:56 ---------------------------------------- Ciao a tutti, mi capita spesso di duplicare dei progetti, cioe impianti simili, quindi prendo copio rinomino la cartella e rinomino tutti i file con il progetto nuovo. cosi pero ho dei problemi perche molti VI vanno sempre a ricercare i file originali. Ce un modo meno indolore di duplicare un progetto completo?? grazie ---------------------------------------- ================================================================================ Warning e notifiche a piu' strategie ================================================================================ AUTORE: 482 DATA :28/11/2006 - 13:29:31 ---------------------------------------- ...ma ciao! sono stato incaricato di studiare un progetto di monitoraggio dei "sistemi vitali" dei nostri impianti di produzione. Questo monitoraggio sarà poi incaricato di avvisare i responsabili al presentarsi di alcune situazioni di allarme. Escludendo per il momento la parte di acquisizione, sto cercando di raccogliere un po' di idee sulla comunicazione degli allarmi. Metto qui un elenco di quello a cui ho pensato. 1)E-mail 2)Messaggistica istantanea o PUP-UP 3)SMS Abbiamo un servizio vodafone che ci permette di mandare degli SMS via web, dite che si riesce ad interfacciarsi con questo servizio invece che utilizzare un modem apposta? Ogni altro tipo di idea è gradita. Al momento sono bloccato perchè la messaggeria istantanea comporta un host che sia in lettura continua mentre il servizio SMS vorrei cercare di utilizzarlo via web (magari con il protocollo smtp) Avete già realizzato qualcosa del genere? Coem avete comunicato le emergenze? ---------------------------------------- AUTORE: 4 DATA :28/11/2006 - 13:43:55 ---------------------------------------- Usare l'e-mail ti viene automatico visto che labview ha già i vi per spedire e-mail, anche con allegati La soluzione SMS eè valida ma io userei un modem apposta per i seguenti motivi: - soluzione industriale e affidabile - non ti leghi a un gestore o ai suoi cambiamenti (se il tuo servizio è via web e il gestore cambia qualche cosa di tecnico nel sito magari devi modificare il tuo sw) - i modem sono molto più veloci del web! riesci a spedire anche 50 SMS al minuto - costano poco - utilizzarli è semplice, batsa una seriale e poco codice I messaggi pop-up li puoi sempre fare ma richiedono un sw installato sulla macchina client a meno che non utilizzi i comandi (windows) della famiglia net nello specifico net-sent ma io te lo sconsiglio visto che funziona (ma non è detto potrebbe essere un srviio disabilitato) solo su windows Ciao ---------------------------------------- AUTORE: 482 DATA :28/11/2006 - 13:53:44 ---------------------------------------- L'idea sarebbe quella di implementare due tipi di segnalazione. Effettivamente e-mail e SMS via GSM è la soluzione piu' robusta. l'idea della messaggistica mi dava solo un idea di maggior visibilità...tip che gli faccio aprire un vi che gli occupa tutto lo schermo e lampeggia! \";)\" vabbhè, a parte questo... Per poter mandare SMS c'e' bisogno per forza del toolkit o anche solo con le funzioni VISA è una cosa fattibile? ---------------------------------------- AUTORE: 927 DATA :28/11/2006 - 14:49:45 ---------------------------------------- Io non ho mai lavorato con gli SMS ma i miei colleghi si, e ho visto che sono sufficienti le funzioni VISA. Non si fa altro che mandare via seriale dei comandi AT al modem; così come per telefonare al numero 33333 si manda ATD33333, ci sono altri comandi specifici per spedire SMS. Il manuale del modem ti dà sicuramente il dettaglio di questi comandi ---------------------------------------- AUTORE: 384 DATA :29/11/2006 - 10:47:06 ---------------------------------------- Confermo quanto detto da Snam sui modem GSM. Io ho fatto un progetto già 4 anni fa ed ho fatto tutto io - posso dire con poco sforzo visto che le comuinicazioni seriali le ho usate da sempre. Qualche mese dopo è uscito il toolkit che dopo aver visto mi sono dato le "mazzate" da solo per non aver pensato a fare lo stesso del mio codice!!! \":cry:\" Per quanto riguarda la messagistica "pop-up", butto li un'altra idea: crea un vi "data server" in cui raccogli lo stato del sistema e: 1)distribuisci il front panel via http 2)crea degli eseguibili client, che distribuirai nei vari pc, e fanno uscire le "schermate rosse" a seconda degli allarmi a)modo polling, cioè, sono i client ad interrogare il server b)server push, cioè, il server invia ai client ogni variazione di stato In questo modo, puoi anche avere degli "watch dog" che avvisano della mancanza di connettività, se questo è importante. ---------------------------------------- ================================================================================ sintetizzatore vocale ================================================================================ AUTORE: 1368 DATA :28/11/2006 - 15:37:13 ---------------------------------------- Ciao a tutti, come da topic qualcuno ha mai provato a farlo andare con labview per far leggere die messaggi?? non so ad esempio durante un allarme mi piacerebbe che oltre al simbolo grafico ci sia una bella vocina che elenca l allarme. grazie ---------------------------------------- AUTORE: 1168 DATA :28/11/2006 - 15:47:41 ---------------------------------------- Mi sa che ti conviene registrare un messaggio per ogni allarme... mi sa che fai prima! \"8)\" ---------------------------------------- ================================================================================ Training con labview ================================================================================ AUTORE: 1628 DATA :29/11/2006 - 11:33:50 ---------------------------------------- Ciao a tutti, io sto lavorando a un progetto per l'università di parma che consiste nell'acquisire tramite una telecamera la scritta riguardante la data di scadenza che si trovo sui prodotti alimentari(naturalmente sto utilizzando labview)...ora io sono riuscito ad acquisire la scritta,voglio però effettuare il training tramite labview. Io ho una ROI per ogni singolo carattere. Voglio,premendo un pulsante che ho messo sull'interfaccia, che mi dia la possibilità di fare l'addestramento. Purtroppo non riesco a capire bene come funziona il train. Ho realizzato un subVi chiamato training appunto che allego. il problema è che quando eseguo il mio mainVI mi da questo errore: Error -1074395577 occurred at IMAQ OCR Train The character value must not be an empty string. Chi riesce a darmi una mano? ---------------------------------------- AUTORE: 482 DATA :29/11/2006 - 12:33:53 ---------------------------------------- puoi allegare un immagine di esempio? ---------------------------------------- AUTORE: 482 DATA :29/11/2006 - 12:37:10 ---------------------------------------- tu hai allegato solo ilsubvi vero? ---------------------------------------- AUTORE: 1628 DATA :29/11/2006 - 14:10:42 ---------------------------------------- si ho allegato solo il subVi, ora ti allego un 'immagine di esempio.... ---------------------------------------- AUTORE: 482 DATA :29/11/2006 - 14:51:08 ---------------------------------------- a dir la verità intendevo un immagine acquisita dalla telecamera in modo che possa riprodurre un vi che la analizzi... cmq mi chiedevo..nella stringa character value che ci metti? ---------------------------------------- AUTORE: 482 DATA :29/11/2006 - 15:02:41 ---------------------------------------- allora...per quanto ho capito io, il training non fa altro che associare ad un carattere un immagine acquisita. Cosi' avviene per le lettere e i numeri, pero' c'e' la possibilità di inserire anche oggetti piu' complessi che abbiano una descrizione corrispondente data da non piu' di 255 caratteri. Ora tu stai andando a fare un training perchè presumo che i numeri e le lettere che già ci sono non soddisfino i caratteri che tu vai ad inquadrare. Se e' cosi', devi dire carattere per carattere la sua chiamiamola "descrizione" e dire, questa immagine di questo carattere me la salvi nel character set come "pippo" e me la aggiungi a quelle che ci sono già. Il problema è che a quanto pare tu anzichè dirgli pippo,gli dai una stringa vuota e lui ti restituisce errore perchè non sa come deve chiamare quel carattere. ---------------------------------------- AUTORE: 1628 DATA :29/11/2006 - 15:03:11 ---------------------------------------- da quanto ho capito in quella stringa io dovrei inserire il carattere per effettuare l'apprendimento...guarda io non sto riuscendo prorpio a capire il funzionamento del train...se riesci a darmi qualche dritta su come procedere te ne sarei davvero grato ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 07:21:37 ---------------------------------------- se mi mandi l'immagine acquisita (pulita da roi ecc) e magari tutta la parte di acquisizione posso aiutarti. Al momento mi sembra che tu abbia capito, il problema è che la stringa non gli arriva li dentro. ---------------------------------------- ================================================================================ FFT e sincronizzazione ================================================================================ AUTORE: 955 DATA :29/11/2006 - 15:59:11 ---------------------------------------- Salve a tutti. Devo effettuare la FFT di un segnale affetto da armoniche e devo fare in modo che la FFT sia effettuata sul segnale sincronizzato a zero. Avevo pensato di utilizzare per la sincronizzazione un trigger impostato a parametro 0 così da utilizzare il valore trigger detect in uscita del trigger in AND con un pulsante boolean e di inviare l'uscita ad un case structure per cui quando le condizioni sono entrambe TRUE effettuavo la FFT del segnale è giusto così? La FFT deve poi essere effettuata su 10 periodi. Avevo così pensato di porre all'interno del case structure un while con condizione i=10 per farmi stoppare il ciclo una volta che il conteggio fosse arrivato a 10...già qui ho un problema perchè sembra non arrivare a 10 ma si ferma ad 1... \":oops:\" Per quanto riguarda poi il blocco dell'FFT io ho usato quello con il Mag e Phase e ho visto che è una sorta di cluster l'ho scomposto e sono usciti 3 parametri di cui quello mag che devo utilizzare giusto? grazie per l'aiuto \":wink:\" ---------------------------------------- AUTORE: 1533 DATA :30/11/2006 - 08:48:36 ---------------------------------------- ehm qualcosa è poco chiaro? \":roll:\" ---------------------------------------- AUTORE: 645 DATA :30/11/2006 - 09:20:24 ---------------------------------------- Qualche info in più sul segnale... conosci la frequenza fondamentale e l'ordine delle armoniche presenti? Hai utilizzato il blocco FFT Express? Hai configurato il blocco per acquisire quanti campioni? Magari posta un'immagine del Block Diagram... ---------------------------------------- AUTORE: 1533 DATA :30/11/2006 - 09:34:49 ---------------------------------------- si frequenza fondamentale impostata da me a 50Hz le armoniche le setto sempre io tramite la tabella \":D\" il numero di campioni è 1111 la Fc non vorrei sbagliare ma è 18 (non ne ho la certezza perchè il diagramma ce l'ho sul pc dell'univ e ci devo tornare domani... \":oops:\" ) per la fft ho usato questa qui: FFT Spectrum (Mag-Phase) bastano questi dati o servono degli altri? ---------------------------------------- AUTORE: 645 DATA :30/11/2006 - 09:53:26 ---------------------------------------- Scusa ma cosa significa F_campionamento=18 ? Allora: F_fondamentale=50 Hz F_max=F_fondamentale*n.° Armoniche F_campionamento>=2*F_max Campioni_per_periodo=F_campionamento/F_fondamentale Campioni_presi=Campioni_per_periodo*numero_di_periodi_da_vedere ---------------------------------------- AUTORE: 1533 DATA :30/11/2006 - 11:58:54 ---------------------------------------- si scusa ho fatto confusione \":oops:\" in pratica quel 18 è la correzione che effettuo sul segnale \":D\" ---------------------------------------- AUTORE: 1533 DATA :30/11/2006 - 12:00:34 ---------------------------------------- si scusa ho fatto confusione \":oops:\" in pratica quel 18 è la correzione che effettuo sul segnale \":D\" ---------------------------------------- ================================================================================ Elaborazione file .csv ================================================================================ AUTORE: 1369 DATA :29/11/2006 - 16:36:10 ---------------------------------------- Salve, il mio problema consiste nell'elaborazione dei file .csv. Possiedo un Data Logger della Yokogawa il quale salva le acquisizioni in un file .csv e vorrei utilizzare Labview per elaborare tali dati. Il file allegato è un esempio del file dati ottenuto. Ho tentato di risolvere il problema mediante una trasformazione da stringa di caratteri e riconoscimento dei delimitatori in un array di numeri "double", ma il tempo necessario per questa operazione è troppo lungo, considerando che la dimensione tipica del file da elaborare è di circa 5MB. Ringrazio chinque possa indicarmi la via per risolvere il mio problema. Ciao ---------------------------------------- AUTORE: 247 DATA :29/11/2006 - 17:08:23 ---------------------------------------- Ciao, posta anche il VI che hai realizzato, può essere infatti che tu compia le operazioni giuste dal punto di vista della conversione ma sbagliate per il metodo in cui le utilizzi o altro legato all'ordine d'esecuzione del parsing...senza VI è difficile aiutarti. Sarebbe anche utile se tu riuscissi a rendere disponibile tramite un collegamento esterno un link al file di 5MB circa che solitamente devi parsare, per poter fare prove di prestazione senza doversi creare un file fittizio...inoltre obbligatoriamente indica in numeri cosa significa impiegarci troppo! 1 sec, 5 sec 60 sec???? BYE. ---------------------------------------- AUTORE: 384 DATA :29/11/2006 - 17:26:48 ---------------------------------------- Mi sembra di aver capito che hai provato a fare tutto "a mano", cioè, sviluppando tu stesso il codice necessario. In realtà esiste una funzione (Read From Spreadsheet File, pallette "File I/O") che lo fa già da sè e che si apoggia ad una funzione di libreria, quindi con codice ottimizzato e, si spera, più veloce. L'unico problema è che il tuo file ha un "header" quindi questa funzione andrá in palla. Ti conviene aprire il file, leggere l'header (addirittura l'header stesso ti dice quanto è lungo!) e quindi leggere il resto del contenuto come unica stringa (Read Lines From File) e passarla alla funzione Spreadsheet String To Array (pallette "String"). In ogni caso, qualunque sistema, linguaggio o algoritmi tu usi, trattandosi di 5 MBytes di dati ci sará da aspettare!!! Già leggerli da file è inerentemente lungo - non c'è nulla da fare. Ma anche una volta in memoria, gestire un blocco di dati di 5 MB non sará immediato. Nella mia esperienza, quando la mole di dati è così grande è da elaborare non in tempo reale, quindi non so per te cosa vuol dire "tempo troppo lungo". Se il tempo diventa un problema, allora l'unica strada che vedo è usare una workstation adatta al "number crunching", tipicamente un doppio processore (ormai ci sono anche i processori dual core!), tanta memoria e dischi SCSI (e niente altro che gira, tipo screen savers e compagnia!) ---------------------------------------- AUTORE: 1168 DATA :30/11/2006 - 06:39:54 ---------------------------------------- Altrimenti copi il file in un temporaneo, elimini le righe di intestazione e poi leggi tutto assieme! Solo che copiare 5 Mb non sarà immediato... Ciao P! ---------------------------------------- AUTORE: 384 DATA :30/11/2006 - 08:54:20 ---------------------------------------- [quote="Pio":25ub7xl7]Altrimenti copi il file in un temporaneo, elimini le righe di intestazione e poi leggi tutto assieme! Solo che copiare 5 Mb non sarà immediato...[/quote:25ub7xl7] Facendo cosí si legge il file e lo si scrive una volta di troppo, il che non è necessario. Basta leggere le righe di header prima e passare il puntatore del file alla funzione che successivamente leggerà il resto. ---------------------------------------- AUTORE: 1369 DATA :30/11/2006 - 10:51:00 ---------------------------------------- Ragazzi, vi ringrazio tutti per gli utili suggerimenti. Sembra che finalmente ho risolto, allego l'immagine del vi che mi permette di estrarre i dati dal file .csv Il vi è in grado di estrarre le 200200 righe (dimensione del file di circa 5MB) del mio file in circa 37 minuti (su un P4 3.0GB con 1GB RAM), il tempo necessario per elaborare una riga aumenta da 1ms delle prime righe fino a circa 20ms nelle ultime righe. Come posso fare per ridurre i tempi di elaborazione (senza cambiare il pc, ovvio!) Grazie avlas ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 10:55:30 ---------------------------------------- direiche dovresti mandarla in un formato piu' visibile! Cmq da quello che ho intravisto c'e' "molto" altro oltre all'apertura del file... ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 10:57:58 ---------------------------------------- riguardandola vedo che tu apri il fiel poi fai una certa operazione....coem ahi aftto a stimare il tempo diapertura del file? ---------------------------------------- AUTORE: 384 DATA :30/11/2006 - 11:09:58 ---------------------------------------- [quote="avlas":17jvy20i]Il vi è in grado di estrarre le 200200 righe (dimensione del file di circa 5MB) del mio file in circa 37 minuti (su un P4 3.0GB con 1GB RAM), il tempo necessario per elaborare una riga aumenta da 1ms delle prime righe fino a circa 20ms nelle ultime righe. Come posso fare per ridurre i tempi di elaborazione (senza cambiare il pc, ovvio!)[/quote:17jvy20i] Il problema è nello shift register, che si porta a spasso tutti i dati ogni volta che gira - e come dicevo prime, anche in memoria, manipolare quella mole di dati non è immadiato. Siccome alla fine di tutto, probabilmente salvi i dati in formato binario, potresi già farlo "ogni tanto" e scaricare lo shift register. C'è da provare e vedere se il bilancio è positivo: scrivere sul file degli "spezzoni" potrebbe essere più oneroso che non tenersi un gigantesco buffer in memoria. ---------------------------------------- AUTORE: 1369 DATA :30/11/2006 - 11:19:32 ---------------------------------------- mi scuso per la pessima qualità dello screenshot, spero che il nuovo allegato sia più visibile. Il funzionamento è molto semplice: si carica il file dati senza intestazione in memoria, l'iterazione del while porta il conto delle righe, e quindi estraggo la substring di lunghezza pari ad una riga. Il for esegue la conversione della stringa in un array in formato double. Determino il tempo necessario per processare una riga utilizzando il tick count all'interno del while. ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 13:08:12 ---------------------------------------- se mi mandi il file da 5 mega che vai a leggere, oggi ho un attimo di tempo e provo a dargli un occhiata. giuseppe.cattaneo at tenax.net ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 13:10:21 ---------------------------------------- Se alleghi qui il vi invece che l'immagine mi eviti di ricopiarlo da zero \";)\" ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 13:11:18 ---------------------------------------- ops, ho visto adesso che nel primo post c'era il file \":(\" ---------------------------------------- AUTORE: 247 DATA :30/11/2006 - 13:38:41 ---------------------------------------- Ciao, [quote:q2py5t5v]Il vi è in grado di estrarre le 200200 righe (dimensione del file di circa 5MB) del mio file in circa 37 minuti (su un P4 3.0GB con 1GB RAM), il tempo necessario per elaborare una riga aumenta da 1ms delle prime righe fino a circa 20ms nelle ultime righe. Come posso fare per ridurre i tempi di elaborazione (senza cambiare il pc, ovvio!)[/quote:q2py5t5v] ...37 minuti mi sembrava un'esagerazione e facendo le prove con un file da 5,5 MB a cui ho tolto per comodità la sola intestazione, io riesco a parsarlo complessivamente in 765 millisecondi ottenendo un'array di 395201 double...il Pc è un portatile tranquillo comprato tre anni fa con centrino 1.6 e 512 MB di memoria. Allego il Vi, dagli in pasto il tuo file cvs senza intestazione. BYE. ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 13:43:51 ---------------------------------------- Ecco appunto questo dicevo..com'e' possibile un vi cosi' complicato e dispendioso di memoria semplicemente per leggere e convertire un file csv?! AVrei fatto esattamente quello che ha fatto apollon..quindi la risposta qual'e'? ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 13:45:44 ---------------------------------------- Al limte un Fract/Exp String to number se c'e' il problema delle virgole nella conversione da stringa a numero ---------------------------------------- AUTORE: 1369 DATA :01/12/2006 - 09:02:16 ---------------------------------------- Grazie a tutti! Ho modificato leggermente il vi di apollon per la conversione della stringa in formato esponenziale e finalmente ho ottentuto un vi in grado di elaborare il file .csv in circa un secondo! Ho realizzato la conversione in esponenziale senza "Fract/Exp String to number" perchè questo processa un solo elemento per volta, mentre utilizzando lo string format %.3e in Spreadsheet string to array si converte l'intera stringa. La svolta è stata quindi il poter convertire l'intera stringa con un solo blocchetto, senza implementare while. Ringrazio ancora tutti, posto il vi definitivo. ---------------------------------------- AUTORE: 482 DATA :01/12/2006 - 09:15:03 ---------------------------------------- ..ma ciao! Mi puoi mandare un file completo di quelli da 5Mb? Perchè non capisco bene la cosa delle righe...te lo chiedo perchè utilizzando il fract exp to number in simulazione su 65000 dati mi risparmia 100 ms allora vorrei fare un po di esperimenti! ---------------------------------------- AUTORE: 384 DATA :01/12/2006 - 09:40:52 ---------------------------------------- Ragazzi, come me, sospetto che molti di noi non abbiano le versioni 8.x installate. Potete magare 'postare' i vi in 7.x, p.f.? ---------------------------------------- AUTORE: 247 DATA :01/12/2006 - 09:58:02 ---------------------------------------- Ciao, ti alego l'immagine del mio dato che non ho la posibilità di convertirlo, cmq sono due funzioni, lo riscrivi in 5 sec. BYE. ---------------------------------------- AUTORE: 384 DATA :01/12/2006 - 10:06:50 ---------------------------------------- Grazie. Io avrei fatto esattamente cosí, semplicemente butterei le righe di header prima di leggere e convertire tutti i dati di un colpo solo. . ---------------------------------------- AUTORE: 482 DATA :01/12/2006 - 11:13:47 ---------------------------------------- apollon, puoi fare quello che dicevo io con il fract/exp string to number e vedere se anche a te ti risparmia del tempo? (io come altri ho la 8.2 e quindi i vi posso salvarli solo in 8.0) ---------------------------------------- AUTORE: 247 DATA :01/12/2006 - 12:47:52 ---------------------------------------- Ciao, [quote:omvhhsum]apollon, puoi fare quello che dicevo io con il fract/exp string to number e vedere se anche a te ti risparmia del tempo?[/quote:omvhhsum] Mi posti il tuo Vi così ti posso dare l'esatta misura riferita al tuo codice? Magari poi lo provo sulla bestia di portatile che mi sono appena accattato!! \";-)\")=)..proprio spinto da questo test di prestazioni...va beh, no dai, era in programma dopo tre anni di onorato servizio del mio acer. BYE. ---------------------------------------- AUTORE: 1369 DATA :01/12/2006 - 15:16:04 ---------------------------------------- allego un archivio con il vi completo che permette di eliminare l'header in automatico, lo screenshot dello stesso ed un estratto del file dati. Sul mio pc (P4 2,4GB 512MB, sopravvissuto ad un alluvione) l'estrazione dati impiega 746ms. Chi fa di meglio? Ciao! ---------------------------------------- AUTORE: 482 DATA :01/12/2006 - 15:50:43 ---------------------------------------- Confermo che la soluzioen ch epropongo io risparmia 100ms. Allego il vi con tutte e due le versioni (con un bottone per selezionarle) e un immagine della differenza tra le due, quella sopra è quella col fract/exp e quella sotto senza. Il mio pc impiega attorno ai 500 ms per la versione senza fract/exp e sempre meno di 400 per la versione con il fract/exp. monto un P4 3Ghz con 512 di RAM. ---------------------------------------- AUTORE: 1369 DATA :01/12/2006 - 16:26:22 ---------------------------------------- complimenti Geppo! sul mio pc il parsing del file dati passa da 750ms a 520ms utilizzando la verisione con il fract/string! ---------------------------------------- ================================================================================ Controllo di tipo "ring" con uscita "string&q ================================================================================ AUTORE: 384 DATA :29/11/2006 - 17:47:20 ---------------------------------------- Ciao ragazzi. Per un progetto che sto iniziando, l'hardware è controllato da costanti stringa. Mi farebbe quindi molto comodo avere un controllo del tipo "text ring" ma con in uscita la stringa stessa, non il valore numerico associato. Lo so che posso definire un typedef e creare un vi che riceve quello in input e mi da la relativa stringa in uscita, ma preferirei avere un unico blocco. Qualcuno sa se si può fare? ---------------------------------------- AUTORE: 1168 DATA :30/11/2006 - 06:37:10 ---------------------------------------- Questo lo so!!! Butta il ring nell'input di un "format into string" e come formato passagli "%s" Ciao P! ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 07:27:45 ---------------------------------------- qui pero' sista parlando di un controllo ENUM, non di un text ring. ---------------------------------------- AUTORE: 1168 DATA :30/11/2006 - 08:11:26 ---------------------------------------- Mi riferivo proprio ad un enum! \":wink:\" Purtroppo più vecchio della 8.0 non riesco a salvare... ---------------------------------------- AUTORE: 927 DATA :30/11/2006 - 08:31:37 ---------------------------------------- Il punto è che lui non vuole usare blocchi aggiuntivi. Non credo sia possibile... Una soluzione orrida ma comoda: puoi usare delle variabili globali, una per ogni stringa, aventi il nome uguale al contenuto. Quando ti serve una stringa usi un unico blocco che selezioni con un menù a tendina, come se fosse un Enum \":P\" ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 08:47:40 ---------------------------------------- curiosità..perchè non si vogliono blocchi aggiuntivi? mi sembra che la soluzione di Pio sia l'ideale, non volere blocchi aggiuntivi mi sembra una forzatura senza senso.... ---------------------------------------- AUTORE: 384 DATA :30/11/2006 - 09:05:51 ---------------------------------------- [quote:1viwi0nh]Il punto è che lui non vuole usare blocchi aggiuntivi. Non credo sia possibile... Una soluzione orrida ma comoda: puoi usare delle variabili globali, una per ogni stringa, aventi il nome uguale al contenuto. Quando ti serve una stringa usi un unico blocco che selezioni con un menù a tendina, come se fosse un Enum \":P\"[/quote:1viwi0nh] Bravo Snam, non mi era venuto in mente!!! Basta creare una globale apposta per le costanti e in questo caso può funzionare. Non mi piacciono le globali ed io ho smesso di usarle per "trasferimento dati" tra vi, ma per costanti - che quindi NON cambiano durante l'esecuzione - sono ancora molto comode. [quote:1viwi0nh]curiosità..perchè non si vogliono blocchi aggiuntivi? mi sembra che la soluzione di Pio sia l'ideale, non volere blocchi aggiuntivi mi sembra una forzatura senza senso....[/quote:1viwi0nh] Non è strettamente necessario, lo riconosco, ma essendo "nato e cresciuto" nel 'C' credo che manchi quel tipo di 'typedef'. Rende il codice più elegante. Sopratutto, ultimamente ho dei problemi con i typedef. In un progetto che ho sviluppato, ho usato - appunto - il classico enum + un vi che lo traduce in stringa. Non so perchè, e qui nel forum nessuno ha trovato la spiegazione, quando cambio alcuni dei typedef, non li trovo aggiornati nei vi che li usano, in particolare in quelli che li "traducono" in string. Non succede con tutti e non solo con le costanti. E non sono il solo ad aver riportato questo problema. E si, ho verificato che ci siano tutti i settaggi che legano i controlli e le costanti al rispettivo typedef. Comunque, è nella mia lista di desiderata!!! ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 09:36:39 ---------------------------------------- In ogni caso non ho capito la soluzione proposta da snam, potete postare un esempio? Confesso cmq che nella mia esperienza non mi sono mai trovato ad utilizzare typedef in labview anzi, le volte che li ho trovati li ho tolti.... forse OT ma, mi fate un esempio in cui servano per forza i typedef? ---------------------------------------- AUTORE: 927 DATA :30/11/2006 - 09:50:22 ---------------------------------------- Nell'immagine c'è il pannello delle globali e il diagramma di un VI che le usa. Riguardo ai typedef: "per forza" non servono mai, ma se per caso ti capita di dover cambiare un tipo di dato (ad es. aggiungere altre voci a un Enum), senza typedef ti tocca andarlo a cambiare a mano in tutti i punti in cui l'hai usato! ---------------------------------------- AUTORE: 482 DATA :30/11/2006 - 09:55:08 ---------------------------------------- ok, la soluzione era piu' semplice di quanto pensavo..ma per fare la selezione quindi il vi deve essere fermo e soprattutto la macchina deve avere a bordo labview. Scusate ma quando io parlo di applicazioni ritengo scontato che poi vadano a diventare degli eseguibili gestiti da utenti.... Grazie per il chiarimento sul typedef...effettivamente puo' tornare comodo... ---------------------------------------- AUTORE: 384 DATA :30/11/2006 - 10:15:42 ---------------------------------------- [quote="gepponline":140js2m7]ok, la soluzione era piu' semplice di quanto pensavo..ma per fare la selezione quindi il vi deve essere fermo e soprattutto la macchina deve avere a bordo labview. Scusate ma quando io parlo di applicazioni ritengo scontato che poi vadano a diventare degli eseguibili gestiti da utenti.... Grazie per il chiarimento sul typedef...effettivamente puo' tornare comodo...[/quote:140js2m7] Beh, le applicazioni hanno sempre 2 risvolti: 1)lo sviluppatore 2)l'utente I typedef, constanti e compagnia sono di interesse agli sviluppatori, naturalmente. Però, non dimentichiamoci che questo ha sempre un impatto sul versante utente: più è facile sviluppare, più il prodotto finale può essere di qualità elevata. ---------------------------------------- ================================================================================ Passaggio di controlli a subvi ================================================================================ AUTORE: 1598 DATA :30/11/2006 - 08:28:08 ---------------------------------------- Il subvi da controllare è fatto più o meno come quello che ho postato, ho quindi il problema di passargli i controlli. Qualcuno mi può dire come aggirare la questione? Grazie! ---------------------------------------- AUTORE: 247 DATA :30/11/2006 - 09:54:52 ---------------------------------------- Ciao, scusa...ma cosa intendi con "passare i controlli"?? Per come l'hai strutturato...togli assolutamente l'abort nel subVI...le operazioni verranno eseguite dal subVI utilizzando i suoi controlli fino alla chiusura dello stesso. BYE. ---------------------------------------- ================================================================================ Creazione di array molto grandi ================================================================================ AUTORE: 77 DATA :30/11/2006 - 09:39:47 ---------------------------------------- Ciao a tutti. Vorrei sottoporvi un problema la cui soluzione non ho trovato all'interno di questo forum. Dovrei leggere da un database una tabella molto grande, dell'ordine di 100 mila righe e una trentina di colonne e memorizzarla in una struttura adeguata come un array 2D di stringhe o una tabella. Il problema, che ho riscontrato anche altre volte in situazioni analoghe, è che nel fare il build array, LV ha difficoltà quando le dimensioni crescono oltre certi limiti (cosa che non mi succede, scrivendo codice che faccia le stesse cose in C++). Una soluzione che ho adottato in precedenza è quella di leggere dal database (o da un file, in altri casi) un numero di righe "gestibili" da LV, diciamo mille righe, metterle in un array e salvarlo in un file temporaneo sul disco. Successivamente libero l'array, leggo altre mille righe e così via finchè non ho scorso tutta la tabella o il file. Alla fine avrò un certo numero di file, ciascuno con un array di mille righe, faccio un merge di tali file in un unico file che conterrà così il mio array di 100 mila righe, salvato su disco e che posso caricare in un'altra VI per memorizzarla in una variabile globale, per esempio. Avete qualche suggerimento per la generazione di un array così grande o avete mai affrontato un problema analogo? Ciao e grazie in anticipo. Stefano ---------------------------------------- AUTORE: 645 DATA :30/11/2006 - 09:55:09 ---------------------------------------- Cosa intendi di preciso con "nel fare il build array, LV ha difficoltà quando le dimensioni crescono oltre certi limiti" ? ---------------------------------------- AUTORE: 927 DATA :30/11/2006 - 10:23:50 ---------------------------------------- Ti consiglio di cercare su internet il documento "Are LabVIEW global variables good or bad, and when is it OK to use them?" che tratta anche i problemi dei grandi array. ---------------------------------------- AUTORE: 4 DATA :30/11/2006 - 11:04:50 ---------------------------------------- Se hai un DB non ha senso caricare tutto in memoria in labview, ti consiglio di fare delle query al DB e tenere labview scarico di dati, sicuramente è la soluzione più efficente. Ciao ---------------------------------------- AUTORE: 77 DATA :30/11/2006 - 13:49:27 ---------------------------------------- Cerco di spiegarmi meglio. In effetti sto facendo un'interrogazione ad un DB SQL con una query che mi restituisca tutte le righe di una tabella. Alcune tabelle hanno anche 100 mila righe e 20-30 colonne. Quello che vorrei fare è estrarre tutti i record dalla tabella per processarli con LV. Per fare questo ho necessità di memorizzare i dati in un opportuna struttura, diciamo un array 2D di stringhe o una Multicolumn Listbox. Per fare questo leggo prima, con un'opportuna query, il numero di record della tabella sorgente, poi eseguo un ciclo FOR per estrarre ad ogni iterazione l'i-esimo record e lo aggiungo ad un array inizialmente vuoto (con la funzione BuildArray). Quando ho a che fare con tabelle di 10-20 mila record, l'estrazione va a buon fine, ma con tabelle di 100 mila record LV mostra un errore di memoria insufficiente e con il debug visibilmente si nota come la costruzione dell'array sia sempre più lenta man mano che cresce il numero di righe. Ho provato anche, come suggerisce National Instruments, a creare staticamente un array inizializzato con le dimensioni volute e utilizzare la funzione ReplaceArraySubset per popolare l'array. Anche in questo caso ho gli stessi problemi. Spero di essermi spiegato meglio. Per Ale914: il discorso è che devo fare un'estrazione dei dati dal DB SQL, ma l'elaborazione viene fatta poi puramente in LV ... Fatemi sapere. Grazie, Stefano ---------------------------------------- AUTORE: 645 DATA :30/11/2006 - 14:00:05 ---------------------------------------- Io ho un problema simile estraendo dati da un database e inserendoli in un Multicolumn ListBox. Ma nel mio caso ho visto che la limitazione non è strettamente LabView e dipende invece dall'oocupazione di CPU e file paging di Windows ( viewtopic.php?t=2201&highlight= ). ---------------------------------------- AUTORE: 927 DATA :30/11/2006 - 14:57:50 ---------------------------------------- Se la Listbox (o array 2D) non necessita di essere vista dall'utente, allora renderla invisibile (Advanced -> Hide Indicator) potrebbe aiutare un pochino, se non altro si riduce il carico di lavoro perchè non deve più essere gestita anche graficamente. Meglio ancora sarebbe non avere affato un indicatore, ma una Functional Global. Poi c'è sempre la soluzione tragica, farsi una piccola DLL in C che fa solo semplice lettura/scrittura del tipo: dati[i][j] = x; \":wink:\" ---------------------------------------- AUTORE: 113 DATA :30/11/2006 - 17:35:41 ---------------------------------------- Il problema è tipico quando si ha a che fare con array molto grandi in LabVIEW... Consiglio di dare un'occhiata al documento: http://zone.ni.com/devzone/cda/tut/p/id/3625 Spiega anche le differenze di prestazioni fra LV e il C nella fattispecie. Personalmente ritengo che il metodo più efficace per uscirne, quando è possibile, è utilizzare dei files temporanei di appoggio; proprio come Spino73 ha pensato. L'unico appunto è che nel caso genererei un solo file temporaneo dei dati letti a blocchi, accodando i blocchi sequenzialmente; in tal modo non si deve poi fare poi il merging. Capisco che a prima vista può sembrare un metodo 'spartano' \":o\" , ma in realtà se ben utilizzato permette di ottenere prestazioni inaspettate, in particolar modo se il pc ha dischi S-ATA. Alcuni consigli generali: - Convertire i dati (stringhe, clusters,ecc) in formato binario - Il file temporaneo deve essere un file binario, e non ad esempio un file di testo!!! - Convertire i dati numerici in modo che occupino il numero minore di bytes necessari - Utilizzare sempre le funzioni di lettura/scrittura del file di basso livello - Nella fase successiva di analisi, leggere il file a blocchi di interesse per non ricadere nel problema delle maxi-array Alberto ---------------------------------------- AUTORE: 384 DATA :01/12/2006 - 09:53:59 ---------------------------------------- Mi permetto di aggiungere che non capisco la necessità di importare in memória tutte i 100000 record. Sicuramente non saranno scorsi da un umano! Perchè non usare le funzioni di DB di più basso livello, creare un recordset con quanto interessa ed estrarre i record uno ad uno per l'elaborazione? Cosí facendo si demanda il problema al motore del DB, che, però, è preparato per questo. ---------------------------------------- AUTORE: 113 DATA :01/12/2006 - 11:02:43 ---------------------------------------- Questo me lo sono chiesto anchio... Però forse l'elaborazione che deve fare richiede di avere 'sotto mano' tutti i dati, immagino ad esempio un sorting dei dati senza modificare il database originario. Premetto però che non ho grandissima esperienza di database, quindi non vorrei dire fesserie... \":oops:\" ---------------------------------------- AUTORE: 77 DATA :04/12/2006 - 10:22:01 ---------------------------------------- Ringrazio tutti per il contributo che hanno dato a questa discussione e per i suggerimenti forniti. In effetti l'interrogazione al DB, con una query mirata, non dovrebbe restituire centinaia di migliaia di record, però il DB è molto grande e non ho ancora un'idea chiara delle info che devo estrarre dal DB; mi vorrei quindi preparare al peggio, o costruire un applicativo che in futuro non soffra di problemi legati alla memoria disponibile... Per il momento sto ricorrendo al salvataggio in files temporanei che contengono una porzione della tabella 2D. Grazie ancora per la documentazione e gli esempi suggeriti. Per Alberto.L : purtroppo la libreria giga_labview.llb, che mi sembra molto interessante, è scritta in LV7.1 e io utilizzo (per compatibilità con il cliente) LV6.1. Non è che avresti una copia convertita per LV6.1? Ciao a tutti, Stefano ---------------------------------------- AUTORE: 113 DATA :04/12/2006 - 16:04:05 ---------------------------------------- Ciao Stefano, purtroppo non riesco a convertirtela a 6.1, perchè con 7.1 posso scendere solo a 7.0... \":evil:\" Ci vorrebbe qualche anima pia che ha installato sia la 7.1 che la 7.0 \":roll:\" Alberto ---------------------------------------- AUTORE: 384 DATA :05/12/2006 - 08:40:59 ---------------------------------------- Manadatemala su ragazzi, lo faccio io! Ci si scambia l'e-mail tramite i messaggi privati. Magari poi potremmo anche lasciarla nella sezione download del forum. ---------------------------------------- AUTORE: 77 DATA :05/12/2006 - 09:27:34 ---------------------------------------- Grazie mille gyc! Purtoppo la LLB "giga_labview.llb" è di 1.3 MB e zippata viene di 588 KB, quindi non posso allegarla. Il link dal quale è possibile scaricarla è il seguente: http://zone.ni.com/devzone/cda/tut/p/id/3625 Ciao, Stefano ---------------------------------------- AUTORE: 384 DATA :05/12/2006 - 11:01:26 ---------------------------------------- Eccomi. Ho pronte le versioni 7.0 e 6.1 della libreria 'giga_labview'. Non si possono allegare ai messaggi del forum perchè superano il limite massimo. O le spediamo al nostro ADMIN che le pubblicherà nell'area download oppure vi toca madarmi un messaggio privato con il vs. e-mail ed io ve le spedisco (entrambe o a scelta) direttamente. I file zippati sono lunghi circa 485KB ciascuno. ---------------------------------------- AUTORE: 1165 DATA :05/12/2006 - 13:12:18 ---------------------------------------- scusate .. una nota estemporanea .. ma per questo caso di trasferimento di files grandi (e molti altri simili) suggerisco di tenere anche presenti i siti di file hosting and sharing .. tipo "zupload.com" .. sono molto utili e sopratutto gratuiti .. e permettono un accesso tipo "da uno a molti", cioè broadcasting effettivo, nello spirito del sito mi sembra .. ciao e buon lavoro a tutti .. enr. ---------------------------------------- AUTORE: 384 DATA :05/12/2006 - 13:45:53 ---------------------------------------- Bravissimo. Mooolto utile! Cliccate [url=http://z02.zupload.com/download.php?file=getfile&filepath=14691:s5yns2f7]qui, per scaricare la libreria per la versione 6.1[/url:s5yns2f7] Cliccate [url=http://z02.zupload.com/download.php?file=getfile&filepath=14693:s5yns2f7]qui, per scaricare la libreria per la versione 7.0[/url:s5yns2f7] ---------------------------------------- ================================================================================ Scope Chart ================================================================================ AUTORE: 1299 DATA :01/12/2006 - 11:30:26 ---------------------------------------- Salve a tutti rieccomi qui... qualcuno potrebbe spiegarmi a cose serve il Multiplier in uno scope chart?? io dovrei decidere quanti minuti vedere nell'asse delle x ovvero se imposto 20 minuti avro il primo valore alle 00:00 e l'ultimo alle 00:30 inoltre poi devo poter far acuisira il dato secondo un certo rate impostabile e ovviamene il tutto deve essere sicronizzato... qlc potrebbe darmi qlc dritta? grazie mille ---------------------------------------- AUTORE: 927 DATA :01/12/2006 - 12:50:42 ---------------------------------------- Nei Chart i valori delle ascisse sono sempre spaziati uniformemente, ad esempio: 10, 15, 20, 25... In questo caso l'Offset è 10 e il Multiplier è 5. Vale anche per le date, considerandole in secondi. In passato ho dovuto fare una cosa simile alla tua, e ho risolto (almeno con la 7.1) impostando prima Offset & Multiplier, poi Minimum & Maximum, infine ho iniziato a passare i campioni al grafico. ---------------------------------------- AUTORE: 1299 DATA :04/12/2006 - 08:16:57 ---------------------------------------- ho un piccolo problemuccio... sto lavorando su cFP perche qnd imposto il rate del cFP a 1000 ho tutto sincronizzato con l'orario.. ovvero mi fa 10 avanzamenti in 10 secondi... con rate a 500 mi fa 20 avanzamenti in 10 secondi con rate a 250 mi fa 40 avanzamenti in 10 secondi come faccio a sincronizzare il tutto??? grazie mille! ---------------------------------------- AUTORE: 927 DATA :05/12/2006 - 10:39:49 ---------------------------------------- Cosa intendi con "imposto il rate del cFP"? Immagino che tu abbia un ciclo while temporizzato dove leggi il dato con "FP read" e lo passi al grafico. Se il ciclo gira ogni N millisecondi, è ovvio che il grafico avanza ogni N millisecondi! Hai detto che volevi decidere "quanti minuti vedere nell'asse delle x", non quanti avanzamenti... Puoi spiegarti meglio? ---------------------------------------- ================================================================================ Problemi con Read spreadsheet file ================================================================================ AUTORE: 1632 DATA :01/12/2006 - 11:42:22 ---------------------------------------- Buongiorno a tutti, sono nuovissimo del forum e sono un nuovissimo utente di LabView, per cui mi scuso anticipatamente della banalità delle mie domande. Ho la necessità di leggere una tabella di numeri composta da due righe. Per fare ciò, ho utilizzato il blocchetto "read spreadsheet file VI", il quale funziona per metà, poichè legge il file, scrive i valori in un opportuno array, ma non vengono considerate tutte le cifre dopo l virgola. La cosa è parecchio fastidiosa poichè la prima righa della tabella contiene numeri molto piccoli, che pertanto vengono letti come dei semplici zero. Come posso fare per far leggere il valore preciso? Ho provato a cercare negli altri topics, ma non ho trovato la risposta alla mia domanda, forse perchè troppo banale. Vi posto il programma con un file di esempio. ---------------------------------------- AUTORE: 1427 DATA :01/12/2006 - 11:57:30 ---------------------------------------- [quote="eblues":og8suode]Buongiorno a tutti, sono nuovissimo del forum e sono un nuovissimo utente di LabView, per cui mi scuso anticipatamente della banalità delle mie domande. Ho la necessità di leggere una tabella di numeri composta da due righe. Per fare ciò, ho utilizzato il blocchetto "read spreadsheet file VI", il quale funziona per metà, poichè legge il file, scrive i valori in un opportuno array, ma non vengono considerate tutte le cifre dopo l virgola. La cosa è parecchio fastidiosa poichè la prima righa della tabella contiene numeri molto piccoli, che pertanto vengono letti come dei semplici zero. Come posso fare per far leggere il valore preciso? Ho provato a cercare negli altri topics, ma non ho trovato la risposta alla mia domanda, forse perchè troppo banale. Vi posto il programma con un file di esempio.[/quote:og8suode] Questo problema deriva dall'idiota convinzione che in italia il separatore decimale sia la virgola anziche' il punto. Un modo fesso per risolvere il tuo problema e' di andare nelle impostazioni internazionali del tuo computer ed imporre come separatore decimale il punto anziche' la virgola. Ho fatto un test ed il tuo programmino funziona bene. ciao! ---------------------------------------- AUTORE: 1632 DATA :01/12/2006 - 12:19:01 ---------------------------------------- Grazie mille, veramente celere ed efficace. Buona giornata. ---------------------------------------- AUTORE: 2141 DATA :14/06/2007 - 09:42:31 ---------------------------------------- io ho il tuo stesso problema...mi potresti fare l'upload del tuo vi per una versione7.0? grazie mille ---------------------------------------- ================================================================================ Ciclo while annidiato in un event structure ================================================================================ AUTORE: 1427 DATA :01/12/2006 - 12:02:57 ---------------------------------------- Ciao a tutti. Mi trovo abbastanza inguaiato con una cosa alla quale non so trovare una soluzione. Ho la necessità di inserire un ciclo while all'interno di un event structure, come nell'esempietto che allego. Solo che quando parte il ciclo non ho piu' una lettura dei tasti sul pannello (che non sono nemmeno piu' "premibili"), ovviamente rendendo inusabile questo mio approccio. Dov'e' l'errore? devo passare all'event qualche impostazione particolare? grazie! ---------------------------------------- AUTORE: 1427 DATA :01/12/2006 - 12:12:09 ---------------------------------------- Ho trovato la soluzione, avrei rimosso il messaggio ma non mi pare sia possibile. Allora ne approfitto di dare la risposta se mai possa servire ad altri, chiedendo cosi' ai programmatori esperti se l'approccio e' corretto: in pratica nell'event structure c'e' di defaul attivata l'opzione di LOCK del front panel. Basta spuntare quest'opzione per avere il funzionamento desiderato. ciao! ---------------------------------------- AUTORE: 384 DATA :04/12/2006 - 12:09:12 ---------------------------------------- Non ho potuto aprire il tuo VI perchè non ho le 8.x installate. Comunque, solitamente non è una buona idea aver all'interno di un case di una event structure qualcosa che richieda l'utilizzo della stessa interfaccia ([url:26o9ht7d]http://zone.ni.com/reference/en-XX/help/371361B-01/lvhowto/twoevntstrctonelp/[/url:26o9ht7d]). Ho provato a rifare un vi come descrivi (despuntando anche il lock), e quando gira il ciclo while all'interno del case che lo prevvede, si riesce ad uscirne a patto che si usino soltanto i controlli previsti in quello stesso while. Se si toccano altri, non se ne esce più. Prova con attenzione ed il più esaustivamente che puoi questo tuo approccio perchè potrebbe rivelarsi una trappola. Leggi anche qui: [list:26o9ht7d] [url:26o9ht7d]http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/using_events_in_labview/[/url:26o9ht7d] [url:26o9ht7d]http://forums.ni.com/ni/board/message?board.id=170&message.id=75072&requireLogin=False[/url:26o9ht7d] [url:26o9ht7d]http://forums.ni.com/ni/board/message?board.id=170&message.id=131546&requireLogin=False[/url:26o9ht7d] [/list:u:26o9ht7d] ---------------------------------------- ================================================================================ Gestione Affidabile Eccezioni/Errori ================================================================================ AUTORE: 1501 DATA :01/12/2006 - 12:42:45 ---------------------------------------- Salve, avrei bisogno di maggiori informazioni su dove posso reperire informazioni approfondite sui metodi di gestione degli errori/eccezioni in labview. Grazie mille in anticipo, abelli ---------------------------------------- AUTORE: 384 DATA :04/12/2006 - 12:35:05 ---------------------------------------- Prova [url=http://search.ni.com/nisearch/nisearchservlet?nistype=default&ddown=2&cluster=true&filter=%2Btaxonomy:Support+&q=error+cluster:1lbcqg29]qui[/url:1lbcqg29]. ---------------------------------------- AUTORE: 1501 DATA :11/12/2006 - 11:55:31 ---------------------------------------- Grazie mille per la disponibilità. Quelle che cercavo io erano soluzioni esterne alla gestione delle eccezioni/errori di labview dato che in ogni dove io volga il mio sguardo leggo che questa è una delle grandi mancanze: un sistema di gestione degli errori che funzioni. saluti. ---------------------------------------- AUTORE: 384 DATA :11/12/2006 - 12:52:35 ---------------------------------------- Cosa intendi con "soluzione esterne"? ---------------------------------------- AUTORE: 1501 DATA :11/12/2006 - 14:07:21 ---------------------------------------- http://www.mooregoodideas.com/Error%20H ... index.html ---------------------------------------- AUTORE: 4 DATA :11/12/2006 - 14:20:00 ---------------------------------------- Se ti interesa separare la gestione degli errori dall'implementazione del codice, per avere insomma quello che è la norma usando Java o .net, potresti usare il linguaggio di scripting [url=http://www.lua.org/:1742polg]LUA[/url:1742polg] e il porting per LabVIEW [url=http://www.citengineering.com/LuaVIEW/:1742polg]LUAView[/url:1742polg]. Prima di avventurati in installazioni e perderti tra i codici di LUA, ti consiglio di leggere [url=http://www.citengineering.com/LuaVIEW/manual.html#Error%20handling:1742polg]questo documento[/url:1742polg] proprio sull'error handling in LabVIEW usando LUA. All'inizio può sembrare complesso ma ti assicuro che ne vale la pena! LUA è veramente molto bello da usare. Ciao ---------------------------------------- AUTORE: 384 DATA :11/12/2006 - 14:23:11 ---------------------------------------- In realtà, io non vedo tanto il problema. Queste funzioni a cui accenni in realtà sono create con i blocchi già presenti in LabView e non sono nemmeno niente di particolare. Il particolare la prima, il merge errors, esiste in LV almeno dalla versione 7.0 e non solo in IMAQ. Aggiungo che nella mia esperienza, la gestione degli errori varia radicalmente da caso a caso. Nella maggior parte dei miei casi, gli errori sono gestiti automaticamente, l'uttente non se ne accorge neanche. Quando ciò non basta, spesso è sufficiente un dialogo informativo, ma ho casi in cui faccio anche la scrittura su file, altri in cui hu un VI dinamico che riporta l'errore a video e permette certi tipi di azione da parte dell'utente, mentre altre "parti" dell'applicazione DEVONO continuare a girare. Direi, quindi, che quelle funzioni possono sicuramente tornare utili, ma non sono essenziali, non risolvono tutti i problemi e - sopratutto - sono sufficientemente facili da creare all'occorrenza per il caso specifico. ---------------------------------------- AUTORE: 384 DATA :11/12/2006 - 14:31:13 ---------------------------------------- Il mio ultimo post si riferiva alle funzioni puntate dal link postato da abelli. Solo per 3 minuti è arrivato dopo quello di Ale... \"8)\" ---------------------------------------- AUTORE: 1501 DATA :12/12/2006 - 18:53:03 ---------------------------------------- Per Ale: grazie mille per il consiglio, ma non vorrei appesantire il programma (quello che non c'e' non si rompe). Per gyc: ti ringrazio per la pronta risposta. Vedi il problema è che io ho chiesto (anche se non in un italiano eccessivamente corretto) dove potevo reperire informazioni su alcuni possibili sistemi (implementazioni o algoritmi) alternativi per la gestione degli errori dato che tutto il mondo (tutti i libri che ho letto) hanno come ipotesi fondamentale "la gestione degli errori in labview fa schifo"; e non ho assolutamente parlato di parti di programma che devono continuare a girare, o quanto siano bravi terzi a fare quello che io non so fare .. questo non mi interessa se non nel momento in cui quei terzi sono disposti a spiegare, a trasmettere la cultura che loro viene richiesta. In sintesi, a cosa si è arrivati con questo thread? Tranne per l'intervento di Ale, che ringrazio ancora, a nulla! Inutile. Questa frase: "Direi, quindi, che quelle funzioni possono sicuramente tornare utili, ma non sono essenziali, non risolvono tutti i problemi e - sopratutto - sono sufficientemente facili da creare all'occorrenza per il caso specifico." .. a me che ho bisogno di sapere cosa serve? ------ Ripeto la richiesta di aiuto (chiarificandola): Salve, sono nella fase di sviluppo di un programma di controllo per la gestione di un sistema di misura, la mia capacità di utilizzo dell'IDE labview è medio-bassa, sono pochi mesi,4, che lavoro a questo progetto ed ultimamente ho incontrato alcuni ostacoli che non ho ancora risolto: dove potrei trovare informazioni su (algoritmi relativi a) come (per esempio) riuscire a chiudere le varie sessioni visa che ho aperto durante l'esecuzione programma nel caso si verifichi un certo tipo di errore, definire e centralizzare una serie di errori custom in alternativa al metodo standard (come definito nell'help di labview). Insomma quello che cerco è una sorta di collezione di case studies sulla gestione degli errori. Grazie mille in anticipo, abelli ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 14:45:26 ---------------------------------------- Spiegato cosi, mi permette ancora di poter dire che sono assolutamente convinto che non troverai dei "case studies" su come gestire gli errori per il semplice motivo che, non solo non esiste "il metodo" per gestirli, non esistono neanche "scuole di pensiero" su come farlo. La gestione degli errori, ribadisco la [u:20dtru12]mia[/u:20dtru12] convinzione, varia tantissimo da caso a caso e dipende molto da come gli stessi utenti del sistema richiedono di farlo. Nella mia esperienza ed osservazioni, differenti utenti chiederanno di gestire identiche situazioni in modi anche radicalmente diversi. Magari concorderai che questo possa anche essere il motivo fondamentale per cui si trovano una quantità di gente che scrive che la gestione degli errori "fa schiffo", ma nessuno che abbia anche e contestualmente scritto quale è il modo 'giusto' per gestirli. Mi dispiace (anche se non mi sorprende) che - per te - questo thread non abbia portato a nulla. Sai, nessuno tra quelli che scrivono in questo forum è "il guru" da cui attingere [i:20dtru12]saggezza e sapienza[/i:20dtru12]. Questo, invece, è uno spazio di discussione e sopratutto di condivisione: se non si parte dalle proprie esperienze non c'è molto di cui discutere o da condividere. Ma in fondo questo non ti interessa "se non nel momento in cui quei terzi sono disposti a spiegare, a trasmettere la cultura che loro viene richiesta". Gratuitamente, s'intende. ---------------------------------------- AUTORE: 482 DATA :14/12/2006 - 15:16:30 ---------------------------------------- A me, tralasciando le disquisizioni filosofiche sembra che gli strumenti in labview per gestire gli errori ci sono tutti, bisogna solo avere la voglia di rimboccarsi le maniche e farsi i vari fiel che contengono i vari tipi di errore e le descrizioni. Poi come da buona norma labview ogni subvi dovrà avere il suo cluster di errore in ingresso e cluster di errore in uscita. Cito la frase "cio' che non c'e' non si rompe" per dire che pro' quello che c'e' se si rompe bisogna poter andare a risalire a come e quando si è rotto e l'unico modo per farlo anch ein altri linguaggi, credo sia quello di crearsi la lista di tutti i messaggi possibili e gestirli di volta in volta. ---------------------------------------- AUTORE: 1501 DATA :14/12/2006 - 17:38:24 ---------------------------------------- Pretendere una risposta InTopic o esempi concretti, è troppo? ---------------------------------------- AUTORE: 482 DATA :15/12/2006 - 07:13:37 ---------------------------------------- non è troppo, è solo troppo generico. Io faccio riferimento a questi due documenti: http://zone.ni.com/reference/en-XX/help ... ined_erro/ http://zone.ni.com/reference/en-XX/help ... rror_text/ In particolare il secondo è relativo alla creazione di file di testo pe rla gestione degli errori. ---------------------------------------- AUTORE: 482 DATA :15/12/2006 - 07:26:02 ---------------------------------------- Questo potrebbe essere un esempio generico... ---------------------------------------- ================================================================================ SHARED VARIABLE, GROSSA DELUSIONE ================================================================================ AUTORE: 838 DATA :04/12/2006 - 08:16:08 ---------------------------------------- Creando i primi applicativi con l'8.2, noto già grossi problemi in lw8.2 una delle cose più assurde è che per visualizzare un vi su pc che linka ad a shared variable gestite da un cfp via rete impiega ben 10 (DIECI) secondi prima che le variabili a video vengono aggiornate. risposta da ni: è così e non possiamo farci niente un vero skifo..... lasciando perdere la completa ignoranza sul tpc-2006, non sanno nemmeno come è fatto.... io dico, l'assistenza l'hanno assunta con i punti della mulino bianco? ---------------------------------------- AUTORE: 1528 DATA :06/12/2006 - 12:38:16 ---------------------------------------- Il discorso resta sempre lo stesso... non vogliono far decollare LabVIEW...resterà il solito programma per chi non ne capisce di informatica e ha bisogno di qualcosa di semplice ed intuitivo... ---------------------------------------- AUTORE: 384 DATA :07/12/2006 - 08:03:41 ---------------------------------------- Il mio aggironamento alla 8.0 e 8.2 è ancora lì sul ripiano della mia libreria. \":wink:\" Riuscite a dirmi qualcosa che mi convica ad installarlo? \":lol:\" ---------------------------------------- AUTORE: 482 DATA :07/12/2006 - 16:14:36 ---------------------------------------- Dalla 8 alla 8.2 direi che non c'e' niente per cui te lo consiglierei... dei due mi verrebbe da consigliarti di tornare alla 7.1 \":D\" ---------------------------------------- AUTORE: 129 DATA :08/12/2006 - 09:16:30 ---------------------------------------- Io ho la 8.2, ma uso ancora la 7.1, sarà l'abitudine, ma per me rimane la versione di riferimento. ---------------------------------------- AUTORE: 1528 DATA :10/12/2006 - 10:05:24 ---------------------------------------- Il PDA module della 8.0 è troppo migliore della sua versione 7.1 \":D\" ---------------------------------------- AUTORE: 838 DATA :12/12/2006 - 08:06:55 ---------------------------------------- dopo 1000000000000000000000 di prove: partenza: 250 tag di booleane e double miste, il cfp2100 da 64mb mi andava a 600 kb disponibili, con blocco totale della cpu l'applicativo è di 700 kb intermedio: 200 tag con booleane e double miste, ma le rimanenti 50 raggruppate in array di bool e di double il cfp mi da 2mb di spazio libero e l'applicativo scende a 600 kb finale: 100 tag, maggiori array di bool e di double, ancora qualche bool e double diretto cfp con 20 mb liberi e applicativo da 500 kb, e tutto sembra andare decisamente meglio conclusioni: è assolutamente sconsigliato usare shared variable dirette (io ad esempio avevo una shared per ogni ingresso e uscita del cfp), ma di raggruppare il tutto sotto array. la stessa comunicazione con un pannello va studiata e raggruppata in modo da scambiare pochissime shared ma anche di grandi dimensioni. per ogni shared vengono create istanze in memoria che succhiano una enormità di memoria, e pure l'applicativo ne risente!! ---------------------------------------- AUTORE: 927 DATA :12/12/2006 - 08:22:32 ---------------------------------------- Scusa ma quando le raggruppi sotto array, come fai a collegarle ai canali del (c)FP? A me il binding a più canali contemporaneamente non lo fa fare, e perfino quelli della NI mi hanno confermato che non si può! Ne ho parlato anche qui (in inglese): http://forums.ni.com/ni/board/message?b ... 5045#M5045 ---------------------------------------- AUTORE: 838 DATA :12/12/2006 - 09:15:15 ---------------------------------------- scusa non ho capito. io il bindig l'ho evitato perchè mi causava enormi problemi, ho utilizzato le funzioni fp read e write ad es. io ho ingressi digitali, e analogiche se con il fpread punto sul primo canale (all) mi da una lettura di un array dei 64 bool oppure dei 8 double, e li appoggio su una shared array il canale all è tutto configurabile dal max ma forse non intendi questo \":D\" ---------------------------------------- AUTORE: 927 DATA :12/12/2006 - 13:53:51 ---------------------------------------- Ok se non hai usato il binding tutto torna \":wink:\" Non è possibile bindere ai canali di tipo "All", bisogna per forza creare una variabile scalare per ogni canale \":|\" Io però ho meno variabili (circa 120 SENZA array), sto ancora lavorando sul progetto, ti saprò dire se avrò i tuoi stessi problemi. In tal caso manderò a f...o il binding \":wink:\" ---------------------------------------- AUTORE: 838 DATA :12/12/2006 - 13:58:48 ---------------------------------------- io ti sto parlando con un tpc-2006 (wince) e il cfp-2100 magari con altri pannelli o pc il problema non c'è, ma ne dubito e naturalmente i "tecnici" ni non anno na mazza anche su questo aspetto.... devono sempre rivolgersi a qualcun'altro, e il più delle volte ti danno le stesse risposte che si trovano sul forum di ni ---------------------------------------- ================================================================================ Trigger ================================================================================ AUTORE: 955 DATA :04/12/2006 - 10:01:40 ---------------------------------------- Sto utilizzando un Tones and Noise Waveform e vorrei triggerare il segnale ad un mio comando per cui ho posto il trigger all'interno di un case structure con condizione True quando premo un pulsantino. Per il trigger sto usando un Basic Level Trigger Detection. Mi sono bloccato però su questi due punti e non riesco a farli: 1-vorrei visualizzare a video il segnale direttamentante dal punto di partenza del trigger (in teoria dovrei eliminare la parte del signale che anticipa il trigger...ma non ci riesco perchè non riesco ad operare sull'uscita del Tones and Noise Waveform \":oops:\" ) 2-vorrei che tutto il processo una volta individuati 10 periodi sincronizzati effettui la fft...qui non riesco a contare esattamente il numero di passaggi per il trigger \":oops:\" help plz ---------------------------------------- AUTORE: 955 DATA :04/12/2006 - 11:01:50 ---------------------------------------- dimenticavo se è poco chiaro provo a riformulare il mio problema. grazie a tutti per l'aiuto ---------------------------------------- AUTORE: 955 DATA :04/12/2006 - 12:36:11 ---------------------------------------- ok risolto. ora però volevo sapere dal momento che devo contare 10 periodi sincronizzati ho visto che il labview non possiede un contatore \":(\" come si fa? \":roll:\" io avevo pensato ad un flip flop D modulo 4...però ehm come si fa? \":roll:\" ---------------------------------------- AUTORE: 955 DATA :04/12/2006 - 15:58:37 ---------------------------------------- per puro divertimento ho fatto di mia mano un trigger sul labview \":lol:\" ora volevo sapere, dal momento che mi interessano sapere i passaggi per lo zero (esattamente 20 perchè devo prendere 10 periodi), se è possibile "salvare" l'indice del primo e dell'ultimo zero con tutti gli indici tra esso compresi. spero di avere una risposta... \":roll:\" grazie ---------------------------------------- AUTORE: 384 DATA :05/12/2006 - 09:00:33 ---------------------------------------- La risposta è ovviamente SI. Tutto dipende di che cosa vuoi farne dopo e quindi come/dove salvare quei dati. Puoi memorizzarli in un array da passare all'esterno del tuo trigger, in una variabile globale ([b:34367eaq]ricordo che è sconsigliabile l'uso di globali per passare dati da un VI all'altro[/b:34367eaq]), salvarli su un file, ecc. Puoi essere un pò più specifico? ---------------------------------------- AUTORE: 955 DATA :05/12/2006 - 09:07:24 ---------------------------------------- si ieri avevo pensato di risolverlo così: condizione true [url=http://img169.imageshack.us/my.php?image=condizionetrueoh8.jpg:1kyrw3sz][img:1kyrw3sz]http://img169.imageshack.us/img169/1289/condizionetrueoh8.th.jpg[/img:1kyrw3sz][/url:1kyrw3sz] condizione false [url=http://img172.imageshack.us/my.php?image=condizionefalsexn8.jpg:1kyrw3sz][img:1kyrw3sz]http://img172.imageshack.us/img172/5752/condizionefalsexn8.th.jpg[/img:1kyrw3sz][/url:1kyrw3sz] puoi dirmi se è fatto bene ed eventualmente cosa dovrei aggiungere o rimuovere? In pratica devo utilizzare il trigger per riconoscere il passaggio per lo zero di una sinusoide con armoniche, ovvero attivo un bottone inizio la sincronizzazione per lo zero di 10 periodi (quindi 20 punti) e mi serve conservare gli indici dal primo all'ultimo zero su cui poi devo effettuare la FFT. ---------------------------------------- AUTORE: 955 DATA :05/12/2006 - 10:05:42 ---------------------------------------- ok risolto anche l'ultimo problemino che avevo notato: sullo shift register di colore blu va posto un array inizializzato a zero e così funziona alla perfezione \":D\" grazie gyc \":wink:\" ---------------------------------------- ================================================================================ acquisire un segnale per un certo tempo, come??? ================================================================================ AUTORE: 1633 DATA :04/12/2006 - 11:17:04 ---------------------------------------- Ho un problema...sono agli inizi, ma dovrei realizzare un programma in labview che riceva un segnale per un determinato tempo, e tutto questo entro dieci giorni...aiuto! Vorrei realizzare un pulsante con il quale la mia acquisizione (di due canali differenti con ad in) abbia inizio, visualizzandone in tempo reale i relativi grafici nel tempo, ma termini dopo un certo tempo (es 5 sec) automaticamente. Scusate se ve lo chiedo...potreste mandarmi un esempio? grazie anticipatamente PS: sarebbe possibile includere nello stesso programma un codice che mi permetta di calcolare la fft di tale segnale una volta che i 5 sec sono passati?? E la relativa FRF?? E in quale "loop" dovrei inserire questi calcoli?? ---------------------------------------- AUTORE: 645 DATA :04/12/2006 - 12:05:57 ---------------------------------------- Non ho sottomano esempi come quello che chiedi... però dai un occhio agli esempi nella directory LabView: guarda quelli che parlano di analisi dei segnali! \":)\" ---------------------------------------- ================================================================================ pulsante per apertura chiusura blocco cancello ================================================================================ AUTORE: 1368 DATA :04/12/2006 - 13:49:22 ---------------------------------------- Ciao a tutti, devo creare un pulsante che mi faccia l apertura, la chiusura e il blocco di un cancello, cioe quando devo aprire deve mandare fuori un certo indirizzo, quando chiude un altro indirizzo e cosi via per il blocco. che pulsante posso usare?? grazie ---------------------------------------- AUTORE: 645 DATA :04/12/2006 - 15:26:45 ---------------------------------------- Potresti fare un pulsante "Switch when pressed" se gli stati sono due e gestisci il cambiamento di valore con una struttura ad eventi. Oppure fai un pulsante "switch until released" e gestisci il cambiamento di valore con una variabile associata ed una struttura ad eventi o un case semplice. Se devi gestire tre eventi puoi pensare una struttura tipo la seconda dove la variabile associata passa tra i tre valori: ogni volta che viene intercettato il cambiamento di valore (con struttura ad eventi) fai assumere alla variabile uno stato e in base allo stato fai eseguire un'azione al VI... \"8)\" ---------------------------------------- ================================================================================ Integrazione con labview ================================================================================ AUTORE: 1635 DATA :04/12/2006 - 16:52:28 ---------------------------------------- Salve a tutti. Ho un problemino con labview. Ho accelerazione ( dati da un accelerometro) edevo ricavare lo spostamento. Ma ci sono troppi VI diversi.Quale uso? \":oops:\" ---------------------------------------- AUTORE: 384 DATA :05/12/2006 - 08:49:42 ---------------------------------------- [quote="tronki":18i4p0js]Salve a tutti. Ho un problemino con labview. Ho accelerazione ( dati da un accelerometro) edevo ricavare lo spostamento. Ma ci sono troppi VI diversi.Quale uso? \":oops:\"[/quote:18i4p0js] Ora non ho LabView sooto mano, e ovviamente non ho a memoria tutte lefunzioni, ma mi non mi ricordo che esistano poi tanti blocchi integratori. Dai anche un'occhiata alla pallette degli express VI. Non escludo che ci sia qualcosa per integrare/derivare. ---------------------------------------- AUTORE: 1635 DATA :05/12/2006 - 14:31:30 ---------------------------------------- [quote="tronki":1xerce74]Salve a tutti. Ho un problemino con labview. Ho accelerazione ( dati da un accelerometro) edevo ricavare lo spostamento. Ma ci sono troppi VI diversi.Quale uso? \":oops:\"[/quote:1xerce74] Hello to everyone I have a problem. I need to integrate acceleration data to get velocity and position. Peak values of acceleration, velocity and position are needed. I've set up a test file but there's something wrong. We have the values of acceleration from an accelerometer. First of all we substracte the DC component from our acceleration data. Then, with a double integration with time domain math, we have the values of position ( A_red line ). But we have also a sensor of position , which gives us a curve of the displacement ( B_ green line ). We want to have the maximum displacement from the accelerometer and from the sensor of position. We compared A with B but we had some problems. Sometimes we have a very good matching ( I ), but sometimes no ( II ) . 1. Can be a problem due to the DC component? 2. Can be a problem do to the type of my accelerometer? 3. Where is the problem? Please, Help us. It’s very important. ---------------------------------------- AUTORE: 384 DATA :05/12/2006 - 15:31:36 ---------------------------------------- [quote="tronki":dl72knqa]We have the values of acceleration from an accelerometer. First of all we substracte the DC component from our acceleration data.[/quote:dl72knqa] Removing arbitrarily the DC component can be a source of error. It all depends on your system and on the physical significance of the DC component. [quote="tronki":dl72knqa]Then, with a double integration with time domain math, we have the values of position ( A_red line ). But we have also a sensor of position , which gives us a curve of the displacement ( B_ green line ). We want to have the maximum displacement from the accelerometer and from the sensor of position. We compared A with B but we had some problems. Sometimes we have a very good matching ( I ), but sometimes no ( II ) . 1. Can be a problem due to the DC component? 2. Can be a problem do to the type of my accelerometer? 3. Where is the problem? Please, Help us. It’s very important.[/quote:dl72knqa] Without the source VI or pictures of the results it's impossible to explain this fact. I can think of one possible reason: if your movement is in part uniform, the computed velocity and displacement out of acceleration will be null on those sections. Depending on how you are performing the time integration this may have a negative impact on the final result. [/quote] ---------------------------------------- AUTORE: 1635 DATA :06/12/2006 - 10:04:11 ---------------------------------------- Ciao. Grazie x la risposta innanzitutto. Ho visto che se \":cry:\" \":cry:\" i di Varese. quindi ne approfitterei per scrivere in italiano \":)\" Ora ti spiego un po' meglio il mio esperimento, così forse capirai qcs in più. La nostra idea è quella di poter confrontare lo spostamento ottenuto da un accelerometro ( derivando due volte) con quello in uscita da un sensore di posizione. Gli accelerometri usati sono di tipo FBA, con una tensione in uscita prop. all'accel. Tale segnale viene da noi " ripulito" eliminando la componente Dc con Basic Averaged DC-RMS. VI ( finestra rettangolare, tipo di media lineare ). Ma il risultato non sempre è perfetto. Almeno lo è nella forma. Ma non nel picco ( valore chea noi interessa ). Spesso le curve dei due spostamenti sono shiftate tra loro. Pensi che sbagliamo ad eliminare la componente DC del segnale? Se usassi un tipo diverso di accelerometro potrei avere dei miglioramenti ( x esempio un mems ) ? Come potremmo pulire il segnale, sia via hardware o software? conosci qualche Vi che lo fa e che potrebbe aiutarci? Ti allego i risultati, cosi vedrai come la forma dei segnali è ok, ma con lo spostamento max non sempre ci troviamo. Un bacio, buona giornata. ---------------------------------------- AUTORE: 1635 DATA :06/12/2006 - 10:52:23 ---------------------------------------- File. Sorry, non l'ho allegato bene ---------------------------------------- AUTORE: 384 DATA :06/12/2006 - 11:28:49 ---------------------------------------- Ciao. Il fatto che la forma delle curve sia giusta a mio avviso conferma che eliminare la componente DC con un "filtro" come lo fai ora sia arbitrario ed è il motivo per cui trovi la curva di spostamento "calcolata" shiftata da quella misurata. Facendo una stima del DC su tutto il segnale, questa componente è ovviamente influenzata dall'andamento del segnale stesso e quindi cambia di volta in volta. Se l'accelerometro ha un valore DC in uscita quando è in riposo (accel=0), è quello che devi sottrare al segnale e niente altro. Anche facendo cosí potresti trovare le curve shiftate, ma questo shift sará dato dalla posizione iniziale. Se lo fai sulla carta, vedi che ad ogni integrazione "compare" una costante che viene determinata dalle condizioni limite (o frontiera che dir si voglia). Per il resto il segnale mi sembra abbastanza pulito. ---------------------------------------- AUTORE: 247 DATA :06/12/2006 - 14:33:01 ---------------------------------------- Ciao, [quote="gyc":2k746ot4]Se l'accelerometro ha un valore DC in uscita quando è in riposo (accel=0), è quello che devi sottrare al segnale e niente altro. [/quote:2k746ot4] Perfettamente d'accordo, se lo stumento soffre di un errore sistematico a riposo, questo va sottratto come un'offset a tutte le misure effettuate prima di procedere all'interpretazione delle stesse. [quote="gyc":2k746ot4]Anche facendo cosí potresti trovare le curve shiftate, ma questo shift sará dato dalla posizione iniziale. [/quote:2k746ot4] Io spero ovviamente che tu non stia facendo un'errore simile, se vuoi poter confrontare le due misure direttamente su uno medesimo grafico devi iniziare le stesse da una situazione di riposo ed equilibrio per la quale entrambi i sensori misurano "zero", nei tuoi grafici infatti si nota che la posizione data per integrazione al tempo zero ha già ampiezza diversa da zero..impossibile. Per evitare errori sistematici sulla misura di accelerazione quindi togli come detto sopra il possibile offset presente a strumento fermo mentre per il sensore di posizione elimina il valore dello spostamento iniziale rilevato:. Potresti anche confrontare le letture dei due strumenti utilizzando un grafico di velocità rilevata, integrando una volta di meno l'accellerometro e derivando il sensore di posizione. Utilizzerei eventuali filtraggi solo nel caso in cui ricercassi precisioni molto elevate ma per farlo devi conoscere a fondo la meccanica del sensore d'acc. BYE. ---------------------------------------- ================================================================================ interfacciare vecchio generatore tensione ================================================================================ AUTORE: 1317 DATA :04/12/2006 - 16:53:52 ---------------------------------------- ciao a tutti.Ho un vecchio generatore Heinzinger dotato di GPIB. Sto cercando di comunicare con il VI labview_GPIB.vi ma il messaggio di errore ricorrente è "EDVR:error connecting to driver o device". L'unica cosa che ho potuto fare è controllare che gli indirizzi fossero uguali, ma mi è impossibile comprendere il manuale di interfaccia di cui vi allego una copia. AIUTATEMI......!!!!!!grazie ---------------------------------------- AUTORE: 384 DATA :05/12/2006 - 08:52:44 ---------------------------------------- Credo che quell'errore si dovuto al fatto che non hai i driver GPIB installati. Riprendi i CD del NI-DAQ ed installa i driver NI-488 [b:1xjt53nz]e[/b:1xjt53nz] VISA (se non sono già installati). ---------------------------------------- AUTORE: 1317 DATA :05/12/2006 - 10:07:56 ---------------------------------------- la GPIB funziona con l'oscilloscopio e il picoamperometro.quindi non dovrebbe essere quella!!..non potrebbe essere dovuta a qualche parametro mancante nella porta 488 del generatore di tensione?..comuqnue grazie mille ---------------------------------------- AUTORE: 645 DATA :05/12/2006 - 10:28:54 ---------------------------------------- Qualche pagina sull'argomento: http://digital.ni.com/public.nsf/allkb/ ... 9f0043b0a9 , http://search.ni.com/nisearch/nisearchs ... ection:cms)+%2B(language:en+nilanguage:en+nilanguage:english)+-docstatus:obsolete&cluster=true&q=EDVR ... ---------------------------------------- AUTORE: 645 DATA :05/12/2006 - 10:29:40 ---------------------------------------- [quote="MagicBotolo":3kik6ba6]Qualche pagina sull'argomento: http://digital.ni.com/public.nsf/allkb/ ... 9f0043b0a9 , www.ni.com con ricerca "EDVR" ...[/quote:3kik6ba6] ---------------------------------------- AUTORE: 645 DATA :05/12/2006 - 10:30:15 ---------------------------------------- Scusate ho fatto un po' di confusione... ---------------------------------------- ================================================================================ SIMULAZIONE ENCODER ================================================================================ AUTORE: 1463 DATA :04/12/2006 - 18:13:43 ---------------------------------------- Ciaooo!!! E scusate l'ennesimo disturbo.... Devo acquisire con una scheda pci 6220 il segnale proveniente da un encoder, il quale mi indica(quando c'ho uno sfasamento in anticipo del canale A su B, o viceversa) il valore acqusito di rotazione. Volevo simulare questo (non avendo la scheda sul PC) attraverso un canale virtuale. Ho creato la scheda virtuale attraverso il Measurement&Automation. Aprendo e facendo girare il file allegato (un esempio di LV), non cambia mai il campo DATA. Come se la simulazione non avvenisse. Come posso fare a simulare un encoder in cui vedo che tale valore si incrementa o decrementa a seconda che il segnale di A sia in anticipo/ritardo su B?! GRAZIEEEE!!!!!! P. ---------------------------------------- ================================================================================ Structures ================================================================================ AUTORE: 955 DATA :05/12/2006 - 10:34:14 ---------------------------------------- Cerco di spiegarla in maniera semplice o almeno ci provo \":roll:\" Genero un segnale. Utilizzo un Tone e Noise generator con armoniche passate da una tabella inseriti in un while che si ferma col semplice pulsantino di stop. Ora vorrei ad esempio generare 20 periodi e questo lo posso fare modificando i parametri di campionamento Fs , #s e vorrei inoltre che quando ho finito di generare(ovvero quando ho premuto stop) venga effettuata la sincronizzazione di ad esempio 10 periodi di presi ad esempio a partire dal 5 generato. Come faccio a generare prima e sincronizzare poi senza che quando premo stop del while tutto il programma si blocchi? ---------------------------------------- AUTORE: 927 DATA :05/12/2006 - 10:58:11 ---------------------------------------- Non è molto chiaro \":roll:\" Quando premi stop del while, si ferma il while, non il programma... Dopodichè puoi fare quello che vuoi con i cavi che escono dal while. Veramente non serve nemmeno il while, visto che al Tones e Noise puoi dire direttamente quanti campioni vuoi! E cos'è questa sincronizzazione? Nel senso che vuoi estrarre i campioni dal 5 al 15? Un semplice Array Subset? ---------------------------------------- AUTORE: 955 DATA :05/12/2006 - 12:20:28 ---------------------------------------- allora in pratica quello che volevo era questo: avvio la generazione, stoppo la generazione, inizio la sincronizzazione del segnale col trigger, stoppo tutto il processo. In pratica l'ho fatto utilizzando uno stack sequence con 2 sequenze. nella prima ho messo un while che mi fa la generazione nella seconda un while che mi fa la sincronizzazione. ora quello che dovrei fare è effettuare la FFT del segnale a partire dal 5 periodo fino al 15. Sapendo che in uscita dal trigger creato da me ho un array in cui ho inserito la posizione degli attraversamenti per lo zero (sarà un array che conterrà parametri del tipo 0, 11,21,31 etc etc) come faccio a dire al lavbiew effettuami la FFT dal 5 periodo e fermati al 15esimo? spero sia chiaro \":roll:\" ---------------------------------------- AUTORE: 1533 DATA :05/12/2006 - 21:01:05 ---------------------------------------- niente? \":roll:\" dai raga vi prego aiutatemi ---------------------------------------- AUTORE: 384 DATA :06/12/2006 - 07:48:40 ---------------------------------------- Come diceva Snam, non hai bisogno di un while per generare il segnale: lo puoi fare di un solo colpo impostando i parametri nel blocco generatore. Poi, avendo l'array dei dati originali, e quello degli indici dei zero-crossing, usa un "array subset" per estrarre dai dati originali quelli compresi fra gli indici che vuoi. Questo sub-array lo dai in pasto alla FFT. Perdonami se mi sembra molto semplice. Infatti ho il timore di non aver capito quale sia il tuo vero problema. ---------------------------------------- AUTORE: 955 DATA :06/12/2006 - 08:57:24 ---------------------------------------- si in mattinata a mente fresca ci ho pensato e l'ho pensato proprio come avevi suggerito te gyc. La stanchezza fa brutti effetti \":D\" quanto al ciclo in pratica devo metterlo perchè mi serve dopo per bloccare acquisizione/generazione e per non fargli effettuare in simultanea la sincronizzazione o almeno così mi è stato chiesto \":roll:\" ---------------------------------------- AUTORE: 955 DATA :11/12/2006 - 10:36:31 ---------------------------------------- mi sembra che questo vi non funzioni bene...in pratica non mi trovo con la risoluzione quando effettuo la FFT...potreste dargli un'occhiata? grazie ---------------------------------------- AUTORE: 645 DATA :11/12/2006 - 10:55:44 ---------------------------------------- Ho provato a guardare il tuo VI ma manca il subVI che si occupa del trigger (o almeno penso... dal nome...). Vediamo se ho capito: tu vuoi generare un segnale con certe aromniche superiori alla fondamentale (tabella di sinistra) e sporcare il segnale con ulteriori armoniche che specifichi tu (tabella di destra). Poi, in seguito ad un segnale di trigger, vuoi prendere i campioni generati, scartarne alcuni e considerare solo quelli tra un periodo iniziale e un periodo finale (per esempio: generi 20 periodi e poi consideri solo quelli tra il quinto e il quindicesimo). Giusto? Poi ho qualche dubbio: con "sincronizzare" intendi che nello schermo del Waveform Graph vuoi visualizzare solo i periodi selezionati? ---------------------------------------- AUTORE: 955 DATA :11/12/2006 - 11:06:39 ---------------------------------------- [quote:2uy6pxdt] Vediamo se ho capito: tu vuoi generare un segnale con certe aromniche superiori alla fondamentale (tabella di sinistra) e sporcare il segnale con ulteriori armoniche che specifichi tu (tabella di destra). Poi, in seguito ad un segnale di trigger, vuoi prendere i campioni generati, scartarne alcuni e considerare solo quelli tra un periodo iniziale e un periodo finale (per esempio: generi 20 periodi e poi consideri solo quelli tra il quinto e il quindicesimo). Giusto? [/quote:2uy6pxdt] esatto \":D\" [quote:2uy6pxdt] con "sincronizzare" intendi che nello schermo del Waveform Graph vuoi visualizzare solo i periodi selezionati?[/quote:2uy6pxdt] no il waveforme l'ho messo tanto per visualizzare il segnale ma non deve visualizzare il segnale sincronizzato. quando effettuo la FFT credo mi dia un errore di risoluzione sulla frequenza. [quote:2uy6pxdt]manca il subVI che si occupa del trigger[/quote:2uy6pxdt] pensavo che lo aggiungesse in automatico...scusa \":(\" te lo allego ora cmq ---------------------------------------- AUTORE: 955 DATA :11/12/2006 - 12:14:54 ---------------------------------------- allora io quello che ho notato è che se effettuo la FFT sul segnale prima della triggherizzazione questa mi viene bene ma se la effettuo sui periodi su cui ho scelto di farla non funziona + e mi da questo errore di risoluzione... ---------------------------------------- AUTORE: 955 DATA :11/12/2006 - 13:13:04 ---------------------------------------- bah io mi son convinto che sia un problema del blocchettino FFT del labview perchè l'errore di risoluzione c'è anche prima che sincronizzo il segnale \":roll:\" se volessi realizzare io il blocco fft sapreste darmi qualche indicazione su come si fa? grazie ---------------------------------------- AUTORE: 384 DATA :11/12/2006 - 15:11:33 ---------------------------------------- Mi dispiace, non ho LV 8.x installato! \":wink:\" Se li converti in 7.1 proverò a darci un'occhiata; non subito perchè saró fuori per lavoro nei prossimi giorni. ---------------------------------------- AUTORE: 955 DATA :11/12/2006 - 15:31:07 ---------------------------------------- prova così \":roll:\" ---------------------------------------- AUTORE: 384 DATA :11/12/2006 - 16:03:58 ---------------------------------------- [quote="martinmistere":3g7y5h1h]bah io mi son convinto che sia un problema del blocchettino FFT del labview perchè l'errore di risoluzione c'è anche prima che sincronizzo il segnale \":roll:\" [/quote:3g7y5h1h] Mi sembra molto strano! Io uso queste funzioni e non mi è mai successo un errore. Che codice di errore esce? [quote="martinmistere":3g7y5h1h] se volessi realizzare io il blocco fft sapreste darmi qualche indicazione su come si fa?[/quote:3g7y5h1h] Se proprio vuoi, puoi partire direttamente dalla formula della [url=http://en.wikipedia.org/wiki/Discrete_Fourier_transform:3g7y5h1h]DFT[/url:3g7y5h1h]; anche se è meno efficiente, è molto semplice da implementare. [url=http://en.wikipedia.org/wiki/Cooley-Tukey_FFT_algorithm:3g7y5h1h]L'algoritmo per la FFT[/url:3g7y5h1h], svilupato da Cooley & Tukey nel 1965, è molto efficiente (anzi, è il più efficiente) ma è anche parecchio più difficile da implementare. Io ti sconsiglierei di provare. Per quanto riguarda il tuo vi, visto così (cioè, un'immagine) e non potendo farlo girare, sembrerebbe tutto a posto. L'unica cosa è che io ricreerei la waveform prima della FFT con t0=0 ed i valori dt e Y, anzichè rimpiazzare solo il Y e il dt. ---------------------------------------- AUTORE: 1533 DATA :11/12/2006 - 20:07:02 ---------------------------------------- ok gyc domattina li provo perchè sono dovuto scappare dall'univ per un malore. domani mi riprendo e provo a rifarlo. \":wink:\" grazie ---------------------------------------- AUTORE: 955 DATA :13/12/2006 - 08:26:45 ---------------------------------------- gyc volendo ricreare la DFT come si fa in labview? potresti farmi una bozza gentilmente? grazie ---------------------------------------- AUTORE: 645 DATA :13/12/2006 - 08:57:56 ---------------------------------------- Ma a me si impalla il VI quando lo mando in esecuzione... ---------------------------------------- AUTORE: 955 DATA :13/12/2006 - 09:18:31 ---------------------------------------- come si impalla? \":roll:\" allora metti i parametri premi stop acquisizione clicca su trigger on e quando hai finito premi stop \":wink:\" a me non si è mai impallato \":roll:\" ---------------------------------------- AUTORE: 955 DATA :13/12/2006 - 09:20:58 ---------------------------------------- avrei trovato in rete una FFT già implementata...però non riesco a capire perchè è fatta così \":roll:\" e poi soprattutto quando metto a video il segnale la FFT risulta dimezzata di 5 \":roll:\" ---------------------------------------- AUTORE: 955 DATA :13/12/2006 - 09:34:09 ---------------------------------------- [quote="gyc":2syjkuyg] L'unica cosa è che io ricreerei la waveform prima della FFT con t0=0 ed i valori dt e Y, anzichè rimpiazzare solo il Y e il dt.[/quote:2syjkuyg] gyc come fai a porre t0=0? io prima della FFT nel build waveform ho Y, dt ora se ci aggiungo t0 e faccio create constant non la riesco mai a porre a zero ma escono tutta una serie di parametri del tipo 00.00.00,000 e DD/MM/YYYY e lasciandoli così mi rimane comunque un errore... \":roll:\" ---------------------------------------- AUTORE: 955 DATA :13/12/2006 - 11:44:58 ---------------------------------------- ok risolto. se puo' interessare vi posto la mia soluzione \":wink:\" ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:42:04 ---------------------------------------- 8.0... arghhhh \":o\" ---------------------------------------- AUTORE: 955 DATA :14/12/2006 - 15:49:34 ---------------------------------------- eh gyc devi passare alla 8 \":)\" però domattina provo a farla in lab 7 ok? \":wink:\" se non ci riesco ti posto una jpeg \":)\" grazie ancora per l'aiuto ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:52:19 ---------------------------------------- [quote="martinmistere":36pmqunh]eh gyc devi passare alla 8 \":)\" [/quote:36pmqunh] No, no e no!!!! \":twisted:\" \":wink:\" ---------------------------------------- AUTORE: 955 DATA :14/12/2006 - 16:13:02 ---------------------------------------- non sono riuscito a trovare il blocchetto FFT che c'è nella versione 8 per cui ti posto l'immagine \":wink:\" [url=http://img292.imageshack.us/my.php?image=fftef0.jpg:2epooh0m][img:2epooh0m]http://img292.imageshack.us/img292/3271/fftef0.th.jpg[/img:2epooh0m][/url:2epooh0m] speros i capisca qualcosa... \":roll:\" ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 16:31:17 ---------------------------------------- Va bene. Ma secondo me stai facendo "a mano" ciò che con il blocco 'FFT Spectrum (Mag-Phase)' fai di un colpo solo (compreso scalare la fase in gradi e l'ampiezza in lineare o dB)! ---------------------------------------- AUTORE: 1533 DATA :15/12/2006 - 05:34:01 ---------------------------------------- [quote="gyc":35jg36px]Va bene. Ma secondo me stai facendo "a mano" ciò che con il blocco 'FFT Spectrum (Mag-Phase)' fai di un colpo solo (compreso scalare la fase in gradi e l'ampiezza in lineare o dB)![/quote:35jg36px] si ma il blocco FFT mag e phase del labview non so perchè ma introduce un errore nel grafico. Ad esempio nel mio è dove dovrebbe essere ovvero un triangolo che parte da 45 ha picco in 50 e finisce in 55..mentre quello del labview lo fa partire da 40 e lo fa finire a 60 sempre con picco in 50...sinceramente non sono riuscito a spiegarmi questa cosa...e ciò che è strano è che ho avuto difficoltà anche per il trigger che ho dovuto rifare perchè mi introduceva anche lui degli errori "impercettibile" ma cmq presenti \":roll:\" ---------------------------------------- AUTORE: 384 DATA :15/12/2006 - 08:25:22 ---------------------------------------- Lo trovo strano che ci possa essere un "bacco" del genere in una funzione cosí fondamentale e che imagino sia stata "stracollaudata" sia da NI che da tantissimi programmatori al mondo. A me sembra un'errore di scala. Imagino che tua abbia verificato tutti i dt e t0. A proposito di t0, da quanto il t0 è diventato un "timestamp" esiste un convertitore da numerio a time stamp che si può usare. Esiste anche la constante che quando si inserisce nel diagrama è zero e viene visualizzata come hai descritto qualche 'post' fa. ---------------------------------------- ================================================================================ Instrument driver da 7.1 a 7.0 ================================================================================ AUTORE: 368 DATA :07/12/2006 - 11:53:23 ---------------------------------------- Salve, è possibile convertire il driver per l'Agilent N3300 ad una versione labview precedente? Io ho la 7.0 sul sito della national c'è solo il driver per la7.1. Se trovo qualcuno che ha la 7.1, come posso convrtire tutta la libreria per la versione 7.0? Grazie \":|\" ---------------------------------------- ================================================================================ Buffer per generazioni d'onda ================================================================================ AUTORE: 1033 DATA :07/12/2006 - 13:08:45 ---------------------------------------- Ciao, ho un problema su come decidere la dimensione del buffer da allocare quando ho la generazione contemporanea almeno due onde con frequenza diversa. Il buffer dovrebbe essere dimensionato in modo tale da contenere almeno un ciclo della frequenza minore ed un numero intero di cicli per le onde a frequenze maggiori. Il problema è che per esempio se due frequenze differiscono di poco dovrei avere un buffer enorme per riuscire a contenere un numero intero di cicli di entrembe le onde. Avete dei suggerimenti? Potrei utilizzare buffer di dimensioni diverse, ciascuno per ogni onda? Grazie per il supporto. ---------------------------------------- AUTORE: 927 DATA :15/12/2006 - 15:23:56 ---------------------------------------- Non è molto chiaro... Ti riferisci alla generazione di onde tramite la tavolozza Singal Processing / Waveform Generation? Se si, non devi allocare nessun "buffer", ti riferisci al numero di campioni da generare? Puoi giocare come vuoi col parametro "Sampling Info", ma cosa ci devi fare con queste onde? ---------------------------------------- ================================================================================ Problemi con subVi ================================================================================ AUTORE: 1628 DATA :07/12/2006 - 14:40:52 ---------------------------------------- ciao, io vorrei,premendo un bottone sul mio front panel principale, visualizzare il front panel di un subVi per impostare, ad esempio,dei settings.una volta impostati devo chiudere il front panel del subVi e tornare al MainVi. Cè qualcuno che mi può dare qualche consiglio su come poter realizzare questa cosa? ---------------------------------------- AUTORE: 247 DATA :07/12/2006 - 15:33:56 ---------------------------------------- Ciao, prova a guardare l'esempio di questo [url=http://www.ilvg.it/forum/viewtopic.php?t=539&start=0&postdays=0&postorder=asc&highlight=:1ihi3njc]vecchio post[/url:1ihi3njc], più in generale cerca in questo sito le discussioni sulle finestre popup. BYE. ---------------------------------------- AUTORE: 1628 DATA :07/12/2006 - 16:29:41 ---------------------------------------- allora, io sono riuscito ad avere il front panel del subVi cliccando sul bottone del MainVi....ora il problema è che dopo aver settato la mia ROI sull 'immagine acquisita e premendo return per tornare al MainVi non riesco ad uscire dal subVi. Ti allego i miei due VI per darti un 'idea di come sto procedendo... ---------------------------------------- AUTORE: 927 DATA :11/12/2006 - 09:19:14 ---------------------------------------- Negli allegati mancano tutti i subVI... Comunque, prova a mettere nel VI a popup, dopo l'esecuzione del ciclo, un Invoke Node avente come Classe "VI" e come Metodo "Front Panel.Close" ---------------------------------------- ================================================================================ Update del front panel di un VI hidden ================================================================================ AUTORE: 384 DATA :07/12/2006 - 18:03:10 ---------------------------------------- Ciao ragazzi. C'è un problemino che per ora sfugge alle mie "grinfie"! Qualcuno sa se l'aggiornamento dei front panel subisce ritardi o limitazioni quando è nascosto oppure minimizzato mentre il relativo vi gira in background? ---------------------------------------- AUTORE: 247 DATA :07/12/2006 - 18:39:43 ---------------------------------------- Ciao, da quello che ne sò se un front panel è minimizzato non viene proprio aggiornato, graficamente parlando, quindi hai un miglioramento delle prestazioni proprio perchè non devi occuparti del suo update. Discorso opposto se il VI è nascosto o parzialmente nascosto, finestre sovrapposte comportano un maggior carico di calcolo grafico per la loro visualizzazione ed update rispetto ovviamente al VI minimizzato ma anche alle due finestre non sovrapposte. BYE. ---------------------------------------- AUTORE: 384 DATA :07/12/2006 - 20:31:25 ---------------------------------------- Questo è appunto il mio problema, cioè, almeno per ora cosí credo. Io ho un vi che fa solo il display di info che gli arriva tramite delle code, quindi io ho bisogno che aggiorni il suo FP anche quando è nascosto in modo che quando l'utente lo visualizza l'informazione sia tutta sul display. Quello che mi ha fatto venire dei dubbi è che sembrerebbe che non sempre l'informazione mostrata corrisponda a quanto effettivamente acquisito e salvato su disco e quindi trasmesso al vi. E ancora non sono riuscito a capire da dove arriva questo "disallineamento", perchè, ne quando succede. ---------------------------------------- ================================================================================ usare api di sistema ================================================================================ AUTORE: 1605 DATA :08/12/2006 - 16:34:55 ---------------------------------------- Buongiorno a tutti come faccio in CVI ad usar eun api di sistema contenuya nel kernel32 a cui devo passare un parametro? ho provato ad usare la funzione hin = LoadExternalModule ("C:\\Programmi\\Microsoft Visual Studio .NET 2003\\Vc7\\lib\\kernel32.lib"); e non ottengo errori m,a come faccio a duirgli la funzione che voglio usare? nel mio caso e "sleep" a cui devo passare una varibile int grazie tante ---------------------------------------- ================================================================================ Trovare il punto di massimo di una frf ================================================================================ AUTORE: 1633 DATA :08/12/2006 - 20:11:54 ---------------------------------------- Salve ragazzi, sono agli inizi...scusate la domanda, ma ci sto provando da un po' Ho una Curva FRF che mostra dei picchi....come faccio a sapere il valore esatto di ascissa e ordinata per ciascuno di essi?? Grazie mille ---------------------------------------- AUTORE: 129 DATA :08/12/2006 - 21:21:52 ---------------------------------------- Non so cosa sia una frf, ma comunque immagino la tratti sottofoma di array, quindi puoi utilizzare la funzione Array Max & Min dalla palette array. Ti restituisce proprio il valore max e la sua posizione nell'array ; se questo array lo rappresenti con un grafico l'indice dell'array è rappresentato sulle X mentre i suoi valori sulle Y. Se invece hai X e Y su due array separati, puoi usare la funzione min e max sull'array delle Y, quindi l'indice dell'elemento lo riutilizzi con index array per estrarre l'iesimo elemento dell'array X e così ti ritrovi con la tua X,Y del punto YMAX. Ti allego l'esempio. ---------------------------------------- AUTORE: 1633 DATA :10/12/2006 - 09:02:35 ---------------------------------------- Grazie mille...proverò come hai detto ---------------------------------------- AUTORE: 384 DATA :11/12/2006 - 10:03:13 ---------------------------------------- Guarda anche quanto discusso in [url=http://www.ilvg.it/forum/viewtopic.php?p=10442#10442:1bxk102j]questo topic[/url:1bxk102j], in particolare il file ".zip" che vi ho allegato. ---------------------------------------- ================================================================================ Errore imprevisto dopo disinstallazione LABVIEW. ================================================================================ AUTORE: 1647 DATA :09/12/2006 - 16:52:28 ---------------------------------------- Salve a tutti,ho disinstallato dal pc la versione 6 di labview per lasciare soltanto la 7.1 installata. Il problema riscontrato subito dopo la disinstallazione è che gli schermetti della connessione ad internet non sono + visibili ed inoltre quando clicco su una qualsiasi connessione in Connessioni di rete mi da ERRORE IMPREVISTO non facendomi accedere alle proprietà delle connessioni. Il problema si risolve nel momento in cui reinstallo il labview. La connessione in entrambi i casi funziona ma ci deve essere qualche errore nella procedura automatica di disinstallazione del software. Qualcosa che mi va a cambiare nelle proprietà dei servizi. Se avete già riscontrato questo problema e lo avete risolto potete darmi qualche dritta? A cosa è dovuto?Dove devo intervenire? Uso windows xp professional sp2. ---------------------------------------- AUTORE: 1647 DATA :09/12/2006 - 17:03:53 ---------------------------------------- Il problema è risolvibile dando un'occhiata qui... http://support.microsoft.com/kb/824923/en-us ---------------------------------------- ================================================================================ labview oo: ci sono tutorial? ================================================================================ AUTORE: 123 DATA :09/12/2006 - 19:23:13 ---------------------------------------- Sapete se in giro ci sono dei tutorial con esempi per imparare a programmare in labview oo? ---------------------------------------- AUTORE: 129 DATA :10/12/2006 - 06:39:13 ---------------------------------------- Intendi OO integrato nella versione labview 8.2? Una ricerca su google con GOOP labview, produce una buona lista di risorse. Nello specifico sulla [url=http://zone.ni.com/devzone/cda/tut/p/id/3391:1b1qbk5a]developer zone[/url:1b1qbk5a] trovi qualche tutorial. Se puoi, sarei interessato a sapere le tue impressioni sul GOOP, grazie Nic. ---------------------------------------- AUTORE: 247 DATA :10/12/2006 - 17:20:55 ---------------------------------------- Ciao, la programmazione OOP ufficialmente integrata in LabVIEW è veramente solo agli esordi quindi se vuoi avere un'idea di come implementare codice orientato agli oggetti in LabVIEW sei costretto a seguire gli esempi presenti in rete e riferiti a GOOP. Stai comunque molto attento a non perdere di vista il fatto che GOOP e LabVIEW OOP non sono la stessa cosa! Scelte specifiche di interpretazione del paradigma della programmazione ad oggetti possono differenziarli di molto. Una paper sulle scelte fatte da NI a questo riguardo è presente a [url=http://zone.ni.com/devzone/cda/tut/p/id/3574:3o026zgf]questo indirizzo[/url:3o026zgf]. Quello che ti suggerirei quindi, e che sto facendo anche io \";-)\", è di lasciar perdere il GOOP, rinfrescarti le conoscenze di programmazione oop con testi "gererali" sull'argomento e studiarti molto bene come NI ha deciso di inserire l'oop in LabVIEW per calare la teoria generale nel particolare linguaggio. Interessanti discussioni sull'oop in LabVIEW sono presenti su LAVA! BYE. ---------------------------------------- ================================================================================ llb non associate a labview ================================================================================ AUTORE: 129 DATA :10/12/2006 - 06:48:02 ---------------------------------------- Ho installato le versioni di labview dalla 7.0 alla 8.2 in sequenza sul mio PC e mi è successa una cosa un pò strana. Quando apro un file .llb invece di aprirmelo con Labview me lo apre con un programma per fotoritocco. Ovviamente ho provato a vedere le associazioni per modificarle, ma nell'elenco delle applicazioni da associare labview non figura; provo con Browse per forzare con labview.exe, ma non me lo associa. Vi è capitato anche a voi? Devo reinstallare labview di nuovo? Grazie, Nicola ---------------------------------------- AUTORE: 487 DATA :11/12/2006 - 07:20:13 ---------------------------------------- Ciao Nicola, io ho installato le versioni di Labview 7.1, 8.0 e 8.2 ed il problema con le llb non l'ho riscontrato. Forse ti si è verificato un errore durante l'installazione: io proverei ad reinstallare l'ultima versione di labview. ---------------------------------------- AUTORE: 927 DATA :11/12/2006 - 09:01:09 ---------------------------------------- Nelle opzioni di Labviù, sotto "Environment", c'è "Enable windows explorer for LLB files (takes effect on computer restart)", è tutto in regola? Poi controlla che non sia quel bastardo del programma di fotoritocco che mantiene le associazioni \":wink:\" ---------------------------------------- AUTORE: 129 DATA :11/12/2006 - 14:22:12 ---------------------------------------- Grazie Snam, la tua dritta è stata proverbiale, togliendo la spunta dal "Enable windows explorer for LLB files (takes effect on computer restart)", ho risolto i rpobelma. Mi hai risolto una pesante disistallazione, e dire che ne ho installati di labviù... Ma non si finisce mai di imparare, \"8)\" Nic ---------------------------------------- AUTORE: 487 DATA :12/12/2006 - 07:26:05 ---------------------------------------- Non vorrei fare il menagramo, ma io ho l'opzione "Enable windows explorer for LLB files (takes effect on computer restart)" abilitata e non ho riscontrato alcun problema. Detto questo mi viene da pensare che il problema stia nel programma di fotoritocco e non in Labview. ---------------------------------------- AUTORE: 927 DATA :12/12/2006 - 08:08:36 ---------------------------------------- In effetti con "è tutto in regola?" io intendevo che doveva essere abilitata \":lol:\" Ma se dice che ora funziona bene, ssssssssh \":lol:\" ---------------------------------------- AUTORE: 129 DATA :12/12/2006 - 13:03:20 ---------------------------------------- E' vero, vi trovo molto attenti e mi fa piacere, avendo ottenuto un risultato soddisfacente disabilitando quella funzione, rimango in tacito fermo, in quanto mi sconvolgerebbe la vita dover andare a cercare le cause facendo disinstallazioni e o verifiche. Però sono convinto come voi che il problema derivi dal fotoritocco, anche a me in tutte le precedenti installazioni anche su diversi computer, non si è mai verificato nessun problema e ho sempre tenuto abilitato la funzione per windows explorer. \":wink:\" ---------------------------------------- ================================================================================ Find Zeroes ================================================================================ AUTORE: 1596 DATA :11/12/2006 - 09:42:52 ---------------------------------------- salve a tutti...dovrei trovare gli zeri di una funzione...il VI "find all zeroes of f(x)" vuole in ingresso la formula della funzione...io vorrei inserire in ingresso la forma d'onda acquisita da uno strumento...c' è qualcuno che può aiutarmi?! thanks!!! \":?\" ---------------------------------------- AUTORE: 1030 DATA :11/12/2006 - 11:12:55 ---------------------------------------- Ciao, puoi utilizzare la funzione "find all zeroes" solo se conosci la funzione analitica. Se però puoi acquisire dei dati dallo strumento vuol dire che hai un array di valori acquisiti dal quale puoi estrarre i tuoi zeri. ---------------------------------------- AUTORE: 955 DATA :11/12/2006 - 11:33:40 ---------------------------------------- puoi usare un trigger sincronizzando il segnale a zero ed effettuare così il conteggio ---------------------------------------- AUTORE: 927 DATA :11/12/2006 - 12:59:51 ---------------------------------------- Forse la funzione più comoda è "Threshold Peak Detector", sempre che tu l'abbia xchè non fa parte della versione base... Lasciando tutto a default, entra la Waveform ed esce l'array degli zeri. Problema: trova solo gli zeri "in salita" quindi devi lanciarla 2 volte, per il segnale normale e per il segnale negato. Inoltre ti dà sempre il primo campione anche se non è uno zero. ---------------------------------------- AUTORE: 1596 DATA :11/12/2006 - 21:47:35 ---------------------------------------- mark of life:sì è proprio così... martinmistere:potrebbe essere anche la soluzione ottimale...ma ora come ora non saprei dove metter mano...sono ancora all'inizio con il LABview! \":(\" snamprogetti:sì ce l'ho!grazie per il suggerimento...la proverò...se avrò problemi ti farò sapere. tutti:grazie per la celerità!!! ---------------------------------------- ================================================================================ web server help ================================================================================ AUTORE: 955 DATA :11/12/2006 - 11:56:11 ---------------------------------------- Nel realizzare il web server mi da questo errore semprong.it non reperibile ricontrollare il nome e riprovare di nuovo... sono andato in tools -> options-> web server configuration e ho messo la spunta su enable web server. poi sempre in tools -> options -> visible VIs -> c'è allow access poi tools -> options -> browser access -> c'è allowed view & controll. poi sono andato in tools -> web publishing tools e ho selezionato come VI name il nome del VI di cui voglio realizzare il web server...in cosa sbaglio? ---------------------------------------- AUTORE: 955 DATA :11/12/2006 - 11:58:00 ---------------------------------------- scusate il doppio post ma mi è saltata la rete e pensavo che non avesse inoltrato il messaggio. scusate ancora \":oops:\" ---------------------------------------- ================================================================================ Generazione Multiwaves DAQmx ================================================================================ AUTORE: 1033 DATA :11/12/2006 - 13:32:28 ---------------------------------------- Ciao, non avendo avuto alcuna risposta al mio precedente topic provo a proporre il problema in modo differente. Devo generare con una MIO una o più onde sui canali disponibili. Che approccio utilizzereste? Se utilizzo un solo task per tutti i canali devo gestire il clock rate ed il buffer size in modo che sia comune a tutti i canali. Ho provato ad utilizzare più task, uno per ogni canale. In questo modo speravo di poter gestire clock e buffer in modo indipendente tra i canali. Questo però non mi funziona. Qualcuno ha già sperimentato? Grazie ---------------------------------------- ================================================================================ Importazione di un'immagine ================================================================================ AUTORE: 1650 DATA :11/12/2006 - 15:05:54 ---------------------------------------- Come si fa a caricare un'immagine su cui poi effettuare delle elaborazioni? ---------------------------------------- AUTORE: 1030 DATA :11/12/2006 - 15:20:51 ---------------------------------------- Ciao Cosa intendi per elaborazione dell'immagine? Stai usando la libreria NI IMAQ Vision? ---------------------------------------- AUTORE: 1650 DATA :11/12/2006 - 16:01:39 ---------------------------------------- Ho un immagine e tramite labview devo fare delle misurazioni di distanze. Però devo fare in modo ke labview legga l'immagine. Su alcuni esempi (labview 7.1) come Color Matching Pattern c'è il pulsante "Carica file" (o qcs del genere) ma nn so come fare a riprodurlo sul mio file. Ho IMAQ ma nn sn molto esperta. Ho iniziato da poco... ---------------------------------------- AUTORE: 4 DATA :11/12/2006 - 16:17:32 ---------------------------------------- se hai IMAQ usa le funzione "Vision and Motion>>File>>read File" Se vuoi invece provare il tuo algoritmo di riconoscimento senza scrivere da subito codice in labview, ti consiglio di usare [url=http://www.ni.com/vision/vbai:yrxvy00q]Vision AI Builder[/url:yrxvy00q], molto comodo per capire come approcciare il problema visione ---------------------------------------- AUTORE: 1650 DATA :13/12/2006 - 09:40:09 ---------------------------------------- Ma come si accede alla funzione Vision and motion? Ho NI Imaq ma nn la trovo. Grazie ---------------------------------------- AUTORE: 1628 DATA :13/12/2006 - 09:56:53 ---------------------------------------- clicca con il tasto destro sul block diagram del tuo vi...la trovi li... ---------------------------------------- AUTORE: 1650 DATA :13/12/2006 - 10:13:52 ---------------------------------------- Abbiamo trovato le funzioni di imaq vision, ma l'immagine per essere acquisita non deve prima essere presente sul front panel? Negli esempi abbbiamo visto che l'immagine compare sul front panel ma non abbiamo capito come si inserisce l'immagine dopo aver selezionato la funzione (All Controls - Vision - Image) ---------------------------------------- AUTORE: 1628 DATA :13/12/2006 - 10:21:15 ---------------------------------------- devi creare una nuova immagine con IMAQ Create(tasto destro sul block diagram-vision and motion-vision utilities-image management) ---------------------------------------- AUTORE: 1628 DATA :13/12/2006 - 10:22:18 ---------------------------------------- ma l'immagine la vuoi aprire da file? ---------------------------------------- AUTORE: 1650 DATA :13/12/2006 - 10:23:45 ---------------------------------------- si ---------------------------------------- AUTORE: 1628 DATA :13/12/2006 - 10:30:42 ---------------------------------------- allora dopo aver trovato IMAQ Create devi risalire di un livello (rispetto a quello dove si trova Imaq Create) e andare in Files...qui trovi IMAQ Read File . Questo lo colleghi a IMAQ Create e imposti la path del tuo file...in uscita all IMAQ Read File metti un indicatore che ti mostrerà la tua immagine ---------------------------------------- AUTORE: 1650 DATA :13/12/2006 - 11:22:10 ---------------------------------------- ma prima IMAQ create e poi read file o viceversa? e l'indicatore come si mette? sempre sul block diagram? thank you ---------------------------------------- AUTORE: 1628 DATA :13/12/2006 - 11:37:27 ---------------------------------------- prova questo...l ho fatto in due secondi al volo ---------------------------------------- AUTORE: 1650 DATA :13/12/2006 - 11:51:05 ---------------------------------------- su labview 7.1 nn gira. Grazie lo stesso! ---------------------------------------- AUTORE: 1650 DATA :18/12/2006 - 09:48:11 ---------------------------------------- Come si passa da un'immagine in scala di grigi a una in bianco e nero? ---------------------------------------- AUTORE: 384 DATA :18/12/2006 - 16:34:56 ---------------------------------------- Questo processo si chiama binarizzazione e lo si consegue impostanto una soglia al di sotto di cui tutti i pixel diventano neri (zero) ed al di spora bianchi (uno). Segue il consiglio di Ale e usa il Vision Assistant. (Se hai NI Vision 7.0 o 7.1 te lo ritrovi installato sicuramente) É un'applicazione menu driven che permette di "giocare" con le immagini impostando dei "passi" di elaborazione. Alla fine si può salvare la sequenza creata anche come VI, il che è molto comodo per: 1)capire come usare NI-IMAQ da LabView 2)continuare lo sviluppo aggiungendo ulteriori dettagli ed integrando nella logica della propria applicazione ---------------------------------------- ================================================================================ 4 domande semplici ================================================================================ AUTORE: 1627 DATA :11/12/2006 - 17:45:08 ---------------------------------------- Ciao, mi chiamo Alessandro e sono un neo appassionato di Labview, volevo approfittare della vs competenza ponendovi delle domande 1)Labview 8.2 supporta ogni tipo di convertitore A/D ? 2)Se no quale posso usare spendendo poco ? 3)Stessa domanda per le sonde ( temperatura ) 4)Dove posso trovare esempi pratici di come si acquisiscono dati analogici in Labview ? GRAZIE DAVVERO ! ---------------------------------------- AUTORE: 1168 DATA :12/12/2006 - 07:19:25 ---------------------------------------- Beh... la faccenda è abbastanza complicata, ma molto semplice al tempo stesso: 1)LV8.2 supporta praticamente tutte le schede di acquisizione di tutti i produttori. Mi spiego meglio: se la scheda è una scheda National Instruments, allora è praticamente "trasparente" nel senso che il MAX la riconosce e poi la gestisci in modo banale tramite LV. Se è una scheda di terzre parti, è più complicato percheè devi trovare o scriverti il driver. (sempre che con convertitore A/D tu intendessi una scheda con tali capacità). 2&3) Per rispondere a queste domande bisogna capire un poco meglio quale è la tua applicazione. Quanti ingressi analogici ti servono? In che range? con che velocità di campionamento? Il catalogo NI è immenso. 4) Se hai già LabVIEW installato, clicca help->find examples. Oppure anche sul sito National. Sii un po' più chiaro su quello che vuoi fare, poi ti aiutiamo noi del forum! Ciao P! ---------------------------------------- AUTORE: 1030 DATA :12/12/2006 - 09:17:09 ---------------------------------------- Ciao prova a guardare questo link: http://zone.ni.com/devzone/cda/tut/p/id/3216 Per iniziare a sviluppare un'applicazione di acquisizione dati in LabVIEW è una buona linea guida. Alla prossima! ---------------------------------------- AUTORE: 1627 DATA :12/12/2006 - 20:56:40 ---------------------------------------- Innanzi tutto grazie per la disponibilità. La questione è questa: devo monitorare un locale adibito a libreria suddivisa in 8 zone. Per monitorare intendo temperatura e umidità relativa in tempo reale 24H su 24H. Questo locale dista circa 100 mt dalla ns control room, ma i ns computer sono collegati tramite rete locale.Quale è la soluzione migliore tenendo d'occhio i costi ? ---------------------------------------- AUTORE: 645 DATA :12/12/2006 - 22:07:32 ---------------------------------------- Potresti pensare una scheda di acquisizione dati collegata direttamente alla rete e comandabile attraverso il tuo pc dalla tua postazione... Solo che al momento non mi viene in mente un esempio preciso! ---------------------------------------- AUTORE: 1168 DATA :13/12/2006 - 06:56:55 ---------------------------------------- Ti faccio un altro paio di domande: 1) Che tipo di trasduttore hai in mente di usare per temepratura ed umidità? I sensori sono amplificati o , ad esempio, vuoi usare semplicemtne una termocoppia per la temperatura? 2)Che accuratezza hai bisogno di raggiungere? 3)In ognuna delle 8 zone c'e' un PC? Lo so che avevo detto solo due, ma è per riuscire a fare ipotesi sul sistema.... Ciao P. ---------------------------------------- AUTORE: 1168 DATA :13/12/2006 - 07:24:45 ---------------------------------------- Per esempio, questo è un sensore combinato. http://www.thermosystems.it/ita/umidita.htm Ha le uscite 4 mA-20 mA e va semplicemtne alimentato. In questo caso puoi usare due scheda da 8 ingressi corrente tipo le NI PCI-6238. Però di sicuro in commercio esistono degli accrocchi che ti possono amplificare un po' il segnale e convertirlo on 0 V-10 V o simile. In questo caso ti basta una sola scheda con 16 ingressi single ended. Su 100m di cavo però tieni presente che comunque un po' di rumore da filtrare (anche via software) ci sarà. Non ho esperienza di segnali generati così lontano dal punto di acquisizione... aspetta comunque conferme da parte di altri. Ciao P! ---------------------------------------- AUTORE: 1627 DATA :13/12/2006 - 21:11:47 ---------------------------------------- Dunque, le caratteristiche della sonda da te segnalata suonano bene. Quello che però pensavo di chiederti è se secondo te è possibile assemblare il tutto ( pc, schede acquisizione e sonde ) nel locale interessato, e poi tramite rete comandare e monitorare il tutto da un pc posto nella control room. In questo caso non avrei problemi di distanze elevate e disturbi vari. Inoltre pensi sia necessario prevedere un'alimentazione da UPS ? Ciao e grazie ---------------------------------------- AUTORE: 1168 DATA :14/12/2006 - 06:56:42 ---------------------------------------- Ciao! Avere un pc nella stanza di controllo che agisce su altri PC è fattibile, devi solo capire come! \":-)\" Non ne ho idea, magari comincia un altra discussione sul forum "a tema". Avere 8 PC con 8 schede di acquisizione con almeno due ingressi in corrente, ti alza parecchio i costi. Per l'UPS, se non avete una linea privilegiata, è proprio il caso di metterlo. Poi sta a te decidere se quando manca la corrente inizio a spegnere tutti i PC oppure li tengo accesi il più possibile. Ciao P! ---------------------------------------- AUTORE: 645 DATA :14/12/2006 - 08:39:24 ---------------------------------------- Se usi LabView per controllare le schede hai la possibilità di comandare l'acquisizione via rete: quindi il pc di controllo può essere da un'altra parte purchè collegato alla stessa rete del pc di acquisizione (con le Traditional DAQ era facilissimo... con le DAQmx dovrebbe essere possibile ma non so come... al massimo puoi preparare un sistema di trasmissione dati via TCPIP). Ti consiglierei di confrontare i costi di un computer assemblato con schede varie e di una soluzione già pronta come possono essere quelle proposte da National (tipo SCXI o simili) o da altre ditte. ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:01:53 ---------------------------------------- Per acquisizione direttamente via ethernet, guardate su [url=http://www.labjack.com:3xoglztn]LabJack[/url:3xoglztn]. Sulla sinistra, nel menu cliccate su "DAQ devices" per i diversi modelli. Cliccando su "Sensors", troverete anche dei sensori di temperatura, umidità e anche una versione combinata. Un vantaggio è che danno le librerie di VI per LabView. ---------------------------------------- AUTORE: 1627 DATA :15/12/2006 - 20:59:40 ---------------------------------------- Penso proprio di dovermi documentare, e capire cosa e come farlo. Per il momento un grazie sentito a tutti voi. Ciao a presto ---------------------------------------- AUTORE: 129 DATA :15/12/2006 - 23:17:52 ---------------------------------------- Secondo me puoi andare su un prodotto [url=http://sine.ni.com/nips/cds/view/p/lang/it/nid/11485:2quapbz2]FieldPoint Ethernet[/url:2quapbz2]. ---------------------------------------- ================================================================================ non salva ================================================================================ AUTORE: 1368 DATA :12/12/2006 - 11:33:17 ---------------------------------------- ciao a tutti, e tutta la mattina che mi trovo sulla barra die titoli l asterisco, come se non salvasse. invece se chiudo e riapro il programma ha salavato tutto ma l asterisco non scompare. idee?? ---------------------------------------- AUTORE: 1368 DATA :13/12/2006 - 09:32:18 ---------------------------------------- quando vado in list unsaved changes mi da questi due avvisi 1) Object(s) modified on the front panel A front panel object was modified and might have changed the VI's data structure. 2) VI recompiled Changes to front panel data structure or block diagram data flow causes LabVIEW to recompile the VI, generating new execution code. ma io non ho piu modificato nulla. non vi viene in mente niente?? grazie ---------------------------------------- AUTORE: 1368 DATA :13/12/2006 - 09:56:04 ---------------------------------------- ho trovato il problema, avevo un array di indirizzi creato nel block diagram, come sotto VI, poi avevo creato un idicatore per permettere di collegarlo agli altri VI. ma nel Front Panel non so come sia successo avevo un altro array, ora per caso ho visto la differenza ho ricreato l indicatore e mi sparisce l asterisco e funziona. ma come mai non i dava errore?? ciao ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:09:29 ---------------------------------------- Perchè la trasformazione di un tipo di dati all'altro (il 'casting') è automatico. Io - per esperienze dure subite sulla mia pele - non permetto mai nei miei diagrammi il casting automatico. Tutte le volte che ci vedo dei "pallini grigi" vado a capire il perchè e ci metto dei "casters" specifici. E ogni tanto vengo ampiamente ripagato da questa scelta! ---------------------------------------- ================================================================================ Porte USB ================================================================================ AUTORE: 706 DATA :12/12/2006 - 11:46:02 ---------------------------------------- Ciao a tutti, Ho una richiesta da farvi: il mio problema riguarda i valori o bit che vengono passati a una determinata porta USB. Sapete come fare a vedere tai valori? Grazie, Francesco ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:13:09 ---------------------------------------- Per ora ho fatto pocche esperienze con le porte (i port, per i puristi \":wink:\" ) usb, ma le ho gestite con i blocchi VISA, praticamente come se fossero normali seriali. Oltre a questo, cosa intendi con [quote:1jnzkyrf] i valori o bit che vengono passati a una determinata porta USB. Sapete come fare a vedere tai valori?[/quote:1jnzkyrf] ---------------------------------------- AUTORE: 645 DATA :14/12/2006 - 16:03:15 ---------------------------------------- A me è capitato di lavorare con porte USB usando i blocchi VISA come se fossero porte seriali. Ti serve un programmino per "sniffare" i dati inviati e ricevuti attraverso la porta USB? Prova a guardare http://www.hhdsoftware.com/Products/hom ... nitor.html (non so come si usa ma puoi provarlo...) ---------------------------------------- ================================================================================ Cos'è il Trigger??? ================================================================================ AUTORE: 1633 DATA :12/12/2006 - 16:44:35 ---------------------------------------- Scusate ragazzi, volevo informazioni su cosa fosse esattamente il trigger e come potrebbe essere usato con labview per l'acquisizione di onde generate da vibrazioni di lastre piane. Potete consigliarmi una fonte?...non so, un libro o un sito che forniscano informazioni chiare? Nel caso aveste una copia elettronica, potreste mandarmela? Grazie mille a tutti ---------------------------------------- AUTORE: 1520 DATA :13/12/2006 - 08:28:51 ---------------------------------------- Il trigger in generale?? O come usarlo in Labview?? Il trigger in generale è un livello di segnale sul quale lo strumento di acquisizione si mette in ascolto. Una volta che il segnale supera il livello di trigger (in salita o in discesa in generale anche se è possibile pure impostare il verso) lo strumento campiona i dati. Questo in genere succede ogni volta che il segnale passa attraverso il valore di trigger anche se è possibile fare un'unica acquisizione. Matteo ---------------------------------------- AUTORE: 955 DATA :13/12/2006 - 08:35:16 ---------------------------------------- questo trigger conta i passaggi per lo zero ---------------------------------------- ================================================================================ problemi con l'acquisizione di un'immagine ================================================================================ AUTORE: 1628 DATA :13/12/2006 - 09:12:00 ---------------------------------------- ciao, ho notato che acquisendo un 'immagine tramite IEEE-1394 utilizzando il vision assistant o il vision builder riesco ad avere una buona qualità dell'immagine in live, senza subire il disturbo dai 50 Hz dei neon...il problema è che nel momento in cui io asporto il lavoro in labview l'acquisizione in live è disturbatissima... come mai? ---------------------------------------- AUTORE: 482 DATA :13/12/2006 - 12:38:50 ---------------------------------------- mmhh... ho avuto un problema simile...non so se puo' essere il tuo caso.. innanzitutto col max acquisiscial massimo della frequenza mentre con il vi dipende da come hai sviluppato l'aplicazione.. escludendo questo dato, io questo probelma l'avevo ed era dovuto dall'alimentatore. Non so per quale motivo me lo facesse solo in runtime e non nel max cmq... la mia telecamera aveva bisogno di un alimentazione a 12VDC e io sono andato bello bello a prendermi un alimentatore standard in un negozio e gliel'ho attaccato. Ho poi scoperto invece che questo 12VDC non era stabilizzato quindi mi faceva uscire 18V senza carico e non so quanti invece con la telecamera attaccata. Morale della favola, ho preso un alimentatore stabilizzato e il problema mi è sparito. ---------------------------------------- AUTORE: 1628 DATA :13/12/2006 - 14:14:27 ---------------------------------------- io l'alimentazione alla telecamera la fornisco tramite la porta firewire del computer...non cè un modo per settare le impostazioni della telecamera direttamente da labview?tipo frameRate.. ---------------------------------------- AUTORE: 482 DATA :14/12/2006 - 08:18:50 ---------------------------------------- credo proprio disi..manon ti so dire come \":cry:\" ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:37:43 ---------------------------------------- Ci sono tutte le funzioni nel NI-IMAQ for 1394 che sicuramente hai, altrimenti non potresti usare una simile telecamera. Quando apri una conessione alla telecamera, puoi settare tutti i parametri con il sempre e solito property node, che troverai anche nella palette del 1394. ---------------------------------------- ================================================================================ leggere e scrivere delle temperature su EIB bus ================================================================================ AUTORE: 1368 DATA :13/12/2006 - 11:21:34 ---------------------------------------- ciao a tutti, dovrei leggere e scrivere delle temperature di termostati dall EIB, e possibilie?? grazie ---------------------------------------- AUTORE: 838 DATA :13/12/2006 - 12:52:55 ---------------------------------------- mi sembra che esiste un opc server della eib da installare, e ti colleghi con lw come opc client tramite dsc o datasocket vado a memoria, ma non ne sono sicurissimo \":)\" ---------------------------------------- AUTORE: 1368 DATA :13/12/2006 - 13:31:37 ---------------------------------------- si si io lo uso gia ma solo per vedere gli stati delle lampadine, ora devo aggiungere le temperature ma non saprei come fare \":cry:\" ---------------------------------------- AUTORE: 838 DATA :13/12/2006 - 14:26:28 ---------------------------------------- cosa usi? l'ops server della eib con il dsc della ni? se è così, come vedi le lampadine dovresti vedere anche le temperature!!! basta importarle nel dsc di lw \":)\" ---------------------------------------- AUTORE: 1368 DATA :13/12/2006 - 14:32:50 ---------------------------------------- si ho anche il dsc ma siccome sto mettendo mano ad un progetto gia fatto che usa il datasocket non e cosi semplice, vorrei usare il dsc ma non so da dove partire e poi mi sa che l opc EIB-OPC-Server versione 1 non e compatibile con il dsc, sto aspettando che arrivi la versione 2. tu hai qualche esempio? ---------------------------------------- AUTORE: 838 DATA :13/12/2006 - 14:51:26 ---------------------------------------- no, sono solo stato a fare una prova alla siemens di padova loro mi hanno dato l'opc server con un loro progetto, io mi sono collegato con il mio portatile e con il dsc 7.1 ho ciucciato tutti i loro items senza problemi con il datasocket è molto più complesso, devi per prima cosa conoscere esattamente i nomi delle tag, poi cercare di linkarli direttamente, ma non ti so dire niente di più, ho sempre prefertio il dsc \":)\" ---------------------------------------- AUTORE: 1368 DATA :13/12/2006 - 14:55:08 ---------------------------------------- hai quell esempio?? perche ora che ho 1 oretta libera mi metto e provo con il dsc, pero quando vado a interrogare I/O non mi vede gli items, non capisco. grazie ---------------------------------------- AUTORE: 838 DATA :13/12/2006 - 15:42:58 ---------------------------------------- l'esempio non ce l'ho più dal dsc (7.1) devi fare import network tags, selezionare tra gli opc server installati sul tuo pc quello della eib, aprire ilsuo lenco di tags,selezionare e dare ok così ti importa automaticamente tutte le tag dall'opc poi le usi tranquillamente nel tuo applicativo con le read tag o write tag \":)\" ---------------------------------------- AUTORE: 1368 DATA :13/12/2006 - 15:58:00 ---------------------------------------- io seleziono l opc server ma non vedo i tag deve essere incompatibile sto opc server. ---------------------------------------- AUTORE: 838 DATA :13/12/2006 - 16:30:48 ---------------------------------------- ma è configurato sul tuo pc? l'opc server deve avere un minimo di impostazioni per funzionare, non penso sia un problema di incompatibilità ma piuttosto di settaggi cque purtroppo non ti posso aiutare così in dettaglio, ho fatto una prova al volo un'annetto fa e non mi ricordo quasi più niente della eib \":)\" ---------------------------------------- AUTORE: 1368 DATA :13/12/2006 - 16:37:44 ---------------------------------------- si certo e configurato con il datasocket funziona, ma io volevo passare al dsc per renderlo piu semplice. non so ---------------------------------------- AUTORE: 1368 DATA :21/12/2006 - 13:52:07 ---------------------------------------- ho creato due sotto vi per l acommunicazione in EIB in datasocket uno per i normali bit e uno per le temperature ma non riesco a farli andare insieme. vi pasto il codice come posso fare?? ---------------------------------------- ================================================================================ Parte Reale & Parte Immaginaria ================================================================================ AUTORE: 955 DATA :13/12/2006 - 12:19:13 ---------------------------------------- Sono sempre io ma ormai credo di essere alla fine (almeno spero \":oops:\" anche perchè mi spiace tantissimo intasarvi il forum e disturbarvi continuamente \":oops:\" ). Genero un segnale con tones & noise generator in cui inserisco delle armoniche da tabella (il circuito è sempre lo stesso) ora però[b:3ptoshgz] dopo[/b:3ptoshgz] la generazione devo aggiungere un "disturbo" del tipo H(j omega) = 2/3 * e^-pigreco/6 ovvero per ogni armonica devo creare una amplificazione/attenuazione e uno sfasamento. Avevo pensato di recuperare il segnale generato dal tones&noise mediante un Convert from Dynamic Data così da avere degli array ora però suppongo che per moltiplicare per 2/3 e sottrarre la fase di pigreco/6 al segnale originario dovrei scomporre l'array in parte reale e parte immaginaria o cmq in fase... giusto?...come si fa? ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:31:11 ---------------------------------------- Secondo me ti conviene aggiungere il rumore ai componenti PRIMA di generare il segnale "complessivo", per cosí dire. ---------------------------------------- ================================================================================ Task name errato ================================================================================ AUTORE: 595 DATA :13/12/2006 - 14:05:01 ---------------------------------------- Salve a tutti scusate la domanda semplice ma non mi ricordo come deve essere scritto il task che configura i canali di lettura di una scheda (field point nel mio caso)! per poterli leggere tutti credo sia ALL , per un canale sia Channel 1 per leggere soltanto due o più canali? Grazie ---------------------------------------- AUTORE: 487 DATA :14/12/2006 - 07:38:31 ---------------------------------------- Tramite il MAX puoi assegnere ai canali i nomi che preferisci per poi richiamarli in Labview. Inoltre puoi raggruppare i canali appartenenti ad un medesimo modulo del fieldpoint. La configurazione automatica del fieldpoint prevede i canali, chiamati coma "Channel n" (dove n è il numero del canale del modulo considerato), ed il gruppo "All" che racchiude tutti i canali presenti sul modulo. ---------------------------------------- AUTORE: 384 DATA :14/12/2006 - 15:45:03 ---------------------------------------- [quote="principiante":1yzxcv2t]Salve a tutti scusate la domanda semplice ma non mi ricordo come deve essere scritto il task che configura i canali di lettura di una scheda (field point nel mio caso)! per poterli leggere tutti credo sia ALL , per un canale sia Channel 1 per leggere soltanto due o più canali? Grazie[/quote:1yzxcv2t] Crea un array con i soli canali che ti interessano. L'output è un array con i valori nello stesso ordine. ---------------------------------------- ================================================================================ Array ================================================================================ AUTORE: 955 DATA :14/12/2006 - 12:36:09 ---------------------------------------- Domanda stupida ma non mi viene proprio \":roll:\" Ho due array uno a dimensione fissa N=1000 l'altro a dimensione variabile ma sicuramente più piccolo del primo (dipende dai dati che inserisco in una tabella). Il secondo array contiene dei parametri (ad esempio 50,150,250) ---------------------------------------- AUTORE: 955 DATA :14/12/2006 - 12:43:22 ---------------------------------------- a me serve che i parametri 50 , 150, 250 vengano memorizzati in varibili differenti così da poter poi effettuare il confronto in modo corretto \":roll:\" ---------------------------------------- AUTORE: 1427 DATA :14/12/2006 - 13:08:15 ---------------------------------------- [quote="martinmistere":atn2kn6h] Il problema è che non riesco ad estrarre i parametri del 2o array perchè non conoscendo la sua dimensione mi da errore nel ciclo for \":?\" come si fa? grazie \":wink:\"[/quote:atn2kn6h] non puoi banalmente usare il comando size per sapere le dimenzioni del secondo array e poi impostare il ciclo? Perche' le vuoi per forza salvare in variabili separate? ---------------------------------------- AUTORE: 955 DATA :14/12/2006 - 13:28:09 ---------------------------------------- eh no \":)\" devo memorizzarli in variabili differenti perchè devo confrontare ad esempio il valore del secondo array allo posizione 1 (ad esempio 50) per tutto il primo array e devo ricavarne l'indice nel primo array...poi secondo elemento del 2o vettore (ad esempo 150) e confrontarlo col primo array e ricavarne l'indice nel primo array e così via ---------------------------------------- AUTORE: 1165 DATA :14/12/2006 - 13:30:20 ---------------------------------------- la butto là così al volo: non è che puoi risolvere con l'autoindexing del ciclo For? Cioè lasciando scollegato il terminale N del ciclo For (quello per settare il numero di iterazioni) e saldando il filo dell'array direttamente sul bordo del ciclo, lasciando il tunnelling abilitato all'autoindexing, così come già viene per defaul da solo? In questa maniera il ciclo cicla un numero di volte esattamente pari alla cardinalità dell'Array in ingresso. Ciao, enr. ---------------------------------------- AUTORE: 955 DATA :14/12/2006 - 13:38:38 ---------------------------------------- il problema è che il secondo array è di dimensione 3 o superiore (insomma indefinito a priori) ma sicuramente + piccolo del primo array che è di dimensione 1000 ---------------------------------------- AUTORE: 1030 DATA :14/12/2006 - 14:00:34 ---------------------------------------- Ciao se hai 2 array di dimensioni diverse puoi utilizzare 2 for uno dentro l'altro indicizzandoli uno col primo array e uno col secondo. In questo modo confronti ogni elemento del primo array con ogni elemnto del secondo. Quando il confronto dice che sono uguali memorizzi l'indice che ti interessa. ciao ciao ---------------------------------------- AUTORE: 955 DATA :14/12/2006 - 14:05:53 ---------------------------------------- si infatti io ho usato un for esterno con dimensione pari al secondo array con un while interno in cui effettuo il confronto e quando trova il valore stoppa il while e torna nel for esterno \":wink:\" ora però memorizzio solo l'ultimo valore dell'indice come faccio a memorizzare gli altri? \":roll:\" ---------------------------------------- AUTORE: 1030 DATA :14/12/2006 - 14:12:29 ---------------------------------------- Devi crearti un array con il "build array" in cui inserisci via via gli indici che ti interessano. Devi usarlo in combinazione con uno "shift registry" sul ciclo while. ciao ---------------------------------------- AUTORE: 955 DATA :14/12/2006 - 14:15:44 ---------------------------------------- ho usato un insert into array nel ciclo for utilizzando lo shift register e gli ho dato in pasto come indice l'indice i del for e come new element l'indice del while va bene uguale? \":oops:\" ---------------------------------------- AUTORE: 1030 DATA :14/12/2006 - 14:30:20 ---------------------------------------- Se il risultato è quello che vuoi va bene. \":lol:\" Testalo con 2 array semplici con i quali puoi verificare i risultati anche ad occhio. ---------------------------------------- ================================================================================ testo scorrevole ================================================================================ AUTORE: 1427 DATA :14/12/2006 - 13:09:23 ---------------------------------------- E' possibile secondo voi impostare un testo che "scorra" in un loop dall'alto verso il basso? (tipo titoli di coda) ---------------------------------------- AUTORE: 838 DATA :14/12/2006 - 13:28:51 ---------------------------------------- mi sembra semplice, lo metti in un loop che cambia gli attributi di x,y tramite le proprety node \":D\" ---------------------------------------- AUTORE: 1137 DATA :15/12/2006 - 09:50:35 ---------------------------------------- Se utilizzi l'IMAQ, posso postare un vi che avevo fatto per realizzare un LED display scorrevole... Qualcuno piu' bravo di me probabilmente riuscira' a farlo anche senza chiamare le funzioni di IMAQ. ciao ---------------------------------------- AUTORE: 384 DATA :18/12/2006 - 08:05:44 ---------------------------------------- Posta, posta... \":wink:\" ---------------------------------------- ================================================================================ formattazione immagine nei report ================================================================================ AUTORE: 411 DATA :15/12/2006 - 13:43:10 ---------------------------------------- Salve, ho un problemino, dovrei realizzre un report di stampa in cui inserire un'immagine, ma la formattazione dell'immagine non mi permette di porre del testo a fianco all'immagine stessa. Qualcuno puoi darmi una dritta? ---------------------------------------- AUTORE: 838 DATA :15/12/2006 - 15:32:16 ---------------------------------------- mah, io una volta ho risolto creando un vi ad hoc con tutto impostato correttamente, poi stampavo direttamente il vi richiamandolo senza l'apertura del front panel passandogli i dati tramite un mega cluster così mi stampo quello che ne ho voglia \":D\" ---------------------------------------- AUTORE: 411 DATA :15/12/2006 - 15:59:44 ---------------------------------------- ti trovi per caso il vi che hai creato o potresti inviarmi qualcosa di simile? grazie \":wink:\" ---------------------------------------- AUTORE: 1427 DATA :21/12/2006 - 09:17:36 ---------------------------------------- [quote="pippomusotto":33ukfjaz]Salve, ho un problemino, dovrei realizzre un report di stampa in cui inserire un'immagine, ma la formattazione dell'immagine non mi permette di porre del testo a fianco all'immagine stessa. Qualcuno puoi darmi una dritta?[/quote:33ukfjaz] tempo fa avevo un problema simile e mi e' stato consigliato, e funziona ottimamente, di caricare l'immagine passando il codice HTML anziche' il comando di labview, in modo da poter fare un resize dell'immagine in modo ottimale. Se cerchi tra i vecchi messaggi dovresti trovare il vecchio post. ciao! ---------------------------------------- ================================================================================ Contatore con Case Structure ================================================================================ AUTORE: 955 DATA :18/12/2006 - 11:29:35 ---------------------------------------- Ciao a tutti \":wink:\" Vorrei cercare di realizzare un contatore che funzioni in questo modo: ho due array della stessa dimensione di cui voglio confrontare gli elementi interni e se questi sono uguali voglio incrementare il conteggio. Ma sicuramente commetto un errore anche se non saprei dire esattamente dove...quello che ho notato però è che se azzero il conteggio anche se gli elementi uguali sono 2 o 3 lui me ne conta sempre 1 mentre se non lo azzero mi conta giusto solo che incrementa sistematicamente il risultato ad ogni esecuzione...e a me purtroppo serve azzerarlo ad ogni esecuzione...potreste corregermelo? grazie ---------------------------------------- AUTORE: 955 DATA :18/12/2006 - 11:43:20 ---------------------------------------- ok risolto \":D\" basta togliere il for interno ed utilizzare quello esterno per gli shift register \":wink:\" ---------------------------------------- ================================================================================ [OT] Sistema di videosorveglianza remota ================================================================================ AUTORE: 807 DATA :18/12/2006 - 20:46:47 ---------------------------------------- Scusate l'off-topic (ma non molto, visto che con LW si potrebbe generare il sistema in oggetto), mi chiedevo come funziona un sistema di videosorveglianza remota con architettura client-server. Più precisamente, in che modo viene codificato/elaborato il file video (AVI compresso)? Questa domanda sorgerebbe spontanea, in quanto la compressione di un file AVI di notevoli dimensioni (quali quelle di un video) ha un prezzo computazionale molto alto che impedisce una compressione in tempo reale. Grazie anticipatamente ---------------------------------------- AUTORE: 384 DATA :19/12/2006 - 01:23:07 ---------------------------------------- [quote="extrabyte":1vvefgla]Questa domanda sorgerebbe spontanea, in quanto la compressione di un file AVI di notevoli dimensioni (quali quelle di un video) ha un prezzo computazionale molto alto che impedisce una compressione in tempo reale.[/quote:1vvefgla] In realtà non è vero. Non è il peso computazionale della compressione che impedisce lo 'streaming' di video in formato AVI. Guarda [url=http://www.alexander-noe.com/video/amg/en_myths.html:1vvefgla]qui[/url:1vvefgla]. ---------------------------------------- AUTORE: 807 DATA :19/12/2006 - 09:46:33 ---------------------------------------- [quote="gyc":1pyvndrj] In realtà non è vero. Non è il peso computazionale della compressione che impedisce lo 'streaming' di video in formato AVI. Guarda [url=http://www.alexander-noe.com/video/amg/en_myths.html:1pyvndrj]qui[/url:1pyvndrj].[/quote:1pyvndrj] Grazie per il link, da cui copio e incollo: [quote:1pyvndrj][b:1pyvndrj]AVI is not streamable[/b:1pyvndrj] Partially true. It is not possible to entirely stream AVI output. When writing AVIs with AVI-Mux GUI, two seek operations are necessary after each Gigabyte of data. It is possible to create AVI files that can be read in streaming mode, without any seeking. It's not my fault is there is no filter available which makes use of that possibility without using special methods to convince it to.[/quote:1pyvndrj] Per quello che so, l'AVI è il formato standard di acquisizione da una telecamera digitale, o meglio è il Digital Video che in realtà è AVI non compresso. A questo punto, se l'AVI non è adatto allo streaming bisogna convertirlo in fase di acquisizione. Ed è qui che si fa sentire il prezzo computazionale (IMHO) ---------------------------------------- AUTORE: 838 DATA :19/12/2006 - 10:24:20 ---------------------------------------- molte netcam hanno la decodicfica mjpeg a bordo, alla fine hai un video fluido ma un pò sgranato come dettagli come 30 fps a 640x480 altre, più evolute, l'mpeg-2 e l'mpeg-4 di avi non ne ho mai viste \":D\" ---------------------------------------- AUTORE: 384 DATA :19/12/2006 - 12:09:56 ---------------------------------------- Sono d'accordo con Mizuk. Il formato AVi è ormai arcaico e largamente soppiantato da altri standard. Comunque, in quella citazione è chiaramente scritto che il problema non è la codifica e che lo stesso formato AVI permette lo streaming. É una scelta dei vari programatori non averlo mai implementato - probabilmente perchè quando è sorta la vera necessità, sono anche comparsi altri formati più agevoli per lo streaming. Ma se anche dovessi transcodificare lo stream da AVI in qualcos'altro, non vedo come la potenza di calcolo potrebbe essere un problema. Senza neanche andare sui nuovi processori dual core, si riesce tranquilamente a fare streaming e display (quindi decodifica) di più video contemporaneamente; il collo di bottiglia non è il processore bensì il canale dati (internet o rete locale che sia). Questo senza contare che c'è sempre la possibilità di usare hardware dedicato a questo. Che poi questo hardware non lo si trovi da Computer Discount, è un'altra storia. Comunque, oggigiorno esistono schede per il bus [url=http://cgi.ebay.it/4-Channel-PCI-DVR-Video-Capture-Card-for-CCTV-104_W0QQitemZ250060595685QQihZ015QQcategoryZ88755QQrdZ1QQcmdZViewItem:1zpvtaf7]PCI[/url:1zpvtaf7] e [url=http://cgi.ebay.it/USB-2-0-EXTERNAL-VIDEO-GRABBER-DVD-MAKER-CAPTURE-DEVICE_W0QQitemZ180065513481QQihZ008QQcategoryZ3666QQrdZ1QQcmdZViewItem:1zpvtaf7]USB[/url:1zpvtaf7] che accettano in ingresso qualunque videocamera CCITT e hanno in output MPEG4 a prezzi molto bassi, senza parlare delle telecamere IEE1394 (anche dette FireWire), digitali per sua natura, e che già si trovano a prezzi abbordabili (sotto 1000 euro). E poi ci sono le webcam... [/url] ---------------------------------------- AUTORE: 807 DATA :10/01/2007 - 18:32:36 ---------------------------------------- [quote="gyc":179rwws1] Ma se anche dovessi transcodificare lo stream da AVI in qualcos'altro, non vedo come la potenza di calcolo potrebbe essere un problema. Senza neanche andare sui nuovi processori dual core, si riesce tranquilamente a fare streaming e display (quindi decodifica) di più video contemporaneamente; il collo di bottiglia non è il processore bensì il canale dati (internet o rete locale che sia). [/quote:179rwws1] nel post intendevo questo: colleghiamo una videocamera alla scheda di acquisizione di un PC. Supponiamo che l'uscita della videocamera sia in AVI non compresso. Ovviamente l'acquisizione avviene in tempo reale. Però se voglio codificare il video in mpeg2 (giusto per fare un esempio), beh qui ci vorrà un tot di tempo, poichè il processore dovrà eseguire il rendering del video. Cmq da quello che ho letto in questo 3D, mi è sembrato di capire che la conversione conviene farla a livello HW, come nel caso delle videocamere x telesorveglianza che montano l'hw a bordo. In effetti, ho trovato questo [url=http://www.axis.com/it/prodotti/Video_Server/video250S.htm:179rwws1]prodotto[/url:179rwws1] che è molto interessante ---------------------------------------- AUTORE: 838 DATA :11/01/2007 - 08:09:36 ---------------------------------------- ottimo prodotto, sicuramente con qualche activex ti puoi tirare il video direttamente su un vi di lw ---------------------------------------- AUTORE: 807 DATA :11/01/2007 - 11:56:11 ---------------------------------------- [quote="minzuk":2qc9prui]ottimo prodotto, sicuramente con qualche activex ti puoi tirare il video direttamente su un vi di lw[/quote:2qc9prui] anche con la versione 7.1 di lw? ---------------------------------------- ================================================================================ Matlab VS labview ================================================================================ AUTORE: 873 DATA :19/12/2006 - 09:19:03 ---------------------------------------- Salve a tutti! Mi sembra di avere un problema stupido ma non ho trovato soluzioni valide ancora.....devo fare un output analogico con labview ed una scheda NI, solo che i dati campionati da scrivere mi vengono passati in un file .mat di matlab. Ora questo file contiene molti dati, per un 'play' anche di mezzora. se con matlab lo converto in un file di testo leggibile da labview, le dimensioni passano da 3 Mb (di matlab) a centinaia di mega in labview, e anche se leggo il file a segmenti, arriva out of memory. Non riesco a capire come labview non possa leggere direttamente da un file binario di matlab, i due tipi di file binari non corrispondono.Non riesco a farlo neppure usanto il mathscript o lo script di matlab che ho installato....in effetti dentro il file .mat c'e' solo un array con centinaia di migliaia di dbl, come fare a creare un output continuo in labview? Grazie a tutti! ffogs ---------------------------------------- AUTORE: 873 DATA :19/12/2006 - 12:41:16 ---------------------------------------- l'unico modo che ho trovato e' usare DIADEM con aspposita tool fornita da NI per leggere i .mat. Da li posso salvarli come binari per labview, ma continuo a non capire perche' un file .mat da 3 Mb mi diventi un .tdm da 190Mb....i dati dentro sono gli stessi.... \":evil:\" ---------------------------------------- AUTORE: 384 DATA :20/12/2006 - 09:26:25 ---------------------------------------- [quote="ffogs":rf6vs1p4]l'unico modo che ho trovato e' usare DIADEM con aspposita tool fornita da NI per leggere i .mat. Da li posso salvarli come binari per labview, ma continuo a non capire perche' un file .mat da 3 Mb mi diventi un .tdm da 190Mb....i dati dentro sono gli stessi.... \":evil:\"[/quote:rf6vs1p4] I dati sono gli stessi ma il formato in cui sono espressi cambia! Io non conosco i file [b[.mat[/b], ma non posso credere che non si possa leggere questo file in modo binario da labview e, dove necessario, interpretare adeguatamente quanto si legge. Basta - appunto - conoscere il formato. E non vedo che sia necessario transformare [b:rf6vs1p4][i:rf6vs1p4]prima[/i:rf6vs1p4][/b:rf6vs1p4] il file da un formato all'altro. Lo si può fare in "streaming", a meno che sia computazionalmente tropo pesante per un P4 (il che dubito fortemente). ---------------------------------------- AUTORE: 645 DATA :20/12/2006 - 09:38:10 ---------------------------------------- Puoi provare a salvare i dati in formato ".txt" da MatLab e leggere questo file di testo con LabView. Non mi ricordo l'istruzione esatta di MatLab per salvare in formato testuale ma so che si può; poi con le funzioni di LabView vai a leggere i dati. ---------------------------------------- AUTORE: 873 DATA :20/12/2006 - 13:16:15 ---------------------------------------- si ho provato a salvare in matlab in formato testo, in effetti da un file .mat da 3 mega passo ad un txt da 70mb (non ha molto senso parlare di Mb, diciamo che nel file .mat ho un array con 23 milioni di valori da spedire alla scheda NI), il problema e' che labview gestisce male questi file, nel senso che anche se nel programma selezioni di leggerlo a 'pezzi', il pc si pianta lo stesso e il programma non gira bene.Se lo converto in binario invece labview si èprende i suoi pezzi di dati, fa l'output analogico e fa tutto in real time, fino a che non arriva alla fine del file.... ---------------------------------------- ================================================================================ FFT Mag & Phase ================================================================================ AUTORE: 955 DATA :19/12/2006 - 10:47:14 ---------------------------------------- Ciao. Volevo sapere se i valori che il blocchetto FFT mi restituiva erano in RMS. In caso di risposta affermativa per ottenere di nuovo il valore normale devo effettuare l'inverso dell'RMS? \":roll:\" cioè radice di N*RMS^2? Grazie ---------------------------------------- AUTORE: 955 DATA :19/12/2006 - 14:25:18 ---------------------------------------- mi trovo in difficoltà perchè in pasto all'FFT ho un segnale sinusoidale con armoniche ora il mag sono sicuro al 100% che è in RMS ma la phase? e poi cmq come faccio ad ottenere i valori reali dall'RMS di un segnale sinusoidale con armoniche? \":cry:\" ...non ce la faccio +...plz help \":cry:\" ---------------------------------------- AUTORE: 384 DATA :20/12/2006 - 09:17:44 ---------------------------------------- Perdonami, ma credo che tu stia facendo un pò di confusione fra RMS e FFT. In pasto ad una FFT dai un segnale nel tempo. In uscita ti ritrovi un ulteriore segnale nel dominio dei numeri complessi; per pura convenienza e praticità, viene solitamente visualizzato nelle due componenti [b:1vukj8ml]ampiezza[/b:1vukj8ml] (Mag) e [b]fase[b]. Non c'entra nulla il RMS. Il valore RMS ([url=http://en.wikipedia.org/wiki/Root_mean_square:1vukj8ml]clicca qui per una definizione[/url:1vukj8ml]) riferito ad un segnale nel tempo, è valutato su un periodo di tempo ed ha un significato fisico. ---------------------------------------- AUTORE: 955 DATA :20/12/2006 - 15:29:18 ---------------------------------------- mmm gyc non vorrei contraddirti ma il blocchetto FFT restituisce mag in valore efficace e phase in radianti...è scritto nell'help del blocchetto [b:3volit98]magnitude[/b:3volit98] is the magnitude of the averaged FFT spectrum. If the input signal is in volts (V), magnitude has units of volts-rms (Vrms). [b:3volit98]phase[/b:3volit98] is the phase, in radians, of the averaged FFT spectrum. ora quello che vorrei sapere è: io ho imposto tramite una tabella la fase di un armonica a 90gradi e quando faccio la conversione della phase del FFT da radianti in gradi ehm non mi trovo...perchè? \":roll:\" ---------------------------------------- AUTORE: 384 DATA :20/12/2006 - 15:40:11 ---------------------------------------- Confesso che non ricordo le unità RMS in uscita dalla FFT, ma ora andrò a rinfrescarmi la memoria. Per il tuo problema di fase, sei sicuro di impostare la fase dell'armonica nella unità giusta? Lo so che la domanda è banale, ma a volte il problema è nascoto sotto l'ovvio! ---------------------------------------- AUTORE: 955 DATA :20/12/2006 - 15:52:26 ---------------------------------------- allora in pratica il problema è il seguente (te lo divido in passi per una maggiore semplicità): 1-genero un segnale con armoniche 2-sporco il segnale con un'amplificazione di 2/3 e una fase di -30° 3-genero un segnale correttivo 4-mando il segnale correttivo in pasto al blocco 2 così da avere proprio il segnale 1 ora graficamente i segnali sono praticamente molto simili però per esserne sicuro ho effettuato la FFT del segnale correttivo (quello del punto 3) e di quello iniziale del punto 1 li confronto ed ammetto un errore su ogni valore fino ad un max di 0.01. Se ottengo un valore peggiore devo reiterare. (in pratica realizzo un controllo in retroazione ) Il problema sorge sull'index 0 della phase perchè la componente continua del segnale 1 non so perchè risulta essere in uscita dalla FFT 180 mentre quella del segnale correttivo a 0 e ho notato cmq che gli altri valori pur coincidendo non corrispondono almeno credo a quelle delle tabelle... e non so darmi una spiegazione. Per quanto riguarda il mag invece ho visto che tutti i valori coincidono eccetto sempre quello dell'index zero dove però trattandosi di valori dell'ordine di 10^-15 ovviamente non mi segna mai un errore superiore allo 0.01...resta quindi sia per il mag che per la phase il problema della componente continua...perchè viene così?non dovrebbe essere pari semplicemente a zero visto che non ho nessun offset fissato? \":roll:\" ---------------------------------------- ================================================================================ Software necessario a FieldPoint ================================================================================ AUTORE: 1078 DATA :19/12/2006 - 13:12:31 ---------------------------------------- Ciao a tutti, Sto realizzando un'applicazione realtime che girerà su un FP2000, il mio problema è che il mio fieldpoint ha una memoria (non espandibile) di 16Mb e il sistema operativo montato a bordo ne utilizza circa 13Mb. Vorrei sapere quali sono i software essenziali per far girare i miei VI sul fieldpoint in modo da disinstallare quelli inutili e risparmiare memoria sul mio FP. Esiste inoltre un modo per eliminare manualmente i VI in esubero sul fieldpoint? Grazie Ricky. ---------------------------------------- AUTORE: 838 DATA :19/12/2006 - 13:17:13 ---------------------------------------- beh, penso occorra il runtime e basta. poi se usi visa o shared variable devi metterci pure quelli per i vi in esubero che intendi? sul fp ci va il compilato, se hai dei vi inutili non vengono certo inseriti \":)\" ---------------------------------------- AUTORE: 1078 DATA :19/12/2006 - 13:32:19 ---------------------------------------- Per VI in esubero intendo i VI delle varie prove che eseguo per verificare se le microfunzioni che faccio funzionano o meno. Ad esempio ho fatto una funzione che legge una shared variable che configura quali canali leggere. Per verificare se la funzione veniva eseguita correttamente ho fatto un VI molto semplice che utilizza la funzione. Ora mi domando, quel VI è ancora residente sul mio FP anche se non è necessario e non in esecuzione? Spero di essere stato chiaro. ---------------------------------------- AUTORE: 838 DATA :19/12/2006 - 14:32:05 ---------------------------------------- per partire: NI sconsiglia l'uso di shared variable su Fp o cFp con memoria inferiore ai 64mb, poichè l'suo delle shared può portare via ben 32 mb di memoria solo loro su tu utilizzi il FP in deploy, tu scarichi il tuo applicativo in memoria del fp, ma al momento che lo spegni, perdi le modifiche per essere certo che sia il tuo ultimo applicativo a caricarsi all'avvio del fp è fare il built in locale del tuo applicativo, collegarti con un ftp al fp e trasferire il progetto complitato nella dir startup del fp ogni volta che vai in deploy e run online con lo sviluppo, azzeri tutta la memoria e ritrasferisci tutto quello che occorre sul fp, quindi le cose inutili non vengono caricate spero di esserti stato di aiuto ---------------------------------------- AUTORE: 1078 DATA :19/12/2006 - 16:09:11 ---------------------------------------- Grazie mille, ho finalmente capito cosa succede quando eseguo in test le mie applicazioni. Adesso però mi viene sponeo chiederti: compilando la mia applicazione con l'application builder e installando l'applicazione sulla macchina host di destinazione, sul mio FP viene automaticamente caricato il VI destinato ad acquisire o devo specificatamente caricarlo manualmente tramite FTP? Se anzichè le shared variable usassi il datasocket per registrare le mie informazioni, posso far girare la parte server sul mio FP? Grazie... ---------------------------------------- AUTORE: 838 DATA :19/12/2006 - 16:57:07 ---------------------------------------- quando usi il builder ti creat un file unico .exert che va messo nella cartella startup del fp nessun .vi va messo sul fp, non ho lo sviluppo per interpretarlo l'unico modo per non usare le shared è creare una comunicazione client server via ethernet con protocolli vari, come ad es il modbus ---------------------------------------- AUTORE: 838 DATA :19/12/2006 - 17:01:56 ---------------------------------------- errata corrige: non ho.... il field point non ha lo sviluppo se devi usare pochissime shared non impazzire per impiantare una comunicazione nuova, usale pure ma tieni controllata la memoria ciao ---------------------------------------- AUTORE: 1078 DATA :19/12/2006 - 17:06:08 ---------------------------------------- Per ora grazie. Ho capito. Adesso vedo se riesco ad adattare la mia applicazione e a cambiare la filosofia di utilizzo, anzichè con shared variables con un protocollo ethernet. Grazie ancora, alla prox Ricky. ---------------------------------------- AUTORE: 927 DATA :20/12/2006 - 09:06:22 ---------------------------------------- A me alla NI avevano detto che i FP della vecchia serie (non Compact) non supportavano affatto Labviù 8. Quindi era una mezza verità? \";)\" ---------------------------------------- ================================================================================ tab control e case structure ================================================================================ AUTORE: 1662 DATA :19/12/2006 - 15:31:56 ---------------------------------------- Salve a tutti, mi sono appena iscritto a questo forum ed avrei una domanda da porre...ho creato nel 'Front panel' un 'Tab control' in cui ho organizzato in diverse sezioni tutti controlli e gli indicatori qui presenti per ottimizzare lo spazio. Ora, giustamente, nel mio block diagram è comparsa l'icona del controllo 'Tab control' appena creato ma sinceramente non so che farmene. Mi spiego meglio: il programma viene eseguito benissimo anche senza che l'icona del 'tab control' da me creato sia connesso nel 'block diagram' ad alcuna icona. Qualcuno saprebbe indicarmi un modo per sfruttare eventualmente questa "icona inutilizzata"? nell'help mi pare di aver letto che tramite questo controllo si possa semplificare anche il block diagram collegando l'icona ad una 'case structure'. in effetti, riesco in questo modo a ritrovarmi come sottodiagrammi della case structure tutte le sezioni da me create nel 'front panel'...ma non ho capito come organizzare il mio programma all'interno di questa case structure.. Ps: il mio programma è tutto inserito all'interno di un ciclo while.. Spero di avere posto il mio quesito in modo chiaro..grazie per l'attenzione! ---------------------------------------- AUTORE: 645 DATA :19/12/2006 - 22:43:42 ---------------------------------------- Di per sè l'icona del Tab Control non ti serve da collegare... o meglio: io solitamente non la collego a nulla ma mi serve come punto iniziale per creare eventuali Property Node per esempio per rendere visibili o invisibili alcune pagine. E se collegata al Case Structure permette di avere le pagine sotto controllo: puoi per esempio creare una struttura che inizialmente visualizza solo la prima pagina e aspetta l'inserimento di alcuni dati e solo successivamente (per esempio intercettando la pressione di un pulsante sulla pagina) rendere visibili le altre pagine se i parametri sono corretti. Oppure (questo è successo a me) visualizzare su ogni pagina un grafico riferito ad alcuni tipi di grandezza: nel momento in cui un certo tipo di grandezza non c'è rendo la pagina corrispondente invisibile e ho meno cose inutili in giro nel Front Panel. Aspetto eventuali correzioni!! ---------------------------------------- AUTORE: 278 DATA :20/12/2006 - 08:09:32 ---------------------------------------- [quote:1gqa1nhv]Qualcuno saprebbe indicarmi un modo per sfruttare eventualmente questa "icona inutilizzata"?[/quote:1gqa1nhv] Puoi usarla (per esempio) per sapere che tab stai attualmente utilizzando... per abilitare e disabilitare controlli/indicatori in base al tab utilizzato... gli utilizzi sono molteplici.. ---------------------------------------- AUTORE: 1662 DATA :20/12/2006 - 09:33:32 ---------------------------------------- [quote="esodar1981":2k2cfckz][quote:2k2cfckz]Qualcuno saprebbe indicarmi un modo per sfruttare eventualmente questa "icona inutilizzata"?[/quote:2k2cfckz] Puoi usarla (per esempio) per sapere che tab stai attualmente utilizzando... per abilitare e disabilitare controlli/indicatori in base al tab utilizzato... gli utilizzi sono molteplici..[/quote:2k2cfckz] ok esodar, mi potresti indicare una funzione che non interferisca col front panel? durante l'esecuzione del programma infatti vorrei poter accedere incondizionatamente a tutte le sezioni del tab control, in quanto per me essenzialmente questa funzione ha uno scopo meramente estetico...grazie! ---------------------------------------- AUTORE: 384 DATA :20/12/2006 - 09:35:11 ---------------------------------------- E puoi semplicemente "ignorarla" nel tuo diagrama, se non ne hai un'altra utilità oltre a quella di organizzare meglio il tuo front panel. É un uso più che lecito e normale!!! \":)\" ---------------------------------------- AUTORE: 278 DATA :21/12/2006 - 08:01:20 ---------------------------------------- [quote:39svjsa0]ok esodar, mi potresti indicare una funzione che non interferisca col front panel? durante l'esecuzione del programma infatti vorrei poter accedere incondizionatamente a tutte le sezioni del tab control, in quanto per me essenzialmente questa funzione ha uno scopo meramente estetico...grazie![/quote:39svjsa0] oddio, qui si apre un mondo! \":o\" \":o\" Dipende tutto da come sviluppi i tuoi programmi, per avere un'interfaccia grafica completamente indipendente e slegata (dal punto di vista dell'esecuzione del codice) sei obbligato ad usare strutture di programmazione parallele. Per esempio, una loop che riceve ed accoda le pressioni dei tasti sul Front Panel e un'altro loop l'altra che si occupa di eseguire le operazioni legate alla pressione dei tasti. In questo modo non dovresti attendere il temine dell'azione associata alla pressione del tasto, continueresti a premere i tasti sul front panel senza rilevare "blocchi" dell'interfaccia grafica. Nel tuo caso, immagino che utilizzi la event structure... se non erro, questa stuttura "congela" il front panel per tutto il tempo necessario all'esecuzione dell'evento associato... quindi (sempre se non ricordo male) ti troveresti con il FP "boloccato" in attesa del termine di un'operazione... ---------------------------------------- AUTORE: 384 DATA :21/12/2006 - 15:34:06 ---------------------------------------- Direi che è un pò troppo complicato per illustrare i TAB. Pinz, negli esempi di LabView c'è un VI molto carino che darà una buona idea di ciò che si può fare. Vai su 'search' e scrivi 'tab'. ---------------------------------------- AUTORE: 1662 DATA :21/12/2006 - 15:52:20 ---------------------------------------- [quote="gyc":w4dl2j8p]Direi che è un pò troppo complicato per illustrare i TAB. Pinz, negli esempi di LabView c'è un VI molto carino che darà una buona idea di ciò che si può fare. Vai su 'search' e scrivi 'tab'.[/quote:w4dl2j8p] si, in effetti è un po troppo per le mie necessità.... \":o\" gyc, nell'esempio che mi suggerisci ho trovato molti spunti interessanti anche se non ho ancora scartato la possibilità di lasciare questo tab solo soletto in un angolino del BD. \":)\". grazie mille! ---------------------------------------- AUTORE: 384 DATA :21/12/2006 - 16:10:48 ---------------------------------------- [quote="pinz":1q1ix5ma]ho trovato molti spunti interessanti anche se non ho ancora scartato la possibilità di lasciare questo tab solo soletto in un angolino del BD. \":)\". grazie mille![/quote:1q1ix5ma] Il che, ti ripetto, va bene! Io lo faccio... ---------------------------------------- AUTORE: 645 DATA :22/12/2006 - 08:28:43 ---------------------------------------- Se vai sul sito della National ( www.ni.com ) e inserisci "tab" nel motore di ricerca trovi un sacco di pagine sulla creazione e la gestione del Tab Control. Anche per me il Tab è un'icona che rimane nel Block Diagram da qualche parte e interferisce con il resto del VI solo attraverso i Property Node (o magari una variabile locale). ---------------------------------------- AUTORE: 278 DATA :22/12/2006 - 10:33:17 ---------------------------------------- [quote:305095uj]Direi che è un pò troppo complicato per illustrare i TAB. [/quote:305095uj] decisamente, ma se la domanda è questa... [quote:305095uj]durante l'esecuzione del programma infatti vorrei poter accedere incondizionatamente a tutte le sezioni del tab control[/quote:305095uj] non consco altre strade se non quella di implementare codice in parallello.... [b:305095uj]Ciao a tutti e buone feste!!!!![/b:305095uj] ---------------------------------------- AUTORE: 1662 DATA :22/12/2006 - 11:02:36 ---------------------------------------- si, scusa esodar forse non mi sono spiegato bene io...probabilmente ho involontariamente usato dei termini tecnici a me oscuri... grazie cmq e buone feste! ---------------------------------------- AUTORE: 278 DATA :22/12/2006 - 15:39:16 ---------------------------------------- hehehe, figurati, no problem!!! \":wink:\" \":wink:\" Ciao e buone ferie anche a te!!! ---------------------------------------- ================================================================================ peaks&valleys ================================================================================ AUTORE: 1596 DATA :20/12/2006 - 15:45:54 ---------------------------------------- il mio problema è questo: della forma d'onda presente nel VI ne voglio trovare i peaks e le valleys.Poichè la forma d'onda presenta del rumore all'inizio e alla fine, volevo 'eliminarlo' con i 2 cicli while...i 2 marker (1 e 2) mi servono proprio a far questo.Un valore che ho provato ad assegnare è -102 per entrambi(ma potrebbe essere anche diverso)...inoltre assegno la threshold ad es. -103. ps. l'array forma d'onda è costituito da 1601 punti. pps. non mi funziona ...qualcuno mi può aiutare?...credo che ci sia un errore evidente ma purtroppo la mia poca esperienza non me lo fa notare!!! \":(\" vi ringrazio anticipatamente!!! ---------------------------------------- AUTORE: 645 DATA :20/12/2006 - 16:20:25 ---------------------------------------- Scusa, io ho capito poco: puoi spiegare un po' di più quello che vuoi fare? ---------------------------------------- AUTORE: 1596 DATA :20/12/2006 - 17:42:57 ---------------------------------------- la forma d'onda presenta dei max e dei min ...la parte 'utile' cioè quella ke mi serve parte dal primo minimo relativo fino all'ultimo!io devo trovare tali min e max per poi farne dei calcoli statistici(ecco perchè potrai notare mean dev standard ecc).Con i due while volevo isolarmi tale parte utile! ---------------------------------------- AUTORE: 1596 DATA :20/12/2006 - 18:28:08 ---------------------------------------- ...per quanto riguarda la prima parte(i 2 while)ho risolto:riesco ad isolare il rumore...potete far girare il VI corretto che vi allego con i valori marker1=marker2=-101 e threshold=-103....potete notare la finestratura del segnale nel waveform graph 2 ...il problema ora è nel subVI 'peak detect'...perchè non funziona?...help me please!!! \":cry:\" ---------------------------------------- AUTORE: 1596 DATA :21/12/2006 - 09:48:37 ---------------------------------------- scusate ragazzi...sono sempre io...vi allego il VI ricorretto, fatelo girare con i valori marker1=marker2=-102 , thresholdV=-103 ,thresholdP=-101,(nel campo width ho lasciato per default il valore 3 e nel width2 ho impostato il valore 5:ho fatto ciò perchè solo così il subVI peak detect mi restituisce 15 peaks e 15 valleys...mi aspettavo 13 valleys e 12 peaks...perchè ottengo 15 e 15?non posso ottenere qualcosa di meglio?)...l'unico problema è la non corrispondenza tra quello che vedo graficamente(13 valleys e 12 peaks) e quello restituito dal subVI peak detect(15 e 15)...spero di esser stato chiaro... ---------------------------------------- ================================================================================ Ora legale/solare ================================================================================ AUTORE: 1567 DATA :20/12/2006 - 15:56:26 ---------------------------------------- Ciao a tutti. Esiste una funzione di LW per sapere se l'rtc del pc è in ora solare o ora legale??? Grazie 1000 ---------------------------------------- AUTORE: 927 DATA :21/12/2006 - 09:21:56 ---------------------------------------- Usa "seconds to date/time" per ottenere la data attuale sotto forma di cluster; nel cluster c'è un elemento, "DST", che ti dice se è in vigore l'ora legale (1=si, 0=no) ---------------------------------------- ================================================================================ Excel ================================================================================ AUTORE: 487 DATA :20/12/2006 - 15:59:24 ---------------------------------------- Ciao a tutti, sto lavorando sul collegamento tra labview ed excel; sono riuscito a fare diverse operazioni ma poi mi sono bloccato sul seguente problema: come posso fare a copiare un foglio in un altro nel medesimo file? Grazie in anticipo ---------------------------------------- AUTORE: 645 DATA :20/12/2006 - 16:18:53 ---------------------------------------- In che modo lavori tra LabView ed Excel? Per sapere quali comandi puoi usare... ---------------------------------------- AUTORE: 113 DATA :20/12/2006 - 17:17:46 ---------------------------------------- Assumo tu stia usando gli activeX e non hai il Report Generation Toolkit. Ti allego un esempio che fa quello che chiedi: - Apre un file XLS - Seleziona un worsheet di interesse - Ne fa una copia - Rinomina il worksheet creato Se vuoi salvare il workbook devi aggiungere il metodo Save o Save_as collegato al riferimento del workbook. Alberto ---------------------------------------- AUTORE: 113 DATA :20/12/2006 - 17:38:03 ---------------------------------------- PS il controllo numerico del worksheet da copiare deve avere come valore minimo 1 che corrisponde al primo wks. Se lasci 0 ti da un errore. ---------------------------------------- AUTORE: 487 DATA :21/12/2006 - 07:26:03 ---------------------------------------- Grazie mille Alberto, utilizzavo le funzioni corrette ma in maniera sbagliata: infatti riuscivo a copiare il foglio ma non nella medesima cartella di excel. Grazie ancora. ---------------------------------------- ================================================================================ Installer con file di configurazione ================================================================================ AUTORE: 1427 DATA :21/12/2006 - 08:55:57 ---------------------------------------- ciao a tutti! Volevo creare un installer di un programma labview che includa oltre ai VI due file esterni che vengono usati dal programma come file di configurazione/calibrazione solo che non trovo nulla su come io possa includere questi file nel pacchetto creato. C'e' nessuno che mi sa dare una dritta o comunque dirmi se e' possibile farlo? grazie! ---------------------------------------- AUTORE: 927 DATA :21/12/2006 - 09:29:48 ---------------------------------------- In Labviù 8 devi prima aggiungere i file al progetto, poi nelle proprietà del Build li metti in Source Files -> Dinamic VIs & Support Files. In Labviù 7 nelle proprietà del Build usa Source Files -> Add Support File ---------------------------------------- AUTORE: 1427 DATA :21/12/2006 - 09:58:25 ---------------------------------------- grazie mille!!! e buone feste \":-)\" ---------------------------------------- ================================================================================ FPGA & InterArmoniche ================================================================================ AUTORE: 1533 DATA :21/12/2006 - 11:25:10 ---------------------------------------- Ciao. Nell'FPGA del cRIO devo inserire un blocchettino seno che mi permetta di gestire le interarmoniche solo che non vedo terminali...qualcuno sa dirmi come si settano mag e phase? \":roll:\" grazie ---------------------------------------- ================================================================================ Applicazione delle Shared ================================================================================ AUTORE: 927 DATA :21/12/2006 - 11:43:02 ---------------------------------------- Mi è venuto un dubbio riguardo alla strategia di utilizzo delle shared variable. Ho un software che gestisce il ciclo di funzionamento di un impianto e fornisce un sinottico, residente nell'impianto. Su un altro PC collegato in rete, ma ben lontano (3 regioni!) dall'impianto, girerà contemporaneamente un altro software, ma lì avrò soltanto una copia del sinottico. Il software residente usa il server OPC per bindere le shared ai canali dei Fieldpoint. Il dubbio è: a cosa binderle sul software remoto? Alle variabili omonime del software residente o direttamente ai Fieldpoint tramite un altro server OPC? Il secondo caso mi permetterebbe di riutilizzare la libreria di variabili così com'è con gli stessi binding, i due software sarebbero uguali (per la parte sinottico) e indipendenti, ma forse ci sarebbe una ridondanza pesante di traffico? Spero si sia capito \":D\" ---------------------------------------- AUTORE: 838 DATA :22/12/2006 - 13:21:17 ---------------------------------------- mah, se fanno parte della stessa rete puoi solo modificare il dsc lasciando inalterato il programma per lo meno io l'ho già fatto con il dsc 7.1, in uno avevo le tag che puantavano sul plc, nell'altro le tag puntavano alle tag dell'altro pc lasciando così lo stesso eseguibile in entrambe le parti con l'8.2 non saprei se si può fare la stessa cosa \":D\" ---------------------------------------- AUTORE: 927 DATA :22/12/2006 - 14:45:20 ---------------------------------------- Si certo che si può fare \":)\" Quindi hai usato il primo metodo... buono a sapersi... altri pareri? Buone feste, non avrete altri miei messaggi prima dell'8 \":lol:\" ---------------------------------------- ================================================================================ consiglio per progetto/tesina ================================================================================ AUTORE: 1669 DATA :21/12/2006 - 12:25:22 ---------------------------------------- Ciao a tutti sono uno studente in ingegneria informatica. Il prof del laboratorio di misure che facciamo richiede un progetto finale in LAbview. Premetto che conosco le potenzialità di LABview ma non so utilizzarlo. Vorrei qualche consiglio sul progetto da eseguire. Mi piacerebbe avere a che fare con l'acquisizione video o audio, quindi poter elaborare questo tipo di segnale. Potete consigliarmi qualcosa Grazie a tutti ---------------------------------------- AUTORE: 1165 DATA :21/12/2006 - 12:47:24 ---------------------------------------- La prima cosa che mi viene in mente attinente al tuo corso? Realizza un oscilloscopio dual channel in BF con i due canali di ingresso della scheda audio del PC. Tra l'altro dovresti già trovare dei VI guida sia tra gli esempi forniti con il Labview, sia su questo sito (mi sembra). Ciao. ---------------------------------------- ================================================================================ Passaggio dati da FPGA a Host ================================================================================ AUTORE: 1670 DATA :21/12/2006 - 15:55:26 ---------------------------------------- Ciao a tutti, sono nuovo del forum e, ovviamente, vi scrivo per un problema. Ho scritto un "LabView" con la parte di Acquisizione che gira su FPGA 7831R e quella di Elaborazione che gira su Host. Su FPGA acquisisco 4 canali analogici ,campionati da un trigger digitale, che dopo un primo trattamento passo su host attraverso delle fifo e quì faccio l'elaborazione finale per visualizzare grafici e immagini. Il programma sembra funzionare, ma ogni tanto mi visualizza dei segnali che non possono essere veri (tipo risonanze o segnali di disturbo). Problemi dal fronte acquisizione (a monte degli ADC dell'FPGA) non ce ne sono perchè il vecchio programma che adoperavo precedentemente, scritto in c, che prende i segnali sullo stesso punto non mi crea questi disturbi. Quindi penso che il problema potrebbe arrivare dall'FPGA o dal passaggio di dati fra FPGA e HOST (sincronizzazione). Ho in sostanza due domande: le schede FPGA National sono filtrate per la max frequenza di acquisizione (Teorema di Shannon) ? passare i dati (da FPGA a Host) con le fifo è il sistema migliore cioè più sicuro? Grazie mille in ogni caso se è necessario vi posso allegare il progetto . . . Buone feste a tutti ---------------------------------------- ================================================================================ Monitorare VI ================================================================================ AUTORE: 1520 DATA :22/12/2006 - 09:35:44 ---------------------------------------- Salve a tutti, ho realizzato un software costituito da un main che è in grado di lanciare dei VI figli a seconda delle attività dell'utente. Ora mi si pone questo problema: vorrei monitorare il numero dei VI in esecuzione. La cosa non mi da grossi problemi normalmente, usando le proprietà del VI e verificandone lo stato si può facilmete vedere se è running. Ma come si fa se (ed è il caso) ho dei VI reentrant? Qualcuno ha idee in merito? Intanto inizio a cercare..... Matteo ---------------------------------------- AUTORE: 4 DATA :16/01/2007 - 11:57:42 ---------------------------------------- metodo semplice... non puoi incrementare di 1 un contatore ogni volta che lanci un VI e decrementare ogni volta che lo chiudi? questo presuppone che la funzione che si occupa di lanciare o fermare i VI sia centralizzata. Ciao ---------------------------------------- AUTORE: 1520 DATA :17/01/2007 - 09:13:49 ---------------------------------------- Ciao Alessandro, quello che volevo fare io era un po' più complesso nel senso che questo lo faccio già ma volevo aggiungere un po' di robustezza al sistema. Dato che ho processi che interagiscono tra loro cosa succede se un task si inchioda, magari per un baco software (ergo colpa mia) e viene ucciso? Per evitare di bloccare l'intero programma volevo in qualche modo creare un sistema un pochino fault tolerant che controlla cosa sta succedendo e magari in maniera automatica gestizie questi eventuali problemi. Ciao e grazie. Matteo ---------------------------------------- AUTORE: 4 DATA :17/01/2007 - 09:37:38 ---------------------------------------- ok che metodo usi per gestire (lanciare, fermare, ecc) i tuoi VI rientranti? Chiamte dinamiche asincrone? Puoi fare che ogni VI task alla partenza si "registra " verso il VI di gestione, nel senso che apre 1 o più code diciamo che ne potrebbero servire 2 una per i messaggi dal VI task al gestore e una per quelli dal gestore al VI task. Il gestore per poter interaggire col task dovrebbe conoscere i riferimenti a queste code oppure i nomi delle code (è lo stesso) questo lo puoi fare in vari modi: 1 il gestore quando lancia il task gli assegna un nome (lo passa all'instanza del VI reentrant) e il VI task lo usa per comporre i nomi delle code che potrebbero essere [TaskName]_[CMD] e [TaskName]_[NTF] ovviamente essendo il gestore ad assegnare i nomi avresti da subito i riferimenti ai nomi creati dei task il gestore deve chiaramente assegnare nomi diversi a ogni task. Dal punto di vista implementativo per passare un dato a un VI chiamato dinamicamente e asincrono, puoi usare il metodo "set control value" passando il nome del controllo che conterrà il nome del task all'interno del VI task e il dato (il nome stesso) 2 ogni VI task genera da solo un suo nome, univoco, e lo comunica tramite una coda (comune a tutti i task) dal nome RQS_registration al gestore che ricava i nomi delle code a partire dal nome, quindi avresti 3 code in tutto 2 come prima più una usata solo all'avvio del task. I nomi delle due code potrebbero sempre essere [TaskName]_[CMD] e [TaskName]_[NTF]. 3 esistono molti altri metodi, serve solo fantasia... A questo punto hai tutti i mezzi per comunicare con i tuoi task e per far comunicare i tsk col gestore. Potresti con poco sforzo implementare in ogni task una funzione che ogni 1000 ms lancia un comando di Alive al gestore, se questo non vede il messaggio da parte di un task può ucciderlo o notificare l'anomalia ad altre parti del codice. Anche in questo caso spazio alla fantasia. E' un rgomento molto interessante mi piacerebbe confrontarmi con te su questioni di architettura del sw, quindi se hai tempo e voglia possiamo approfondire. Ciao, ---------------------------------------- ================================================================================ acquisizione continua: buffer circolare? ================================================================================ AUTORE: 1662 DATA :22/12/2006 - 09:51:47 ---------------------------------------- Ciao! ho un problema enorme. qualcuno saprebbe suggerirmi le corrette impostazioni per potere acquisire in continuo un segnale analogico senza perdere dati? faccio riferimento all'uso del famoso "buffer circolare" di cui ormai ho capito benissimo la teoria, ma non ci salto fuori con le impostazioni del VI di acquisizione. esso è costruito mediante AI config, AI start, AI read, AI clear....allego una immagine del vi acquisizione. NB è tutto inserito all'interno di un ciclo while..grazie!! ---------------------------------------- AUTORE: 1030 DATA :03/01/2007 - 08:57:06 ---------------------------------------- Ti posto un'immagine di un'acquisizione continua implementata utilizzando la libreria DAQmx! Dentro il while c'è solo la lettura+visualizzazione dei dati. ---------------------------------------- AUTORE: 1030 DATA :03/01/2007 - 09:01:52 ---------------------------------------- L'immagine era troppo grande e non mi ero accorto! ---------------------------------------- AUTORE: 1662 DATA :03/01/2007 - 14:41:13 ---------------------------------------- ok mark, ti ringrazio molto per la delucidazione! infatti ero sicuro di avere sbagliato qualcosa nel posizionare il ciclo while ma non riuscivo a capire la sua giusta collocazione..grazie 1000!! ---------------------------------------- ================================================================================ nxt lego ================================================================================ AUTORE: 516 DATA :22/12/2006 - 20:26:31 ---------------------------------------- Ciao Poso qui la mia domanda a Ale914 su bar.ilvg o per chiunque sappia rispordermi . Ancora Grazie Ho appena letto il tuo post e devo dire che adesso mi hai messo la curiosità adosso , ti chiedo però ancora un favore non sono riuscito a capire cosa vuoi dirmi con questa frase "per la lentezza devi ricompilare tutto il codice per la versione di labview che utilizzi, fai un "mass compile" di tutta la cartella del toolkit, soprattuto il G-Compiler e vedrai la differenza! " puoi aiutarmi Grazie Mille Ciao Sergio ---------------------------------------- AUTORE: 4 DATA :02/01/2007 - 11:39:55 ---------------------------------------- 1) Labview 2) Tools>>Advanced>>Mass Compile 3) scegli la cartella dove hai installato il NXT toolkit, tipicamente [b:on50o26z][LV_INST]\vi.lib\addons\NXTToolkit\[/b:on50o26z] 4) mass compile 5) 3) scegli la cartella dove hai installato il NXT module, tipicamente [b:on50o26z][LV_INST]\project\NXT Module\[/b:on50o26z] 6) mass compile questo è tutto, riavvia labview alla fine della ricompilazione. Ciao ---------------------------------------- AUTORE: 516 DATA :02/01/2007 - 12:10:11 ---------------------------------------- GRAZIE MILLE PER LA TUA COLLABORAZIONE Ciao Sergio ---------------------------------------- ================================================================================ Datalogging su file + chart + graph ================================================================================ AUTORE: 1477 DATA :26/12/2006 - 10:32:58 ---------------------------------------- Acquisisco 8 diversi segnali analogici con un clock di 1 sec. Dovrei: 1) visualizzarne l'andamento in tempo reale per le ultime 2 ore e poter facilmente vedere i valori delle ultime 24 ore, possibilmente con un semplice scrolling 2) poter visualizzare, con zooming e panning sulla X (tempo), un periodo a piacere specificando data e ora di inizio e di fine periodo 3) memorizzare i valori su disco per eventuale esportazione In sostanza è quello che ora faccio tramite un oggetto "trend" di Movicon (scada) collegato ad un database SQL. Ma, dato che il tutto poi è legato a doppio filo con dei regolatori fuzzy sviluppati con Labview, volevo eliminare la necessità dello scada (molti crashes e scarso supporto). La mia scarsa esperienza con LV mi permette di pensare a queste risposte ma non sono sicuro se siano la via migliore e nemmeno se siano realmente implementabili: 1) Waveform chart multiplot con buffer di 24 ore ma "finestra di visualizzazione" di 2 ore 2) waveform graph con controlli numerici per x(min) e x(max) e controlli di zooming e scorrimento abilitati. Credo sia l'unico modo per non essere "disturbati" dai valori attuali durante la consultazione dei dati storici. E' anche fondamentale continuare a memorizzare i nuovi valori anche durante questa consultazione. 3) Probabilmente studiare e adattare i file di esempio "write to text" e "read to text" per creare e interrogare il file di dati (li ho guardati ma non ancora "studiati"). Mi (vi) chiedo se, per limitare gli accessi al disco, sia possibile creare una sorta di buffer di 1 o più minuti (per 8 campioni) e appenderne il contenuto ad un file in modo che questo possa poi fungere da base dati per l'interrogazione dei dati storici. Non so se sia possibile avere questo file aperto contemporaneamente in lettura e scrittura da due diverse chiamate. Grazie per l'ascolto ---------------------------------------- ================================================================================ Graficamente parlando... ================================================================================ AUTORE: 1716 DATA :28/12/2006 - 20:48:09 ---------------------------------------- Per creare delle interfaccie grafiche di più spiccante effetto, esistono degli Add-on per labview? GraziE! Skiuz. ---------------------------------------- AUTORE: 247 DATA :29/12/2006 - 13:28:50 ---------------------------------------- Ciao, esiste il modulo DSC che contiene le solite immagini di valvole, serbatoi etc ma nulla di "graficamente spiccante"... Grafica d'effetto in LabVIEW va creata sfruttando vari trucchetti, cerca in questo forum i post che ne parlano. BYE. ---------------------------------------- ================================================================================ Immissione codice tramite tastiera numerica ================================================================================ AUTORE: 1580 DATA :29/12/2006 - 00:27:47 ---------------------------------------- Devo realizzare una tastiera telefonica per l'inserimento di numeri che comporranno un codice segreto. Se il numero inserito è giusto l'interfaccia provvederà a far scattare un relè. A parole.. semplice, ma ci ho perso le notti perchè non riesco a memorizzare la sequenza dei tasti numerici premuti che poi andranno confrontati con la sequenza segreta. Qualcuno mi può aiutare? ---------------------------------------- AUTORE: 129 DATA :29/12/2006 - 14:31:33 ---------------------------------------- Se ho ben capito si tratta di memorizzare le sequenze di tasti per riutilizzarle. Dovresti quindi crearti delle stringhe che contangono la word digitalizzata e quindi associare questa stringa ad uno soecifico id per poi estrarla alla bisogna. Puoi usare uno shift register per formare la stringa, quindi all'uscita di un while loop aggiungi un id a questa stringa, ti consiglio di criptare la stringa e quindi la invii ad un file di testo. Per leggere la stringa devi selezionare la riga (in funzione dell'id associato) quindi decriptarla e finalmente averla disponibile. Questo è un procedimento ovviamente che consiglierei, ma esistono altre varianti, per esempio se la memorizzazione deve essere solo temporanea puoi ricorrere all'uso di variabili globali, Array e code. Ti allego un esempio per costruire la stringa e confrontarla. ---------------------------------------- AUTORE: 1580 DATA :29/12/2006 - 22:39:30 ---------------------------------------- Devo partire da una tastiera numerica. E' possibile incrementare la variabile "Tasto premuto" in modo da poter successivamente indicizzare un vettore per memorizzare i numeri? Esiste un modo di catturare il numero solo quando la variabile Tasto premuto è 1? Sicuramente poi avrò bisogno di criptare i numeri, dei confronti etc.. Ma intanto vorrei capire... Grazie per la generosa disponibilità. Ti allego il file per un'idea. ---------------------------------------- AUTORE: 129 DATA :29/12/2006 - 23:38:08 ---------------------------------------- Per complicarti meno la vita, non sarebbe meglio sfruttare le potenzialità di array o cluster che già hanno strumenti per capire se un pulsante è premuto ("tasto premuto") e incrementano solo se è premuto. Ti allego due esemoi uno con cluster e uno con array. Entrambi ti restituioscono il valore della stringa digitalizzata. ---------------------------------------- AUTORE: 1580 DATA :31/12/2006 - 17:26:36 ---------------------------------------- Ecco la mia modesta soluzione...ma ce l'ho fatta!! Grazie di cuore e auguri di buon anno a tutti. \":D\" ---------------------------------------- ================================================================================ Intersezione iperboli ================================================================================ AUTORE: 1608 DATA :30/12/2006 - 15:40:56 ---------------------------------------- Sto cercando di risolvere il punto di intersezione tra due iperboli qualsiasi, qualcuno ha qualche idea di come posso procedere? So che non c'entra molto con LAbview, ma ho bisogno la soluzione da inserire in un VI. ---------------------------------------- AUTORE: 927 DATA :08/01/2007 - 14:14:10 ---------------------------------------- Nella versione Professional di Labviù ci sono parecchi VI per calcoli matematici avanzati. Nel tuo caso andrebbe bene "Nonlinear System Solver", che trova le soluzioni con metodi di approssimazione. ---------------------------------------- AUTORE: 1608 DATA :22/01/2007 - 19:32:48 ---------------------------------------- Si ci sono..l'ho trovato..e ora pero come faccio a inserire nelle equazioni, che devono essere delle stringhe, dei paramteri che devo essere cambiati mano a mano? ---------------------------------------- AUTORE: 927 DATA :23/01/2007 - 08:18:00 ---------------------------------------- Io userei "Format into string", se conosci il C è molto simile a printf(). Praticamente nelle stringhe si mettono dei marcatori che vengono sostituiti dai parametri, ad esempio %f rappresenta un numero reale ---------------------------------------- AUTORE: 1608 DATA :23/01/2007 - 17:08:40 ---------------------------------------- grazie del consiglio..poco dopo aver chiesto aiuto ho trovato come fare..ma non riesco a fare in modo che il primo parametro lo prenda come numero..che sintassi richiede il vi "nonlinear system solution?" non riesco a fare il quadrato di un termine, non eisste un altro metodo a parte moltipilicarlo per se stesso? e per calcolare la radice? ---------------------------------------- AUTORE: 927 DATA :24/01/2007 - 08:25:28 ---------------------------------------- In che senso non riesci? La sintassi è la stessa per tutti i VI che usano formule, guarda nell'help spttp "formulas and equations". Mi pare che la potenza sia ^ e la radice sqrt() ----------------------------------------