================================================================================ Popolare Item di ComboBox da file .ini ================================================================================ AUTORE: 1898 DATA :19/07/2008 - 12:58:50 ---------------------------------------- Legandomi a questa (mia) proposta: viewtopic.php?f=4&t=3668 ...metto a disposizione l'esempio per popolare gli item di una combobox da un file .ini. Non ricordo chi mi aveva risposto creando l'esempio che ho allegato...forse "aris"? bhè cmq grazie ancora a chi lo aveva fatto! ecco l'esempio ---------------------------------------- AUTORE: 113 DATA :19/07/2008 - 13:24:27 ---------------------------------------- Un grazie sincero per la disponibilità! E' stato un momento difficile ma ora si guarda avanti...! \":wink:\" Alberto ---------------------------------------- ================================================================================ LabVIEW &PLC con Opc server come si fa? ================================================================================ AUTORE: 314 DATA :20/07/2008 - 11:09:43 ---------------------------------------- Salve a tutti. Ho da poco iniziato un nuovo lavoro dove si creano anche sistemi SCADA. Vorrei usare LV per comunicare con un PLC (siemens) e da quello che ho capito si usa un OPC server... qualcuno può dirmi se esiste qualche esempio al riguardo? Dispongo di LV 8.0. Professional.... devo comprare schede particolari o altro? Come si installa l'opc server? Al momento uso ambienti di sviluppo in Visual Basic... se mi date una mano migro molto volentieri al LV. Grazie a tutti ---------------------------------------- AUTORE: 314 DATA :22/07/2008 - 21:01:08 ---------------------------------------- nessuno ne sa niente???? \":?:\" ---------------------------------------- AUTORE: 1574 DATA :25/07/2008 - 19:48:59 ---------------------------------------- Domanda fondamentale: possiedi l'OPC server? solitamente esso viene fornito con il PLC siemens, e comunque non esiste la possibilità di interfacciare direttamente LabVIEW con il PLC nudo e crudo. LabVIEW possiede le API Datasocket che ti permettono di agire come OPC client e comunicare, mediante la tecnologia OPC, con il tuo OPC server; esso a sua volta si occuperà della comunicazione diretta con il PCL (con interfacciamento seriale oppure ethernet a seconda del PLC che stai usando) in una architettura così formata: PLC <---- Interfaccia seriale/ethernet ----> OPC Server <---- Standard OPC ---------> LabVIEW (OPC client) Il seguente documento ti può aiutare: How Does DataSocket Act as an OPC Client? [url:g5akrn4c]http://digital.ni.com/public.nsf/allkb/9FAE59C3B902458B8625672400651A2E[/url:g5akrn4c] Spero che questo possa esserti di aiuto, Buona serata ---------------------------------------- AUTORE: 314 DATA :17/10/2008 - 14:57:07 ---------------------------------------- Ciao. Scusa per la tardiva risposta. Sono stato impegnato un po' su un altro progetto. Allora... Possiedo l'OPC server perchè ho installato il SIMATIC NET. Di solito creo con S7 un collegamento tra PLC e PC che chiamo PLC_1. Poi con OPC Scout testo apro il collegamento PLC_1 e testo la comunicazione tra PLC e PC scrivendo su un DB e leggendo dall'altro lato e viceversa. Con LabVIEW devo usare i datasocket e inserire l'indirizzo dell'OPC server? Non esiste qualche esempio concreto? Non voglio usare VB6 o C ma LabView per ridurre i tempi di progettazione. Scusa ancora...spero tu possa aiutarmi Ciao ---------------------------------------- AUTORE: 314 DATA :20/10/2008 - 13:31:20 ---------------------------------------- Mi correggo. Al momento sono riuscito facendo un browse sdell'OPC server a trovare dei DB che avevo testato con OPC Scout( fra l'altro il browse si comporta a livello di interfaccia in maniera identica al VI in questione) ma non riesco a monitorare altri DB che non siano stati creati precendemente con OPC scout. OPC scout è chiuso. E non credo debba chiudere Station Configuration. Qualcuno sa dirmi se ha risolto questo problemuccio se ci si è mai imbattuto? Spero che possiate aiutarmi anche perchè non credo che LV sia usato molto spesso per questo genere di applicazioni anche se io lo reputo molto pontente e veloce (rispetto al VB6). Grazie ---------------------------------------- ================================================================================ Mappe satellitari in LabView ================================================================================ AUTORE: 645 DATA :21/07/2008 - 09:43:06 ---------------------------------------- Ciao a tutti, riapro questa discussione... La domanda è:"Come integrare mappe satellitari (Google o Microsoft per esempio) in VI creati con LabView? ---------------------------------------- AUTORE: 1078 DATA :21/07/2008 - 16:05:29 ---------------------------------------- Ciao Magic, Avevo già risposto a questo Post... Ma visto quello che è successo!! Nicola ha realizzato un programma che potrebbe aiutarti, ti allego il suo VI... Per chiarimenti sul funzionamento sarebbe più corretto se chiedere a lui! \":!:\" Spero ti sia di aiuto! ---------------------------------------- AUTORE: 4 DATA :23/07/2008 - 17:10:09 ---------------------------------------- ecco un rapido esempio che ho scritto oggi nel tempo libero \":roll:\" si tratta di un VI in grado di recuperare le mappe da google maps usando le funzioni datasocket di labview componendo l'URL inmodo da pote decidere vari parametri della mappa che si vuole ottenere, coordinate zoom, marker ecc divertitevi. Ciao ---------------------------------------- AUTORE: 645 DATA :24/07/2008 - 08:33:38 ---------------------------------------- Riuscite a convertire il VI per LabView 8.2? ---------------------------------------- AUTORE: 4 DATA :24/07/2008 - 08:42:49 ---------------------------------------- Certo, eccolo ---------------------------------------- AUTORE: 2435 DATA :27/09/2011 - 15:25:57 ---------------------------------------- Ciao scusa una domanda... come devo fare per vedere la mia mappa? ---------------------------------------- AUTORE: 482 DATA :28/09/2011 - 07:26:10 ---------------------------------------- dite che è fattibile realizzare un applicazione in labview sfruttando le API di google map anzichè costruendo l'url? ---------------------------------------- AUTORE: 2435 DATA :28/09/2011 - 15:58:51 ---------------------------------------- mi stavo sbagliando su una stupidaggine..... adesso sto cercando su come visualizzare un punto sulla mappa.. avete qualche suggerimento? ---------------------------------------- AUTORE: 2435 DATA :30/09/2011 - 10:46:44 ---------------------------------------- Ciao a tutti............... Comunque c'è un problema sui marker... non vengono visualizzati sulla mappa Sto guardando sul link suggerito però non riesco a risolvere il problema ---------------------------------------- AUTORE: 3465 DATA :23/10/2011 - 22:24:48 ---------------------------------------- salve, ho provato a modificare il vi di ale9134 in modo da includere i marker inserendo l'url come suggerito qui: http://code.google.com/apis/maps/docume ... Parameters Tuttavia mi restituisce un'immagine bianca pur avendo inserito ImageFormat = jpg. Qualcuno c'è riuscito? ---------------------------------------- AUTORE: 2435 DATA :25/10/2011 - 13:10:19 ---------------------------------------- Anche io ho preso quell'esempio.. non sono riuscito a visualizzare direttamente l'immagine ma sono riuscito ad aprirla in un browser creato all'interno del subVI.. A breve caricherò il subVi. Ciao ---------------------------------------- ================================================================================ stringhe consecutive ================================================================================ AUTORE: 2436 DATA :21/07/2008 - 13:36:10 ---------------------------------------- Salve a tutti, devo realizzare un VI che mi ripeta consecutivamente attraverso un ciclo while una stringa, ovvero in uscita devo poter salvare in un file txt l'elenco. In pratica questo programma deve ripetere consecutivamente una stringa a cui poi devo concatenare un'altra porzione di stringa. Allago il VI che ho iniziato e spero qualcuno mi possa aiutare a realizzare questo programma. Grazie, Ciao! ---------------------------------------- AUTORE: 1078 DATA :21/07/2008 - 15:40:50 ---------------------------------------- Ciao Sampei, Ho modificato il tuo Vi e adesso dovrebbe fare quello che hai richiesto.... Rimango a disposizione per altri aiutini.... \";-)\" ---------------------------------------- ================================================================================ Combo Box ================================================================================ AUTORE: 2437 DATA :21/07/2008 - 15:39:09 ---------------------------------------- Salve a tutti, qualcuno sa se è possibile popolare dinamicamente una combobox? Ossia volgio che l'utente possa selezionare delle voci dalla combobox ma se non trova quella desiderata possa agguingerla. Grazie saluti Giorgio ---------------------------------------- AUTORE: 1078 DATA :21/07/2008 - 15:54:29 ---------------------------------------- Ciao Master, Ho preparato un esempio che potrebbe esserti utile... almeno spero. Come funziona: Scrivi nella combo, premi il tasto "Aggiungi" e quello che hai scritto viene inserito nella combo. Sta a te adesso adattarlo alle tue esigenze e migliorarlo. Buon lavoro ---------------------------------------- AUTORE: 2437 DATA :21/07/2008 - 16:07:14 ---------------------------------------- Grazie infinite... Giorgio ---------------------------------------- AUTORE: 1078 DATA :21/07/2008 - 17:27:02 ---------------------------------------- Prego..... ---------------------------------------- AUTORE: 2437 DATA :22/07/2008 - 09:20:32 ---------------------------------------- Ho provato ad inserire il toosl nel mio programma ma non riesco a collegarla ad una stringa o ad un indicatore. Ossia i collegamementi sono tutti ok ma se lancio il programma e seleziono una voce dalla combo box non viene visualizzate nella stringa. Se provo con una combo box di default la cosa funziona... Hai idea del perche'? Grazie Giorgio ---------------------------------------- AUTORE: 1078 DATA :22/07/2008 - 09:40:15 ---------------------------------------- Non ne ho assolutamente idea, nel mio esempio selezionando una voce dalla combo appare nel Text-Area. Prova a postare il VI che ti genera il problema, così gli do un'occhio e cerco di capire come mai non funziona correttamente... ---------------------------------------- AUTORE: 2437 DATA :22/07/2008 - 10:04:10 ---------------------------------------- Scusa l'ignoranza ma non riesco a caricare l'allegato.... Servono dei particolari permessi? Grazie ---------------------------------------- AUTORE: 1078 DATA :22/07/2008 - 10:10:33 ---------------------------------------- No, non servono particolari permessi per caricare un'allegato.... Clicca sulla scheda "Upload attachment" appena sotto la casella di testo dove scrivi i messaggi, poi "Sfoglia" per inserire il percorso e "Add the File" per allegarlo. Alla fine mandi il post con "submit" ---------------------------------------- AUTORE: 2437 DATA :22/07/2008 - 10:17:08 ---------------------------------------- Ecco il file, ho aggiunto la parte relativa alla gestione delle path e del nome file che arriva dalla combobox (per essere precisi manca .xxx, ossia estensione del file ma non è un problem). Il tutto poi va in un vi piu' ampio, ma il resto non serve in quanto path e nome file finiscono nel tools per la scrittura di dati ... Se uso una combobox di default e campio nome lega o prendo un altro valore della combobox la path in uscita cambia, in questo caso no. Vredo sia legato alla condizione di aggiunta e stop ma non ho capito come. Grazie Giorgio ---------------------------------------- AUTORE: 1078 DATA :22/07/2008 - 10:41:07 ---------------------------------------- Prova a vedere se così può andarti bene..... Ho aggiunto e modificato qualcosa... gestivi male la parte di aggiornamento. Attento che se inserisci questo codice in VI più grandi non puoi avere più di un Event-structure, se hai già una gestione eventi devi inserire quelli per la gestione dell'aggiornamento dei controlli e del popolamento della combo nella gestione eventi generale..... Se hai bisogno di altri chiarimenti sono a disposition.... \":)\" ---------------------------------------- AUTORE: 2437 DATA :25/07/2008 - 11:12:59 ---------------------------------------- Ho provato a realizzarne uno per capire come funziona, ma il mio quando inserisco un valore lo inserisce due volte... Dove sbaglio?+ Grazie ---------------------------------------- AUTORE: 1078 DATA :25/07/2008 - 12:25:52 ---------------------------------------- Ciao Master, Il tuo codice funziona, per correggere l'errore del doppio inserimento basta che cambi nelle proprietà "Button behavior" della scheda "Operation" del bottone "Aggiungi" mettila su "Latch when released" e funzionerà correttamente! Anche la gestione dello stop non è molto corretta. Usa un pulsante di stop e non un rocker... così eviti di dover impostare la proprietà "Value" e metterla su "False" prima di uscire dal while. Il bottone di Stop ha la proprietà "Button behavior" su "Latch when pressed". Buona continuazione... ---------------------------------------- AUTORE: 2437 DATA :25/07/2008 - 16:40:23 ---------------------------------------- Grazie infinite, penso che avrai capito che con labview ci sto lavorando da poco... Ho avuto l'occasione di sviluppare un sistema per analisi termica relativamente alle curve di raffreddamente di leghe leggere e sto cercando di realizzare un'interfaccia in modo che le operazioni che l'utente debba fare siano il piu' limitate possibile. Grazie ancora Giorgio ---------------------------------------- AUTORE: 1078 DATA :28/07/2008 - 16:45:37 ---------------------------------------- Prego... Sempre a disposizione! ---------------------------------------- AUTORE: 847 DATA :01/08/2008 - 10:09:29 ---------------------------------------- ciao vedendo la discussione mi son posto un problema: Se inserisco un nuovo testo ma ad esso voglio associare un valore? tipo utilizzare il campo value inserendo un numero. In modo da selezionare una stringa nella combobox che però corrisponda ad un numero. ---------------------------------------- ================================================================================ aiuto problemi labview e visual basic ================================================================================ AUTORE: 271 DATA :22/07/2008 - 12:34:38 ---------------------------------------- Buon giorno avrei un enorme problema ho uno strumento che mi hanno dato che funziona con Activex gli esempi sono in visual basic e io devo farlo funzionare con labview quelcuno mi puo aiutare?? Il problema che mi si pone è che alla voce ldata(0) mi accetta solo un interno e non un array ActEasyIF1.ReadDeviceBlock(szDeviceName, lSize, lData(0)) for lCount = 0 To lSize lMod = lCount Mod 8 If lMod = 0 Then szList = szList + Str(lCount) + ":" + Chr(9) + Str(lData(lCount)) + Chr(9) ElseIf lMod = 7 Then szList = szList + Str(lData(lCount)) + Chr(9) List1.AddItem (szList) szList = "" Else szList = szList + Str(lData(lCount)) + Chr(9) End If qualcuno mi sa dire come creare una variabile in comune sia per vb che per labview?? pultroppo non so creare activex in visual basic grazie ---------------------------------------- AUTORE: 1078 DATA :22/07/2008 - 12:49:41 ---------------------------------------- Ciao Lele, Ok, quello che hai postato è il codice VB. Come integri l'activex in LV? puoi postare una VI campione? oppuer fai una gif e incollala al post.... così provo ad iutarti! ---------------------------------------- AUTORE: 271 DATA :22/07/2008 - 13:13:10 ---------------------------------------- certo scusa l'ho inserisco subito... pultroppo non inserisce la parte di immagine comunque non esiste la possibilita di fare una variabile comune sia per vb che per labview?? ---------------------------------------- AUTORE: 1078 DATA :22/07/2008 - 13:45:59 ---------------------------------------- Vediamo, purtroppo io non ho l'ActiveX e quindi non posso testare il tuo codice, comunque: dovresti provare nuovamente a collegare il filo (intero) che va dopo la funzione "+1" a lplData della funzione WriteDeviceBlock a me lo dava "falsamente" collegato. Non riesco a capire: vorresti leggere al posto di un intero [lplData] un'array (spero di interi) dalla funzione ReadDeviceBlock? Per generare un'array di interi dal tuo codice, tira il filo che fai terminare nel controllo lplData fino all'estremità del ciclo for, ti si formerà un nodo vuoto che è un'array di interi. ---------------------------------------- AUTORE: 43 DATA :23/07/2008 - 10:02:02 ---------------------------------------- [quote="lele":2dzo01yq]Buon giorno avrei un enorme problema ho uno strumento che mi hanno dato che funziona con Activex gli esempi sono in visual basic e io devo farlo funzionare con labview quelcuno mi puo aiutare?? Il problema che mi si pone è che alla voce ldata(0) mi accetta solo un interno e non un array ActEasyIF1.ReadDeviceBlock(szDeviceName, lSize, lData(0)) for lCount = 0 To lSize lMod = lCount Mod 8 If lMod = 0 Then szList = szList + Str(lCount) + ":" + Chr(9) + Str(lData(lCount)) + Chr(9) ElseIf lMod = 7 Then szList = szList + Str(lData(lCount)) + Chr(9) List1.AddItem (szList) szList = "" Else szList = szList + Str(lData(lCount)) + Chr(9) End If qualcuno mi sa dire come creare una variabile in comune sia per vb che per labview?? pultroppo non so creare activex in visual basic grazie[/quote:2dzo01yq] Ciao lele. 1) non hai specificato se si tratta di VB6 o VB .net Dal codice che hai postato si direbbe VB6 2.1) l' esempio postato è per nulla significativo. Infatti non si capisce la relazione fra le chiamate all'activeX fatte nel codice labview ed il pezzo di codice VB6 Ma Tu : possiedi i "sorgenti" dell'activeX scritto in VB6 o hai degli esempi scritti in VB6 che utilizzano un activeX scritto in un qualunque linguaggio, o hai entrambi? 2.2) l' esempio postato è per nulla significativo perchè mancante di dichiarazioni di tipo delle variabili, c'è un "for" che non viene chiuso... sembrano uno o più pezzi di testo preso a casaccio dentro un file sorgente... 3) non si sa nulla della libreria che utilizzi e del significato delle chiamate. 4) non si sa nulla dello strumento che devi pilotare: se ci dicessi marca e modello sicuramente potresti aiutare chi ti vuole aiutare 5) Per scambiare dati fra VB6 e LabVIEW puoi usare "le socket" ma è inutile pensare a degli esempi perchè non si sa nulla del codice che stai sviluppando bye ---------------------------------------- ================================================================================ aiutatemi per favore ================================================================================ AUTORE: 2439 DATA :23/07/2008 - 15:23:31 ---------------------------------------- Ciao a tutti, devo realizzare un VI su un analizzatore di spettro analogico implementando alla meglio il funzionamento della supereterodina:attenuatore,filtro passa basso,mixer a cui è anche collegato un VCO comandato a sua volta da un generatore di rampa, amplificatore di sensibilità verticale,filtro selettivo IF(frequenza intermedia)rivelatore di picco,filtro passa basso che adatta il segnale al display e display collegato anch'esso al generatore di rampa per la deflessione orizzontale.Vorrei se è possibile qualche suggerimento sull'implementazione del filtro selettivo IF in quanto da esso dipende la risoluzione dello strumento e quindi la sua banda passante dovrebbe essere più stretta possibile.Se troppo stretta però il tempo di salita aumenterebbe...come posso fare?scusate l'intervento un pò lunghino...sxo di esser stata chiara e per favore datemi qualche idea \":)\" ---------------------------------------- AUTORE: 1078 DATA :23/07/2008 - 15:33:27 ---------------------------------------- Veramente la tua richesta non è molto chiara.... Se hai bisogno di un aiuto su un funzionamento HW sarebbe meglio se postassi sul forum HW, qui saresti OT. Se invece, hai bisogno di un aiuto SW spiega meglio cosa ti serve e se possibile allega un VI esempio così possiamo guardarlo e magari corregertelo. ---------------------------------------- AUTORE: 2439 DATA :23/07/2008 - 15:55:15 ---------------------------------------- Il mio obiettivo è relizzare il VI avendo studiato il funzionamento dell'analizzatore di spettro...e prima di lavorare in Labview sto cercando di capire come implementare i singoli blocchi da cui lo strumento è costituito per poi collegarli e vedere come funziona il tutto.Forse però ha ragione lei devo iniziare a lavorare al VI e rendermi conto..Grazie per la sua attenzione ---------------------------------------- AUTORE: 1078 DATA :23/07/2008 - 16:44:20 ---------------------------------------- Bhe... prego. Non è necessario darmi del Lei, è vero che sono vecchio... ma non così tanto!! \":lol:\" ---------------------------------------- AUTORE: 645 DATA :24/07/2008 - 08:30:36 ---------------------------------------- Anche io sono d'accordo con Ricky... dipende da quello che devi fare... Mi pare di capire che tu vuoi replicare un analizzatore di spettro in LabView personalizzando alcune funzioni... giusto? In tutti i casi prima di arrivare a preparare i blocchi per il VI dovresti giochicchiare un po' con LabView e capire bene quali sono le parti che devi implementare: così anche le domande possono essere più precise e di conseguenza possono saltar fuori risposte più dirette! \":D\" ---------------------------------------- ================================================================================ Salvataggio su file di un cluster ================================================================================ AUTORE: 2438 DATA :25/07/2008 - 10:20:41 ---------------------------------------- Ciao ragazzi, ho una VI non creata da me che ha per uscita un Waveform e un Cluster (il filo ha lo stesso colore delle stringhe quindi suppongo che veda tutti i componenti com stringhe) e dovrei salvare su file questi dati. Per il Waveform non ci sono problemi, invece i problemi nascono sul cluster. Come faccio a salvere il contenuto di cluster su file senza "aprirlo" e senza conoscere i sui elementi? Grazie a tutti Ciccio ---------------------------------------- AUTORE: 301 DATA :25/07/2008 - 10:45:42 ---------------------------------------- una cosa cosi ti potrebbe andare?!? ---------------------------------------- AUTORE: 2438 DATA :25/07/2008 - 13:48:18 ---------------------------------------- ciao aris, ti ringrazio della risposta. Comunque lo devo sempre "aprire", devo usare l'unbundle? Ciccio ---------------------------------------- AUTORE: 301 DATA :25/07/2008 - 14:11:32 ---------------------------------------- credo proprio di si..... A meno che non ti sbatti un po con dei variant, non credo ci sia altra strada. Potresti prendere il tuo cluster, trasformarlo in variant e convertire il tutto in flattned strings.....ma non credo che faccia al tuo caso.... ---------------------------------------- AUTORE: 2438 DATA :25/07/2008 - 14:29:41 ---------------------------------------- Ok ti ringrazio per la risposta. A presto Ciccio ---------------------------------------- AUTORE: 2438 DATA :28/07/2008 - 10:38:51 ---------------------------------------- Ciao ragazzi avrei un altro quessito sull'argomento. Allora ho utilizzato "Unbundle By Name" per "aprire" il cluster, dato che vorrei salvare sia il dato che il nome corrispondente su file, l'unico modo che ho trovato è stato questo (vi allego VI). Secondo voi c'è un modo più semplice senza dover mettere tutti questi indicatori? Dato che, in questo caso ho solo 3 elementi, ma io ne ho un pò di piu. Grazie Ciccio ---------------------------------------- AUTORE: 4 DATA :28/07/2008 - 11:04:16 ---------------------------------------- Ciao ci sono molti modi per ottimizzare la cosa, ne trovi alcuni qui [url:17h8o9eu]http://forums.lavag.org/Cluster-values-to-strings-t8492.html[/url:17h8o9eu] Ciao ---------------------------------------- AUTORE: 2438 DATA :28/07/2008 - 12:28:48 ---------------------------------------- è perfetto!!! Ti ringrazio Ciccio ---------------------------------------- ================================================================================ in che modo testate i Vostri VI? ================================================================================ AUTORE: 4 DATA :28/07/2008 - 14:35:10 ---------------------------------------- Ciao, vorrei aprire una discussione su questo argomento, il test del codice prodotto. Io personalmente penso sia valido il [url=http://en.wikipedia.org/wiki/Test-driven_development:1kooz5p6]TDD[/url:1kooz5p6] ma sto ancora sperimentando e tendando di capire se può essere usato con labview. Per adesso ne applico una versione "diluita" cioè solo test di integrazione di sottoparti nemmeno tanto piccole, scrivendo dei VI apposta per fare girare il test (setup, parametri, generazione input, run codice, confronto output, risultato). Voi che fate? Ciao ---------------------------------------- AUTORE: 482 DATA :29/07/2008 - 08:32:46 ---------------------------------------- Io testo tutto sul campo. Ho fatto con un applicazione alcune modifiche per simulare l'hardware ma mi diventa sempre tutto troppo complicato. In poche parole, non testo. Vado a fiducia quando si parla di programmi già avviati, installo invece l'ambiente di sviluppo quando si parla di nuove applicazioni. \":?\" ---------------------------------------- ================================================================================ case selector ================================================================================ AUTORE: 847 DATA :29/07/2008 - 10:37:13 ---------------------------------------- Ciao a tutti, ho un piccolo problema con il case structure. Ho creato dei case structure con una quindicina di casi, ora devo aggiungere ad ognuno un selettore per selezionare il caso desiderato. Se non ricordo male c'è un metodo per creare il controllo senza dover riscrivere tutte le stringhe dei vari casi. Tipo collego e si autoaggiorna con la lista dei casi creati. Qualcuno sa dirmi come si fa? Grazie Ciao ---------------------------------------- AUTORE: 43 DATA :29/07/2008 - 16:54:56 ---------------------------------------- [quote="noxat":14bh63u5]Ciao a tutti, ho un piccolo problema con il case structure. Ho creato dei case structure con una quindicina di casi, ora devo aggiungere ad ognuno un selettore per selezionare il caso desiderato. Se non ricordo male c'è un metodo per creare il controllo senza dover riscrivere tutte le stringhe dei vari casi. Tipo collego e si autoaggiorna con la lista dei casi creati. Qualcuno sa dirmi come si fa? Ciao[/quote:14bh63u5] ciao. Che io sappia, attualmente può essere collegato al case salector uno fra i seguenti tipi di dato: ---Booleano o ClusterError - 2 case fissi: True/False o Error/No Error ---Numerico o Enumerato [cast to integer] - multicase con possibilità di specificare più valori per ogni case e case di default: il tipo di controllo al quale penso che Tu Ti riferisca sia quello "Enumerato": in realtà il valore del case è un numero intero, non una stringa, ma proprio per caratteristica del tipo enumerato nella parte alta del case appare il codice "mnemonico" e non il valore che esso rappresenta. ---Stringa - multicase con possibilità di specificare più valori per ogni case e case di default. Se vuoi cambiare la tua gestione da case tipo "stringa" a case tipo "enum" devi sobbarcarti l'onere di: - creare il tipo enumerato (possibilmente una "strict typedef") con la lista dei codici "menmonici" - scrivere un codice di conversione che, a partire da una stringa , cercando nella lista dei codici "mnemonici", ottenga, appunto, il corrispondente enumerativo (ottieni un indice che devi castare al tipo enumerato). - trasportare in tutti i punti del codice, ove necessario il codice enumerativo al posto della precedente stringa. - verificare tutti case utilizzati nei vari punti associandoli al corretto valore enumerativo corrispondente se Te la senti fallo bye ---------------------------------------- AUTORE: 1078 DATA :30/07/2008 - 10:26:05 ---------------------------------------- Ciao Noxat, In realtà la funzione LV che stai cercando funziona al contrario. Infatti normalmente si crea prima il controllo e poi lo si lega alla <Case Strutture>. Quando la utilizzi con le enumerazioni è possibile aggiungere automaticamente tutti i casi presenti nella enum. Se stai utilizzando delle stringhe devi, purtroppo, aggiungere ogni caso a mano. A quanto ho capito tu hai già creato le tue case. Ti consiglio, se le case sono identiche e si ripetono, di costruirti un controllo "Combobox" personalizzato che replicherai, come controllo o come variabile (dipende dal tuo SW), collegandolo all'ingresso di seezione delle singole case. Così facendo hai un vantaggio: se aggiungi/modifichi un valore al controllo origine, automaticamente sarà presente anche nei controlli ricavati. Inoltre facendo dovresti accelerare il tuo lavoro. Non è vero che alle <case> si possono collegare solo tipi di dato boleani e enum, puoi collegarci ache stringhe e cluster personalizzati. Ovviamente la gestione è più complessa. Spero di essere stato d'aiuto. ---------------------------------------- AUTORE: 43 DATA :30/07/2008 - 16:55:59 ---------------------------------------- ciao Ricky[quote="Ricky":llz8gcwf]... In realtà la funzione LV che stai cercando funziona al contrario. Infatti normalmente si crea prima il controllo e poi lo si lega alla <Case Strutture>. [/quote:llz8gcwf] Balla n. 1. Non è una funzione che "funziona" al contrario. Al limite, è un buon modo di procedere nello sviluppo del codice, ma non è sempre vero. Mi è capitato in passato, di trasformare case "numerici" in case "enumerati". Siccome uso LabVIEW da parecchio tempo, tendo a NON usare "case selector" di tipo stringa per non incorrere nei problemi di Noxat. Per chi come me programma anche in linguaggio C, sa bene che il confronto fra stringhe è "impegnativo" e la struttura ansi C (switch..case) che corrisponde al nostro LabVIEW "case" accetta valori primitivi interi (cioè byte, int, char ma NON array e strutture (in C le stringhe sono array di byte)). Usare stringhe nel case selector è un po' da 'newbie' [quote="Ricky":llz8gcwf]"Quando la utilizzi con le enumerazioni è possibile aggiungere automaticamente tutti i casi presenti nella enum. Se stai utilizzando delle stringhe devi, purtroppo, aggiungere ogni caso a mano". [/quote:llz8gcwf] Attenzione a quell' "automaticamente". E' possibile aggiungere i case non ancora presenti nella struttura con : tasto dx su case --> "Add Case for Every Value". L'aggiunta di case Vuoti è fatta "al momento" : infatti dopo l'aggiunta dei case mancanti la funzione non è più disponibile nel popup menu. Se alla variabile enumerata viene aggiunto un elemento NON viene AUTOMATICAMENTE aggiunto un case vuoto al "case structure". Tra l'altro, sviluppare codice partendo da un case Vuoto può non essere la cosa migliore, per cui sarebbe meglio iniziare "duplicando" un case esistente. Se poi viene rimosso un codice mnemonico dal tipo enumerato, la scritta nel case appare in rosso ed il VI non è + eseguibile (freccia di esecuzione rotta) ma, come è giusto che sia, il case NON viene rimosso automaticamente. Questo è un altro buon motivo per preferire l'uso in un "case selector" di un tipo enumerato rispetto ad un tipo stringa: nel caso di cancellazione di un possibile valore enumerato è piu facile intervenire in tutti i punti del codice in cui quel valore era trattato. [quote="Ricky":llz8gcwf]... Ti consiglio, se le case sono identiche e si ripetono, di costruirti un controllo "Combobox" personalizzato che replicherai, come controllo o come variabile (dipende dal tuo SW), collegandolo all'ingresso di seezione delle singole case. Così facendo hai un vantaggio: se aggiungi/modifichi un valore al controllo origine, automaticamente sarà presente anche nei controlli ricavati. Inoltre facendo dovresti accelerare il tuo lavoro.[/quote:llz8gcwf] Balla n.2 L'automatismo che hai indicato NON vale per "comboBox personalizzati", ma piuttosto per controlli salvati come "strict typedef" Inoltre se la "strict typedef" si riferisse ad un tipo "enum", l'aggiornamento automatico della lista dei codici menmonici varrebbe anche per le costanti dello stesso tipo create nel "Diagram" non solo per i Controlli nel Front Panel (con le Combobox le costanti strict typedef presenti nel diagramma non vengono aggiornate correttamente (baco di LABVIEW...)). Usare una Combobox anche se salvata come "strict typedef" non aiuta in alcun modo il buon Noxat che per avere una vera svolta nello sviluppo del codice deve passare al tipo enumerato. [quote="Ricky":llz8gcwf]Non è vero che alle <case> si possono collegare solo tipi di dato boleani e enum, puoi collegarci ache stringhe e cluster personalizzati. Ovviamente la gestione è più complessa....[/quote:llz8gcwf] Se ti riferiscia quanto ho scritto io ---> Balla n. 3 [quote="paracarro":llz8gcwf] [b:llz8gcwf]---Booleano o ClusterError[/b:llz8gcwf] - 2 case fissi: True/False o Error/No Error [b:llz8gcwf]---Numerico o Enumerato [cast to integer][/b:llz8gcwf] - multicase con possibilità di specificare più valori per ogni case e case di default: il tipo di controllo al quale penso che Tu Ti riferisca sia quello "Enumerato": in realtà il valore del case è un numero intero, non una stringa, ma proprio per caratteristica del tipo enumerato nella parte alta del case appare il codice "mnemonico" e non il valore che esso rappresenta. [b:llz8gcwf]---Stringa[/b:llz8gcwf] - multicase con possibilità di specificare più valori per ogni case e case di default. [/quote:llz8gcwf] Come puoi vedere ho citato i tipi [i:llz8gcwf]Stringa[/i:llz8gcwf] ed il tipo [i:llz8gcwf]Error Cluster[/i:llz8gcwf]. E poi, Balla n. 4, i "cluster personalizzati" devono necessariamente essere di tipo "similare" all'error cluster cioè composti da: un booleano, un tipo numerico , una stringa( o combobox) Inoltre questi 3 elementi devono essere presenti nel cluster nell'ordine che ho indicato, altrimenti il filo risulterà tratteggiato ed il VI non sarà eseguibile. Ogni altro tipo di Cluster produce l'effetto che ho citato in ultimo. x Noxat eccoti un esempio ---------------------------------------- AUTORE: 847 DATA :31/07/2008 - 14:18:48 ---------------------------------------- Grazie mille!! \":D\" L'esempio mi è stato veramente d'aiuto. Essendo all'inizio del progetto ho preferito rivedere un po' le cose. Ho utilizzato il controllo tipo enumerato dove ho inserito i vari casi, successivamente ho collegato il case structure il quale si è aggiornato con tutti i casi, è quello che intendevo. Grazie Ciao ---------------------------------------- AUTORE: 43 DATA :04/08/2008 - 10:33:00 ---------------------------------------- Effettivamente ho fatto un po' troppo lo "sborone". Ho atteso invano che qualcuno mi bacchettasse, ma probabilmente i frequentatori del Forum sono tutti in ferie. Prima di tutto vorrei correggere quanto scritto riguardo il mio primo post: [quote="paracarro":3dtcjyac] ---Booleano o ClusterError - 2 case fissi: True/False o Error/No Error ---Numerico o Enumerato [[b:3dtcjyac]coerce[/b:3dtcjyac] to integer] - multicase con possibilità di specificare più valori per ogni case e case di default: il tipo di controllo al quale penso che Tu Ti riferisca sia quello "Enumerato": in realtà il valore del case è un numero intero, non una stringa, ma proprio per caratteristica del tipo enumerato nella parte alta del case appare il codice "mnemonico" e non il valore che esso rappresenta. ---Stringa - multicase con possibilità di specificare più valori per ogni case e case di default. [/quote:3dtcjyac] Mi è già capitato altre Volte ma chiamo spesso "cast" il puntino di conversione automatico "coercion dot" Ovviamente la conversione fatta con un "coercion dot" NON E' UN "cast". Riguardo poi al tipo enumerato consiglio a Noxat di mettere come primo elemento della lista "<Not Found>" o "<Invalid code>" in modo che se la ricerca della stringa nella lista degli enumerati fallisse potresti sempre ottenere un valore enumerato che Ti identifica questa condizione... In merito a quanto postato in precedenza ecco un esempio rivisto e corretto che tiene conto dei problemi di cast e propone soluzioni alternative al tema [attachment=0:3dtcjyac]enumstricttypedef1.zip[/attachment:3dtcjyac] bye ---------------------------------------- ================================================================================ field point blocco per mancanza rete ================================================================================ AUTORE: 73 DATA :31/07/2008 - 11:11:44 ---------------------------------------- Ho un problema con i blocchi dei field point: Uso Labview 7 e la testa ethernet 1601 Leggo sia TC che DI e scrivo DO e AO Se per caso manca un attimo la rete( simulato staccando manualmente il cavo dal PC) al ritorno i TC e AO ritornano a funzionare normalmente mentre DO e DI risultano bloccati cioè nessun segnale esce da questi blocchi e anzi per fermare il programma l'unico modo è fermare Labview dal Task manager come se per qualche motivo si bloccassero all'interno delle librerie di quei blocchi. Lo strano è che lo fa solo con i blocchi booleani e non con i float Avete consigli ---------------------------------------- ================================================================================ ordinare i menù dei riferimenti ================================================================================ AUTORE: 2155 DATA :01/08/2008 - 08:34:23 ---------------------------------------- Ciao, \":)\" è un po' che non bazzico sul forum. vedo che cresce! YEAH!!! \"8)\" Questione: quando il programma cresce, gli oggetti a cui ci si riferisce diventano un bel po'. Mi ricordo che c'era un topic che diceva come mettere in ordine alfabetico i menù contestuali di labview (ad esempio il "linkto" oppure quelli delle var "local"), ma non riesco più a trovarlo. Qualcuno si ricorda o sa come si fa? \":?:\" Buon ILVG a tutti. ---------------------------------------- AUTORE: 43 DATA :01/08/2008 - 09:39:49 ---------------------------------------- Ciao, era forse questo quello che cercavi? Board index ‹ Risorse ‹ LabVIEW Tips 'n' Tricks topic: Forse lo sapete ma altrimenti vi cambia la vita oppure il link viewtopic.php?f=6&t=461 ---------------------------------------- AUTORE: 2155 DATA :01/08/2008 - 12:18:04 ---------------------------------------- Para, ci sei andato molto vicino. Sicuramente la dritta che suggerisci aiuta, ma ricordo chiaramente un "metodo" per visualizzare in ordine i nomi degli oggetti. Era oggetto di una conversazione, ma non ricordo bene.... Mi sembra che ci sia un parametro di LV 7.11 da qualche parte che permette cambiare la visualizzazione. Comunque continuo a cercare e se lo trovo vi tengo aggiornati! Per ora grazie mille Ciau nè ---------------------------------------- ================================================================================ ma il file esiste? ================================================================================ AUTORE: 2155 DATA :01/08/2008 - 15:47:16 ---------------------------------------- Ciao raga, il problema è questo: vorrei sapere se un file esiste / non esiste senza dover necessariamente tentare di aprirlo, altrimenti LV7.11 mi va in errore. \":|\" Ho fatto varie prove con le funzioni in libreria, ma LV mi va sempre in errore... \":(\" Qualche idea cumpà? \":idea:\" grazie a chiunque mi dia una buona dritta Lunga vita a ILVG Buon ILVG a tutti. ---------------------------------------- AUTORE: 43 DATA :01/08/2008 - 16:46:22 ---------------------------------------- [quote="ste73":160a5flc]..il problema è questo: vorrei sapere se un file esiste / non esiste senza dover necessariamente tentare di aprirlo, altrimenti LV7.11 mi va in errore. \":|\" Ho fatto varie prove con le funzioni in libreria, ma LV mi va sempre in errore... \":(\" [/quote:160a5flc] [attachment=0:160a5flc]filedirinfo.jpg[/attachment:160a5flc] Se il path non è valido, cioè il file o la dir non esistono ti ritorna il classico errore 7 nel cluster "Error Out". Se non ci sono errori, il path esiste. bye ---------------------------------------- AUTORE: 2155 DATA :01/08/2008 - 17:12:48 ---------------------------------------- grande \"8)\" Para!!! pensavo di averle provate tutte, questa mi è sfuggita in modo clamoroso!!! \":?\" Sei fonte inesauribile. A buon rendere (anche se lo vedo difficile \";)\") THNX Buon ILVG a tutti e boun W-E ---------------------------------------- ================================================================================ Modbus ================================================================================ AUTORE: 1612 DATA :04/08/2008 - 16:01:48 ---------------------------------------- Ciao a tutti, ho un problema con il protocollo modbus. Ho scaricato ed installato le librerie national ma non ci capisco molto. Ho letto un po' di documentazione ma non riesco a calare quello che ho letto negli esempi national. Per essere molto pratici: sono il master della comunicazione. devo andare a chiedere il valore di un registro ad uno slave. Simulando il master con un pic andrei a scrivere 1 3 0 0 0 1 84 A e a questo punto lo slave dovrebbe rispondermi con il valore del registro. Risultato: Con il Pic master funziona... Con il labview master non ho nemmeno capito cosa andare a mettere nel cluster nell'ingresso modbus command del VI MB serial master query. Sono completamente al buio... Aiuto... GRAZIE ---------------------------------------- AUTORE: 1612 DATA :05/08/2008 - 07:59:41 ---------------------------------------- Ciao a tutti, ho risolto, mi sono proprio perso in un bicchier d'acqua... Scusate \":oops:\" Per la cronaca inserisco il cluster... ---------------------------------------- ================================================================================ socket server con due prg QUASI identici ================================================================================ AUTORE: 2155 DATA :05/08/2008 - 10:59:11 ---------------------------------------- rieccomi a sottoporre un quesito mooolto spinoso... Ambiente LV7.11 La questione è la seguente: 1. ho un prg di nome "sopra.vi" che lancia il socketserver e sottoscrive/pubblica alcune variabili. Così funzioona perfettamente. 2. ho un'altro prg di nome "sotto.vi", copia del primo, il quale quando parte non dà errori, ma interrompe subito l'esecuzione. Ho fatto diversi tentativi per essere certo che il socketserver non buttasse fuori il 2° prg, come: 1. ho rinominato le variabili pubblicate/sottoscritte in modo da averle diverse tra i due prg 2. ho aggiunto una diramazione nel percorso del socketserver, in modo da creare 2 "sotto ambienti" per evitare conflitti Il risultato è sempre il medesimo: il secondo prg che eseguo parte e si interrompe quasi immediatamente senza alcun errore. Avete qualche idea? qualche esperienza simile? Ogni dritta è ben accetta Buon ILVG a tutti. ---------------------------------------- AUTORE: 43 DATA :05/08/2008 - 11:45:04 ---------------------------------------- Posta i 2 VI. Semplificali al massimo. Poi ne riparliamo. bye ---------------------------------------- AUTORE: 2155 DATA :08/08/2008 - 09:56:48 ---------------------------------------- Ciao Para \"8)\" ! ... sempre in prima linea eh?! ... beh, GRAZIE! \":)\" allora in allegato i 2 vi (LV7.11) Sono un po' "sgrausi" perchè sono di test/prova. Condizioni al contorno: sono obbligato a connettermi a determinati nomi variabili nel DataSocktServer perchè c'è un prg dall'altra parte su cui non posso intervenire. Quindi per me sono vincoli. Posso però cambiare i percorsi delle variabili del dstp. Vincoli: devo far girare 2 prg identici che si connettono al datasocketserver su un unico PC. Anomalia: se li faccio partire autonomamente funzionano come orologi svizzeri \";)\" , se faccio partire il secondo (qualunque sia dei 2) si arresta immediatamente, ma senza errori e/o warnings. \":o\" \":?:\" Ogni aiuto/suggerimento è ben accetto. \":roll:\" Grazie10000000 Buon ILV a tutti ... e buone FERIE! ---------------------------------------- AUTORE: 43 DATA :08/08/2008 - 11:54:38 ---------------------------------------- [quote="ste73":1raf64uz]Ciao Para ... sempre in prima linea eh?! ... beh, GRAZIE! [/quote:1raf64uz] Ciao ste. Certo cercherò anche questa volta di tenerti in carreggiata, come un paracarro deve fare, pur rimanendo fermo sul ciglio della strada maestra... [quote="ste73":1raf64uz]Condizioni al contorno:.... Vincoli: ...... Anomalia: se li faccio partire autonomamente funzionano come orologi svizzeri \";)\" , se faccio partire il secondo (qualunque sia dei 2) si arresta immediatamente, ma senza errori e/o warnings. \":o\" \":?:\" [/quote:1raf64uz] Il punto è che datasocket NON C'ENTRA 'NA MAZZA!!!!! Infatti al primo tentativo di debug ci si accorge immediatamente che non ci sono errori all'ingresso del loop ma solo sull'uscita. Please prova a creare un cluster error sull' uscita del loop che lanci per secondo. Otterrai: Error Code: -808 Error Source: <append> MainLoop Ora ti riporto l'Help di LabVIEW [quote="LabVIEW Help":1raf64uz][b:1raf64uz]Loop Configuration Dialog Box (Windows)[/b:1raf64uz] ... Loop name—Uniquely identifies the Timed Loop. ...[/quote:1raf64uz] Meglio ancora utilizzando la finestrella di Help -> Explain Error... e digitandoci -808 si ottiene LabVIEW: The given name is already being used by another timed loop: Avrai ben capito qual'è la soluzione: - o butti nel cesso quei loop temporizzati inutilmente_sofisticati_in_questi_casi_che_non_uso_mai_e_che_non_voglio_usare ed usi quelli tradizionali, - oppure cambi il nome ad 1 dei 2 loop ("MainLoop" e "Mainloop1" x es.) [quote="ste73":1raf64uz]Buon ILV a tutti ... e buone FERIE![/quote:1raf64uz] Vabbè buone ferie a Te e a tutti... Cheddici Ste, me li sono guadagnati abbastanza crediti x una pizza? Sappi che abito nella "bassa" brianza... ---------------------------------------- AUTORE: 2155 DATA :08/08/2008 - 15:18:07 ---------------------------------------- Para, NON HO PAROLE \":o\" !!!! te la sei meritata alla grande sta pizza, certo! ... ma io sono intollerante al frumento (cacchio) pur avendo origini partenopee ed essendo un grande EX-estimatore della pizza \":(\" . Ti propongo una suntosa bistecca \":P\" , che tanto oggi come oggi costa uguale \";)\" Tornando a LV, ... posso solo dire Min..ia!!! sei un grande \"8)\" . Mi ero concentrato sul datasocketserver, perdendo assolutamente di vista il problema e non ho fatto il debug alla fine del processo. Vedrò di evitare al massimo l'uso dei timed loop, che tanto li uso solo per la temporizzazione, quindi si risolve easy... e migliorerò le mie attività di debug. Grazie per aver fatto da "buon paracarro"! \"8)\" . Con questo, da parte mia, hai beccato i "1000 punti ed il cararmato* è tuo" \";)\" Questo è l'ultimo post, poi spegno e me ne vado in vacanza per 7gg, spegnendo ANCHE il cervello. A presto tra una decina di giorni. Buon ILVG a tutti, sempre \":)\" *citazione "la vita è bella" ---------------------------------------- ================================================================================ Acquisizione e salvataggio dati asincroni ================================================================================ AUTORE: 48 DATA :05/08/2008 - 15:20:46 ---------------------------------------- Ciao a tutti stò facendo un VI che rileva la velocità di 30 motori tramite una linea seriale e vorrei graficare e salvare su un file i dati con l'indicazione dell'istante di acquisizione ( HH:MM:SS ). Le misure non sono acquisite simultaneamente, ma in modo asincrono tra di loro, cioè in tempi differenti. Ho trovato varie funzioni già pronte, ma tutte richiedono un sincronismo tra le acquisizioni ( dt fisso). Per il grafico ho fatto con un XY GRAPH , un pò laborioso perchè devo tenere un buffer per tutti i singoli canali. Qualcuno ha dei suggerimenti da darmi? Grazie Rik ---------------------------------------- ================================================================================ LabVIEW 8.6 ================================================================================ AUTORE: 1596 DATA :07/08/2008 - 09:42:56 ---------------------------------------- [url=http://zone.ni.com/devzone/cda/pub/p/id/473?metc=mt9snj:24i569mh]:D[/url:24i569mh] ---------------------------------------- AUTORE: 2434 DATA :08/08/2008 - 22:30:54 ---------------------------------------- Traduzione, please... ---------------------------------------- ================================================================================ popolare combo box da *.ini ================================================================================ AUTORE: 847 DATA :19/08/2008 - 10:12:40 ---------------------------------------- Ciao a tutti, ho visto la discussione viewtopic.php?f=1&t=3669&p=16177&hilit=popolare#p16177 dove si popola la combo box da file ini, io volevo aggiungere la possibilità di ricavare il valore della stringa selezionata, cioè una volta popolata la combo, selezionando una stringa dalla combo restituisco il valore corrisondente nel programma. Come posso fare? successivamente volevo aggiungere la possibilità di modificare la stringa da parte dell'utente. ciao ---------------------------------------- AUTORE: 301 DATA :19/08/2008 - 10:50:49 ---------------------------------------- Ciao, credo che la via più rapida per fare quello che vuoi sia gestire la combo con una programmazione ad eventi. Quando il valore delle combo cambia ==> restituisci il valore. Quando l'utente aggiunge un valore non presente nel file di config==> lo aggiungi. ---------------------------------------- AUTORE: 847 DATA :19/08/2008 - 13:25:59 ---------------------------------------- ok, ma una combo box ha Items(che sarebbe la stringa visualizzata) e relativo Values. Non riesco ad estrarre il Values relativo all'Items selezionato. Come faccio? ---------------------------------------- AUTORE: 301 DATA :25/08/2008 - 10:19:35 ---------------------------------------- Allora non stiamo parlando di una combo box, ma di un enumeratore. ---------------------------------------- ================================================================================ DSC Alarm shared variable ================================================================================ AUTORE: 2435 DATA :26/08/2008 - 08:42:47 ---------------------------------------- Ciao a tutti, Sto sviluppando un supervisore e vi spiego il mio problema.... dopo aver letto dei valori (da strumenti di misura o PLC) vorrei salvarli su delle "shared variable" per renderli disponibil in rete e poter usare il DSC Alarm per la gestione degli allarmi.. Però le shared variable da me definite non riesco a trovarle sul PC in cui successivamente vado a installare il progetto. Come posso fare? Grazie ---------------------------------------- AUTORE: 2435 DATA :02/09/2008 - 08:33:28 ---------------------------------------- Ho sentito il supporto tecnico di LV...... mi hanno detto che per aggiornare le variabili sul PC in cui vado ad installare la mia applicazione serve un RUN TIME apposito per il modulo DSC.... Qualcuno conosce un modo alternativo per la gestione e visualizzazione su una tabella degli allarmi???? grazie ---------------------------------------- AUTORE: 927 DATA :09/09/2008 - 11:25:08 ---------------------------------------- Se non utilizzi le funzionalità proprie del DSC, ma solo quelle di base delle SV, puoi vedere e aggiornare le variabili senza alcun run-time speciale. Io col DSC ho avuto solo problemi, se ti serve solo una visualizzazione degli allarmi ti consiglio di fare a meno del DSC e controllare a mano che i valori delle variabili non superino le soglie ---------------------------------------- AUTORE: 2435 DATA :11/09/2008 - 07:36:56 ---------------------------------------- Ciao e grazie per la risposta.... in effetti ho realizzato una tabella tipo DSC dove vengono visualizzati gli eventuali allarmi ... Appena possibile aggiungo in allegato un esempio... ---------------------------------------- ================================================================================ Separare Stacked Sequence ================================================================================ AUTORE: 2438 DATA :27/08/2008 - 09:27:52 ---------------------------------------- Ciao a tutti, avrei un problema con una stacked sequence. Ho creato una sequenza che ha 15 frame (0-14), ora dovrei spezzarla in modo tale che i frame da 1 a 8 vengano eseguiti solo in una data circostanza. Avete qualche suggerimento per risolvere il tutto nel più breve tempo possibile e senza fare troppi "morti e feriti"? Ho cercato nel forum e ho trovato qualcosa a riguardo di "macchine a stato" ma non ho capito molto, dove posso trovare informazioni utili a riguardo? Così da imparare anche cose nuove senza usare sempre le stesse cose. Grazie mille Ciccio ---------------------------------------- AUTORE: 43 DATA :27/08/2008 - 11:06:51 ---------------------------------------- [quote="cicciodevoto":mc1ssqoa]Ciao a tutti,[/quote:mc1ssqoa]ciao [quote="cicciodevoto":mc1ssqoa]avrei un problema con una stacked sequence. Ho creato una sequenza che ha 15 frame (0-14), ora dovrei spezzarla in modo tale che i frame da 1 a 8 vengano eseguiti solo in una data circostanza. Avete qualche suggerimento per risolvere il tutto nel più breve tempo possibile e senza fare troppi "morti e feriti"?[/quote:mc1ssqoa] Secondo me la soluzione + indolore è quella di modificare gli 8 [i:mc1ssqoa]frame[/i:mc1ssqoa] chiudendo il contenuto di ogni [i:mc1ssqoa]frame[/i:mc1ssqoa] in un [i:mc1ssqoa]Boolean case[/i:mc1ssqoa] il cui [i:mc1ssqoa]case selector[/i:mc1ssqoa] è collegato allo stesso valore booleano. Nel caso il booleano sia determinato nel primo [i:mc1ssqoa]frame[/i:mc1ssqoa] della [i:mc1ssqoa]Sequence structure[/i:mc1ssqoa] basta collegare lo stesso valore ad una variabile [i:mc1ssqoa]Sequence Local[/i:mc1ssqoa]. [quote="cicciodevoto":mc1ssqoa]Ho cercato nel forum e ho trovato qualcosa a riguardo di "macchine a stato" ma non ho capito molto, dove posso trovare informazioni utili a riguardo? Così da imparare anche cose nuove senza usare sempre le stesse cose....[/quote:mc1ssqoa] Giusto il fatto di voler imparare sempre cose nuove, ma, in questo caso mi chiederei se è giusto gestire la "sequenzializzazione" dell'esecuzione dei VI usando una [i:mc1ssqoa]Stacked[/i:mc1ssqoa] o anche una [i:mc1ssqoa]Flat Sequence Structure[/i:mc1ssqoa] Bada bene che anch'io ho maneggiato [i:mc1ssqoa]stacked sequence[/i:mc1ssqoa] piuttosto "corpose" (ho visto sequence da oltre 50 frame che voi umani...), ma resta il fatto che usare troppi frame non è un buon modo di programmare in LabVIEW. Per non sbrodolare troppo il codice, si possono creare dei SubVI in corrispondenza di ogni "blocco" di codice che identifica una particolare operazione, secondo insindacabile giudizio del porgrammatore. In aggiunta a ciò, si può utilizzare il metodo classico, quello usato x sequenzializzare le chiamate di subvI, che rimane l'utilizzo dell'[i:mc1ssqoa]Error Cluster[/i:mc1ssqoa]. Combinando la 2 cose , cioè creare subVI che utilizzazo l'[i:mc1ssqoa]Error Cluster[/i:mc1ssqoa] si ottengono i seguenti benefici: - il codice accorpato rende il VI + leggibile. per visionare il codice, invece di selezionare un frame nella stacked sequence basta doppioclickare sull'icona del SubVI - l'esecuzione è condizionata dal successo nell'esecuzione del codice precedentemente eseguito. E' il vantaggio dato dall'utilizzo dell'[i:mc1ssqoa]Error Cluster[/i:mc1ssqoa]. bye ---------------------------------------- AUTORE: 2438 DATA :25/09/2008 - 15:27:10 ---------------------------------------- Ciao. Scusami se ti rispondo solo ora, ma a lavoro è stato un periodo un pò "complicato", e solo ora si è ripresentato il problema. Ti ringrazio dei suggerimenti, "la soluzione indolore" credo che sia anche la più rapida, cmq vedrò di utilizzare i tuoi suggerimenti, anche se non ho ben capito che cosa è l'Error Cluster, dopo posso trovare informazioni? Ti ringrazio di tutto Ciccio ---------------------------------------- ================================================================================ Application builder... ================================================================================ AUTORE: 2440 DATA :27/08/2008 - 10:18:14 ---------------------------------------- Ho letto di recente l'articolo del febbraio 2007 di Gabriele Melani sull'Application Builder . Nonostante sia esauriente riguardo molti aspetti di questo toolkit che ha ancora punti oscuri, ho diverse domande da fare su argomenti non trattati nell'articolo. - se NON nascondo il block diagram al momento della creazione di un eseguibile (exe), è possibile vederlo solo collegandosi da un altro computer all'eseguibile tramite il remote panel? - la password che può essere immessa al momento della creazione del file eseguibile a cosa serve? possibile mettere una password all'accesso al block digram? - se nascondo il block diagram al momento della creazione dell'eseguibile, come posso recuperarlo? Grazie in anticipo per l'interesse, sarebbe bello avere una guida esauriente all'utilizzo dell'application builder che la national proprio non vuol fornire... \":)\" ---------------------------------------- AUTORE: 43 DATA :27/08/2008 - 13:44:47 ---------------------------------------- [quote="etanat":1gq2vhqv]Ho letto di recente l'articolo del febbraio 2007 di Gabriele Melani sull'Application Builder . Nonostante sia esauriente riguardo molti aspetti di questo toolkit che ha ancora punti oscuri, ho diverse domande da fare su argomenti non trattati nell'articolo. - se NON nascondo il block diagram al momento della creazione di un eseguibile (exe), è possibile vederlo solo collegandosi da un altro computer all'eseguibile tramite il remote panel?[/quote:1gq2vhqv]. Se è stato abilitato il debug, è possibile vedere il codice sorgente (i diagrammi dei VI che compopngono l'EXE) solamente dall'ambiente di sviluppo, quindi la caratteristica base per vedere quei sorgenti, è che sia presente LabVIEW sul PC nel quale gira l'eseguibile. Non avendo mai provato questa cosa però, non so... forse potrebbe essere necessario avere il file di progetto dell'applicazione... [quote="etanat":1gq2vhqv]- la password che può essere immessa al momento della creazione del file eseguibile a cosa serve? [/quote:1gq2vhqv] Quale password? E' possibile mettere una password ad una libreria per impedire ad altri utenti LabVIEW di aggiungere/cancellare/modificare VI all'interno della libreria stessa. Vedi help di LabVIEW [b:1gq2vhqv]Using LabVIEW Projects[/b:1gq2vhqv] alla voce [b:1gq2vhqv]Organizing Project Libraries[/b:1gq2vhqv] [quote="etanat":1gq2vhqv]possibile mettere una password all'accesso al block digram? [/quote:1gq2vhqv] Questo sì. Per ogni VI puoi impostare la password. Te lo sconsiglio. [quote="etanat":1gq2vhqv]- se nascondo il block diagram al momento della creazione dell'eseguibile, come posso recuperarlo?[/quote:1gq2vhqv] In che senso "nascondi"? O lo memorizzi, e in questo caso recuperi i diagrammi da ambiente di sviluppo cioè da LabVIEW, oppure non lo memorizzi per cui se hai cancellato il progetto o cmq hai perso i VI originali con i diagrammi sorgenti, NON POTRAI IN ALCUN MODO recuperarli XCHE' NON SONO NASCOSTI, NON CI SONO PROPRIO!!!! bye ---------------------------------------- ================================================================================ DA CVI A LABVIEW? ================================================================================ AUTORE: 2464 DATA :27/08/2008 - 14:31:00 ---------------------------------------- SALVE! UTILIZZO LABVIEW, MA IN QUESTO CASO DOVREI PASSARE A REALIZZARE UN VI A PARTIRE DA UN PROGRAMMA GIA REALIZZATO IN CVI. QUELCUNO SAPREBBE DIRMI SE C'E' UN MODO PER FARLO SENZA FATICARE TROPPO? NON MI INTERESSA DI CAPIRE COME E PERCHE', DEVO SOLO FARLO! IN OGNI CASO GRAZIE A CHIUNQUE RISPONDA!!! ---------------------------------------- ================================================================================ invio tramite connessione TCP ================================================================================ AUTORE: 2465 DATA :27/08/2008 - 15:52:25 ---------------------------------------- Salve a tutti, ho subito una domanda per voi. Ho creato una connessione TCP (a me interessa solo il lato server, il lato client lo faccio a parte in java) seguendo l'esempio fornito dalla National Instrument. Per chi voglia guardarlo può andare in examples/comm/TCP/TCP communicator - Passive.vi Ora, accendendo solo il passive (ossia il server) questo si mette in ascolto sulla sua porta 6342 e aspetta dati dal client. Il client fatelo con telnet (aprite telnet e digitate "open localhost 6342") iniziate a digitare e vedrete che i caratteri che avrete digitato saranno visualizzati in "their response" senza che voi pigiate invio. Vengo alla domanda. Io in realtà ho bisogno di inviare un numero, ma nel caso di numeri a due cifre, il server si prende solo la prima. Vorrei fare in modo che la stringa venga inviata del tutto, poi convertita in numero e inviata ad una porta parallela. La parte sulla porta parallela e la conversione in numero l'ho già gestita, diciamo che mi servirebbe soltanto un costrutto che riceva la stringa quando il client gliela invia "per intero". Spero di essere stato chiaro. Per qualsiasi dubbio fate riferimento all'esempio, magari se ci riuscite potete modificare quello e inviarmelo. Gazie anticipatamente a chi perderà parte del suo tempo per uno studente alle prese con LabView. ---------------------------------------- AUTORE: 43 DATA :28/08/2008 - 15:14:34 ---------------------------------------- [quote="giemme":3ffb8axv]... Io in realtà ho bisogno di inviare un numero, ma nel caso di numeri a due cifre, il server si prende solo la prima. Vorrei fare in modo che la stringa venga inviata del tutto, poi convertita in numero e inviata ad una porta parallela. La parte sulla porta parallela e la conversione in numero l'ho già gestita, diciamo che mi servirebbe soltanto un costrutto che riceva la stringa quando il client gliela invia "per intero". Spero di essere stato chiaro. Per qualsiasi dubbio fate riferimento all'esempio, magari se ci riuscite potete modificare quello e inviarmelo. Gazie anticipatamente a chi perderà parte del suo tempo per uno studente alle prese con LabView.[/quote:3ffb8axv] ciao giemme, nel VI di esempio, nel loop di ricezione la funzione [b:3ffb8axv]TCP Read[/b:3ffb8axv] è configurata in modo tale che vengono attesi 512 byte che dovrebbero arrivare entro 100 ms. Scaduto il tempo di Timeout vengono restituiti i caratteri effettivamente letti.... nel tuo caso viene letto solo un carattere La prima soluzione che ti propongo è di impostare un tempo di timeout + alto (1 sec?) ed impostare una attesa di 2 bytes. A già dimenticavo... immagino stiamo parlanto di "numeri" inviati in ASCII che devono poi essere convertiti... per avere una buona syncronizzazione sarebbe meglio inviare tutti numeri di 2 cifre per cui anche quelli a 1 cifra devono essere preceduti dal carattere '0' (zero) o ' '(spazio). Cmq tutte le letture fatte in questo modo prevendono un polling continuo della porta e la cosa migliore, soprattutto se si vogliono inviare stringhe di lunghezza diversa, è prevedere un "carattere terminatore". Non a caso anche il VI [b:3ffb8axv]TCP Read[/b:3ffb8axv] può terminare o a seguito della pressione del tasto "STOP" da LabVIEW oppure a seguito della ricezione del carattere ASCI (04) cioè digitare Ctrl+D da Telnet... Ti consiglio quindi di inviare da java client a server LabVIEW (e quindi deve essere atteso) un carriage return CR (ASCII (OD)) al termine di ogni messaggio e manenere una velocità di polling ragionevole (200 msec. è accettabile, ma dipende dalla Tua Applicazione) bye ---------------------------------------- AUTORE: 2465 DATA :29/08/2008 - 14:56:47 ---------------------------------------- Mea culpa, non avevo pensato ai 100 ms! Proverò e ti faccio sapere... Grazie mille. ---------------------------------------- AUTORE: 2465 DATA :02/09/2008 - 18:10:38 ---------------------------------------- perfetto, ho sistemato al meglio le cose, diciamo che sono stato tentato dal copiare l'esempio già fatto... \":oops:\" dunque, ti pongo subito un'altra questione. Restando sempre nell'ambito dell'applicazione LabView che funge da server messo in ascolto sulla sua bella porta, e del client in java che si connette ed invia numeri... come posso fare in modo che, nel momento in cui effettivamente viene instaurata la connessione TCP con il server, questo invii una stringa al client dicendo "Connessione riuscita"? Ossia, quale paramentro posso sfruttare per essere certo che la connessione sia riuscita? Grazie anticipatamente. ---------------------------------------- ================================================================================ Uso di DLL in labview ================================================================================ AUTORE: 2463 DATA :27/08/2008 - 18:11:25 ---------------------------------------- Salve, ho letto nel forum una vecchia discussione sull'uso di librerie di terze parti in labview. Io purtroppo non sono molto esperto ed è la prima volta che affronto un problema di questo tipo. Posseggo una libreria per l'interfacciamento su RS-485 di una sonda Geiger-Muller con Windows, tale libreria offre la possibilità di interfacciare la sonda con applicazioni scritte in C, Visula C++ e Visual Basic. Ora vorrei capire se sia possibile utilizzarla anche all'interno di Labview. Ho provato ha chiamarla per mezzo del Call Library Function Node, ma sto trovando delle difficoltà con i Parametri e con il tipo di ritorno delle funzioni. Per esempio, dalla documentazione della libreria una funzione dal prototipo " bool SetCommInit(long IndexSel, BYTE*pSerial) " che restituisce un valore booleano Come si trattono i tipi non previsti? Come si trattano i puntatori a tipi di dati definiti dall'utente? Grazie ---------------------------------------- AUTORE: 43 DATA :28/08/2008 - 06:17:55 ---------------------------------------- [quote="Raffaele":2rmyh53p]Salve, ho letto nel forum una vecchia discussione sull'uso di librerie di terze parti in labview. Io purtroppo non sono molto esperto ed è la prima volta che affronto un problema di questo tipo. Posseggo una libreria per l'interfacciamento su RS-485 di una sonda Geiger-Muller con Windows, tale libreria offre la possibilità di interfacciare la sonda con applicazioni scritte in C, Visula C++ e Visual Basic. Ora vorrei capire se sia possibile utilizzarla anche all'interno di Labview. Ho provato ha chiamarla per mezzo del Call Library Function Node, ma sto trovando delle difficoltà con i Parametri e con il tipo di ritorno delle funzioni. Per esempio, dalla documentazione della libreria una funzione dal prototipo " bool SetCommInit(long IndexSel, BYTE*pSerial) " che restituisce un valore booleano Come si trattono i tipi non previsti? Come si trattano i puntatori a tipi di dati definiti dall'utente? Grazie[/quote:2rmyh53p] Ciao Trattare i puntatori nel passaggio parametri verso una funzione contenuta in una dll , può rivelarsi un problema insormontabile se i puntatori sono "annidati" (puntatori a puntatori di puntatori...). La funzione [b:2rmyh53p]Call Library Function Node[/b:2rmyh53p] è in grado di gestire con sufficiente completezza, tutti gli altri casi anche piuttosto complessi. Il passaggio parametri di puntatori a stringhe, array o strutture (C struct) o array di strutture, non rappresentano un problema. Il successo dipende anche dalle conoscenze che il programmatore LabVIEW ha di altri linguaggi, in particolare la programmazione in linguaggio C. Nel caso specifico, bool SetCommInit(long IndexSel, BYTE *pSerial) presuppone le seguenti considerazioni: 1) si deve sapere esattamente a cosa corrisponde il tipo "bool". A naso direi che corrisponde ad un [b:2rmyh53p]int[/b:2rmyh53p] o molto + probabilmente ad un [b:2rmyh53p]long[/b:2rmyh53p]. quindi si può far corrispondere ad esso il tipo LabVIEW I32 passandolo x valore 2) il tipo long corrisponde esattamente al tipo intero di LV I32. Da notare che si potrebbe usare anche un U32 (unsigned long) senza probabilmente avere problemi. 3) il tipo puntatore a byte o array di byte può essere passato ad una funzione in 2 modalità LabVIEW: - passaggio di un array di bytes (puntatore ad array) o il passaggio di una stringa (puntatore a stringa). Direi che, nel caso si passi una stringa ASCII tipo "COM1", ci si dovrà ricordare di aggiungere un NULL character ('\00') in fondo alla stringa, come previsto da convenzione C. Per i dati + complessi, (array di strct o struct) si può passare una stringa o un array di byte. L'abilità del programmatore sta poi nel codificare/decodificare la sequenza di byte in uscita/ingresso avendo presente almeno che : 1) a seconda del compilatore con cui è stata generata la DLL, si deve tenere in cosiderazione eventuali "allineamenti in memoria" per es. se una struttura in liguaggio C occupa 3 byte e si deve passare un array di questa struttura, probabilmente si dovranno considerare cmq 4 byte per elemento. 2) tutti i campi numerici (int, long, float, double) devono essere "rovesciati" perchè la rappresentazione in memoria dei numeri in LaVIEW è stile vecchi processori Motorola (ad indirizzo "basso" (minore) corrisponde il byte + significativo, cercare "Big Endian" su Wikipedia)) Con questo non voglio esaurire l'argomento, ma spero quantomeno di esserti stato d'aiuto bye ---------------------------------------- ================================================================================ Assegnare nomi ai grafici in un "mixed signal graph" ================================================================================ AUTORE: 645 DATA :28/08/2008 - 10:44:49 ---------------------------------------- Qualcuno sa indicarmi come assegnare dei nomi ai grafici inseriti in un "mixed signal graph"? Si default LabView utilizza le etichette "plot"+n.° grafico in successione... Io vorrei sostituire queste etichette con i nomi dei grafici. Ho guardato i Property Node ma non ne trovo uno adatto al mio scopo... Si può fare? Non riesco a trovare nessuna indicazione... ---------------------------------------- AUTORE: 43 DATA :28/08/2008 - 13:48:58 ---------------------------------------- [quote="MagicBotolo":1nqkdwfo]Qualcuno sa indicarmi come assegnare dei nomi ai grafici inseriti in un "mixed signal graph"? Si default LabView utilizza le etichette "plot"+n.° grafico in successione... Io vorrei sostituire queste etichette con i nomi dei grafici. Ho guardato i Property Node ma non ne trovo uno adatto al mio scopo... Si può fare? Non riesco a trovare nessuna indicazione...[/quote:1nqkdwfo] Argomento già ampiamente trattato ma andato perso. Ricordo di aver postato questa immagine [attachment=2:1nqkdwfo]XYgraphProperty.JPG[/attachment:1nqkdwfo] ma Ti posso fornire un es. [attachment=1:1nqkdwfo]PlotName.vi[/attachment:1nqkdwfo] [attachment=0:1nqkdwfo]PlotName.vi[/attachment:1nqkdwfo] In questo Tipo di grafico puoi aggiungere nuove "plot Area" solo A MANO (non programmaticamente, non esiste il metodo) e non è possibile cambiare il nome del gruppo (Group 0, Group 1, Group n) visualizzato nel treeview di sx. Anche l'informazione associata al singolo Plot riguardante il "gruppo di appartenenza" non è accessibile. Almeno così mi risulta. bye ---------------------------------------- ================================================================================ Counter VI ================================================================================ AUTORE: 2215 DATA :28/08/2008 - 11:25:49 ---------------------------------------- Ciao! Uso LV6 Esiste un qualcosa che mi dice quante volte è stato eseguito un determinato sottoVI Grazie ---------------------------------------- AUTORE: 43 DATA :28/08/2008 - 14:23:36 ---------------------------------------- [quote="robyf1":izh7dm07]Ciao! Uso LV6 Esiste un qualcosa che mi dice quante volte è stato eseguito un determinato sottoVI Grazie[/quote:izh7dm07] Tools -> Advanced -> Profile Vi... Ti apre un pannellino... Leggiti l'Help. bye ---------------------------------------- AUTORE: 2215 DATA :28/08/2008 - 15:04:41 ---------------------------------------- Mi sono spiegato male....... mi serve sapere se c'è un vi property che mi dice se è la centesima volta che sta girando (per esempio) ---------------------------------------- AUTORE: 43 DATA :28/08/2008 - 15:35:07 ---------------------------------------- [quote="robyf1":xrd20u0l]Mi sono spiegato male....... mi serve sapere se c'è un vi property che mi dice se è la centesima volta che sta girando (per esempio)[/quote:xrd20u0l] Non mi risulta che esista neanche il LV 8.6. Francamente non so nemmeno che senso abbia. bye ---------------------------------------- AUTORE: 2215 DATA :29/08/2008 - 09:31:17 ---------------------------------------- Era solo per risparmiare una variabile globale che mi faceva da counter ---------------------------------------- AUTORE: 1078 DATA :29/08/2008 - 10:51:07 ---------------------------------------- Vedi se questo ti può aiutare.... Non utilizza le veriabili globali! Questo è il VI principale: [attachment=1:1tgcvya2]Main.gif[/attachment:1tgcvya2] Questo è il VI secondario: [attachment=0:1tgcvya2]Secondary.gif[/attachment:1tgcvya2] Il metodo utilizzato è quello delle state-machine se ti serve trovi esempi nella guida on-line! ---------------------------------------- AUTORE: 2215 DATA :29/08/2008 - 11:02:33 ---------------------------------------- Sai come mai non riesco a vedere le immagini che mi hai proposto ---------------------------------------- AUTORE: 1078 DATA :29/08/2008 - 11:14:05 ---------------------------------------- No, non lo so. Hai provato a cliccarci su...? Magari devi prima scaricarle. Sono semplicissime gif... ---------------------------------------- AUTORE: 2215 DATA :29/08/2008 - 12:38:56 ---------------------------------------- Si uso la macchina stati e mi trovo bene. Il problema è che i sotto Vi che modifico hanno tutti i connettori occupati. Quindi sto cercando delle soluzioni meno invasive possibile. Queste eventuali vi proroperty mi potrebbero tornare utili ---------------------------------------- AUTORE: 2215 DATA :29/08/2008 - 12:55:09 ---------------------------------------- Una precisazione la secondary.gif non è corretta (bisogna togliere lo 0) ---------------------------------------- AUTORE: 43 DATA :29/08/2008 - 15:53:28 ---------------------------------------- [quote="robyf1":lm1ophqb]Una precisazione la secondary.gif non è corretta (bisogna togliere lo 0)[/quote:lm1ophqb] già... Lo avevo notato anch'io. Altrimenti lo shift register perde di significato... Purtroppo non ho installato LabVIEW 6, ma, potresti risolvere il Tuo problema creando un unico VI e sfruttando la Funzione LabVIEW "Call Chain". ti posto l'esempio in LabVIEW 7.1 + le schermate in jpg [attachment=0:lm1ophqb]count VI exec.zip[/attachment:lm1ophqb] Nell'esempio ci sono 3 subVI dove il "subVI C" richiama il "subVI A". Come puoi notare il conteggio delle chiamate (cioè esecuzioni) dei VI è esatto. Mentre sta girando il programma puoi verificare i conteggi delle chiamate semplicemente aprendo un VI untitled, mettendoci dentro una chiamata al VI di conteggio in modalità "readonly" (altrimenti conta pure le tue chiamate da untitled!!) e visualizzando nel front panel i nomi dei VI e i rispettivi conteggi. Io continuo a pensare che questo conteggio sia perfettamente inutile se non per debug e quindi userei "Profile VIs..." Se non capisci non esitare a chiedermi ---------------------------------------- AUTORE: 1078 DATA :01/09/2008 - 13:35:34 ---------------------------------------- Avete ragione, lo 0 non va messo.... la forza dell'abitudine di inizializzare le variabili! L'esempio di paracarro mi sembra un'ottima soluzione. Direi anzi che è sicuramente la migliore. Leggera veloce e precisa. Ciao alla prox... ---------------------------------------- ================================================================================ XY Graph: plot legend ribelle ================================================================================ AUTORE: 1124 DATA :29/08/2008 - 12:28:01 ---------------------------------------- Ciao ho il seguente problema: devo inserire in un XY graph 21 (ci stanno) curve che rappresentano 3 gruppi di informazioni eterogenee tra loro sebbene correlate. Ho realizzato un VI all'interno del quale in un XY graph ho formattato la PLOT LEGEND affinchè vi fossero 3 gruppi di rappresentazione: 7 linee continue, 7 linee tratteggiate e 7 cerchi, con 7 colori distinti. Tutto ha funzionato fino a quando ho deciso di presentare i risultati mostrando solo una parte della PLOT LEGEND: ho ridimensionato la finestra della PLOT LEGEND fino a mostrare le prime 7 curve. Il risultato è stato un grafico con le prime 7 curve formattate correttamente secondo quanto impostato ed le altre 14 disegnate con la riga continua fine con i colori di default. Sono convinto di avere qualche impostazione errata, ma riesco a capire quale: a qualcuno è già capitato? come ha risolto la questione? allego un vi ridotto in cui evidenzio il problema. grazie per la collaborazione. Uso LV7.1 e WinXP ---------------------------------------- AUTORE: 645 DATA :29/08/2008 - 15:54:06 ---------------------------------------- Secondo me ti conviene settare le impostazioni dei grafici tramite Property Node... In questo modo dovresti poter recuperare le informazioni quando serve. Potresti preparare tutti i diversi tipi di grafico con le linee e i colori che vuoi e poi gestire eventi di interazione con la legenda (sempre che si possa... non ho mai provato...). ---------------------------------------- AUTORE: 1124 DATA :30/08/2008 - 15:34:40 ---------------------------------------- Ciao Avevo pensato alla stessa soluzione, che presenta anche il vantaggio di essere portabile. Volevo evitare di inserirla nella applicazione specifica per evitare di riaprire il programma che ho già distribuito ad alcuni colleghi. In realtà sono convinto che sia una impostazione dei parametri di labview, perchè sono quasi sicuro di avere tirato su e giù la tendina della plot legend in fase di preparazione del VI senza perdere la formattazione custom. Ad ogni modo adotterò il suggerimento. Per completezza ti informo che momentaneamente ho ovviato all'inconveniente inserendo un xy graph dummy di dimensioni tali da essere coperto dalla propria plot legend che presenta solo 7 curve. Ho posizionato questo grafico al posto della plot legend (hidden) del primo grafico. Sistema poco elegante, ma funzionante. Grazie e buon week-end. ---------------------------------------- AUTORE: 43 DATA :31/08/2008 - 11:58:01 ---------------------------------------- [quote="stefanog":2dvp21i5]... Sono convinto di avere qualche impostazione errata, ma riesco a capire quale: a qualcuno è già capitato? come ha risolto la questione?[/quote:2dvp21i5] il problema consiste nel ridimensionamento dell' "Plot array" interno al controllo [i:2dvp21i5]xygraph[/i:2dvp21i5], quando manualmente si riduce la Plot Legend. Vengono perse tutte le info pertinenti al plot nascosti, e, al successivo ri-allungamento della [i:2dvp21i5]Plot Legend[/i:2dvp21i5] vengono inseriti valori di default, plot name, plot color ecc., invece di ripristinare i precedenti. Non so se il problema dipenda dal S.O., ma sicuramente non dipende dalla versione LV dato che il problema esiste anche per LV8.2.1 (devo verificare LV 8.6). Il problema, fra l'altro, è comune al [i:2dvp21i5]WaveForm Graph[/i:2dvp21i5], ma NON al [i:2dvp21i5]WaveForm Chart[/i:2dvp21i5]. Fidandomi delle Tue osservazioni, sono andato diretto a modificare l'unica opzione a mio parere pertinente al "disegno dei controlli" cioè: Tools -> Options... -> Front Panel -> Use smooth updates during drawing ma non ho ottenuto alcun successo. Nemmeno modificando la proprietà del controllo tasto dx mouse su xygraph -> Advanced -> Smooth Updates si risolve il problema. Finchè non ho provato a "spostare" la plot legend. Sembra incredibile, ma non sovrapponendo la plot legend al Graph il problema svanisce...[attachment=1:2dvp21i5]2ComportamentiDiversi.vi[/attachment:2dvp21i5] _____________________________________________________________ Cmq sia visualizzare 21 Plot contemporaneamente a mio modo di vedere non ha molto senso. In particolare non mi piace l'uso dei tratteggi e del point style. Una soluzione che ti propongo è appena abbozzata in questo VI [attachment=0:2dvp21i5]test_xy_graph.vi[/attachment:2dvp21i5] In soldoni, si tratta di rendere invisibili (colore transparent) tutte le tracce e rendere visibili solo quelle prescelte dall' operatore con l'unico limite che se ne possono vedere 8 alla volta. (secondo me sono già troppe...). Ho già postato un esempio simile ma è andato perso. Ovviamente partendo da questo esempio si possono fare un bel po'di cose: 1) metterei un ring che carica "gruppi"predefiniti di tracce visualizzate contemporaneamente. Si potrebbe dare poi l'opportunita' all'operatore di creare propri gruppi e il tutto potrebbe essere memorizzato in un file di config. 2) limitare la selezione delle tracce disponibili scegliendo solo fra quelle non ancore visulizzate. Ciò comporterebbe che l'array PlotLegend sia sostituito da un Cluster per cui si possono impostare in maniera differenziata le tracce selezionabili... 3)se si prevede la presenza di cursori mettere una gestione appropriata del "lock to plot" fammi sapere bye ---------------------------------------- AUTORE: 1124 DATA :01/09/2008 - 09:55:32 ---------------------------------------- Ciao Grazie a tutti per i consigli ed il tempo che avete dedicato per capirci qualcosa. E' possibile che durante la fase iniziale di preparazione del VI abbia spostato di qualche pixel la legend e poi la abbia successivamente riposizionata. Questo spiegerebee perchè inizialmente non perdevo la formattazione custom. Sono pienamente daccordo che 21 curve in un diagramma sono eccessive. Questo è un caso particolare in cui si devono mostrare i comportamenti di un componente sottoposto al massimo a 7 differenti test. In effetti le curve sono 14: 7 a tratto continuo (curva reale) e 7 tratteggiate (curva ideale). Le ultime "curve" altro non sono che punti costituiti da una coppia di unica di coordinate XY: identificano punti particolari di lavoro del componente in prova. Molto interessante la tecnica suggerita per mostrare grafici personalizzati. Uno dei problemi tipici che incontro quando devo realizzare e distribuire un applicativo ai colleghi è quello di permettere una personalizzazione del format finale dei report senza obbigarli ad usare spreadsheet program. Grazie davvero. ---------------------------------------- AUTORE: 487 DATA :09/09/2008 - 08:07:45 ---------------------------------------- Ciao Stefanog, [quote:2rxegipr] Tutto ha funzionato fino a quando ho deciso di presentare i risultati mostrando solo una parte della PLOT LEGEND: ho ridimensionato la finestra della PLOT LEGEND fino a mostrare le prime 7 curve. Il risultato è stato un grafico con le prime 7 curve formattate correttamente secondo quanto impostato ed le altre 14 disegnate con la riga continua fine con i colori di default. [/quote:2rxegipr] io ho installato la versione 8.6 di labview e il tuo problema non mi si è presentato: forse le menti della NI hanno risolto anche questo bug?!? ---------------------------------------- AUTORE: 1124 DATA :16/09/2008 - 11:15:05 ---------------------------------------- Ciao Coma ho ricevuto in questi giorni la versione 8.6 e devo decidermi ad installarla. Continuo a lavorare con la 7.1 per un semplice motivo di distribuzione "spaziale" degli applicativi all'interno della azienda dove lavoro. Questo porta a volte a scervellarsi per problemi che sono stati già risolti, come in questo caso. Grazie. ---------------------------------------- AUTORE: 43 DATA :15/10/2008 - 11:08:38 ---------------------------------------- Nuova versione dell'esempio precedentemente postato [attachment=0:3dzg7dbo]grafici multipli1.zip[/attachment:3dzg7dbo] ---------------------------------------- ================================================================================ Variabile globale ================================================================================ AUTORE: 2215 DATA :02/09/2008 - 08:09:38 ---------------------------------------- Ciao! Si può linkare sul pannello frontale una variabile globale, vorrei fosse aggiornata anche quando il controllo viene preso da un sottoVi. Grazie ---------------------------------------- AUTORE: 43 DATA :02/09/2008 - 08:14:47 ---------------------------------------- [quote="robyf1":19t3k89a]Ciao! Si può linkare sul pannello frontale una variabile globale, vorrei fosse aggiornata anche quando il controllo viene preso da un sottoVi. Grazie[/quote:19t3k89a] Non basta tenere aperto il pannello della globale? x link cosa intendi? un variabile locale doppione della globale? e come la aggiorni: in polling? meglio usare una functional global... ---------------------------------------- AUTORE: 2215 DATA :02/09/2008 - 08:47:04 ---------------------------------------- Credo che non posso tenere aperto il pannello delle variabili globali perchè è un programma compilato, in aggiunta il pannello delle variabili globali contiene altre variabili che non voglio siano viste. xlink intendo un aggiornamento dinamico anche quando stanno girando dei SottoVi Di SottoVi Scusa ma non so cosa è il polling La functional global la posso richiamare solo quando il vi ha di nuovo il controllo. almeno credo ---------------------------------------- AUTORE: 43 DATA :02/09/2008 - 09:31:15 ---------------------------------------- [quote="robyf1":23ilb6vy]Credo che non posso tenere aperto il pannello delle variabili globali perchè è un programma compilato, in aggiunta il pannello delle variabili globali contiene altre variabili che non voglio siano viste.[/quote:23ilb6vy] Questo vuol dire che vuoi debuggare un codice compilato. Rendere "visibile" qualcosa per debug in un sw compilato, anche se protetto da una password speciale, è una cosa spesso inutilmente sofisticata [quote="robyf1":23ilb6vy]xlink intendo un aggiornamento dinamico anche quando stanno girando dei SottoVi Di SottoVi[/quote:23ilb6vy] il problema non è il livello di "nesting"(annidamento) di chiamate a sottoVI... Supponi che ci sia un VI che aggiorna la Tua globale ed un altro che la aggiorna dopo 1 ms... Ne apprezzeresti a video la velocità di variazione? [quote="robyf1":23ilb6vy]Scusa ma non so cosa è il polling[/quote:23ilb6vy] Ti rimando a Wikipedia. Il concetto è piuttosto semplice. http://en.wikipedia.org/wiki/Polling_(computer_science) [quote="robyf1":23ilb6vy]La functional global la posso richiamare solo quando il vi ha di nuovo il controllo. almeno credo[/quote:23ilb6vy] No La functional Global E' LA TUA GLOBALE. Siccome non si tratta di una globale costituita da il solo dato, ma comprende pure del codice, puoi fargli fare quello che Ti pare. Riagganciandomi a quanto detto prima, si tratta di fare un VI che "scrive in un file" tutte le informazioni che ti servono: valore scritto nella globale (costituita da uno shift register), data e ora della modifica, Call Chain che individua esattamente "la catena delle chiamate". Eventualmente puoi loggare anche la lettura della globale. L'abilitazione di questo "log" di debug la metti in un file di configurazione. Sia durante l'esecuzione,sia al termine, puoi consultare il Tuo file di log... a patto che tu lo chiuda ad ogni scrittura... bye ---------------------------------------- AUTORE: 2215 DATA :02/09/2008 - 09:48:54 ---------------------------------------- In realtà il mio cluster globale contiene degli indicator che mi danno lo stato di alcuni plc. E vorrei prendere questo cluster (che vuole vedere anche il cliente) e visualizzarlo sul pannello del main anche quando sono in esecuzione dei sottoVi di sottoVi ---------------------------------------- AUTORE: 43 DATA :02/09/2008 - 10:09:11 ---------------------------------------- [quote="robyf1":ksdfozn3]In realtà il mio cluster globale contiene degli indicator che mi danno lo stato di alcuni plc. E vorrei prendere questo cluster (che vuole vedere anche il cliente) e visualizzarlo sul pannello del main anche quando sono in esecuzione dei sottoVi di sottoVi[/quote:ksdfozn3] Fai una functional global che contiene il "Reference" al tuo cluster. La funzione "init" inizializzala con il reference al Cluster che sta new pannello principale Poi metti a disposizione le funzioni di "lettura" e "scrittura" che leggono e scrivono direttamente nel controllo nel main panel. Sostituisci tutti i punti nel codice e il gioco è fatto. bye ---------------------------------------- ================================================================================ Passaggio di array da 255 valori fra FPGA e Host ================================================================================ AUTORE: 1670 DATA :03/09/2008 - 13:03:47 ---------------------------------------- Ciao a tutti, dopo diversi mesi mi ritrovo a dover lavorare ancora con FPGA (Scheda NI7831R) e tanto per cambiare mi ritrovo un problema che non riesco a risolvere. In sostanza devo passare un vettore 1D di 255 valori a 16 bit tra FPGA e Host, ma sembra che il compilatore non digerisca (tempi lunghissimi di compilazione senza fine) la dimensione dell'array. La scheda ha almeno 1 MB di memoria e quindi ,da quello che posso capire, non dovrebbe avere problemi con vettori così piccoli. Preciso che il programma che sto testando è ridotto in pratica al vettore, 3 o 4 variabili e un paio di cicli, qundi non dovrebbe occupare molto spazio (ho compilato senza problemi programmi almeno 40 50 volte più pesanti). Qualcuno di voi sa se c'è un limite alla dimensione degli array usati per passare dati fra Host ed FPGA ? Oppure sapete dirmi se ci sono altre tecniche per passare i vettori tra le due unità ? (escludo per il momento la "serializzazione" del vettore). Grazie per l'attenzione e buon lavoro a tutti \"8)\" \"8)\" \"8)\" \"8)\" ---------------------------------------- AUTORE: 4 DATA :09/09/2008 - 09:45:27 ---------------------------------------- Ciao io uso le FIFO tra FPGA e Host RT e funzionano molto bene, usano il DMA quindi sono molto veloci, unico "limite" è che trasferiscono dati a 32bit quindi per sfruttarle al meglio devi "impacchettare" i dati in 32 bit. Ciao ---------------------------------------- AUTORE: 1670 DATA :11/09/2008 - 09:10:50 ---------------------------------------- Cia ale914 e grazie di aver risposto. Anche per me sarebbe comodo usare le fifo per il passaggio di dati da FPGA a Host, ma sembra che la versione 7.1 di LabVIEW (che uso in questo momento) non me lo permetta, cosa che, da quanto letto su un documento trovato su NI Developer Zone, è possibile fare dalla versione 8 in poi. [color=#FF0000:2lgesblt]Volevo chiederti se tu usi questa tecnica con la versione 8, o sucessive, o se ti è capitato di usarla anche con la versione 7.1[/color:2lgesblt] .Se le cose stanno così è chiaro che mi conviene al più presto passare ad una versione più aggiornata di LV e questo mi complicherebbe non poco le cose, ma se i vantaggi sono più velocità e sopratutto più semplicità del sorgente credo che ne valga la pena. Ciao e grazie \"8)\" \"8)\" \"8)\" \"8)\" ---------------------------------------- AUTORE: 4 DATA :11/09/2008 - 09:54:59 ---------------------------------------- ora uso le fifo il labview 8.5, non ricordo se le ho mai usate con la 7.1 quindi potrebbe essere come dici tu, che sono supprotate dalla 8.x in poi ---------------------------------------- ================================================================================ Routing (Switchin) dei segnali ================================================================================ AUTORE: 2469 DATA :08/09/2008 - 22:15:44 ---------------------------------------- Aiutatemi a risolvere questo problema Devo costruire un SubVi che ha 5 ingressi. La figura in basso vi aiuterà a capire. Prende in ingresso un vettore (vettore in) fa la somma degli elementi, se tale somma = 1 allora il subvi realizza un partikolare collegamento tra i suoi ingressi altrimenti se la somma è <1 il subVi realizza un altro tipo di collegamento tra gli ingressi. In pratica realizza un Routing dei segnali in base ad una particolare condizione (somma degli elementi del Vettore In). Avevo pensato di utilizzare l'oggetto Switch ma non va bene, perkè impostando come Scalar il tipo di Controllo , mi da errore sui Vettori di ingresso input 1 e input 2 [img:253hq4n0]http://www.sun-art.org/myspace/switch.jpg[/img:253hq4n0] [img:253hq4n0]http://www.sun-art.org/myspace/labv.jpg[/img:253hq4n0] ---------------------------------------- AUTORE: 645 DATA :09/09/2008 - 08:20:55 ---------------------------------------- E fare un qualcosa del tipo: fai entrare un segnale di ingresso, verifichi una condizione e fai uscire i segnali di uscita e una flag (vero o falso). Poi, in cascata al blocco verifichi se la flag è vera o falsa e in base a questo utilizzi un segnale in uscita piuttosto che l'altro... non so se ho capito bene il problema... Ma devi usare per forza il Simulation Module? Non perchè non funzioni... solo per capire se si possono pensare soluzioni alternative con comandi diversi! ---------------------------------------- AUTORE: 1078 DATA :11/09/2008 - 12:37:59 ---------------------------------------- Ciao, Non so se (come chiesto da Magic) è obbligator io l'utilizzo del simulation module. Io comunque la risolverei così: [attachment=2:yflwv3nv]Sommatoria_0.JPG[/attachment:yflwv3nv] [attachment=1:yflwv3nv]Sommatoria_1.JPG[/attachment:yflwv3nv] ---------------------------------------- AUTORE: 2469 DATA :11/09/2008 - 19:23:41 ---------------------------------------- non va bene, nel tuo esempio hai messo come ingresso e uscita al subVI Oggetti Indicatori, invce gli input e output del subVI devono essere degli oggetti Matrici di dimensioni qualunque. quando sostituisco gli Indicatori con le Matrici si verifica un errore, non è possibile collegare input e output attraverso il Case Structure ecco quello che succede se utilizzando il subVI Sommatoria così come me lo hai gentilmente postato ERRORE nel VI principale [img:2xjjpiif]http://www.sun-art.org/myspace/routing.jpg[/img:2xjjpiif] ecco quello che succede se nel subVI sostituisco gli Oggetti Indicatori in oggetti Matrix [img:2xjjpiif]http://www.sun-art.org/myspace/errore.jpg[/img:2xjjpiif] ---------------------------------------- AUTORE: 487 DATA :12/09/2008 - 07:49:02 ---------------------------------------- Ciao mariolino, scusa la domanda ma non mi è chiara una cosa: gli ingressi e le uscite del tuo subvi sono vettori o matrici? ---------------------------------------- AUTORE: 2469 DATA :12/09/2008 - 11:53:09 ---------------------------------------- gli ingressi e le uscite sono oggetti Matrix, 1 colonna e N righe (quindi un vettore) ---------------------------------------- AUTORE: 487 DATA :12/09/2008 - 12:52:33 ---------------------------------------- C'è qualcosa che mi sfugge: se sono tutti vettori la soluzione di Ricky dovrebbe funzionare! ---------------------------------------- ================================================================================ Problema con il testo dell'sms inviato ================================================================================ AUTORE: 2438 DATA :09/09/2008 - 10:43:48 ---------------------------------------- Ciao a tutti, ho un problemino con il programma che invia gli sms, vi spiego la situazione. L'sms me lo invia senza problema, ma quando lo ricevo dovrei ottenere una cosa del tipo: 09_09_2008_11_12_19.3.0.1.I[14.3;17.3] e invece ottengo: 09§09§2008§11§12§19.3.0.1.I(a con 2 punti sopra)14.3;17.3(n con una tilde) imposto la modalità testo per il modem gsm (AT+CMGF=1), utilizzo un siemens tc35i. Posso fare qualcosa in labview o è solo un problema di cattivo settaggio del modem? Se è un problema di settaggio qualcuno saprebbe aiutarmi? Ho letto e riletto il manuale ma non trovo niente che mi possa servire. Grazie mille Ciccio ---------------------------------------- ================================================================================ Run continuously ================================================================================ AUTORE: 925 DATA :10/09/2008 - 11:15:50 ---------------------------------------- Ciao a tutti, vorrei sapere se tra le "VI properties" esiste una voce che permette ad un VI di girare continuamente (come con la pressione del tasto Run Continuously) dopo essere stato aperto, perchè io ho trovato solo la voce "Run when opened". Vi chiedo questo perchè sto realizzando un'applicazione stand-alone con l'application builder e mi occorre che il VI giri in continuazione quando viene aperto. Grazie in anticipo a tutti. Ciao, Adriano ---------------------------------------- AUTORE: 645 DATA :10/09/2008 - 13:52:05 ---------------------------------------- Puoi sempre inserire tutto il VI in un ciclo While con condizione di uscita mai verificata (per esempio, se scegli di terminare il ciclo con un valore true colleghi al terminale una variabile false in modo che non si mai verificata la condizione di uscita). ---------------------------------------- AUTORE: 925 DATA :10/09/2008 - 16:10:26 ---------------------------------------- Vero, non ci avevo pensato \":)\" Grazie mille! ---------------------------------------- AUTORE: 1078 DATA :11/09/2008 - 10:56:41 ---------------------------------------- Magic, la tua è però una soluzione un pò pericolosa. L'esecuzione permanete di un VI su un sistema potrebbe bloccare le risorse della macchina in modo permanente, ad esempio se ci sono variabili che arrivano ai loro limiti. Sicuramente è meglio avere sempre una possibilità per controllare lo stop di un VI. Avere su un sistema un loop infinito senza possibilità di uscita non è il massimo in termini di prestazioni e controllo. Potresti controllare il ciclo legandogli la parte boleana di un cluster di errore. Se ci dovessere essere un qualsiasi errore il loop verrebbe bloccato. Oppuer inserire un controllo boleano che comanderesti dall'esterno del VI. Poi le soluzioni sono tante, vedi tu quella più adatta alla tua applicazione. Buon lavoro. ---------------------------------------- AUTORE: 645 DATA :11/09/2008 - 13:04:37 ---------------------------------------- Concordo pienamente: effettivamente avere un ciclo infinito non è mai una buona cosa a meno che il ciclo sia controllato da una condizione di uscita... L'idea di utilizzare il cluster di errore come condizione è ottima! \":D\" ---------------------------------------- ================================================================================ TCP read ================================================================================ AUTORE: 2465 DATA :10/09/2008 - 12:07:30 ---------------------------------------- Ciao a tutti, avrei bisogno del consiglio di qualcuno più esperto di me... cerco di spiegare il problema. Sto lavorando con le connessioni TCP, in sostanza mi occorre inviare un bit (che so già da dove prendere) dal server (fatto in LabView) ad un client che ha già stabilito una connessione remota, SOLO QUANDO QUESTO BIT COMMUNTA). Ora il blocco TCPWrite non permette di selezionare alcuna opzione riguardo al "quando" inviare il dato. Dovrei quindi realizzare il costrutto da me? Avete qualche idea? Grazie anticipatamente. Gianluca ---------------------------------------- AUTORE: 645 DATA :10/09/2008 - 13:53:17 ---------------------------------------- Penso proprio che dovresti controllare il valore all'interno di un ciclo: quando il valore è diverso rispetto al ciclo precedente significa che la grandezza è commutata e tu invii il valore. Per i confronti tra cicli puoi usare gli Shift Register. ---------------------------------------- ================================================================================ Connessione TCP ================================================================================ AUTORE: 2470 DATA :11/09/2008 - 15:06:47 ---------------------------------------- [color=#0000BF:1t3s3zip]Ciao a TUTTI e grazie sin d'ora a chi vorrà rispondermi! Ho qualke problema con la connessione TCP e vorrei avere dei chiarimenti in merito ed eventualmente delle possibili soluzioni al problema. Ho creato banalmente un server ed un client TCP ed ho notato il seguente comportamento: lato server creo SOLAMENTE il listener utilizzando la vi TCP Create Listener (non utilizzo la vi Listen.vi!!!!) lato client utilizzo la vi TCP Open connection. Mi aspettavo che il client non fosse in grado di aprire la connessione fin tanto che lato server non mi fossi messo in ascolto sul listener creato; invece non solo il client si connette senza restituire alcun errore ma non ho errore neanche se provo a scrivere dati sulla connessione!!!!! L'unico errore che mi restituisce dopo qualke tempo è il 66 ma credo che ciò sia conseguenza del fatto che ad un certo punto si sia riempito il buffer della scheda! Qualcuno può confermarmi questo comportamento? C'è una soluzione al problema? Grazie Ciao Erminio [/color:1t3s3zip] ---------------------------------------- AUTORE: 927 DATA :17/09/2008 - 09:53:52 ---------------------------------------- Ho provato e confermo che fa anche a me lo stesso scherzo. Probabilmente non è un problema ma un comportamento voluto. Fà mandare un "messaggio di benvenuto" dal server; se il client non riceve il messaggio, vuol dire che non il server non è ancora in ascolto. Piccolo appunto: dopo "Create listener" dovresti chiamare "Wait on listener" per ricevere una connessione. "Listen" è un VI alternativo che racchiude entrambe le cose (Create + Wait) ---------------------------------------- ================================================================================ Cambiare contrasto ================================================================================ AUTORE: 413 DATA :12/09/2008 - 10:58:09 ---------------------------------------- Esiste la possibilità di cambiare il contrasto dello schermo (o almeno del front panel tanto e' a schermo intero) tramite labview? Che mi servirebbe poterla regolare manualmente, ma in base all'illuminazione della stanza (altrimenti non si vede di giorno o da fastidio di notte) Girando su internet non mi sembrauna cosa che viene considerata molto ---------------------------------------- AUTORE: 927 DATA :17/09/2008 - 08:54:59 ---------------------------------------- Dubito in generale che si possa fare tramite il computer... Sicuramente non c'è una funzione apposita in Labview; dovresti prima indagare se la tua scheda video supporta richieste del genere. Non basterebbe cambiare semplicemente il colore di sfondo (o altri colori) del front panel? ---------------------------------------- AUTORE: 645 DATA :17/09/2008 - 15:42:42 ---------------------------------------- Però tramite Property Node si può accedere alle proprietà del VI in esecuzione (tipo nome visualizzato in alto nella barra e altre cosine...): magari c'è la possibilità di cambiare il colore di sfondo. E si può pensare di cambiare anche il colore dei controlli e degli indicatori presenti sullo schermo per rendere meno netto il contrasto... ---------------------------------------- ================================================================================ velocità angolare di un inclinometro ================================================================================ AUTORE: 2471 DATA :14/09/2008 - 15:12:26 ---------------------------------------- Salve a tutti! Ho realizzato un inclinometro con un sub Vi "AI sample Channel".Riesco ad ottenere l'angolo di inclianzione.Ora vorrei trovare la velocità angolare. o pensato di calcolarlo estrapolando due valori di angoli e farne il rapporto incrementale ma non riesco a trovare un modo per cercare i rispettivi istanti di tempo in cui si trovano gli angoli. Mi sapreste dare indicazioni? Grazie Francesco ---------------------------------------- AUTORE: 1124 DATA :16/09/2008 - 12:00:15 ---------------------------------------- Ciao ammesso che la velocità angolare si derivi dalle due letture di angolo dovresti leggere anche i tempi a cui esegui le letture e fare il rapporto tra la differenza angolare ed il tempo trascorso. ---------------------------------------- AUTORE: 2471 DATA :16/09/2008 - 15:42:03 ---------------------------------------- ....giusto.Il problema è costruire un block diagram che lo faccia. ---------------------------------------- AUTORE: 1124 DATA :16/09/2008 - 19:53:10 ---------------------------------------- Ok. con che periodo campioni le misure angolari? le letture sono temporizzate e quindi periodicamente aggiornate in modo automatico o avvengono in modo arbitrario ad esempio su pressione di un tasto da parte dell'operatore? se il tuo "sample.." è già all'interno di un ciclo che si ripete dovrebbe essere sufficiente prendere il tempo assoluto (ms) con la funzione con l'icona dell'orologio ad ogni giro e sottrargli quello del giro precedente. se invece hai la necessità di leggere due misure consecutive a distanza di tempi lunghi (ore)occorre campionare la data in modo differente e fare la differenza tra i secondi. Sono fuori sede e non riesco ad essere più preciso di così; se riesci a postare la sezione di block diagram in cui fai la lettura dell'inclinometro potrei dargli un'occhiata appena rientro. buona serata ---------------------------------------- AUTORE: 2471 DATA :21/09/2008 - 12:14:55 ---------------------------------------- ...dopodomani ti mando il file jpeg del programma. Ci sentiamo Grazie ---------------------------------------- AUTORE: 2471 DATA :24/09/2008 - 18:42:43 ---------------------------------------- ....sono riuscito a risolverlo. Grazie comunque. ---------------------------------------- ================================================================================ SubVi e PropertyNode ================================================================================ AUTORE: 847 DATA :18/09/2008 - 14:10:52 ---------------------------------------- Ciao, ho creato un *.vi dove ho usato alcuni poperty node legati ad alcuni ingressi. Successivamente creo il SubVi e lo inserisco su un altro vi. Durante l'esecuzione va in errore in quanto i property node non sono più legati a nessuna variabile. Come posso fare per ovviare a questo problema? Grazie ---------------------------------------- AUTORE: 927 DATA :19/09/2008 - 08:21:42 ---------------------------------------- Devi passare le "reference" dei controlli (tasto dx sul controllo -> Create reference) come ingressi al subVI. Il subVI manda le reference in ingresso ai property node, e riesce così ad agire sui controlli dell'altro VI. ---------------------------------------- AUTORE: 847 DATA :19/09/2008 - 08:40:20 ---------------------------------------- Cercavo un metodo alternativo in modo da evitare molte connessioni al blocchetto subVi ma temo che l'unico modo sia rivedere la struttura interna del subvi in modo da usare meno propertynode. Comunque grazie per la dritta. ---------------------------------------- AUTORE: 927 DATA :19/09/2008 - 09:15:31 ---------------------------------------- Tieni conto che anche le reference possono essere messe in array, cluster, variabili globali... ---------------------------------------- ================================================================================ LABVIEW PDA ================================================================================ AUTORE: 2475 DATA :19/09/2008 - 09:14:14 ---------------------------------------- Salve, sto provando a realizzare un applicazione Labview che sia esportabile su PDA. L'applicazione dovrebbe permettere di collegarsi a internet e poter navigare sulla pagina relativa. Non avendo una corrispondenza diretta fra L'Active X che si trova in LabView e le stesse funzionalità del modulo PDA, come posso fare per aprire una connessione al browser? usando direttamente i protocolli TCP/IP oppure esistono funzioni ad alto livello? Vi ringrazio ---------------------------------------- ================================================================================ Calendario in tabella ================================================================================ AUTORE: 482 DATA :19/09/2008 - 10:01:57 ---------------------------------------- ...ma ciao! sto sviluppando un softwarino per il resoconto delle ore lavorate. Siccome volevo visualizzare in una tabella il resoconto mensile, volevo sapere se qualcuno di voi ha già provato a mettere in automatico i giorni dell'anno in tabella. Mi spiego: Apro il software adesso che è settembre. Vorrei che automaticamente mi si visualizzasse la pagina di settembre 2008 con i campi N° del giorno e giorno della settimana già compilati e quindi io devo andare solo ad inserire le ore. Avete qualche idea geniale che non sia scandagliarsi il calendario e aggiungere un recod alla volta? grasssie! ---------------------------------------- AUTORE: 301 DATA :19/09/2008 - 13:51:09 ---------------------------------------- Una roba tipo questa? Ovvio che poi con gli eventi puoi farci quello che vuoi......... ---------------------------------------- ================================================================================ LABVIEW PDA ================================================================================ AUTORE: 2475 DATA :19/09/2008 - 10:10:30 ---------------------------------------- Salve, sto provando a realizzare un applicazione Labview che sia esportabile su PDA. L'applicazione dovrebbe permettere di collegarsi a internet e poter navigare sulla pagina relativa. Non avendo una corrispondenza diretta fra L'Active X che si trova in LabView e le stesse funzionalità del modulo PDA, come posso fare per aprire una connessione al browser? usando direttamente i protocolli TCP/IP oppure esistono funzioni ad alto livello? Vi ringrazio ---------------------------------------- ================================================================================ Differenza tra Variabile Locale e Property Node ================================================================================ AUTORE: 645 DATA :19/09/2008 - 15:21:57 ---------------------------------------- Dunque... ieri ero ad un corso della National sull'uso dei CompactRIO, parte RealTime e parte FPGA (un corso molto bello... vale proprio la pena... si tratta dei corsi Hands-On ed è solo introduttivo però, secondo me, indica quali domande porsi e mostra alcune basi per iniziare a lavorare con questo strumento) e ho sentito un pezzo di una chiacchierata sulla differenza tra Variabili Locali e Property Node. Si diceva che i Property Node sono più pesanti delle Variabili Locali perchè si rifanno sempre ad un pannello frontale anche nel caso il pannello frontale non debbe essere avviato per il corretto funzionamento del VI (per esempio un subVI che non necessita di visualizzazione ma compie solo operazioni "nascoste"). Voi ne sapete qualcosa in più? Io ho sempre pensato che l'uso dei Property Node fosse un pizzico più performante rispetto alle Variabili Locali. Avete qualche indicazione o qualche documento da leggere? ---------------------------------------- AUTORE: 1124 DATA :19/09/2008 - 18:59:32 ---------------------------------------- Ciao Ho trovato questo link in cui spiega la differenza tra i due item: http://digital.ni.com/public.nsf/allkb/ ... E30074EC47 Sinceramente ero convinto che si trattasse di due cose ben distinte da usare in modo differente e per scopi differenti: ad esempio la variabile locale la uso per "trasportare" il valore di un controllo/indicatore tra un loop ed un altro, mentre con i property node mi sembra di avere a disposizione più posibilità di utilizzo e/o modifica delle caratteristiche dell'oggetto che rappresentano. Anyway mi leggerò le note ufficiali di NI. ---------------------------------------- ================================================================================ Caratteri Maiuscoli/minuscoli e confronto tra stringhe ================================================================================ AUTORE: 1168 DATA :26/09/2008 - 16:26:09 ---------------------------------------- Buonasera. Ho un programmino che salva dei file generando automaticamente il nome a seconda di alcune variabili, un esempio è Cr_C1_10. Per alcuni motivi, devo poi andare a verificare se esiste un file su disco il cui nome contiene la stringa Cr_C1. Ovviamente l'utente può inserire dei parametri per cui il nome file originale diventa cr_C1_10 o CR_c1_10 e così via con tutte le combinazioni di maiuscole e minuscole. Quando faccio il paragone, ovviamente mi risulta che Cr_C1 è diverso da cr_Cr. C'e' un modo col match pattern per ovviare a questo problema? L'estrema soluzione è forzare l'utente a usare solo le maiuscole... c'e' un blocchetto che converte stringe in maiuscole? Grazie P! ---------------------------------------- AUTORE: 680 DATA :27/09/2008 - 12:20:49 ---------------------------------------- potresti portare le stringhe tutte maiuscole o tutte minuscole utilizzando i "blocchetti" "To Upper Case" oppure "To Lower Case"... ciao.... ---------------------------------------- AUTORE: 1168 DATA :29/09/2008 - 07:53:54 ---------------------------------------- ci ho pensato durante il weekend e mi sembra comunque la soluzione migliore... Grazie Pietro ---------------------------------------- ================================================================================ Con Chart sì, con Wave no ================================================================================ AUTORE: 2478 DATA :26/09/2008 - 20:46:29 ---------------------------------------- Ho una semplice acquisizione con I/O non bufferizzato, creata con DAQ Assistant: [img:1y74zrmy]http://img101.imageshack.us/img101/3301/daqassistantpg9.gif[/img:1y74zrmy] Se utilizzo il Waveform Graph come indicatore, non vedo la tracciatura del grafico; se, invece, uso Waveform Chart, tutto è ok. Come mai? Eppure il tutorial dice di utilizzare Waveform Graph. Grazie ---------------------------------------- AUTORE: 680 DATA :27/09/2008 - 12:22:27 ---------------------------------------- ma il chart lo colleghi dentro o fuori dal ciclo while? hai terminato correttamente l'esecuzione della VI premendo il tasto "Boolean"? ---------------------------------------- AUTORE: 645 DATA :28/09/2008 - 23:25:20 ---------------------------------------- Guarda http://digital.ni.com/public.nsf/allkb/ ... BA00007657 ... Il differente comportamento dipende dalle caratteristiche dei due tipi di grafico. Il Graph aspetta un blocco di dati per visualizzarli; alla visualizzazione successiva i dati disegnati vengono sostituiti con i nuovi (a meno che l'utente non esegua l'append dei dati in coda ai dati precedenti: in questo caso i dati vecchi vengono comunque sostituiti dal nuovo blocco che presenta sia i dati vecchi che i nuovi). Il Chart invece aggiunge ai dati vecchi quelli nuovi come comportamento di default: quindi non cancella mai i dati vecchi ma li lascia sempre sul grafico e aggiunge i nuovi in coda. ---------------------------------------- AUTORE: 2478 DATA :29/09/2008 - 08:06:15 ---------------------------------------- L'errore che commettevo era quello di piazzarli fuori dal ciclo while. Quando do lo stop con un indicatore booleano, per farlo ripartire devo premere di nuovo Run. C'è un modo per far ripartire il VI con un indicatore booleano, invece solo di fermarlo? Grazie in anticipo. ---------------------------------------- ================================================================================ NI-DAQmx Task configuration ================================================================================ AUTORE: 301 DATA :29/09/2008 - 09:38:04 ---------------------------------------- Ciao a tutti, sto sviluppando un'applicativo che esegue una autocalibrazione su dei sensori. Sto cercando di agire direttamente sulle impostazioni del MAX, salvando le scale ed associandole (con i vari settaggi, ei canali virtuali di un Task. Spesso il MAX mi restituisce degli errori durante la parte finale di applicazione delle impostazioni, qualcuno di voi ha mai fatto qualcosa del genere? Grazie mille ---------------------------------------- ================================================================================ Visa resource da file ================================================================================ AUTORE: 2438 DATA :29/09/2008 - 11:52:28 ---------------------------------------- Ciao a tutti ho un quesito per quanto riguarda le porte seriali. E' possibile asegnare un "Visa resource" da file? Mi spiego meglio: posso scrivere su file "COM1" e dare questo valore a un "VISA Configure Serial Port", per esempio? Non ho trovato da nessuna parte un convertitore del tipo "string to Visa" o cose del genere. Grazie mille Ciccio ---------------------------------------- AUTORE: 301 DATA :29/09/2008 - 14:48:31 ---------------------------------------- Infatti non c'è bisogno di nessuna concersione,VISA accetta anche stringe in ingresso..... ---------------------------------------- AUTORE: 2438 DATA :29/09/2008 - 15:17:41 ---------------------------------------- Ti ringrazio, non avevo idea che potesse accettare anche le stringhe. Grazie mille Ciccio ---------------------------------------- AUTORE: 301 DATA :30/09/2008 - 09:53:48 ---------------------------------------- Ma figurati, io di solito mi gestisco con una cosa del genere..... ---------------------------------------- AUTORE: 2438 DATA :01/10/2008 - 10:16:01 ---------------------------------------- Ti ringrazio Aris, molto comoda la tua soluzione. Alla prossima Ciccio ---------------------------------------- ================================================================================ Problema conApplication Builder ================================================================================ AUTORE: 2482 DATA :30/09/2008 - 11:35:03 ---------------------------------------- Innanzitutto ciao a tutti, mi presento, sono Oboro (Luigi nella vita di tutti i giorni \":wink:\" ) e sono un ingegnere... Mi sono iscritto a ILVG.it perchè sto utilizzando LabVIEW 8.5 unitamente a una CompactDAQ per condurre delle prove sperimentali, con relativa acquisizione di dati. Non sono totalmente inesperto di LabVIEW, lo utilizzo dalla release 6, però mi si sta presentando un problemino, probabilmente una sciocchezza, che mi sta facendo perdere tempo. Molto brevemente, ho la necessità di creare una stand-alone application, in modo da utilizzare su un qualsiasi pc l'insieme di VIs che ho creato per i vari test da condurre. Ora, non avendo mai utilizzato l'Application Builder, mi sono letto l'help e l'utile guida presente su ILVG, e mi sono messo all'opera... Il problema sorge dal fatto che durante la fase di build dell'installer, il programma mi apre un dialog box, in cui mi si richiede di individuare un fantomatico file *.id che dovrebbe essere presente sul primo cd di installazione dei NI-DAQmx... Io il file l'ho trovato, almeno credo, ma mi ritorna sempre un errore per cui mi si comunica che la folder in questione non è corretta o il nome del file è già in uso (non ricordo chiaramente). Qualcuno può cortesemente darmi una mano o illuminarmi su quale è esattamente il mio problema? Vi ringrazio infinitamente in anticipo. Luigi \":wink:\" ---------------------------------------- AUTORE: 301 DATA :30/09/2008 - 12:58:37 ---------------------------------------- Un problema del enere non l'ho mai visto, hai provato a reinstallare il DAQ? ---------------------------------------- AUTORE: 645 DATA :30/09/2008 - 13:04:37 ---------------------------------------- Il riferimento dei file è corretto? Te lo chiedo perchè l'Application Builder aggiunge un pezzo al percorso del file creato e se il VI richiama altri VI o altri file può capitare che qualche pezzo non si trovi. Dai un'occhiata al sito della National... prova a cercare qualcosa del tipo "application builder *.id installer"... \":D\" ---------------------------------------- AUTORE: 482 DATA :30/09/2008 - 14:28:54 ---------------------------------------- non è che hai qualche versione didattica e quindi c'e' qualche inghippo che ti blocca l'application builder? ---------------------------------------- AUTORE: 2482 DATA :30/09/2008 - 16:38:42 ---------------------------------------- Purtroppo non è una questione di versione del software, e ho anche provato a reinstallare tutto. Sul sito della NI ho trovato qualche post di gente col mio stesso problema e forse la soluzione dell'arcano...Almeno spero... Vi riporto quanto ho trovato: "Invalid location for "NI LabVIEW 8.5.1" durimg installer building: I am building an installer. In a minute or so I get a message that I need to place the LV8.5.1 CD in my CD drive. Whe I do that I get this message: Invalid location for "NI LabVIEW 8.5.1" It wants to find the CD in drive D: but it is in drive E:. When I navigate to drive E: it still gives me the same message. In desperation I changed the drive letter of my CD drive to D:. Now it wants to find the CD in drive E:! WHAT???? I am getting paranoid here. Any ideas anyone?" Reply "Re: Invalid location for "NI LabVIEW 8.5.1" durimg installer building: Thank you for contacting National Instruments! I have seen this behavior a few times in the past and there are a few things that we need to double check before determining the solution. First of all, what are you trying to include in the installer that you are building? Usually the reason for this behavior is that the install files were initially installed from the D drive and so that is the location that it is looking for it. Did you initially install from a network drive or have a second cd or DVD drive? If so, are you able to point the installer builder to the location where you initially installed the files? Usually this behavior occurs when a customer installs LabVIEW using the DVD but then tries to build the installer and puts in the CD. Even though they are both contain LabVIEW install files it is looking for the exact same files that it used during the initial install. If we are able to point this installer to the correct distribution then this behavior should be avoided. As long as you check the "cache components of this distribution" box after selecting the distribution, then you will not run into this error again. Please let me know if this does not solve your issue and I will be happy to help find a solution that works for you. I hope this helps! Have a great day!" Insomma, pare che il problema nasca dal fatto che bisogna andare a ripescare ESATTAMENTE lo stesso file richiesto nella stessa identica posizione in cui si trovava al momento dell'installazione. Domani proverò a fare qualche tentativo e vi farò sapere... Comunque vi ringrazio per i suggerimenti \":)\" Luigi ---------------------------------------- AUTORE: 660 DATA :01/10/2008 - 09:26:24 ---------------------------------------- Anche a me capita che richieda alcuni file dal CD originale durante la creazione dell'eseguibile, ma ho sempre la possibilità di specificargli un nuovo percorso in cui andare a prenderli e non mi ha mai dato problemi. Max ---------------------------------------- AUTORE: 2482 DATA :02/10/2008 - 07:22:21 ---------------------------------------- Alla fine ieri ho risolto. La soluzione è stata quella di copiare su hard disk i due cd del NI-DAQmx e indirizzare su quel percorso la richiesta del distribution file in fase di building dell'installer. Tutto è bene quel che finisce bene (anche se questa cosa mi ha fatto perdere un po' di tempo...) \":)\" Grazie a tutti Luigi ---------------------------------------- ================================================================================ Creare controlli ================================================================================ AUTORE: 482 DATA :30/09/2008 - 14:37:17 ---------------------------------------- ...ma ciao! innanzitutto, ci sono novità sul fronte della creazione di nuovi controlli programmaticamente? E ora spiego perchè. Ho sviluppato un software per creare un sinottico trascinando delle forme da un menu all'interno di un picture control. il fatto è che il sinottico in questione sarebbe alla fin della fiera, un immagine con all'interno dei rettangoli (anche inclinati e da poco ho tolto i cerchi per vedere se aiutava) e io devo andare a capire, in un secondo momento, se l'utente ci clikka sopra col mouse. Se si trattasse di rettangoli normali, potrei optare per un for che mi confronta le coordinate del mouse con tutte quelle dei vari rettangoli. I rettangoli inclinati pero' mi rovinano la vita perchè non mi permettono di fare dei controlli di posizione "semplici". Faccio un esempio: Io ho il rettangolo A che è messo in orizzontale ed è delineato dalle coordinate di 4 punti. Verifico se la posizione del mouse è compresa tra la x massima e la x minima e la y massima e la y minima. Il rettangolo B invece è inclinato di 45 gradi e quindi non posso piu' fare l'operazione di prima per verificare se il mouse è all'interno del rettangolo. Avete qualche consiglio? Ovviamente la domanda iniziale del topic l'ho fatta perchè la possibilità di creare un controllo anzichè disegnare in un picture control, mi permetterebbe poi di gestire il controllo con le varie proprietà ed eventi. HELLPPPP!! ---------------------------------------- AUTORE: 927 DATA :01/10/2008 - 13:18:15 ---------------------------------------- In http://alienryderflex.com/polygon/ c'è un pezzo di codice C, sorprendentemente corto, per calcolare se un punto si trova all'interno di un poligono, noti i vertici. Non l'ho provato, ma convertirlo in Labviù è semplice. Hai tolto i cerchi ma erano la cosa più semplice, bastava vedere se la distanza dal centro è <= del raggio! ---------------------------------------- AUTORE: 482 DATA :01/10/2008 - 13:21:19 ---------------------------------------- no infatti la roba del cerchio era solo elgata al fatto degli array per archiviare le sagome perchè mentre se creo un quadrato ho un array di 4 cluster (uno per estremo), per il cerchio ho un cluster di 4 elementi e quindi volevo vedere cosa succedeva prendendo in considerazione solo i rettangoli \";)\" Intanto daro' un occhio a quel codice! Grazie mille! \";)\" ---------------------------------------- AUTORE: 482 DATA :03/10/2008 - 09:18:19 ---------------------------------------- [code:3ltt5e6o]bool pointInPolygon() { int i, j=polySides-1 ; boolean oddNodes=NO ; for (i=0; i<polySides; i++) { if (polyY[i]<y && polyY[j]>=y || polyY[j]<y && polyY[i]>=y) { if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x) { oddNodes=!oddNodes; } } j=i; } return oddNodes; }[/code:3ltt5e6o] Io credo di averlo tradotto completamente...ma ho un dubbio sul valore di J (non mastico il C), lo imposto inizialmente al valore del numero di lati-1 e poi dopo la prima iterazione del for lo metto uguale alla i ??? Poi, per essere sicuri, polyY[i], significa la coordinata Y del vertice che sta all'indirizzo i ? è giusto? ---------------------------------------- AUTORE: 927 DATA :03/10/2008 - 09:24:21 ---------------------------------------- Credo sia tutto giusto. Confronta ogni vertice col successivo, quindi la sequenza è ad es.: i = 0, 1, 2, 3 j = 3, 0, 1, 2 Facci sapere se funziona! ---------------------------------------- AUTORE: 482 DATA :03/10/2008 - 10:27:52 ---------------------------------------- Allego il VI. A me non funziona, ma ribadisco..magari ho perso per strada anche quel poco che sapevo di C e ho sbagliato qulcosa. L'ho salvato in versione 8.0 aiutoo!! ---------------------------------------- AUTORE: 482 DATA :03/10/2008 - 13:25:04 ---------------------------------------- Ho modificato l'uscita del for in un array di booleani. Se uno solo dei booleani che compongono l'array è true, allora la funzione restituisce true. Cosi' sembrerebbe funzionare, tutto tranne per le X positive. Praticamente se esco dal rettangolo con le Y o con una X minore è tutto ok, se vado oltre con la X in positivo, ottengo sempre un true. Per aiutarvi, modificate nel mio esempio i controll di mouse position con due slide \";)\" ---------------------------------------- AUTORE: 482 DATA :03/10/2008 - 14:01:57 ---------------------------------------- niente da fare, quell'algoritmo non mi torna.... ---------------------------------------- AUTORE: 482 DATA :03/10/2008 - 14:37:08 ---------------------------------------- Ho trovato questa pagina che sembra fare al caso mio.... solo che non capisco cosa devo fare \":)\" http://zone.ni.com/reference/en-XX/help ... inpolygon/ ---------------------------------------- AUTORE: 482 DATA :03/10/2008 - 14:54:09 ---------------------------------------- ghghgh Spero sia d'aiuto anche a voi. Seguendo il link indicato sopra, ho semplicemente riprodotto la funzione in un nodo mathscript e tutto funziona alla perfezioen \":)\" ---------------------------------------- AUTORE: 927 DATA :06/10/2008 - 09:58:36 ---------------------------------------- Comunque ormai mi era venuta la curiosità e ho provato, anche quel codice C funziona in un Formula node. Bisogna sostituire quel booleano con un normale int perchè il formula node non li riconosce. La funzione Mathscript "inpolygon" credo che non ci sia nelle versioni precedenti a 8.5 ---------------------------------------- AUTORE: 482 DATA :06/10/2008 - 10:38:04 ---------------------------------------- Infatti credo che il formula node sia meglio anche perchè cosi' posso portarmelo su linux \";)\" Grazie mille. Sei riuscito per caso a guardare come mai non andava se sviluppato in labview? ---------------------------------------- ================================================================================ blocchi while ================================================================================ AUTORE: 2483 DATA :01/10/2008 - 09:29:21 ---------------------------------------- Ciao a tutti, scusate ma lavoro con LV da un paio di giorni e ho un problema. Devo acquisire immagini da una webcam. Ho cercato su internet e ho trovato uno schema a blocchi che faceva al caso mio, l'ho copiato in LV ma ho un problema: quando faccio partire il programma, questo parte e termina dopo pochi secondi. Ho provato a mettere un ciclo while con un pulsante per fermarlo e terminare l'applicazione e ho risolto questo problema. Ne è però saltato fuori uno nuovo: Mi servono due switch che comandino un valore booleano, li ho messi per "pilotare" l'accensione e lo spegnimento della preview. Il fatto è che se li metto al di fuori del blocco while non funzionano, mentre se li metto all'interno del blocco non riesco a far passare il valore al di fuori del blocco. Come posso fare? Grazie in anticipo per l'aiuto ---------------------------------------- AUTORE: 927 DATA :01/10/2008 - 11:37:08 ---------------------------------------- Lo stato dei pulsanti dev'essere letto in continuazione, devono stare in un blocco while (non necessariamente lo stesso dell'acquisizione) altrimenti vengono letti solo all'avvio del programma. Anche il codice che effettua l'accensione/spegnimento deve stare in quel blocco, ovviamente va attivato solo in caso di clic dei pulsanti (puoi usare un Case e pulsanti con meccanica "latch") ---------------------------------------- AUTORE: 2483 DATA :01/10/2008 - 14:58:56 ---------------------------------------- Ho risolto il problema. Grazie mille per l'aiuto ---------------------------------------- ================================================================================ Leggere da file ================================================================================ AUTORE: 1441 DATA :01/10/2008 - 14:15:41 ---------------------------------------- Io ho un semplicissimo problema. Ho creato dei file di testo con dei dati ordinati su delle colonne con LabView. Ora io vorrei con un programmino leggere questi file di testo e rappresentarli su un grafico. Ci ho provato ma riesco a visualizzare solo l'ultimo secondo del file, ho fatto mille tentativa ma niente. siccome è un problema davvero banale inizio ad essere frustrato. Qualcuno mi aiuta. Uso LabView8.0 Grazie Paolo ---------------------------------------- AUTORE: 1441 DATA :01/10/2008 - 14:18:06 ---------------------------------------- Un altra informazione sarebbe questa che vorrei sapere. Vorrei creare uno splash screen all'apertura di un progamma di LabView. Qual'è il metodo migliore?? Grazie ancora Paolo ---------------------------------------- AUTORE: 645 DATA :01/10/2008 - 15:49:51 ---------------------------------------- Un pezzo alla volta: a) per memorizzare valori in un file utilizzi i blocchi di scrittura su file. A questi blocchi puoi passare un vettore (o una matrice) di dati (creati in precedenza tramite cicli) oppure puoi scrivere il file tante volte quanti sono le iterazioni necessarie per produrre tutti i dati (in pratica scrivi il file dall'interno del ciclo). b) se utilizzi le chiamate al VI server puoi avviare un altro VI dall'interno del VI principale. Nel caso di uno splash screen puoi avviare il Front Panel di un VI secondario dal VI principale. ---------------------------------------- AUTORE: 1441 DATA :01/10/2008 - 16:29:18 ---------------------------------------- Grazie ci proverò. Se qualcuno però dovesse avere sottomanano due esempietti pronti dei problemi sopra citati ne sarei molto grato. Sono un utente molto basic di labview e pertanto le mie conoscenze sono decisamente limitate. Riesco a capire ed elaborare molto di più partendo da casi simili risolti... Grazie mille ---------------------------------------- AUTORE: 645 DATA :02/10/2008 - 08:37:23 ---------------------------------------- Hai guardato tra gli esempi contenuti nella directory di LabView? Prova a vedere nella sezione riguardante le operazioni su file... ---------------------------------------- AUTORE: 1441 DATA :02/10/2008 - 08:58:11 ---------------------------------------- Si ho provato a guardare. Il problema è che non ci capisco molto...in particolare ho guardato Read from text file. Ma non è quello che voglio io. Infatti il grafico non rappresenta tutti i dati dall'inizio alla fine ma solo una piccola porzione. E' così difficile questa cosa che vorrei realizzare? ---------------------------------------- AUTORE: 1441 DATA :02/10/2008 - 09:29:42 ---------------------------------------- Ho provato a fare così in questo semplicissimo modo. Allora se clicco sulla freccetta di avvio del programma (quella normale di labview) si apre la finestra di dialogo, mi chiede che file txt voglio leggere, lo apro, il grafico visualizza solo una piccola parte del file (la prima o l'ultima non lo so). Se invece clicco sulla freccetta circolare (quella che continua a ripetere iterazioni del programma) ancora una volta si apre la finestra di dialogo, apro il file, si visualizza sul gafico solo una piccola parte come prima; a questo punto però se io clicco su stop, si apre nuovamente la finestra di dialogo; se invece di scegliere un file, io clicco su annulla ecco che sul grafico viene visualizzato il file nella sua interezza, proprio come volevo io. Per fermare il tutto però a questo punto posso solo cliccare sul pallino rosso di arresto del programmino di labview. Non riesco a capire come gestire questi semplici tre blocchetti. Aiuto!!! ---------------------------------------- AUTORE: 1441 DATA :02/10/2008 - 12:43:21 ---------------------------------------- Sono più o meno contento perchè sono quasi riuscito a fare quello che volevo...anche se devo fare un giro strano ora riesco a mostrare su un grafico tutto il segnale contenuto in un file txt. Ora ho bisogno di questa cosa: io riesco a visualizzare tramite gli strumenti del grafico delle finestre ingrandite del segnale. Da queste finestre riesco anche a fare in modo che il programma mi restituisca il tempo x in cui si verifica il massimo ed il tempo x in cui si verifica il minimo. Ora io però vorrei che questi valori fossero scritti in un file, in una matrice in una colonna, qualsiasi cosa.... In poche parole io vorrei che: visualizzo la parte di grafico che mi interessa, clicco su un tasto (esempio KeepMax) e lui scrive in una colonna il primo valore xmax, poi con il pan mi sposto su un'altra parte di grafico, clicco di nuovo KeepMax e lui scrive nella posizione 2, sotto all'altro valore il secondo valore xmax. Stessa cosa per i valori minimi. Allego il file di quello che ho combinato fin'ora. Credo si debbano usare build array ma non ci riesco. Ciao e grazie ---------------------------------------- AUTORE: 1441 DATA :03/10/2008 - 13:37:19 ---------------------------------------- Nessuno allora che mi riesce a dare una soluzione? Non è possibile vi prego spiegatemi come creare un array facile facile e poi scriverlo in un file txt!!! \":(\" \":(\" \":(\" \":(\" \":(\" \":(\" \":(\" \":(\" ---------------------------------------- AUTORE: 1441 DATA :07/10/2008 - 12:26:27 ---------------------------------------- Novità per quanto riguarda il mio problema? Non ho ancora provato ma avevo pensato di cambiare il tipo di ciclo in modo da ripetere l'iterazione solo quando io clicco il tasto e quindi scrivere su un file i dati...bo proverò ma attendo il parere degli esperti \":)\" \":)\" \":)\" ---------------------------------------- AUTORE: 645 DATA :07/10/2008 - 12:50:03 ---------------------------------------- [quote="paologaffu":26qgnokl]...anche se devo fare un giro strano ora riesco a mostrare su un grafico tutto il segnale contenuto in un file txt.[/quote:26qgnokl] Come mai "giro strano"? Con i blocchi di lettura da un txt (leggi da un file di testo, non sa un file in formato foglio di calcolo giusto?) riesci a leggere tutto. Eventualmente puoi implementare un ciclo di lettura per leggere una riga alla volta (utile se quando salvi i dati inserisci un carattere di fine riga, per esempio il ritorno a capo). [quote="paologaffu":26qgnokl]...visualizzo la parte di grafico che mi interessa, clicco su un tasto (esempio KeepMax) e lui scrive in una colonna il primo valore xmax, poi con il pan mi sposto su un'altra parte di grafico, clicco di nuovo KeepMax e lui scrive nella posizione 2, sotto all'altro valore il secondo valore xmax. Stessa cosa per i valori minimi.[/quote:26qgnokl] Devi usare i Property Node riferiti al grafico: non so bene quali così a memoria ma ci sono Property Node che indicano il valore minimo e il valore massimo visualizzati sull'asse X. Devi poi tornare nel vettore contenente il segnale e cercare il massimo o il minimo (ci sono blocchi già pronti) tra i valori che appartengono all'intervallo visualizzato. ---------------------------------------- AUTORE: 1441 DATA :08/10/2008 - 11:06:55 ---------------------------------------- Infatti ora riesco a fare tutte queste cose. Trovo il valore massimo e minimo nella finestra del grafico, li visualizzo anche in due caselle apposite. L'ultima cosa che mi manca è un tasto (quello so metterlo) che comanda qualcosa che riesca a "spedire" i due valori (massimo e minimo) in modo che siano scritti ognuno in una colonna di un file di testo. Avevo messo il write to file ma non riuscivo a fare come volevo perchè i valori venivano scritti di continuo, quindi avevo una colonna tipo così Max Min 2 1 2 1 2 1 2 1 2 1 3,4 1,8 3,4 1,8 3,4 1,8 3,4 1,8 3,4 1,8 ecc. ecc. Allora ho pensato che forse dovrei mettere un ciclo che non cotinua a ciclare ma che passa al ciclo successivo solo quando lo prevedo io...potrebbe andare? Scusate la contorsione dei ragionamenti!! \":P\" \":P\" \":P\" \":P\" ---------------------------------------- AUTORE: 645 DATA :08/10/2008 - 16:32:19 ---------------------------------------- La struttura ad eventi messa in un ciclo serve proprio per questo: rimane sempre in attesa e viene eseguita solo quando l'evento di riferimento (evento scatenante) si verifica. Nel tuo caso quando premi il pulsante... Cerca qualche info e qualche esempio sull'Event Structure. ---------------------------------------- AUTORE: 1441 DATA :09/10/2008 - 13:42:50 ---------------------------------------- Ottimo!!! Ho terminato la mia "opera" di cui posto il file. Ovviamente ci sarebber oaltre mille migliorie ma sono alle strette con i tempi ed è perfetto!!! Grazie a tutti per l'aiuto, al prossimo problema!!! ---------------------------------------- ================================================================================ Time stamp string ================================================================================ AUTORE: 2435 DATA :02/10/2008 - 09:35:49 ---------------------------------------- Ciao a tutti..... dovrei fare una doppia operazione : 1)convertire una "data" in "string" e successivamente 2)convertire "string" in "data" come posso fare?? grazie ---------------------------------------- AUTORE: 927 DATA :02/10/2008 - 14:16:08 ---------------------------------------- Per la 1 c'è "Format date/time string" bello pronto. Il viceversa è un po' più complicato: devi usare un generico "Scan from string", e come formato gli passi %<...>T dove al posto dei puntini metti il formato data che hai usato al passo 1 ---------------------------------------- ================================================================================ Waveform graph? Si può? ================================================================================ AUTORE: 2482 DATA :02/10/2008 - 14:45:08 ---------------------------------------- Ciao a tutti, ecco il mio problema di oggi: acquisisco un segnale in volt da un trasduttore di pressione, e lo visualizzo con una waveform chart che mi mostra l'andamento del segnale nel tempo, e fin qui tutto bene. Il problema sorge dal fatto che ho necessità di utilizzare un cursore per ripercorrere la curva del segnale e questa funzionalità non è disponibile con una CHART, bensì con un waveform GRAPH. Ora, come posso rappresentare il segnale in funzione del tempo con un waveform graph come se stessi usando una chart? E' possibile? Per come l'ho intesa un graph, riceve e visualizza i dati "a pacchetti", sovrascrivendo di volta in volta il grafico, mentre la chart attacca i nuovi dati ai vecchi, mantenendoli. L'alternativa, che va benissimo uguale, è continuare a monitorare il segnale con una chart, mentre a prova finita poter ripercorrere tutto ilsegnale dall'inizio alla fine col cursore su un graph... Avete qualche dritta da darmi o qualche esempio che potrei seguire? Grazie mille in anticipo. Luigi ---------------------------------------- AUTORE: 927 DATA :06/10/2008 - 08:29:45 ---------------------------------------- L'hai intesa bene: al graph devi passare sempre i dati di tutti i punti. Se gli passi un array semplice con tutti i campioni, li mette in fila come se fosse un chart. Quindi ti serve un array, al quale aggiungi un elemento in coda ad ogni ciclo. Usa uno shift register per memorizzare l'array e "Build array" per aggiungere l'elemento ---------------------------------------- AUTORE: 927 DATA :06/10/2008 - 08:31:47 ---------------------------------------- Dimenticavo l'"alternativa": si, a prova finita puoi prendere tutti i dati dal chart usando un Property node "History data" e passarli a un graph ---------------------------------------- AUTORE: 2482 DATA :06/10/2008 - 13:31:58 ---------------------------------------- Ti ringrazio moltissimo per le dritte \":wink:\" Per ora proverò a implementare l'alternativa 2, per un post-processing, poi quando avro più tempo vedrò di sistemare lo schema secondo quanto mi hai suggerito. Davvero grazie mille. Luigi ---------------------------------------- AUTORE: 2482 DATA :07/10/2008 - 07:05:15 ---------------------------------------- Risolto alla seconda maniera. L'unica cosa che ho dovuto modificare è stato l'aumentare il buffer di memoria dati della chart (1024 di default). Grazie per le dritte. Luigi ---------------------------------------- ================================================================================ Cancellazione testo da indicatore stringa ================================================================================ AUTORE: 2438 DATA :03/10/2008 - 15:09:53 ---------------------------------------- Ciao a tutti, ho un piccolo problema con una stringa. In pratica ho un programma che, prendendo i comandi da una sequenza scritta su file, mostra su questo indicatore di stringhe il risultato di letture successive di una seriale. Al termine della sequenza di comandi quello riprende dall'inizio. Il mio problema nasce dal fatto che io vorrei cancellare i risultati precendeti ma non sono riuscito a farlo; l'unica cosa che sono riuscito a fare è farmi scomparire i vecchi risultati, ma quando riprendono i comandi questi ricompaiono. Avete qualche idea? Grazie mille Ciccio ---------------------------------------- AUTORE: 301 DATA :03/10/2008 - 15:18:24 ---------------------------------------- Hai provato (quando inizi una nuova lettura) ad inizializzare l'indicatore con una stringa vuota? ---------------------------------------- AUTORE: 2438 DATA :03/10/2008 - 15:23:53 ---------------------------------------- Ciao Aris, ti ringrazio della risposta, proprio ora ho risolto il problema. Dovevo un attimo ristrutturare il programma, dato che c'è un while con un shift register quindi prendeva il valore che "aveva in memoria", per questo mi ritornavano i vecchi valori. Ho modificato un pò le cose e ora va tutto bene. Grazie Ciccio ---------------------------------------- AUTORE: 645 DATA :03/10/2008 - 15:26:45 ---------------------------------------- Quando dici che vuoi cancellare i dati vecchi intendi cancellare parti di stringa dal file di origine o dall'indicatore stringa sul VI? Nel secondo caso puoi usare un Property Node Value riferito all'indicatore assegnandoli una costante vuota (la trovi nella paletta delle stringhe). ---------------------------------------- AUTORE: 4254 DATA :11/10/2015 - 16:07:50 ---------------------------------------- [quote="MagicBotolo":3q8lji2o]Quando dici che vuoi cancellare i dati vecchi intendi cancellare parti di stringa dal file di origine o dall'indicatore stringa sul VI? Nel secondo caso puoi usare un Property Node Value riferito all'indicatore assegnandoli una costante vuota (la trovi nella paletta delle stringhe).[/quote:3q8lji2o] Vorrei poter cancellare il contenuto di un Box stringa ma non ho ben capito come fare sto utilizzando labview 2015 grazie ---------------------------------------- AUTORE: 645 DATA :11/10/2015 - 17:17:27 ---------------------------------------- Tra i Property Node legati alle stringhe c'è quello riferito al valore ("Value") che può essere utilizzato per impostare il valore della stringa in maniera dinamica durante l'esecuzione del VI. ---------------------------------------- AUTORE: 4254 DATA :11/10/2015 - 18:40:56 ---------------------------------------- [quote="MagicBotolo":39c1emz0]Tra i Property Node legati alle stringhe c'è quello riferito al valore ("Value") che può essere utilizzato per impostare il valore della stringa in maniera dinamica durante l'esecuzione del VI.[/quote:39c1emz0] Grazie per la risposta veloce però avrei bisogno di un aiuto più pratico perchè non ho capito sempre che sia attinente con quello che voglio fare (mentre il programma è in esecuzione vorrei cancellare il contenuto della finestra che mi visualizza tutto quello che ho ricevuto sulla porta seriale Grazie per la pazienza ---------------------------------------- AUTORE: 4254 DATA :12/10/2015 - 18:27:42 ---------------------------------------- [img:1bkuhu2q]http://i.imgur.com/w6VUvOt.jpg[/img:1bkuhu2q] ---------------------------------------- AUTORE: 4254 DATA :12/10/2015 - 18:30:39 ---------------------------------------- Mi scuso l'immagine e un po tronca quello che vorrei è cancellare quello che indica la freccia mentre il programma è in esecuzione ---------------------------------------- AUTORE: 4254 DATA :14/10/2015 - 12:43:12 ---------------------------------------- Ho aggiunto il link del mio dropbox x condividere il VI , magari qualcuno riesce a fornirmi un aiuto La vrsione di Labview è la 2015 spero di non aver commesso qualche infrazione nel caso chiedo scusa agli amministratori \":oops:\" [url:4p367o3g]https://www.dropbox.com/sh/qh38rc4l6jrjgxh/AACsSeELcnxTblxT7N6D1E4Ua?dl=0[/url:4p367o3g] ---------------------------------------- AUTORE: 301 DATA :14/10/2015 - 14:41:09 ---------------------------------------- puoi salvarlo in una versione precedente? Aris ---------------------------------------- AUTORE: 4254 DATA :14/10/2015 - 18:08:56 ---------------------------------------- Dimmi con quale versione preferisci Grazie per l'interessamento ---------------------------------------- AUTORE: 301 DATA :14/10/2015 - 18:23:16 ---------------------------------------- Va bene 2014 ---------------------------------------- AUTORE: 4254 DATA :14/10/2015 - 18:39:34 ---------------------------------------- Eccolo nella versione 2014 sempre nella cartella del mio dropbox ---------------------------------------- AUTORE: 301 DATA :14/10/2015 - 19:20:36 ---------------------------------------- Vedi se ti torna. Aris ---------------------------------------- AUTORE: 4254 DATA :14/10/2015 - 20:31:20 ---------------------------------------- Torna e alla grande ARIS \":D\" Se posso approfittare è possibile fare in modo che se premo il tasto TX232 mi invii una o due sole trasmissioni e poi il tasto ritorna nella condizione OFF chiaramente smettendo di trasmettere ? Lo so che alcune cose possono essere banali a volte però fatico a trovare una facile soluzione ---------------------------------------- AUTORE: 301 DATA :15/10/2015 - 06:35:47 ---------------------------------------- "Una" o "due" volte?!?! Se vuoi che venga effettuata una scrittura ad ogni pressione, basta che cambi la "mechanical action" del pulsante (tast dx>>mechanical action>>Latch when released). In questo modo, quando il codice arriverà a leggere lo stato di quel booleano lo riporterà allo stato off (come avviene per lo stop). Se invece ne vuoi piu di una, bisogna agire programmaticamente. Aris ---------------------------------------- AUTORE: 4254 DATA :15/10/2015 - 11:35:33 ---------------------------------------- Mille grazie ARIS \":)\" per i preziosi suggerimenti se posso in qualche modo sdebitarmi spero di non essere noioso se avrò modo di chiedere un help ---------------------------------------- AUTORE: 301 DATA :15/10/2015 - 13:08:35 ---------------------------------------- Ma figurati, il forum è qui per questo! Aris ---------------------------------------- ================================================================================ da un array in un altro con un click ================================================================================ AUTORE: 2484 DATA :06/10/2008 - 15:36:33 ---------------------------------------- Salve, Lavoro con un VI per l'acquisizione di dati; i dati vengono inseriti in un array (array 1), essendo relativi a più canali di un convertitore analogico-digitale. La visualizzazione dei dati nell'array 1 avviene in tempo reale; i valori vengono inoltre elaborati ed in seriti in un graph x-y. Per avere una lettura di riferimento ho la necessità di riportare all'inizio della lettura i valori letti nell'array 1, in un altro array, affinchè si possa effettuare poi una differenza, ed i valori nuovi vengano riferiti alla prima lettura. Posso copiare ed incollare i valori nel primo array mediante tasto destro del mouse ed il comando copia ed incolla anche mentre il VI è in esecuzione; mi chiedevo se esiste comunque la possibilità di creare una struttura semplice che mi consenta di fare l'operazione descritta mediante il click di un pulsante. Grazie in anticipo a chiunque mi saprà rispondere!!! ---------------------------------------- AUTORE: 645 DATA :07/10/2008 - 08:28:55 ---------------------------------------- Non so se ho capito bene... però puoi usare una struttura ad eventi collegata ad un pulsante. Alla pressione del pulsante (puoi usare l'evento MouseUp) inserisci i primi n valori dell'array 1 nell'altro array con i blocchi che trovi nella paletta degli array, in particolare il blocco Insert into Array (con qualche abbinamento, magari al blocco Array Subset). ---------------------------------------- AUTORE: 2484 DATA :07/10/2008 - 09:01:13 ---------------------------------------- grazie mille! Mi metto subito a cercare i controlli di cui mi hai parlato ---------------------------------------- ================================================================================ Combobox ================================================================================ AUTORE: 2483 DATA :08/10/2008 - 10:09:24 ---------------------------------------- Ciao a tutti, avrei bisogno di aiuto per risolvere un problema. Devo fare un programma in cui acquisisco immagini contemporaneamente da più webcam e uso VideoCapX. In fase di configurazione l'utente deve essere in grado di selezionare quale telecamera apparirà in quale finestra tramite dei combobox. Ora, durante l'inizializzazione io riesco ad ottenere il numero di telecamere connesse al pc. Quello che devo fare è: 1 - Durante l'inizializzazione, riempire tutti i combobox in questo modo: None Cam1 Cam2 . . . CamN (dove N è il numero di webcam connesse) 2 - Se uno seleziona una camera in un combobox questo non deve essere selezionabile negli altri. 3 - Nel momento in cui cambio la camera selezionata in un combobox, il vecchio valore selezionato deve tornare disponibile per tutte le telecamere. E' inoltre importante che sia rispettato l'ordine delle webcam. Spero di aver reso l'idea...Qualcuno sa come aiutarmi? ---------------------------------------- AUTORE: 645 DATA :08/10/2008 - 16:34:14 ---------------------------------------- Io farei così... struttura ad eventi regolata dall'evento "Change Value" dei controlli. Nel momento in cui il controllo cambia valore prendi il valore selezionato e lo elimini dagli altri indicatori... Forse è un po' drastico ma fai prima rispetto a renderlo non selezionabile. Quando l'utente cambia valore il valore precedente (magari salvato in una variabile) viene reinserito negli altri indicatori. ---------------------------------------- AUTORE: 2483 DATA :09/10/2008 - 08:46:52 ---------------------------------------- Si, l'idea è la stessa che avevo io...il problema è che non riesco ad implementarla, son 4 giorni che ci lavoro su e ogni volta che risolvo unproblema me ne sbuca fuori un altro. ---------------------------------------- AUTORE: 43 DATA :15/10/2008 - 11:13:58 ---------------------------------------- Nell'ultimo esempio che ho postato in questo topic c'è un bell'esempio su come implementare quello che volevi Tu, cioè disabilitare all'interno di combobox uguali fra loro tutti gli item selezionati nelle altre con l'eccezione del primo item (cioè "nessuna selezione"...) viewtopic.php?f=1&t=3699 bye ---------------------------------------- AUTORE: 2483 DATA :17/10/2008 - 09:03:29 ---------------------------------------- Era esattamente ciò che cercavo...grazie mille. Ora ci provo... ---------------------------------------- AUTORE: 2483 DATA :22/10/2008 - 10:39:43 ---------------------------------------- Ciao a tutti. Son di nuovo qua.. continuo ad avere problemi e sinceramente inizio a sentirmi abbastanza stupido. Provo ad upparvi il vi, ora riesco ad inizializzare il combobox nella maniera corretta... ma quando si attiva l'evento Ring -> Value Change non riesco a far aggiornare le altre combo. Vi prego aiutatemi. Grazie mille. ---------------------------------------- AUTORE: 43 DATA :22/10/2008 - 11:38:26 ---------------------------------------- [quote="apo":12er49ni]Ciao a tutti. Son di nuovo qua.. continuo ad avere problemi e sinceramente inizio a sentirmi abbastanza stupido. Provo ad upparvi il vi, ora riesco ad inizializzare il combobox nella maniera corretta... ma quando si attiva l'evento Ring -> Value Change non riesco a far aggiornare le altre combo. Vi prego aiutatemi. Grazie mille.[/quote:12er49ni] Volete sempre la pappa, in bocca... Ci sarà pur qualcuno disposto a ricompensarmi non solo a parole... ---------------------------------------- AUTORE: 2483 DATA :23/10/2008 - 13:39:38 ---------------------------------------- Grandioso.... sinceramente non credo che ci sarei riuscito a breve. x quanto riguarda i ringraziamenti... mi sa che ti tocca accontentarti anche stavolta delle parole \":D\" Grazie mille ---------------------------------------- AUTORE: 43 DATA :23/10/2008 - 14:02:49 ---------------------------------------- [quote="apo":2k02wmp5]Grandioso.... sinceramente non credo che ci sarei riuscito a breve. x quanto riguarda i ringraziamenti... mi sa che ti tocca accontentarti anche stavolta delle parole \":D\" Grazie mille[/quote:2k02wmp5] Già ... manco una ricarica telefonica da 10 euri. Cmq meglio accorpare tutti i ring in unico Cluster come nell'esempio precedente di "gestione tracce del grafico" ... Per quanto riguarda gli eventi basta quindi gestire il "value change" del cluster... Praticamente puoi aggiungere ring o toglierli da FrontPanel senza modificare il codice. bye ---------------------------------------- ================================================================================ implementazione formule labview ================================================================================ AUTORE: 2488 DATA :08/10/2008 - 10:15:37 ---------------------------------------- Salve a tutti, sto facendo il tirocinio in ing clinica ed e' una tesi sperimentale, consiste nel dover pilotare un motore "DC maxon motor" che fa muovere un pistone. dovrei implementare tramite labview un ciclo cardiaco (APPROSSIMATO a un arco positivo di sinusoide e 2 profili triangolari negativi) che sarebbe un ciclo cardiaco in velocita'.l'ho messo in allegato(e' quello nero) dovrei riuscire a pilotare questo pistone tramite il mio programma labview (ho gia' i driver di accoppiamento PC-MOTORE). chi riesce a darmi una mano e salvarmi?? heeeeeeeellllllllllllllllpppppppppppppppppppp ---------------------------------------- AUTORE: 301 DATA :08/10/2008 - 11:31:16 ---------------------------------------- Bèh, nel tuo caso dovresti: o giocare con i blocchi di creazione di forma d'onda (fare un ciclo che ricrei ogni parte del tuo andamento) o crearti un file con salvata la forma d'onda che ti interessa e farla leggere al tuo programma. Nel primo caso puoi benissimo mettere dei controlli in modo da cambiare i parametri delle varie semionde, nel secondo dovresti andare ad agire sul file ogni volta. Il tuo valore di y deve corrispondere al valore di pilotaggio del driver pompa (credo sia una frequenza nel tuo caso). ---------------------------------------- AUTORE: 2488 DATA :08/10/2008 - 12:09:51 ---------------------------------------- no le y sono millimetri al secondo e' una velocita'. cmq per l'arco di sinusoide io ho inserito la formula della parabola con il formula node e poi ho messo gli ingressi dei parametri e la variabile e in uscita il grafico della curva e l'integrale. sono che ho i driver del motore in labview ma nn capisco come lo possa accoppiare. qualche suggerimento?? ti mando pure il link dove ci sono i driver,forse mi riesci a dare un consiglio su quale usare. grazie mille per tutto \":)\" sei la mia salvezza! https://shop.maxonmotor.com/ishop/downl ... eaId=10200 e' l'ottavo file che contiene i driver. ---------------------------------------- AUTORE: 301 DATA :08/10/2008 - 13:07:44 ---------------------------------------- Bene, il tuo motore quindi si accoppia tramite una qualche porta (scusa ma noiusiamo schede driver che vanno pilotate in frequenza). Ho scaricato i drivers, ma non avendo un motore qui.....credo ci debba giocare un po tu. Parti dall'esempio e vedi quali funzioni ti vengono messe a disposizione. Nella dll c'è anche il vi tree dove puoi trovare le funzioni a tua dispozione...... Magari cerca di fare qualcosa e se non funziona postalo..... ---------------------------------------- AUTORE: 2488 DATA :08/10/2008 - 22:25:00 ---------------------------------------- ok grazie.....provero' a fare come hai detto....spero di riuscirci, in caso contrario purtroppo per te, saro' costretto a richiedere nuovamente il tuo aiuto. ti ringrazio infinitamente. ciauuuuz \":)\" ---------------------------------------- AUTORE: 2488 DATA :15/10/2008 - 10:46:59 ---------------------------------------- eccomiiiii scusa ancora il disturbo,ma mi e' sorto un altro problema..... sono riuscito a realizzare il profilo paraboidale e la prima rampa del triangolare....ma su 2 file separati. ora pero' li dovrei mettere nello stesso file in modo da ottenere un grafico continuo... dato che come grafico uso il waveform graph sia la parabola che la retta mi partono da zero, come faccio a far partire la retta dalla fine della parabola?? nel senso che mi deve tracciare la parabola da zero a T1 e la retta da T1 a T2 non credo sia difficile,ma con la mia conoscenza del programma non ci riesco proprio. sapresti darmi qualche consiglio?? grazie \":)\" ---------------------------------------- AUTORE: 301 DATA :15/10/2008 - 12:54:02 ---------------------------------------- Bene, ciao Dorian, ti ho risposto con messaggio privato e (senza alcun problea) mandane ancora che rispondo volentieri! Ricorda però che questo è un forum e tutte le idee possono venire utili a chiunque, quindi scrivi pure pubblicamente la prossima volta! Allego l'esempio che già ti ho inviato, sappimi dire se funziona (come ti ho gia detto non l'ho provato ma il concetto è quello) ---------------------------------------- AUTORE: 2488 DATA :15/10/2008 - 15:19:43 ---------------------------------------- credo di aver capito.... si infatti ti ho mandato il mess privato ma l'ho messo pure pubblico(se dovesse servire a qualcuno) non finiro' di ringraziarti ..... anche perche' credo che avro' ancora bisogno del tuo aiuto hehe ciauuuuuuz ---------------------------------------- AUTORE: 301 DATA :15/10/2008 - 15:55:54 ---------------------------------------- Vai tranquillo, io sono uno dei tanti e tutti siamo qui per darci un aiuto! Se hai altre domande spara pure! Buon lavoro ---------------------------------------- AUTORE: 2488 DATA :16/10/2008 - 00:45:30 ---------------------------------------- eccomi dinuovo a rompere (sorry). ho finito per ora,grazie al tuo aiuto, o meglio mi manca solo una cosetta: ho scritto tutto il programma seguendo il tuo suggerimento,solo che c'e' un piccolo problema, non so' come riallineare il tutto(nel senso di far venire il risultato come nella figura del primo allegato), perche' mi vengono la parabola e le rette,ma tutte sfasate. un aiuto?? PS: allego sia l'ultimo subVI, sia l'appendice dove trovare i valori da implementare. grazieeeeeeeee \":)\" ---------------------------------------- AUTORE: 2488 DATA :16/10/2008 - 00:46:44 ---------------------------------------- cavolo non riesco a mandare il programa in labview......come posso mandarlo?? ---------------------------------------- AUTORE: 301 DATA :16/10/2008 - 06:51:04 ---------------------------------------- prova a zippare il tutto ---------------------------------------- AUTORE: 301 DATA :16/10/2008 - 06:59:55 ---------------------------------------- Comunque, no riesco a capire la tua perplessita...... Ti devi creare n funzioni che a fronte di determinati imput ti calcolano un vettore contenente dei punti di curve che ti interessano. Una volta creati i tuoi n vettori li prendi e li metti tutti nello stesso vettore (nella sequenza che ti interessa. ---------------------------------------- AUTORE: 301 DATA :16/10/2008 - 07:26:35 ---------------------------------------- piccolo esempio. spero chiarisca i tuoi dubbi ---------------------------------------- AUTORE: 2488 DATA :16/10/2008 - 09:53:28 ---------------------------------------- si gia' avevo utilizzato il tuo esempio che e' stato fondamentale .... ma non riesco a capire perche' mi meta tutto sfasato..... ---------------------------------------- AUTORE: 301 DATA :16/10/2008 - 10:15:01 ---------------------------------------- non riesco a capire cosa intendi per sfasato (metti un file zip e non rar, sul pc aziendale non lo posso installare). L'esempio che ti ho postato oggi ha la possibilità di scambiare l'ordine della curva e della retta...... ---------------------------------------- AUTORE: 2488 DATA :16/10/2008 - 10:56:51 ---------------------------------------- ecco il file.....capirai lanciandolo e implementando i valori nella foto allegata prima. grasssssie \":)\" ---------------------------------------- AUTORE: 43 DATA :20/10/2008 - 16:41:42 ---------------------------------------- [quote="dorian gray":1aowk07g]ecco il file.....capirai lanciandolo e implementando i valori nella foto allegata prima. grasssssie \":)\"[/quote:1aowk07g] beh; le formule scritte così sono illeggibili: 1) tutto appiccicato su un'unica linea quando si può andare a capo. Almeno si vada a capo ad ogni ";" !!!! 2)uso inaccettabile delle parentesi quando basta stare un po' attenti e, se si considerano le precendenze degli operatori anche solo quelli aritmetici, la formula diventa improvvisamente comprensibile. 3) si possono dichiarare variabili all'interno del [i:1aowk07g]formula node[/i:1aowk07g] basta dare un'occhiata all' Help. Per es. si puo' dichiarare la variabile [u:1aowk07g]float64 ts2 = ts * ts;[/u:1aowk07g] invece di ripetere [u:1aowk07g]ts * ts[/u:1aowk07g] ogni volta. 4) se i risultati di un formula node sono gli stessi (anche perchè non cambiano gli ingressi!!!!) [b:1aowk07g]la formula puo' essere eseguita una volta sola fuori da un loop[/b:1aowk07g] 5) è inutile generare 3 volte lo stesso blocco di dati DDT (Dynamic Data Type) utilizzando sempre la stessa sorgente! 6) gli Express VI fanno schifo Io farei così[attachment=0:1aowk07g]mio ciclo.zip[/attachment:1aowk07g] bye ---------------------------------------- AUTORE: 2488 DATA :21/10/2008 - 18:15:36 ---------------------------------------- [quote="paracarro":392mbgcq][quote="dorian gray":392mbgcq]ecco il file.....capirai lanciandolo e implementando i valori nella foto allegata prima. grasssssie \":)\"[/quote:392mbgcq] beh; le formule scritte così sono illeggibili: 1) tutto appiccicato su un'unica linea quando si può andare a capo. Almeno si vada a capo ad ogni ";" !!!! 2)uso inaccettabile delle parentesi quando basta stare un po' attenti e, se si considerano le precendenze degli operatori anche solo quelli aritmetici, la formula diventa improvvisamente comprensibile. 3) si possono dichiarare variabili all'interno del [i:392mbgcq]formula node[/i:392mbgcq] basta dare un'occhiata all' Help. Per es. si puo' dichiarare la variabile [u:392mbgcq]float64 ts2 = ts * ts;[/u:392mbgcq] invece di ripetere [u:392mbgcq]ts * ts[/u:392mbgcq] ogni volta. 4) se i risultati di un formula node sono gli stessi (anche perchè non cambiano gli ingressi!!!!) [b:392mbgcq]la formula puo' essere eseguita una volta sola fuori da un loop[/b:392mbgcq] 5) è inutile generare 3 volte lo stesso blocco di dati DDT (Dynamic Data Type) utilizzando sempre la stessa sorgente! 6) gli Express VI fanno schifo Io farei così[attachment=0:392mbgcq]mio ciclo.zip[/attachment:392mbgcq] bye[/quote:392mbgcq] beh effettivamente il tuo funziona e pure troppo bene hehehe, c'e' solo un problemino.... non ci capisco una mazza (UFFY \":(\" ) vedi io uso questo programma da un mesetto e non sono capace ad usarlo per nulla. sono daccordo con te nella 1) 2) 3) 4) 5) 6) ma per me rimangono ancora troppo difficili concettualmente, invece il mio e' sicuramente uno schifo e uno spreco di formule, ma almeno io da "profano" lo capisco e dato che lo dovro' spiegare,non so' se riuscirei a spiegare quello che mi hai gentilissimamente allegato. cmq cerchero' di studiarlo. Ti avviso,con questo programma(che a differenza mia avrai fatto in pochi minuti) sei diventato il mio mito della settimana hehehe. grazie ancora \":)\" ---------------------------------------- AUTORE: 43 DATA :22/10/2008 - 14:03:44 ---------------------------------------- [quote="dorian gray":1sa3lxvz] beh effettivamente il tuo funziona e pure troppo bene hehehe, c'e' solo un problemino.... non ci capisco una mazza (UFFY \":(\" ) [/quote:1sa3lxvz]E' + semplice di quanto pensi... [quote="dorian gray":1sa3lxvz]vedi io uso questo programma da un mesetto e non sono capace ad usarlo per nulla. sono daccordo con te nella 1) 2) 3) 4) 5) 6)[/quote:1sa3lxvz]Capisco. LabVIEW, oltre ad essere un "programma", è un "linguaggio di programmazione". Il fatto che Tu sia daccordo sulle prime 5 mi potrebbe far pensare che hai controllato punto x punto quello che ho scritto, ma il fatto che Tu sia daccordo sul punto 6 mi fa capire che non hai letteralmente capito una beata mazza neanche di quello che ho scritto nel post (probabilmente non sai distinguere nemmeno gli "express VI" dagli altri...)" [quote="dorian gray":1sa3lxvz]ma per me rimangono ancora troppo difficili concettualmente, invece il mio e' sicuramente uno schifo e uno spreco di formule, ma almeno io da "profano" lo capisco [/quote:1sa3lxvz]complimenti vivissimi... [quote="dorian gray":1sa3lxvz]e dato che lo dovro' spiegare,non so' se riuscirei a spiegare quello che mi hai gentilissimamente allegato. cmq cerchero' di studiarlo.[/quote:1sa3lxvz]Ti ringrazio per il tentativo... [quote="dorian gray":1sa3lxvz]Ti avviso,con questo programma(che a differenza mia avrai fatto in pochi minuti) sei diventato il mio mito della settimana hehehe. grazie ancora \":)\"[/quote:1sa3lxvz]Vabbè...allora sai che faccio? Rilancio con una versione nella quale non ci sono "express VI".[attachment=0:1sa3lxvz]mio ciclo1.vi[/attachment:1sa3lxvz] Nella versione senza express VI la sequenza di calcolo è [array di double] ---elaborazione----> [array di double] quella con expressVI sonoi seguenti: [array di double] ---conversione---->[Waveform] ---conversione---->[DDT]---conversione---->[Waveform]---conversione---->[array di double] ---elaborazione----> [array di double] ---conversione---->[Waveform] ---conversione---->[DDT] e se qualcuno non è daccordo... Non succede niente. Come sempre. Come chicca finale ti mostro nell'esempio sia l'uscita sull XY GRAPH sia sul WaveForm Graph, scalando correttamente l'asse dei tempi... bye. P.S.:Sono disposto a spiegarti tutto il VI a patto che mi ricarichi 80 euri sul telefonino... P.S.: Siccome sono troppo buono, per capire come funziona il VI ti consiglio di provare con un basso valore(10, 20, 100 ecc.)di "n. punti" ed osservare i risultati nel primo grafico che visualizzo, leggere accuratamente l'Help di LabVIEW riguardo le funzioni "Interpolate 1D Array" e "Threshold 1D Array", ecc... ---------------------------------------- AUTORE: 2488 DATA :31/10/2008 - 12:11:13 ---------------------------------------- Ciao a tutti ragazzi, vi chiedo solo un ultimo piccolo aiuto e poi spero di non rompervi piu' \":)\" dovrei approssimare la mia parabola con una sinusoide o con 2 archi di sinusoide.... come posso fare?? gli imput sono sempre gli stessi della parabola ( CT "tempo del semiperiodo" e S "ampiezza" ) grazie a tutti e buona giornata PS: allego il file ---------------------------------------- ================================================================================ Salvare dati in un particolare foglio di un file excel ================================================================================ AUTORE: 925 DATA :08/10/2008 - 12:13:29 ---------------------------------------- Ciao, devo salvare dei dati acquisiti dal mio software provenienti da 3 sensori in 3 diversi fogli dello stesso file .xls. Non so come accedere però ai singoli fogli. Qualcuno può darmi una mano? Se può servire saperlo, uso LV 7.1. Grazie, Adriano ---------------------------------------- AUTORE: 1050 DATA :10/10/2008 - 15:09:10 ---------------------------------------- Ciao, prova così: è macchinoso ma funziona. probabilmente esiste un'altra via. ciao ---------------------------------------- ================================================================================ visualizzare applicazioni nel Front Panel ================================================================================ AUTORE: 2489 DATA :08/10/2008 - 19:58:52 ---------------------------------------- Ciao a tutti, qualcuno sa se è possibile inserire nel front panel una schermata di un altra applicazione che sta girando sul pc contemporaneamente a Labview? Io vorrei visualizzare nel Front Panel di Labview la schermata di un applicativo che legge i dati dalla mia stazione meteo, per poterla pubblicare tramite il web server di Labview.....spero di essere sta chiaro... \":)\" ---------------------------------------- AUTORE: 927 DATA :13/10/2008 - 13:35:56 ---------------------------------------- E' possibile farlo tramite i controlli ActiveX, ma dev'essere l'altra applicazione a mettere a disposizione il servizio (come fanno ad esempio Office e Acrobat Reader) ---------------------------------------- ================================================================================ Acquisizione a comando in un foglio excel ================================================================================ AUTORE: 2484 DATA :09/10/2008 - 10:56:41 ---------------------------------------- Ciao a tutti, lavoro con una VI per l'acquisizione dei dati da diversi canali di un DAQ. La VI creata mi consente di visualizzare in tempo reale l'andamento dei sensori da monitorare su di un graph XY (valore del sensore - coordinata di posizione del sensore). Ho la necessità di creare all'interno della VI una subVI che mi consenta l'acquisizione dei dati che visualizzo in un file excel ad un istante determinato, mediante il click di un comando pulsante. Il mio dubbio non riguarda il trasferimento al foglio excel dei dati in questione, ma piuttosto il numero di acquisizioni che deve essere da me stabilito mediante il click di un pulsante ed in un determinato istante. Mi spiego meglio: mentre nella vi io posso visualizzare in tempo reale le acquisizioni, ho comunque la necessità di stabilire ad un dato istante l'acquisizione da memorizzare in excel. Potete aiutarmi? Grazie in anticipo ---------------------------------------- AUTORE: 645 DATA :10/10/2008 - 08:56:03 ---------------------------------------- [quote="mistereko":1j96hruw]...mentre nella vi io posso visualizzare in tempo reale le acquisizioni, ho comunque la necessità di stabilire ad un dato istante l'acquisizione da memorizzare in excel...[/quote:1j96hruw] Mi sa che non ho capito: tu visualizzi nel VI tutti i dati (l'andamento). Cosa intendi quando dici che che devi stabilire i dati da salvare in Excel? Cioè... quando premi il pulsante salvi i dati attuali... A che velocità gira il VI? Potresti fare una media ogni tot di tempo e poi salvare questa media nel file Excel. ---------------------------------------- AUTORE: 2484 DATA :13/10/2008 - 07:48:54 ---------------------------------------- il VI gira a 250 ms, ma per il tipo di acquisizione che devo fare mi importa soltanto salvare i dati di una schermata di visualizzazione ad un determinato istante (l'istante a cui corrisponde una situazione di stabilità dei valori). La cosa che mi interessa non è la possibilità dieffettuare la media dei valori visualizzati in grafico e salvarla, ma semplicemente salvare una particolare acquisizione ad un determinato istante da me stabilito. Che struttura posso utilizzare? puoi farmi uno schema esplicativo? Ti ringrazio mille. ---------------------------------------- AUTORE: 645 DATA :13/10/2008 - 08:45:22 ---------------------------------------- Ci vorrebbe qualcosa del tipo: Ciclo di lettura, Struttura ad eventi che legge lo stato di un pulsante, Comandi di salvataggio du file excel all'interno della struttura ad eventi nel caso di pulsante premuto. Prova a guardare qualche esempio sull'uso della struttura ad eventi (nella directory esempi di LabView) e poi implementa la parte di acquisizione del segnale. Purtroppo non ho sottomano LabView al momento e non riesco a preparare un esempietto. Però penso che una strada possibile sia questa! ---------------------------------------- AUTORE: 2484 DATA :13/10/2008 - 09:33:54 ---------------------------------------- ok grazie, ci provo subito ciao ---------------------------------------- AUTORE: 2484 DATA :13/10/2008 - 14:37:24 ---------------------------------------- come posso creare una struttura eventi che risponde ad un pulsante? \":)\" per favore magicbotolo...mi aiuti? ---------------------------------------- AUTORE: 645 DATA :14/10/2008 - 10:38:33 ---------------------------------------- Quando crei una struttura ad eventi devi selezionare l'evento controllato. Se sul Block Diagram hai un pulsante questo (con il suo nome) comparirà tra gli oggetti controllabili: puoi selezionare l'evento MouseUp o l'evento Change Value (dipende da che tipo di comportamento hai scelto per il pulsante... Mechanical Actions) e la struttura ad eventi risponderà alla pressione del pulsante. \":D\" ---------------------------------------- ================================================================================ due array in un foglio excel ================================================================================ AUTORE: 2491 DATA :09/10/2008 - 11:25:14 ---------------------------------------- salve, come posso inviare i valori di 2 array ( il primo è costituito da 8 valori, ed il secondo da altri \"8)\" in una riga di un foglio excel con il click di un pulsante? Chi può aiutarmi? \":)\" ---------------------------------------- AUTORE: 645 DATA :09/10/2008 - 17:07:15 ---------------------------------------- Puoi usare il blocco "Write to spreadsheet": come ingressi passi i dati che vuoi scrivere sul foglio excel. ---------------------------------------- ================================================================================ AIUTO PROGETTO ================================================================================ AUTORE: 2487 DATA :09/10/2008 - 11:38:40 ---------------------------------------- Salve a tutti. Sono un po inesperto in programmazione lab..avrei bisogno di una mano ed idee per un mio progetto. devo implementare un convertitore sigma-delta (come mostrato sullo schema allegato), ma sto avendo delle difficolta. Dopo alcuni ragionamenti, ho buttato giu questo VI, che pero non funziona(qualche idea del perchè la so).... Sarei grato a chiunque potesse aiutarmi....allego i files. grazie ---------------------------------------- AUTORE: 301 DATA :09/10/2008 - 15:57:40 ---------------------------------------- Quello che estrai dalla forma d'onda è un array di valori di y per cui l'operazione che intendi fare la devi fare con un array. Al limite puoi far passare il dato prima in un buil array. ---------------------------------------- AUTORE: 2487 DATA :09/10/2008 - 16:25:02 ---------------------------------------- Ragazzi, metto direttamente il file del progetto, cosi potete manomettere voi stessi. grazie \":D\" ---------------------------------------- AUTORE: 645 DATA :09/10/2008 - 17:06:12 ---------------------------------------- Ciao Piumadifuoco... la filosofia di questo forum non è quella di sistemare i VI altrui ma quella di condividere idee affinchè l'interessato raggiunga un risultato... Dovresti modificare la tua domanda: partendo dal tuo problema, aggiungendo le considerazioni degli altri utenti, cosa puoi modificare affinchè il VI faccia quello che vuoi tu? ---------------------------------------- AUTORE: 301 DATA :13/10/2008 - 11:18:23 ---------------------------------------- tho', va.... ---------------------------------------- AUTORE: 2487 DATA :13/10/2008 - 11:22:38 ---------------------------------------- io ho la versione di labview 7.1 non si apre... non puoi fare niente per me? \":mrgreen:\" ---------------------------------------- ================================================================================ librerie modbus ================================================================================ AUTORE: 1368 DATA :10/10/2008 - 16:22:59 ---------------------------------------- Ciao a tutti, dove posso trovare delle librerie modbus sia per seriale che ethernet?? grazie a tutti ---------------------------------------- AUTORE: 1124 DATA :11/10/2008 - 12:33:41 ---------------------------------------- ciao allego un documento che potrebbe aiutarti nel frattempo ti suggerisco di cercare "modbus" tra le righe di questo forum con che dispositivo scambi dati? ---------------------------------------- ================================================================================ Analizzatore protocollo 104 ================================================================================ AUTORE: 2492 DATA :11/10/2008 - 17:43:01 ---------------------------------------- Ciao a tutti, sono nuovo e avrei un problema , dovrei creare un programma che riesca a leggere tramite la porta lan il protocollo 104.... Questo protocollo lo uso per il telecontrollo e vorrei che caricando il database che possiedo ( in excel) con tutte le tag associate riesca a vedere i segnali che passano..... Grazie... ---------------------------------------- AUTORE: 645 DATA :13/10/2008 - 08:42:43 ---------------------------------------- Come è fatto questo protocollo? Hai un sito internet da suggerire per scoprirne un po' di più? ---------------------------------------- ================================================================================ CREAZIONE TRENO IMPULSIO SU OUTPUT DIGITALE ================================================================================ AUTORE: 1295 DATA :12/10/2008 - 13:39:24 ---------------------------------------- Ciao a tutti, vorrei creare un treno d'impulsi su un canale di output digitale con frequenza da modular ein funzione di un ingresso analogico. Dal momento che non ho grande esperienza con gli output digitali c'è qualcuno che mi potrebbe dare un'imbeccata o un suggerimento su come impostare il vi? P.S. uso Labview 8.0 Grazie anticipatamente ---------------------------------------- ================================================================================ labview signal express e salvataggio dati in file xls ================================================================================ AUTORE: 2490 DATA :13/10/2008 - 15:35:47 ---------------------------------------- salve, avrei bisogno di sapere se i dati acquisiti da LabView Signal Express con un'unità di acquisizione NI USB 6009 possono essere salvati in un file xls e successivamente diagrammati (magari qualcuno di buona volontà può passarmi un programmino ad hoc?). attenzione però: so già che esiste la funzione "export to" che converte i dati acquisiti in una tabella di un foglio xls ma non so come acquisire su un intervallo temporale arbitrario, ossia il file xls che mi restituisce il programma è sempre una snapshot del diagramma complessivo. mi spiego: se ho acquisito per 1 ora non riesco a salvare i dati acquisiti in un'ora ma solo quelli contenuti in un intervallo definito (una snapshot appunto). ciao e grazie ---------------------------------------- ================================================================================ visualizzazione date su asse X di un Grafico ================================================================================ AUTORE: 2435 DATA :13/10/2008 - 17:43:16 ---------------------------------------- Ciao a tutti.... nell'allegato c'è un esempio di un grafico con l'asse X in formato "data". il problema è che non riesco a caricare più di (circa) 5 punti. sapete dirmi dove sto sbagliando? grazie ---------------------------------------- AUTORE: 2435 DATA :13/10/2008 - 17:45:33 ---------------------------------------- ho sbagliato a scrivere.... non riesco a caricare più di 55 punti. ---------------------------------------- AUTORE: 2435 DATA :14/10/2008 - 09:00:15 ---------------------------------------- il problema sembr dovuto al cambio di data.... qualcuno ha provato?? grazie ---------------------------------------- AUTORE: 645 DATA :14/10/2008 - 10:36:47 ---------------------------------------- Puoi postare l'immagine del Block Diagram? ---------------------------------------- AUTORE: 2435 DATA :14/10/2008 - 16:28:38 ---------------------------------------- Spero si riesca a vedere e capire... ---------------------------------------- ================================================================================ Database, Linux e Labview ================================================================================ AUTORE: 482 DATA :13/10/2008 - 17:58:47 ---------------------------------------- ...ma ciao! sto sviluppando un applicazioncina su labview utilizzando sqlite wrapper for labview, che trovo comodissimo. Ingenuamente ho pensato: Ecco, faccio la mia applicazione e poi me la porto su linux senza problemi son sqlite. Invece sqlite wrapper appoggia su una dll apposita che con linux non va bene. Qualcuno di voi ha già provato a portarsi su linux la libreria sqlite per labview? Io ho provato a cambiare le chiamate alle libreria dirottandole sulla libreria sqlite per linux pero' si vede che la sintassi è diversa o non so che altro... Idee? Qualcuno ha voglia di mettersi con me qui sul forum a spippolare su ste librerie e portarle in linux? ---------------------------------------- AUTORE: 482 DATA :14/10/2008 - 13:26:52 ---------------------------------------- Vabbhè, ci sto provando...alla faccia vostra che mi lasciate da solo \":(\" Ho sistemato al Open, ma la EXEC mi sta dando problemi...abbastanza grossi, nel sensoche va in crash e mi si chiude labview. Me lo faceva anche la Open quando i parametri erano sbagliati. Vi posto la scermata delle impostazioni con dietro la sintassi di come dovrebbe essere la funzione: Qualcuno sa darmi qualche dritta su cosa devo sistemare? Io e Il C non siamo mai andati d'accordo... ---------------------------------------- AUTORE: 129 DATA :26/10/2008 - 22:55:45 ---------------------------------------- Molto ingenuamente e freddamente, non è che devi scaricare e quindi fare riferimento alle library per linux? Ciao ---------------------------------------- AUTORE: 482 DATA :27/10/2008 - 07:08:43 ---------------------------------------- Già provato. Va tutto in crash. Non so per quale motivo ma l'autore del wrapper non si è limitato a collegarsi alla libreria standard di sqlite ma ci ha messo del suo e quindi gli ingressi e le uscite delle varie funzioni non corrispondono...ho provato anche a contattarlo via mail ma per il momento nessuna risposta... ---------------------------------------- AUTORE: 482 DATA :28/10/2008 - 13:00:39 ---------------------------------------- Niente da fare, sono bloccato qui: [code:o01k8d5j]int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ ); [/code:o01k8d5j] che cacchio di tipi di dati sono?? \":(\" Puntatori? valori? array? cluster?? in particolare [b:o01k8d5j]int (*callback)(void*,int,char**,char**)[/b:o01k8d5j] cosa mi rappresenta?? E gli asterischi che significano? Mi ricordo vagamente che hanno a che fare con i puntatori, ma quando sono doppi?? Per adesso ho scoperto che il primo ingresso (riferimento al database) è un I32 passato per Valore. Il secondo (la stringa sql) se lo imposto come C string pointer mi manda in crash e mi chiude labview, se lo imposto come String Handle non va incrash ma mi restituisce un errore 1 8che pero' puo' essere dovuto agli altri ingressi che al momento non so come debbano essere e quindi ho improvvisato \":)\" ---------------------------------------- AUTORE: 43 DATA :28/10/2008 - 14:17:16 ---------------------------------------- [quote="gepponline":20upul8q]... [code:20upul8q]int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ ); [/code:20upul8q]...[/quote:20upul8q] Vado a naso... Tenendo conto che i puntatori occupano cmq 4 byte, e che la "callback" DOVREBBE essere facoltativa (ma non hai un pdf di Riferimento di tutte le funzioni di libreria?) [code:20upul8q] sqlite3 = U32 --> inserire il valore restituito dalla open... sql = String Handle --> passare una stringa NUL TERMINATA (basta aggiungere un "\00" in hex mode in fondo alla costante o aggiungerlo programmaticamente in fondo alla query che dovrebbe essere passata come argomento al VI) callback =U32 --> 0 fisso (è un puntatore a funzione che restituisce un intero....) arg1 =U32 --> 0 fisso err =U32 --> 0 fisso [/code:20upul8q] per capire un po' meglio i tipi di dati devi guardarti i file di include (.h) bye ---------------------------------------- AUTORE: 482 DATA :28/10/2008 - 14:28:29 ---------------------------------------- ma se fosse come dici tu come farei ad avere il risultato della query??? mhh... comunque di documentazioen c'e' quella sul sito ufficiale di sqlite. In particolare : http://www.sqlite.org/capi3.html http://www.sqlite.org/c3ref/funclist.html ---------------------------------------- AUTORE: 43 DATA :28/10/2008 - 17:30:16 ---------------------------------------- [quote="gepponline":1rg310zh]ma se fosse come dici tu come farei ad avere il risultato della query??? mhh... comunque di documentazioen c'e' quella sul sito ufficiale di sqlite. In particolare : http://www.sqlite.org/capi3.html http://www.sqlite.org/c3ref/funclist.html[/quote:1rg310zh] OK, ho visto le indicazioni. DEVI obbligatoriamente crearti un CIN (devi sviluppare del codice C) o in alternativa farti una dll, in quanto non putoi da LaBVIEW passare un puntatore a funzione di codice LaBVIEW... bye ---------------------------------------- AUTORE: 482 DATA :29/10/2008 - 07:31:16 ---------------------------------------- ahm no aspetta...o c'e' qualcosa che sfugge a me o c'e' qualcosa che sfugge a te. Io faccio la chiamata alla dll di SQLite ufficiale che siscarica dal sito. Che altra dll mi dovrei creare? ---------------------------------------- AUTORE: 43 DATA :29/10/2008 - 10:44:08 ---------------------------------------- [quote="gepponline":27uym4j8]ahm no aspetta...o c'e' qualcosa che sfugge a me o c'e' qualcosa che sfugge a te. Io faccio la chiamata alla dll di SQLite ufficiale che siscarica dal sito. Che altra dll mi dovrei creare?[/quote:27uym4j8] Devi come dicevo scrivere Tu ( se non lo trovi già fatto) del codice che si interpone fra le chiamate da LabVIEW e la DLL di SQLite Ufficiale. Cioè puoi scrivere in alternativa al CIN (codice C, compilato ma fatto apposta per interfacciarsi a LaBVIEW), una + generica DLL, nella quale puoi eseguire la Tua chiamata verso la DLL di SQLite Ufficiale passando puntatori a funzioni, puntatori a puntatori a strutture e tutte le altre amenità ivi trovate nella documentazione che è chiaramente rivolta a sviluppatori C eC++ (tra l'altro l'interfaccia è cmq orientata agli oggetti) e nel contempo puoi semplificare l'interfacciamento verso LabVIEW passando semplici puntatori (a stringhe o ad array di byte da interpretare nel modo corretto...) Avresti gli stessi problemi anche se volessi interfacciarti con VB6 (il vecchio VisualBasic di VisualStudio 6) bye ---------------------------------------- AUTORE: 482 DATA :29/10/2008 - 10:48:52 ---------------------------------------- non ci ho capito niente..quindi mi sa che mando a monte tutto il progetto... mi stai dicendo che per richiamare quella dll scritta in C devo creare una dll in C che richiami la dll e poi posso interfacciarmi con labview? ---------------------------------------- AUTORE: 43 DATA :29/10/2008 - 10:54:59 ---------------------------------------- [quote="gepponline":xag9xcv5]non ci ho capito niente..quindi mi sa che mando a monte tutto il progetto... mi stai dicendo che per richiamare quella dll scritta in C devo creare una dll in C che richiami la dll e poi posso interfacciarmi con labview?[/quote:xag9xcv5] Esatto!! \";)\" \";)\" \";)\" \";)\" \";)\" \";)\" ---------------------------------------- AUTORE: 482 DATA :29/10/2008 - 11:06:42 ---------------------------------------- mamma mia che cose assurde... purtroppo sono solo un programmatore labVIEW.....il codice non fa pe rme \":)\" ---------------------------------------- ================================================================================ Acquisizione attraerso seriale FP ================================================================================ AUTORE: 1078 DATA :14/10/2008 - 12:51:29 ---------------------------------------- Ciao a tutti, come faccio a fare riferimento alla seriale del mio Field-point 2000? Devo acquisire in realtime un segnale da uno strumento che è collegato via seriale al mio field-point.... Grazie a a tutti... ---------------------------------------- AUTORE: 927 DATA :14/10/2008 - 14:08:32 ---------------------------------------- Si usano le stesse funzioni che si usano per gestire le seriali dei PC. Il FP-2000 vede la propria porta come COM1 ---------------------------------------- AUTORE: 1078 DATA :14/10/2008 - 15:16:00 ---------------------------------------- Ci provo ... grazie ---------------------------------------- AUTORE: 1078 DATA :14/10/2008 - 15:33:06 ---------------------------------------- Scoperto il problema: impossibile utilizzare la porta seriale se non sono installati sull'FP i driver VISA e Seriale.... che pistola dovevo pensarci prima.... L'installazione dei driver (per chi non lo sapesse) si fa tramite l'MA di National, cliccando con il tasto destro del mouse sul nodo SW dell'FP su cui si devono installare e seguendo le instruzioni. Buon lavoro e grazie a tutti..... ---------------------------------------- ================================================================================ SHIFT CIFRE ================================================================================ AUTORE: 2493 DATA :14/10/2008 - 15:15:13 ---------------------------------------- ciao ragazzi... siamo nuovi... abbiamo un aiuto al più presto.... noi abbiamo due u32 messi in due registri separati... il risultato deve essere lo shiftamento di alcune cifre del secondo registro nel primo..... ad es. se abbaimo 352 nel primo e 245 nel secondo... il risultato deve essere 35224 e nel secondo solo 5 lo shiftamento nn è prefissato ma definito dall'utente come è possibile? con quale strutttura??? ---------------------------------------- AUTORE: 482 DATA :15/10/2008 - 08:04:12 ---------------------------------------- [quote="ale160784":33t6odlu]noi abbiamo due u32 messi in due registri separati...[/quote:33t6odlu] In due registri? Cos aintendi per due registri? [quote="ale160784":33t6odlu]ad es. se abbaimo 352 nel primo e 245 nel secondo... il risultato deve essere 35224 e nel secondo solo 5 lo shiftamento nn è prefissato ma definito dall'utente come è possibile? con quale strutttura???[/quote:33t6odlu] Beh, se quelli che tu chiami registri sono due semplici controlli U32, basta convertirli in stringhe e poi operare sulle stringhe, oppure tenendo tutto come numeri, suddividere la cifa in centinaia, decine e unità e poi far shiftare le quantità di ogni tipo. Se per registri intendi che le cifre fanno parte di array, basta operare sugli array ed enetualmente poi usare quello che ti ho scritto sopra. C'e' qualcosa che mi sfugge? ---------------------------------------- AUTORE: 2493 DATA :15/10/2008 - 10:25:27 ---------------------------------------- ok.. il problema è che nn possiamo usare array ne strighe.. pensatele in 2 semplice u32.. devo spostare delle cifre da un 32 all'altro .. in che modo posso farlo?? grazie ---------------------------------------- AUTORE: 43 DATA :15/10/2008 - 10:50:37 ---------------------------------------- [attachment=0:o2h9ii1l]Untitled.vi[/attachment:o2h9ii1l] ---------------------------------------- AUTORE: 2493 DATA :15/10/2008 - 12:33:26 ---------------------------------------- grazie.. ora faccio delle porve forse è quello che cercavo... grazie mille ---------------------------------------- AUTORE: 2493 DATA :15/10/2008 - 13:30:28 ---------------------------------------- ok shiftamente riuscito.. però mi sorge un problemino.. nn sò se da poco... devo fare una semplice sottarazione con 2 u32... però il risultato lo voglio in i8... il guai è che mi fa la sottarazione anche con il segno se i aggiungo un semplice indicator. ma se metto il collegamente in un altro operatore mi tiene il tipo u32 come faccio a solvere qst problema? se vedeto la cosa ce ho fatto quando entra nello shict.. etra un u32.. enn va bene... grazie ---------------------------------------- AUTORE: 43 DATA :15/10/2008 - 15:21:19 ---------------------------------------- [quote="ale160784":1ggt9m4u]ok shiftamente riuscito.. però mi sorge un problemino.. nn sò se da poco... devo fare una semplice sottarazione con 2 u32... però il risultato lo voglio in i8... il guai è che mi fa la sottarazione anche con il segno se i aggiungo un semplice indicator. ma se metto il collegamente in un altro operatore mi tiene il tipo u32 come faccio a solvere qst problema? se vedeto la cosa ce ho fatto quando entra nello shict.. etra un u32.. enn va bene... grazie[/quote:1ggt9m4u] 1) tutti sanno che la sottrazione fra 2 numeri interi non è altro che la somma dei 2 numeri dove il 2ndo numero è "complementato a 2". Cioè anche se i numeri sono senza segno la sottrazione è comunque fatta cosi'. quindi bisogna fare attenzione ai "limiti" delle rappresentazioni numeriche in memoria. 2) se sottrai fra loro 2 numeri a 32 bit, va da sè che il risultato è a 32 bit e "non ci puo' stare in 8bit . a questo punto potresti volere: - la parte bassa del risultato cioè gli 8 bit bit meno significativi: - il risultato "approssimato" cioè se la differenza è superiore a 127 otterrai 127 se è inferiore a -128 otterrai -128 - il risultato senza segno "approssimato" fra 0 e 127 in generale mi chiedo xchè usare un i8 quando sarebbe molto meglio usare un U8 3) guardando il codice si direbbe che i Tui numeri sono a 24 bit (6 nibbles cioè 6 cifre esadecimali) Ma Tu shifti a gruppi di 4 bit oppure NO. Non potresti spiegare meglio dove vuoi andare a parare? ---------------------------------------- AUTORE: 2493 DATA :15/10/2008 - 19:59:36 ---------------------------------------- No hai ragione mi sn spiegato male.. io problema risolto cmq.. grazie \":mrgreen:\" ---------------------------------------- AUTORE: 482 DATA :16/10/2008 - 07:21:57 ---------------------------------------- Ale please, non limitarti a dire problema risolto, sarebbe bello che tu comunicassi in toto quale era il tuo problema e come l'hai risolto. Potrebbe essere d'aiuto ad altri! \":wink:\" ---------------------------------------- AUTORE: 2493 DATA :16/10/2008 - 10:06:48 ---------------------------------------- No è che mi sn accorto di avere scritto una mezza schemenza... il mio problema era che se sottraggo 2 numeri u32 il risultato è sempre in u32 e se la sottrazione da un nuero negativo u32 va in owerflow.. e da come risultato un numero altissimo. che è giusto perchè parte dal massimo valore dell u32.. io ho inserito un converto to i32 per caverne fuori il numero cn il segno ^^ ---------------------------------------- AUTORE: 2493 DATA :16/10/2008 - 10:42:06 ---------------------------------------- Continuando nel mio progettino mi è sorto un altro problema... cm faccio a conoscere la lunghezza in bit di un numero u32... trascoruando gli zero davanti?? esiste qualche Vi o dv invertarmi qualcosa?? tnk \":D\" ---------------------------------------- AUTORE: 2493 DATA :16/10/2008 - 11:31:23 ---------------------------------------- per spiegarmi meglio se nel u32 c'è 101 in binario devo avere come out 3 se ho 1101 4... grazie ---------------------------------------- AUTORE: 43 DATA :16/10/2008 - 11:50:10 ---------------------------------------- [quote="ale160784":1x2kdat8]per spiegarmi meglio se nel u32 c'è 101 in binario devo avere come out 3 se ho 1101 4... grazie[/quote:1x2kdat8] 1) 101? 1111-1111-1111-1111-1111-1111-1111-1 101 (FFFF-FFFD) oppure 0000-0000-0000-0000-0000-0000-0000-0 101 (0000-0005) 2) se invece di 2 soli esempi ne fai 3 è meglio. Possibilmente sfruttando meglio il range numerico, cioè non dando risultati "vicini" ---------------------------------------- AUTORE: 2493 DATA :16/10/2008 - 12:31:31 ---------------------------------------- ookk... allora per essere + specifico io ho il numero 0000-0000-0000-0000-0000-0000-0000-0 101 (0000-0005) come out dv vere 3 cio'è i bit significativi 0000-0000-0000-0000-0000-0000-0000-1101 out 4 0000-0000-0000-0000-0000-0000-1111-1101 out 8 senza però utilizzare array o stringhe... ti rigrazio x l'attenzione ---------------------------------------- AUTORE: 43 DATA :16/10/2008 - 14:42:15 ---------------------------------------- Scusate ma avevate fatto 2 post in fila e non avevo letto il primo. Cmq mi sembrava che aveste capito il meccanismo e foste in grado di fare questo conto in piena autonomia. Vabbè, però se siete studenti, dite qualcosa in più riguardo voi stessi e soprattutto spiegate un po' lo scopo di queste operazioni logiche sui bit. ---------------------------------------- AUTORE: 2493 DATA :16/10/2008 - 15:21:12 ---------------------------------------- Bella.. ci ero arrivato +- anche da solo... cmq ora spiego il tutto.. siamo 2 studenti nella facolta di ingeneria... stiamo relaizzando in labwiev una libreria che somma 2 numeri in ieee 754 senza ausilio di array e strignhe e senza utlizzare i Vi somma .... quidni devo imparare a smanettare sullo shift e sugli u32.. spiegare il progetto è un pò troppo pacco... cmq per ora stiamo facendo solo qst libreria.. se hai delle dritte sn bene accette... CMQ.. nn ho ancora risolto il problema di spostare dei bit da un u32 all'altro ora ti spiego bene cn un esempio...ù io ho 2 numeri a = 0000-0000-0000-0000-0000-0000-0000-1101 e b = 0000-0000-0000-0000-0000-0000-0000-1101 c = 2 che equivale al numero di bit da mettere in b... il rislutato sarebbe a = 0000-0000-0000-0000-0000-0000-0000-0011 b = 0000-0000-0000-0000-0000-0000-0001-1101 altro esempio a= 0000-0000-0000-0000-0000-0000-0000-1101 b= 0000-0000-0000-0000-0000-0000-0000-1101 c= 3 rislutato =0000-0000-0000-0000-0000-0000-0101-1101 in poche parole dati 2 u32 A e B uno che contengono 2 numeri devo "attacare" ad B in testa tanti bit di A (partendo dal meno significativo al più significativo) quanti bit stabiliti da C chiaro?? im pratica devo spostare la virgola degli u32 in modo da normalizzare la mantissa di un numero in sgl dello stadar ieee 754 e come idea ho avuto di utilizzare 2 registri uo per sommare la mantissa mantissa uno per sommare la parte al di la della virgola che si crea quando sommo 2 numeri cn esponenti diversi... HELP me!! ^^ ---------------------------------------- AUTORE: 2493 DATA :16/10/2008 - 15:22:34 ---------------------------------------- correggo in ingresso ho 2 sgl... li trasformo in u32... poi da li inizia la somma... perchè posso utilizzare solo u32... per le applicazioni future.. ---------------------------------------- ================================================================================ Variabile Globale ================================================================================ AUTORE: 2494 DATA :14/10/2008 - 16:01:43 ---------------------------------------- Ciao a tutti, sono un nuovo utilizzatore di Labview alle prime armi. Avrei bisogno di saperne di più sulle variabili globali...ho creato e salvato il mio cluster aprendo la finestra dal mio progetto. Come faccio ora a farla aggiornare dalle subVi del mio progetto? Grazie ---------------------------------------- AUTORE: 645 DATA :17/10/2008 - 09:25:00 ---------------------------------------- È un po' generico... Comunque, se guardi sul sito della National (www.ni.com) puoi trovare indicazioni su cos'è e come funziona una variabile globale e su come si possono utilizzare le nuove shared variables (dovrebbero essere più performanti). Dai un'occhiata e poi prova a spiegare meglio qual è il punto in cui ti incastri! \":D\" ---------------------------------------- AUTORE: 2494 DATA :18/10/2008 - 14:39:22 ---------------------------------------- Ti ringrazio molto anche se un pò in ritardo...ma avevo risolto il problema...bastava trascinare l'icona dal progetto...ora avrei bisogno di un altro consiglio ma o inserisco in un nuovo argomento...così è più visibile. Ciao e grazie. ---------------------------------------- ================================================================================ Crash LabView appena apro l'Error List.. ================================================================================ AUTORE: 2440 DATA :17/10/2008 - 10:29:27 ---------------------------------------- Ciao ragazzi, qualcuno per favore mi aiuti.. Sto lavorando su un programma in LabView 8.6. Mi consente di fare tutto, tranne che eseguirlo. Infatti la freccia di RUN è rotta, esattamente come quando ci sono errori. Solo che se la premo per vedere dove sono gli errori, si apre l'Error List e si pianta LabView. A questo punto mi compare l'errore di sistema di Windows che mi chiude il LabView, con il classico messaggio che il programma ha causato un errore e verrà chiuso... Ragazzi qualcuno ha idee?? Sono messo un po' male... ---------------------------------------- AUTORE: 2440 DATA :17/10/2008 - 11:56:45 ---------------------------------------- Raagazzi ho risolto.. Nell'8.6 c'è un pulsante nella barra strumenti che permette di ripulire tutto il block diagram. Dopo aver ripulito tutto (spostandomi praticamente tutto il codice) mi ha permesso di vedere l'error list. Ho chiuso tutto senza salvare e ho riavviato il mio programma rotto, cercando gli errori che mi aveva dato precedentemente. Corretto tutto funziona..misteri della fede. ---------------------------------------- ================================================================================ LabView bloccato nei VI FP se va via la connessione con i Fi ================================================================================ AUTORE: 2440 DATA :17/10/2008 - 16:04:24 ---------------------------------------- Cosa uso: Windows XP, LabView 7.0, Field Point 4.0, Testa Field Point FP-1601 con moduli field point (AI,AO,DI,DO,RTD). Ho un programma in LabView 7.0 che comunica tramite cavo di rete e hub con la testa del field point. Ciclo while con sequenza di VI in lettura e scrittura a 1Hz. Quando va via la connessione alla rete, il programma resta bloccato nel VI di lettura di LabView dei moduli DI (Field Point Read booleani) o nei VI di scrittura dei moduli DO (Field Point Write booleani). Anche se torna la connessione di rete resta tutto completamente bloccato. A questo punto non riesco nemmeno a spegnere il programma, e devo chiudere LabView da task manager. Qualcuno sa cosa succede e come risolvere il problema? Thanx.. ---------------------------------------- AUTORE: 43 DATA :17/10/2008 - 17:04:46 ---------------------------------------- [quote="etanat":361yjp7h]Cosa uso: Windows XP, LabView 7.0, Field Point 4.0, Testa Field Point FP-1601 con moduli field point (AI,AO,DI,DO,RTD). Ho un programma in LabView 7.0 che comunica tramite cavo di rete e hub con la testa del field point. Ciclo while con sequenza di VI in lettura e scrittura a 1Hz. Quando va via la connessione alla rete, il programma resta bloccato nel VI di lettura di LabView dei moduli DI (Field Point Read booleani) o nei VI di scrittura dei moduli DO (Field Point Write booleani). Anche se torna la connessione di rete resta tutto completamente bloccato. A questo punto non riesco nemmeno a spegnere il programma, e devo chiudere LabView da task manager. Qualcuno sa cosa succede e come risolvere il problema? Thanx..[/quote:361yjp7h] Con ogni probabilità il sw è fermo o in loop dentro una DLL La chiamata alla DLL "gira" nel thread dell'interfaccia. Per questo hai l'interfaccia "appesa"... Questo succede se usi "male" un VI per es. se usi il VI di lettura da seriale dicendo di leggere 20 bytes e non imponi un timeout, nel caso non sia ancora arrivato il ventesimo byte, l'applicazione rimane "in stallo"... bye ---------------------------------------- AUTORE: 2440 DATA :20/10/2008 - 10:17:00 ---------------------------------------- Si, LabView resta bloccato nella dll. Ma nel vi "FP Read (Boolean).vi" o in "FP Write (Boolean).vi" come faccio ad imporre un timeout?? ---------------------------------------- AUTORE: 43 DATA :20/10/2008 - 12:04:18 ---------------------------------------- [quote="etanat":3ut8ae2r]Si, LabView resta bloccato nella dll. Ma nel vi "FP Read (Boolean).vi" o in "FP Write (Boolean).vi" come faccio ad imporre un timeout??[/quote:3ut8ae2r] Non ho sottomano moduli FieldPoint, ma suppondo che lo stesso principio valga x una qualunque risorsa VISA, devi impostare il Timeout durante la configurazione della risorsa e non mentre leggi da/scrivi su il disposutivo stesso. Il segreto sta nella configurazione... ---------------------------------------- AUTORE: 2440 DATA :20/10/2008 - 16:28:30 ---------------------------------------- Ok, ho cercato un modo per configurare i FP, non solo nel block diagram, ma anche nel MAX, ma non ho trovato niente. Idee? ---------------------------------------- AUTORE: 927 DATA :21/10/2008 - 10:44:17 ---------------------------------------- Effettivamente non ricordo che sia possibile impostare il timeout dei FP, però di solito non si comportano così; in caso di problemi di connessione, dopo qualche secondo i Read FP escono con un errore. Prova ad aggiornare il software Fieldpoint http://joule.ni.com/nidu/cds/fn/p/sb/na ... nt&x=0&y=0 ---------------------------------------- ================================================================================ combobox concatenate ================================================================================ AUTORE: 2494 DATA :18/10/2008 - 14:59:12 ---------------------------------------- Salve a tutti, il mio problema è che devo creare delle combobox di impostazioni in cui gli elementi della seconda sono dipendenti dalla scelta fatta dal menù della prima. Esempio: nella prima combobox le items sono ad es.\":(\"a,b,c). Vorrei che se si sceglie "a" dalla prima le items della seconda siano ad es.: (1,2,3), ---------------------------------------- AUTORE: 301 DATA :20/10/2008 - 08:33:59 ---------------------------------------- eccoti..... ---------------------------------------- AUTORE: 645 DATA :20/10/2008 - 09:22:45 ---------------------------------------- Solo per info copio qui il link ad un altro post che parla di Combobox, usate in modo diverso ma che forse possono avere elementi in comune: viewtopic.php?f=1&t=3734 ---------------------------------------- AUTORE: 2494 DATA :20/10/2008 - 10:50:56 ---------------------------------------- grazie mille!!! è tutto ciò che cercavo! a presto ---------------------------------------- AUTORE: 43 DATA :20/10/2008 - 12:32:35 ---------------------------------------- Guardando all'esempio di aris Consiglierei di fare attenzione al "Value" della Combobox. A parte il fatto che non capisco la simpatia verso le combobox, per cui l'operatore puo' inserire quello che vuole a differenza di un controllo tipo "Ring", dove la scelta è limitata agli elementi in lista, auspicherei che ad ogni nuovo caricamento dell'array di stringhe della combobox ci sia quanto meno un azzeramento del contenuto del medesimo controllo (una specie di set to default...). Nell'esempio inoltre samebbe cmq secondo me meglio mettere laproprietà "Strings[]" fuori dal case... bye ---------------------------------------- AUTORE: 301 DATA :20/10/2008 - 13:00:01 ---------------------------------------- Assolutamente giusto. Sarebbe stato meglio richiamare il property solamente una volta. Per quanto riguarda il valore sarebbe anche meglio inizializzare il tutto alla partenza del vi, ma quando sei al lavoro e cerchi di dare solo una mano non quardi alle sottigliezze ma cerchi di dare uno spunto. A volte la combo può risultare utile per tanti motivi, tipo il popolamento della stessa con valori non presenti all'inizio o che so io. Spesso l'ho usata per comodità....tutto dipende da quello che ne devi fare. In ogni caso grazie per gli appunti! ---------------------------------------- ================================================================================ cRIO x DAQ ================================================================================ AUTORE: 847 DATA :20/10/2008 - 14:11:45 ---------------------------------------- Ciao a tutti, devo iniziare ora ad utilizzare un cRio e quindi labview realtime e FPGA. Inizialmente devo realizzare un sistema di acquisizione dati, per questo utilizzo il modulo NI 9201: 1- per acquisire un dato utilizzo il formato fixed point quando però vado a visualizzarlo su un grafico labview effettua una forzatura sul dato. Come devo convertirlo per visualizzarlo senza perdere informazioni? 2- Acquisisco con un campionamento di 1KHz un segnale di 200Hz, teoricamente dovrebbe essere sufficiente ma in realtà vedo il segnale distorto, può essere un problema dovuto alla forzatura? Grazie ---------------------------------------- ================================================================================ Suddivisione file di testo per poterli aprire con excel ================================================================================ AUTORE: 1295 DATA :21/10/2008 - 08:02:41 ---------------------------------------- Ciao a tutti, avrei la necessita di suddividere dei file di acquisizione dati in formato testo provenienti da un software non labview, in file di lunghezza compatibile con fogli excel. Potreste darmi un-imbeccata? Grazie Mille Walt ---------------------------------------- AUTORE: 129 DATA :25/10/2008 - 22:04:33 ---------------------------------------- Ciao, ti chiedo di postare nella sezione programmazione questo tipo di post, in questa sez. mettiamo solo i download di codice prodotto dagli utenti. Comunque ritornando al problema, [quote:3418hw8k]in file di lunghezza compatibile con fogli excel[/quote:3418hw8k] immagino tu ti riferisca al tipo di separazione delle colonne/righe al fine di leggerle in Excel? Purtroppo servirebbe un esempio del file da trasformare per darti una mano. Nicola ---------------------------------------- AUTORE: 4157 DATA :29/11/2012 - 10:45:47 ---------------------------------------- Ciao waltherl, io suddivido i "token" da collocare in celle del foglio di calcolo con tabulazioni e salvo la stringa in un file di testo qualunque successivamente importo il tutto in excel.... ---------------------------------------- AUTORE: 482 DATA :30/11/2012 - 07:23:02 ---------------------------------------- I dati della tua acquisizione li metti in un array bidimensionale poi usi l'"array to spreadsheet string" per creare una stringa tabulata e poi salvi il file con estensione .xls. ---------------------------------------- ================================================================================ stoppare il while di una sub vi dall'esterno ================================================================================ AUTORE: 2494 DATA :21/10/2008 - 17:21:39 ---------------------------------------- Ciao a tutti, Mi piacerebbe sapere se e come sia possibile stoppare un while interno ad una subvi dall 'esterno. Ho provato a collegare lo stop della subvi ad un connettore e poi a creare il controllo nella vi principale, ma non va perchè fino a che il ciclo non finisce non accetta nuovi ingressi dall'esterno... Cosa mi suggerite? Grazie ---------------------------------------- AUTORE: 927 DATA :22/10/2008 - 09:26:19 ---------------------------------------- I modi per comunicare tra VI sono vari, in questo caso il più adatto è un Notifier; ma dovrebbe andar bene, molto semplicemente, una variabile globale booleana di stop (il VI principale la scrive e il subVI la legge) ---------------------------------------- AUTORE: 43 DATA :22/10/2008 - 11:05:21 ---------------------------------------- [quote="eduardo_palermo":3ktrt1fs]Ciao a tutti, Mi piacerebbe sapere se e come sia possibile stoppare un while interno ad una subvi dall 'esterno. Ho provato a collegare lo stop della subvi ad un connettore e poi a creare il controllo nella vi principale, ma non va perchè fino a che il ciclo non finisce non accetta nuovi ingressi dall'esterno... Cosa mi suggerite? Grazie[/quote:3ktrt1fs] Dobbiamo intenderci sul significato di "stoppare". Se si vuole interrompere l'esecuzione di un loop o in generale di un SubVI, restituendo il controllo al VI chiamante, bisogna prevedere all'interno del medesimo un qualche meccanismo software di uscita "anticipata". Non è possible cmq, "tout court" interrompere l'esecuzione di un loop o un subVI a meno che non si voglia interrompere l'esecuzione dell'applicazione. L'interruzione non può cmq essere fatta al di sotto di un certo "livello atomico" di esecuzione del codice: se il controllo è interno ad una DLL ed è in loop (hanging), LabVIEW deve essere "ammazzato" da TaskManager se il SO è WINZOZZ La scelta del metodo piu' appropriato, dipende da cosa il loop/subVI "fa", dalle sue temporizzazioni, sincronizzazioni ecc.; Devi quindi dettagliare un contesto pratico altrimenti otterrai sempre risposte generiche alle tue domande "teoriche". Molti postano VI non funzionanti senza spiegare cosa si vuole realizzare nel concreto. Tu invece parti dall'estremo opposto cioè da un approccio tutto teorico. Probabilmente la miglior risposta alla Tua domanda sta nei manuali di LabVIEW... bye ---------------------------------------- AUTORE: 2494 DATA :22/10/2008 - 11:06:27 ---------------------------------------- Grazie mille! a presto! ---------------------------------------- AUTORE: 2494 DATA :22/10/2008 - 12:27:10 ---------------------------------------- ti ringrazio paracarro, dunque il mio problema è una subvi che dialoga con uno strumento di misura passandogli dei parametri che l'utente deve però avere il tempo di inserire tramite stringhe e combo box. Per cui la subvi è fatta da una sequenza di due frames in cui nel primo c'è sostanzialmente un while che aggiorna le stringhe nelle combo box e da il tempo di effettuare la selezione all'utente, una volta stoppato, si passa al frame successivo in cui si utilizzano i parametri immessi. Richiamando questa funzione dall'esterno il cluster di controlli da immettere( che include il booleano di stop) non funziona. La soluzione della variabile globale, che mi è stata suggerita, ha lo stesso problema: il while che deve leggerla ne legge sempre il valore iniziale anche se nel frattempo è cambiata. Spero di essere stato più specifico, ora posto il progetto in cui la vi principale di prova che ho fatto è Untitled2.vi, sperando che qualcuno ci capisca qualcosa. Grazie ---------------------------------------- AUTORE: 927 DATA :22/10/2008 - 13:08:02 ---------------------------------------- Bè ovviamente la variabile deve essere letta [b:2t28u97f]dentro[/b:2t28u97f] il while, ad ogni iterazione... ---------------------------------------- AUTORE: 2494 DATA :22/10/2008 - 13:12:14 ---------------------------------------- si è ovvio che venga letta nel ciclo...ma il valore della variabile non cambia finchè il ciclo non finisce... ---------------------------------------- AUTORE: 927 DATA :22/10/2008 - 13:25:35 ---------------------------------------- Allora i casi sono due, o non è vero che nel frattempo è cambiata, o quel ciclo non "scorre". Difficilmente possiamo aiutarti senza vedere almeno un'immagine del diagramma ---------------------------------------- AUTORE: 43 DATA :22/10/2008 - 13:29:27 ---------------------------------------- [quote="eduardo_palermo":3u6zdcp4]ti ringrazio paracarro, dunque il mio problema è una subvi che dialoga con uno strumento di misura passandogli dei parametri che l'utente deve però avere il tempo di inserire tramite stringhe e combo box. Per cui la subvi è fatta da una sequenza di due frames in cui nel primo c'è sostanzialmente un while che aggiorna le stringhe nelle combo box e da il tempo di effettuare la selezione all'utente, una volta stoppato, si passa al frame successivo in cui si utilizzano i parametri immessi. [/quote:3u6zdcp4] 1ma regola base di costruzione di un driver verso uno strumento: [b:3u6zdcp4]MAI mettere gestione di interfaccia utente (GUI o HMI che dir si voglia) dentro il driver di uno strumento!!!!!![/b:3u6zdcp4] Il VI che comunica con lo strumento deve ricevere parametri definiti in ingresso e produrre uscita un risultato + eventuali info di errore (Error cluster). Mi è capitato di dover pilotare uno strumento via seriale attraverso una DLL che durante alcune chiamate, in alcuni casi di errori, faceva uscire dei messaggi di "popup". Inutile dire che mi sono rifatto il driver in LabVIEW... [quote="eduardo_palermo":3u6zdcp4]Richiamando questa funzione dall'esterno il cluster di controlli da immettere( che include il booleano di stop) non funziona. La soluzione della variabile globale, che mi è stata suggerita, ha lo stesso problema: il while che deve leggerla ne legge sempre il valore iniziale anche se nel frattempo è cambiata. Spero di essere stato più specifico, ora posto il progetto in cui la vi principale di prova che ho fatto è Untitled2.vi, sperando che qualcuno ci capisca qualcosa. Grazie[/quote:3u6zdcp4] bah! la cosa è fin troppo semplice: Crea un VI il cui unico scopo è quello di controllare, attraverso una Event Strucure, l'immissione dei parametri all'interno del cluster da parte dell'operatore. Alla pressione di un tasto "esegui" che avrai avuto cura di inserire nell' HMI, richiama il VI Driver passando come parametro il cluster immesso ed attendi il risultato. Visualizza opportunamento il risultato della comunicazione. bye ---------------------------------------- AUTORE: 2494 DATA :22/10/2008 - 13:45:40 ---------------------------------------- credevo di aver postato il file.rar del progetto... cmq grazie dei consigli ragazzi... a presto. ---------------------------------------- ================================================================================ Labview e comunicazione TCP ================================================================================ AUTORE: 2479 DATA :22/10/2008 - 08:17:31 ---------------------------------------- Ciao a tutti, sono nuovo del forum e stò lavorando sullo sviluppo di un software in Labview. Il problema che mi si pone è il seguente: voglio aprire la connessione TCP con un server e mantenerla aperta per inviare comandi e ricevere dati. I dati da passare saranno forniti da una seconda applicazione. Vorrei quindi fare in modo di aprire la connessione tra client e server appena avviato il programma principale e poi poter inviare dati, tramite subvi richiamati, senza dover tutte le volte aprire e chiudere la connessione stessa. Se avessi un solo canale che lavora in modo sequenziale potrei usare gli event structure, ma nel mio caso le connessioni aperte sono 3 e devono lavorare in parallelo tra loro. Questo complica il discorso dell'utilizzo degli event structure i quali lavorano solo in modo sequenziale e non in parallelo... Mi sono dilungato un po' troppo, comunque qualcuno riesce a spiegarmi come aprire 3 canali (3 porte differenti dello stesso server) e mantenerle aperte fino alla fine del programma inviando sulle 3 linee dati e lavorando in parallelo? Grazie a tutti per la dispnibilità. Federico ---------------------------------------- AUTORE: 1078 DATA :24/10/2008 - 11:09:03 ---------------------------------------- Ciao Federico, Vediamo se ho capito come dovrebbe essere configurato il tuo sistema: tu hai un pc-server che acquisisce da tre canali diversi, quando ha acquisito il dato lo invia tramite TCIP all'host che è in ascolto. Giusto? Se questa è la configurazione del tuo sistema, ti consiglio di fare acquisire i dati dal server e pacchettizarli attraverso delle code, poi in un loop parallelo invierai all'host i dati contenuti nella coda fino ad esaurimento dati. Questo dovrebbe permetterti di aprire un'unica comunicazione TCIP tra host e server. Trovi molti esempi di utilizzo delle code negli esempi di labview. Se ti servono altri chiarimenti, prova ad inviare i tuoi VI che vediamo di aiutarti. Buon lavoro. ---------------------------------------- AUTORE: 2479 DATA :30/10/2008 - 09:33:57 ---------------------------------------- Allora, provo a chiarire il concetto un po' meglio. Io da PC devo comunicare con un controller di un braccio robotico. il controller ha impostato al suo interno 3 canali che fanno da server e io su pc apro la comunicazione con lui e inizio ad acuisire e inviare dati sempre sui 3 canali in parallelo. Fino a qui tutto a posto, riesco perfettamente ad aprire la comunicazione sui 3 server in parallelo ed entrare in un while o sequence che mi permette di fare operazioni. Il problema ora è riuscire a passare parametri all'interno del ciclo while da una applicazione superiore che può essere scritta in c++ delphy o java. Se io creo un subvi in cui apro le connessioni in automatico una volta lanciatto il subvi vorrei riuscire a passare dei parametri a questo programma e farli elaborare senza dover aprire o chiudere tuttte le volte la connessione. Ho provato con gli event structure ma mi viene meno un parallelismo dinamico in quanto una volta entrato in un event non posso fare nulla fino alla fine dell'esecuzione. Questo è quanto... ---------------------------------------- AUTORE: 4 DATA :04/11/2008 - 14:40:33 ---------------------------------------- premesso che ho un forte mal di tesa in questo momento. secondo me i problemi sono almeno 2 1 come comunicare dalle applicazioni di alto livello fino alla tua e viceversa ( a quanto ho capito tu stai facendo una sorta di driver...) 2 come mantenere le 3 connessioni all'interno del tuo driver vive e vegete e usabili in "parallelo" risposta 1: ci sono moltissimo i modi, il più standard di tutti è usare i socket meglio se UDP (più semplice ma meno "sicuro") infatti esistono lib per gestire i socket praticamente in tutti i lnguaggi, in pratica devi aprire una porta, questa volta il server sei tu, e gestire la connessione richiesta da una app superiore risposta 2: non ho capito perchè devi usare gli event e come li sui in ogni caso quello che ti serve per poter "agire" sulle tue connessioni è il reference che ti restituisce la funzione "Open" questo reference non è altro che un dato... un numero... di conseguenza puoi storarlo ad esempio in una variabile globale (che Dio mi perdoni) o facendo una functional global (cerca sui vari forum che trovi info se non sai cos'è) Ciao ---------------------------------------- ================================================================================ problema con la differenza tra 2 U32 ================================================================================ AUTORE: 2493 DATA :22/10/2008 - 10:15:42 ---------------------------------------- ciao... ho un prblema... devo eseguire la differenza tra 2 U32 in formato floating point secondo lo standard IEEE754 come è noto la differenza la posssiamo risolvere usando la somma facendo il complemento a 2 del secondo numero... il mio problema è che mi sballa i valori dell'esponente.. e nn sempre la mantissa risulta quella cercata. vi posto il mio vi cosi mi dite dove sbaglio... grazie ho messo i tre vi che ho usato... il problema è nel primo.. Prova differenza ---------------------------------------- AUTORE: 43 DATA :22/10/2008 - 14:40:39 ---------------------------------------- [quote="ale160784":1kxwki10]ciao... ho un prblema... devo eseguire la differenza tra 2 U32 in formato floating point secondo lo standard IEEE754 come è noto la differenza la posssiamo risolvere usando la somma facendo il complemento a 2 del secondo numero... il mio problema è che mi sballa i valori dell'esponente.. e nn sempre la mantissa risulta quella cercata. vi posto il mio vi cosi mi dite dove sbaglio... grazie ho messo i tre vi che ho usato... il problema è nel primo.. Prova differenza[/quote:1kxwki10] uella!!! gente coma va? lasciatemi dire 2 cose: 1) la funzione "metti 1" è veramente scandalosa. Vi faccio un esempio spero che capiate passo alla funzione "Metti1" il numero "3". Significa che voglio il numero binario "111" O eseguo 2^3-1 oppure shifto un "1" di "3" cifre binarie a sinistra (ed ottengo sempre 8 decimale..)a cui sommo FFFF FFFFH cioè -1 sicuramente non mi serve un loop... 2) vi posto questo interessante VI che ricerca il n. di bit + significatico posto a 1 ... con una ricerca dicotomica. Bello no?? [attachment=0:1kxwki10]1stBitSet_dicotomica.vi[/attachment:1kxwki10] Cmq continuate a perderVi nei bicchieri d'acqua.... bye ---------------------------------------- AUTORE: 482 DATA :23/10/2008 - 07:25:54 ---------------------------------------- ghghgh a ridaje ale!! Ancora qui con una domanda e non hai ancora spiegato a nessuno qual'e' il problema iniziale. CONDIVISIONE, questo dev'essere lo spirito del forum, non assistenza. ---------------------------------------- ================================================================================ Scambio dati tra SW LV e VB.NET ================================================================================ AUTORE: 1078 DATA :22/10/2008 - 11:15:56 ---------------------------------------- Ciao a tutti, sto realizzando un SW che deve scambiare dati tra un'applicazione scritta in LV e una scritta VB.NET. Nel particolare i dati sono contenuti in un cluster LV e sono: un double, un integer e una stringa. La parte di sistema scritta in LV scrive i dati e la parte di sistema scritta in VB.NET lidovrebbe leggere. Senza problemi scrivo i dati in un file usando la funzione writebinary. Il problema sorge quando devo leggere questi dati da VB.Net. Come vengono scritti su disco i dati di un cluster utilizzando la funzione WriteBinaryFile di Labview? Grazie a tutti... ---------------------------------------- AUTORE: 4 DATA :04/11/2008 - 14:50:29 ---------------------------------------- usare il file come scambio non è il massimo della vita... è lento e inaffibabile... in questo caso specifico poi la funzione labview scrive i dati in formata labview.. cioè li formatta secondo dei tipi di dati e delle strutture proprie di labview quindi VB non riesce a leggerli... se cerchi su internet potresti anche trovare il modo di "iterpretare" i dati ma quello che ti consiglio è di scriverli in formato testuale "in chiaro2 magari ci perdi in compattezza del file, ma se hai solo tre dati non è un problema, ma di sicuro ci guadagni in salute, il lato VB diventa molto piùà semplice in questo modo e aggiunte o modifiche future alla struttura dati che devi serializzare saranno più veloci da implemetare. ---------------------------------------- ================================================================================ accodamento dei valori in un file excel ================================================================================ AUTORE: 2484 DATA :22/10/2008 - 16:34:13 ---------------------------------------- Ciao a tutti, ho realizzato una VI che consente l'acquisizione da diversi sensori, all'interno della quale è possibile visualizzare un andamento in tempo reale delle posizioni dei sensori, acquisire determinate posizioni con un click del mouse e trasferirle in una tabella (visibile nel front panel della VI), e trasferire successivamente queste acquisizioni in un file excel, il tutto sempre a comando. Vorrei sapere se è possibile continuare a salvare nello stesso file excel, senza dovere sovrascrivere le righe già scritte. Una struttura del genere mi serve per continuare ad acquisire in condizioni diverse di carico senza dovere necessariamente interrompere la VI, o cambiare foglio excel. Per acquisire sul foglio excel ho usato l'apposito tool report generation, che mi ha consentito di inserire in maniera piu agevole le informazioni stringa e le informazioni numeriche acquisite in determinate posizioni del foglio excel. Adesso però, credo proprio che non sarà molto agevole costruire uno struttura di accodamento valori nel foglio excel. Potete aiutarmi? Grazie mille in anticipo... ---------------------------------------- AUTORE: 1078 DATA :24/10/2008 - 10:40:01 ---------------------------------------- Ciao misterko, rispondendo alla tua domanda trovi qualcosa a questo indirizzo: [url:35mmdm4a]http://digital.ni.com/public.nsf/allkb/EFCE1C25DCE7483E86256CAF00539451[/url:35mmdm4a]. Spero ti sia di aiuto. Buon lavoro. ---------------------------------------- AUTORE: 2484 DATA :27/10/2008 - 09:17:56 ---------------------------------------- Grazie mille ricky. Ora guardo subito il link. ---------------------------------------- AUTORE: 2484 DATA :27/10/2008 - 11:13:25 ---------------------------------------- Mi manca la libreria [b:2sccyisj]Excel Get Last Row VI[/b:2sccyisj].... Qualcuno mi può aiutare? ---------------------------------------- AUTORE: 2484 DATA :27/10/2008 - 15:49:03 ---------------------------------------- Il metodo spiegato purtroppo non risolve il mio problema. Cerco qualcosa che possa accodare i file in maniera automatica. I dati vengono inviati in determinate righe e colonne tramite il click di un pulsante (la struttura è costruita all'interno di una CASE STRUCTURE con un controllo su una boolean condition: se è vera si apre il file excel e vengono là riportati i valori, se è falsa non succede nulla). Esiste qualche comando, o una VI, oppure una struttura che mi permetta di inviare i nuovi valori accodandoli a quelli precedentemente inviati? Grazie in anticipo per i suggerimenti... ---------------------------------------- AUTORE: 482 DATA :28/10/2008 - 07:45:22 ---------------------------------------- se usi i blocchetti di scrittura su file c'e' un opzione che sia chiama tipo overwrite or perpend che ti permette di appendere i nuovi dati al file invece che sovrascrivere il tutto. ---------------------------------------- AUTORE: 2484 DATA :28/10/2008 - 08:43:54 ---------------------------------------- Non riesco a trovare i blocchi di cui mi parli, puoi aiutarmi? ---------------------------------------- AUTORE: 645 DATA :28/10/2008 - 09:21:04 ---------------------------------------- Così? ---------------------------------------- AUTORE: 2484 DATA :28/10/2008 - 09:51:59 ---------------------------------------- Grazie magicbotolo. Semplice ed efficace! grazie mille! ---------------------------------------- AUTORE: 2484 DATA :29/10/2008 - 09:22:54 ---------------------------------------- magicbotolo il file ke mi hai dato è perfetto, però non si adatta a ciò che devo costruire. Ho utilizzato report generation toolkit di NI ma non cè nessuna vi che mi permetta di simulare in maniera semplice l'accodamento dei file (append file). Il comando che cerco è invece presente nella vi [b:2i78nlpq]Write to spreadsheet file[/b:2i78nlpq]. Ho gia provato a reimpostare tutto il lavoro svolto ed a sostituire la parte della vi che riguarda la scrittura su excel con la guida della vi che hai inviato, ma sorgono altriproblemi che mi reindirizzano all'utilizzo del toolkit report generation. In quel modo , oltre a curare aspetto grafico di righe e colonne ed oltre ad ottenere un impostazione piu corretta del file, i numeri che hanno il punto come separatore decimale, vengono riconosciuti automaticamente da excel. con il file [b:2i78nlpq]Write to spreadsheet file[/b:2i78nlpq], invece excel riconosce il punto come separatore di migliaia. posso risolvere il problema soltanto dalle impostazioni di excel, ma non è una soluzione accettabile poichè la VI dovrà essere eseguita su diversi pc. Nel labview ho impostato il punto come separatore perchè i dati vengono acquisiti in codice ascii, con il punto come separatore... come posso risolvere il problema? ---------------------------------------- ================================================================================ Help progetto ================================================================================ AUTORE: 2439 DATA :25/10/2008 - 11:53:03 ---------------------------------------- Ciao a tutti... sto cercando di implementare l'analizzatore di spettro analogico a super eterodina ma sto avendo alcune difficoltà;devo fare in modo che il filtro fir(passabanda) abbia frequenza centrale al di fuori della banda del segnale in ingresso (quindi f cent deve essere maggiore della f max del segnale di partenza).Ora,non ho capito come faccio a fissare qsta freq centrale (in quanto devo sceglierne il valore più opportuno) che per di più mi serve per ricavare i valori delle frequenze (max e min) del cluster (che sicuramente dovrò variare)a sinistra nel file allegato. Qui di seguito vi allego il mio VI (incompleto).Per favore datemi qualche idea...grazie \":)\"[attachment=0:2wipa5h4]Progetto Spettro Analogico.vi[/attachment:2wipa5h4] ---------------------------------------- ================================================================================ movimento oggetti 3D ================================================================================ AUTORE: 2494 DATA :25/10/2008 - 12:02:25 ---------------------------------------- Salve ragazzi, ho sentito dire che labview fornisce la possibilità di vusualizzare oggetti 3D che si muovono in funzione dei valori che vengono passati. Sapete se è vero, e se si quale è la funzione? Ho visto tra i grafici una funzione che potrebbe essere quella giusta (il 3D picture control) ma non riesco a capire cosa le va passato... grazie ---------------------------------------- AUTORE: 4 DATA :04/11/2008 - 08:58:11 ---------------------------------------- ciao si è vero e si è il 3D picture controll, se cerchi tra gli esempi dell'help di labview stesso trovi un VI che smula le orbite dei pianeti del sistema solare ---------------------------------------- AUTORE: 2494 DATA :04/11/2008 - 15:21:26 ---------------------------------------- grazie mille...forse la mia versione è limitata...o forse l'istallazione che ho fatto...non ricordo, cmq se vado sull'help mi dice che non c'è nulla di disponnibile per quella funzione... Suggerimenti? ---------------------------------------- AUTORE: 4 DATA :04/11/2008 - 15:40:08 ---------------------------------------- strano... qui trovi delle info http://zone.ni.com/reference/en-XX/help ... c_control/ ---------------------------------------- ================================================================================ Info su LabView e Linux ================================================================================ AUTORE: 2438 DATA :28/10/2008 - 10:32:25 ---------------------------------------- Ciao a tutti, avrei alcuni quesiti sull'utilizzo di LabView e Linux. Mi chiedevo se è possibile compilare sotto Win programmi che poi devono essere utilizzati sotto Linux? Nel senso c'è un modo per selezionare il sistema operativo su cui compilare così come posso selezionare la versione con cui salvare la VI? Questo perchè in ditta non vorrebbero comprare nè un'altra licenza LabView per Linux nè altre licenze Win. Grazie Ciccio ---------------------------------------- AUTORE: 482 DATA :28/10/2008 - 13:01:57 ---------------------------------------- Se hai già entrambe le licenze, il problema si risolve abbastanza semplicemente. Semplicemnete prendi i VI originali, li apri con l apiattaforma che ti interessa e crei con quella l'eseguibile. I VI sono cross platform, l'eseguibile no. ---------------------------------------- AUTORE: 2438 DATA :28/10/2008 - 13:29:48 ---------------------------------------- Il fatto è che in ditta abbiamo solo la licenza per Win. E se creassi l'eseguibile in Win e utilizzassi un simulatore di Win sotto Linux? Pensate possa essere fattibile? Grazie Ciccio ---------------------------------------- AUTORE: 482 DATA :29/10/2008 - 07:39:10 ---------------------------------------- Si, potretsi provare con wine, sperando che l'installazioen del runtime engine non dia problemi... ---------------------------------------- AUTORE: 2438 DATA :29/10/2008 - 09:43:27 ---------------------------------------- Ti ringrazio. Provo e vi faccio sapere. Grazie Ciccio ---------------------------------------- ================================================================================ Report Generation LV8.6 ================================================================================ AUTORE: 238 DATA :29/10/2008 - 08:34:06 ---------------------------------------- Evviva \":oops:\" Nella nuova versione LV8.6 Sono state effettuate delle sostanziali variazioni per le funzioni "Report Generation" (forse per Win Vista?) Adesso non mi funziona piu il nostro VI "Excel copy sheet" (vedi file allegato) VI non piu presenti in LV8.6: C:\Programme\National Instruments\LabVIEW 8.5\vi.lib\utility\NIReport.llb\Generate Report Get Data to Modify.vi C:\Programme\National Instruments\LabVIEW 8.5\vi.lib\utility\NIReport.llb\Generate Report Set Modified Data.vi Qualcuno sa dirmi come funziona la parte evidenziata dal cerchio rosso ? o come va modificato il mio vecchio amato VI \":?\" ---------------------------------------- AUTORE: 4 DATA :04/11/2008 - 14:45:09 ---------------------------------------- Il solito pacco! ad ogni cambio di LabVIEW o SO o a volte anche di pacchetto office il report generation toolkit smette di funzionare e deve essere "riparato" Dal canto mio un giorno o l'altro mi deciderò a implementarene una versione che supporti l'[url=http://it.wikipedia.org/wiki/OpenDocument:3pu4kgbs]open document[/url:3pu4kgbs] e buona notte al secchio ---------------------------------------- AUTORE: 996 DATA :13/12/2008 - 10:15:33 ---------------------------------------- Ciao, io ho avuto il solito problema sullo standard report, che nella versione LV8.5 mi funzionava e, caricato nell' 8.6 mi piantava l'Application Builder, ho risolto, seguendo le indicazioni della pagina qui sotto, http://digital.ni.com/public.nsf/allkb/ ... enDocument Prova un pò, se ti può essere utile ---------------------------------------- ================================================================================ Import shared DLL ================================================================================ AUTORE: 2196 DATA :29/10/2008 - 09:33:40 ---------------------------------------- Ciao a tutti. Dovrei importare una DLL per poterne usare le funzioni all'interno di LV. La dll in questione è la "famosa" vcand32.dll che permette al LV di poter accedere direttamente alla scheda vector CanCardX. Il problema è che non riesco a importarla con il tool di import di LV. In particolare mi sembra che gli manchi qualche direttiva che non sono dove pescare..i messaggi di errore sono visibili qui: [url=http://img514.imageshack.us/my.php?image=dllpk9.jpg:1p2zvfm6][img:1p2zvfm6]http://img514.imageshack.us/img514/2367/dllpk9.th.jpg[/img:1p2zvfm6][/url:1p2zvfm6] Qualcuno ha provato a fare la mia stessa operazione ? ---------------------------------------- AUTORE: 43 DATA :29/10/2008 - 10:29:08 ---------------------------------------- [quote="Buddace":2fktunit]Ciao a tutti. Dovrei importare una DLL per poterne usare le funzioni all'interno di LV. La dll in questione è la "famosa" vcand32.dll che permette al LV di poter accedere direttamente alla scheda vector CanCardX. Il problema è che non riesco a importarla con il tool di import di LV. In particolare mi sembra che gli manchi qualche direttiva che non sono dove pescare.. Qualcuno ha provato a fare la mia stessa operazione ?[/quote:2fktunit] NO non ho mai provato ad importare DLL in questo modo, ma.. SI ho utilizzato la stessa libreria con le schede VECTOR. La VECTOR rilascia una libreria di VI in cui ci sono già le chiamate alla DLL (tutte o quasi) prova a guardare nel CD che hai in allegato alla scheda o sul sito della VECTOR... Alcune chiamate hanno qualche errore di tipo (viene passato non mi ricordo dove un 'int' al posto di un 'long') ma il lavoro lo dovresti trovare già fatto. Io mi sono basato sul PDF di "Reference"(documentazione completa delle chiamate) della DLL Inoltre probabilmente Ti devi costruire dei VI per gestire al meglio la DLL, soprattutto nella fase di debugging, in cui il programma viene interrotto con "reference" non chiusi e tu vorrai evitare di chiudere LabVIEW per continuare... Di recente ho "rifatto" le chiamate alla libreria della IXXAT. Le librerie LabVIEW della IXXAT si appaggiano alla VCILVA.dll fatta apposta x LabVIEW, io invece mi appoggio direttamente alla VCIINPL.DLL usata anche da chi programma in C... bye ---------------------------------------- AUTORE: 2196 DATA :29/10/2008 - 10:45:17 ---------------------------------------- [quote:o3flu8v5]NO non ho mai provato ad importare DLL in questo modo, ma.. SI ho utilizzato la stessa libreria con le schede VECTOR. La VECTOR rilascia una libreria di VI in cui ci sono già le chiamate alla DLL (tutte o quasi) prova a guardare nel CD che hai in allegato alla scheda o sul sito della VECTOR...[/quote:o3flu8v5] Ciao, conosco già la libreria in questione. Purtroppo ha il problema di non essere portabile su Labview 8.6 in quanto se provo ad aprirle mi dice che sono state create per una vecchia versione di LW(mi sembra la 5) e non è in grado di aprirle / usarle. Volevo importare la dll direttamente per avere in poche parole le stesse librerie ma corrette per la mia versione di LW. [quote:o3flu8v5]Di recente ho "rifatto" le chiamate alla libreria della IXXAT. Le librerie LabVIEW della IXXAT si appaggiano alla VCILVA.dll fatta apposta x LabVIEW, io invece mi appoggio direttamente alla VCIINPL.DLL usata anche da chi programma in C...[/quote:o3flu8v5] Cosa sarebbe ? Un altra libreria per un altra applicazione ? ---------------------------------------- AUTORE: 43 DATA :29/10/2008 - 10:53:19 ---------------------------------------- [quote="Buddace":3iw2be71] [quote:3iw2be71]Di recente ho "rifatto" le chiamate alla libreria della IXXAT. Le librerie LabVIEW della IXXAT si appaggiano alla VCILVA.dll fatta apposta x LabVIEW, io invece mi appoggio direttamente alla VCIINPL.DLL usata anche da chi programma in C...[/quote:3iw2be71] Cosa sarebbe ? Un altra libreria per un altra applicazione ?[/quote:3iw2be71] IXXAT è un produttore di schede CAN al pari di VECTOR. E' un'azienda tedesca come VECTOR. Ci si interfaccia alle loro schede usando chiamate a DLL a basso livello o tramite interfacccia CAN Open con un ACTIVE-X. Entrambe le interfacce (DLL eACTIVEX) sono ben utilizzabili da LabVIEW... bye PS.: per quanto riguarda l'intefacciamento verso vcan32.dll di VECTOR. io mi rifarei a mano solo le chiamate che utilizzo basandomi sul file .h di include... ---------------------------------------- AUTORE: 2196 DATA :29/10/2008 - 10:58:11 ---------------------------------------- [quote:ekngr4u0]PS.: per quanto riguarda l'intefacciamento verso vcan32.dll di VECTOR. io mi rifarei a mano solo le chiamate che utilizzo basandomi sul file .h di include...[/quote:ekngr4u0] Cioè crearmi un mi .h ad hoc con le sole funzioni che effettivamente intendo utilizzare ? ---------------------------------------- AUTORE: 43 DATA :29/10/2008 - 11:44:47 ---------------------------------------- [quote="Buddace":2upcix36][quote:2upcix36]PS.: per quanto riguarda l'intefacciamento verso vcan32.dll di VECTOR. io mi rifarei a mano solo le chiamate che utilizzo basandomi sul file .h di include...[/quote:2upcix36] Cioè crearmi un mi .h ad hoc con le sole funzioni che effettivamente intendo utilizzare ?[/quote:2upcix36] No, partendo da un VI campione (magari un .vit !!) avrei fatto tutti i miei VI che "wrappano" le chiamate alla dll che voglio io. cmq ho provato il tool "Import shared Library" con la dll della IXXAT... non è completo ma... è una figata. Ti crea pure le icone e c'è un buon livello di customizzazione. Un buon livello da cui partire per poi sistemare le chiamate una ad una... cmq se non riesci, fai attenzione e specifica un "include path" nel quale possono essere letti tutti i .h che eventualmente il file.h principale include. Altrimenti le chiamate non possono essere risolte!!! bye P.S.:questa è l'ultima risposta per oggi e domani.. xchè ora sono molto preso ---------------------------------------- ================================================================================ Leggere la seriale: ================================================================================ AUTORE: 2498 DATA :29/10/2008 - 23:24:25 ---------------------------------------- buon giorno a tutti. Una domanda: ho una mia scheda che spedisce dei byte in 232: ho fatto il programma labview che legge e tutto normale; i byte seriali sono i risultati di un campionamento di un segnale analogico e quindi sono cifre; il pc giustamente, però, li interpreta come caratteri ascii: la mia domanda è: conoscete come posso convertire queste "stringhe" in "numeri" (da andare poi a passare a delle lancette ad esempio)? ho fatto passare un po i vari help come si fa di solito ma non ho trovato nulla di utile; non devo farmi un case con 256 "case" vero?!?!?! sarebbe impensabile nell'era dei computer fare una cosa così a mano! grazie per l'interessamento Damiano ---------------------------------------- AUTORE: 2196 DATA :30/10/2008 - 08:10:08 ---------------------------------------- Se non ricordo male viene ricevuta una stringa quindi la tua misura immagino sia tipo ascii: 12345 dove ogni cifra è un byte. Bene convertila in un intero e poi sottrai il valore asci dello 0 ad ogni singola cifra per ottenere il corrispettivo valore intero. Poi con una somma pesata delle cifre ottieni la misura della tua lettura. ---------------------------------------- AUTORE: 482 DATA :30/10/2008 - 08:18:44 ---------------------------------------- Nella Palette relativa alle stringhe, ci sono tutte el funzioni che ti servono. Funzioni per manipolare le stringhe e quindi togliere quello che non ti interessa e funzioni per trasformare uan stringa numerica in un numero e viceversa \";)\" ---------------------------------------- AUTORE: 2498 DATA :30/10/2008 - 11:35:08 ---------------------------------------- no in verità io mando un byte che è fatto da gli 8 bit campionati... è un numero quindi come 0F ecc... però il pc interpreta in ascii...ho già visto le varie conversioni ma non mi sembra che facciano al caso mio...spero di essermi spiegato... grazie ---------------------------------------- AUTORE: 2498 DATA :01/11/2008 - 13:36:29 ---------------------------------------- allora proprio nessuno riesce a rispondere alla mia domanda? devo dedurre che non si può fare qello che voglio io? grazie e ciao a tutti ---------------------------------------- AUTORE: 660 DATA :03/11/2008 - 13:11:52 ---------------------------------------- in realtà sono sicuro al 99,9% che la cosa sia possibile, ma non ho ben capito quale sia il problema. Non è che potresti postare la stringa che leggi e quello che vorresti ottenere? Ciao Max ---------------------------------------- AUTORE: 2500 DATA :03/11/2008 - 13:28:07 ---------------------------------------- Devi usare l'operatore "cast" in Advanced -> Data Manipulation. In input (terminale x) manda la stringa ricevuta (1 carattere) e come tipo (terminale type) collega una costante di tipo U8. L'operatore cast reinterpreta la stringa come intero U8 e te la restituisce sotto questa forma. Tecnica analoga se hai 2 byte: devi fare un cast a U16 (o I16 se con segno); in questo caso, però, ti devi preoccupare di spedire i byte nell'ordine giusto! ---------------------------------------- AUTORE: 2498 DATA :03/11/2008 - 15:13:24 ---------------------------------------- Allora: in pratica io campiono un segnale analogico con un microcontrollore; del risultato del campionamento io prendo gli 8 bit più significativi e li mando così come sono in seriale; io quindi la seriale la leggo con labview; però labview giustamente interpreta il dato letto dalla seriale come un carattere ASCII... che sono ancora quegli 8 bit campionati... però io i campionamenti li voglio raffigurare in un grafichino... quindi mi serve che il dato diventi un "numero" e non una stringa... però guardando nelle varie conversioni stringa-cifra non c'è questa possibilità... io pensavo ora di fare un case con 256 case e in funzione del carattere letto assegnare un valore preciso a una variabile... ma è un lavoro cinese!! non vorrei cambiare il firmware del micro perchè vorrei che i campionamenti fossero il più veloci possibile... vorrei fare una sorta di stupido oscilloscopio... grazie... Damiano ---------------------------------------- AUTORE: 2498 DATA :03/11/2008 - 15:15:04 ---------------------------------------- [quote="pincpanter":2xmvcj9n]Devi usare l'operatore "cast" in Advanced -> Data Manipulation. In input (terminale x) manda la stringa ricevuta (1 carattere) e come tipo (terminale type) collega una costante di tipo U8. L'operatore cast reinterpreta la stringa come intero U8 e te la restituisce sotto questa forma. Tecnica analoga se hai 2 byte: devi fare un cast a U16 (o I16 se con segno); in questo caso, però, ti devi preoccupare di spedire i byte nell'ordine giusto![/quote:2xmvcj9n] wow ma allora si può veramente!! ormai avevo perso ogni speranza!! ora provo... grazie mille intanto!! ---------------------------------------- ================================================================================ Labview e aggiornamento variabili ================================================================================ AUTORE: 2499 DATA :30/10/2008 - 08:26:28 ---------------------------------------- Salve sono una studentessa di ingegneria elettronica apena iscritta a questo forum, da un paio di settimane uso il labview per un esame, ho un programma da progettare e un problema che non so come risolvere, dal momento che conosco pochissimo il labview \":(\" .Vi illustro il mio problema sperando nel vostro aiuto. Ho creato un sub-VI che dato un offset in ingresso mi calcola media incertezza e scartotipo e fin quì nessun problema. Ora in un nuovo sub_VI richiamo il precedente però devo fare in modo che l'offset sia variabile tra -10 e 10 con passo 1, e per ogni valore di offset il programma mi calcola media scarto tipo e incertezza, devo conservare questi valori e alla fine tirare fuori un solo valore per la media per lo scarto tipo e per l'incertezza.Quello che mi preme sapere è : 1. Come faccio a far variare l'offset da -10 a 10? Io ho pensato ad un FOR, ma come lo realizzo? 2. Come posso"ricordare" tutti i valori che calcolo in uscita per ogni valore di offset? Io ho pensato allo shift register ma ho 3 uscite da "ricordare". Spero vivamente nel vostro aiuto. Ringrazio tutti coloro che vorranno aiutarmi e spero di non essere stata troppo confusionaria nell'esposizione del mio problema. Grazie mille a tutti. \":)\" ---------------------------------------- AUTORE: 1124 DATA :30/10/2008 - 09:26:03 ---------------------------------------- ciao non sono sicuro di avere capito, comunque allego semplice esempio di generazione offset. i valori mandali all'ingesso del tuo vi e le tue uscite in uscita dal for ---------------------------------------- AUTORE: 2479 DATA :30/10/2008 - 09:43:52 ---------------------------------------- Ciao Electra, Per ricordare tutti i valori basta crearti un array che vai ad aggiornare inserendo volta per volta i tuoi dati. In questo modo alla fine del tuo while o for che sia hai a disposizione tutti i tuoi dati che possono essere elaborati a tuo piacere...il ciclo for credo che ti crei in automatico un array con i valori in uscita da ogni ciclo. Credo si il modo più semplice. ---------------------------------------- ================================================================================ DFT ================================================================================ AUTORE: 727 DATA :30/10/2008 - 14:39:50 ---------------------------------------- Ciao, forse qualcuno sa aiutarmi, chissà... avrei bisogno di calcolare i coefficienti di Fourier di un segnale discreto, ovvero i parametri a_n e b_n dello sviluppo, secondo la nomenclatura usata qua: http://www.exampleproblems.com/wiki/ind ... ier_Series qualcuno sa come fare? E' da qualche giorno che ci penso ma niente... Grazie ---------------------------------------- ================================================================================ RIconoscimento immagine da camera ================================================================================ AUTORE: 314 DATA :03/11/2008 - 10:12:41 ---------------------------------------- Salve a tutti, mi si presenta il seguente problema. Devo analizzare una immagine acquisita con una webcam o simili ed analizzare una determinata zona. Esistono delle funzioni di LabView dedicate a questo? Per ora non ho trovato niente... Qualcuno ne ha già avuto a che fare? ---------------------------------------- AUTORE: 645 DATA :03/11/2008 - 13:54:22 ---------------------------------------- Ti serve il pacchetto delle immagini, un toolbox a parte rispetto a LabView. Si chiama Imaq... in realtà ci sono state modifiche forse e quindi non so più se il nome esatto è questo... ---------------------------------------- AUTORE: 2501 DATA :04/11/2008 - 12:20:20 ---------------------------------------- dovresti utilizzare le funzioni del toolbox Vision (che poi è imaq di cui parlava MagicBotolo..). in rete dovrebbe trovarsi anche il manuale in inglese. ---------------------------------------- AUTORE: 314 DATA :06/11/2008 - 14:00:16 ---------------------------------------- NI-Vison development module non va bene? Devo scansionare una foto... L'applicazione poi la dovrei fare girare sotto linux... è possibile buildare per questo sistema operativo? ---------------------------------------- AUTORE: 482 DATA :07/11/2008 - 07:23:50 ---------------------------------------- Dimenticati tutto! Le librerie Vision sotto linux non vanno. Per qualche motivo strano National Instruments ha deciso di snobbare Linux. Da un contentino permettendo di sviluppare in labview (ma se hai una distro deb-based devi sudare per farlo)ma non va oltre. Tutti gli add-ons non sono supportati in linux. Non so se qualcuno ha mai provato ad emulare il tutto con wine, ma quasi sicuramente darà qualche problema. ---------------------------------------- AUTORE: 314 DATA :10/11/2008 - 09:15:18 ---------------------------------------- La mia idea era quella di creare un progetto con Ni-Vision deveolpment che facesse quello richiesto. Poi creandomi il codice in C sempre con NI-Vision ed adattarlo per farlo girare sotto Linux. NON si può fare???? \":?\" ---------------------------------------- AUTORE: 482 DATA :10/11/2008 - 15:13:13 ---------------------------------------- non saprei...credo di no pero'. Perchè anche creando il codice C, faresti comunque riferimento a delle DLL national create per windows... ---------------------------------------- AUTORE: 314 DATA :12/11/2008 - 10:08:48 ---------------------------------------- Ora ci provo e posto la risposta(non a breve) per chi intreressasse.... ---------------------------------------- ================================================================================ connessione ssl ================================================================================ AUTORE: 2465 DATA :03/11/2008 - 17:09:42 ---------------------------------------- Salve a tutti, ho di nuovo bisogno del vostro aiuto. Purtoppo ho cercato nel forum ma non ho trovato nulla a riguardo. Vi illustro il problema. Ho una semplice applicazione che rispecchia il modello client-server. Il server è stato sviluppato in LW, il client in Java versione palmari (J2ME). Sono riusito a mettere il server in ascolto su una porta, ad accettare connessioni e a fare tutto ciò che gli serve (non lo scrivo perchè non è questo il problema) ora però vorrei fare in modo che lato server sia possibile instaurare connessioni sicure con il protocollo ssl. Qualche idea?? Grazie per l'attenzione. ---------------------------------------- ================================================================================ Protezione con chiave HASP HL ================================================================================ AUTORE: 1465 DATA :04/11/2008 - 02:19:22 ---------------------------------------- Salve a tutti ragazzi, per la serie "A volte ritornano" ci risono!!! \":mrgreen:\" \":mrgreen:\" \":mrgreen:\" come da titolo, volevo chiedervi... avete mai usato delle chiavi HASP??? e se si, come le avete interfacciate a LAbVIEW??? grazie mille in anticipo ---------------------------------------- AUTORE: 645 DATA :04/11/2008 - 09:44:39 ---------------------------------------- Posso chiederti cosa sono queste chiavi? ---------------------------------------- AUTORE: 1465 DATA :04/11/2008 - 09:49:36 ---------------------------------------- sono delle chiavi hardware per la protezione. posso mettere il link del sito da cui ho intenzione di prenderle???? ---------------------------------------- ================================================================================ Elenco file ================================================================================ AUTORE: 2483 DATA :04/11/2008 - 09:24:21 ---------------------------------------- Ciao a tutti. Avrei bisogno di una mano. Sto facendo un programma utilizzando LV 8.0. Avrei bisogno di contare quanti file all'interno di una cartella (il cui path ovviamente è noto) quanti file contengono una determinata stringa nel nome. Per esempio se la mia cartella contiene i file : Cam1-0.jpg, Cam1-1.jpg, Cam1-2.jpg, Cam2-0.jpg, Cam2-1.jpg dovrei fare in modo che cercando Cam1 il risultato ottenuto fosse 3. Il fatto è che non so nemmeno che oggetti usare. Qualcuno sa darmi una mano? Grazie mille ---------------------------------------- AUTORE: 645 DATA :04/11/2008 - 09:46:43 ---------------------------------------- Ti conviene guardare qualche esempio sulla gestione dei file... In LabView c'è una paletta apposta per la comunicazione con i file: puoi inserire il nome della directory e leggere l'elenco dei file presenti. Letto il nome del file puoi trasformarlo in stringa e analizzare i pezzi di questa stringa alla ricerca del pattern che ti interessa... non è facilissimo ma si può fare... parti dagli esempi e poi magari posta via via i Block Diagram che realizzi per lavorare direttamente sul codice! ---------------------------------------- AUTORE: 2483 DATA :04/11/2008 - 11:46:14 ---------------------------------------- Ok qualcosa sono riuscito a fare. Posto il VI. Ormai riesco ad elencare i file e a controllare se contengono la stringa. Ho solo qualche problema ad aggiornare il vettore. Ho provato una soluzione ma non funzionava, così l'ho cancellata e vi uppo il VI. ---------------------------------------- AUTORE: 43 DATA :04/11/2008 - 16:26:21 ---------------------------------------- [quote="apo":31a8p185]Ok qualcosa sono riuscito a fare. Posto il VI. Ormai riesco ad elencare i file e a controllare se contengono la stringa. Ho solo qualche problema ad aggiornare il vettore. Ho provato una soluzione ma non funzionava, così l'ho cancellata e vi uppo il VI.[/quote:31a8p185] Ho visto la tua applicazione... Ci sarebbero un po' di cose da rivedere... 1) Chennedici di usare il parametro "pattern" nella funzione "List Folder" ? Crèati nel primo ciclo for la stringa data da "CAM%02d*.*" questo sarà il tuo pattern da passare di volta in volta 2) non "imbullonare" nel codice (diagramma) dei path "fissi". Piuttosto rendili visibili in controlli non editabili nel front panel. 3) non capisco perchè non hai sfruttato appieno l'esempio dei ring che ho postato nel quale carico da file di config sequenze predefinite di config. di ring: in questo modo si può passare velocemente dalla visualizzazione di 6 su x telecamere ad altre 6 in un solo colpo!! Ci sono molti altri dettagli ma penso che questi bastino... bye ---------------------------------------- AUTORE: 2483 DATA :06/11/2008 - 15:08:52 ---------------------------------------- Risolto. Grazie mille per l'aiuto ---------------------------------------- ================================================================================ Modificare una pagina web con labview ================================================================================ AUTORE: 2501 DATA :04/11/2008 - 12:27:03 ---------------------------------------- salve a tutti, qualcuno di voi sa come posso modificare da labview una pagina web? mi spiego meglio: sto utilizzando labview per realizzare un sistema di monitoraggio con una videocamera in rete, vorrei raggiungere l'IP della videocamera ed andare a variare alcune caratteristiche di funzionamento (ad esempio la compressione, il bilanciamento del bianco, ecc..) proprio modificandole nella pagina web. qualcuno sa anche indicarmi cosa mi devo andare a studiare per farlo? grazie mille. ---------------------------------------- AUTORE: 4 DATA :04/11/2008 - 14:27:04 ---------------------------------------- Scusa ma credo tutte le telecamere IP, o almeno tutte quelle che ho usato io, abbiano integrato un web-server + una serie di applicazioni che girano su di questo e che sono accessibili da un browser che eprmettono, tra le altre cose, di modificare parametri e altro... quindi perchè lo devi fare in labVIEW se già c'è? Forse è solo per esercizio? Ciao ---------------------------------------- AUTORE: 2501 DATA :04/11/2008 - 17:09:15 ---------------------------------------- [quote="ale914":2hvoo193]Scusa ma credo tutte le telecamere IP, o almeno tutte quelle che ho usato io, abbiano integrato un web-server + una serie di applicazioni che girano su di questo e che sono accessibili da un browser che eprmettono, tra le altre cose, di modificare parametri e altro... quindi perchè lo devi fare in labVIEW se già c'è? Forse è solo per esercizio? Ciao[/quote:2hvoo193] lo devo fare in labview perchè è con un programma labview che devo rendere disponibili alcune funzionalità, senza che l'utente passi per il browser \":)\" infatti quello che vorrei sapere è come fare questo ---------------------------------------- AUTORE: 482 DATA :05/11/2008 - 07:41:35 ---------------------------------------- Un dubbio su cosa intendi per modificare... Se parli di aggiungere o togliere del codice html, semplicemente apri la pagina come testo e la modifichi con le funzioni stringa. Se invece intendi inserire del testo o delle selezioni in una pagina interfacciandoti al browser, credo che tu debba usare gli activeX e appoggiarti al browser che sceglierai. ---------------------------------------- AUTORE: 645 DATA :05/11/2008 - 09:00:41 ---------------------------------------- Ma visto che devi passare da LabView senza che l'utente veda le pagine web (ho capito bene? Nel post precedente dici che devi usare LabView per presentare i comandi all'utente) perchè non prepari un VI direttamente in LabView (bisogna vedere come parlare con la telecamera... ci sono librerie pronte? Oppure si può comunicare tramite protocollo a stringhe?) e poi ne pubblichi la pagina web corrispondente (sempre con LabView)? ---------------------------------------- AUTORE: 4 DATA :05/11/2008 - 09:40:31 ---------------------------------------- di solito queste IP cam mettono a disposizione del SW per integrarle alle prorpie applicazioni, di solito degli ActiveX (nel caso delle AXIS) usando l'activeX e la sua documentazione è abbastanza semplice integrare le funzioni della cam, compresa l'acquisizione delle immagini e il controllo dei parametri, in LabVIEW ---------------------------------------- AUTORE: 2501 DATA :05/11/2008 - 10:39:14 ---------------------------------------- [quote="ale914":d3zvo7r2]di solito queste IP cam mettono a disposizione del SW per integrarle alle prorpie applicazioni, di solito degli ActiveX (nel caso delle AXIS) usando l'activeX e la sua documentazione è abbastanza semplice integrare le funzioni della cam, compresa l'acquisizione delle immagini e il controllo dei parametri, in LabVIEW[/quote:d3zvo7r2] si, esattamente, è proprio una Axis! in pratica io che devo fare: devo poter decidere attraverso un VI in Labview se il filtro infrarossi dev'essere attivo o meno. nel manuale della videocamera è presente la sintassi per comunicare con la videocamera, il mio problema è che non so implementarlo in labview. devo utilizzare un tool particolare? sapete dove posso reperire qualche esempio? \":)\" grazie, gentilissimi. ---------------------------------------- ================================================================================ aprire files salvati ================================================================================ AUTORE: 2499 DATA :04/11/2008 - 18:47:26 ---------------------------------------- Salve a tutti, sono di nuovo la studentessa di ingegneria. Innanzitutto grazie a tutti per le risposte allo scorso post, mi siete stati d'auito. Ora però ho un nuovo problema.Ho salvato dei files in labview e quando li ho riaperti mi dava solo il front panel, io però vorrei rivedere anche il block diagram, sapete dirmi come fare? \":(\" Scusate l'ingoranza ma lo conosco pochissimo il labview. Grazie mille a tutti. Electra \":)\" ---------------------------------------- AUTORE: 2501 DATA :04/11/2008 - 20:21:41 ---------------------------------------- ctrl+E \":)\" ---------------------------------------- AUTORE: 1124 DATA :04/11/2008 - 20:24:13 ---------------------------------------- in che senso? se hai scritto un programma in labview, cioè un VI (virtual instrument), e lo hai salvato, quando lo richiami si presenta con il proprio front panel. Per rientrare nel block diagram puoi premere contemporaneamente i tast ctrl + e oppure dal menu "windows" scegli "show front panel" (almeno nell versione 7.1). ciao ---------------------------------------- AUTORE: 1124 DATA :04/11/2008 - 20:27:19 ---------------------------------------- !!!! ops dal menu windows scegli "show block diagram" è il dopo cena.... ---------------------------------------- ================================================================================ creazione file ================================================================================ AUTORE: 2493 DATA :05/11/2008 - 09:46:47 ---------------------------------------- ciao ragazzi... ho un problema... e volevo chiedervi se qualcuno può aiutarmi... devo creare un file di testo dove salvo dei dati in formato binario utilizzando U32. Nel momento che volgio scrivere nel file giustamente mi chiede il formato stringa... ho provato tutte le conversioni... ma nessuna di quelle che ho provato mi trasforma il mio numero nella stringa corrispondente... dov'è che mi perdo??? scisate l'ignoranza... ma per labview sono autodidatta... sto imparando ad usarlo da solo... e mi serve per finire la mia tesi... grazie Ale ---------------------------------------- AUTORE: 927 DATA :06/11/2008 - 10:25:10 ---------------------------------------- Non è molto chiaro cosa vuoi scrivere nel file; numeri testuali come questi? 123 45 666 ... Se è così, ci sono vari modi, il più semplice è "Number to decimal string"; se hai un array di numeri può essere comodo anche "Array to spreadsheet string" ---------------------------------------- AUTORE: 2493 DATA :07/11/2008 - 11:24:17 ---------------------------------------- no se fossero numeri cosi sarebbe facile... i miei numeri sono in formato binario.... nn posso metterli dettamente in un file.. ma prima trasforarli in una stringa... ho provato tutte le conversioni... ma nn trovo niente che corrisponde a quello che so cercando.... quindi sn bloccato su questo punto... grazie ---------------------------------------- AUTORE: 927 DATA :07/11/2008 - 13:40:19 ---------------------------------------- ah forse ho capito cosa intendi... a te arrivano i numeri sotto forma di stringhe binarie? Cioè un numero è formato da una stringa di quattro caratteri incomprensibili? in tal caso usa "Type cast" per convertire ogni stringa da 4 byte in un U32. Dopodichè puoi usare "Number to decimal string" come sopra ---------------------------------------- ================================================================================ Collegamento ad excel ================================================================================ AUTORE: 2503 DATA :05/11/2008 - 11:58:10 ---------------------------------------- Ciao a tutti !! Ho una formula che mi varia con un parametro collegato in un array e gli altri valori vengono inseriti da utente. Dovrei creare quindi in un excel gia esistente una colonna riguardante i vari valori che escono dalla formula.!! Grazie mille ---------------------------------------- AUTORE: 645 DATA :10/11/2008 - 09:17:19 ---------------------------------------- Con i blocchi Write e Read to Spreadsheet (nella paletta di comunicazione con i File) puoi lavorare con fogli di calcolo per memorizzare e leggere i dati. Guarda tra gli esempi... Se però puoi essere più chiaro nella domanda ti diamo una mano in più! \":D\" ---------------------------------------- AUTORE: 2503 DATA :10/11/2008 - 23:41:10 ---------------------------------------- Ok grazie mille !!! sto risolvendo \":)\" \":)\" ---------------------------------------- ================================================================================ Errore: "Cannot write to read-only multicast connection" ================================================================================ AUTORE: 2438 DATA :05/11/2008 - 16:23:06 ---------------------------------------- Ciao a tutti, ho fatto un programma che dialoga con una seriale. Se lo lancio dal Labview tutto funziona, se faccio l'eseguibile (come sempre ho fatto e sempre funzionato) di da l'errore: [code:2u2xvz6j]Cannot write to read-only multicast connection[/code:2u2xvz6j] Che problema c'è? Non capisco. L'ho ricompilato anche più di una volta. Grazie Ciccio ---------------------------------------- AUTORE: 2438 DATA :06/11/2008 - 09:46:17 ---------------------------------------- Ciao a tutti, sono riuscito a risolvere il problema (almeno per ora!!!), ma non chiedetemi come perchè non ne ho la più pallida idea... L'unica cosa che ho fatto è risistemare un pò i comandi per le porte seriali e sembrerebbe andare. Mi spiegate, per cortesia, che tipo di errore era? Grazie mille Ciccio ---------------------------------------- AUTORE: 2438 DATA :06/11/2008 - 11:08:35 ---------------------------------------- Mi correggo! Il problema c'è sempre!!! In pratica, quando creo l'eseguibile non si connette alla COM, e non capisco il perchè!!! Sto impazzendo, mi spiegate come risolverlo? Vi prego!!! Grazie Ciccio ---------------------------------------- AUTORE: 2438 DATA :10/11/2008 - 10:34:35 ---------------------------------------- Problema risolto! Scusate la mia ignoranza! Il fatto è che non chiudevo bene la seriale e si incasinava tutto. Grazie di nuovo Ciccio ---------------------------------------- ================================================================================ inserimento valori in array di stringhe ================================================================================ AUTORE: 2501 DATA :05/11/2008 - 22:31:40 ---------------------------------------- salve, avrei da inserire degli elementi in un array di stringhe. ho inserito l'array in un ciclo for e ho provato a usare la funzione build array passando i valori da inserire, ma mi sovrascrive sempre la prima variabile dell'array. è evidente che sbaglio. come faccio ad ogni ciclo ad incrementare la posizione dell'array in corrispondenza all'i-esima esecuzione del for? grazie a chi risponderà ---------------------------------------- AUTORE: 2501 DATA :05/11/2008 - 23:44:27 ---------------------------------------- risolto da sola con l'insert into string, era una sciocchezza \":)\" grazie comunque per l'attenzione... (è che io e il labview abbiamo poca confidenza:P) ---------------------------------------- AUTORE: 1308 DATA :10/07/2009 - 10:41:22 ---------------------------------------- ciao, come hai risolto ? ---------------------------------------- ================================================================================ recuperare la risoluzione dello schermo ================================================================================ AUTORE: 2196 DATA :06/11/2008 - 09:58:02 ---------------------------------------- Ciao a tutti, c'è modo di recuperare tramite qualche funzione di labview la risoluzione dello schermo ? ---------------------------------------- AUTORE: 927 DATA :06/11/2008 - 10:57:46 ---------------------------------------- Usa un property node, con la classe "Application" (dovrebbe essere il default) e la proprietà Display -> All monitors ---------------------------------------- ================================================================================ Data logger beckhoff -> labview ================================================================================ AUTORE: 963 DATA :06/11/2008 - 15:30:10 ---------------------------------------- Salve a tutti, volevo costruirmi un piccolo data logger avendo a disposizione labview 8.2, la testa di un modulo beckhoff con codice BK9050 con protocollo di comunicazione ethernet e alcuni moduli per la lettura di termocoppie da collegarsi al BK9050. Ho contattato la beckhoff e mi ha detto che basta avere una libreria che si chiama ADS ma io non riesco a trovarla in labview.. diciamo che non sono stati molto esaurienti nelle spiegazioni.. c'è qualcuno che ha già creato sistemi di questo tipo e che mi potrebbe dare una mano?? Grazie anticipatamente ---------------------------------------- AUTORE: 1124 DATA :06/11/2008 - 16:18:20 ---------------------------------------- ciao non sono molto pratico di questo sistema, ma forse la libreria che cerchi è la EDS prova a seguire questo link http://www.beckhoff.com/download/Config ... EL6731.zip ---------------------------------------- ================================================================================ Timed Loop ================================================================================ AUTORE: 2483 DATA :07/11/2008 - 10:22:34 ---------------------------------------- Vi chiedo aiuto per l'ennesima volta. Nel mio programma ho un pulsante, alla cui pressione è associata una routine. Oltre a questo dovrei avere un altro pulsante, che se premuto esegue la stessa routine, aspetta un lasso di tempo (impostato in un ring) riesegue la routine e così via fino a che non si preme di nuovo lo stesso pulsante. Ci ho provato in vari modi ma non riesco ad ottenre il risultato voluto. CREDO di dover usare un timed loop o una timed sequence...ma (evidentemente perchè son stupido) tutti i miei tentativi son falliti. Qualcuno può darmi due dritte? Grazie ---------------------------------------- AUTORE: 129 DATA :08/11/2008 - 07:41:17 ---------------------------------------- Ciao, dovresti usare un while loop o un timed loop per tenere sempre in attesa la tua interfaccia. Quindi dovresti inserire un case per gestire le varie situazioni. Essendo le situazioni maggiori di 2, il terminale di selezione del case deve essere collegato ad un numerico, in modo da avere n situazioni possibili. Ora con un pò di logica booleana gestisci il risultato della pressione dei 2 pulsanti, e aggiungi un select o altro per avere la selezione numerica del case structure: alla fine dovresti avere i casi : 0 aspetta istruzione 1 esegui codice 2 esegui codice e aspetta Un suggerimento per gestire dei pulsanti e avere il numero corrispondente è quello di inserirli in un array boolean quindi con search array trovi il numero corrispondente al pulsante premuto. ---------------------------------------- ================================================================================ eseguire script da LabVIEW 8.5 ================================================================================ AUTORE: 1465 DATA :08/11/2008 - 02:11:28 ---------------------------------------- ciao a tutti, come da titolo, vi chiedo se sapete come si fa ad eseguire degli script dal block diagram... in particolare vorrei acquisire il codice ID di una chiave HASP HL ciao e grazie in anticipo ---------------------------------------- AUTORE: 1465 DATA :11/11/2008 - 00:14:58 ---------------------------------------- nessuno sa qualcosa??? ---------------------------------------- AUTORE: 4 DATA :11/11/2008 - 11:29:25 ---------------------------------------- che intendi per "script" detto così potrebbe voler dire tutto o niente ---------------------------------------- AUTORE: 1465 DATA :11/11/2008 - 17:51:51 ---------------------------------------- devo eseguire un pezzo di codice da una dll che mi permette di identificare una chiave hasp ---------------------------------------- ================================================================================ Acquisizione in tempo reale ================================================================================ AUTORE: 2438 DATA :10/11/2008 - 10:51:02 ---------------------------------------- Ciao ragazzi, mi trovo di nuovo con un problema!!! Devo salvare su file dati provenienti da seriale, vi allego il file .vi. I dati che devo salvare sono "data" e la parte commentata è quella che ho fatto io, il resto l'ha fatto un'altra persona e funziona. Io devo solo salvare questi dati, ma in pratica il programma mi da quasi subito un errore di overrun. Come posso ovviare a tale problema? Sono abbastanza disperato... Grazie di tutto Ciccio ---------------------------------------- AUTORE: 43 DATA :10/11/2008 - 11:11:53 ---------------------------------------- [quote="cicciodevoto":gloki8v5]Ciao ragazzi,... il resto l'ha fatto un'altra persona e [b:gloki8v5]funziona.[/b:gloki8v5] Io devo solo salvare questi dati, ma in pratica il programma mi da quasi subito un errore di overrun. Come posso ovviare a tale problema? Sono abbastanza disperato... Grazie di tutto Ciccio[/quote:gloki8v5] Pessimo SW!!! usa almeno le code!! separa il loop di comunicazione seriale da quello di elaborazione/memorizzazione. Se il buffer della seriale è pieno, va scaricato in un solo colpo!!! e poi con calma, elaborato in parallelo... bye ---------------------------------------- AUTORE: 2438 DATA :10/11/2008 - 11:17:06 ---------------------------------------- Mi potresti, per cortesia, spiegarti con qualche esempio. Scusami ti ringrazio Ciccio ---------------------------------------- AUTORE: 43 DATA :10/11/2008 - 11:21:01 ---------------------------------------- [quote="cicciodevoto":3pqv1ij0]Mi potresti, per cortesia, spiegarti con qualche esempio. Scusami ti ringrazio Ciccio[/quote:3pqv1ij0] Se Ti facessi un esempio Ti scriverei direttamente il SW.... bye ---------------------------------------- AUTORE: 2438 DATA :10/11/2008 - 11:30:09 ---------------------------------------- Mi dici vuol dire "usare le code"? o dove posso trovare esempio? Come si scarica il buffer della seriale in un sol colpo? poi immagino che devo mandare un clear, giusto? Grazie Ciccio ---------------------------------------- AUTORE: 2438 DATA :12/11/2008 - 11:05:59 ---------------------------------------- Ciao paracarro, ho fatto qualche modifica al sw. che ne pensi? va un pò meglio? Sembrerebbe andare... Ho due cose che non ho capito però. Primo se premo "stop" non esce dal programma, usando il debug hi capito che si blocca sul prelievo dalla coda, e non capisco perchè. Secondo ho impostato la dimensione del file su 10000byte e tutto va bene, se lo imposto su 2000000byte si blocca sulla vi della scritture su file, e non ho capito il perchè. Grazie mille Ciccio ---------------------------------------- AUTORE: 43 DATA :12/11/2008 - 11:36:35 ---------------------------------------- [quote="cicciodevoto":br5uc53x]Ciao paracarro, ho fatto qualche modifica al sw. che ne pensi? va un pò meglio? Sembrerebbe andare... Ho due cose che non ho capito però. Primo se premo "stop" non esce dal programma, usando il debug hi capito che si blocca sul prelievo dalla coda, e non capisco perchè. Secondo ho impostato la dimensione del file su 10000byte e tutto va bene, se lo imposto su 2000000byte si blocca sulla vi della scritture su file, e non ho capito il perchè. Grazie mille Ciccio[/quote:br5uc53x] ciao ciccio. cominciamo a ragionare, ma la strada mi sembra parecchio lunga e tortuosa... Per rispondere alla prima domanda direi che ad ogni lettura dalla coda si potrebbe aspettare un tempo "congruo" invece di un tempo infinito come fai Tu. Se guardi la descrizione dell'ingresso della funzione "Dequeue Element" alla voce "timeout", ti accorgerai di non aver collegato nulla, per cui il default è -1 (attesa infinita, appunto). In realtà mettere un valore diverso da -1 corrisponderebbe a leggere "se c'è qualcosa nella coda" cioè equivarrebbe a fare un "polling" sulla coda che per altro viene già fatto sulla seriale, non avrebbe molto senso... Per ovviare al problema e risolvere il problema del boolenato di uscita dal loop, devi fare in modo che all'uscita dal primo loop venga "distrutta" la coda. La funzione "Dequeue element" si accorgerebbe della distruzione ed uscirebbe dall'attesa infinita con un errore. Quindi nel secondo loop devi uscire non tanto alla pressione del tasto di uscita (che verrà gestito solo nel primo loop) ma quando la coda verrà distrutta. Cmq, secondo me ci sono almeno 2 grosse modifiche da fare: Nel primo loop devi leggere da seriale solo se ci sono dei byte da leggere e questo controllo deve essere ciclico (polling) opportunamente temporizzato la configurazione della seriale deve essere fatta dentro il loop se e solo se si esegue il loop la prima volta o c'è stato un errore nella gestione della seriale. Nel momento che ti accorgi che ci sono dei byte, non inporta quali siano o quanti, ma tu li prenderai tutti e li scaraventi nella coda, ci penserà il secondo loop ad elaborarli con comodo. Nel secondo loop invece NON devi SEMPRE aprire/creare il file dove scrivi, semplicemente devi tenere aperto il file e scriverci quello che Ti pare (io loggherei tutti i byte anche quelli non validi). to be continued ---------------------------------------- AUTORE: 43 DATA :12/11/2008 - 11:50:00 ---------------------------------------- Dimenticavo!!! Bruttissima l'inizializzazione fatta "a muzzo", o se preferisci "a casaccio" del booleano fatta fuori dei loop. NON HAI NESSUNA GARANZIA CHE QUELL'ASSEGNAMENTO VENGA ESEGUITO PRIMA DELLA LETTURA DELLA VARIABILE NEL LOOP. QUESTO STA ALLA BASE DEL PARALLELISMO DI LABVIEW. Chiudi quell'assegnamento in una sequence structure e prolunga il filo verde fino a raggiungere il bordo del loop. Solo così avrai la garanzia che quella inizializzazione sia eseguita correttamente bye ---------------------------------------- AUTORE: 2438 DATA :13/11/2008 - 10:44:33 ---------------------------------------- Ciao Paracarro, ti ringrazio per l'aiuto. [quote="paracarro":zlou6z7g] La funzione "Dequeue element" si accorgerebbe della distruzione ed uscirebbe dall'attesa infinita con un errore. Quindi nel secondo loop devi uscire non tanto alla pressione del tasto di uscita (che verrà gestito solo nel primo loop) ma quando la coda verrà distrutta. [/quote:zlou6z7g] Come faccio a sapere che una code è distrutta? [quote="paracarro":zlou6z7g] Cmq, secondo me ci sono almeno 2 grosse modifiche da fare: Nel primo loop devi leggere da seriale solo se ci sono dei byte da leggere e questo controllo deve essere ciclico (polling) opportunamente temporizzato la configurazione della seriale deve essere fatta dentro il loop se e solo se si esegue il loop la prima volta o c'è stato un errore nella gestione della seriale. Nel momento che ti accorgi che ci sono dei byte, non inporta quali siano o quanti, ma tu li prenderai tutti e li scaraventi nella coda, ci penserà il secondo loop ad elaborarli con comodo. [/quote:zlou6z7g] Credo che sulla seriale ci saranno sempre byte, prelevo dati da un accelerometro che spara in continuo. Non ho capito di quando parli della configurazione della seriale. [quote="paracarro":zlou6z7g] Nel secondo loop invece NON devi SEMPRE aprire/creare il file dove scrivi, semplicemente devi tenere aperto il file e scriverci quello che Ti pare (io loggherei tutti i byte anche quelli non validi). [/quote:zlou6z7g] Dato che voglio i file di una certa dimensione e quando raggiunge questa dimensione mi crea un altro file, tutto questo non deve andare nel loop? Infine, direi anche giustamente, mi da anche un errore di overrun, suppongo che ci sia un collo di bottiglia quando salvo il dato, dato che se elimino la parte di scrittura tutto va bene. Ti ringrazio per l'aiuto e chiedo scusa per la mia ignoranza, ma il fatto è che sto facendo un lavoro di cui non ho nè esperienza nè tantomeno le qualifiche adatte. Grazie mille Ciccio ---------------------------------------- ================================================================================ Un progetto didattico - Riconoscere frequenze ================================================================================ AUTORE: 2506 DATA :11/11/2008 - 12:22:36 ---------------------------------------- Salve! Sono uno studente universitario, e vorrei sviluppare un applicativo didattico in Labview: Il problema è "abbastanza" semplice: creare un'accordatore per strumenti musicali. La mia idea di base era la seguente: acquisisco i dati con il blocco Acquire Sound, con un Trigger/Gate limo le ampiezze per eliminare un pò di rumore... poi con un blocco Amplitude e Signal Processing vedo il valore diPeak, lo trasformo con un FFT, e dovrei ottenere una frequenza. Se comparo questa frequenza con una tabella di valori preimpostati, riconosco la nota ed accendo il corrispettivo LED. Secondo voi va bene? Domanda 1) Il blocco Trigger/Gate, posso configurare i valori di Threshold con una variabile, ergo un Dial o Knob? Mi sembra non ci sia una linea per questo. Domanda 2) Il blocco FFT genera lo spettro delle frequenze... è normale che per valori minori di 0 nell'asse delle ascisse (in frequenza) i valori siano tutti pari a 0? Dalla teoria, dovrebbe essere simmetrico rispetto all'asse delle ordinate... Domanda 3) Se dovessi avere altri problemi... posso chiedere ancora? \":lol:\" Grazie tante Alby87 ---------------------------------------- ================================================================================ Report generation vi (non stampa) ================================================================================ AUTORE: 724 DATA :12/11/2008 - 08:53:24 ---------------------------------------- Ho una applicazione di collaudo (labview 6.0.2) che usa le report generation vi per creare e stampare (stampante di rete) l'esito del collaudo. Fino ad ora nessun problema (è attiva da qualche anno). Ho cambiato stampante (da Epson a Hp) e sono iniziati i problemi. Le prime stampe della mattina vanno perse finche da "cartella stampanti" non stampo la pagina di prova. La stessa anomalia si verifica se finisce la carta: non tiene la coda e le stampe successive non escono e non sono visibili nella coda di stampa. Per sbloccare tutto ristampo la pagina di prova. Di chi è la colpa:labview, stampante, windows? Ciao, Cesare ---------------------------------------- ================================================================================ Invio dati su ftp ================================================================================ AUTORE: 2509 DATA :13/11/2008 - 10:48:43 ---------------------------------------- Salve a tutti! Trasferendo dati su un server ftp ho notato una cosa strana. Se trasferisco un file .txt il trasferimento avviene correttamente e la size del file spedito è identica a quella del file sul server ftp. Se invio invece dei file .doc o . zip, sul server ftp la size del file risulta essere leggermente maggiore e in più questi file risultano corrotti, nel senso che non è possibile aprirli o accedervi. Qualcuno mi sa dire qualcosa a riguardo??? Uso labview 8.5. Ringrazio anticipatamente tutti per l'attenzione ---------------------------------------- AUTORE: 927 DATA :13/11/2008 - 11:13:54 ---------------------------------------- Nel blocco "FTP put file" dovrebbe esserci un ingresso "binary" che devi mettere a true ---------------------------------------- AUTORE: 2509 DATA :13/11/2008 - 12:14:26 ---------------------------------------- Grazie mille per l'aiuto, sono un tesista del politecnico di Milano e non è da molto che programmo, o meglio, cerco di programmare con labview; in più non ho mai fatto nessun corso e quindi spesso delle cose non mi sono molto chiare...sei stato proprio gentile, ti ringrazio ancora!!!Giusto per curiosità...perchè file zip e doc devono essere spediti in binario??? Grazie di nuovo, buona giornata Gianluca ---------------------------------------- AUTORE: 927 DATA :13/11/2008 - 13:22:23 ---------------------------------------- Perchè i loro contenuti sono byte qualunque e non solo caratteri stampabili come nei file di testo semplici. Non dipende da Labview, è una caratteristica del protocollo FTP; se ben ricordo, quando si specifica che il file è di testo viene fatta la conversione del carattere di "a capo" in base al sistema operativo di arrivo. Se il file in realtà non è di testo, quegli "a capo" sono in realtà qualcos'altro e ovviamente succede un casino... ---------------------------------------- ================================================================================ Orientamento testo ================================================================================ AUTORE: 1921 DATA :13/11/2008 - 14:11:33 ---------------------------------------- Ciao a tutti, è un pò che non frequento il forum... come va? Torno a lavorare con Labview dopo parecchi mesi e torno con una domanda per voi. Devo compilare un report (word) preimpostato, di cui non posso modificare la struttura. Dovrei scrivere nelle celle di una tabella che sarebbe formattata con orientamento testo verticale. Il punto è che riesco a scrivere solo in orizzontale... non riesco a trovare il modo di scrivere in verticale. Qualcuno sa dirmi se esiste la possibilità di settare questa opzione? Io non l'ho trovata. Grazie a chi vorrà rispondermi. Ciao Angela ---------------------------------------- AUTORE: 482 DATA :14/11/2008 - 07:21:52 ---------------------------------------- Se è un Template di word potresti settare le caratteristiche della cella in modo che venga compilata in verticale direttamente in word e poi riempire la cella utilizzando i segnalibro. ---------------------------------------- AUTORE: 1921 DATA :14/11/2008 - 07:58:12 ---------------------------------------- Ho già usato i segnalibri ma in questo caso, per ogni ciclo di test riempio una riga della tabella di word... dovrei mettere un segnalibro per ogni cella di ogni riga... uhm.. ---------------------------------------- ================================================================================ Onda quadra! ================================================================================ AUTORE: 2511 DATA :13/11/2008 - 15:24:00 ---------------------------------------- Salve a tutti! Sapete dirmi perchè l'FFT di un'onda quadra generata con un generatore di segnale Basic Function Generetor in cui ho introdotto un offset, ha la prima armonica nella frequenza 0 e non nel valore di frequenza da me impostato? E sapete dirmi come risolvere il problema? Grazie in anticipo per l'attenzione ---------------------------------------- AUTORE: 927 DATA :14/11/2008 - 09:13:26 ---------------------------------------- Se hai introdotto un offset, è normale che ci sia una componente in continua... Il segnale non è più simmetrico rispetto all'asse X, ma ha un valor medio non nullo che è appunto la componente costante ---------------------------------------- ================================================================================ Selezione di campioni da un segnale ================================================================================ AUTORE: 2512 DATA :14/11/2008 - 07:20:43 ---------------------------------------- Salve a tutti. Ho un'importante quesito da porvi: ho un segnale (formato dalle assi X e Y naturalmente). Voglio però solo estrapolare alcuni campioni, cioe' coppie specifiche di valori (x,y). Ad esempio: Ho un sin(x) valutato in 100 istanti di ogni periodo. Io vorrei soltanto alcuni valori come 1,2,3 6,8,44,47,98 (non equidistanziati). Come faccio a prenderli? E magari anche a graficare il tutto (campioni selezionati)? Grazie mille anticipatamente. ---------------------------------------- AUTORE: 1124 DATA :14/11/2008 - 07:35:45 ---------------------------------------- ciao se il tuo segnale è un array di n righe e due colonne, per estrapolare la coppia che ti interessa potresti usare la funzione "search 1D array" per identificare l'indice della coppia: 1) estrai la colonna delle X (ottieni un vettore); 2) applica la funzione "search 1D array" ed ottieni l'indice; 3) estrai la colonna delle y (ottieni un secondo vettore); 4) applica la funzione "index array" sul secondo vettore (y) ed ottieni il valore corrispondente. metti entrambi i valori in un nuovo array e poi potrai graficarlo. sono convinto che ci sia anche un metodo più rapido, ma fino al secondo caffè non carburo. ---------------------------------------- AUTORE: 2512 DATA :14/11/2008 - 07:39:34 ---------------------------------------- Grazie per la risposta prontissima! Aspetto eventualmente un metodo più rapido perchè devo prendere molti campioni...Circa un centinaio equispaziati a sezione (cioè i primi 10, poi ogni 5, poi ogni 10...) e credo che come mi illustri tu sia un pò lunghetto. Grazie! ---------------------------------------- AUTORE: 1124 DATA :14/11/2008 - 08:10:23 ---------------------------------------- il metodo proposto è utilizzabile se conosci almeno uno dei due valori (o X o Y) e se la ricerca si limita a pochi casi se la ricerca è più ampia pprepari un array con i valori che conosci e tramite un ciclo for li dai in pasto alla struttura costituisce il metodo che ti ho proposto. se invece il campionamento è a sezione e conosci il passo con cui vuoi campionare inserisci tanti modulini "array subset" indicizzati nelle posizioni e nelle lunghezze che ti servono e inserisci i dati in un nuovo array. ciao ---------------------------------------- AUTORE: 645 DATA :14/11/2008 - 12:42:59 ---------------------------------------- Se il segnale è campionato (acquisito o generato) a valori interi della X puoi anche prendere direttamente la posizione corrispondente nel vettore delle Y... mi spiego: se la tua funzione ha come X valori interi (tipo 1, 2, 3... nel senso che, per esempio, sulla X hai i secondi o i msecondi o altro) sei sicuro che la posizione 3 del vettore delle Y contiene il valore della funzione nell'istante 3. Oppure puoi usare la funzione "Polyval" (mi pare si chiami così e non ricordo bene in quale paletta si trova) per valutare il valore della funzione nell'istante che ti interessa: questo metodo è molto comodo perchè non devi lavorare sui vettori ma devi conoscere la funzione. ---------------------------------------- AUTORE: 2512 DATA :14/11/2008 - 13:09:25 ---------------------------------------- Ragazzi...purtroppo ancora non riesco a risolvere il problema. Sono riuscito ad arrivare a questo punto: vettore X = Contiene tutti gli istanti di tempo vettore Y = Contiene tutti i valori ordinati per questi istanti di tempo In sostanza basta che prendo gli elementi di un vettore nuovo X_A (compreso nel vettore X) e li uso come indici nel vettore Y, cosi' da ottenere X_A e Y_A. Vi prego di aiutarmi...grazie ---------------------------------------- AUTORE: 1124 DATA :16/11/2008 - 08:52:29 ---------------------------------------- ciao se devi leggere i vaori equispaziati o comunque a spot o a finestra forse l'esempio che ti allego potrebbe aiutarti. ---------------------------------------- AUTORE: 129 DATA :16/11/2008 - 20:51:58 ---------------------------------------- Se devi estrarre le coppie X,Y di un array di 100 elementi e se devi scegliere in base all' indice di posizione, puoi usare questo esempio. Altrimenti devi usare una funzione di ricerca. I due esempi in allegato Lo shift register ti può aiutare a ridurre il tempo di ricerca in modo da ottimizzare i tempi. ---------------------------------------- AUTORE: 2512 DATA :17/11/2008 - 17:24:38 ---------------------------------------- Grazie stefano e nicola! Siete stati squisiti. Ho risolto il problema generando il vettore delle X come serviva a me. Dopo di che ho utilizzato questi valori come indici nel vettore Y, cosi' da ottenere la coppia desiderata X,Y. Grazie mille! ---------------------------------------- ================================================================================ Aggiornamento di un Array di Cluster ================================================================================ AUTORE: 2435 DATA :17/11/2008 - 17:46:45 ---------------------------------------- Ciao a tutti , sapete dirmi dove sto sbagliando??? grazie ---------------------------------------- AUTORE: 278 DATA :17/11/2008 - 19:29:23 ---------------------------------------- ciao, devi inizializzare l`array di cluster all`ingresso della funzione "replace array subset".... \":oops:\" ---------------------------------------- AUTORE: 2435 DATA :21/11/2008 - 07:52:57 ---------------------------------------- scusa la mia incompetenza..... ma,puoi mettere un esempietto tanto per capire meglio? grazie ---------------------------------------- AUTORE: 2435 DATA :21/11/2008 - 14:09:48 ---------------------------------------- ha ha ha chiedo scusa..... \":D\" \":)\" \":(\" \":o\" \":?\" \"8)\" \":lol:\" \":x\" \":P\" \":oops:\" \":cry:\" \":evil:\" \":twisted:\" \":roll:\" \":wink:\" \":!:\" \":?:\" \":idea:\" \":|\" \":mrgreen:\" ---------------------------------------- AUTORE: 278 DATA :21/11/2008 - 16:50:33 ---------------------------------------- semplice vero?? \":wink:\" per inizializzare l`array correttamente, e` buona regola utilizzare la funzione "initialize array"... keep in mind \":!:\" \":!:\" ---------------------------------------- ================================================================================ passaggio di variabili tra labview e visualbasic ================================================================================ AUTORE: 2513 DATA :18/11/2008 - 08:41:48 ---------------------------------------- ciao a tutti \":wink:\" , inanzitutto mi presento,sono uno studente universitario di informatica e da poco ho scoperto il labview...sono due settimane che mi cimento in questa programmazione ma ancora ho molte lacune che spero possiate aiutarmi a colmare \":D\" passiamo ora alla mia domanda sapreste dirmi un metodo per poter fare un passaggio di variabili dal visual basic a labview e viceversa? mi spiego meglio, ho creato due programmi, uno in visual basic e l'altro in labview,lavoro su una variabile in visual basic e poi la mando al programma in labview la quale la rielabora e la rispedisce al programma in visual basic....in poche parole,una volta avviati entrambi mi servirebbe capire un modo per far dialogare i due attraverso il passaggio di una singola variabile( ad esempio un'intero x)....(naturalmente se conoscete un metodo più semplice per farli interagire è ben accetto \":mrgreen:\" ) grazie per le future risposte,ciao a tutti ---------------------------------------- AUTORE: 43 DATA :18/11/2008 - 09:03:33 ---------------------------------------- socket ---------------------------------------- ================================================================================ Eventi tastiera con LabVIEW ================================================================================ AUTORE: 1567 DATA :19/11/2008 - 20:29:53 ---------------------------------------- Ciao a tutti vorrei sapere se era possibile generare eventi tastiera tramite labview....praticamente simulare la pressione dei tasti della tastiera.... grazie ---------------------------------------- AUTORE: 645 DATA :20/11/2008 - 14:23:07 ---------------------------------------- Cerca qualcosa a proposito degli eventi gestibli dalla Event Structure: non vorrei sbagliare ma mi sembra che si possa controllare i tasti. ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 17:04:26 ---------------------------------------- [quote="strady77":1nfn27v4]Ciao a tutti vorrei sapere se era possibile generare eventi tastiera tramite labview....praticamente simulare la pressione dei tasti della tastiera.... grazie[/quote:1nfn27v4] Da LabVIEW e per LabVIEW puoi generare degli "user event" non certo eventi di tastiera... Ma puoi cmq farlo sfruttando le librerie .dll fornite dal Sistema Operativo. Qui di seguito posto un mio VI andato perso dopo la distruzione devi vecchi post... [attachment=0:1nfn27v4]provamouseclick.vi[/attachment:1nfn27v4] consiste nel generare non tanto eventi di tastiera, quanto eventi di movimento e click del mouse. Ovviamente parliamo di Windows... La cosa curiosa è che le coordinate di spostamento del mouse sono espresse in "mickeys" (mickey mouse!!) Se abilitato, il VI genera un evento di Doubleclick intercettato da LabVIEW stesso!! bye ---------------------------------------- AUTORE: 1567 DATA :17/07/2009 - 15:41:00 ---------------------------------------- OK .. e se invece di generare un evento volessi captnarne uno?? Praticamente devo intercettare quando una periferica USB - HID viene connessa al PC l'evento dovrebbe essere WM_HID_EVENT ..... come si può fare??? ---------------------------------------- ================================================================================ IBH Net Link libreria e esempio ================================================================================ AUTORE: 838 DATA :20/11/2008 - 08:48:08 ---------------------------------------- Ho dovuto realizzare uno scada che comunicasse con PLC siemens in ethernet. Comprando l'intefraccia della IBH ethernet/mpi ho realizzato un semplice esempio per implementare la comunicazione direttamente con il plc. Realizzato con labview 8.2 e la libreria fornita dal costruttore. In allegato esempio. Saluti ---------------------------------------- ================================================================================ Comunicazione LBV-VSC++ via datasocket ================================================================================ AUTORE: 1395 DATA :20/11/2008 - 09:01:36 ---------------------------------------- Buongiorno a tutti. Ho un problema in quanto conosco LBV ma non troppo il C++ (nella fattispecie in versione VisualStudio2008). Uso LBV8.5.1 (ho ricevuto 8.6 ma non ancora installato...) Devo far comunicare un programma in VSC++ (che acquisisce un'immagine triggerata da una camera USB) con LBV che analizza l'immagine e gestisce altri processi. Attualmente C++ acquisisce e salva su HD l'immagine in .jpg e LBV legge e processa . Tutto OK ma non vado oltre 1 immagine ogni 2-3 sec. Vorrei avere 1 immagine ogni 1-1,5 sec. Vorrei trasferire l'immagine da C++ in LBV usando il datasocket server (che giù uso in questa applicazione, in LBV) ma non so come gestire la programmazione del datasocket-write-image in C++ e non ho trovato alcun riferimento valido. Il datasocket server è già attivo, quindi vorrei solo fare una connessione automatica all'avvio del programma in C++ ed ogni volta che faccio l'acquisizione, fare l'invio invece che fare il salvataggio in .jpg. Qualche aiuto? Conoscete un link di riferimento ? Vi ringrazio anticipatamente \":wink:\" PS: Uso il programma di acquisizione in C++ perchè ho più telecamere in parallelo, e con LBV l'acquisizione da USB simultanea su più telecamere non funziona! Marco ---------------------------------------- ================================================================================ Maledetto punto decimale... ================================================================================ AUTORE: 2514 DATA :20/11/2008 - 09:54:36 ---------------------------------------- Ciao a tutti, ho cercato sul forum ma non ho trovato una risposta per cui vi sottopongo il mio quesito. Ho creato un VI che acquisisce via seriale dei valori e li visualizza su un grafico. L'acquisizione viene contemporaneamente salvata in formato .CSV su un file. I valori decimali sono salvati con separatore decimale "punto" e non "virgola", onde evitare di avere casini con le impostazioni internazionali dei PC su cui il programma verrà eseguito, impostazioni che ovviamente non possono essere note a priori. Ho poi creato un altro VI di servizio che permette di recuperare queste acquisizioni e di visualizzarle su un grafico multitraccia. Per evitare il solito casino con le impostazioni del PC ho rimosso il check dalle impostazioni del Front Panel alla voce "Use Localized Decimal Point". Provo il mio VI e tutto funziona come mi aspetto. Bene. Ma ecco il problema. Compilo l'applicazione e genero un eseguibile. Lancio l'eseguibile e il risultato è che la parte decimale dei valori viene ignorata, proprio come succede quando viene utilizzata la virgola come separatore su un file che contiene il separatore punto. Lo stesso VI dal quale sono partito per generare l'eseguibile, se eseguito con un RUN dall'ambiente di sviluppo si comporta egregiamente. Ho seguito le indicazioni riportate di rilanciare Labview (i cambiamenti sulla casella "Use localized decimal point" hanno effetto solo dopo un riavvio di Labview), ma niente di fatto. Sapete darmi una dritta o qualche suggerimento? Grazie mille in anticipo! ---------------------------------------- AUTORE: 1124 DATA :20/11/2008 - 13:01:28 ---------------------------------------- ciao una volta modificate le impostazioni "Use localized decimal point" hai riaperto e salvato il VI? ---------------------------------------- AUTORE: 1124 DATA :20/11/2008 - 13:05:03 ---------------------------------------- mi è capitato di distribuire un programma compilato con il "punto" decimale e di essere stato contattato dal cliente dopo alcuni mesi con un problema simile a quello che hai tu. Il servizio di assistenza informatica della azienda del mio cliente aveva applicato aggiornamenti al s.o. e aveva impostato la "virgola" come separatore interi/frazionari. Verifica se nelle impostazioni di windows hai la virgola o il punto. ---------------------------------------- AUTORE: 2514 DATA :20/11/2008 - 13:13:47 ---------------------------------------- Ciao Stefano e grazie per la risposta. Sì, ho chiuso e riaperto il VI, anzi ho chiuso e riaperto l'ambiente di sviluppo Labview per maggiore sicurezza. Io ho impostato la virgola come separatore volontariamente, in modo da avere impostazioni diverse tra Sistema Operativo ed applicativo Labview, proprio per verificare che non possano succedere episodi come quello che tu mi descrivi nel tuo secondo post. Credo di aver capito che dicendo a Labview di ignorare le impostazioni del S.O. mi tutelo da questa evenienza, ed effettivamente tutto sembra funzionare. Ma quando compilo e produco il file eseguibile quello che aveva funzionato fino a due minuti prima, e che continua a funzionare nell'ambiente di sviluppo, non funziona più nel file eseguibile. Spero di essermi spiegato bene, è una situazione abbastanza strana... ---------------------------------------- AUTORE: 2514 DATA :20/11/2008 - 14:13:15 ---------------------------------------- Evoluzione del problema: ho controllato come viene impostata la proprietà "Use Localized Decimal Point" nelle opzioni del Front Panel. Allora: nell'ambiente di sviluppo è DISABILITATA. L'applicazione che viene generata dopo la compilazione (ho attivato la barra dei menu per controllare) me la presenta ATTIVATA !! Ecco il problema, forse. Io ero convinto che queste impostazioni fossero in qualche modo "schiantate" all'interno dell'eseguibile, e invece no... Sapete come fare per attivarle in modo programmatico? Grazie mille! ---------------------------------------- AUTORE: 278 DATA :20/11/2008 - 21:45:59 ---------------------------------------- Ciao, a mio avviso ti conviene controllare direttamente nel codice se il sistema utilizza il "punto" o la "virgola" e poi agire di conseguenza, sia nella fase di registrazione dati che nella fase di lettura e rappresentazione. Nella sezione "download" c`e` un vi che potrebbe fare al caso tuo \":wink:\" ---------------------------------------- AUTORE: 301 DATA :21/11/2008 - 07:18:41 ---------------------------------------- Ciao, hai provato a salvare il contenuto del file ini di Labview all'interno del file ini della tua applicazione? In questo, poi, vai ad impostare il separatore da utilizzare..... ---------------------------------------- AUTORE: 2514 DATA :21/11/2008 - 08:11:46 ---------------------------------------- Grazie a voi per le risposte, intanto. Proverò a seguire i vostri suggerimenti e vi farò sapere. A dopo e grazie di nuovo. ---------------------------------------- AUTORE: 2514 DATA :21/11/2008 - 14:03:47 ---------------------------------------- Grazie intanto sia a esodar che ad aris. Per esodar: ci avevo pensato ma avevo scelto di "forzare" il tutto con il punto decimale perchè, purtroppo, c'è l'eventualità che i file di acquisizione vengano acquisiti su un PC, trasportati su un altro PC in cui è installato il visualizzatore e visualizzati lì sopra. Insomma, volevo forzare il formato proprio per avere meno casini (so che il file è fatto con una certa formattazione per cui mi dovrei trovare meno problemi). Volevo usare la ReadFromSpreadsheet che mi viene molto comoda, ma questa funziona come deve solo se le impostazioni del localized decimal point sono giuste. In acquisizione non ho problemi (il file lo formatto io con una serie di string_append), il problema ce lo avrei in visualizzazione, a meno di "dezippare" le stringhe acquisite con una scan, ma lo farei solo se ci sono per i capelli... in ogni caso la tua soluzione, effettivamente, funzionerebbe. Grazie mille \":)\" \":P\" Per aris: eccola qui la soluzione che mi costerebbe poco...devo solo fare in modo che il file .ini con la giusta impostazione del punto decimale venga installato dall'installer nella stessa directory. Grande. \":idea:\" Grazie di nuovo ad entrambi, spero di poter ricambiare. \":D\" ---------------------------------------- AUTORE: 278 DATA :21/11/2008 - 16:56:04 ---------------------------------------- Consiglio pazzerello della 13ma ora di lavoro.... prima di leggere e parsare l`intero file, controlla il primo dato e analizza il separatore, poi imposti il separatore corretto e leggi tutto il resto. Un`altra idea potrebbe essere quella di inserire una riga di intestazione (all`interno del file dati) che ti possa indicare se il separatore utilizzato e` il punto o la virgola. Saluti \":wink:\" ---------------------------------------- AUTORE: 482 DATA :24/11/2008 - 08:09:41 ---------------------------------------- calmi calmi! La soluzione è decisamente semplice. Quando crei un eseguibile, alla prima esecuzione viene creato un file di supporto .ini che contiene le impostazioni dell'eseguibile. Puoi eventualmente creare tu il file che deve avere lo stesso nome del file eseguibile ma con estensione ".ini". L'inizio del file deve essere il noem dell'eseguibile senza estenzione compreso tra parentesi quadre e successivamente le varie impostazioni. Nel tuo caso: [code:1spmx3na][NomeEseguibilesenzaestensione] useLocaleDecimalPt=False[/code:1spmx3na] Verrà cosi' utilizzato il punto decimale anzichè la virgola cosi' come avviene nell'ambiente di sviluppo. ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 08:48:11 ---------------------------------------- [quote="gepponline":2cncpce3]calmi calmi! La soluzione è decisamente semplice... [/quote:2cncpce3] Ben detto Geppo!!! Vorrei aggiungere per Goblin in particolare che i settaggi fatti in "Options..."nel Front Panel di un qualunque VI, modificano il File LabVIEW.ini xchè riguardano l'applicazione "LabVIEW.exe" e non il VI. Tutto ciò che riguarda la "configurazione" del VI si ottiene clickando col tasto dx sull'icona del VI (da FP o Diagram) e selezionando "VI Properties..." Tra l'altro la voce "options..." si ottiene anche dalla finestra principale dell' applicazione ("Getting started" LV 8, "LabVIEW" LV 7) Ricordo inoltre che ci sono alcune voci utilizzabili nel file LabVIEW.ini (e di conseguenza anche nei Nostri file "<applicazione>.ini")che non sono più configurabili da "Options...". Fra queste c'`e spazio per uno o due "eastern egg". Vorrei cogliere l'occasione per citare un classico dimenticato del file .ini. Lasciando font di default nei testi che appaiono nel Front Panel (font "Application", "Dialog", "System") si può incappare in problemi di visualizzazione, quando, una volta generato l'eseguibile, viene installato su un PC che ha Font di default di Win diverse da quelle del PC di origine. Le soluzioni sono 2: 1) non utilizzare mai nel FP Font di tipo "Application", "Dialog", "System" che sfruttano i default del S.O. 2) memorizzare le "Font di Default" del PC di sviluppo nel File "<Applicazione>.ini" Buon Natale bye ---------------------------------------- AUTORE: 645 DATA :24/11/2008 - 09:08:33 ---------------------------------------- Non so se vado fuori topic ma ... c'è un elenco delle voci settabili nel file .ini creato insieme all'eseguibile? Già in altri casi era spuntato fuori che modificando questo file si ottenevano determinati risultati... \":D\" ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 11:24:39 ---------------------------------------- [quote="MagicBotolo":3u1z98wn]Non so se vado fuori topic ma ... c'è un elenco delle voci settabili nel file .ini creato insieme all'eseguibile? Già in altri casi era spuntato fuori che modificando questo file si ottenevano determinati risultati... \":D\"[/quote:3u1z98wn] Ti consiglio di cercare in internet "LabVIEW.ini". Tutti le "Entry" di LaBVIEW.ini sono + o - utilizzabili nel file .ini creato dall'eseguibile al primo Run bye ---------------------------------------- ================================================================================ Format into string ================================================================================ AUTORE: 2483 DATA :20/11/2008 - 11:31:24 ---------------------------------------- Ciao a tutti! Ho un problema con il Format into string: Lo uso per generare il nome di ogni file di una sequenza. Ciò che mi serve è ottenere una roba del tipo: XXX-0000000001.jpg XXX-0000000002.jpg . . . XXX-0000000010.jpg eccetera. In pratica mi serve che il numero di sequenza sia composto da 10 cifre. Ho impostato come format string: XXX-%10d.jpg e come input il numero senza gli zeri (ovvero 1, non 0000000001) ma come risultato ho XXX- 1.jpg qualcuno sa darmi una mano per risolvere il problema? Grazie mille in anticipo ---------------------------------------- AUTORE: 2514 DATA :20/11/2008 - 13:09:05 ---------------------------------------- XXX-%010d.jpg ci manca lo 0 davanti al numero di cifre che vuoi usare come "riempitivo". Spero di esserti stato utile, ciao. Tiziano ---------------------------------------- AUTORE: 2483 DATA :20/11/2008 - 14:08:00 ---------------------------------------- A saperlo prima.... era una stupidaggine. Grazie mille ---------------------------------------- AUTORE: 2514 DATA :20/11/2008 - 14:14:40 ---------------------------------------- Figurati, sono proprio le cosiddette "stupidaggini" che fanno perdere un sacco di tempo, i forum servono proprio a questo...a risentirci! Tiziano ---------------------------------------- ================================================================================ file bud ================================================================================ AUTORE: 2515 DATA :20/11/2008 - 14:28:15 ---------------------------------------- Ciao a tutti, scusate sono un nuovo utilizzatore di LabView, qualcuno ha idea di come si faccia ad usare un file con estensione .bud? Mi spiego, ho un file in cui sono state registrate un numero x di tracce (elettrofisiologiche, quindi, in definitiva delle tracce elettroencefalografiche). Questo file ha una estensione .bud. Ho bisogno di creare un VI in grado di aprire il file con le tracce e che mi permetta di lavorare con ogni singola traccia. ---------------------------------------- AUTORE: 301 DATA :21/11/2008 - 07:20:22 ---------------------------------------- Ciao, hai provato ad aprirlo con notepad? Se dovesse essere un file di testo puoi leggerlo semplicemente con la funzione specifica.... ---------------------------------------- AUTORE: 2515 DATA :21/11/2008 - 14:17:29 ---------------------------------------- grazie ma non credo sia la risposta che mi serviva ---------------------------------------- AUTORE: 301 DATA :21/11/2008 - 14:26:57 ---------------------------------------- lo immagino, ma se non sai come è formattato il file......cosa ti posso dire? Ho provato a guardare un po in giro in internet, ma credo che sia una estensione arbitraria.... Provi ad allegare uno di quei file? ---------------------------------------- AUTORE: 2515 DATA :21/11/2008 - 14:58:56 ---------------------------------------- grazie mille....provo a mandarti un file bud e il ccc correlato. Come ti ho detto ciò che mi serve è poter dividere le tracce presenti nel bud e lavorare con ogni singola traccia. Grazie ancora ---------------------------------------- ================================================================================ Ridimensionamento immagini ================================================================================ AUTORE: 2483 DATA :20/11/2008 - 14:32:48 ---------------------------------------- Eccomi di nuovo qua. Nemmeno finito di risolvere un problema che già ne ho un altro. Devo caricare delle immagini all'interno di alcune Picture. Come faccio però a dimensionare l'immagine in modo che si adatti alla grandezza della picture che la contiene? Grazie mille ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 15:59:12 ---------------------------------------- [quote="apo":lvechoul]Eccomi di nuovo qua. Nemmeno finito di risolvere un problema che già ne ho un altro. Devo caricare delle immagini all'interno di alcune Picture. Come faccio però a dimensionare l'immagine in modo che si adatti alla grandezza della picture che la contiene? Grazie mille[/quote:lvechoul] Bella domanda!!! Non saprei boh! Sicuramente con LabVIEW è più facile fare il contrario, cioè ridimensionare il picture control in funzione dell'immagine caricata... Con VB6 usavo l'oggetto "image" che ridimensionavo per rispettare l'aspect ratio dell'immagine caricata, ma poi l'oggetto decideva i colori dei singoli pixel, ma non so con quale algoritmo (forse una normale media pesata...). Se vuoi semplicemente mostrare una bitmap con tavolozza (non truecolor...) puoi provare a caricare l'immagine in un "intensity graph" e vedere che succede... Penso che sia cmq meglio, purtroppo, utilizzare qualche controllo activex alternativo al picture control... bye ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 16:10:27 ---------------------------------------- [quote="apo":1tlx1xkj]Eccomi di nuovo qua. Nemmeno finito di risolvere un problema che già ne ho un altro. Devo caricare delle immagini all'interno di alcune Picture. Come faccio però a dimensionare l'immagine in modo che si adatti alla grandezza della picture che la contiene? Grazie mille[/quote:1tlx1xkj] Dimenticavo. Se le immagini che Ti carichi fossero un set predefinito, potresti associarle come "sfondo" di un button booleano e allora... Potresti scalarle da programma in modo automatico. Guardando ai metodi associati ad un "button", purtroppo, l'immagine può solo essere letta programmaticamente ma non scritta... bye ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 16:17:03 ---------------------------------------- FERMI TUTTI!!!! Ho visto che in LV8.6 associato al Picture control c'è la proprietà "Zoom Factor" che Scala l'immagine!!!! MA... E' INCREDIBILE: questa proprietà esiste anche in LabVIEW 7.1 e l'avevo totalmente ignorata!!! Si stanno schiudendo nuove prospettive all'orizzonte.... bye ---------------------------------------- AUTORE: 927 DATA :25/11/2008 - 08:31:06 ---------------------------------------- L'avevo vista anch'io, ma quella scala secondo un coefficiente. Due limiti: è impossibile "stirare" l'immagine (avere fattori diversi tra x e y); e se vuoi zummare a una data grandezza in pixel, devi farti il codice per calcolare il coefficiente: zoomfactor = min( X voluta / X reale, Y voluta / Y reale ) ---------------------------------------- ================================================================================ Rete di petri ================================================================================ AUTORE: 2435 DATA :21/11/2008 - 08:04:15 ---------------------------------------- Ciao a tutti... Qualcuno sa dirmi se esiste già del codice in LV per l'implementazione della rete di petri?? Grazie ---------------------------------------- AUTORE: 2435 DATA :27/03/2009 - 08:00:46 ---------------------------------------- Sapete darmi un suggerimento su come implementare velocemente una rete di Petri utilizzando una struttura qsm???? \":(\" ---------------------------------------- AUTORE: 2435 DATA :14/04/2009 - 16:05:22 ---------------------------------------- Ciao... ho risolto creando dei vi che implementano la rete, quindi l'analisi dei posti transizioni e funzioni... e poi ho inserito tutto all'interno di una struttura qsm. devo dire che il sisema risulta molto veloce e stabile ---------------------------------------- AUTORE: 129 DATA :18/04/2009 - 07:38:24 ---------------------------------------- Ciao, siccome molti utenti (almeno io) possono non conoscere la rete di petri, e dato che l'ahi risolto, potresti postare: una breve spiegazione su catena di petri (in modo che ti si possa aiutare a implementare/migliorare in labview) il lavoro che hai già fatto (che rimanga un punto di partenza per chi in futuro avrà il tuo stesso problema) nicola ---------------------------------------- AUTORE: 2435 DATA :23/09/2009 - 16:40:56 ---------------------------------------- Ho aggiunto un esempio di Petri utilizzando una struttura QSM(vedere discussione "subpanel").. Avete suggerimenti per migliorarla?? Ciao ---------------------------------------- ================================================================================ Variabili Locali ================================================================================ AUTORE: 2512 DATA :21/11/2008 - 10:41:09 ---------------------------------------- Salve a tutti, vi espongo il mio problema, e vi posto l'immagine del frammento di codice: http://e.imagehost.org/0164/image.jpg Ho omesso gli ingressi per snellire i componenti. Come potrete osservare, i controlli in uscita sono (Current Position, Completed) "staccati" dall'interno e fatti variare attraverso la variabile locale a loro riferita; tutto ciò perchè, se collegati direttamente fuori dal blocco con la send e la recive, essi non si aggiornano in tempo reale. Per risolvere si potrebbe fare una variabile globale, ma ho voluto scegliere questa strada. Infatti il tutto funziona, ma il problema sorge quando voglio fare un SubVi. Infatti, insieme agli ingressi ed alle uscite si aggiungono anche delle "reference" in ingresso che non so come trattare. Se si omettono questi due ingressi dà un errore di riferimento. Non c'è un modo per renderle "trasparenti" all'esterno? Vi prego di rispondere, grazie in anticipo. ---------------------------------------- AUTORE: 927 DATA :21/11/2008 - 10:55:43 ---------------------------------------- Il subVi deve per forza essere informato su quali sono i controlli da modificare nel VI padre, perchè non sono locali per lui. Clicca col dx sui controlli e fà Create -> Reference, ottieni le costanti che devi passare al subVI ---------------------------------------- AUTORE: 2512 DATA :21/11/2008 - 12:50:15 ---------------------------------------- Il fatto è che le nostre variabili locali non devono essere costanti. Sono una boolean ed un integer che cambia di continuo. Il loro valore viene portato come output del SubVi. La soluzione che proponi è ugualmente valida? ---------------------------------------- AUTORE: 927 DATA :21/11/2008 - 13:05:08 ---------------------------------------- Certo, il valore dei controlli cambia, è la reference che è una costante (è una specie di "numero di matricola" del controllo, o di puntatore per fare un paragone con i linguaggi testuali) ---------------------------------------- AUTORE: 2512 DATA :21/11/2008 - 16:55:24 ---------------------------------------- Proverò la modifica il prima possibile. Quindi nel SubVi mi saranno selezionati come ingressi delle reference. A che valore devo settarle nel VI padre? Scusa ma non sono molto ferrato. ---------------------------------------- AUTORE: 927 DATA :24/11/2008 - 08:25:37 ---------------------------------------- Se le crei come ho scritto sopra avranno già il valore giusto (lo vedi perchè hanno anche il nome del controllo...) ---------------------------------------- AUTORE: 2512 DATA :24/11/2008 - 09:36:25 ---------------------------------------- Grazie mille, funziona! tvmmmmb ---------------------------------------- ================================================================================ Problema creazione array! ================================================================================ AUTORE: 2517 DATA :23/11/2008 - 23:02:27 ---------------------------------------- Ciao a tutti, volendo imparare ad usare labview mi è venuto in mente di provare a creare un array e riempirlo di numeri casuali, dopo aver creato ed inizializzato l'array con degli zeri. Il progettino che mi è venuto fuori è quello in allegato, che invece che creare l'array e poi riempirlo di numeri casuali, fa scorrere i numeri casuali lungo le varie celle. Cosa sbaglio? Grazie fin d'ora a chi mi vorrà aiutare! Francesco. ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 14:14:24 ---------------------------------------- [quote="Fran123":2a6p4xwu]Ciao a tutti, volendo imparare ad usare labview mi è venuto in mente di provare a creare un array e riempirlo di numeri casuali, dopo aver creato ed inizializzato l'array con degli zeri. Il progettino che mi è venuto fuori è quello in allegato, che invece che creare l'array e poi riempirlo di numeri casuali, fa scorrere i numeri casuali lungo le varie celle. Cosa sbaglio? Grazie fin d'ora a chi mi vorrà aiutare! Francesco.[/quote:2a6p4xwu] Qua c'è la soluzione [attachment=0:2a6p4xwu]manipolazione_array2.vi[/attachment:2a6p4xwu] E' talmente lampante il problema che mi sorprende che non ci sia arrivato, caro Fran123 e cmq chiamarlo "progettino" mi sembra francamente eccessivo. Nel tuo esempio generi un array con 5 zeri e poi ad ogni "giro" del loop riutilizzi sempre lo stesso array (quello con 5 zeri dentro) sostituendo di volta in volta ogni cella dell'array ma lasciando invariate le altre. La soluzione è utilizzare uno shift register: dopo ogni sostituzione di singolo elemento, l'array in uscita della "replace array element" deve essere riproposto all'ingresso... altrimenti riparti sempre dal medesimo array... cmq per generare un array di numeri casuali si può benissimo usare un ciclo For e sfruttare l'"autoindexing" bye ---------------------------------------- ================================================================================ uso dei semafori ================================================================================ AUTORE: 2501 DATA :24/11/2008 - 10:17:18 ---------------------------------------- ciao a tutti, scrivo perchè non so bene come si utilizzano i semafori in labview; ho già guardato l'esempio proposto dal LV ma non sono sicura di aver fatto bene. io ho un loop principale, all'interno del quale sono presenti degli altri loop il primo dei quali produce dei dati e i restanti ne usufruiscono; il mio obiettivo è che tutti i loop accedano a turno al primo (il produttore per intenderci), ma non so fattivamente farlo in termini di blocchi. qualcuno può essere così gentile da spiegarmi come fare? ringrazio in anticipo. \":wink:\" ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 13:46:08 ---------------------------------------- [quote="framel":1xkr6cqw]ciao a tutti,... il mio obiettivo è che tutti i loop accedano[b:1xkr6cqw] a turno[/b:1xkr6cqw] al primo (il produttore per intenderci), ma non so fattivamente farlo in termini di blocchi. qualcuno può essere così gentile da spiegarmi come fare? ringrazio in anticipo. \":wink:\"[/quote:1xkr6cqw] Beh! i semafori potrebbero essere superflui oppure insufficienti. Dovresti specificare meglio i Tuoi requisiti: Abbozzo delle ipotesi: 1)Ogni volta che il produttore produce un dato questo deve essere processato secondo un ordine preciso da tutti i processi(loop) consumatori. Se l'[u:1xkr6cqw]ordine è rigido e preciso[/u:1xkr6cqw] e [u:1xkr6cqw]tutti i dati[/u:1xkr6cqw] devono essere processati allora si devono utilizzare "code" in cascata. Cioè il processo produttore inoltra i dati in una coda che vengono processati dal primo loop. Quando lo ritiene opportuno, il primo loop inoltra i dati in una seconda coda verso il secondo loop e così via. 2) il produttore produce dati con frequenza diversa dai consumatori che leggono i dati quando pare a loro. i loop paralleli non sono necessariamente fra loro sincronizzati. Creare un VI Functional Global che gestisce un buffer circolare per i loop che possono permettersi di perdere dei dati. Per gli altri si possono utilizzare più code indipendenti fra loro o dipendenti se si devono processare i dati in cascata. come vedi non ho citato semafori. I VI Functional Global sono di sè "semaforati": Ricordo che l'[u:1xkr6cqw][b:1xkr6cqw]esecuzione contemporanea dello stesso subVI in più punti del codice non è possibile[/b:1xkr6cqw][/u:1xkr6cqw] a meno che non si tratti di un VI rientrante... bye ---------------------------------------- AUTORE: 2501 DATA :24/11/2008 - 13:51:35 ---------------------------------------- mi spiego subito meglio: io ho un loop produttore che acquisisce dati a cadenza costante e li inserisce in un buffer circolare (array di cluster), da questo buffer circolare vado a prelevare N dati che inserisco in un array; a questo punto voglio che i consumatori, cioè gli altri loop, accedano a turno all'array che ho creato nel loop principale, e vorrei fare ciò con dei semafori.. o meglio, così mi è stato consigliato di fare. spero di essere stata chiara. ti ringrazio per la cortesia e la disponibilità che hai nel rispondermi ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 14:23:46 ---------------------------------------- [quote="framel":22q0s4kq]mi spiego subito meglio: io ho un loop produttore che acquisisce dati a cadenza costante e li inserisce in un buffer circolare (array di cluster), da questo buffer circolare vado a prelevare N dati che inserisco in un array; a questo punto voglio che i consumatori, cioè gli altri loop, accedano a turno all'array che ho creato nel loop principale, e vorrei fare ciò con dei semafori.. o meglio, così mi è stato consigliato di fare. spero di essere stata chiara. ti ringrazio per la cortesia e la disponibilità che hai nel rispondermi[/quote:22q0s4kq] Ma scusa che significa [b:22q0s4kq]a turno[/b:22q0s4kq] ? 1) il produttore produce prima i dati per il primo loop, al secondo giro produce dati per il secondo loop ecc. oppure 2) tutti i dati prodotti dal produttore devono essere processati da tutti i loop seguendo un ordine (a turno) oppure casualmente li deve processare solo uno dei loop... Detto ciò, fa parte delle specifiche usare i semafori oppure no? tra l'altro se la "risorsa" è semaforata, il processo produttore può rimanere in attesa perchè il consumatore sta utilizzando la risorsa... è corretto? bye ---------------------------------------- ================================================================================ Lanciare exe. da LBV ================================================================================ AUTORE: 1395 DATA :24/11/2008 - 15:17:42 ---------------------------------------- Ciao a tutti, ho un problema nel lanciare degli eseguibili (generati da LBV) in LBV. Mi spiego: ho tre moduli, realizzati in LBV 8.5 e compilati come file .exe che lavorano perfettamente, in modo indipendente e comunicano tra loro via datasocket server. Questi moduli sono tre loop di analisi di immagini provenienti dal server datasocket: ogni modulo svolge una specifica funzione e continua a loopare in attesa di nuovi dati e li processa. Funziona tutto se lancio questi moduli da Vista, come eseguibile normale. Vorrei invece avere un nuovo modulo (sempre generato da LBV) che in modo programmatico lanciasse gli exe quando voglio io, dall'interno del programma. Ho realizzato un modulo che sfrutta il SystemExec.Vi della Executable Palette, ma quando lancio i miei tre exe tutto si pianta...apparentemente il VI parte correttamente, ma poi è bloccatto ed è bloccato anche LBV e Vista !!! Il problema sta nel fatto che il SystemExec non gestisce .exe che continuano a lavorare senza un termine preciso (cioè restano in un loop continuo) ??? Qualche idea?? Grazie per l'aiuto ---------------------------------------- AUTORE: 43 DATA :24/11/2008 - 15:38:56 ---------------------------------------- [quote="MarcoRV":1ydqkom5]Ciao a tutti,... Ho realizzato un modulo che sfrutta il SystemExec.Vi della Executable Palette, ma quando lancio i miei tre exe tutto si pianta...apparentemente il VI parte correttamente, ma poi è bloccatto ed è bloccato anche LBV e Vista !!! Il problema sta nel fatto che il SystemExec non gestisce .exe [u:1ydqkom5]che continuano a lavorare senza un termine preciso[/u:1ydqkom5] (cioè restano in un loop continuo) ??? Qualche idea?? Grazie per l'aiuto[/quote:1ydqkom5] Scusa la banalità... ma nella "System Exec" esiste il parametro (posto nella parte superiore dell' icona) "wait until completion (T)" che di default è appunto True. Hai provato a metterlo a False? bye ---------------------------------------- AUTORE: 1395 DATA :25/11/2008 - 08:09:51 ---------------------------------------- Ciao, si ho provato in tutte e due i modi.. Anch'io avevo pensato che il problema fosse li..in attesa del completamento..ma così non è e non so che pesci prendere. Se lancio i tre file dal SO, normalmente in Esecuzione automatica all'avvio (avvio prima DS Server, il modulo core della mia applicazione e poi i tre file) nessun problema; se lancio i tre file dal modulo core, tutto si pianta..il blocco avviene sia che lancio il VI da LBV sia che creo un eseguibile del VI. Grazie comunque.. ---------------------------------------- AUTORE: 43 DATA :25/11/2008 - 08:50:01 ---------------------------------------- [quote="MarcoRV":1tlfp4bu]Ciao, si ho provato in tutte e due i modi.. Anch'io avevo pensato che il problema fosse li..in attesa del completamento..ma così non è e non so che pesci prendere. Se lancio i tre file dal SO, normalmente in Esecuzione automatica all'avvio (avvio prima DS Server, il modulo core della mia applicazione e poi i tre file) nessun problema; se lancio i tre file dal modulo core, tutto si pianta..il blocco avviene sia che lancio il VI da LBV sia che creo un eseguibile del VI. Grazie comunque..[/quote:1tlfp4bu] Altra banalità: hai provato a lanciarli da dentro un file .bat? come consiglia il manuale LaBVIEW? per es. nel file .bat potresti mettere: start <file1>.exe start <file2>.exe start <file3>.exe oppure per evitare che i programmi partano con directory di default non corrette.. potresti far partire direttamente i "link" nel desktop (se ce li hai!) cd "c:\document and settings\<user>\Desktop" start <link prog. 1>.lnk start <link prog. 2>.lnk start <link prog. 3>.lnk bye ---------------------------------------- AUTORE: 1395 DATA :25/11/2008 - 09:00:10 ---------------------------------------- Ottima idea!! Grazie mille.. devo essere onesto che non avevo ricordato il manuale di LBV.. Avevo in effetti pensato di creare un piccolo programma in VB che gestisse il tutto, ma il caro vecchio .bat è molto più semplice.. Talvolta ci si dimentica delle cose più semplici. Oggi ci provo e ti faccio sapere, ma visto il comportamento lanciando dal SO penso che dovrebbe funzionare Grazie ancora. ---------------------------------------- ================================================================================ Nascondere parte del programma... ================================================================================ AUTORE: 2512 DATA :24/11/2008 - 18:09:31 ---------------------------------------- Salve a tutti. Ho un software in labview in cui ho permesso di impostare alcuni valori. Il fatto è che vorrei nascondere questi controlli, e poterli visualizzare su richiesta, tipo "Opzioni Avanzate". Per fare ciò vorrei che si aprisse una tendina in basso, o addirittura il programma (magari quando sarà exe) posso aumentare di dimensione così da mostrare le altre opzioni. Credo sia una cosa semplice, spero di essermi spiegato bene. Grazie in anticipo. ---------------------------------------- AUTORE: 927 DATA :25/11/2008 - 08:45:09 ---------------------------------------- Non ho capito cosa intendi con tendina. Cmq per far apparire/sparire un controllo si usa il property node (tasto dx -> create -> property node -> visible). Per cambiare le dimensioni del pannello si usa sempre un property node, con classe = VI e proprietà = Front panel window -> Panel bounds. ---------------------------------------- AUTORE: 2512 DATA :26/11/2008 - 00:14:39 ---------------------------------------- In pratica. Hai un exe con una serie di controlli...pensa ad un normale programma. Poi c'è il tasto "Avanzate >>" che ti permette di aprire una tendina con l eopzioni avanzate o addirittura "allunga" il programma e fa comparire cose nuove. ---------------------------------------- AUTORE: 482 DATA :26/11/2008 - 07:15:10 ---------------------------------------- Credo che per la tua domanda ci siano MILLE soluzioni. Puoi usare un tab control nascosto, puoi usare un subVI, puoi usare dei singoli controlli nascosti oppure ancora ridimensionare il front panel del programma. Tutto si puo' fare, devi solo scegliere cosa vuoi fare \":)\" ---------------------------------------- AUTORE: 2512 DATA :26/11/2008 - 23:41:14 ---------------------------------------- Direi RIDIMENSIONARE il front panel. ---------------------------------------- AUTORE: 482 DATA :27/11/2008 - 07:48:39 ---------------------------------------- Allora devi lavorare con i property node. Prova partendo dall'esempio FrontPanelStates. Quello che devi fare è lavorare sulle proprietà del front panel cambiandone le dimensioni. Tieni presente che se poi crei l'eseguibile, il percorso per arrivare al front panel è un pelo diverso...usa la lampadina per capire cosa fare \";)\" ---------------------------------------- AUTORE: 2512 DATA :28/11/2008 - 14:37:57 ---------------------------------------- Mi sembra quasi una domanda di esame \":lol:\" Cmq appena posso proverò, e ti farò sapere. Grazie Mille! ---------------------------------------- AUTORE: 129 DATA :29/11/2008 - 07:30:28 ---------------------------------------- Io ti consiglierei il tab o addirittura un enum,ring (la tendina) nascosto; che si visualizza solo quando premi avanzate. Ma se vuoi visualizzare controlli per il setting avanzato del tuo VI, sarebbe meglio sfruttare un tab in cui posizioni i controllli. ---------------------------------------- ================================================================================ GESTIONE DELLA RETE FTP ================================================================================ AUTORE: 2519 DATA :25/11/2008 - 10:07:37 ---------------------------------------- CIAO A TUTTI l programma che ho realizzato acquisisce e controlla dati. Dispongo di un router in quanto gli stessi dati vengono salvati su dei file,zippati e spediti tramite FTP. Il mio problema è il seguente: se il router perde la propia connessione con la rete esterna, la simulazione si blocca in quanto non va a buon fine l'apertura della connessione al sito della ftp. Esiste la possibilità di verificare a priori(prima di richiedere la connessione al server FTP) se la rete è disponibile? grazie a chiunque mi possa dare una mano Luca ---------------------------------------- AUTORE: 927 DATA :27/11/2008 - 08:20:43 ---------------------------------------- Oltre alle funzioni FTP semplici (tipo "FTP put file") ci sono quelle avanzate, che scompongono la comunicazione nei vari passi (connessione, login, trasferimenti, disconnessione). Se la "FTP open session" (connessione) ti dà in uscita un errore, vuol dire che il server non è disponibile ---------------------------------------- ================================================================================ implementare modello a 5 equazioni differenziali ================================================================================ AUTORE: 2520 DATA :26/11/2008 - 08:08:01 ---------------------------------------- Buongiorno a tutti, mi sono appena iscritto a questo corso e premetto che le mie conoscenze di labview sono pressochè nulle. Ho il seguente problema: ho implementato con matlab/simulink un modello dinamico composto da 5 equazioni differenziali lineari del primo ordine; tale modello gira alla perfezione su matlab/simulink. Ora ho la necessità di implementare il medesimo modello con labview ma dopo numerose ore passate a fare prove e controprove non ho ricavato niente di buono. Spero che qualcuno mi dia qualche suggerimento. grazie a tutti. ---------------------------------------- AUTORE: 645 DATA :26/11/2008 - 09:10:41 ---------------------------------------- Benvenuto in questo che non è un corso ma un forum dove scambiare opinioni su LabView e VI vari. Per quanto riguarda il tuo problema ti chiedo come stai cercando di implementare le equazioni in LabView. Mi spiego: ci sono diversi modi per creare simulazioni di equazioni con LabView... alcuni più immediati come il SIT (tool aggiuntivo che permette di collegare un modello Simulink con un VI LabView) e altri meno (se hai il Simulation Module, altro tool aggiuntivo, puoi inserire nel VI, programma realizzato in LabView, blocchi simili a quelli che trovi in Simulink con integratori, derivate...). Tu hai qualche soluzione di questo tipo o stai lavorando con LabView "base"? ---------------------------------------- AUTORE: 2520 DATA :26/11/2008 - 09:15:47 ---------------------------------------- non sono in posseso dei tool da te citati, pensavo di risolvere il mio problema utilizzando il blocco "ODE Linear Systemic Simbolic"; può essere la via corretta? ---------------------------------------- AUTORE: 727 DATA :03/12/2008 - 10:09:20 ---------------------------------------- certo.... dipende poi che cosa ci devi fare e quale algoritmo si presta meglio alla tua applicazione (velocità di convergenza, accuratezza,..ecc). Ad esempio, esiste anche un'implementazione del metodo di Runge-Kutta al 4° ordine, se non ricordo male, che io ho usato spesso, ma ovviamente questo se hai un problema di Cauchy (ai valori iniziali). Questo è metodo molto accurato e sicuramente lo è più di quello di Eulero. Ciao ---------------------------------------- ================================================================================ Aiuto per un progetto ================================================================================ AUTORE: 2521 DATA :26/11/2008 - 14:12:33 ---------------------------------------- Salve a tutti, siamo un gruppo di studenti alle prese con un progetto Labview. Ora tramite il Labview dobbiamo fare N realizzazioni di un segnale analogico con determinate caratteristiche,visualizzarne lo spettro e calcolare media e varianza di tale traccia. Confronteremo poi il risultato ottenuto al labview con quelli che ci restituisce uno strumento di misura (PSA) che utilizziamo in laboratorio. Essendo alle prime armi cercavamo qualche consiglio. grazie mille ---------------------------------------- AUTORE: 1078 DATA :28/11/2008 - 10:50:31 ---------------------------------------- Ciao Costantino, Premesso che il Forum serve a chiarire alcuni aspetti della programmazione e che ci si cerca di aiutare con piccoli esempi chiarificatori e non a sviluppare interi progetti, cosa intendi per "Fare N realizzazioni"? Dovete simulare l'acquisizione di un segnale con caratteristiche precise? Se è così ti consiglio di utilizzare un favoloso express-VI che serve proprio a quello, si chiama <Simulate Signal>. Per la seconda parte del vostro problema avette tutte le funzioni che vi servono, sia nelle funzioni dedicate alla visualizzazione dei grafici che negli express. Se doveste aver bisongo di altro, postate i vostri esempi (che siano semplici e non tutto il programma) e noi sicuramente vi aiuteremo a trovare la soluzione migliore. Buon lavoro a tutti. ---------------------------------------- AUTORE: 2521 DATA :07/12/2008 - 09:57:06 ---------------------------------------- salve, in allegato nel file pdf ho inserito una parte del codice che mi serve a convertire una stringa nella quale ci sono vari valori(separati dalla virgola) in un array numerico. Il problema è che nell'array non vengono trasferite tutte le cifre ma solo alcune. Ho letto pure la guida alla voce:"Format Specifier Syntax " ma non riesco a venirci a capo. Confido in un vostro aiuto.Grazie \":D\" ---------------------------------------- AUTORE: 727 DATA :09/12/2008 - 14:27:03 ---------------------------------------- Penso che il problema sia semplicemente nel numero di cifre significative dell'indicatore. Se fai click col tasto destro sopra, selezioni Format & Precision, e qua setti ad esempio 7 significant digits, vedrai che visualizzerai il tuo numero con tutte le cifre decimali. Ciao ---------------------------------------- AUTORE: 2521 DATA :10/12/2008 - 08:22:14 ---------------------------------------- Ho cliccato col tasto dx sull'indicatore e sono andato alla voce "Rapresentation" ma ho visto che già stava impostato "Double precision", non capisco a questo punto dove sia il problema... ---------------------------------------- AUTORE: 727 DATA :11/12/2008 - 09:06:20 ---------------------------------------- Infatti, nel menu a tendina che ti compare quando fai click con il tasto destro c'è, oltre "rapresentation", anche "format & precision". E' li che devi andare. Segui poi quanto già detto prima. Ciao ---------------------------------------- AUTORE: 2521 DATA :14/12/2008 - 14:34:00 ---------------------------------------- ti ringrazio per l'aiuto. ora però è sorto un nuovo problema: attraverso una Read acqusisco N tracce e di queste ne devo fare la traccia media continua e visualizzarla. In allegato vi carico dei Vi, dove vengono eseguite le istruzioni dette sopra dove naturalmente al posto delle Read ho sostituito i valori che mi restituisce in modo tale che potete provarlo. Il problema è nel grafico finale che non mi rappresenta bene la traccia,ma è come se a un certo punto andasse in "saturazione". Grazie mille ---------------------------------------- AUTORE: 727 DATA :17/12/2008 - 09:08:57 ---------------------------------------- Ciao, il subVI covertitore stringa-array, per come l'hai costruito, fa un numero di cicli che decidi tu. Ora cosa succede se tu setti un numero di cicli maggiore del numero di dati contenuti nella stringa? Semplicemente, sempre per come hai costruito il vi, ti darà il valore 0 ad ogni ciclo in cui non trova nessun numero. Quindi se tu hai in ingresso una stringa con 60 numeri, devi settare n=60. Se tu setti n=1000, lui ti darà i primi 60 numeri corretti e poi tutti 0. Puoi ovviare in diversi modi. O, se conossci il numero esatto di dati, lasci il ciclo for con n control che setti tu manualmente, oppure se conosci il numero di caratteri per ogni numero, n sarà semplicemente dato dal rapporto tra la lunghezza della stringa e quella di ogni numero, virgola compresa, oppure ancora invece di un ciclo for puoi usare un while, che quando la stringa restuita dallo string subset ha lunghezza zero, termina il ciclo. Comunque per cominciare, prova a settare il numero corretto di campioni che ci sono nella stringa e vedi che funziona. Ciao ---------------------------------------- ================================================================================ Inverter KEB (driver) ================================================================================ AUTORE: 1168 DATA :26/11/2008 - 15:13:09 ---------------------------------------- Salve a tutti! Qualcuno di voi ha già sviluppato dei blocchetti per parlare con un inverte KEB tramite rs-232? Grazie mille P! ---------------------------------------- AUTORE: 645 DATA :27/11/2008 - 11:09:21 ---------------------------------------- Hai il protocollo seriale dell'inverter? Una serie di stringhe per il controllo remoto. Se le hai (magari sul manuale le trovi) dovresti poter implementare la comunicazione sfruttandi i blocchi seriale (Serial Write, Serial Read, Serial Open). ---------------------------------------- ================================================================================ get xy waveform ultimo valore acquisito ================================================================================ AUTORE: 2235 DATA :27/11/2008 - 23:21:23 ---------------------------------------- Buonasera vorrei prelevare l'ultimo valore acquisito in un waveform con la funzione get xy waveform. Quale indice mettere alla funzione waveform per essere sicuro di prelevare l'ultimo valore acquisito? Io non ho messo nulla. Ma va bene? Questo valore mi serve per spedirlo in un notifier di attesa in un altro ciclo che dato un trigger deve utilizzare il dato double ascqisito in quel preciso istante. Grazie molte ---------------------------------------- AUTORE: 1078 DATA :28/11/2008 - 09:24:48 ---------------------------------------- Ciao Cromax, è sufficente usare la funzione array-size, prima di farlo devi però utilizzare la funzione <Get WaveForm Components>... Io ho fatto un piccolo esempio. Tieni presente che mi sono dovuto costruire un sistema per simulare l'acquisizione della tua scheda DAQ...(il cilo for fa quello!!!) Spero di esserti stato di aiuto. Buona giornata Ricky. ---------------------------------------- AUTORE: 2235 DATA :29/11/2008 - 21:58:13 ---------------------------------------- Grazie molte Ora tutto sembra funzionare al meglio grazie ancora Cromax ---------------------------------------- ================================================================================ NI-VISA driver per Vista 32bit ================================================================================ AUTORE: 2523 DATA :29/11/2008 - 16:11:51 ---------------------------------------- Ciao a tutti, vi scrivo perchè, come potete immaginare, ho un problema e spero possiate aiutarmi. Tempo fa ho progettato un sistema embedded in grado di comunicare, via USB, con LabView 8.5. LabView girava su Windows XP. Oro che è uscito Windows Vista, ho dovuto provare se lo stesso sistema embedded fosse in grado di comunicare, sempre via USB, con LabView (installato su Vista 32 bit). Ho creato, con driver Wizard 4.3, il driver NI-VISA per Vista e l'ho quindi installato (in sostanza ho seguto la stessa procedura svolta per XP). Ho collegato il sistema embedded al PC e Vista non ha riconosciuto il driver. Sapreste dirmi il perchè? Grazie a tutti. Saluti, Chobin. ---------------------------------------- ================================================================================ grafici realtime e storico ================================================================================ AUTORE: 838 DATA :01/12/2008 - 15:34:22 ---------------------------------------- Sto realizzando un progetto dove il cliente ha richiesto di monitorizzare in realtime alcuni valori come pressione e temperatura, con la possibilità poi di vedere lo storico e fare un pò di statistica sui valori. Essendo una cosa affrontata poche volte, volevo chiederle se esistono degli esempi a riguardo e cosa consigliate per gestire al meglio questi storici (come archiviazione e visualizzazione). Grazie \":D\" ---------------------------------------- AUTORE: 278 DATA :01/12/2008 - 17:42:58 ---------------------------------------- Ciao, Secondo me ti conviene salvare i tuoi dati in un file .csv e poi importarlo in excel per fare tutte le analisi del caso Sul sito NI ho trovato [url=http://zone.ni.com/devzone/cda/epd/p/id/5345:2g28hv5g]questo esempio[/url:2g28hv5g] che fa proprio questa operazione. Da rilevare una cosa... cito testualmente: [quote:2g28hv5g]It is important to note that viewing data in Microsoft Excel (pre-Office 2007) and Notepad is limited to 65536 rows. This is not a limitation of LabVIEW writing to a spreadsheet file but a limitation of Microsoft Excel and Notepad itself.[/quote:2g28hv5g] In pratica, il file .csv creato da LV potra` avere + di 65536 righe, ma excel non potra` leggerlo per intero. \":o\" ---------------------------------------- AUTORE: 43 DATA :01/12/2008 - 18:30:25 ---------------------------------------- [quote="minzuk":20nh99ln]Sto realizzando un progetto dove il cliente ha richiesto di monitorizzare in realtime alcuni valori come pressione e temperatura, con la possibilità poi di vedere lo storico e fare un pò di statistica sui valori. Essendo una cosa affrontata poche volte, volevo chiederle se esistono degli esempi a riguardo e cosa consigliate per gestire al meglio questi storici (come archiviazione e visualizzazione). Grazie \":D\"[/quote:20nh99ln] Carissimo minzuk, non ho esempi da mostrarti ma posso esprimere la mia opinione in merito, avendo sviluppato questo genere di applicazioni un per un certo periodo di tempo. [u:20nh99ln]1) Archiviazione[/u:20nh99ln] Dipende dalla mole di dati che viene prodotta rispetto ad una unità di tempo fissata da te o dal cliente. Per es.: se devi campionare molto lentamente poche grandezze, va benissimo un file CSV altrimenti utilizza il "formato interno" più rapido da caricare e da scrivere programmaticamente. Personalmente preferisco il formato interno e poi posso prevedere a menù funzioni di export (magari evito l'Import...) per dare la possibilità a chi maneggia i fogli elettronici di fare i propri conti. In realtà l'acquisizione "in continua" anche lenta (nel caso di temperature per es.)ha comunque un momento iniziale ed uno finale ( in caso di interrruzione da parte dell'operatore o di black out del sistema) e quindi, purtroppo, la rogna più brutta da gestire è la presenza di "buchi" che ad essere sincero ho gestito nei modi piu' vari. Di solito si memorizza l'acquisizione continua in più file: ogni file ha una durata temporale max prefissata e possibilmente le acq. hanno distanza temporale costante (freq. di acq. fissata) + tutte le info del caso: timestamp iniziale, n. di canali e info a corredo scalatura ecc. [u:20nh99ln]2) Visualizzazione[/u:20nh99ln] per la visualizzazione non ho dubbi: Waveform Graph. L'unica cosa da tener conto è che non si possono mettere "milioni" di punti a video: è giocoforza che se ci sono troppi punti x traccia (più della risoluzione in pixel del grafico) si deve procedere con la "decimazione". Anche questo argomento può essere affrontato in vari modi dipende cosa si vuol fare. Infine a corredo del grafico si possono gestire 1 o 2 cursori e visualizzare eventuali "delta" in indicatori posti nei pressi del grafico (ricordarsi sempre le unità di misura!!). Certo di averti detto cose che già sapevi Ti saluto e Ti auguro Buon Natale. bye ---------------------------------------- AUTORE: 838 DATA :02/12/2008 - 07:03:56 ---------------------------------------- grazie mille per le vostre risposte alla fine visto che ho grandezze campionate nell'ordine dei 5/10 sec opterò per file interno, poi vedrò se spezzettarlo e in che modo. avevo pensato a un collegamento odbc su un file di access, ma ho paura delle dimensioni e lentezza nel gestire questo file... per la visualizzazione utilizzerò il waveform, poi ci inserirò anche un paio di soglie insieme con la grandezza visualizzata che dire, ora mi ci metto per realizzare il tutto e vediamo che esce grazie ---------------------------------------- AUTORE: 43 DATA :02/12/2008 - 14:06:43 ---------------------------------------- [quote="minzuk":2s2jltz6]...avevo pensato a un collegamento odbc su un file di access, ma ho paura delle dimensioni e lentezza nel gestire questo file...[/quote:2s2jltz6] Si, usare un DBMS può essere un'idea ma te lo sconsiglio: Un po' di anni fa mi è capitato di lavorare con un tizio che voleva buttare nel cesso WinCC (lo SCADA della Siemens) per utilizzare direttamente LabVIEW (senza usare DSC). Questo perchè era capitato che a seguito di un black out il DB (unico ed enorme) usato da WinCC si era sp***anato completamente. Se poi i dati sono acquisiti lentamente Ti consiglio cmq di gestirti file divisi in blocchi per unità di tempo. Tra l'altro, in caso non scegliessi Access, eviteresti di gestirti licenze aggiuntive, mentre se scegliessi di non utilizzare ODBC, eviteresti installazioni di altri sW oltre alla Tua Applicazione. bye Buon Natale ---------------------------------------- ================================================================================ Presentazione contenuto array in menù a tendina ================================================================================ AUTORE: 706 DATA :02/12/2008 - 09:00:06 ---------------------------------------- Ciao a tutti, è da tanto che non mi faccio sentire. Subito vi propongo un problema: devo visualizzare nella mia interfaccia un indicatore ( a tendina o tabella) che mi presenti i valori contenuti in un array (che può varare da 1 a n valori contenuti). Meglio a tendina perchè ho probelmi di spazio nell'interfaccia e vorrei che una volta letto il contenuto dell'array, l'utilizzatore fosse in grado di visualizzare i dati cliccando sopra l'indicatore. E' possibile? come posso fare? Grazie per l'aiuto...Ciao Francesco ---------------------------------------- AUTORE: 129 DATA :02/12/2008 - 12:50:19 ---------------------------------------- Devi utilizzare la property strings del controllo Ring. Con la funzione Index Array, puoi estrarre il valore corrispondente alla selezione effettuata dall'utente. ---------------------------------------- ================================================================================ Cambio di priorità nell'esecuzione di vi Labview 7.0 ================================================================================ AUTORE: 706 DATA :04/12/2008 - 11:13:07 ---------------------------------------- Ciao a tutti, ho un problema riguardante l'esecuzione di un mio VI. Essendo un VI che fa molte operazioni pesanti questo mi occupa molta CPU e risorse. Questo comporta problemi al livello di gestione del PC. Spiego meglio: vorrei poter impostare la priorità dell'esecuzione di LabView in realt - Time, imn modo da adedicare le intere risorse all'esecuzione del programma senza, nel caso di un apertura di un file word o altre operzioni sul PC, il mio programma perda dati e prestazioni, ma non so come fare. La National ha rilasciato un vi per questo ma per Labview 8.0 e io ho la versione 7.0. Mi potete aiutare? Grazie, Francesco ---------------------------------------- AUTORE: 1078 DATA :04/12/2008 - 12:54:22 ---------------------------------------- Cioa Volterra, apsetta cerchiamo di chiarire il tuo problema: il VI gira su una macchina real-time? In questo caso, come interagisce con il PC? Se il tuo problema è la gestione della CPU sul tuo PC, innanzi tutto ti suggerisco di inserire dei <Timing> come la funzione WaitUntil e Timer che gestiscono l'esecuzione del loop interno al VI. Vedi tu quale delle due è a te più congeniale. La seconda operazione che potresti migliorare è il corretto utilizzo del multithread, suppongo tu utilizzi Windows come sistema operativo, guarda questo articole per approfondire il discorso [url:19ch9v31]http://zone.ni.com/devzone/cda/tut/p/id/3663[/url:19ch9v31]. Se non basta puoi settare nelle proprietà del VI in che "livello" di priorità deve lavorare il tuo VI. Se il VI ha un'esuzione complessa, puoi separarlo in subvi con esecuzione in "background" e il resto con esecuzione "normale". Insomma bisogna vedere come vuoi far girare il tuo software. La corretta gestione delle risorse di un VI non è un argomento semplice. ---------------------------------------- ================================================================================ cambio vi da vers. 8.0 a 7.0 ================================================================================ AUTORE: 706 DATA :04/12/2008 - 12:49:01 ---------------------------------------- Ciao a tutti, qualcuno mi può convertire, se possibile, il vi che allego dalla versione 8.0 alla 7.0? Grazie, Francesco ---------------------------------------- ================================================================================ icona esecuzione programma ================================================================================ AUTORE: 727 DATA :05/12/2008 - 09:50:20 ---------------------------------------- Ciao a tutti.... qualcuno sa darmi qualche consiglio?Vorrei creare un eseguibile da far girare in win e vorrei che comparisse l'iconcina sulla barra, vicino all'orologio, quando il programma è in esecuzione, con la possibilità di accedere ad alcune info sullo stato del programma. Qualcuno sa da dove cominciare? \":?:\" \":?:\" \":?:\" Grazie ---------------------------------------- AUTORE: 301 DATA :05/12/2008 - 10:27:04 ---------------------------------------- Ciao, potresti guardare su LAVA, io tempo fa ci ho trovato qualche soluzione gia sviluppata. Buona fortuna! ---------------------------------------- AUTORE: 301 DATA :05/12/2008 - 10:33:14 ---------------------------------------- Qui puoi trovare cio di cui ti ho postato...... [url:jwzg5z0q]http://forums.ni.com/ni/board/message?board.id=170&message.id=95141[/url:jwzg5z0q] ---------------------------------------- AUTORE: 727 DATA :05/12/2008 - 11:04:56 ---------------------------------------- Grazie \":D\" Ti farò sapere com'è andata. Ciao ---------------------------------------- ================================================================================ Lettura valori di un subVI in tempo reale nel VI principale ================================================================================ AUTORE: 706 DATA :05/12/2008 - 14:26:29 ---------------------------------------- Ciao a tutti, ho un problema e ho cercato negli altric topic ma non ho trovato la soluzione. Spiego: il mio scopo è quello di poter visualizzare i dati in tempo reale che vengono da un subVI nel front panel del VI principale. La mia applicazioni più o meno legge i dati da uno strumento (lavoro che faccio fare ad un sub VI perchè altrimenti occupa spazio nel VI princiapale) e a fine di ogni ciclo me li restituisce a quello principale che rimane però indietro nella visualizzazione dei dati che sto acquisiendo (quando è partito il secondo ciclo di acquisizione io vedo i valori del primo ciclo). Come posso risolvere il problema? Con le variabili globali? Grazie, Francesco ---------------------------------------- AUTORE: 43 DATA :05/12/2008 - 15:31:03 ---------------------------------------- [quote="volterra79":2pwhdlkc]Ciao a tutti, ho un problema e ho cercato negli altric topic ma non ho trovato la soluzione. Spiego: il mio scopo è quello di poter visualizzare i dati in tempo reale che vengono da un subVI nel front panel del VI principale. La mia applicazioni più o meno legge i dati da uno strumento (lavoro che faccio fare ad un sub VI perchè altrimenti occupa spazio nel VI princiapale) e a fine di ogni ciclo me li restituisce a quello principale che rimane però indietro nella visualizzazione dei dati che sto acquisiendo (quando è partito il secondo ciclo di acquisizione io vedo i valori del primo ciclo). Come posso risolvere il problema? Con le variabili globali? Grazie, Francesco[/quote:2pwhdlkc] Penso che il topic riguardo questo argomento sia andato perso. La soluzione sta nell'usare non tanto una Globale quanto scrivere un VI Functional Global che modifica direttamente i dati dentro un controllo che appare a video nel pannello principale. Il VI Functional Global manterrà staticamente (shift register) il "reference" del controllo del pannello principale, grazie ad una semplice inizializzazione. Tutte le operazioni di scrittura e lettura del controllo, invece, passeranno da questo VI che Vi accederà tramite il "reference" stesso. Il VI Functional Global NON dovrà perciò essere "rientrante", e anzi garantirà l'accesso al controllo in modo esclusivo (a differenza di una Globale). bye Buon Natale ---------------------------------------- AUTORE: 706 DATA :05/12/2008 - 15:52:03 ---------------------------------------- Ciao, grazie per la risposta, ma non capisco com costruire un "VI Functional Global". Da dove parto? Scusa la mia ingnoranza in materia. Ciao e Buone feste. Francesco ---------------------------------------- AUTORE: 706 DATA :05/12/2008 - 17:01:15 ---------------------------------------- Ciao, per meglio far capire allego un banale VI che genera numeri random all'interno di un ciclo while gestito da un control. Questo VI simula lo stato del mio subVI del quale voglio vedere i valori (in questo caso numeri creati random) nella finestra del VI pricipale e controllare (questo in aggiunta) la chiusura del ciclo del subVI. Ho labView 7.0. Grazie.. Francesco ---------------------------------------- AUTORE: 278 DATA :05/12/2008 - 17:24:44 ---------------------------------------- [quote:1my5n6gt]Ciao, grazie per la risposta, ma non capisco com costruire un "VI Functional Global". Da dove parto?[/quote:1my5n6gt] Mi faccio un po` di pubblicita`... \":D\" Scaricati [url=http://www.ilvg.it/forum/download/file.php?id=803:1my5n6gt]questo[/url:1my5n6gt] articolo per sapere qualcosa in + sulle functional global. Tornando al tuo problema, quello che ti occorre e` un VI functional global con 2 case, uno di read e uno di write. Questo vi andra` a sostituire la variabile globale che usi per passare il dato tra il subvi e il vi principale. La soluzione proposta da paracarro e` sicuramente + raffinata, sebbene adotti lo stesso principio di base (utilizzo delle functional global), ti permette anche di modificare le proprieta` del controllo (forma, dimensione, posizione, colore ecc) utilizzando le property del reference memorizzato. ---------------------------------------- AUTORE: 43 DATA :05/12/2008 - 17:49:31 ---------------------------------------- [quote="esodar1981":xuks2tpv] ... La soluzione proposta da paracarro e` sicuramente + raffinata, sebbene adotti lo stesso principio di base (utilizzo delle functional global), ti permette anche di modificare le proprieta` del controllo (forma, dimensione, posizione, colore ecc) utilizzando le property del reference memorizzato.[/quote:xuks2tpv] caro esodar, il punto è che potrebbe non servire la functional global... nel senso che basta passare il reference di un controllo ad un subVI e da dentro al subVI puoi modificare il controllo del VI Chiamante, perchè era questo lo scopo originario. La functional Global ha principalmente lo scopo di memorizzare il CTRL-Ref in modo da non doverlo passare ogni volta!! [attachment=0:xuks2tpv]main Folder.zip[/attachment:xuks2tpv] se non riesci a capire questo non so proprio cosa fare!!! bye buon natale ---------------------------------------- AUTORE: 278 DATA :06/12/2008 - 10:50:36 ---------------------------------------- [quote:36pq21lt]caro esodar,[/quote:36pq21lt] Grazie, ricambio con affetto \":lol:\" [quote:36pq21lt]il punto è che potrebbe non servire la functional global... nel senso che basta passare il reference di un controllo ad un subVI e da dentro al subVI puoi modificare il controllo del VI Chiamante[/quote:36pq21lt] Chiarissimo, ho solo cercato di semplificare la vita a volterra 79 \":wink:\" A presto ---------------------------------------- ================================================================================ creazione convertitore tensione frequenza ================================================================================ AUTORE: 1295 DATA :05/12/2008 - 17:21:18 ---------------------------------------- Ciao tutti, chi di voi sa dirmi se è possibile creare un convertitore tensione frequenza con una usb multifunction daq tipo NI USB 6221? se si, mi sapete dare un'indicazione? ---------------------------------------- AUTORE: 301 DATA :12/12/2008 - 07:55:17 ---------------------------------------- Devi acquisirti il segnale analogico ed estrapolare la frequenza dalla tua forma d'onda. Ovvio che devi stare moooooolto attento alle frequenze di acquisizione...... ---------------------------------------- AUTORE: 1295 DATA :29/01/2009 - 09:21:14 ---------------------------------------- Ciao, il mio problema è leggermente diverso, forse non sono riuiscito ad essere chiaro. In particolare io avrei bisogno di acquisire un segnale in tensione da un canale analogico e trasformarlo in un segnale modulato in frequenza sfruttando un'uscita digitale. E' possibile? Sapete darmi un suggerimento? Prometto di metterlo online se riesco a farlo. Grazie a tutti ---------------------------------------- AUTORE: 1078 DATA :29/01/2009 - 10:11:47 ---------------------------------------- Vediamo se ho capito bene cosa vuoi realizzare: Acquisendo un segnale analogica (es: 0-10V) devi modulare il valore letto (5V) che diventerà il tuo valore di picco dell'onda sinusoidale (o onda quadra) da generare. Quindi il tuo segnale avrà frequenza ω (impostabile) e ampiezza V= al valore letto dal segnale analogico (5V). Corretto? ---------------------------------------- AUTORE: 1295 DATA :30/01/2009 - 20:05:22 ---------------------------------------- No, in realtà io devo leggere un segnale analogico (es 0-10V) e devo convertirlo in un segnale in frequenza (es 0-500Hz) ad ampiezza fissa. In pratica ho un sensore analogico che mi da fuori un segnale(0-10V) e lo devo usare al posto di un sensore digitale che da fuori un segnale (0-500Hz) ad ampiezza costante; la strumentazione a cui devo accoppiare il mio segnale analogico accetta solo un segnale in frequenza e quindi occorre che io trasformi il segnale in tensione in un segnale in frequenza. Grazie e scusa se non ero stato molto chiaro ---------------------------------------- AUTORE: 1078 DATA :03/02/2009 - 15:40:41 ---------------------------------------- Potresti gestire la cosa con due timed-loop, nel primo (chiamiamolo Main) acquisisci il segnale analagico, nel secondo invece (chiamiamolo consumer) imposterai una frequenza a 500Hz e gestirai il valore del segnale acquisito passandolo con property node o local variable. Attento a sincronizzare bene la frequenza di acquisizione che dovà a mio parere essere più veloce di quella di esecuzione. In realtà bisognerebbe provare.... ---------------------------------------- AUTORE: 1078 DATA :04/02/2009 - 12:40:26 ---------------------------------------- Aspetta... forse ho capito, tu hai un segnale analagico che varia con range 0-10V in base al valore letto devi generare un segnale con valore costante (es 5V) ma con frequenza variabile legata agli 0-10V del segnale analogico... giusto? ---------------------------------------- AUTORE: 1078 DATA :05/02/2009 - 08:03:54 ---------------------------------------- Prova vedere se questo funziona.... ho utilizzato la funzione express <simulate signal> per generare la forma d'onda quadra... La versione del VI è per LV8.0 spero tu non abbia problemi ad aprirlo! Ciao e fammi sapere... ---------------------------------------- ================================================================================ seriale e labview ================================================================================ AUTORE: 2525 DATA :05/12/2008 - 23:38:45 ---------------------------------------- Ciao a tutti, sono uno studente alle prese con questo programma per motivi didattici. Sto iniziando ad imparare ad usare questo programma ma sto già incontrando le prime difficoltà. In particolare ho provato ad eseguire un vi esempio fornito con labview 8.2 "Basic serial write and read.vi" per la lettura e scrittura tramite porta seriale. Una volta individuata la porta com ed aperta,provo ad inviare una stringa,subito dopo mi aspetto la risposta del dispositivo collegato alla com,invece viene visualizzata la stringa inserita da me. Quale è il problema? Grazie, Salvatore ---------------------------------------- AUTORE: 301 DATA :10/12/2008 - 12:43:15 ---------------------------------------- bah.......essere o non essere........ Hai aspettato un attimo prima di leggere la com dopo che hai inviato la tua stringa? i motivi possono essere 1000000000000000000000000000 ---------------------------------------- AUTORE: 2525 DATA :10/12/2008 - 19:08:47 ---------------------------------------- Bene..mi fa piacere \":o\" Comunque ho aumentato anche il tempo di attesa di lettura ma niente. E come se il comando AT che mando al dispositivo arriva ma rimane bloccato lì e non viene eseguito. Infatti se dopo aver eseguito il vi chiudo labview e riapro la seriale tramite hyper terminal tutti i comandi mandati con il vi vengono eseguiti. A cosa può essere dovuto? ---------------------------------------- AUTORE: 301 DATA :10/12/2008 - 19:42:10 ---------------------------------------- prova a postare un esempio di quello che hai fatto...... ---------------------------------------- AUTORE: 2525 DATA :10/12/2008 - 20:36:38 ---------------------------------------- Ok,allego il vi che utilizzo.. ---------------------------------------- AUTORE: 301 DATA :11/12/2008 - 06:36:19 ---------------------------------------- prova cosi....... non so cos'altro dire.... Al massimo prova a svuotare il buffer ad ogni operazione. ---------------------------------------- AUTORE: 645 DATA :11/12/2008 - 12:52:00 ---------------------------------------- Non ho LabView sottomano... puoi postare un'immagine del VI? ---------------------------------------- AUTORE: 2525 DATA :11/12/2008 - 14:22:00 ---------------------------------------- Aris non riesco ad aprire il tuo vi modificato perchè uso la versione 8.2.... Comunque posto l'immagine del vi. ---------------------------------------- AUTORE: 301 DATA :12/12/2008 - 07:49:27 ---------------------------------------- Eccoti..... Quello che intendeva Magic, credo fosse l'immagine del BD......il FP non dice molto di un vi.... \":lol:\" ---------------------------------------- AUTORE: 645 DATA :12/12/2008 - 08:33:26 ---------------------------------------- Eh sì... intendevo il Block Diagram... \":lol:\" La comunicazione con la porta seriale non è particolarmente complicata ma ci sono alcuni accorgimenti da rispettare. Due in particolare: inizializzare la porta correttamente (a partire dal nome per proseguire con il BaudRate, i bit di stop...) e il tempo di attesa tra una lettura e l'altra. Nel tuo Front Panel vedo una casella delay: è il ritardo tra scrittura e lettura? Oppure è il ritardo tra una comunicazione e la successiva? Lascia un po' di tempo tra quando scrivi e quando leggi: puoi iniziare con un secondo e poi abbassare fino a valori desiderati. Altra domanda: il protocollo che usi è corretto? Cioè, le domande che fai allo strumento (le stringhe che invii) sono corrette? Scusa se te lo chiedo ma a volte gli errori sono qui perchè ci si dimentica un carattere di terminazione o qualcosa in mezzo alla frase... ---------------------------------------- AUTORE: 2525 DATA :12/12/2008 - 20:21:09 ---------------------------------------- Avete ragione..ho postato il FP che non serve a molto.. \":roll:\" Comunque ho risolto,era proprio un carattere di terminazione mancante che causava l'esecuzione errata del comando. Grazie a tutti \":wink:\" ---------------------------------------- ================================================================================ Problemi con grafici non salva modifiche griglia nei chart ================================================================================ AUTORE: 2235 DATA :07/12/2008 - 00:18:01 ---------------------------------------- Ho avuto i seguenti problemi in un programma con diversi grafici. Buonasera Quando voglio inserire una griglia su un chart opero in chart properties ma per alcuni grafici , o non la inseriva o al momento del salvataggio si bloccava, dovevo chiudere forzatamente Labview 8.2 perdendo le modifiche sulla griglia. In seguito copiando e incollando dei grafici in cui la griglia veniva visualizzata accadeva che la mascherina dei plot "plot legend" compariva come il classico rettangolino grigio ma con solo righe scure orizzontali al posto dei classici e colorati tracciati tipo. Inoltre il programma in operazioni semplici di confronto tra valori letti da strumenti esterni applicati su oggetti in movimento per circa 1 ora e valori di setpoint variabili, dopo un ora non eseguiva più il confronto ossia rimaneva fisso il setpoint ma pur variando notevolmente attorno a esso il valore dello spostamento acquisito, non trovava mai il setpoint. Mi spiego meglio: ho un setpoint a 4mm ho un attuatore che da 10mm si avvicina a 4 mm ma li supera per andare fino a -20mm per poi ripassare per 4mm e andare ad esempio a 15mm Non può essere un problema di tolleranze visto che per diverso tempo con i setpoint più svariati funzionava benissimo Il file si è corrotto? E' un bug di labview 8.2 Cosa posso fare Grazie ---------------------------------------- AUTORE: 482 DATA :09/12/2008 - 07:53:33 ---------------------------------------- Non sapendo niente a proposito del programma, io opterei per un problema software. Il software sviluppato male che magari salva troppi valori o non è temporizzato e quindi crea problemi di memoria o velocità di esecuzione... ---------------------------------------- ================================================================================ trovare un punto in un grafico ================================================================================ AUTORE: 2488 DATA :09/12/2008 - 18:45:18 ---------------------------------------- ciao a tutti ho un problema che per molti di voi sara' una cavolata: ho implementato una forma d'onda tramite il "formula node" dentro ad alcuni cicli "for" creando una specie di segnale. ora vorrei riuscire a trovare il valore di un punto della mia forma d'onda. inoltre il valore in quel punto lo dovrei utilizzare come input per un altra cosa. come posso fare?? grazie a tutti in anticipo!!!! \":)\" ---------------------------------------- AUTORE: 2488 DATA :09/12/2008 - 18:59:19 ---------------------------------------- vi mando anche un sempio per capire meglio...... io vorrei sapere ad esempio quanto vale in ampiezza il mio segnale al "time" 1700 e visualizzare quel valore sul front panel ---------------------------------------- AUTORE: 301 DATA :10/12/2008 - 12:39:10 ---------------------------------------- Index array? Dove il valore "index" è il tuo time point...... ---------------------------------------- AUTORE: 2488 DATA :10/12/2008 - 16:57:24 ---------------------------------------- si avevo trovato quello ...... solo che cosi' non e' che posso prendere quel valore,ma e metto quello come input mi da' tutti i punti perche e' vero che ne visualizzo uno solo (o piu di uno se volgio ) ma essendo una stringa di valori usanolo come input non mi da' un punto,ma tutta la funzione ---------------------------------------- AUTORE: 2488 DATA :10/12/2008 - 17:02:40 ---------------------------------------- scusate per gli ORRORI di prima (non riesco ancora a scrivere veloce con la tastiera del protatile e cosi' mi perdo le lettere) riscrivo: si avevo trovato quello ...... solo che cosi' non posso prendere quel valore, perche' se metto quello come input mi da' tutti i punti, dato che e' vero che ne visualizzo uno solo (o piu di uno se volgio ) ma essendo una stringa di valori usandolo come input non mi da' un punto,ma tutta la funzione. ---------------------------------------- AUTORE: 301 DATA :10/12/2008 - 19:50:29 ---------------------------------------- scusa ma questa proprio non l'ho capita (nemmeno ridigitata)........ ---------------------------------------- AUTORE: 2488 DATA :10/12/2008 - 20:18:33 ---------------------------------------- Provo a spiegarmi meglio.... se io collego un index array all'uscita del mio segnale, tramite l'index io posso visualizzare l'ampiezza nel tempo che inserisco nell'index. Se ad esempio io volessi il mio volore il tempo 1700,scriverei nell'index "1700" e mi visualizzerebbe la mia ampiezza. se pero' io volessi quel valore nell'istante "1700" come controllore per un altro pezzo di programma (per esempio se io volessi integrare quel singolo valore per ottenere l'accelerazione nel punto con coordinata temporale "1700")? io ho provato a fare cosi': 1) click con il destro sull'icona dell'index array nel Block Diagram / create / local variable 2) posizionarmi il sull'icona del local variable comparso / click destro / change to read ottenendo cosi' un controllore in ingresso (ad esempio per il mio integrale). Solo che integrando ,in uscita non ottengo un vaolre(ossia l'integrale del valore a "1700"), ma ottengo l'integrale di tutto il mio segnale di partenza(cioe' un altro segnale). SPERO DI ESSERMI SPIEGATO MEGLIO \":D\" scusa i miei termini "terra terra" ma non sono molto pratico \":(\" grazie ancora di cuore ---------------------------------------- AUTORE: 301 DATA :11/12/2008 - 06:31:57 ---------------------------------------- nemmeno cosi va? ---------------------------------------- AUTORE: 301 DATA :11/12/2008 - 06:34:49 ---------------------------------------- scuuuuuuuuuuuuuuuusa. il messaggio per te era questo...... Continuo a non capire cio che dici.... ---------------------------------------- AUTORE: 482 DATA :11/12/2008 - 07:38:20 ---------------------------------------- Per me in tutto questo c'e' una falla di programmazione o meglio una falla nella conoscenza di labVIew. Tu usi la funzione index array che ti restituisce un valore in un dato istante. Di quel valore, ci puoi fare quello che vuoi. Integrarlo, derivarlo, sommarlo, sottrarlo, visualizzarlo. E' un valore. Dal momento che è uscito dalla funzione index array non ha piu' niente a che fare con il grafico o l'array in cui si trovava è semplicemente un numero. Cos'e' che non ti torna? ---------------------------------------- AUTORE: 2488 DATA :11/12/2008 - 09:11:42 ---------------------------------------- Chiedo ancora scusa per l'ignoranza in labview ma cerco di fare del mio meglio . Aris: non riesco a far partire il tuo file perche' ho solo labview 8.2 e mi dice invece che il programa e' per l'8.5 Gepponline: come faccio (in parole povere) a tirare fuori il valore dall'index array e ad integrarlo ?? ---------------------------------------- AUTORE: 301 DATA :11/12/2008 - 09:32:20 ---------------------------------------- cosi dovresti riuscire ---------------------------------------- AUTORE: 2488 DATA :11/12/2008 - 09:53:31 ---------------------------------------- sei la mia mia salvezza!!!!!!!!!!!!!!! ora ho capito. non so' chi tu sia,ma avrai sicuramente un bel posto nei ringraziamenti alla fine della mia tesi. PS: mi dispiace per te ma mi risentirai presto ..... anzi prestissimo. ---------------------------------------- ================================================================================ Percorso dell'applicazione ================================================================================ AUTORE: 2512 DATA :10/12/2008 - 11:16:47 ---------------------------------------- Salve a tutti...come faccio ad ottenere come path, l'applicazione con cui sto lavorando? Mi occorre per salvare/caricare file nella stessa cartella dell'applicazione, ovunque essa sia. (Tipo nel Visual Basic c'era [i:1515ccnm]App.Path[/i:1515ccnm]). Grazie mille. ---------------------------------------- AUTORE: 301 DATA :10/12/2008 - 12:35:43 ---------------------------------------- Nella paletta del file io trovi la funzione "Current VI's Path". Come dice il nome, questa fun. ti ritorna il path del vi. tieni presente che dopo aver compilato il tuo exe il vi è contenuto dentro ad esso (anche come path, intendo). ---------------------------------------- AUTORE: 2512 DATA :10/12/2008 - 16:11:02 ---------------------------------------- Paletta del file? Scusa ma non sono pratica, cosa intendi? ---------------------------------------- AUTORE: 301 DATA :10/12/2008 - 19:41:10 ---------------------------------------- le funzioni di labview sono divise in palette......cerca quella "file I/O" (identificata da un floppy)........ ---------------------------------------- AUTORE: 2512 DATA :11/12/2008 - 11:03:32 ---------------------------------------- Grazie, ma sorge un problema. Mi dà il percorso del vi...come faccio a farmi dare solo il percorso della cartella? "C:\Programmi\....\"? ---------------------------------------- AUTORE: 645 DATA :11/12/2008 - 12:54:37 ---------------------------------------- Puoi lavorare sulla stringa del percorso... elimini tutto ciò che sta dopo l'ultima "\" compreso questo simbolo. Il risultato è il percorso della cartella. ---------------------------------------- AUTORE: 727 DATA :11/12/2008 - 15:57:24 ---------------------------------------- Oppure usi "Strip Path" in FileI/O, che ti dà in output il percorso e il nome del file ---------------------------------------- ================================================================================ Rilevare i picchi del segnale ================================================================================ AUTORE: 2439 DATA :10/12/2008 - 16:41:54 ---------------------------------------- Ciao a tutti, vorrei qualche suggerimento su come rilevare i picchi del segnale uscente dal filtro passabanda in modo da ottenere un segnale a bassissima ondulazione residua. Per essere più chiara:dato il segnale in ingresso e dopo averlo filtrato (passa banda) voglio rilevare i suoi pti massimi e quindi i suoi picchi.Come posso fare visto che dovrei poi plottare il risultato?Allego un esempio affinchè possiate capire meglio. Grazie Mary ---------------------------------------- AUTORE: 482 DATA :11/12/2008 - 07:40:17 ---------------------------------------- Vai su Help-> FInd Example e nella casella di search scrivi Peak. Usciranno degli esempi già fatti, in particolare Peak detection and display che a al caso tuo. Mi raccomando, se decidi di utilizzare l'esempio, salvatelo in una nuova posizione per evitare di modificarlo e comprometterlo. \":wink:\" ---------------------------------------- AUTORE: 2439 DATA :11/12/2008 - 16:19:51 ---------------------------------------- Grazie tante \":D\" ...........mi hai dato una buona idea...Bye ---------------------------------------- ================================================================================ struttura case ================================================================================ AUTORE: 2499 DATA :11/12/2008 - 11:02:15 ---------------------------------------- Salve a tutti, ho bisogno del vostro aiuto, ho costruito un sub-Vi per un progetto, nel sub-Vi è previsto l'uso della struttura case, solo che ora mi da problemi mi dice che ci deve essere una condizione per ogni caso, però io le condizioni le ho messe. Allego al messaggio il file che ho fatto. ---------------------------------------- AUTORE: 482 DATA :11/12/2008 - 11:15:35 ---------------------------------------- Se colleghi un numerico al case selector, devi o stabilire un case di default oppure aggiungere due punti ".." prima o dopo un numero per dire che quel case considerea tutti i valori maggiori o minori di quello indicato. Nel tuo caso hai fatto un po' di casino. Hai un case structure con collegato un booleano, pero' con 6 case, mentre il booleano puo' avere solo due valori. Elimina i case in cui il selettore è vuoto e vedrai che si sistema tutto. ---------------------------------------- AUTORE: 2499 DATA :11/12/2008 - 20:08:35 ---------------------------------------- grazie mille per l'aiutoho provato a fare come mi hai consigliato e credo che ora funzioni! Ancora grazie! \":D\" ---------------------------------------- ================================================================================ informazioni hw pc ================================================================================ AUTORE: 2528 DATA :11/12/2008 - 13:33:17 ---------------------------------------- Salve, sono alla ricerca di informazioni software di come misurare con Labview le tensioni dell'alimentatore del PC, utilizzo CPU, velocità ventole, temperature ecc. ecc. senza utilizzare nessuna scheda aggiuntiva dentro il PC. Grazie ---------------------------------------- AUTORE: 43 DATA :11/12/2008 - 14:42:51 ---------------------------------------- [quote="germano":32zxllj6]Salve, sono alla ricerca di informazioni software di come misurare con Labview le tensioni dell'alimentatore del PC, utilizzo CPU, velocità ventole, temperature ecc. ecc. senza utilizzare nessuna scheda aggiuntiva dentro il PC. Grazie[/quote:32zxllj6] Penso che il posto migliore in cui cercare ciò che Ti serve, sia il sito del produttore della motherboard che vuoi monitorare. A corredo del chipset, spesso si trovano delle utility che fanno questo genere di cose. Se Ti va bene c'è una dll che può essere utilizzata per il Tuo scopo. E se Ti va ancora + bene questa dll è documentata... In tutto ciò LabVIEW non c'entra una sverza di niente! A meno che Tu non voglia fare queste misurazioni con un Tuo HW "kit" fatto in casa... bye ---------------------------------------- ================================================================================ flip flop ================================================================================ AUTORE: 2529 DATA :11/12/2008 - 15:53:33 ---------------------------------------- Salve, sono un nuovo arrivato nel forum e uso per ora la versione 6 Ho cercato fra gli argomenti trattati ed ho trovato un vi che riproduce un flip flop con porte nand e lo fa in maniera completa, diagramma temporale compreso. Ho visto anche che la sua costruzione è abbastanza complessa e mi chiedevo se non ci fosse un modo più semplice - o se ci fosse già qualche strumento interno a labview che possa riprodurre il suo funzionamento ( o qualcosa che possa ffare da elemento di memoria ) da poter far costruire anche a scuola ai ragazzi ( è un professionale quindi non sono molto ferrati su queste cose ). Grazie in anticipo Martino ---------------------------------------- AUTORE: 43 DATA :11/12/2008 - 18:53:49 ---------------------------------------- [quote="martino":2k2e4rc0]Salve, sono un nuovo arrivato nel forum e uso per ora la versione 6 Ho cercato fra gli argomenti trattati ed ho trovato un vi che riproduce un flip flop con porte nand e lo fa in maniera completa, diagramma temporale compreso. Ho visto anche che la sua costruzione è abbastanza complessa e mi chiedevo se non ci fosse un modo più semplice - o se ci fosse già qualche strumento interno a labview che possa riprodurre il suo funzionamento ( o qualcosa che possa ffare da elemento di memoria ) da poter far costruire anche a scuola ai ragazzi ( è un professionale quindi non sono molto ferrati su queste cose ). Grazie in anticipo Martino[/quote:2k2e4rc0] Caro prof. probabilmente sono l'autore del VI che hai visto. Scusa la mancanza di rispetto, ma vorrei ricordarti che LabVIEW è un [u:2k2e4rc0][b:2k2e4rc0]LINGUAGGIO DI PROGRAMMAZIONE[/b:2k2e4rc0][/u:2k2e4rc0] e non un SW per [u:2k2e4rc0]disegnare[/u:2k2e4rc0] schemi elettrici, circuiti stampati. L'uso dei "Blocchetti" comunemente chiamati VI (Virtual Instrument) e dei "fili" può trarre in inganno soprattutto gli elettrici/elettronici. Ma semplificando al massimo, i Blocchetti sono "funzioni" di un linguaggio procedurale, mentre i "fili" indicano i "flussi" di informazioni che viaggiano fra le procedure e che finiscono in controlli/indicatori, visualizzati nei Front Panel di LabVIEW. Da questa affermazioni ne consegue che, se si vuole sfruttare al meglio LabVIEW in un corso di elettronica, si deve utilizzarlo per pilotare semplici dispositivi HardWare connessi al PC tramite opportune interfacce. Con LabVIEW "dovrebbe" essere semplice pilotare dispositivi semplici. Poi altre potenzialità sono date dagli strumenti SoftWare di analisi, la visualizzazione di grafici ecc., ma qui stiamo parlando appunto di SW e nemmeno di FirmWare!!! Imparare ad usare LabVIEW, mi permetta, penso sia più corretto faccia parte di un corso di informatica... bye ---------------------------------------- AUTORE: 2529 DATA :11/12/2008 - 18:59:14 ---------------------------------------- Ho capito e ringrazio per la sollecitudine nella risposta. Grazie ancora Martino ---------------------------------------- AUTORE: 129 DATA :12/12/2008 - 09:27:13 ---------------------------------------- Potrebbe sfruttare labview per realizzare interfaccie che simulino il comportamento dei componenti o schemi circuitali. In sostanza nel caso del flip flop immagino un vi con un pannello frontale su cui simulare l'applicazione del flip flop. Sicuramente ti può aiutare questo: [url=http://sine.ni.com/devzone/cda/epd/p/id/3035:1pxdzae5]elementi di elettronica digitale[/url:1pxdzae5]. ---------------------------------------- AUTORE: 482 DATA :12/12/2008 - 09:55:10 ---------------------------------------- anche io pensavo ad una cosa simile... potresti risalvare il vi in versione 8.5 per capire se avevamo la stessa idea? ---------------------------------------- AUTORE: 43 DATA :12/12/2008 - 10:23:42 ---------------------------------------- [quote="nicola":of2vqcg5]Potrebbe sfruttare labview per realizzare interfaccie che simulino il comportamento dei componenti o schemi circuitali. ...[/quote:of2vqcg5] Certo... Vuoi per caso aiutare il buon Martino a sviluppare da zero un simil-ORCAD con LabVIEW? Auguri e Buon Natale! bye ---------------------------------------- AUTORE: 482 DATA :12/12/2008 - 10:47:08 ---------------------------------------- Non so..secondo me alcuni circuiti sono simulabili molto semplicemente con labview senza bisogno di fare finta di sviluppare nuovi ambienti di sviluppo... Ovvio, il tutto è dipendente dal fine. Se si tratta di simulare la logica via software è un conto. Se si tratta di simulare le caratteristiche fisiche dei componenti è un altra. Tipo, se io voglio simulare un LM7805 creo una struttura per la quale, se l'ingresso numerico è maggiore di 5 do in uscita un 5, altrimenti restituisco il valore effettivo. Non sto magari li a considerare la dissipazione del calore, la corrente ecc. Un flip flop....beh collego ad un case un selettore boolenao dove se il selettore è false memorizzo i datiche man mano arrivano e se arrivano, quando il selettore è true, li mando in uscita tutti insieme. ... ---------------------------------------- AUTORE: 2529 DATA :12/12/2008 - 14:03:48 ---------------------------------------- Intanto grazie ancora per le informazioni che mi state dando; volevo solo precisare che non ho alcuna intenzione di usare labview per riprodurre orcad o multisim. Il mio scopo era solo di introdurre l'idea di programmazione nella testa dei mei studenti utilizzando degli argomenti che gli fossero in qualche modo già familiari. E' scontato poi che per costruire o simulare completamente un circuito elettrico/elettronico si userà il software adatto. D'altra parte non avendo per ora hardware adatto da interfacciare con labview mi rimane solo questa possibilità. Il manuale trovato all'indirizzo http://sine.ni.com/devzone/cda/epd/p/id/3035 che mi avete fornito credo vada proprio in quella direzione. Grazie martino ---------------------------------------- ================================================================================ aiutoooo! acquisizione dati da cheda audio ================================================================================ AUTORE: 2530 DATA :11/12/2008 - 16:31:49 ---------------------------------------- Salve a tutti, devo sostenere un esame e nn ho mai aperto labview, il mio prof mi dice che devo acquisire dati dalla scheda audio del mio pc ed estrarre lo spettro dallo stesso, o eseguire altre operazioni sul segnale acquisito. Ho letto diverse guide dalle quali ho capito che in labview vi sono dei blocchi chiamati DAQ con i quali è possibile acquisire dei segnali, ma come faccio dalla mia scheda audio? vorrei sapere quale blocco prendere e come collegarlo nel diagramma a blocchi di labviw, vi ringrazio in anticipo, un saluto. ---------------------------------------- AUTORE: 482 DATA :12/12/2008 - 07:16:30 ---------------------------------------- [quote="giuseppe":31591sa5]Salve a tutti, devo sostenere un esame e nn ho mai aperto labview[/quote:31591sa5] A me hanno chiesto di attraversare la manica a nuoto ma non so nuotare! \":D\" \":D\" ---------------------------------------- AUTORE: 129 DATA :12/12/2008 - 07:32:30 ---------------------------------------- Forse questo ti potrebbe aiutare, per acquisire il segnale in ingresso dalla scheda audio. ---------------------------------------- AUTORE: 645 DATA :12/12/2008 - 08:35:59 ---------------------------------------- Dopo aver letto la guida di Nicola credo che tu possa raccontarci qualche cosina in più... cioè, passi dalla scheda audio integrata nel pc (allora forse conviene muoversi sui blocchi Audio già presenti in LabView e il segnale in ingresso deve essere condizionato o comunque controllato a seconda delle prestazioni della scheda audio... ma ti rimando alla guida di Nicola) o una qualche scheda di acquisizione DAQ (allora si passa da altri blocchetti, Daq-mx per esempio dedicato all'acquisizione dati...). ---------------------------------------- ================================================================================ Aiuto il subVI non funziona! ================================================================================ AUTORE: 2439 DATA :11/12/2008 - 18:01:14 ---------------------------------------- Ciao a tutti, per la realizzazione di un progettino ho creato il subVI allegato che dovrebbe generare delle armoniche in particolare,nel mio caso,la somma di 2 sinusoidi.Il labview non segnala errori di connessione però poi,dopo averlo messo in funzione,nn visualizzo nulla sul Waveform graph \":(\" .Secondo voi quale può essere il problema?Ho omesso qualcosa?Grazie ---------------------------------------- AUTORE: 43 DATA :11/12/2008 - 18:23:08 ---------------------------------------- [quote="maria":vo6u99xy]Ciao a tutti, per la realizzazione di un progettino ho creato il subVI allegato che dovrebbe generare delle armoniche in particolare,nel mio caso,la somma di 2 sinusoidi.Il labview non segnala errori di connessione però poi,dopo averlo messo in funzione,nn visualizzo nulla sul Waveform graph \":(\" .Secondo voi quale può essere il problema?Ho omesso qualcosa?Grazie[/quote:vo6u99xy] Se Tu guardassi l'error cluster in uscita da "Multitone Generator.VI" noteresti che c'è un errore fra i parametri di input. Se invece leggessi l' Help del VI medesimo noteresti che per funzionare il VI necessita che ci siano nei 3 ingressi "tone frequencies", "tone amplitudes" e "tone phases", array dalle medesime dimensioni. Avendo collegato solo 2 ingressi con array di 2 elementi e non avendo collegato il terzo ingresso (fasi - array di dimensione 0) il VI non funziona. E te lo segnala [attachment=0:vo6u99xy]generaarmoniche.vi[/attachment:vo6u99xy] Questo è il Tuo VI opportunamente modificato ---------------------------------------- AUTORE: 2439 DATA :12/12/2008 - 16:02:27 ---------------------------------------- Volevo ringraziarla per il suggerimento...purtroppo ho la versione 7.1 e nn posso visualizzare il suo VI,comunque proverò a fare come mi ha detto.Grazie ancora. ---------------------------------------- ================================================================================ esempi versione 6 di sistemi di controllo ================================================================================ AUTORE: 2529 DATA :11/12/2008 - 18:33:30 ---------------------------------------- MI potete consigliare dove trovare degli esempi con labview 6 di piccoli sistemi di controllo ? Grazie martino ---------------------------------------- AUTORE: 1124 DATA :11/12/2008 - 21:14:44 ---------------------------------------- ciao se usi labview 6.xx è probabile che negli esempi ci sia qualche esempio di sistema di controllo. ammesso che ci sia qualcosa potrebbe non essere di immediata interpretazione. ricordo di un esempio fornito con la versione 5.1 di un controllo di livello di serbatoio, forse lo hanno lasciato anche nelle versioni successive. tieni anche conto che, ad esempio, le librerie PID di solito non sono comprese, ma devono essere acquistate a parte. prova a scaricare alcuni tutorial di tipo educational da questi link: http://www.ni.com/academic/mae_me.htm http://www.ni.com/academic/mae_ee.htm in ogni caso proverei a contattare NI Italy chiedendo se riescono a fornirti qualche libreria didattica. ---------------------------------------- ================================================================================ Sincronizzare due schede PCI 6036E tramite RTSI bus ================================================================================ AUTORE: 10 DATA :12/12/2008 - 08:23:21 ---------------------------------------- [color=#000000:31jalqrw]Ciao a tutti, sambrerà incredibile, ma dopo 15 anni di uso saltuario di labview è la prima volta che mi trovo costretto a dover sincronizzare due schede... \":oops:\" In realtà il problema è abbastanza banale ed è riassumibile in:" cosa succede quando connetto il cavo RTSI?" Ho due schede 6036E che devo sincronizzare a livello di 20Mhz timebase e di start trigger in modo da mantenere la possibilità di acquisire i segnali a frequenze di campionamento diverse. Come si fa con daqmx? - Devo utilizzare il vi [b:31jalqrw]Daqmx connect terminal[/b:31jalqrw] per collegare i segnali della prima scheda a due linee RTSI e poi utilizzare queste due linee come source nei vi [b:31jalqrw]Daqmx clock[/b:31jalqrw] e [b:31jalqrw]Daqmx Start trigger[/b:31jalqrw] per avviare la task di acquisizione dati sulla seconda scheda? - Devo utilizzare il vi [b:31jalqrw]Daqmx connect terminal[/b:31jalqrw] per collegare direttamente i timebase e gli start trigger di entrambe le schede e la disposizione dei segnali sull'RTSI bus è automatica? Grazie in anticipo per l'aiuto.[/color:31jalqrw] ---------------------------------------- ================================================================================ Conversione stringa numero ================================================================================ AUTORE: 2516 DATA :12/12/2008 - 11:15:52 ---------------------------------------- Avrei la necessità di convertire stringhe del genere 5.9700E-07 in formato numerico esponenziale. Questa stringa mi viene tirata fuori da una seriale io sto provando in utti i modi a convertirla con fract/exp String to number ma nulla da fare mi tira fuori sempre 5 ma non tutto il numero. Qualcuno sa aiutarmi cortesemente??? Grazie anticipatamente ---------------------------------------- AUTORE: 43 DATA :12/12/2008 - 11:50:22 ---------------------------------------- [quote="crash_overhead":2vahy8n7]Avrei la necessità di convertire stringhe del genere 5.9700E-07 in formato numerico esponenziale. Questa stringa mi viene tirata fuori da una seriale io sto provando in utti i modi a convertirla con fract/exp String to number ma nulla da fare mi tira fuori sempre 5 ma non tutto il numero. Qualcuno sa aiutarmi cortesemente??? Grazie anticipatamente[/quote:2vahy8n7] Dovrebbe essere una questione di punti e di virgole, cioè di "use localized decimal point" nelle opzioni di LabVIEW. cerca nel forum per capirne di + bye ---------------------------------------- AUTORE: 2516 DATA :12/12/2008 - 12:59:30 ---------------------------------------- ho provato ad impostare come separatore il . ma comunque non ho risolto in + ho notato solamente che ho in out dal fract/exp to string l'offset past number pari a 2. ---------------------------------------- AUTORE: 43 DATA :12/12/2008 - 13:52:39 ---------------------------------------- [quote="crash_overhead":2iamuj0w]ho provato ad impostare come separatore il . ma comunque non ho risolto in + ho notato solamente che ho in out dal fract/exp to string l'offset past number pari a 2.[/quote:2iamuj0w] Mah! se hai se hai settatto l'opzione "use localized decimal point", devi ricordadrti di uscire e rientrare da LabVIEW prima di effettuare un'altra prova. Poi potresti provare a mettere una "," virgola al posto del "." punto e vedere che succede. A me funziona benissimo ecco la prova provata [attachment=0:2iamuj0w]convStrNumOK.JPG[/attachment:2iamuj0w] ---------------------------------------- AUTORE: 2516 DATA :14/12/2008 - 13:49:09 ---------------------------------------- appena ritorno in ufficio riprovo... GRazie mille per l'aiutooo... ---------------------------------------- ================================================================================ USB Raw VISA resource name ================================================================================ AUTORE: 2523 DATA :12/12/2008 - 22:36:57 ---------------------------------------- Ciao a tutti, vi scrivo per chiedervi di aiutarmi a risolvere un problema. Ho realizzato un'applicazione che scambia dati, via USB, con l'esterno. Quando l'applicazione di LabView viene chiusa senza che avvenga la chiusura della porta USB, (cioè non viene eseguito il blocco VISA close), accade che rilanciando la stessa applicazione di LabView compaia nel controllo USB Raw VISA resource name la porta USB precedente, che non è più attiva, è la nuova porta USB attiva. Vorrei che ad ogni lancio dell'applicazione venga pulito il controllo USB Raw VISA resource name e rimanga solo la porta USB attiva. Sapreste, per favore, darmi un aiuto? Grazie anticipatamente a tutti. Ciao, Chobin. ---------------------------------------- ================================================================================ labview e WiiMote ================================================================================ AUTORE: 1441 DATA :15/12/2008 - 08:52:04 ---------------------------------------- Ho notato nel web una serie di siti dove si parla di interfacciare LabView con il controllerer WiiMote della nintendo.Qualcuno ha qualche esperienza in tal senso? Perchè io ho scaricato i file da suddetti siti ma mi vengono restituiti sempre un sacco di errori e nessuno di quei file funziona. Ho labview 8.5 e windows Xp SP3... I siti da cui ho scaricato i file sono: http://delta.ni.com/content/docs/DOC-1353 e http://forums.ni.com/ni/board/message?b ... .id=249428 Grazie in anticipo Paolo ---------------------------------------- AUTORE: 1441 DATA :15/12/2008 - 11:11:43 ---------------------------------------- ok, ho risolto il problema. avevo un problema nello scompattare dei file. Ora però avrei un altro problema. Ho un programma, abbastanza ampio, vorrei ridurlo ad un semplice blocchetto labview che mi manda in uscita dei segnali per poterlo inserire all'interno di un altro programma...è possibile? grazie ---------------------------------------- AUTORE: 482 DATA :16/12/2008 - 07:27:22 ---------------------------------------- Seleziona tutto il block diagram, poi vai nel menu alal voce edit e seleziona "Create VI". Se il vi pero' è grosso puo' capitare che venga apportata qualche modifica che ne comprometta il funzionamento. Per far creare in automatico ingressi e uscite, lascia fuori dalla selezione quelli che vuoi che diventino ingressi e uscite. ---------------------------------------- ================================================================================ collegare 2 cicli while ================================================================================ AUTORE: 2525 DATA :15/12/2008 - 09:09:56 ---------------------------------------- Ciao a tutti, vi scrivo nuovamente perchè avrei bisogno di un suggerimento per il progettino che sto realizzando. Avrei la necessità di collegare 2 cicli while in modo che i dati che escono dal 1° ciclo (lettura dati da seriale) vengano passati al 2° (inserimento dati in un array). Eseguendo il vi con l'highlight execution si vede che i dati si fermano al 1° ciclo. Per chiarire il tutto allego anche il vi. Grazie anticipatamente per la pazienza e per l'aiuto. Salvatore ---------------------------------------- AUTORE: 301 DATA :15/12/2008 - 09:34:25 ---------------------------------------- solo perchè sbagli candeggio..... il secondo ciclo while aspetta che gli arrivino i dati dal primo per essere eseguito..... Vedi qualche esempio di esecuzione parallela ---------------------------------------- AUTORE: 2525 DATA :16/12/2008 - 07:07:25 ---------------------------------------- Grazie per la dritta! Faccio qualche prova e ti farò sapere.. ---------------------------------------- ================================================================================ Problema con Zip palette ================================================================================ AUTORE: 1465 DATA :15/12/2008 - 23:28:11 ---------------------------------------- salve a tutti, non riesco a far funzionare la funzione Unzip delle Zip palette... a creare il file zip tutto ok, però quando vado a decoprimerlo mi restituisce l'errore 2 (memory full) nel caso in cui all'interno dell'archivio ci sia un unico file tutto ok, mentre se ci sono più file vanno tutti a farsi benedire ciao ---------------------------------------- AUTORE: 301 DATA :19/12/2008 - 15:41:24 ---------------------------------------- Ciao, a quanto pare, è un bug già noto a NI..... Che dire?!? ---------------------------------------- AUTORE: 301 DATA :19/12/2008 - 15:53:55 ---------------------------------------- Comunque il problema è stato risolto in LV 8.6...... Auguri! ---------------------------------------- ================================================================================ Problema frequenza DAQ con fieldpoint ================================================================================ AUTORE: 1168 DATA :16/12/2008 - 10:16:02 ---------------------------------------- Buongiorno a tutti. Ho un problema con il VI che allego, il quale non fa altro che acquisire 5 canali da due moduli di un fielp point (di quelli vecchi, non cFP). In pratica leggo il timestamp e sottraendolo al precedente non ho un periodo costante, ma varia anche di molto...fino a 1 secondo. Sul PC, che è decente, per quanto riguarda le performances (3 Ghz dual core, 2 gb ram), sono montate due schede di rete, una verso la rete aziendale (via DHCP) e una verso una rete dedicata alla quale sono connessi due fieldpoint e due PC (tutti con IP statico). Voi vedete qualcosa di strano nel VI che ho creato? Allego sia il VI che il .iak Grassssssie in anticipo! ---------------------------------------- AUTORE: 1168 DATA :16/12/2008 - 10:24:16 ---------------------------------------- Scusate, il fieldpoint è un FP-6001 e i due moduli analogici che mi hanno problemi un AI-100 e un AI-112. Rigrazie ---------------------------------------- AUTORE: 482 DATA :16/12/2008 - 10:44:23 ---------------------------------------- puoi salvarla in versione 8.5 ? ---------------------------------------- AUTORE: 1168 DATA :16/12/2008 - 10:51:45 ---------------------------------------- Arriva! ---------------------------------------- AUTORE: 482 DATA :16/12/2008 - 11:15:28 ---------------------------------------- Non ho capito come sei collegato ai moduli field point. Guardando pero' la documentazione del VI di lettura del fieldpoint, vedo che quel canale in uscita Timestamp, nel caso di lettura via ethernet, indica l'ultimo momento in cui il valore ha subito una variazione e non il momento in cui ha letto l'ultimo dato. Questo potrebbe spiegare il perchè dell'irregolarità dei tuoi dati. Nel dettaglio, l'help dice: [code:3k3pjuc3]timestamp returns the last time at which the VI received a value from the item. If this VI is running embedded on an RT controller or reading values over a serial network, timestamp returns the last time the VI read the item. If this VI is running on a host computer and reading values over Ethernet, timestamp returns the last time the value of the item changed. [/code:3k3pjuc3] ---------------------------------------- AUTORE: 1168 DATA :16/12/2008 - 11:40:03 ---------------------------------------- Mmmmm non penso... sto acquisendo a canali aperti e quindi il rumore dovrebbe variare parecchio... appena riesco provo con un segnale e ti dico! Grazzzie ---------------------------------------- AUTORE: 482 DATA :16/12/2008 - 12:33:12 ---------------------------------------- ALtro suggerimento, elimina tutto quello che non ti serve. Quindi prova a mettere su grafico direttamente i segnali che acquisisci, senza usare ne code ne nient'altro, poi provi ad acquisire solo da un canale fieldpoint. Ecco, una cos ach enoto solo ora...ti consiglio di mettere in sequenza le due acquisizioni FP tramite il filo dell'errore cosi' eviti che vengano fatte delle chiamate simultanee a qualche libreria del FP che magari poi va in crisi. Ultima cosa, per segnarti il sampling time puoi sempre costruirti la struttura a mano utilizzando i timer e gli shift register ---------------------------------------- AUTORE: 482 DATA :16/12/2008 - 12:53:15 ---------------------------------------- Ti allego la versione sintetizzata del tuo VI. Provalo e vedi se hai ancora gli stessi problemi. Io l'ho provato leggendo delle termocoppie via ethernet e la lettura è costante a 0,10 secondi..ogni tanto va a 0,09 ogni tanto a 0,11 ma assolutamente non ho sbalzi di secondi. ---------------------------------------- AUTORE: 1168 DATA :16/12/2008 - 13:31:48 ---------------------------------------- Mi metto a fare un po' di prove.... Many thanks! ---------------------------------------- AUTORE: 1168 DATA :16/12/2008 - 15:18:19 ---------------------------------------- In pratica il problema è che sul canale che veniva acquisito singolarmente c'era un segnale abbastanza costante e quindi non veniva aggiornato il timestamp. La cosa più furba è vedere quale dei due varia e usare quello come timestamp, oppure averne due diversi per i due moduli. Grazie dell'aiuto! ---------------------------------------- ================================================================================ Scrollbar degli array ================================================================================ AUTORE: 927 DATA :16/12/2008 - 14:52:45 ---------------------------------------- Quando un controllo/indicatore array monodimensionale mostra un solo elemento alla volta, non c'è proprio verso di avere la barra di scorrimento verticale anzichè orizzontale? ---------------------------------------- AUTORE: 301 DATA :16/12/2008 - 15:57:51 ---------------------------------------- emmmmm....direi di no ---------------------------------------- AUTORE: 482 DATA :17/12/2008 - 07:34:30 ---------------------------------------- credo sia fatto cosi' puramente per una questioen grafica. Nel senso che i pulsanti della scrollbar, ipotizzando la grandezza di default di un controllo array, non ci stanno nella dimensione verticale del controllo. Tutto questo tenendo in considerazioni le grandezze di default, perchè un array di 2 numerici con grandeza del carattere al minimo è alto uguale a un array di 1 elemento con grandezza al massimo. ---------------------------------------- ================================================================================ Guadagno filtro ================================================================================ AUTORE: 2533 DATA :16/12/2008 - 16:20:48 ---------------------------------------- Ciao a tutti, da poco ho iniziato ad usare il labview e mi rendo conto che è un programma vastissimo dal quale c'è sempre qlcs da imparare...Diciamo che a piccole dosi sto riuscendo a realizzare un VI,però alcune cose nn mi sono molto chiare.Diversi miei colleghi di università mi hanno parlato bene di qsto sito ed ho pensato che nn sarebbe stata una cattiva idea porvi il mio banale quesito.. In particolare vorrei capire dove è esplicitato il guadagno del filtro Fir Windowed filter (not in ...) in quanto devo capire,(dando in ingresso per es 1 volt e volendo ottenere in uscita la stessa quantità) se devo moltiplicare o dividere il valore in uscita (per il guadagno appunto).Non so se sono stata abbastanza chiara o se mi capisco solo io...Comunque spero che riuscirete a darmi una risposta,intanto vi ringrazio anticipatamente per l' attenzione \":D\" michelle ---------------------------------------- AUTORE: 2533 DATA :17/12/2008 - 18:28:01 ---------------------------------------- E come che nessuno può darmi un idea? Mi serve conoscere il guadagno in quanto il mio obiettivo è quello di visualizzare,in uscita del V, le componenti spettrali del mio segnale in ingresso e la risposta del filtro che si sposta su di esse!!Per favore \":cry:\" ---------------------------------------- AUTORE: 2533 DATA :17/12/2008 - 18:29:39 ---------------------------------------- Scusate "un'idea" va apostrofato .......... \":oops:\" ---------------------------------------- AUTORE: 645 DATA :18/12/2008 - 09:47:27 ---------------------------------------- Hai provato a guardare gli esempi di LabView contenuti nella cartella Examples? E hai fatto un giro sul sito www.ni.com ? Io personalmente non so risponderti... non so se il guadagno deve essere stabilito a parte o se puoi ricavarlo dal blocchetto direttamente... \":mrgreen:\" ---------------------------------------- AUTORE: 727 DATA :18/12/2008 - 11:08:09 ---------------------------------------- Se guardi tra gli esempi, ne trovi uno in cui fa vedere come settare il gain... \":D\" Ciao ---------------------------------------- AUTORE: 2439 DATA :18/12/2008 - 18:04:05 ---------------------------------------- Se non erro il guadagno varia al variare della finestra che scegli in ingresso al filtro.Si parla,in particolare,di PSG(Peak Signal Gain) che,nel caso di finestra rettangolare (e di campionamento coerente)è uguale agli N campioni della DFT mentre per le altre finestre lo si calcola attraverso la formula che puoi trovare su un qualsiasi testo di telecomunicazioni. Ciao \":D\" ---------------------------------------- ================================================================================ Ring... ================================================================================ AUTORE: 2512 DATA :17/12/2008 - 09:36:19 ---------------------------------------- Salve a tutti. Ho un ring che mi seleziona dei campi che vanno in una struttura case. Ad ogni campo è caricato un file. In sostanza scelgo una voce, premo il pulsante "Load" e mi carica un file. Volevo sapere se potevo evitare il pulsante "Load", ma entrare nel case solo CAMBIANDO la scelta nel Ring. Grazie in anticipo. ---------------------------------------- AUTORE: 927 DATA :17/12/2008 - 10:04:08 ---------------------------------------- Per queste cose servono le "Event structure" (trovi abbastanza info su di loro nell'help di Labview). In questo caso devi aggiungere un Event case dove Source è il tuo ring, e l'evento è Value Change ---------------------------------------- AUTORE: 645 DATA :17/12/2008 - 10:19:30 ---------------------------------------- Però se devi caricare file forse conviene mantenere il pulsante... Così l'operazione di caricamento viene eseguita solo quando serve, quando l'utente ha deciso quale file usare. Altrimenti ad ogni cambio viene chiuso il file attuale e caricato il nuovo file. Potresti collegare il Ring al nome del file anzichè alla sua apertura: allora il pulsante non serve e ad ogni cambio di valore viene modificata la stringa che contiene il nome del file. Quando l'utente ha deciso questa stringa porta all'apertura del file corrispondente. ---------------------------------------- AUTORE: 2512 DATA :17/12/2008 - 23:32:08 ---------------------------------------- Sono d'accordo con la tua ultima risposta, solo che sorge un problema. Siccome il caricamento di questo file è una parte parallela al resto del software, il tutto va in un Loop. E' molto più efficiente ad ogni ciclo valutare lo stato change del'oggetto(u solo confronto), che aprire ad ogni ciclo il file. ---------------------------------------- AUTORE: 645 DATA :18/12/2008 - 09:45:55 ---------------------------------------- [quote="skiokka.rosa":34240zi0]... E' molto più efficiente ad ogni ciclo valutare lo stato change del'oggetto(u solo confronto), che aprire ad ogni ciclo il file...[/quote:34240zi0] Appunto... [quote="magicbotolo":34240zi0]... Potresti collegare il Ring al nome del file anzichè alla sua apertura: allora il pulsante non serve e ad ogni cambio di valore viene modificata la stringa che contiene il nome del file. Quando l'utente ha deciso questa stringa porta all'apertura del file corrispondente...[/quote:34240zi0] Facendo così controlli il valore del Ring, modifichi di conseguenza la stringa di riferimento al file (per creare questa stringa devi controllare dove sono i file... se si tratta di una cartella già decisa puoi inserire il path come costante altrimenti, magari all'inizio del programma, puoi pensare a qualcosa per controllare i vari percorsi...) e solo quando l'utente ha deciso carichi il file selezionato. In questo modo l'apertura del file fisico avviene una sola volta al termine delle decisioni. ---------------------------------------- ================================================================================ activex ed Excel ================================================================================ AUTORE: 2534 DATA :22/12/2008 - 19:02:12 ---------------------------------------- Ciao ragazzi, qualcuno di voi sa indiarmi come fare ad eliminare una riga o colonna da un foglio Excel con LV utilizzando gli Activex? Guardando qua e la ho trovato come estrarre ed inserire dati in un foglio Excel ma non è che ho capito molto il meccanismo di questi Activex. Esiste qualche tutorial sull'argomento? Grazie!!!! ---------------------------------------- ================================================================================ Ordinare array di nomi file ================================================================================ AUTORE: 1168 DATA :23/12/2008 - 10:37:30 ---------------------------------------- Buongiorno a tutti. Con "recursive file list" vado a leggere tutti i file di testo in una cartella che hanno una struttura del tipo "misura 1.txt, misura 2.txt.... misura 11.txt" ecc ecc. Quando vado a estrarre i dati, il file "misura 11.txt" mi viene listato prima di "misura 2.txt". Come posso riordinare l'array in modo che i files mi vengono sequenziati? Mi non vorrei aggiungere degli zeri davanti al numero perchè non so quanti files mi comporranno il pacchetto di misure a priori. Per ora buon Natale e felice Gimondi a tutti!!! ---------------------------------------- AUTORE: 301 DATA :23/12/2008 - 11:21:43 ---------------------------------------- Potresti verificare la lunghezza della stringa. Se i tuoi file vengono nominati in automatico potresti crearti diversi array divisi per lunghezza di nome ed ordinati. Oppure dovresti convertire il numero nel nomefile ed ordinare gli array tramite quello. ---------------------------------------- AUTORE: 301 DATA :23/12/2008 - 11:29:58 ---------------------------------------- Intendevo una cosa tipo questa (magari poco elegante, ma efficace se non ci sono altri paletti)..... ---------------------------------------- AUTORE: 301 DATA :23/12/2008 - 13:56:25 ---------------------------------------- P.S. Prima che piovano insulti, tirate d'orecchio o altro (gia successo), specifico: QUESTO E' SOLO UN ESEMPIO FATTO IN 5' E 45'' AL PC SUL LAVORO, QUINDI PRENDETELO SOLAMNTE COME SPUNTO! P.P.S BUON NATALE A TUTTI VOI!!!!!!!!!!!!!!!!!!!!!!!!! ---------------------------------------- AUTORE: 43 DATA :23/12/2008 - 14:15:57 ---------------------------------------- [quote="Pio":232mzv48]Buongiorno a tutti. Con "recursive file list" vado a leggere tutti i file di testo in una cartella che hanno una struttura del tipo "misura 1.txt, misura 2.txt.... misura 11.txt" ecc ecc. Quando vado a estrarre i dati, il file "misura 11.txt" mi viene listato prima di "misura 2.txt". Come posso riordinare l'array in modo che i files mi vengono sequenziati? Mi non vorrei aggiungere degli zeri davanti al numero perchè non so quanti files mi comporranno il pacchetto di misure a priori. Per ora buon Natale e felice Gimondi a tutti!!![/quote:232mzv48] Buongiorgio a Tutti. Caro Pio, trovo che non mettere gli "0" davanti al numero presente all'interno dei nomi dei file sia una pessima scelta. Tra l'altro utilizzare nomi file contenenti degli spazi " " è una scelta altrettanto pessima. Detto questo, io farei così:[attachment=0:232mzv48]SortAndRename.vi[/attachment:232mzv48]Questo sfruttando la peculiarità della funzione di sort che sfrutta il "Cluster order" per stabilire in base a quale 'campo' del cluster fare l'ordinamento. Come puoi vedere la parte numerica è individuata come primo carattere numerico presente nel nome file e termina con l'ultimo carattere numerico in sequenza. Ti consiglio, al limite, l' esecuzione di un .bat contenente il testo generato per sistemare i nomi dei file. Per finire, Ti consiglierei di NON mostrare un insignificante nome file con numerazione prograssiva all'operatore che deve scegliere una misura della lista, ma piuttosto una lista di info che avrai cura di mettere nella parte iniziale del file di misura. Per esempio un timestamp, nome operatore, commento operatore, nome del campione ecc. Tutte queste info puoi metterle ben incolonnate in una comoda Multicolumn listbox. La scelta a questo punto risulterà più semplice all'operatore all'interno del Tuo Programma, mentre da un qualunque gestore di Risorse di sistema vedrai i nomi dei file (con gli "0" al posto giusto) ordinati sia cardinalmente che alfabeticamente. Bye buon Natale ---------------------------------------- AUTORE: 1168 DATA :23/12/2008 - 14:38:26 ---------------------------------------- Grazie a tutti per l'aiuto... mo' curioso gli esempi che avete postato. Il nome del file purtroppo non è modificabile nella struttura (maledetta compatibilità con programmi scritti da altri con altri linguaggi). L'alternativa di lanciare un bat di rinomina non mi era venuta in mente. Buon Natale e felice Gimondi a tutti! ---------------------------------------- ================================================================================ Struttura sequence in versione 6 ================================================================================ AUTORE: 2529 DATA :26/12/2008 - 08:40:00 ---------------------------------------- Scusate la domanda forse banale: in un vi fatto con la versione 7 ho trovato un esempio di flat sequence nel quale c'è un collegamento fra il primo frame e il terzo. Visto che per gli alunni ho la versione 6 dove mi sembra ci sia un sol tipo di sequence ( dove i frame non sono visibili tutti insieme ma uno alla volta ) vorrei sapere come faccio a collegare due frame fra loro se ne vedo uno alla volta, in particolare se i frame non sono consecutivi ? Grazie Martino ---------------------------------------- AUTORE: 129 DATA :26/12/2008 - 23:35:32 ---------------------------------------- Non puoi, la flat sequence è una struttura inserita nella versione 7 per facilitare la visualizzazione del codice. In ogni caso se il problema della visualizzazione è del tipo didattico, ovvero devi inserire che so i vari stati della sequenza in una relazione tecnica, semplicemente li puoi copiare come immagine direttamente in word. ---------------------------------------- AUTORE: 927 DATA :07/01/2009 - 10:29:30 ---------------------------------------- Non so se nella v.6 sia esattamente così, ma in genere è possibile passare valori anche tra frame delle stacked sequence (quelle dove si vede un solo frame alla volta). Si clicca col dx sul bordo della sequence e si fa "add sequence local"; compare un ingresso che si ritrova come uscita in tutti i frame successivi ---------------------------------------- AUTORE: 2529 DATA :08/01/2009 - 14:45:22 ---------------------------------------- Grazie, è proprio così. Martino ---------------------------------------- ================================================================================ semplice chiarimento ================================================================================ AUTORE: 2529 DATA :26/12/2008 - 13:05:55 ---------------------------------------- Domanda forse ovvia ma vorrei essere sicuro: (Not in Base Package) Vuol dire che quel blocco non è presente nella versione base. Dal momento che ho la versione 'student' sia della 6 che della 7 vuol dire che non è presente in questa versione ? Se fosse presente dove dovei trovarli ( si riferisce a blocchi che disegnano linee ) ? Grazie Martino ---------------------------------------- AUTORE: 129 DATA :26/12/2008 - 23:32:10 ---------------------------------------- Si riferisce ad una funzione che non è disponibile nel pacchetto base. Non avendo scritto il nome della funzione/VI di cui parli, è difficile darti una mano per trovarla. ---------------------------------------- AUTORE: 2529 DATA :27/12/2008 - 10:50:09 ---------------------------------------- MI riferivo alle funzioni per disegnare archi curve segmenti; nella versione 7 anche se mi dice che non è nella versione base ho scoperto che c'è in quella student ma nella versione 6 non son riuscito a trovarla. Comunque grazie Martino ---------------------------------------- ================================================================================ Aprire per scrittura risultati, n nuovi text file in labview ================================================================================ AUTORE: 2235 DATA :29/12/2008 - 22:29:30 ---------------------------------------- Buonasera E' possibile utilizzando forse una struttura ciclica aprire, dati n gradi di libertà di un problema, n file per scrivere su ciascuno di essi i dati di una simulazione numerica relativi a ciascuno degli n gradi di libertà? Ad esempio potrei avere un programma il cui algoritmo principale gira in matlab con cui dialogo con labview tramite i matlab script node, che prevede la possibilità di avere n gradi di libertà decisi dall'utente, per cui mi occorre poter aprire secondo esigenza n file di scrittura in labview dei risultati per ciascuno degi n gradi di libertà del problema utilizzando in labview n open/create/replace file, write to text file,close file. Grazie tante ---------------------------------------- AUTORE: 1050 DATA :30/12/2008 - 06:19:53 ---------------------------------------- Sì, non c'è alcun problema, puoi aprire tutti i file necessari: ti conviene usare uno stesso sub-vi per richiamare le operazioni sui file così se devi modificare qualcosa lo fai una sola volta nel subvi. ciao ---------------------------------------- AUTORE: 2235 DATA :30/12/2008 - 19:32:27 ---------------------------------------- grazie tante ---------------------------------------- ================================================================================ Nascondere una o più tracce all'interno di un chart ================================================================================ AUTORE: 2536 DATA :30/12/2008 - 02:38:38 ---------------------------------------- \":?:\" Salve a tutti, ho un problemino di fine anno \":-)\" Debbo rendere invisibile all'occorrenza alcune tracce della moltidudine in registrazione su un chart per poterle riattivare successivamente per meglio esplorare le singole anche durante una possibile navigazione in run-time con la barra delle storico che ho predisosposto nel chart. Ho letto qualche precedente post che parlava di plotname ed actplot ma non ho trovato esempi a riguardo, perchè ad esempio giacchè multitraccia come faccio a dare un nome ad ogni singola traccia per poi gestirla indipendentemente dalle altre? Sempre in materia di chart avrei anche la necessità di modificare in run time la scala delle Y mentre per la scala delle X avrei la necessità di far scorrere il tempo trascorso dall'accensione e non l'ora del momento. Grazie ---------------------------------------- AUTORE: 43 DATA :30/12/2008 - 09:27:36 ---------------------------------------- [quote="Mauro63":jcg42hpy]:?: Salve a tutti, ho un problemino di fine anno \":-)\" Debbo rendere invisibile all'occorrenza alcune tracce della moltidudine in registrazione su un chart per poterle riattivare successivamente per meglio esplorare le singole anche durante una possibile navigazione in run-time con la barra delle storico che ho predisosposto nel chart. Ho letto qualche precedente post che parlava di plotname ed actplot ma non ho trovato esempi a riguardo, perchè ad esempio giacchè multitraccia come faccio a dare un nome ad ogni singola traccia per poi gestirla indipendentemente dalle altre? Sempre in materia di chart avrei anche la necessità di modificare in run time la scala delle Y mentre per la scala delle X avrei la necessità di far scorrere il tempo trascorso dall'accensione e non l'ora del momento. Grazie[/quote:jcg42hpy] Non hai cercato con molto impegno. Leggi questo viewtopic.php?f=1&t=3697 Soprattutto questo viewtopic.php?f=1&t=3625&p=15981&hilit=property+top#p15981 Per finire: eccoti un Super esempio. Vedi ultimo post viewtopic.php?f=1&t=3699&p=16516&hilit=graph#p16516 Ti sconsiglio di usare i "Chart". Usa i "Graph". I "chart" usali se devi fare qualcosa velocemente e di immediato utilizzo. Lasciali perdere se devi confezionare qualcosa di ben fatto. In particolare la gestione dell'asse dei tempi nei chart, mi ha dato spesso in passato dei problemi. Non so se quei problemi oggi nella versione LV 8.6 esistono ancora. Cmq preferisco usare "Graph". Il "buffer storico" me lo gestisco io come mi risulta + comodo o efficiente... bye buon anno ---------------------------------------- AUTORE: 2536 DATA :06/01/2009 - 17:32:28 ---------------------------------------- Ti ringrazio della risposta anche se netto ritardo ... ----------------------------------------