================================================================================ Dati daq in waveform ================================================================================ AUTORE: 1608 DATA :02/01/2007 - 13:48:59 ---------------------------------------- Brevemente il mio problema: ho un daq che mi da i dati sottoforma di numeri (dobule). Come faccio a trasformarli in una waveform con i tempi corretti, per poterla "dare in pasto" ad un altro vi? ---------------------------------------- AUTORE: 1030 DATA :03/01/2007 - 08:02:42 ---------------------------------------- Esiste la funzione "Build Waveform" (nella functions palette sotto waveform). Crea una waveform passandogli le componenti t0, dt e data_values. ciao ---------------------------------------- ================================================================================ Problemi visualizzazioni immagini ================================================================================ AUTORE: 1728 DATA :02/01/2007 - 18:21:52 ---------------------------------------- Salve a tutti, premettendo che sono un nuovissimo utente di questo forum e un neofita per quanto riguarda il labview, chiedo il vostro aiuto nella speranza che perdoniate la mia pochissima esperienza sia di labview che di questo forum. Sto lavorando sulla mia tesi di laurea e devo riutilizzare in lavoro precedentemente fatto da un mio collega per la elaborazione di alcune immagini. Devo riutilizzare un subvi che data un immagine in scala di grigi in ingresso fa alcune elaborazioni su di essa e la riporta in uscita. Il mio problema è che se in uscita a questo blocchetto subvi io metto un visualizzatore di immagine non mi visualizza niente ma solo un immagine nera. Allego a questo post un file .zip contenente 3 file: - filtra_image.vi (il suddetto subvi); - prova senza filtro.vi (un mio .vi che che calcola l'absolute difference tra due immagini e la visualizza) - prova per filtro.vi (si tratta del file prova senza filtro.vi con in aggiunta all'interno l'uso del blocchetto filtra_image.vi) Come posso fare quindi a visualizzare nel front panel l'uscita corretta del blocchetto filtra_image.vi? Certo di un vostro pronto aiuto resto disponibile per eventuali domande e porgo a tutti i miei più sinceri auguri di buon anno. Andrea. P.S.: I .vi sono stati realizzati con Labview 7.1 e Imaq Visione 7.0 ---------------------------------------- AUTORE: 1728 DATA :03/01/2007 - 10:32:52 ---------------------------------------- Nella speranza che qualcuno mi aiuti (sarebbe davvero importante per me visto che mi sono bloccato su questo problema apparentemente banale) invio anche due foto con cui ho testato i sopracitati .vi. Please help me !!! \":?\" ---------------------------------------- AUTORE: 1728 DATA :05/01/2007 - 15:12:10 ---------------------------------------- \":(\" \":(\" \":(\" \":(\" \":(\" \":(\" Non c'è nessuno che mi aiuta \":?:\" \":?:\" \":?:\" Il tempo stringe e ancora non ho risolto niente... Vi prego...provateci... \":|\" \":|\" \":|\" ---------------------------------------- AUTORE: 482 DATA :08/01/2007 - 09:16:21 ---------------------------------------- ..ma ciao! ho dato un occhiata al tuo vi... a em sembra tutto corretto..c'e' un solo grande problema... filtri troppo e per questo ti esce un immagine nera. fai una cosa... apri il tuo vi principale e apri anche il vi del filtro. fai girare una volta il programma, dopodichè chiudi pure il resto e tieni aperto solo il filtro. Adesso metti un bel probe sull'immagine tra ogni vi del filtro. Noterai subito che con i parametri di range che hai dato al treshold ottieni subito un immagine nera...e nerà sarà in tutti gli altri di conseguenza. Io ho impostato 10 e 220 e qualcosa si vede...ma subito dopo quando vai a fare il particle filter quelle poche cose che aveva rilevato te le rielimina e cosi' via fino alla fine del "filtro". Quindi direi che il problema non è di programmazione ma di parametrizzazione. Fai delle prove poi dimmi! ---------------------------------------- ================================================================================ Fieldpoint e LabVIEW 8.0 ================================================================================ AUTORE: 46 DATA :03/01/2007 - 09:16:35 ---------------------------------------- Buongiorno e Buon Anno a tutti. Mi sta capitando questo problema. Finora ho lavorato con LV versione 7.1 utilizzando dei Fieldpoint che erano stati configurati attraverso il disco "Fieldpoint for Fieldpoint RT controllers versione 4.1" In LV 7.1 mi trovavo con la paletta delle funzioni di misura che riservava anche un icona per accedere alle funzioni di I/O del fieldpoint e quindi era assai semplice utilizzare questi dispositivi. Durante le vacanze ho installato la versione 8.00 che avevo da tempo ma non avevo mai avuto modo di installare, ma mi sono accorto che l'icona del fieldpoint è scomparsa. Anche reinstallando dal disco fieldpoint sopra citato non cambia nulla, e non ho più modo di accedere alle comode funzioni del fieldpoint. Qualcuno saprebbe dirmi dove sto sbagliando ? Grazie e buona giornata Claudio ---------------------------------------- AUTORE: 247 DATA :03/01/2007 - 09:37:20 ---------------------------------------- Ciao, scarica dal sito NI ed installa i VI di libreria per Fieldpoint dedicati alla versione di LabVIEW che utilizzi (per la 8 [url=http://digital.ni.com/public.nsf/allkb/b62ba881d8ed1ff48625709e00680bf0:giiddgse]FieldPoint 5.0[/url:giiddgse]), io cmq ora per la 8.20 uso i 5.0.1. BYE. P.S. nota bene che se cambi versione di LabVIEW devi aggiornare anche il cFP! ---------------------------------------- AUTORE: 46 DATA :08/01/2007 - 15:38:18 ---------------------------------------- Ciao Grazie infinite per la risposta. Vado immediatamente e scaricare i driver A risentirci Grazie ancora Ciao Claudio ---------------------------------------- ================================================================================ cerco di salvare e crasha tutto ================================================================================ AUTORE: 1368 DATA :04/01/2007 - 12:14:47 ---------------------------------------- Ciao a tutti, e da questa mattina che sto diventando matto con labview, ho creato il mio bel programmino, non so cosa sia successo quando cerco di salvare mi crasha labview. non arrivo a capire che ha perche non da nessun messaggio crasha e basta. idee?? ---------------------------------------- AUTORE: 645 DATA :04/01/2007 - 13:26:25 ---------------------------------------- Puoi postare un'immagine del Block Diagram per vedere cosa succede? ---------------------------------------- AUTORE: 1368 DATA :04/01/2007 - 14:51:59 ---------------------------------------- che immagine scusa?? apro il vi principale e gia con l asterisco, faccio salva e crasha mi appare la classica schermata di winzoz se voglio inviare la segnalazione di errore e basta. sto rifacendo tutto. \":evil:\" \":evil:\" \":evil:\" ---------------------------------------- AUTORE: 645 DATA :04/01/2007 - 15:42:45 ---------------------------------------- Scusa pensavo che il problema di salvataggio riguardasse un'operazione di salvataggio e non il salvataggio del VI... ooppss... ---------------------------------------- AUTORE: 1368 DATA :04/01/2007 - 20:14:41 ---------------------------------------- scusami tu magari ho risposto in tono sbagliato, ma ho dovuto buttar via tutto e rifare, mi sale il sangue al cervello \":evil:\" \":evil:\" \":evil:\" ---------------------------------------- AUTORE: 1050 DATA :05/01/2007 - 11:27:15 ---------------------------------------- Hai provato a selezionare tutto il diagramma, fare copia ed incolla su un nuovo vi e salvare quello? a volte funziona... ---------------------------------------- AUTORE: 1368 DATA :05/01/2007 - 15:52:19 ---------------------------------------- no ma dopo aver rifatto tutto ho preso il vecchio vi, lo isolato è un event case che da fastidio ma non son riuscito a far nulla perche se cerco di cancellarlo crasha. amen ---------------------------------------- ================================================================================ 'case'...ino ================================================================================ AUTORE: 1596 DATA :04/01/2007 - 14:36:31 ---------------------------------------- salve a tutti e buon anno...il mio problema è questo:ho una 'sequence',in un frame viene generato un vettore che mi serve nella frame successiva...quest'ultima frame presenta al suo interno una 'case' ed è proprio qui che voglio mettere in ingresso il vettore suddetto...ho provato a collegare il vettore sul bordo della sequence ma poi non riesco ad inserirlo nella case della frame successiva...come si fa???grazie... \":(\" ---------------------------------------- AUTORE: 247 DATA :04/01/2007 - 16:06:46 ---------------------------------------- Ciao, devi passare l'array creando una sequence local, non un classico tunnel, clicca dx sul bordo della sequence, crea la local e poi collega il vettore, vedrai che nel primo frame la local ha freccia verso l'esterno mentre negli altri verso l'interno consentendoti di utilizzare il vettore. BYE. ---------------------------------------- AUTORE: 1596 DATA :04/01/2007 - 16:41:03 ---------------------------------------- eccellente!!!...grazie APOLLON \":D\" ... ---------------------------------------- ================================================================================ applicare H(s) funzione di trasferimento ================================================================================ AUTORE: 443 DATA :05/01/2007 - 10:48:13 ---------------------------------------- Salve a tutti, per la mia applicazione ho un segnale acquisito a pacchetti nel tempo (es. 4096 punti). Vorrei applicare a questo segnale, ad un pacchetto per volta, un'equazione di trasferimento data H(s) nel dominio di Laplace. Ho pensato di - trasformare il segnale dal dominio tempo in Laplace (x(t) -> X(s)) - moltiplicarlo per la mia fdt (Y(s)=H(s)*X(s)) - anti-trasformare nel tempo (Y(s) -> y(t)) tuttavia non è presente il blocco che mi permette di anti-trasformare in Labview. qualcuno di voi saprebbe come posso fare. GRAZIE ---------------------------------------- AUTORE: 2270 DATA :04/12/2007 - 18:29:56 ---------------------------------------- Ciao salvai.m. Mi trovo nella tua stessa situazione. Potresti dirmi se sei riuscito a risolvere il problema ? ---------------------------------------- AUTORE: 443 DATA :05/12/2007 - 08:35:51 ---------------------------------------- Ciao Mario, alla fine ho fatto in questo modo: con Matlab ho converito la funzione di trasferimento (nel mio caso una ponderazione in frequenza) trovando i coefficienti "Reverse Coefficients" e "Forward Coefficients" (ho utilizzato una funzione per Filter Design). Poi li ho utilizzati con il blocco "IIR Cascade Filter" per applicare la mia funzione di trasferimento. Ho poi verificato che, dando una sinusoide a differenti frquenze, l'attenuazione ottenuta è corretta. In alternativa ci dovrebbe essere il pacchetto "Digital Filter Design" che permette di creare filtri e funzioni di trasferimento....ahimè a pagamento. ---------------------------------------- ================================================================================ Finestra in primo piano ma non attiva ================================================================================ AUTORE: 724 DATA :06/01/2007 - 20:44:54 ---------------------------------------- Esiste il modo per avere un front panel in primo piano ma non attivo? Il front panel principale deve rimanere in secondo piano ma è quello su cui l'operatore deve interagire. Il front panel in primo piano è una piccola finestrella sulla quale dovrebbero venir visualizzati alcuni valori dipendenti dalle azioni svolte sul front panel pricipale (quello in secondo piano ma attivo). Grazie, Cesare ---------------------------------------- AUTORE: 724 DATA :06/01/2007 - 22:59:56 ---------------------------------------- La soluzione è: Make Window Always on Top.vi che trovate in allegato assieme ad altre utilità scaricate ormai qualche anno fa dal sito NI ---------------------------------------- AUTORE: 724 DATA :06/01/2007 - 23:06:48 ---------------------------------------- Il file zip (dll e librerie LV 6.0) è troppo grande. Il link NI è questo: http://digital.ni.com/public.nsf/allkb/ ... 3f006ee656 ---------------------------------------- AUTORE: 482 DATA :08/01/2007 - 08:53:15 ---------------------------------------- [quote="ghianda":whs0aq2t]Il front panel in primo piano è una piccola finestrella sulla quale dovrebbero venir visualizzati alcuni valori dipendenti dalle azioni svolte sul front panel pricipale[/quote:whs0aq2t] Domanda.... Perchè questi valori devono stare su di un altra finestra? Perchè non possono essere semplicemente degli indicatori? In alternativa potresti far visualizzare il pannello del sottovi all'interno della finestra del VI principale. La domanda principale pero' è la prima. Se nel secondo vi hai solo indicatori perchè devi avere un altro pannello? ---------------------------------------- AUTORE: 724 DATA :08/01/2007 - 21:10:02 ---------------------------------------- Il pannello pricipale contiene principalmente un XYwaveformgraph che può contenere fino a 24 plot. Il sub pannello è una sorta di popup a richiesta che i valori dei 24 plot in corrispondenza della x puntata da un cursore sul panneelo principale. Fatto in questo modo l'utente posizionerà dove vuole la finestra dei cursori e la chiuderà all'occorenza. (uso ancora la versione 6.0) Ciao, Cesare ---------------------------------------- ================================================================================ array ================================================================================ AUTORE: 1596 DATA :07/01/2007 - 18:58:27 ---------------------------------------- salve a tutti...non esiste un array function che prende 2 o più array ordinati e li fonde in un solo array ordinato? ---------------------------------------- AUTORE: 645 DATA :08/01/2007 - 08:35:49 ---------------------------------------- C'è il blocco "Build Array" che forse fa al caso tuo: prende i vettori che inserisci come input e crea un unico vettore di output. ---------------------------------------- AUTORE: 1596 DATA :08/01/2007 - 09:06:30 ---------------------------------------- ...ti ringrazio magicbotolo...ma credo di no...il build array mi da un array bidimensionale in uscita...non fonde i due array!!! \":(\" ---------------------------------------- AUTORE: 1168 DATA :08/01/2007 - 09:20:11 ---------------------------------------- Trucco: tasto destro sul blocchetto e checca "concatenate inputs"! Ciao P! ---------------------------------------- AUTORE: 129 DATA :08/01/2007 - 09:50:03 ---------------------------------------- In alternativa puoi usare insert in to array. Ti allego l'esempio con i due metodi. ---------------------------------------- AUTORE: 1596 DATA :08/01/2007 - 11:34:19 ---------------------------------------- pio&nicola: grazie ragazzi...proprio quello ke mi serviva \":D\" magicbotolo:è vero me lo avevi già detto ma nn conoscevo l'opzione per concatenare i 2 array. ---------------------------------------- AUTORE: 645 DATA :08/01/2007 - 14:03:41 ---------------------------------------- Ottimo, l'importante è che funziona! \":D\" ---------------------------------------- ================================================================================ Ripulire un programma ================================================================================ AUTORE: 1368 DATA :08/01/2007 - 10:41:53 ---------------------------------------- Ciao a tutti, ho modificato un programma non fatto da me, ho visto che ha parecchi VI, come posso fare per vedere se son tutti collegati tra loro o se magari posso anche cancellarne?? Senza stare a controllarli uno per uno che mi ci vuole un eternita?? grazie ---------------------------------------- AUTORE: 1030 DATA :08/01/2007 - 11:52:07 ---------------------------------------- se vai sulla barra strumenti sotto VIEW -> VI Hierarchy ti si apre un diagramma con la gerarchia e le relazioni tra i vari VI dell'applicazione. ciao ---------------------------------------- AUTORE: 1368 DATA :08/01/2007 - 13:40:07 ---------------------------------------- visto ora vediamo se riesco a trovare i file isolati ed a cancellarli ---------------------------------------- AUTORE: 247 DATA :08/01/2007 - 14:41:09 ---------------------------------------- Ciao, [quote:2dm9s1pj]Senza stare a controllarli uno per uno che mi ci vuole un eternita??[/quote:2dm9s1pj] Prendere in mano un sw fatto da altri e cancellarne parti senza "stare a controllarli"? ...Dubito che sia una scelta saggia.... \":o\" Ripensaci finchè sei in tempo!!! \":D\" BYE. ---------------------------------------- AUTORE: 1368 DATA :08/01/2007 - 15:04:03 ---------------------------------------- appunto sto cercando un modo indolore di farlo \";)\" ---------------------------------------- ================================================================================ problema visualizzazione ================================================================================ AUTORE: 1308 DATA :08/01/2007 - 10:42:33 ---------------------------------------- acquisisco un ingresso analogico, faccio il test del segnale senza mettere una scala e il valore cresce in modo corretto, mi costruisco una scala usando la tabella 2 volt-0bar, 10 volt-400 bar. lo visualizzo con un gauge scala 0-400 , i valori rilevati sono corretti ma la pressione visualizzata non sale oltre i 165 bar, in realta con un altro sensore in parallelo so di essere a oltre 200. dove sto sbagliando ? (settaggio: tipo segn RSE aliment 0-10 volt sample continous) ---------------------------------------- ================================================================================ Variabili Globali ================================================================================ AUTORE: 1670 DATA :08/01/2007 - 15:57:03 ---------------------------------------- Ciao a tutti, vi scrivo per un dubbio sull'uso delle variabili globali. Sto scrivendo un programma in cui devo leggere e scrivere alcune impostazioni, di inizializzazione, di acquisizione percorsi di file ecc. ecc. .Questi dati naturalmente devono essere sempre recuperabili anche se si spegne il PC. Ho provato a implemetare il tutto con un cluster di piu variabili all'interno di una varibile globale, perche mi sembrava una soluzione elegante, ma quando esco da Lab View le variabili mi si azzerano. Sto sbagliando qualcosa o le variabili globali funzionano cosi ? E se e cosi c' e un'altra soluzione ho devo usare il solito file ini ? Grazie Mille \":o\" \":o\" \":o\" \":o\" ---------------------------------------- AUTORE: 927 DATA :08/01/2007 - 16:17:16 ---------------------------------------- Si funzionano proprio così... devi pensarci tu a salvare i dati su file. Ci sono i "configuration file VIs" per la gestione facile dei file INI. ---------------------------------------- AUTORE: 1030 DATA :08/01/2007 - 16:21:48 ---------------------------------------- Meglio appoggiarsi sempre ad un file che contiene tutti i dati di configurazione. Se però clicchi col tasto destro sugli indicatori della globale e vai su "data Operations" -> "Make current value default" puoi decidere qual è il valore di default del tuo indicatore. cia o ---------------------------------------- AUTORE: 645 DATA :08/01/2007 - 18:45:04 ---------------------------------------- Secondo me tornano utili i vecchi file di testo: io per caricare impostazioni iniziali utilizzo file ".txt" dove ogni riga corrisponde ad un parametro (oppure parametri separati da "\"... le possibilità sono tante). In questo caso però i dati non sono criptati (a meno di rendere invisibile il file cliccando sulle proprietà (da Windows) e selezionando "Nascosto". ---------------------------------------- AUTORE: 838 DATA :09/01/2007 - 07:42:14 ---------------------------------------- io uso file di testo in formato binario, facili da scrivere e leggere senza dover analizzare il testo per separatori, conversioni di interi eccecc è una bella rottura, ma non ci sono alternative a meno che tu non voglia implementari il discorse del make current value default di un vi in edit mode \":D\" ---------------------------------------- AUTORE: 927 DATA :09/01/2007 - 08:25:25 ---------------------------------------- Non capisco cos'avete contro i file INI, ci sono i VI già pronti e non c'è assolutamente bisogno di analizzare il testo per separatori, conversioni di interi eccecc... Io utilizzo anche i file XML per le configurazioni più complesse, permettono di rappresentare anche dati multipli e annidati. Non ho usato però i VI di sistema, perchè devono rispettare il "LabVIEW XML schema" che non mi piace molto; mi sono fatto io dei VI più generici (per ora solo per la lettura dell'XML). ---------------------------------------- AUTORE: 645 DATA :09/01/2007 - 09:15:27 ---------------------------------------- Io personalmente non ho nulla contro i file ".ini". Semplicemente uso i file di testo. Ho provato una volta anche con gli schemi XML e un'altra volta, per fare qualcosa di simpatico, ho provato a creare una pagina HTML-PHP da LabView nella quale l'utente doveva inserire i dati: praticamente il VI creava la pagina HTML, la richiamava, l'utente inseriva i dati in una serie di Form, la struttura PHP ricreava la pagina inserendo i dati in opportune sezioni e il VI leggeva queste sezioni. Molto carino... ma un po' troppo complicato per quello che dovevo fare. Anche se come esperimento è stato divertente! \":)\" ---------------------------------------- AUTORE: 1670 DATA :10/01/2007 - 11:29:43 ---------------------------------------- Grazie a tutti per le risposte sono state veramente utili. Ho fatto un pò di prove: con "Make current value default" la soluzione è molto veloce, ma non va bene se si devono cambiare e salvare le impostazioni in run-time; con la configuration file Vls è forse il modo più professionale sopratutto se si devono gestire molte variabili e in più punti del programma;per la mia semplice applicazione visto che devo gestire solo una decina di variabili e in un solo punto, ho preferito creare un semplice file su cui vado a scrivere e leggere il mio cluster di variabili. La cosa funziona bene è compatta e sopratutto facile da ricordare (cosa non trascurabile per la mia limitata memoria). Vi tormenterò ancora perchè con LabView sono solo all'inizio e prevedo in futuro "giorni terribili". Buon lavoro a tutti \":lol:\" \":lol:\" ---------------------------------------- ================================================================================ Colorare con motivi ================================================================================ AUTORE: 927 DATA :08/01/2007 - 16:02:05 ---------------------------------------- E' possibile riempire un'area del front panel (un'immagine, un indicatore, una decorazione o quel che è) con un motivo grafico ripetitivo (texture o pattern come dicono gli yankee), tipo a scacchetti o a righe...? Tra le immagini del modulo DSC c'è anche una sezione "textures" che sembra avere questo scopo, ma non capisco come utilizzarle ---------------------------------------- AUTORE: 4 DATA :16/01/2007 - 11:44:34 ---------------------------------------- puoi fare customize di un controllo e importare le texture come sfondo. Ciao ---------------------------------------- AUTORE: 927 DATA :22/01/2007 - 13:30:02 ---------------------------------------- Io vedo solo le opzioni "import from file" e "import from file at same size", e nessuna delle due ripete il motivo, l'immaginetta viene mostrata solo una volta (eventualmente allargata) ---------------------------------------- ================================================================================ write to spreadsheet file ================================================================================ AUTORE: 1596 DATA :08/01/2007 - 17:13:59 ---------------------------------------- salve a tutti...vorrei sapere se è possibile avere nel file txt in uscita da un 'write to spreadsheet file' una visualizzazione a sole 2 colonne.Mi spiego meglio:ho in ingresso al WSF due vettori che ho preventivamente inserito in un build array per poi dare l'uscita da tale build array in pasto al WSF...quello che ottengo è visualizzato nell'allegato,io vorrei avere solo 2 colonne ...una per un vettore e una per l'altro. ---------------------------------------- AUTORE: 645 DATA :08/01/2007 - 18:55:16 ---------------------------------------- Se tu concateni i due vettori ne ottieni uno solo. Quando passi questo vettore al blocco "Write to Speadsheet File" ottieni una riga contenente tutti i dati (o una colonna a seconda di come imposti il morsetto "Transpose"). Se tu togli la voce "Concatenate Inputs" dal blocco "Build Array" e passi l'array risultante al blocco "Write to Speadsheet File" come ingresso "2d Data" ottieni un file dove le colonne (o le righe, modifica il morsetto "Transpose") sono divise. Potresti usare due "Build Array": uno per concatenare e uno per assemblare (in questo secondo caso ottieni un array a 2 dimensioni che puoi passare al "Write to Speadsheet File"). ---------------------------------------- AUTORE: 1596 DATA :09/01/2007 - 09:52:53 ---------------------------------------- grazie magicbotolo...ho provato entrambi i casi...poichè il vettore è molto lungo me lo spiaccica in più colonne...cmq ho visto ke mi sta bene anke così...la butto lì:sarà forse questione di formattazione del file txt ,boh...grazie ancora! \":)\" ---------------------------------------- ================================================================================ Calendario annuale ================================================================================ AUTORE: 1368 DATA :09/01/2007 - 08:42:16 ---------------------------------------- Ciao a tutti, devo creare un calendario annuale per comandare il riscaldamento di un magazzino, tramite le activex son riuscito a creare un calendario, ma come posso fare per impostare che durante la settimana lavorativa esegua una certa seguenza e il sabato e la domenica spenga tutto, e magari che possa impostare anche lo spegnimento durante le vacanze . grazie ---------------------------------------- AUTORE: 645 DATA :09/01/2007 - 09:18:11 ---------------------------------------- Credo che tu debba combinare le funzioni relative al tempo (Time Stamp e blocchi di rilevamento dell'ora corrente) con il calendario creato. Per la decisione delle date potresti usare i controlli Time Stamp di LabView che mettono a disposizione un'interfaccia a calendario. Fai i confronti tra l'ora corrente rilevata dal VI e il calendario e a seconda di dove sei (temporalmente parlando) decidi cosa fare (con un Case). ---------------------------------------- AUTORE: 1368 DATA :09/01/2007 - 09:20:42 ---------------------------------------- \":o\" \":o\" \":o\" scusa ma lo sai che sono all inizio \":?\" mi faresti un piccolo esempio per favore?? grazie mille ---------------------------------------- AUTORE: 645 DATA :09/01/2007 - 09:42:46 ---------------------------------------- Effettivamente ho scritto una frase che faccio fatica a capire anche io... \":o\" ... sarà il raffreddore... comunque: ti allego un VI che determina ora e data correnti e poi presenta varie operazioni (confronto, estrazione delle informazioni, calcolo del giorno della settimana). In particolare il blocco che restituisce il giorno della settimana credo possa venirti utile. Puoi preparare un Case che controlla questo blocco: se siamo nel sabato o nella domenica esegui le operazioni del weekend, altrimenti esegui le operazioni della settimana. ---------------------------------------- AUTORE: 1368 DATA :09/01/2007 - 09:53:25 ---------------------------------------- \":(\" \":(\" \":(\" io ho labview 8.0 non riesco a vederlo ---------------------------------------- AUTORE: 645 DATA :09/01/2007 - 10:00:16 ---------------------------------------- Ecco... ---------------------------------------- AUTORE: 1368 DATA :09/01/2007 - 10:16:43 ---------------------------------------- allego il vi. pero mi faceva comodo anzi di piu al cliente \":)\" che tramite il calendario che trovi nel VI, ti porti sul giorno che ti interessa, click e si apre una finestra dove vai ad impostare l accensione o spegnimento di quella giornata, ancora meglio sarebbe fare piu accensioni o spegnimenti per la giornata. che dici? ---------------------------------------- AUTORE: 129 DATA :13/01/2007 - 08:12:40 ---------------------------------------- Ti allego l'immagine con una traccia, per creare il VI che chiedi. In pratica si basa su array dove memorizzi il preset e la data abbinata. Quando il cliente cerca la data con il calendario il VI cerca il preset corrispondente. Devi affinarlo un pò, crenado una maschera per inserimento/lettura e abbinamento data. Spero ti abbia aiutato. ---------------------------------------- AUTORE: 1368 DATA :16/01/2007 - 16:57:55 ---------------------------------------- non riesco a trasformare da data a time stamp, allego il codice. ciao ---------------------------------------- ================================================================================ fp set data & time ================================================================================ AUTORE: 595 DATA :09/01/2007 - 08:42:43 ---------------------------------------- Soero che qualcuno mi possa aiutare in quanto è un po' che ci combatto ma senza risultati. Il problema è che il mio field point 2015 ha data e orario sballati; ho configurato su Max il server time con l'IP del mio Pc ma nulla da fare. Ho provato anche ad uusare il get time che si trova sulle palette di function ma anche qui non ho l'orario esatto, premetto che ho già settato l'ora secondo la latitudine europea. Per me è indispensabile avere l'ora in quanto acquisisco i dati sul mio fp con tanto di ora e data che poi registro sul vi che è invece presente sul mio pc ---------------------------------------- AUTORE: 927 DATA :09/01/2007 - 10:09:04 ---------------------------------------- Strano, il timeserver dovrebbe funzionare... Prova a reinstallare il software Fieldpoint 5.0 sul PC. Sennò nel modulo real-time di Labviù 7.1 c'è il VI "RT Set Date and Time" che serve appunto a cambiar la data a mano (deve girare a bordo del FP). Nella 8.2 per oscuri motivi sembra non esserci... ---------------------------------------- AUTORE: 595 DATA :09/01/2007 - 10:41:42 ---------------------------------------- Grazie Ho provato a reinstallare field point 5.01 ma nulla da fare. Il get time c'è su 8.2 ma impostando a mano l'ora non la vede proprio in questo momento l'ora del mio fp è " 16.25" ---------------------------------------- AUTORE: 927 DATA :09/01/2007 - 10:49:19 ---------------------------------------- Il "get time" non c'entra niente, serve per leggere l'ora, non per scriverla... Cmq ti ho allegato l'exe (scritto in 7.1) che io uso di solito per cambiare l'ora nei FP, prova se gira anche da te ---------------------------------------- AUTORE: 595 DATA :09/01/2007 - 13:33:31 ---------------------------------------- purtroppo non funziona manca una subroutine external not found error 21 grazie mille comunque ---------------------------------------- AUTORE: 927 DATA :09/01/2007 - 13:41:53 ---------------------------------------- Questa? ---------------------------------------- AUTORE: 595 DATA :09/01/2007 - 14:38:19 ---------------------------------------- mi dà accesso negato il protocollo labview rt comunication control version mismatch quint5ing application porca miseria ---------------------------------------- AUTORE: 927 DATA :09/01/2007 - 15:23:42 ---------------------------------------- Non so che dirti... Qui da me c'è anche la 7.1 installata e forse è per questo che funziona, sebbene sia un exe... Ma tornando al problema iniziale: in che senso registri i dati sul vi che è presente sul tuo pc? Vuoi dire che il FP non è indipendente ma c'è sempre il pc collegato che lavora? Se è così, perchè non usi l'orario del pc quando salvi i dati, almeno finchè non risolvi il problema? ---------------------------------------- AUTORE: 595 DATA :10/01/2007 - 08:32:44 ---------------------------------------- anche sul mio pc è installato il 7.1, comunque a questo punto credo che dipenda dai driver. PEr utilizzare al meglio l'FP 2015 devo costruire un Project in cui costruisco due Vi uno on FP dove acquisisco i dati con tanto di ora e data e tramite una shred variable leggo visualizzo e registro (write binary) i dati on my pc (disegnato sinottico dell'impianto) anche perchè sull'FP non ho molta memoria a disposizione; sbaglio? ---------------------------------------- AUTORE: 927 DATA :10/01/2007 - 09:20:33 ---------------------------------------- Ci sono tanti modi di fare le cose, non potrei dire se sbagli! Comunque SE non ti interessa salvare i dati su file dentro il FP, quindi il FP non fa altro che passarli al PC (se il pc si scollega l'acquisizione va a putt...), allora quando il PC salva un dato potrebbe usare semplicemente la propria ora attuale, al massimo c'è un ritardo di frazioni di secondo. ---------------------------------------- AUTORE: 595 DATA :10/01/2007 - 10:23:05 ---------------------------------------- ok ti ringrazio spero comunque di riuscire PRIMA O POI ad aggiornare l'orario sul FP ---------------------------------------- ================================================================================ Sine ================================================================================ AUTORE: 955 DATA :09/01/2007 - 09:32:40 ---------------------------------------- Salve, qualcuno di voi sa dirmi bene come funziona questo blocchetto dell'FPGA? Sinceramente non riesco a capire che tipo di parametri passargli e come settarlo. Ho visto nell'help ma è davvero poco chiaro...per non parlare dell'esempio che il labview mette a disposizione...non sono riuscito minimamente a capire da dove prende tutti quei valori \":roll:\" plz help ---------------------------------------- AUTORE: 955 DATA :09/01/2007 - 09:47:13 ---------------------------------------- il blocco per l'esattezza si chiama sine generator \":wink:\" ---------------------------------------- AUTORE: 955 DATA :09/01/2007 - 11:21:00 ---------------------------------------- con il blocco sine che utilizzo alla fine sembra non succedere nulla \":roll:\" cioè vedo delle oscillazioni della forma d'onda sull'oscilloscopio ma credo sia un problema di quest'ultimo perchè le visualizza sia quando ho il blocco sine generator nell'FPGA che quando non c'è... \":roll:\" qualcuno ha qualche suggerimento? \":cry:\" ---------------------------------------- AUTORE: 955 DATA :15/01/2007 - 15:59:47 ---------------------------------------- ho pensato di porre a zero i parametri della sinusoide origaria per verificare se l'FPGA genera il segnale sinusioidale interarmonico...beh in pratica non visualizzo nulla...quindi credo che il blocco non funzioni eppure l'ho settato come sta fatto nell'esempio del labview...perchè non va? vi prego aiutatemi \":cry:\" ---------------------------------------- ================================================================================ Data binding e Type def ================================================================================ AUTORE: 927 DATA :09/01/2007 - 09:56:37 ---------------------------------------- Ho creato dei tipi di indicatore (.ctl) come Strict Type Def. Poi ne piazzo diversi nel mio sinottico e li vorrei bindere a vari canali (uso le shared var ma sarebbe lo stesso col datasocket). Però non me lo fa fare... Se li clicco col destro, tra le proprietà degli indicatori c'è solo Appearance e Documentation. Se vado alla Strict Type Def, lì posso bindere, ma il binding è unico per tutti, che me ne faccio di tanti indicatori che mi mostrano tutti lo stesso canale?? Non si possono usare data binding e type definition insieme? Che cavolata è? \":(\" ---------------------------------------- AUTORE: 4 DATA :09/01/2007 - 14:17:21 ---------------------------------------- ho fatto una prova veloce, 2 bool definiti come strict type def legati a 2 variabili bool via datasoket (opcdemo) e funzionano indipendenti uno dall'altro. Ciao ---------------------------------------- AUTORE: 927 DATA :09/01/2007 - 14:28:05 ---------------------------------------- Con Labviù 8? Se era l'8 spiegami come hai fatto... perchè la pagina "data binding" non appare, e anche l'opzione Datasocket è in quella pagina. ---------------------------------------- AUTORE: 4 DATA :09/01/2007 - 14:39:14 ---------------------------------------- ahah bella questa! io ho fatto il test con la 7.1 tutto ok. lo stessto con la 8.2 funzionava ma non vedevo la pagina dei binding fino a che non ho modificato lo strict type def in type def! pazzesco! ---------------------------------------- AUTORE: 927 DATA :09/01/2007 - 15:06:37 ---------------------------------------- Grazie. Insomma sembra essere l'ennesimo difetto della versione 8... Non mi viene in mente una valida ragione per non mostrare quella pagina quando si usa una strict type def!! A proposito anche sul forum NI ho trovato qualcosa: http://forums.ni.com/ni/board/message?b ... .id=160606 ---------------------------------------- AUTORE: 927 DATA :10/01/2007 - 15:03:10 ---------------------------------------- Ho trovato il modo di raggirare il problema: Si fa un momentaneo Replace del controllo con un altro qualsiasi non strict type def (dello stesso tipo, es. un booleano con un booleano). Tutte le pagine ridiventano disponibili: ora si può bindere o datasockare. Infine, si rifà un Replace e si fa tornare il controllo all'aspetto strict type def iniziale. Ora il controllo è binto e tipizzato e funziona! Mi sembra chiaro che è solo un baco dell'interfaccia, forse è il caso di segnalarlo alla NI? ---------------------------------------- AUTORE: 927 DATA :10/01/2007 - 15:30:27 ---------------------------------------- Frena... c'è un modo anche migliore di raggirarlo: Tools -> Shared var -> Front panel binding mass config Quello sembra funzionare anche per i controlli tipizzati ---------------------------------------- ================================================================================ Funzioni Matematiche!!!!! ================================================================================ AUTORE: 1733 DATA :10/01/2007 - 10:39:44 ---------------------------------------- Ciao a tutti! \":lol:\" Mi chiamo riccardo e questo è il mio primo post all'interno del forum... Volevo sapere da voi come implementare funzioni matematiche all'interno di un progetto labview ( Es. calcolare la velocità dati spazio e tempo inseriti in due caselle di testo) Grazie dell'attenzione Ciaozzzz \":D\" ---------------------------------------- AUTORE: 1030 DATA :10/01/2007 - 11:02:09 ---------------------------------------- Ti consiglio di inziare con la lettura di un bel manuale LabVIEW! ciao ciao ---------------------------------------- ================================================================================ strip chart & frequency counter ================================================================================ AUTORE: 1734 DATA :10/01/2007 - 12:50:13 ---------------------------------------- Da nuovo frequentatore di questo group, mando un saluto a tutti! Sto cercando di emulare un software per l'acquisizione di segnali elettrofisiologici e coerentemente col mio background medico-farmacologico, Labview mi affascina ma mi fa sentire anche estremeamente zuccone! Dopo MOLTO tempo sprecato a capire come funziona e cosa fare, mi trovo di fronte ad un quesito forse elementare ma per me essenziale per capire se mi sto rompendo le corna inutilmente o se il mio problema ha soluzione. Faccio acquisizione in strip chart mode di un segnale caratterizzato da spikes irregolari (sono neuroni, non condensatori!) che hanno frequenza da 0.1 a max 10 hz. Finestra di visualizzazione di 40 secondi frequenza di acquisizione 2khz. Sono anche riuscito a mettere in questa finestra una threshold mobile per discriminare i segnali neuronali dal rumore di fondo. Degli spikes selezionati poi misuro la frequenza nell'ambito di una finestra mobile di 10 secondi. Quindi lo chiamerei frequency counter. Questo mi serve per determinare se il trattamento che sto applicando a queste cellule modifica la loro frequenza di scarica che normalmente si stabilizza sui 2-4 hz. Quindi per giudicare se il tutto è stabile devo avere presente il trend di almeno 30-40 minuti. Nel software che utilizzavo in precedenza, a lato della finestra strip chart ponevo un'altra finestrina tipo strip chart pure questa ma molto più lenta, avendo appunto un asse x con uno span di 40 minuti, per seguire appunto il valore progressivo del frequency counter. Quello che non riesco a fare è appunto questa doppia rappresentazione, riuscendo al massimo ad avere la finestra del segnale veloce, invece che in strip chart, solo come episodica dei frames di 40 secondi di acquisizione, cosa che seppur funzionante non è quello che voglio. Mi farebbe perciò piacere sapere da chi SA se questo mio tentativo di riproduzione è possibile o no, e se lo è se è cosa molto complessa (fuori dalla mia portata quindi) o invece elementare. Scusate il lungo messaggio, ma per la sintesi non ci sono molto portato (oltre che per labview). Allego una screen capture del software che utilizzavo perfar capire un po meglio la cosa. grazie. ---------------------------------------- ================================================================================ File IGS ================================================================================ AUTORE: 1045 DATA :10/01/2007 - 13:18:15 ---------------------------------------- Salve, ho un file .igs usato dal software 3D CATIA contenente un particolare di disegno meccanico 3D che dovrei leggere in labview 8 al fine di importare alcuni dati in esso contenuti.In particolare dovrei leggere i dati e esportare alcuni di questi in formato excel. Qualcuno sa dirmi se ciò è fattibile e come. Ringrazio quanti leggeranno questa richiesta di aiuto. Wally ---------------------------------------- ================================================================================ carattere di controllo ================================================================================ AUTORE: 1317 DATA :10/01/2007 - 14:14:46 ---------------------------------------- ciao a tutti.Dovrei fare uno Xor di una serie di byte trasmessi in esadecimale. In totale sono tre: 02H, 23H, 03H. Utilizzando la conversione stringa binario e facendo lo Xor dei primi due valori e facendo di seguito lo Xor del risultato con il terzo ottengo un valore sbagliato. Qualcuno sa dirmi il perchè?grazie a tutti ---------------------------------------- AUTORE: 384 DATA :11/01/2007 - 09:05:32 ---------------------------------------- Mi sembra di ricordare che l'operatore xor non gode della proprietà associativa. ---------------------------------------- AUTORE: 927 DATA :11/01/2007 - 09:58:28 ---------------------------------------- Associativo lo è, tant'è che puoi usare anche il blocco Compound Arithmetic per fare contemporaneamente lo XOR di tutti e 3. Perchè venga sbagliato non ho idea, forse è meglio se alleghi il sorgente ---------------------------------------- AUTORE: 1317 DATA :11/01/2007 - 10:51:12 ---------------------------------------- si si infatti è associativo. L'errore (come ogni volta banale) era nel fatto che la conversione decimanle/esadecimale forniva 2 mentre lo Xor necessitava del carattere 02 per ottenere il risultato che aspettavo. ---------------------------------------- ================================================================================ scrivere una tabella in un file ================================================================================ AUTORE: 1368 DATA :10/01/2007 - 14:41:43 ---------------------------------------- Ciao a tutti, eccomi qua con un nuovo problema, devo scrivere una tabella in un file che non sia un foglio excell perche il cliente non ha office, stavo usando i file binari, dove riesco a scrivere ma non ha leggere, avete qualche consiglio?? grazie a tutti ---------------------------------------- AUTORE: 927 DATA :10/01/2007 - 15:08:07 ---------------------------------------- A parte che a leggere dovresti riuscirci \":lol:\" Cmq usa un file di testo con i campi separati da virgola, TAB o simili, del tipo: 1,2,3 4,5,6 Ci sono già pronte le funzioni Read e Write to Spreadsheet. Poi è comodo perchè all'occorrenza lo leggi anche con Excel o col Blocco note. ---------------------------------------- AUTORE: 1368 DATA :10/01/2007 - 15:26:43 ---------------------------------------- qua come posso fare ?? e sempre il famoso calendario \":lol:\" ---------------------------------------- AUTORE: 927 DATA :10/01/2007 - 16:23:25 ---------------------------------------- Non ho guardato la logica del VI ma leggere/scrivere la tabella è ultrafacile ---------------------------------------- ================================================================================ Impostazioni generali ================================================================================ AUTORE: 927 DATA :11/01/2007 - 09:55:47 ---------------------------------------- E' possibile cambiare da programma le impostazioni generali di Labviù(quelle che normalmente stanno nel file labview.ini, o negli ini specifici degli exe)? In particolare mi interesserebbe cambiare il colore e la durata del lampeggio. ---------------------------------------- AUTORE: 645 DATA :11/01/2007 - 10:02:46 ---------------------------------------- Quale lampeggio intendi? ---------------------------------------- AUTORE: 927 DATA :11/01/2007 - 10:39:29 ---------------------------------------- Tutti i controlli hanno la proprietà "Blinking" che li fa lampeggiare (si imposta solo coi property node, nella pagina delle proprietà non c'è). COME lampeggiano però è un'impostazione generale di tutto labviù ---------------------------------------- AUTORE: 1168 DATA :11/01/2007 - 13:06:12 ---------------------------------------- Per il colore, lo puoi specifare nelle opzioni tools->Options-Colors. Basta togliere il check dalla casellina "use default colors" Per la frequenza di lampeggio non so. Ciao P! ---------------------------------------- AUTORE: 927 DATA :11/01/2007 - 13:21:56 ---------------------------------------- Si lo so... la domanda era se è possibile cambiarlo da programma! Per la cronaca, la frequenza di lampeggio si imposta nella pagina "Front Panel" delle opzioni. ---------------------------------------- AUTORE: 1168 DATA :11/01/2007 - 13:25:49 ---------------------------------------- Mi sembrava di coglierti in castagna! \":D\" ---------------------------------------- AUTORE: 927 DATA :11/01/2007 - 13:47:14 ---------------------------------------- eeeeeeeeeh non è così facile \":D\" ---------------------------------------- ================================================================================ write mesurament ================================================================================ AUTORE: 1308 DATA :11/01/2007 - 13:10:39 ---------------------------------------- ho creato un VI ( non so se in modo corretto) con ao0 comando un convertitore che mi gestisce un elettrovalvola proporzionale. con ai3 leggo la pressione generata dalla elettrovalvola in funzione del comando di ao0. non riesco a salvare i dati rilevati su file, o meglio ci sono riuscito ma la colonna relativa all' ingresso mi segna solo 100 valori. ho provato a modificare alcune proprieta nel canale di ai3 ma non riesco ad ottenere il risultato desiderato ---------------------------------------- AUTORE: 4 DATA :16/01/2007 - 11:43:00 ---------------------------------------- Ciao, non vedo la parte di salvataggio dati nel tuo codice. Potresti spiegare meglio il tuo problema? Ciao ---------------------------------------- AUTORE: 1308 DATA :23/01/2007 - 21:31:04 ---------------------------------------- ti ringrazio tantissimo della tua disponibilita ma sono riuscito a risolvere il problema. ciao ---------------------------------------- AUTORE: 129 DATA :25/01/2007 - 17:58:12 ---------------------------------------- Il forum si basa sulla condivisione dei problemi e delle soluzioni, per potenziare un comune bagglio, nè gli utenti nè tantomeno gli amministratori ricevono compensi; per questo è una buona norma per contribuire positivamente al forum, di inserire le soluzioni ai problemi risolti, magari in futuro qualcun'altro troverà soluzione ad un problema analogo. Ti prego di allegare il come hai risolto per non lasciare questo topic una questione irrisolta. Grazie,Nicola ---------------------------------------- AUTORE: 1308 DATA :25/01/2007 - 21:55:54 ---------------------------------------- [quote="nicola":2ty6ubvd]Il forum si basa sulla condivisione dei problemi e delle soluzioni, per potenziare un comune bagglio, nè gli utenti nè tantomeno gli amministratori ricevono compensi; per questo è una buona norma per contribuire positivamente al forum, di inserire le soluzioni ai problemi risolti, magari in futuro qualcun'altro troverà soluzione ad un problema analogo. Ti prego di allegare il come hai risolto per non lasciare questo topic una questione irrisolta. Grazie,Nicola[/quote:2ty6ubvd] si hai ragione e mi scuso, in realta non ho scritto nulla di come ho risolto perche era solo questione di spostare un segno di spunta nel settaggio del write mesurament. ora non ricordo piu esattamente pero se non erro gli ho detto di usare solo un testo per gli header delle colonne e da quel momento ha salvato tutti i punti acquisiti. ora ho il problema invcerso, riaprendo il file salvato con read mesurament mi visualizza solo i primi cento valori acq e non tutti quelli salvati. ---------------------------------------- ================================================================================ generazione report ================================================================================ AUTORE: 1738 DATA :11/01/2007 - 14:08:01 ---------------------------------------- ho installato il labview 8.2, mi hanno detto che esiste un express che ti permette di generare dei report utilizzando dei modelli in word in formato .dot come si fà? grazie ---------------------------------------- AUTORE: 4 DATA :15/01/2007 - 21:01:32 ---------------------------------------- ciao e benvenuto. siceramente non sono un grande estimatore dei VI express e quindi non li conosco molto ma mi sembra strano che ce ne sia uno che genera dei report word... già solo per il fatto che NI vende un toolkit apposta per questo. Doanda da 1M di $$$ chi te l'ha detto? Ciao ---------------------------------------- AUTORE: 1427 DATA :16/01/2007 - 09:28:53 ---------------------------------------- [quote="frank1973":27zdz2dc]ho installato il labview 8.2, mi hanno detto che esiste un express che ti permette di generare dei report utilizzando dei modelli in word in formato .dot grazie[/quote:27zdz2dc] come ti hanno gia' risposto immagino che il tuo interlocutore si riferiva Report Generator Toolkit che non fa parte del pacchetto base ---------------------------------------- ================================================================================ Labview e Modbus ================================================================================ AUTORE: 838 DATA :11/01/2007 - 15:12:59 ---------------------------------------- nel prossimo progetto devo comunicare con apparecchiature via modbus ethernet sia con lw 7.1 che con l'8.2 avete già qualche bella info/link/libreria da darmi? \":wink:\" ---------------------------------------- AUTORE: 4 DATA :12/01/2007 - 08:48:12 ---------------------------------------- cerca [u:144wc8iz]modbus[/u:144wc8iz] su ilvg oppure guarda [url=http://www.ilvg.it/forum/viewtopic.php?t=524&highlight=modbus:144wc8iz]questa[/url:144wc8iz] discussione Ciao ---------------------------------------- AUTORE: 838 DATA :12/01/2007 - 09:19:52 ---------------------------------------- mitico, proverò le librerie della national \":P\" ---------------------------------------- AUTORE: 838 DATA :12/01/2007 - 09:38:23 ---------------------------------------- ho visto che per la 7.1 c'è solo la seriale, mentre per la 8.2 c'è anche l'ethernet che sia possibile salvare la versione 8.2 in 7.1? forse si \":?:\" ---------------------------------------- ================================================================================ azzeramento timer ================================================================================ AUTORE: 1739 DATA :12/01/2007 - 12:18:36 ---------------------------------------- Buona vita a tutti, sono un principiante di Labview (mi sembrava doveroso confessarlo immediatamente) che vorrebbe chiedere il vostro aiuto per un problema che, sicuramente, per voi sarà banale. Vi illustro brevemente la mia situazione: devo effettuare delle misure di conducibilità con un sensore. Collego tale sensore ad un multimetro digitale che labview riconosce. Ho provato a costruire un VI (che vi allego, almeno vedete il mio scempio...) e, quantomeno, riesco a visualizzare un grafico dinamico, un timer e riesco a salvare un output in un file di testo. Due problemi: 1) il file di testo prevede la presenza di una colonna dove (secondo me) dovrebbe risiedere un'informazione legata al tempo (mi piacerebbe vederlo espresso in millisecondi o multipli): si tratta però di una colonna di numeri interi (sembrano chiavi primarie, se mi passate il paragone con dati di un database di access...so che rabbrividerete).. 2) ogni volta che stoppo l'acquisizione, il timer sottostante il grafico non si azzera e questo mi comporta dei problemi per, ad esempio, prove consecutive nella stessa giornata ma distinte tra loro. Vi allego il mio file con il VI che vorrei utilizzare...spero nella vostra pazienza (per capire il mio problema, piuttosto mal espresso, già ne avrete fatto uso a piene mani immagino) e nella vostra cortesia nel rispondermi. Grazie davvero. Cordialmente Ciri ---------------------------------------- AUTORE: 927 DATA :15/01/2007 - 12:56:33 ---------------------------------------- 1) vedo che hai messo una colonna col tempo in secondi... non basta moltiplicare per mille?? 2) chi è il "timer sottostante il grafico"? L'asse delle ascisse? Potresti svuotare il grafico ad ogni avvio del programma; per far questo puoi usare un Property Node (tasto destro sul grafico -> Create -> ...), dove scrivi la proprietà History Data e ci metti ovviamente un array vuoto (destro -> Create -> Costant). ---------------------------------------- AUTORE: 1739 DATA :16/01/2007 - 08:14:33 ---------------------------------------- Mille grazie davvero!! Il timer non è l'asse delle ascisse ma proprio una casella sottostante il grafico in cui vedo l'avanzare del tempo....ora provo con il tuo sistema, ma mi sembra che decisamente possa essere la soluzione dei miei mali. Grazie davvero. Saluti Ciri ---------------------------------------- ================================================================================ comunicazione seriale ================================================================================ AUTORE: 1317 DATA :12/01/2007 - 14:24:58 ---------------------------------------- ciao a tutti!è possibile controllare se vi è effettiva comunicazione tra PC e strumento attraverso RS232 o se i problemi della non risposta sono dovuti alle impostazioni della porta piuttosto che alla stringa inviata?non ricevo segnale di ritorno dallo strumento e non capisco se è dato dalla stringa errata che invio o per problemi di setting ---------------------------------------- AUTORE: 384 DATA :14/01/2007 - 15:30:14 ---------------------------------------- Per una prova rapida, prova a connettere il tuo pc ad un'altro e in esso apri l'hyper terminal. Così riesci a verificare le impostazioni, che stai trasmettendo e ciò che trasmetti. Allo stesso modo, puoi verificare se ricevi da in LabView ciò che digiti nella tastiera. Ad ogni modo, il cluster di errore in uscita dal blocco di lettura già ti dá delle informazioni. Nel relativo help trovi un link ai codici di errore che possono risultare. ---------------------------------------- AUTORE: 1317 DATA :15/01/2007 - 08:19:02 ---------------------------------------- grazie del consiglio..!!non ci avrei mai pensato!!nel caso in cui fossi sicuro che il pc sta comunicando con lo strumento (in quanto comunica già con Visual Basic) ma dall'errore ricevuto da labview (..scade il tempo per la lettura utilizzando ViSA read) non fossi in grado di trovare l'errore, non c'è modo di scoprire l'errore sezionando le varie parti?grazie ---------------------------------------- AUTORE: 384 DATA :15/01/2007 - 08:59:36 ---------------------------------------- [quote="danelli":2uyp3o5k]grazie del consiglio..!!non ci avrei mai pensato!!nel caso in cui fossi sicuro che il pc sta comunicando con lo strumento (in quanto comunica già con Visual Basic) ma dall'errore ricevuto da labview (..scade il tempo per la lettura utilizzando ViSA read) non fossi in grado di trovare l'errore, non c'è modo di scoprire l'errore sezionando le varie parti?grazie[/quote:2uyp3o5k] Certo! Ogni operazione in LabView è eseguita da un suo blocco e quindi si può osservare ogni sua uscita passo per passo. Volendo lo si può anche fare all'interno di ciascun blocco, ma, oltre che più complicato, raramente è necessario. Comunque io sono convinto che risolto il problema dei settings della seriale, il resto è l'implementazione del protocollo di comunicazione con lo strumento, in particolare l'attesa della risposta. In particolare, verfica che tu abbia impostato il "terminatore" del messaggio da ricevere - se c'è - uguale a ciò che invia lo strumento. Ricorda anche che LabView (così come con qualsiasi altro linguaggio) è molto più veloce dello strumento, quindi si metterá in condizioni di ricevere molto prima che quell'altro inizi a trasmettere. É un punto che tipicamente dà qualche "gratta capo" a tutti quanti lo fanno per la prima volta, indipendentemente dal sistema. ---------------------------------------- ================================================================================ Thresold di Waveform ================================================================================ AUTORE: 1608 DATA :13/01/2007 - 13:36:16 ---------------------------------------- Mi chiedevo se fosse possibile mettere una soglia a una Waveform, in modo da poterla "scartare" quando ha un valore inferiore a una soglia che definisco. Ho provato in tutti i modi ma non ho ottenuto niente. Qualcuno ha qualche consiglio? ---------------------------------------- AUTORE: 384 DATA :14/01/2007 - 15:39:47 ---------------------------------------- Nella pallette di funzioni "analyze\Waveform Monitoring" c'è la funzione 'Basic Level Trigger Detection'. Nella pallette di funzioni "analyze\Signal Processing\Time Domain" ne esiste un'altra più semplice: 'Threshold Peak Detector'. Credo che entrambe possano risolvere il tuo problema. ---------------------------------------- ================================================================================ aiuto progettazione ================================================================================ AUTORE: 1757 DATA :14/01/2007 - 16:46:50 ---------------------------------------- salve a tutti.desideravo aavere qualche informazione sulla modalità di svolgimento di un esercizio. devo simulare il metodo di funzionamento di una lavatrice ---------------------------------------- AUTORE: 384 DATA :15/01/2007 - 01:15:58 ---------------------------------------- Se non hai conoscenze di LabView e questo è il tuo primo "compito", ti consiglierei vivamente a imparare prima LabView facendo dei corsi presso NI e cominciando con qualcosa di un pò meno pesante. Per quanto LabView sia "facile" da usare, questo compito [b:1bfwut9z][u:1bfwut9z]non è banale[/u:1bfwut9z][/b:1bfwut9z], non è una cosetta "da niente" da dare ad un principiante - fermo restanto che non metto assolutamente in dubbio la tua capacità di aprendere e quindi di realizzare il compito. Se, invece, hai conoscenze di LabView - direi piutosto solide - ti consiglierei di usare per ogni "programma di lavaggio" un'array di "passi", dove ogni passo è possibilmente codificato in un cluster con il "nome del passo" ed i relativi parametri. L'esecuzione del passo sarà a carico di subVI indipendenti. La comunicazione con essi è tutta da cvedere ma potrebbe richiedere code, notifiers, occurences e forse anche "user events". Sicuramente dovrà fare "output" anche direttamente sul front panel principale. Da considerare se lanciare questi subVI dinamicamente. L'avanzamento dei passi è un caso tipico di utilizzo di una macchina a stati finiti, ivi compresa la selezione del "programma di lavaggio". Nel compito non è specificato, ma essendo un simulatore credo sia prevvedibile la necessità di registrare su file i parametri impostati ed i risultati ottenuti, ad ogni simulazione. Non è chiaro nella descrizione se c'è interazione con qualche dispositivo esterno (in/out, analog/digital) tramite schede NI. Preparati a qualche ora (diciamo, diverse...) di lavoro! ---------------------------------------- AUTORE: 645 DATA :15/01/2007 - 09:40:04 ---------------------------------------- Dunque, così a occhio una soluzione potrebbe essere quella che propone Gyc: prepari una serie di subVI (procedure o funzioni in altri linguaggi, dei sottoprogrammi per intenderci) che richiami in un certo ordine in base al programma di lavaggio scelto dalla signora Pina. Ti direi di cercare materiale su Array, SubVI, Cicli, Strutture in sequenza, Case e qualche nozione sulla grafica (giusto per mettere gli indicatori sul pannello... termometro e altro). Trovi qualche esempio nella cartella degli esempi di LabView, su questo forum cercando tra i post e sul sito www.ni.com . Buona ricerca! ---------------------------------------- AUTORE: 1757 DATA :15/01/2007 - 11:06:02 ---------------------------------------- grazie di avermi risposto.io sono laureata in ingegneria e alla laurea specialistica ho una materia incentrata su questo programma.questo è un compito di esame(assurdo ) ma il corso secondo me non è proporzionato alla difficolta del compito. io avevo pensato di usa un case con cui selezionare i 5 tipi di programmi, all'interno del case poi implementare i vari cicli utilizzando delle sequenze. il problema è che alcune funzioni come il carico dell'acqua, lo scarico dell'acqua, etc...si ripetono quindi non so come riutilizzare gli stessi indicatori.non posso creare tanti tank per ogni ciclo che implemento, il tank nel pannello di controllo deve essere sempre uno... non so se ho reso l'idea ---------------------------------------- AUTORE: 384 DATA :15/01/2007 - 11:29:38 ---------------------------------------- [quote="1supergirl":jjrzuiam]questo è un compito di esame(assurdo ) ma il corso secondo me non è proporzionato alla difficolta del compito.[/quote:jjrzuiam] Ecco appunto! Sará merito del marketing NI, ma molti pensano che chiunque può prendere LabView senza saperne nulla e svilluppare applicazioni complesse in mezz'ora!!! [quote="1supergirl":jjrzuiam]io avevo pensato di usa un case con cui selezionare i 5 tipi di programmi, all'interno del case poi implementare i vari cicli utilizzando delle sequenze. il problema è che alcune funzioni come il carico dell'acqua, lo scarico dell'acqua, etc...si ripetono quindi non so come riutilizzare gli stessi indicatori.non posso creare tanti tank per ogni ciclo che implemento, il tank nel pannello di controllo deve essere sempre uno... non so se ho reso l'idea[/quote:jjrzuiam] Questo è un approccio semplice, ma può risolvere il problema, se si tratta solo di passare l'esame! Per usare sempre gli stessi controlli/indicatori - che saranno ovviamente nel panello frontale del "VI main" - devi passare ai subVI che li usano dei "reference". All'interno di questi subVI devi usare i property node per alterarne sia il valore che eventuali altre proprietà. Guarda gli esempi che allego. Sono volutamente semplici per illustrare questo concetto. ---------------------------------------- AUTORE: 1757 DATA :15/01/2007 - 11:58:51 ---------------------------------------- ti ringrazio...il fatto è che il prof ci ha spiegato 4 comandi base, quindi non abbiamo visto tutte le funzionalità di labview quindi in teoria lo dovrei risolvere in base alle cose spiegate a lezione...io sono stata 3 gg a capire come farlo e non mi funziona ancora... è terribile questa cosa, perchè purtroppo l'esame si basa solo su questo...è molto umiliante secondo me ---------------------------------------- AUTORE: 384 DATA :15/01/2007 - 12:21:45 ---------------------------------------- [quote:3mr9r0bg]è terribile questa cosa, perchè purtroppo l'esame si basa solo su questo...è molto umiliante secondo me[/quote:3mr9r0bg] Sono d'accordo! L'importante ora è usare bene il tempo. Va bene indagare su ciò che non sai di LabView, sul'help, sui manuali, e ricercando sul sito NI - si trovano molte risposte ed esperienze. Se non giungi ad una soluzione entro un tempo raggionevole, allora è il momento di chiedere consiglio. Per questo serve il forum! ---------------------------------------- AUTORE: 645 DATA :15/01/2007 - 15:27:16 ---------------------------------------- Guarda qui: http://zone.ni.com/reference/en-XX/help ... _variable/ . Puoi usare la struttura che pensavi (Case con all'interno sequenze) e i risultati delle operazioni non li colleghi direttamente all'indicatore (al termometro per esempio) ma alla sua variabile locale. In questo modo puoi creare più variabili riferite allo stesso indicatore e visualizzare diversi risultati nello stesso indicatore. \":D\" ---------------------------------------- ================================================================================ Save Error Code 48 ================================================================================ AUTORE: 1165 DATA :14/01/2007 - 17:16:56 ---------------------------------------- Qualcuno ha un'idea su cosa significhi questo messaggio di errore che mi dà costantemente il LV7.1 quando vado a salvare un VI su cui ho apportato modifiche? Preciso che: 1) Ho reistallato il LV7.1 più volte e su più macchine, ma l'errore permane; 2) l'errore si presenta sia che cerchi di salvare direttamente, che con nome; 3) si presenta ogni volta che cerco di salvare quel mio particolare VI e non su altri (ma a me serve lavorare su quello); 4) ho provato ad aprire un VI vuoto e ad incollarci dentro il contenuto del mio, ma il risultato non cambia; 5) il VI da cui parto è tra gli esempi del LV ed in particolare serve per acquisire con continuità e graficare valori analogici da un USB-6008, che è fisicamente collegato al Pc. Un grazie anticipato a tutti, Enrico. ---------------------------------------- AUTORE: 645 DATA :15/01/2007 - 09:46:15 ---------------------------------------- Qui si parla di qualcosa che riguarda le librerie: http://forums.ni.com/ni/board/message?b ... .id=213818 ---------------------------------------- ================================================================================ OPC Server con porta com pcmcia o usb ================================================================================ AUTORE: 1368 DATA :15/01/2007 - 10:34:40 ---------------------------------------- Ciao a tutti, Sto cercando di far comunicare l OPC Server all impianto EIB tramite una porta com pcmcia o usb, ma proprio non ce verso di farlo andare. Qualcuno ha esperienze?? Ciao ---------------------------------------- ================================================================================ imaq vision in PDA module ================================================================================ AUTORE: 1763 DATA :15/01/2007 - 12:20:13 ---------------------------------------- Salve a tutti, sono un dottorando dell'università politecnica delle marche, e avrei un problema: devo effettuare una blob analysis direttamente in un palmare, e dunque lavoro con il modulo PDA. Il problema è che in PDA non posso usare i blocchettini dell'imaq vision utilissimi per questo genere di applicazioni, soprattutto per quanto riguarda il conteggio delle "macchie" e la loro estensione in pixel (in imaq vision: "particle analysis"). Qualcuno di voi sa come aggirare il problema? Grazie, Gianluca ---------------------------------------- AUTORE: 247 DATA :15/01/2007 - 13:50:36 ---------------------------------------- Ciao, ?Creare una dll che faccia da wrapper per la funzionalità di analisi immagine e provare ad utilizzare quella? ..però sono un pò allo scuro delle funzionalità PDA... BYE. ---------------------------------------- AUTORE: 1763 DATA :15/01/2007 - 14:50:02 ---------------------------------------- Si, è proprio quello che stavo tentando di fare ma non è così semplice (per me è la prima volta che provo a lavorare con le dll) Tra l'altro non credo che il problema si possa aggirare così "facilmente", i programmatori della national avranno considerato questa possibilità e avranno agito di conseguenza... Grazie, ciao ---------------------------------------- AUTORE: 247 DATA :15/01/2007 - 16:43:04 ---------------------------------------- Ciao, [quote:ox4w08ex]Tra l'altro non credo che il problema si possa aggirare così "facilmente", i programmatori della national avranno considerato questa possibilità e avranno agito di conseguenza... [/quote:ox4w08ex] Non penso che i programmatori NI abbiano deliberatamente agito in tal senso, penso più semplicemente che un target PDA abbia limitatissime capacità di elaborazione tali da renderlo non idoneo o addirittura incompatibile con l'analisi immagine. BYE. ---------------------------------------- ================================================================================ Salvare e caricare impostazioni ================================================================================ AUTORE: 1765 DATA :15/01/2007 - 13:31:20 ---------------------------------------- Avrei bisogno, per un'applicazione con Vision Builde 3.0, di un VI che mi permetta di leggere delle impostazioni da un file (numeri, stringhe, booleani) mostrarle all'utente in una finestra permettendogli di modificarle ed infine salvare le modifiche. Purtroppo sono ancora un neofita del Labview; non mi interessa tanto la parte di interfacciamento con Vision Builder, che mi riesce, quanto qualche suggerimento sul codice labview da implementare per costruire al meglio l'applicazione. Ad esempio, ho provato a convertire i valori dei controlli in xml, concatenarli e salvarli con "write to xml file". Quando però devo ricaricarli ed inserirli nei relativi indicatori mi risulta difficile. Simone ---------------------------------------- AUTORE: 645 DATA :15/01/2007 - 15:31:06 ---------------------------------------- Potresti salvare i dati in un file di testo nello stesso ordine con il quale sono disposti gli elementi di LabView nel Front Panel. Una riga per elemento oppure elementi separati da un carattere particolare... ---------------------------------------- AUTORE: 927 DATA :15/01/2007 - 15:52:37 ---------------------------------------- Cosa non ti funziona esattamente? Cmq potresti provare a mettere tutti i controlli dentro un unico cluster (si fa in un attimo), quindi convertire il cluster in XML. Poichè così tratta tutto come un unico controllo, con un'unica stringa XML, dovrebbe risultare molto più semplice. ---------------------------------------- AUTORE: 1765 DATA :16/01/2007 - 15:11:57 ---------------------------------------- Infatti, ho risolto con un unico cluster, anche se poi ho salvato in un file binario... Grazie \";-)\" ---------------------------------------- ================================================================================ Colore dei bordi ================================================================================ AUTORE: 927 DATA :15/01/2007 - 15:29:40 ---------------------------------------- Nei controlli array di cluster, non c'è verso di cambiare il colore delle cornici degli elementi? Intendo il bordino 3D di ogni cluster. Ho provato anche con Customize ma mi rimane sempre grigio ---------------------------------------- AUTORE: 4 DATA :16/01/2007 - 11:38:02 ---------------------------------------- Purtroppo nei 3D non è possibile cambiare il colore del bordo, non solo per i cluster ma per tutti i tipi di controlli\indicatori... non mi chiedere il perchè. Se vuoi puoi usare i controlli "classic" che invece permettono questa customizzazione. Ciao ---------------------------------------- AUTORE: 927 DATA :22/01/2007 - 13:40:30 ---------------------------------------- Già, non ci avevo pensato ai Classic, grazie! Cmq per i controlli semplici il colore del bordino, inteso come l'"infossatura" 3D, si può cambiare: basta metterli sopra uno sfondo colorato (anche decorazione, immagine...) e il colore del bordo cambia di conseguenza ---------------------------------------- ================================================================================ selecting via seriale ================================================================================ AUTORE: 1317 DATA :16/01/2007 - 08:25:00 ---------------------------------------- ciao a tutti.Sto cercando di avviare il selecting attraverso Rs232 e RS485 ad un controllore di temperatura EROelectronics. Allego il VI del selecting.Non sono ancora riuscito a capire se la mancata risposta è colpa della stringa o delle impostazione della seriale.Mi sembra di aver impostato tempi di attesa sufficienti eppure non ricevo ancora alcune carattere (ACK o NAK) dal dipositivo.Grazie a tutti. ---------------------------------------- AUTORE: 645 DATA :16/01/2007 - 10:34:01 ---------------------------------------- Prova a sostituire i Write in sequenza con un Write solo. Non è che c'è da impostare qualche comando sul dispositivo per attivare controllo remoto? ---------------------------------------- AUTORE: 384 DATA :16/01/2007 - 10:53:46 ---------------------------------------- Quello che vedo io è che il modo che hai usato per convertire codici asci in stringa, di fatti inserisce degli spazi; per esempio la conversione del codice 0x67 risulta in " g", cioè con 3 spazi prima della 'g'. Ricevendo un messaggio tutto "stroppio" il controller probabilmente non risponde neanche. Quando devo comporre dei messaggi cosí, scrivo i codici in un array di byte (U8) che converto in una stringa con la funzione "Byte Array to String" che si trova nella pallette "string", subpallette "array/path conversion". ---------------------------------------- AUTORE: 384 DATA :16/01/2007 - 12:07:30 ---------------------------------------- In versione 7.0. ---------------------------------------- AUTORE: 1317 DATA :16/01/2007 - 12:13:20 ---------------------------------------- gyc...è esattamente come sospettavi tu.In effetti ho eliminato gli spazi prendendo un subset della stringa e adesso funziona.vi ringrazio.. ---------------------------------------- AUTORE: 384 DATA :16/01/2007 - 12:24:20 ---------------------------------------- Il forum esiste per questo! Buon divertimento!!! ---------------------------------------- ================================================================================ Vettore di pulsanti con selezione esclusiva ================================================================================ AUTORE: 1427 DATA :16/01/2007 - 09:36:39 ---------------------------------------- ciao a tutti. Allego un semplice esempio per farmi capire meglio. Io utilizzo un vettore di alcuni pulsanti logici. Mi piacerebbe che la selezione di questi pulsanti sia esclusiva, ossia che la pressione di uno spenga quello acceso in precedenza. Senza mettermi a creare un sacco di controlli IF, c'e' una impostazione o una procedura molto rapida che si possa adottare? grazie! ---------------------------------------- AUTORE: 645 DATA :16/01/2007 - 10:54:50 ---------------------------------------- Prova questo... \":D\" ---------------------------------------- AUTORE: 1427 DATA :16/01/2007 - 12:21:10 ---------------------------------------- [quote="MagicBotolo":1mgo14ds]Prova questo... \":D\"[/quote:1mgo14ds] che dire.. geniale \":-P\" come sospettavo, molto piu' pulita ed elegante della soluzione che avevo trovato io! grazie!!! ---------------------------------------- ================================================================================ MATLABscript ================================================================================ AUTORE: 1596 DATA :16/01/2007 - 17:03:24 ---------------------------------------- salve a tutti, il mio problema è questo:ho implementato un programma in matlab e funziona.Lo voglio far girare in LabVIEW inserendolo in una MATLAB script,ho copiato il codice e l'ho inserito,in più ho inserito una sola variabile di uscita anche se il programma in matlab ce ne ha di più(tanto per vedere se girava);non mi funziona;ho visto l'help,altre discussioni sul forum ma nulla da fare.L'errore che mi dà è "Error occured while executing script. Error message from server: . in prova.vi".Non riesco a capire... \":(\" ---------------------------------------- ================================================================================ salvare dati nel corso di un ciclo while ================================================================================ AUTORE: 1317 DATA :17/01/2007 - 11:13:15 ---------------------------------------- ciao a tutti.è possibile salvare il singolo dato acquisito durante un ciclo while e generare quindi un array tale da evitare la perdita delle misure nel caso in cui l'utente stoppi l'intero programma (non utilizzando quindi lo stop del ciclo stesso)?..grazie a tutti ---------------------------------------- AUTORE: 645 DATA :17/01/2007 - 12:22:35 ---------------------------------------- Ti consiglierei di fare una cosa tipo: ogni tot di dati (controlli il contatore del while) inserisci un'operazione di memorizzazione su file. L'apertura e la chiusura del file puoi farla all'interno del while: apri, scrivi, chiudi. In questo modo l'utente anche durante la prova può leggere il file dall'esterno per vedere come stanno andando le cose. Memorizzi i dati in un vettore e ogni tot cicli scrivi questo vettore su file ed azzeri il vettore. ---------------------------------------- AUTORE: 1317 DATA :19/01/2007 - 08:14:03 ---------------------------------------- ho provato in tutti i modi a seguire il tuo consiglio ma non riesco a fare in modo che il nuovo array generato vada a sovrascrivere quello precedente!!non esistono funzioni di inserimento dati direttamente nel file da salvare piuttosto che in array generico? ---------------------------------------- AUTORE: 645 DATA :19/01/2007 - 08:28:42 ---------------------------------------- Ma devi sovrascrivere i dati vecchi? Non dici che vuoi salvarli in modo che se succede qualcosa comunque ne hai una copia salvata da qualche parte? Puoi fare così, crei il file vuoto all'inizio del VI e poi quando ti serve lo apri in modalità "Replace" così quando salvi i dati cancelli i vecchi e li sostituisci con i nuovi. ---------------------------------------- AUTORE: 1317 DATA :19/01/2007 - 09:17:59 ---------------------------------------- scusami..dimenticando il NON ho cambiato completamente senso alla mia frase. Il problema è appunto che non vorrei si sovrascrivessero ma non risco ad evitarlo.vorrei che il singolo dato o al più un piccolo array vada a proseguire l'array già creato in modo da non rischiare la loro perdita nel caso si interrompesse il programma in maniera non corretta. ---------------------------------------- AUTORE: 645 DATA :19/01/2007 - 12:06:10 ---------------------------------------- Guarda l'immagine allegata: sfrutta il calcolo della posizione corrente all'interno del file. Fammi sapere... ---------------------------------------- AUTORE: 1574 DATA :19/01/2007 - 20:04:38 ---------------------------------------- L'idea è ottima, nell'immagine allegata c'è il diagramma a blocchi di una cosa simile fatta in LV 7.1. Il bloccheto "write" ha un simatico offset programmabile sia in ingresso che in uscita, e permette di posizionarsi alla fine del file per non sovrascrivere i dati ogni volta. Tu che versione usi? Dalla tua firma presumo 7.0... \":wink:\" ---------------------------------------- AUTORE: 1596 DATA :20/01/2007 - 12:22:28 ---------------------------------------- ciao ragazzi!...io per salvare vettori di misure ripetute ogni 30 secondi faccio come nell'allegato...che ne pensate?va bene?...apprezzerei una vostra risposta,grazie! ---------------------------------------- AUTORE: 1317 DATA :22/01/2007 - 09:52:02 ---------------------------------------- grazie a tutti.sono tutte ottime soluzioni.ciao ---------------------------------------- AUTORE: 1317 DATA :22/01/2007 - 13:29:28 ---------------------------------------- un'ultimo chiarimento: è possibile effettuare questa operazione anche con il VI "write to spreedsheet file"??grazie a tutti ---------------------------------------- ================================================================================ roi descriptor ================================================================================ AUTORE: 1650 DATA :17/01/2007 - 11:23:58 ---------------------------------------- Dovrei usare IMAQ Simple Edge, ma x poterlo fare devo dire in input le Pixel coordinates tramite IMAQ ROI Profile. Questo in input ha bisogno del ROI Descriptor, ma nn riesco a collegare il ROIDescriptor (preso dagli esempi) con il ROIProfile. Gli esempi utilizzano il Property node, ma che funzione ha? ---------------------------------------- AUTORE: 4 DATA :17/01/2007 - 11:26:23 ---------------------------------------- ciao Annalisa, riusciresti ad allegare il tuo VI? ---------------------------------------- AUTORE: 1650 DATA :17/01/2007 - 11:40:54 ---------------------------------------- t allego il file su cui sto lavorando (labview 7.1). L'obiettivo finale è qullo d misurare l'angolo e la profondità del cono (vedi immagine allegata). x farlo, dobbiamo individuare la zona d interesse, e fare un'interpolazione lineare x linearizzarne il contorno. ---------------------------------------- AUTORE: 4 DATA :17/01/2007 - 11:58:38 ---------------------------------------- [quote:3gm9o6u7]Questo in input ha bisogno del ROI Descriptor, ma nn riesco a collegare il ROIDescriptor (preso dagli esempi) con il ROIProfile[/quote:3gm9o6u7] Questo perchè il tuo controllo "Inspection ROI Descriptors" è un array di ROI mentre ROI profile vuole una singola ROI, un solo elemento del tuo array. [quote:3gm9o6u7]Gli esempi utilizzano il Property node, ma che funzione ha?[/quote:3gm9o6u7] Dal property node ROI riesci a ricavare le coordinate della ROI che imposti manualmente e direttamente sull'immagine nell'indicatore "image". Per impostare la ROI selezione lo strumento ROI ( il rettangolo nella barra a destra del controllo image, la sesta icona a partire dall'alto) e poi disegna la tua roi sull'immagine, il property roi riporterà i valori corretti alla sua uscita. Ti consiglio di utilizzare il metodo della property per i test perchè riesci a modificare la roi molto più velocemente che inserendo numeri, devi però fare una piccola modifica al tuo vi inserendolo in un while loop e aggiungendo un tasto di calcola da attivare dopo l'impostazione della roi. Ciao ---------------------------------------- AUTORE: 1650 DATA :17/01/2007 - 13:23:00 ---------------------------------------- quindi devo convertire il mio controllo in un solo elemento? e come? dove devo inserire un property node? collegato a cosa? ---------------------------------------- ================================================================================ Esempi LabVIEW per principianti (ERA: per il Pivellino.....) ================================================================================ AUTORE: 1733 DATA :17/01/2007 - 14:33:14 ---------------------------------------- Ciao ragazzi Essendo alle primissime armi con Labview ( ho incominciato da poco a smanettarci e a leggere qualche guida ) avete per caso da darmi qualche progettino semplice , qualche esempio per principianti? Grazie mille Ciaoz \":lol:\" ---------------------------------------- AUTORE: 247 DATA :17/01/2007 - 15:39:41 ---------------------------------------- Ciao, benvenuto e ....questo post si autodistruggerà entro un giorno causa titolo insignificante...\";-)\"! E' vietato da regolamento assegnare ai post titoli generici che non rimandino alla domanda che vuoi propoorre o comunque al contenuto del post stesso. BYE. ---------------------------------------- AUTORE: 1733 DATA :17/01/2007 - 15:44:52 ---------------------------------------- Va bene mi scuso per l'errore fatto........ Ma una mano me la potete sempre dare no? \":roll:\" ---------------------------------------- AUTORE: 247 DATA :18/01/2007 - 09:14:34 ---------------------------------------- Ciao, penso che gli esempi più semplici, garantiti e facili da trovare, non richiedono nemmeno la connessione internet, siano quelli contenuti nella sezione esempi di LabVIEW, puoi raggiungerli dal menù Help secgliendo "Find Examples..", ti si apre un'ulteriore menù a cartelle dove gli esempi sono divisi per tema. Se poi sei connesso ad internet spunta la voce in basso a sx "Include ni.com examples" per poter accedere anche agli ultimi esempi messi a disposizione da NI tramite web. Puoi comunque trovare molti esempi anche su siti come questo soprattutto come allegati a qualche risposta, giusto per iniziare. Esempi di progetti completi dovresti cercarli nel web, solitamente nei forum non si postano perchè troppo voluminosi e spesso perchè le domande vengono fatte su temi specifici relegati, al massimo, a pochi VI. BYE. ---------------------------------------- AUTORE: 1733 DATA :18/01/2007 - 09:41:54 ---------------------------------------- Grazie per i suggerimenti a "pollon combina guai " \":lol:\" ( scusa non ho resistito!) Ne approfitto per farvi una domanda ( senza aprire ulteriori topic ) : ho trovato su internet questo esercizio ma non riesco a capirlo del tutto...... Mi potete dare una mano? "Strutture per l'esecuzione di cicli" - Esercizio 1 Riprodurre il VI rappresentato nelle figure seguenti [img:35lannq0]http://www.dei.unipd.it/ricerca/gmee/didattica/lab/labview/G_language/images/vi_ciclo_while_(fp).gif[/img:35lannq0] [img:35lannq0]http://www.dei.unipd.it/ricerca/gmee/didattica/lab/labview/G_language/images/vi_demo_ciclo_while_(bd).gif[/img:35lannq0] ---------------------------------------- AUTORE: 660 DATA :18/01/2007 - 11:30:03 ---------------------------------------- A essere proprio sincero non ho ben capito dove sia il problema, perciò ti risponderò con alcune domande: 1 - Sei riuscito a realizzarlo? (Se no allora chiedi specificando dove sono i punti oscuri) 2 - Hai capito cosa sono i vari "pezzi" utilizzati nell'esempio? (Se no facci sapere i tuoi dubbi) 3 - Pensi che si potrebbe realizzare in modo diverso? (Visto che la risposta e sì provaci e se vuoi chiedi per avere altre informazioni) Se hai risposto si a tutto e non hai altre domande direi che l'esercizio è servito al suo scopo e puoi passare ad un altro. E qui per rispondere alla tua domanda posso dire che non c'è più nulla da capire. Ciao ---------------------------------------- AUTORE: 482 DATA :18/01/2007 - 13:01:29 ---------------------------------------- Giusto per dare delle indicazioni FONDAMENTALI nello sviluppo labview... Nel ciclo while dell'esempio è buona norma (se non obbligatorio) inserire un temporizzatore (wait until next multiple) con un valore di tempo qualsiasi per evitare che facendo girare il vi si impossessi di tutte le risorse della CPU. Inoltre guardandolo cosi' mi sembra un esempio abbastanza vecchiotto perchè il booleano collegato alla condizione di stop è collegato ad una NOT. Con le versioni attuali di LabVIEW questa operazione non è piu' necessaria perchè basta cliccare col tasto destro sul quadratino della condizione di stop e selezionare STOP IF TRUE. \":wink:\" ---------------------------------------- AUTORE: 1733 DATA :18/01/2007 - 13:24:15 ---------------------------------------- Grazie delle risposte ragazzi \":)\" Comunque sinceramente parlando non ho capito ne cosa fa l'esercizio in questione , ne come si collegano i vari pezzi in questione.... Illuminatemi per piacere \":P\" ---------------------------------------- AUTORE: 247 DATA :18/01/2007 - 15:30:40 ---------------------------------------- Ciao, [quote:34ruq8e5]Comunque sinceramente parlando non ho capito ne cosa fa l'esercizio in questione , ne come si collegano i vari pezzi in questione.... [/quote:34ruq8e5] ...BUIO PESTO DIREI.... \":o\" \":o\" \":o\" \":o\" !!! Comincia a leggere i manuali in pdf che vengono installati con LabVIEW partendo ovvimente da quelli base tipo "Getting Started with LabVIEW" e che trovi nella cartella manuals della directory in cui hi installato la tua versione di LabVIEW. Prima di poter parlare e chiedere qualcosa riguardante LabVIEW devi farti una base anche minima ma che ti consenta di proporre domande più mirate, nessuno sia per tempo che per "interesse" potrà sostituire i manuali! BYE. ---------------------------------------- AUTORE: 482 DATA :18/01/2007 - 16:39:39 ---------------------------------------- non credo sia cosi' pesto....mancano 'e bbasi! la i blu come nei linguaggi testuali è una cosa che conta il numero di cicli eseguiti. viene collegata dal filo ad un indicatore sul pannello. il tasto stop è colegato a quel cosino verde che è la condizione di fine ciclo. in pratica finchè non schiacci stop la i incrementa. tutto li. vediamo..in linguaggio testuale sarebeb una cosa simile. Ipotizzando di chiamare l'indicatore INDICATORE. WHILE STOP=FALSE (poi non è proprio cosi' ma cosi' rende l'idea) DO INDICATORE=i ---------------------------------------- AUTORE: 1165 DATA :19/01/2007 - 22:09:11 ---------------------------------------- Ciao Dyd, da' un'occiata al file che ti segnalo qui sotto (è in formato mdi, che è l'equivalente della MicroSoft del pdf), contiene qualche spiegazione su argomenti che ti potrebbero essere utili. Giustamente, come hanno osservato gli altri, è necessario che tu ti faccia qualche preventiva base teorica, così riuscirai ad utilizzare al meglio gli aiuti che ti verranno dati dai volonterosi del forum. Se hai difficoltà di interpretazione chiedi pure, cercheremo di aiutarti come possibile. Ciao, Enr. il file IterazioniLabview.mdi è scaricabile al link: http://www.sharebigfile.com/file/64245/ ... w-mdi.html ---------------------------------------- AUTORE: 129 DATA :20/01/2007 - 07:46:53 ---------------------------------------- Come sei messo a programmazione in genere? IN questo caso stiamo parlando di una struttura, ovvero elementi fondamentali nei linguaggi di programmazione. Le strutture sono divise in due macro categorie: Di iterazione (FOR e While) che ti permettono di ripetere il codice contenuto in esse, per un numero stabilito di volte(FOR) o finchè una condizione non sia verificata(WHILE). Di interazione (CASE IF event ecc.) che ti permettono di eseguire un codice al manifestarsi di un evento o condizione. Nel caso dell'esempio di cui parli, stiamo parlando della struttura WHILE la cui sintassi nel linguaggio parlato sarebbe, [b:2elyzo74]esegui questa operazione[/b:2elyzo74](l'operazione che tu dovresti mettere nel while, come ad esempio un operazione matematica che attende un input e sortisce un risultato)[b:2elyzo74]finchè non premi il tasto stop[/b:2elyzo74](condizione di terminazione loop). Il terminale di interazione (I) è un contatore e ti restituisce il numero di cicli eseguiti, che con un pò di esperienza troverai molto comodo nelle tue applicazioni. Ora concentrandosi sull'esempio di cui parli in realtà non è che faccia granchè, e come dice il geppo, sarebbe un errore lasciare andare un while senza OBBLIGATORIAMENTE inserire un timer(Il timer forza il ciclo a eseguire l'iterazione in un determinato tempo, senza andresti alla velocità CPU con conseguente spreco di risorse,crash e indeterminatezza sui tempi delle operazioni(macchine diverse risolvono in tempi diversi). Per darti un esempio che abbia un senso più concreto anche se rimane molto banale (Ti consiglio come Apollon di utilizzare gli esempi in Help/Find example/Fundamental/Structure direttamente da labview) Ritornando all'esempio diciamo che devi risolvere un addizione dati due numeri in ingresso (INPUT o CONTROLLI nel lessico LAbview) che l'utilizzatore immette, quindi preme un pulsante per calcolarne il risultato. Per fare questo devi creare un ciclo che permetta l'inserimento dell'input, FINCHE' non è stato premuto un pulsante (MI sembra di vedere la definzione del WHILE), quindi alla pressione del pulsante si esce dal LOOP e si esegue l'operazione, che ritornerà sull' output (Indicatore per labview) il risultato esatto dell'operazione. Puoi anche inserire l'indicatore e l'operazione all'interno del ciclo e avendo quindi il risultato sempre disponibile finchè non dici di terminare questa operazione. Ecco i due esempi ---------------------------------------- ================================================================================ "simulare" la presenza di una scheda Ni-DAQ ================================================================================ AUTORE: 1427 DATA :18/01/2007 - 09:21:01 ---------------------------------------- ciao a tutti, eccomi per l'ennesima volta con un quesito per voi \":D\" Programmando su computer diversi, mi capita a volte di lavorare su un codice che prevede di utilizzare una scheda nidaq ma che questa non sia presente sulla macchina. In questo caso ovviamente io non posso lanciare il programma, pena ricevere l'errore che l'hardware non e' presente. Allora mi chiedevo se fosse possibile "simulare" la presenza di una scheda, ossia crearne una virtuale, per fare un test sul software. Che dite, si puo' fare? grazie mille e buona giornata! ---------------------------------------- AUTORE: 1597 DATA :18/01/2007 - 09:44:42 ---------------------------------------- si certo che si può fare...masta configurare nel Max NiDaqmx simulated device ---------------------------------------- AUTORE: 482 DATA :18/01/2007 - 12:58:14 ---------------------------------------- ..ma ciao! io uso schede traditionalNI-DAQ ed avevo il tuo stesso problema. Purtroppo cio' che ha detto aldik non è fattibile con il tipo di configurazioen hardware che ho io: PCI 6503 SCXI1000 e varie schede Cosi' con un mio colega abbiamo realizzato un software che simula i comportamenti della macchina da controllare e sostituito i vi di lettura/scrittura schede con delle shared variable che prendono i valori dal vi di macchina simulata che gira in background. L'alternativa semplice sarebbe stata cerare degli array di valori modificabili dall'utente e basta, ma avendo delle movimentazioni di pistoni con i relativi sensori abbiamo dovuto creare una vera e propria macchina simulata. ---------------------------------------- AUTORE: 645 DATA :18/01/2007 - 12:59:37 ---------------------------------------- Devi scaricare le NiDAQmx dalla versione 7.4 in poi e fare come dice aldik: vai in MAX e aggiungi una scheda di acquisizione dati di tipo Simulated Device tra le periferiche di acquisizione. Guarda http://zone.ni.com/devzone/cda/tut/p/id/3698 . ---------------------------------------- AUTORE: 113 DATA :18/01/2007 - 13:40:30 ---------------------------------------- Confermo quanto detto da Magic. Esiste in effetti anche il supporto per la 6503 come simulated device a patto di utilizzare le funzioni DAQ-Mx. A mio avviso il vero problema con i sumulated devices è che gli stati degli ingressi non possono essere settati. Ad esempio gli 8 bit di ingresso delle porte digitali vengono automaticamente settati a un valore che incrementa da 0 a 255 e poi si ripede ciclicamente, senza aver alcun controllo sullo stato. Questo rende molto poco versatile l'utilizzo di una scheda simulata perchè può pregiudicare il test e lo sviluppo di un'applicazione che deve reagire in base allo stato ingressi. Molto ma molto meglio sarebbe se si potesse settare programmaticamente lo stato degli ingressi di una scheda simulata!!! Ritengo quindi che l'unica vera utilità per l'opzione simulated device è poter fare girare un'applicazione senza vedersi generare codici di errore per la mancanza dell'hardware \":(\" Spero vivamente che in futuro questa lacuna venga colmata \":!:\" ---------------------------------------- AUTORE: 482 DATA :18/01/2007 - 16:42:04 ---------------------------------------- [quote="Alberto.L":3qdvetvr] Esiste in effetti anche il supporto per la 6503 come simulated device a patto di utilizzare le funzioni DAQ-Mx[/quote:3qdvetvr] EH..ma io ho ereditato un software che arriva da labview 4 e non avevo voglai di cambiarlo. Cmq sta cosa mi turba... Se non installo i Traditional NI-DAQ la 6503 non mi viene riconosciuta nell'hardware... ---------------------------------------- AUTORE: 113 DATA :18/01/2007 - 17:16:58 ---------------------------------------- Già! Passare da traditional a Mx è una gran rottura... \":!:\" Però è strano che non ti venga vista come Mx device, non l'ho mai usata ma dal datasheet sembra che il supporto ci sia. Tanto è vero che puoi averla anche come simulated device... Mistero! ---------------------------------------- AUTORE: 1574 DATA :18/01/2007 - 19:31:20 ---------------------------------------- [quote="gepponline":4n3uz6xg][quote="Alberto.L":4n3uz6xg] Esiste in effetti anche il supporto per la 6503 come simulated device a patto di utilizzare le funzioni DAQ-Mx[/quote:4n3uz6xg] EH..ma io ho ereditato un software che arriva da labview 4 e non avevo voglai di cambiarlo. Cmq sta cosa mi turba... Se non installo i Traditional NI-DAQ la 6503 non mi viene riconosciuta nell'hardware...[/quote:4n3uz6xg] La scheda 6503 è compatibile sia con i driver Traditional che con i DAQmx [url:4n3uz6xg]http://www.ni.com/support/daq/versions_pci_pxi.htm[/url:4n3uz6xg] Il problema nell'usare i driver DAQmx. nel tuo caso, si crea a livello software, perchè i nuovi driver sono compatibili con versioni LabVIEW dalla 7.0 in su.... \":?\" \":?\" ---------------------------------------- AUTORE: 482 DATA :19/01/2007 - 07:08:08 ---------------------------------------- Forse mi son spiegato male.. io uso LabVIEW 8, non è che son rimasto alal versione 4. Tuttavia, se non installo i Traditional NI-DAQ, la 6503 non riesco a configurarla, o meglio non mi compare nel max (magari con qualche magheggio ci riuscirei ma non vedo perchè complicarmi la vita..cmq non vorreiportare OT il discorso) ---------------------------------------- ================================================================================ Apertura file ================================================================================ AUTORE: 1355 DATA :18/01/2007 - 14:14:17 ---------------------------------------- Ciao a tutti Se apro un file di testo in lettura e scrittura con "Open File" oppure "Open/Create/Replace File" In realtà il file non è impegnato (Se un altro utente tenta di aprilo o di scriverci e salvare ci riesce) \":cry:\" E' possibile aprire un file in accesso per così dire esclusivo? Ringrazio anticipatamente per la risposta \":lol:\" Saluti ---------------------------------------- AUTORE: 113 DATA :18/01/2007 - 17:04:28 ---------------------------------------- Ciao! Quesito interessante \":wink:\" Quando apri un file con le funzioni di LV, non apri fisicamente il file all'interno di LV, ma apri un riferimento per andarci a scrivere/leggere. Quindi non hai lo stesso effetto di quando apri il file con un programma di editor, nel qual caso ti impedisce la modifica del file da un secondo programma. Quello che puoi fare con LV è cambiare i diritti di accesso (access rights) del file dopo che l'hai aperto in modo da non poter salvare modifiche dal mondo esterno. In pratica: 1) apri e leggi il file 2) modifichi i diritti di accesso per bloccare la scrittura 3) quando hai finito, riporti i diritti in condizione originale Ti allego un esempio fatto un po' velocemente, utilizza la funzione Access Rights che trovi nella palette File/Advanced. Ti consiglio di guardare l'help della funzione per capire il settaggio dell'ingresso Permission. Una cosa: con questo metodo non puoi impedire che il file venga aperto dall'esterno anche quando è bloccato, puoi solo impedirne la modifica. Alberto ---------------------------------------- AUTORE: 384 DATA :19/01/2007 - 11:53:26 ---------------------------------------- [quote:33lmvzwl]Quando apri un file con le funzioni di LV, non apri fisicamente il file all'interno di LV, ma apri un riferimento per andarci a scrivere/leggere. Quindi non hai lo stesso effetto di quando apri il file con un programma di editor, nel qual caso ti impedisce la modifica del file da un secondo programma. [/quote:33lmvzwl] Mi dispiace contraddirti, ma questo comportamento di pende dal'editor che usi, ed in generale dal programma che apre il file. [quote:33lmvzwl]Quello che puoi fare con LV è cambiare i diritti di accesso (access rights) del file dopo che l'hai aperto in modo da non poter salvare modifiche dal mondo esterno. ... Una cosa: con questo metodo non puoi impedire che il file venga aperto dall'esterno anche quando è bloccato, puoi solo impedirne la modifica. [/quote:33lmvzwl] Questo è un 'escamotage' ma c'è il modo di farlo organicamente. Nella subpallette advanced esiste la funzione OpenFile che ha il parametro "deny mode" in ingresso con il quale si può diniegare ulteriori accessi al file sia in lettura+scrittura, sia solo in scrittura (oppura senza limitazioni). ---------------------------------------- AUTORE: 113 DATA :19/01/2007 - 13:16:20 ---------------------------------------- Il parametro denye non l'avevo mai utilizzato (in effetti non è ho mai avuto bisogno), oggi ho imparato qualcosa di nuovo! \":wink:\" ---------------------------------------- AUTORE: 1355 DATA :22/01/2007 - 10:10:19 ---------------------------------------- Prima di tutto grazie per le spiegazioni. Scusate ma a me non funziona come mi aspettavo ma mi spiego meglio: Premetto che uso la versione 6.1 Apro un file con la funzione OpenFile (OpenMode=Read/Write; DenyMode=Read/Write) ma il file non sembra comunque aperto in accesso esclusivo. Dico questo perchè -Se lancio il vi 2 volte non mi da nessun errore come mi aspetteri -Se apro, modifico e salvo il file con blocco note me lo lascia fare tranquillamente Non so se sono io che sbaglio qualcosa? Grazie ancora a tutti e ciao Jasca ---------------------------------------- AUTORE: 1165 DATA :22/01/2007 - 10:22:53 ---------------------------------------- Forse ho capito malke io dove sono i tuoi dubbi, ma mi sembra che non fai un buon uso del "deny", di cui ti riporto il funzionamento, citando direttamente dall'help: [i]deny mode specifies the degree to which other users can operate on the file simultaneously. 0 Deny both read and write to the file by other users. 1 Permit read but deny write to the file by other users. 2 Permit both read and write to the file by other users (default). [/i] Come vedi il parametro "deny" (che ha la stessa radice etimologica di "diniego", cioè "rifiuto") è specificato numericamente e nel tuo caso mi sembra che tu debba usare il valore 0 e non il valore 2, se vuoi impedire ad ogni altro processo di accedere a quel file, sia in lettura che in scrittura. Spero di non aver detto una cavolata! Ciao, Enrico. ---------------------------------------- AUTORE: 1355 DATA :23/01/2007 - 15:36:53 ---------------------------------------- Io imposto proprio il parametro "DenyMode" al valore numerico 2 e valore <letterale> "deny Read/Write" ma il file rimane comunque libero Ho provato comunque impostando "DenyMode" su tutti i valori possibili ma non funziona Ho provato sia con la versione 6.1 che con la 7.1 Aiuto \":cry:\" Ciao Franco ---------------------------------------- AUTORE: 482 DATA :24/01/2007 - 07:29:26 ---------------------------------------- Una domanda... che tu riesca ad aprirlo ci puo' stare, ma hai provato anche a salvarlo mentre è aperto da Labview? Oppure altra ipotesi, non è che lo chiudi subito in labview? ---------------------------------------- AUTORE: 1355 DATA :24/01/2007 - 08:55:28 ---------------------------------------- La prova la faccio così: Apro un nuovo vi; Inserisco il sub vi OpenFile (quello della paletta degli advanced) Impsto il parametro pathfile = "C:\c.txt" (Un file che avevo creato precedentemente) Impsto il parametro Open mode a 0 (Read/Write) Impsto il parametro DenyMode a 0 (Deny Read/Write) Eseguo il vi una volta Non chiudo lab view Apro il file con blocco note, e riesco sia a scriverci che a salvare le modifiche e queste risultano salvate a una riapertura Questo è esattamente quello che faccio. Non so se sono io che sbaglio qualcosa Ciao e grazie ancora per la collaborazione Franco ---------------------------------------- ================================================================================ leggere dati in modbus da uno strumento con il dsc ================================================================================ AUTORE: 1368 DATA :19/01/2007 - 08:53:25 ---------------------------------------- Ciao a tutti, devo andare a leggere dei dati da uno strumento in modbus sia seriale che ethernet volevo usare il modulo dsc, ma non mi e tanto chiaro perche il mio strumento ad esempio non usa la porta standard 502 per l ethernet ma la un altra porta, e sul dsc non vedo nessun parametro dove impostare questa porta. qualcuno puo darmi una manina?? grazie ciao ---------------------------------------- AUTORE: 838 DATA :22/01/2007 - 07:22:00 ---------------------------------------- il dsc è un opc client, ti serve per forza un opc server modbus da intsallare sul pc su qullo li imposti tutto quello che occorre... che sia il caso di usare le librerie dirette senza passare per il dsc? ---------------------------------------- AUTORE: 1368 DATA :22/01/2007 - 10:22:45 ---------------------------------------- quali sono queste librerie dirette?? grazie ---------------------------------------- AUTORE: 838 DATA :22/01/2007 - 10:44:05 ---------------------------------------- forum/programmazione avanzata e cerca le discussioni sul modbus ---------------------------------------- AUTORE: 1368 DATA :31/01/2007 - 10:15:59 ---------------------------------------- mi puoi dare il nome di un opc server per il modbus?? grazie ---------------------------------------- ================================================================================ determinare i contorni di un'immagine ================================================================================ AUTORE: 1650 DATA :19/01/2007 - 10:10:10 ---------------------------------------- a partire da un'immagine, come si determinano (ed eventualmente visualizzano) i suoi contorni (linearizzzati)? uso labview 7.1 ---------------------------------------- AUTORE: 1165 DATA :19/01/2007 - 18:52:26 ---------------------------------------- Ciao, ci sono molti modi per affrontare un problema complesso come questo e forse uno dei più immediati è quello di far ricorso a Vi già pronti che la National mette a disposizione nei suoi pacchetti commerciali dedicati alla visione. Sicuramente altri in questo forum ti potranno dare ragguagli più diretti del mio. Quello che posso fare è darti un paio di idee di base sui fondamenti teorici del problema, nell'augurio che ti possano comunque tornare utili. Un'immagine digitalizzata può in generale riguardarsi come una funzione z=f(x,y), dove z è il colore (discretizzato normalmente con una profondità di 24 bit) e x e y sono le coordinate (anch'esse discretizzate) che definiscono la posizione cartesiana dei pixel nel piano cartesiano dell'immagine. Eventuali "figure" contenute nell'immagine globale sono in genere caratterizzate da transizioni rapide di colore da un punto all'altro dell'immagine e queste transizioni vengono appunto percepite dalla psiche come "bordi" delle figure contenute . Quindi tali transizioni brusche possono essere evinte dalla figura nel suo complesso da una operazione di derivata che esalti le differenze fra i valori del colore tra un punto e l'altro. Se poi questa derivata viene data in pasto ad un algoritmo di soglia, puoi individuare abbastanza facilmente la posizione dei bordi (caratterizzati da un alto valore di soglia). Come tutti gli algoritmi a base di derivate, questo criterio è molto sensibile al rumore nell'ìimmagine e quindi un preventivo filtraggio passabasso potrebbe ridurre i falsi positivi nella detezione. Inoltre un più complesso algoritmo di ricostruzione della continuità delle linee di bordo potrebbe ulteriormente migliorare il risultato. In ultitmo ovviamente una funzione bidimensionale ha due direttrici privilegiate di derivazione, la derivata parziale lungo x e quella lungo y. Naturalmente la derivata parziale lungo ogni altra direzione è una combinazione lineare delle due precedenti, a coefficienti dati dai coseni direttori delle direzioni. Quindi a questo punto hai agevolmente in mano un criterio pre privilegiare i contorni lungo una direttirce preferita, oppure estrarli omogeneamente lungo tutte le direttrici. Spero di non averti confuso troppo le idee e se vuoi qualche ulteriore dettaglio chiedi pure. Ciao, Enr. ---------------------------------------- ================================================================================ Help! ================================================================================ AUTORE: 1579 DATA :19/01/2007 - 16:29:16 ---------------------------------------- Ciao, sono Francesca Mi hanno dato un pezzo di progetto che dovrei spiegare... lo allego a questa mail. Praticamente la simulazione è il sistema di sicurezza una stanza di una banca, ¨cè un raggio laser che viene attivato a un certo orario (che lo stabilisce arbitrariamente, a seconda, l¨ utilizzatore). Io dovrei spiegare in una paginetta word, come funziona questo orario... potreste spiegarmelo in Italiano¿¿?sono in spagna con il progetto erasmus e capisco poco.. Poi lo traduco in Spagnolo. Ringrazio tantissimo chi mi può aiutare. FRA ---------------------------------------- AUTORE: 1579 DATA :19/01/2007 - 16:46:43 ---------------------------------------- Ecco l'allegato! l file da spiegare è: Temporizador!! ---------------------------------------- AUTORE: 1574 DATA :19/01/2007 - 20:10:36 ---------------------------------------- Hola Francesca, purtroppo ho la versione 7.1 e non riesco ad aprire il tuo file temporizador... se riesci posta una foto del diagramma a blocchi così ci do un'occhiata!! Hasta pronto! ---------------------------------------- AUTORE: 515 DATA :22/01/2007 - 16:43:11 ---------------------------------------- Ciao Fra! E' molto semplice, in sostanza il tipo "data & ora" viene spacchettato e vengono estratti le ore e i minuti. Ogni ora viene moltiplicata per 60, in modo da avere un totale in minuti, che viene sommato ai minuti dell'ora. Es: 14:40 diventa (14x60)+40 minuti. Lo stesso lavoro viene fatto per l'ora corrente (ricavata con una funzione di sistema) e si verifica che l'ora corrente sia in range (compresa) tra quella d'inizio e quella di fine. Ovviamente, per i calcoli fatti sopra, ciò a senso all'interno della stessa giornata solare. Se siamo in range (tra ora di inizio e ora di fine) alziamo a TRUE un flag booleano. Spero di essere stato chiaro, se così non fosse contattami! Matteo \":D\" ---------------------------------------- ================================================================================ FFT Real/Imm ================================================================================ AUTORE: 955 DATA :21/01/2007 - 17:33:32 ---------------------------------------- Volevo sapere se qualcuno di voi l'aveva già usata perchè la trovo differente dalla mag e phase e mi da dei risultati un po' strani \":roll:\" se il mio segnale è 300V in uscita mi da 30 come mai? ---------------------------------------- AUTORE: 384 DATA :22/01/2007 - 09:10:13 ---------------------------------------- Attento a non avere l'uscita in dB. ---------------------------------------- AUTORE: 955 DATA :22/01/2007 - 14:03:20 ---------------------------------------- mmm cioè? \":roll:\" come si fa a non averla in db? ---------------------------------------- AUTORE: 384 DATA :22/01/2007 - 18:25:08 ---------------------------------------- Ho sbagliato. Solo con mag/phase si può ottenere la magnitude in dB. Appunto per questo tipo di dettagli (finestra, mediazione, visualizzazione in dB) verifica che stai comparando cose comparabili. Mi sembra strano una differenza cosí marcata, sopratutto perchè il codice all'interno è lo stesso (basta andara a sbirciare!). , ---------------------------------------- AUTORE: 955 DATA :23/01/2007 - 05:59:47 ---------------------------------------- già infatti. \":roll:\" un'occhiata all'interno gliel'ho data. Il punto è che se vedi lui per la FFT Re/Im altro non fa che prendere il blocco FFT Re/Im e poi utilizza una conversione in rò e teta ovvero è come se riconvertisse nuovamente in Mag/Phase \":o\" ---------------------------------------- AUTORE: 955 DATA :23/01/2007 - 06:01:42 ---------------------------------------- ah poi un'altra cosa gyc (scusa se approfitto sempre della tua disponibilità) ma il grafo della phase del mag/phase tu li sai leggere? cioè se l'utente dal front pannel inserisce una fase di 30gradi ad una sinusoide di ampiezza 10 e frequenza 50 come faccio a capire se il grafico è giusto o no? \":oops:\" ---------------------------------------- AUTORE: 384 DATA :23/01/2007 - 09:59:23 ---------------------------------------- Il grafico della fase in una FFT non è banalmente riconducibile ad un pico in corrispondenza della fase del segnale nel tempo. In generale la fase contiene informazione sulla posizione di "eventi" nel tempo ed è dificile da interpretare. Solo in alcuni casi semplici (fase lineare) si può guardare la fase per capire la "simetria" o il "shift" del segnale nel tempo. Non solo, la fase è molto più soggetta a problemi di "contaminazione" dovuti al 'aliasing', alla finestra e a fenomeni di carattere puramente numerico e per questo raramente viene utilizzata. A me non è mai capitato nè l'ho visto fare. Ricordo molto vagamente dalle classi di "parameters estimation" all'università che solo con operatori più complessi per lo studio e caratterizzazione dei segnali (appunto la "stima" dei loro parametri) ci si faceva caso. ---------------------------------------- AUTORE: 384 DATA :23/01/2007 - 10:08:12 ---------------------------------------- Ho trovato [url=http://www.dspguide.com/ch10/2.htm:22t7n9aj]questa spiegazione[/url:22t7n9aj] molto interessante in proposito. ---------------------------------------- AUTORE: 955 DATA :23/01/2007 - 10:40:12 ---------------------------------------- ok leggo anzi traduco e poi leggo e ti faccio sapere \":wink:\" grazie cmq gyc ---------------------------------------- ================================================================================ Chiamata DLL esterne ================================================================================ AUTORE: 1795 DATA :22/01/2007 - 10:48:21 ---------------------------------------- Ciao a tutti... Ho realizzato un VI con una chiamata ad una DLL (realizzata in C++) che deve essere eseguita più volte. Ma a me serve che tra un'esecuzione e l'altra, tutte le variabili locali della DLL conservino il loro valore. Ma ho invece trovato che si resettano ad ogni chiamata... E' possibile modificare questa cosa? Ciao e grazie, Ettore ---------------------------------------- AUTORE: 838 DATA :22/01/2007 - 13:22:45 ---------------------------------------- mi sa che non puoi, a meno che non passi alla dll i valori da impostare alle var mediante la chiamata ---------------------------------------- AUTORE: 384 DATA :22/01/2007 - 18:15:27 ---------------------------------------- Dipende soltanto da come è stato scritto il codice della DLL. Si possono definire delle variabili "stattiche" che conserveranno il loro valore fra una chiamata e l'altra - lo stesso effetto che si ottiene in labview con i shift register di un loop che si esegue una volta sola (per esempio, le "functional globals"). ---------------------------------------- AUTORE: 1795 DATA :23/01/2007 - 14:52:09 ---------------------------------------- Grazie per il suggerimento. Ho provato e sembra comportarsi esattamente come voglio io. ---------------------------------------- ================================================================================ case structure (..default if unwired) ================================================================================ AUTORE: 1317 DATA :22/01/2007 - 11:24:46 ---------------------------------------- utilizzo un case all'interno di un ciclo while per poter monitorare sul pannello la temperatura e permettere il salvataggio dei dati solo dopo aver premuto un tasto di ON. non riesco però a fare in modo che in caso di OFF non venga generato l'array poichè l'unica alternativa possibile sembra essere "use default if unwired".Non è possibile fare in modo che con OFF semplicemente non faccia niente? ---------------------------------------- AUTORE: 482 DATA :22/01/2007 - 12:42:22 ---------------------------------------- ...ma ciao! devi mettere l'array generato (e se ho capito bene anche il salvataggio del file) all'interno del case true e non all'esterno del case. ---------------------------------------- AUTORE: 1317 DATA :23/01/2007 - 14:40:51 ---------------------------------------- in effetti ho aggirato il problema riuscendo a salvare i dati all'interno del ciclo while senza dover far uscire l'array e quindi mantenendo tutto all'interno del case..grazie ancora ---------------------------------------- ================================================================================ Minimizzare finestre durante l'esecuzione ================================================================================ AUTORE: 1427 DATA :22/01/2007 - 12:48:32 ---------------------------------------- buongiorno a tutti! Immancabilmente torno a sperare in un vostro aiuto, per una cosa "stilistica" che vorrei aggiungere ad un programma. Ho il vi principale che durante l'esecuzione chiama finestre di altri subvi. Mi piacerebbe che durante la visualizzazione della finestra del subvi, il vi principale si "riducesse" sulla barra, in modo che il desktop sotto resti visibile (perche' gi gira un altro software) per poi tornare centrato nella pagina una volta che il subvi si chiude. E' possibile? grazie e buona giornata, Marco ---------------------------------------- AUTORE: 838 DATA :22/01/2007 - 13:20:46 ---------------------------------------- esistono delle dll da usare per fare tutto quello che vuoi con le finestre cerca meglio nel forum che ne è stato parlato parecchio ---------------------------------------- AUTORE: 927 DATA :22/01/2007 - 13:48:31 ---------------------------------------- Non c'è bisogno delle DLL... Usa un Invoke node, con Select class = VI, e Method = Front panel -> Runtime position -> Minimized ---------------------------------------- AUTORE: 1427 DATA :23/01/2007 - 08:27:42 ---------------------------------------- [quote="Snamprogetti":j227z9yt]Non c'è bisogno delle DLL... Usa un Invoke node, con Select class = VI, e Method = Front panel -> Runtime position -> Minimized[/quote:j227z9yt] infatti, ho seguito il tuo suggerimento anche se mi vorrei scusare perche' a questa domanda avrei trovato risposta tra gli esempi proposti, avevo sbagliato chiave di ricerca! \":-)\" grazie mille per l'aiuto e buon giornata!! ---------------------------------------- AUTORE: 838 DATA :23/01/2007 - 14:05:04 ---------------------------------------- scusate, quella invoke mi sembra sia disponibile solo dalla 8 in poi chi ha la 7 deve per forza usare le dll correggetemi se sbaglio ---------------------------------------- AUTORE: 927 DATA :23/01/2007 - 16:39:58 ---------------------------------------- Effettivamente ho guardato nella 7.1 e non ho trovato neanch'io un equivalente. Credo che la DLL in questione fosse questa: http://digital.ni.com/public.nsf/websea ... enDocument Ora che ci penso però, se il programma che vuoi lanciare è in formato exe, c'è un'altra soluzione stupidissima... Basta creare un collegamento all'exe, nelle cui proprietà metti Esegui = Ridotta a icona! (Questo in Windows, ma ci sarà un equivalente negli altri SO. Anche la DLL di cui sopra è solo per Win) ---------------------------------------- AUTORE: 384 DATA :24/01/2007 - 09:13:17 ---------------------------------------- Si che c'è nella 7.1!!! ---------------------------------------- AUTORE: 927 DATA :24/01/2007 - 09:57:09 ---------------------------------------- E' vero, bisogna cercare con più attenzione \":lol:\" A parole: Property Node con Select class = VI, Property = Front Panel Window -> State ---------------------------------------- ================================================================================ Lampeggio di array ================================================================================ AUTORE: 927 DATA :23/01/2007 - 09:17:04 ---------------------------------------- Non si può fare con la proprietà blinking? ---------------------------------------- ================================================================================ Panel in primo piano ================================================================================ AUTORE: 1803 DATA :23/01/2007 - 09:32:15 ---------------------------------------- C'è qualcuno che sa spiegarmi perchè in debug il programma allegato funziona correttamente, ma l'eseguibile no? Molto semplicemente, volevo visualizzare solo i sub vi selezionati dal main con i tasti boolean, ma nell'eseguibile riesco a vedere solo l'ultimo selezionato mentre gli altri passano in background. Grazie. ---------------------------------------- AUTORE: 645 DATA :23/01/2007 - 09:52:32 ---------------------------------------- Io ti suggerirei di gestire le operazioni con la struttura ad eventi: quando un pulsante viene premuto richiami il VI collegato e ne modifichi l'apparenza (FP.State). Piuttosto che con cicli che continuano ad interrogare la variabile globale e assegnare un valore al Property Node. Poi prova a dare un occhio a http://community.ni.com/examples/simple ... ont-panels . ---------------------------------------- AUTORE: 1803 DATA :23/01/2007 - 13:24:53 ---------------------------------------- Grazie per l' immediata risposta. Ho fatto come mi hai suggerito (decisamente più elegante), ma il problema, una volta creato l'eseguibile, rimane. Farò ancora qualche tentativo, ma penso che opterò per la soluzione di visualizzare un solo subvi alla volta. \":(\" Ciao. ---------------------------------------- ================================================================================ Vecchia telecamera collegabile a LV ? ================================================================================ AUTORE: 46 DATA :23/01/2007 - 09:37:12 ---------------------------------------- Buongiorno a tutti Recentemente è stato donato all'istituto tecnico in cui lavoro un sistema di visione artificiale piuttosto obsoeto (dovrebbe essere del 1997). Esso è composto da una telecamera con uscita composita e una scheda di interfacciamento al personal computer. E' disponibile un software di gestione che in pratica serve per configurare la telecamera come se si comportasse da scanner. In effetti, utilizzando ad esempio in software Imaging di windows2000 e chiedendo di acquisire una nuova immagine, si apre una finestra, denominata TWAIN32, nella quale si vede in tempo reale ciò che la telecamera sta riprendendo. Il mio quesito è: secondo voi c'è il modo per vedere questa immagine anche in LV ? Mi potreste dare qualche indicazione su come muovermi ? Premetto inoltre che ho cercato driver più recenti della scheda di gestione della telecamera, ma non ho trovato niente. Grazie dell'attenzione Claudio ---------------------------------------- AUTORE: 645 DATA :23/01/2007 - 09:54:01 ---------------------------------------- Cosa intendi con "Scheda di interfacciamento"? Con quale porta avviene la comunicazione tra Telecamera e PC? ---------------------------------------- AUTORE: 46 DATA :23/01/2007 - 10:13:21 ---------------------------------------- Si tratta di una scheda PCI che è installata dentro al PC; in essa è presente un connettore per il collegamento alla telecamera nonchè il connettore per collegare il monitor del PC. Il sistema operativo riconosce questa scheda come TSENG Labs ET6000. Grazie ancora Ciao ---------------------------------------- AUTORE: 645 DATA :23/01/2007 - 10:16:03 ---------------------------------------- Hai a disposizione qualche manuale in cui si parla di controllo remoto della telecamera? O riesci a trovare qualche informazione su questo argomento? ---------------------------------------- AUTORE: 645 DATA :23/01/2007 - 10:23:32 ---------------------------------------- In Internet ci sono alcune pagine che parlano della telecamera che hai indicato e di schede di interfaccia (cerca in Google "TSENG Labs ET6000"). Tu hai il pacchetto IMAQ per il controllo delle immagini in LabView? ---------------------------------------- AUTORE: 46 DATA :23/01/2007 - 11:01:22 ---------------------------------------- IMAQ ce l'ho. Adesso vado a vedere cosa dsi trova in internet. Ciao Claudio ---------------------------------------- AUTORE: 46 DATA :24/01/2007 - 07:44:59 ---------------------------------------- Ciao Ho una novità Ho scoperto che sul computer è stato installato, probabilmente quando era stata inserita la scheda, il software flashpoint 128, che in effetti consente di acquisire l'immagine consentendo di vedere la telecamera come se fosse uno scanner. Questo informazione può essere importante ? Ciao Claudio ---------------------------------------- AUTORE: 645 DATA :24/01/2007 - 08:35:36 ---------------------------------------- Guarda http://www.alliancevision.com/us/produc ... _twain.htm : ci sono i driver per acquisire periferiche TWAIN con IMAQ. ---------------------------------------- AUTORE: 46 DATA :24/01/2007 - 09:47:59 ---------------------------------------- Sembrerebbe proprio quello che mi occorre. Purtroppo la scuola in cui lavoro non ha di sicuro a disposizione i 700 euro necessari per l'acquisto. Siccdome ho visto che posso gestire la scheda utilizzando funzioni MCI, proverò a vedere se il LV è possibile operare con questi comandi. Grazie infinite per l'informazione Vi farò sapere i miei progressi (anche se penso che non ce ne saranno) Claudio ---------------------------------------- AUTORE: 645 DATA :24/01/2007 - 10:29:10 ---------------------------------------- Ooppss... non avevo visto il costo... ho guardato il sito in fretta... \":oops:\" ---------------------------------------- AUTORE: 46 DATA :24/01/2007 - 10:46:04 ---------------------------------------- Ho comunque fatto qualche ricerca e ho trovato un forum americano (credo) che si chiama LAVA al cui indirizzo http://forums.lavag.org/index.php?s=ead ... entry17925 c'è una discussione dalla quale è possibile scaricare la versione demo di quel driver (dal sito alliance non ci si riesce) Adesso la vado a provare Claudio ---------------------------------------- AUTORE: 645 DATA :24/01/2007 - 10:55:24 ---------------------------------------- Altre indicazioni: http://digital.ni.com/public.nsf/allkb/ ... b40056fc8f , http://sine.ni.com/devzone/cda/epd/p/id/5030 , http://digital.ni.com/public.nsf/allkb/ ... 32007295F9 . Si parla di connessione USB (che forse la tua telecamera non ha...) e della possibilità di richiamare il driver TWAIN installato con la telecamera nel VI creato con LabView. Dovresti controllare la DLL per lavorare con la telecamera. ---------------------------------------- AUTORE: 46 DATA :24/01/2007 - 11:12:28 ---------------------------------------- Infatti purtoppo la telecamera non è collegata all'USB, ma direttamente alla scheda video. ---------------------------------------- AUTORE: 46 DATA :25/01/2007 - 10:31:00 ---------------------------------------- Continuando a leggere la documentazione fornita assieme alla telecamera, ho visto una serie di comandi software riferiti al fatto di gestire la telecamera secondo lo standard MCI. Secondo voi è possibile riferirsi a questi comandi da LabVIEW ? Ciao ---------------------------------------- ================================================================================ Show Front Panel when called ================================================================================ AUTORE: 1317 DATA :23/01/2007 - 11:05:07 ---------------------------------------- ciao a tutti.avrei bisogno di caricare un subVI (contenente un chart) all'interno di un ciclo while.Usando il comando "Show Front Panel when called" il subVI cpmpare ogni volta che viene richiamato dal ciclo e invece vorrei che alla prima chiamata si aprisse solamente e rimanesse come finestra nella barra delle applicazione pronto per essere aperto. ---------------------------------------- AUTORE: 927 DATA :23/01/2007 - 16:44:18 ---------------------------------------- Non l'ho provato, ma magari togliendo "Close if originally closed"... ---------------------------------------- AUTORE: 1317 DATA :23/01/2007 - 16:51:44 ---------------------------------------- credevo anche io in questa possibilità ma facendo così a video rimane sempre la schermata del subVI..e quella del main viene ad ogni ciclo sostituita da quella del sub. \":cry:\" ---------------------------------------- AUTORE: 482 DATA :24/01/2007 - 07:31:49 ---------------------------------------- Se resta sempre in primo piano è perchè le proprietà son da settare diversamente. In alternativa devi provare piazzandolo in un ciclo parallelo (se possibile). ---------------------------------------- AUTORE: 645 DATA :24/01/2007 - 08:22:44 ---------------------------------------- Vediamo se ho capito: vuoi aprire il pannello frontale del SubVI la prima volta e poi lasciare il SubVI aperto nella barra delle applicazioni e ingrandire o ridurre a icona quando il VI principale lo chiama... giusto? Se è così puoi chiamare il VI in maniera dinamica la prima volta, settare su True la casella "Show Front Panel" nei Property Node e poi sfruttare alcune funzioni per finestre... prova a cercare nel forum qualcosa sulla gestione delle finestre, non mi ricordo dove ma se ne parla. Alla fine chiudi il SubVI in maniera dinamica quando non ti serve più. ---------------------------------------- AUTORE: 1317 DATA :24/01/2007 - 08:35:17 ---------------------------------------- vorrei che il subVI si apreisse la prima volta e poi posto ad icona (anche dall'utente) continuasse a girare senza più comparire fino a quando l'utente non desidera guardare quel pannello cliccando ancora una volta sulla barra delle applicazioni.In questo subVI gira un'applicazione secondaria che viene guardata di rado ma che deve continuare a monitorare l'evento. ---------------------------------------- AUTORE: 645 DATA :24/01/2007 - 08:43:35 ---------------------------------------- Guarda questo post: viewtopic.php?t=2594 . Si parla della gestione delle finestre. L'idea che ho accennato prima dovrebbe funzionare: lanci il SubVI in maniera dinamica dal VI principale e poi lo lasci andare. Devi dare all'utente la possibilità di ridurlo a icona ma non quella di chiuderlo (ci sono varie possibilità, puoi togliere tutti i menù dal SubVI e gestire la riduzione a icona dal VI principale, per esempio...). Quando l'utente vuole vedere come vanno le cose lo ingrandisce. L'importante è che quando apri il SubVI imposti a False la casella "Aspetta fino alla fine del programma" (non mi ricordo il nome esatto in inglese ma è un'opzione del Property Node "Open VI"): in questo modo VI principale e SubVI girano parallelamente. ---------------------------------------- AUTORE: 1317 DATA :24/01/2007 - 09:51:55 ---------------------------------------- grazie mille.ho proprio trovato quello che cercavo. Utilizzando un invoke node di OPEN FP posso aprire il pannello nella prima sequenza e nella seconda porre il ciclo while di acquisizione misure.è ora possible utilizzare il boolean di start del SubVI posto all'interno del ciclo while per comandare anche l'invoke node che invece deve essere posto prima del ciclo??.......grazie ancora ---------------------------------------- ================================================================================ Complex To Re/Im e Complex To Polar ================================================================================ AUTORE: 955 DATA :23/01/2007 - 12:49:05 ---------------------------------------- Sto utilizzando questi due blocchi. Li inserisco in uscita di una waveform generata col blocchetto Tone and noise ma sembrano non funzionare correttamente. In pratica se genero ad esempio una sinuoide di ampiezza 10 con fase 30 sia Re che il "mag" del polar mi individuano l'ampiezza esatta del segnale mentre sia l'Im che il teta del polar dicono che il mio angolo è nullo! \":?\" Ho notato poi che anche se metto fasi diffenti l'unica cosa che cambia sono i valori riportati da Re e da mag mentre sia l'im che il polar restano sempre nulli. Com'è possibile?? \":roll:\" ---------------------------------------- AUTORE: 384 DATA :24/01/2007 - 09:53:55 ---------------------------------------- Prova a giocarci con questi vi variando la Fs, in numero di campioni (#s) e la finestra. Vedrai come la 'mag' rimane, ma la fase varia tantissimo; in certe combinazioni, la 'Im' assume valori molto bassi, rendendo quindi numericamente instabile la fase. Ripeto: il diagramma della fase NON presenta dei picchi con il valore di fase in corrispondenza della frequenza. Guarda [url=http://www.dspguide.com/ch10/2.htm:15gu305b]qui[/url:15gu305b]. ---------------------------------------- AUTORE: 384 DATA :24/01/2007 - 10:02:39 ---------------------------------------- Ecco il vi. Sorry. \":oops:\" ---------------------------------------- AUTORE: 955 DATA :24/01/2007 - 10:15:22 ---------------------------------------- si infatti ieri ho provato a fare delle prove ed il link che mi avevi fornito mi è stato davvero di aiuto \":wink:\" grazie anche per questo vi cmq \":wink:\" ora devo iniziare a lavorare sui FIR...prevedo altri post di chiarimento \":oops:\"...e spero di poter contare ancora sulla tua disponibilità \":)\" ---------------------------------------- AUTORE: 384 DATA :24/01/2007 - 10:27:23 ---------------------------------------- É tanto che non ci lavoro, ma potrebbe anche essere l'occasione per ricordare! ---------------------------------------- AUTORE: 955 DATA :24/01/2007 - 10:37:57 ---------------------------------------- [quote="gyc":rhdxja8h]É tanto che non ci lavoro, ma potrebbe anche essere l'occasione per ricordare![/quote:rhdxja8h] \":wink:\" ti farò sapere \":wink:\" grazie cmq \":wink:\" ---------------------------------------- ================================================================================ più plot in un piano di riferimento -> un grafico per plo ================================================================================ AUTORE: 1805 DATA :23/01/2007 - 17:14:39 ---------------------------------------- Salve sono Dario e sono nuovo del forum, volevo chiedere aiuto su una questione e cioè in un VI che ho creato mi trovo a lavorare con un array che posto in un wave graph mi da "n" grafici però sullo stesso piano di visualizzazione invece io vorrei visualizzarli separatamente. Sapreste aiutarmi? Grazie anticipatamente! ---------------------------------------- AUTORE: 1165 DATA :23/01/2007 - 18:44:45 ---------------------------------------- Se ho capito bene il tuo problema dovresti fare click col tasto destro del mouse (right click) sul grafico e scegliere l'opzione "stack plots" che ti mostra i vari plots su aree separate del grafico. Se invece vuoi fisicamente grafici del tutto separati devi separare a priori i valori scomponendoli in entità distinte. Attenzione, nel caso di plottaggio di più tracciati contemporaneamente, alla impostazione "Transpose Array" che ti scambia righe per colonne. Ciao, Enrico. ---------------------------------------- AUTORE: 1805 DATA :25/01/2007 - 10:54:19 ---------------------------------------- No in pratica il mio problema è dividere in diversi grafici un array "n" dimensionale. perchè per l'impostazione base me li sovrappone. Se qualcuno sa aiutarmi grazie mille!! ---------------------------------------- AUTORE: 1165 DATA :25/01/2007 - 12:50:36 ---------------------------------------- Allora puoi usare la funzione "Index Array" nel Block Diagram per scomporre il tuo vettore n-dimensionale (suppongo bidimensionale) nei suoi vettori componenti monodimensionali per poi plottare separatamente ciascuno di questi. E' sicuramente molto facile e senza dubbio ci riesci da solo, ma se non mi sono spiegato bene dimmelo, che eventualmente ti mando un veloce esempietto già fatto. Enr. ---------------------------------------- ================================================================================ Shared variables network published ================================================================================ AUTORE: 1771 DATA :23/01/2007 - 17:28:12 ---------------------------------------- Ciao a tutti, vorrei sapere come riuscere a far funzionare il seguente esempio di labview "Shared Variable Client - Server.lvproj" con due pc. Ho provato a lanciare da project explorer rispattivamente il vi del server e il vi client su due computer distinti, ma i due vi non comunicavano fra di loro. Entrambe le macchine hanno il firewall disabilitato e sono nella stessa sottorete. Qualcuno sa dirmi quale passaggio mi manca ? Grazie ---------------------------------------- AUTORE: 487 DATA :24/01/2007 - 13:07:59 ---------------------------------------- Ciao Daniele, così a naso direi che il problema potrebbe essere nelle impostazioni delle shared variable: l'esempio è stato fatto per girare sul medesimo compiuter, se vuoi metterlo su due computer differenti devi settare una la shared variable del client con l'indirizzo del IP del server, per poterle collegare. Inoltre mi viene in mente che, se non hai l'ambiente di sviluppo su entrambi i pc, devi fare il deploy esplicito delle variabili quando lanci l'esempio. Non so se sono stato abbastanza chiaro, se hai dei dubbi chiedi tranquillamente. ---------------------------------------- AUTORE: 1771 DATA :24/01/2007 - 15:04:56 ---------------------------------------- Grazie, su entrambi i computer ho la suite di sviluppo, cosa intendi per settare la shared variable con l'ip del server ? In effetti posso bindare i controlli ( dandogli l'indirizzo del computer ) oppure usare il datasocket ( usando anche li l'indirizzo del computer e il path della libreria ),ma la mia intenzione era quella di usare le variable API, credevo che il bello delle shared variables network published fosse che cercassero automaticamente il server nella sottorete. In quell' esempio ci sono 4 client : 2 con il binding , 1 con il datasocket 1 uno con le variable API. a sto punto non vedo l'utilità delle variable API network published... GRAZIE ---------------------------------------- AUTORE: 487 DATA :24/01/2007 - 15:38:31 ---------------------------------------- Io, in effetti, ho fatto il bind to source, non ho mai provato con le API. ---------------------------------------- ================================================================================ virtual instrument per sensoristica di progetto (PT100) ================================================================================ AUTORE: 1806 DATA :23/01/2007 - 21:15:04 ---------------------------------------- voglio creare un VI in cui faccio la gestione da remoto di sensoristica di progetto per monitorare dei segnali provenienti da sensori di temperatura e altra roba simile; sul miopc non ho una porta com, ma usb. Come faccio a far capire dal mio block diagram che prelevo i segnali dalla usb,e non dalla com?? ---------------------------------------- AUTORE: 645 DATA :24/01/2007 - 08:19:24 ---------------------------------------- Che scheda di acquisizione usi? Una scheda National collegata alla porta USB? Una scheda di altra marca collegata alla porta USB? Oppure una scheda con interfaccia seriale collegata alla USB tramite convertitore? O nessuna delle precedenti... \":D\" ... ---------------------------------------- ================================================================================ rilevare frequenza su ingresso digitale ================================================================================ AUTORE: 1308 DATA :23/01/2007 - 21:33:42 ---------------------------------------- ho bisogno di leggere una frequenza, che potrebbe anche arrivare a 1,5KHz su di un ingresso digitale, ma non riesco a costruire lo schema a blocchi. qualcuno mi puo dare una mano ? grazie ---------------------------------------- ================================================================================ ax5232 ================================================================================ AUTORE: 1777 DATA :24/01/2007 - 01:11:47 ---------------------------------------- Salve,chido aiuto,credo di aver fatto il possibile,ho una ax5232 dopo che sono riuscito a creare un programmino che mi misura la potenza in continua e mi restituisce la potenza media e quella istantanea non riesco a creare l exe perche mi compare una frase che parla di links ai file degli helps errati o mancanti,il fatto e che tutti gli altri elementi della libreria non danno l'errore e l'exe si crea benissimo,grazie. ---------------------------------------- AUTORE: 645 DATA :24/01/2007 - 08:16:30 ---------------------------------------- Ehm... puoi descriverci un po' meglio il problema? I file dell'help che creano problemi li hai inseriti tu o li prendi già pronti da qualche altra parte? I collegamenti con i file li hai inseriti durante la creazione dell'exe (con Application Builder immagino... ma quale versione?) ? ---------------------------------------- AUTORE: 1777 DATA :25/01/2007 - 23:33:32 ---------------------------------------- cHIEDO SCUSA HO RISOLTO SONO ENTRATO NELLE PROPRIETA DEL VI E HO CANCELLATO IL PERCORSO DEI FILE DI HELPS ,NON SO NEMMENO IO COME MAI ERA L'UNICO VI CHE AVEVA IL FILE DI HELP,GRAZIE. ---------------------------------------- AUTORE: 1777 DATA :25/01/2007 - 23:45:12 ---------------------------------------- CON LA BUONA VOLONTA SONO RIUSCITO FINALMENTE A CREARE UN VI CHE INIZIA A BOCCE FERME E UNA VOLTA PREMUTO OK INIZIA A CONTARE PER IL TEMPO DA ME STABILITO E AL TERMINE MI RESTITUISCE MEDIA MASSIMO DELLA POTENZA RILEVATA DALLA MI AX5232 L'HO REALIZZATO RACCHIUDENDO UN WHILE A SUA VOLTA IN UN CASE COMANDATO DA UN PULSANTE DI INIZIO A SUA VOLTA RACCHIUSO DA UN WHILE IL PROBLEMA E IL SEGUENTE:COME FACCIO A FERMARE IL PROGRAMMA CON UN COMANDO DI STOP UNICO,POICHE HO PROVATO CON IL PULSANTE DEL WHILE PIU ESTERNO MA NON FUNGE SE NON AL TERMINE DEL CONTEGGIO MENRE LO STOP DEL WHILE PIU INTERNO INTERROMPE SOLO QUEL WHILE,AGGIUNGO UN ALLEGATO SE QUALCUNO HA VOGLIA DI DARMI ANCHE SOLO UN INDIZIO, GRAZIE ---------------------------------------- ================================================================================ Array di cluster ================================================================================ AUTORE: 1802 DATA :24/01/2007 - 15:33:31 ---------------------------------------- ciao a tutti, sono nuovo in questo sito e anche in LV! Avrei bisogno di sapere se esiste già qualcosa che gestisca un array di cluster (inserimento, cancellazione di un elemento, duplicazione di un elemento, sposta su/giù, ecc.) o se qualcuno sa spiegarmi come potrei fare. Grazie mille... Max ---------------------------------------- AUTORE: 927 DATA :25/01/2007 - 08:08:26 ---------------------------------------- Gli array di cluster sono come tutti gli altri array e si gestiscono nello stesso modo. Puoi usare le normali funzioni della categoria Array per inserire, cancellare, eccetera! ---------------------------------------- AUTORE: 1802 DATA :25/01/2007 - 16:39:01 ---------------------------------------- Ok! Ma quello che mi chiedevo era se esistesse qualcosa di precotto che permettesse di manipolarli dinamicamente. Comunque grazie della risposta. Adesso sto cercando di prenderci un po' di pratica. Ciao, Max ---------------------------------------- AUTORE: 1168 DATA :26/01/2007 - 07:02:16 ---------------------------------------- Ciao! Cosa intendi con "manipolarli dinamicamenre"? Hai scartato l'idea cluster di cluster? ---------------------------------------- ================================================================================ Filtro FIR ================================================================================ AUTORE: 955 DATA :24/01/2007 - 15:43:23 ---------------------------------------- Come promesso...gyc ecco il post che avrei tanto voluto evitarti. Allora genero un segnale di 10V a 50Hz con 3a armonica e 5a armonica rispettivamente di ampiezza 5V e 3V. Voglio effettuare il filtraggio con un FIR. Ho scelto questo blocchetto qui: FIR Windowed Filter e l'ho settato come segue: Window:hamming low cutoff frequency: 70Hz high cutoff frequency:0 taps (ovvero ordine del filtro):200 Ho notato che il filtro va a regime dopo un po' di tempo (e questo lo trovo anche giusto) ma come mai mi ritrovo le stesse oscillazioni anche alla fine? \":roll:\" Ti allego una jpeg. [url=http://img403.imageshack.us/my.php?image=immagine1nk.jpg:2rja25qh][img:2rja25qh]http://img403.imageshack.us/img403/3879/immagine1nk.th.jpg[/img:2rja25qh][/url:2rja25qh] ---------------------------------------- AUTORE: 198 DATA :25/01/2007 - 07:42:11 ---------------------------------------- Allora per quel che ho potuto capire generi 3 armoniche... s(t)=10*cos(2*pi*50*t)+5*cos(2*pi*150*t)+3*cos(2*pi*250*t) Poi vuoi filtrare s(t) con un filtro FIR, che secondo me è impostato male, ma bisogna vedere se il filtro che usi è un LP, HP, BP... o altro perchè le frequenze di cut-off assumono significato diverso. Il tipo di finestratura determina anche il ripple che hai in uscita dal filtro, per la scelta della finestra dovresti fare qualche prova. ---------------------------------------- AUTORE: 955 DATA :25/01/2007 - 09:09:44 ---------------------------------------- il filtro l'ho impostato come passa basso. che significato assumono quindi quelle due frequenze? teoricamente per un passabasso dovrei impostare Fh e non Fl o sbalio?eppure labview mi filtra il segnale solo se impongo Fl diverso da zero.Se infatti pongo Fl pari a zero e Fh alla frequenza a cui vorrei ipoteticamente filtrare mi fa uscire lo stesso segnale che avevo in ingresso senza filtrare....a questo punto quindi non capisco che significato attribuisce alle due frequenze... A quanto ho capito inoltre i taps indicano l'ordine del filtro per cui diciamo che mi son tenuto abbastanza altino con un taps pari a 200. Ovviamente riducendo questo numero mi diminuisce anche la risoluzione del segnale filtrato. ---------------------------------------- AUTORE: 198 DATA :25/01/2007 - 11:58:41 ---------------------------------------- \":arrow:\" Allora senza entrare troppo in merito al filtraggio in digitale... Immagina di campionare un filtro ideale passabasso. IN SOLDONI \":lol:\" i TAPS: sono il numero di campioni con cui campioni il filtro ideale, + sono migliore sarà il filtraggio, perchè approssimi meglio il filtro ideale. Le 2 frequenze (FH ed FL), ti danno la larghezza di banda della frequenza di transizione (se non erro è il termine usato in letteratura). Ovvero FH da che frequenza il filtro comincia a filtrare, ed FL a che frequenza il filtro smette di filtrare, ed il segnale cmq è attenuato e bassisimo. Le due frequenze quindi sono essenziali, e non puoi metterne una a 0. Il disegno del filtro è così: [img:21zee8hz]http://www.freqdev.com/images/products/spppfgraph1.gif[/img:21zee8hz] NOTA: FH è la FC1 nel disegno ed FL è la FS1. Dove vedi che il filtro "taglia" ovvero la risposta va verso il basso, ecco quella zona (banda) è delimitata da FH ed FL (FH= limite superiore, FL= limite inferiore). Il tuo filtro avrà una risposta in frequenza simile a quella. E qui chiudiamo la TEORIA sul filtro. \":arrow:\" Ora passiamo ad un caso pratico: se tu generei 3 sinusoidi come ti ho scritto sopra: s(t)=10*cos(2*pi*50*t)+5*cos(2*pi*150*t)+3*cos(2*pi*250*t) ovvero una a 50hz ampiezza 10V, una a 150hz ampiezza 5V ed una a 250hz ampiezza 3V, sommate tra loro. Ottieni una specie di seno a 50 hz disturbato. Impostando la FH a 50hz e la FL a 70hz e dando in pasto al filtro il tuo s(t), in uscita dovresti avere solo la sinusoide a 50hz ed un lieve disturbo. Tale disturbo, se necessario, può essere ridotto aumentando i taps (ma ti aumentano il ritardo sul segnale di uscita), oppure riducendo FL (che però + di tanto non influisce causa la finestratura, ah... con altre finestre cambia ben poco ). Spero di essere stato un po' più chiaro, ho dovuto tralasciare dettagli se no il discorso era troppo lungo, ma penso che ci sia quello che ti serve \";)\" Fammi sapere ulteriori sviluppi \":)\" ---------------------------------------- AUTORE: 955 DATA :25/01/2007 - 13:09:16 ---------------------------------------- ok perfetto direi a dir poco chiarissimo \":wink:\" domattina mi precipito all'univ e lo provo e ti faccio sapere \":wink:\" grazie ancora per il tuo aiuto ---------------------------------------- AUTORE: 384 DATA :25/01/2007 - 13:33:29 ---------------------------------------- Vedo che arrivo in ritardo \":oops:\" e non ho niente da aggiungere. Probabilmente l'hai fatto, ma ti segnalo lo stesso che ci sono di VI express molto pratici da usare per provare i filtri e "giocare" con i parametri. ---------------------------------------- AUTORE: 955 DATA :25/01/2007 - 16:40:11 ---------------------------------------- eh lo so...il punto è che non posso usarli \":cry:\" mi è stato impedito di usarli \":cry:\" ---------------------------------------- AUTORE: 384 DATA :26/01/2007 - 09:26:03 ---------------------------------------- Infatti ti scosiglio anch'io di usarli nella tua applicazione - chiamiamola - finale. Io intendevo durante lo sviluppo: sono molto pratici e, una volta "affinati" tutti i parametri, si può fare una di due cose: 1)implementare con i blocchi "normali" il filtro che si è scelto con i parametri definiti; 2)trasformare il VI da express in normale, ed eventualmente cancellare all'interno ciò che non interessa; ---------------------------------------- AUTORE: 955 DATA :28/01/2007 - 09:52:17 ---------------------------------------- ancora sul filtro... (vi giuro che non ne posso + \":cry:\" ) Ho una segnale a 50Hz con armoniche a 150 e 250 Hz (sempre lo stesso \":roll:\" ) e campiono a Fc=10kHz e ho s=4000. Filtro con il Digital FIR Filter che setto come passabasso a frequenza di taglio lower PB a 60Hz ora visto che il filtro non è ideale e ci mette un po' prima di andare a regime voglio prendere tutta la parte del segnale che va dal 5 periodo al 15 (credo che a quel punto il filtro sia finalmente andato a regime \":roll:\" ). Per far ciò avevo pensato di sincronizzare il segnale contando i passaggi per lo zero. Faccio tutto questo perchè mi occorre conoscere la frequenza del segnale filtrato che tanto potrebbe essere solo 50Hz tanto 50+150 e così via in base a quanto fisso la frequenza di taglio del filtro stesso. Il fatto è che quando faccio la mia bella FFT Mag&Phase del segnale filtrato ho una bella sorpresa \":evil:\" mi rileva, posto sempre un filtraggio a 60Hz con finestra Hamming (a mio avviso la migliore come rapporto attenuazione/grandezza lobo centrale), non solo la componente a 50Hz ma anche quelle (anche se devo dire la verità notevolemente attenuate in ampiezza \":roll:\" ) a 150Hz e quelle (ancora + ridotte) a 250Hz... Io credo che questa "anomalia" sia dovuta alla non idealità del filtro...poi non saprei...di sicuro però mi aspettavo un bel array in uscita dalla FFT contenente un valore per l'eventuale continua, una per la 50Hz e due bei 0 per le 2 armoniche...ed invece ora mi ritrovo con dei valori (anche se praticamente insignificanti) anche per le due armoniche! E' una cosa normale o ho sbagliato io qualcosa? mi spiegate a cosa è dovuta questa "anomalia"? Grazie ancora per l'aiuto che mi state dando e scusate se sto approfittando (ormai con assiduità) della vostra disponibilità \":oops:\" ---------------------------------------- AUTORE: 384 DATA :28/01/2007 - 16:39:55 ---------------------------------------- Non c'è niente di strano. Tutte le componenti oltre i 60 Hz verranno ATTENUATE della stessa quantità (in dB) della curva di risposta del filtro - non vengono "poste a zero". Se vuoi rilevare le frequenze "presenti" dopo il filtraggio devi decidere con una soglia che parte del segnale è equivalente a zero. L'importante quindi è che si riesca ad attenuare le componenti indesiderate sotto quel valore che, per l'applicazione, è considerato ininfluente. ---------------------------------------- AUTORE: 955 DATA :28/01/2007 - 17:15:22 ---------------------------------------- mmm come la realizzeresti la soglia? \":roll:\" ---------------------------------------- AUTORE: 384 DATA :29/01/2007 - 08:24:20 ---------------------------------------- Lo "spettro" in uscita dalla FFT deve entrare nel peak detector che ne rileverà, appunto, i picchi presenti. Uno degli ingressi è il valore - la soglia - al di sopra del quale detti verranno rilevati. ---------------------------------------- ================================================================================ Creare grafico excel da Labview ================================================================================ AUTORE: 1045 DATA :25/01/2007 - 16:14:27 ---------------------------------------- Salve, ho creato un programma con il quale attualmente acquisisco valori con continuità da sensori di pressione etcc. I valori che mi necessitano li memorizzo in un array ogni 10 secondi, pertanto quando termino l'acquisizione posso salvare i valori in un file di testo e in un secondo tempo posso aprirli con excel e creare il relativo grafico. Adesso vorrei fare un salto di qualità,cioè vorrei visualizzare in tempo reale il grafico con excel, cioè mentre acquisco con labview 7.1 contemporaneamente dovrei avere la visualizzazione in excel del grafico con i valori che man mano si accumulano nell'array. Mi potete aiutare? Grazie Wally ---------------------------------------- AUTORE: 129 DATA :25/01/2007 - 17:51:05 ---------------------------------------- Non l'hoi mai fatto, ma penso dovresti riuscire con ACTIVEX o utilizzando DIADEM(Software per creare report automatici da comprare su NI). Oppure dovresti fare un template e pilotare una macro che ti vada ad aggiornare i dati sul file. So di non averti aiutato molto ma magari sai dove cercare.... Nic ---------------------------------------- AUTORE: 4 DATA :25/01/2007 - 20:41:24 ---------------------------------------- perchè non fare gestire il grafico direttamente da labview senza usare excel? Ciao ---------------------------------------- AUTORE: 10 DATA :26/01/2007 - 08:53:28 ---------------------------------------- Ciao, io ho un'applicazione molto simile alla tua, ma la isualizzazione in tempo reale dei dati tramite EXCEl non l'ho mai fatta. A parte che non capisco lo scopo visto che ci sono i grafici in LV che funzionano meglio, potresti farti una cartella di lavoro (workbook) con 2 fogli: il 1° con i dati spediti da LV tramite activeX (esistono librerie per questo scopo e gratuite sulla rete) e non con un file di testo importato il 2° con il grafico che pesca i dati dal primo foglio tramite una macro in VBA Il problema principale stà nel fatto che EXCEL vuole sapere in anticipo il n° di dati da visulaizzare e questo richiede che il tuo programma invii i dati solo dopo il completamento dell'acquisizione (io metto nella prima riga del foglio 1 il n° di campioni), oppure puoi semplicemente chiedere ad excel di utilizzare come serie l'intera colonna (molto più dispendioso di memoria e risorse). Aspetta, forse mi è venuta un'idea: prova a costruire un grafico XY con inetrvallo dati le due colonne intere che ti dicevo, poi spedisci al foglio excel un dato alla volta accodandolo a quelli già scritti. Per fare questo devi utilizzare gli active X ed il metodo RANGE. Il tuo programma deve tenere il conto del numero di punti che spedisci e di conseguenza aggiornare i riferimenti del metodo RANGE. Lo sò che non è chiarissimo, ma pensaci ---------------------------------------- AUTORE: 384 DATA :26/01/2007 - 09:22:17 ---------------------------------------- Ribadisco la domanda di Ale: Perchè usare Excel per fare un lavoro per cui NON É STATO PROGETTATO, cioè, visualizzare dati in tempo reale, quando LabView lo fa molto meglio ed in modo molto più semplice. Excel va bene per fare analisi e statistiche offline sui dati registrati su file oppure come generatore di "report". ---------------------------------------- AUTORE: 838 DATA :26/01/2007 - 09:49:46 ---------------------------------------- concordo anche io, usare excel mi sembra na skifezza userei solamente labview \":D\" ---------------------------------------- AUTORE: 1045 DATA :26/01/2007 - 17:11:47 ---------------------------------------- Sono daccordo con quanto suggeritomi, il problema è che l'utente mi aveva richiesto il report completo di grafico in un foglio excel nel quale inserire anche i dati sotto forma di righe e colonne excel. Chiedo come utilizare eventualmente gli activex e dove trovarli giacchè non ho mai utilizzato tale tecnica, per cui mi ritengo un principiante però con voglia di apprendere. Comunque lunedì provo a ottenere io grafico direttamente da Labview. Grazie Wally ---------------------------------------- AUTORE: 384 DATA :26/01/2007 - 18:38:06 ---------------------------------------- Esiste un toolkit apposta per generare report in formato word e excel direttamente a partire da un VI. Chiaramente ha un costo. Io ho avuto l'opportunità di provarlo (ho generato dei report in word) ed è abbastanza facile da usare. Nel mio caso avevo definito previamente un template word con tutto quanto era fisso (testi, tabelle, logo, ecc) e dei campi dove inserivo i dati "variabilii", cioè, quelli che ogni volta venivano generati dal VI. Risultati ottimi con uno sforzo veramente comisurato. Ma anche senza questo toolkit si può fare. Bisogna essere un pò più pratici di Excel (oltre che LabView) e richiede un pò più di lavoro, ma niente di tragico. Se ne è gia parlato in questo forum; i thread che mi sembrano più attinenti sono [url=http://www.ilvg.it/forum/viewtopic.php?t=2473&highlight=excel:2wayvalx]questo[/url:2wayvalx], [url=http://www.ilvg.it/forum/viewtopic.php?t=2006&highlight=excel:2wayvalx]questo[/url:2wayvalx], e [url=http://www.ilvg.it/forum/viewtopic.php?t=1886&highlight=excel+tool:2wayvalx]questo[/url:2wayvalx]. Sul sito NI trovi [url=http://zone.ni.com/devzone/cda/tut/p/id/3520:2wayvalx]questo[/url:2wayvalx] e [url=http://sine.ni.com/devzone/cda/epd/p/id/992:2wayvalx]questo[/url:2wayvalx] che credo siano molto interessante per i tuoi scopi. ---------------------------------------- AUTORE: 129 DATA :27/01/2007 - 07:26:50 ---------------------------------------- Ma se crei un template xlt in excel, dove hai già il tuo frontend con grafico e impaginazione corretta che vanno a pescare i dati su un foglio nascosto in cui importi all'apertura un file .txt. ---------------------------------------- AUTORE: 384 DATA :28/01/2007 - 16:50:17 ---------------------------------------- É una buona soluzione. L'unico svantaggio è che richiede di farlo manualmente, mentre credo l'obiettivo sia fare tutto in automatico dal vi. ---------------------------------------- AUTORE: 10 DATA :29/01/2007 - 07:34:36 ---------------------------------------- Ciao, sono anch'io d'accordo con gli altri che excel non è la soluzione migliore, ma per la pace nel mondo bisogna che anche i colleghi che non hanno LV siano in grado di aprire i report in un formato umano, immediato e senza dover installare nulla, quindi excel è una strada abbastanza obbligata. In allegato troverai una piccola libreria (che non ricordo più dove ho pescato) con alcuni vi base per lo scopo che ti prefiggi. Naturalmente per l'uso della stessa si preseuppone che tu crei una cartella di lavoro del tipo che ti ho descritto nel post precedente, in ogni caso non è nulla di complesso. Ti consiglio per integrare il tutto, di leggerti un po' di documentazione di excel riguardo a metodi, proprietà, ecc, in modo da crearti una macro in VBA che costruisca il grafico e da chiamare dall'interno di LV. Potresti anche costuire il grafico direttamente da LV sempre con gli activeX, ma per la salute mentale non è molto igienico. Buona fortuna ---------------------------------------- AUTORE: 10 DATA :29/01/2007 - 07:40:12 ---------------------------------------- Ciao, sono anch'io d'accordo con gli altri che excel non è la soluzione migliore, ma per la pace nel mondo bisogna che anche i colleghi che non hanno LV siano in grado di aprire i report in un formato umano, immediato e senza dover installare nulla, quindi excel è una strada abbastanza obbligata. In allegato troverai una piccola libreria (che non ricordo più dove ho pescato) con alcuni vi base per lo scopo che ti prefiggi. Naturalmente per l'uso della stessa si preseuppone che tu crei una cartella di lavoro del tipo che ti ho descritto nel post precedente, in ogni caso non è nulla di complesso. Ti consiglio per integrare il tutto, di leggerti un po' di documentazione di excel riguardo a metodi, proprietà, ecc, in modo da crearti una macro in VBA che costruisca il grafico e da chiamare dall'interno di LV. Potresti anche costuire il grafico direttamente da LV sempre con gli activeX, ma per la salute mentale non è molto igienico. Buona fortuna ---------------------------------------- ================================================================================ "appendere" linea a file di testo ================================================================================ AUTORE: 1427 DATA :25/01/2007 - 16:20:14 ---------------------------------------- Mi parrebbe una cosa scema cosi' ad occhio eppure non trovo una soluzione veloce ed efficace. In un programma, dovrebbe aggiungere delle linee di testo ad un file di log, aprendo o creando il file se non esiste, scrivere la linea in fondo al documento, ed uscire fino al prossimo evento. Invece non ci riesco: o mi cancella tutto perche' parte dalla prima riga, oppure devo fargli leggere il documento, aggiungere il testo e riscrivere tutto, ma essendo il file molto grande spreco molto tempo. Qual e' il modo migliore per fare questa cosa? \":-)\" grazie a chi avrà la bontà di rispondermi! ---------------------------------------- AUTORE: 645 DATA :25/01/2007 - 18:15:42 ---------------------------------------- In questo post ho inserito l'immagine di una possibile soluzione: viewtopic.php?t=2576&highlight= ---------------------------------------- AUTORE: 1427 DATA :26/01/2007 - 10:47:46 ---------------------------------------- [quote="MagicBotolo":13pxklv3]In questo post ho inserito l'immagine di una possibile soluzione: viewtopic.php?t=2576&highlight=[/quote:13pxklv3] ok grazie! Pero', e mi rendo conto che non sono stato chiaro io nel precedente post, questo funziona benissimo nessa stessa sessione di lavoro. A me invece serve che il testo venga aggiunto al file preesistente anche partendo da un nuovo riavvio. In pratica dovrei conoscere quell'offset sempre, e non che sia impostato 0 all'inizio. Anche inserendo un "get file position", se ho ben capito questo non conta le linee presenti ma e' un indicatore di quanto ne sono state scritte nel processo in corso e quindi ad un primo riavvio mi torna 0 anche se il file di testo contiene gia' qualcosa. Ti ringrazio per l'attenzione e la gentilezza dimostratami e ti saluto! ---------------------------------------- AUTORE: 645 DATA :26/01/2007 - 10:51:29 ---------------------------------------- Non so se l'indice si azzera quando finisce il VI... bisognerebbe fare qualche prova... appena riesco ti dico! ---------------------------------------- AUTORE: 1427 DATA :26/01/2007 - 11:05:55 ---------------------------------------- [quote="MagicBotolo":3c3799d7]Non so se l'indice si azzera quando finisce il VI... bisognerebbe fare qualche prova... appena riesco ti dico![/quote:3c3799d7] ho trovato la soluzione \":)\" soprattutto grazie a te, nel set file position, alla voce from bastava mettergli un end. allego l'esempio! grazie mille!! ---------------------------------------- ================================================================================ Macchina a stati ================================================================================ AUTORE: 1355 DATA :26/01/2007 - 08:45:58 ---------------------------------------- Vorrei avere uno scambio di pareri sull'utilizzo di questa architettura Premetto che io uso la macchina a stati per implementare algoritmi e tenerli documenteti attraverso i "vecchi" ma secondo me sempre utili diagrammi di flusso (facendo corrispondere a ogni stato della macchina un riquadro del diagramma di flusso). Quello che vorrei approfondire è in questo contesto la gestione degli errori. Mi spiego meglio: Quello che vorrei realizzare è una sorta di tracciabilità dell'errore che mi indichi un percorso a ritroso per capire dove l'errore è stato generato. Ringrazio chiunque voglia partecipare alla discussione ---------------------------------------- AUTORE: 4 DATA :31/01/2007 - 09:14:47 ---------------------------------------- Ciao Direi che per come è implementata attualmente la tua macchina a stati già gestisce la provenienza dell'errore, almento come nome dello stato in cui si è generato, vorresti fare di più? Per cosa usi questa struttura? Sistemi di test? Io non sono un grande amante delle macchine a stati (credo solo questione di abitudine ad altri pattern) ma la tua è implementata come dio comanda. Ciao ---------------------------------------- AUTORE: 1355 DATA :31/01/2007 - 15:01:05 ---------------------------------------- Innazi tutto grazie per la risposta. <<Direi che per come è implementata attualmente la tua macchina a stati già gestisce la provenienza dell'errore, almento come nome dello stato in cui si è generato, vorresti fare di più? >> Vorrei poter inserire una descrizione ancora + specifica se occorre. Vorrei anche capire se è possibile snellire la struttura mantenendo le funzionalità invariate (due case per la gestione degli errori mi sembrano tanti) Ho anche una mezza idea di gestire i "fail" generando errori per semplificare gli algoritmi di test che ne pensate <<Per cosa usi questa struttura? Sistemi di test? >> Si sistemi di test. <<Io non sono un grande amante delle macchine a stati (credo solo questione di abitudine ad altri pattern) ma la tua è implementata come dio comanda.>> Potresti mandermi qualche esempio di altri pattern o spiegarmi di cosa si tratta. Vorrei insomma discutere su quale è il modo migliore per gestire questo tipo di problematica Ciao e grazie ancora[/url][/list][/list][/code][/quote] ---------------------------------------- ================================================================================ Labview e interrogazioni LDAP ================================================================================ AUTORE: 1522 DATA :26/01/2007 - 13:37:40 ---------------------------------------- Ciao devo acquisire dei dati da una periferica per poi confrontarli con dei dati su un server LDAP in rete tcp-ip qualcuno ha qualche esperienza a riguardo? Grazie a quanti leggeranno il mail. ---------------------------------------- AUTORE: 482 DATA :15/07/2014 - 07:35:47 ---------------------------------------- Riporto in auge questo post. Qualcuno ha esperienza di interrogazioni LDAP con labview? A quanto ho cpaito dovrebbe trattarsi di dare in pasto ad una dll nome utente e password ma non saprei che dll ne in che modo dargliele in pasto, se già matchate o no... grazie! ---------------------------------------- AUTORE: 482 DATA :15/07/2014 - 13:45:53 ---------------------------------------- ...non trovando niente sto provando a muovermi nei meandri della dll wldap32.dll Se non ho capito male, per fare una autenticazione LDAP devo fare: -ldap_init -ldap_bind -ldap_unbind (quando ho finito) visto che a me serve solo verificare che l'utente sia registrato l'unbind mi interessa relativamente. Ora le informazioni che ho trovato sono qui: http://msdn.microsoft.com/en-us/library ... 53(v=vs.85).aspx http://msdn.microsoft.com/en-us/library ... 38(v=vs.85).aspx trasformarle in linguaggio labview mi risulta un po' ostico perchè come al solito vado in sbattimento con i tipi di dato. Qualcuno ha voglia e tempo di aiutarmi in questa missione? ---------------------------------------- AUTORE: 482 DATA :17/07/2014 - 07:30:22 ---------------------------------------- Ho trovato la soluzione al mio problema usando dei constructor .NET (anche se avrei preferito non ricorrere al .NET) La allego nel caso dovesse servire a qualcuno. Il vi in questione non fa altro che verificare se le credenziali dell'utente inserite sono valide. Se lo sono restituisce un true mentre, se non lo sono, restituisce un false e un errore. Non so se sia la tecnica migliore (alla prima richiesta è un po' lento), mi son limitato a "tradurre" un esempio che ho trovato in rete. E' sviluppato con labview 2012 ---------------------------------------- ================================================================================ Calcolo del THD in labview ================================================================================ AUTORE: 955 DATA :27/01/2007 - 18:34:09 ---------------------------------------- Dovrei calcolare il THD di un segnale in partenza sinusoidale a 50Hz e poi sporcato da armoniche di 3 e 5 ordine. Il punto è che mi vengono alcuni risultati del tipo NaN...forse sbaglio a calcolare il valore in rms del segnale? \":roll:\" io l'ho posto così (usando la NORMA IEEE 1495) THD=radice di ((V/VL)^2-1) dove V è il valore in RMS del segnale con armoniche e VL sarabbe il valore in RMS della 50Hz (ovvero la mia fondamentale). Ora il valore in RMS della mia fondamentale l'avrei calcolato come V/Radice di 2 mentre quello del segnale con armoniche come RMS=radice di (1/N* sommatoria di vi^2) è giusto così? Ho considerato vi pari ai singoli valori provenienti dal segnale mentre N l'ho posto pari al numero di punti del segnale...in cosa sbaglio? \":roll:\" ---------------------------------------- AUTORE: 384 DATA :28/01/2007 - 16:48:15 ---------------------------------------- Ma l'uscita "mag" della FFT non è già in Vrms? Basta prendere i valori dei picchi e fare una semplice aritmetica. Guarda [url=http://en.wikipedia.org/wiki/Total_harmonic_distortion:3m6tjcbi]qui[/url:3m6tjcbi] e [url=http://www.dogstar.dantimax.dk/tubestuf/thdconv.htm:3m6tjcbi]qui[/url:3m6tjcbi]. ---------------------------------------- AUTORE: 955 DATA :28/01/2007 - 17:13:55 ---------------------------------------- mmm dai link che mi hai dato direi che ho il THD sulla mia norma è sbagliato \":roll:\" quanto all'FFT non saprei che dirti anche io lo farei così ma mi è poco chiaro quel che mi ha detto il mio correlatore ... non riesco a capire a questo punto a che mi serve il filtraggio \":roll:\" boh...sembra di stare su due lunghezze d'onda differenti \":(\" cmq domattina chiedo meglio e ti faccio sapere. grazie per l'aiuto gyc \":wink:\" ---------------------------------------- AUTORE: 384 DATA :29/01/2007 - 08:58:12 ---------------------------------------- [quote="martinmistere":1aj1sibr]mmm dai link che mi hai dato direi che ho il THD sulla mia norma è sbagliato \":roll:\" quanto all'FFT non saprei che dirti anche io lo farei così ma mi è poco chiaro quel che mi ha detto il mio correlatore ... [/quote:1aj1sibr] La stessa definizione di THD è oggetto di diverse definizioni ed almeno altrettante discussioni. Ciò non ostante, esistono alcune più usate, oppure adottate come norma - a giudicare della norma che riferivi. A parte i dettagli, il concetto base è che la THD è il rapporto fra il contenuto in frequenza e quello della componente fondamentale. É meglio che tu chiarisca con il tuo prof che definizione devi usare. A proposito di norme, avresti il testo della norma IEEE 1495 da spedirmi? Mi interessa perchè in un progetto che sto valutanto potrebbe essere necessarion calcolare la THD e scometto che il cliente non saprá nemmeno lui cosa intendere. [quote="martinmistere":1aj1sibr]non riesco a capire a questo punto a che mi serve il filtraggio \":roll:\" boh...sembra di stare su due lunghezze d'onda differenti[/quote:1aj1sibr] Il filtraggio ti serve per separare la parte "alta" dello spettro dalla fondamentale per calcolare la THD. Anzi, potrebbero servire 2 filtraggi, a seconda di come si fanno i calcoli. ---------------------------------------- AUTORE: 645 DATA :29/01/2007 - 09:30:10 ---------------------------------------- Il THD è uno dei coefficienti utilizzati per determinare la qualità del segnale. Come definizione THD=radice quadrata (sommatoria[da indice 2] dei valori efficaci / valore efficace del valore fondamentale). Per ridurre l'errore (teoria della propagazione degli errori) si può fare una piccola operazione matematica e arrivare a quest'altra definizione: THD=radice quadrata ((valore efficace globale / valore efficace fondamentale) -1). Poichè si tratta di una sommatoria di componenti il filtraggio permette di arrestare questa sommatoria a valori interessanti: nel tuo caso sai già che oltre alla fondamentale ci saranno solo 3° e 5° armonica. Nel mondo reale non si conosce (di solito) l'ordine massimo delle armoniche disturbanti e l'introduzione di un filtro permette di conoscere l'ordine massimo a patto di introdurre una (piccola) approssimazione. Detto questo, anche secondo me nel tuo caso il filtro non serve, però... Hai provato il blocco "Harmonic Distortion Analyzer" che trovi tra le misure dei segnali analogici? ---------------------------------------- ================================================================================ Info Funzione Build Text ================================================================================ AUTORE: 932 DATA :28/01/2007 - 14:13:45 ---------------------------------------- [color=blue:12shda2p]:?: Scusate non sono un esperto di LabVIEW. Volevo chiedere: che particolarità ha la Funzione: Build Text rispetto la Funzione: Format Into String ? visto che la Build Text può assumere al massimo 24 ingressi? grazie Roby[/color:12shda2p] ---------------------------------------- AUTORE: 1427 DATA :30/01/2007 - 12:53:12 ---------------------------------------- build text e' un "pacchetto" che ti permette di costruire velocemente la subroutine, ma e' comunque formato a sua volta dal comando base "format into string". Infatti te ne puoi accorgere facilmente se dopo aver creato una "build text" chiami "open fron panel" clickandoci sopra con il tasto destro... ciao! ---------------------------------------- ================================================================================ Grafico FFT: asse x? ================================================================================ AUTORE: 1662 DATA :28/01/2007 - 14:39:38 ---------------------------------------- Salve a tutti, ho un problema forse di semplice soluzione ma la mia inesperienza mi impedisce di venirne a capo... Ho creato un programma che dovrebbe salvare e leggere i dati relativi al grafico FFT di un segnale temporale continuo. per salvare i dati utilizzo la funzione 'Write measurement file' e, quando vado a leggere con un editor i dati numerici noto con soddisfazione che effettivamente nella colonna relativa alle frequenze (asse x) trovo tutti spettri separati ovvero la numerazione va da 0 alla max frequenza che ho impostato per lo spettro poi riparte. Ora, IL PROBLEMA sta nel fatto che quando vado a plottare i dati relativi al medesimo file aprendolo con la funzione 'Read measurement file' mi trovo sull'asse x un unico spettro che va da 0 a N000 dove N è il numero di iterazioni che il programma ha eseguito. La mia domanda è: [i:394jude0]come posso impostare la funzione 'READ MEASUREMENT FILE' per riuscire ad avere sull'asse delle ascisse del grafico esattamente i valori presenti sulla prima colonna del file .lvm salvato? [/i:394jude0] Spero di avere posto il mio problema in modo chiaro, grazie per l'attenzione. ---------------------------------------- ================================================================================ PROGETTO LABVIEW ================================================================================ AUTORE: 1812 DATA :29/01/2007 - 21:22:31 ---------------------------------------- ciao a tutti io devo fare un progetto a libera scelta in labview ma non per la tesi ma solo per un esame(infatti il progetto è obbligatorio per l'esame) ho pensato di fare un semaforo piuttosto che un cardiofrequenzimetro innanzitutto perchè non ho la scheda di acquisizione e poi perchè altrimenti diventa un progetto troppo complicato e mi ci vuole tanto tempo e non credo di avere le conoscenze per un progetto cosi complicato(perchè con un corso di due mesi con 8-10 ore di laboratorio al max è difficile avere una buona padronanza li labview). nel progetto ho pensato anche di far variare la programmazione del semaforo tra giorno e notte in modo che di giorno funzioni normalmente mentre di notte ci sia il giallo lampeggiante(semmai per questo passaggio volevo usare un sensore crepuscolare usando la DAQ del laboratorio dell'università), se qualcuno riesce a darmi qualche info mi farebbe molto piacere ---------------------------------------- AUTORE: 1165 DATA :29/01/2007 - 22:24:41 ---------------------------------------- devi fare qualcosa per la tesi o per un progettino più leggero? .. per una tesi una simulazione di un semaforo mi pare un po' poco (a meno di inventarsi qualcosa di strano) .. mentre un cardiofrequenzimetro potrebbe essere più adatto .. ma in questo caso devi decidere tu se partire fin dall'inizio .. cioè dalla acquisizione del segnale elettrocardiografico (ECG) in maniera analogica (amplificazione e condizionamento del segnale) con conseguente conversione A/D ed analisi del tracciato il Labview .. oppure se vuoi partire da tracciati già digitalizzati che hai già a disposizione .. se mi precisi questo forse posso darti un qualche consiglio su come procedere .. comunque il segnale ECG ha una forma caratteristica con dei picchi (P-QRS-T) di cui il più marcato è il picco R, che si presta ad essere detectato da un VI già pronto in Labview (Pick Detector) .. ma io ti consiglio di ricostruirtelo da solo .. e una volta individuata la posizione del picco puoi fare misure accurate di frequenza cardiaca (anche on line in tempo reale durante l'acquisizione) .. ma la cosa più affascinante della scienza del ritmo cardiaco (aritmologia) è lo studio delle variazioni nel tempo del ciclo R-R, che ha un andamento strettamente correlato con la bilancia simpato-vagale (Sistema Nervoso Autonomico) e quindi più che una mera misura di frequenza cardiaca potrebbe essere molto interessante lo studio dello spettro di densità di potenza della variabilità nel tempo dei cicli R-R (Heart Rate Variability, HRV), che in Bioingegneria ha le sue scuole di pensiero .. se vuoi a questo proposito ho un po' di materiale (cartaceo) da darti per uno studio preliminare .. fammi sapere .. ciao, Enrico. ---------------------------------------- AUTORE: 1165 DATA :31/01/2007 - 18:08:35 ---------------------------------------- Scusami, ma è meglio proseguire il post in pubblico invece che in privato, così si possono avvantaggiare anche gli altri di quello che scriviamo. Temo però che io possa esserti di poco aiuto per un rapido elaborato sulla simulazione dei semafori, forse qualcun altro del forum ti potrebbe essere più prezioso. Comunque un impianto semaforico può essere concettualmente strutturato come una "macchina a stati" (ciclici), cerca nel forum e vedrai che troverai tante informazioni. Ti avevo fatto dei commenti sulla ipotesi dei segnali ECG solo perchè ci avevo lavorato molto nel passato e avevo idea di dove andare sbattere, solo per quello. Ti faccio comunque molti auguri. Ciao, Enrico. ---------------------------------------- AUTORE: 1812 DATA :01/02/2007 - 13:14:37 ---------------------------------------- Scusa se ti ho risp in privato ma è la prima volta che uso un servizio di questo genere su internet...comunque non sai darmi nessuna idea di come iniziare il progettto?...mi dicevi di una macchina a stati come posso fare ad implementarle?cosa devo fare un contatore? ---------------------------------------- AUTORE: 645 DATA :01/02/2007 - 14:34:18 ---------------------------------------- Ciao fedeelettronic, tu che materiale hai a disposizione per il tuo progetto? Schede di acquisizione, generatore di segnali, led, circuitini... ---------------------------------------- AUTORE: 1812 DATA :01/02/2007 - 19:05:20 ---------------------------------------- ciao io a disposizione in casa avrei solo i led ma se eventualmete mi servisse la swcheda di acquisizione o il generatore di funzioni od oscilloscopio posso utilizzare quelli che ho in lab dell'universita...non credo di avere problemi su questo fronte...il problema principale è cosa fare e come farlo il progetto...ciao ---------------------------------------- AUTORE: 1165 DATA :01/02/2007 - 21:57:04 ---------------------------------------- Mi permetti qualche domanda anche a me per riuscire ad orientarmi meglio? Per semaforo intendi un impianto semaforico tipo quelli stradali, diciamo per esempio con due coppie di semafori in un incrocio a quattro strade, che danno la circolazione a due per volta, con eventuale gestione dei segnali luminosi ed acustici per pedoni? Se è una cosa del genere è comunque piuttosto facile implementarla e non so se a te basta come lavoro, forse è troppo poco. Comunque proviamo a ragionarci sopra. E' quanto mai giusta la domanda di Magic su quello che hai fisicamente a disposizione. Scontato che tu abbia il Labview istallato su qualche macchina, che Hardware puoi utilizzare? Considerando che il tuo problema è intrinsecamente digitale, la scheda del laboratorio che puoi usare ha una sezione digitale? Probabilmente sì, ma quanti I/O digitali ha? Forse una scorciatoia per non usare una scheda di acquisizione potrebbe essere usare le connessioni digitali della porta parallela, che potrebbero essere forse usate direttamente per pilotare qualche led, o al massimo per mezzo di un semplice transistor. Sicuramente per questo aspetto trovi abbondante materiale nel sito se cerchi sotto "parallela" o "centronics". Puoi comandare direttamente con il Labview gli stati dei led, e quindi accendere e spengere quelli che preferisci. Siccome gli stati possibili di un gruppo semaforico sono quattro (verde sulla prima strada, giallo, verde sulla seconda, giallo sulla seconda), con due bit di comando te la dovresti cavare, sempre che trascuri i segnali pedonali o che li assoggetti agli altri. Dal versante software, le macchine a stati le trovi sicuramente spiegate nel forum e quindi ti consiglio di guardartele qui, ma comunque di fatto a te interessa un sottoinsieme delle macchine a stati, che in effetti si riduce ad un semplice sequenziatore, implementabile con un ciclo "while" temporizzato e, ad esempio, una semplice operazione di "modulo N" sul valore dell'indice "i" del ciclo stesso, che piloti un "case" che a sua volta attivi gli stati da te desiderati. Semmai resta a questo punto il discorso di come abbellire il tutto, eventualmente con un sistema di videosorveglianza per il rilevamento delle infrazioni del codice della strada. Eh eh eh .. buon divertimento. Enrico. ---------------------------------------- AUTORE: 1812 DATA :02/02/2007 - 07:23:33 ---------------------------------------- La scheda DAQ che ho in laboratorio dovrebbe avere 16 I/O ma non so di preciso se sono ingressi anlogici, digitali o entrambi, oggi cerco di guardare meglio...però mi hai detto che l'implementazione ha solo 4 stati verde e giallo su una strada e verde e giallo sull'altra e il rosso?, volevo inoltre inserire un sensore crepuscolare che al diminuire della luce diurna, quando tale scende sotto una certe soglia ovvero c'e buio il proogramma del semaforo cambio in giallo lampeggiante fino al ritorno nuovamente della luce. Mi dicevi inoltre di guardare per la porta parallela mi potresti dare qualche informazione su dove guardare questo argomento in questo sito? grazie mille Federico ---------------------------------------- AUTORE: 1812 DATA :02/02/2007 - 07:28:56 ---------------------------------------- la scheda di acquisizione è una NI PCI 6024E ---------------------------------------- AUTORE: 645 DATA :02/02/2007 - 08:51:07 ---------------------------------------- Nella scheda NI PCI 6024E ci sono sia ingressi analogici che digitali. Per il comando dei semafori dovrebbero bastare relazioni logiche per ricreare i vari stati (ad intervalli regolari blocchi il traffico da un lato e fai circolare dall'altro lato). Per simulare i semafori potresti usare i LED: colleghi i led alle porte analogiche della scheda (eventualmente con un resistenza davanti in modo da limitare la corrente) e dai in uscita le tensioni per accendere la luce desiderata. Poi puoi aggiungere la gestione del crepuscolare: controlli la tensione ai suoi capi (usi una fotoresistenza normale?) e puoi inserire una gestione degli eventi nel tuo VI per far scattare le luci gialle lampeggianti. Eventualmente puoi pensare anche alla gestione tramite orario: imposti un orario di accensione e uno di spegnimento (un po' come quando la notte verso la mezzanotte partono i gialli lampeggianti...). Si potrebbe aggiungere la gestione intelligente dei semafori: non mi ricordo dove (forse in Svizzera) hanno inserito dei sensori di pressione nella zona di arresto prima del semaforo. Quando ci sono un tot di macchine (credo vada a peso... o forse a lunghezza della coda...) ferma al semaforo scatta il verde (prima scatta il rosso dall'altro lato). E a questo punto con un sensore di infrarossi puoi simulare l'uscita di un'ambulanza da un ospedale vicino e di conseguenza organizzi i semafori per creare un'onda verde lungo la via che sicuramente il veicolo dovrà percorrere... Chi + ne ha + ne metta... \":)\" ---------------------------------------- AUTORE: 1812 DATA :02/02/2007 - 10:57:00 ---------------------------------------- grazie mille per le info adesso vedo come organizzare il tutto...non avresti qualche schema logico del semaforo tanto per avere un punto di partenza?...grazie ciao ---------------------------------------- AUTORE: 1743 DATA :06/02/2007 - 11:02:24 ---------------------------------------- Mi interesserebbe molto l'argomento sul segnale cardiaco perchè sto per decidere se fare la tesisu questo argomento. potresti mandarmi il materiale? Grazie mille Barbara ---------------------------------------- AUTORE: 1812 DATA :06/02/2007 - 12:23:55 ---------------------------------------- ciao putroppo devo farla anch io una tesina su qualche argomento e avevo pensato il cardiofrequenzimetro ma attualmente non ho ancora materiale mi dispiace ---------------------------------------- AUTORE: 1165 DATA :06/02/2007 - 15:01:20 ---------------------------------------- Una decina di anni fa avevo realizzato un sistema di acquisizione e di elaborazione completo, proprio finalizzato alla valutazione di parametri frequenziali del segnale cardiaco, lavorando a ponte tra la facoltà di ingegneria e quella di medicina (non esistendo a quel tempo uno specifico indirizzo di bioingegneria nella mia università). Per quel lavoro avevo progettato e realizzato completamente tutto il sistema hardware di condizionamento analogico ed acquisizione digitale del segnale ECG e, insieme a dei cardiologi, avevamo provato delle strategie di elaborazione ed indagine per fini di ricerca neurologica. Tutto il software di elaborazione lo avevo sviluppato in Labview, dalla versione 3 alla 5. Era una discreta mole di software. Dopo di me altri due tesisti avevano portato avanti quello che avevo iniziato e forse con un po' di fatica potrei ritrovarli e recuperare un po' di materiale e ricercare anche un po' del mio, ma premetto che non sono un gran conservatore!! Ci posso comunque provare, ma nel frattempo con piacere posso tentare di ricacciare fuori dai ricordi quelche dettaglio in più che, anche se non vi darà risposte immediate, speriamo che almeno potrà aiutarvi ad orientarvi. Proporrei però per questo argomento di aprire un thread a parte dedicato all'ECG. Aspetto un vostro feedback in tal senso. Ciao, Enrico. ---------------------------------------- AUTORE: 1812 DATA :06/02/2007 - 17:51:43 ---------------------------------------- Ciao se riesci a trovare del materiale mi faresti un grande piacere perche io non so neanche da che parte iniziare, perchè vista la difficolta della simulazione ho lasciato spazio ad un progetto più semplice (forse ti ho gia parlato dell'impianto semaforico) cmq se hai del materiale si può sempre provare!...Volevo chiederti una cosa sul progetto del semaforo: come posso fare per gestire le luci in modo temporizzato e cambiare la programmazione da diurna a notturna?..grazie ciao Federico ---------------------------------------- AUTORE: 1165 DATA :06/02/2007 - 19:19:51 ---------------------------------------- Scusami ma come ti ho già detto per me non è facilissimo ritrovare il mio vecchio materiale, forse seppellito in qualche vecchio harddisk antidiluviano, posso provarci ma non in tempi brevi, e anche ritrovare gli altri due ex tesisti non sarà velocissimo. Se proprio vuoi ci provo, ma sui tempi non garantisco. Invece quello che posso fare fin da subito è provare ad andare un po' a memoria e vedere di aiutarti a sviluppare qualche idea, a partire dall'elettronica dell'amplificatore, che potresti forse anche autocostruirti (non è certamente difficile se hai un po' di confidenza con le bread board), fino alle tecniche che avevo usato io per riconoscere i picchi del segnale in modo da caratterizzarne gli aspetti aritmologici. Nel frattempo una buona introduzione (che ti puoi prendere anche da wikipedia alla voce elettrocardiogramma) ti potrebbe agevolare il compito futuro. Comunque ripeto che riterrei opportuno che tu aprissi un nuovo argomento per tutto ciò. Per quanto riguarda l'eventuale alternativa del semaforo non ho molto altro da aggiungere ai tanti brillanti suggerimenti che ti hanno dato nei post precedenti, che ti suggerisco di leggere attentamente e dove trovi in germe tutte le risposte alle domande che hai fatto, fermo restando che una temporizzazione la puoi ottenere con un ciclo temporizzato (lavora un po' anche tu e vai a vedere cosa è) e la simulazione del crepuscolo la puoi ottenere o da un orologio simulato o da una fotocellula che oscuri con una mano. Forse ti posso solo aggiungere di cercare una soluzione su come ingannare le telecamere che probabilmente ieri sera mi hanno filmato mentre passavo con un giallo avanzato!! In bocca al lupo, Enrico. ---------------------------------------- ================================================================================ Labview & webserver ================================================================================ AUTORE: 955 DATA :30/01/2007 - 05:17:08 ---------------------------------------- Qualcuno sa quali sono i comandi da utilizzare per realizzare un webserver in labview? grazie ---------------------------------------- AUTORE: 645 DATA :30/01/2007 - 08:32:34 ---------------------------------------- In che senso? LabView implementa già un suo webserver che può essere avviato dalle opzioni del VI e utilizzato per realizzare pagine HTML contenenti il VI stesso o una sua immagine. Cosa devi realizzare? ---------------------------------------- AUTORE: 955 DATA :30/01/2007 - 13:29:32 ---------------------------------------- devo utilizzare il webserver che labview offre e fare in modo da comandare tramite pagina html il mio cRIO, cioè vorrei che se premo ad esempio un pulsante sulla pagina html che mi stoppi la generazione questo effettivamente va a fermarmi l'esecuzione del cRIO. come si fa? che comandi devo utilizzare per creare il webserver su labview? grazie magic \":wink:\" ---------------------------------------- AUTORE: 1597 DATA :30/01/2007 - 15:02:45 ---------------------------------------- prova, per iniziare, la funzione web publishing tool che la trovi sotto la funzione tool dalla barra degli strumenti... ---------------------------------------- AUTORE: 645 DATA :30/01/2007 - 15:22:24 ---------------------------------------- Segui l'indicazione di Aldik e se vuoi guarda qui: http://zone.ni.com/reference/en-XX/help ... g_tool_db/ ---------------------------------------- AUTORE: 955 DATA :30/01/2007 - 19:05:28 ---------------------------------------- questo praticamente cosa mi permette di fare? cioè se premo un pulsante sull'html mi funziona sul programma che voglio eseguire? \":roll:\" ---------------------------------------- AUTORE: 838 DATA :31/01/2007 - 07:26:47 ---------------------------------------- è come se tu premessi il puslante sul vi stesso! ---------------------------------------- AUTORE: 955 DATA :31/01/2007 - 07:46:40 ---------------------------------------- ok grandioso!!proprio quello che mi serve \":wink:\" ora lo testo e vi faccio sapere ---------------------------------------- AUTORE: 645 DATA :31/01/2007 - 08:29:04 ---------------------------------------- Praticamente hai la possibilità di creare una pagina HTML contenente il tuo VI (e allora l'interfaccia del tuo VI viene riprodotta su pagina web ed è come se controllassi il tuo VI tramite Internet... io ho provato a creare VI che controllano una prova in un laboratorio e io controllo il tutto da un altro laboratorio... non è male. Ho incontrato qualche problemino di lentezza quando ci sono in ballo tanti dati o tanti grafici, però sto ancora facendo prove) o un'immagine statica dell'interfaccia del tuo VI (in questo caso non puoi compiere operazioni sul VI ma puoi solo vederne l'interfaccia). ---------------------------------------- AUTORE: 955 DATA :31/01/2007 - 11:05:53 ---------------------------------------- esatto a me servirebbe poterlo controllare a distanza tramite pagina HTML proprio come fai te e poter premere tutti i pulsanti che ho e poter visualizzare i grafici \":roll:\" ma dalla pagina che mi hai linkato non ci vedo istruzioni...o sbaglio? \":roll:\" ---------------------------------------- AUTORE: 645 DATA :31/01/2007 - 12:42:13 ---------------------------------------- Devi creare il tuo VI. Poi selezioni Tools--> Web Publishing Tool e segui le indicazioni per creare la pgina. La pagina creata viene inserita nella directory predefinita "www" all'interno della cartella LabView e alla pagina viene assegnato un indirizzo internet (in pratica il nome della pagina preceduto da qualcos'altro).. Sempre dalla stessa maschera puoi avviare il WebServer (se non è già stato avviato). Poi apri il tuo browser e selezioni localhost come indirizzo. Vedrai che si apre la pagina iniziale del WebServer di LabView. Inserisci l'indirizzo che è stato assegnato alla pagina e vedi il risultato. Se vuoi visualizzare la pagina su un pc sul quale non è stato installato LabView ti serve il RunTime Engine (scaricabile da www.ni.com ... forse è il browser stesso che ti avvisa della necessità di installare il componente... non ricordo...). A questo punto, a seconda dei parametri che hai settato nella maschera di creazione della pagina, puoi lavorare con il VI. Fai qualche prova, funziona tutto senza comandi particolari \":)\" ---------------------------------------- AUTORE: 955 DATA :31/01/2007 - 13:21:40 ---------------------------------------- in che senso a seconda dei parametri che ho creato? e poi devo inserire qualche cosa nel VI?qualche altro blocco? \":roll:\" ---------------------------------------- AUTORE: 645 DATA :31/01/2007 - 13:26:00 ---------------------------------------- Nel VI non devi inserire nulla di diverso dal solito. Per parametri intendo quelli le scelte che hai fatto nella maschera di creazione della pagina HTML. ---------------------------------------- AUTORE: 955 DATA :31/01/2007 - 13:45:01 ---------------------------------------- ok la visualizzazione funziona. Ho seguito la procedura che mi hai indicato ma non mi permette di premere sui pulsanti....perchè?? ---------------------------------------- AUTORE: 955 DATA :31/01/2007 - 16:43:32 ---------------------------------------- ok l'ho fatto...era un po' + complicato cmq magic \":wink:\" in pratica occorreva per un'applicazione real-time bisognava aggiungere delle cose in + rispetto a quelle che mi hai indicato \":)\" se volete ve le scrivo \":wink:\" cmq avrei ancora una curiosità: faccio avviare il webserver e mi funziona sulla pagina html l'applicazione che voglio svolgere... quando però premo il pulsante di stop (quello che nella realtà dovrebbe chiudere l'applicazione sul VI originario) mi stoppa anche il webserver e mi dice che la connessione è terminata...e se voglio riaprire la pagina html non me la fa riaprire perchè dice che il cRIO è sconnesso...è una cosa normale? Se invece non lo stoppo e chiudo semplicemente la pagina html lui continua ad esser connesso e se la riapro infatti vedo che sta ancora operando \":roll:\" ---------------------------------------- AUTORE: 645 DATA :01/02/2007 - 08:17:04 ---------------------------------------- Ecco... ehm... se per real-time intendi proprio real-time... io non ho usato questo tipo di approccio con il real-time ma con VI "normali"... In che senso bisogna aggiungere qualcosa? Credo che tu abbia suscitato un po' di curiosità: cosa bisogna aggiungere di preciso? ---------------------------------------- AUTORE: 955 DATA :01/02/2007 - 09:04:11 ---------------------------------------- i passaggi che bisogna seguire sono questi qui: http://digital.ni.com/public.nsf/allkb/ ... 3E000D928E insomma per farla breve occorre inizializzare il project al web server come descritto dal punto 1 al punto 8. dopo di che bisogna andare nel Front Panel del VI e seguire la procedura che mi hai indicato te (come descritto nei punti 9 - 11) poi prendere la pagina salvata e andare sul RI target (nel mio caso il cRIO) mediante l' ftp e mettere lì la pagina salvata.(punti 12 - 13) una volta fatto ciò...dopo essersi appellato al buon cuore del cRIO o cmq di tutta la strumentazione della NI...dopo aver pregato 10 volte il santo protettore di LabVIEW...beh dovrebbe funzionare \":lol:\" ps se la sai mi risponderesti alla mia domanda del post precedente? tnx \":wink:\" ---------------------------------------- AUTORE: 1596 DATA :02/02/2007 - 09:00:06 ---------------------------------------- salve ragazzi...ho letto la discussione ed interessava anke a me creare un html...ho provato a crearlo ma quando mi collego all'indirizzo web non mi compare il VI e mi appare il messaggio 'click here to download plugin'...ho clikkato e mi manda sul sito della national instruments per scaricare il 'LabVIEW run time engine' ...l'ho scaricato ma quando lo installo mi dice che sul mio pc è già presente una versione più recente...sapreste aiutarmi?grazie.... \":(\" p.s.tutto ciò con la versione 8.2 ---------------------------------------- AUTORE: 955 DATA :02/02/2007 - 09:09:20 ---------------------------------------- [quote="gianni1":3221mpeu]salve ragazzi...ho letto la discussione ed interessava anke a me creare un html...ho provato a crearlo ma quando mi collego all'indirizzo web non mi compare il VI e mi appare il messaggio 'click here to download plugin'...ho clikkato e mi manda sul sito della national instruments per scaricare il 'LabVIEW run time engine' ...l'ho scaricato ma quando lo installo mi dice che sul mio pc è già presente una versione più recente...sapreste aiutarmi?grazie.... \":(\" p.s.tutto ciò con la versione 8.2[/quote:3221mpeu] ho anche io gli stessi problemi se provo ad aprire il web server su un altro pc con versione differente di labview (sul mio pc è 8.0 su quello su cui vorrei aprirlo è 7.1) e mi chiede di scaricare l'ActiveX. boh \":roll:\" ---------------------------------------- AUTORE: 645 DATA :02/02/2007 - 09:12:35 ---------------------------------------- [quote="martinmistere":15jmiu7p] ps se la sai mi risponderesti alla mia domanda del post precedente? tnx \":wink:\"[/quote:15jmiu7p] Tra le opzioni durante la creazione della pagina HTML c'è la voce "Request control" (o simile, dipende dalla versione). Barra la casella in modo da lasciare all'utente la possibilità di usare i comandi e controllare il VI visualizzato nella pagina HTML. Oppure, quando stai guardando la pagina web clicca con il tasto destro del mouse sulla pagina: dovrebbe apparire una voce "Request control". Per GIANNI1 invece: hai attivato il WebServer? (scusa la domanda banale ma partiamo da qui). ---------------------------------------- AUTORE: 1596 DATA :02/02/2007 - 09:22:07 ---------------------------------------- sì l'ho attivato...è strano perchè ho seguito la stessa procedura anche nella versione 6i e mi funziona solo che la vers 6i non prevede che un utente possa agire sul VI, per questo ho utilizzato la vers 8.2 che mi dà il problema testè citato! \":roll:\" ---------------------------------------- AUTORE: 955 DATA :02/02/2007 - 09:41:04 ---------------------------------------- si ma il request controll ce l'ho attivo perchè altrimenti non riuscirei a comandare il cRIO \":wink:\" il punto è che ho notato che se stoppo la mia applicazione l'unica possibilità che ho per riavviare il web server è reboottare il cRIO \":roll:\" ..e poi volevo cercare di risolvere lo stesso problema che a quanto ho capito ha anche gianni. Magic ma a te parte anche su altri pc su cui non hai il tuo VI "main"? ---------------------------------------- AUTORE: 645 DATA :02/02/2007 - 10:00:21 ---------------------------------------- La pagina deve essere sullo stesso pc sul quale gira il VI. E il VI deve essere in funzione per poter usare la pagina. Poi da un pc collegato in rete (intranet o internet) con il pc sul quale gira il VI e sul quale c'è la pagina HTML si può richiamare la pagina. Facendo ordine: prendo il pc 1 e il pc 2. Sul pc 1 creo il VI e la pagina HTML. Avvio il VI. Avvio il WebServer di LabView. Sul pc 2 mi collego al pc 1 (tramite rete intranet o internet) e richiamo la pagina HTML creata per controllare il VI. ---------------------------------------- AUTORE: 955 DATA :02/02/2007 - 10:05:57 ---------------------------------------- [quote="MagicBotolo":2dsirxst]La pagina deve essere sullo stesso pc sul quale gira il VI. E il VI deve essere in funzione per poter usare la pagina. Poi da un pc collegato in rete (intranet o internet) con il pc sul quale gira il VI e sul quale c'è la pagina HTML si può richiamare la pagina. Facendo ordine: prendo il pc 1 e il pc 2. Sul pc 1 creo il VI e la pagina HTML. Avvio il VI. Avvio il WebServer di LabView. Sul pc 2 mi collego al pc 1 (tramite rete intranet o internet) e richiamo la pagina HTML creata per controllare il VI.[/quote:2dsirxst] ecco diciamo che fino al punto 1 a me funziona tutto. è il punto 2 che mi fa apparire solo il nome che ho dato alla pagina html ad esempio cRIO Web Server SUN e poi non mi apre l'applicazione del VI che vorrei controllare \":roll:\" ---------------------------------------- AUTORE: 645 DATA :02/02/2007 - 10:52:53 ---------------------------------------- Sul pc 2 deve esserci (almeno) il LabView Run Time Engine (può essere scaricato dal sito www.ni.com alla voce "Support"). ---------------------------------------- AUTORE: 955 DATA :02/02/2007 - 11:28:45 ---------------------------------------- ahhh ecco perchè allora \":roll:\" hai ragione \":wink:\" tnx magic ---------------------------------------- AUTORE: 1596 DATA :02/02/2007 - 13:49:35 ---------------------------------------- comunque a me non funziona nemmeno sullo stesso pc...poichè io ho seguito la stessa procedura della vers 6i (ora sto utilizzando la 8.2) vorrei chiedere a martinmistere se mi può illuminare sulla procedura che ha seguito...ho visto già quel link che hai postato...forse non mi è chiaro qualcosa...ad esempio quando parla del RT target...come si aggiunge??? \":(\" ...grazie ---------------------------------------- AUTORE: 955 DATA :02/02/2007 - 14:06:20 ---------------------------------------- allora l'RT sta per real time. Te cosa utilizzi?io sto lavorando sul cRIO tu cosa usi? in ogni caso se vuoi far funzionare un'applicazione real time devi creare un project con relativo VI per l'RT e VI per l'FPGA. Quindi ammesso sempre che tu stia utilizzando un dispositivo RT...devi abilitare il suddetto al web server e devi fare così: 1-vai nel project 2-clicca col pulsante destro sull'indirizzo che hai assegnato al tuo dispositivo RT e vai su proprietà 3-si aprirà una finestra e vai in web configuration e di li metti la spunta su enable web server. Premi ok. 4-torna al project 5-vai in build specification (quello che ti compare sotto l'indirizzo IP del tuo dispositivo RT non quello sotto a MY computer) e clicca col destro 6-fai new -> Real Time Application e si aprirà una finestra con 3 colonne nella prima a sinistra clicca su source files, in quella centrale (dopo aver cliccato in quella a sinistra) ti comparirà il tuo VI RT che vuoi mandare sul WEB. cliccaci sopra e poi clicca sulla prima freccia sulla destra (ti inserirà il tuo VI nella casella superiore dell'ultima colonna) e premi OK. 7-tornerai al project e sotto a build specification ora avrai un'altra icona (my real time application se non le cambi di nome) 8-clicca col destro su questa nuova icona e poi fai build 9-finito il build clicca ancora sul destro su questa icona e fai set as startup 10-clicca di nuovo sull'icona e fai deploy 11-finito il deploy resetta il tuo dispositivo RT 12-ora passa al front panel del VI del tuo RT e segui le istruzioni indicate da magic \":wink:\" 13-finita di costruire la pagina ti chiederà di salvarla sul tuo pc.. 14-prendi la pagina salvata sul tuo pc e vai all'indirizzo ftp del tuo dispositivo RT e sostituiscigli la pagina salvata 15-reboota il dispositivo RT 16-ora dovrebbe aprirsi la pagina http con web server realizzato \":D\" scusa la prolissità del messaggio ma anche io ci ho messo un bel po' prima di arrivarci e avrei voluto che me l'avessero spiegato così \":lol:\" ---------------------------------------- AUTORE: 1596 DATA :02/02/2007 - 18:08:11 ---------------------------------------- allora...il mio intento era questo...utilizzo LabVIEW per acquisire dati da un network analyzer e volevo poter fare ciò anke stando a casa cioè pilotare l'analizzatore via web... già al punto due trovo qualke difficoltà:il mio strumento non è classificabile come RT...mi sa ke mi serve un controller real time!!! \":(\" ...grazie tante per l' ottima spiegazione \":wink:\" ---------------------------------------- AUTORE: 955 DATA :02/02/2007 - 20:09:30 ---------------------------------------- di nulla \":wink:\" spero sia stato chiaro perchè dovrà esser chiaro anche alla mia commissione di laurea \":)\" ---------------------------------------- ================================================================================ Diagram Disable structure ================================================================================ AUTORE: 482 DATA :30/01/2007 - 07:27:51 ---------------------------------------- ...ma ciao! ho un dubbio. volevo modificare alcune parti di un software provvisoriamente per poter fare dei test. Allora ho pensato di mettere le parti che non uso piu' in una diagram disable structure in modo che non vengano eseguite ma siano li da vedere per trarne spunto per lo sviluppo delle parti sostitutive. Ora mi domandavo... Quando io creo l'eseguiibile, visto che il diagramma viene rimosso, queste parti disabilitate vengono caricate comunque o no? Nello specifico, ho messo disabilitati dei moduli DAQ perchè li sostituiro' con una scrittura/lettura su LPT. Sulla macchina target dovro' installare anche le librerie DAQ? grasssie ---------------------------------------- AUTORE: 515 DATA :30/01/2007 - 08:25:41 ---------------------------------------- Da quanto ne so io, non vengono compilate, esattamente come se tu in C inserissi del codice tra /* e */ Però onestamente non ho mai verificato nel dettaglio... \":?\" ---------------------------------------- AUTORE: 487 DATA :31/01/2007 - 08:10:11 ---------------------------------------- Posso confermare (anche se anch'io non ho mai verificato) che lo scopo specifico del disable structure sia proprio quello di compilare solamente la parte abilitata, altrimeti si potrebbe utilizzare un case structure per ottenere il medesimo risultato, no?!? ---------------------------------------- AUTORE: 4 DATA :31/01/2007 - 08:49:10 ---------------------------------------- Esatto, la disable structure è stata introdotta in LabVIEW 8.0 (anche se è utilizzabile in LabVIEW 7.1...) proprio per questo scopo, [url=http://zone.ni.com/reference/en-XX/help/371361A-01/lvupgrade/labview_8_0_features/#Disable_Structures:18o36dbf]ecco[/url:18o36dbf] quello che riporta il sito NI. Una cosa importante da notare è che il vecchio metodo di "disabilitare" del codice usando un case sempre false, non funziona allo stesso modo in LV 7.1 e in LV8.0, sempre dal sito NI riporto [quote:18o36dbf]Note: LabVIEW ([u:18o36dbf]8.x ndr[/u:18o36dbf]) does not compile code on the block diagram that does not execute. For example, LabVIEW does not compile any code that exists within the inactive subdiagrams of the Conditional Disable structure. [b:18o36dbf]In addition, LabVIEW does not compile code within a Case structure that has a constant wired to it that would not execute the case with the code.[/b:18o36dbf][/quote:18o36dbf] Infatti se ricompilate del codice che usa il metodo dei "case" da LV7.1 a LV8.x, riceverete questo warning [quote:18o36dbf]- LabVIEW 8.0 changed a constant that was wired to a Case structure to a hidden control to maintain compatibility with LabVIEW 7.1 and earlier.[/quote:18o36dbf] Quindi attenzione quando passate da 7.1 a 8.x. Ciao, ---------------------------------------- AUTORE: 482 DATA :31/01/2007 - 09:26:12 ---------------------------------------- quindi mi confermate che io l'NI-DAQ posso anche non installarlo (o meglio, installo solo il supporto per la parallela). ---------------------------------------- ================================================================================ esecuzione subVI ================================================================================ AUTORE: 1596 DATA :30/01/2007 - 10:33:59 ---------------------------------------- salve,ho realizzato un programma in LabVIEW ma quando lo faccio partire nn funziona bene.Mi spiego:all'interno del VI ho dei subVI realizzati da me che però partono solo se apro il subVI prima dell'esecuzione...forse devo inserire qualche opzione particolare?...ringrazio per la cortese attenzione... ---------------------------------------- AUTORE: 645 DATA :30/01/2007 - 10:34:51 ---------------------------------------- Mi sembra uno strano comportamento: puoi postare un'immagine del Block Diagram? ---------------------------------------- AUTORE: 482 DATA :30/01/2007 - 10:42:58 ---------------------------------------- credo che l'opzione mancante sia SHOW front panel when called. Va settato nelle VI properties sotto la voce appareance. \":wink:\" ---------------------------------------- AUTORE: 1596 DATA :31/01/2007 - 08:46:06 ---------------------------------------- salve gepponline...ho visto nelle VI properties ma nn credo ke sia quella la voce...forse è execution...comunque nn ho trovato il campo che recita 'show block diagram when called'... \":(\" ...non ho risolto!!! ps. utilizzo la versione 6i ---------------------------------------- AUTORE: 4 DATA :31/01/2007 - 08:56:43 ---------------------------------------- [quote="gianni1":m5madteq]comunque nn ho trovato il campo che recita 'show block diagram when called'... [/quote:m5madteq] Tasto DX sull'icona del VI da Front Panel category>> Windows Appearance Customize Show front panel whan called Ciao ---------------------------------------- AUTORE: 645 DATA :31/01/2007 - 08:57:03 ---------------------------------------- [quote="gianni1":3farodgk]...all'interno del VI ho dei subVI realizzati da me che però partono solo se apro il subVI prima dell'esecuzione...[/quote:3farodgk] In che senso? Se hai inserito dei SubVI nel VI principale questi verranno eseguiti senza che il pannello frontale venga mostrato. Se vuoi vedere il pannello frontale devi lavorare richiamando i VI in maniera dinamica. Dai un occhio a questa discussione: viewtopic.php?t=2631&highlight= . ---------------------------------------- AUTORE: 1596 DATA :31/01/2007 - 09:29:38 ---------------------------------------- ale:grazie ale ...funzioooona ora... \":D\" gepponline:si si me lo avevi detto...mi serviva qualke piccola info in +...'customize'... \":wink:\" ....grazie! magicbotolo:grazie per il tempo che mi hai dedicato...leggerò la discussione!!! ---------------------------------------- ================================================================================ Piu' programmi in contemporanea ================================================================================ AUTORE: 1427 DATA :30/01/2007 - 12:47:32 ---------------------------------------- Da questo problema proprio non riesco a venircene fuori, credo che le mie competenze siano largamente insufficienti... vediamo se anche questa volta c'e' qualche anima pia capace di darmi la dritta giusta. In pratica vorrei che da un pannello principale possano essere attivati degli altri programmi che lavorino in modo indipendente. Mi piacerebbe che sempre da questo pannello sia possibile anche attivare due o tre programmi diversi, ma piu' di uno alla volta io non ci riesco. Ho costruito la struttura main con degli event per la chiamata del programma 1 e 2, ho anche tolto l'opzione "lock front panel" ma nulla... Allego anche un esempietto di quello che ho fatto. Un cordiale saluto a tutti! ---------------------------------------- AUTORE: 487 DATA :31/01/2007 - 08:02:10 ---------------------------------------- Il problema è che i programmi che lanci dal main sono dei semplici subvi: finchè sono in eseguzione il main rimane "congelato" e pertanto non riesci ad effettuare nessun'altra operazione. Una possibile soluzione al tuo problema è quella di lanciare i programmi richiamandoli dinamicamente e settando l'opzione "wait until done" su false. ---------------------------------------- AUTORE: 1427 DATA :31/01/2007 - 08:21:48 ---------------------------------------- [quote="coma":11dh6tzd]Il problema è che i programmi che lanci dal main sono dei semplici subvi: finchè sono in eseguzione il main rimane "congelato" e pertanto non riesci ad effettuare nessun'altra operazione. Una possibile soluzione al tuo problema è quella di lanciare i programmi richiamandoli dinamicamente e settando l'opzione "wait until done" su false.[/quote:11dh6tzd] intanto grazie mille per la dritta! Ero certo che esistesse una soluzione. Pero' ti chiedo se mi puoi accennare piu' esaustivamente cosa significa "richiarare dinamicamente", cosi' da sapere meglio cosa cercare tra manuale ed esempi ciao e grazie ancora! ---------------------------------------- AUTORE: 487 DATA :31/01/2007 - 08:26:19 ---------------------------------------- OK, eccoti l'esempio modificato. ---------------------------------------- AUTORE: 4 DATA :31/01/2007 - 08:30:39 ---------------------------------------- gatto mannaro, ti consiglio [url=http://lavausergroup.org/niweek2004/meeting/lava_niweek_2004.zip:cciqk7vz]questa presentazione[/url:cciqk7vz] che spiega molto bene i concetti di chiamate dinamiche e VI Server. Ciao ---------------------------------------- AUTORE: 645 DATA :31/01/2007 - 08:32:15 ---------------------------------------- Sull'argomento: http://zone.ni.com/reference/en-XX/help ... vi_server/ . Si tratta di utilizzare il VI Server (interno a LabView) per controllare in maniera dinamica i VI. \":D\" ---------------------------------------- AUTORE: 1427 DATA :31/01/2007 - 08:54:19 ---------------------------------------- grazie a tutti!!!! Al solito gentilissimi! Se di tanto in tanto vi ritrovate, vorrei partecipare per offrirvi da bere, e' il minimo! ---------------------------------------- ================================================================================ Flush File ================================================================================ AUTORE: 1078 DATA :31/01/2007 - 16:57:29 ---------------------------------------- Ciao a tutti, qualcuno mi può spiegare in parole comprensibili cosa fa esattamente il "Flush file"? Grazie, Ricky. ---------------------------------------- AUTORE: 927 DATA :05/02/2007 - 09:13:48 ---------------------------------------- I sistemi operativi, quando ad esempio gli ordini di aggiungere una riga a un file, non è detto che lo facciano veramente subito anche se rispondono "ok". Per questioni di ottimizzazione, è possibile che tengano una parte del file in memoria per poi scriverla su disco solo quando si riempie un certo blocco di memoria o al massimo quando si chiude il file. Se il programma si pianta o cmq il file non viene chiuso correttamente, può succedere che dati che si pensa di aver già salvato vadano a p... Con il Flush ordini al S.O. di aggiornare subito il disco anche se per lui non sarebbe ancora ora. Ma forse con i file system moderni tipo NTFS la cosa non ha più tanta rilevanza... ---------------------------------------- AUTORE: 1078 DATA :07/02/2007 - 12:26:24 ---------------------------------------- ....Finalmente ho capito cosa succede dando il comando flush File! Grazie sei stato molto esauriente... Ciao Ricky. ---------------------------------------- AUTORE: 384 DATA :09/02/2007 - 08:06:53 ---------------------------------------- [quote="Snamprogetti":2ayysjn4]Ip... Con il Flush ordini al S.O. di aggiornare subito il disco anche se per lui non sarebbe ancora ora. Ma forse con i file system moderni tipo NTFS la cosa non ha più tanta rilevanza...[/quote:2ayysjn4] Invece si, che ce l'ha! É esattamente la stessa cosa. E più i sistemi operativi sono performanti, più si trovano di questi meccanismi, perchè è l'unico modo di renderli, appunto, performanti!!! ---------------------------------------- ================================================================================ Generazione - Acquisizione FPGA ================================================================================ AUTORE: 955 DATA :01/02/2007 - 10:56:17 ---------------------------------------- Avrei questo problema: nel VI che vi posto sono riuscito a realizzare una generazione ed una acquisizione simultanea. In pratica riesco ad acquisire quello che genero. Il punto è che vorrei implementare queste cose che ora vi elenco: 1-un pulsante di stop/avvio della generazione che mi consenta di stoppare la generazione (e di conseguenza anche l'acquisizione) senza però che l'FPGA venga terminata in modo da permettermi il cambio dei parametri. 2-un pulsante di avvio/stop acquisizione che mi consenta di far avviare o di stoppare l'acquisizione quando + mi aggrada... 3-un pulsante di stop generale che mi consenta di stoppare completamente tutto il VI indipendentemente da quello che sto facendo Mi potreste dare una mano a realizzarlo?ci sto perdendo la testa \":oops:\" \":cry:\" (vi posto i VI separatamente perchè sono abbastanza grandi) ---------------------------------------- AUTORE: 955 DATA :01/02/2007 - 10:59:31 ---------------------------------------- non riesco a postare quello del RT che è troppo grande ma cmq a me interessa capire come devo modificare l'FPGA ammesso sempre che debba modificarla... fatemi sapere qualcosa plz \":wink:\" ---------------------------------------- ================================================================================ permettere all utente di inserire immagini di sfondo ================================================================================ AUTORE: 1368 DATA :01/02/2007 - 13:49:24 ---------------------------------------- ciao a tutti, come posso fare in un programma labview per permettere all utente di inserire un immagine di sfondo oppure il massimo sarebbe permettergli di crearsela con piu immagini o disegni. grazie a tutti ciao ---------------------------------------- AUTORE: 927 DATA :05/02/2007 - 08:48:17 ---------------------------------------- Esiste un controllo di tipo Picture (dovrebbe essere sotto Graph) nel quale puoi mostrare immagini dinamiche, che si gestiscono col menù Graphics & Sound. Ad esempio con "Read JPEG File" carichi un'immagine JPG, poi con "Draw Flattened Pixmap" la converti in un formato adatto ai controlli Picture ---------------------------------------- ================================================================================ ESAME LABVIEW 8 ================================================================================ AUTORE: 1815 DATA :01/02/2007 - 16:16:01 ---------------------------------------- Ciao a tutti ragazzi/e, mi sono iscritto perchè sto cercando un progetto completo in LabView 8 per una progettazione commerciale(lavoro presso una ditta di automazione). Naturalmente sono disposto a pagare per il disturbo (non tanto però prechè sono anche studente e a malapena riesco a mantenermi gli studi). Chi fosse interessato può contattarmi per mail così scendiamo nei particolari, grazie per l'attenzione. ---------------------------------------- AUTORE: 1815 DATA :01/02/2007 - 16:22:29 ---------------------------------------- [quote="Visedragon":1lcf5lkz]Ciao a tutti ragazzi/e, mi sono iscritto perchè sto cercando un progetto completo in LabView 8 per una progettazione commerciale(lavoro presso una ditta di automazione). Naturalmente sono disposto a pagare per il disturbo (non tanto però prechè sono anche studente e a malapena riesco a mantenermi gli studi). Chi fosse interessato può contattarmi per mail così scendiamo nei particolari, grazie per l'attenzione.[/quote:1lcf5lkz] Il mio indirizzo è ciunga80@libero.it ---------------------------------------- AUTORE: 482 DATA :02/02/2007 - 07:17:03 ---------------------------------------- ehhe..cerco un progetto completo in LabVIEW 8..... ... \":o\" ... non ti sembra di essere un po' vago?? ---------------------------------------- AUTORE: 247 DATA :02/02/2007 - 12:00:32 ---------------------------------------- Ciao, [quote:1zf26415]Naturalmente sono disposto a pagare per il disturbo (non tanto però prechè sono anche studente e a malapena riesco a mantenermi gli studi). [/quote:1zf26415] Beh, un progetto completo chiavi in mano è un pò più di un "disturbo" \";-)\"! Ma poi che fai, ti rivendi il tutto? Io sposterei la conversazione in ILVG BAR....va beh, facciamo LAVORO... BYE. ---------------------------------------- ================================================================================ misura di frequenza ================================================================================ AUTORE: 1819 DATA :01/02/2007 - 22:45:56 ---------------------------------------- salve a tutti sono nuovo del forum. mi serve 1 mano. Ho un segnale a onda quadra di cui devo misurare la frequenza. Qualcuno di voi sa fornirmi un programmino semplice da potere utilizzare?? la mia scheda di acquisizione è una daq-stc6036 [pcimcia]. Premetto che sono alle prime armi con il labview per cui riesco a fare solo programmini semplici. Grazie a tutti. ciao ---------------------------------------- AUTORE: 301 DATA :02/02/2007 - 15:30:30 ---------------------------------------- ciao, potresti dirmi che versione di LV utilizzi e che frequenza devi acquisire? ---------------------------------------- AUTORE: 301 DATA :02/02/2007 - 15:35:44 ---------------------------------------- Ti chiedo questo perchè giusto ieri ho fatto qualcosa di simile in un paio di modi diversi, pero dovresti almeno dirmi la frequenza che devi acquisire. ---------------------------------------- AUTORE: 1819 DATA :07/02/2007 - 13:56:34 ---------------------------------------- io ho in ingresso un onda quadra (0-5v) e di quest'onda devo msurare la frequenza. Io sono riuscito a realizzare un piccolo programmino che funziona. Se però mi date qualche suggerimento lo accetto lo stesso. Grazie dinuovo ---------------------------------------- AUTORE: 1819 DATA :07/02/2007 - 13:58:31 ---------------------------------------- Ah! Io uso la versione 7.0 di labview. ciao ciao ---------------------------------------- ================================================================================ Identificazione chiamante ================================================================================ AUTORE: 1355 DATA :02/02/2007 - 10:05:25 ---------------------------------------- E' possibile da un sub vi identificare il vi chiamante Grazie a chiunque voglia rispondere Ciao Franco ---------------------------------------- AUTORE: 645 DATA :02/02/2007 - 11:02:37 ---------------------------------------- Forse qui: http://zone.ni.com/reference/en-XX/help ... ers_names/ . È un Property Node accessibile dopo aver aperto un VI in maniera dinamica. ---------------------------------------- AUTORE: 384 DATA :03/02/2007 - 23:04:29 ---------------------------------------- Molto più semplice è usare la funzione "Call Chain" presente nella subpalette "Application Control". ---------------------------------------- AUTORE: 1355 DATA :05/02/2007 - 09:23:34 ---------------------------------------- Grazie a entrambi per la risposta. Quella di gyc era proprio quella che cercavo ciao Franco ---------------------------------------- ================================================================================ Problema con il sorgente del mio sistema di acquisizione ================================================================================ AUTORE: 1821 DATA :02/02/2007 - 14:25:06 ---------------------------------------- Salve a tutti; ho un problema col mio sistema di acquisizione. Il VI, che non ho creato io, lo utilizzo per acquisire variazioni di pressione da alcuni macchinari che si trovano nel nostro laboratorio. Il mio capo mi ha chiesto di aggiustarlo, ma io essendo un ing. civile, non ne capisco un gran chè, anche se da qualche tempo lo sto studiando, ma per riuscire a modificare un sorgente di tale complessità è ancora lontano dalle mie capacità. Il VI mi restituisce l'andamento delle pressioni che in questo caso assumono un andamento sinusoidale, ma purtroppo i punti che vengono acquisiti per la rappresentazione delle sinusoidi continue sono pochi per ogni periodo (infatti se tali risultati li rappresento tramite grafico con spezzate si nota che i massimi non coincidono con quelli che realmente dovrebbero essere) e quindi l'andamento che viene rappresentato non è proprio prossimo a quello reale. In seguito a tutto questo e con enorme disagio chiedo a voi esperti se potreste dare uno sguardo al sorgente che allego e nel caso se potreste indicarmi le opportune modifiche da apportare. Vi ringrazio in anticipo e spero che qualc'uno di voi accolga il mio appello. \":o\" \":o\" \":o\" P.S.: spero di essere stato abbastanza chiaro sul probleme, ma nel caso non lo sia stato vi prego di comunicarmelo. ---------------------------------------- AUTORE: 1821 DATA :03/02/2007 - 13:37:14 ---------------------------------------- E' vero che è la mia prima volta sul forum, ma non mi spiego il perchè ancora nessuno tra voi esperti mi ha risposto. Forse pensate che questo software lo uso per guadagno!!! Mi sa che vi sbagliate, il capo che cito nel post precedente è il prof. che dirige il laboratorio dove per ora lavoro a gratis e le misure che effettuiamo servono solo a scopo didattico scientifico e non per vendere qualcosa ..... Comunque spero vivamente che qualcuno possa veramente darmi una mano altrimenti dovrò trovare una scusa buona per far passare il tempo necessario a fare in modo che la mia preparazione sia tale da permettermi di modificare da solo il sorgente. Ciao a tutti. P.S.:Su sta cosa mi sto giocando molto (contratto). ---------------------------------------- AUTORE: 645 DATA :04/02/2007 - 09:41:54 ---------------------------------------- Purtroppo non riesco ad aprire il tuo VI (manca il subVI calctemp.vi) ma guardando il resto del codice mi viene una domanda: non è sufficiente aumentare la frequenza di campionamento e/o il numero di punti da acquisire per ottenere un segnale migliore? ---------------------------------------- AUTORE: 1821 DATA :04/02/2007 - 10:58:57 ---------------------------------------- Purtroppo aumentando il numero di punti da acquisire o la frequenza dei campionamenti il numero di punti aumenta, ma la sinusoide che mi genera è sempre formata da 4-5 punti. A me servirebbe che la sinusoide venga costruita con un numero di punti di almeno 17-18. Grazie per l'interessamento. P.S. Allego nuovamente tutto quello che ho per far girare il programma. ---------------------------------------- AUTORE: 482 DATA :05/02/2007 - 07:14:57 ---------------------------------------- Anche io ci avevo provato ma senza il subVI c'e' poco da fare visto che non so che calcoli faccia per valutare frequenza e numero di acquisizioni. \":roll:\" ---------------------------------------- AUTORE: 247 DATA :05/02/2007 - 10:33:27 ---------------------------------------- Ciao, [quote:25p1rkzm]Comunque spero vivamente che qualcuno possa veramente darmi una mano altrimenti dovrò trovare una scusa buona per far passare il tempo necessario a fare in modo che la mia preparazione sia tale da permettermi di modificare da solo il sorgente. Ciao a tutti. P.S.:Su sta cosa mi sto giocando molto (contratto).[/quote:25p1rkzm] Beh, anche se non utilizzi il software a scopo commerciale, e nessuno ha proposto questa ipotesi, comunque non puoi dare colpa a noi del forum se non ti rispondiamo, sinceramente siamo più contenti se ti metti lì seriamente ad imparare LabVIEW piuttosto che risolverti un problema una tantum! Se poi ti giochi la reputazione che ha di te il tuo "Prof" con questo lavoro non possiamo farci proprio nulla: se si accorge che non sai programmare in LabVIEW come lui si aspetta...è solo la sacrosanta verità o sbaglio? BYE. ---------------------------------------- AUTORE: 645 DATA :05/02/2007 - 11:05:32 ---------------------------------------- Nella cartella compressa manca il file calctemp.vi. Senza questo il VI principale si apre ma non può girare e nessuno può darti qualche consiglio... ---------------------------------------- AUTORE: 1821 DATA :05/02/2007 - 11:59:46 ---------------------------------------- Scusa, ma io non davo colpe a nessuno. Mi dispiace se è stata interpretata in questo modo il mio post, non era vivamente il mio intento. Per quanto riguarda la mia reputazione col prof, la sua richiesta è stata fatta solo sotto forma di provare a sistemare il VI e non perchè da questo dipende il mio lavoro, almeno lo spero!! \":o\" . Il mio compito è solo quello di acquisire e non di programmare, io di programmazione non ne capisco niente. Ho chiesto aiuto solo per cercare una soluzine ad un programma che hanno creato per darci la possibilità di acquisire sti dati allo scopo di accelerare i tempi come ho già comunicato anche al prof il quale a sua volta si è messo anche lui in moto per trovare qualcuno che ci possa dare una mano. Cmq ribadisco le mie scuse a chi ha interpretato male i miei precedenti post. Allego tutto la cartella che stavolta spera contenga anche il file che serve per far girare il programma. Ciao Antonio \":lol:\" \":lol:\" \":lol:\" ---------------------------------------- AUTORE: 1821 DATA :07/02/2007 - 09:19:47 ---------------------------------------- Rettifico il mio problema! Come mi aveva già accennato il buon MagicBotolo il numero di punti che mi servono per rappresentare in modo adeguato la sinusoide li ottengo variando la frequenza di campionamento, ma mi sono accorto che variando tale grandezza il tempo che prevedo debba durare l'acquisizione non è più rispettato. Mi spiego meglio: se voglio acquisire 100 punti a secondo e quindi imposto i punti da acquisire in una passata e la frequenza di campionamento in modo tale che mi restituisca tale numero di punti in 10 secondi, ma impostando tali valori ho che la prova mi dura tipo 20 secondi e non il tempo che gli dico. C'è un modo per fargli capire che la prova mi debba durare effettivamente 10 secondi? Grazie a tutti. Approfitto per ribadire le mie scuse legate alla possibile incomprensione che ho generato dai miei post precedenti. ---------------------------------------- AUTORE: 247 DATA :07/02/2007 - 12:39:23 ---------------------------------------- Ciao, la frequenza di acquisizione ed il numero di punti che richiedi sono ovviamente direttamente proporzionali al tempo di completamento dell'acquisizione: - se vuoi 100 punti ed acquisisci a 10 Hz obbligatoriamente la tua acquisizione dura 10 sec! - se invece vuoi che l'acquisizione duri 10 secondi devi adattare frequenza di campionamento e numero di punti in modo da completare l'acq. nel tempo desiderato; non esiste un'unica combinazione, ad es un'acq a 100Hz che richiede 1000 campioni dura 10 sec, come un'acquisizione a 10 Hz che campiona 10 punti. A occhio e croce ti direi di decidere qual'è la freq. propria della tua onda campionata, decidere quanti punti vuoi per periodo, da qui decidi la freq. di campionamento e poi adatti il numero di campioni per arrivare a 10 sec. BYE. ---------------------------------------- AUTORE: 1821 DATA :07/02/2007 - 15:25:07 ---------------------------------------- Ok grazie; e se invece vorrei dirgli di acquisire, ad esempio, per 10 secondi con qualsiasi combinazione tra frequenza e punti? Potrei inserire tipo un orologio che confronti il tempo di acquisizione con quello reale e al momento che raggiunge tale valore mi blocca l'acquisizione? Ho trovato nei Finder Example un VI che con opportune modifiche relative al solo tempo mi dovrebbe permettere di effettuare quello che voglio, ma purtroppo non mi parte, mi dice che non trova il created heart. Forse faccio prima a reinstallare labview, probabilmente ho cancellato qualcosa senza volerlo. Poi ovviamente dovrei trasformare il risultato da binario a txt per usufruirne. Grazie per 'interessamento Antonio ---------------------------------------- AUTORE: 247 DATA :08/02/2007 - 08:10:41 ---------------------------------------- Ciao, [quote:2zvb114k]e se invece vorrei dirgli di acquisire, ad esempio, per 10 secondi con qualsiasi combinazione tra frequenza e punti?[/quote:2zvb114k] ...non è possibile proprio per quanto ti ho detto prima, freq. di campionamento, numero di punti e tempo tot. di acq. sono strettamente correlati! Scelti due parametri, il terzo è dato e quindi scegliendo 10 sec. per il tempo hai solo un'altra variabile, non due (freq. e num. punti). [quote:2zvb114k]Potrei inserire tipo un orologio che confronti il tempo di acquisizione con quello reale e al momento che raggiunge tale valore mi blocca l'acquisizione?[/quote:2zvb114k] puoi farlo settando l'acq. a continuous (o peggio single point) e poi smettendo di prelevare campioni dopo i primi 10 sec, ma in entrambi i casi la serie di campioni prelevati rischia di non essere così pulita come per l'acq di n samples, potresti infatti perdere punti se non leggi abbastanza velocemente con la continuous e sicuramente non avrai una freq. di campionamento regolare con la single point. BYE. ---------------------------------------- AUTORE: 1821 DATA :08/02/2007 - 08:44:36 ---------------------------------------- Grazie per le spiegazioni. ---------------------------------------- ================================================================================ Passare un puntatore ad un OCX ================================================================================ AUTORE: 653 DATA :02/02/2007 - 15:14:02 ---------------------------------------- CIao a tutti! Forse per molti è una sciocchezza, oppure è una domanda stupida, ma non so proprio come fare. Sto utilizzando degli activeX. Un metodo mi richiede come parametro da passare un puntatore ad un array di variant, come INT32. Io ho definito l'array di variant da LV. Come posso ricavare un puntatore INT32 a questo array da passare come parametro all'OCX. Grazie in anticipo a tutti. ---------------------------------------- AUTORE: 4 DATA :05/02/2007 - 20:47:41 ---------------------------------------- azzardo una soluzione ma non ne sono sicuro. Crea una reference del tuo array di variant (tasto dx sull'array>> create reference) poi converti il dato in INT32 puoi usare la funzione cast e lo passi al tuo metodo activex... tentare non nuoce. Ciao ---------------------------------------- AUTORE: 653 DATA :06/02/2007 - 07:07:20 ---------------------------------------- Grazie Alessandro. Già fatto... non funziona. LV non mi lascia convertire la reference in un int32. Grazie comunque. ---------------------------------------- AUTORE: 1050 DATA :06/02/2007 - 08:39:28 ---------------------------------------- Hai usato "type cast"? Lo converte ad INT32 come suggerito da Ale. ti allego l'immagine. ciao ---------------------------------------- ================================================================================ Salvare senza rallentare... ================================================================================ AUTORE: 1441 DATA :02/02/2007 - 16:14:25 ---------------------------------------- Ho un probelma. Acquisisco 7 segnali contemporaneamente tramite DAQmx e li visualizzo su grafici in tempo reale senza problemi. Nel momento in cui però cerco di salvarli in un file il programma rallenta e la visualizzazione e penso anche acquisizione non è più in tempo reale. Esiste un modo per salvare senza influire sulla velocità di esecuzione del programma? Oppure è possibile mettere da parte i dati e salvarli solo in un secondo momento al termine del campionamento? I miei campionamenti non superano mai il minuto... Grazie ciao Paolo ---------------------------------------- AUTORE: 927 DATA :05/02/2007 - 08:34:17 ---------------------------------------- Non dovrebbe rallentare... A che frequenza campioni? E' sicuramente possibile salvare i dati alla fine se vuoi, ma ci dev'essere qualcosa che non va e che si può risolvere ---------------------------------------- AUTORE: 1441 DATA :05/02/2007 - 12:35:30 ---------------------------------------- se io ti allegassi il file tu puoi dare un occhiata? puoi dirmi come salvare alla fine? ciao grazie ---------------------------------------- AUTORE: 927 DATA :05/02/2007 - 13:04:13 ---------------------------------------- Prova a allegarlo, se non lo guardo io lo guarderà qualcun altro... Per salvare alla fine: immagino che tu abbia un ciclo while per l'acquisizione, perciò fai uscire dal ciclo i dati acquisiti tramite 7 cavi (oppure uniscili in un cluster o array e fai uscire un solo cavo); clicca col dx nel punto in cui i cavi escono e fà "Enable Indexing". Così ti ritrovi automaticamente in uscita degli array contenenti tutti i dati nell'ordine in cui il ciclo li ha generati, e puoi scriverli in un colpo solo ---------------------------------------- AUTORE: 1441 DATA :05/02/2007 - 15:42:26 ---------------------------------------- come posso allegare il file se è più grande di 250k? ---------------------------------------- AUTORE: 927 DATA :05/02/2007 - 15:49:53 ---------------------------------------- Fai una "foto" solo della parte interessante del diagramma a blocchi, possibilmente in formato PNG ---------------------------------------- AUTORE: 645 DATA :05/02/2007 - 15:57:26 ---------------------------------------- Prova ad usare cicli paralleli: nel momento in cui decidi di salvare un evento fa scattare il ciclo di salvataggio dei dati. Dai un'occhiata al documento "Multithreading, Parallelismo, Meccanismi di Temporizzazione e Sincronizzazione in LabVIEW" che trovi tra gli articoli del sito ILVG. ---------------------------------------- AUTORE: 1441 DATA :05/02/2007 - 16:11:08 ---------------------------------------- io ho provato a mettere il blocco Write To Measurement File fuori dal ciclo ma se faccio enable indexing il collegamento fra i dati all'interno e il blocco viene reso impossibile come se la tipologia di dati che viene scambiata non fosse la stessa. Arriva un tipo di dato con un formato e ne viene accettato in salvataggio uno con formato diverso. ---------------------------------------- AUTORE: 1520 DATA :05/02/2007 - 20:59:07 ---------------------------------------- Beh, certo. Aggiungendo l'indexing crei un array per cui il formato dei dati cambia. Non è più un segnale (o un cluster di segnali) ma un array di segnali (o di cluster). Matteo ---------------------------------------- AUTORE: 1441 DATA :06/02/2007 - 09:07:35 ---------------------------------------- quindi dato che sono un neofita posso risolvere il problema in che modo? ---------------------------------------- ================================================================================ aiuto per la maturità ================================================================================ AUTORE: 1615 DATA :02/02/2007 - 18:57:43 ---------------------------------------- per la mia maturità voglio fare uno schema per rappresentare di come varia un segnale spedito nello spazio per comunicare con un satellite voi potete aiutarmi?? ---------------------------------------- AUTORE: 384 DATA :03/02/2007 - 22:31:31 ---------------------------------------- Detto in questo modo, confesso che non ho capito cosa effettivamente stai cercando. I segnali inviati ai satelliti subiscono un'attenuazione e talvolta anche distorsione. In media, fra la terra e la fascia di Clarke (geosincroni) l'attenuazione è di circa 200 dB per le frequenze utilizzate (10 GHz), in condizioni di cielo scoperto. Questa attenuazione non è uniforme lungo il tragitto, ma su questo non ho informazioni più dettagliate. ---------------------------------------- AUTORE: 645 DATA :04/02/2007 - 09:33:16 ---------------------------------------- Di preciso cosa hai in mente? Quali strumenti puoi usare? Quali elaborazioni dovrai fare? Con che segnali lavorerai? ---------------------------------------- AUTORE: 1615 DATA :04/02/2007 - 12:28:09 ---------------------------------------- è questo il problema... nn lo so di preciso neanche io... avevo in mente di progettare un sistema dove impostiamo le costanti si errore, e di far visualizzare l'errore, dopo di che il segnale in un'oscilloscopio ---------------------------------------- AUTORE: 645 DATA :04/02/2007 - 16:34:34 ---------------------------------------- Hardware a disposizione? ---------------------------------------- AUTORE: 1615 DATA :07/02/2007 - 17:44:19 ---------------------------------------- nn potentissimo un atlon 2800+ 1gb di ram... ---------------------------------------- AUTORE: 645 DATA :08/02/2007 - 08:30:10 ---------------------------------------- Ma tu vorresti creare un sistema di simulazione del tipo: un utente sceglie un segnale (o c'è un segnale fisso) che ipoteticamente verrà inviato ad un satellite e verrà riletto quando torna indietro. Poi anzichè inviare fisicamente il segnale nello spazio applichi alcune deformazioni (le formule le conosci?) e visualizzi il segnale risultante? ---------------------------------------- AUTORE: 1615 DATA :08/02/2007 - 16:39:53 ---------------------------------------- esatto le formule le ho sul libro e un pò su internet ---------------------------------------- ================================================================================ Colore di sfondo ================================================================================ AUTORE: 516 DATA :02/02/2007 - 21:40:27 ---------------------------------------- Ciao a tutti Vorrei poter modificare il colore di sfondo di una string ind come devo fare ? ho dato un'occhiata al propety node ma se non sbaglio cambio solo il colore della labe o del testo ma per ma va bene il testo nero Grazie a tutti Ciao Sergio ---------------------------------------- AUTORE: 384 DATA :03/02/2007 - 23:07:43 ---------------------------------------- Nel property node: Text/textColors/BGColor ---------------------------------------- AUTORE: 516 DATA :05/02/2007 - 11:46:01 ---------------------------------------- Ciao Prima di tutto grazie , ho provato a dare un'occhiata ma non sono riuscito a capire come devo fare per avere lo sfondo rosso o verde (come servirebbe a me) puoi ancora darmi un dritta ? Ciao e Grazie Mille Sergio ---------------------------------------- AUTORE: 645 DATA :05/02/2007 - 11:51:31 ---------------------------------------- Usa la "Tools palette" (View--> Tools Palette): selezioni il pennello, vai sull'indicatore da colorare, clicchi il tasto destro e scegli il colore. ---------------------------------------- AUTORE: 927 DATA :05/02/2007 - 12:55:28 ---------------------------------------- Dunque, la risposta di MagicBotolo si riferisce a creare un controllo colorato, quella di gyc a cambiare il colore durante l'esecuzione. Penso che tu intendessi la seconda: dopo aver creato il suddetto Property Node gli devi passare in ingresso il colore che vuoi. Il colore è un numero U32, ma c'è un modo per vederlo in maniera "umana": sotto Numeric -> Additional Numeric Constants dovrebbe esserci "Color Box Constant", un quadratino colorato dove puoi specificare il colore cliccandolo. ---------------------------------------- AUTORE: 384 DATA :05/02/2007 - 13:37:30 ---------------------------------------- Guarda questo esempio. ---------------------------------------- AUTORE: 516 DATA :05/02/2007 - 16:46:08 ---------------------------------------- Wow , si è propio quello che cercavo . Grazie Mille a tutti quanti Ciao Sergio ---------------------------------------- ================================================================================ Integrale definito ================================================================================ AUTORE: 955 DATA :04/02/2007 - 08:45:31 ---------------------------------------- Dovrei implementare questo integrale P=1/kT*∫(da τ a τ + kT) di v*i dt dove secondo la norma IEEE 1459 k is an integer number, τ is the moment when the measurement starts. Per cui direi che k deve essere pari al numero di periodi che scelgo e τ lo pongo a zero. Il punto è che su LabVIEW non riesco a capire quale blocco mi convenga utilizzare per l'integrale..personalmente ero orientato per il blocco integral perchè almeno potevo scegliere la condizione iniziale e quella finale ma sinceramente non capisco a che servano gli altri ingressi e quale uscita sia quella effettiva. Gentilmente mi aiutereste?Tnx ---------------------------------------- AUTORE: 955 DATA :04/02/2007 - 09:12:51 ---------------------------------------- oppure in alternativa avevo pensato ad una sommatoria mediata sul periodo di integrazione...però non so se poi sia giusto... \":roll:\" ---------------------------------------- AUTORE: 955 DATA :05/02/2007 - 09:26:42 ---------------------------------------- Ho un problema sul calcolo delle potenze. In pratica mi è poco chiara la norma che sto usando, ovvero la IEEE 1459. Ho un circuito di correnti e di tensioni trifasi con presenza di armoniche di 3 e 5 ordine con una fondamentale a 50Hz. Calcolo la potenza attiva della fondamentale come: P1=V1*I1*cos(fi1) La potenza apparente della fondamentale come Pa1=V1*I1 dove V1 e I1 sono valori in RMS. Ora se vado ad esempio a porre a zero lo sfasamento tra V1 ed I1 ovviamente le due potenze mi coincidono (per cui suppongo che il mio calcolo sia giusto). Calcolo il THD come: THD di V = radice di ((V/V1)^2-1) ed anche qui se pongo le armoniche nulle mi trovo con THD nullo (per cui il calcolo è giusto) Se voglio calcolare la potenza attiva e apparente delle armoniche beh qui mi trovo in enorme difficoltà....la norma mi dice che Ph=P-P1 Ovvero la potenza attiva armonica è pari a quella complessiva del segnale meno quella della fondamentale...se effettuo questo calcolo mi trovo con una potenza attiva armonica notevolmente superiore a quella della fondamentale (quasi 8 volte + grande... ) io la potenza attiva del segnale l'ho calcolata così: 1/(k*T) * sommatoria di (v*i) dove k nel mio caso è pari a 20 perchè sto considerando solo 20 periodi e v ed i li ho vosti in valore reale dei segnali ovvero 10V ed 8V. Perchè mi vengon dei risultati così strambi? ---------------------------------------- AUTORE: 955 DATA :05/02/2007 - 10:05:54 ---------------------------------------- in teoria se tolgo le armoniche la potenza attiva armonica dovrebbe scomparire.... \":roll:\" ---------------------------------------- ================================================================================ Creare un timer che si fermi nel momento giusto ================================================================================ AUTORE: 1381 DATA :04/02/2007 - 13:52:30 ---------------------------------------- Ciao a tutti. Ho bisogno nel mio programma di un campo di testo che si aggiorni con il numero di secondi trascorsi dalla pressione di un tasto, e che si fermi di contare alla pressione di un altro tasto. Ho provato con un while con un blocco "Wait (ms)" all'interno e aggiornare il campo di testo dentro al while stesso, collegando il tasto di stop alla condizione del while, ma il problema è che il programma aspetta comunque un secondo prima dello stop del while, e il risultato è un programma poso responsivo. Consigli? Grazie, ciao. ---------------------------------------- AUTORE: 680 DATA :04/02/2007 - 15:53:14 ---------------------------------------- ti consiglio di utilizzare il vi express "Time elapsed"... ---------------------------------------- AUTORE: 1030 DATA :04/02/2007 - 15:53:46 ---------------------------------------- Ciao il tuo problema si può risolvere utilizzando le occorrenze. Guarda l'esempio allegato. Nel forum l'utilizzo delle occorrenze è stato trattato più volte, prova a dare un'occhiata ---------------------------------------- AUTORE: 1165 DATA :04/02/2007 - 15:56:18 ---------------------------------------- Provo a darti una risposta prendendola alla larga, scusandomi della mia totale incapacità di dare risposte dirette e mirate, spesso dovuta alla mia totale incapacità di comprendere dove sta il problema di base evidenziato dalle domande. Nel tuo caso mi pare che vadano ripuntualizzati i concetti di tempo assoluto, tempo reale (real time) e tempo soggettivo percepito. Quando tu chiedi che il tuo ciclo si arresti alla pressione di un tasto suppongo che tu intenda dire che chiedi che quel ciclo si arresti "in tempo reale" alla pressione del tuo tasto, senza ritardi. Ora ovviamente, per non far sobbalzare Einstein sulla tomba bisogna riconoscere che il "tempo assoluto" non esiste e per te il "tempo reale" è quello da te percepito come sufficiente far arrestare il tuo ciclo While in un tempo comparabile con il tempo necessario a fare click sul tasto di arresto. Ovviamente il tempo che passa da quando tu decidi di arrestare il ciclo fino al momento in cui rilasci il tasto di arresto non è nullo, e questo ritardo, da te percepito come brevissimo, è la quantità di ritardo per te accettabile in questo tipo di problema. Ammettiamo, ad esempio, che questo ritardo sia di 50 millisecondi, sotto i quali non percepisci un ritardo e oltre i quali tu ti spazientisci se il tuo ciclo non si chiude (questo tempo lo potresti determinare empiricamente, forse qualcuno nel forum saprà essere più preciso di me). Comunque a questo punto è sufficiente che tu collegi un valore di 50 ms alla funzione "Wait until next(ms)" per far sì che il tuo ciclo giri a 20 cicli il secondo e di conseguenza il massimo ritardo di risposta del tuo tasto di arresto sia proprio minore o uguale a 50 ms. Tutto ciò semprechè le funzioni all'interno del ciclo non comportino un tempo di esecuzione maggiore di 50ms, altrimenti non le potrai interrompere asincronamente, a meno di maggior complessità di programmazione. Spero di esserti stato di un qualche aiuto, ciao, Enrico. ---------------------------------------- AUTORE: 1381 DATA :04/02/2007 - 21:08:25 ---------------------------------------- Grazie mille siete stati tutti molto utili. Sono riuscito a concludere qualcosa usando il wait untile next (ms). Ciao e grazie \":D\" ---------------------------------------- ================================================================================ Crash, vi senza errori ma non si avvia ================================================================================ AUTORE: 1771 DATA :04/02/2007 - 18:39:01 ---------------------------------------- Ciao a tutti, qualcuno potrebbe consigliarmi cosa controllare per risolvere il mio problema? Ho un VI di un progetto che non riesco ad eseguire, o meglio se lo lancio da windows funziona ( ma non mi carica le Shared variables ) mentre se lo lancio dal progetto mi fa crashare labview, dal taskmanager la cpu viene usata al 80% e la memoria allocata per labview continua ad aumentare. Grazie ---------------------------------------- AUTORE: 1771 DATA :04/02/2007 - 22:23:36 ---------------------------------------- il vi non si blocca ma ci tieni 6 minuti per caricarsi... è possibile vedere cosa sta facendo mentre carica il vi ? grazie ---------------------------------------- AUTORE: 515 DATA :05/02/2007 - 10:24:58 ---------------------------------------- hai controllato che il target sia COnnected? \":)\" (pallino verde brillante acceso) ---------------------------------------- AUTORE: 1771 DATA :06/02/2007 - 10:53:04 ---------------------------------------- Ciao, ho risolto togliendo il math script node e sostituendolo con un vi che fa i conti alla vecchia maniera ora il vi viene caricato in 3 secondi. ---------------------------------------- AUTORE: 645 DATA :06/02/2007 - 11:48:55 ---------------------------------------- Se riesci a capire bene cosa è successo potresti postare la spiegazione... credo sia interessante!! \":D\" ---------------------------------------- AUTORE: 1771 DATA :06/02/2007 - 16:55:27 ---------------------------------------- Il problame è che labview non ti permette di vedere cosa sta facendo durante il caricamento del vi. Comunqe avevo un mathscript node che mi serviva per eseguire dei calcoli ( banali somme divisioni e sottrazioni ), la sola presenza di questo node mi rendeva il caricamento veramente lento ( 830 vi ), una volta tolto il node e rimpiazzato con un vi che faceva le stesse operazioni, il caricamento è divenuto istantaneo ( 200 vi )... Di + non saprei dire, c'è qualcosa che posso controllare ? ---------------------------------------- AUTORE: 927 DATA :12/02/2007 - 15:52:25 ---------------------------------------- Infatti il Mathscript è una delle funzionalità non supportate dal RT! Le vedi sotto "Unsupported LabVIEW Features" nell'help. Ad esempio per i target ETS sono: ActiveX VIs .NET VIs Windows Registry Access VIs TestStand VIs (ActiveX-based) Report Generation Toolkit VIs Report Express VI (Uses the unsupported Report Generation Toolkit VIs) Graphics & Sound VIs Database Connectivity Toolset XML DOM Parser and G Web Server for CGI Support LabVIEW MathScript Menu functions Cursor VIs Call Library Function Nodes that access an operating system API other than ETS Open/Create/Replace File function interactively using a file dialog box The Clear indicators when called option of the Execution Properties page. ---------------------------------------- ================================================================================ Disabilitare le opzioni di un ring. ================================================================================ AUTORE: 1381 DATA :04/02/2007 - 21:12:54 ---------------------------------------- Ciao a tutti. Ho un altro quesito da porre. Devo fornire all'utente quattro opzioni (chiamiamole A B C e D), ognuna delle quali però deve essere abilitata solo se l'output di una precedente parte del programma (per esempio un SubVI), è un valore particolare. Finora usavo un ring per far scegliere all'utente e ottenevo una enum, ma ora non so come disabilitare le opzioni del ring a seconda dei casi. Ci sono controllo più adatti al mio caso? Grazie in anticipo. Ciao \":D\" ---------------------------------------- AUTORE: 927 DATA :05/02/2007 - 08:24:50 ---------------------------------------- Lo puoi fare sia con i ring che con gli enum: usa un Property Node con la proprietà DisabledItems[]. E' un array che dice quali voci devono essere disabilitate (grigie) ---------------------------------------- ================================================================================ Stampa LLB ================================================================================ AUTORE: 1355 DATA :06/02/2007 - 09:54:07 ---------------------------------------- Uso LV 6.1 e volevo sapere se è possibile stampare i nomi di tutti i vi di una llb Grazie anticipatamente a chiunque voglia rispondermi Ciao ---------------------------------------- AUTORE: 1355 DATA :19/02/2007 - 12:06:29 ---------------------------------------- Non ne sa niente nessuno ? \":cry:\" Ciao ---------------------------------------- AUTORE: 482 DATA :19/02/2007 - 15:01:28 ---------------------------------------- ..ma ciao! vai su File->Print e sfogliati tute le opzioni presenti! \":wink:\" ---------------------------------------- ================================================================================ Problema con le potenze ================================================================================ AUTORE: 955 DATA :06/02/2007 - 10:05:06 ---------------------------------------- Sto cercando di effettuare delle misurazioni di potenza sul mio segnale ed avrei dei problemi alcuni puramente teorici altri di tipo pratico: 1-ho calcolato la potenza attiva e l'apparente della mia componente fondamentale e suppongo che il calcolo sia fatto bene perchè appena elimino lo sfasamento tra i segnali di corrente e di tensione le due potenze si eguagliano. quando però voglio effettuare il calcolo della potenza attiva complessivo (tenendo conto anche delle armoniche) non so dove ma sbaglio in qualcosa. Dal momento che la norma parla di segnali nel dominio del tempo e visto che io sto lavorando nel dominio della frequenza ho operato come segue: essendo la formula della potenza attiva indicata sulla norma pari a P=(1/kT)*∫p*dt dove l'integrale è definito da τ a τ+kT. (sulla norma è riportato "The active power P is the mean value of the instantaneous power during the observation time interval τ to τ +kT" dove T= 1/f is the cycle (s), k is an integer number, τ is the moment when the measurement starts.) io l'avrei riportata nel dominio della frequenza come P=(1/kT)*sommatoria di pi (dove p è la potenza istantanea) Il punto è che se elimino le armoniche la logica vuole che la potenza attiva "complessiva" coincida con quella della fondamentale...purtroppo non mi vien così anzi la potenza attiva "complessiva" risulta essere prossima allo zero...cosa assurda visto che la quella fondamentale mi viene quasi 40W. Potreste aiutarmi?non so proprio dove metterci mano \":oops:\" ---------------------------------------- AUTORE: 955 DATA :06/02/2007 - 11:07:01 ---------------------------------------- se vi volessi postare il VI come potrei fare visto che il mio è superiore a 800kb? \":roll:\" ---------------------------------------- AUTORE: 1165 DATA :06/02/2007 - 14:15:57 ---------------------------------------- Puoi usare il link www.rogepost.com che è di un sito che permette il trasferimento di file fino a 100MB. Mi sembra molto buono. ---------------------------------------- ================================================================================ .txt in tempo reale ================================================================================ AUTORE: 1596 DATA :06/02/2007 - 10:59:17 ---------------------------------------- salve...volevo poter vedere il mio file .txt mentre salva...mi spiego meglio:salvo dei vettori in un file .txt e di volta in volta li "appendo"...volevo sapere se esiste un modo per tenere il file .txt sempre aperto in modo da vedere in tempo reale ciò che sta salvando (in questo modo mi risulterebbe più agevole e veloce controllare eventuali anomalie dei dati acquisiti)...grazie ---------------------------------------- AUTORE: 645 DATA :06/02/2007 - 11:47:44 ---------------------------------------- Cioè mentre il VI salva tu guardi il file di testo con il Blocco Note e vuoi vedere le nuove righe aggiunte? Boh... non so se si può... però è interessante. Sicuramente puoi aprire il file mentre il VI salva e controllare cosa sta succedendo ma lasicare il file aperto e vedere l'aggiornamento in tempo reale non so... ---------------------------------------- AUTORE: 1596 DATA :06/02/2007 - 12:50:23 ---------------------------------------- sì magic proprio così.... ---------------------------------------- ================================================================================ PID con mathscript ================================================================================ AUTORE: 1826 DATA :06/02/2007 - 14:23:39 ---------------------------------------- Ciao ragazzi è la prima volta che scrivo e spero mi possiate dare una mano.Praticamente devo implementare un controllore PID con un mathscript,so gia che nn è il metodo migliore cmq il mio professore vuole così (mannaggia a lui!!!).Praticamente ho un ciclo while al cui interno acquisisco i dati(con compactdaq) e nel mathscript mando il riferimento più l'inizializzazione delle variabili che mi servono per il pid.Ho paura ke le variabili all'interno del mathscript vengano rinizializzate ad ogni ciclo di clock (ogni 10ms) e poi quando faccio il run praticamente mi da anche un errore di BufferSize :Generation cannot be started, because the selected buffer size is too small.Increase the buffer size. Come azz faccio, ringrazio chiunque voglia aiutarmi visto che è la prima volta che uso labview THX ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 13:07:49 ---------------------------------------- Certo, le variabili vengono riinizializzate ogni volta... il mathscript non ha "memoria" di quel che è successo prima, devi passargli tu i valori aggiornati. Per passare il valore di una variabile all'iterazione successiva di un ciclo while ci vuole uno Shift Register: se non conosci l'argomento ti conviene studiartelo bene prima di andare avanti (vedi "For Loop and While Loop Structures" nell'help). Per l'altro errore non saprei, io non ho il DAQmx, ma sembrerebbe che il DAQ Assistant ha qualche impostazione sbagliata? ---------------------------------------- ================================================================================ Array 2 dimensioni e visualizzazione ================================================================================ AUTORE: 1771 DATA :06/02/2007 - 17:43:26 ---------------------------------------- Ciao a tutti, premetto che ho provato a cercare nel forum ma lo strumento di ricerca rilascia troppi risultati di cui molti non inerenti.. dovrei graficare all'interno di un ciclo while un array due dimensioni ( sono due colonne di dati che continuano a crescere ) pensavo di farlo con un chart ,ma questo considera le due colonne come due segnali diversi invece vorrei visualizzare una delle due colonne sulla X e l'altra sulla Y, ho provato anche con il grafico XY ma vuole un formato diverso dall'array. Inoltre se avessi un'altro array simile come posso fare per visualizzarlo sullo stesso chart ( o graph o XY ) ? spero di essere stato chiaro GRAZIE Daniele ---------------------------------------- AUTORE: 1596 DATA :06/02/2007 - 18:14:25 ---------------------------------------- se hai 2 array...ad esempio uno che è indicativo del tempo(asse x) e l'altro delle ampiezze(asse y)...puoi prendere i due array, passarli ad un ciclo for(abilitando l' indexing)...le coppie di dati(tempo,ampiezza) li inserisci in un bundle,porti l'uscita del bundle fuori al for(abiliti sempre l'indexing)...passi questa uscita ad un xy graph. ---------------------------------------- AUTORE: 482 DATA :07/02/2007 - 07:19:44 ---------------------------------------- Confermo quanto detto da Gianni. Purtroppo grafici a due arrai in cui uno rappresenta le X e l'altro le X non sono realizzabili con strutture chart cioè non è possibile accodare solo l'ultimo elemento. Ogni volta devi rigraficarlo di nuovo con tutti gli elementi. Questo comporta uno spreco di risorse da parte di windows ma tutt'ora non sono riuscito a trovare una via di fuga. L'unica alternativa ti si presenta nel caso in cui i tuoi valori in X siano costanti nel tempo allora ti puoi costruire una scala dei tempi in base a quello ed associare le Y ad ogni punto potendo cosi' utilizzare un grafico di tipo chart. Cmq magari questo ti porta fuori strada quindi tornando alla soluzione: Io ipotizzo che tu hai due array che di volta in volta aumentano di dimensione. Quindi prendi i due array X e Y fai un Bundle fra i due e li passi all'XY Graph, tutto all'interno del ciclo. In questo modo vedrai il grafico che ad ogni ciclo incrementa di un valore. ---------------------------------------- AUTORE: 384 DATA :07/02/2007 - 08:29:10 ---------------------------------------- Esiste un bellissimo VI negli esempi di LV che illustra perfettamente tutte le possibilità di visualizzazione con grafici (chart e XY) sia mono che multi-segnale. Basta cercare con "graph" e lo si trova. ---------------------------------------- AUTORE: 1771 DATA :13/02/2007 - 17:50:51 ---------------------------------------- ciao, ho "risolto" utilizzando un merge e plottando il risultato su un chart. Grazie ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 07:33:22 ---------------------------------------- ...mmhh... \":roll:\" \":?:\" ---------------------------------------- ================================================================================ Mathscript ================================================================================ AUTORE: 1826 DATA :06/02/2007 - 21:34:49 ---------------------------------------- Devo dire che mi sono spiegato veramente male nel mio primo post...scusate Devo implementare un algoritmo pid con mathscript all' interno di un ciclo while e praticamente per il pid mi devo ricordare dei valori all'istante precedente , spulciando nella rete ho visto che dovrei usare gli shift register.Mi potete spiegare come funzionano? ---------------------------------------- AUTORE: 384 DATA :07/02/2007 - 08:39:26 ---------------------------------------- É molto semplice: Cliccando con il pulsante destro sulla "parete" di un loop ''while" o "for", scegli la voce "Add Shift Register" dalla finestrella pop-up. Compare una sorta di "triangolone" capovolto da entrambi i lati del ciclo. Sostanzialmente, puoi prelevare un dato da quello di sinistra e [b:qiy63kzo][u:qiy63kzo]devi[/u:qiy63kzo][/b:qiy63kzo] immetterne uno in quello di destra. Il dato che ti arriva da sinistra è quello che tu hai immesso a destra nel giro precedente. Ecco l'effetto 'memoria'. Fuori dal ciclo devi immettere un valore a sinistra (l'inizializzazione) che verrà usato subito al primissimo giro. Aggiungo che ciò non è strettamente necessario, me credo sia meglio tu ne faccio un pò di pratica prima di passare agli utilizzi un pò più avanza dello 'shift register'. Il "dato" può essere di qualunque tipo: numerico semplice, array, cluster, ecc. Basta collegarlo e LV si adatta automaticamente. ---------------------------------------- AUTORE: 1826 DATA :07/02/2007 - 09:13:58 ---------------------------------------- Grazie tanto, adesso pare che sono riuscito a risolverlo.Alla prossima =) ---------------------------------------- ================================================================================ Misure sul grafico ================================================================================ AUTORE: 1814 DATA :07/02/2007 - 08:54:00 ---------------------------------------- Salve a tutti, sono nuovo del forum e spero di essere chiaro. Volevo sapere se in LabView esiste una funzione che dopo aver acquisito il fronte di salita di una forma d'onda ad impulso iniziando da un tempo zero mi restituisca il tempo corrispondente a quando raggiunge il 10% del valore Max (t1)partendo dal tempo zero.(non è una misura di rise time) _____ / ___/^ 0 t1 Tutto questo in presenza di rumore bianco sulla forma d'onda. Se non c'è una funzione specifica accetto anche consigli su una possibile traccia che riesca a fornirmi una misura precisa. Grazie a tutti per l'aiuto!!!! ---------------------------------------- ================================================================================ Math interface toolkit ================================================================================ AUTORE: 1826 DATA :07/02/2007 - 13:34:52 ---------------------------------------- Ciao a tutti , ho una domandina semplice semplice dovrei importare un modello simulink in labview con il Math interface toolkit il problema è che quando faccio il match dei parametri e provo a cambiare ad esempio il valore di una costante in labview il matlab mi dà errore perchè gli arriva una costante con la virgola (ad esempio 3,0000) mentre lui capisce numeri con il punto(3.00000).Come lo risolvo? ---------------------------------------- AUTORE: 1520 DATA :07/02/2007 - 17:38:23 ---------------------------------------- Non conosco il tool di importazione ma se hai un file di testo lo puoi prima filtrare con un semplice filtro in labview che ti cambi tutte le virgole in punti (chiaramente solo se puoi cambiare tutte le virgole in tutti punti). C'è un blocchetto della palette delle stringhe che rimpiazza i caratteri selezionati che credo possa fare al caso tuo. Matteo ---------------------------------------- AUTORE: 1826 DATA :07/02/2007 - 17:53:56 ---------------------------------------- Grazie ho risolto, c'è una specifica spunta da togliere fra le opzioni di labview che ti permette di trattare tutti i float con i punti ---------------------------------------- ================================================================================ Aquisizione analogica da 7 canali e calcolo valor medio. ================================================================================ AUTORE: 1452 DATA :07/02/2007 - 15:44:00 ---------------------------------------- Ciao ragazzi, Devo aquisire contemporaneamente da 7 canali analogici. L'aquisizione non è un problema, sono riuscito a cavarmela abbastanza bene con la DAQ. Ora il mio problema è aquisire dei sample da "n" secondi, calcolare la media per ogni canale e stampare i dati in una tabella. Il problema principale è che non so come impostare l'aquisizione dei 10 secondi di sample. Devo fare un ciclo loop? Grazie mille in anticipo Luca ---------------------------------------- AUTORE: 1520 DATA :07/02/2007 - 17:28:59 ---------------------------------------- Premetto che non sono espertissimo di DAQcard, ma mi sembra proprio che tu debba inserire il tuo blocco di acquisizione dai 7 canali in un semplice loop che puoi temporizzare a seconda del numoro di campioni che ti interessano. In uscita dal loop in questo modo ti troverai un array i cui elementi saranno le tue 7 acquisizioni come da te organizzati. La media la puoi fare facendo usando un registro a scorrimento del loop aggiungendo il valore acquisito ad ogni esecuzione del loop e divedendo per le iterazioni alla fine. Matteo ---------------------------------------- AUTORE: 1452 DATA :08/02/2007 - 08:07:03 ---------------------------------------- Grazie mille per la risposta. Questo è più o meno quello che mi aspettavo. Devo quindi usare gli array? Ciao ---------------------------------------- AUTORE: 1520 DATA :08/02/2007 - 10:53:01 ---------------------------------------- Se non hai particolari problemi di memoria direi di si. E' la soluzione più semplice. Matteo ---------------------------------------- ================================================================================ Come generare una superficie 3D da x,y,z ================================================================================ AUTORE: 1620 DATA :07/02/2007 - 17:47:29 ---------------------------------------- Ciao ragazzi ho bisogno di realizzare una superficie con 3dSurface o 3dSimpleSurface, partendo da un file di testo contenente i dati x,y, z. Riesco ad avere il plot solo se utilizzo 3Dmesh, ma non e' quello che cerco. Grazie dell'aiuto Ciao Benedetto66 ---------------------------------------- AUTORE: 247 DATA :08/02/2007 - 08:15:31 ---------------------------------------- Ciao, [quote:f226tbrh]Riesco ad avere il plot solo se utilizzo 3Dmesh, ma non e' quello che cerco. [/quote:f226tbrh] beh, qual'è allora il risultato che cerchi? giusto per non andare a tentoni nell'aiutarti; hai un'immagine, anche grezza, del grafico che vorresti ottenere? BYE. ---------------------------------------- AUTORE: 1620 DATA :11/02/2007 - 00:03:44 ---------------------------------------- [quote="apollon":wqc507ny]Ciao, [quote:wqc507ny]Riesco ad avere il plot solo se utilizzo 3Dmesh, ma non e' quello che cerco. [/quote:wqc507ny] beh, qual'è allora il risultato che cerchi? giusto per non andare a tentoni nell'aiutarti; hai un'immagine, anche grezza, del grafico che vorresti ottenere? BYE.[/quote:wqc507ny] Ciao avendo pochi punti misurati a diposizione, l'utilizzo del metodo 3dmesh produce una superficie che è la semplice triangolazione dei punti presenti sul plot con un risultato graficamente mediocre. L'utilizzo, viceversa, del metodo 3DSurface o 3Dsimplesurface dovrebbe produrre una griglia, più o meno fitta, di valori interpolati equidistanti generando così una superficie di notevole impatto grafico. Il metodo 3Dsurface inoltre permette, contrariamente al metodo 3Dmesh, la rappresentazione delle contourlines. In allegato trovi un esempio di superficie che mi piacerebbe realizzare. Grazie Ciao Benedetto66 ---------------------------------------- AUTORE: 1620 DATA :14/02/2007 - 16:32:43 ---------------------------------------- [quote="apollon":99vyr3hp]Ciao, [quote:99vyr3hp]Riesco ad avere il plot solo se utilizzo 3Dmesh, ma non e' quello che cerco. [/quote:99vyr3hp] beh, qual'è allora il risultato che cerchi? giusto per non andare a tentoni nell'aiutarti; hai un'immagine, anche grezza, del grafico che vorresti ottenere? BYE.[/quote:99vyr3hp] Ciao Apollon Ho risposto e ti ho mandato un'immagine di cio' che mi piacerebbe ottenere. ????? Grazie Ciao ---------------------------------------- AUTORE: 482 DATA :15/02/2007 - 07:29:57 ---------------------------------------- Hai provato a guardare negli esempi? C'e' il 3D Surface Example - Fluctuating Sine Wave.vi che fors epotrebbe essere quello che cerchi! ---------------------------------------- AUTORE: 645 DATA :15/02/2007 - 13:45:52 ---------------------------------------- Nella Palette Graph del Front Panel c'è il blocco "3d Surface Graph": non funziona come vuoi tu? Puoi leggere i dati dal file, inserirli in vettori e passare questi vettori al blocco. ---------------------------------------- ================================================================================ Formato di una stringa ================================================================================ AUTORE: 487 DATA :08/02/2007 - 11:10:17 ---------------------------------------- Ciao a tutti, volevo sapere se è posibile poter cambiare il formato di una stringa (da normale a esadecimale o da normal display a password display, per esempio) direttamente dal programma, quando è in run. Ho cercato nei property node ma non ho trovato niente di utile. ---------------------------------------- AUTORE: 487 DATA :08/02/2007 - 11:31:23 ---------------------------------------- Rettifico subito quello che ho scritto: per una singola stringa si può fare (property: disply style), ma io ho un array di stringhe, come fare? ---------------------------------------- AUTORE: 487 DATA :08/02/2007 - 11:44:22 ---------------------------------------- Ok, problema risolto: mi era sfuggita la possibilità di risalire al reference delle stringhe contenute nell'array. Penso di essere quasi pazzo: mi creo i problemi dove non esistono!!! ---------------------------------------- AUTORE: 384 DATA :09/02/2007 - 08:08:34 ---------------------------------------- [quote="coma":o7z5psog]Ok, problema risolto: mi era sfuggita la possibilità di risalire al reference delle stringhe contenute nell'array. Penso di essere quasi pazzo: mi creo i problemi dove non esistono!!![/quote:o7z5psog] Fossi l'unico!!! \":wink:\" ---------------------------------------- ================================================================================ Compactdaq e Math interface toolkit ================================================================================ AUTORE: 1826 DATA :08/02/2007 - 12:45:11 ---------------------------------------- Ciao a tutti ho un quesito da porvi, devo interfacciare un modello simulink(in allegato) con labview in modo da utilizzare il compactdaq per il controllo di un processo.Il ragionamento è questo: voglio fare il match dei parametri in labview e precisamente l'out1 con l'uscita analogica del compact e l' in1 con l'ingresso analogico in modo da acquisire e poi cambiare il valore di Costant sempre da labview(Immaginate che subsystem sia un qualsiasi controllore PID ad esempio).In poche parole il matlab opera il controllo mentre lab fa vedere i risultati e manda gli input e output. E' possibile fare questo secondo voi, mi potete dire un modo per farlo altrimenti? Vi ringrazio, sto facendo la tesi di laurea e sono un po in alto mare per questa cosa.... ---------------------------------------- AUTORE: 1597 DATA :08/02/2007 - 13:31:09 ---------------------------------------- devi utilizzare il SIT (simulation Interface Toolkit) ---------------------------------------- AUTORE: 1826 DATA :08/02/2007 - 14:11:00 ---------------------------------------- Si sto provando ad usarlo, ma niente nn riesco ad associare gli in1 e out1 con il compact.Per caso devo creare prima la dll del modello? ---------------------------------------- ================================================================================ Volume Microfono !! ================================================================================ AUTORE: 977 DATA :08/02/2007 - 14:22:33 ---------------------------------------- Salve a tutti, Ho un problema con il microfono o per meglio dire non sò come regolare il volume/ sensibilità dello stesso! Ho necessità che la sensibilità/volume del microfono non dipenda da altri programmi od applicazioni( come ad esempio il controllo volume di Windows), ma che venga impostata dal programma in Labview...!! Visto che esiste il controllo del volume per l'output( cuffie/ casse ) dovrebbe anche esistere il controllo per l'imput ( microfono ), ma purtroppo non riesco a trovarlo e non mi è venuto in mente nessun metodo alternativo per risolvere questo problema...!! Qualcuno di voi sà come potrei risolvere questo mio inconveniente?! Quasi dimenticavo, lavoro con Labview 7.1, SO Windows xp . A presto... Davide ---------------------------------------- AUTORE: 645 DATA :08/02/2007 - 14:44:56 ---------------------------------------- Guarda http://digital.ni.com/public.nsf/allkb/ ... 4C006E2491 . Si tratta di acquisire il segnale com'è e poi amplificarlo. Così facendo però amplifichi anche il rumore e hai bisogno di filtrare se vuoi eliminare il rumore di troppo! ---------------------------------------- AUTORE: 384 DATA :09/02/2007 - 10:16:09 ---------------------------------------- Credo esistano delle funzioni nelle API di windows per controllare la scheda audio. Qualcuno ne è familiare? Io ho trovato questi ActiveX in rete (non li ho provati): -[url=http://www.angelfire.com/nt/sGuard/:36273j8a]SoundGuard[/url:36273j8a] -[url=http://www.bluesofts.com/download/343/4749/Raga.html:36273j8a]Raga[/url:36273j8a] ---------------------------------------- AUTORE: 384 DATA :09/02/2007 - 10:22:48 ---------------------------------------- Avevo anche questa LLB nel mio harddisk. Non ricordo dove l'ho presa. ---------------------------------------- ================================================================================ Grafico in scala logaritmica ================================================================================ AUTORE: 1045 DATA :08/02/2007 - 17:15:57 ---------------------------------------- Salve,ritorno sul forum avendo già considerato l'uso di labview per effettuare grafici. Il caso che sottopongo adesso è il seguente: devo ottenere un grafico in scala logaritmica di alcuni valori che memorizzo in un array,e fin quì niente di strano. Devo ottenere sullo stesso grafico delle rette che delimitano il range di appartenenza del grafico a particolari classi (in particolare Classe1,Classe2,Classe3,Classe4). Poichè i valori che delimitano le classi sono valori costanti che in excel sono riuscito immediatamente a visualizzare,mi chiedo come posso fare altrettanto in Labview 7.1 ??? Allego sia il file excel che il file provisorio realizzato in Labview (che credo debba essere modificato giacchè sarebbe preferibile creare il grafico delle classi usando l'equazione della retta passante per due punti, invece di crearlo per punti; il problema è che non so come implementare l'equazione per graficarla in scala logaritmica). Ringrazio quanti mi daranno un aiuto. Wally ---------------------------------------- AUTORE: 1045 DATA :08/02/2007 - 17:18:27 ---------------------------------------- Chiedo scusa ma ho dimenticato di allegare il file excel.Provvedo subito. Wally ---------------------------------------- AUTORE: 113 DATA :09/02/2007 - 08:20:21 ---------------------------------------- Ciao! Il metodo più diretto per rappresentare le classi è utilizzare i grafici X-Y nei quali ogni punto è rappresentato da una coppia di valori (x,y); esattamente come hai fatto per il grafico di excel. Ti allego un esempio che ho fatto utilizzato i tuoi valori, spero ti possa andar bene; se non hai dimestichezza con i grafici X-Y guarda negli esempi di LV dei grafici, trovi XY Graph.vi che ti spiega i vari metodi per l'inserimento dei dati. ---------------------------------------- AUTORE: 1045 DATA :11/02/2007 - 15:42:19 ---------------------------------------- Grazie infinite Alberto, era proprio quello che volevo ottenere. C'è sempre da imparare su questo forum, infatti le cose che a prima vista sembrano essere le più complicate sul forum diventano semplice. Grazie a tutti i componenti del forum. Wally ---------------------------------------- AUTORE: 113 DATA :12/02/2007 - 08:05:35 ---------------------------------------- Grazie a te Wally! Il forum è qua per questo \":wink:\" ---------------------------------------- ================================================================================ Parere per chiarimento ================================================================================ AUTORE: 1821 DATA :08/02/2007 - 20:39:17 ---------------------------------------- Ho creato creato un vi basandomi su di un esempio di labview al quale ho apportato delle modifiche, ma mi sa che ho fatto qualcosa che non me lo fa funzionare bene. SI tratta di un sistema di acquisizione multicanale che mi dovrebbe salvare le acquisizioni in formato testo, ma mi si inceppa chiedendomi ogni secondo di creare un file nuovo. Probabilmente ho inserito un comando per il salvataggio errato o lo ho posto in modo sbagliato, ma non riesco a capire come!! Se qualcuno ha modo di darci uno sguardo, mi interesserebbe un parere esperto. Forse il tutto dipende dalla mia poca capacità e quindi avrò fatto qualche fesseria, ma un pò alla volta migliorerò. Finalmente in seguito a molti inviti da parte di "apollon" e di "MagicBotolo" mi sono reso conto che è molto + semplice provare a capire come si programma che provare a farlo senza avere un minimo di base ed è per questo che li ringrazio vivamente. Ciao ---------------------------------------- AUTORE: 927 DATA :12/02/2007 - 14:07:35 ---------------------------------------- non lo posso provare non avendo DAQmx, cmq non dovrebbe chiederti il nome file se glie ne dai uno valido PRIMA di avviare il VI. Inoltre credo che tu voglia mettere True a "append to file"... sennò non accumula i dati, li riscrive ogni volta sopra! ---------------------------------------- AUTORE: 645 DATA :12/02/2007 - 14:19:15 ---------------------------------------- Prova mettiendo "Append to File" su True (altrimenti, come dice Snamprogetti, usi ogni volta un file nuovo). Poi l'inizializzazione del file è una cosa un po' strana: secondo me ti conviene scegliere un file all'inizio con il blocco "Open File" selezionando la voce "Create or Replace". In questo modo se il file esiste viene sovrascritto, se il file non esiste viene creato. Buona norma è aprire un file prima del ciclo, scriverci durante il ciclo e chiuderlo alla fine del ciclo. Facci sapere se funzia! \":)\" ---------------------------------------- AUTORE: 1821 DATA :12/02/2007 - 16:11:02 ---------------------------------------- ok grazie, infatti non si fermava mai e mi chiedeva di salvare ogni secondo. Adesso apporto le modifiche che mi avete detto e vedo se funziona. Grazie ---------------------------------------- AUTORE: 1821 DATA :12/02/2007 - 16:30:57 ---------------------------------------- Non va!!! \":cry:\" Non mi rispetta il tempo, non si arresta l'acquisizione. Gli dico 10 secondi di durata e lui continua per un periodo molto lungo (penso almeno 5-6 minuti). Leggendo i dati, mi tira fuori in pochi secondi tipo 65000 acquisizioni. Forse è meglio se lascio stare e riprovo a mettere mano sul vecchio. Ci provo per qualche altro giorno con la speranza che alla fine faccia quello che dico io altrimenti abbandono. Cmq grazie di tutto P.S.: in 2-3 giorni mi sono letto l'impossibile per cercare a capirci di +, ma mi sa che avrei dovuto farlo con più calma. ---------------------------------------- AUTORE: 645 DATA :12/02/2007 - 18:20:44 ---------------------------------------- Il blocco aritmetico collegato allo STOP del ciclo deve essere OR, non AND. Con AND hai bisogno che tutti e tre i fenomeni siano verificati. Per quanto riguarda la parte DAQmx io non sono un grande esperto ma credo vada bene così come è impostata... ma ripeto, non sono un esperto di DAQmx. ---------------------------------------- AUTORE: 1821 DATA :12/02/2007 - 20:30:41 ---------------------------------------- Domani provo a rimodificarlo!!! Ma il ciclo or non mi da la possibilità di collegare i tre fenomeni, quale lascio libero??? Stanotte ci penso Grazie per l'interessamento Ti farò sapere. Ho appena finito di stampare il manuale sudierò e spero di riuscire ad imparare qualcso in più. Ciao e grazie di nuovo ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 08:25:21 ---------------------------------------- il ciclo -ahem- blocco OR può essere anche a 3 o più terminali: clicca col destro sopra l'AND a 3 terminali, dovrebbe esserci "Change mode"... ---------------------------------------- AUTORE: 1821 DATA :13/02/2007 - 08:38:53 ---------------------------------------- SI hai ragione avevo visto; spesso le cose sono più semplice di quello che sembrano. Ho provato di nuovo, ma in 10 secondi di acquisizione mi restituisce 65000 valori, un pò troppi non vi pare!!! Grazie per l'attenzione. ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 08:43:54 ---------------------------------------- Prova a mettere un ritardo dentro il ciclo: "Wait until next ms multiple" e passagli ad esempio 1000 se vuoi che acquisisca una volta al secondo. Nemmeno io me ne intendo di DAQmx, ma mi pare che non gli hai specificato da nessuna parte di andare piano... ---------------------------------------- AUTORE: 1821 DATA :13/02/2007 - 10:58:03 ---------------------------------------- Ho un problema!!! Adesso sembra che vada, ma devo modificare una cosa nel Block Diagram e non me lo permette. Come mai? Non è la prima volta che mi capita. Dopo aver salvato il VI non me lo fa + modificare e quindi ogni volta dovrei ricostruirlo. Sono sicuro che ho fatto qualcosa, tipo inserito qualche opzione, ma non riesco a capire quale. Non penso che sia proprio così. Grazie ---------------------------------------- AUTORE: 645 DATA :13/02/2007 - 11:06:59 ---------------------------------------- Esattamente cosa ti dice? ---------------------------------------- AUTORE: 482 DATA :13/02/2007 - 11:14:51 ---------------------------------------- [quote="ant_russo":2xh1zaha] Ho provato di nuovo, ma in 10 secondi di acquisizione mi restituisce 65000 valori, un pò troppi non vi pare!!![/quote:2xh1zaha] ehm... non so, ma con i valori di default del vi che hai mandato io in 10 secondi ne ottengo 101000 di campioni nel file, non 65000.... mi puoi dare tutti i valori che imposti nel pannello frontale? ---------------------------------------- AUTORE: 1821 DATA :13/02/2007 - 11:17:00 ---------------------------------------- Niente!!! Quello è il problema, ma ho notato che nella barra dei comandi, nei VI che non riesco a modificare, non mi compare la tendina con 13pt Application Font, può dipendere da questo? Forse non mi sono spiegato bene, quando vado sul block diagram e vorrei inserire o modificare qualsiasi cosa (ad esempio una somma) su di un VI esistente, ovviamente dopo aver aperto la tools, non mi fa fare niente. Mannaggia \":cry:\" Grazie per l'interessamento siete davvero grandi come avrei fatto senza di voi. Ciao ---------------------------------------- AUTORE: 1821 DATA :13/02/2007 - 11:18:44 ---------------------------------------- non so, ma con i valori di default del vi che hai mandato io in 10 secondi ne ottengo 110000 di campioni nel file, non 65000.... mi puoi dare tutti i valori che imposti nel pannello frontale?[/quote] Si ho visto ed ho risolto anche questo, ma adesso non riesco a modificare niente nel block diagram. Grazie ---------------------------------------- AUTORE: 482 DATA :13/02/2007 - 11:32:31 ---------------------------------------- non hai toccato qualcos nelle Vi properties alla voce protection? Tasto destro sull'icona in alto a destra del VI->Vi properties->protection-> deve essere su Unlocked Non si sa mai \";)\" ---------------------------------------- AUTORE: 1821 DATA :13/02/2007 - 11:59:07 ---------------------------------------- Tasto destro sull'icona in alto a destra del VI->Vi properties->protection-> deve essere su Unlocked Non si sa mai \";)\"[/quote] Ma che nemmeno la finestra di dialogo sul tasto in alto a destra si apre. Cmq sono andato in file>VI propietà>sicurezza>unlocked, ma nemmeno in quetso modo va. Allego il VI che non riesco a modificare e l'immagine del front pannel nella quale si vede che mancano alcune icone sulla barra degli strumenti. Grazie ---------------------------------------- AUTORE: 482 DATA :13/02/2007 - 12:37:45 ---------------------------------------- A me lo apre senza problemi, a sto punto credo che sia qualche impostazione di ambiente.... Per vederlo come lo vedi tu devo impostarlo su locked come dicevo prima! ---------------------------------------- AUTORE: 482 DATA :13/02/2007 - 12:41:35 ---------------------------------------- Trovato! Se è lockato, non puoi netrare nelle proprietà tramite l'icona! Devi fare: File-> VI Properties e poi fare quello che ti ho detto prima! ---------------------------------------- AUTORE: 1821 DATA :13/02/2007 - 13:39:45 ---------------------------------------- E' andato!!!! \":D\" Adesso devo solo controllare se mi restituisce i dati richiesti. Grazie siete grandi. Spero che un giorno riuscirò ad imparare qualcosa in + per poter anche io darvi una mano sul forum. Ciao ---------------------------------------- AUTORE: 1821 DATA :13/02/2007 - 15:28:28 ---------------------------------------- Sembra che vada tutto abbastanza bene!!! Dovrò fare altre prove per verificare, ma speriamo che sia effettivamente così!!!!!!!! \":P\" \":P\" \":P\" \":P\" Grazie a tutti Ciao ---------------------------------------- ================================================================================ indirizzo LPT1 ================================================================================ AUTORE: 1308 DATA :09/02/2007 - 08:03:47 ---------------------------------------- ciao a tutti, sto tentando di utilizzare la porta parallela come I/O, ma ho la sensazione che a volte funzioni e a volte no. è possibile che win XP cambi l'indirizzo della LPT1 ? Posso tramite qualche routine o comando leggere l'indirizzo assegnato ? per verificare il funzionamento delle uscite su LPT è sufficente un tester ? grazie ---------------------------------------- AUTORE: 368 DATA :09/02/2007 - 14:20:53 ---------------------------------------- Se cerchi nell'help di labview trovi un esempio già pronto e funzionante (a me funziona!). L'indirizzo ho lasciato quello di default. L'esempio, se non erro fuziona sia in lettura che in scrittura... in questo momento non posso verificare. Si, basta un tester per vedere se le uscite sono alte o basse. CIAO ---------------------------------------- AUTORE: 384 DATA :10/02/2007 - 18:50:59 ---------------------------------------- Ci sono vari [i:4zgmls7h]topics[/i:4zgmls7h] sull'argomento nel forum (Fai una ricerca con LPT). Ti suggerirei questi: -[url=http://www.ilvg.it/forum/viewtopic.php?t=1438&highlight=lpt:4zgmls7h]topic 1[/url:4zgmls7h] -[url=http://www.ilvg.it/forum/viewtopic.php?t=167&highlight=lpt:4zgmls7h]topic 2[/url:4zgmls7h] Puoi anche cercare sul sito NI. ---------------------------------------- ================================================================================ Problema lettura file .bin e acquisizione ================================================================================ AUTORE: 955 DATA :09/02/2007 - 08:47:41 ---------------------------------------- Salve. Sto provando ad effettuare l'acquisizione di un segnale su cRIO e al tempo stesso ho un blocchetto che mi effettua un filtraggio che legge dei parametri da file .bin. Il punto è che non so perchè ma se faccio girare solo il VI dell'acquisizione riesco ad acquisire normalmente ma appena inserisco quello del filtro beh non acquisisco + nulla...eppure sono convinto che il filtro riesca a prendere i parametri dal file .bin ma non riesce ad entrare nel loop di acquisizione... \":cry:\" mi potete aiutare? Vi posto il VI http://www.rogepost.com/n/1828958087 ---------------------------------------- AUTORE: 1030 DATA :09/02/2007 - 16:26:03 ---------------------------------------- Sicuro che tutti i parametri in ingresso al ciclo vengano settati? Magari il ciclo rimane in attesa di un valore che non arriva mai. ciao ciao ---------------------------------------- AUTORE: 955 DATA :10/02/2007 - 09:24:17 ---------------------------------------- ho risolto era un problema del filtro \":roll:\" in pratica per come era settato quando gli arrivava il valore zero restava nel loop senza mai uscirne \":lol:\" grazie per l'aiuto cmq \":wink:\" ---------------------------------------- ================================================================================ gestione motori stepper ================================================================================ AUTORE: 1828 DATA :09/02/2007 - 11:07:41 ---------------------------------------- buongiorno a tutti! qualcuno di voi a esperienza nella gestione di motori stepper (passo-passo) con schede di acquisizione NI? il problema che non riesco a risolvere è la generazione di una rampa di frequenza per l'invio del segnale di pulse ai motori. infatti l'inerzia meccanica dei motori non mi permette di azionarli direttamente alle alte velocità di cui necessito per la mia applicazione. premetto che ho cgià provato a risolvere il problema con degli shift register, senza ottenere risultati (infatti le latenze software fanno ripresentare i problemi di inerzia statica) grazie! rosy ---------------------------------------- AUTORE: 645 DATA :09/02/2007 - 12:54:36 ---------------------------------------- Hai provato a generare segnali a rampa in uscita? Cerca qualcosa sulla generazione di segnale con LabView ("Analog Outut"). ---------------------------------------- AUTORE: 1828 DATA :09/02/2007 - 13:05:16 ---------------------------------------- il problema è che io non devo generare una rampa di tensione, ma una rampa di frequenza cioè la tensione in ingresso ai motori deve essere sempre la stessa, ma deve cabiare la frequenza con cui viene generato il treno di impulsi che arriva al motore (per generare il treno di impulsi io ho creato un canale virtuale, ecc, tipo come nell'esempio gen. dig. pulse train) ..altre idee? rosy ps. grazie per aver risposto! ---------------------------------------- AUTORE: 247 DATA :09/02/2007 - 18:22:53 ---------------------------------------- Ciao, beh, come dici per comandare lo stepper devi semplicemente variare nel tempo la frequenza della tua onda quadra per avere rampe di acc. e decc. adeguate al carico collegato, quindi nel tuo while modifichi nel tempo la freq di generazione dell'onda. L'onda generata non sarà bellissima, si interromperà durante i cambiamenti di frequenza, e qundi le variazioni di velocità saranno intervallate dal un piccolo tentativo di stallo, ma sicuramente, soprattutto se sei fortunata \";-)\", l'inerzia di motore e carico ridurrà gli effetti di questo controllo approssimato. Se però devi ottenere anche un controllo fine del numero di passi devi sicuramente agire diversamente. BYE. ---------------------------------------- AUTORE: 384 DATA :10/02/2007 - 18:33:49 ---------------------------------------- Quello che vuoi fare è uno "sweep" in frequenza. Sul sito NI ci sono diversi articoli sull'argomento: -[url=http://zone.ni.com/devzone/cda/epd/p/id/16:ngu9v90p]Analog Output Frequency Sweep with NI-DAQmx[/url:ngu9v90p] -[url=http://zone.ni.com/devzone/cda/epd/p/id/3327:ngu9v90p]Frequency Sweep with Arbitrary Waveform Generator[/url:ngu9v90p] -[url=http://zone.ni.com/devzone/cda/epd/p/id/5054:ngu9v90p]AWG Frequency Sweep Example[/url:ngu9v90p] -[url=http://zone.ni.com/devzone/cda/epd/p/id/2826:ngu9v90p]SignalExpress - Sweep with triggered MIO - Exponential Frequency[/url:ngu9v90p] -[url=http://zone.ni.com/devzone/cda/epd/p/id/2799:ngu9v90p]Frequency Response using Swept Sine[/url:ngu9v90p] -[url=http://zone.ni.com/devzone/cda/epd/p/id/4623:ngu9v90p]Multi-Function Generator[/url:ngu9v90p] Li ho ordinati secondo quanto io penso siano attinenti al tuo problema (quindi non è detto che sia giusto). ---------------------------------------- AUTORE: 1828 DATA :11/02/2007 - 10:42:25 ---------------------------------------- dunque: avevo già provato a realizzare dei cicli while ma la tempistica software è troppo lenta, infatti l'azionamento del mio motore stepper necessita di frequenze di commutazione del segnale di pulse nell'ordine dei 20KHz (i problemi di inerzia del motore partono intorno al 1KHz, quindi anche latenze nell'ordine del centesimo di secondo sono per il motore lunghissime!). sto provando a consultare gli esempi che mi avete suggerito (anche se ho qualche problema a caricarli perchè mi viene chiesto di scegliere alcune subvi a cui il programma fa riferimento e, non avendo io mai visto il programma, non posso sapere a che subvi si fa riferimento...!) cmq credo di aver intuito che la soluzione del problema non è proprio banalissima e se la cosa da un lato mi solleva (non ho chiesto aiuto per una scemenza) dall'altro mi fa sorgere un dubbio: mi hanno detto che esistono delle schede dedicate al controllo di stepper...con una di quelle il controllo sarebbe più semplice? qualcuno di voi ne ha mai usata una? anche perchè la scheda che avevo scelto con il venditore si è rivelata essere difettosa e con dei problemi di produzione, quindi potrei dover cambiare scheda: potrebbe essere conveniente passare ad una scheda dedicata? (tenete presente che io cmq ho già un azionamento del motore con gli opportuni driver e che controllo il tutto in anello aperto, senza sensori di tipo resolver...) grazie rosy ---------------------------------------- AUTORE: 482 DATA :12/02/2007 - 08:52:57 ---------------------------------------- Potresti utilizzare una scheda motion e avresti tutte le funzioni di generazione del segnale di accelerazione e decelerazione in impulsi al secondo ecc ecc Tieni pero' presenet che al momento la scheda motion NI piu' economica è la PCI-7332 che costa 760 €. Al limite puoi installarti il pacchetto Motion dai CD degli Instruments Drivers, e andarti a guardare l'hep deo vari vi per capire se c'e' quello che ti interessa e quanto ti risolverebbe il problema piuttosto che complicartelo ecc ecc. ---------------------------------------- AUTORE: 384 DATA :12/02/2007 - 11:03:59 ---------------------------------------- [url=http://www.ipses.com/it/prodotti/schedeMT2.htm:24ndycfq]Questa azienda[/url:24ndycfq] - italiana - produce delle schede di controllo per step motors da controllare via seriale e anche USB. La cosa carina è che hanno anche le librerie per LabView. Qualche anno fa li ho interpellati, appunto per un problema del genere. Allora, ho scelto la soluzione di un'altra azienda di Milano perchè era simile in funzionalità e caratteristiche ma costava meno per il mio specifico caso. Purtroppo non ricordo il nome e non trovo i riferimenti. ---------------------------------------- ================================================================================ MultiTask DAQmx ================================================================================ AUTORE: 1033 DATA :09/02/2007 - 13:25:51 ---------------------------------------- Ciao, ho un problema con la gestione di più task DAQmx. Vorrei creare più task di generazione di forme d'onda, a scelta runnarne uno, stopparlo, runnarne un altro e così via, alla fine fare un clear di tutti. Ho però un problema con la scrittura del buffer, finche non faccio una clear del task il buffer rimane riservato al task non permettendomi di runnarne un altro . L'esempio allegato dovrebbe spiegare meglio il problema. Avete qualche idea? Grazie, ciao. ---------------------------------------- ================================================================================ Controllo Loops e Cancellare un grafico ================================================================================ AUTORE: 516 DATA :10/02/2007 - 12:54:39 ---------------------------------------- Ciao a Tutti Posto questo esempio x chiedervi come mai una volta fermato un while loop non riparte più il conteggio . Vi chiedo ancora come posso cancellare un grafico di tipo express xy graph thamite un propety Grazie Mille a tutti Sergio ---------------------------------------- AUTORE: 129 DATA :10/02/2007 - 13:40:32 ---------------------------------------- Per riprendere il conteggio, devi riattivare il loop, quindi devi iinserire i tuoi loop in un loop principale che terminerà l'esecuzione del programma. A questo punto ti consiglio di usare una functional global (un vi che esegue un ciclo (condizione sempre verificata) con uno shift register non inizializzato che tiene memoria dei conteggi. Ora i tuoi conteggi possono essere resettati, continuati,fermati ecc. sarai tu a metter queste funzionalità. Per il clean del XY graph non capisco perchè lo vuopi fare con una propertry quando sarebbe sufficnete mettergli un cluster di array vuoto, per pulirlo. Ti allego un esempio per entrambi i casi, spero ti siano utili ---------------------------------------- AUTORE: 516 DATA :10/02/2007 - 13:46:58 ---------------------------------------- Ciao Grazie Mille per le dritte , si per quanto riguarda il grafico in effetti non ci avevo pensato Grazie Ancora Ciao Sergio ---------------------------------------- ================================================================================ start due vi con un solo pulsante ================================================================================ AUTORE: 595 DATA :13/02/2007 - 10:03:52 ---------------------------------------- Caio a tutti volevo sapere come potevo attivare due vi contemporaneamente tramite un solo start. Ho infatti un fp 2015 e vorrei far partire i due vi (host e on my Pc) insieme e comunque da un solo pulsante grazie Ho provato con i vicrtl che sono nelle librerie con load open e run ma senza risultati , credo che essendo i vi in un project la cosa sia più complicata ---------------------------------------- AUTORE: 645 DATA :13/02/2007 - 11:09:16 ---------------------------------------- Puoi creare un VI di interfaccia contenente il pulsante START: alla pressione di questo pulsante fai partire i due VI tramite chiamata dinamica (usi il blocco "Open VI" settando la condizione "Wait until finish" impostata su False). ---------------------------------------- AUTORE: 595 DATA :13/02/2007 - 13:38:49 ---------------------------------------- ma devo usare il ciclo while? sorry non ho ben capito ---------------------------------------- AUTORE: 645 DATA :13/02/2007 - 14:23:32 ---------------------------------------- Il VI principale (di interfaccia) è costituito da un ciclo While. Alla pressione del tasto richiami i VI secondari (nell'immagine ho richiamato un VI chiamato Corrente.vi). Come fermare il VI iniziale dipende da te... cerca qualcosa sul forum o sul sito www.ni.com riguardante l'esecuzione parallela di VI oppure guarda la presentazione di Ale sul parallelismo su ILVG ( download.php?id=297 ). Il VI per il percorso relativo lo trovi nella sezione di ILVG http://www.ilvg.it/index.php?option=com ... &Itemid=84 . ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 15:29:28 ---------------------------------------- Il punto è che Principiante (se ho ben capito) vuole lanciare un VI sul pc e un altro VI sul RT del Fieldpoint (2 target diversi). Anch'io non saprei dove mettere le mani \":|\" ---------------------------------------- AUTORE: 645 DATA :13/02/2007 - 15:40:58 ---------------------------------------- Ah urka... è vero... scusate!! Provo a cercare qualcosa... \":roll:\" ---------------------------------------- AUTORE: 645 DATA :13/02/2007 - 15:43:40 ---------------------------------------- Ma usi il modulo Real-Time? Non è possibile trovare il Field Point tramite indirizzo di rete e passare dai Property Node per metterlo in esecuzione? ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 07:22:54 ---------------------------------------- Presumo che i due oggetti (RT e PC) siano collegati via ethernet.... In questo caso potresti implementare l'uso di una shared variable o l'utilizzo del DataSocket per appoggiarci il tuo booleano che da lo start ai due vi. Dopodichè l'esecuzioen dei vi è completamente indipendente no? ---------------------------------------- AUTORE: 927 DATA :14/02/2007 - 08:17:17 ---------------------------------------- Però devi avere già a bordo del FP un software in esecuzione che sappia leggere quella variabile e lanciare il VI, che deve essere a sua volta già sul FP... Non credo che da programma puoi ordinare di caricare e lanciare un VI sul FP dal nulla (come quando premi "run"). Esattamente, Principiante, cosa intendi con "attivare" i VI? Magari, per quello che vuoi ottenere tu, i due VI potrebbero essere GIA' in esecuzione (lanciati a mano all'inizio), e il tuo pulsante gli ordina solo di cominciare a fare una certa cosa. In questo caso ti puoi dimenticare Load, Open, eccetera, e te la cavi con dei cicli while! ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 08:55:58 ---------------------------------------- Beh si, io partivo dal presupposto che sul FP Real time ci fosse già un applicazione in esecuzione ---------------------------------------- AUTORE: 595 DATA :14/02/2007 - 10:02:17 ---------------------------------------- intendo proprio il fatto di attivare (run) i due vi con un solo pulsante . un vi si carica sul fp e si attiva mentre l'altro di acquisizione è sul Pc; tra loro sono collegati via ethernet con un hub in quanto sono in rete ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 11:27:31 ---------------------------------------- ..mi sorge un dubbio... non vorrei dire cazzate ma se non sbaglio una volta che carichi il programma nel target quello si avvia quando avvii il Field Point no? Sbaglio? ---------------------------------------- AUTORE: 927 DATA :14/02/2007 - 11:31:18 ---------------------------------------- Se crei l'eseguibile compilato, e imposti l'autolancio, si. ---------------------------------------- AUTORE: 595 DATA :14/02/2007 - 12:47:03 ---------------------------------------- praticamente ogni volta che parteil vi si carica (deploy) sul l'Fp e poi gli do lo start ---------------------------------------- AUTORE: 645 DATA :14/02/2007 - 16:27:31 ---------------------------------------- Provate a guardare http://zone.ni.com/devzone/cda/epd/p/id/2098 ... magari viene buono! ---------------------------------------- ================================================================================ generazione codice da labview ================================================================================ AUTORE: 1597 DATA :13/02/2007 - 10:06:07 ---------------------------------------- salve ragazzi, vorrei porvi una domanda:esiste un tool della National che pemette di trasformare in codice C il codice sviluppato in labview? ad esempio un po quello che avviene con real time workshop di Simulink che trasforma in codice C i modelli sviluppati in simulink... grazie in anticipo per il Vs. contributo... ---------------------------------------- AUTORE: 645 DATA :13/02/2007 - 11:10:27 ---------------------------------------- Il LabView Embedded prende il VI e lo trasforma (se non sbaglio) in pseudo C o qualcosa di simile... non so se può essere un punto di partenza.. ---------------------------------------- AUTORE: 1597 DATA :13/02/2007 - 11:32:23 ---------------------------------------- grazie ora guardo..... ---------------------------------------- ================================================================================ Scrollbar ================================================================================ AUTORE: 927 DATA :13/02/2007 - 13:31:12 ---------------------------------------- C'è modo di attivare/disattivare le scrollbar del pannello frontale DURANTE l'esecuzione? L'equivalente dinamico di "Show vertical scroll bar" e "Show horizontal scroll bar" sotto Window Appearance ---------------------------------------- AUTORE: 515 DATA :13/02/2007 - 14:28:37 ---------------------------------------- Mah... così a occhio io metterei il property node in un ciclo e cambierei il valore a seconda di uno switch booleano... Non funziona? ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 14:49:43 ---------------------------------------- Certo.......... ma la domanda è QUALE property?? ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 14:51:57 ---------------------------------------- Mi spiego meglio: quelle opzioni ci sono nella pagina delle proprietà "Window appearance" del VI, accessibile quando il VI è fermo, ma non trovo una voce equivalente nei property node ---------------------------------------- AUTORE: 515 DATA :13/02/2007 - 15:07:56 ---------------------------------------- Perfetto, volevo esser sicuro di aver capito... Allora, crea un property node e prova a fare così. Non la colleghi, cliccki con il destro e fai Link to... => Pane Al che trovi queste due proprietà: Pane ->VerticalScrollBarVisibility ->HorizontalScrollBarVisibility Io onestamente non ho tempo di provare, ma fammi sapere se funziona! \";)\" In bocca al lupo Mèt ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 15:17:54 ---------------------------------------- Si! Nella 8.2 funziona. Nella 7.1 ancora non lo trovo (Link to Pane non c'è). Grazie! ---------------------------------------- AUTORE: 515 DATA :13/02/2007 - 15:30:17 ---------------------------------------- Ottimo! Prima o poi servirà anche a me \";)\" Buon lavoro e buona serata! ---------------------------------------- AUTORE: 113 DATA :13/02/2007 - 15:34:52 ---------------------------------------- Per LV 7.1: - Inserisci un Property Node generico - Tasto destro - Select Class - Vi Server - VI - Seleziona la proprietà: Front Panel Window - Show Scrollbars \":wink:\" ---------------------------------------- AUTORE: 927 DATA :13/02/2007 - 16:46:24 ---------------------------------------- OK! Non so come riesco a non trovare mai niente \":lol:\" L'unico limite nella 7.1 è che la verticale e l'orizzontale non si gestiscono separatamente ---------------------------------------- ================================================================================ Come ottenere piu' uscite audio indipendenti ... ? ================================================================================ AUTORE: 1372 DATA :13/02/2007 - 16:32:37 ---------------------------------------- Ho l'esigenza di comunicare messaggi audio a piu' di un utente . Non sono molte le idee che ho adesso , anzi nessuna . Come potrei fare ? Ho visto per esempio che che per il caso semplice , di un solo utente , va bene il file di Labview 'Snd Play Wav File.vi' . Questo permette di selezionare con l'ingresso 'Devide id' la periferica di output . Ci sarebbe un metodo per comunicare , a scelta a piu' utenti dei messaggi indipendenti ? Non sono un grande , nemmeno piccolo , esperto di componenti elettronici... Ci sarebbe la possibilita' magari utilizzando qualche piccolo aggegio di creare piu' uscite audio indipendenti ? ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 07:26:18 ---------------------------------------- ehm....qui mancano dei dettagli fodnamentali... Di che tipo di messaggio audio stai parlando? Ma soprattutto i messaggi in che senso devono essere "a piu' utenti e indipendenti". O c'hai degli utenti che captano solo determinati tipi di onde sonore, tipo un cane e l'uomo ragno, oppure se mandi due segnali audio, anche se sono indipendenti si sovrappongono....non capisco... \":?:\" ---------------------------------------- AUTORE: 1372 DATA :14/02/2007 - 07:57:58 ---------------------------------------- Messaggi audio semplicissimi , dei file .wav . I messaggi devono essere separati per ogni utente . In pratica un singolo utente dovrebbe avere un canale audio separato dedicato , virtuale o reale non importa . I messaggi potrebbero anche essere sovrapposti , quindi in un istante ci potrebbero essere due o piu' messaggi , uguali o diversi , mandati a due utenti . Comqune questo non e' strettamente necessario . Potrei anche introdurre dei ritardi di tempo , visto che il file wav e' un messaggio che deve essere ascoltato da una persona , ed evitare la sovrapposizione . Il problema cmq non e' tanto questo . Non so come fare per avere piu' canali audio in uscita , ciascuno verso una determinata persona . Con una configurazione standard , con una scheda video posso solo comunicare un messaggio ad una sola persona ( per le mie conoscenze ) ... Spero di essere stato piu' chiaro . ---------------------------------------- AUTORE: 384 DATA :14/02/2007 - 08:55:57 ---------------------------------------- Confesso che non ho ancora capito molto. Provocazione: Nell'era dei cellulari ( oggi si acquistano a meno di 40 euro!), non sarebbe più semplice trasmettere degli SMS? Basta collegare un modem gsm al PC. ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 08:58:21 ---------------------------------------- [quote="stevefrancis":2ynasef3]Non so come fare per avere piu' canali audio in uscita[/quote:2ynasef3] Beh devi avere un hardware con piu' canali di uscita e cablati fisicamente verso una o un altra persona. continua la non chiarezza... Non puoi fare un esempio pratico dell'applicazione spiegandone anche la logistica? ---------------------------------------- AUTORE: 1372 DATA :14/02/2007 - 09:07:33 ---------------------------------------- Il fatto e' che i messaggi dovrebbero essere inviate a non vedenti , e gli sms non vanno bene . In 2 parole io acquisisco da delle webcam , una per ogni utente . Cerco di rilevare particolari sagome che individuano un oggetto di interesse per chi si muove con la webcam . Il problema quindi e' comunicare a ogni singolo utente un messaggio audio . Visto che non sono pratico di hardware che possano fare a questo caso , che tipo di hw serve per creare piu' canali di uscita ? ---------------------------------------- AUTORE: 927 DATA :14/02/2007 - 10:11:31 ---------------------------------------- Ma dove stanno questi tizi? Ognuno ha vicino a sè un altoparlante personale? E c'è un unico computer, collegato a tutte le webcam e tutti gli altoparlanti? ---------------------------------------- AUTORE: 1372 DATA :14/02/2007 - 10:19:34 ---------------------------------------- Si . C'e' un unico server con collegate delle webcam wireless , e l'mabiente e' unico per tutte le persone che vi navigano . E ci sarebbe adesso la necessita' di comunicare il messaggio con delle cuffie wireless ... ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 11:10:48 ---------------------------------------- Beh l'uncia è utilizzare delle schede audio multicanale. Ipotizzo che esse identifichino ogni canale con un diverso ID. E cosi' Sarebeb come mandare il segnale a due diverse schede. Cerca con google schede audi omulticanale e vedi cosa trovi in commercio. Io ci ho dato un occhiata e sembra che l'offerta sia ampia...quale scegliere pero' non ti saprei proprio dire. ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 11:19:40 ---------------------------------------- ..rimangio quello che ho detto. Per schede audio multicanale si intende il piu' delle volet che la scheda permette di riprodurre piu' flussi audio insieme. Pe rla tua applicazione invece forse è il caso di valutare le schede audio esterne USB. COnfermo che anche quelle le trovi su internet. ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 11:21:45 ---------------------------------------- Beccati questa per 12,90 euro ne prendi tante quanti sono gli utenti e dovresti aver risolto...magari ne prendi una per fare le prove e se va bene prendi le altre \";)\" [url=http://www.ciao.it/Opinionisulprodotto/Hercules_Gamesurround_Muse_Pocket_LT_USB__607543:lgmhos2i]ECCO IL LINK[/url:lgmhos2i] ---------------------------------------- AUTORE: 1372 DATA :14/02/2007 - 14:16:51 ---------------------------------------- Grazie ! Davvero interessante ... ma guarda tu , pure le schede audio usb si trvano , non ci avevo nemeno lontanamente pensato a una soluzione di questo tipo \":)\" ... ---------------------------------------- AUTORE: 645 DATA :14/02/2007 - 16:46:00 ---------------------------------------- Io la butto lì... se la scheda audio è stereo si potrebbe pensare di usare i due canali per utenti separati (come esattamente non lo so... \":)\" ) ---------------------------------------- ================================================================================ doppio grafico... ================================================================================ AUTORE: 1441 DATA :13/02/2007 - 23:30:20 ---------------------------------------- acquisisco in tempo reale un segnale di forza e lo voglio rappresento su un gafico. Contemporaneamente però voglio mostrare sullo stesso grafico un target (rappresentato da una sinusoide). Il soggetto deve esercitare un forza e seguire il target a video. Come posso fare? Proprio ci ho provato in mille modi ma niente di fatto... ---------------------------------------- AUTORE: 927 DATA :14/02/2007 - 08:31:14 ---------------------------------------- Vuoi usare un Chart o un Graph? In entrambi i casi si può disegnare più di un tracciato nello stesso grafico. Nel caso del Chart devi passargli un array 2D dove ogni colonna è un tracciato. Nel Graph invece ogni riga dell'array è un tracciato. Il discorso della forza, del "target", eccetera, non è molto chiaro, ma non dovrebbe avere importanza: la generazione dei valori e il loro disegno a video sono due aspetti indipendenti che dovrebbero essere completamente separati! ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 09:00:09 ---------------------------------------- Ma il tuo problema è inserire un secondo grafico o creare la sinusoide? ---------------------------------------- AUTORE: 1441 DATA :14/02/2007 - 15:19:59 ---------------------------------------- allora. Innanzitutto io genero la sinusoide target e per fare questo ho usato Simulate signal. E qui primo problema. Quando salvo noto che questo blocco genera una sinusoide da 10 punti al secondo (cioè i valori cambiano ogni decimo di secondo) e io vorrei più variazioni, cioè una sinusoide meno scalettata. Secondo problema la rappresentazione a grafico. Infatti non riesco a trovare un grafico che riesca a rappresentare questo segnale in modo completo. Infatti al massimo io vedo 1 decimo di secondo del segnale il quale viene in pratica tagliato (se imposto la scala delle X cioè del tempo da 0 a 1 secondo solo il primo decimo di secondo sarà riempito da una linea orizzontale che sale e scende). In pratica io vorrei che sul grafico io potessi impostare la durata della sinusoide e la sua frequenza e vederla già tutta disegnata in tutta la sua durata. A quel punto il soggetto deve esercitare la forza e seguire il tracciato già definito. Come posso fare? Forse sbaglio ad usare il ciclo while loop? Qualcuno mi aiuta? ---------------------------------------- AUTORE: 1441 DATA :14/02/2007 - 15:20:52 ---------------------------------------- io vi manderei anche il file ma qui purtroppo si possono caricare solo file piccoli. Qualcuno sa come allegare file di dimensioni maggiori? ---------------------------------------- AUTORE: 927 DATA :14/02/2007 - 15:42:34 ---------------------------------------- Qui da me Simulate Signal ha "number of samples", "samples per second" e qualunque cosa ti possa servire. Idem per Sine Waveform che magari è anche più semplice. Per l'allegato, potresti mandare solo un'immagine della parte interessante, possibilmente in formato PNG. ---------------------------------------- AUTORE: 1441 DATA :14/02/2007 - 15:49:03 ---------------------------------------- ho provato a modificare quei valori ma il risultato non cambia e non ne capisco il motivo... Forse ho dei problemi con il programma? o forse ho usato la funzione non in modo corretto? \":cry:\" ---------------------------------------- AUTORE: 482 DATA :14/02/2007 - 16:00:05 ---------------------------------------- boh..detto cosi' a me sembra un problema di visualizzazioen del grafico, ma finchè non posti il vi è difficile capire dove sta l'inghippo. potresti estrarre solo la parte di generazione dell'onda e grafico che non dovrebbero occupare molto. ---------------------------------------- AUTORE: 1441 DATA :14/02/2007 - 16:05:02 ---------------------------------------- non potresti darmi la tua mail che ti invio il file? ---------------------------------------- AUTORE: 1441 DATA :14/02/2007 - 16:06:35 ---------------------------------------- vediamo se da questo file ci capisci qualcosa ---------------------------------------- AUTORE: 1441 DATA :16/02/2007 - 13:20:13 ---------------------------------------- nessuno sa aiutarmi allora? ---------------------------------------- AUTORE: 482 DATA :16/02/2007 - 16:22:14 ---------------------------------------- scusami am non ho avuto tempo di risponderti! Cmq vedendo il pdf che hai mandato non si puo 'capire niente, devi mandar eil vi! Vedendolo dal pdf non sembra sia un vi molto grosso come dimensione! prova a mandarmelo via email giuseppe.cattaneo(at)tenax(dot)net ---------------------------------------- ================================================================================ Aggiungere dei simoli alla listbox ================================================================================ AUTORE: 13 DATA :14/02/2007 - 10:50:09 ---------------------------------------- Salve a tutti Avrei l'esigenza di aggiungere a una listbox dei simboli custom, ho visto che cio' e' possibile farlo con Labview 8 , mi chiedevo se c'era un metodo per farlo anche con Labview 7.1 .Ho provato a cercare , ma senza risultato. ringrazio anticipatamente nel bene e nel male . \":-)\" Saluti a tutt i membri del forum. \":D\" ---------------------------------------- AUTORE: 645 DATA :14/02/2007 - 16:23:01 ---------------------------------------- Tramite Property Node puoi lavorare sull'array di simboli... non ricordo esattamente come ma prova a guardare le voci dei Property Node della lista. Per scegliere il simbolo, se non sbaglio, clicchi con il tasto destro sulla lista e c'è una voce simboli dove scegliere... scusa ma non ricordo esattamente, però mi pare che si facesse così. Appena posso provo anche io. ---------------------------------------- AUTORE: 13 DATA :14/02/2007 - 16:56:48 ---------------------------------------- Ti ringrazio ma la mia richiesta e' leggermente diversa. So come utilizzare i simboli proprietari del controllo , ma volevo sapere se come in labview 8 e' possibile usarne di personali, magari leggendo un file bmp o jpg. Saluti Peppe ---------------------------------------- AUTORE: 645 DATA :14/02/2007 - 17:48:30 ---------------------------------------- Ah... scusa... ok è ufficiale: mi sto rimbambendo!! \":)\" !! Ho cercato sul sito National ma non trovo nulla... ---------------------------------------- AUTORE: 384 DATA :15/02/2007 - 09:28:58 ---------------------------------------- Che io sappia, in LV7.1 si possono solo utilizzare i simboli predefiniti. ---------------------------------------- ================================================================================ Data binding read/write ================================================================================ AUTORE: 927 DATA :14/02/2007 - 13:25:41 ---------------------------------------- Ho notato (ma potrei sbagliarmi) che quando un controllo ha un collegamento di tipo read/write a una shared var, all'avvio del VI per prima cosa il controllo SCRIVE sulla shared var il proprio valore, cioè in genere il default. Io vorrei invece che prima il controllo leggesse la shared e ne assumesse il valore, e la modificasse solo in seguito, se e quando l'utente cambia il valore del controllo. Per ora come soluzione ho pensato di bindere i controlli in sola lettura, così all'inizio assumono il valore della shared, e dopo qualche secondo dall'avvio binderli in R/W. Ma forse avete qualche idea migliore... ---------------------------------------- ================================================================================ Plots dello stesso colore e con la stessa interpolazione? ================================================================================ AUTORE: 1235 DATA :14/02/2007 - 16:04:16 ---------------------------------------- Ho un 1D array di dimensione fissa ma molto lunga e, dovendolo graficare su Waveform Graph ma su una finestra fissa, faccio il reshape del 1D array in un 2D array di dimensione variabile da determinare in base alla larghezza della finestra da visualizzare. E fin qui ci sono! Ora pero' vorrei: 1) che i vari plots che si vanno a sovrapporre siano tutti di colore bianco e non multicolore come invece accade! 2) e che i vari plots usino tutti la medesima interpolazione! Purtroppo il fatto che la larghezza della finestra deve essere variabile non posso farfe questo andando a settare i vari plots dalle Properties del Waveform Graph. Possibile che nella versione 7.1 non esiste una Property Node che faccia scegliere lo stesso colore e interpolazione per tutti i plots? Grazie, Giorgio. ---------------------------------------- AUTORE: 645 DATA :14/02/2007 - 16:30:53 ---------------------------------------- So che è una risposta vaga... ma esiste un Property Node che ti permette di modificare le proprietà del disegno nel grafico. Devi partire dalla voce "Active Plot" o scegliere il plot che vuoi modificare (sono numerati in base all'ordine in legenda...). Prova a guardare... ---------------------------------------- AUTORE: 1235 DATA :14/02/2007 - 19:20:35 ---------------------------------------- Mah! Io non riesco mica a farlo proprio come dici tu! Grazie comunque! Giorgio. ---------------------------------------- AUTORE: 384 DATA :15/02/2007 - 09:37:08 ---------------------------------------- Guarda l'esempio allegato. ---------------------------------------- ================================================================================ Blink while Alarm On ================================================================================ AUTORE: 927 DATA :14/02/2007 - 16:28:35 ---------------------------------------- Ho la 8.2 col modulo DSC e volevo utilizzare quella funzionalità. Però ho notato che i controlli non lampeggiano correttamente in caso di allarme (mentre se li faccio lampeggiare a mano con la proprietà Blinking, è tutto OK). Poi ho scoperto che l'help dice... LabVIEW 8.2 includes the following enhancements to the Data Binding page of the Properties dialog box of all front panel controls: (...) * The Blink while Alarm On checkbox no longer appears. Bè, anzitutto, qui appare eccome \":roll:\" Cmq a quanto pare non funziona perchè non è più supportato? E questo me lo chiama un "enhancement"?!? \":(\" E' un regresso o c'è un metodo alternativo che non ho visto, per lampeggiare in caso di allarme? ---------------------------------------- AUTORE: 927 DATA :06/03/2007 - 08:52:53 ---------------------------------------- Per la cronaca: il problema con Blink while Alarm On si manifesta solo quando i controlli sono customizzati con typedef. Il supporto di NI ha riconosciuto il problema e lo risolverà in una prossima versione di Labviù (quindi sembrerebbe che l'opzione non è e non verrà rimossa, a dispetto di quanto dice l'help) ---------------------------------------- ================================================================================ Moving Average ================================================================================ AUTORE: 1662 DATA :15/02/2007 - 08:55:15 ---------------------------------------- Salve a tutti! Il mio problema riguarda il filtro media mobile che ho provato a costruire mediante le icone "smoothing filter coefficient" e "IIR filter". Ora, il filtro sembra funzionare bene ma ha uno spiacevole effetto collaterale:se vado a plottare il segnale in uscita dal filtro così costruito, in ascissa mi compaiono le frequenze, come se si trattasse di uno spettro...qualcuno mi saprebbe dire perchè? Esiste un modo per evitare ciò? Allego un file contenente un esempio del mio problema......grazie per l'attenzione! ---------------------------------------- ================================================================================ Aiuto creazione programma autorimessa ================================================================================ AUTORE: 1843 DATA :15/02/2007 - 18:07:46 ---------------------------------------- Ragazzi aiutatami vi pregoooooooo è una settimana che provo a fare questo programma ma non ci riesco! Ora vi leggo cosa devo fare: Un'autorimessa dispone di due posti per autovetture. Il controllo delle autovetture in ingresso è fatto con una fotocellula F2 e quello in uscita da un'altra fotocella F1 (secondo le specifiche della tabella 2.7). L'ingresso delle autovetture nell'autorimessa è controllato da un semaforo con luce verde (posti disponibili) e luce rossa (posti esauriti). Inizialmente nel garage non sono presenti vetture. Si deve realizzare un sistema in grado di rilevare le vetture che entrano e che escono e che accenda il semaforo verde se sono disponibili posti e rossi se non lo sono. Ragazzi vi prego se pensate si facile o se avete un pò di tempo, potreste farmi questo piccolo programmino e mandarmelo? Vi ringrazio tutti spero e spero che potete aiutarmi p.s Tabella 2.7 F2 F1 Stato del sistema 0 0 Nessun veicolo in entrata o in uscita 0 1 Veicolo in entrata 1 1 Veicolo in entrata e veicolo in uscita 1 0 Veicolo in uscita ---------------------------------------- AUTORE: 482 DATA :16/02/2007 - 07:22:10 ---------------------------------------- ehm... credo che la tua richiesta sia un po' eccessiva non trovi? Non siamo un team di sviluppo software conto terzi AGGRATIS. Se hai qualche difficoltà in uqlache punto specifico occhei, ma svilupparti tutto il software non mi sembra il caso. \":wink:\" ---------------------------------------- AUTORE: 384 DATA :16/02/2007 - 08:57:48 ---------------------------------------- Sono d'accordo con geppo. Per questo ti lascio qualche suggerimento in modo che tu riesca ad iniziare. Il tuo vi dovrà avere un while loop principale che gira ininterrottamente e che si chiuderà con un pulsante di STOP, per terminare l'applicazione. Con uno shift register, mantieni il copnteggio dei posti ocupati. Il numero massimo di posti lo definisci con una costante. Ad ogni "giro" leggi le fotocelule (che puoi simulare inizialmente con dei pulsanti) e quando entra o esce una macchina incrementi e decrementi il conteggio dei posti ocupati, lo compari con il massimo e quidni accendi il semaforo corrispondente. Parti da questo. Poi, se avrai delle difficoltà nell'implementazione, continuiamo con i consigli. ---------------------------------------- AUTORE: 1843 DATA :16/02/2007 - 13:13:55 ---------------------------------------- Scusate avete ragione...intanto ringrazio gyc per l'idea...però vorei specificare che del labview ho solo le nozioni base, non sono molto esperto...cmq adesso del mio progetto sono arrivato a fare il shift register...adesso come proseguo? grazie ragazzi...il mio block diagramm è cosi adesso.. http://h1.ripway.com/Hyper7/progetto.bmp ---------------------------------------- AUTORE: 384 DATA :16/02/2007 - 14:23:40 ---------------------------------------- Devi rivedere un pò il tuo diagramma. Lo shift register va bene ma non è collegato bene: non è il "giro" del loop che conta i posteggi! Il conteggio viene incrementato [b:2x579ej1][u:2x579ej1]SE[/u:2x579ej1][/b:2x579ej1] entra una macchina e decrementato [b:2x579ej1][u:2x579ej1]SE[/u:2x579ej1][/b:2x579ej1] ne esce una. (non dimenticare che puoi simulare l'ingresso e l'uscita delle macchine con dei pulsanti). ---------------------------------------- AUTORE: 1843 DATA :16/02/2007 - 15:06:50 ---------------------------------------- e il loop dei conteggi dove devo collegarlo? ---------------------------------------- AUTORE: 1843 DATA :16/02/2007 - 15:16:01 ---------------------------------------- scusa ancora gyc, ma riesci a farmi una scaletta delle robe che devo fare perchè detto cosi superficilamente non capisco molto... \":cry:\" ---------------------------------------- AUTORE: 384 DATA :16/02/2007 - 15:51:53 ---------------------------------------- É proprio questo il punto! Ti conviene che sia tu stesso a fare queste cose, anche se con dei consigli o suggerimenti da altri. Cosí lo imparerai di sicuro, mentre se lo faccio io, tu potrai anche capire, ma fra non molto l'avrai dimenticato. Prova tu a fare un diagramma di flusso. E poi leggi bene ciò che ho scritto. Ho sottolineato alcune parole perchè esse sono indicazioni precise per cose che devi fare nel tuo vi. Un'altro suggerimento. Nel help di LabView, cerca negli esempi per "task". Sotto "Fundamentals", "Loops and Structures" troverai molti esempi semplici di cui puoi vedere il diagramma, farlo girare, modificare, ecc., compreso riutilizzarlo per i tuoi scopi (mi raccomando, non salvare eventuali modifiche sugli originali stessi!). ---------------------------------------- AUTORE: 1843 DATA :16/02/2007 - 16:49:23 ---------------------------------------- perfavore gyc solo una breve istruzione dettagliata su come andare avanti....alla fine è solo un compito per scuola...e il labview normalmente non è il programma che ci insegnano ---------------------------------------- AUTORE: 384 DATA :16/02/2007 - 17:32:39 ---------------------------------------- Allora, il "filo" che esce dallo shift register da sinistra entra in quello di destra, attraversandi due case, dove devi inserire in uno l'incremento quando entra una macchina (caso true) e nell'altro il decremento (caso true) quando esce una macchina. All'ingresso booleano di ogni case devi collegare le rispettive "fotocellule". E con questi suggerimenti già sei anche in grado di pensare a come fare il semaforo. ---------------------------------------- AUTORE: 1843 DATA :16/02/2007 - 19:21:40 ---------------------------------------- gyc mi dispiace ma non capisco...mi sa che lascierò perdere \":cry:\" ---------------------------------------- AUTORE: 4 DATA :16/02/2007 - 19:32:37 ---------------------------------------- [b:1cssiowh]Ok può anche bastare, la discussione la chiudo forzatamente qui.[/b:1cssiowh] E' la prima volta che lo faccio in oltre 3 anni di attività di ILVG ma questo è veramente troppo. Non si può pretendere di avere la "pappa pronta" in questa maniera, almeno non qui. Non è questo lo scopo del forum. Lo scopo è discutere, condividere, supportare non servire su piatto d'argento soluzioni belle e che pronte. Inoltre credo che chiedere e pretendere con tale insistenza sia veramente inaccettabile. Spero che non si ripeta più. ---------------------------------------- ================================================================================ Interfacciarsi con un GENERATORE AGILENT E4438C ================================================================================ AUTORE: 1805 DATA :16/02/2007 - 10:54:22 ---------------------------------------- Mi servirebbe un pò di codice per manovrare da remoto un generatore E4438C dell'agilent, mi servirebbe poter lasciare ampiezza invariata e far variare in un ciclo le frequenze da 100kHz a 1GHz Chi mi aiuta??? ---------------------------------------- AUTORE: 645 DATA :16/02/2007 - 11:18:10 ---------------------------------------- Hai dato un'occhiata al manuale dello strumento? C'è la parte sul controllo remoto... una serie di stringhe da inviare allo strumento per ottenere valori o attuare procedure... poi inserisci tutto in un VI. Ma prima cerca i comandi! ---------------------------------------- AUTORE: 1805 DATA :16/02/2007 - 11:45:19 ---------------------------------------- Si ho visto però speravo qualcuno avesse qualcosa di già compilato per velocizzare. Poi è un pò complicato notavo.... ---------------------------------------- ================================================================================ Acquisizione multipla e output ================================================================================ AUTORE: 1826 DATA :16/02/2007 - 13:25:39 ---------------------------------------- Ciao, vi spiego che devo fare.Devo identificare un processo fisico attraverso un ingresso a gradino, per fare questo utilizzo il compactdaq.Praticamente ho due canali per l'input occupati(uno per acquisire la risposta del sistema e laltro per acquisire il segnale d'ingresso) ed il canale di output per sparare il voltaggio.Devo fare in modo che per un certo numero di campioni acquisisco i dati dai due canali e mando l'output(1V), poi fatto questo cambio l'outpout(5V) e naturalmente continuo ad acquisire.Ad esempio acquisisco per 3 secondi ad 1V e 7 secondi a 5V. Non so proprio come fare mi potreste aiutare? THX ---------------------------------------- ================================================================================ Copiare pagine di un Tab Control in maniera dinamica ================================================================================ AUTORE: 645 DATA :16/02/2007 - 14:03:26 ---------------------------------------- Sto lavorando con un Tab Control e devo creare tante pagine quanti sono gli elementi di un vettore acquisito a parte. Sto lavorando con i Property Node e ho qualche difficoltà: la label delle pagine non può essere modificata in maniera dinamica quando il VI è in esecuzione (ma credo che per questo punto non ci sia niente da fare) e poi non creo davvero delle pagine nuove ma semplicemente rendo visibili pagine che prima erano invisibili. Se io volessi creare una pagina nuova copiandola dalla precedente (copiandola perchè ogni pagina deve avere alcuni controlli e alcuni indicatori dello stesso tipo ripetuti sulle varie pagine) si potrebbe fare? ---------------------------------------- AUTORE: 645 DATA :23/02/2007 - 08:16:02 ---------------------------------------- Ho contattato il servizio National e mi hanno detto che non si può fare: non è possibile generare pagine e controlli durante l'esecuzione del VI. Tra le soluzioni c'è quella di generare all'inizio tante pagine (più di quelle che possono servire) e poi renderle visibili con i Property Node durante l'esecuzione. ---------------------------------------- AUTORE: 4 DATA :23/02/2007 - 08:29:24 ---------------------------------------- Ufficialmente non si può creare del codice programaticamente ma... leggi [url=http://www.ilvg.it/forum/viewtopic.php?t=271:3ciibx6w]questa interessante discusione[/url:3ciibx6w] Ciao ---------------------------------------- AUTORE: 113 DATA :23/02/2007 - 09:55:42 ---------------------------------------- Per qualcosa di simile ho utilizzato dei controlli e indicatori che dovecono vedersi su tutte le pagine posti sul Tab ma svincolati da esso, in pratica non erano inglobati in una pagina ma sono sovrapposti al tab. In questo modo si evita di duplicarli per ogni pagina. Poi ovviamente li gestivo differentemente in base alla pagina selezionata. Ti allego un esempio di quello che voglio dire. Non so se a te l'idea può andar bene... P.S. per avere un controllo sul tab ma non inglobato in una pagina devi crearlo fuori e poi trascinarci il tab sopra... \":o\" ---------------------------------------- AUTORE: 645 DATA :23/02/2007 - 10:00:45 ---------------------------------------- Vi spiego la mia situazione: ho un TabControl, su ogni pagina ho un grafico e una listbox. Nella listbox vengono caricati una serie di nomi di grandezze rilevate (si tratta di un sistema di monitoraggio, tipo datalogger). L'utente seleziona il nome della grandezza e nel grafico vengono caricati i dati corrispondenti alla grandezza selezionata. Cliccando nuovamente sulla grandezza selezionata questa viene deselezionata nella lista (scompare il simbolo di check vicino) e i dati corrispondenti vengono eliminati dal grafico. Per non fare troppi vettori e sistemi vari per ricordarsi cosa è stato selezionato e cosa no ho deciso di ripetere i controlli sulle pagine del TabControl. In questo modo ho sempre il pieno controllo di quello che succede anche passando da una pagina all'altra senza dover fare operazioni particolari. I dati e le grandezze con cui ho a che fare sono tante e ho preferito questa soluzione. Che dite? ---------------------------------------- AUTORE: 113 DATA :23/02/2007 - 10:12:57 ---------------------------------------- DIMENTICAVO \":!:\" E' vero che le label delle pagine non possono essere cambiate in esecuzione, ma: - Per ogni pagina del tab puoi settare la proprietà Indipendent Label a false (per default è true) - a quel punto usa la property Tab Caption che può essere settata in write e divertiti! In pratica quando Indipendent Label è false la label resta la stessa, ma viene visualizzata la caption che può essere cambiata \":o\" Lo so, è contorto, ma mica l'ho fatto io LV, lo uso solo... \":wink:\" ---------------------------------------- AUTORE: 645 DATA :23/02/2007 - 10:48:15 ---------------------------------------- Mi han detto che si può giocare anche con il Property Node "Page Labels Display Visible?" che crea un controllo (tipo Ring) dove l'utente può scegliere quale pagina visualizzare. Praticamente giochi con la grafica per mascherare pagine... \":)\" ... proverò... ---------------------------------------- AUTORE: 113 DATA :23/02/2007 - 10:54:01 ---------------------------------------- Tutte le mie affermazioni riguardo il settaggio della Indipendent label devono essere invertite: true-->false e viceversa (andavo di fretta...) Dopo aver letto il tuo ultimo post, ho modificato il mio esempio e lo allego. Come vedi non vado a duplicare la listbox e il grafico, può essere un'idea? ---------------------------------------- ================================================================================ USB vs LabVIEW 6.0.2 ================================================================================ AUTORE: 724 DATA :16/02/2007 - 15:43:38 ---------------------------------------- Vorrei acquistare un oscilloscopio Tektronix TDS1012B con interfaccia USB. Sul sito NI esistono i driver per la versione 8.0 ma io ho la 6.0.2. Ho inoltre tantissimo sw già scritto per un TDS1012 con interfaccia GPIB. In Tektronix non mi sanno dire nulla circa la compatibilità con labview 6.0.2 in NI cer4cano di vendermi la 8.2 Sapete qualche info in più? Grazie, Cesare ---------------------------------------- AUTORE: 724 DATA :19/02/2007 - 08:30:42 ---------------------------------------- Nessuno ha mai usato le VISA per poter comunicare con una porta USB sotto labview 6.0.2? Dal sito NI leggo che dalla rev.3.0 le VISA supportano la USB ma non si fa riferimento alla revisione di Labview. Devo per forza passare alla 8.2 per poter comunicare con uno strumento con USB? Ciao, Ghianda ---------------------------------------- AUTORE: 384 DATA :20/02/2007 - 12:23:52 ---------------------------------------- [quote="ghianda":1quozjdz]Nessuno ha mai usato le VISA per poter comunicare con una porta USB sotto labview 6.0.2? Dal sito NI leggo che dalla rev.3.0 le VISA supportano la USB ma non si fa riferimento alla revisione di Labview. Devo per forza passare alla 8.2 per poter comunicare con uno strumento con USB? [/quote:1quozjdz] Io l'ho fatto con la 7.0 a la 7.1. Per versioni anteriori non ho mai provato. Comunque il motore VISA non dipende strettamente dalla versione di LV. ---------------------------------------- AUTORE: 724 DATA :20/02/2007 - 12:34:01 ---------------------------------------- NI tramite il distributtore di Tektronix ha risposto che le VISA 3.0, e quindi la USB, sonno supportate da labview 7.0 e superiori. I driver rilasciati da NI per il TDS1012B sono forniti nella versione 8. Dovrò upgradare alla 8.2. Ciao, Ghianda ---------------------------------------- AUTORE: 724 DATA :07/03/2007 - 12:51:34 ---------------------------------------- Ho insatllato la versione 8.2 e i driver tektronix. Tutto bene. Fuziona anche con la versione 6.0.2. Grazie NI \":evil:\" ---------------------------------------- ================================================================================ Potenza Reattiva ed intearmonica ================================================================================ AUTORE: 955 DATA :18/02/2007 - 07:51:55 ---------------------------------------- Salve mi serva capire come posso convertire questi integrali utilizzati per le misure di potenza in sommatorie...io sono riuscito a risolvere quello della potenza attiva ma non riesco per la potenza reattiva!mi date una mano? Vi posto la mia soluzione per la potenza attiva così magari è più chiaro quello che intendo... Questo è quanto dice la norma IEEE 1459-2000 [url=http://imageshack.us:2kbxeuar][img:2kbxeuar]http://img72.imageshack.us/img72/2395/norma2xc2ti6.png[/img:2kbxeuar][/url:2kbxeuar] le formule che mi servono sono quelle segnate in rosso. Ora per quanto rigurda la potenza attiva l'integrale l'ho convertito in sommatoria nel modo seguente: 1/(k*T) * sommatoria (v*i) dove k*T l'ho posto pari proprio al numero degli elementi del mio segnale. ovvero in labview risulta: [url=http://imageshack.us:2kbxeuar][img:2kbxeuar]http://img228.imageshack.us/img228/2923/potenzaattivaea3.jpg[/img:2kbxeuar][/url:2kbxeuar] Come si fa per la potenza reattiva? ho provato con 2*pigreco*f/(k*T)* sommatoria di i * sommatoria di v ma non funziona... mi aiutate? mi serve urgentemente per stasera e non so proprio come fare \":cry:\" ---------------------------------------- ================================================================================ Labview su Ubuntu Linux ================================================================================ AUTORE: 1853 DATA :20/02/2007 - 10:34:54 ---------------------------------------- Buongiorno a tutti, dopo una breve chiacchierata con Geppo sono venuto a conoscenza di questo forum, e lui stesso mi ha consigliato di inotrare questa breve guida da me realizzata per installare Labview su Ubuntu. Sottolineo che ho installato labview 8.0 su ubuntu 6.10, poterbbero esserci problemi legati a versioni diverse di labview o ubuntu. Spero comunque che possa essere d'aiuto a tutti utilizzatori di distro Debian Based che vogliono programmare in labview. Complimenti per il forum, ne farò largo uso!!! \"8)\" \"8)\" INSTALLARE LABVIEW 8.0 su UBUNTU 6.10 Scaricare ed installare il pacchetto ALIEN Scaricare ed installare il pacchetto libdb1-compat Copiare i pacchetti rpm a cui si è interessati su una directory temporanea, ad esempio /tmp/labview/cdrom Portare gli rpm in pacchetti deb digitando da terminale -->> "sudo alien -k NOMEPACCHETTO.rmp" Installare i pacchetti debian digitando da terminale -->> "dpkg -i NOMEPACCHETTO.deb" Da terminale digitare ancora -->> "aptitude install libosmesa6" Creare un symlink digitando da terminale -->> "ln -s /usr/lib/libOSMesa16.so.6 /usr/lib/libOSMesa.so.4" Individuare la cartella LabVIEW-8.0 e lanciare il programma, ad esempio digitando da terminale -->> "./usr/local/natinst/LabVIEW-8.0/labview &" Incrociare le dita Ringraziare Luigi. \":roll:\" ---------------------------------------- AUTORE: 4 DATA :20/02/2007 - 10:43:47 ---------------------------------------- Grazie Luigi, proverò sulla mia ubuntu 6.06, mi diresti che diavolo è il pacchetto ALIEN? Ciao, ---------------------------------------- AUTORE: 1853 DATA :20/02/2007 - 10:56:52 ---------------------------------------- Premetto che non sono assolutamente un mago di linux...anzi sono un quasi principiante. Alien è un programma che permette di importare pacchetti di distro diverse e trasformarli in pacchetti deb, quindi utilizzabili dalla tua ubuntu. Questo è possibile perchè il codice sorgente è uguale per tutti (spero che questa mia ultima affermazione non sia una c*****a) quando digiti "sudo alien -k NOMEPACCHETTO.rmp" alien prende il pacchetto rpm in questione e lo rielabora in pacchettoinquestione.deb cià \":wink:\" ---------------------------------------- AUTORE: 1313 DATA :22/02/2007 - 13:09:34 ---------------------------------------- Grande Luigi!!, da un pò voglio installare labview sotto linux, però un pò per pigrizia un pò perchè in ufficio si usa xp, ho sempre rimandato. Adesso ho formattato il pc ed invece di debian ho installato kubuntu e sono pronto a vedere che succede. Per caso hai provato ad installare anche DaqMx??? Cris ---------------------------------------- AUTORE: 1853 DATA :23/02/2007 - 19:01:32 ---------------------------------------- Ciao! no fino ad ora non avevo installato nulla a parte labview 8.0, ma un paio di giorni provo ad installare driver per gpib (ti rispondo su topic dedicato) Luigi ---------------------------------------- AUTORE: 1853 DATA :23/02/2007 - 19:10:20 ---------------------------------------- Scusate il doppio post...dimenticavo di chiedere se tutto è andato bene seguendo la mia guida! strano...anzi...quasi impossibile che nessuno abbia avuto problemi! \":o\" \":o\" ---------------------------------------- AUTORE: 482 DATA :26/02/2007 - 07:09:47 ---------------------------------------- eheh..beh io l'unico "problema" che ho avuto installando LabVIEW su Kubuntu è stato che nella conversione, per alcuni pacchetti da rpm a deb ho covuto aggiungere l'opzione --scripts. In piu' non sono proprio sicuro sicuro che sia installato tutto correttamente...non vorrei che ci fosse una sequenza con la quale installare i vari pacchetti per essere sicuri che vengano installati tutti. In ongi caso per il momento labVIEW funziona, i driver DAQ li devo ancora testare. Al momento li ho installati ma il file nilsdaq che dovrebbe essere quello da lanciare per vedere le periferiche collegate non ce l'ho..quindi qualcos anon funziona... ---------------------------------------- AUTORE: 1137 DATA :26/02/2007 - 08:58:47 ---------------------------------------- ciao, rispolvero una proposta di qualche mese fa, ritagliandola su questo argomento. Riusciamo a raccogliere una sintesi delle discussioni come queste su una scheda o sul wiki? ---------------------------------------- AUTORE: 1313 DATA :28/02/2007 - 14:19:50 ---------------------------------------- Ragazzi, ho installato Labview7 sotto kubuntu, ed a parte dover installare i pacchetti per l'rpm ho installato libd1-compat. E sembra funzionare tutto bene. Adesso sto combattendo con l'installazione di DaqMx Base poichè richiede i sorgenti. Cris ---------------------------------------- AUTORE: 1030 DATA :04/03/2007 - 22:28:52 ---------------------------------------- Ciao ragazzi, sono passato ad Ubuntu da qualche giorno ed è arrivato, anche per me, il momento di installare LabVIEW (versione 7.1). Ho però un problema: quando dal Terminale lancio il comando ./INSTALL ottengo questo errore [i:10alfl6m]bash: ./INSTALL: Permesso negato.[/i:10alfl6m] Ho provato a lanciare l'installazione sia da cdrom che da una cartella dell'hardisk, dove ho copiato il contenuto del cd, ma il problema si ripete. E' capitato anche a qualcuno di voi? ciao ---------------------------------------- AUTORE: 482 DATA :05/03/2007 - 07:20:54 ---------------------------------------- ..ehm...non puoi lanciare il comando INSTALL. O meglio, anche se riesci a lanciarlo, cmq avresti dei pacchetti rpm che non puoi gestire, quindi leggi il rpimo post e segui le istruzioni! \":wink:\" ---------------------------------------- AUTORE: 247 DATA :05/03/2007 - 09:49:17 ---------------------------------------- Ciao, [quote="Mark Of Life":2qg3u6nn]Ho però un problema: quando dal Terminale lancio il comando ./INSTALL ottengo questo errore bash: ./INSTALL: Permesso negato. Ho provato a lanciare l'installazione sia da cdrom che da una cartella dell'hardisk, dove ho copiato il contenuto del cd, ma il problema si ripete. E' capitato anche a qualcuno di voi? [/quote:2qg3u6nn] Hai cambiato i permessi per il file che vuoi eseguire? Devi renderlo eseguibile con il comando "chmod +x <nome_file>", altrimenti nisba! BYE. ---------------------------------------- AUTORE: 1313 DATA :05/03/2007 - 12:54:49 ---------------------------------------- Sotto Kubuntu, e sotto altre versioni di linux sdevi usare il comando sudo quindi: $sudo ./INSTALL e lui ti chiederà la password. In sostanza devi essere l'amministratore (il root) per eseguire un installazione. Ciao, Cris ---------------------------------------- AUTORE: 482 DATA :05/03/2007 - 14:16:41 ---------------------------------------- Si ok per la questione sudo, gliela stavo scrivendo anche io.. il problema è che lo script INSTALL lancia l'installazione dei pacchetti RPM che in Ubuntu non sono supportati, quindi è inutile anche che ti sbatti a lanciare il comando Install \":wink:\" ---------------------------------------- AUTORE: 1368 DATA :05/03/2007 - 14:40:17 ---------------------------------------- Ciao a tutti, pure io sono dei vostri \":D\" \":D\" \":D\" devo dire che labview su ubuntu e un fulmine \"8)\" \"8)\" cmq smanettando un po ho visto che compila sempre per windows e possibile??? ho visto male?? ciao ---------------------------------------- AUTORE: 1030 DATA :05/03/2007 - 21:48:42 ---------------------------------------- Ok, il comando ./INSTALL non lo posso usare, me ne sono convinto \":)\" Ma ho ancora dei problemi \":cry:\" Ho seguito la procedura della trasformazione dei pacchetti .rpm in .deb. Ho trovato la cartella LV in particolare nel mio caso è: /usr/local/lv71/linux/gnome/gnome/apps/Applications Dentro questa directory c'è un file [i:24clp5ro]labview[/i:24clp5ro] Se lancio però l'applicazione col comando suggerito all'inizio da Luigi (pur incrociando le dita!) l'applicazione non parte e viene fuori questo errore: -bash: /usr/local/lv71/linux/gnome/gnome/apps/Applications/labview: Nessun file o directory In realtà il file c'è! Riproverò la procedura... Nel frattempo ho trovato questo link: [url:24clp5ro]http://forums.ni.com/ni/board/message?board.id=170&message.id=141823[/url:24clp5ro] ciao ciao ---------------------------------------- AUTORE: 1368 DATA :06/03/2007 - 07:14:10 ---------------------------------------- prova a controllare i permessi del file, magari non e impostato come eseguibile ls -la ..... ---------------------------------------- AUTORE: 4 DATA :10/03/2007 - 20:02:41 ---------------------------------------- [quote="ziounclesi":3k1tr9uk]ciao, rispolvero una proposta di qualche mese fa, ritagliandola su questo argomento. Riusciamo a raccogliere una sintesi delle discussioni come queste su una scheda o sul wiki?[/quote:3k1tr9uk] proposta molto buona, ci si sta lavorando, il wiki di ilvg e' gia' installato e accessibile a [url:3k1tr9uk]http://www.ilvg.it/wiki[/url:3k1tr9uk] Sentitevi liberi di usarlo! Ciao ---------------------------------------- AUTORE: 2191 DATA :06/07/2007 - 13:04:03 ---------------------------------------- Alien non mi funziona, penso. ho copiato gli .rpm, fatto chmod +x per ognuno e poi alien -k rpmfile.rpm Mi vengono fuori questi allegati: ls labview71-appbuild-7.1 labview71-rte-7.1 labview71-appbuild-7.1-1.i386.rpm labview71-rte-7.1-1.i386.rpm labview71-core-7.1 labview71-vxi-7.1 labview71-core-7.1-1.i386.rpm labview71-vxi-7.1-1.i386.rpm labview71-desktop-7.1 labview-rte-aal-1.0 labview71-desktop-7.1-1.i386.rpm labview-rte-aal-1.0-1.i386.rpm labview71-examples-7.1 nicvirte-5.0.1 labview71-examples-7.1-1.i386.rpm nicvirte-5.0.1-2.i386.rpm labview71-help-7.1 niexfinder-base-1.0 labview71-help-7.1-1.i386.rpm niexfinder-base-1.0-2.i386.rpm labview71-pro-7.1 niexfinder-labview71-1.0 labview71-pro-7.1-1.i386.rpm niexfinder-labview71-1.0-2.i386.rpm labview71-ref-7.1 labview71-ref-7.1-1.i386.rpm ed ogni volta che facevo alien -k c'era un errore. Per esempio: sudo alien -k niexfinder-labview71-1.0-2.i386.rpm chmod: cannot access `niexfinder-labview71-1.0/./usr/local/share/natinst/example': No such file or directory chmod: cannot access `finder': No such file or directory Package build failed. Here's the log: dh_testdir dh_testdir dh_testroot dh_clean -k -d dh_installdirs dh_installdocs dh_installchangelogs find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \ xargs -0 -r -i cp -a {} debian/niexfinder-labview71 dh_compress dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dpkg-gencontrol: error: current build architecture amd64 does not appear in package's list (i386) dh_gencontrol: command returned error code 65280 make: *** [binary-arch] Error 1 find: niexfinder-labview71-1.0: No such file or directory alien -k labview71-examples-7.1-1.i386.rpm^[[A^[[A^[[APackage build failed. Here's the log: dh_testdir dh_testdir dh_testroot dh_clean -k -d dh_installdirs dh_installdocs dh_installchangelogs find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \ xargs -0 -r -i cp -a {} debian/labview71-examples dh_compress dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dpkg-gencontrol: error: current build architecture amd64 does not appear in package's list (i386) dh_gencontrol: command returned error code 65280 make: *** [binary-arch] Error 1 find: labview71-examples-7.1: No such file or directory boh! ale ---------------------------------------- AUTORE: 2248 DATA :10/10/2007 - 14:01:19 ---------------------------------------- Ciao a tutti... anche io sono amante del pinguino ed in particolare sono un debiannizzato... Sotto windows usavo Labview e alla fine sono dovuto passare a labview anche sotto linux. Innanzitutto ringrazio davvero Gigi e Geppo... per la loro immensa guida... davvero NOTEVOLE!!! Tutavia vorrei chiedere alcune cose... Intanto ho una Deb ETCH e sto installando LabView 8.2 1) il pacchetto labview82-core_8.2.1-1_i386.deb mi da il seguente errore: [quote:394eud19] dpkg -i labview82-core_8.2.1-1_i386.deb Selezionato il pacchetto labview82-core, che non lo era. (Lettura del database ... 182933 file e directory attualmente installati.) Spacchetto labview82-core (da labview82-core_8.2.1-1_i386.deb) ... Configuro labview82-core (8.2.1-1) ... sort: Warning: "+number" syntax is deprecated, please use "-k number"[/quote:394eud19] che vuol dire??? 2) I pacchetti niexfinder-base_1.0-7_i386.deb e niexfinder-labview82_1.0-7_i386.deb mi danno i seguenti errori: [quote:394eud19] dpkg -i niexfinder-labview82_1.0-7_i386.deb Selezionato il pacchetto niexfinder-labview82, che non lo era. (Lettura del database ... 203889 file e directory attualmente installati.) Spacchetto niexfinder-labview82 (da niexfinder-labview82_1.0-7_i386.deb) ... ERROR: No NI shared directory exists. dpkg: errore processando niexfinder-labview82_1.0-7_i386.deb (--install): il sottoprocesso pre-installation script ha restituito un codice di errore 1 Sono occorsi degli errori processando: niexfinder-labview82_1.0-7_i386.deb [/quote:394eud19] [quote:394eud19]dpkg -i niexfinder-base_1.0-7_i386.deb Selezionato il pacchetto niexfinder-base, che non lo era. (Lettura del database ... 203889 file e directory attualmente installati.) Spacchetto niexfinder-base (da niexfinder-base_1.0-7_i386.deb) ... ERROR: No NI shared directory exists. dpkg: errore processando niexfinder-base_1.0-7_i386.deb (--install): il sottoprocesso pre-installation script ha restituito un codice di errore 1 Sono occorsi degli errori processando: niexfinder-base_1.0-7_i386.deb[/quote:394eud19] cioè??? 3) le cartelle NI-488-2.5.1 e NI-VISA-4.1 cosa contengono? e cosa devo installare per poter remotizare delle porte USB e RS232??? Grazie in anticipo Teclis ---------------------------------------- AUTORE: 482 DATA :10/10/2007 - 14:07:07 ---------------------------------------- Gli errori 2 e 3 sono dipendenti dal primo. Non essendo riuscito ad installare il core, mancano le directory diappoggio per le altre cose. Il primo errore ti dice come risolverlo, cioè aggiungere al comando iniziale -k number. Anche io avevo ottenuto un errore simile su unaltra distribuzione e cosi' facendo era andato tutto a posto. Non ti so pero' dire il motivo dell'errore. Per quanto riguarda USB e rs232 credo proprio che tu debba installare le librerie Visa...prova poi facci sapere! ...ma ciaoo! Geppo! ---------------------------------------- AUTORE: 2248 DATA :10/10/2007 - 15:51:08 ---------------------------------------- [quote="gepponline":105y30xw]Gli errori 2 e 3 sono dipendenti dal primo. Non essendo riuscito ad installare il core, mancano le directory diappoggio per le altre cose. Il primo errore ti dice come risolverlo, cioè aggiungere al comando iniziale -k number. Anche io avevo ottenuto un errore simile su unaltra distribuzione e cosi' facendo era andato tutto a posto. Non ti so pero' dire il motivo dell'errore. Per quanto riguarda USB e rs232 credo proprio che tu debba installare le librerie Visa...prova poi facci sapere! ...ma ciaoo! Geppo![/quote:105y30xw] mi sembra strano che il core non sia istallato, dato che LabView parte... e cmq io ho anche messo dpkg -i -k number labview82-core_8.2.1-1_i386.deb ma mi dice che l'opzione -k non è riconosciuta... ---------------------------------------- AUTORE: 1124 DATA :12/10/2007 - 18:12:43 ---------------------------------------- Ciao a tutti. Trovo la questione estremamente interessante e proverò ad installare LV su Linux. Io uso prevalentemente LV7.1 e rilascio applicativi costruiti mediante l'Application Builder: secondo voi potrebbe funzionare anche in ambiente Linux? Da ignorante ritengo che fin tanto che si usa LV per scrivere programmi che non usano risorse hardware come porte seriali il tutto funzioni, altrimenti ci si incasina abrutly. Sarei contento di ricevere sonora smentita. Bye ---------------------------------------- AUTORE: 482 DATA :15/10/2007 - 07:10:43 ---------------------------------------- Cosa intendi con "potrebbe funzionare"? Se parli di un eseguibile per winows su linux allora no (a meno che non emuli il SO). Per linux c'e' la sua distribuzione apposta e il suo runtime. I vi sono indipendenti dalla piattaforma ma gli eseguibili no. ---------------------------------------- ================================================================================ build executable su project field point rt ================================================================================ AUTORE: 595 DATA :20/02/2007 - 14:30:22 ---------------------------------------- Chiedo un'aiuto in quanto non riesco a creare un built executable del mio project che legge un Field Point 2015. Il project è costituito da 2 VI, uno sul Pc e l'altro sul FP. Qundo creo il build executable da Build specification mi creo un file in cui dovrei trovare un eseguibile Labview ed invece trovo un file rt exe che il mio pc non sa come aprire. Aiuto ---------------------------------------- ================================================================================ acq wheatstone bridge samples ================================================================================ AUTORE: 1801 DATA :20/02/2007 - 16:01:10 ---------------------------------------- Salve a tutti,sto utilizzando questo esempio di Labview per acquisire dati di un estensimetro,ma non riesco a capire come fare,visto che è la mia prima volta che lo uso.Mi serve per concludere la tesi.Vi prego aiutatemi! ---------------------------------------- AUTORE: 384 DATA :22/02/2007 - 12:15:04 ---------------------------------------- Detto cosí, non credo ti si possa aiutare. Prova a descriverci un pò più in dettaglio le tue difficoltá: cosa non capisci, come collegare il sensore, come far girare l'esempio, come impostare la scheda... Come vedi ci sono innumerevoli dettagli che potrebbero aver necessità di qualche consiglio. ---------------------------------------- AUTORE: 1801 DATA :22/02/2007 - 13:00:53 ---------------------------------------- In pratica non riesco a leggere l'estensimetro,poi non so come si settano i vari indici,tipo max e min in volt,da associare agli spostamenti max e min in mm.Come azzerare il segnale iniziale...insomma sto all'inizio e non ci sto capendo tanto. ---------------------------------------- AUTORE: 384 DATA :22/02/2007 - 14:05:18 ---------------------------------------- [quote="lumags":2xvy3zox]In pratica non riesco a leggere l'estensimetro [/quote:2xvy3zox] Vuol dire che il blocco di lettura da errore? [quote="lumags":2xvy3zox]poi non so come si settano i vari indici,tipo max e min in volt,da associare agli spostamenti max e min in mm. [/quote:2xvy3zox] Questo è una caratteristica dell'estensimetro stesso; dovresti ricavarla dal suo [i:2xvy3zox]data sheet[/i:2xvy3zox]. Su come impostarli, ci sono due modi: 1) definisci un canale con il MAX (Measurement and Automation explorer) e lí c'è una schermata in cui si inseriscono appunto questi valori (e cioè, quanto volts per quanti mm, max e min); 2) aquisisci la tensione dall'estensimetro e poi fai tu la conversione con la semplice equazione della retta - Y=mX+b - dove X è la tensione letta e quindi in Y ritrovi i mm. [quote="lumags":2xvy3zox]Come azzerare il segnale iniziale...insomma sto all'inizio e non ci sto capendo tanto.[/quote:2xvy3zox] Se l'estensimetro è in equilibrio, la tensione inisiale dovrebbe essere zero di sè. Se non lo è vuol dire che parti già da una condizione di pre-deformazione. A questo punto mi chiedo - e sopratutto, ti devi chiedere - se è giusto azzerare artificialmente questo valore iniziale. ---------------------------------------- AUTORE: 1801 DATA :25/02/2007 - 21:50:20 ---------------------------------------- grazie mille,mercoledi`andro`in laboratorio a provare e poi ti dico se ci sono dei problemi.grazie ---------------------------------------- AUTORE: 1801 DATA :28/02/2007 - 10:19:45 ---------------------------------------- per quanto riguarda l'azzeramento,questo deve essere fatto all'inizio della prova,quindi anche se l'estensimetro non è azzerato,lo devo azzerrare.ma non so come si fa. ---------------------------------------- AUTORE: 1801 DATA :01/03/2007 - 09:25:35 ---------------------------------------- Per adesso riesco a leggere il potenziometro.Ma non riesco a capire come settare la scala, cioè nel file di esempio non so che parametri mettere. In "channel parameters" cosa sono i valori minimi e massimi ? Nel "sensor scaling parameters" sto usando linear,cosa devo mettere in M e in B(ho capito che sono il coeff angolare e l'intercetta di una retta).E' la prima volta che uso il programma,il prof della tesi mi ha dato un manuale base, ma in pratica non c'è scritto niente a riguardo.Infine la tensione di eccitazione incide sulla lettura? Penso di si,io ho messo 5 volt, ma mi da valori strani che non oscillano intorno allo zero. Sapete se c'è qualche manuale che mi potrebbe aiutare?Grazie ---------------------------------------- AUTORE: 384 DATA :01/03/2007 - 10:19:25 ---------------------------------------- [quote="lumags":63ecsobg]Per adesso riesco a leggere il potenziometro.Ma non riesco a capire come settare la scala, cioè nel file di esempio non so che parametri mettere. In "channel parameters" cosa sono i valori minimi e massimi ?[/quote:63ecsobg] Dimmi il nome del vi in modo che ci dia un'occhiata. [quote="lumags":63ecsobg] Nel "sensor scaling parameters" sto usando linear,cosa devo mettere in M e in B(ho capito che sono il coeff angolare e l'intercetta di una retta).[/quote:63ecsobg] Appunto. Devi ricavare dalle caratteristiche del estensimetro l'uscita massima e minima in funzione della deformazione massima e minima e con quei 4 parametri dedurre l'equazione della retta Y=mX+b. [quote="lumags":63ecsobg]E' la prima volta che uso il programma,il prof della tesi mi ha dato un manuale base, ma in pratica non c'è scritto niente a riguardo.Infine la tensione di eccitazione incide sulla lettura? Penso di si,io ho messo 5 volt, ma mi da valori strani che non oscillano intorno allo zero. Sapete se c'è qualche manuale che mi potrebbe aiutare?Grazie[/quote:63ecsobg] L'eccitazione NON incide sull'uscita, ma ha una sua influenza su altri parametri. Guarda un pò questi link: -[url=http://zone.ni.com/devzone/cda/tut/p/id/3642:63ecsobg]N.I.[/url:63ecsobg] -[url=http://www.emant.com/index.php?tid=325007:63ecsobg]Emanant[/url:63ecsobg] -[url=http://en.wikipedia.org/wiki/Strain_gauge:63ecsobg]Wikipedia (1)[/url:63ecsobg] -[url=http://en.wikipedia.org/wiki/Wheatstone_bridge:63ecsobg]Wikipedia (2)[/url:63ecsobg] ---------------------------------------- AUTORE: 1801 DATA :01/03/2007 - 10:27:37 ---------------------------------------- questo è il vi che sto utilizzando ---------------------------------------- AUTORE: 1801 DATA :01/03/2007 - 10:29:31 ---------------------------------------- per adesso so solo che devo utilizzare due estensimetri,uno ha una corsa di 5,4 cm e l'altro di 1,4 cm. ---------------------------------------- AUTORE: 384 DATA :01/03/2007 - 11:23:24 ---------------------------------------- [quote="lumags":3sym5tfm]questo è il vi che sto utilizzando[/quote:3sym5tfm] Ragazzi, non ho la 8.2 installata. \":wink:\" Chi me lo converte in 7.1? (please) ---------------------------------------- AUTORE: 1801 DATA :01/03/2007 - 15:35:28 ---------------------------------------- se mi dici come fare lo converto io domani mattina ---------------------------------------- AUTORE: 384 DATA :01/03/2007 - 16:04:17 ---------------------------------------- Mi potrai aiutare se hai anche la versione 8.0 installata. Questo perchè ogni versione di LabView permette di salvare i VI solo per la versione immediatamente precedente. Quindi la 8.2 salva in 8.0 e poi si deve usare la 8.0 per salvare in 7.1. Per salvare un vi per la versione precedente c'è una funzione nel menu "File". Nella 8.0 e 8.2 si chiama "Save for previous version"; nella 7.1 si chiama "Save with options" salvo poi indicare, fra le varie opzioni quella di salvare per la versione precedente. ---------------------------------------- AUTORE: 384 DATA :01/03/2007 - 16:27:51 ---------------------------------------- Ragazi, Lasciate perdere la conversione. Questo VI esiste anche negli esempi di 7.1 Lumags: -Questo esempio presuppone l'utilizzo di hardware SCXI. É proprio questo che stai utilizzando? -Nei parametri di canale, devi scegliere il canale dove hai collegato l'estensimetro e che che hai configurato nel MAX. Se non hai fatto questo, dovrai specificare il canale del SCXI con la classica sintassi (obx!scx!mdx!x:x - come descrito nel [url=http://www.ni.com/pdf/manuals/322661a.pdf:76l3qeg9]manuale[/url:76l3qeg9]) e la massima e minima tensione che ci si aspetta, quindi a seconda del tuo estensimetro potrebbe essere +- 1 volt! -Nei parametri di scala, scegli "Map Ranges" ed hai già tutto pronto: basta inserire le tensioni Max e Min e le corrispondenti deformazioni Max e Min. - ---------------------------------------- AUTORE: 384 DATA :01/03/2007 - 16:30:00 ---------------------------------------- Ah, dimenticavo: ti sará molto utile leggere sui manuali della tua scheda come collegare elettricamente l'estensimetro e come eccitarlo. Se non li hai cartacei, sul sito NI li trovi - basta cercare con il codice della scheda oppure con "strai gauge". Alcuni dei link di un mio messaggio precedente già versano su questo. ---------------------------------------- AUTORE: 384 DATA :01/03/2007 - 16:31:09 ---------------------------------------- [quote="gyc":1gy498u7]"strai gauge"[/quote:1gy498u7] Sorry, volevo scrivere "strain gauge"! ---------------------------------------- AUTORE: 1801 DATA :01/03/2007 - 17:36:59 ---------------------------------------- grazie mille domani vedro' come fare all'uni ,cmq non è un estensimetro, ma un potenziometro lineare,ho sbagliato io, scusa,ma essendo di ing civile per me queste cose sono un po' difficili!!!Grazie mille! ---------------------------------------- AUTORE: 1801 DATA :02/03/2007 - 13:21:38 ---------------------------------------- l'hardware è unscxi 1520,che sul manuale mi dice che sia adatto agli strin-gauge,ma è adatto anche al potenziometro lineare?bisogna adattare qualcosa o cambiare hardware? ---------------------------------------- ================================================================================ Labview 8.0 + Ubuntu 6.10 + GPIB ================================================================================ AUTORE: 1853 DATA :20/02/2007 - 18:24:09 ---------------------------------------- Sto affrontando un problema un po' particolare, spero che qualcuno possa aiutarmi. Devo pilotare degli strumenti attraverso scheda GPIB (ho sia una GPIB-USB-HS che una PCI-GPIB entrambe National), cosa che ho sempre fatto da Windows con Labview 8.0. Adesso però sto usando una Ubuntu 6.10 e qualcosa non funziona. ogni volta che provo a dialogare in qualsiasi modo tramite gpib mi viene restituito "error 0" (senza commenti) e il programma si blocca. se provo ad eseguire gpibexplorer --> troubleshooting dice che ni488.2 non è installato correttamente (credo dipenda dal fatto che la distro non è rpm) sono sicuro però che la scheda con driver open source di linux funziona (c'è un comodo programma di test per verificare). qualcuno ha idee? suggerimenti? prove da fare? grazie 1000 ---------------------------------------- AUTORE: 1313 DATA :22/02/2007 - 13:14:06 ---------------------------------------- Premesso che non sono un esperto, tu oltre a labview hai installato i driver daqmx o simili per il tuo daq?? Mi spiego per esempio sotto windows, per i daq Ni installo daqmx per la seriale installo un pacchetto chiamato visa341runtime. (uso ancora labview 7.1. Spero ti siano utili le mie osservazioni. Cris ---------------------------------------- AUTORE: 1313 DATA :22/02/2007 - 13:20:28 ---------------------------------------- Attenzione facendo un giro sul sito della ni ho trovato il driver unix che , penso ti serva. questo è il link: http://digital.ni.com/softlib.nsf/webca ... =132060_US cmq devi vedere: support -> driver and updates -> current version -> gpio Ciao, Cris ---------------------------------------- AUTORE: 1853 DATA :23/02/2007 - 19:08:30 ---------------------------------------- Ciao Cris grazie per i suggerimenti, ma alla fine ho risolto in altro modo...o meglio...NON ho risolto in altro modo. Ovvero sul portatile (con Ubuntu 6.10) lascio solo labview 8.0 per programmare, sul pc del laboratorio (quello che si interfaccia agli strumenti) ho messo Mandrake 10.1, distro supportata dalla National, e tutto sembra funzionare bene. Comunque resta una grande scocciatura, soprattutto perchè le distro debian sono a mio personalissimo parere molto meglio delle RPM (più user friendly, più documentazione etc etc...). conferma ne è il fatto che Ubuntu sta dilagando tra le distro più diffuse. Mi consolo pensando di essere uno dei pochi a far girare labview con Compiz!! (cosa assolutamente inutile e pericolosa per gli occhi!) \":wink:\" \":wink:\" ---------------------------------------- ================================================================================ visualizzazione Database ================================================================================ AUTORE: 932 DATA :20/02/2007 - 21:41:33 ---------------------------------------- Ciao a tutti, chi per cortesia puo' rispondermi alle seguenti domande: 1) E' possibile, chiaramente dopo aver connesso un Database, visualizzare il contenuto ([b:2npsizye]non tramite array[/b:2npsizye]) tramite un oggetto sullo stile del datagrid di Visual Basic? Se si cosa posso utilizzare e come? 2) qualcuno mi può fornire un semplice esempio di utilizzo della MD5 dll in LabView \":?:\" grazie Roby \":?:\" ---------------------------------------- AUTORE: 384 DATA :22/02/2007 - 12:11:15 ---------------------------------------- [quote="Roby":1j3riuhg]1) E' possibile, chiaramente dopo aver connesso un Database, visualizzare il contenuto ([b:1j3riuhg]non tramite array[/b:1j3riuhg]) tramite un oggetto sullo stile del datagrid di Visual Basic? Se si cosa posso utilizzare e come? 2) qualcuno mi può fornire un semplice esempio di utilizzo della MD5 dll in LabView [/quote:1j3riuhg] Quello che faccio io è definire dei cluster (typedef) con esattamente lo stesso layout del record della tabella a cui devo accedere e visualizzo (nel caso) l'array di questi cluster, che poi è anche come ottengo i dati. In alcuni casi, per migliorare l'interazione con i dati, converto questo record in stringhe e visualizzo il tutto in una tabella di LabView, che ha qualche funzionalità in più (doppio click, selezione, ecc) rispetto al classi array. Su MD5 non ho niente, mi dispiace. ---------------------------------------- AUTORE: 645 DATA :22/02/2007 - 15:35:38 ---------------------------------------- Puoi usare alcune funzioni che ti mettono in comunicazione con il database tramite DSN e visualizzano i dati in una tabella. Nella sezione articoli del sito ce ne sono alcuni sui database: prova a dare un'occhiata. ---------------------------------------- ================================================================================ Salvataggio dati ================================================================================ AUTORE: 516 DATA :20/02/2007 - 22:56:03 ---------------------------------------- Ciao a tutti Vi scrivo per esporvi il seguente problema , ho realizzato un progetto che controlla una macchina a trazione ora da quando si avvia la procedura ogni 200 ms devo memorizzare i miei dati in un file txt , e fino a qui tutto ok . Il problema è che è come se questa memorizzazione mi assorbisse tutte le "energie" del pc mi spiego visualizzo i dati anche su di un grafico che posso cancellare e qui che noto questo problema quando premo il pulsante cancella grafico non mi appare il messaggio che mi chiede conferma , tendo a precisare che ho creato più cicli paralleli . Potete illuminarmi riguardo a questo incoveniente ? Grazie Mille a tutti quanti Sergio ---------------------------------------- AUTORE: 1050 DATA :22/02/2007 - 08:28:29 ---------------------------------------- Non penso che il salvataggio dati su file ti possa creare questo problema se non quando il file è diventato molto grande: in tal caso conviene aggiungere un controllo sulla dimensione del file e crearne uno nuovo quando questa supera un limite prefissato. Sospetto piuttosto che il problema risieda nella temporizzazione dei cicli paralleli (hai assegnato le giuste "priorità" ad ogni ciclo usando la vi "wait"?). Ciao ---------------------------------------- AUTORE: 516 DATA :22/02/2007 - 18:05:50 ---------------------------------------- Ciao Arghh!!!!! che sia qui il problema io in realtà non ho usato la wait ma bensì la wait until next è qui l'errore ? inoltre più il tempo che imposto è basso più la priorità è alta giusto ? mi puoi fare un pò di chiarezza sulla differenza che passa tra wait and wait until next ? Grazie Mille Sergio ---------------------------------------- AUTORE: 1165 DATA :22/02/2007 - 23:16:06 ---------------------------------------- in un altro topic (ma adesso non mi ricordo dove) mi senbra di aver spiegato la differenza fra i due tipi di wait .. prova a fare un ricerca sul forum .. e in bocca al lupo ---------------------------------------- AUTORE: 516 DATA :23/02/2007 - 07:43:07 ---------------------------------------- ok Grazie Mille Ciao Sergio ---------------------------------------- AUTORE: 645 DATA :23/02/2007 - 08:18:18 ---------------------------------------- Il file sul quale salvi i dati non viene aperto e chiuso tutte le volte vero? Altrimenti il pc impiega più risorse... è sufficiente aprire il file all'inizio e chiuderlo alla fine inserendo nel ciclo solo la fase di memorizzazione. E attenzione che i cicli siano temporizzati altrimenti le risorse del pc vengono occupate (ma questo mi sembra di capire che sia già stato sistemato...). ---------------------------------------- AUTORE: 1030 DATA :23/02/2007 - 08:53:36 ---------------------------------------- Provo a spiegare la differenza tra le due funzioni di Wait che LabVIEW mette a disposizione. La [i:331m8o4j]Wait (ms)[/i:331m8o4j] aspetta, al meno, il tempo che tu specifichi in ingresso, iniziando a contare dalla fine dell'iterazione precedente. La [i:331m8o4j]Wait Until Next...[/i:331m8o4j] fa si invece che LabVIEW conti i millisecondi trascorsi a partire dall'inizio dell'iterazione precedente, e che aspetti fino quando il contatore non arrivi ad un multiplo del tuo ingresso. Se hai un'operazione che impiega 100 ms e hai un [i:331m8o4j]Wait(ms)[/i:331m8o4j] con ingresso pari a 500 la prima iterazione parte da 0 la seconda parte a 100+500=600 ms la terza a 100+600=700 ms e così via. Con la [i:331m8o4j]Wait Until Next...[/i:331m8o4j] le iterazioni partiranno a 0,a 500, a 1000 indipendentemente da quanto tempo l'iterazione stessa impiega ad essere eseguita. Spero sia un pò più chiaro. Ciao Ciao ---------------------------------------- AUTORE: 516 DATA :23/02/2007 - 22:10:19 ---------------------------------------- Grazie Mille a entrambi ora faccio delle prove Ciao Sergio ---------------------------------------- ================================================================================ creare eseguibile di un project ================================================================================ AUTORE: 595 DATA :21/02/2007 - 09:05:24 ---------------------------------------- precedentemente nessuno mi ha risposto quindi provo a semplificare la domanda: come si costruisce un exe di un project che gestisce un field point RT? dovrei montarlo su un notebook in cui non è installato Labview. Dal project non riesco a fare il build dei due VI (uno è sul PC l'altro è sul FP). Ho provato ad usare i due build specification ma non funziona ---------------------------------------- AUTORE: 927 DATA :26/02/2007 - 09:03:28 ---------------------------------------- Se sul pc di destinazione non è installato Labviù, sicuramente non basta creare l'exe, devi farti un installer (che include anche il run-time engine): clicca col destro su build specifications -> New -> Installer. Per la parte RT, non ci ho ancora lavorato con la versione 8, però la strada dovrebbe essere: clicca col dx su Project -> New -> Targets and devices (il fieldpoint dev'esser già connesso), seleziona il FP, e ti appare un nuovo alberello con il suo Build specifications personale ---------------------------------------- ================================================================================ Identificare il CD-ROM drive ================================================================================ AUTORE: 660 DATA :22/02/2007 - 11:26:19 ---------------------------------------- Ciao a tutti, il mio problema è questo: realizzo un software con LV (8.2) e ne faccio eseguibile ed installer; ora al termine dell'installazione da CD viene lanciato un altro eseguibile che dovrebbe copiarmi un file particolare da una cartella presente nel CD alla cartella in cui il programma è stato installato. Qualcuno di voi sa come fare per identificare quale è il "nome" del drive? Oppure qualcuno sa come fare ad identificare il nome della cartella da cui il sistema sta installando i file? Spero di essere stato abbastanza chiaro. Ciao ---------------------------------------- AUTORE: 927 DATA :26/02/2007 - 08:42:31 ---------------------------------------- Non l'ho mai provato ma mi risulta che quando crei un installatore puoi anche impostarlo per copiare file accessori qualunque, basta metterli in Source Files -> Dinamic VIs and Support files. In alternativa, se l'"altro eseguibile" è sempre un programma labviù fatto da te, al suo interno puoi usare il blocchetto "Current VI's path" (sotto File I/O -> File costants) per conoscere il proprio percorso ---------------------------------------- AUTORE: 660 DATA :27/02/2007 - 08:03:29 ---------------------------------------- Hai ragione, puoi far copiare dei file durante l'installazione, il problema è che questi file devono essere inseriti nel progetto, quindi nell'eseguibile, quindi l'installer li copia dove l'eseguibile gli dice. Questo già lo uso e ti assicuro che funziona. Il mio problema è che non vorrei ricompilare eseguibile ed installer ogni volta e pertanto i file non possono essere inseriti nel progetto e da qui ilproblema di identificare il lettore CD (da cui in teoria dovrebbe essere effettuata l'installazione) o, ancor meglio, il percorso da cui sto lanciando l'installer. Ciao ---------------------------------------- AUTORE: 660 DATA :27/02/2007 - 08:06:13 ---------------------------------------- Scusa, ma ho perso mezza risposta. Per la seconda parte purtroppo il current VI path già lo uso, il problema è che il file che viene lanciato è proprio inserito nel progetto e durante l'installazione viene copiato nella cartella di supporto, per cui mi restituisce questo percorso \":(\" ciao ---------------------------------------- AUTORE: 645 DATA :27/02/2007 - 09:18:21 ---------------------------------------- Ho dato un'occhiata al sito della National e non ho trovato nulla... prova a contattare il servizio d'assistenza della National con una mail... ---------------------------------------- AUTORE: 927 DATA :27/02/2007 - 10:19:21 ---------------------------------------- Una possibile soluzione (teribbile): Dai un nome particolare alla cartella di origine per esser sicuro che sia unica, poi inizi a provare: d:\xxxx e:\xxxx f:\xxxx ... Finchè non ne trovi una per cui File/Directory Info non dà errore \":lol:\" Un'altra possibile soluzione (atroce): Crea un .bat, chiamiamolo setup.bat, che l'utente userà per installare. Setup.bat per prima cosa copia il famoso file in una cartella fissa, per esempio (in Windows) %temp% ti dà la cartella dei file temporanei. Poi lancia l'installer, che adesso sa dove andare a prendere il file! ---------------------------------------- AUTORE: 660 DATA :27/02/2007 - 16:50:25 ---------------------------------------- Vi ringrazio per le idee, anche per quelle terribili \":P\" (ne ho usate spesso). Ho postato la richiesta anche sul sito LAVA e devo provare la soluzione che mi hanno proposto. Se funziona ve la rigiro. Ciao ---------------------------------------- AUTORE: 113 DATA :27/02/2007 - 16:50:29 ---------------------------------------- Questa vi che allego utilizza la kernel32.dll (dll di sistema) per determinare il nome delle unità logiche del pc. Alberto ---------------------------------------- ================================================================================ ROI da Match Pattern ================================================================================ AUTORE: 1628 DATA :22/02/2007 - 15:58:25 ---------------------------------------- ciao...vorrei farvi una domanda...cè il modo di utilizzare la regione di spazio ottenuta attraverso un pattern matching come ROI?facendo un pattern matching ottengo un array di cluster di 5 elementi chiamato match...io ho però bisogno di utilizzare la zona di match trovata come ROI...come posso fare? ---------------------------------------- AUTORE: 482 DATA :22/02/2007 - 16:23:19 ---------------------------------------- Credo che l'array "bounding Box" prensente nel cluster "matches" altro non sia che le coordinate di un rettangolo. Prendi quelle coordinate e l'angolo, e le tasformi in una roi con la funzione apposita per trasformare "rectangle to ROI". ---------------------------------------- AUTORE: 1628 DATA :22/02/2007 - 17:42:25 ---------------------------------------- ho già fatto quella prova...il problema è che se il mio template si trova in una posizione differente la roi,pur avendo le stesse coordinta e lo stesso angolo del bounding box non rimane ancorata ma si stringe ruotando il campione e non riesco a capire il perchè... ---------------------------------------- AUTORE: 482 DATA :23/02/2007 - 06:56:12 ---------------------------------------- ?? si stringe ruotandolo? Sei sicuro che le coordinate top,left right bottom siano nella giusta posizione? ---------------------------------------- AUTORE: 1628 DATA :23/02/2007 - 15:46:43 ---------------------------------------- si prorpio così....le coordinte sono assolutamente giuste...la cosa strana è che quando arriva a una angolazione di 220 gradi va bene,e anche con una angolazione di 180 gradi...non riesco proprio a capire xkè con altre angolazioni il rettangolo non si ancora alla mia immagine di template.... ---------------------------------------- AUTORE: 384 DATA :23/02/2007 - 17:42:43 ---------------------------------------- Quando dici [quote:dbf1bjgj] non si ancora alla mia immagine di template....[/quote:dbf1bjgj] cosa intendi? Il rettangolo che risulta dal matching è riferito all'immagine dove è stato trovato il template, non all'immagine del template stesso. ---------------------------------------- AUTORE: 1628 DATA :26/02/2007 - 09:30:58 ---------------------------------------- il mio problema è che pur avendo le coordinate top-left bottom-right e angle del bounding box il mio rettangolo,ruotando l'immagine di template, non segue l'immagine di template,o meglio,la rotazione del mio rettangolo va bene,il problema sono le dimensioni in quanto il rettangolo tende a stringersi aumentando la rotazione...poi arrivato alle rotazione di 180 gradi il rettangolo si riposiziona in maniera esatta sul mio template...quale potrebbe essere il problema? ---------------------------------------- AUTORE: 384 DATA :26/02/2007 - 10:29:08 ---------------------------------------- Secondo me non stai facendo un uso corretto delle coordinate top-left e bottom-right. Attenzione che queste definiscono un rettangolo nel quale è iscritto quell'altro relativo al template trovato, con orientamento definito dall'angolo ed i cui vertici cadono sui lati del primo. Capisco che detto cosí sembra criptico, ma non ho sottomano modo di fare un disegno. Ed ecco perchè a +180 gradi tutto si riallinea! ---------------------------------------- ================================================================================ Utilizzo MD5 in LabView ================================================================================ AUTORE: 932 DATA :22/02/2007 - 16:48:23 ---------------------------------------- ciao a Tutti, c'è qualcuno che mi può fornire un semplice esempio sull'utilizzo di MD5 in LabView? grazie ciao -- Roby ---------------------------------------- AUTORE: 4 DATA :23/02/2007 - 14:20:32 ---------------------------------------- Ciao esiste una libreria di openg.org che implementa la codifica MD5. Devi scaricare il VIPM da Openg.org e poi installare l package oglib_md5-x.x-x Ciao ---------------------------------------- AUTORE: 932 DATA :23/02/2007 - 19:45:14 ---------------------------------------- \":|\" ci guardo grazie. ciao --Roby ---------------------------------------- AUTORE: 927 DATA :26/02/2007 - 08:30:44 ---------------------------------------- ma in primis, che versione di labviù hai? Perchè nella 8 c'è già bella e pronta una funzione, MD5Checksum File nella tavolozza File I/O -> Advanced File Functions, che calcola l'MD5 di un file e probabilmente è tutto ciò che ti serve ---------------------------------------- ================================================================================ Ridimensionamento immagine ================================================================================ AUTORE: 1381 DATA :22/02/2007 - 20:22:00 ---------------------------------------- Salve a tutti. Il mio programma carica da disco un immagine jpeg e la visualizza in un indicatore Picture di dimensioni fisse e senza scrollbar. L'indicatore è di dimensioni modeste e vorrei che le immagini caricate vengano ridimensionate in modo da essere visualizzate completamente nel Picture. Nella palette di funzioni grafiche non c'è niente del tipo "resize picture" e non so proprio se si possa fare e in caso, come.. Grazie in anticipo Nicola ---------------------------------------- AUTORE: 1165 DATA :22/02/2007 - 21:29:43 ---------------------------------------- Questo vi da downloadare che mi aveva gentilmente inviato nicola tempo fa potrebbe fare al caso tuo? viewtopic.php?p=9165&highlight=#9165 ---------------------------------------- AUTORE: 1381 DATA :23/02/2007 - 13:02:49 ---------------------------------------- Si grazie sembrava utile ma il mio problema è diverso, forse perchè mi sono spiegato male nel mio messaggio originario. Il mio problema non è tanto quello di visualizzare l'immagine ridimensionata ma proprio di ottenere una copia ridimensionata dell'immagine. Per quello che ne so, il valore che viene restituito dal controllo picture non cambia in base allo zoomfactor no? Come faccio ad ottenere un'immagine ridimensionata (e quindi più leggera)? ---------------------------------------- AUTORE: 113 DATA :23/02/2007 - 14:28:17 ---------------------------------------- E' un problema già affrontato in questo thread: viewtopic.php?t=928&highlight= ---------------------------------------- ================================================================================ segnale mediamente piacevole ================================================================================ AUTORE: 1441 DATA :23/02/2007 - 15:53:22 ---------------------------------------- campiono un segnale di forza in tempo reale. Ho bisogno di applicare una media a questo segnale ogni per esempio 50 ms. Esiste una funzione in LV che riesce a fare questo? ---------------------------------------- AUTORE: 247 DATA :24/02/2007 - 11:58:48 ---------------------------------------- Ciao, lo puoi fare indirettamente, sai a quale freq campioni, deduci il numero di valori generati in 50 ms e una volta letti quelli ne fai la media. ...ma che titolo hai scelto??!?!??! mah...va beh non c'è proprio più religione \";-)\"1 BYE. ---------------------------------------- AUTORE: 1441 DATA :25/02/2007 - 11:07:18 ---------------------------------------- no io ho bisogno di farlo subito perchè il segnale a video deve essere in tempo reale. Una persona deve vedendo quel segnale da lei generato seguire un target a video. Siccome le variazioni possono essere continue e sensibili il segnale risulta molto variabile e quindi crea disturbo a chi cerca di eseguire le prova. Pertanto facendo la media il segnale sarebbe meno "disturbato"... Esiste un modo per farla immediatamente? ---------------------------------------- AUTORE: 1030 DATA :25/02/2007 - 13:00:59 ---------------------------------------- Ma che intendi con "ho bisogno di farlo subito"? Se fai la media dei punti acquisiti ogni 50ms (come ha detto Apollon) vuol dire che visualizzi 20 punti al secondo(stai applicando il più semplice dei filtri Passa-Basso). Non dovresti assolutamente notare ritardo. Qual è la freq. di campionamento del tuo sistema? Ciao ciao ---------------------------------------- AUTORE: 384 DATA :26/02/2007 - 08:04:10 ---------------------------------------- Esistono le funzioni "point-by-point" che ti permettono di fare la media mobile. Guarda nella palette: "Analyze/Point By Point/Probability and Statistics PtByPt" ---------------------------------------- AUTORE: 1441 DATA :26/02/2007 - 15:29:43 ---------------------------------------- la frequenza di campionamento è di 1KHz. Non afferro la soluzione tramite filtro passa basso.... ---------------------------------------- AUTORE: 1030 DATA :26/02/2007 - 16:15:07 ---------------------------------------- Se elabori un segnale attraverso qualsiasi tipo di media vuol dire che stai operando uno smoothing del segnale di ingresso, cioè smussi le discontinuità producendo un segnale dal profilo più dolce. E' un metodo di elaborazione indicato se il rumore è casuale (con media nulla) ed è scorrelato al segnale; in questo caso la media migliora significativamente il rapporto Segnale/Rumore. Fare la media semplice di un tot di punti vuol dire però di fatto ridurre la tua Freq di campionamento iniziale . Se vuoi evitaare questo inconveniente meglio la media mobile. Se non conosci queste tecniche prova a vedere cosa trovi in letteretura. ciao ciao ---------------------------------------- AUTORE: 1441 DATA :26/02/2007 - 16:20:30 ---------------------------------------- io voglio solamente eseguire la media degli ultimi n campio degli ultimi 50 ms. Ovviamente il segnale ora varierà ogni 50 ms. E' esattamente quel che voglio fare. Cosa uso?Quale funzione quale blocchetto di labview? ---------------------------------------- AUTORE: 1441 DATA :26/02/2007 - 16:34:11 ---------------------------------------- il segnale non è rumoroso ma molto ballerino per le sue caratteristiche. Questo fatto di essere ballerino però lo rende di difficile comprensione per chi esegue la prova. quindi se fosse più stabile (con un andamento più dolce) si potrebbe usare meglio per eseguire la prova... vi prego HELPPPPPPPP ---------------------------------------- AUTORE: 1030 DATA :26/02/2007 - 23:19:40 ---------------------------------------- Quando acquisisci i dati memorizzali in un array e controlla la sua dimensione; quando arrivi al numero di punti acquisiti nei 50 ms (a 1KHz saranno 50 sample) sommi i valori e dividi per il num totale(50). Questo sarà il valore medio che visualizzi. A questo punto svuoti l'array e ricominci a riempirlo fin quando arrivi a 50 sample e così via. ciao ---------------------------------------- AUTORE: 1441 DATA :26/02/2007 - 23:27:07 ---------------------------------------- so che non sono tuoi problemi ma...stai parlando con un neofita...cosa significa che crei l'arrai e poi lo svuoti?ora provo a smanettare e vedo se riesco a riempirlo e svuotarlo... \":evil:\" ---------------------------------------- AUTORE: 1441 DATA :28/02/2007 - 23:34:26 ---------------------------------------- nessuno vuole essere un filo più chiaro? ---------------------------------------- ================================================================================ Acquisizione ================================================================================ AUTORE: 1826 DATA :23/02/2007 - 15:54:30 ---------------------------------------- Vorrei sapere qual'è il modo migliore per salvare i dati di una acquisizione.Ad esempio io dovrei campionare un segnale a 100Hz e quindi sto provando ad utilizzare il write measuraments file all' interno di un Timed Loop, però mi accorgo in questo modo che il segnale nn viene campionato realmente a 100hz ma molto meno(al max 12-13 campioni al secondo,invece di 100/sec).Forse dovrei costruirmi un array, inserire i dati al suo interno e poi processarli in seguito???Mi spiegate come si fa?? Vi allego l'immagine del mio acquisizione.vi GRAZIE ---------------------------------------- AUTORE: 1826 DATA :23/02/2007 - 16:00:40 ---------------------------------------- Scusate vi mando il vi ---------------------------------------- AUTORE: 129 DATA :23/02/2007 - 17:21:00 ---------------------------------------- Devi usare un architettura a cicli paralleli. In sostanza metti due while loop; uno più veloce per òl'acquisizione a 100ms del segnale; l'altro lento scarica lentamente i dati su file. Un modo molto pulito è l'utilizzo di una coda per archiviare i dati e prelevarli poi per il salvataggio su file. altrimenti se non hai troppi dati da memorizzare, potresti fare un slvataggio dell'array di valori misurati, al termine del ciclo while. Nella sezione articoli trovi [url=http://www.ilvg.it/forum/download.php?id=297:217cx05k]questo[/url:217cx05k] e [url=http://www.ilvg.it/forum/download.php?id=888:217cx05k]questo[/url:217cx05k]..Forse ti possono essere utili. Nicola ---------------------------------------- ================================================================================ Salvare file su FieldPoint ================================================================================ AUTORE: 1866 DATA :23/02/2007 - 21:52:09 ---------------------------------------- Salve. Sono uno studente alle prime armi con LV e da poco ho iniziato ad utilizzare un modulo FP-2000. Nel PC ho installato Labview 8.2; vorrei chiedervi se è possibile salvare file nel fieldpoint per poterli leggere successivamente e qualin sono le funzioni Labview che permettono di farlo. Grazie, Ciao. ---------------------------------------- AUTORE: 384 DATA :26/02/2007 - 08:12:51 ---------------------------------------- L'FP-2000 non è pensato come un "disco virtuale", quindi, non vi si può salvare il VI per poi riprenderlo. Quello che vi si "scarica" non è una scelta prettamente tua, ma è controllato da LabView quando "compila" il diagramma e prepara tutto quanto necessario per poterlo eseguire su quella piattaforma - in modo simile a ciò che accade quando si prepara un eseguibile per windows. ---------------------------------------- AUTORE: 927 DATA :26/02/2007 - 08:25:20 ---------------------------------------- A me sembra che non stai parlando dei VI ma di file qualunque (di dati)... Nel qual caso non c'è problema, a bordo del Fieldpoint si usano le stesse funzioni che si usano sul PC (Open File eccetera), il Realtime vede il proprio disco come C:\ ---------------------------------------- ================================================================================ Stato di un software remoto ================================================================================ AUTORE: 927 DATA :26/02/2007 - 11:36:58 ---------------------------------------- Dovrei verificare che un certo software sia in esecuzione su una qualche macchina in rete. Pensavo di usare le Shared var: il sw scrive periodicamente una shared var, ad esempio aumenta un contatore ogni secondo; se da remoto non si vede più aumentare il contatore per un certo tempo, vuol dire che il sw è morto (o non è raggiungibile). C'è un metodo più comodo o più standard? Nota: gli altri sw che tengono d'occhio il primo possono essere più di uno contemporaneamente. ---------------------------------------- AUTORE: 4 DATA :10/03/2007 - 17:06:31 ---------------------------------------- direi che quello che dici e' il modo piu' semplice e ache il piu' usato, in pratica e' un watch dog sw. Non dico pero' che e' d'obbligo farlo con le shared variable, ci sono altri 1000 modi se le macchine sono collegate in rete, potresti ad esempio usare una comunicazione UDP, molto semplice da realizzare e veloce e puoi anche andare in broadcast senza problemi. Ciao ---------------------------------------- AUTORE: 927 DATA :12/03/2007 - 08:12:09 ---------------------------------------- Bene, volevo essere sicuro che non stavo vaneggiando \":wink:\" ---------------------------------------- ================================================================================ piùsubVI ================================================================================ AUTORE: 1596 DATA :26/02/2007 - 14:43:55 ---------------------------------------- salve a tutti, volevo chiedervi questo: ho un subVI che richiamo più volte(3 volte) nello stesso VI...abilitando l'opzione 'show front panel when called' vedo un solo front panel e non tutt'e tre...come mai?...c'è qualche altra opzione da inserire?...grazie!!! ---------------------------------------- AUTORE: 927 DATA :26/02/2007 - 14:53:11 ---------------------------------------- Su "Execution" metti "Reentrant" ---------------------------------------- AUTORE: 1596 DATA :26/02/2007 - 15:09:06 ---------------------------------------- grazie snamprogetti....ho fatto come hai detto....ma senza risultati...non riesco a capire cosa dovrebbe fare tale opzione....di sicuro non fa quello che mi aspettavo \":(\" ...p.s.selezionando tale opzione si toglie 'show front panel when called'... ---------------------------------------- AUTORE: 927 DATA :26/02/2007 - 15:28:13 ---------------------------------------- \":o\" da me non lo toglie... che versione hai? Cmq in generale Reentrant Execution significa che un VI può essere chiamato più volte contemporaneamente, e ogni istanza è eseguita indipendentemente in parallelo. Forse c'è qualcos'altro con cui non va d'accordo, hai usato qualche altra opzione particolare? ---------------------------------------- AUTORE: 1596 DATA :26/02/2007 - 15:31:30 ---------------------------------------- ho la versione 6i.....non ho inserito nessun altra opzione... \":o\" ---------------------------------------- AUTORE: 1596 DATA :26/02/2007 - 15:55:17 ---------------------------------------- comunque ho bypassato il problema rinominando con nomi diversi lo stesso subVI e mettendo l'opzione 'show front panel when called' per ogni subVI.... \":?\" ...mah ---------------------------------------- ================================================================================ Error Inserting ActiveX con labview 8.0 ================================================================================ AUTORE: 653 DATA :27/02/2007 - 08:38:53 ---------------------------------------- Ciao a tutti. Ho un Vi che contiene un activeX container al quale ho associato un activeX installato correttamente da Windows. Con LV 7.1 tutto funziona perfettamente. Se installo lo stesso ocx da windows, su un'altra macchina dove ho il LV 8.0, questo mi da errore "ERROR INSERTING ACTIVEX" quando associo l'activeX all'activeX container. Qualcuno sa se è un problema di LV 8.0??? Grazie a tutti.... AG ---------------------------------------- ================================================================================ Labview per scada si o no? ================================================================================ AUTORE: 248 DATA :27/02/2007 - 17:19:36 ---------------------------------------- Ciao a tutti, ho realizzato alcune applicazione di modesta complessità utilizzando labview. Adesso devo realizzare un impianto di media complessità di un processo industriale e mi sto chiedendo fra le varie possibilità, se posso utilizzare labview interfacciato con un plc. Aldilà della possibilità dell'interfacciamento col plc (argomento già trito e ritrito e di cui mi sono già fatto un'idea) la mia domanda volge invece a capire se in termini di sviluppo e di resa finale può valere la pena (considerando poi magari il fatto di avere delle subvi per applicazioni future). Ho sentito parlare del famoso DSC. Tale applicazione è valida? Nell'eventualità dell'utilizzo l'application builder di labview supporta anche questoi applicativo? Ci terrei molto a valutare l'ipotesi di lv perchè mi consentirebbe di non avere costi di licenza per scada che lavorano su un costo/punto visto che il pacchetto labview è privo di licenze run time. Se qualcuno se la sente di darmi qualche consiglio o suggerimento ringrazio in anticipo. ---------------------------------------- AUTORE: 384 DATA :28/02/2007 - 09:52:54 ---------------------------------------- Per quella che è la mia esperienza ti posso dire quanto segue: Per quanto riguarda la comunicazione con i PLC, hai già capito che non è un problema. Per quanto riguarda la riusabilità del codice, oltre ad essere un argomento ancora molto dibattuto in sede accademica, dipende moltissimo da quello che devi fare ora e nel futuro, da quanto si somiglino i vari impianti da monitorare (in termini di "blocchi" costruttivi, proprio come LV stesso) ma sopratutto da come lo fai. LV è un ambiente candidato per eccellenza alla riusabilità. Ciò nonostante - RIPETO - devi fare un'analisi molto accurata dei tuoi sistemi (le analisi fatte bene sono lunghe e difficili!) e devi progettare altrettanto accuratamente il tuo codice PRIMA di iniziare a farlo. Con questo non voglio dire che è l'unico modo - è il modo più giusto, a mio parere. Basandomi sulla mia esperienza cerco sempre di intravvedere la potenziale riusabilità del codice ogni volta che "scrivo" un VI, e bilancio questo con il tempo/sforzo in più che serve per farlo "riusabile" anzichè dedicato. Per quanto riguarda il DSC, è assolutamente valido! Di fatti non è un'applicazione ma un insieme di funzioni (un toolkit) che si aggiunge a LV e ti permetterà di fare molte cose tipiche con meno sforzo; in particolare (ma forse nemmeno il più importante) ha molti "simboli grafici" tipici di impianti industriali, adatti e pensati a creare dei sinottici. Naturalmente potrai creare la tua applicazione finale eseguibile. Attenzione che LV non ha costi di runtime (fino a certe condizioni), ma se usi DSC serve una licenza di runtime. Non è costosa e - sopratutto - non dipende dal numero di "punti i/o". ---------------------------------------- AUTORE: 248 DATA :28/02/2007 - 11:43:17 ---------------------------------------- Più esauriente di così...grazie mille!! \":D\" \":)\" ---------------------------------------- ================================================================================ Puntatore mouse in secondo piano ================================================================================ AUTORE: 1853 DATA :27/02/2007 - 17:46:44 ---------------------------------------- Salve a tutti, oggi ho installato labview su una Mandriva 2006, e ho trovato un "piccolo" problema. in pratica su tutte le finestra di labview (frotn panel, block diagram, gpibexplorer etc etc) il puntatore mouse non si vede...come se fosse in secondo piano rispetto alla finestra. compare quando sale sui menu e sulle barre. qualcuno ha mai avuto lo stesso problema? soluzioni? \":roll:\" \":roll:\" ---------------------------------------- ================================================================================ Problema VI con Mac os x ================================================================================ AUTORE: 1872 DATA :28/02/2007 - 13:11:59 ---------------------------------------- Salve a tutti, ho labview 8.2 per mac os x e lo uso per un esame universitario. Ho notato che durante il laboratorio in cui il docente spiega degli esempi (con labview 8.2 per windows) introduce VI che mancano nella versione per mac e mi trovo quasi sempre a dover osservare quello che fa senza poter provare. Il fatto è, che mancano comunissime VI tipo quella per riprodurre un file audio oppure VI di I/O o ancora la simulazione di una scheda virtuale. Volevo sapere se fosse possibile aggiungere VI al software e dove si potessero rintracciare. Ringrazio in anticipo. Saluti Stefano. ---------------------------------------- AUTORE: 4 DATA :10/03/2007 - 17:09:44 ---------------------------------------- hai installato sul tuo mac i driver DAQ? le funzioni mancanti dovrebbero essere li. Ciao ---------------------------------------- AUTORE: 1872 DATA :21/03/2007 - 16:19:59 ---------------------------------------- Dove li posso trovare i driver DAQ?Ho cercato sul sito NI ma sono a pagamento. Ma è possibile che per Windows e Linux sia tutto disponibile, mentre per mac no?!? Grazie per la disponibilità. Saluti Stefano. ---------------------------------------- ================================================================================ controllo del liquido di una bottiglia ================================================================================ AUTORE: 1669 DATA :28/02/2007 - 16:30:15 ---------------------------------------- Ciao a tutti vorrei qualche aiutino per la realizzazione di un progettino. Si tratta del controllo del liquido all'interno della bottiglia. In pratica, con labview dovrei creare un VI, il quale in ingresso ha l'immagine di una webcam puntata su una bottiglia. Devo controllare l'imbottigliamento tramite la webcam, quindi il liquido che versa all'interno della bottiglia deve essere bloccato con un output dal VI ad una elettrovalvola Chi mi da qualche consiglio..se non sbaglio esiste già un VI nel pacchetto di labview per il controllo tramite cam del voltometro..dove si trovano questi VI Chi mi da qualche consiglio? Grazie A presto ---------------------------------------- AUTORE: 645 DATA :28/02/2007 - 22:08:53 ---------------------------------------- Penso che tu debba controllare l'immagine con il pacchetto Vision (che però io non ho mai usato). Poi in base all'immagine "vista" determini il livello del liquido e decidi se farne entrare altro o bloccare l'elettrovalvola: come comandi l'elettrovalvola? In che modo si interfaccia con il pc? Tramite un segnale in tensione/corrente o ha una sua interfaccia particolare? ---------------------------------------- AUTORE: 1669 DATA :28/02/2007 - 23:13:42 ---------------------------------------- ciao, innanzitutto grazie per la risposta allora questo progettino dovrei farlo nel laboratorio di misure dell'università di bari...che è molto fornito di materiali. Dovrei fare entrare il segnale video tramite una webcam..di cui dovrei avere già i drivers per acquisizione e poi fissando un livello nel VI, quando il liquido arriva al livello fissato (e questo lo vedo sul pc tramite il VI)..dovrebbe comandarmi (output) l'elettrovalvola per stoppae il liquido. IL mio prof..mi fece vedere uno strumento IMAQ che permetteva di fare piu o meno la stessa cosa..ma con un voltmetro...cioè fissando il livello sul voltmetro (visualizzato sul VI), la lancetta arrivava a quel livello e tornava indietro...infatti lui mi disse di studiarmi il funzionamento di questo strumento imaq vision del voltmetro..dicendomi che il funzionamento per la bottiglia dovrebbe essere molto simile. Sai dirmi di più ? Ti ringrazio in anticipo a presto ---------------------------------------- AUTORE: 1669 DATA :01/03/2007 - 09:49:17 ---------------------------------------- [quote="jurij":3v1h9lzu]ciao, innanzitutto grazie per la risposta allora questo progettino dovrei farlo nel laboratorio di misure dell'università di bari...che è molto fornito di materiali. Dovrei fare entrare il segnale video tramite una webcam..di cui dovrei avere già i drivers per acquisizione e poi fissando un livello nel VI, quando il liquido arriva al livello fissato (e questo lo vedo sul pc tramite il VI)..dovrebbe comandarmi (output) l'elettrovalvola per stoppae il liquido. IL mio prof..mi fece vedere uno strumento IMAQ che permetteva di fare piu o meno la stessa cosa..ma con un voltmetro...cioè fissando il livello sul voltmetro (visualizzato sul VI), la lancetta arrivava a quel livello e tornava indietro...infatti lui mi disse di studiarmi il funzionamento di questo strumento imaq vision del voltmetro..dicendomi che il funzionamento per la bottiglia dovrebbe essere molto simile. Sai dirmi di più ? Ti ringrazio in anticipo a presto[/quote:3v1h9lzu] ---------------------------------------- AUTORE: 645 DATA :01/03/2007 - 10:07:56 ---------------------------------------- Io non ho mai usato la libreria IMAQ ma so che contiene alcune funzioni per la gestione della visione in LabView. Guardi la bottiglia, determini il livello del liquido e operi sull'elettrovalvola di conseguenza. Cerca sul sito della National ( www.ni.com ) per un po' di materiale informativo (dovrebbe esserci anche una guida introduttiva) e nel forum ILVG. ---------------------------------------- AUTORE: 384 DATA :01/03/2007 - 10:46:26 ---------------------------------------- Questo [url=http://zone.ni.com/devzone/cda/tut/p/id/4536:35cjfae6]documento[/url:35cjfae6] contiene dei suggerimenti interessanti. ---------------------------------------- AUTORE: 1669 DATA :01/03/2007 - 12:26:31 ---------------------------------------- ok se ho altri problemi conto su di voi grazie di tutto ---------------------------------------- AUTORE: 1520 DATA :01/03/2007 - 12:57:33 ---------------------------------------- Nel Vision builder (che è un addon delle librerie di visione che si trova nella developer suite) c'è già fatto esattamente quello che ti serve. Matteo ---------------------------------------- AUTORE: 1669 DATA :01/03/2007 - 13:04:42 ---------------------------------------- ok grazie di tutto ---------------------------------------- AUTORE: 1669 DATA :06/03/2007 - 11:22:24 ---------------------------------------- Ciao purtroppo non sono riuscito a trovare quello che cerco nel vision builder..mi dici come trovarlo e se posso aprirlo direttamente dal labview 7.1 Mi fate sapere per favore? grazie ---------------------------------------- AUTORE: 1669 DATA :10/03/2007 - 07:19:55 ---------------------------------------- ciao a tutti ho trovato una funzione di Imaq che si chiama "imaq find horizontal edge" Questa mi permette di determinare su una immagine (acquisita)..il margine superiore del liquido (quindi il livello superiore del liquido della bottiglia) il problema è che se io devo impostare un livello massimo oltre il quale il VI mi deve avvisare (con un led luminoso, per esempio) Come posso impostare questo livello sull'immagine? Fatemi sapere e grazie ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 09:58:48 ---------------------------------------- Non è proprio "sull'immagine" che imposterai il limite. Quello che succederà è che rilevi il "edge" del livello, allora sai anche le sue coordinate. Ti basterà comparare la "Y" (ammesso che usi gli assi classci) di quel livello con un altro valore numerico (che ti viene specificato dal prof, per esempio). Al superamento di quel valore, dovrai "chiudere il rubinetto"! ---------------------------------------- AUTORE: 1669 DATA :12/03/2007 - 10:04:35 ---------------------------------------- si infatti è proprio così che l'ho fatto..con il confronto tra le coordinate..ma mi pare poco comprensibile..per questo volevo che queste coordinate (limite) che fisso siano visibili sull'immagine. Cioè vorrei che fissando queste coordinate...esse siano visibili tramite una retta sull'immagine..rpima di inizirae la vera e proprioa aquisizione/controllo ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 10:27:45 ---------------------------------------- E allora non hai che disegnare questa retta (segmento) in "overlay" sull'mmagine acquisita. Ci sono tutte le funzioni pronte per farlo, devi soltanto cercarle (palette "Overlay"). ---------------------------------------- AUTORE: 1669 DATA :12/03/2007 - 10:55:55 ---------------------------------------- si ma devo aquisire la prima immagine..cioè un solo fotogramma perchè se faccio partire il VI che ho realizzato..praticamente questo mi aquisisce immagini in continua. Quindi prima di farlo partire devo "fotografare" la bottiglia e decidere il limite..e poi far partire l'aquisizione ed il controllo. questo perchè se io analizzo la prima immagine per definire il limite..comuque il VI,mentre io traccio la retta sulla prima immagine, continua ad aquisire le immagini ed in teoria il liquido continua a salire..quindi è come se effettuerò il controllo con del liquido già presente nella bottiglia...mi sono spiegato ? grazie ---------------------------------------- AUTORE: 1669 DATA :12/03/2007 - 12:35:00 ---------------------------------------- ok ho risolto ...finito!!! garzie a tutti voi...ILVG A presto ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 12:41:06 ---------------------------------------- Ovviamente devi fare acquisizioni continue e su ognuna delle immagini devi rilevare l'altezza del liquido. Allo stesso modo, devi disegnare la retta che corrisponde al livello massimo - che sai ancora prima di iniziare l'acquisizione - su ogni immagine. Ora non ricordo e non ho modo di provare, ma credo anche che si possano usare diversi overlay su la stessa immagine e quindi dovresti poter disegnare la retta limite una volta sola all'inizio. Qualcuno conferma? ---------------------------------------- ================================================================================ front panel subvi ================================================================================ AUTORE: 1235 DATA :28/02/2007 - 20:44:42 ---------------------------------------- Ho creato una VI che richiama al suo interno una subVI il cui Front panel viene visualizzato tramite un controllo booleano sul front panel della VI principale. La cosa che non riesco proprio a fare è la seguente: vorrei che al click del mouse sul front panel della VI principale passasse in primo piano proprio tale front panel invece di avere in primo piano quello della subVI. Come è possibile con la 7.1 ? Spero di essere stato chiaro! Grazie in anticipo! ---------------------------------------- AUTORE: 645 DATA :28/02/2007 - 22:06:26 ---------------------------------------- Cioè tu clicchi nel VI principale e vorresti che il VI principale rimanesse in primo piano anzichè vedere il Front Panel del VI secondario? ---------------------------------------- AUTORE: 1235 DATA :01/03/2007 - 07:29:01 ---------------------------------------- Si o quanto meno al click sulla VI principale si minimizzi il front panel della subVI facendo restare aperto e quindi in primo piano la VI principale. Grazie! ---------------------------------------- AUTORE: 927 DATA :01/03/2007 - 08:17:04 ---------------------------------------- In che senso il subVI appare "sul" front panel del VI? E' una finestra modale? Forse quello che vuoi tu si ottiene meglio con due finestre normali e indipendenti... ---------------------------------------- AUTORE: 1235 DATA :01/03/2007 - 09:10:27 ---------------------------------------- Ti allego un esempio editato con la 7.1 Scusa il disturbo per la banalità della questione! Grazie e ciao! ---------------------------------------- AUTORE: 927 DATA :01/03/2007 - 09:40:45 ---------------------------------------- Ok tutto chiaro... il fatto è che lui continua ad aprire e riaprire in continuazione il subVI. Metti il subVI dentro un Case, in modo che lo chiama solo quando premi il pulsante; e nel pulsante fai tasto destro -> Mechanical action -> Latch, così quando lo premi non rimane premuto ma dà solo un impulso. ---------------------------------------- AUTORE: 1235 DATA :01/03/2007 - 10:32:19 ---------------------------------------- Purtroppo non posso trasformare il pulsante in un latch in quanto ho bisogno che esso mi dia valori booleani! Grazie comunque! ---------------------------------------- AUTORE: 927 DATA :01/03/2007 - 10:47:43 ---------------------------------------- Comunque il concetto è quello: non devi aprire/chiudere il pannello ad ogni ciclo, ma solo nel momento in cui il pulsante cambia stato. Ti serve un'altra variabile per "ricordare" lo stato al ciclo precedente e confrontarli, conviene usare uno Shift Register ---------------------------------------- AUTORE: 1235 DATA :01/03/2007 - 12:59:56 ---------------------------------------- Mah! Ho fatto dei tentativi ma non riesco proprio ad avere la VI in primo piano o a minimizzare la subVI cliccandoci semplicemente sopra alla VI principale! Help me! ---------------------------------------- ================================================================================ Variabili piuttosto complesse ================================================================================ AUTORE: 737 DATA :01/03/2007 - 10:13:06 ---------------------------------------- Ciao a tutti, ho un dubbio di efficienza, cerco di spiegarmi: nella mia applicazione c'è una globale che contiene 2 variabili identiche. Queste variabili sono piuttosto complesse, cioè sono un array di cluster che contengono altri array di cluster con varie variabili di tipo numerico e stringa. Alcuni subVI, che vengono eseguiti spesso nell'applicazione, utilizzano, di questa globale, a volte una a volte l'altra variabile. Per avere, di ogni subVI un'unica versione, dovrei passargli queste variabili tramite un controllo, ma mi faccio un problema di efficienza (utilizzo di CPU e memoria) nel passare frequentemente questa grossa variabile al subVI, per cui, per il momento, ho fatto 2 subVI identici ma che utilizzano, ognuno, una delle 2 globali, il che mi sembra poco intelligente. Qualcuno sa dirmi se questa mia preoccupazione ha un minimo di fondamento in termini di principio o se, visto che l'applicazione è per PC, l'eventuale differenza nell'utilizzo di risorse è assolutamente ridicola? Grazie. ---------------------------------------- AUTORE: 645 DATA :01/03/2007 - 11:35:35 ---------------------------------------- Di per sè i Cluster sono variabili pesanti ma a volte sono molto comode se non indispensabili. Con le soluzioni provate hai notato miglioramenti o differenze di tempo di esecuzione o di carico di sistema (guarda nel Task Manager per sapere le risorse occupate)? ---------------------------------------- AUTORE: 737 DATA :01/03/2007 - 12:43:34 ---------------------------------------- Ciao, finora ho provato solo leggendo le globali internamante ai subVI; prima di cambiare sistema, il che mi comporterebbe abbastanza modifiche, volevo capire se in linea di principio rischio di incrementare un po' troppo l'utilizzo di risorse. Ma forse mi sto preoccupando per niente ... ---------------------------------------- AUTORE: 927 DATA :01/03/2007 - 13:21:19 ---------------------------------------- Separare le due variabili in due file non credo c'entri niente. Ogni volta che nel diagramma a blocchi c'è un nodo Global, solo la variabile che vuoi tu scorre sui fili del diagramma... Hai l'inefficienza dovuta alla grossezza della variabile, ma non all'altra variabile! Per dire se la pesantezza delle variabili può essere un problema, bisogna vedere quanto possono esser grosse... array di 10 elementi? 10000 elementi? I problemi SERI escono fuori se in queste variabili i vari subVI ci devono scrivere, in quel caso possono esserci dei conflitti quindi veri e propri errori. Per approfondire: http://zone.ni.com/devzone/cda/tut/p/id/5317 ---------------------------------------- AUTORE: 737 DATA :01/03/2007 - 14:42:02 ---------------------------------------- Ho fatto due subVI perchè uno deve leggere la prima variabile e l'altro la seconda; se leggo la globale che mi interessa a monte e la passo tramite controllo al subVI, posso fare un unico subVI. Il dubbio era che passarla ogni volta con il controllo fosse più dispendioso. In questi subVI devo solo leggerle, comunque, da quello che ho visto nel tuo link, pesantezza significa qualche decina o centinaia di migliaia di elementi; io mi fermo a qualche decina di cluster, anche se un po' complessi. Ho trovato qualche informazione anche qui http://zone.ni.com/reference/en-XX/help ... ion_speed/ e qui http://zone.ni.com/reference/en-XX/help ... ory_usage/ e qui http://digital.ni.com/public.nsf/allkb/ ... 9C00760EE2 Grazie ---------------------------------------- ================================================================================ Comunicazione attraverso seriale ================================================================================ AUTORE: 1876 DATA :01/03/2007 - 11:00:11 ---------------------------------------- Ciao a tutti! Ho appena acquistato labview e mi sono documentato già un pò per quanto riguarda la programmazione con questo strumento. Però dai vari documenti o tutorial non ho capito bene alcune cose... Io dovrei ricevere ed inviare dati attraverso una seriale, ma nè ei documenti nè ei tutorial in mio possesso ho trovato una spiegazione soddisfacente su come si fa. Probabilmente per voi che ne sapete parecchio è una domanda stupida e ammetto di essere un novizio in labview, ma spero che mi possiate aiutare. Grazie! Ciao. ---------------------------------------- AUTORE: 645 DATA :01/03/2007 - 11:33:28 ---------------------------------------- Ciao... tra gli esempi contenuti nella directory LabView --> Examples puoi trovare alcuni VI per la comunicazione con la seriale (nel nome dei VI c'è la parola Serial) e se cerchi in questo forum puoi trovare molti esempi sulla comunicazione seriale. L'idea è che selezioni la porta di comunicazione (COM) e poi usi i blocchi per scrivere dati (invii dati dal pc allo strumento) o leggere (ricevi dati dallo strumento sul pc). Se devi controllare uno strumento devi cercare nel manuale dello stesso per scoprire quali comandi puoi inviare (solitamente stringhe alfanumeriche) per ottenere le azioni che desideri (lettura valori, movimentazione attuatori... dipende da cosa controlli). Cerca la sezione Controllo remoto o simile nel manuale della periferica seriale. ---------------------------------------- AUTORE: 1876 DATA :01/03/2007 - 12:37:28 ---------------------------------------- Grazie mille, ora proverò a vedere cosa riesco a fare... In caso mi rifarò vivo... \":wink:\" Ciao! ---------------------------------------- AUTORE: 1876 DATA :02/03/2007 - 10:32:55 ---------------------------------------- Rieccomi, ho provato a far girare uno degli esempi riguardo alla comunicazione seriale, quello in cui veniva eseguito un lopback. Fin li nessun problema, ora che più o meno ho capito come funziona, ho realizzato un vi solamente per inviare dati attraverso la seriale ma non riscontro alcun effetto sul dispositivo sul quale voglio operare... Volevo chiedervi se c'è una notazione particolare per inviare comandi tramite seriale, oremettendo che ho già settato tutti i campi necessari alla comunicazione... Ciao! ---------------------------------------- AUTORE: 482 DATA :02/03/2007 - 11:17:35 ---------------------------------------- eheh credo che l'unica condizione fondamentale sia rispettare il protocollo di comunicazione. Nel manuale di istruzioni dello strumento con cui devi comunicare dovrebbe esserci l'elenco delle istruzioni accettate. Solitamente a creare casini sono i caratteri di fine stringa o fine comunicazione che vanno "calcolati"..non sempre pero' Magari se posti qui le istruzioni riportate nel manuale riusciamo a darti qualche dritta \":wink:\" ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 08:03:04 ---------------------------------------- Scusami se ti rompo ancora, ma c'è un comando standard da inviare tramite la seriale per la ricerca di un dispositivo connesso? Qualcosa che mi da errore (o un valore particolare, o va in timeout, o qualsiasi cosa...) se non trova nulla? Grazie, ciao! ---------------------------------------- AUTORE: 645 DATA :05/03/2007 - 08:10:50 ---------------------------------------- Puoi provare con *IDN? ... con alcuni strumenti seriali funziona e permette di ottenere il nome dell'apparecchio collegato. Il timeout lo decidi tu con il blocco Read VISA (c'è il terminale per il tempo): mettilo alto all'inizio (tipo 1000 ms). ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 08:28:39 ---------------------------------------- Ho provato a far girare il VI d'esempio sulla comunicazione seriale, si chiama: "Basic Serial Write and Read" Ho collegato la seriale al mio dispositivo e ho lanciato l'applicazione inviando al dispositivo il comando: *IDN?\ \ ma non leggo nulla nella text box relativa alla lettura, ho sbagliato qualcosa? Eppure ho semplicemente aperto un VI d'esempio e l'ho fatto girare. Vi chiedo scusa a priori se le mie domande o richieste sono delle cavolate per voi ma ho appena cominciato ad usare LabView e lo conosco praticamente poco... ---------------------------------------- AUTORE: 645 DATA :05/03/2007 - 08:37:00 ---------------------------------------- Che strumento usi sulla seriale? Così proviamo a cercare in internet se c'è qualche manuale o qualche datasheet. ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 08:39:33 ---------------------------------------- E' una centrae d'allarme KYO 300 Grazie ---------------------------------------- AUTORE: 645 DATA :05/03/2007 - 10:12:46 ---------------------------------------- Sul sito non c'è un manuale... tu non hai proprio niente? ---------------------------------------- AUTORE: 384 DATA :05/03/2007 - 10:13:58 ---------------------------------------- Allora sicuramente non risponde al comando IDN. Devi necessariamente capire dal manuale quali sono i comandi che accetta, in che formato li accetta, come risponde e cosa risponde se riceve un comando errato o malformato. Suggerimento: Prima di partire con LabView io uso sempre il terminal di windows, scrivo i comandi a mano (normalmente i più semplici oppure quelli di stato o diagnostica) ed osservo le risposte, per capire bene la cosa. Per esperienza, ogni progettista inventa a suo modo i protocolli ed i manuali fanno pietà (per non dire proprio schifo)! ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 10:19:13 ---------------------------------------- Vedo cosa riesco a recuperare... Il mio problema comunque è che anche lanciando il comando *IDN? da quel VI che ti ho detto prima (e che funziona per forza dato che l'hanno messo come esempio) non funziona se collego il cavo alla cantrale. Funziona però se collego il cavo seriale al computer ed unisco i piedini 2 e 3 del terminale (quindi lettura e scritura). Cioè quel VI invia una stringa attraverso il cavo seriale, ma non capisco perchè la centrale non risponde. Grazie per la pazienza. ---------------------------------------- AUTORE: 645 DATA :05/03/2007 - 10:23:46 ---------------------------------------- Quello che intendeva Gyc è che ogni strumento ha un suo modo per comunicare con il pc: questo modo è chiamato "protocollo". In pratica si tratta di una lista di comandi che possono essere inviati allo strumento per ricevere determinate risposte (letture di dati, azionamenti di attuatori...). Se IDN non fa parte di questi comandi la centrale non sa risponderti. Se cortocircuiti i piedini della seriale fai una lettura di ciò che scrivi tu, quindi non hai risposte ma solo la replica di ciò che hai scritto (è tuttavia un metodo che funziona per capire se i canali fisici di comunicazione funzionano). Direi che serve proprio un manuale o almeno la lista dei comandi per il controllo remoto della centralina (puoi provare a chiedere anche alla ditta produttrice via mail o telefono...). ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 10:31:22 ---------------------------------------- Scusatemi, ho capito quello che ha scritto Gyc, il problema è che ho tenuto aperta la pagina per scrivere la risposta un po di tempo e quando ho postato la mia risposta non avevo ancora letto quello che aveva scritto Gyc. Comunque vedo cosa riesco a recuperare, mal che vada chiaamo la casa produttrice e poi vi faccio sapere. Grazie! ---------------------------------------- AUTORE: 482 DATA :05/03/2007 - 11:24:20 ---------------------------------------- Una cosa... Alcuni strumenti che comunicano inseriale a volte anche se si ha l'opzioen seriale installata ce l'hanno OFF di default e quindi nei settaggi va abilitata senno' non ci siriesce a comunicare ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 11:30:00 ---------------------------------------- Grazie dell'informazione, proverò a controllare... ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 11:48:30 ---------------------------------------- Ok vi posto un'immagine, è un esempio di un comando che si può inviare alla centrale ---------------------------------------- AUTORE: 482 DATA :05/03/2007 - 12:52:38 ---------------------------------------- Beh quindi per prima cosa gli devi dire che in lettura deve leggere 1 Byte, e in scrittura...beh quella è la stringa..ma come devi mandargliela? Due caratteri alla volta o tutta intera? ---------------------------------------- AUTORE: 1876 DATA :05/03/2007 - 13:05:53 ---------------------------------------- Sinceramente non lo so se devo mandarglieli due alla volta o tutti assieme, comunque per quello basta fare una prova... Ma la stringa che devo inviargli è $0000 0283? Poi il VI che utilizzo, quindi quello di esempio che vi avevo detto precedentemente va bene o devo aggiungergli qualcosa? ---------------------------------------- AUTORE: 645 DATA :08/03/2007 - 09:45:26 ---------------------------------------- Secondo me puoi provare così: per inviare comandi usi il blocco VISA Serial WRITE. Come comando invii la stringa "00000283". Per inviare questa stringa crei una costante stringa e setti alcuni parametri (clicchi con il tasto destro sopra il blocco costante stringa e scegli proprietà): in particolare scegli "Esadecimale" come tipo di dati e imposti il numero minimo di cifre a 8 con riempimento a sinistra per mezzo di zeri (quando imposti "Esadecimale" nella parte destra della stessa finestra delle opzioni puoi impostare la lunghezza del campo e il simbolo da usare per riempire gli spazi rimanenti, in questo caso zero). Questo perchè sembra che la macchina aspetti in ingresso sempre e comunque una parola di un byte (cioè 8 valori): per il comando di reset (nelle tue immagini) sarebbe sufficiente inviare "283". Però la macchina aspetta 8 valori: LabView riempie i rimanenti 5 spazi con zeri (queste sono le opzioni scelte vicino all'indicazione che il tipo di dati è esadecimale). Poi aspetti almeno 1 secondo (l'operazione di reset è più lunga di una lettura di dati...) e con un blocco VISA Serial READ puoi leggere una risposta dalla macchina (leggi tutto il buffer... sempre che la macchina risponda con un messaggio di reset eseguito: ti serve per controllare che l'operazione sia andata a buon fine). Altrimenti passi alla scrittura successiva. Controlla se per caso la macchina mette a disposizione del buffer alcuni dati subito dopo il riavvio: so che alcuni strumenti scrivono nel buffer i dati identificativi (nome, marca, modello...) subito dopo il riavvio e se questi dati rimangono nel buffer non puoi eseguire la scrittura successiva (o meglio, possono esserci problemi perchè hai in giro dati non gestiti). ---------------------------------------- ================================================================================ Radio Button ================================================================================ AUTORE: 1826 DATA :01/03/2007 - 14:02:28 ---------------------------------------- Nel mio programma voglio una sorta di FrontPanel iniziale dove attraverso un radio button possa decidere di aprire diversi VI.In pratica avrei una sorta di pagina iniziale nella quale apro VI diversi mantenendo per tutti sempre lo stesso scheletro.E' possibile fare una cosa del genere? Grazie ---------------------------------------- AUTORE: 927 DATA :06/03/2007 - 09:09:15 ---------------------------------------- Se ho ben capito vuoi rimanere sempre nella stessa finestra, ma cambiare una parte del Front Panel. Forse la soluzione più semplice e più standard è usare un controllo Tab, dove cliccando le linguette passi da una pagina all'altra. Comunque, se vuoi "aprire" dei VI già esistenti, ci vuole un controllo SubPanel; tramite un Invoke Node col metodo Insert VI (dovrebbe creartene uno quando crei il SubPanel) puoi passargli la reference al VI desiderato. La ref la ottieni con Static VI Reference o Open VI Reference ---------------------------------------- ================================================================================ Demo gratuita? ================================================================================ AUTORE: 1871 DATA :02/03/2007 - 09:41:57 ---------------------------------------- Qualcuno sa se esistono demo gratuite di Labview (anche di release precedenti)? Grazie. ---------------------------------------- AUTORE: 482 DATA :02/03/2007 - 10:12:32 ---------------------------------------- ftp://ftp.ni.com/evaluation/labview/pc/labview_82.exe Questo è il link della dome di labview 8.2 \":wink:\" ---------------------------------------- AUTORE: 1871 DATA :02/03/2007 - 10:50:48 ---------------------------------------- Ah, grazie mille! Io pensavo che quella era a pagamento.... E quanto mi dura, un mese? ---------------------------------------- AUTORE: 482 DATA :02/03/2007 - 11:15:02 ---------------------------------------- boh..onestamente non ne ho idea... Non so se sia una demo colpeta ma a scadenza o una demo senza scadenza ma con funzionalità limitate ---------------------------------------- ================================================================================ Cicli while in parallelo ================================================================================ AUTORE: 1662 DATA :02/03/2007 - 14:25:06 ---------------------------------------- Devo far eseguire due cicli while in parallelo, nel senso che devono partire e fermarsi contemporaneamente tra loro. Ho fatto diversi tentativi ma non ho trovato soluzioni, qualcuno potrebbe darmi una mano? grazie. ---------------------------------------- AUTORE: 645 DATA :02/03/2007 - 14:33:36 ---------------------------------------- Per gestire cicli paralleli ci sono diverse soluzioni. Il controllo di STOP in un ciclo deve essere riportato come variabile locale agli altri cicli per avere effetto nello stesso momento (ci sono anche soluzioni che adottano le code di processo ma sono più complicate). Oppure se hai i Timed Loop (non so che versione di LabView usi) puoi usare la funzione di STOP che permette di specificare il nome del ciclo da fermare. Occhio però alle priorità e/o ai tempi di ciclo: la pressione del tasto di STOP viene rilevata se all'interno del periodo di ciclo altrimenti aspetti il ciclo successivo e questo può causare qualche ritardo. Parti da qui: http://zone.ni.com/reference/en-XX/help ... imed_loop/ ... poi guarda nella sezione articoli quello di Alessandro sul parallelismo ( download.php?id=297 ) ---------------------------------------- AUTORE: 1662 DATA :02/03/2007 - 15:29:51 ---------------------------------------- grazie mille, magic! ho risolto con le variabili locali....alla prossima! pinz ---------------------------------------- AUTORE: 384 DATA :02/03/2007 - 16:16:59 ---------------------------------------- [quote="MagicBotolo":k3bdif1p](ci sono anche soluzioni che adottano le code di processo ma sono più complicate)[/quote:k3bdif1p] Dai Magic... non dire queste cose!!! \":wink:\" Pinz, guarda [url=http://www.ilvg.it/forum/viewtopic.php?t=2351&start=0&postdays=0&postorder=asc&highlight=ocurrences:k3bdif1p]questo topic[/url:k3bdif1p]. C'è una discussione su questo tema anche con degli esempi. ---------------------------------------- AUTORE: 645 DATA :02/03/2007 - 18:26:32 ---------------------------------------- Le occorrenze!!! Ecco... non le code... sbagliato... ooppss... \":D\" ---------------------------------------- AUTORE: 927 DATA :06/03/2007 - 09:20:58 ---------------------------------------- National Instruments encourages you to use the Notifier Operations functions in place of occurrences for most operations. Infatti li ho usati quando non volevo usare le variabili... Credo abbiano ragione, i notifier mi sembrano più versatili, puoi usarli anche tra VI diversi. Il vantaggio delle occurrences è che i blocchi sono piccolini \":lol:\" ---------------------------------------- ================================================================================ aiuto gioco tris in labVIEW ================================================================================ AUTORE: 1880 DATA :03/03/2007 - 09:01:56 ---------------------------------------- siamo l'itis di dalmine. c serve il programma in labview, nn trp difficile, per gestire una partita di tris tra 1 utente e il computer. ricambieremo!!! grazie!!!!!!!! ---------------------------------------- AUTORE: 645 DATA :03/03/2007 - 11:04:25 ---------------------------------------- Ciao ragazzi, così è un po' troppo facile. A parte che se cercate in rete forse trovate qualcosa di già pronto ma qui non troverete VI già belli e funzionanti ma solo consigli e scambi di idee. Quanto tempo avete per fare il progetto? E tanto per cominciare cosa conoscete di LabView? ---------------------------------------- AUTORE: 247 DATA :03/03/2007 - 13:13:55 ---------------------------------------- Ciao, anche a me non vengono in mente VI pronti del genere, cominciate a programmare che sicuramente vi daremo una mano nel caso in cui abbaite difficoltà. Confermo quanto detto da Magic...niente VI belli e pronti a meno che non li troviate nella nostra sezione Download! \";-)\" BYE. ---------------------------------------- AUTORE: 129 DATA :03/03/2007 - 15:48:30 ---------------------------------------- Mi allego a quanto detto dai colleghi sopra, però tanto per darvi una traccia vi allego un vi, il mio consiglio è sfruttare un arrayu di picture ring. Nell'esempio la parte di valutazione dell'avvenuto tris non è stata sviluppata (c'è solo una prova per esempio). Dovrete sviluppare quindi un algoritmo per la ricerca del tris su riga/colonna/diagonale... Nicola ---------------------------------------- ================================================================================ Programmazione Lego Mindstorms ================================================================================ AUTORE: 384 DATA :05/03/2007 - 10:06:22 ---------------------------------------- Ciao ragazzi. Ho posto [url=http://www.ilvg.it/forum/viewtopic.php?t=2753&start=0&postdays=0&postorder=asc&highlight=:1oozt1ro]un paio di domande sul Lego Mindstorm su "LabView e Dintorni"[/url:1oozt1ro] ma nessuno ha commentato. \":(\" Mi sa che siamo tutti troppo occupati per giocare, eh... \":roll:\" ---------------------------------------- AUTORE: 516 DATA :05/03/2007 - 20:37:21 ---------------------------------------- Ciao potresti usare la comunicazione bluetooth (non l'ho ancora testata) , ho fatto alcune prove di comunicazione tra una delle sue 4 porte e un'altra periferica usando i2c bus , non ho mai usato la piattaforma di labview uso robotc che lo trovo molto più versatile al momento Ciao Sergio ---------------------------------------- AUTORE: 384 DATA :06/03/2007 - 08:24:15 ---------------------------------------- Ciao. Mi daresti qualche riferimento dove trovare informazioni su robotc? Grazie. ---------------------------------------- AUTORE: 516 DATA :06/03/2007 - 12:50:41 ---------------------------------------- Eccoti il sito http://www.robotc.net/ ti consiglio inoltre anche questo http://forums.nxtasy.org/index.php?act=SF&s=&f=3 e questo http://www.tau.ac.il/~stoledo/lego/i2c-8574/ Se hai bisogno di altre info fai un fischio Ciao Sergio ---------------------------------------- AUTORE: 384 DATA :06/03/2007 - 14:29:14 ---------------------------------------- Grazie. In cascata a questi ho trovato molte cose interessanti! Per ora il mio interesse va verso un "veicolo" di dimensioni ridotte, operato remotamente (non telecomandato) visto che già sono costretto ad avere un cavo. Se magari hai qualche altra info in questo settore io, naturalmente, ringrazio! ---------------------------------------- AUTORE: 516 DATA :06/03/2007 - 19:31:04 ---------------------------------------- ok appena ho altre info ti faccio sapere Ciao Sergio ---------------------------------------- AUTORE: 4 DATA :10/03/2007 - 17:02:54 ---------------------------------------- Ciao, cosa intendi per operato remotamente? che c'e' un PC che lo guida? via cavo USB o BT? Se e' cosi col toolkit per labview la cosa e' un gioco da ragazzi \":)\" considera per' che il BT e' "lento" a reagire e poi non vai lontano, forse meglio il cavo USB. A questo proposito e pr risondere al tuo posi su labview e dintorni ti dice che sul canale USB puoi programmare ma anche fare debug del codice e comunicare col NXT, e tutto e' molto semplice da realizzare. Ti consiglio di comprare un NXT e iniziare a giocarci. Se vuoi altre info chiedi pure. Ciao ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 10:05:21 ---------------------------------------- Nel mio caso, sono costretto ad avere un cavo di collegamento per altri motivi, quindi mi interessa manovrare il robottino "a mano", guardando attraverso una telecamera. Ho proprio in mente di comprare un NXT... sta anche guardando eBay, dove ci sono alcune cose carine a prezzi non altissimo. Se il progetto andrà avanti, mi avrete "alle costole"!!! \":wink:\" In ogni caso, qualunque informazione è benvenuta. ---------------------------------------- AUTORE: 482 DATA :14/03/2007 - 08:52:42 ---------------------------------------- Mi accodo qui per non aprire un altro topic... Ho installato il toolkit NXT (no tranquilli non sono ancora entrato a far parte dei possessori di NXT), e mi ha creato un duplicato di tutta la palette di labview. Mi spiego: -> tasto destro per far apparire la palette; -> Addons ->NXTToolkit -> e qui dentro mi ritrovo ancora il gruppo Numeric, boolean,string&path ecc..c'e' stato qualche problema nell'installazioen o fa cosi' anche a voi e c'e' un perchè? ---------------------------------------- AUTORE: 4 DATA :14/03/2007 - 13:13:11 ---------------------------------------- geppo, è normale, le funzioni della paletta NXT sembrano le stesse (graficamente) ma sono apposta per il NXT, avendo una seconda paletta hai tutto quello che puoi usare sul NXT concentrato in un punto solo Ciao ---------------------------------------- ================================================================================ Ridisegno dei Dialog Controls con LabVIEW 7.1 per Mac ================================================================================ AUTORE: 1381 DATA :05/03/2007 - 13:57:25 ---------------------------------------- Ciao a tutti. Sto usando LabVIEW 7.1 per Mac e nel mio programma ho voluto usare i controlli Dialog Controls perchè appaiono nello stile Aqua di Mac OS X che è sicuramente più bello da vedere dei controlli nativi di LabVIEW. L'uso di quei controlli è semplice quanto quelli in stile LabVIEW perchè hanno lo stesso comportamento e le stesse proprietà. L'unico problema mi si presenta quando devo spostare un controllo. Il mio programma prevede un'interfaccia molto dinamica che riposiziona i controlli in vari momenti, ma quando riposiziono uno dei Dialog Controls resta disegnato sullo sfondo della finestra un fastidiosissimo bordo in corrispondenza della precedente posizione del controllo. Lo stesso difetto si nota anche in fase di progettazione, non solo a runtime. Ho notato che quando accade basta eseguire il programma in modo da far ridisegnare la finestra, e i difetti grafici in questione spariscono. Come posso risolvere il problema di questo fastidioso bug della GUI di labview? Pensavo di far ridisegnare a comando lo sfondo della finestra in modo da far sparire i difetti ma non so come poter fare. Grazie in anticipo per la domanda e buon lavoro a tutti. ---------------------------------------- ================================================================================ calcolo tempo operazioni del block diagram ================================================================================ AUTORE: 1624 DATA :05/03/2007 - 14:29:59 ---------------------------------------- ciao a tutti,sto realizzando per la mia tesi di laurea un analizzatore di spettro. Per aumentare il range di frequenze analizzabili devo mettere un opportuna frequenza di campionamento.A tal fine mi è stato detto che devo calcolare il tempo impiegato a svolgere tutte le operazioni nel block diagram.qualcuno sa dirmi come si fa ? grazie ---------------------------------------- AUTORE: 247 DATA :05/03/2007 - 18:31:13 ---------------------------------------- Ciao, utilizzando la temporizzazione software (ovvero calcolando il tempo necessario per eseguire le operazioni del BD) non otterrai mai frequenze di campionamento regolari, devi utilizzare la tua scheda di acquisizione per averne la certezza, sfruttando l'acquisizione bufferata di n-samples la volta. BYE. ---------------------------------------- AUTORE: 1624 DATA :05/03/2007 - 18:41:20 ---------------------------------------- ciao apollon,ti ringrazio per la risposta ma io per ora non uso nessuna scheda sto simulando il segnale di ingresso con un onda sinusoidale di cui stabilisco io la fequenza.in tal caso come faccio? ---------------------------------------- AUTORE: 247 DATA :06/03/2007 - 15:03:47 ---------------------------------------- Ciao, nelle ultime versioni del MAX(Measurement and Automation Explorer), puoi simulare la presenza di una scheda di acquisizione dati in modo da poter utilizzare i blocchi DAQmx anche senza avere l'hardware a disposizione. Apri MAX, tasto dx su "Devices and Interfaces" -> "Create New"...e nella lista che appare in finestra scegli "NI-DAQmx Simulated Device". Se l'operazione riesce puoi utilizzare i VI di acq. nel tuo BD e mandare in run il tuo VI. In ingresso leggerai probabilmente un classico segnale sinusoidale, non penso che sia modificabile. BYE. ---------------------------------------- ================================================================================ Calcolare l'equazione di un'onda ================================================================================ AUTORE: 1882 DATA :05/03/2007 - 14:32:02 ---------------------------------------- Ciao a tutti, sono nuovo di qui. Non conosco bene il forum, quindi spero che sia la sezione giusta \":D\" Vado subito al dunque: vorrei calcolare l'equazione di un'onda che acquisisco da un microfono. Come faccio? C'è una funzione? Ci sono alcune funzioni che mi possono aiutare per farlo? Uso LabVIEW 8.0... Grassie a tutti \":lol:\" \":mrgreen:\" ---------------------------------------- AUTORE: 384 DATA :06/03/2007 - 08:26:33 ---------------------------------------- Esiste un gruppo di funzioni per fare "fitting". Se vai negli esempi e cerchi "curve fit" troverai anche qualche vi funzionante. ---------------------------------------- AUTORE: 1882 DATA :09/03/2007 - 19:29:57 ---------------------------------------- Perdona la domanda ma... cosa vuol dire fare "fitting"??? \":lol:\" ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 09:12:40 ---------------------------------------- In questo caso vuol dire "adattare a", cioè, è l'operazione di trovare l'equazione di una curva (in generale anche n-dimensionale) che meglio si adatta ad un insieme di punti. ---------------------------------------- AUTORE: 1882 DATA :14/03/2007 - 14:07:59 ---------------------------------------- Ho cercato, ma nessuna mi da un'equazione... ---------------------------------------- AUTORE: 384 DATA :14/03/2007 - 14:57:53 ---------------------------------------- É vero, non ti da l'equazione in termini di espressione formale come fa [url=http://www.wolfram.com/:27ayhg39]Mathematica[/url:27ayhg39], per esempio, che è in grado di risolvere equazioni in espressione formale (credo sia addirittura l'unico che lo fa!). Generalmente, le funzioni di [i:27ayhg39][b:27ayhg39]curve fitting[/b:27ayhg39][/i:27ayhg39] ti danno i coeficienti di un'equazione (il modello). Per esempio, se hai deciso di modelizzare i dati con un polinomio (di grado N), il risultato sono gli N+1 coefficienti a0,... Questo modello, in ogni caso (anche con Mathematica), bisogna sempre e comunque sceglierlo prima. Quale modello usare (polinomio, di che grado, spline, ecc) dipende da una serie di considerazioni che devi fare tu in base al tuo caso particolare, complessità computazionale, utilizzo successivo dei coefficienti, ecc. Se cerchi "[b:27ayhg39]curve fitting[/b:27ayhg39]" sul sito NI trovi diversi documenti; ti suggerisco questi in particolare: -[url=http://zone.ni.com/reference/en-XX/help/371361B-01/lvanlsconcepts/introduction_to_curve_fitting/:27ayhg39]Introduction to Curve Fitting[/url:27ayhg39] -[url=http://zone.ni.com/reference/en-XX/help/371361B-01/lvanlsconcepts/curve_fitting_in_labview/:27ayhg39]Curve Fitting in LabVIEW[/url:27ayhg39] ---------------------------------------- ================================================================================ CompacRio&Real-Time Application&Shared Variable ================================================================================ AUTORE: 1885 DATA :05/03/2007 - 17:47:20 ---------------------------------------- Ciao a tutti, ho un problema con una applicazione RT compilata che gira su target compactRio. L'applicazione "dialoga" tramite shared variable in rete con un VI che gira sul mio PC. Il problema risiede nel fatto che una volta compialto il vi RT ed avviato lo stesso sul compactRio non riesco più a collegarmi alle shared variable. In pratica sembra che vada a "cercare" le shared variable sul vi sorgente, non la versione exe che sta girando, e per fare ciò mi interrompe l'esecuzione dell'applicazione. Qualcuno sa come aiutarmi?? Credo che (leggendo un pò quà e là) occorra far fare il deploy automatico della libreria che contiene le shared variable al vi stesso, prima ancora che inizi l'esecuzione vera e propria del codice. Il problema è che non sono riuscito a fare ciò (tramite il metodo deploy library) su target compact rio!! please help me!!! grazie Ciao!! PS: utilizzo Labview 8.2 e compactRio 9004 ---------------------------------------- AUTORE: 278 DATA :16/03/2007 - 09:24:46 ---------------------------------------- Ciao, forse [url=http://digital.ni.com/public.nsf/allkb/A1767CAD4B99A3A6862572800067436A:3eenwgpr][u:3eenwgpr]questo documento[/u:3eenwgpr][/url:3eenwgpr] e [url=http://digital.ni.com/public.nsf/websearch/04D9A85B6967EE87862571140065EEC6?OpenDocument:3eenwgpr][u:3eenwgpr]questo[/u:3eenwgpr][/url:3eenwgpr] ti possono essere d'aiuto.. in rpatica devi cra are un progetto unico contentente i 2 VI , quello con target RT e quello che giar sul tuo PC. Ciao ciao ---------------------------------------- AUTORE: 1885 DATA :19/03/2007 - 16:31:11 ---------------------------------------- ok grazie, ci guardo un pò poi se riesco lo riporto nel post!! ciao ciao ---------------------------------------- ================================================================================ riordinere un cluster dinamicamente ================================================================================ AUTORE: 1520 DATA :05/03/2007 - 18:17:08 ---------------------------------------- salve a tutti, volevo sapere se qualcuno si è mai trovato nella condizioni di voler cambiare dinamicamente l'ordine degli elementi in un cluster. questo permetterebbe di poter ordinare in maniera semplice array di cluster in funzione dei diversi campi. Il problema è che non sto riuscendo a trovare come farlo e l'help di labview in questo senso è abbastanza inutile. Matteo ---------------------------------------- AUTORE: 1520 DATA :05/03/2007 - 18:33:09 ---------------------------------------- Mi rispondo da solo: facendo riferimento al cluster nelle proprietà c'è la voce controls che è un array dei controlli ordinati secondo i controlli. Cambiando l'ordine dell'array di riferimenti ai controlli riarrangio l'ordine dei controlli nel cluster. Matteo ---------------------------------------- AUTORE: 129 DATA :10/03/2007 - 13:44:11 ---------------------------------------- Ma il property controls è di sola lettura, mi sfugge come sei riuscito a riordinare il cluster che di fatto diventa un nuovo cluster. Puoi postare il tuo esempio? Nic ---------------------------------------- AUTORE: 1520 DATA :12/03/2007 - 08:08:38 ---------------------------------------- Scusa del falso allarme Nicola. Credevo di aver risolto ma in effetti come dici tu la propietà è di sola lettura, sigh! Temo non ci sia nulla da fare. Ho rinunciato a fare in questo modo. Ciao Matteo ---------------------------------------- AUTORE: 129 DATA :12/03/2007 - 13:30:08 ---------------------------------------- Però se il senso è che devi ordinare un array di cluster, lo puoi fare con le funzioni di array. Per esempio puoi cercare un elemnto cluster all'interno dell'array. Magari è un esempio logico e non corrisponde con quello che devi fare, ma non ho resistito, perchè ho letto che parli di ordinare un array di cluster in funzione del campo. ---------------------------------------- AUTORE: 1520 DATA :12/03/2007 - 13:51:36 ---------------------------------------- L'idea era quella di poter fare in maniera semplice e magari efficente il sorting di un array di cluster per un qualsiai campo dello stesso record. In caso di un numero elevato di entry dell'array altrimenti la cosa può diventare un po' pesante. Alla fine comunque mi sono appoggiato ad un database esterno. E' molto carino perchè non c'è neanche il bisogna di installarlo, si chiama SQLite e in rete si trova già il supporto per la gestione delle query e la crazione dei db. ---------------------------------------- AUTORE: 1871 DATA :13/03/2007 - 11:10:45 ---------------------------------------- Sinceramente sono un po' arrugginito su queste cose, ma credo che potresti fare lo stesso con comandi Matlab. Il programma ti diventerebbe anche molto più portabile, perchè così non avresti bisogno di DB esterni. ---------------------------------------- AUTORE: 645 DATA :13/03/2007 - 13:08:19 ---------------------------------------- Cosa intendi Trombetta? ---------------------------------------- AUTORE: 1871 DATA :13/03/2007 - 14:07:53 ---------------------------------------- Beh, intendo dire che visto che professormister ha a che fare con delle matrici, lo strumento migliore per gestire matrici è il matlab, e sicuramente esisterà un metodo veloce per ordinare matrici in base ad una colonna. O forse non capito cosa voleva fare?....... ---------------------------------------- AUTORE: 927 DATA :14/03/2007 - 08:31:29 ---------------------------------------- Non hai capito \":lol:\" Gli array di cluster non sono matrici: un cluster contiene elementi eterogenei. In effetti mi pare che in Labviù manchi un ordinatore "generico" di array, equivalente al qsort del C. Per chi non lo conosce: http://www.cplusplus.com/reference/clib ... qsort.html Cioè per stabilire se un elemento è maggiore di un altro, si usa una funzione definita dall'utente ---------------------------------------- AUTORE: 1871 DATA :14/03/2007 - 08:34:04 ---------------------------------------- OK \":wink:\" Grazie per il chiarimento. ---------------------------------------- AUTORE: 129 DATA :15/03/2007 - 13:22:45 ---------------------------------------- [quote:14wdrdzm]E' molto carino perchè non c'è neanche il bisogna di installarlo, si chiama SQLite e in rete si trova già il supporto per la gestione delle query e la crazione dei db.[/quote:14wdrdzm] Interessante, ti connetti via ODBC? quale download bisogna fare dal sito? Thanks Nicola[/code] ---------------------------------------- ================================================================================ Leggere dati da matlab. ================================================================================ AUTORE: 1801 DATA :06/03/2007 - 09:12:35 ---------------------------------------- Ho scritto un programma in matlab e adesso devo leggere dei dati da labview che sarebbero i dati di ingresso per matlab,poi eseguire delle operazione e ridare a labview degli altri valori.Come devo fare?Grazie mille. ---------------------------------------- AUTORE: 1871 DATA :06/03/2007 - 10:59:05 ---------------------------------------- Se cerchi tra le palette, troverai sicuramente degli oggetti "Matlab script". Questo ti permette di leggere da un file matlab. E' una finestra, in cui puoi scrivere qualcosa di questo tipo: clear; cd('C:\'); %directory in cui sta il tuo file nome_m_file; %nome del file Matlab Per scrivere sul file non so se si può usare la stessa cosa, ma credo proprio di sì. Purtroppo al momento non ho installato LabView, e quindi vado un po' a memoria.... ---------------------------------------- AUTORE: 1801 DATA :06/03/2007 - 16:19:58 ---------------------------------------- Ma devo tenere aperti entrambi i programmi oppure posso copiare il programma nella finestra di script.Se devo scambiare una matrice 3*1 con matlab devo utilizzare un array come dato di input/output? ---------------------------------------- AUTORE: 1871 DATA :07/03/2007 - 08:57:58 ---------------------------------------- No, fa tutto LabView, non c'è bisogno di aprire Matlab. Basta che nella finestra metti il nome dell'm-file (e della directory) e il file viene eseguito. Il blocco funziona esattamente come tutti gli altri (ad esempio una GPIB-write o read) quindi se hai in ingresso/uscita una matrice utilizzi un array, se hai una stringa utilizzi una stringa, ecc ecc. Con LabView 8.20 mi sembra si possano inserire dirattamente in LabView degli script Matlab-like, quindi se hai la 8.20 magari questa soluzione potrebbe essere più facile per te. ---------------------------------------- ================================================================================ Controllo "File path" ================================================================================ AUTORE: 1235 DATA :06/03/2007 - 09:57:19 ---------------------------------------- Uso la 7.1 e in un controllo "File Path" nell'eseguibile di una VI ho un problema: se nella parte sx del controllo passo da "Valid Path" a "Not a Path" l'eseguibile mi da giustamente errore! Visto che chi userà l'eseguibile non conoscerà il motivo dell'errore si potrebbe eliminare la possibilità di mettere la spunta a "Not a Path" e quindi di selezionarlo in modo da evitare l'errore e l'arresto dell'eseguibile? Grazie ancora! ---------------------------------------- AUTORE: 927 DATA :06/03/2007 - 15:59:55 ---------------------------------------- Potresti creare un Custom Control (tasto dx -> Advanced -> Customize...), poi cliccando sulla chiavetta inglese ti dà la possibilità di definire l'aspetto di tutti i "pezzi" del controllo. Così puoi far sparire il pulsantino di valid/not valid, magari mettendolo dietro a qualcos'altro. ---------------------------------------- ================================================================================ Come leggere da seriale ================================================================================ AUTORE: 1876 DATA :06/03/2007 - 10:10:05 ---------------------------------------- Ciao a tutti. Sono molto inesperto in labview e vorrei sapere se e come è possibile creare un VI che mi permetta di leggere ciò che viene inviato tramite un cavo seriale da un altro programma. Spero mi possiate aiutare, Grazie, ciao! ---------------------------------------- AUTORE: 927 DATA :06/03/2007 - 16:11:46 ---------------------------------------- La funzioni per gestire la seriale si chiamano VISA. E' meglio se dici sempre che versione di Labviù hai, cmq nella 8 le trovi sotto Data Communication / Protocols / Serial. Con Labviù sono inclusi degli esempi su come usarle: nel menù in alto, Help -> Find Examples, poi con Search cerca "serial" ---------------------------------------- ================================================================================ iterazioni ciclo for ================================================================================ AUTORE: 1779 DATA :06/03/2007 - 11:00:39 ---------------------------------------- salve a tutti, ho un problema per incrementare il numero di iterazioni di un ciclo for. Mi spiego meglio: dovrei incrementare il numero di iterazioni in base ad una condizione che ho all'interno dello stesso ciclo ma non riesco a trovare una soluzione ho provato ad utilizzare le variabili locali ma senza risultato...... Vi allego la soluzione cui avevo pensato. Vi ringrazio in anticipo per la vostra disponibilità.... ---------------------------------------- AUTORE: 487 DATA :06/03/2007 - 11:08:52 ---------------------------------------- Ciao, quello che vuoi fare con il ciclo for non si può fare perchè il numero d'iterazioni del ciclo viene impostato prima di entrare nel ciclo stesso. Prova ad utilizzare un while loop. ---------------------------------------- AUTORE: 1779 DATA :06/03/2007 - 11:23:47 ---------------------------------------- Ti ringrazio per la risposta immediata, in effetti attualmente nel programma sto utilizzando un ciclo while ma siccome per altri motivi mi avrebbe fatto comodo un ciclo for volevo vedere se c'era una soluzione. Ti ringrazio comunque. ---------------------------------------- AUTORE: 1165 DATA :06/03/2007 - 12:37:22 ---------------------------------------- Gianluca mi permetto di richiamare la tua attenzione su quanto ti ha detto Coma, in effetti i cicli While e For sono identici, escluso nella gestione della condizione di uscita. Quindi se vuoi un For con condizione di uscita non prefissata ma variabile, vuol dire che di fatto hai davanti un ciclo while. Purtroppo non ho il Labview istallato su questo PC quindi non posso vedere il tuo VI di esempio sopra, ma l'unica soluzione "programmatica" per avere condizioni di uscita gestibili run-time mi sembra sia quella di usare i cicli For, con condizione che tu stesso puoi impostare run-time o compile-time. a tua scelta (tantochè si potrebbe anche eliminare la sintassi del ciclo For). Se poi del For ti risultasse utile l'autoindexing sui vettori, sappi che la stessa funzione è attivabile a richiesta anche sui While (mentre è di default sui For). Spero di essere stato utile e non aver detto qualche cavolata. Ciao, enrico. ---------------------------------------- AUTORE: 129 DATA :10/03/2007 - 14:37:27 ---------------------------------------- Puoi comunque inserire il ciclo FOR di cui hai biosogno all'interno di un ciclo While, che termina con una condizione stabilita da te. ---------------------------------------- AUTORE: 1165 DATA :11/03/2007 - 00:39:43 ---------------------------------------- .. e invece qualche cavolata l'avevo detta! Correzione al mio precedente post: dove dicevo: "[i]ma l'unica soluzione "programmatica" per avere condizioni di uscita gestibili run-time mi sembra sia quella di usare i cicli For, con condizione che tu stesso puoi impostare run-time o compile-time[/i]" ovviamente la parola "For" va sostituita con "While"!! Accipicchia, scusate tutti, ciao, enr. ---------------------------------------- AUTORE: 645 DATA :11/03/2007 - 16:13:34 ---------------------------------------- Eh sì... il ciclo FOR ha bisogno di una condizione di fine decisa prima dell'inizio del ciclo stesso. Devi usare un WHILE per modificare la condizione di fine ciclo. \":D\" ---------------------------------------- AUTORE: 1165 DATA :11/03/2007 - 18:20:57 ---------------------------------------- sì sì certo .. eh eh .. ma attenzione .. la cavolata era solo sulla parola scambiata e solo su quella .. non sui concetti .. quelli sono tutti corretti .. almeno credo ---------------------------------------- ================================================================================ acquisizione da webcam ================================================================================ AUTORE: 1669 DATA :06/03/2007 - 19:43:08 ---------------------------------------- ciao a tutti devo acquisire le immagini da una webcam. su queste immagini devo effettuare un controllo. il controllo deve essere in tempo reale c'è un subVI che mi permette di questo? grazie nicola ---------------------------------------- AUTORE: 482 DATA :07/03/2007 - 08:06:18 ---------------------------------------- Devi avere il pacchetto NI vision... senno' riesci ad acquisire ma il "controllo" delle immagini diventa veramente faticoso... ---------------------------------------- AUTORE: 384 DATA :07/03/2007 - 08:14:31 ---------------------------------------- E poi, non c'è un VI (già pronto) che faccia il controllo. Naturalmente dovrai sviluppare tu il tuo controllo con le funzioni che troverai a tua diaposizione in quel toolkit. ---------------------------------------- AUTORE: 1669 DATA :07/03/2007 - 18:34:44 ---------------------------------------- ciao ma il mio professore ha detto che è sufficiente avere i drivers adatti e poi utilizzarli con il labview..ma non mi ha parlato di NI VISION. fatemi sapere grazie ed a presto ---------------------------------------- AUTORE: 482 DATA :08/03/2007 - 07:28:40 ---------------------------------------- Magari nei pc che usi col tuo professore la libreria Vision è già installata. Nella palette di labview dal diagramma cerca la categoria vision, se la trovi guardaci e se vedi solo VI per acquisizione allora hai l'NI-IMAQ e puoi acquisire, se hai anche altri VI vuol dire che hai il vision installato, e per capire cosa fanno i vari vi ti direi di usare l'example finder e smanettare un po'. Senza il pacchetto vision non dico che è impossibile ma è veramente veramente ardua, soprattutto per qualcuno che a quanto ho capito non sa niente di visione artificiale. \":wink:\" ---------------------------------------- AUTORE: 1669 DATA :08/03/2007 - 15:26:17 ---------------------------------------- ciao ho fatto come mi hai detto..mi appaiono tanti IMAQ write image...IMAQ read image.. che significa? ---------------------------------------- AUTORE: 482 DATA :08/03/2007 - 16:59:00 ---------------------------------------- vuol dire che l'NI-IMAQ è installatoe quindi l'acquisizione video. Se hai oltre all'NI-IMAQ dei gruppi tipo: Vision Utility Image Processing allora c'e anche il vision e sei a cavallo se i due che ho citato non ci sono sei a cavallo di un asino zoppo purtroppo per te. Ma siamo ottimisti, Se i vi ci sono: da LabVIEW vai su: Help->Find Examples->Toolkit and Modules->Vision Li trovi dei begli esempi di programmazione per la visione artificiale che potrebbero essere il punto di partenza adatto \":wink:\" ---------------------------------------- AUTORE: 1669 DATA :08/03/2007 - 17:58:54 ---------------------------------------- ok in vision infatti c'è 3.applications e poi meter example. questo meter example mi è stato indicato dal professore proprio come punto di partenza. infatti ho iniziato a studiarlo (il meter example) ma non ci ho capito nulla. ho capito solo che questo meter example effettua una simulazione di acquisizione..nel senso che le immagini le prende da una cartella e non da una webcam (come dovrei fare io) ed ho capito che ci sono 7 cicli in parallelo. qualcuno ha presente questo meter example? me lo potete spiegare passo passo ? aiutatemi ---------------------------------------- ================================================================================ cosa è ROI ? ================================================================================ AUTORE: 1669 DATA :06/03/2007 - 20:40:24 ---------------------------------------- Perfavore mi spiegate cosa significa ROI ? grazie ---------------------------------------- AUTORE: 1669 DATA :06/03/2007 - 21:08:12 ---------------------------------------- [quote="jurij":1nsxr3qy]Perfavore mi spiegate cosa significa ROI ? grazie[/quote:1nsxr3qy] ed anche a che serve INVOKE NODE Grazie ---------------------------------------- AUTORE: 1030 DATA :07/03/2007 - 07:58:00 ---------------------------------------- ROI potrebbe significare molte cose, prova a spiegare quello che stai facendo;comunque se stai lavorando con delle immagini, ROI potrebbe essere la Region Of Interest utilizzata per esempio quando vuoi fare una misura di contrasto. Per quanto riguarda l'Invoke Node (in LabVIEW) è un modo per ottenere un riferimento ad un oggetto, per esempio un indicatore o un controllo, attraverso il quale puoi invocare i suoi metodi. ciao ---------------------------------------- AUTORE: 1669 DATA :07/03/2007 - 18:29:43 ---------------------------------------- ciao praticamente devo studiare uno VI di esempio che si chiama METER EXAMPLE che si trova già nel labview. Infatti studiandomi questo devo creare uno strumento simile ma che mi permette di acquisire immagini da una webcam (posizionata su una bottiglia). Devo versare del liquido nella bottiglia e controllare il livello. Quindi sul VI mi deve apparire la bottiglia (immagine della webcam) e devo fissare un livello massimo...una volta che il liquidi ha raggiunto questo livello..questo VI deve comandare una elettrovalvola per chiudere il tubo che versa il liquido nella bottiglia. A questo punto il mio professore mi ha detto di studiarmi questo METER EXAMPLE per poter implementare il mio progettino... se avete consigli..sono ben accetti fatemi sapere a presto ---------------------------------------- AUTORE: 1030 DATA :08/03/2007 - 08:24:28 ---------------------------------------- Ciao, quali sono le tue conoscenze LabVIEW? Se sei proprio all'inizio di consiglio di fermarti qualche giorno e di studiare un pò di programmazione LabVIEW; poi prova a vedere cosa trovi in letteretatura e in seguito a proporre anche una tua soluzione. Perderai un pò di tempo all'inizio ma se capisci quello che fai poi sarai molto molto più veloce. Non avere paura di dire delle "sciocchezze",te lo dico perchè un utente che chiede aiuto ma che dimostra di ragiore sul problema trova molto più disponibilità da parte degli utenti ilvg Io non ho mai lavorato nello specifco con webcam e acquisizoni immagini ma sul forum sicuramente troverai qualcuno esperto disponibile a darti una mano. ciao ciao ---------------------------------------- AUTORE: 1669 DATA :08/03/2007 - 15:18:58 ---------------------------------------- sinceramente sono all'inizio..e non so da dove iniziare..anche prendendo come esempio METER EXAMPLE presente su labview..mom capisco a cosa servono tutte le subvi presenti. Help è utile ma non per un principiante..non so che fare..aiutatemi grazie ---------------------------------------- AUTORE: 4 DATA :08/03/2007 - 17:09:23 ---------------------------------------- Ok, calma e sangue freddo. Inizia leggendo [url=http://www.ilvg.it/forum/download.php?id=888:104r6p12]questo articolo[/url:104r6p12], giusto per introdurti a labview. Ciao ---------------------------------------- AUTORE: 1669 DATA :08/03/2007 - 18:00:53 ---------------------------------------- ok me lo leggo. qualcosa ho già fatto in laboratorio con labview ma erano delle prove guidate..nel senso che avevo già gli schemi del block diagram. grazie ---------------------------------------- AUTORE: 1669 DATA :08/03/2007 - 21:32:24 ---------------------------------------- ho trovato questo VI :si chiama IMAQ Find Horizontal Edge, può essermi utile per quello che devo fare? fatemi sapere grazie ---------------------------------------- AUTORE: 482 DATA :09/03/2007 - 07:19:55 ---------------------------------------- Il consiglio migliore credo che sia, se hai a disposizione il Vision Assistant è di aprirlo e smanettarci, cosi0 hai adisposizione in tempo reale le possibili analisi che potresti fare. ---------------------------------------- AUTORE: 1669 DATA :09/03/2007 - 07:53:46 ---------------------------------------- si ho il vision assistant..ma con questo posso effettuare la simulazione dell'acquisizione di immagini? nel senso che posso scattare delle foto sulla bottiglia ed utilizzare queste per simulare senza necessariamente acquisire dalla webcam? grazie ---------------------------------------- AUTORE: 1669 DATA :09/03/2007 - 11:15:51 ---------------------------------------- posso postarvi la schermata del VI in modo tale che possiate spiegarmi come funziona lo strumento di esempio ? fatemi sapere grazie tanto ---------------------------------------- AUTORE: 482 DATA :12/03/2007 - 07:15:58 ---------------------------------------- Juri..pero' il lavoro lo devi fare tu accipicchia!!! Prendi gli help dei vari programmi e te li leggi, se non sai l'inglese te li leggi con un dizionario. Apri gli esempi e provi a mandarli in run per vedere cosa succede ecc ecc.. Nel Vision assistant stesso...hai fatto una domanda... cacchio se tu apri uno degli esempi e poi fai partire la simulazione lo vedi subito che puoi simulare un acquisizione! \":?\" ---------------------------------------- AUTORE: 1669 DATA :12/03/2007 - 07:26:51 ---------------------------------------- si infatti l'ho quasi ultimato e funziona, devo solo definire le ultime cose. grazie di tutto ---------------------------------------- ================================================================================ Utilizzo di 2 moduli in parallelo ================================================================================ AUTORE: 1896 DATA :07/03/2007 - 10:36:36 ---------------------------------------- Buon giorno, come nuovo utente vorrei proporre il seguente problema: vorrei far aquisire 2 moduli in parallelo con differente frequenza. Ho provato a scorrere l'intero forum e copiare gli esempi allegati, ma non riesco a far lavorare in parallelo i due moduli. Di seguito allego il VI per darvi la possibilità di visionare e scovare eventuali errori, ogni eventuale consiglio è molto ben accetto. La configurazione hardware è la seguente: NI SCXI 1000:"Dev1" 1: NI SCXI-1600:"Dev1" accessory: NONE 2: NI SCXI-1102C:"SC1Mod2" accessory: SCXI-1303 3: NI SCXI-1140:"SC1Mod3" accessory: SCXI-1301 4: NI SCXI-1163:"SC1Mod4" accessory: SCXI-1326 Configurazione del modulo SCXI-1600: Cabled Device: NONE Digitizer Device: NONE Operating Mode: Multiplexed Mode Connected Accessory: NONE Slot Number: NA Labview versione 8.2 Per la mia tesi di laurea dovrei aquisire dati in parallelo fra i due moduli, uno per la lettura di termocoppie ( quindi con una frequenza attorno ad 1 Hz), l'altro per la lettura di tensione/corrente ( frequenza fino a 10KHz). Purtroppo fino ad ora non sono riuscito a far lavorare i due moduli (1102C e 1140) insieme per poter poi salvarli (sono molto ben accetti consigli su come salvare una mole di dati considerevoli sfruttando le code senza appesantire l'elaborazione dei dati) ed analizzarli successivamente. Ho provato anche ad aquisire in parallelo da 2 termocoppie sul modulo 1102C, ma il risultato è sempre il medesimo: viene elaborata solo una termocoppia, quindi funziona solo un ciclo, l'altro è totalmente fermo. Una volta premuto il tasto Booleano di Stop, mi viene visualizzato l'errore 50103 sull'icona del DAQmx Clear Task del ciclo che rimane fermo. Ho provato anche a creare 2 tasti di Stop distinti per i due cicli, ma viene visualizzato sul Waveform Chart solo un ciclo, l'altro parte solo quando fermo il primo. Sembra che i cicli siano in serie e non paralleli. Ringrazio anticipatamente ---------------------------------------- AUTORE: 247 DATA :07/03/2007 - 10:48:33 ---------------------------------------- Ciao, i tuoi due loop in parallelo non lavorano perchè è sbagliato il modo in cui tenti di stoppare il loop sopra, così come l'hai collegato questo loop non parte finchè non termina il loop sotto e quando parte fa una sola iterazione. Il problema sta nel fatto che se colleghi in ingresso un dato ad una struttura, la blocchi finchè tal dato non si rende disponibile. Nel tuo caso il lopp sopra attende la disponibilità dell'ingresso booleano(filo verde in ingresso) che proviene dal loop sotto, questo dato viene però reso disponibile solo altermine del loop sotto dato che per quest'ultima struttura rappresenta un dato in uscita.... Soluzion i possibili: a) elimina il filo che va dal loop sotto a quello sopra e stoppa il loop sopra sfruttando una variabile locale del pulsante di stop del loop sotto. BYE. ---------------------------------------- AUTORE: 1896 DATA :08/03/2007 - 08:49:09 ---------------------------------------- Grazie mille Apollon per il suggerimento, lunedi sarà mia premura provare il tuo consiglio, guardando sul manuale come si crea una variabile locale eheh. Se qualcuno ha qualche critica, suggerimento sulla VI, su possibili alternative, modi per salvare i dati (dato che il flusso sarà parecchio grande), è molto ben accetto e anticipatamente ringrazio. Buona giornata ---------------------------------------- AUTORE: 1896 DATA :12/03/2007 - 13:34:42 ---------------------------------------- Ringrazio nuovamente Apollon per i consigli. Stamattina ho applicato quanto da te detto e allego di seguito il VI risultante. Ho riscontrato nuovamente dei problemi: quando inizio l'aquisizione vengono visualizzati sul waveform solo i valori della temperatura, quella del voltaggio è completamente ferma. Inoltre, quando premo il pulsante di Stop, esce l'errore 50103 sull DAQmx Clear Task della task del voltaggio. L'errore che mi appare è: 50103 occured at DAQmx Read, possible reason: the specified resource is reserved: The operation not be completed as specified. Ho effettuato delle prove sul VI, eliminando il DAQmx Timing davanti ai due cicli, riesco ad aquisire da entrambi i moduli, ma il rate è casuale e ponendo un timing all'interno dei due cicli, noto in ogni caso che quando campiona un ciclo si "ferma" per permettere all'altro di estrapolare i valori. Non è che questo problema giunge dal fatto che, come descritto nel primo reply, la configurazione è impostata sul multiplexed mode e non sul parallelo? Ringrazio anticipatamente Saluti ---------------------------------------- AUTORE: 1896 DATA :02/04/2007 - 20:12:02 ---------------------------------------- Ripropongo il problema come scritto ne topic precedente, nella speranza che qualcuno possa illuminarmi. Grazie \":oops:\" ---------------------------------------- ================================================================================ Problema lettura dalla seriale ================================================================================ AUTORE: 1568 DATA :08/03/2007 - 09:49:18 ---------------------------------------- Allora, la mia è una domanda niubba. Ho dei dati in arrivo dalla seriale. Il PIC che me li invia mi manda un dato campionato con l'ADC su 10 bit, quindi ho prima il byte meno significativo e poi quello più significativo (di cui mi interessano i primi due bit). Come posso fare a leggere i dati dalla seriale e, a due a due, convertirli in un numero su 16 bit? Cioè vorrei prendere la stringa che esce da visa read, e a due a due convertire i caratteri nel valore decimale che rappresenta il segnale campionato dal PIC.... ---------------------------------------- AUTORE: 645 DATA :08/03/2007 - 09:56:04 ---------------------------------------- Con il VISA Serial READ leggi la stringa. Poi con le funzioni stringa puoi manipolare i caratteri per farne ciò che vuoi come se lavorassi sugli elementi di un vettore con le relative posizioni. Al momento mi viene in mente questo... ---------------------------------------- AUTORE: 1568 DATA :08/03/2007 - 10:02:24 ---------------------------------------- anche a me era venuto in mente ma non sonon molto pratico... in particolare non capisco come posso prendere a due a due i caratteri di questa stringa e convertirli in un numero su 16 bit ottenutto concatenando i due byte di cui i caratteri rappresentano il codice ASCII...non sò se mi sono spiegato bene spero di sì \":wink:\" ---------------------------------------- AUTORE: 645 DATA :08/03/2007 - 10:14:40 ---------------------------------------- Facciamo così: posta una stringa di esempio che puoi ricevere dal PIC. Poi proviamo... ---------------------------------------- AUTORE: 1568 DATA :08/03/2007 - 10:14:41 ---------------------------------------- anche a me era venuto in mente ma non sonon molto pratico... in particolare non capisco come posso prendere a due a due i caratteri di questa stringa e convertirli in un numero su 16 bit ottenutto concatenando i due byte di cui i caratteri rappresentano il codice ASCII...non sò se mi sono spiegato bene spero di sì \":wink:\" ---------------------------------------- AUTORE: 1568 DATA :08/03/2007 - 10:18:31 ---------------------------------------- cavolo mi ha spedito 2 volte lo stesso messaggio! \":lol:\" Allora l'esempio può essere questo: "abcdefgh" in ordine temporale. Per me ab cd ef gh sono i due byte di interesse e in totale rappresentano il valore del segnale campionato in To, 2To, 3To e 4To rispettivamente. io vorrei prendere ab e "trasformarlo" in nel valore numerico del segnale. ---------------------------------------- AUTORE: 645 DATA :08/03/2007 - 10:25:55 ---------------------------------------- Ma se isolo "ab" dalla stringa intera devo poi fare una conversione o "ab" è già un numero decimale? Esempio: STRINGA=10203040 dove i numeri che mi servono sono 10, 20, 30, 40. ---------------------------------------- AUTORE: 1568 DATA :08/03/2007 - 10:41:59 ---------------------------------------- Non saprei. Cioè io con il pic invio questi due byte i cui primi 10 bit rappresentano il valore, in termini di LSB, del segnale campionato. Ad esempio mettiamo che mandi il valore 243 espresso però sui due byte (primi 8 bit meno significativi e restani 2 bit rispettivamente) quello che mi legge il serial read dalla seriale di preciso cos'è? io credo ch mi dia il corrispondente ascii del byte che leggo però non sò con certezza chiedo conferma ai più esperti. ---------------------------------------- AUTORE: 645 DATA :08/03/2007 - 10:49:57 ---------------------------------------- Cerca di scoprire cosa ti invia il PIC esattamente. Poi il blocco VISA READ ti restituisce quello che trova senza elaborazioni particolari (a meno che tu non voglia...). Dopo aver letto la stringa (ecco perchè devi sapere come interpretare i dati letti) trascuri la parte che non ti serve e vai alla ricerca dei valori interessanti. ---------------------------------------- AUTORE: 1568 DATA :08/03/2007 - 11:23:17 ---------------------------------------- il °PIC mi invia un numero espresso su dieci bit ( perciò da a 1023), su questo non ci piove. Il discorso è capire cosa legge la seriale, ma probabilmente legge direttamente il numero. quindi il mio problema si riduce a prendere due byte dalla seriale e considerarne solo i primi 10 bit per restituire il valore effettivamente campionato, come fare? ---------------------------------------- AUTORE: 129 DATA :10/03/2007 - 14:09:12 ---------------------------------------- Questo esempio allegato trasforma una stringa in un array di stringhe composte dalle coppie di caratteri della stringa in ingresso. Basta modificare la costante in ingresso dello split 1D array, per modificare il taglio da 2(coppie) al valore di caratteri desiderato. ---------------------------------------- ================================================================================ come colorare il box contenente una stringa ================================================================================ AUTORE: 1628 DATA :08/03/2007 - 11:38:17 ---------------------------------------- ciao,avrei bisogno di un consiglio...praticamente tramite acquisizione con telecamera effettuo la lettura OCR...ora in base allo score ottenuto vorrei colorare la casellina contenente il singolo carattere letto in questo modo: -verde se lo score è maggiore di 700 -giallo se lo score è compreso tra 500 e 700 -rosso se lo score è inferiore a 500 cè qualcuno che mi potrebbe dare un consiglio su cosa utilizzare per fare ciò?io per il momento ho fatto un semplice algoritmo che,in base allo score mi restituisce vero per una delle condizioni precedenti.non so però come poter colorare la casellina corrispondente al carattere...vi allego l'algoritmo semplicissimo che ho fatto ---------------------------------------- AUTORE: 645 DATA :08/03/2007 - 12:35:09 ---------------------------------------- Guarda l'allegato... usa "Color Box Constant" nelle "Picture Functions" del Block Diagram (paletta "Graphics & Sounds"). ---------------------------------------- AUTORE: 1628 DATA :09/03/2007 - 08:20:59 ---------------------------------------- io ho la versione 8 di labview e non riesco ad aprire il file... ---------------------------------------- AUTORE: 1628 DATA :09/03/2007 - 09:00:09 ---------------------------------------- scusa se faccio un nuovo post ma volevo anche chiederti nel caso io avessi un array di caratteri se fosse possibile con quella funzione che tu hai detto poter colorare ogni casellina dell'array in base allo score ottenuto dal singolo carattere. grazie!! ---------------------------------------- AUTORE: 645 DATA :09/03/2007 - 09:55:27 ---------------------------------------- Ho convertito il VI e aggiunto una sezione per gli array... ma non riesco a cambiare il colore della singola casella. Ho provato con un sacco di Property Node riferiti al testo e al colore ma non riesco: si colora tutto l'array, non riesco ad isolare il singolo elemento. Qualcuno ha qualche idea? Un topic simile è viewtopic.php?t=2651&highlight=colorare ---------------------------------------- AUTORE: 1628 DATA :09/03/2007 - 10:28:53 ---------------------------------------- ok grazie...per quanto riguarda l'array ora provo io a risolvere il problema...l'importante per me era capire come funzionasse il colour box constant. Grazie di nuovo...ps. naturalmente se qualcuno ha qualche idea per l'array può postare:))) ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 09:23:37 ---------------------------------------- In un array, che io sappia, NON si possono modificare le proprietà grafiche di ogni singolo elemento. ---------------------------------------- AUTORE: 927 DATA :13/03/2007 - 13:13:19 ---------------------------------------- Confermo, non si può, anch'io c'ero impazzito... Però si può, per quanto riguarda i colori, in una Multicolumn Listbox ---------------------------------------- ================================================================================ identificazione task ================================================================================ AUTORE: 1308 DATA :08/03/2007 - 12:45:21 ---------------------------------------- ciao a tutti, come consigliatomi da lacuni di voi sto abbandonando l'uso dei virtual expres che piu comodi per principianti ma che possono creare problemi. quindi mediante un example ho trovato l'aquisizione di un canale analogico, preso singolarmente funziona, poi ho duplicato lo stesso "schema" per aggiungere un altro canale ed ecco i problemi, gli errori mi parlano di un unnamed_task e tra parentesi mi bette dei numeri, mi da anche un codice di errore ma non riesco a trovare una guida sulla risoluzione del problema mediante questi numeri di riferimento. allego il VI e una immagine di uno degli errori. sto usando LV 8.2 ---------------------------------------- AUTORE: 482 DATA :08/03/2007 - 13:08:34 ---------------------------------------- Il problema è semplice. Tu lanci due vi separati che fanno riferimento alla stessa risorsa cioè il Dev1. Per ovviare a questa cosa dvei far leggere i due canali con lo stesso VI. Cioè all'ingresso physical channelS devi inserire i due canali e non uno solo. Ovviamente poi il DAQmx Read non andrà piu' a leggere il SIngle Channel ma dovrai metterlo su multiple channels nel modo che preferisci. Per la sintassi di come inserire i due canali ti riporto qui il testo contenuto nell'help di labVIEW: Physical Channel Syntax Use this syntax to refer to physical channels and groups of physical channels in NI-DAQmx. Physical Channel Names Physical channel names consist of a device identifier and a slash (/) followed by a channel identifier. For example, if the physical channel is Dev0/ai1, the device identifier is Dev0, and the channel identifier is ai1. MAX assigns device identifiers to devices in the order they are installed in the system, such as Dev0 and Dev1. You also can assign arbitrary device identifiers with MAX. For analog I/O and counter I/O, channel identifiers combine the type of the channel, such as analog input (ai), analog output (ao), and counter (ctr), with a channel number such as the following: ai1 ctr0 For digital I/O, channel identifiers specify a port, which includes all lines within a port: port0 Or, the channel identifier can specify a line within a port: port0/line1 All lines have a unique identifier. Therefore, you can use lines without specifying which port they belong to. For example, line31—is equivalent to port3/line7 on a device with four 8-bit ports. Physical Channel Ranges To specify a range of physical channels, use a colon between two channel numbers or two physical channel names: Dev0/ai0:4 Dev0/ai0:Dev0/ai4 For digital I/O, you can specify a range of ports with a colon between two port numbers: Dev0/port0:1 You also can specify a range of lines: Dev0/port0/line0:4 Dev0/line0:31 You can specify channel ranges in reverse order: Dev0/ai4:0 Dev0/ai4:Dev0/ai0 Dev0/port1/line3:0 Physical Channel Lists Use commas to separate physical channel names and ranges in a list as follows: Dev0/ai0, Dev0/ai3:6 Dev0/port0, Dev0/port1/line0:2 ---------------------------------------- AUTORE: 1308 DATA :08/03/2007 - 14:27:05 ---------------------------------------- grazie tantissimo, avevo provato ad aggiungere piu di un canale nello stesso phys channel ma sbagliando la sintassi mi dava errore. qui ho risolto il problema e ti ringrazio perche ho imparato qualcosa di importante. ora ho un altro problema, continua a darmi errore nonostante io abbia modificato anche il DAQmx reader The specified resource is not available. The operation could not be completed as specified. per aggiungere un canale nello physical channel ho usato qst sintassi: Dev1/ai3:Dev1/ai4 mi confermate la sintassi ? ---------------------------------------- ================================================================================ Macchina a stati ================================================================================ AUTORE: 904 DATA :08/03/2007 - 16:21:30 ---------------------------------------- Gentili lettori del forum , Per cortesia , avrei una domanda in merito a una soluzione per un problema di programmazione che non riesco a risolvere . Sto utilizzando all'interno di un ciclo while loop una macchina a stati per svolgere sequenzialmente delle operazioni consecutive . Mi interesserebbe implementare durante uno step della macchina a stati una operazione ripetitiva (tipo accendere un led per un numero di volte variabile e poi procedere allo step successivo della macchina a stati ). Sapere propormi un esempio oppure la via migliore per risolvere questo problema ? Rimango in attesa di un vostro riscontro Ringrazio anticipatamente . CIAOOOOOOOOO \":D\" ---------------------------------------- AUTORE: 1313 DATA :08/03/2007 - 18:22:49 ---------------------------------------- Susami, ma non basta inserire un while nello stato?? Cris ---------------------------------------- AUTORE: 129 DATA :10/03/2007 - 14:27:27 ---------------------------------------- Un while loop è una soluzione ma ti obbliga ad attendere il completamento dello stesso prima di procedere al resto del programma, cosa non sempre gradita per chi deve avere possibilità di interruzione o chiamate disponibili. Potresti sfruttare lo stesso shift register dove passi gli stati e in quel frame, inserire un case o un select con le possibilità, per esempio se il led è acceso passa al frame successivo altrimenti ripeti questo frame. ---------------------------------------- ================================================================================ Stop VI se trigger non trovato ================================================================================ AUTORE: 1909 DATA :09/03/2007 - 10:20:56 ---------------------------------------- In una stato di una state machine viene eseguito un subvi che dovrebbe acquisire dati dalla scheda DAQ in caso di un trigger su un canale definito. Come faccio a terminare l'esecuzione del subvi nel caso in cui il trigger non venga intercettato dopo un tempo definito ? In modo da passare allo stato successivo . Allego il SubVI di acquisizione trovato tra gli esempi di Labview ---------------------------------------- AUTORE: 1909 DATA :12/03/2007 - 07:54:55 ---------------------------------------- Ho risolto in questo modo : Aspetto il time out dell' acquisizione e poi resetto l'errore generato e passo allo stato successivo . Questo rallenta un poi il mio main ma non ho trovato altre soluzioni . Aspetto suggerimenti ---------------------------------------- AUTORE: 927 DATA :12/03/2007 - 08:39:42 ---------------------------------------- Perchè rallenta? Se quello è il tempo massimo, è normale che si aspetti fino a quel tempo... ---------------------------------------- AUTORE: 1909 DATA :12/03/2007 - 09:01:21 ---------------------------------------- Hai ragione non è che rallento l'esecuzione in se , aspetto solo il timeout che imposto all origine . pensi che la soluzione trovata sia efficente , ho mi puoi suggerire una qualche altra soluzione ? ---------------------------------------- AUTORE: 927 DATA :12/03/2007 - 09:13:52 ---------------------------------------- Direi che va bene, dando per scontato che se il trigger arriva, lo fai smettere di aspettare! Se poi pensi che, mentre si aspetta, il programma potrebbe fare altre cose utili, prendi in considerazione l'uso di cicli paralleli. ---------------------------------------- ================================================================================ Comandare da Labview dsPic ================================================================================ AUTORE: 1911 DATA :09/03/2007 - 10:30:11 ---------------------------------------- Ciao a tutti! Premetto che sono una novella di LabView, quindi spero di riuscire a spiegare bene il mio problema. Io devo collegare al mio pc una MicroDSPic. Sulla Pic di questa scheda è caricato un programma in MicroBasic che mi deve far girare un motorino passo passo. In questo programma ho un ciclo for con una variabile n. Questa variabile n dipende da un valore che io in posto in LabView, da una distanza. In pratica in LabView imposto una distanza che va in un indicatore numerico, quando io clicco il pulsante "on", questa variabile dovrebbe essere acquisita dalla Pic e il motore inizia a girare. Ora non so se sono stata abbastanza chiara, sto trovando un pò di difficoltà. Grazie mille a chinque voglia aiutarmi. Ila ---------------------------------------- AUTORE: 247 DATA :09/03/2007 - 18:15:51 ---------------------------------------- Ciao, da ciò che scrivi non si capisce proprio quale sia il tuo attuale problema, se hai implementato correttamente il protocollo e settato correttamente la seriale non dovresti proprio averne...bello no \";-)\"? Hai già fatto qualche VI che possiamo controllare? BYE. ---------------------------------------- ================================================================================ Misura jitter in ambiente LabVIEW RT ================================================================================ AUTORE: 1458 DATA :09/03/2007 - 13:39:52 ---------------------------------------- Ciao a tutti. Volevo solo sapere se qualcuno ha eseguito dei test sull'ambiente operativo LabVIEW RT. So che ovviamente i risultati di questi test dipendono molto dall'hw utilizzato, ma volevo sapere se qualcuno riesce a dirmi un paio di numeri riguardo al jitter a cui i processi in LabVIEW RT sono soggetti. Grazie a tutti! \":wink:\" ---------------------------------------- AUTORE: 1458 DATA :11/03/2007 - 13:05:43 ---------------------------------------- up ---------------------------------------- ================================================================================ LETTURA barcode da PS/2 ================================================================================ AUTORE: 1913 DATA :09/03/2007 - 15:36:01 ---------------------------------------- ciao a tutti.... ho un problema.... dovrei interfacciare un lettore di codice a barre a labview... (METEOR FIDO).. per fare ciò avrei bisogno di mettermi in ascolta sulla porta ps/2 e prelevare le informazioni... "solo che nn so come fare" se qualcuno può aiutarmi gliene sarei grato..... HELP ME!!!!!! ---------------------------------------- AUTORE: 645 DATA :09/03/2007 - 16:46:18 ---------------------------------------- Sul sito della National non trovo nulla... però ci sono dei convertitori verso USB o Seriale e forse possono essere comodi. ---------------------------------------- AUTORE: 1913 DATA :09/03/2007 - 17:22:20 ---------------------------------------- quindi tu dici di convertirmi l'ingresso del lettore da ps/2 a rs232 ( o seriale)??in modo da andarmi a leggere i dati tramite VISA?? ---------------------------------------- AUTORE: 680 DATA :09/03/2007 - 17:57:10 ---------------------------------------- il lettore barcode non va in emulazione tastiera?? se è così basta che fai il focus sul controllo al quale va inserito il codice letto...... ---------------------------------------- AUTORE: 1165 DATA :10/03/2007 - 11:58:06 ---------------------------------------- Mi associo alla correttissima risposta che ti ha dato linux120. Ho proprio fatto una interfaccia di questo tipo poco fa, esattamente come ti ha detto linux. In genere i lettori di codici a barre hanno due connettori PS/2, uno maschio e uno femmina, cosicchè si interpongono tra la tastiera e il PC e vanno in emulazione di tasiera. Cioè leggono il tuo codice a barre esattamente come se tu lo digitassi dalla tastiera e, in genere, aggiungono alla fine il carattere invio (in Windows Carriage Retun+ Line Feed). Quindi non ti resta altro da fare che essere sicuro di fare click sul controllo alfanumerico dove vuoi scrivere il tuo codice appena letto. Questa operazione di fare click sul controllo può essere sostituita automaticamente dal richiamare programmaticamente il focus sul tuo controllo, in attesa (eventualmente ottenuta con un While Loop) che avvenga effettivamente la lettura. Ciao, enr. ---------------------------------------- ================================================================================ Lettura bilancia tramite seriale ================================================================================ AUTORE: 963 DATA :09/03/2007 - 16:05:40 ---------------------------------------- Ciao a tutti, io devo acquisire un segnale dalla seriale COM1 collegata ad una bilancia.. ho provato ad utilizzare il blocchetto VISA Configure Serial Port e VISA Read ma leggo solamente simboli "strani", tipo una "b" rovescia, il simbolo dell'euro, uno zero sbarrato ( non posso nemmeno copiarli QUI per farveli vedere ) che continuano a cambiare e solamente quando la bilancia va a fondoscale riesco a vedere dei valori stabili. Questo mi fa pensare che la connessione sia giusta. C'è qualcuno che ha ancora fatto un collegamento bilancia-computer-lettura con LabView e mi può spiegare come si fa? Grazie anticipatamente, Stefano P.S. Come il solito non mi sono spiegato molto bene ma spero che qualcuno capisca il mio problema.. ---------------------------------------- AUTORE: 645 DATA :09/03/2007 - 16:41:41 ---------------------------------------- Hai il protocollo di comunicazione? Intanto fai un giro nel forum: si è parlato spesso di comunicazione seriale, magari trovi qualcosa! ---------------------------------------- AUTORE: 482 DATA :12/03/2007 - 07:13:39 ---------------------------------------- EWh si concordo, credo che il tuo problema sia nel fatto che tu credi di poter collegare il cavo e leggere dei valori con un senso fin da subito. In realtà la comunicazione seriale, solitamente, si basa su una richiesta (fatta d ate) e una risposta data dallo strumento. Se tu non fai domande, lo strumento probabilmente butta fuori dati che a te non servono. O cmq senza protocollo non sei in grado di decifrare \":wink:\" ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 09:31:15 ---------------------------------------- Io rimango del parere che il primo approccio è da farsi con un normalissimo sw di "terminal" (senza andare oltre, l'hyperterminal di windows è sufficiente) per capire il funzionamento basico della "bestia". Per quanto la seriale sia usata da tantissimi anni, ognuno se la reinventa a piacere ogni volta e i manuali - solitamente - fanno pietà. ---------------------------------------- AUTORE: 1904 DATA :12/03/2007 - 09:49:54 ---------------------------------------- ma la bilancia dovrebbe rispondere direttamente con un valore numerico? probabilmente manda dei byte che devi elaborare in qualche modo, e quando vai a leggere la stringa li interpreta come caratteri ASCII... ciau ---------------------------------------- AUTORE: 963 DATA :12/03/2007 - 15:45:55 ---------------------------------------- Inanzitutto ringrazio tutti per aver risposto alle mie domande.. Finalmente sono riuscito a leggere, in carattere ASCII, le informazioni da una bilancia da laboratorio e attraverso un semplice VI posso visualizzare i valori numerici. Il problema, anche cambiando baud rate e configurazione della porta, è rimasto nella lettura da un'altra bilancia con la quale non visualizzo nè simboli ne numeri. Se qualcuno di voi ha avuto lo stesso problema mi potrebbe aiutare? Ciao, grazie Stefano ---------------------------------------- AUTORE: 645 DATA :12/03/2007 - 16:26:04 ---------------------------------------- Scusa la domanda: sei sicuro che la seconda bilancia funzioni? (puoi provare con Hyper Terminal). Può essere che il protocollo di comunicazione sia diverso? ---------------------------------------- AUTORE: 482 DATA :13/03/2007 - 07:32:29 ---------------------------------------- Sono tutte e due dello stesso tipo le bilance? Tutte e due hanno l'opzione seriale abilitata? ---------------------------------------- AUTORE: 963 DATA :14/03/2007 - 10:10:32 ---------------------------------------- Ciao a tutti e di nuovo grazie.. Ho trovato il protocollo della seconda bilancia e con l'Hyperterminal riesco a comunicare. Si usa il command U per cambiare l'unità di misura e il command <CR> è il carriage return character. Ho impostato sul blocco configure serial port 0D (=CR) ma non riesco a scrivere comunque.. vi allego il mio VI così se volete mi potete dire dove sbaglio.. ---------------------------------------- AUTORE: 645 DATA :14/03/2007 - 15:55:52 ---------------------------------------- Prova ad inserire un ritardo (parti da 1 s e poi diminuisci) tra la scrittura e la chiusura della comunicazione. Oppure clicca con il tasto destro del mouse sul blocco di scrittura e seleziona la voce "Sinchronous I/O mode--> Sinchronous". ---------------------------------------- AUTORE: 963 DATA :15/03/2007 - 08:51:10 ---------------------------------------- Fianalmente sono riuscito a comunicare.. era solo un problema di formato stringhe.. Mandavo alla bilancia un valore in hex che non corrispondeva ( per errore mio di conversione) al suo effettivo valore ASCII Grazie a tutti, ciao. Stefano ---------------------------------------- ================================================================================ web control ================================================================================ AUTORE: 1547 DATA :10/03/2007 - 16:24:48 ---------------------------------------- Salve ! devo realizzare una tesi che consiste nel realizzare un sistema per il controllo remoto via web dell’analizzatore di trasmissioni numeriche HP3784A per un utilizzo didattico dello strumento nel corso di Progettazione e Simulazione di Trasmissioni Numeriche. Qualcuno ha del materiale da mettere a disposizione , riferimenti bibliografici o indicazioni su siti che trattano l'argomento. Grazie ---------------------------------------- AUTORE: 384 DATA :12/03/2007 - 10:22:07 ---------------------------------------- Suggerimenti: -cerca se esiste il driver di LV per questo strumento (presso NI e HP(Agilent)); -se non c'è dovrai avere il manuale con il protocollo (cioè, il suo linguaggio di commandi); -procurati un convertitore GPIB-Ethernet -se non te lo danno, dovrai pensare a usare du PC; ad uno colegherai lo strumento cun una scheda GPIB e ci dovrà girare un piccolo sw che altro non fa che ricevere commandi via ethernet, girarli allo strumento, prenderne le risposte e girarle al "richiedente". Questo, in realtà è il "server". -su un'altro pc (potranno anche essere più di uno) ci sará il software che invia i comandi e visualizza le risposte. Questo è il "client". Guarda gli esempi di LV su comunicazione via rete. ---------------------------------------- AUTORE: 1547 DATA :12/03/2007 - 14:14:01 ---------------------------------------- Ciao in realtà non devo occuparmi del rapporto tra server e apparecchiatura perchè già sviluppato in una tesi precedente, devo progettare il collegamento tra server e client remoti via web. Cerco esempi e materiale su questo argomento . Controllerò gli esempi che mi hai indicato. Grazie ---------------------------------------- AUTORE: 645 DATA :12/03/2007 - 16:23:33 ---------------------------------------- Per lavorare tramite web LabView offre varie possibilità. Io ti suggerisco di guardare gli esempi contenuti nella directory di LabView, fare un giro sul sito www.ni.com inserendo "web" o "client" o "remote" nel motore di ricerca, scoprire quali driver stai usando per comunicare con lo strumento. Mi spiego: lo strumento è connesso direttamente in rete? Allora puoi guardare la comunicazione via TCP-IP... oppure è collegato ad un altro pc che a sua volta è collegato in rete? Allora puoi guardare i driver Traditional DAQ (se supportati) che offrivano la possibilità di lavorare sul pc remoto (e quindi sullo strumento remoto) direttamente dal proprio pc (in pratica sul tuo pc vedi le porte seriali del pc remoto collegato in rete e puoi usarle come se fossero porte seriali installate sul tuo pc locale). ---------------------------------------- ================================================================================ da numerico a booleano ================================================================================ AUTORE: 1669 DATA :10/03/2007 - 18:28:55 ---------------------------------------- ciao a tutti ho un problema da risovere ma mi serve un aiuto. In labview come posso convertire un valore numerico in uno booleano. mi spiego...voglio mettere delle condizioni su delle coordinate. se il valore della coordinata (y per esempio) supere un certo valore, allora si deve accendere un led..finchè il valore della coordinata non supera quel valore allora il led resta spento.. mi aiutate? grazie ---------------------------------------- AUTORE: 1165 DATA :11/03/2007 - 00:24:59 ---------------------------------------- Mi sembra che tu non debba fare nessuna conversione, devi solo fare un confronto fra il tuo numero in e il tuo valore di soglia. Il confronto è fatto da un piccolo blocchettino giallo triangolare che trovi nella palette del Block Panel. Questo blocchetto accetta in ingresso il valore numerico della tua coordinata e il valore della tua soglia e in uscita ti restituisce il valore booleano generato dal confronto. Come molte funzioni di Labview, questo blocchetto è anche polimorfo, cioè può anche accettare in ingresso un vettore di valori da confrontare con il valore scalare della tua soglia e in questo caso restituisce in uscita un vettore di booleani di stessa cardinalità del vettore di ingresso. Ciao e buon divertimento. Enrico. ---------------------------------------- AUTORE: 1669 DATA :11/03/2007 - 08:59:49 ---------------------------------------- ok già fatto ora ho un altro problema. Devo aquisire immagini continue tramite una webcam. Come posso fare per salvare la prima immagine (da quando parte l'aquisizione) per poter effettuare un controllo solo sulla prima imamgine. Cioè la prima immagine devo salvarla a parte rispetto alle altre (cioè quelle che vengono dopo) Vi ringrazio molto A presto ---------------------------------------- AUTORE: 129 DATA :11/03/2007 - 09:07:23 ---------------------------------------- Scusa, per una questione di visibilità, devi creare un nuovo topic per argomenti diversi. Altrimenti rischi che non ti risponda nessuno. ---------------------------------------- ================================================================================ aquisire la prima immagine a parte con webcam ================================================================================ AUTORE: 1669 DATA :11/03/2007 - 10:38:55 ---------------------------------------- Devo aquisire immagini continue tramite una webcam. Come posso fare per salvare la prima immagine (da quando parte l'aquisizione) per poter effettuare un controllo solo sulla prima imamgine. Cioè la prima immagine devo salvarla a parte rispetto alle altre (cioè quelle che vengono dopo) Vi ringrazio molto A presto P.s. inoltre vorrei sapere come si fa a far tornare false una variabile booleana al termine dell'esecuzione di un VI Garzie a tutti ---------------------------------------- AUTORE: 482 DATA :12/03/2007 - 07:08:58 ---------------------------------------- \":o\" \":o\" mi sembra che ci siano delle carenze di base esagerate pe rchiedere consigli... ...come si fa a far tornare false una variabile booleana al termine dell'esecuzione di un VI... Se ti serve per abverla a True alla prossima esecuzione basta inizializzarla cioe' dargli un True prima di utilizzarla, senno' in ogni caso gli passi un True quando ti serve. (In ogni caso è buona norma inizializzare sempre tutte le variabili) ..Per quanto rigarda l'immagine.. Essendo una acquisizione continua presumo che tu sia all'interno di un ciclo while.. Beh crei un Case che quando l'iterazione (i) è = a zero salvi l'immagine su file con l'apposito vi. ---------------------------------------- AUTORE: 1669 DATA :12/03/2007 - 09:47:40 ---------------------------------------- ciao praticamente ho già fatto tutto..cioè ho capito come fare l'aquisizione utilizzando IMAQ CREATE collegato ad IMAQ READ FILE che legge da un FILE PATH. Ora quello che voglio fare è: prima di iniziare l'aquisizione continua di delle immagini tramite la webcam per poi effettuare il controllo..voglio aquisire un singolo fotogramma..su questo fotogramma (immagine) devo fissare un limite superiore (una retta) con IMAQ SELECT LINE. Come posso fare a salvare la singola immagine ? Grazie A presto ---------------------------------------- AUTORE: 482 DATA :12/03/2007 - 15:30:40 ---------------------------------------- c'e' il modulino apposta per salvare le immagini su file, sfoglia bene la palette \":wink:\" ---------------------------------------- ================================================================================ Accensione temporizzata LED ================================================================================ AUTORE: 1876 DATA :12/03/2007 - 09:25:48 ---------------------------------------- Ciao a tutti! Probabilmente la mia è una domanda un pò stupida ma sono molto poco esperto di Labview. Premetto di averne la versione 8.2. Ho realizzato un VI nel quale a seconda del verificarsi o meno di certe condizioni mi si accende un led, io vorrei crecare id far accendere il led solo per un paio di secondi o comunque per un intervallo di tempo limitato dopodichè farlo tornare allo stato di default (spento)... Qualuno mi sa dire per favore se e come è possibile? Grazie, Ciao. ---------------------------------------- AUTORE: 129 DATA :12/03/2007 - 12:51:16 ---------------------------------------- Anzichè collegarti direttamente al led, puoi collegarti ad un case, in cui all'interno del frame true è collegato il tuo led in un iterazione while o for, con un temporizzatore al termine del tempo prefissato il led si spegnerà in uscita. Guarda l'esempio come spunto, ovviamente esistono un infinità di metodi, ma come inizio penso che questo possa avvicinarsi alla logica di funzionamento del tuo VI. ---------------------------------------- AUTORE: 1876 DATA :12/03/2007 - 13:02:33 ---------------------------------------- Grande Funziona!!! Grazie, non ci avevo pensato ad una soluzione del genere. Ciao! ---------------------------------------- ================================================================================ Come calcolare valore Hex avendo 3 bytes ================================================================================ AUTORE: 1919 DATA :12/03/2007 - 17:07:19 ---------------------------------------- Salve a tutti questo è il mio primo post, sono un vecchio utente di Labview che si è fermato alla versione 4 ( l'avevo pagata una follia all'epoca) poi ho litigato con NI e la sua politica ed ho smesso di usarlo. Ogni tanto però lo riprendo in mano per correggere il lavoro fatto. Il mio quesito è abbastanza semplice ho 3 bytes hex: low byte medium byte high byte Quale è la formula corretta per calcolare il valore Hex che questi bytes rappresentano ? low byte+ medium byte x 256 + ?? Grazie in anticipo per l'aiuto ! ---------------------------------------- AUTORE: 680 DATA :12/03/2007 - 19:39:24 ---------------------------------------- devi prima unire insieme i tre byte e poi convertirli in hex esempio: high byte: 10011010 medium byte: 01010110 low byte: 10111001 byte COMPLESSIVO: 100110100101011010111001 in hex= 9A56B9 spero di aver capito bene il tuo quesito........ ciao....... ---------------------------------------- AUTORE: 1919 DATA :12/03/2007 - 19:45:29 ---------------------------------------- Grazie per la risposta ma in realtà volevo sapere una cosa più semplice, alla fine ho trovato: valore hex = low byte + medium byte * 256 + high byte * 65536 Grazie ---------------------------------------- AUTORE: 4 DATA :13/03/2007 - 02:45:36 ---------------------------------------- puoi usare la funzioni [b:itz1lsz1]join[/b:itz1lsz1] per fare questa cosa. Non mi chiedere dov'e' perche' non ho labview sottomano e la memoria e' quella che e'. Ciao ---------------------------------------- ================================================================================ Chiedo aiuto per PROGRAMMA PARTICOLARE ================================================================================ AUTORE: 1920 DATA :12/03/2007 - 22:03:59 ---------------------------------------- Salve a tutti, avrei bisogno di realizzare un programmetto insolito con Labview 8. Purtroppo non conosco bene il software, come del resto nessun altro dei miei amici e colleghi. Spero che possiate darmi voi qualche dritta... In generale si tratta di questo: Un segnale acustico viene ricevuto ad intervalli random, da 1 a 3 secondi, per una durata di circa 1 secondo. E' un segnale abbastanza puro, quindi è isolabile una frequenza principale, con leggero rumore. Avrei bisogno di creare un programma che faccia questo: Quando viene attivato MANUALMENTE uno switch, dovrebbe partire un timer, nonchè l'acquisizione audio tramite la normalissima presa microfono del pc. Ogni volta che viene ricevuto il segnale, vorrei che mi si segnasse, in un array (o qualcosa di simile), il numero sequenziale (cioè 1, 2, 3,..., n) ed il relativo TEMPO (assoluto, a partire dl tempo di inizio acquisizione, oppure dall'ultima ricezione...), in modo da poter successivamente graficare il tutto per punti, facendo interpolazione dei dati e mandando magari ad altri programmi. La cosa importante è che anche se il segnale viene ricevuto per 3 secondi di fila, venga contato 1 solo punto. Vi ringrazio anticipatamente per qualunque ritta e consiglio ---------------------------------------- AUTORE: 1871 DATA :13/03/2007 - 11:01:11 ---------------------------------------- Spiegati meglio su come deve avvenire l'acquisizione, perchè non mi sembra molto chiaro. ---------------------------------------- AUTORE: 645 DATA :13/03/2007 - 12:53:41 ---------------------------------------- Vediamo... tu ricevi il segnale e riesci a distinguerlo dal resto (tramite Fourier o analisi delle frequenze?). Quando lo trovi devi segnarti in un array che il segnale è stato trovato con il tempo assoluto. Giusto? Se è così hai bisogno di hardware in grado di campionare il segnale che vuoi analizzare (cerca una scheda di acquisizione) e poi in LabView devi preparare un ciclo che analizza il segnale e se trova ciò che ti interessa registra in un array la data e l'ora correnti (ci sono i blocchi per la gestione della data e ora in LabView, in particolare quello che l'acquisizione di data e ora correnti). Il pezzo forte è il riconoscimento del segnale: come avviene? ---------------------------------------- AUTORE: 1920 DATA :13/03/2007 - 13:19:37 ---------------------------------------- Allora, il segnale è un tono udibile, suigli 800 Hz, quindi è facilmente riconoscibile da eventuali rumori ecc. e viene quindi filtrato in frequenza dal resto. Non serve altro Hardware visto che il segnale entra dalla scheda audio; sono riuscito ad impostare la "risoluzione" di acquisizione, con tempi comandati da me, ad analizzare il contenuto in frequenza e filtrarlo, senza problemi. Ora però non so come far si che: [u:2m8h1t15]SOLO SE il segnale supera una certa ampiezza[/u:2m8h1t15] (Per evitare cioè rumori di fondo o interferenze) [u:2m8h1t15]venga registrato in un array o qualunque altra cosa, insieme al tempo[/u:2m8h1t15]. (Il tutto contando che il segnale, anche se dura 1, 3, o 10 secondi deve essere contato come 1 sola acquisizione) Il fine mio sarebbe di poter vedere, ad esempio in una registrazione di 3 minuti, quante ricezioni si hanno e a che intervallo di tempo. Questo perchè mi occorrerebbe graficare su un normale cartesiano (Numero impulso/Istante di ricezione). Spero di aver chiarito un po più la cosa Sapete darmi qualche consiglio? ---------------------------------------- AUTORE: 1920 DATA :13/03/2007 - 13:22:38 ---------------------------------------- [quote="Il_Luce":27r4d3v9] venga registrato in un array o qualunque altra cosa, insieme al tempo [/quote:27r4d3v9] Mi sono espresso un po male: non voglio registrare il segnale, mi serve solo un contatore progressivo ( Es: primo segnale a 2 secondi dall'inizio, 2° a 5 secondi, 3° a 12 secondi ecc, in forma di matrice, tabella o quel che sia...) ---------------------------------------- AUTORE: 1871 DATA :13/03/2007 - 14:01:05 ---------------------------------------- Potresti impostare 2 soglie: t1 e t2 con t1 > t2. Quando il segnale in ingresso supera t1 (basta un banale comparatore) si ritiene che sia segnale utile, e quindi fai generare un timestamp e incrementi un contatore. Quando il livello di segnale torna sotto t2 si ritiene che non ci sia più il segnale. Ovviamente t1 e t2 doresti sceglierli tu in modo appropriato, non troppo differenti nè troppo vicini, e dipendono dalla qualità del segnale. ---------------------------------------- AUTORE: 1920 DATA :13/03/2007 - 14:09:25 ---------------------------------------- Ti ringrazio molto, credo che così potrebbe funzionare. Quale comparatore dovrei usare? La funzione "timestamp" la trovo nel gruppo timing? (Purtroppo quello che so fare con Labview è tutto auto-imparato, poichè non ho manuali nè la possibilità di seguire corsi, quindi scusatemi se alcune cose non mi sono ben chiare...) ---------------------------------------- AUTORE: 1871 DATA :13/03/2007 - 14:19:19 ---------------------------------------- Ma figurati, anche io sono un "quasi" auto-didatta, e sono lontano anni luce dall'essere esperto. Un comparatore è semplicemente quel blocchetto triangolare giallo con il segno di maggiore (o minore). Lo trovi facilmente nelle palette, ma non ricordo dove, visto che non ho il labview. Per il timestamp non lo so dove lo trovi (leggi sopra), ma credo che nel gruppo timing ci sarà di sicuro qualcosa. In internet riesci a trovare dei manuali, provaci. Chi cerca trova. ---------------------------------------- AUTORE: 1165 DATA :13/03/2007 - 18:40:33 ---------------------------------------- Per le comparazioni a doppia soglia (tipo trigger di schmidt) prova a guardarti anche questo esempio che avevo postato tempo fa: viewtopic.php?t=1517 e poi semmai richiedi. Posso io invece chiederti dove studi o lavori? Ciao, Enrico. ---------------------------------------- AUTORE: 1920 DATA :13/03/2007 - 19:28:17 ---------------------------------------- appena ho tempo, do un'occhiata, grazie!... Io abito a Passignano sul Trasimeno, e studio ingegneria meccanica a Perugia ---------------------------------------- AUTORE: 1920 DATA :13/03/2007 - 19:46:59 ---------------------------------------- Per il momento sono riuscito a creare uno strumento che acquisisce segnali via microfono con tempo di campionamento variabile dall'utente. Il segnale viene filtrato in frequenza e se supera una soglia di rumore specificata dall'utente, fa accendere un led. Quindi ora mi serve che quando sto led si accende venga salvato il tempo e incremetato un contatore. Il secondo non sarà il problema, ma torno sempre a sbattere la testa su questo tempo.... ---------------------------------------- AUTORE: 384 DATA :14/03/2007 - 08:09:00 ---------------------------------------- [quote="Il_Luce":309gypak]Quindi ora mi serve che quando sto led si accende venga salvato il tempo e incremetato un contatore. Il secondo non sarà il problema, ma torno sempre a sbattere la testa su questo tempo....[/quote:309gypak] Nella palette "Time&Dialog" trovi tutti i blocchi per gestire il tempo sia relativo che assoluto. Poi, l'hai detto tu stesso, quando il LED si acende - e solo in quel momento - prendi il valore di data e ora, oppure un tempo assoluto e lo [b:309gypak][u:309gypak]accodi[/u:309gypak][/b:309gypak] al tuo array. Quindi devi solo rilevare la [b:309gypak][u:309gypak]transizione[/u:309gypak][/b:309gypak]! (palette Analyze/Point By Point/Other Functions PtByPt) ---------------------------------------- AUTORE: 1871 DATA :14/03/2007 - 08:09:25 ---------------------------------------- Tra le palette deve sicuramente esistere qualcosa che ti dia un tempo. Ad esempio un blocco che ricava l'ora di sistema, non posso immaginare che in labview non esista qualcosa di questo tipo. Quando lo troverai ti basterà fare un if-case, in modo che quando il segnale supera la soglia ti salvi l'ora in un array (con l'array non hai nemmeno bisogno del contatore) ---------------------------------------- AUTORE: 645 DATA :14/03/2007 - 09:54:55 ---------------------------------------- Nella paletta Timing trovi i blocchi per la gestione del tempo, la formattazione con o senza secondi, la formattazione della data e trovi il bblocco "Get Time": acquisisce data e ora correnti e li rende disponibili al VI. ---------------------------------------- AUTORE: 1920 DATA :14/03/2007 - 19:22:44 ---------------------------------------- Ci sto provando a tempo perso. Purtroppo la paletta timing non è chiarissima... Pian piano proverò a far saltar fuori qualcosa... Sto lavoro riesce meglio sulla Ti89... \":roll:\" ---------------------------------------- AUTORE: 384 DATA :15/03/2007 - 07:49:16 ---------------------------------------- [quote="Il_Luce":1g6563f5]Ci sto provando a tempo perso. Purtroppo la paletta timing non è chiarissima...[/quote:1g6563f5] Quello che faccio io, quando devo prendere conoscenza con nuove funzioni di LV (per una nuova versione, per esempio) è piazzare le nuove funzioni in un diagramma e guardarne subito l'help in linea, e subito dopo gli esempi. ---------------------------------------- ================================================================================ Problema su login ================================================================================ AUTORE: 1921 DATA :12/03/2007 - 22:04:25 ---------------------------------------- Salve a tutti, dopo esser stata per tanto tempo un occhio silenzioso, mi sono decisa a sottoporvi un problema. Ho ereditato da un ex collega una licenza Labview e una postazione PXI senza conoscere minimamente l'ambiente. Devo realizzare un programma per il collaudo di alcune schede elettroniche e, finora, un pò con l'assistenza, un pò con gli esempi e molto con il vostro aiuto, me la sono cavata. Giunta quasi alla fine ho deciso di inserire una maschera per effettuare il login e consentire l'accesso alle funzionalità del programma solo ad un utente registrato (l'utente sarebbe uno degli operatori interni alla ditta che si occuperà del collaudo, il cui nome e la rispettiva password sono memorizzati in database già esistente). Il problema è che non riesco a gestire l'errore di login nel senso che: - seleziono dalla combo lo username (la combo viene popolata da db), inserisco la password e clicco sul pulsante; non ci sono problemi finchè la password è corretta (la finestra si chiude e torno al main)... se però la password è sbagliata, non riesco più a selezionare alcuno username dalla combo nè inserire alcunchè nel campo password. Vi posto un'immagine del codice, sperando che qualcuno riesca ad aiutarmi... e mi scuso in anticipo per tutti gli errori e le grossolanità che vi troverete! ---------------------------------------- AUTORE: 1921 DATA :12/03/2007 - 22:09:42 ---------------------------------------- Non mi ha allegato l'immagine... riprovo... ---------------------------------------- AUTORE: 1919 DATA :13/03/2007 - 02:40:18 ---------------------------------------- io non riesco a distinguere il codice , troppa poca risoluzione dell'immagine ---------------------------------------- AUTORE: 4 DATA :13/03/2007 - 02:41:05 ---------------------------------------- Ciao e benvenuta. Non vedo nessun llop nel codice che hai allegato, o non e' nell'immagine oppure c'e' un errore nel tuo codice. Supponiamo che ci sia l'errore, devi inserire un loop while per ripetere l'operazione di log in in caso di errore. Per non stravolgere il tuo codice direi che il modo piu' semplice e' mettere l'eventi structure che gestisce il bottone OK dentro un while, la condizione di uscita dal while sara' la login corretta oppure un numero massimo di tentativi di login errati. Poi se posso darti un consiglio, evita di mettere piu'event structure nello stesso VI, una sola struttura basta e puo' gestire deversi eventi inoltre nel tuo caso non caposco a cosa servano i due event structure in alto e l'occorrenza. Se l'intento era aggiorare su cambiamento i valori delle variabili nome e password csi' non funziona e anzi complica le cose. Puoi modificare eliminando i due event structure e portando direttamente i controlli nome e password all'interno dell' evento Ok button. Ciao. PS non badare all'orario assurdo di questo mio post, qui abbiamo un po meno ore che in italia. ---------------------------------------- AUTORE: 1921 DATA :13/03/2007 - 07:08:00 ---------------------------------------- Grazie ale, per la risposta. Ho girato e rivoltato questo codice diverse volte, mettendo e togliendo il ciclo while, visto che non funzionava... \":?\" Le occorrenze le ho messe perchè avevo problemi con le priorità di accesso ai campi password e username. Cmq, proverò a modificare il codice come mi hai detto. Grazie mille! ---------------------------------------- AUTORE: 645 DATA :13/03/2007 - 13:04:40 ---------------------------------------- Metti un ciclo While intorno ai blocchi del tuo VI: dopo il controllo sui dati inseriti usi una costante Stringa, True o False che comanda il ciclo While (se i dati sono sbagliati usi False e il ciclo riparte... magari metti un messaggio di avviso per dire all'utente che i dati inseriti sono sbagliati... se i dati sono corretti colleghi True alla fine del ciclo e passi al resto del programma). ---------------------------------------- ================================================================================ manualistica ================================================================================ AUTORE: 1880 DATA :13/03/2007 - 07:26:14 ---------------------------------------- collegamento PLC labview. consigli e aiuti. ---------------------------------------- AUTORE: 247 DATA :13/03/2007 - 10:59:26 ---------------------------------------- Ciao, ...scusate ma posso "insultarvi" un'attimo?? ...Ottima la dote di sintesi dimostrata, ma cosa avete scritto, la lista della spesa?? BYE. ---------------------------------------- AUTORE: 645 DATA :13/03/2007 - 12:55:05 ---------------------------------------- Ehm... concordo con Apollon. Penso sia più utile scrivere una frase nella quale si chiede qualcosa e terminare il tutto con un punto di domanda. Il mondo PLC è vasto, il mondo LabView anche... come si fa a sapere cosa vi serve? ---------------------------------------- ================================================================================ conversione file .scl ================================================================================ AUTORE: 1926 DATA :13/03/2007 - 11:48:39 ---------------------------------------- come faccio a convertire un file salvato in scl in formato testo? Grazie! ---------------------------------------- AUTORE: 1597 DATA :13/03/2007 - 11:51:00 ---------------------------------------- non conosco questa estensione di file. da quale programma viene generato? hai provato a modificare l'estensione in .txt e ad aprire con notepad? ---------------------------------------- AUTORE: 1926 DATA :13/03/2007 - 11:54:06 ---------------------------------------- ho creato un'interfaccia in LW e mi salva i file in questo formato, io invece vorrei aggiungere un blocco che me li converta in file testo e quindi leggibili. Grazie ---------------------------------------- AUTORE: 927 DATA :13/03/2007 - 13:06:15 ---------------------------------------- Forse volevi dire SGL... Leggilo con "Read From SGL File" e passa il contenuto a "Write To Spreadsheet File" ---------------------------------------- ================================================================================ collegamento rs232 con trw 232 ================================================================================ AUTORE: 1927 DATA :13/03/2007 - 14:44:32 ---------------------------------------- Ciao ragazzi,sono un nuovo utente con un grande probelma,chiedevo quindi la vostra pazienza per risp.. devo fare un collegamento rs 232 con un antenna trw 232 tramite labview,per ricevere il segnale di un tag con polling selection. ho cercato di utilizzare gli esempi di labview, per ricevere ed inviare bit ma mi da sempre lo stesso errore 1073807339. non capisco se l'antenna non manda segnale o se sbaglio nell'inviare i dati! \":D\" Spero di poter avere delle risp... vi ringrazio anticipatamente!!! \":lol:\" ---------------------------------------- AUTORE: 645 DATA :13/03/2007 - 15:02:07 ---------------------------------------- Errore di Timeout: http://digital.ni.com/public.nsf/allkb/ ... CF007A6EA0 . Potrebbe dipendere dal fatto che la porta seriale di comunicazione non è configurata in maniera corretta (Baud Rate, Parità...). Per essere sicuro prima della comunicazione inserisci nel VI il blocco di configurazione della porta seriale con i dati utili per il funzionamento dell'antenna (guarda sul manuale o datasheet dell'antenna). ---------------------------------------- AUTORE: 1927 DATA :13/03/2007 - 15:21:08 ---------------------------------------- come prima cosa t ringrazio per la risp;il blocco di configurazione della porta seriale l'ho inserito ma mi da cmq lo stesso errore. sto utilizzando l'espempio serial communication labview 6.1! come stringa scrivo il codice in questo modo : 0000001000000000000000100000000100000001 perchè bisognerebbe inserire 7 funzioni diverse cosi spiegate: STX 02H DEVICE 00H LENGHT 04 H FUNCTION 04H FRB 01H H-BLOCKS 06H BCC 05 H Come indicato nel manuale Scrivendo in esadec mi da errore cmq. alla fine mi trovo quello che ho inserito nella scrittura in lettura e con l errore sopra indicato! puo essere che sia troppo lunga la stringa e quindi non viene recepita da labview? sono alle prime armi con labview quindi chiedo scusa se per voi possono sembrare banalità! Altra cosa posso chiedere se per verificare il funzionamento dell'antenna possa utilizzare un programmino per la lettura seriale non con labview.e se si avete degli esempi grazie!!! ---------------------------------------- AUTORE: 384 DATA :14/03/2007 - 08:17:31 ---------------------------------------- Se cerchi con RS232 sul forum troverai molte discussioni, anche recenti. Ti ripeto il mio solito consiglio: primo approccio con hyperterminal di windows o qualsiasi altro sw equivalente - anche se in questo caso non sembra fattibile. Infatti, dai commandi che hai elencato, vedo subito che inizia con un carattere di controllo e gli altri sono tutti in esadecimale. Mi sembra, da come sono scritti, che li devi inviare direttamente in binario, cioè, un byte per ogni comando. In labview, quindi, ti tocca costruire un array di numeri (tipo U8), covertirli in una stringa - che non sará leggibile all'occhio - e poi spedirli. Imagino che la risposta sia dello stesso tipo, quindi dovrai fare l'esatto inverso. ---------------------------------------- AUTORE: 1927 DATA :14/03/2007 - 13:13:15 ---------------------------------------- grazie per la risp..ma siccome non sono molto pratico vorrei sapere cosa intendi per hyperterminal di windows o qualsiasi altro sw equivalente.?! grazie cmq ora provo a creare un array... grazie ancora... \":D\" ---------------------------------------- AUTORE: 384 DATA :14/03/2007 - 13:54:04 ---------------------------------------- L'hyperterminal è un applicativo incluso con windows (lo trovi negli accessori/cominicazioni) per comunicazioni via seriale. ---------------------------------------- AUTORE: 1927 DATA :14/03/2007 - 14:44:15 ---------------------------------------- spero perdonerai la mia grande ignoranza,ma non so come fare per collegare con hyperterminal! come devo agire per farli dialogare? scusa e grazie ancora ---------------------------------------- AUTORE: 384 DATA :14/03/2007 - 15:02:42 ---------------------------------------- Nel tuo caso credo sia difficile perchè i comandi sono tutti binari, quindi non facilmente digitabili da tastiera. ---------------------------------------- AUTORE: 645 DATA :14/03/2007 - 15:46:24 ---------------------------------------- "alla fine mi trovo quello che ho inserito nella scrittura in lettura e con l errore sopra indicato"... mi sembra strana questa cosa. In caso di timeout la macchina non risponde... tu intendi dire che leggi dalla macchina la stessa stringa che hai inviato? ---------------------------------------- AUTORE: 1927 DATA :14/03/2007 - 16:36:10 ---------------------------------------- si in effetti mi ripete lo stesso codice binario che inserisco nella scrittura. ma è proprio sbagliato perchè lo fa pure quando è staccato il tutto..ho provato a collegarlo alla com1 e non lo fa! Ho sbagliato io ad impostare la porta! cmq non mi riesce nemmeno con l'array... ma non mi d ho per vinto..ci provo ancora ,sicuramente avrò sbagliato qualche stupidata.. Vi ringrazio tutti... Se avete altre idee sono disponibile a provarle tutte!!! Ora inserisco i dati in esad nell INDEX ARRAY,poi mando tutto nel BYTE ARRAY TO STRING e infine nel VISA WRITE. mentre dalla lettura esco con il converitore per la lettura del segnale... spero di essermi espresso bene.. FATEMI SAPERE SE è CORRETTO GRAZIE ---------------------------------------- AUTORE: 4 DATA :14/03/2007 - 17:10:50 ---------------------------------------- [quote:w0go09hf]Ora inserisco i dati in esad nell INDEX ARRAY,poi mando tutto nel BYTE ARRAY TO STRING e infine nel VISA WRITE. [/quote:w0go09hf] Non ho capito dove inserisci di dati... nell'index array? credo volessi dire nell'array numerico, in ogni caso, accertati di - la rappresentazione dei numeri dell'array sia U8 (tasto DX sul controllo numerico >> rapresentation) - la visualizzazione dei dati nel controllo numerico deve essere impostata su HEX (tasto DX sul controllo numerico >> view radix e poi scegli "x" cliccando sul bordo dx del controllo sul front panel) sei sicuro di averlo fatto? Ciao ---------------------------------------- AUTORE: 1927 DATA :14/03/2007 - 17:21:10 ---------------------------------------- - la visualizzazione dei dati nel controllo numerico deve essere impostata su HEX (tasto DX sul controllo numerico >> view radix e poi scegli "x" cliccando sul bordo dx del controllo sul front panel) sei sicuro di averlo fatto? in effetti questo non l'ho fatto... ma se clicco con tasto destro mi esce di tutto ma non view radix,sul controllo numerico! ma scusa poi dopo il VISA read è giusto inserire il decodificatore ,trasformare tutto in array poi?! come ben si vede sono alle prime armi con labview(STO SVILUPPANDO UNA TESI PER UNIVERSITA') quindi vi ringrazio per la pazienza.. ---------------------------------------- AUTORE: 4 DATA :14/03/2007 - 17:30:06 ---------------------------------------- per capirci meglio sarebbe utile se ci mandassi il tuo VI o l'immagine di questo. Intanti ecco la soluzione per vedere ilradix (vedi immagine allegata) Ciao ---------------------------------------- AUTORE: 1927 DATA :14/03/2007 - 17:55:19 ---------------------------------------- OK ESAD FATTO.. ORA PROVO A MANDARTI L'IMMAGINE.. \":P\" GRAZIE ANCORA ---------------------------------------- AUTORE: 1927 DATA :14/03/2007 - 18:16:21 ---------------------------------------- HO PROBLEMI NELL'INVIRE L'IMMAGINE.. CMQ E' L'ESEMPIO SERIAL COMMUNICATIONS.HO AGGIUNTO I SETTE COMANDI IN ESADECIMALE IN SCRITTURA ---------------------------------------- AUTORE: 1927 DATA :14/03/2007 - 18:18:43 ---------------------------------------- ORA IL MIO PROBLEMA E' LA LETTURA DEI CODICI CHE L'ANTENNA RIMANDA INDIETRO.. VI RINGRAZIO PER LA COLLABORAZIONE! ---------------------------------------- AUTORE: 1927 DATA :15/03/2007 - 14:39:54 ---------------------------------------- ciao a tutti.. come pensavo,con la lettura non sono riuscito a fare nulla di buono.. Aspetto vostre risp... grazie \":?\" ---------------------------------------- ================================================================================ true false temporizzato ================================================================================ AUTORE: 1308 DATA :13/03/2007 - 16:29:17 ---------------------------------------- sto passando dalla programmazione con i virtual express ai task, quindi sono praticamente a capo. avrei bisogno di temporizzare un periodo di false e un periodo di true, come se fosse un onda quadra e quindi rendere la cosa ciclica. il tutto è per comandae una I/O so di essermi espresso male e in modo confuso ma non potrebbe essere altrimenti visto che anche io sono un po confuso. qualcuno ha qualche dritta ? sono circa 3 ore che sto smanettando e cercando esempi ma non trovo nulla che si avvicini a cio che sto cercando ( forse perche sto sbagliando completamente metodo). ---------------------------------------- AUTORE: 1165 DATA :13/03/2007 - 18:27:28 ---------------------------------------- Ptova usando un ciclo While temporizzato con la funzione "Wait until next (ms)" (a cui puopi collegare un valore di millisecondi anche scelto programmaticamente e che potrebbe anche variare da ciclo a cilco) sul quale crei uno shift register booleano con inserita una funzione di Not, così ad ogni giro inverte il valore logico del giro precedente, e con questo valore bistabile puoi comandare un led o altre funzioni logiche. Se hai problemi dillo che forse riesco a postarti un esempio, anche se non ho il LV istallato su questo pc. Ciao, Enrico. ---------------------------------------- AUTORE: 247 DATA :13/03/2007 - 18:28:28 ---------------------------------------- Ciao, visto che sei così avvezzo agli Express per prima cosa ti suggerirei di convertire un'Express nel Block Diagram equivalente sfruttando la funzione automatica che dovresti raggiungere con click dx sull'express configurato e poi scegliendo la voce adeguata..non mi ricordo quale... Convertendo gli Express che già conosci potresti vedere come implementarli con la normale politica non-Express. BYE. ---------------------------------------- AUTORE: 1308 DATA :13/03/2007 - 18:39:39 ---------------------------------------- [quote="enr":367kt71x]Ptova usando un ciclo While temporizzato con la funzione "Wait until next (ms)" (a cui puopi collegare un valore di millisecondi anche scelto programmaticamente e che potrebbe anche variare da ciclo a cilco) sul quale crei uno shift register booleano con inserita una funzione di Not, così ad ogni giro inverte il valore logico del giro precedente, e con questo valore bistabile puoi comandare un led o altre funzioni logiche. Se hai problemi dillo che forse riesco a postarti un esempio, anche se non ho il LV istallato su questo pc. Ciao, Enrico.[/quote:367kt71x] se devo essere sincero non ho capito molto, cmq una strada me l'hai indicata e provero a fare qualche tentativo... ---------------------------------------- AUTORE: 1308 DATA :13/03/2007 - 19:03:12 ---------------------------------------- [quote="enr":2f5pe52x]Ptova usando un ciclo While temporizzato con la funzione "Wait until next (ms)" (a cui puopi collegare un valore di millisecondi anche scelto programmaticamente e che potrebbe anche variare da ciclo a cilco) sul quale crei uno shift register booleano con inserita una funzione di Not, così ad ogni giro inverte il valore logico del giro precedente, e con questo valore bistabile puoi comandare un led o altre funzioni logiche. Se hai problemi dillo che forse riesco a postarti un esempio, anche se non ho il LV istallato su questo pc. Ciao, Enrico.[/quote:2f5pe52x] GRAZIE " ci sono riuscito al 4 tentativo ! \":D\" \":D\" ---------------------------------------- AUTORE: 1308 DATA :14/03/2007 - 09:19:47 ---------------------------------------- [quote="apollon":3qbdzmwb]Ciao, visto che sei così avvezzo agli Express per prima cosa ti suggerirei di convertire un'Express nel Block Diagram equivalente sfruttando la funzione automatica che dovresti raggiungere con click dx sull'express configurato e poi scegliendo la voce adeguata..non mi ricordo quale... Convertendo gli Express che già conosci potresti vedere come implementarli con la normale politica non-Express. BYE.[/quote:3qbdzmwb] questa mattina ho provato ad applicare il tuo consiglio , ma il risultato non cambia, provo a spiegarmi meglio se creo un expres analog in e richiamo due canali con uno split signal posso evidenziarli in modo separato e nel modo da me desiderato utilizzando un task non riesco a fare altrettanto. il daq expres mediante la tua procedura riesco a convertirlo in un "non expres" ma lo split signal ? ---------------------------------------- ================================================================================ Devo acquisire da piu' segnali diversi. ================================================================================ AUTORE: 1801 DATA :14/03/2007 - 16:32:38 ---------------------------------------- Per quanto riguarda piu' segnali uguali ho visto che c'è un topic,ma se devo acquisire dei segnali uguali e 1 diverso,posso mettere tutto nello stesso VI? ---------------------------------------- AUTORE: 1030 DATA :14/03/2007 - 20:35:46 ---------------------------------------- Che significa segnali uguali/diversi? diversi in cosa? Il tipo (Analogici e digitali), la sorgente, la frequenza di campionamento? Se sono diversi per la frequenza di campionamento (domanda molto ricorrente) devi acquisire tutti i segnali alla frequenza di campionamento massima (> 2 Fc del segnale a freq. più alta) e poi elimini i punti "superflui" per i segnali che necessitano di una Fc minore. ciao ciao ---------------------------------------- AUTORE: 927 DATA :15/03/2007 - 10:09:25 ---------------------------------------- Bè non è detto... basta fare due cicli paralleli di acquisizione a frequenze diverse! In ogni caso possono stare tranquillamente nello stesso VI ---------------------------------------- AUTORE: 1801 DATA :15/03/2007 - 15:02:55 ---------------------------------------- devo leggere piu' voltaggi,ognuno con le sue caratteristiche diverse tra loro,ho creato 2 task con ognuno i canali che deve leggere,ma così non funziona. ---------------------------------------- AUTORE: 927 DATA :15/03/2007 - 15:21:12 ---------------------------------------- L'idea di base non è sbagliata. Ma così è troppo generico per poterti aiutare... Dacci più dettagli. Parecchi di più \":lol:\" ---------------------------------------- AUTORE: 1801 DATA :15/03/2007 - 15:42:16 ---------------------------------------- vi allego l'immagine dove si vedono i 2 task ognuno con un canale. Il messaggio di errore è: Possible reason(s): Property must have the same value for all repeated physical channels. Set the same property value for all of the channels. Channel Name: Voltage, SC1Mod1/ai1 Device: SC1Mod1 Physical Channel Name: ai1 Property: AI.Gain Task Name: MyVoltageTask ---------------------------------------- AUTORE: 1801 DATA :16/03/2007 - 16:14:44 ---------------------------------------- Volevo specificare che devo acquisire da diversi canali,ma il modulo(scxi 1240)è lo stesso per tutti i canali che mi servono.In pratica ci saranno differenti potenziometri e strain gauge, ed ogni tipo avrà la sua scala,il suo grafico e la sua configurazione.Quindi devo usare piu' task?Qualcuno sa darmi delucidazioni???Grazie anticipatamente! ---------------------------------------- AUTORE: 384 DATA :17/03/2007 - 13:17:40 ---------------------------------------- Usi un unico task per acquisirli tutti. Avrai cosí un array di dati (opure waveforms). Ti basterà poi separarli e trattarli ognuno a modo suo. ---------------------------------------- ================================================================================ Eseguibile con LabVIEW 7.1 ================================================================================ AUTORE: 1943 DATA :16/03/2007 - 07:17:52 ---------------------------------------- Ho creato un'applicazione con LabVIEW 7.1 e librerie Vision adesso ho la necessità di creare un applicazione stand-alone da consegnare al mio cliente utilizzando Application Builder ottengo l'eseguibile ed ho fatto creare l'installer completo di runtime ma quando lo installo su un PC senza il sistema di sviluppo continua a darmi : a) "The procedure entry point OccurIfValid could not be located in dynamic link library lvrt.dll" premendo invio appare : b) "An error occurred loading VI 'IMAQ ReadFile". LabVIEW load error 21: An external subroutine required for execution could not be found." e poi riappare per altre 3 volte il messaggio a) seguito dal b) ma specificando : "IMAQ Exctract", "IMAQ Clear Overlay", "IMAQ Overlay Rectangle". Guardando nella sezione 'VI Settings" i vari VI incriminati risultano presenti. I VI interessati sono presenti in 3 ".llb" e precisamente : IMAQ ReadFile --------------> Files.llb IMAQ Extract ----------------> Image Manipulation.llb IMAQ Clear Overlay --------> Overlay.llb IMAQ Overlay Rectangle ---> Overlay.llb tutti sotto la cartella 'Vision' Quale può essere la causa di questo inconveniente ? Grazie. ---------------------------------------- AUTORE: 645 DATA :16/03/2007 - 08:48:16 ---------------------------------------- Durante la creazione dell'installer hai inserito le librerie di IMAQ? ---------------------------------------- AUTORE: 1943 DATA :16/03/2007 - 12:29:17 ---------------------------------------- Ciao, intendi i files '.llb' che contengono i VI nella sezione "Files" dell'Installer Settings ? Questo l'ho fatto ma il risultato non cambia. ---------------------------------------- AUTORE: 384 DATA :17/03/2007 - 13:20:51 ---------------------------------------- Non dimenticare che il paccheto Vision richiede anche lui un suo runtime sulla macchina di destinazione. E per quello, se ricordo, serve una licenza che non è gratuita. ---------------------------------------- ================================================================================ Campi struttura case ================================================================================ AUTORE: 1876 DATA :16/03/2007 - 09:16:36 ---------------------------------------- Ciao a tutti, sto realizzando un vi e sono incappato in un problema che per voi sarà sicuramente banale... Nel vi ho una struttura "case" nella quale entra un numero da 0 a 13, ho già provveduto a definire tutti i casi del genere (quelli tra 0 e 13) ma mi da errore, devo mettere un caso di default che mi rappresenti tutti gli altri numero fino ad infinito? Se si come si fa? Se no come posso fare? Utilizzo LabView 8.2 Grazie, Ciao! ---------------------------------------- AUTORE: 278 DATA :16/03/2007 - 09:30:39 ---------------------------------------- [quote:1k8hnetu]devo mettere un caso di default che mi rappresenti tutti gli altri numero fino ad infinito?[/quote:1k8hnetu] precisamente.. Ciao! ---------------------------------------- AUTORE: 1876 DATA :16/03/2007 - 09:33:59 ---------------------------------------- Come presumevo, comunque l'ho scritto anche prima anche se per voi sarà una domanda idiota... Come si fa? cioè come faccio ad indicare "infinito" nella casella del case? Grazie, Ciao. ---------------------------------------- AUTORE: 645 DATA :16/03/2007 - 10:24:34 ---------------------------------------- Crea un nuovo caso per un numero che non fa parte della tua lista (per esempio 0 o -1); poi tasto destro del mouse sul caso del Case (scusa il gioco di parole... in pratica nella casella in alto dove è apparso il nuovo numero, 0 o -1 per esempio) e seleziona "Make this the default case". ---------------------------------------- AUTORE: 1876 DATA :16/03/2007 - 10:28:32 ---------------------------------------- Ah ecco cosa mi ero dimenticato di fare, il valore di default l'avevo messo ma avevo il canale di uscita senza ingressi, Grazie. Ciao. ---------------------------------------- AUTORE: 660 DATA :16/03/2007 - 13:19:38 ---------------------------------------- volendo puoi anche definire degli intervalli ad esempio ..5 tutti i valori fino 5 2..7 tutti i valori da 2 a 7 12.. tutti i valori oltre 12 mi raccomando: gli intervalli devono essere univoci altrimenti LV si arrabbia (l'esempio sopra non funzionerebbe). ---------------------------------------- AUTORE: 1876 DATA :19/03/2007 - 07:51:09 ---------------------------------------- Grazie a tutti per l'aiuto, ho risolto il problema! ---------------------------------------- ================================================================================ 3d graph re-size assi xy ================================================================================ AUTORE: 1904 DATA :16/03/2007 - 10:09:28 ---------------------------------------- ho il seguente problema, ho una matrice di dimensioni [N x M] ed ho i vettori con le posizioni dei punti {N} per l'asse x ed {M} per l'asse y ...ma quando mando questi dati al 3d_graph se N è diverso da M ottengo un grafico deformato, perchè non mantiene la stessa unità di base per gli assi x ed y... come posso fare a visualizzare nel modo corretto? grazie a tutti! ---------------------------------------- AUTORE: 645 DATA :16/03/2007 - 10:29:11 ---------------------------------------- Così al volo mi viene in mente che potresti riempire le posizioni vuote con un numero fuori scala e poi settare le scale del grafico tramite i Property Node... praticamente disegni dei punti che poi non vengono mostrati. Sempre che tu possa modificare la matrice. Se poi devi salvare questa matrice per l'utente, per esempio esportandola, puoi sostituire i numeri fuori scala con un simbolo (per esempio "--")... sempre che possa funzionare per i tuoi scopi. \":)\" ---------------------------------------- ================================================================================ Caricamento dinamico immagini ================================================================================ AUTORE: 1078 DATA :16/03/2007 - 10:18:03 ---------------------------------------- Ciao a tutti, Ho un piccolo problema, devo caricare dinamicamenti due immagini in una picture box o sullo sfondo di un tabbed control. Le immagini devono venire caricate da disco di volta in volta a seconda del valore restituito da un ring control. Sapreste dirmi come posso risolvere il mio problema? Grazie a tutti, Ricky. ---------------------------------------- AUTORE: 645 DATA :16/03/2007 - 10:31:17 ---------------------------------------- Può essere utile? http://digital.ni.com/public.nsf/allkb/ ... 62004DEA31 ---------------------------------------- AUTORE: 1078 DATA :16/03/2007 - 13:19:34 ---------------------------------------- Grazie mille, funziona da benissimo..... ---------------------------------------- ================================================================================ cFP e Shared Variables ================================================================================ AUTORE: 515 DATA :16/03/2007 - 11:31:13 ---------------------------------------- Mi sono appena accorto di una bella particolarità che si guardano bene dal segnalare... Quindi lo posto qui ad uso dei posteri: \":x\" NON USATE LE SHARED VARIABLES con cFP (specie la famiglia 2010 e compagnia bella) poichè NON HANO ABBASTANZA RAM per gestirle in modo UN MINIMO EFFICENTE. Il che vuol dire che: 1) Voi installate Network Variable Engine con MAX sul cFP. Tutto bene, nessun errore. 2) Voi fate il vostro progetto e le usate a piene mani. Tutto bene, niente da segnalare 3) Voi provate a debuggare la vostra povera applicazione, e le Shared si aggiornano in modo NON DETERMINISTICO e con tempi di svariati MINUTI. La cosa bella è che non vi rallentano i cicli in cui sono inseriti, semplicemente i tentativi di scrittura non vanno a buon fine. No comment... \":roll:\" ---------------------------------------- AUTORE: 515 DATA :16/03/2007 - 11:37:15 ---------------------------------------- Sorry, sarebbe stato da postare nella sezione HW... chiedo al primo MOD di passaggio di spostarlo!! \":oops:\" ---------------------------------------- AUTORE: 927 DATA :19/03/2007 - 08:22:20 ---------------------------------------- Io sapevo (me lo disse un collega quindi non so dove sia scritto) che la serie 20xx, basata su processori 486, ufficialmente non supporta Labview 8, quindi ovviamente non supporta le shared. I programmi girano lo stesso, ma senza garanzie, come nel tuo caso. La serie 21xx invece, basata su pentium, supporta l'8. Tu hai provato anche sulla 21xx? ---------------------------------------- AUTORE: 515 DATA :19/03/2007 - 10:22:22 ---------------------------------------- No non ho provato... Però so per certo che il mio cliente ha acquistato cFP + LV 8.0 su proposta national \":lol:\" ---------------------------------------- AUTORE: 927 DATA :19/03/2007 - 10:36:02 ---------------------------------------- Se puoi per favore, senti esattamente che modello ha proposto NI e faccelo sapere... Non ho la certezza di quanto ho detto sopra e sarebbe meglio chiarirlo! ---------------------------------------- AUTORE: 515 DATA :19/03/2007 - 12:37:27 ---------------------------------------- Si trattava in effetti di un cfp 2021 e di un 8.0... Che funziona perfettamente, sia chiaro, eccetto che per il server delle shared! ---------------------------------------- AUTORE: 515 DATA :19/03/2007 - 12:38:18 ---------------------------------------- Scusate, 2010... non si può editare gli errori... \":oops:\" ---------------------------------------- AUTORE: 927 DATA :19/03/2007 - 13:09:31 ---------------------------------------- Non saprei, è strano (ma non impossibile \":lol:\" ) che loro stessi abbiano suggerito una cosa sbagliata, quindi probabilmente sono sbagliate le mie informazioni... teniamoci aggiornati... Per sicurezza, hai letto per bene nell'help "Sharing Data Using Shared Variables (RT Module)" e capitoli seguenti? Il determinismo, le FIFO, eccetera ---------------------------------------- ================================================================================ codici hardware ================================================================================ AUTORE: 487 DATA :16/03/2007 - 13:18:33 ---------------------------------------- Ciao a tutti, forse questo argomento è già stato trattato nel forum, ma non sono riuscito a trovare le informazioni che cercavo perciò ho aperto questo topic. Il problema è che non riesco a ricavare i codici dei componenti hardware del pc, che mi servono per poter creare una password d'installazione del software che ho realizzato. Credo che ci sia una dll che permette di ricavare tutte le informazioni sull'hardware, ma non sono riuscito a trovarla. Qualcuno mi può dare una mano? ---------------------------------------- AUTORE: 384 DATA :17/03/2007 - 13:14:09 ---------------------------------------- Se ne parla in [url=http://www.ilvg.it/forum/viewtopic.php?t=1635&highlight=api:a6988vf9]questo topic[/url:a6988vf9]. ---------------------------------------- AUTORE: 487 DATA :19/03/2007 - 07:18:55 ---------------------------------------- Grazie mille gyc, ero sicuro che l'argomento era già stato trattato, me non ero riuscito a ritrovare il topic. ---------------------------------------- AUTORE: 487 DATA :19/03/2007 - 09:18:56 ---------------------------------------- Ciao gyc, scusa se ti rompo nuovamente: ho scaricato la dll che suggerivi nell'altro topic e ho visto che contiene tutte le informazioni necessarie e molte altre (ben 720 funzioni!!!!), ma il mio attuale problema è che non so come fare ad estrarre quelle che mi servono. Mi puoi dare una mano? A me, per esempio servirebbe poter conoscere il serial number del processore, come posso fare? ---------------------------------------- AUTORE: 487 DATA :19/03/2007 - 09:54:13 ---------------------------------------- Scusami nuovamente, è lunedì mattina, stanotte ho dormito poco e sono un po' rimbambito: non mi sono accorto che avevo a disposizione l'activex con tutto ciò che miserve!!! Grazie ancora per l'aiuto ---------------------------------------- ================================================================================ Video in LabVIEW 8.0 ================================================================================ AUTORE: 1944 DATA :16/03/2007 - 15:40:09 ---------------------------------------- Mi interessa il modo per acquisire video da sorgenti esterne, come webcams, schede di acquisizione e giù di lì, oppure direttamente ciò che vedo sullo schermo. Mi chiedo se è possibile e se sì come. Vorrei creare VI che acquisiscono video, per poi salvarli o fare delle trasmissioni a remoto via rete. Grazie \"8)\" ---------------------------------------- AUTORE: 645 DATA :16/03/2007 - 15:42:22 ---------------------------------------- Dai un occhio al pacchetto Vision Development e/o alle librerie IMAQ... non ho mai usato l'acquisizione delle immagini ma credo parta da questi elementi... e poi cerca nel forum perchè l'argomento è già stato trattato ma non ricordo il post. ---------------------------------------- AUTORE: 1944 DATA :20/03/2007 - 10:37:45 ---------------------------------------- Trovati, ma non credo di averli. \":)\" ---------------------------------------- ================================================================================ Rientrare nel programma ================================================================================ AUTORE: 516 DATA :17/03/2007 - 22:40:32 ---------------------------------------- Ciao a tutti Sono disperato stavo testando un programma che ho appena finito e nel fare gli ultimi test ho settato nelle propieters nella categoria window appearance ho settato dialog e nelle execution ho settato run when opened , ARGHHH!!! ora non riesco più ad entrare nel programma per modificarlo spero che possiate aiutarmi GRAZIE MILLE A TUTTI Ciao Sergio ---------------------------------------- AUTORE: 129 DATA :18/03/2007 - 11:56:10 ---------------------------------------- Crea un nuovo vi, quindi inserisci il tuo vi nel diagramma e lo apri cliccandogli su due volte. ---------------------------------------- AUTORE: 384 DATA :18/03/2007 - 11:56:10 ---------------------------------------- Anche se io non ne conosco, forse c'è una qualche combinazione di tasti per poter aprire un VI senza farlo partire in automatico. Qualcuno sa qualcosa? Nel frattempo, credo che non ti resti che usare i blocci del VI Server per risolvere il tuo problema. Da un nuovo VI, devi aprire un riferimento al VI "incriminato", resetti la proprietà "Run When Opened" e apri il front panel. Cosí l'avrai bello e pronto da lavorarci. E non dimenticare di salvarlo! \":wink:\" ---------------------------------------- AUTORE: 516 DATA :18/03/2007 - 14:01:00 ---------------------------------------- Ciao Grazie Mille per i suggerimeti , sono comunque riuscito ad aprirlo mi sono ricordato di bug che non avevo ancora messo a posto (per fortuna) \":lol:\" , comunque questa lezione non me la scorderò più \":P\" Ciao e GRAZIE MILLE a tutti Sergio ---------------------------------------- AUTORE: 384 DATA :18/03/2007 - 14:14:04 ---------------------------------------- [quote="Giants":347di4ih]comunque questa lezione non me la scorderò più \":P\" [/quote:347di4ih] Ah ci credo, ci credo!!! \":wink:\" ---------------------------------------- ================================================================================ Problema con decimali e ascii ================================================================================ AUTORE: 1911 DATA :18/03/2007 - 10:40:08 ---------------------------------------- Ciao a tutti, avrei bisogno del vostro aiuto. Come posso fare affinchè un valore numerico (da 0 a 5) impostato tamite un pointer slider venga convertito in ascii? Qualcuno può farmi un esempio? Non sono pratica di LabView e ho una certa urgenza di realizzare questa cosa per inviare poi alla seriale. Grazie! ---------------------------------------- AUTORE: 129 DATA :18/03/2007 - 11:47:59 ---------------------------------------- Dalla palette string, devi utilizzare la funzione number to decimal string. Ti allego l'esempio ---------------------------------------- ================================================================================ Memorizzre immagini di un grafico ================================================================================ AUTORE: 516 DATA :18/03/2007 - 18:25:27 ---------------------------------------- Ciao a tutti Eccomi di nuovo qua \":P\" , vi scrivo per chiedervi se sapete come si fa a salvare un grafico i un'immagine jpg o bmp , ho un libro che mi fa un'esempio solo che io ho LV 7.1 e il libro tratta l'8.0 Ciao e Grazie Mille a tutti Sergio ---------------------------------------- AUTORE: 645 DATA :18/03/2007 - 22:17:15 ---------------------------------------- Guarda questo post, forse fa al caso tuo: viewtopic.php?t=2294&highlight=immagine ---------------------------------------- AUTORE: 516 DATA :19/03/2007 - 11:32:50 ---------------------------------------- Ciao Ho dato un'occhiata al post , anche se spiegava come il libro che ho ma che purtroppo non sono riuscito a fare , sono comunque riuscito a farlo con un'altro sistema Grazie Mille comunque Ciao Sergio ---------------------------------------- ================================================================================ Da Stringa Booleana ad Array ================================================================================ AUTORE: 1876 DATA :19/03/2007 - 07:55:42 ---------------------------------------- Ciao a tutti, utilizzo Labview 8.2 e vorrei convertire una stringa (per esempio "10101010") in un array. Ho visto che ci sono le funzioni apposite per farlo ma il problema è la creazione dell'array, come faccio a creare un'array booleano? Probabilmente mi è sfuggito qualcosa nel menu palette ma non riesco proprio a crearlo... Ciao. ---------------------------------------- AUTORE: 927 DATA :19/03/2007 - 08:39:18 ---------------------------------------- Per convertire la stringa binaria in numero intero puoi usare "Scan Value" passandogli come "%b" come "format string" Per convertire un numero intero in array booleano c'è "Number to Boolean Array" nel menù Boolean. ---------------------------------------- AUTORE: 1876 DATA :19/03/2007 - 08:46:24 ---------------------------------------- Fino a quel punto non avevo molti problemi, il mio problema era quello di creare l'oggetto "array booleano", ma forse ho trovato una scorciatoia... Grazie comunque. Ciao ---------------------------------------- AUTORE: 927 DATA :19/03/2007 - 08:54:28 ---------------------------------------- Ah intendevi proprio come creare l'indicatore sul pannello? Non so che scorciatoia hai trovato cmq in generale si fa così: Tasto dx sull'uscita "Number to Boolean Array" (o altro blocco che usa i boolean array) e poi Create -> ... Oppure piazzi un controllo array vuoto, poi ci piazzi o trascini dentro un booleano: led, pulsante o quel che vuoi ---------------------------------------- AUTORE: 1876 DATA :19/03/2007 - 08:59:38 ---------------------------------------- Ok, grazie mille! ---------------------------------------- ================================================================================ installazione mysql ================================================================================ AUTORE: 1368 DATA :19/03/2007 - 09:39:38 ---------------------------------------- Ciao a tutti, sto seguendo la guida per installare mysql da usare con labview. dopo aver installato tutto, vado per creare il dsn ma quando faccio add nn ce nulla nella mia lista non esiste mysql odbc 3.51, la lista e vuota. ho provato a riinstallare il tutto piu volte ma senza successo. qualche idea?? grazie ---------------------------------------- AUTORE: 1368 DATA :19/03/2007 - 10:12:32 ---------------------------------------- ho risolto ho disinstallato il dirver odbc rimosso tutte le cartelle e riinstallato e ora esiste nella lista, mha tutto molto strano ---------------------------------------- ================================================================================ Surface 3D & Tab Control ================================================================================ AUTORE: 73 DATA :19/03/2007 - 09:48:14 ---------------------------------------- Vorrei sapere se vi succede anche a voi: ho creato un grafico 3D e poi volevo inserirlo in una pagina della Tab Control ma lui mi rimane sempre in primo piano sospeso sulla tab anzichè appoggiato. Io ho Lab 6.1 se potete provarlo lì megli oaltrimenti ditemi cosa succede sulla vostra versione di Labview oppure se conoscete il rimedio Thanks ---------------------------------------- ================================================================================ database connectivity (sqlite) ================================================================================ AUTORE: 1368 DATA :19/03/2007 - 13:32:27 ---------------------------------------- Ciao a tutti, aiutatemi a capire un po, ma il database connectivity deve per forza essere collegato a un database server che sia MySQL access o altro?? non e possibile creare un database tipo file senza dover ricorrere ad un software esterno?? grazie ---------------------------------------- AUTORE: 482 DATA :19/03/2007 - 13:58:29 ---------------------------------------- Che cacchio di un databse fai senza una struttura database?? Difficile, credo, fare delle query su un file che non si sa di che tipo sia... ---------------------------------------- AUTORE: 1368 DATA :19/03/2007 - 14:06:17 ---------------------------------------- lo so lo so, gepo, pero ci son db tipo sqlite che salvano tutto in un unico file, la figata sarebbe poterlo uttilizzare con labview cosi ad ogni installazione dal cliente non hai problemi a dover installare anche il software. ora ci do un occhio ---------------------------------------- AUTORE: 1368 DATA :19/03/2007 - 14:28:38 ---------------------------------------- eccolo qua http://community.ni.com/examples/sqlite ... r-labview/ anche se non capisco come si installa, dove devo copiarlo per vederlo nei menu di labview?? ---------------------------------------- AUTORE: 645 DATA :19/03/2007 - 16:23:44 ---------------------------------------- Non ho provato a scaricarlo ma se nel file zip ci sono i blocchi per LabView copiali nella cartella "User" nella directory di LabView e li vedrai comparire nella paletta del Block Diagram alla voce "User"... prima copia i file e dopo avvia LabView altrimenti non te li carica. ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 07:28:50 ---------------------------------------- al che la cosa diventa interessante...sto scaricando e installando il toolkit..ti faccio sapere... Diciamo che fino ad adesso ho usato l'ADO. Prima usavo gli ActiveX poi pero' mi sonoaccorto che rendono l'eseguibile dipendente dal sistema di database che si dove sviluppi. Allora sono passato ad ADO che permette di utilizzare versioni di database diversi e con comandi decisamente piu' semplici. QUesta nuova possibilità potrebbe essere utile pero' voglio verificare a cosa mi lega e come. Nel senso...un database Access è leggibile dall'utente posso estrapolare dati creando report ecc, sqlite come si comporta? Tu hai parlato di salvare il database in un file unico...ma sta cosa non mi torna...scusa anche in access se salvo un database me lo salva in un file unico.... Sto sqlite come funziona? ha licenze o robe strane?) ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 07:47:29 ---------------------------------------- Ciao geppo \":D\" allora sqlite e in licenza gpl open, lo uso gia in un altra applicazione, e purtroppo mi son accorto solo ieri che potevo usarlo con labview. con sqlite puoi fare quasi tutto quello che fai con sql, ma hai il vantaggio che non serve installare un motore database, perche sqlite crea il suo database in un unico file, come nel nostro caso basta uttilizzare solo una dll. Ieri ho fatto varie prove e funziona bene, ora non serve piu avere altri kit per usare un db. Se hai problemi anche se penso di no visto che sei molto piu bravo di me \":?\" ti mando qualche esempio. comunque devi leggere la syntax che trovi su www.sqlite.org ciao ps: se metto la directory dentro user.lib non lo trovo nel menu di labview \":cry:\" ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 08:02:00 ---------------------------------------- Si ok, ma quello che non capisco è: 1) Il database come lo creo? 2) Non ha interfaccia grafica, quindi se devo fare della reportistica devo farla direttamenet in labview giusto? 3) Ok è una dll quindi ch emi devo scaricare dal sito ufficiale? Solo la dll? e poi dove la metto? ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 08:21:28 ---------------------------------------- eccomi qua, allora per creare il db basta che crei un file e non so o chiami database.db trova un modo per crearlo con labview, io per il momento lo creato a mano, poi ti inserisco un immagine come creare le tabelle nel db. fammi sapere ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 08:29:38 ---------------------------------------- ecco un vi visto che non riesco ad inserire un immagine \":x\" ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 09:51:02 ---------------------------------------- Ma il file poi resta un file di testo leggibile? ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:03:09 ---------------------------------------- no no, e tutto a caratteri strani, cmq la differenza con access e che oltre ad usare la sua dll con sqlite non hai bisogno di altro, che secondo me ti torna utile quando nel pc del cliente non hai grandi risorse.. ciao ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 10:04:57 ---------------------------------------- ok perfetto..sta cosa potrebbe tornarmi utile. detto questo: 1)Una volta scaricata la dll dove la metto? 2) Sei riusciyo a vedere il tool nella palette? ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:10:38 ---------------------------------------- allora una volta scaricato il pkg io lho messo dentro una dir sqlite nel mio progetto/test nuovo, ho provato a fare come diceva magicbottolo ma nn funziona, con piu calma poi ci smanetto meglio. il file che crei puoi chiamarlo come vuoi, per comodita si da l estensione .db ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 10:12:11 ---------------------------------------- Tral'altro ho visto che se dai un path che non esiste lo crea lui direttamente ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:19:46 ---------------------------------------- a si?? a me non fa cosi infatti mi sta facendo un po dannare ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 10:22:05 ---------------------------------------- Cosi' risulta dalle istruzioni sul sito di sqlite..anceh se parla di prompt per poi popolare il databse... Cmq nell'esempio che mi hai mandato tu non hai collegato il terminale OPENMODE che ti permette di fargli creare un nuovo database. (cmq non mi hai risposto..la dll che scarico dove la devo piazzare?) ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:25:57 ---------------------------------------- si che ti ho risposto, tutto il pacchetto che scarichi io lho messo in una cartella dentro il progetto che sto creando e basta, richiamo cio che mi serve e via, ora vedo l openmode ps: usi skype?? ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 10:31:00 ---------------------------------------- Tutto cio' mi turba.... quindi i vi del toolkit come fanno a sapere dove cercare la dll? ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:35:17 ---------------------------------------- non so geppo io ho fatto cosi e funziona, perche che problemi potrebbe crearti? ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 10:37:09 ---------------------------------------- beh se creo un eseguibile ad esempio.. Poi la dll andrà messa tra i file di supporto nella cartella DATA) oppure nella stessa cartella dell'eseguibile o in un percorso tale e quale a quello che usavo nei sorgenti? ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 10:45:33 ---------------------------------------- Per aggiungere la subpalette al menu, vai nell'help di labview e cerac questo: subpalettes, adding objects \":wink:\" ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:45:33 ---------------------------------------- allora ho fatto una prova al volo, bisogna mettere la dll nei percorsi di labview, non so anche system32, durante l installazione si puo far in modo che copi tale dll in uno dei suoi percorsi che dici? ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 10:48:16 ---------------------------------------- eh si, vorrei capire quale pero' onde evitare di copiarlo in 4 o 5 posti cosi' tanto per essere sicuro... ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:59:19 ---------------------------------------- allora ho copiato le due dll lvsqlite.dll sqlite3.dll in system32 e funziona tutto ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 11:01:50 ---------------------------------------- si ok copiate...ma l'eseguibile a quali af riferimento? a quelle vecchie o quelle nuove? Cmq...(che bello fare l'avvocato del diavolo)... Questo metodo discrittura è poco standard..nel senso..s eun giorno decidessi di migrare ad un altro tipo di database dovrei rifare tutto. Per questo ho troavto i driver per aggiungere i database sqlite come odbc bisognerebbe vedere le prestazioni... ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 11:08:33 ---------------------------------------- ma fa riferimento a quelli messi nel system32 visto che le altre dll sono ben nascoste e poi non le trovava prima \":evil:\" \":evil:\" \":evil:\" ma perche devi rifare tutto?? se migri ad un altro db son azzi tuoi \":D\" \":D\" \":D\" ma no lo potrai esportare in qualche modo, e sempre sql. ma secondo me non ha senso usare i driver odbc per sqlite \":!:\" \":!:\" \":!:\" ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 11:10:32 ---------------------------------------- no ok che non ha senso... era che ne so..adesso è sqlite 3 poi se diventa sqlite 4 devo cambiare tutto? non so... domandina..ho creato un database..ho fato una open e una close...non riesco ad eliminarlo perchè mi dice che è in uso da un altro programma..che gli devo dire? ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 11:14:05 ---------------------------------------- riavvia labview e sempre lui che non so come si prende possesso di tutto \":lol:\" \":lol:\" \":lol:\" sto facendo casini allora, ora che vedo quando creo l eseguibile e lui che si prende la dll lvsqlite e la mette nella dir data, allora dovrebbe servire solo copiare la dll sqlite3 su sysme32. per quanto riguarda la compatibile nn si e mai visto che una versione superiore non supporti la precedente, in caso dovrai solo sovrascrivere la nuova dll. ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 11:14:38 ---------------------------------------- Ok, bastava chiudere labview. Cmq tu dirai..ma questo che paranoie si fa? E' che siccome devo implementare un database che diventerà abbastanza grande, non vorrei partire con queta strada e poi trovarmi con dei casini nel caso di aggiornamenti. cmq ci sto afcendo un pensierino ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 11:18:50 ---------------------------------------- certo ti capisco benissimo, pure il mio deve diventare enorme sara usato per la gestione del famoso magazzino ricordi \":?:\" \":?:\" \":?:\" \":?\" che poi a sua volta dovra comunicare con un altro db che gira su as400 presumo sia sempre sql. cmq con sqlite puoi fare di tutto. male che vada rifai tutto \":wink:\" \":wink:\" e noi non lo useremmo piu \":D\" ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 11:20:31 ---------------------------------------- [quote="slupz":1zqy226b] per quanto riguarda la compatibile nn si e mai visto che una versione superiore non supporti la precedente, in caso dovrai solo sovrascrivere la nuova dll.[/quote:1zqy226b] Ma infatti quello che mi ha fatto venire il dubbio è il numero nel nome della dll. Come ti dicevo io ero partito con gli activex..poi son passato all'ADO pensando..cosi' anche se in un futuro decido di passare a mysql piuttosto che qualsiasi altro database, al sorgente non devo cambiare niente. Non so..forse sto facendo confusione tra il tool per comunicare con il database e il databse vero e proprio.. vabbhè..valutero' la cosa... Nessun'altro a ha consigli o dubbi in merito d apoter avere qualche dritta? ---------------------------------------- AUTORE: 482 DATA :20/03/2007 - 11:24:06 ---------------------------------------- forse sono spaventato all'idea di non poter andare a vedere la tabella cosi' com'e' senza lanciare comandi testuali (come faccio adesso con access) ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 11:31:24 ---------------------------------------- si secondo me e quello, magari leggi meglio su www.sqlite.org cosi capisci meglio come lavora ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 14:48:25 ---------------------------------------- geppo guarda qua cosa ho trovato magari ti puo essere utile, http://www.sqlmaestro.com/products/sqlite/ ---------------------------------------- AUTORE: 384 DATA :21/03/2007 - 08:28:55 ---------------------------------------- Questo è freeware: http://sqliteadmin.orbmu2k.de/ ---------------------------------------- AUTORE: 384 DATA :21/03/2007 - 08:36:55 ---------------------------------------- Leggete BENE la sezione [url=http://www.sqlite.org/whentouse.html:3584qk90]Appropriate Uses For SQLite[/url:3584qk90]; lì è descritto bene quando e che cosa fare con SQLite e - soprattutto - [b:3584qk90][u:3584qk90]quando e che cosa NON fare con SQLite[/u:3584qk90][/b:3584qk90]. ---------------------------------------- AUTORE: 645 DATA :21/03/2007 - 09:06:30 ---------------------------------------- Boh... non so cosa pensare. Ho dato un occhio ai link che avete indicato e alla pagina http://database.html.it/articoli/leggi/ ... da-alluso/ : mi sembra di capire che SQLite offre notevoli vantaggi in termini di velocità quando non ci sono accessi concorrenziali al database e quando le operazioni effettuate rimangono abbastanza semplici (query di selezione o aggiunta di dati... ma nel momento in cui devo fare una query a campi incrociati?). Mi sembra di capire che sia un sistema creato per poter comunicare con PHP e offrire prestazioni elevate per la programmazione web (rapida interazione tra una pagina web e una raccolta di dati). Però mi avete incuriosito: nei prossimi giorni penso di fare qualche prova... ---------------------------------------- AUTORE: 129 DATA :21/03/2007 - 17:42:06 ---------------------------------------- Sto provando ad usare questo [url=http://community.ni.com/examples/sqlite-wrapper-for-labview/:3n1961n1]wrapper di sqlite[/url:3n1961n1] in labview e sembra funzionare molto bene. devo comunque approfondire la documentazione, ma l'idea di avere un database manager incorporato nell'applicazione (1 sola dll) è ideale. ---------------------------------------- AUTORE: 482 DATA :22/03/2007 - 07:09:04 ---------------------------------------- ..ghgh...Ehi nicola...prorpio non volevi seguirlo sto topic eh?!?! Quello che hai postato è stata la base di tutta la discussione \":D\" ---------------------------------------- AUTORE: 482 DATA :23/03/2007 - 10:59:31 ---------------------------------------- una domanda da utonto di database... ma se io volessi creare tra due tabelle di un database sqlite, una cos ache in access viene chiamata RELAZIONE...è possibile o no? Se no..c'entra con la definizione database relazionale o no? \":|\" ---------------------------------------- AUTORE: 645 DATA :23/03/2007 - 11:05:43 ---------------------------------------- Ecco Geppo questa è una bella domanda... non capisco se SQLite permette di eseguire query a campi incrociati e relazioni tra le tabelle... non so... ---------------------------------------- AUTORE: 482 DATA :23/03/2007 - 11:10:53 ---------------------------------------- questa è la risposta che mi farà scegliere se usare sqlite o meno. Spiego l'esempio pratico: ho un database ababstanza semplice composto da due tabelle. una contiene il numero di serie di un prodotto e l'esito del controllo. L'altra contiene i risultati delle singole analisi effettuate sul prodotto. QUeste due tabelle sono correlate dal calmpo N° di serie. Per la prima il numero di serie è chiave primaria. Ogni nuemro di serie è unico Per la seconda il numero di serie è lo stesso per un tot numero id record. Alla fine del test, il numero diserie della bobina viene modificato se il risultato è non conforme al test. Ovviamenet con la relazione, in automatico tutti i record della seconda tabela mi vengono aggiornati. Senza relazioen dovrei modificare il numero di serie a tutti i record. SOluzioni alternative alla relazione?? Oppure la risposta ala mia domanda sulla possibilità di farle in sqlite? ---------------------------------------- AUTORE: 129 DATA :24/03/2007 - 07:19:32 ---------------------------------------- Puoi eseguire query incrociate, usando i comandi sql. Direi che il tuo caso sposa sqlite a pennello, ovvio che le relazioni te le devi creare tu. Sei tu che formuli la query che mette in relazione le due tabelle. Con Access io non uso mai l'albero delle relazioni e le relazioni me le creo con le query direttamente da struttura, quindi scopiazzo il codice sql generato. Nel link postato da gyc, riferito a cosa puoi e non puoi fare con sqlite, traspare il limite secondo me fondamentale che : non è idoneo per un uso multiutente, perchè non viene gestito l'accesso multiplo e le transizioni non sono garantite(infatti io l'ho abbandonato perchè devo usare proprio un sistema client server). E' eccellente quando invece diventa un database locale all'applicazione. Per toglierti il cruccio prova ad eseguire una query usando innerjoin etc; magari la prepari con ACCESS quindi la importi, dopo aver creato le due tabelle in sqlite (per fare prima la gestione delle tabelle e la creazione, le ho fatte con sqlmaestro che è un pò come MyPHP per mysql. Nic ---------------------------------------- AUTORE: 482 DATA :26/03/2007 - 07:35:15 ---------------------------------------- ...mai usato il coamndo innerjoin... cercando in internet pero' lho trovato coem istruzione da aggiungere ad un SELECT. Io in questo caso invece voglio che sia strutturale, cioè che sia sempre presente questa relazione... ---------------------------------------- AUTORE: 482 DATA :26/03/2007 - 07:38:59 ---------------------------------------- aspè aspè aspè... forse ho fatto un po' di confusione... Nel senso...ok la select mi torno comoda quando andro' a fare il report... Quello che non capisco è: L'innerjoin posso usarlo in qualche modo anche nel comando update? ---------------------------------------- AUTORE: 129 DATA :26/03/2007 - 08:33:15 ---------------------------------------- Non è che sia un esperto di sql, comunque fin qui ci arrivo: le regole di join le puoi usare nei comandi select/update e insert e danno proprio l'indicazione di come legare i dati. Per esempio UPDATE core_tab_user LEFT JOIN core_tab_group ON core_tab_user.group = core_tab_group.group SET WITH OWNERACCESS OPTION; LEFT JOIN dice che devi prendere tutte i valori del campo group della tabella core_tab_user e solo quelli della tabella core_tab_group.group che sono uguali. questo gli associa la relazione. Spero di esserti stato di aiuto. Ciao, Nic ---------------------------------------- AUTORE: 645 DATA :26/03/2007 - 15:57:02 ---------------------------------------- Il problema è che le query sono fatte per essere avviate mentre le relazioni di Access dovrebbero funzionare in automatico... però si potrebbe implementare nel database una procedura: una serie di comandi che eseguono le query (quelle che stabiliscono le relazioni) in maniera automatica dopo un evento (per esempio la modifica di un dato in una tabella). Come creare le procedure lo so ma come farle funzionare dopo un evento e soprattutto quali comandi usare per stabilire relazioni tra le tabelle non so... ---------------------------------------- AUTORE: 482 DATA :26/03/2007 - 17:28:56 ---------------------------------------- è qualcosa di legato a quello che SQLiteAdmin chiama TRIGGER? ---------------------------------------- AUTORE: 384 DATA :26/03/2007 - 19:36:13 ---------------------------------------- [quote="gepponline":naaqawpf]...mai usato il coamndo innerjoin... cercando in internet pero' lho trovato coem istruzione da aggiungere ad un SELECT. Io in questo caso invece voglio che sia strutturale, cioè che sia sempre presente questa relazione...[/quote:naaqawpf] Ma in realtá non tiserve farla "strutturale". Questa è una cosa di Access, utilissima se poi sviluppi le applicazioni in VBA Access stesso. Invece le relazioni, come diceva Nicola, sono una "logica", non fanno parte della vera e propria struttura. Anzi, è per il fatto che i tuoi dati hanno un certo collegamento logico fra di loro che vai ad implementare un certo insieme di tabelle, cioè, una struttura di tabelle. É più complicato a descriverlo che a spiegarlo davanti ad uno scarabocchio, ma sul forum questo possiamo!... \":wink:\" ---------------------------------------- AUTORE: 482 DATA :27/03/2007 - 07:38:25 ---------------------------------------- ok ok ho capito che per ottenere cio' che voglio devo flagellarmi.. e allora SI, LO AMMETTO!! I DATABASE SONO MIEI NEMICI!!! \":lol:\" Vio prego, fatemi un esempio di SQL per agiornare il numero di serie sulla base dell'esempio che ho postato! ---------------------------------------- AUTORE: 1368 DATA :29/03/2007 - 08:48:17 ---------------------------------------- allora come va?? si fa sempre piu interessante questo topic \":lol:\" \":lol:\" \":lol:\" ---------------------------------------- AUTORE: 482 DATA :30/03/2007 - 07:24:16 ---------------------------------------- io mi son fermato... interessante coem database, ma sta cosa delle relazioni mi frena... ---------------------------------------- AUTORE: 384 DATA :30/03/2007 - 08:47:21 ---------------------------------------- [quote="gepponline":2leroa94]io mi son fermato... interessante coem database, ma sta cosa delle relazioni mi frena...[/quote:2leroa94] Spero ti freni solo coi database!!! \":wink:\" ---------------------------------------- AUTORE: 645 DATA :30/03/2007 - 09:13:12 ---------------------------------------- Sui database in generale ho trovato questa brevissima descrizione (è breve ma sembra precisa): http://www.roccatello.it/component/opti ... ew/gid,11/ . Per quanto riguarda il discorso delle relazioni mi sembra di aver capito che in SQLite bisogna usare i "Trigger" (per qualche info su cos'è un Trigger si può vedere http://database.html.it/articoli/leggi/ ... n-mysql-5/ ... qui è spiegato per MySQL ma la teoria è la stessa per tutti i linguaggi) e per la sintassi specifica per SQLite si può vedere http://www.sqlite.org/lang_createtrigger.html : in pratica si tratta di procedure che scattano in automatico al verificarsi di un evento (e l'evento scatenante è specificato durante la creazione del Trigger e viene controllato in modo automatico). Inoltre, per aumentare la curiosità, ho trovato anche http://www.firebirdsql.org/ ... si tratta di un altro tipo di database: presenta un'interfaccia ODBC e dovrebbe essere leggero (ma non so, non l'ho provato... ho trovato l'indicazione in un forum mentre cercavo spiegazioni per SQLite). ---------------------------------------- AUTORE: 482 DATA :30/03/2007 - 10:12:17 ---------------------------------------- ..mmhh...boh... allora io dovrei effettuare un update della tabella principale, e se il trigger rileva quell'update, mi dovrà fare l'update di tutti i valori nella tabella correlata. E a livello di logica ci sono... Il problema resta la sintassi...mamma mia che sclero... ---------------------------------------- AUTORE: 645 DATA :30/03/2007 - 10:33:55 ---------------------------------------- Io non ho ancora provato l'interfaccia per LabView ma lavorando direttamente con SQLite dal prompt dei comandi devo dire che è proprio scomodo! \":(\" ---------------------------------------- AUTORE: 129 DATA :31/03/2007 - 06:36:19 ---------------------------------------- Il trigger, è un controllo di integrità referenziale, la politica di associazione delle refernze è data dalla costrutto JOIN. in sostanza se dovessimo parlare di due tabelle e dovessimo inserire estrapolare una tabella in base ad una chiave comune in entrambe i campi è solamente necessario che queste due chiavi siano presenti in entrambe le tabelle . Se abbiamo la classica tabella dei dipendenti, quindi abbiamo tabelle distinte ma RIFERITE per esempio degli obiettivi raggiunti. Esisterà un campo in entrambe le tabelle che posso accomunare. Per farlo quando scrivo la tabella degli obiettivi devo fare un innerjoin riferito alla tabella dipendenti, in modo da dire questi obiettivi sono riferiti solo a quel dipendente. Paradossalmente non è obbligatorio che tutti i record della tabella dei dipendenti trovino un riferimento nella tabella degli obiettivi, questo verrebbe controllato dal trigger che controlla che i dati di una tabella siano associati alla seconda. Poi la sintassi esatta, siccome può essere un pò difficile me la faccio costruire dai programmi specializzati. Nel caso di SQLITE si possono scaricare i dbm consigliati da GYC, quindi provare inserendo le tabelle su cui si vuole lavorare e creando le sintassi corrette. Oppure manuale [url=http://www.accademiagalli.com/dispense/SQL.PDF:1anhsa61]sql come questo in pdf[/url:1anhsa61] ci sarebbe anche questo su [url=http://database.html.it/guide/lezione/2450/luso-delle-join/:1anhsa61]innerjoin[/url:1anhsa61] ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 07:51:02 ---------------------------------------- ciao ragazzi, allora come va?? devo iniziare un lavoretto con sqlite, ma non riesco a fare un confronto tra due db, avete qualche idea??? grazie ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 08:36:29 ---------------------------------------- Devi sapere che tipo di confronto vuoi: -facilità d'uso (durante la programmazione) -facilità di installazione -velocità nell'accesso (lettura, scrittura, aggiornamento, query) -capacità di trafico/memorizzazione -utilizzo condiviso (multiaccesso, multiutente) -spazio in disco -costo di licenza -... Questi sono i primi parametri che mi vengono in mente in 3 secondi che io valuterei. Per alcuni di essi, devi avere i sistemi sotto mano e scrivere qualche semplice vi per fare delle prove! ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 09:00:34 ---------------------------------------- \":D\" \":D\" \":D\" mi son spiegato male... non devo confrontare due db tipo sqlite e access o mysql devo confrontare due db di sqlite pieni di dati. che poi adesso pensandoci bene e meglio che confronto due tabelle. il problema e che con labview le cose più banali diventa difficili \":x\" \":x\" ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 10:25:01 ---------------------------------------- Perchè devi confrontare 2 tabelle intere? Mi suona di dover usare la "forza brutta", che di solito è un cattivo indicatore. ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 10:52:34 ---------------------------------------- per gestire un magazzino e devo vedere che il prodotto non ci sia in gia in due posti ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 10:54:16 ---------------------------------------- e quindi che confronto tra database devi fare??? Sono due select una per ogni database e poi confronti il risultato no? ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 11:11:15 ---------------------------------------- ciao gepo \":wink:\" mi fai un esempio??? ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 11:13:49 ---------------------------------------- Apri il database1 e fai: Select PIPPO from TABELLADB1 where PIPPO=6; Poi sul database2 fai: SelectPIPPO from TABELLADB2 where PIPPO=6; Se una delle due è vuota è ok, se tutte e due danno un risultato vuol dire che pippo=6 è presente in tutti e due i magazzini e quindi non va bene. ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 11:17:23 ---------------------------------------- [quote="gepponline":3gvp87k8]Apri il database1 e fai: Select PIPPO from TABELLADB1 where PIPPO=6; Poi sul database2 fai: SelectPIPPO from TABELLADB2 where PIPPO=6; Se una delle due è vuota è ok, se tutte e due danno un risultato vuol dire che pippo=6 è presente in tutti e due i magazzini e quindi non va bene.[/quote:3gvp87k8] ok fino qua ci sono, pero allora io devo controllare se un prodotto e presente ma non tramite codice ma tramite coordinate x y z ti viene in mente qualcosa di semplice? ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 11:19:01 ---------------------------------------- no..nel senso...se non so la struttura del database è un po' difficile. Nel senso le coordiante sono dei campi del database o sono tutte in un campo unico? ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 11:20:49 ---------------------------------------- Cmq stavo pensando... se è un magazzino... il prodotto è identificato da qualcosa e quidni fai il confronto su quel qualcosa. Se invece devi controlalre la presenza o meno di un prodotto in una cella del magazzino avrai bisogno di un booleano che dica cella piena o cella vuota. ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 11:21:41 ---------------------------------------- ho due database dove i campi sono codice scaffalatura scaffale ripiano etc etc mi interessa che quando l utente inserisce scaffalatura scaffale ripiano lui va nelle due tabelle e controlla che non ci sia gia qualcosa in quella determinata cella, magari l uso delle due tabelle e poco pratico però non mi viene in mente altro ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 11:24:36 ---------------------------------------- Fai, select CODICE from DATABASE where scaffalatura= 10 AND scaffale = 8 AND ripiano = 2; Se il risultato è nullo, la cella è vuota senno' ti restituirà il codice del prodotto che c'e' al suo interno. Pero' questa cosa è en lontana d aun confronto tra due database. ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 11:26:14 ---------------------------------------- Fondamentalmente è una questione di struttura del database. O fai un database dove ogni cella rappresenta un record, o un database dove ogni prodotto rappresenta un record. in base a questa scelta dovrai costruirti le varie interrogazioni. ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 11:26:46 ---------------------------------------- [quote="gepponline":30r6gxsb]Fai, select CODICE from DATABASE where scaffalatura= 10 AND scaffale = 8 AND ripiano = 2; Se il risultato è nullo, la cella è vuota senno' ti restituirà il codice del prodotto che c'e' al suo interno. Pero' questa cosa è en lontana d aun confronto tra due database.[/quote:30r6gxsb] si ma il mio problema non e farlo con sqlite ma con labview come gli dico sfogliamo tutto la tabella che poi mi da il risultato in un array 2D che nn so come manipolarlo \":cry:\" \":cry:\" ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 11:29:30 ---------------------------------------- Aspetta... allora se hai un problema che non saicome usare i database con labview è completamente un altro discorso. Cerca nel forum e troverai mille discussioni in merito. In particolare prova a cercare ADO. O in questo stesso topic, da qualche parte c'e' il link al toolkit per labview per sqlite. Senno' c'e' il toolkit della NAtional Instruments, oppure puoi lavorare con gli activeX. ...cerca cerca... ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 11:31:09 ---------------------------------------- no gepo sqlite lo sto gia usando con labiew inserisco visualizzo dati nelle tabelle ma non so come manipolare sti array 2D mi sono arenato qua ---------------------------------------- AUTORE: 482 DATA :16/05/2007 - 12:29:37 ---------------------------------------- ribadisco. Riformula allora la tua domanda e apri un nuovo topic. ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 12:32:57 ---------------------------------------- Mi intrometto brevemente, anche perchè poi dovrò usci e non potrò seguire la discussione sennò stassera. Mi sembra di capire che tu stia riprendendo i dati (tutti) dalla(e) tabella(e) per poi fare le tue ricerche ed interrogazioni nel VI. É inutile oltre che lavoro sprecato! A quello servono le query SQL. Il bello di avere un database, è che non devi aver i dati "in giro" nel vi. Appunto con le query cerchi e riprendi soltanto ciò che serve nel momento in cui serve. ---------------------------------------- AUTORE: 1257 DATA :30/05/2007 - 09:55:02 ---------------------------------------- ciao a tutti, io ho un "problema" con i database SQLite: Devo eseguire un'operazione "SELECT" sul BD (7MB) con labview però i tempi di ricerca sono di circa 25-30 secondi la prima volta che eseguo il VI e 80+ sec le successive e ciò mi comporta un rallentamento generale del PC visto la quantità di memoria RAM allocata (260 MB!). Nel mio caso caso la query dell'esempio estrae circa 85.000 record che devo visualizzare sul VI. il DB è composto da due tabelle: - Tab1 (5 campi) - Tab2 (12 campi) legate tra loro dal campo n°serie. Volevo sapere se in qualche modo si può velocizzare l'operzaione di SELECT sul database perchè così è ingestibile... Grazie. ---------------------------------------- AUTORE: 4 DATA :31/05/2007 - 21:29:17 ---------------------------------------- [quote:1uxd2ri8]Mi intrometto brevemente, anche perchè poi dovrò usci e non potrò seguire la discussione sennò stassera. Mi sembra di capire che tu stia riprendendo i dati (tutti) dalla(e) tabella(e) per poi fare le tue ricerche ed interrogazioni nel VI. É inutile oltre che lavoro sprecato! A quello servono le query SQL. Il bello di avere un database, è che non devi aver i dati "in giro" nel vi. Appunto con le query cerchi e riprendi soltanto ciò che serve nel momento in cui serve. _________________ --gyc [/quote:1uxd2ri8] la risposta di gyc è la più adatta. Ciao ---------------------------------------- AUTORE: 482 DATA :01/06/2007 - 07:35:58 ---------------------------------------- fermi fermi fermi. Cloud! te l'avevo detto dispecificare che senno' ti avrebbero risposto cosi'!! E c'hanno ragione. ma Il fatto non è tanto l'utilità o meno. Il fatto è il tempo. Mettiamo il caso in cui un utente faccia una query diversa, ma per la quale, i risultati sono tantissimi (prendendo l'esempio pratico potrebbe esserci una macchina che ha sfornato materiale non conforme per 3 giorni di fila). Ora, visto che su 85000 ci vuole quando va bene 30 secondi contro i 4 o 5 del l'sqliteadmin io mi chiedo. Perchè ci mette cosi' tanto di piu'?E perchè mi alloca tutta quella memoria? ---------------------------------------- ================================================================================ write to measurement file ================================================================================ AUTORE: 1801 DATA :19/03/2007 - 14:18:44 ---------------------------------------- Dopo che scrivo i dati di una prova nel write to measurement file,vorrei che ci fossero le etichette dei canali anzichè la scritta che compare adesso :untitled.Come posso fare?Grazie ---------------------------------------- AUTORE: 4 DATA :02/04/2007 - 09:15:02 ---------------------------------------- Ciao untitled compare perchè evidentemente non hai assegnato nomi ai tuoi canali. Se usi il DAQ MX puoi farlo o tramite Max o settandoli programmaticamente per mezzo dela funzione set attribute direttamente da labview. Non posso essere più preciso perchè non ho installato il DAQ. Ciao ---------------------------------------- AUTORE: 1597 DATA :02/04/2007 - 13:44:46 ---------------------------------------- puoi farlo utilizzando la funzione che trovi nell'allegato... ---------------------------------------- ================================================================================ codifica array ================================================================================ AUTORE: 1927 DATA :19/03/2007 - 16:43:46 ---------------------------------------- Ciao a tutti..siccome non ho molta esperienza in merito chiedevo se qulacuno potesse dirmi come risolvere questo quesito: mando un segnale direttamente in binario,quindi scrivo un array di numeri in esadecimale,poi convertirli in stringa,la stessa cosa in lettura..il mio problema sta proprio nel convertire il tutto per la lettura spero di essere stato chiaro.. cmq mando il file grazie ---------------------------------------- AUTORE: 645 DATA :19/03/2007 - 20:13:16 ---------------------------------------- Tra le proprietà degli indicatori numerici puoi settare la visualizzazione su binaria, decimale, esadecimale... Oppure nei blocchi di conversione dovresti trovare qualcosa... ---------------------------------------- AUTORE: 1927 DATA :20/03/2007 - 14:18:16 ---------------------------------------- ok fino qui tutto bene.. ma non capisco dove trovare un array che mi riceva il segnale in stringa e lo mandi in sette indicatori diversi per la ricezione dei codici..grazie ---------------------------------------- AUTORE: 927 DATA :21/03/2007 - 08:49:33 ---------------------------------------- Cioè ad esempio hai la stringa FF0011.... E vuoi estrarre i numeri 255, 0, 17....? ---------------------------------------- AUTORE: 645 DATA :21/03/2007 - 09:09:32 ---------------------------------------- Tu ricevi il segnale come stringa; poi devi dividere i vari campi della stringa lavorando sulle posizioni della stringa (ti muovi all'interno della stringa e isoli le parti che ti servono... in base a qualche regola che sai tu... tipo: so che mi arrivano n numeri in esadecimale e suddivido la stringa in questi n numeri) e inserisci ogni numero in una posizione di un vettore dopo aver eseguito la conversione. ---------------------------------------- AUTORE: 1927 DATA :22/03/2007 - 14:45:15 ---------------------------------------- devo mandare dei codici nella stringa,tipo 00h 02h 00h 04h e cosi via..dopodiche la scheda lilegge e dovrebbe mandarmi la risp dei segnali... Comunque ora sto provando senza array,ad inserirli tutti insieme con WRITE VISA in Hex ... grazie magic botolo provero' anche in quel modo.. ---------------------------------------- AUTORE: 927 DATA :22/03/2007 - 14:54:57 ---------------------------------------- Dall'ultimo messaggio mi par di capire che le stringhe esadecimali non ti servono affatto, i "codici" sono singoli byte che devi mandare/ricevere in formato binario. Se è così, puoi usare "Byte Array to String" e "String to Byte Array" per convertire array di numeri (0-255) a/da stringhe binarie ---------------------------------------- ================================================================================ daq asssitant ================================================================================ AUTORE: 1947 DATA :19/03/2007 - 20:45:16 ---------------------------------------- Salve sono un nuovo utente Labview Ho creato un Task con il daq assistant.. precisamente ho una scheda PCI 6251 ed ho utilizzato una uscita analogica per generare una tensione..quando finisco lui mi crea il DAq .. volevo sapere adesso per generare una tensione sinusoidale con frequenza ed ampiezza variabile cosa devo collegare all connettore dat del daq creato.. inoltre devo mandare questa onda generata adun ingresso analogico per poi con un loop generare una rampa controllata della tensione.. grazie in anticipo ---------------------------------------- ================================================================================ Task name sempre "unnamed" ================================================================================ AUTORE: 1168 DATA :20/03/2007 - 07:24:19 ---------------------------------------- Ciao a tutti. Sto creando un VI che mi legga da un file di configurazione i parametri di acquisizione di una scheda PCMCIA6024E sui canali ai0 e ai1 (devo aquisire il segnale di 2 trasduttorio di pressione). Lasciate perdere un attimo il formula node che crea i parametri della scala. che sostituirò con una table... Il mio problema è che il task mi rimane sempre "unnamed". La mia idea è quella poi di passare l'indicatore nei VI di aquisizione in un altr o punto del programma principale e di avere i clear task alla fine. Ho provato anche col task property node "name" ma è in sola lettura. Lo so, sarà una svista mia da qualche parte, ma non ne vengo a capo il VI è allegato, tutti i valori di default delle chiavi sono "veri" nel senso che potrebbero essere i valori durante il runtime. La gestiopne degli errori la completerò poi. Grazie e buona giornata! ---------------------------------------- AUTORE: 1168 DATA :20/03/2007 - 10:17:33 ---------------------------------------- Appunto, mi dimenticavo il blocchetto "DAQmx create task" e passavo direttamente al canale.. ---------------------------------------- ================================================================================ Visualizzare immagini acquisite in mutua esclusione ================================================================================ AUTORE: 1876 DATA :20/03/2007 - 08:05:23 ---------------------------------------- Ciao a tutti. Io vorrei acquisire tre immagini (uguali ma di colore diverso, le immagini le ho già) da una cartella del mio computer e visualizzarne solo una alla volta a seconda dell'intero inserito (1, 2, 3). ---------------------------------------- AUTORE: 927 DATA :20/03/2007 - 10:50:04 ---------------------------------------- I file li puoi caricare con "Read JPEG file" e simili; poi li devi convertire con "Draw flattened pixmap", a questo punto li puoi mandare a un controllo Picture. A quanto vedo, ogni volta che si scrive sul picture l'immagine precedente sparisce (anche se era più grande) ---------------------------------------- AUTORE: 1876 DATA :20/03/2007 - 12:47:02 ---------------------------------------- perdonami ma ho capito veramente poco... Potresti mandarmi il vi così gli do un'occhiata? Grazie, ciao! ---------------------------------------- AUTORE: 927 DATA :20/03/2007 - 12:54:06 ---------------------------------------- Eccolo (7.1) ---------------------------------------- AUTORE: 1876 DATA :20/03/2007 - 13:20:04 ---------------------------------------- ho capito grazie... ho un'altra domanda, questo è l'unico modo per visualizzare immagini in colori diversi a seconda dei casi? Perchè per esempio con i led posso solo fare due casi... ---------------------------------------- AUTORE: 927 DATA :20/03/2007 - 14:51:52 ---------------------------------------- Dunque, se tu in sostanza hai un numero di immagini fisso e limitato, e le immagini son sempre quelle, forse ciò che ti serve è un Pict Ring. Lo trovi sotto Ring & enum; è come un menù a tendina che al posto delle scritte ha le immagini. Per caricare un'immagine esterna Edit -> Import picture from file, poi sul controllo tasto dx -> Import picture... Un ring sul diagramma corrisponde semplicemente a un intero, cambiando questo numero cambi l'immagine ---------------------------------------- AUTORE: 1876 DATA :21/03/2007 - 07:23:01 ---------------------------------------- ok grazie, volevo chiedere anche un'altra cosa... E' possibile modificare a runtime i parametri degli oggetti? come la visibilità dei bottoni o settare il campo "enabled"? Mi serve per vietare alcune operazioni se non si verificano delle determinate condizioni. Grazie. ---------------------------------------- AUTORE: 927 DATA :21/03/2007 - 08:26:08 ---------------------------------------- Certo, si usano i Property Node (tasto dx -> Create -> ...) P.S. meglio aprire un'altro topic per domande diverse ---------------------------------------- AUTORE: 1876 DATA :21/03/2007 - 08:44:49 ---------------------------------------- ok grazie. Ciao! ---------------------------------------- ================================================================================ help creazione database ================================================================================ AUTORE: 1955 DATA :20/03/2007 - 09:23:02 ---------------------------------------- buon giorno, sono nuovo del forum e volevo chiedere delle spiegazioni. allora io devo creare un vi che acquisice dati da una stazione meteo ora io visualizzo in grafici i dati acquisiti ne mostro max min media etc. ora io volevo memorizzare tutti questi dati in un database con il labview per poi fare delle query Sql (qui mi è utile il manuale da voi fornito), ma io non so come creare il database e come dire che quei dati devono essere memorizzati nel DB. ho visto come creare un database ODBC con i driver sql ma è l'inserimento il problema. perpiacere aiutatemi anche mandandomi esempi alla mia mail. sacconesilvano@hotmail.com io uso il lab 6.1 ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 09:43:30 ---------------------------------------- ciao Silvano, hai provato a leggere ilpost sotto su database connectivity?? ---------------------------------------- AUTORE: 1955 DATA :20/03/2007 - 09:57:09 ---------------------------------------- si che lo ho letto, è proprio il post dove tu hai scritto e non ci ho capito molto. ora che mi dici cosi credo che il db devo crearlo io a parte con mySql ?? e poi connettermi con gli Activx ? ma io voglio fare un vi che mentre acquisice mette tutto nel DB automaticamnete. ho letto qualcosa degli ODBC ma non mi è chiaro.mi avevano consigliato il tollkit ma cosata 999 euro, quindi tu che mi consigli?? help please ---------------------------------------- AUTORE: 1368 DATA :20/03/2007 - 10:05:33 ---------------------------------------- ma dipende da che devi fare, noi nel post sotto parliamo di sqlite un db che non necessita di un motore database. comunque devi sempre crearlo tu il codice per salvare i dati nel db indifferentemente da che db scegli, comunque aspetta qualche altra risposta, perche io labview non lo so usare \":o\" ps: prova a leggere gli articoli che hanno scritto sui db se non lhai gia fatto ciao ---------------------------------------- AUTORE: 1955 DATA :20/03/2007 - 10:20:03 ---------------------------------------- si ho letto ma non ci ho cavato un ragno dal buco. cioè li è spiegato come connettersi al database e come fare le query ed sembra una cosa tranquilla da fare. ma io non so appunto come crearlo il database con il labview. io acquisisco ogni 10 secondi almeno 10 dati da una seriale. possibile che ogni 10 secondi devo fare fare 10 query per l'inserimento in un DB (che creo io a parte con ad esempio con easyphp). boo non so proprio dove cercare. nememno sul sito ho tovato nulla di utile. grazie ancora per l'aiuto ---------------------------------------- AUTORE: 645 DATA :20/03/2007 - 15:58:59 ---------------------------------------- Ciao Silvano... per creare un database devi usare le query di creazione tabelle (le trovi cercando in internet o su un libro di database dedicato al tipo di database che vuoi usare). Io personalmente creo il database prima di usare LabView tramite gli strumeti propri del server di database che utilizzi (io ho usato MySQL e Microsoft SQL Server ed entrambi offrono interfacce per lavorare sulle tabelle). Una volta creata la struttura principale puoi fare tutto con LabView usando le query. Prima di usare LabView però ti consiglio di leggere qualcosa sulla struttura di un database e il modo di pensare un database. Organizzare bene le tabelle vuol dire perdere un po' di tempo all'inizio ma guadagnarne un sacco dopo!! \":)\" ---------------------------------------- AUTORE: 1955 DATA :20/03/2007 - 17:51:21 ---------------------------------------- Davvero grazie. allora ti spiego. io sono uno studente di informatica e sto facendo il tirocinio proprio su questa cosa! ho fatto 3 anni fa l'esame di basi di dati. quindi devo spolverare solo i vecchi appunti per creare il database. quindi fammi capire . allora cmq mysql creo il database vuoto. poi apro il labview e con opportuni copia incolla presi dai manuali di questo sito interrogo il database nel senso che ci metto dentro con le query i dati appena acquisiti da seriale. poi faccio dei subvi apparte che mi fanno le queri per interrogare il database e mostrare i dati che voglio. per poi farne statistiche calcoli e grafici??? se è cosi davvero grazie. a breve creo il tutto e ti faccio sapere. solo 1 domanda. io devo acquisire milioni di dati ci sono limiti??ad esempio devo acquisire temperatura, umidità,diciamo 10 paramentri ogni minuto o anche meno.per giorni e giorni. silvano ---------------------------------------- AUTORE: 645 DATA :20/03/2007 - 19:18:06 ---------------------------------------- Due cose: la prima è che quello che hai scritto è abbastanza giusto... nel senso che crei il database e una volta che hai la struttura puoi usare LabView per effetturare le query (per sapere come puoi dare una lettura ai documenti presenti nella sezione "Articoli" sull'interazione con i database). La seconda è che i limiti del database solitamente non danno problemi anche per tantissimi dati (io ho lavorato con 60000 dati senza difficoltà): ma acquisire temperature ad intervalli di un minuto e memorizzarle tutte non è un po' troppo? Devi controllare il reattore di una centrale nucleare? Altrimenti puoi pensare a qualche soluzione di media dei dati in un certo periodo temporale... ---------------------------------------- AUTORE: 1955 DATA :21/03/2007 - 10:36:10 ---------------------------------------- ihihih e che non è colpa mia io devo acquisire dati da una stazione metereologica per farne statistiche etc, io ho scritto ogni minuto , ma pensa che il mio professore vorrebbe acquisire ogni 10 sec al max. ahahah. ok avevo già visto quel manuale ed è fatto bene, cmq oggi mi hanno consigliato di usare il database citadel del labview e i sto documentando ma non so quale sia meglio. tu ne sai qualcosa? ancora grazie per l'aiuto ---------------------------------------- AUTORE: 645 DATA :21/03/2007 - 17:54:09 ---------------------------------------- Puoi pensare anche a MySQL con driver ODBC per la comunicazione con LabView. Se scarichi il pacchetto completo di MySQL hai anche gli strumenti di progettazione del database propri del linguaggio così puoi fare delle prove prima di inserire le query in LabView. ---------------------------------------- AUTORE: 1955 DATA :21/03/2007 - 21:48:28 ---------------------------------------- si ma cmq devo creare il database a parte e fare una prova se la query funziona o no, e poi la inserisco in labview. domani devo parlare con un professore della mia univeristà (che mi aiuterà) esperto di labview e da quel che ho inteso lavora con la ni. domani vi farò sapere meglio. ---------------------------------------- AUTORE: 1955 DATA :22/03/2007 - 12:11:29 ---------------------------------------- allora oggi ho parlato con il professore. lui lavora con la NI e conosce il labview meglio delle sue tasce. ci sono essenzialmente 2 modi di operare nel mio caso. escludendo utilizzo del database sql per vari motivi, magari utilizzando solo le query per poche cose, ma sempre al di fuori del progetto o al max per piccole cose. metodo 1) usare il DSC database supervisor control e il MAX che non bisogna fare nulla in labview ma solo configurare questi 2 moduli che si connettono automaticamente all'hardware e ne visualizzano i valori e ne memorizzano in citadel (DB di labview) e poi fare in labview un piccolo vi che servirà solo a visualizzare i valori!! N:B questo metodo è ottimo ma difficile e l'hardware deve necessariamente essere NI oppure 100% compatibile oppure per lo meno deve avere un'applicazione con un server OPC(che io non so se il mio hardware ha). 2) metodo creare il vi che acquisisce e memorizza i valori con i tag all'interno di citadel e poi visualizzarli con le normali funzioni. io non avevdo ancora disponibile l'hd devo utilizzare il 2° metodo. per ora come valori utilizzo un generatore di numeri causali. che mtto in citadel. dopo faccio un qualcosa che visualizza tali valori. e poi vediamo cosa fare più se qualcuno ha esempi del genere me li puo mandare? io uso la verisone 6.1 la mia e-mail è sacconesilvano@hotmail.com grazie a tutti ---------------------------------------- ================================================================================ Filtri ================================================================================ AUTORE: 1308 DATA :20/03/2007 - 14:23:59 ---------------------------------------- quale tipo di filtro mi consigliate per pulire un segnale simile ? il segnale è generato da una gella di carico, ---------------------------------------- AUTORE: 384 DATA :21/03/2007 - 08:52:42 ---------------------------------------- Guardando solo il segnale "sporco" senza sapere come "dovrebbe essere" non ci permette di dare suggerimenti. Sei tu la persona che sa cosa vuole ottenere; usando i VI express, tu stesso puoi fare velocemente delle prove con vari tipi di filtro e diversi parametri per ciascuno di essi e così trovare il "setup" giusto. ---------------------------------------- AUTORE: 1308 DATA :22/03/2007 - 10:16:02 ---------------------------------------- bhe, come dici tu, il segnale è sporco, e sono quei picchi che devo togliere. il segnale dovrebbe essere lineare perche mi arriva da una cella di carico. il carico è statico quindi il valore dovrebbe essere costante e senza quei picchi. ---------------------------------------- AUTORE: 384 DATA :22/03/2007 - 11:47:16 ---------------------------------------- É meglio cercare di eliminare il rumore e le interferenze PRIMA, dell'acquisizione - quanto meno limitarle il più possibile. Guardando quelle "gobbe" osservo una periodicità a 20msec, cioè, hai un "rientro" pesante dei 50Hz della linea 220Vac. Verifica che i cavi della cella di carico non passino vicino a qualche cavo del 220V (del computer o altro dispositivo, per esempio). Altro da verificare, che la tensione di "eccitazione" della cella di carico sia "pulita". Ci sono anche altri fenomeni più "veloci", che mi fanno pensare a comutazioni in motori. Ce ne hai nelle vicinanze? La cella la colleghi alla scheda con del cavo schermato? ---------------------------------------- AUTORE: 1308 DATA :30/03/2007 - 07:34:14 ---------------------------------------- grazie, ottimo, vedo se tovo l'interferenza.... ---------------------------------------- AUTORE: 384 DATA :30/03/2007 - 18:16:53 ---------------------------------------- Buon divertimento! \":wink:\" ---------------------------------------- ================================================================================ Programma con struttura CASE ================================================================================ AUTORE: 1958 DATA :20/03/2007 - 15:38:09 ---------------------------------------- Salve a tutti , vorrei realizzare un contatore di numeri da 1 a 5, utilizzando il case. I numeri dovrebbero essere introdotti casualmente , moltiplicati per 10 ed eliminata la parte decimale. Se maggiori di 5 il programma termina con un messaggio. Mi potete aiutare a realizzarlo? O magari passarmelo se ci mettete poco ( cosa di cui sono sicuro \";)\" ) grazie ---------------------------------------- AUTORE: 1030 DATA :20/03/2007 - 16:11:20 ---------------------------------------- Nella paletta delle funzioni hai tutto quello che ti serve. Ti serve un ciclo While temporizzato (con la funzione "Wait Until next ms Multiple") che regola la velocità di generazione di numeri casuali. I numeri li generi con la funzione "Random Number (0-1) che trovi sotto Numeric. Moltiplichi per 10 e converti il numero che è un Double in un Integer con la funzione "To Byte Integer". Gestisci i vari casi con un Case. Il messaggio lo fai apparire con la funzione "One Button Dialog" sotto Time-Dialog. Prova a farlo da solo ti sarà più utile che copiarlo. ciao ciao ---------------------------------------- AUTORE: 1958 DATA :20/03/2007 - 17:52:52 ---------------------------------------- Si certo , ma non potreste passarmelo visto che devo saperlo per domani ? ---------------------------------------- AUTORE: 645 DATA :20/03/2007 - 19:15:18 ---------------------------------------- Ehm... si ricorda che ILVG non è un supermercato! ---------------------------------------- AUTORE: 1030 DATA :20/03/2007 - 20:30:03 ---------------------------------------- ...... se almeno ci avessi provato!! \":o\" \":o\" Così non va, il forum non è da intendersi in questo modo. Partiamo dall'introduzione [url:22119975]http://www.ilvg.it/forum/viewtopic.php?t=1418[/url:22119975] \":evil:\" ---------------------------------------- ================================================================================ AIUTO PLC s7-300 ================================================================================ AUTORE: 835 DATA :20/03/2007 - 17:57:35 ---------------------------------------- Cerco disperatamente un modo per collegare il plc s7-300 con labview (ho diverse versioni anche 8.2) ma essendo proprio nuovissimo dell'argomento avrei bisogno di una guida che mi aiutasse per fare questo collegamento Grazie infinite a tutti per le risposte ---------------------------------------- AUTORE: 1030 DATA :20/03/2007 - 21:10:39 ---------------------------------------- Inizia utilizzando la funzione di Ricerca nel Forum... troverai sicuramente molte informazioni per iniziare a capire cosa ti aspetta \":wink:\" Poi se non ti è chiaro qualcosa prova a chiedere , sul forum troverai qualche esperto sull'argomento... ciao ciao ---------------------------------------- AUTORE: 384 DATA :21/03/2007 - 09:47:44 ---------------------------------------- Dovrai usare un server OPC. LabView dispone di un suo OPC server in grado di comunicare con (quasi) tutti i modeli e varianti dei PLC siemens. In generale, ogni marca ha il suo OPC server che può comunque può essere da qualsiasi applicazione windows, in particolare LabView. ---------------------------------------- AUTORE: 835 DATA :22/03/2007 - 11:28:18 ---------------------------------------- Ho letto i diversi articoli nel formum ma mi trovo davvero in grosse difficoltà. Ho capito che andrebbe utilizzato l'opc server di labview ma vi chiedo, se possibile, sapere come configurarlo o se esiste una guida o qualcosa che mi dia delle indicazioni da seguire a tal proposito. Grazie mille ---------------------------------------- AUTORE: 384 DATA :22/03/2007 - 12:01:27 ---------------------------------------- Quando installi l'OPC di NI si installa il relativo help in linea, che è sempre il punto migliore dove iniziare; [url=http://zone.ni.com/devzone/cda/tut/p/id/4547:30624wjs]qui[/url:30624wjs] trovi delle indicazioni utili. Sono scritte per il modulo DSC, ma di fatto, una volta configurato un server OPC, lo si può usare da LabView direttamente, anche senza avere il DSC (io lo faccio regolarmente!). ---------------------------------------- AUTORE: 835 DATA :22/03/2007 - 18:08:07 ---------------------------------------- scusa ma non devo usare il field point vero? a me interesserebbe collegare direttamente labview al plc tramite MPI. ---------------------------------------- AUTORE: 835 DATA :22/03/2007 - 18:15:05 ---------------------------------------- [quote="sarumans":g2mn1zaf]scusa ma non devo usare il field point vero? a me interesserebbe collegare direttamente labview al plc tramite MPI. p.s. cosa è il DSC?[/quote:g2mn1zaf] \":D\" ---------------------------------------- AUTORE: 384 DATA :22/03/2007 - 19:03:20 ---------------------------------------- Non c'entra niente il FieldPoint, tranquillo. Il DSC è un toolkit con funzioni già pronte per fare il monitoraggio di sistemi industriali. Appunto per questo è sempre associato al termine OPC perchè esso è il meccanismo per eccellenza per fare questo lavoro. Gli OPC server non si trovano freeware (ahimè!) perchè ogni produtore di hardware industriale lo deve sviluppare apposta per il suo materiale. Il server OPC ha, per cosí dire, 2 facce: -una, quella verso l'hardware, è proprietaria perchè legata alle caratteristiche e "meccanismi" dell'hardware stesso. -l'altra, verso il PC, è la parte standard che permette a qualunque applicazione windows - in particolare LV - accedere ai dati esportati dall'hardware. Non è un driver, nel senso che non si comanda l'hardware; ci si scambiano soltanto dati. Per questo esistono 2 sw: uno sul PC (labview) che fa da interfaccia con l'umano, l'altro sul PLC che fa da interfaccia con la macchina. Il modo in cui uno controlla l'altro è dato dal significato dei dati che si scambiano. Su quale OPC server usare, è una scelta dettata dai costi, dalla flessibilità, dalla disponibilità, ecc. Nel tuo caso, tecnicamente è indiferente. Il server OPC di NI costa 999 euro; poi c'è da pagare una licenza runtime (300 euro) ogni volta che si distribuirá un'applicazione compilata; dalla mia esperienza, quelli proprietari costano un pò meno (tra 600 e 800 euro), ma lo si deve acquistare per ogni applicazione. Invece sulla flessibilità, N.I. è tra i pocchi che può comunicare con [url=http://www.ni.com/opc/opcservers.htm:2apj0g4u]dispositivi di diversi produttori[/url:2apj0g4u] - e questo può essere un vantaggio non indiferente, nell'ottica di poter usare sempre lo stesso pacchetto (LV+OPC) per sviluppare le tue applicazioni con hw diversi. (Devi vedere anche se la scheda MPI che hai è supportata dal OPC di NI) Interessante è che, se anche cambiasse il server OPC, purchè le variabili "esportate" restino le stesse - ed ovviamente abbiano lo stesso significato - la tua applicazione labview non deve essere cambiata, oltre l'indirizzo (il nome) del server OPC. ---------------------------------------- AUTORE: 384 DATA :22/03/2007 - 19:19:50 ---------------------------------------- Ho trovato [url=http://www.download.com/OPC-Server-for-Siemens/3000-2076_4-10278341.html:276t03po]questo OPC server[/url:276t03po] per i Siemens S7. Costa poco e lo si può provare prima. ---------------------------------------- AUTORE: 835 DATA :23/03/2007 - 11:15:42 ---------------------------------------- In effetti il costo non è indifferente! Stavo dando nel forum ai vari post e mi sto facendo una idea qualunque suggerimento-link che mi possa essere utile sarà ben accetto. p.s. solo un chiarimento, magari è banale, l'opc server da utilizzare è unico non devo averne 2 uno per la parte HW (PLC) ed uno per la parte SW(LabView)...scusate ma sono davvero niubbo \":D\" Grazie infinite ---------------------------------------- AUTORE: 384 DATA :23/03/2007 - 12:19:07 ---------------------------------------- [quote="gyc":3mufmnbj]Il server OPC ha, per cosí dire, 2 facce: -una, quella verso l'hardware, è proprietaria perchè legata alle caratteristiche e "meccanismi" dell'hardware stesso. -l'altra, verso il PC, è la parte standard che permette a qualunque applicazione windows - in particolare LV - accedere ai dati esportati dall'hardware.[/quote:3mufmnbj] ---------------------------------------- ================================================================================ salvare le info del sensore della camera in un file .txt ================================================================================ AUTORE: 1839 DATA :21/03/2007 - 13:06:05 ---------------------------------------- Sto lavorando su un vi per l'acquisizione di immagini con una telecamera firewire IEEE 1394.. Riesco tranquillamente ad ottenere le immagini e a salvarle in formato .png e .tiff.. Ora mi servirebbe creare una variante del vi atta ad ottenere un file di testo .txt contenente la matrice con l'array 2D delle informazioni percepite dal sensore... sono riuscito a farlo, ma il file di testo viene ottenuto estrapolando le informazioni da un immagine .png preventivamente acquisita... (a questo proposito ho sfruttato : "IMAQ ReadFile" ; "IMAQ ImageToArray" e "Write To Spreadsheet File") Qualcuno saprebbe dirmi se esiste un modo per ottenere il file della matrice come output dell' "IMAQ1394 Grab Acquire" in modo da ottenere le informazioni senza che vengano precedentemente "sporcate" dalla conversione in formato .png.. ---------------------------------------- AUTORE: 482 DATA :21/03/2007 - 15:57:31 ---------------------------------------- beh ma scusa se hai l'IMAQ image to array, basta dare in pasto a quello l'immagien acquisita anzichè quella salvata su file no? ---------------------------------------- AUTORE: 1839 DATA :23/03/2007 - 12:11:49 ---------------------------------------- scusami se non ti ho fatto ancora sapere , ma in questi giorni non sono in sede e non ho la possibilità di provare il vi con la telecamera connessa.. appena provo il vi , ti do notizie... Ciao e grazie... ---------------------------------------- ================================================================================ Disabilitare bottoni ================================================================================ AUTORE: 1876 DATA :22/03/2007 - 07:12:06 ---------------------------------------- Ciao a tutti, volevo chiedere come è possibile, a seconda di certe condizioni, modificare l'attributo enabled di un bottone booleano, so che bisogna usare il property node ma non so come. Mi potete aiutare? grazie, ciao. ---------------------------------------- AUTORE: 487 DATA :22/03/2007 - 08:12:18 ---------------------------------------- Ciao, la cosa è abbastanza semplice: utilizzi il property node del tuo booleano e setti la proprietà disable a secondo di quello che vuoi fare (vedi l'help) ---------------------------------------- AUTORE: 1876 DATA :23/03/2007 - 07:05:03 ---------------------------------------- perdonami ma l'hjelp non è molto esplicativo e ci ho capito poco... ---------------------------------------- AUTORE: 482 DATA :23/03/2007 - 07:29:25 ---------------------------------------- vai sull'indicatore nel block diagram-> tasto destro-> crate>property node VAi sul property node e se non è già diable, col tasto destro fai propeties e scegli disable (o enable, non mi ricordo) Adesso che ahi quel nuovo blocchetto, gli passi un true o un false a seconda di quello che devi fare. Un consiglio. QUando si prova una funzionalità nuova, non c'e' cos apiu' semplice ed immediata di creare un nuovo vi, copiarci solo il controllo/indicatore farci quello che si pensa sia giusto e mandare in run. E' gratis, immediato e da subito un idea dell'effetto che si ottiene \":wink:\" ---------------------------------------- AUTORE: 487 DATA :23/03/2007 - 07:38:32 ---------------------------------------- Scusa Gepponline, una precisazione: la propietà disabled non ammette booleani in ingresso, bensì un numerico U8 (0=enabled; 1=disabled; 2=disabled and greyed out). Ciao ---------------------------------------- AUTORE: 1876 DATA :23/03/2007 - 08:38:07 ---------------------------------------- perdonate l'insistenza e l'ignoranza, ma iò blocco property node non accetta nulla in ingresso, ha solo un'uscita. Ammettendo che ho due booleani, uno che apre una finestra diversa ed uno che dovrebbe abilitare o disabilitare il precedente, come li collego al property node? ---------------------------------------- AUTORE: 1030 DATA :23/03/2007 - 08:43:49 ---------------------------------------- Di default la proprietà è in lettura. Per averla in scrittura clicca col tasto dx sulla proprità e scegli "Change to Read". ciao ---------------------------------------- AUTORE: 1030 DATA :23/03/2007 - 08:44:43 ---------------------------------------- ..... naturalmente dovevo scrivere "Change to Write". \":lol:\" ---------------------------------------- AUTORE: 1876 DATA :23/03/2007 - 08:47:45 ---------------------------------------- Ho capito è facile!!! Ho tutti i requisiti per essere bannato \":wink:\" Grazie a tutti! ---------------------------------------- ================================================================================ Acquisizione forma d'onda ================================================================================ AUTORE: 1500 DATA :22/03/2007 - 17:29:55 ---------------------------------------- Salve a tutti, ho un piccolo problema che spero possiate aiutarmi a risolvere, acquisisco forme d'onda da uno scalare Agilent (esattamente 8757D Scalar Network Analyzer) tramite l' Instrument I/O Assistant come si può vedere dalla figura allegata e fin qui tutto ok, il problema nasce quando voglio acquisire una nuova forma d'onda perchè sono costretto a resettare lo strumento reimpostando tutto da capo altrimenti la nuova foma d'onda non viene acquisita!!!Non capisco il perchè....Lo strumento è collegato al PC tramite cavo GPIB/USB, spero possiate aiutarmi, Grazie. ---------------------------------------- AUTORE: 384 DATA :22/03/2007 - 17:33:17 ---------------------------------------- Smetti di usare i VI express!!! \":wink:\" ---------------------------------------- AUTORE: 1500 DATA :22/03/2007 - 17:39:54 ---------------------------------------- scusate ho dimenticato l'allegato....scusa cosa mi suggerisci al posto dei VI Express? ---------------------------------------- AUTORE: 384 DATA :22/03/2007 - 18:21:01 ---------------------------------------- [quote="fraserra":3az2af6g]....scusa cosa mi suggerisci al posto dei VI Express?[/quote:3az2af6g] I vi espress sono molto pratici per provare sul banco ed aiutarci a determinare i migliori "settaggi" per risolvere il ns. problema. Hanno il difetto di - ogni volta - resettare tutto e reimpostare tutto. Per questo sono lenti e non adeguati ad applicazioni più complesse. Inoltre, posso dare altri tipi di guai con VI dinamici e applicazioni "compilate". Una volta capito cosa fare e stabiliti i parametri, bisogna trasformarli in vi normali (il solito tasto destro del mouse!) ed includerli nella ns. applicazione, portanto fuori dal loop principale tutte le inizializzazioni (da fare prima) e le varie "chiusure" (da fare dopo. ---------------------------------------- AUTORE: 1500 DATA :23/03/2007 - 08:24:07 ---------------------------------------- Scusa ma con LV sono ancora agli inizi....potresti spiegarmi meglio cosa intendi per "bisogna trasformarli in vi normali (il solito tasto destro del mouse!) ed includerli nella ns. applicazione, portanto fuori dal loop principale tutte le inizializzazioni (da fare prima) e le varie "chiusure" (da fare dopo", magari se è possibile con un esempio grafico, te ne sarei grato, grazie. ---------------------------------------- AUTORE: 384 DATA :23/03/2007 - 09:03:57 ---------------------------------------- Un'applicazione normalmente ha un loop principale dal quale si esce soltanto quando essa termina. Naturalmente, tutte le inizializzazioni devono essere fatte prima di entrare in questo loop, perchè si fanno una volta sola. Allo stesso modo, le "finalizzazioni" (chiudere i file, canali, collegamenti, ecc) si fanno una volta sola, dopo l'uscita dal loop. Ovviamente questo è uno "scheletro" di principio al quale ci possono essere deviazioni, ma che il più delle volte non lo stravolgono. Leggi [url=http://digital.ni.com/manuals.nsf/websearch/9D3D530113B7875F86256D2C0061F6BE:2xc4c3tx]questo documento[/url:2xc4c3tx], in particolare il capitolo 16 e l'appendice A. ---------------------------------------- AUTORE: 1500 DATA :23/03/2007 - 14:22:47 ---------------------------------------- ti ringrazio per le risposte tempestive ed efficienti (ho letto il capitolo del manuale che mi hai consigliato), il problema di fondo è che per lo strumento che sto utilizzando (8757D) non esistono drivers, ho telefonato anche all'agilent e mi hanno confermato ciò. Dovrei fare un programmino con i Visa VIs? ho letto qualcosa ma mi sembra un pò complicato, se ho capito bene dovrei formattare prima i comandi da dare allo strumento e poi i dati ricevuti dallo strumento....mi potresti spiegare meglio?...o se hai un'altro metodo fammelo sapere...Grazie 1000! ---------------------------------------- AUTORE: 384 DATA :23/03/2007 - 17:44:27 ---------------------------------------- [quote="fraserra":n7binqwo]Dovrei fare un programmino con i Visa VIs? ho letto qualcosa ma mi sembra un pò complicato, se ho capito bene dovrei formattare prima i comandi da dare allo strumento e poi i dati ricevuti dallo strumento....mi potresti spiegare meglio?...o se hai un'altro metodo fammelo sapere...Grazie 1000![/quote:n7binqwo] Se non ci sono i drivers devi gestire lo strumento "manualmente", cioè, comunicando con i blocchi VISA, inviando i commandi e interpretando le risposte. Sembra complicato ma non lo è poi più di tanto. I commandi sono stringhe che devi comporre, con il comando necessario ed i suoi parametri. La risposta è anch'essa una stringa con un formato ben preciso. Tutto ciò è descritto nel manuale dello strumento. Per esempio, se invii la stringa '*IDN?' (senza le apici), lo strumento risponderà con la sua identificazione di cui fa parte il nome e l'indirizzo GPIB, con un certo formato. Ti basterá scindere la stringa per poter utilizzare i valori di ritorno. Como puoi prevvedere, per ogni commando di cui svilupperai la costruzione e l'invio, dovrai sviluppare l'interpretazione della relativa risposta. ---------------------------------------- ================================================================================ Come sapere se un file è aperto ================================================================================ AUTORE: 46 DATA :23/03/2007 - 07:10:50 ---------------------------------------- Buongiorno a tutti Per esigenze didattiche (sto realizzando un simulatore con labview che si interfaccia ad applicazioni scritte in C) avrei la necessità di sapere se è possibile, in un' applicazione labview, capire se quando si sta aprendo un file (nel mio caso di testo) esso è già aperto da un'altra applicazione (nel mio caso quella scritta in C). Spero di essere stato sufficientemente chiaro Grazie Claudio ---------------------------------------- AUTORE: 927 DATA :23/03/2007 - 13:45:06 ---------------------------------------- L'applicazione in C può essere modificata? Chi apre prima un file può decidere di bloccarne l'accesso alle altre applicazioni. Non mi ricordo come si faccia in C ma quella potrebbe essere la strada, se il tuo intento è impedire un accesso contemporaneo (Labviù darà un errore di permessi). ---------------------------------------- AUTORE: 46 DATA :25/03/2007 - 09:18:09 ---------------------------------------- Grazie per la risposta Proverò immediatamente a percorrere questa strada Vi farò sapere . . . Claudio ---------------------------------------- ================================================================================ cadenza di pedalata ================================================================================ AUTORE: 1777 DATA :23/03/2007 - 14:26:14 ---------------------------------------- Dovendo rilevare la potenza espressa da un ciclo ergometro da me messo insieme ,ho pensato essendo la coppia frenante di un alternatore legata linearmente alla corrente di ottenere un numero proporzionale alla potenza moltiplicando la corrente rilevata dalla mia ax5232 tramite uno shumt 250mV/50A alla velocita angolare della pedivella rilevata da un sensore di prossimità ,il mio problema e di riuscire a ottenere la freq di pedalata quualcuno puo darmi un aiutino ho consultato molto su forum e altro ma forse sto cercando nel posto sbagliato. grazie ---------------------------------------- AUTORE: 1777 DATA :23/03/2007 - 19:35:33 ---------------------------------------- devo fare domande proprio cretine ---------------------------------------- AUTORE: 1165 DATA :24/03/2007 - 02:41:55 ---------------------------------------- La domanda mi sembra corretta, un po' confusionaria ma compensibile, ma non puoi dare per scontato che ci sia sempre qualcuno pronto a rispondere a tutte le domande. Comunque non ho neanche io una risposta pronta per te, ma mi ero posto un problema analogo al tuo e ti posso dire che considerazioni avevo fatto. Dunque, come tu stesso dici un sensore di prossimità ti può rilevare la frequenza di pedalata e quindi (a parte errori di lettura se pedali al contario) la velocità angolare e di conseguenza (a meno di un fattore di proporzionalità) la potenza erogata "istantaneamente". Ovviamente non è una potenza istantanea perchè la misura della velocità angolare così come la immagini tu è una misura mediata nel tempo e si può solo avvicinare alla istantanea se aumenta la risoluzione temporale della misura, cioè se invece che un impulso/giro aumenti il numero degli impulsi. Questo puoi ottenerlo mettendo due sensori sulle due pedivelle oppure (forse, e qui sparo) cercando di mettere un sensore fisso e più magneti in un disco ruotante con le pedivelle, oppure connettendo qualche cinematismo collegato con una dinamo tachimetrica o con un encoder. Ma non mi sembra facilissimo dal punto di vista meccanico. Comunque forse una soluzione potrebbe essere di montare dei magneti sulla ruota (o disco ruotante che sia) in modo da ottenere una onda quasi quadra che, dopo averla acquisita, potrebbe essere squadrata e misurata (con le funzioni esistenti in labview) per estrarre la velocità angolare. Ma accanto a tutto questo ti pongo io una questione che mi sta a cuore: come si potrebbe misurare la coppia torcente (quasi "istantanea") sviluppata dalle pedivelle?? Cioè come ti immagineresti un meccanismo più semplice possibile (meccanico, elettromeccanico, elettronico) capace di misurare la coppia in una bicicletta vera con vere ruote, mentre si pedala normalmente? Ovviamente più economico e leggero possibile. Se ti viene in mente qualcosa mi fai sapere? Ciao, enrico. ---------------------------------------- AUTORE: 129 DATA :24/03/2007 - 07:09:53 ---------------------------------------- Il problema è come calcoli la frequenza. Dovresti avere un contatore e una base tempi affidabili per calcolare la frequenza correttamente. Non so se la tua scheda abbia contatori HW, comunque supponendo di no e che quindi vai a monitorare solo lo stato 0-1 del tuo prox: Puoi usare una functional global per creare un registro contatore e una base tempi, quindi il conteggio divisio il tempo ti dà la frequenza. Qualcosa tipo l'allegato, per essere più chiari. ---------------------------------------- AUTORE: 1777 DATA :24/03/2007 - 08:28:33 ---------------------------------------- ..ma sono un tipo un po nervoso percio il mio discorso è un po confuso;cerco di spiegarmi meglio.Io ho preparato una routa-volano da sostituire ad un comune telaio di bi da corsa detto volano reca una scanalatura da puleggia di tipo A e trascina un alternatore da auto ,per la precisione un bosch da 65 A,questo alternatore,e chiuso su un carico molto elevato ca 0.4 /0.7 ohm,e la tensione di eccitazione la do tramite un alimentatore regolabile da 1.25 a 14v allo scopo di variare la coppia frenante.L'idea iniziale era quella di misurare la potenza generata misurando la potenza elettrica,ma mi sto convincendo che sia un sistema con molti difetti perche il rendimento dell alternatore non e costante(varia in base al regime di rotazione e in base al carico) e perche non lo faccio girare al numero di giri per il quale e stato progettato,l'unica cosa che mi sembra certa è che la sua coppia frenante sia proporzionale alla corrente che lo percorre(tutti carichi puramente ohmici) dunque Ce=Kc*flusso a vuoto*cosfi*I in pratica e proporzionale alla tensione di eccitazione ,legata al flusso a vuoto e alla corrente, per questo io vorrei rilevare solo la corrente e i giri(delle pedivelle o del volano, o anche dell' alternatore e moltiplicarli per ottenre un valore proporzionale alla potenza meccanica che e stata impressa alle pedivelle,a questo punto ci si chiede come farei ad ottenere la potenza ,e questo lo farei grazie all aiuto di un mio collega bolognese che ha un SRM il quale e un costoso sistema che mediante strain gauges applicati al movimento centrale e sensori di cadenza dice la potenza meccanica espressa dal ciclista,con questo dispositivo potrei connfrontare i valori ottenuti dall SRM con quelli ottenuti dal mio sistema e confrontare se il tutto è proporzionale,spero di essermi chiarito un po di piu. ---------------------------------------- AUTORE: 1777 DATA :24/03/2007 - 08:59:16 ---------------------------------------- Non so se hai mai visto sul web i tre sistemi che consentono di conoscere la potenza,SRM al movimento centrale power tap alla ruota posteriore e polar alla catena ,quest'ultimo sente la velocità lineare della catena e la tensione di questa e quindi ha tutto cio che gli serve ,il piu preciso e l' SRM di tipo scientifico seguito dal powertap seguito dal polar che a precisione lascia molto a desiderare-+ 10%,io (con le mie limitate capacità) penso spesso a come fare ma al momento nn mi viene in mente nulla. ---------------------------------------- AUTORE: 1777 DATA :24/03/2007 - 09:14:19 ---------------------------------------- di ferrara come me ,ho provato il tuo vi ma non mi sembra funzionare perfettamente e solo una bozza? Io stavo meditando di fare un convertitore f/v con un lm 2917 e acquisire il segnale con ingresso analogico. ---------------------------------------- AUTORE: 1165 DATA :24/03/2007 - 11:09:05 ---------------------------------------- markus per favore puoi dare i link dei tre siti che dicevi e in particolare di quello del sensore che sente la tensione della catena? Grazie. ---------------------------------------- AUTORE: 1777 DATA :24/03/2007 - 11:34:01 ---------------------------------------- http://www.biketechreview.com/archive/pm_review.htm non e il sito del costruttore ma è una analisi dettagliata di pregi e difetti dei tre sistemi ---------------------------------------- AUTORE: 129 DATA :25/03/2007 - 08:15:06 ---------------------------------------- [quote:2qo33tut]ho provato il tuo vi ma non mi sembra funzionare perfettamente e solo una bozza? [/quote:2qo33tut] Si certo era solo una bozza, ho pensato che personalizzandolo un pò potevi trovare utile l'architetttura. Un altro di Ferrara, bene ..Ciao ---------------------------------------- ================================================================================ SubVI-come tornare indietro ================================================================================ AUTORE: 1967 DATA :24/03/2007 - 14:00:39 ---------------------------------------- Una volta creato un subVI come è possibile tornare indietro visualizzando i vari componenti collegati a quelli del VI principale? Grazie! ---------------------------------------- AUTORE: 129 DATA :25/03/2007 - 08:42:54 ---------------------------------------- Tasto destro sul VI e "SHOW VI HIERACHY" per vedere i subvi dell'applicazione e il loro albero. Premi invece tasto destro e "FIND ISTANCE" per trovare le istanze caricate in memoria di quel subvi. ---------------------------------------- AUTORE: 1967 DATA :26/03/2007 - 09:28:49 ---------------------------------------- Grazie! però quello che intendevo era che collegato al subVI ho un termometro..il subVI contiene diversi componenti e non campisco a quale di questi è collegato il termometro..cosi mi chiedevo se era possibile scompattare tutto.. ---------------------------------------- AUTORE: 129 DATA :26/03/2007 - 13:04:50 ---------------------------------------- Non capisco se per componenti intendi i controlli o dei subvi, conviene che posti il VI di cui parli per meglio comprendere. ---------------------------------------- ================================================================================ SIMULAZIONE ================================================================================ AUTORE: 1967 DATA :24/03/2007 - 15:38:33 ---------------------------------------- Heelp!! Una volta iniziata la simulazione con il comando Run Continuously è possibile vedere sul Block Diagram i vari passi della simulazione. Qual'è l'istruzione o il comando che mi permette di fare questo? Grazie dell'aiuto!! ---------------------------------------- AUTORE: 129 DATA :25/03/2007 - 08:36:02 ---------------------------------------- Alla destra del run continuosly (Nel diagram block) c'è una lampadina(Highlight execution), che ti mostra il flusso di dati(rallentando però l'applicazione). Di seguito trovi tre icone con una freccia, servono per eseguire l'applicazione step by step. (Usando la modalità step by step, non ti serve il run continuosly perchè l'applicazione parte e si mette in pausa con questi tasti). Nota: Il run continuosly, è sconsigliabile, se devi eseguire continuamente l'applicazione, piuttosto inseriscila in un while loop con un timer all'interno, così non usi tutte le risorse CPU ed eviti sicuri blocchi dell'applicazione o del PC. ---------------------------------------- ================================================================================ File Demo LV 7 ================================================================================ AUTORE: 1165 DATA :24/03/2007 - 19:59:35 ---------------------------------------- qualcuno sa dove potrei trovare il file demo del LabVIEW versione 7 (alcune centinaia di MB)? La versione 8 è scaricabile gratuitamente dal sito NI, ma a me servirebbe la 7. Qualcuno ce l'avrebbe o mi saprebbe indiare dove potrei trovarla? Grazie in anticipo, enr. ---------------------------------------- AUTORE: 247 DATA :26/03/2007 - 10:33:35 ---------------------------------------- Ciao, se ti accontenti della 7.1 io ho ancora alcuni CD di demo immacolati! BYE. ---------------------------------------- AUTORE: 1165 DATA :26/03/2007 - 14:50:32 ---------------------------------------- MITICO!!! La mia gratitudine non ha limiti!! Basta una pizza a città alta alla prima occasione per sdebitarmi?? Ma rimane il problema di come trasferirli, hai qualche suggerimento? Grazie mille (che in euro adesso ha il suo valore), ciao, enr. ---------------------------------------- AUTORE: 1871 DATA :27/03/2007 - 14:17:04 ---------------------------------------- [quote="apollon":b9pq8s92]Ciao, se ti accontenti della 7.1 io ho ancora alcuni CD di demo immacolati! BYE.[/quote:b9pq8s92] La demo è a tempo o è una versione illimitata ma con funzionalità ridotte? ---------------------------------------- AUTORE: 247 DATA :27/03/2007 - 15:35:14 ---------------------------------------- Ciao, [quote="enr":2tawoz8k]Ma rimane il problema di come trasferirli, hai qualche suggerimento?[/quote:2tawoz8k] o hai un'FTP di scambio piuttosto grosso o te lo spedisco per posta, ok? Mi mandi l'indirizzo in mail o messaggio privato? [quote="Trombetta":2tawoz8k]La demo è a tempo o è una versione illimitata ma con funzionalità ridotte?[/quote:2tawoz8k] ...non mi ricordo \";-)\" BYE ---------------------------------------- ================================================================================ Inizializzazione stringhe ================================================================================ AUTORE: 1876 DATA :26/03/2007 - 08:20:10 ---------------------------------------- Ciao a tutti, io ho un programma che dovrebbe leggere la data e l'ora da sistema e successivamente estrarne i vari numeri che le compongono. Successivamente dovrei presentare all'utente la possibilità di modificare questi numeri estratti. Visto che non posso far modificare all'utente il contenuto di un indicatore di una stringa, posso almeno mettere quei valori numerici estratti come stringhe di default in uno "string control"? ---------------------------------------- AUTORE: 129 DATA :26/03/2007 - 08:39:48 ---------------------------------------- Certo che puoi, non ho capito esattamente cosa devi fare, ma : Con il date/time estrai la stringa della data, quindi con match pattern(lo trovi nella palette string), spezzetti la tua stringa, cobverti le stringhe spezzettate in numeri con le fuzioni string to decimal number, e le invii ad un controllo mediante una local variable , ora hai dei controlli che si aggiornano con la data di sistema , ma puoi modificare e ritrasformare in stringa con i comandi Decimal number to string. Però se usi activeX puoi sfruttare il controllo calendar di windows, che secondo me è più elegante. Nic ---------------------------------------- AUTORE: 927 DATA :27/03/2007 - 13:21:04 ---------------------------------------- Devi usare le variabili locali, se la domanda era "come". Tasto dx sul controllo -> Create -> Local Variable. Se necessario, tasto dx sulla variabile -> Change to Write ---------------------------------------- ================================================================================ disegnare una retta su una immagine ================================================================================ AUTORE: 1669 DATA :26/03/2007 - 12:15:00 ---------------------------------------- ciao a tutti come faccio a disegnare una retta partendo dalle coordinate...su una immagine? grazie a presto ---------------------------------------- AUTORE: 927 DATA :27/03/2007 - 13:36:47 ---------------------------------------- Usa un controllo Picture. Prima caricaci dentro l'immagine (ad es. con Read JPEG file e Draw flattened pixmap), poi usa Draw Line per disegnare la retta. Trovi tutto sotto Graphics & Sound. Ma che retta è? Se ad esempio devi fare un'interpolazione lineare di un grafico, ci sono metodi ben + comodi ---------------------------------------- ================================================================================ Report in Diadem ================================================================================ AUTORE: 129 DATA :26/03/2007 - 15:20:41 ---------------------------------------- Sto valutando un metodo per realizzare report su una mia applicazione. Ho provato un pò Diadem ma ho alcune perplessità: Devo distribuire una licenza diadem sui computer da distribuire l'applicazione? Essendo un applicazione che lavora du un daabase, come faccio ad inserire da programma le tabelle estrapolate in labview dai DB?, Ho visto che l'express vi che lavora su diadem non mi dà la possibilità di avere come dato di ingresso una tabella di tipo string (o almeno non ci sono riuscito io). Per avere effetti grafici accattivanti e semplicità, avevo pensato di stampare in pdf un vi con print at completion, ma l'impaginazione è difficlissima. In sostanza vorrei avere la possibilità di creare report senza dovermi affidare a programmi esterni di terze parti (a meno che non siano del pacchetto office). Se qualcuno ha usato Diadem e può darmi qualche dritta in merito a licenze e usabilità.... ---------------------------------------- ================================================================================ Applicativo nella system tray e shutdown PC ================================================================================ AUTORE: 90 DATA :27/03/2007 - 11:36:05 ---------------------------------------- Ciao a tutti, ho un applicativo fatto (non da me) e compilato in LV 6i, nel funzionamento normale risiede nella system tray e al momento dello shutdown del PC si stoppa tranquillamente. Ho avuto la necessita' di modificarlo con LV 7.1, l'ho "buildato" usando il .bld gia' fatto, purtroppo al momento di fare shutdown (con il tasto START) del PC si chiude l'applicativo da me compilato ma il PC non fa shutdown, serve un secondo comando di shutdown (smepre tasto START) per spegnere il PC. Qualche idea???? ---------------------------------------- AUTORE: 927 DATA :27/03/2007 - 13:28:29 ---------------------------------------- Cioè tu fai Start -> Chiudi Sessione -> Arresta il sistema ma il PC non si spegne, si spegne solo l'applicazione? ---------------------------------------- AUTORE: 90 DATA :28/03/2007 - 09:37:51 ---------------------------------------- [quote="Snamprogetti":ej061v8g]Cioè tu fai Start -> Chiudi Sessione -> Arresta il sistema ma il PC non si spegne, si spegne solo l'applicazione?[/quote:ej061v8g] Esatto, per ora ho risolto aggiungendo il pulsante di uscita dall'applicativo, pero' come si dice dalle mie parti e' un "Tappullo" che non mi piace! ---------------------------------------- AUTORE: 645 DATA :28/03/2007 - 10:33:29 ---------------------------------------- Prova a guardare http://digital.ni.com/public.nsf/allkb/ ... 830062E68E ... magari intercettando l'evento di shutdown del pc puoi stoppare il tuo VI. ---------------------------------------- AUTORE: 90 DATA :28/03/2007 - 14:20:15 ---------------------------------------- [quote="MagicBotolo":1avjinj2]Prova a guardare http://digital.ni.com/public.nsf/allkb/ ... 830062E68E ... magari intercettando l'evento di shutdown del pc puoi stoppare il tuo VI.[/quote:1avjinj2] \":roll:\" Ehm, non sono molto capace, comunque provero'! Grazie comunque del consiglio! ---------------------------------------- AUTORE: 90 DATA :12/04/2007 - 11:51:30 ---------------------------------------- A titolo di informazione compilando con LV 8.20 il problema e' risolto. Grazie a tutti comunque per le idee.... ---------------------------------------- ================================================================================ Accensione differenziata bottoni ================================================================================ AUTORE: 1876 DATA :27/03/2007 - 12:47:27 ---------------------------------------- Ciao a tutti, sto sviluppando un progetto e sono incappato in un problema, ho la necessità di visualizzare tre bottoni, ogni volta che ne seleziono uno il programma dovrebbe visualizzarmi un'immagine diversa, il problema è che non riesco a far disattivare un bottone quando ne seleziono un altro, devo necessariamente deselezionarli a mano. L'ho spiegato un po male comunque allego il pezzo di VI che mi interessa sistemare. Grazie, ciao. ---------------------------------------- AUTORE: 927 DATA :27/03/2007 - 13:54:56 ---------------------------------------- Credo che il problema sia che i tre Case vengono eseguiti contemporaneamente. Già se li esegui uno alla volta con una Sequence funziona. Meglio ancora sarebbe usare una Event Structure, ma si va più sul difficile... ---------------------------------------- AUTORE: 247 DATA :27/03/2007 - 15:41:55 ---------------------------------------- Ciao, se ti va bene utilizzare un solo bottone che cambia immagne ad ogni pressione ne abbiamo parlato [url=http://www.ilvg.it/forum/viewtopic.php?t=651&start=0&postdays=0&postorder=asc&highlight=nstate:2xlzjni3]qui[/url:2xlzjni3], guarda il VI che ho allegato, forse assomiglia un pò alla strada difficile a cui accennava Snamprogetti ma con un pò d'accortezza è utilizzabile! BYE. ---------------------------------------- AUTORE: 1876 DATA :28/03/2007 - 07:20:11 ---------------------------------------- Preferisco avere i tre bottoni differenziati, per quanto riguarda la Sequence cosa dovrei farfe precisamente? Grazie, ciao. ---------------------------------------- AUTORE: 927 DATA :28/03/2007 - 08:06:18 ---------------------------------------- Usa una Flat Seq. o una Stacked Seq., come preferisci. In ogni fotogramma ci metti uno di quei Case che hai disegnato, così li esegue uno alla volta. ---------------------------------------- AUTORE: 1876 DATA :28/03/2007 - 08:23:03 ---------------------------------------- Scusa l'insistenza ma non mi funziona, mi passa tranquillamente da 1 a 2 e da 2 a 3 ma se provo a tornare indietro (tipo da 3 a 2) non mi funziona... Mi potresti inviare il VI funzionante per favore? Grazie. ciao! ---------------------------------------- AUTORE: 927 DATA :28/03/2007 - 08:40:55 ---------------------------------------- Hai ragione, non avevo capito bene cosa doveva fare. Allego un esempio (a 2 bottoni) con Event structure, che a questo punto è la cosa + semplice ---------------------------------------- AUTORE: 1876 DATA :28/03/2007 - 09:02:24 ---------------------------------------- Grazie mille, ma per quanto riguarda l'inserimento del terzo bottone, ho visto l'help e parla di un registro degli eventi, il problemaè che non ci ho capito dentro una mazza... Come si fa? ---------------------------------------- AUTORE: 927 DATA :28/03/2007 - 09:42:51 ---------------------------------------- Registro degli eventi? \":o\" Lascia perdere per il momento... clicca col dx sull'event structure e fà "Add event case", e potrai definire cosa scatena l'evento: sceglierai la modifica del 3° bottone. E' abbastanza intuitivo. Il bottone deve già esistere, ovviamente. ---------------------------------------- AUTORE: 1876 DATA :28/03/2007 - 09:51:49 ---------------------------------------- c'è solo un piccolo problema... cliccando col destro sull'event structure non mi compare la voce Add........ non capisco perchè. ---------------------------------------- AUTORE: 384 DATA :30/03/2007 - 18:05:55 ---------------------------------------- Devi fare click destro con il puntatore del mouse sulla finestrelletta di scelta dei case, quella in mezzo al bordo superiore. ---------------------------------------- AUTORE: 1876 DATA :02/04/2007 - 07:23:26 ---------------------------------------- Non vorrei sembrare insistente ma proprio non mi esce l'opzione per aggiungere un evento, anzi, addirittura ho notato che questa struttura non viene neppure visualizzata all'interno della "structures palette"... ---------------------------------------- AUTORE: 645 DATA :02/04/2007 - 12:57:28 ---------------------------------------- Che versione di Labview usi? ---------------------------------------- AUTORE: 1876 DATA :02/04/2007 - 13:13:17 ---------------------------------------- uso la versione 8.2 Base ---------------------------------------- ================================================================================ selezioni multiple su una multicolumn listbox ================================================================================ AUTORE: 1520 DATA :29/03/2007 - 09:06:13 ---------------------------------------- Salve a tutti, domandina molto tecnica e rapida. Sto usando una multicolumn listbox per presentare dei dati precedentemente elaborati a cui sono legate delle immagini. Volevo utilizzare la possibilità della selezione multipla di righe della listbox per poter visualizzare e confrontare tra loro i risultati di interesse. Il problema che ho è questo: non riesco a trovare il modo di avere come dato le righe selezionate. Qualcuno ha un'idea? Matteo ---------------------------------------- AUTORE: 1520 DATA :29/03/2007 - 09:24:21 ---------------------------------------- Mi rispondo da solo. Il value della listbox diventa un array. \":D\" Oggi dormo proprio. ---------------------------------------- AUTORE: 645 DATA :29/03/2007 - 09:39:27 ---------------------------------------- Personalmente trovo che le Multicolumn siano comode per visualizzare dati e per scegliere intere colonne piuttosto che righe. Se devi scegliere le righe conviene usare la Listbox: potresti popolare una Listbox con le intestazioni delle righe della Multicolumn (sempre che sia possibile per il progetto che devi fare), poi clicchi con il tasto destro sulla Listbox e alla voce "Selection mode" selezioni "0 or more items". A questo punto puoi selezionare più voci della Listbox (tramite tasto Control) e con il Property Node "Value" ottieni un vettore con le righe selezionate. Oppure a partire dalle Multicolumn puoi dare un'ochiata all'evento "Double click Row"... so che l'evento del click sulla colonna funziona bene ma sulla riga non saprei. ---------------------------------------- ================================================================================ VISA comandi AT porta seriale modem virtuale e non? ================================================================================ AUTORE: 1300 DATA :30/03/2007 - 09:55:04 ---------------------------------------- ciao a tutti, per la mia tesi dei far comunicare il modem 56k con un telefono e successicamente con un altro modem. mi sto cimentando per fare una chiamata ad un cel per ora seguendo le indizazioni sul forum sono riuscito ad inviare comandi AT al modem usando i VISA. La prova l'ho fatta col mio portatile e tutto è andato bene senza problemi e con molta seplicita! sul pc fisso invece ho installato un modem Hamlet. Sul visa resourcename non mi compare COM3 come sul portatile ma ASRL3::INSTR e quando invio i comandi di settaggio tutto va bene ma quando faccio il comandi di DIAL non riesco a fare il numero perchè chiude subito la comunicazione, ho inserito dei cicli di ritardo son riuscito a chiamare ma sono impossibilitato a leggere i messaggi che il modem mi rimanda come invece riuscivo a farlo su quello del portatile! sara mica perchè il modem PCI che ho è un softmodem e quindi la porta seriale è emulata? grazie buona giornata ---------------------------------------- AUTORE: 645 DATA :30/03/2007 - 10:37:27 ---------------------------------------- Scusa la domanda: comunichi con il modem attraverso la porta seriale, ethernet o USB? Te lo chiedo perchè so che questo tipo di modem ammette più interfacce. Per quanto riguarda la porta dipende da come è installato il modem (guarda nel Pannello di Controllo --> Sistema --> Gestione periferiche per sapere la porta legata al modem). ---------------------------------------- AUTORE: 1300 DATA :30/03/2007 - 14:03:49 ---------------------------------------- ho installato il modem con i drver che erano nel suo cd il modem è interno come quelle che ho sul portatile il fatto ke si comportano in modo diverso pur essendo comunque tutti e due sullo slot PCI ---------------------------------------- AUTORE: 645 DATA :30/03/2007 - 14:16:17 ---------------------------------------- Ma che porta viene assegnata al modem? ---------------------------------------- AUTORE: 1300 DATA :30/03/2007 - 14:22:15 ---------------------------------------- da windows stto modem è COM£ ddal pannello di cotrollo è Slot PCI 1 (Bus PCI 0, periferica 9, funzione 0 da mesaurement e automation è ASRL3:instr con alias COM3 ---------------------------------------- AUTORE: 645 DATA :30/03/2007 - 14:40:07 ---------------------------------------- Con COM£ intendi COM3? Allora, lasciando perdere il MAX, seleziona COM3 come porta dalla quale leggere... Seleziona nella paletta della porta Serial (Serial Communication) e come porta scegli COM3. Poi prova ad inviare i dati secondo lo schema di comunicazione con la porta seriale (trovi alcuni esempi nel forum [per esempio qui viewtopic.php?t=2878&highlight= in fondo... modifica la stringa usata come ingresso del blocco Write VISA] e nella cartella "Examples" di LabView [cerca "Serial"]). Come stringa per il blocco Write VISA devi usare una stringa supportata dal modem (vedi protocollo di comunicazione con il modem). ---------------------------------------- AUTORE: 1165 DATA :30/03/2007 - 16:46:24 ---------------------------------------- Andando solo a memoria (remota) e facendo un balzo di un quinto di secolo indietro (chiedo scusa anticipatamente se scavolerò!) mi sembra di ricordare che al tempo delle BBS un parametro essenziale per i moden nello standard italiano era di avvertirli di non cercare il segnale di centrale per agganciare la linea e questo un tempo era vitale perchè i modem arrivavano in italia quasi sempre con impostazioni americane. Il parametro da cambiare mi sembra era da X=1 a X=3 (ATX=3). Forse oggigiorno questo non è più vero e in italia sono tutti già settati correttamente, ma un avvertimento in più non fa certo male. Ciao, enr. ---------------------------------------- AUTORE: 384 DATA :30/03/2007 - 18:02:02 ---------------------------------------- Bei tempi?!... \":)\" Comunque, [b:30qyrjvy][i:30qyrjvy]enr[/i:30qyrjvy][/b:30qyrjvy] potrebbe effettivamente aver ragione; Vorrei solo precisare che il commando giusto è '[b:30qyrjvy]ATX3[/b:30qyrjvy]' e non 'ATX=3'. ---------------------------------------- ================================================================================ ni-imaq o vision assistant ? ================================================================================ AUTORE: 1669 DATA :01/04/2007 - 18:29:17 ---------------------------------------- ciao a tutti per il mio progettino di controllo di una immagine ho utilizzato le funzioni imaq read..imaq create..ed altre funzioni imaq..ma non sono iuscito a capire il nome del programma..non ho capito se questo si chiama ni-imaq 7.1 oppure vision assistant 7.1 potete aiutarmi ? grazie ---------------------------------------- AUTORE: 4 DATA :02/04/2007 - 09:12:06 ---------------------------------------- Ciao, le funzioni LabVIEW sono quelle ni-imaq che comprendono anche i driver per le camere e le schede di acquisizione video. Vision Assistan è un tool della NI che ti permette di configurare il tuo sistema di visione "senza" sapere programmare in LabVIEW. Tutto il codice viene creato automaticamente dal Vision Assistant che di fatto è una sorta di wizard, molto comodo in ogni caso per provare vari metodi di affrontare il problema della visione. Ciao ---------------------------------------- AUTORE: 1669 DATA :02/04/2007 - 10:16:48 ---------------------------------------- ma le funzioni di ni-imaq io le ottengo installando il vision assistan giusto? ---------------------------------------- AUTORE: 4 DATA :02/04/2007 - 13:14:42 ---------------------------------------- No, sono su un CD a parte ---------------------------------------- AUTORE: 482 DATA :03/04/2007 - 07:15:25 ---------------------------------------- Le funzioni ni-imaq sono sul Device Driver CD. Quando installi il device driver ti chiede se mettere anche Motion e Vision. Se aggiungi Vision ti vengono installate le librerie ni-imaq \":wink:\" ---------------------------------------- ================================================================================ tipo di controllo ================================================================================ AUTORE: 1669 DATA :01/04/2007 - 23:57:21 ---------------------------------------- ciao a tutti esiste in labview un funzione che mi permette di avere un controllo sul front panel in una certa unità di misura (litro) ma devo poter convertire questa unità di misura in coordinata tale da poter effettuare un controllo su questa coordinata nel block diagram? attendo una cortese risposat a presto ---------------------------------------- AUTORE: 927 DATA :02/04/2007 - 08:17:54 ---------------------------------------- qual è la formula di conversione? in ogni caso devi effettuarla nel diagramma dopo aver prelevato il dato. non mi risulta che esistano controlli che convertono automaticamente quello che ci scrivi. a parte forse gli Xcontrol, ma lì si va su altri livelli di complessità... ---------------------------------------- AUTORE: 1669 DATA :02/04/2007 - 08:39:49 ---------------------------------------- Ciao cioè a me serve un controllo sul front panel che parte da (top) 1 litro sino ad arrivare a (bottom) 50 cl. Questo è quello che voglio vedere sul pannello frontale...però poi ad 1 litro devo fare corrispondere ordinata 0 sino ad arrivar a 50 cl con ordinata 240 (poichè l'immagine è 320x240) Come posso fare? Inoltre è possibile disegnare una scala (in litri) sul visualizzatore dell'immagine ? Grazie ---------------------------------------- AUTORE: 1669 DATA :02/04/2007 - 09:02:37 ---------------------------------------- Ciao cioè a me serve un controllo sul front panel che parte da (top) 1 litro sino ad arrivare a (bottom) 50 cl. Questo è quello che voglio vedere sul pannello frontale...però poi ad 1 litro devo fare corrispondere ordinata 0 sino ad arrivar a 50 cl con ordinata 240 (poichè l'immagine è 320x240) Come posso fare? Inoltre è possibile disegnare una scala (in litri) sul visualizzatore dell'immagine ? Grazie ---------------------------------------- AUTORE: 927 DATA :02/04/2007 - 09:17:44 ---------------------------------------- Quindi un controllo tipo Slide o Tank? E di che immagine parli? \":o\" Cmq ho provato con la 7.1, non puoi visualizzare una scala e utilizzarne un'altra. O fai lavorare il controllo in 0-240 e ci metti di fianco una scala finta (rendi invisibile quella vera, poi magari metti il controllo sopra un'altro uguale...), o fai lavorare il controllo in 0,5-1 e poi converti l'uscita. ---------------------------------------- AUTORE: 1669 DATA :02/04/2007 - 09:29:25 ---------------------------------------- Praticamente è il controllo sul liquido in una bottiglia. Io vorrei fare in modo che sul pannello frontale mi appaia il controllo in litri però dato che devo fare un confronto tra le ordinate voglio convertire questa scala che va da 1 litro a 0,5 litri in una scala che va da y=0 a y= 240 rispettivamente Esiste una funzione che mi permette di fare questa conversione? Grazie ---------------------------------------- AUTORE: 927 DATA :02/04/2007 - 09:34:25 ---------------------------------------- y = (x - 0,5) * 480 te la cavi con 2 operazioni... ---------------------------------------- AUTORE: 1669 DATA :02/04/2007 - 09:47:08 ---------------------------------------- ok credevo ci fosse una funzione apposita per non incasinare il blok diagram..cmq benissimo (me la cavo con solo una operazione perchè le ordinate devono essere uguali) y= (1-x)*480 Grazie milleeeeee ---------------------------------------- ================================================================================ ID ================================================================================ AUTORE: 1779 DATA :03/04/2007 - 09:15:22 ---------------------------------------- Salve a tutti, mi sto confrontando con il problema di cambiare lingua alle label presenti all'interno dei VI di un progetto. A tal proposito sto dando un'occhiata all'esempio che ho messo in allegato,ma no riesco a capire nella creazione dei file di testo dove prende gli ID dei diversi controlli e part. Vi ringrazio anticipatamente per la vostra disponibilità... ---------------------------------------- AUTORE: 384 DATA :04/04/2007 - 09:30:02 ---------------------------------------- Quell'informazione esiste, è solo nascosta al programmatore - anche perchè, in generale non ci serve: si può fare tutto con il [i:31n1u2e5]Label[/i:31n1u2e5], a patto che questo sia unico nel VI. Se leggi la discussione sulla [url=http://www.ilvg.it/forum/viewtopic.php?t=271&start=0&postdays=0&postorder=asc&highlight=:31n1u2e5]generazione programmatica di codice LV[/url:31n1u2e5] che c'è sul forum credo che ci siano anche informazioni a riguardo. Esistono alcuni flag non documentati che si possono aggiungere al file "labview.ini" e che svelano alcune proprietà interesanti nei [i:31n1u2e5]property nodes[/i:31n1u2e5], in particolare quelle che servono per la generazione di codice LV. Non ricordo se c'era anche il [b:31n1u2e5][i:31n1u2e5]Control ID[/i:31n1u2e5][/b:31n1u2e5]. Purtroppo non riesco a trovarle nel mio HD. \":cry:\" Anzi, se qualcun'altro ha i riferimenti chiedo di postarli, grazie. ---------------------------------------- AUTORE: 1779 DATA :04/04/2007 - 09:53:20 ---------------------------------------- ti ringrazio la risposta, in realtà sono riuscito a risolvere in quanto a partire dal VI mi sono reso conto che LV il file che mi serve per reallizzare il cambiamento delle lingue lo genera in modo automatico, basta solo cambiare il nome delle label. Grazie ancora, Gianluca ---------------------------------------- ================================================================================ Base Tempi per grafico ================================================================================ AUTORE: 516 DATA :04/04/2007 - 22:04:05 ---------------------------------------- Ciao a tutti Vi scrivo per porvi il mio problema , devo leggere dei dati da un file e visualizzarli su di un grafico , di questi dati so che vengono memorizzati ogni millisecondo , ora mi piacerebbe poter creare una base tempi virtuale che vari da 1 ms ad 10 sec per esempio per vedere meglio i dati , quale tipo di grafico mi conviene utilizzare ? avete qualche suggerimento ? Grazie Mille Sergio ---------------------------------------- AUTORE: 247 DATA :05/04/2007 - 14:24:16 ---------------------------------------- Ciao, non li amo molto ma un graph al quale passi la waveform cambiando secondo necessità semplicemente il dt dovrebbe funzionare. BYE. ---------------------------------------- AUTORE: 482 DATA :05/04/2007 - 15:11:17 ---------------------------------------- che tipo di grafico userai? Chart,graph,xy... con tutti e tre è possibile uan cosa de genere L'unica cosa impossibile con graphe chart è visualizzare una scala non uniforme. ---------------------------------------- ================================================================================ menù a tendina ================================================================================ AUTORE: 1990 DATA :06/04/2007 - 09:38:26 ---------------------------------------- Ciao a tutti, sono una nuova iscritta. Qualcuno mi può dire come posso creare un menù a tendina? Ho letto sull'argomento nel forum e non ho trovato niente. Grazie \":D\" ---------------------------------------- AUTORE: 645 DATA :06/04/2007 - 09:45:25 ---------------------------------------- Puoi usare un Ring al'interno del VI. O intendi un menù a tendina sulla barra del VI (un po' come se fosse uno dei menù File, Modifica... che normalmente si vedono nei programmi)? ---------------------------------------- AUTORE: 1990 DATA :06/04/2007 - 09:56:32 ---------------------------------------- Vorrei inserire un menù a tendina all'interno di vi. Ho la versione 6.i e scusa ma non so cos'è un Ring. Mi puoi mandare un esempio? Grazie ---------------------------------------- AUTORE: 1990 DATA :06/04/2007 - 12:06:00 ---------------------------------------- Ho trovato degli esempi sul Ring! grazie \":)\" ---------------------------------------- ================================================================================ Controllo Pin Parallela LW7.1 e XP ================================================================================ AUTORE: 1991 DATA :06/04/2007 - 12:06:18 ---------------------------------------- Prima di tutto un saluto al forum, questo è il mio primo e sicuramente non ultimo msg qui! Il mio problema è il seguente: usando LabView 7.1 sotto Xp, vorrei riuscire a pilotare 4 pin in scrittura della parallela(dal pin 2 al 5 ad esempio), cioè cambiare il loro stato indipendentemente l'uno dall'altro(questo per poter controllare i passi di uno stepper). Naturalmente prima di scocciarvi qui mi sono fatto una ricerca sul forum per quel che riguarda la parallela, sto leggendo un pò di materiale ma quasi tutto si riferisce a versioni precedenti alla 7 Magari se qualcuno di voi si è trovato di fronte allo stesso problema può aiutarmi!! Anche una semplice VI che mi permetta di controllare un solo pin di uscita sarebbe gran cosa!! Michele. ---------------------------------------- AUTORE: 1612 DATA :06/04/2007 - 12:51:14 ---------------------------------------- Ciao Michele, ti allego un VI che alza il piedino 1 e il piedino 4 e abbassa il resto del mondo! ---------------------------------------- AUTORE: 1991 DATA :06/04/2007 - 18:23:06 ---------------------------------------- Grazie, stasera lo provo e ti farò sapere. Teoricamente se infilo un led in serie ad una resistenza tra il pin 4 e un pin di massa con questa VI dovrei comandarne l'accensione e lo spegnimento giusto??? La porta la devo settare SPP o non c'e' differenza??? ---------------------------------------- AUTORE: 1612 DATA :06/04/2007 - 20:31:32 ---------------------------------------- Usa pure il led e la resistenza, l'ho provato anch'io così... Tu lancia il VI, se non hai cambiato l'indirizzo della LPT1 dovrebbe funzionarti tutto!!! Io lo uso per delle applicazioni al lavoro e l'ho testato su diversi PC e non mi ha dato mai problemi. Ciao ---------------------------------------- ================================================================================ Comunicazione seriale, visa e gestione delle stringhe ================================================================================ AUTORE: 1992 DATA :06/04/2007 - 23:28:45 ---------------------------------------- Ciao a tutti, proprio oggi ho iniziato ad utilizzare Labview ed ho la necessità di costruire un VI nel più breve tempo possibile (quello necessario). Il mio obiettivo è quello di leggere una stringa da seriale del tipo: 2.33 1.78 4.78 ...e così via, che arriva ogni 30 secondi circa. La stringa è composta da 12 numeri decimali che vorrei gestire separatamente in 12 variabili float, per poi effettuare una piccola elaborazione con il formula node. Generlmente ho lavorato con HyperTerminal, quindi ho settato il VISA con le stesse impostazioni. Aiutandomi con l' esempio sono riuscito a visualizzare la stringa su un finistra di tipo indicator (mi pare): al momento ne viene inviata una ogni 2 sec, ma a volte non la ricevo, e raramente compare un errore. Inoltre la stringa compare per un attimo e sparisce. Qualcuno mi può aiutare? Esiste un modo per visualizzare tutto come sul terminale windows? Grazie anticipatamente Obelix ---------------------------------------- AUTORE: 129 DATA :07/04/2007 - 06:57:02 ---------------------------------------- Certo, begli esempi spesso non trovi un elemento di attesa tra la richiesta e la risposta. Inoltre se vuoi prendere tutto il buffer di menoria devi usare il byte count. Se le stringhe sono già nel formato che dici trasformarle in un double non deve essere un problema, solo che non capisco se ti restituisce una stringa per numero o una stringa con tutti i valori acquisiti. ---------------------------------------- AUTORE: 1992 DATA :07/04/2007 - 09:46:31 ---------------------------------------- Ciao, ti ringrazio tantissimo per l' interessamento. Innanzi tutto devo dirti che non riesco ad aprire il VI che mi hai inviato perchè utilizzo Labview 8. La stringa che invio periodicamente è unica e contiente i dodici numeri separati da uno spazio (se qualcosa lo richiede posso cambiare il separatore). Dopo averla acquisita la visualizzo in uno string indicator ma dopo una frazione di secondo scompare. Io invece vorrei spezzettarla, conevertire questi numeri in double, e conservarli in 12 variabili diverse che possa utilizzare all' interno di un formula node. ---------------------------------------- AUTORE: 1992 DATA :07/04/2007 - 13:12:28 ---------------------------------------- Adesso mi sembra di avere sistemato un po' di cose. Ho introdotto dei ritardi tra la scrittura del buffer della seriale e la sua lettura. Ora non viene persa alcuna informazione e non vengono rilevati errori. In allegato trovate lo screening del VI, cmq se a qualcuno può servire lo posso condividere. Adesso vorrei spezzettare la stringa, convertire ogni numero in double o float e rendere disponibili questi valori in variabili da utilizzare nel formula node. Consigli?? ---------------------------------------- AUTORE: 927 DATA :10/04/2007 - 15:02:22 ---------------------------------------- Il primo consiglio è aprire discussioni diverse per domande diverse \":roll:\" Per leggere i numeri dalla stringa ti conviene usare Scan From String, passandogli come formato %f %f %f %f... (12 volte). E' l'equivalente dello sscanf, se conosci il C. Se il tuo separatore decimale di sistema non è il punto, aggiungi %.; all'inizio ---------------------------------------- ================================================================================ Led grafici o di animazione ================================================================================ AUTORE: 1669 DATA :06/04/2007 - 23:36:44 ---------------------------------------- Ciao a tutti vorrei sapere se è possibile utilizzare al posto di un classico led booleano unaa immagine...mi spiego...vorrei utilizzare una immagine...anche un semplice disegnino al posto di un led e farla illuminare (come il led) quando si verifichi la condizione booleana...è possibile farlo? Grazie a tutti ---------------------------------------- AUTORE: 129 DATA :07/04/2007 - 06:30:11 ---------------------------------------- Se sai manipolare un pò le immagini riesci a farlo tranquillamente. In pratica i led sono rappresentati da due immagini (ci si aggiungono quelle di trasnizione per alcuni, diventando 4) una per lo stato off e una per lo stato on. Prendi un led e dal popup selezioni advanced/cutomize, ti si apre la finestra per modificare il controllo, seleziona un immagine facendo file select picture, quindi premi sulla barra strumenti l'icona a forma di chiave inglese(o simile) per passare alla modalità modifica. Ora tasto destro sul led e paste at same size. Sempre da questa modalità selezioni un altro stato e cerchi l'immagine per lo stato di off, quindi paste at same size. in allegato un esempio da un pulsante (puoi trovare vantaggioso a volte usare i pulsanti e ancora di più i vecchi controlli classic). ---------------------------------------- AUTORE: 1669 DATA :07/04/2007 - 08:19:20 ---------------------------------------- grazie per laa risposta..ma nel menu file non c'è select picture! Praticamente dovrebbe funzionare come la creazione di una gif? Grazie ma dove sta select picture? ---------------------------------------- AUTORE: 1669 DATA :07/04/2007 - 09:34:54 ---------------------------------------- ok ho trovato..non era file ma edit garzie molto ---------------------------------------- AUTORE: 1669 DATA :07/04/2007 - 10:25:47 ---------------------------------------- ciao è possibile far lampeggiare un indicatore booleano? cioè vorrei farla lampeggiare più volte tra true e false ogni qual volta diventa true la condizione..è possibile? grazie ---------------------------------------- AUTORE: 129 DATA :08/04/2007 - 07:07:30 ---------------------------------------- puoi usare la property "blinking" settandola a true o a false quando vuoi che lampeggi. Oppure puoi usare un while con shiftregister e una not. Ti allego i due esempi. entrambe li puoi utilizzare come subvi in modo da non avere troppi fili sul tuo diagramma. ---------------------------------------- ================================================================================ Microcontrollore PIC, LV e USB :) ================================================================================ AUTORE: 1959 DATA :10/04/2007 - 09:16:24 ---------------------------------------- Un saluto a tutto il forum, premetto che prima di postare ho fatto una ricercatina nei post vecchi e ho trovato parecchie info, spero che me ne vengano date delle altre \":D\" Arrivo al dunque: per un progettino universitario (a scopo didattico, niente di più) ho realizzato un circuito con a bordo un pic, un sensore di temperatura e uno di accelerazione. La comunicazione con il PC avviene tramite USB (HID-class) e ho già sviluppato il programma in C#. In linea di massima il programma funziona cosi: Il pic elabora i dati acquisiti dai sensori e li trasmette via usb al PC che li visualizza in formato numerico! Siccome il mio prof. è fissato con il LV mi ha chiesto di sviluppare il programma anche con questo applicativo! Ho letto parecchi post e ho capito che se la comunicazione avvenisse serialmente (RS232) non ci sarebbero grossi problemi, mentre con la usb si! Me lo confermate? Cosa mi consigliate di fare? Mi conviene mettere la rs232 nel mio circuito, in questo modo semplificherei tutto il lavoro? Esistono degli "esempi USB" per LV 8.2 (io sono proprio agli inizi con LV)? Grazie a tutti per l'aiuto! Ciao \"8)\" ---------------------------------------- ================================================================================ checksum crc16 ================================================================================ AUTORE: 822 DATA :10/04/2007 - 14:29:51 ---------------------------------------- ciao, qualcuno di voi ha esperienza di calcolo di checksum con l'algoritmo crc16? Perchè il CRC16 di questa stringa, inviatami su seriale dal device che stò controllando e che mi dovrebbe restituire il carattere di controllo calcolato secondo il CRC16: 01 0B 00 00 01 AA 55 AA 55 è: 0B 02 ho provato a calcolarlo con i VI di esempio del sito NI, ma i risultati ottenuti sono discordanti (44F4 oppure EC33) e comunque lontani da 0B02. Forse in realtà il checksum non è calcolato secondo l'algoritmo CRC16? ---------------------------------------- AUTORE: 927 DATA :10/04/2007 - 14:43:37 ---------------------------------------- Prova se con questo funziona. Ricordo che mi è capitato in passato che diverse implementazioni del CRC16 mi davano valori diversi. Forse esiste più di uno standard ---------------------------------------- AUTORE: 822 DATA :10/04/2007 - 15:18:47 ---------------------------------------- niente da fare, ottengo l'nsimo risultato contrastante... puoi provare anche tu a vedere cosa ottiene col VI che mi hai spedito, mettendo la stringa che ho dato in precedenza? sai... magari sono così rinco che mi sbaglio ad inserire i dati... ---------------------------------------- ================================================================================ Un aiutino per un novizio ================================================================================ AUTORE: 1827 DATA :10/04/2007 - 15:57:31 ---------------------------------------- Ciao a tutti, è solo qualche giorno che utilizzo LabVIEW 8.2 ( ed è davvero intrigante! ) e vorrei chiedere una cosa: Tra un pò di tempo avrò il modulo FP-RTD-124 ( quello specifico per le Pt100 4 fili ) e naturalmente le pt100 4 fili; per ora posso solo simulare il segnale in tensione in ingresso in LabVIEW. La mia domanda è: come faccio? Ho provato in vari modi ma nessuno mi restituisce un valore accettabile. Suggerimenti? \":?:\" \":?:\" \":?:\" Grazie a tutti in anticipo Valerio ---------------------------------------- AUTORE: 4 DATA :11/04/2007 - 13:50:58 ---------------------------------------- Ciao e Benvenuto. Che funzione hai usato nello specifico? cosa intendi per accettabile? PS la prossima volta apri dei topic con dei titoli più esplicativi rispetto al tuo problema. cito dalle [url=http://www.ilvg.it/forum/viewtopic.php?t=1418:19id9m0q]regole del forum[/url:19id9m0q] [quote:19id9m0q] * Siate precisi: Sono da evitare assolutamente titoli generici (LabVIEW?!?!?, Che fare? ecc.) oppure titoli allarmistici (AIUTOOOOOOOOO, Chi mi aiuta???). * Siate concisi: il titolo dovrebbe sintetizzare in quattro/cinque parole il vostro problema. [/quote:19id9m0q] Ciao ---------------------------------------- AUTORE: 1827 DATA :11/04/2007 - 14:05:20 ---------------------------------------- Scusa... errori di inesperienza.. \":oops:\" \":oops:\" Comunque ho provato a simulare l'ingresso in tensione che restituisce il modulo con "Expression Node" immettendo come input un numero random. E' un'operazione corretta? Oppure c'è qualche altro comando su LV che mi permette di simulare un segnale in tensione in ingresso in un intervallo di 0,015 mV? ---------------------------------------- AUTORE: 247 DATA :11/04/2007 - 16:04:31 ---------------------------------------- Ciao, [quote:27ny74vz]Comunque ho provato a simulare l'ingresso in tensione che restituisce il modulo con "Expression Node" immettendo come input un numero random. [/quote:27ny74vz] Per simulare un ingresso piuttosto che l'expression node utilizza la funzione random (palette numeric) che ti restituisce un valore tra zero ed uno che poi puoi scalare tranquillamente tra 0 e 0,015mV o quello che ti serve. La Pt100 comunque è una termoresistenza e 15 microVolt mi sembrano pochi come output, non puoi aumentare l'alimentazione? a parte questo se io dovessi testare il mio software utilizzerei un'array di valori noti che farei ciclare per essere almeno all'inizio sicuro di ciò che gli dò in ingresso in modo da interpretare secondo logica l'uscita. BYE. ---------------------------------------- AUTORE: 1827 DATA :12/04/2007 - 10:14:32 ---------------------------------------- grazie mille per i suggerimenti. Il numero random tra 0 e 1 lo avevo già provato, mentre l'array no. Adesso vedo che cosa mi viene fuori.. \":wink:\" L'alimentazione non la posso aumentare perchè le sonde nello specifico sono delle Ni1000 ( nemmeno delle pt1000! ) e richiedono quel voltaggio.. Grazie a tutti ---------------------------------------- ================================================================================ Help su Event structure ================================================================================ AUTORE: 1853 DATA :11/04/2007 - 10:35:31 ---------------------------------------- Buongiorno a tutti, mi servirebbe un piccolo aiuto su come utilizzare la event structure. in pratica devo capire come fare a "mettere in pausa" il programma mentre esegue una parte della event structure. Il timeout è ripetuto ogni 100 millisecondi, mentre la parte del programma da interrompere comincia al "mouse up" su uno "start button". la sequenza relativa a questo caso dura parecchi secondi, ed è proprio qui che mi serve "mettere in pausa" il programma. Ho provato ad inserire un'altra event structure dentro la prima, che gestisce un evento collegato al tasto "pause", ma non funziona... qualcuno sa come fare? grazie mille Luigi \":roll:\" ---------------------------------------- AUTORE: 4 DATA :11/04/2007 - 11:05:35 ---------------------------------------- Cosa intendi per metttere in pausa? Se intendi che durante una certa operazione scatenata dall'evento di mouse up su un bottone, l'interfaccia del sw rimanga congelata... è già così ti basta mettere il codice che esegue l'operazione all'interno del caso mouse up della struttura a eventi... altrimento... non ho capito \":lol:\" ---------------------------------------- AUTORE: 645 DATA :11/04/2007 - 11:05:57 ---------------------------------------- Hai provato ad inserire la parte di VI che deve essere eseguita mentre tutto è in pausa dentro una sequenza? Io non ho capito bene: tu hai una Event Structure allì'nterno della quale ci sono varie operazioni da eseguire in base all'evento. Il timeout per la gestione degli eventi è impostato a 100 ms. Uno di questi eventi avvia una serie di operazioni la cui durata supera questi 100 ms (in pratica la parte avviata dalla pressione dello Start Button). Giusto? ---------------------------------------- AUTORE: 1853 DATA :11/04/2007 - 12:57:04 ---------------------------------------- scusate in effetti mi sono spiegato un po' male... allora,... il timeout della sequenza è impostato su 100 ms, e oltre al timeout ci sono vari casi ciascuno corrispondente ad un tasto. uno di questi casi è particolarmente lungo, e gestisce acquisizioni da parte di vari strumenti esterni collegati al PC. la mia necessità è mettere in pausa l'esecuzione del vi DURANTE QUESTO CASO DELLA EVENT STRUCTURE. in questo modo posso cambiare dei parametri degli strumenti (in locale, non in remoto visto che il VI è in pausa) e ripartire esattaemnte dallo stesso punto dal quale mi ero fermato. durante la pausa il programma non dovrebbe fare nulla (infatti avevo pensato ad un ciclo while vuoto collegato al tasto "pause") e purtroppo non credo ci sia un modo per rendere utilizzabili gli altri eventi del VI DURANTE LA PAUSA. al momento qualunque cosa provo a fare durante l'acquisizione viene tenuta in memoria ed eseguita quando il vi torna al timeout della event. mmm... chiaro no? \":cry:\" Luigi ---------------------------------------- AUTORE: 645 DATA :11/04/2007 - 13:03:29 ---------------------------------------- Scusa, io non ho ancora afferrato del tutto... puoi fare l'esempio pratico di cosa deve fare il tuo VI? Per la questione sulla possibilità di rendere disponibili gli eventi durante l'esecuzione della parte "lunga" dipende da te: se vuoi oppure no che l'utente possa scatenare altri eventi durante la "pausa". Scusa ancora per i dubbi... magari puoi allegare il VI o almeno l'immagine del Block Diagram. ---------------------------------------- AUTORE: 1853 DATA :11/04/2007 - 13:37:29 ---------------------------------------- certo...e grazie per l'attenzione. Per questioni di dimensioni allego un file esempio per chiarire il tutto, io utilizzo labview 8.0. Il VI genera numeri casuali sulla slide 1, ogni mezzo secondo (timeout +attesa). se cambio il valore di "Numeric" cambia la "slide 2". se pigio "Start" lui conta da 0 a 10. se pigio "stop" si ferma. fin qui funziona tutto. il mio problema è mettere in pausa il conteggio tra 0 a 10. cioè fermarmi a caso, ad esempio al 3 e poi ripartire dal 4. se si potesse utilizzare anche "numeric + slide2" (cioè gestire altri eventi) durante la pausa sarebbe il max (ma non indispensabile) grazie ancora \":wink:\" Luigi ---------------------------------------- AUTORE: 4 DATA :11/04/2007 - 14:27:49 ---------------------------------------- Ho "rigirato" un pò il tuo codice, ti allego la mia versione modificata. Se non ti è chiaro chiedi. Ciao ---------------------------------------- AUTORE: 1853 DATA :11/04/2007 - 15:40:51 ---------------------------------------- Innanzitutto grazie per le modifiche al file, molto "istruttive" per me! \":D\" purtroppo però la presenza del loop for nel mio file non era casuale. mi spiego meglio: all'interno dell'evento "start" c' è una stacked sequence con numerose slides con dentro dei cicli for "lunghi" (nel senso temporale del termine) proprio per dare il tempo agli strumenti di acquisire. per rendere funzionale e funzionante il tasto "pause" io devo necessariamente interrompere i cicli "for", altrimenti il VI una volta entrato dentro, terminerà i cicli for, poi la stacked sequence e infine controllerà il tasto pause. purtroppo non credo ci sia un modo per eliminare la stacked sequence, nè tantomeno i cili for. \":(\" Per questo inizialmente l'unica idea che mi era venuta in mente era di mettere una doppia event structure (una dentro il loop for) in modo da fare una specie di check ad ogni passaggio del loop for ed eventualemente mettere in pausa il ciclo. forse ho di nuovo confuso le idee....spero di no.... \":o\" Luigi ---------------------------------------- AUTORE: 1853 DATA :12/04/2007 - 13:52:59 ---------------------------------------- Ho fatto un po' di prove e mente locale sul problema. interrompere il loop for non è un problema, ho messo un case con un while vuoto dentro. A questo punto però sorge un nuovo problema: come già detto il ciclo for in questione si trova dentro una event structure, in un evento gestito da un pulsante. dopo aver pigiato quel pulsante, parte giustamente il ciclo for, ma tutti i pulsanti del front panel diventano inaccessibili...e quindi non posso pigiare il pasto PAUSE!!! \":(\" a tal proposito allego un file esplicativo, sempre in labview 8.0. è una impostazione della struttura? c'è un modo per cambiarla? ho cercato un po' ma non ho trovato nulla che facesse al caso mio... grazie Luigi ---------------------------------------- AUTORE: 1853 DATA :12/04/2007 - 14:59:07 ---------------------------------------- Problema parzialmente risolto grazie a Geppo! \":lol:\" editando la event structure in basso si può scegliere caso per caso se abilitare il front panel oppure no. adesso il tasto pause funziona attivando e disattivando un loop while vuoto. gli altri eventi non possono essere gestiti nel frattempo...ma questo, ahimè, lo sospettavo dal principio. Grazie a tutti quelli che sono intervenuti! Luigi. \":wink:\" ---------------------------------------- AUTORE: 4 DATA :12/04/2007 - 15:18:50 ---------------------------------------- [quote:pj4bclpj]gli altri eventi non possono essere gestiti nel frattempo...ma questo, ahimè, lo sospettavo dal principio. [/quote:pj4bclpj] Puoi farlo, devi scomporre il codice e creare 2 while loop paralleli in uno metti il codice che gestisce l'interfaccia con gli event, nel secondo il codice da eseguire a ogni azione dell'interfaccia. Ciao ---------------------------------------- AUTORE: 1853 DATA :13/04/2007 - 12:53:02 ---------------------------------------- mmmm..... mi sa che nonho capito molto bene...potresti scrive un VI banale come esempio? è come il caso del prova_mod che hai messo su prima, solo con 2 while? ho provato a fare qualcosa ma mi sa che non ho proprio capito il concetto di base! \":o\" grazie Luigi ---------------------------------------- AUTORE: 482 DATA :16/04/2007 - 07:21:47 ---------------------------------------- ..allora... Vediamo se riesco a fare chiarezza o a confordere el idee anche a me. L'interfaccia puo' essere gestita con una event structure in un while loop, questo perchè in ogni caso l'utente puo' sempre e solo compiere un azione alla volta sul pannello. Tu potrai poi creare tanti cicli while paralleli, ognuno dei quali gestisce la singola azione legata al tasto. Tanti cicli while quante sono le azioni che devi gestire altrimenti ogni singola procedura dovrà aspettare che finisca quella precedente per poter essere processata. ---------------------------------------- AUTORE: 1853 DATA :16/04/2007 - 11:20:23 ---------------------------------------- quindi se ho capito bene nel mio VI dovrei tenere una decina di while loop separati ciascuno con una event structure dentro. e in ciascuna di queste event dovrebbe esserci solo il caso timeout e il caso gestito da un pulsante. ma non c'è il rischio di rallentare il tutto così? non so mi sembra un po' eccessivo...o no? L. ---------------------------------------- AUTORE: 482 DATA :16/04/2007 - 12:36:54 ---------------------------------------- no! non mi sono spiegato.. Un ciclo while ha un event structure che gestisce TUTTI GLI EVENTI. Questi eventi poi ad esempio alzano o abbassano un booleano. Nei vari cicli while puoi: - Mettere un case che a seconda che il booleano sia true o false eseguono o meno una routine (ovviamente il while temporizzato) - mettere una event structure che sente il cambio di stato del booleano e solo allora esegue la procedura. Per afre una cosa del genere studia bene l'interfaccia. Se scopri che determinate procedure non possono mai essere effettuate in contemporanea, allora puoi metterle in uno stesso ciclo while. ---------------------------------------- AUTORE: 1853 DATA :26/04/2007 - 10:54:32 ---------------------------------------- Torno a questo vecchio post per aggiungere un quesito, sempre sulla event structure. Spiego velocemente la situazione attuale del mio VI: La event structure gestisce un evento con dentro dei cicli for "temporalmente" lunghi. per mettere questi cicli for in pausa ho aggiunto una case structure collegata al tasto pause, con dentro un ciclo while vuoto. adesso volevo aggiungere la possibilità di fermare del tutto l'esecuzione di questo evento. Al momento questa cosa viene fatta inserendo dentro il while (che prima era vuoto) una case che ferma tutto il VI (Functions -> Application Controll -> Stop) così facendo però si ferma il VI e deve essere riavviato. esiste un modo più elegante di risolvere il problema? ovvero far tornare la Event structure al Timeout interrompendo la gestione di un caso specifico? Grasssssie Luigi ---------------------------------------- AUTORE: 645 DATA :26/04/2007 - 12:57:49 ---------------------------------------- Nel momento in cui interrompi un ciclo interno alla struttura ad eventi il VI dovrebbe tornare nel ciclo più esterno (e quindi alla struttura ad eventi stessa e al relativo timeout). Dipende da come è fatto il tuo VI. Puoi postare un'immagine del Block Diagram o direttamente il VI? ---------------------------------------- AUTORE: 1853 DATA :06/06/2007 - 17:03:18 ---------------------------------------- Ciao! mi scusa per il ritardo infinito della mia risposta, ma sono stato "fuori sede" (di testa però!! \":lol:\" ) Riapro la discussione sulla event structure perchè non ho ancora trovato soluzione al mio problema. inserisco qui un VI (labview 8.0) che spero possa essere esemplificativo. all'interno ci sono 2 while paralleli che fanno sostanzialmente la stessa cosa: - generano numeri a caso - alla pressione di "conta" contano fino a 10. uno dei due VI può essere messo in pausa, e altri eventi possono essere gestiti mentre il contatore conta, mentre nel secondo questo non è possibile. ciò è dovuto stanzialmente alla presenza di un ciclo for (naturalmente vale lo stesso per un while). adesso la domanda: è possibile mewttere in pausa questo dannato ciclo for? possono essere gestiti altri casi mentre il contatore conta dentro il ciclo for? l'unica soluzione che ho trovato al momento è quella descritta nel primo post. spero di non aver creato troppa confusione... grazie Luigi ---------------------------------------- AUTORE: 1853 DATA :06/06/2007 - 17:15:49 ---------------------------------------- scusate, nel PRECEDENTE post. ---------------------------------------- ================================================================================ Abilitare e togliere l'autoscala di un grafico ================================================================================ AUTORE: 1427 DATA :11/04/2007 - 11:13:52 ---------------------------------------- Ciao a tutti! Ho un quesito apparentemente scemo, di cui non riesco pero' venirne a capo: vorrei abilitare e disabilitare l'autoscala degli assi di un grafico all'interno del codice, ma nessun property node pare essere fatto per questa funzione. Chi mi da una mano? grazie molte! ---------------------------------------- AUTORE: 927 DATA :11/04/2007 - 11:33:34 ---------------------------------------- Nella 8.2 la proprietà è X Scale -> Scale Fit e Y Scale -> Scale Fit ---------------------------------------- AUTORE: 1427 DATA :11/04/2007 - 15:52:05 ---------------------------------------- [quote="Snamprogetti":2u8nisjp]Nella 8.2 la proprietà è X Scale -> Scale Fit e Y Scale -> Scale Fit[/quote:2u8nisjp] Perfetto!! davvero gentilissimo, ciao! ---------------------------------------- ================================================================================ Property node SharedVariableIO ================================================================================ AUTORE: 927 DATA :11/04/2007 - 14:15:01 ---------------------------------------- Se cerco di scrivere con questo p.n. le proprietà degli allarmi Alarming.HI.Level o Alarming.LO.Level, tutto ok, ma se compilo l'eseguibile dello stesso VI, appena tenta di scrivere si pianta. Il messaggio di errore è di windows, non di labviù, è del tipo "l'istruzione a xxxxx ha fatto riferimento alla memoria a yyyy. La memoria non poteva essere written". Qualcuno ha mai provato a cambiare le proprietà degli allarmi da programma? ---------------------------------------- ================================================================================ Nacondere un programma nella TaskList ================================================================================ AUTORE: 13 DATA :12/04/2007 - 09:11:41 ---------------------------------------- Mi chiedevo se era possibile in qualche modo nascondere un programma alla tasklist di Windows , in quanto devo evitare che un utente possa chiudere un mio processo . Spero in un vostro aiuto Un saluto e complimenti come sempre per il forum. ---------------------------------------- AUTORE: 927 DATA :12/04/2007 - 11:31:28 ---------------------------------------- Che io sappia, la questione non dipende da Labviù ma da come esegui l'exe. Dovresti lanciarlo come "servizio" di Windows. "XYNTService" è un programmino gratuito che potrebbe fare al caso tuo, prova a cercarlo ---------------------------------------- ================================================================================ aiuto per un principiante: uso dei counter su 6221 M ================================================================================ AUTORE: 1980 DATA :12/04/2007 - 18:17:52 ---------------------------------------- ciao a tutti, dopo aver letto spero tutto ciò che poteva aiutarmi a risolvere il problema senza esito...propongo quanto segue. Ho da poco acquistato una DAQ 6221 serie m versione usb con labview 8.2. Premetto che la mia esperienza di programmazione con detto sistema non è buona. Ho la necessità di valutare un tempo tra due segnali (di due encoder diversi) che passano da 0.1 a 2.4 Volt nel picco di tensione. Ho provato di tutto compreso il file scaricabile all'indirizzo: http://zone.ni.com/devzone/cda/epd/p/id/3501 che dovrebbe fare proprio questo ma su una scheda diversa dalla . Qualcuno può darmi lumi? grazie, Robi ---------------------------------------- AUTORE: 645 DATA :12/04/2007 - 23:09:21 ---------------------------------------- Puoi controllare il picco del primo segnale: quando lo trovi entri in una sequenza con un Tick Count. Quando trovi il picco del secondo segnale usi un altro Tick Count e fai la differenza con il primo: trovi la distanza tra i segnali in ms. ---------------------------------------- AUTORE: 1980 DATA :13/04/2007 - 07:31:28 ---------------------------------------- gentilissimo Magic, ti ringrazio per l'interessamento ma purtroppo non ho capito quasi nulla... >Puoi controllare il picco del primo segnale: (?) >quando lo trovi entri in una sequenza con un Tick Count (immagino che sia una cosa automatica che fa LV quando controlla il picco del di un segnale (?)) Puoi darmi ulteriori dettagli? grazie ---------------------------------------- AUTORE: 482 DATA :13/04/2007 - 08:45:54 ---------------------------------------- io direi: 1) I segnali sei in grado di leggerli? Se si procedi, se NO resta fermo un turno e cambia la tua domanda in "come faccio a leggere i segnali di un encoder?" 2) Letti i segnali devi innanzitutto fare un confronto tra il segnale attuale e lo stato precedente. QUindi se non sei pratico di programmazione labview pe ril momento ti dico di usare una variabile locale. Acquisisci->metti nella variabile locale->acquisisci->confronti l'acquisizione con la variabile locale->quando sono diverse (piu' di una certa soglia che stabilirai tu, se sono booleani non c'e' questo problema) fai partire un ciclo in cui rifai il confronto tale e quale a prima e intanto conti il tempo che passa. Quando il confronto ti dirà che c'e' stato un altro picco, prendi in uscita il tempo che ti sei calcolato fino a quel momento. ---------------------------------------- AUTORE: 1980 DATA :14/04/2007 - 17:03:21 ---------------------------------------- ...già... devo ammettere la mia ignoranza! forse il problema è anche che non so se lo so... "come faccio a leggere i segnali di un encoder?" già come faccio? grazie ---------------------------------------- AUTORE: 482 DATA :16/04/2007 - 07:29:52 ---------------------------------------- .....siccome non sono molto pratico di DAQmx ma uso solitamente i traditional NI_DAQ, il mio consiglio è di aprire un diagramma vuoto, andare nella palette alla voce MEasurement I/O-> DAQmx - Data Acquisition -> e selezionare DAQ assistant. Da li partirà un wizard che ti permetterà di configurara la lettura del canale che devi leggere nel modo opprtuno (c'e' tanto di voce Counter che credo sia quella che ti serve) \":wink:\" ---------------------------------------- AUTORE: 1980 DATA :16/04/2007 - 08:16:08 ---------------------------------------- quello che dici tu è vero però non mi risolve il problema. Forse, dato che il sistema daq mx è cambiato molto rispetto a quello tradizionale e non saprei dire se in meglio, forse mi occorrerebbe qualche testo dove poter andare a vedere la nuova "logica" di programmazione. A parte i corsi e il testi NI che sono carissimi e pertanto in luoghi per me inaccessibilli \":-(\", potresti consigliarmi qualcosa? grazie ancora ---------------------------------------- AUTORE: 482 DATA :16/04/2007 - 08:58:57 ---------------------------------------- Non cpaisco perchè non ti risolva il problema.. ..cmq... Hai guardato negli esempi di LabVIEW? Sotto a Hardware Input and Output -> Daqmx -> Counter measurements credo che troverai tutti gli esempi che ti forniscono le basi di programmazione per capire come funzionano i counter sotto DAQmx. Ovviamente da li dovrai costruirti tu il vi che fa quello che vuoi... (anche io ho qualche dubbio sulle migliorie di programmazione con i daqmx..fors epero' è perchè non ho ancora avuto modo di usarli nella pratica) ---------------------------------------- AUTORE: 1980 DATA :16/04/2007 - 11:55:56 ---------------------------------------- ora credo d'aver capito che si proceda come mi hai appena suggerito e cioè andando un po a vedere tra gli esempi e poi eventualmente li modifico per quello che mi servono. credo d'averci messo un po a capirlo perchè sono abituato a studiare il problema dal basso e capirlo nei dettagli fino alla soluzione (formazione matematica \":-(\" ) ma se la soluzione è quella suggerita da te, mi adeguo. grazie di tutto ---------------------------------------- AUTORE: 482 DATA :16/04/2007 - 12:32:27 ---------------------------------------- Credo proprio di poterti confermare la cosa. La maggior parte dei problemi li trovi già "risolti" nei numerosi esempi presenti in labVIEW. Se vuoi partire dalla logica puoi prenderteli, studiarteli a livello funzionale e solo dopo modificarli. Il piu' delle volte magari trovi esempi con run singole..cioè li lanci e si stoppano mostrandoti i risultati, poi sta a te prendere la parte di codice che ti serve e inserirla nel tuo programma. Il grosso vantaggio di labVIEW o comunque del G in genre è che è molto semplice risalire al funzionamento partendo da un codice già sviluppato anche se in assenza di commenti. Io ho cominciato a programmare in labVIEW 7 anni fa facendo cosi'...sono subentrato ad un tizio che non era piu' in azienda...mi hanno detto "questi sono i programmi che abbiamo, guardali e capisci come funzionano", nel giro di un paio di mesi sapevo già programmare in labview degli scada con schede SCXI. \":wink:\" ---------------------------------------- AUTORE: 1980 DATA :16/04/2007 - 16:20:14 ---------------------------------------- ti ringrazio e spero di far fruttare la tua esperienza. ciao ---------------------------------------- ================================================================================ supporto tecnico ================================================================================ AUTORE: 2000 DATA :12/04/2007 - 18:22:04 ---------------------------------------- ciao, mi sono appena iscrtta a questo forum. sono un astudentessa di ingegneria biomedica e sto utilizzando il labview per la mia tesi, riguardante le prove meccaniche sugli impianti dentali. Dovrei acquisire i dati e riportarli su di un grafico. il problema è che dovrei effettuare 5 mln di cicli e non posso prendere tutti i dati. Vorrei sapere se e come è possibile impostare il labview in modo tale che vengano registrati solo un certo numero di cicli ogni periodo predefinito. grazie infinite a chi vorrà aiutarmi ---------------------------------------- AUTORE: 645 DATA :12/04/2007 - 23:16:38 ---------------------------------------- Puoi sfruttare il contatore del ciclo: inserisci un blocco di Wait all'interno del ciclo in modo che ogni iterazione sia eseguita dopo "tot" secondi. Quando il numero di ciclo (il contatore) ha raggiunto un certo valore (devi calcolarlo tu in base a ogni quato vuoi registrare i dati... per esempio con un Wait di 1 s puoi controllare quando il contatore è multiplo di 10 per registrare dati ogni 10 s...) registri i dati (controlli il valore del contatore e passi il risultato ad un Case: se True registri i dati). In questo modo puoi acquisire sempre e registrare solo quello che ti serve. Oppure puoi acquisire e registrare solo quando il contatore assume il valore che vuoi. Oppure puoi acquisire sempre, mantenere i dati in memoria e quando il contatore assume il valore desiderato elaborare i dati (per esempio con una media) e salvare il risultato. ---------------------------------------- ================================================================================ Acquisizione forma d'onda tramite GPIB-USB ================================================================================ AUTORE: 1500 DATA :13/04/2007 - 09:14:10 ---------------------------------------- Salve a tutti, ho un problema, utilizzo uno Scalar Network Analyzer dell'Agilent (8757D) che non ha driver quindi utilizzo i blocchi GPIB write e GPIB read per comunicare con lo strumento ed esattamente l'esempio Labview<->GPIB.vi inviando il comando OD per acquisire la forma d'onda (lo strumento sembra rispondere) ma dovrei convertire la stringa in numeri per poi poter graficare, o una cosa del genere, mi dite come posso fare? ---------------------------------------- AUTORE: 645 DATA :13/04/2007 - 10:27:26 ---------------------------------------- Puoi fare un esempio della stringa che ti viene inviata dallo strumento? ---------------------------------------- AUTORE: 1500 DATA :13/04/2007 - 10:57:41 ---------------------------------------- Ciao MagicBotolo, intanto ti ringrazio per avermi risposto, la stringa che mi dà in realtà sono una serie di numeri che penso siano ivalori delle ordinate del grafico, ma essendo viste come stringhe nn me li fa graficare, dovrei forse convertirli in numeri anche se in realtà già lo sono? ---------------------------------------- AUTORE: 645 DATA :13/04/2007 - 11:49:51 ---------------------------------------- I numeri arrivano "in fila" nella stessa stringa? Tipo 10,2,3,14... Se è così devi prima dividere tutti i numeri, convertirli da stringa (decimale o altro... dipende da come arrivano) e metterli in un array. Poi passi l'array ad un grafico e ottieni la curva. Per dividere i numeri a partire dalla stringa iniziale puoi cercare (se c'è) un carattere divisorio (per esempio la virgola tra i numeri o il punto o il trattino...) e isolare la parte precedente spostandoti in avanti fino alla fine della stringa. ---------------------------------------- AUTORE: 1500 DATA :13/04/2007 - 12:05:22 ---------------------------------------- \":D\" Ho risolto il problema applicando la funzione Extract Numbers, ma adesso ne è sorto un altro e cioè, lo scalare dopo l'acquisizione della forma d'onda si blocca dandomi la scritta "DATA DUMP TO GPIB" e se voglio modificare la forma d'onda nn posso perchè lo strumento è bloccato inoltre se faccio ripartire l'acquisizione della stessa forma d'onda per una seconda volta sembra che lo strumento nn riceva più il comando....unica possibilità per riacquisire è quella di resettare lo strumento e reimpostare il tutto, ma è un'operazione che voglio evitare...Come posso quindi sbloccare lo strumento da remoto? devo forse mettere qualche blocco di inizializzazione? Vi prego rispondetemi... ---------------------------------------- AUTORE: 1500 DATA :13/04/2007 - 15:27:53 ---------------------------------------- Sono riuscito a sbloccare lo strumento tramite il comando "DCL" ma una volta avviata un'altra acquisizione non ritrovo più alcuna forma d'onda eppure lo strumento va in remoto e riceve il comando, ma non risponde sono costretto a resettare! Ma ci sarà un modo per evitare ciò? ---------------------------------------- ================================================================================ Aiuto per immagine di sfondo in LabVIEW ================================================================================ AUTORE: 1827 DATA :13/04/2007 - 09:22:52 ---------------------------------------- Ciao a tutti. Ho un problema con lo sfondo nel Front Panel. Ho fatto un disegno in autocad di una macchina ad assorbimento a doppio effetto. L'ho copiato sul Front Panel e attraverso il tasto Reorder l'ho bloccato come immagine di sfondo. Adesso il problema è un altro: Il principio di funzionamento è tale che d'inverno devo utilizzare solo una parte dello schema che ho sullo sfondo mentre d'estate utilizzo tutto lo schema. Esiste un qualcosa in LabVIEW che mi permette di evidenziare alcuni elementi della macchina a discapito di altri? Grazie... ---------------------------------------- AUTORE: 4 DATA :13/04/2007 - 09:49:54 ---------------------------------------- No, devi fare 2 o più disegni diversi evidenziando le varie zone di interesse e poi ne fai vedere uno e nescondi gli altri a seconda delle tue necessità. Questo lo puoi fare con labview magari usando un picture control per visualizzare i diversi file immagine. Se non sai come fare ad gestire le immagini con labview cerca tra gli esempi "picture" Ciao ---------------------------------------- AUTORE: 1827 DATA :13/04/2007 - 10:13:30 ---------------------------------------- grazie ok ora provo se poi trovo qulache problema lo comunico... Ciao ---------------------------------------- AUTORE: 1827 DATA :13/04/2007 - 14:25:47 ---------------------------------------- niente da fare... Anche con il suggerimento dell'help non riesco a fare quello che voglio.. Se non trovo una soluzione mi sa che devo fare 2 distinti front panel, uno per il caso invernale e uno per il caso estivo... \":cry:\" \":cry:\" ---------------------------------------- AUTORE: 487 DATA :16/04/2007 - 07:54:30 ---------------------------------------- Ciao, non so se va bene per il tuo caso, ma io importerei l'immagine di di autocad anzichè come sfondo del front pannel, come sfondo di un tab control cosichè puoi avere più immagini e visualizzare solo quella che ti interessa ---------------------------------------- ================================================================================ ACQUISIZIONE DI DATI ================================================================================ AUTORE: 1967 DATA :15/04/2007 - 15:28:20 ---------------------------------------- Non so se questa è la sezione corrretta per la mia domanda ma vorrei un suggerimento: ho 4 termometri i cui valori variano in modalità casuale (sono collegati ad un generatore di numeri casali). Potrei dire che questi simulano la varizaione di 4 tipi di gas inquinanti nell'atmosfera..ma un'idea più originale di questa? Qualcuno può suggerirmi qualcosa? Grazie! ---------------------------------------- AUTORE: 645 DATA :15/04/2007 - 17:07:18 ---------------------------------------- Potresti aggiungere un controllo e dire che sono temperature di 4 gas (piuttosto che di 4 ambienti climatizzati) e agire sul controllo per mantenere le temperature stabili ad un set point... Troppo? ---------------------------------------- AUTORE: 1165 DATA :15/04/2007 - 17:44:48 ---------------------------------------- Potresti riformulare la domanda in maniera un po' più chiara per favore? Così non riesco proprio a capire cosa esattamente stai chiedendo. In particolare non capisco se i quattro termometri che hai sono fisici o virtuali e cosa significa che sono collegati a generatori di numeri casuali. Vuoi forse dire che non hai fisicamente i quattri termometri e al loro posto li simuli con quattro generatori di numeri casuali e che stai cercando di inventarti a quali grandezze fisiche ipotetiche potresti farli corrispondere?? In questo caso la risposta di Magic potrebbe essere una ottima idea, come ottima porebbe essere qualsiasi simulazione di quattro misure indipendenti. Ma devi comunque stare attento ad un particolare credo piuttosto importante: il generatore di numeri (pseudo)casuali in Labview (ed in qalsiasi altro linguaggio) genera sequenze di numeri (quasi) casuali che sono caratterizzate dal fatto che i singoli numeri della sequanza sono uniformemente distribuiti nell'intervallo [0,1) e sono completamente scorrelati con il campione precedente. Cioè ottieni una sequenza di numeri fortemente variabili (rumore bianco o gaussiano), che contiene tutte le frequenze fino all'infinito. Un tale segnale poco o niente si adatta a simulare temperature, dove l'effetto capacitivo dato dall'inerzia termica dei corpi porta ad un comportamento passa basso dei sitemi termici. Quindi se vuoi modellizzare una sorgente di segnale termico dovresti per lo meno fare un filtraggio passabasso sulla tua sequenza numerica casuale (un filtro fir ottenuto con un ciclo while e quattro shift register multipli ben si adatterebbe al tuo scopo). Oppure ti inventi altre quattro grandezze non termiche, come ad esempio la proiezione su un muro delle ombre del volo di due api incavolate (appunto quattro coordinate!!). Ciao, Enr. ---------------------------------------- ================================================================================ Problema di acquisizione strumento Agilent ================================================================================ AUTORE: 1500 DATA :16/04/2007 - 10:05:40 ---------------------------------------- Salve a tutti, ho un problema con uno Scalare dell'Agilent (8757D di cui non esistono driver), acquisisco forme d’onda tramite Labview, ovviamente, dando allo strumento il comando “OD” e fin qui nessun problema, quando però cerco di acquisire una nuova forma d’onda sono costretto a resettare lo strumento, non capisco il perchè, è come se il comando non è ricevuto anche se non appena lancio il programma lo strumento si mette nello stato remoto. Ho provato anche con il comando “DCL” (clear) ma niente. Ho realizzato due programmi, in uno utilizzo l' Instrument I/O Assistant, nell'altro i blocchi GPIB read e write, ma in entrambi i casi il problema rimane: sono sempre costretto a resettare lo strumento. Qualcuno sa dirmi come risolvere il problema? ---------------------------------------- AUTORE: 645 DATA :16/04/2007 - 14:11:34 ---------------------------------------- Due cose al volo: 1) lasci allo strumento il tempo per capire che richiesta hai fatto e mandarti una risposta? (penso di sì perchè una lettura riesci a farla ma prima di chiedere un'altra lettura forse devi aspettare un tempo tecnico). 2) Svuoti tutto il buffer prima di fare una lettura successiva? Questo punto in particolare... forse non leggi tutti i dati che lo strumento ti mette a disposizione: se nel buffer rimane qualcosa la lettura successiva può non avvenire correttamente (o non avvenire proprio come nel tuo caso). ---------------------------------------- AUTORE: 1500 DATA :16/04/2007 - 15:06:27 ---------------------------------------- Ciao Magic Botolo, grazie nuovamente per avermi risposto, a quanto ho capito sei l'unico che può darmi una mano, per quanto riguarda la prima domanda, è lo strumento che gestisce il tempo di risposta, per la seconda, penso proprio che il problema stia lì perchè non applico alcuna funzione che svuoti il buffer per maggiore chiarezza ti allego l'immagine del programma che utilizzo... dimmi tu se manca qualcosa. ---------------------------------------- AUTORE: 1500 DATA :16/04/2007 - 17:52:27 ---------------------------------------- ciao magic, penso proprio che sia un problema di buffer, potresti dirmi se c'è qualche funzione che svuoti il buffer da poter applicare al programma che ho fatto? fammi sapere grazie. ---------------------------------------- AUTORE: 645 DATA :17/04/2007 - 08:15:23 ---------------------------------------- Due domande: a) come mai imposti tu il numero di byte da leggere tramite controllo? Sai a priori quanti sono? Ed è sempre così? b) vedo che ripeti un ciclo di lettura: prova a temporizzarlo. E visto che sai quanti byte leggere con la prima lettura svuoti già il buffer. Poi fai una seconda lettura ma non hai chiesto niente allo strumento: è programmato perchè in automatico metta qualcosa nel buffer ogni volta che questo viene svuotato? ---------------------------------------- AUTORE: 1500 DATA :17/04/2007 - 09:47:55 ---------------------------------------- ciao, la prima parte del programma quella con i blocchi GPIB read e write è l'esempio Labview<->GPIB.vi quindi non mi sono posto il problema dei byte, ma li ho calcolati a tentativi fin quando non ho ottenuto l'intera forma d'onda desiderata essendo questa sempre della stessa lunghezza ( purtroppo sono agli inizi e ancora molte cose mi sfuggono ma grazie al forum e quindi al vostro aiuto pian piano sto acquisendo molte nozioni), sai se c'è un modo per acquisire il num di byte automaticamente? dove ripeto il ciclo di lettura e come faccio a temporizzare il ciclo di lettura potresti farmi un esempio? inoltre in che senso alla seconda lettura non ho chiesto niente allo strumento, ma se io mando lo stesso comando per una seconda volta non faccio una richiesta? scusa se sembrano domande banali ma ti ripeto sono agli inizi, potresti spiegarmi anche con degli esempi la questione del buffer? Grazie te ne sarei grato. ---------------------------------------- AUTORE: 645 DATA :17/04/2007 - 10:15:21 ---------------------------------------- So che per la seriale esiste una funzione (un Property Node) che rileva il numero di dati presenti nel buffer ma per il GPIB non so... potresti fare così: con il blocco GPIB Write invii allo strumento una stringa di comando (la richiesta dei dati) e poi, tramite ciclo While, ripeti una lettura con GPIB Read di un dato alla volta (Count=1) finchè il morsetto Data non ti restituisce nulla. In pratica: continui a leggere finchè il morsetto Data non è vuoto. Quando è vuoto (uguaglianza con una stringa vuota dovrebbe andare bene) esci dal ciclo e hai i dati che ti servono (nel ciclo se trovi un dato lo accodi al dato precedente (usi uno shift register e concateni il nuovo dato con il vecchio tramite concatenazione delle stringhe). Al momento non riesco a postarti un'immagine perchè non ho LabView sotto mano... ---------------------------------------- AUTORE: 1500 DATA :17/04/2007 - 16:22:37 ---------------------------------------- Ciao Magic, ho letto qualche suggerimento dato sempre da te riguardo a come svuotare un buffer in altri topic, ma come ho capito ti riferisci alla seriale, in particolare ho visto una tua immagine "Svuota buffer.jpg", ma posso applicarla al mio programma sostituendo al posto del visa read il gpib read? l'immagine sembra essere quello che mi hai spiegato a parole....se è così potresti spiegarmi meglio "nel ciclo se trovi un dato lo accodi al dato precedente (usi uno shift register e concateni il nuovo dato con il vecchio tramite concatenazione delle stringhe)", perchè nell'mmagine questo sembra non esserci...cmq adesso provo. ---------------------------------------- AUTORE: 1500 DATA :17/04/2007 - 17:19:21 ---------------------------------------- sto cercando di ricostruire la funzione svuota buffer ma per il property node non trovo il comando "bytes at port" neanche nell'elenco delle proprietà seriali, come mai? utilizzo Labview 8. ---------------------------------------- AUTORE: 645 DATA :18/04/2007 - 12:20:25 ---------------------------------------- Dai un'occhiata qui http://zone.ni.com/reference/en-XX/help ... gpib_read/ per sapere come gestire il morsetto "Mode" del blocco GPIB Read e qui http://digital.ni.com/public.nsf/allkb/ ... BD00798C24 per informazioni sulla fine dei dati in uno strumento GPIB. Un po' come per la comunicazione seriale, uno strumento GPIB può inserire un carattere di fine dati (cerca sul manuale delle istruzioni come abilitare o disabilitare questa funzione che, mi pare di capire dai link sopra, per default è abilitata). Sfruttando questa cosa puoi leggere tutti i dati impostando il carattere di fine dati anzichè il numero di byte da leggere. In pratica il VI legge dati fino a quando incontra il carattere di fine (per sicurezza puoi impostare un numero di byte da leggere esageratamente alto tanto il blocco Read si ferma prima quando incontra il carattere di fine). ---------------------------------------- AUTORE: 1500 DATA :19/04/2007 - 09:59:26 ---------------------------------------- Ciao Magic, ho risolto il problema, è bastato mettere un blocco clear e riesco ad acquisire tutte le volte che voglio senza bisogno di resettare lo strumento, cmq grazie dei vari consigli che mi hai dato. Ora volevo porti un altro quesito: vorrei acquisire due forme d'onda contemporaneamente una appartenente al canale 1 e l'altra al canale 2, vorrei graficarle assieme nello stesso grafico, come faccio? La prima cosa che mi viene in mente è quella di fare due programmi identici in cui in uno do il comando per il canale1 nell'altro quello per il canale2 e le cui uscite convergono nello stesso Waveform Graphs. Tu cosa mei suggerisci? ---------------------------------------- ================================================================================ LabView su Vista ================================================================================ AUTORE: 2002 DATA :16/04/2007 - 13:32:14 ---------------------------------------- Ciao a tutti, sono nuovo...volevo sapere se fosse possibile far girare Labview su Vista. Grazie ---------------------------------------- AUTORE: 482 DATA :16/04/2007 - 14:23:48 ---------------------------------------- Direi proprio di si. Mi è appena arrivata in ufficio la versione con gli aggiornamenti per ottimizzare labVIEW su Vista. La versione è la 8.2.1 \":wink:\" ---------------------------------------- AUTORE: 2002 DATA :16/04/2007 - 16:35:49 ---------------------------------------- Grazie Gepponline \":wink:\" \":wink:\" ...allora provo subito e ti faccio sapere, così potro iniziare a lavorare alla tesi da casa \":wink:\" ---------------------------------------- AUTORE: 384 DATA :17/04/2007 - 10:47:53 ---------------------------------------- Settimana scorsa ho dovuto sostituire il PC di una macchina che ho fatto qualche tempo fa e l'ho preso con Vista Home Basic, per questioni di costo. Con l'occasione mi è stato chiesto di effettuare qualche piccolo "rittocco" al software, così ho installato LV7.1 (che poi ho rimosso) ed il NI-DAQ 7.4. Alla fine ho creato l'applicazione (build) e installato il runtime. Tutto ha funzionato normalmente. Per quanto riguarda Vista ecco la mia prima impressione: -interessante il nuovo paradigma di sicurezza. Ogni volta che serve un'operazione da "amministratore", viene chiesta la password oppure se l'utente lo è già viene chiesta una conferma. Più sicuro, ma devo dire che con il firewall personale gratuito della Kerio ho già questa protezione dai tempi di W2k. -invece credo che si potevano risparmiare le alterazioni grafiche. Le finestre delle applicazioni non hanno la classica barra dei menu (e mi sono trovato spiazzato!) ma poi si sono persi in una "tripudio" di sfumature, dissolvenze, movimenti, ecc. che consumano solo risorse al processore e non aggiungono niente alla performance del sitema operativo stesso. Se non fosse perchè ad un certo punto non lo si può più comprare, rimarrei tranquillamente a W2KPro!!! ---------------------------------------- ================================================================================ Pubblicazione dati OPC tramite Datasocket ================================================================================ AUTORE: 2003 DATA :16/04/2007 - 14:45:00 ---------------------------------------- Ciao a tutti!Ringrazio anticipatamente che vorrà darmi un aiuto...il mio problema è il seguente: dovrei pubblicare dei dati OPC tramite datasocket senza utilizzare il DSC!Qualcuno di voi si è trovato di fronte a questo problema prima d'ora?è possibile risolverlo? Non sono un esperto utente labview e gradirei avere presto un suggerimento e magari anche qualke vi di esempio! AIUTATEMI! GRAZIE ---------------------------------------- AUTORE: 4 DATA :17/04/2007 - 10:02:41 ---------------------------------------- In pratica dovresti fare con LabVIEW un OPC server, è corretto? Ciao ---------------------------------------- AUTORE: 2003 DATA :17/04/2007 - 10:29:28 ---------------------------------------- Ti spiego meglio il contesto...io ho un'apparecchiatura hardware che non dispone di un opc server di suo, quindi dovrò realizzare io un opc server in maniera tale che i dati vengano pubblicati su questo opc server da dove poi un opc client andrà a leggerli!E dovrei farlo senza utilizzare il DSC, ma magari una connessione tramite datasocket. Spero di averti chiarito meglio le idee....e grazie mille per aver risposto al mio messaggio! ---------------------------------------- AUTORE: 4 DATA :17/04/2007 - 10:41:42 ---------------------------------------- Svio un attimo la risposta poi magari ci ritorniamo. Visto che in ogni caso devi sviluppare un protocollo sul tuo HW non potresti utilizzarne uno più semplice rispetto a OPC? magari con un piccolo protocolloche ti inventi risolvi tutto, sempre a patto che il tuo HW debba comunicare solo col tuo SW e non con apparecchiature di terzi, questo renderebbe necessario usare un protocollo standard ovviamente. Ciao ---------------------------------------- AUTORE: 2003 DATA :17/04/2007 - 11:28:11 ---------------------------------------- Ciao, hai in parte centrato la questione alla base di tutto....purtroppo sono vincolato per disposizione di altre parti in causa ad utilizzare l'OPC! ---------------------------------------- ================================================================================ CompactRio ================================================================================ AUTORE: 2002 DATA :17/04/2007 - 12:10:48 ---------------------------------------- In pratica dovrei prima acquisire segnali con il CompactRio e poi elaborarli con il LabView. Ma il fatto è che nn sò nemmeno come far comunicare il CompactRio con il PC. Se qualcuno sa come aiutarmi o dirmi dove posso trovare informazioni, lo ringrazio già da adesso... ---------------------------------------- AUTORE: 247 DATA :18/04/2007 - 16:12:14 ---------------------------------------- Ciao, la prima cosa da fare è installare in modo assolutamente impeccabile LabVIEW ed il toolkit specifico per il cRIO (quello dell'FPGA con i relativi driver se non sbaglio..). Se tutto va liscio ti ritrovi candidamente il cRIO come risorsa (target) da aggiungere al tuo progetto per essere utilizzato. Per la programmazione ti rimando ad utenti diretti del cRIO, io non l'ho mai usato! BYE. P.S. NON è permesso aprire più di un topic per argomento!!! \":evil:\" Perdonato solo perchè sei nuovo..dai un'occhio alle regole del forum! ---------------------------------------- AUTORE: 2002 DATA :24/04/2007 - 11:44:36 ---------------------------------------- Scusate...ho provato ad implementare il DMA dal lato host che ho trovato sul sito della NI all'indirizzo "http://zone.ni.com/devzone/cda/tut/p/id/4534#toc3"...Qualcuno sa darmi qualke informazioni circa quell'esempio? grazie ---------------------------------------- ================================================================================ Mode del Timed loop ================================================================================ AUTORE: 927 DATA :17/04/2007 - 16:07:22 ---------------------------------------- Vorrei utilizzare la modalità "Process missed periods" (il contrario di Discard) per far recuperare al ciclo eventuali iterazioni saltate a causa di intoppi vari. Il problema sorge quando il ciclo viene fermato e poi riparte: a quel punto ri-recupera tutte le iterazioni, dall'ora di avvio del VI in poi! Come posso evitarlo? Per farmi capire ho allegato un esempio (8.2), provate a usare il pulsantone più volte... ---------------------------------------- AUTORE: 645 DATA :18/04/2007 - 08:42:03 ---------------------------------------- Dai un'occhiata: http://digital.ni.com/public.nsf/allkb/ ... 420000BA32 ... Se nel tuo VI aggiungi la creazione della "Sorgente di tempo" e la "distruggi" prima di iniziare il nuovo ciclo non si verifica più il fenomeno di "recupero dei cicli persi" (scusa i termini un po' poco tecnici... ma spero si capisca il concetto...). Ti allego un'immagine del tuo VI modificato. ---------------------------------------- AUTORE: 927 DATA :18/04/2007 - 15:22:13 ---------------------------------------- Buona idea! grazie ---------------------------------------- AUTORE: 927 DATA :18/04/2007 - 15:41:24 ---------------------------------------- No invece... siamo due ciechi... bastava selezionare "1 kHz <reset at structure start>" come timer \":lol:\" In LV 7.1 l'opzione non esisteva ancora, da cui quel documento ---------------------------------------- AUTORE: 645 DATA :18/04/2007 - 15:56:05 ---------------------------------------- OOppss... Ottimo... grazie! \":roll:\" ---------------------------------------- ================================================================================ come si fa a svuotare un buffer? ================================================================================ AUTORE: 1500 DATA :18/04/2007 - 10:20:56 ---------------------------------------- salve a tutti, qualcuno può aiutarmi spiegandomi come si fa a svuotare un buffer nell'acquisizione di una forma d'onda? ---------------------------------------- AUTORE: 247 DATA :18/04/2007 - 16:06:10 ---------------------------------------- Ciao, beh dipende da che buffer stai utilizzando, software o hardware??? BYE. ---------------------------------------- ================================================================================ DAQ USB libero ================================================================================ AUTORE: 1313 DATA :18/04/2007 - 12:06:52 ---------------------------------------- Salve ragazzi, ho fatto la seguente prova: 1) collego un daq usb al PC; in particolare il DAQ USB6009 2)lancio un vi che legge delle tensioni in input sul primo canale AI0 3)lancio un altro vi che va a fare le stesse operazioni di lettura dallo stesso daq e dallo stesso canale Rsultato, impazzisce il I° vi e quando chioudo il II° vi il primo continua a leggere valori assurdi. Quindi mi domando: è possibile vedere se un daq usb è usato da un altro SW o VI ??? (come succede per la seriale). Grazie in anticipo per la risposta, Cris P.S. Questo FORUM è GRANDIOSO!!!! ---------------------------------------- ================================================================================ Serializzare un byte e trasmetterlo sulla parallela ================================================================================ AUTORE: 2011 DATA :18/04/2007 - 18:25:58 ---------------------------------------- Il mio problema è il seguente: Devo inviare serialmente dei byte ad un PIC 16F876 da PC attraverso la porta parallela, sfruttando i bit 0 ed 1 della control port. Sul bit zero invierò i dati (linea attiva bassa), mentre il pin 1 è il clock (attivo alto), i bit restanti della control port devono restare inalterati. Con il Labview devo realizzare un programma che mi serializzi l'informazione da inviare al PIC. In pratica scrivo un byte da PC, ad esempio 11100110 ed ogni singolo bit deve andare sulla linea zero della control port (ogni bit verrà processato soltanto quando il clock si alza....linea 1 della control port). L'indirizzo della parallela è 37A.....come posso fare? Un saluto a tutti ciao!!! ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:04:17 ---------------------------------------- Guarda negli esempi di labview. Troverai dei vi per interaggire con la porta paralella. Dopodicchè, devi fare un vi al quale passi i tuoi dati (immagino che siano diversi bytes, quindi un array) e che alza e abbassa in modo temporizzato i due bit del port paralello. Naturalmente devi conoscere il protocollo, che però è disponibile credo anche nel data sheet del PIC. Verifica le tolleranze dei tempi che il PIC accetta, perchè la miglior risoluzione che puoi avere con LV è 1 msec. ---------------------------------------- ================================================================================ Switch grafico ================================================================================ AUTORE: 1989 DATA :18/04/2007 - 18:52:41 ---------------------------------------- Salve a tutti, ho un piccolo problemino come tutti quelli che scrivono in questa sezione!!! Ho un grafico dove devo visualizzare una sequenza di impulsi, ma devo avere la possibilità di scegliere se utilizzare un valore costante o un control per settare manualmente la distanza tra i 2 impulsi, e devo poter vedere alternativamente le due soluzioni sullo stesso grafico. Esiste uno switch o un qualche altro controllo che mi permetta di fare questa operazione??? Grazie... ---------------------------------------- AUTORE: 927 DATA :19/04/2007 - 10:51:36 ---------------------------------------- Praticamente vuoi cambiare la scala delle X? Anzitutto clicca col dx sulla scala (l'asse X) e togli "autoscale X". Poi per modificarla a mano basta doppiocliccare sui numeretti; per modificarla da programma ci vuole un Property node con la proprietà Xscale->Range->Maximum e simili ---------------------------------------- AUTORE: 1989 DATA :19/04/2007 - 19:00:17 ---------------------------------------- no....forse nn mi sono spiegato bene.... i 2 impulsi devono avere o una distanza di ad esempio 3 secondi l'uno dall'altro o devo poter essere io scegliere questo tempo ---------------------------------------- AUTORE: 927 DATA :20/04/2007 - 08:01:28 ---------------------------------------- ah quindi non è questione di grafico, vuoi cambiare proprio il segnale... attualmente cos'è che lo genera? ---------------------------------------- AUTORE: 1989 DATA :21/04/2007 - 00:50:48 ---------------------------------------- I due segnali sono generati da una semplice formula waveform, per distanziare questi 2 segnali ho trovato come unica soluzione quella di interporre un "basic function generator" che mi genera un impulso rettangolare di ampiezza zero, nel quale vado a modificare il tempo di campionamento (#s), in modo che i 2 impulsi scorrano senza mai sovrapporsi. Adesso, in poche parole, questo tempo di campionamento o deve avere una distanza prefissata o devo essere io poter scegliere questa distanza. Riesco a fare entrembe le cose, cioè riesco ad avere la distanza prefissata e riesco a modificarla attraverso un control sul front pannel, ma devo poter averle entrambe disponibili contemporaneamente e vorrei che fosse l'utente a scegliere quale visualizzare appunto attraverso uno switch o un altro comando simile. P.S. Chiunque avesse in mente altre vie per risolvere questo problemino si faccia avanti, non ho uno schema rigido di lavoro, quindi ogni consiglio è ben acetto. Grazie ---------------------------------------- AUTORE: 1743 DATA :07/09/2007 - 16:14:15 ---------------------------------------- Sempre rimanendo in argomento: adesso che ho le due scale se volessi dare all'utente la possibilita' di settare il valore massimo e minimo delle medesime, come uso i property node? Cioe', supponendo di avere due scale sull'asse y, ho un solo property node y.Scale.Range.Max per esempio: come faccio per l'altra scala? Grazie barbara ---------------------------------------- AUTORE: 2210 DATA :08/09/2007 - 14:40:35 ---------------------------------------- [quote="056611":38rv58hh]Sempre rimanendo in argomento: adesso che ho le due scale se volessi dare all'utente la possibilita' di settare il valore massimo e minimo delle medesime, come uso i property node? Cioe', supponendo di avere due scale sull'asse y, ho un solo property node y.Scale.Range.Max per esempio: come faccio per l'altra scala? Grazie barbara[/quote:38rv58hh] Purtroppo non sono riuscito a fare di meglio se non portare un file bmp ma almeno dovrebbe chiarire la correlazione tra active scale e scale max range. Praticamente prima scegli su quale scala lavorare e poi setti le varie opzioni. Ciao G. ---------------------------------------- ================================================================================ Modificare un singolo bit di un byte ================================================================================ AUTORE: 2011 DATA :19/04/2007 - 09:55:51 ---------------------------------------- Come faccio a modificare un singolo bit di un byte? Es. 11101101 voglio modificare il bit di posto zero come faccio? ---------------------------------------- AUTORE: 927 DATA :19/04/2007 - 10:34:31 ---------------------------------------- per cambiare ad es. il 4° bit, devi fare il numero XOR 1000. lo XOR lo trovi sotto i Boolean (Exclusive Or) ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:17:10 ---------------------------------------- Attenzione: XOR cambia lo stato al bit (se era 1 diventa 0 e viceversa) AND resettare (porre a 0, maschera tipo 11101111) OR settare (porre a 1, maschera tipo 00010000) Per costruire dinamicamente la maschera, fai lo "shift left" del valore "1" di tante posizioni quanto la posizione del bit che ti interessa. Per settare il bit, va usata così, per resettare il bit va negata prima. ---------------------------------------- ================================================================================ Selezione in un cluster ricorsivamente ================================================================================ AUTORE: 482 DATA :19/04/2007 - 10:34:09 ---------------------------------------- ...ma ciao! dopo aver deciso di lanciarmi nell'avventura sqlite che al momento non sembra dare alcun problema, mi trovo a dover costruire un interfaccia utente per consultare il DB. Per questo mi trovo di fornte ad un problema che illustro subito (e che allego in figura). Ho un cluster con all'interni piu' cluster. Questi cluster hanno la stessa struttura. Sicocme dovro' fare la stessa operazione per tutti i cluster, volevo utilizzare un ciclo for anzichè singole operazioni per singoli cluster. Il problema pero' è che io dovro' estrapolare dal cluster l'elemento A e l'elemento B in modo che alla prima iterazione siano quelli del cluster "serie" alla seconda siano quelli del cluster "esito" e cosi' via. Come posso fare? E' possibile?(mi pare di aver già fatto tempo fa una domanda simiel ma non sono riuscito a trovare il topic relativo). ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:51:05 ---------------------------------------- Se i cluster all'interno del cluster "madre" sono tutti uguali, perchè non converti il cluster "madre" in un array? Cosí un semplice ciclo for risolve il problema. ---------------------------------------- AUTORE: 482 DATA :20/04/2007 - 14:11:39 ---------------------------------------- purtroppo non sono tutti uguali ma ce ne sono di due tipi. ...adesso vedo...MAL CHE VADA faro' due array separand i due tipi... anche se mi fa andare in bestia sta cosa perchè in linguaggio testuale il tusso si risolverebbe con un "X.serie" dove X è il nome del cluster che di volta in volta vado ad esaminare....ppff... ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 14:48:09 ---------------------------------------- Ma questo lo puoi fare! Se crei un property node del tuo cluster, esiste la proprietà controls, che altro non è che un array di riferimenti a tutto ciò che c'è nel cluster. A questo punto puoi seguire l'ordine del array - è lo stesso del cluster, quindi sai chi c'è dopo chi - oppure puoi usare la proprietà "Label.Text" per scegliere chi "trattare". Ti conviene definire delle typedef perchè la proprietà "value" diventa un variant. ---------------------------------------- AUTORE: 482 DATA :20/04/2007 - 14:59:37 ---------------------------------------- Ecco fin li ci ero arrivato sul cluster semplice...ma non capisco come entrare nel cluster annidato. Nel senso.. da controls dovrei trovare un altro controls e li cambiare il valore. Come faccio? ---------------------------------------- AUTORE: 113 DATA :20/04/2007 - 15:27:39 ---------------------------------------- Devi specificare la classe di appartenenza al reference Controls del cluster principale. Guarda l'esempio \":wink:\" P.S. meglio chiuderli i riferimenti alla fine Ciao, Alberto ---------------------------------------- AUTORE: 482 DATA :20/04/2007 - 15:34:10 ---------------------------------------- Grandissimo! Era esattamente questa la soluzione!!! Sonosicuro di averla già richiesta tempo fa... \":roll:\" grazie ancora! ---------------------------------------- AUTORE: 482 DATA :20/04/2007 - 15:37:53 ---------------------------------------- Stavo pensando..pero' bisogna farla per forz adi cose indicizzata giusto? Nel senso... Io non posso dire di restituirmi solo il value dell'oggetto con abel.Text= tot giusto? devo comunque metterlo in un for o cmq conoscere a priori l'indice dell'oggetto che mi interessa? ---------------------------------------- AUTORE: 113 DATA :20/04/2007 - 16:30:17 ---------------------------------------- Sì, non puoi fare un Unbundle by name dai reference \":cry:\" Quello che puoi fare è tenere traccia dei nomi di tutti gli oggetti del cluster, ordinandoli ad esempio in un array. Quando devi puntare ad un'oggetto puoi risalire alla sua posizione del reference... Bha comunque mi sembra un po' un casino, anche solo tentar di spiegarlo! \":o\" Se il cluster non è ciclopico, forse è meglio estrapolare tutti i dati e prendere quello che ti serve \":roll:\" ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 16:59:49 ---------------------------------------- [quote="gepponline":30qprawg]Ecco fin li ci ero arrivato sul cluster semplice...ma non capisco come entrare nel cluster annidato. Nel senso.. da controls dovrei trovare un altro controls e li cambiare il valore. Come faccio?[/quote:30qprawg] Per quello dicevo che conviene definire dei typedef. In quel modo, puoi fare il "cast" del variant e fare unbundle per nome. ---------------------------------------- AUTORE: 482 DATA :23/04/2007 - 06:51:50 ---------------------------------------- oocchei! Vi ringrazio dell'interessamento.. Siccome facendo un analisi piu' attenta è saltata fuori la necessità di dover eventualmente modificare un clusetr in corsa..... Alla fine ho deciso che non operero' piu' su un cluster di cluster e mi sono risolto il problema alla radice trasformando il tutto in una macchina a stati con dei singoli controlli! \":wink:\" ---------------------------------------- ================================================================================ Stop timed loop su VI reentrant ================================================================================ AUTORE: 927 DATA :19/04/2007 - 10:43:04 ---------------------------------------- Ho dei VI reentrant lanciati dinamicamente (nell'esempio, solo 1). Il VI lanciato contiene un timed loop che a un certo punto vorrei fermare dal VI principale con Stop timed loop; ma non funziona, mi dà errore -804 (timed loop non esistente). Se invece non lo eseguo come reentrant, tutto ok. Qualche dritta? (8.2) ---------------------------------------- ================================================================================ OPC Server ================================================================================ AUTORE: 2003 DATA :19/04/2007 - 10:57:07 ---------------------------------------- Ciao a tutti!Mi rivolgo nuovamente a questa comunity per avere un aiuto e spero di poterlo presto trovare! Volevo sapere se in qualche modo è possibile estrapolare l'opc server dal dsc e se qualcuno di voi ha mai provato a farlo! Grazie! ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:40:20 ---------------------------------------- Non credo si possa fare. Ma NI ha un toolkit con un suo OPC server. ---------------------------------------- ================================================================================ come acquisire due forme d'onda nello stesso grafico ================================================================================ AUTORE: 1500 DATA :19/04/2007 - 11:22:42 ---------------------------------------- Acquisisco senza problemi una forma d'onda da uno scalare, adesso vorrei acquisire due forme d'onda contemporaneamente una appartenente al canale 1 e l'altra al canale 2, vorrei graficarle assieme nello stesso grafico, come faccio? La prima cosa che mi viene in mente è quella di fare due programmi identici in cui in uno do il comando per il canale1 nell'altro quello per il canale2 e le cui uscite convergono nello stesso Waveform Graphs. Cosa mi suggerite? ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:10:57 ---------------------------------------- I blocchi di acquisizione ti permettono di acquisire canali multipli contemporaneamente, devi solo indicare quali canali, con un array in ingresso. Ti basta colegare l'uscita dati al display grafico e LV fa il resto. ---------------------------------------- AUTORE: 1500 DATA :20/04/2007 - 15:11:15 ---------------------------------------- per acquisire la forma d'onda utilizzo i blocchi GPIB read/write (come puoi vedere dalla figura allegata), ma con questi riesco solo a settare l'indirizzo della porta GPIB e non i canali.....quindi come faccio? ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 17:13:08 ---------------------------------------- Non avevo capito che usavi il GPIB. Io acquisirei la forma d'onda da un canale, poi dal'altro ed in fine le metterei insieme in un array prima di immetterle nel blocco "Waveform Graph". Cerca negli esempi di LV "XY Graph.vi" e "Waveform Graph.vi" per ulteriori dettagli e suggerimenti. ---------------------------------------- AUTORE: 1500 DATA :23/04/2007 - 09:40:48 ---------------------------------------- Ciao gyc, anche io ho pensato la stessa cosa e ho fatto come puoi vedere nella figura allegata, però non funziona potresti dirmi vedendo l'mmagine in cosa ho sbagliato? ---------------------------------------- AUTORE: 384 DATA :23/04/2007 - 10:23:42 ---------------------------------------- Non ci dici nulla su che cosa non va. Come si comporta? Dà un qualche codice di errore? In quale "lato"? Io non so come funzionano all'interno i blocchi GPIB, ma non essendoci nessun tipo di "task reference" come nei file o nelle acquisizione NIDaq (o NIDAQmx) presumo che tutto si passi con dei buffer interni. Su questo presuposto e visto che lamenti un malfunzionamento, dalla schermata, vedo un potenziale problema. Ci sono due linee di "flusso" distinte che presumo leggano i dati dai 2 canali che ti interessano. Però non c'è nulla che vietti che LV, internamente, esegua il tuo VI facendo il write del primo flusso, poi il write del secondo, poi il read del primo e, per ultimo il read del secondo. Como puoi imaginare, questo può potenzialmente causare un funzionamento completamente sbagliato per i tuoi scopi. Il fatto che tu abbia fatto passare il cluster di errore, garantisce la causalità nei due flussi, ma non all'interno. Ripeto, non so come funzionano i blocchi GPIP all'interno, quindi sto facendo ippotesi. Puoi provare velocemente a "sequenzializzare" i 2 flussi portanto il cluster di errore del primo all'ingresso del secondo. Facci sapere. ---------------------------------------- AUTORE: 1500 DATA :23/04/2007 - 10:51:15 ---------------------------------------- Secondo me il problema sta nel far partire i due flussi contemporaneamente, forse dovrei prima far finire il primo flusso acquisendo la prima forma d'onda e poi far partire il secondo flusso per la seconda forma d'onda, avendo cosi le due forme d'onda nello stesso grafico, ma non so come poter fare questo...altrimenti potrei anche far partire un unico flusso due volte una per il primo grafico, l'altra per il secondo salvando i dati in due array distinti per poterli poi graficare nello stesso grafico, si può fare questa seconda ipotesi? e se si come faccio a salvare i dati in due array differenti senza sovrascrivere il primo quando lancio il programma la seconda volta? ---------------------------------------- AUTORE: 384 DATA :23/04/2007 - 11:01:26 ---------------------------------------- É esattamente il suggerimento che ti faccio nell'ultima riga del mio precedente messaggio. Senza cambiare altro al tuo vi, prendi il cluster di errore in uscita dal read del primo flusso e collegalo all'ingresso del write del secondo flusso. In questo modo, i 2 flussi vengono sequenzializzati e mantieni tutta la parte di elaborazione dati come prima. ---------------------------------------- AUTORE: 1500 DATA :23/04/2007 - 11:38:53 ---------------------------------------- Ho provato, sembra che siamo vicini alla soluzione! Come si può vedere dall'immagine allegata in uscita ho i due array con i dati di ciascuna forma d'onda, cosa che prima non avevo in quanto mi dava i dati di una sola forma d'onda e per la seconda avevo l'array vuoto...il problema è però che il grafico che ne esce fuori sono tante linee di diversi colori quindi una cosa strana, non vorrei che l'errore stia nella parte finale e cioè nei blocchi "Build array" e "Transpose Array" ? Eppure ho preso spunto dall'Help "Displaying Multiple Plots on Waveform Graphs". ---------------------------------------- AUTORE: 384 DATA :23/04/2007 - 12:00:56 ---------------------------------------- [quote="fraserra":3cgh6vw3]...il problema è però che il grafico che ne esce fuori sono tante linee di diversi colori quindi una cosa strana, non vorrei che l'errore stia nella parte finale e cioè nei blocchi "Build array" e "Transpose Array" ? Eppure ho preso spunto dall'Help "Displaying Multiple Plots on Waveform Graphs".[/quote:3cgh6vw3] É proprio il transpose arrays. Toglilo! In alternativa, converte ogni array dati in waveform prima di costruire l'array bidimensionale (che a questo punto non sarà più bidimensionale). ---------------------------------------- AUTORE: 1500 DATA :23/04/2007 - 12:27:28 ---------------------------------------- ciao gyc, sei un grande, il problema stava proprio lì, scusami se le mie domande ti potevano sembrare banali ma sono ancora agli inizi, in compenso però mi sto accanendo parecchio col Labview, ora ti vorrei porre un'ultima domanda: come faccio a salvare il grafico in formato JPG? potrei vedere io stesso ma visto che i tuoi consigli sono stati preziosi preferisco non perdere tempo. GRAZIE 1000. \":lol:\" \":D\" ---------------------------------------- AUTORE: 384 DATA :23/04/2007 - 13:41:54 ---------------------------------------- Se vuoi farlo "una tamtum", tipo per inerire la foto in un documento, dopo aver fatto girare il tuo vi, semplicemente premi ALT+PrintScreen e poi fai paste (incolla) nel tuo documento (word, powerpoint, ecc). Se invece vuoi farlo programaticamente, guarda la foto allegata. ---------------------------------------- ================================================================================ piccolo aiutino ================================================================================ AUTORE: 2000 DATA :19/04/2007 - 16:33:58 ---------------------------------------- ciao, sono sempre io la studentessa in ingegneria. Vi prego di aiutarmi perchè mi sono arenata sulla programmazione in labview e non riesco ad andare avanti con la mia tesi. Utilizzo un file di tipo "Cont Acq to Spreadsheet File.vi". Ora, vorrei che fosse continua l'acquisizione dei dati e non la scrittura. Ad es. vorrei che i dati fossero scritti su file ".txt" solo ogni 1000 secondi. Questo perchè dovrei mandare la macchina di prova per cinque milioni di cicli e quindi per circa 6 giorni. Vorrei insomma che il programma acquisisse i dati ogni tot tempo senza che io lo stoppi. Cosa dovrei aggiungere o modificare al block diagram? Davvero grazie a chi sarà così gentile da aiutarmi... Ciao Ps: nel caso servisse vi allego il file ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:46:28 ---------------------------------------- Ti basta "chiudere" in un case booleano i blocchi relativi alla sctrittura su file e farlo eseguire soltanto ogni volta che il contatore "i" del loop sarà multiplo del numero di cicli di intervallo che vuoi tu. ---------------------------------------- ================================================================================ nuovo strumento VI -THEREMIN - riproduzione di un valvolare ================================================================================ AUTORE: 1669 DATA :19/04/2007 - 17:38:11 ---------------------------------------- Ciao a tutti Vorrei riprodurre uno strumento chiamato Theremin tramite Labview. Praticamente in ingresso a questo VI ci devono essere 2 antenne ed in output una uscita audio. In questo strumento ci devono essere 2 circuiti oscillatori che lavorano su frequenze radio: uno "d'antenna" e uno "d'scillatore locale". l'antenna collegata col primo oscillatore non capta stazioni radio ma i disturbi provocati dalla amno dell'esecutore. la mano con l'antenna formano un condensatore la cui capacità, variabile dalla dipendenza della distanza mano-antenna, va a modificare d'accordo del circuito risonante parallelo del primo oscillatore. Se in fase di messa apunto dello strumento, facciamo in modo che le frequenza del primo e del secondo oscillatore siano identiche, e all'uscita del mixer, tramite un filtro, annulliamo la frequenza somma, la frequenza differenza ottenuta sarà zero. Avvicinando la mano all'antenna, aumentiamo, sia pure di poco, la capacità del circuito risonante, variando la frequenza di funzionamento dell'oscillatore. Poichè non varia la frequenza del secondo oscillatore, la differenza fra le frequenze, in uscita dal mixer, non sarà piu zero ma una frequenza ricadente nel campo delle BF (20 / 20.000 Hz ) quindi UDIBILE. QUESTO E' CIO' CHE SI PUò RICAVARE DALLA PRIMA ANTENNA. Con lo stesso principio agisce la seconda antenna, per comandare il volume delle note prodotte dall'antenna intonazione. Anche in questo caso un oscillatore a frequenze radio fa capo ad una antenna e l'uscita del segnale prodotto è inviata ad un filtro passa banda, successivamente il segnale filtrato è rivelato, e duplicato, ad opera di due diodi, in maniera da ottenere una tensione variabile in dipendenza dalla distanza della mano dall'antenna. Successivamente questo segnale di tensione, insieme a quello di intonazione viene inviato alla parte finale dello strumento che ne modifica il guadagno rendendo il segnale più o meno ampio in uscita HO DESCRITTO GROSSOMODO IL FUNZIONAMENTO DI QUESTO STRUMENTO. Vorrei sapere se è possibile implementarlo tramite Labview Fatemi sapere Vi ringrazio in anticipo A presto ---------------------------------------- AUTORE: 645 DATA :20/04/2007 - 08:19:13 ---------------------------------------- Per la fase di filtraggio e operazioni varie sulle frequenze non dovrebbero esserci grandi problemi (a livello di blocchi LabView intendo). Per quanto riguarda la simulazione dei segnali in ingresso (vuoi simularli giusto? Non acquisirli dall'esterno... ho capito bene?) non saprei come fare per "la mano dell'utente". O meglio, penso si possano seguire strade diverse. Si potrebbe usare uno slide come controllo della distanza mano-antenna e poi ricavare il disturbo (ci sono formule per questo?). Però credo che si possa trovare un modo per ricreare lo strumento con LabView. ---------------------------------------- AUTORE: 1669 DATA :20/04/2007 - 08:44:57 ---------------------------------------- [quote="MagicBotolo":4v1qnkey]Per la fase di filtraggio e operazioni varie sulle frequenze non dovrebbero esserci grandi problemi (a livello di blocchi LabView intendo). Per quanto riguarda la simulazione dei segnali in ingresso (vuoi simularli giusto? Non acquisirli dall'esterno... ho capito bene?) non saprei come fare per "la mano dell'utente". O meglio, penso si possano seguire strade diverse. Si potrebbe usare uno slide come controllo della distanza mano-antenna e poi ricavare il disturbo (ci sono formule per questo?). Però credo che si possa trovare un modo per ricreare lo strumento con LabView.[/quote:4v1qnkey] Ciao innanzitutto ti ringrazio per la risposta. Allora, in ingresso (non simulato) al VI, voglio mettere le due antenne, una per l'intonazion ed una per il volume..quindi non so bene quale scheda di acquisizione devo utilizzare ( forse una scheda di acquisizione video..non so..consigliatemi) mentre in uscita dovrebbe andar bene una normale uscita audio (praticamente potrei utilizzare l'uscita audio della scheda audio presente nel mio pc). Secondo te come posso fare? Grazie ancora ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:39:08 ---------------------------------------- Se ho capito bene, vorresti una scheda alla quale collegare un'antenna e che produca una sinusoide (e la acquisisca subito) la cui frequenza varia in funzione della posizione della mano dell'operatore rispetto all'antenna. Non esiste una scheda con questa funzione in NI e, che io sappia, nè da nessun altro fabbricante - anche perchè è una cosa molto specifica. Devi creare tu il circuito oscillatore che vari la sua frequenza in funzione della mano dell'operatore. Allora puoi acquisire l'oscillazione con una normale scheda NI, che dovrai scegliere in funzione di questa stessa frequenza. Quando avrai acquisito il segnale allora puoi trattarlo come vuoi: di fatti, filtro, rivelatore, amplificatore, ecc. sono solo funzioni matematiche. ---------------------------------------- AUTORE: 1669 DATA :20/04/2007 - 18:06:51 ---------------------------------------- quindi è praticamente impossibile creare un oscillatore come VI ? Fammi sapere graziee ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 19:46:00 ---------------------------------------- [quote:3dqkhtgi]quindi è praticamente impossibile creare un oscillatore come VI ?[/quote:3dqkhtgi] No, non è impossibile creare un "oscillatore", anzi, i blocchi generatori di forme d'onda esistono già pronti. Il problema è che tu vuoi comandare quest'oscillatore con la vicinanza della mano ad un'antenna. Tu stesso ne hai descrito il funzionamento, cioè, l'effetto capacitivo fra la mano e l'antenna stessa. Quindi, per controllare un oscillatore software, ti serve "misurare" questa capacità, ti è chiaro? Il "problema", e spero che tu sappia anche questo, è che [b:3dqkhtgi]NON[/b:3dqkhtgi] esiste un metodo [b:3dqkhtgi]diretto[/b:3dqkhtgi] per misurare la capacità come esiste per misurare la tensione elettrica. Si deve usare sempre un metodo indiretto, cioè, la capacità è inserita in un sistema e da essa dipende un'altra grandezza fisica essendo quest'ultima quella che si misura. Il metodo più comune è usare la capacità come componente di un circuito oscillatore e misurandone la frequenza prodotta si determina il valore di capacità. Un'altro metodo possibile, è pilotare un circuito RC con un'onda quadra e misurare la costante di tempo. Visto che stai simulando tutto in LabView, perchè non trovi la formula della capacità in funzione della distanza mano-antenna e poi con un controllo di tipo slider simuli la posizione della mano? Oppure, ancora più semplicemente, perchè non controlli direttamente la frequenza dei tuoi oscillatori con un controllo e dedichi il resto del tuo sforzo alle restanti elaborazioni (filtro, rilevazione, ecc.)? ---------------------------------------- ================================================================================ audio output ================================================================================ AUTORE: 1669 DATA :19/04/2007 - 20:52:20 ---------------------------------------- Salve considerando un generatore di segnale.vi è possibile ascoltare l'audio del segnale ? Vorrei utilizzare la scheda audio che ho già nel mio pc che è gà collegata all'impianto stereo..come faccio a configurarla come scheda di I/O per labview ? Di quale libreria ho bisogno per lavorare sull'audio in labview ? Vi ringrazio in anticipo ---------------------------------------- AUTORE: 927 DATA :20/04/2007 - 08:15:28 ---------------------------------------- Nella v.8 trovi tutto sotto Graphics&Sound -> Sound -> Output, anche nella v.7 più o meno. Non mi pare che sia un pacchetto da acquistare a parte. Dice solo che ci vuole DirectX 8 su Windows o OSS su Linux ---------------------------------------- AUTORE: 1669 DATA :20/04/2007 - 08:48:30 ---------------------------------------- ciao non hai percaso un vi che generatore di segnale..con la possibilità di ascoltare l'audio ? grazie ---------------------------------------- AUTORE: 384 DATA :20/04/2007 - 13:08:48 ---------------------------------------- Cerca negli esempi di LV. Non credo troverai uno già pronto come vuoi, ma troverai un generatore senza scheda (detto "simulato") e trovi esempi di uso della scheda audio. Devi solo "giuntare" i due!!! ---------------------------------------- ================================================================================ Problema con input audio. ================================================================================ AUTORE: 2014 DATA :20/04/2007 - 02:15:36 ---------------------------------------- Salve a tutti, mi sono appena iscritto e colgo l'occasione per salutare tutto il forum e complimentarmi per l'iniziativa! Sono uno studente di Informatica e in un corso di Acquisizione Dati sto iniziando a usare LabVIEW. Ho avuto la possibilità di trovarne una copia nella mia univeristà. La versione è 7.1 Express ed è per GNU/Linux. Sono riusicto a installarlo e ad utilizzarlo senza problemi su una Slackware 11 fino a che non ho dovuto usare i vi d'esempio presenti nella sezione Graphics & Audio/Audio. In particolare, in un esercizio era richiesto di applicare alcuni filtri su segnali campionati dal microfono e di salvare i risultati processati. I campioni vengono correttamente visualizzati se uso un grafico, ma come il campionamento termina labview va in crash. Riducendo al minimo i componenti per capire dove potesse essere il probema, ho potuto constatare che è sufficiente il vi che configuri la scheda audio per fare crashare labview. Non possiedo una copia per windows e onestamente vorrei evitare di "procurarmela" (ci siamo capiti...). Oltre che per personale preferenza verso GNU/Linux anche per questo sarei grato a chiunque fosse in grado di darmi una mano o indirizzarmi per risolvere il mio problema. ---------------------------------------- AUTORE: 645 DATA :20/04/2007 - 08:12:39 ---------------------------------------- Quando si verifica il crash LabView ti restituisce un codice di errore? ---------------------------------------- AUTORE: 2014 DATA :20/04/2007 - 11:51:29 ---------------------------------------- Ciao! Grazie per la pronta risposta! Allego un immagine di un vi di "test minimale" che fa crashare LV: [img:2es60r54]http://www.webalice.it/mcefala1/stuff/Uni/labview_crasher.png[/img:2es60r54] Sembrerebbe che vada tutto per il meglio giusto? Sembra che dagli errori ci siano solo delgi OK. Nell'immagine non si vede (è difficile fare uno screenshot col giusto timing! \":)\" si tratta di millisecondi!), ma anche "SI CLEAR" termina con stato "OK" e immediatamente dopo LV si chiude con messaggio sulla shell "Abortito". Ho provato a togliere i subvi a partire da "SI CLEAR" fino a lasciare solo "SI CONFIG", ma anche in questo scenario sembra andare tutto normalmente per poi crashare... . Preciso che se se passo l'uscita di "SI READ" ad un grafico, viene visualizzato correttamente (anche in messo in un while non ci sono problemi). Il problema si presenta proprio quando termina l'esecuzione. Qualche idea? Grazie di nuovo per l'attenzione, Ciao! ---------------------------------------- AUTORE: 2014 DATA :20/04/2007 - 14:56:16 ---------------------------------------- Sono molto felice nel comunicare che il problema è risolto!! A questo link sono presenti le informazioni e la libreria (penso che sia una libreria, non ne so molto dell'architettura di lV) "lvsound.so" modificata che permettono di risolvere il problema: http://forums.ni.com/ni/board/message?b ... 96#M138696 E' quindi sufficiente sostituire il file lvsound.so, che nel mio caso si trova in /usr/local/lv70/resource/ ma penso sia piuttosto standard, con il file col medesimo nome scaricabile dal link di sopra. Spero che possa essere utile a qualcuno! ---------------------------------------- ================================================================================ costruzione di aray ================================================================================ AUTORE: 2016 DATA :20/04/2007 - 07:52:08 ---------------------------------------- Salve, sto utilizzando da poco labview (ver. 7) e non riesco a risolvere il seguente problema: 1. inizializzo un array di 8 elementi 2. in un ciclo for leggo da dispositivo elterno due dati (index e value) 3. inserisco il valore (value) nel vettore all'indice index 4. alla fine del ciclo visualizzo l'array modificato Il problema è nell'aggiornamento dell'array: la funzione Index Array che utilizzo per aggiornare il vettore non mi prende in ingresso l'array, se lo inizializzo fuori dal ciclo for. Spero di essere stato chiaro, cmq allego anche il programma array.vi e il codice fortran equivalente array.txt Grazie Lucio ---------------------------------------- AUTORE: 927 DATA :20/04/2007 - 08:06:47 ---------------------------------------- Devi cliccare col dx sul quadratino, dove l'array iniziale "entra" nel ciclo, e fare "disable indexing". Altrimenti lui spezza automaticamente l'array, e ad ogni giro del ciclo fa passare solo un elemento ---------------------------------------- AUTORE: 645 DATA :20/04/2007 - 08:23:06 ---------------------------------------- Nel tuo VI clicca con il tasto destro sul quadratino che si forma dove l'array entra nel ciclo e seleziona "Disable indexing": in questo modo nel ciclo entra l'intero vettore e puoi lavorare con il blocco di inserimento dati. Credo sia sufficiente questa cosa... ---------------------------------------- AUTORE: 927 DATA :20/04/2007 - 08:24:53 ---------------------------------------- ahem... \":lol:\" ---------------------------------------- AUTORE: 645 DATA :20/04/2007 - 08:34:02 ---------------------------------------- Ooppss... scusa Snam, abbiamo scritto in contemporanea... anche con le stesse parole... uao!!! \":o\" \":oops:\" ---------------------------------------- AUTORE: 2016 DATA :20/04/2007 - 08:39:49 ---------------------------------------- Grazie, in effetti ora il mio array va nell'Index Array, ma ancora non fa quello che voglio, nel senso che ad ogni ciclo l'array viene aggiornato, ma si perde l'informazione del ciclo precedente: N=2 primo ciclo: index = 2, value = 12 array: 4095 4095 12 4095 4095 4095 4095 4095 secondo ciclo: index=0, value = 5 array: 5 4095 4095 4095 4095 4095 4095 4095 invece di array 5 4095 12 4095 4095 4095 4095 4095 Lucio ---------------------------------------- AUTORE: 927 DATA :20/04/2007 - 08:42:32 ---------------------------------------- Hai, ragione, siamo stati precipitosi (tutti e 2 \":lol:\" ) devi sostituire il quadratino con uno Shift Register per mantenere il valore da un ciclo all'altro (sempre clic col dx...) ---------------------------------------- AUTORE: 2016 DATA :20/04/2007 - 09:09:26 ---------------------------------------- grazie mille ora funziona! Lucio ---------------------------------------- ================================================================================ sinottico ================================================================================ AUTORE: 2018 DATA :20/04/2007 - 09:31:23 ---------------------------------------- Ciao a tutti, ho fatto un programma con visa in LV8.0 interrogando uno slave con protocollo proprietario, ho letto e manipolato la stringa di risposta ottennendo correttamente 20 letture di variabili a 32 bit (che sono in formato numerico analogico), e 2 variabili che devo gestire a singoli bit che mi devono accendere o spegnere dei led a seconda se il bit è 0 o 1, per le analogiche tutto ok e le visualizzo correttemente, per i digitali mi sono bloccato: come faccio ad associare ogni singolo bit della variabile a 32 bit a elementi led diversi? qual'è il blocchetto di conversione o filtro? se questo sinottico lo volessi mettere in una pagina diversa ma lasciare il codice nel Block diagram attuale come posso fare? Grazie di cuore Giuliano ---------------------------------------- AUTORE: 247 DATA :20/04/2007 - 12:10:01 ---------------------------------------- Ciao, [quote:1n2j3ebk]come faccio ad associare ogni singolo bit della variabile a 32 bit a elementi led diversi?[/quote:1n2j3ebk] paletta Numeric->Conversion->Number to Boolean Array. [quote:1n2j3ebk]se questo sinottico lo volessi mettere in una pagina diversa ma lasciare il codice nel Block diagram attuale come posso fare? [/quote:1n2j3ebk] non capisco molto cosa vuoi fare... BYE. ---------------------------------------- AUTORE: 2018 DATA :20/04/2007 - 14:01:43 ---------------------------------------- Ciao Apollon, e grazie della risposta, ho inserito il "number to bolean array" ma dovrei scomporre l'array per poterlo collegare ai led che blocco ci va di mezzo? per la seconda richiesta cerco di spiegarmi meglio: vorrei creare due o più videate richiamabili dalla principale visto che non ci stanno tutte le variabili come vorrei (es: prima pag. generale, 2° pag sinottico, e 3° pag configurazione della seriale); mi hanno suggerito una sub VI ma ho notato che diventano più file distinti che non so come collegare visto che la parte di richiesta e scrittura visa è presente nell'attuale blocco principale. ho notato che in teoria lo spazio a disposizione sulla parte grafica va anche oltre lo schermo del PC, ma quando creerò l'eseguibile per il cliente riesco a suddividere queste pagine e richiamarle con dei tasti? Grazie infinite Giuliano ---------------------------------------- AUTORE: 1597 DATA :20/04/2007 - 14:44:42 ---------------------------------------- puoi utilizzare un tab control ---------------------------------------- AUTORE: 2018 DATA :25/04/2007 - 14:23:01 ---------------------------------------- grazie Aldik, ce l'ho fatta e funziona molto bene alla prossima! \":D\" ---------------------------------------- ================================================================================ errore in property node ================================================================================ AUTORE: 2021 DATA :20/04/2007 - 17:14:17 ---------------------------------------- Salve a tutti. E' la prima volta che scrivo in questo forum. Ho provato a cercare nel sito ma a quel che ho visto l'argomento non è stato ancora trattato. Forse perchè è troppo semplice \":-)\" Non capisco il motivo per cui non è possibile leggere (o scrivere) il valore della proprietà caption.FGcolor (e di tutte quelle simili) in un semplice indicatore numerico. L'errore che viene segnalato è il 1320 e questo è il relativo messaggio: ***** Error 1320 occurred at Property Node (arg1) in Property node 1.vi Possible reason(s): LABVIEW: In edit mode, LabVIEW cannot return a property for a control part that you have not yet created ***** Da notare che l'errore viene dato unicamente quando tento di leggere le proprietà, non per la semplice esistenza del property node, come si vede nell'esempio che allego. Grazie per l'attenzione. John ---------------------------------------- AUTORE: 129 DATA :21/04/2007 - 06:49:22 ---------------------------------------- Smplicemente, perchè di default, ti viene visualizzata e quindi caricata la label e non la caption. Prova a fare tasto destro visible caption e quindi lanci il vi vedrai che non tio restituisce l'errore. Quindi o usi le label come default di labview oppure devi prima visualizzare la caption per ogni controllo in cui vuoi modificarla. Ciao ---------------------------------------- AUTORE: 2021 DATA :21/04/2007 - 12:04:38 ---------------------------------------- Grazie mille. In effetti per me la caption era il contenuto del visualizzatore, e non un'altro tipo di etichetta (reminescenze di visual basic e simili). Ora ho risolto con i campi NumText.TextColor e limitrofi. Alla prossima. (Spero meno scema) John ---------------------------------------- ================================================================================ Problema listbox ================================================================================ AUTORE: 1876 DATA :23/04/2007 - 09:14:06 ---------------------------------------- Ciao a tutti, probabilmente per voi sarà una cavolata a io ho un problema con l'oggetto "listbox". Il problema principale è che vorrei utilizzarlo come indicatore per visualizzare una lista di stringhe che ottengo da un ciclo while (nel quale acquisisco dei dati da seriale) ma l'oggetto listbox mi permette solo di inserire valori numerici... e poi vorrei chiedervi anche come posso inserire un nuovo elemento in essa ad ogni iterazione del ciclo while... Grazie! Ciao! ---------------------------------------- AUTORE: 645 DATA :23/04/2007 - 21:32:23 ---------------------------------------- Prova così... Al posto del vettore costante hai le tue stringhe. Per inserire nuovi elementi leggi il Property Node, aggiungi la nuova stringa con la funzione Build Array e inserisci il risultato nello stesso Property Node (questa volta dovrai settare l'opzione su Write... tasto destro sul nodo e scegli Write). ---------------------------------------- AUTORE: 1876 DATA :24/04/2007 - 09:03:12 ---------------------------------------- Ok per l'inserimento di una stringa nella listbox ho capito, ma ho sempre il problema del ciclo; cioè io ho un ciclo che ad ogni iterazione produce una stringa, io vorrei inserire ogni stringa nella listbox, in modo da creare praticamente un elenco. Spero di essermi spiegato decentemente. Grazie, ciao. ---------------------------------------- AUTORE: 645 DATA :24/04/2007 - 09:14:04 ---------------------------------------- Guarda l'immagine: al posto della costante nuovo elemento devi inserire la tua nuova stringa... Oppure puoi sfruttare uno shift register per leggere tutte le stringhe e solo alla fine del ciclo inserire tutto il pacchetto nella ListBox (tramite lo stesso Property Node). ---------------------------------------- ================================================================================ cluster dinamici ================================================================================ AUTORE: 1779 DATA :23/04/2007 - 09:18:12 ---------------------------------------- Buongiorno a tutti, volevo chiedervi se in LabVIEW è possibile gestire cluster in modo dinamico.Mi spiego meglio avrei la necessità di utilizzare dei cluster ma vorrei che la loro struttra non fosse definita a priori ma cambiasse di volta in volta! Vi ringrazio anticipatamente per la vostra disponibilità! Gianluca ---------------------------------------- AUTORE: 927 DATA :24/04/2007 - 08:57:10 ---------------------------------------- Non mi risulta sia possibile, ma credo che quello che stai cercando sia una Variant. Le variant sono variabili che possono contenere "qualunque cosa", col blocchetto "To variant" trasformi qualunque cosa in variant, poi con "Variant to data" lo ritrasformi in dati normali (ma devi sapere prima in cosa lo vuoi ritrasformare) ---------------------------------------- AUTORE: 1779 DATA :24/04/2007 - 11:22:02 ---------------------------------------- Ti ringrazio per la risposta, in effetti immaginavo che i cluster dovessero avere una struttura fissa, comunque darò un' occhiata ai variant per vedere se mi possono far comodo. Gianluca ---------------------------------------- ================================================================================ Separare Frequenze! ================================================================================ AUTORE: 2022 DATA :23/04/2007 - 10:17:54 ---------------------------------------- Ciao a tutti, ho iniziato da poco ad utilizzare labview e all univeristà ci hanno dato un esercizio in cui dovremmo eliminare tutti i disturbi da un file .wav cioè si deve sentire soltanto la voce e nient altro: Qualcuno di voi mi puo dare una mano per favore?? magari anche solo un imput per poi iniziare. Grazie a tutti in anticipo. ciauuuu ---------------------------------------- AUTORE: 1165 DATA :23/04/2007 - 14:27:48 ---------------------------------------- Secondo me la tua domanda non può avere una risposta magica "risolvitutto". Scusa ma in particolare se non precisi cosa conosci di labview e sopratutto quale è il tuo bagaglio di conoscenze nel campo della teoria dei segnali è un po' difficile e sicuramente azzardato darti risposte ad inzecco. Provo comunque a darti una risposta presupponendo che tu abbia almeno i concetti di base dell'analisi armonica dei segnali, cioè che tu abbia almeno il concetto di base che un segnale (nel tuo caso vocale, ma vale per tutti i segnali) è composto dalla somma di tante frequenze componenti e che la scomposizione di un segnale nelle sue componenti frequenziali porta ad un grafico (ampiezza in ordinata e frequenza in ascissa) detto Spettro di Potenza delle frequenze componenti (in patica è il grafico a barre che vedi negli equalizzatori grafici). Ora, è noto che il campo udibile dall'orecchio umano va in teoria da circa 20 Hz a circa 20.000 Hz (beato chi li sente per davvero!). Ma la voce ha un range di frequenze molto più stretto (e qui chiedi a qualcun altro nel forum che sicuramente ne sanno molte più di me). Per tuo riferimento di dico solo che il sistema telefonico in genere lascia passare solo frequenze tra 300 Hz e 3.400 Hz, dove si suppone che siano concentrate maggiormente le frequenze del parlato. Quindi quello che tu puoi fare è di elaborare il tuo segnale audio tenendo per te le frequenze tra una F1 e una F2 (con F1>F2) dove pensi che si possa concentrare la tua voce e buttare via tutte le altre. Questa operazione si chiama filtraggio passabanda e quindi in labview tu devi far passare il tuo segnale dentro un filtro passabanda. Con ciò elimini (o meglio riduci drasticamente) tutte le frequenze per te inutili (che contengono solo musica o rumori di fondo, ma non voce). Per eliminare i suoni non desiderati entro la tua banda passante (quella tra F1 e F2) è molto più complesso ed entriamo nel regno dei filtri matchati tipo Dolby. Questo aspetto fossi in te lo trascurerei per ora, almeno che qualcuno non ti fornisca già bell'e pronto un filtro matchato per la voce, ma io non ho idea di dove trovarlo. Non so se con questo di ho potuto dare un po' di aiuto e se era questo che cercavi. Se serve altro chiedi. Ciao, enr. ---------------------------------------- AUTORE: 1165 DATA :23/04/2007 - 14:30:25 ---------------------------------------- sorry .. orrore di battitura .. ovviamente nel messaggio sopra era F1<F2 ---------------------------------------- AUTORE: 2022 DATA :23/04/2007 - 16:19:13 ---------------------------------------- ti ringrazio molto per la tua risposta.... di labview conosco veramente poco e in giro nn ho trovato un manuale che mi spiegasse a fondo come funziona! io per quanto riguarda la teoria ci capisco abbastanza bene(nn sono un genio \":)\" ) cerco di fare come mi hai detto te e imposto il filtro passa basso nel range che mi hai consigliato. grazie di tutto... se avro dei problemi ti ricontatto... ciao ciao e grazie ancora ---------------------------------------- AUTORE: 1165 DATA :23/04/2007 - 17:43:32 ---------------------------------------- Aspetta, io ho detto passabanda, non passabasso, è molto differente. Tu devi trovare, anche e sopratutto per tentativi, le due frequenze F1 e F2 in modo da individuare la banda F1-F2 dentro la quale far passare il segnale (passabanda) e fuori della quale buttarlo via. In pratica un filtro passabanda è la somma di un filtro passabasso (che butta via tutte le frequenze sopra F2) e di un filtro passaalto (che butta via tutte le frequenze sotto F1), in modo da lasciar passare solo le frequenze fra F1 e F2. Spero tu ci abbia capito qualcosa, altrimenti il tuo compito è veramente impossibile. In quanto alle fonti su cui imparare qualcosa sul labview ti suggerisco gli ottmi manuali in inglese della Nationa Instruments (ma spesso le versioni tradotte in italiano, veramente poche, sono anche mal tradotte). Se non ti spaventa l'inglese, il testo "Labview Graphical Programming" di Gary Johnosn è veramente illuminante, ma non di base, richiede che tu già un po' lo conosca. In alternativa guarda i molti articoli che puoi scaricare da questo forum, spesso veramente ben fatti. In ultimo (e solo in ultimo) un piccolissimo aiuto se parti proprio da zero lo puoi trovare nel testo in italiano di cui trovi riferimenti qui in questo forum al link: viewtopic.php?p=12301#12301 Ciao, enr. ---------------------------------------- AUTORE: 2022 DATA :23/04/2007 - 21:14:59 ---------------------------------------- grazie ancora... faro come dici te!!! ti saluto ciao ciao ---------------------------------------- ================================================================================ Leggere un file su web con LV ================================================================================ AUTORE: 1522 DATA :23/04/2007 - 11:11:02 ---------------------------------------- Ciao devo leggere un file di testo che è collocato ad un indirizzo web. qualcuno sa come fare? Grazie ---------------------------------------- AUTORE: 645 DATA :23/04/2007 - 21:33:36 ---------------------------------------- Forse tramite comunicazione FTP o TCP-IP... ma non saprei come procedere. Hai cercato qualcosa sul sito della National? ---------------------------------------- AUTORE: 129 DATA :24/04/2007 - 15:53:57 ---------------------------------------- Se usi i datasocket read , puoi direttamente inserire l'url della pagina, ottieni su una stringa l'intero contenuto. ---------------------------------------- ================================================================================ Salvare grafico in JPEG ================================================================================ AUTORE: 384 DATA :23/04/2007 - 13:50:41 ---------------------------------------- Questa [url=http://www.ilvg.it/forum/viewtopic.php?p=13119#13119:gnuu0cip]domanda[/url:gnuu0cip] è sorta all'interno di un altro [url=http://www.ilvg.it/forum/viewtopic.php?t=2986&start=0&postdays=0&postorder=asc&highlight=:gnuu0cip][i:gnuu0cip]topic[/i:gnuu0cip][/url:gnuu0cip] relativo al GPIB. Se qualcuno è arrivato a questo post cercando di risolvere lo stesso problema può leggere [url=http://www.ilvg.it/forum/viewtopic.php?p=13120#13120:gnuu0cip]qui[/url:gnuu0cip]. ---------------------------------------- ================================================================================ conversione di un file di testo .txt in immagine .png ================================================================================ AUTORE: 1839 DATA :23/04/2007 - 14:37:05 ---------------------------------------- salve ragazzi qualcuno potrebbe aiutarmi a risolvere il seguente problema?? ho un file di testo di 768 righe e 1024 colonne in cui risiedono dei numeri interi separati dal carattere di tabulazione \t.; e ogni riga termina col carattere \ di nuova riga.. Avrei bisogno di convertire il suddetto file di testo in un immagine di tipo .png... ---------------------------------------- AUTORE: 482 DATA :23/04/2007 - 14:41:10 ---------------------------------------- Bh..cosi' d'istinto mi verrebbe d adirti di estrapolare il testo che ti interessa, metterlo in un indicatore di tipo stringa e poi generare l'immagine dell'indicatore. ---------------------------------------- AUTORE: 927 DATA :24/04/2007 - 08:27:05 ---------------------------------------- Infatti credo che il modo + sbrigativo sia l'indicatore stringa, poi col tasto dx crea un Invoke node "Get image", infine salvi su file con "Write PNG file". Altrimenti per fare una cosa con tutti i crismi si usa un controllo Picture e le funzioni di Graphic & sound -> Picture functions, lì puoi disegnare di tutto ("Draw text" in questo caso), poi salvi con "Picture to pixmap" e "Write PNG file" ---------------------------------------- AUTORE: 384 DATA :24/04/2007 - 09:49:21 ---------------------------------------- Ragazzi, o ho capito male io oppure stiamo complicando ciò che è semplice. Mi sembra che il file testo contenga un'imagine pixel per pixel. Quindi, basta leggerla dal file con "Read From SpreadSheet File", convertirla con "Flaten Pixmap" e scriverla con "Write JPEG File". ---------------------------------------- AUTORE: 1839 DATA :25/04/2007 - 15:49:38 ---------------------------------------- Prima d'ogni cosa grazie a tutti... Vista la mia ignoranza ho preferito seguire il consiglio di gyc, che mi sembrava il + semplice... Nonostante ciò, ho riscontrato dei problemi con "flatten pixmax" (non riesco ad effettuarne il collegamento, c'è qualcosa che non va)... Cmq mi sono dimenticato di specificare il fatto che il file di testo contiene informazioni float riguardanti un unico canale a 16 bit, e smanettando sulla guida del flatten pixmax mi è sembrato di capire che accetta array di 24,8,4,1 bit.. Gyc, non è che potresti allegarmi il vi che mi avevi consigliato ?? ---------------------------------------- AUTORE: 927 DATA :26/04/2007 - 08:29:49 ---------------------------------------- In effetti non era chiaro, io e Geppo avevamo capito che volevi un'immagine con il disegno dei numeri! Cmq non dovresti avere problemi, il Read Spreadsheet ti dà un array di float che puoi passare direttamente all'ingresso 24-bit pixmap, la conversione la fa lui. Naturalmente userà solo 16 dei 24 bit, quindi presumo che ad esempio mancherà il blu; ti serve una rappresentazione in particolare dei colori? C'è una "palette"? ---------------------------------------- AUTORE: 1839 DATA :26/04/2007 - 16:50:41 ---------------------------------------- \":lol:\" alla fine fono riuscito a risolvere il problema: ho passato il file txt a "Read From Spreadsheet file" , ho collegato l'uscita ad un array 2D, quest'ultimo l'ho messo in input per "IMAQ arrayTo Image", infine ho collegato l'output su "IMAQ write png".. Il vi funziona perfettamente e crea un immagine proprio come me l'aspettavo... Ringrazio tutti, per l'interesse e per avermi aiutato... ---------------------------------------- ================================================================================ Retroazione automatica tramite l'uso di FC ================================================================================ AUTORE: 2012 DATA :23/04/2007 - 14:41:31 ---------------------------------------- durante la costruzione al LabVIEW di un modello che sostituisca una stampante di card, sono incappato nei seguenti problemi: - Il funzionamento di più motori (subVI) in contemporanea; - L’uscita dei segnali dai subVI Per rendere il programma il più semplice da modificare, ho creato dei subVI rappresentanti dei motori o dei veri e propri processi; tutti i subVI hanno in ingresso un Boolean T/F, ed in uscita un boolean T/F che accende una FC ed un visualizzatore del tempo. Le subVI funzionano correttamente; tutte insieme danno qualche problema. Il sistema è dotato di un n-for per decidere il numero di carte da simulare; il problema è riuscir a far girare il subVI carico (e quindi successivamente il subVI Encoding) quando subVI embossing ha iniziato a girare. Grazie mille per l'aiuto, l'esercizio non è a scopo di lucro, fà parte di un esame... ---------------------------------------- AUTORE: 927 DATA :24/04/2007 - 08:45:00 ---------------------------------------- Non ho capito il tuo obiettivo finale, ma una cosa è certa: se Embossing deve girare in parallelo a Encoding, non puoi collegarli con un filo. Devono essere scollegati, e per passarsi il valore usare una variabile locale o globale. ---------------------------------------- AUTORE: 2012 DATA :24/04/2007 - 10:31:49 ---------------------------------------- L'obiettivo finale è quello di ottenere il parallelismo tra il carico e l'embossing dato un certo numero di carte; adesso provo con la variabile locale Grazie mille per l'interessamento; Hai per caso dato un'occhiata alle subVI? Come ti sembravano? ---------------------------------------- ================================================================================ Interfaccia Protocollo HART ================================================================================ AUTORE: 1313 DATA :24/04/2007 - 10:21:39 ---------------------------------------- Salve Ragazzi, qualcuno di voi si è mai interfacciato ad uno strumento che implementa il protocoollo Hart. Qualsiasi informazione mi è utile, Grazie in antichipo , Cris ---------------------------------------- ================================================================================ dll che lavorano in parallelo ================================================================================ AUTORE: 1612 DATA :24/04/2007 - 13:39:56 ---------------------------------------- ciao a tutti, ho la necessità di gestire una scrittura/lettura da seriale. Ho creato una dll in modo da passare a questa i parametri da inviare. Questa mi gestisce il protocollo di trasmissione/ricezione. La domanda è: E' possibile richiamare la dll per la com1, non aspettare il risultato di questa e richiamare la dll (la stessa della com1) in parallelo? Il fine di tutto questo è poter fare 2 scritture nel tempo di 1. Premetto che la dll sequenzialmente funziona senza problemi. Grazie a chi vorrà rispondere. ---------------------------------------- AUTORE: 247 DATA :24/04/2007 - 18:00:49 ---------------------------------------- Ciao, se usi LabVIEW successivo al 6.0.x puoi parallelizzare senza problemi a patto, come nel tuo caso purtroppo, di non utilizzare risose hardware che possono essere utilizzate solo in serie...dato che utilizzi la seriale non puoi parallelizzare. Puoi risolvere un problema creando un server di gestione chiamate alla seriale che gestisce le varie richieste. BYE. ---------------------------------------- AUTORE: 1612 DATA :24/04/2007 - 18:04:24 ---------------------------------------- Ciao, non l'ho fatto! Questo cosa provoca? che chiamo la dll e mentre lei lavora posso fare altro? A questo punto se così fosse potrei richiamare l'altra e impostare poi un ritardo per aspettare il ritorno di entrambe? Grazie!! ---------------------------------------- AUTORE: 247 DATA :24/04/2007 - 18:07:42 ---------------------------------------- Ciao, scusa , ho modificato il post di prima perchè leggendo alla svelta non avevo visto che utilizzavi la seriale. La risposta sopra è quella corretta...baco dei moderatori che possono cambiare i propri messaggi a ritroso..\";-)\" BYE. ---------------------------------------- AUTORE: 1612 DATA :24/04/2007 - 18:11:31 ---------------------------------------- Riciao e rigrazie, io utilizzo la seriale ma in realtà vado a scrivere su 2 seriali distinte COM1 COM2. Il baudrate è a 2400, non riescoa gestirlo quindi in parallelo? ---------------------------------------- AUTORE: 247 DATA :24/04/2007 - 18:18:41 ---------------------------------------- Ciao, beh, se le seriali sono due dovresti riuscirci settando la dll come rientrante come ti dicevo prima..sempre che le due seriali non siano convertitori USB->RS232 con un'unico driver! \";-)\" BYE. ---------------------------------------- AUTORE: 1612 DATA :24/04/2007 - 18:22:17 ---------------------------------------- sono seriali "pure" quindi giovedì appena riesco a mettere mano sulla strumentazione provo... Ti saprò dire... Intanto molte grazie per avermi risposto!!! ---------------------------------------- AUTORE: 1612 DATA :26/04/2007 - 07:38:15 ---------------------------------------- GRANDE!!!! Funziona splendidamente!!! Grazie dell'aiuto! ---------------------------------------- ================================================================================ Comunicazione fra Labview e un Database (Da Labview World) ================================================================================ AUTORE: 1319 DATA :24/04/2007 - 14:35:59 ---------------------------------------- Ciao a tutti Mi stavo leggendo il primo numero di Labview World e sono arrivato al capitolo citato nell'oggetto di questo post. Ho provato a cimentarmi con l'esercizio proposto, ho scaricato e installato credo tutti i componenti di MySQL citati e stavo giusto iniziando il mio VI. Tuttavia mi sono bloccato... A pagina 13 si dice 'La comunicazione con un database avviene per fasi successive; si inizia avviando il collegamento con la libreria ADODB._connection'... E dove la trovo questa benedetta libreria? Ho messo nel mio block diagram il blocco 'automation open', nel suo 'Automation Refnum' input ho creato, cliccandoci di dx, una costante. Cliccando di dx su questa costante ho selezionato la voce 'select activeX class' e da qui mi si apre una finestra, in questa ho cercato, nel campo a tendina 'Type library', la libreria suddetta ma non l'ho trovata... Almeno non con il nome suddetto... Innanzitutto i miei passi sono corretti? Come faccio a trovare e ad usare nel mio block diagram questa libreria? Ogni suggerimento sarà apprezzatissimo!!! p.s. Allego una foto del menu a tendina in questione dove dovrei scegliere la libreria (almeno io credo...). Vedete la libreria che devo selezionare per il mio VI o sono completamente fuori strada? ---------------------------------------- AUTORE: 1319 DATA :24/04/2007 - 14:42:42 ---------------------------------------- Ciao a tutti Ehm... non sono riuscito ad allegare la foto .png che avevo in mente... Ma come si fa??? \":o\" Ho provato a riempire i due campi nella sezione 'Aggiungi un Allegato' ma niente... Inoltre è possibile editare i propri messaggi anche se già postati? Comunque la foto che volevo mostrarvi la trovate al seguente indirizzo: http://www.superimagehosting.com/viewer ... 21965c.png ---------------------------------------- AUTORE: 645 DATA :26/04/2007 - 09:57:53 ---------------------------------------- Guardando la tua immagine: scegli "Microsoft ActiveX Data Objects Library" nella versione che vuoi (tanto vale provare con l'ultima, 2.\"8)\". Nella finestra successiva vedrai alcuni metodi utilizzabili: tra questi c'è il metodo _Connection. Se dovessi riscontrare problemi nella comunicazione con il database puoi provare a cambiare versione utilizzata. ---------------------------------------- AUTORE: 384 DATA :27/04/2007 - 08:14:26 ---------------------------------------- Perchè non usi la libreria [url=http://www.jeffreytravis.com/lost/labsql.html:3v0mmsze]LabSQL[/url:3v0mmsze] di [url=http://www.jeffreytravis.com/:3v0mmsze]Jeff Travis[/url:3v0mmsze], che tra l'altro è gratuita? ---------------------------------------- ================================================================================ problema con le cifre decimali ================================================================================ AUTORE: 2029 DATA :25/04/2007 - 07:16:06 ---------------------------------------- Salve, ho un problema, sto simulando il comportamento di un convertitore dual slope, nella traccia è espressamente chiesto di utilizzare un control che permetta di inserire valori compresi tra 0 e 1.999. Come control sto utilizzando un "digital control" come rappresentazione ho lasciato quella di default, cioè la doppia precisione, nella tendina "format&precision", ho impostato il valore 3 come digits of precision e per il formato ho lasciato decimale. Quando utilizzo la tendina data range nonostante io imposti come valori massimi e minimi 0,000 e 1,999, il programma automaticamente me li setta a 0,00 e 2,00, mentre l'incremento me lo lascia con tre cifre decimali. Il problema è che nel momento in cui vado ad inserire un input con tre cifre decimali automaticamente mi viene approssimato a due cifre decimali. tipo 1,999 me lo legge come 2,00; 1,991 me lo legge come 1,99. Utilizzo Labview 6 student edition. Grazie. ---------------------------------------- AUTORE: 1165 DATA :25/04/2007 - 07:40:27 ---------------------------------------- prova ad inserire 4 digits of precision ---------------------------------------- AUTORE: 2029 DATA :25/04/2007 - 07:45:06 ---------------------------------------- fatto...purtroppo non cambia nulla, sono arrivato fino a 10 come digits of precision, ma non sortisce effetto. ---------------------------------------- AUTORE: 680 DATA :25/04/2007 - 09:30:19 ---------------------------------------- prova impostare su "format e precision": floating point 3 digits of precision togli la spunta su hide trailing zeros per far visualizzare gli zeri ciao... ---------------------------------------- AUTORE: 2029 DATA :25/04/2007 - 09:35:15 ---------------------------------------- purtroppo nella versione di labview che utilizzo, la 6i student edition non c'è la spunta hide trailing zeros. ---------------------------------------- ================================================================================ valori negativi e decimali ================================================================================ AUTORE: 2018 DATA :25/04/2007 - 14:38:28 ---------------------------------------- ciao a tutti, ho bisogno di un aiutino. Ho appena debuggato un programma che pensavo andasse bene, quando sono stato sul campo e con numeri un po' meno prevedibili è successo un problema. Uno dei valori analogici a 32bit che leggo dalla stringa convertita in decimale (Hex string to Number), la devo dividere per 1000 per visualizzarla correttamente, ma alla fine del calcolo mi arrotonda l'ultima significativa e non riporta il decimale (esempio ho 891 e deve diventare 0.891, invece leggo 1,000, se ho 123 diventa 0,000). Se poi il valore passa a negativo (es: valore da visualizzare -0.001) ecco che vedo il fondo scala con un numeraccio, avete qualche consiglio? Grazie Giuliano ---------------------------------------- AUTORE: 927 DATA :26/04/2007 - 08:36:48 ---------------------------------------- Stai per caso usando il blocchetto quadrato per fare la divisione (Quotient & Remainder)? ---------------------------------------- AUTORE: 2018 DATA :26/04/2007 - 09:10:24 ---------------------------------------- no sto usando il blocchetto triangolare "divide" ; nel frattempo ho risolto il problema delle cifre decimali usando un "double precision", ma mi rimane quello dei negativi Grazie ---------------------------------------- AUTORE: 645 DATA :26/04/2007 - 10:06:47 ---------------------------------------- Può tornarti utile? http://digital.ni.com/public.nsf/allkb/ ... CC00736246 ... magari da usare come passaggio intermedio tra la conversione da esadecimale a numerico... Non so se risolva ma magari... ---------------------------------------- AUTORE: 2018 DATA :26/04/2007 - 16:13:08 ---------------------------------------- no non molto purtroppo, però ho capito come poter visualizzare il valore assoluto negativo facendo una differenza tra la stringa letta convertita in decimale e la corrispondente (tutti F+1), faccio la sottrazione dei due valori e ottengo il valore corretto, va tutto bene tranne quando il valore però passa positivo, a questo punto dovrei distinguere in questo modo, se la primo carattere è F (nel mio caso significa che sono in campo negativo) eseguo il calcolo sopra, se invece è 0 (valore positivo) non eseguo nessun calcolo e copio il valore sull'indicatore, come si fa? un case structure? conoscete un esempio? Grazie ---------------------------------------- AUTORE: 645 DATA :26/04/2007 - 17:14:05 ---------------------------------------- Con i blocchi per lavorare sugli array isoli la prima lettera della stringa e con il suo valore entri in un Case e a seconda del valore fai le azioni che ti servono. ---------------------------------------- AUTORE: 2018 DATA :26/04/2007 - 17:47:30 ---------------------------------------- a furia di sbatterci la testa ci dovrei essere riuscito da solo (con somma soddisfazione) prova a dargli un occhio, se ok penso che sia utile a molti ciao grazie ps l'esempio funziona con variabili a 32bit ---------------------------------------- AUTORE: 113 DATA :27/04/2007 - 08:31:17 ---------------------------------------- Una cosa: la funzione Hexadecimal string to number converte una stringa Hex in un numero con formato [U32] senza segno. Per ottenere il segno devi convertirlo in [I32]. Collega quindi all'uscita del blocco di conversione il blocco To Long Integer che trovi nella palette Numeric-Conversion. Ciao, Alberto ---------------------------------------- AUTORE: 2018 DATA :27/04/2007 - 10:13:22 ---------------------------------------- grazie della risposta Alberto, ho inserito il blocco come mi hai detto ma non mi sembra che cambia nulla se la stringa inizia con F appaiono numeri negativi se no sono positivi, è una cosa formale il tuo consiglio o non ho colto la differenza? Ciao Grazie ---------------------------------------- AUTORE: 927 DATA :27/04/2007 - 10:22:44 ---------------------------------------- E' indifferente, nel blocco di sottrazione usi i float (cavo arancione) quindi lui converte tutto in float. Ma visto che lavori con numeri interi, sarebbe meglio usare solo interi... ---------------------------------------- AUTORE: 2018 DATA :27/04/2007 - 10:40:35 ---------------------------------------- grazie mille, è che mi sto impratichendo pian piano e anche questi dettagli sono utili CIAO ---------------------------------------- AUTORE: 113 DATA :27/04/2007 - 11:00:59 ---------------------------------------- Scusa non mi ero spiegato... Quello che intendevo è questo: [/img] ---------------------------------------- AUTORE: 2018 DATA :27/04/2007 - 13:16:41 ---------------------------------------- AZZ, questo semplifica molto il tutto ti ringrazio molto ciaooo ---------------------------------------- ================================================================================ HELP conversione file *vi dalla versione 7.1 alla 7 ================================================================================ AUTORE: 2031 DATA :25/04/2007 - 23:15:28 ---------------------------------------- Salve, ho un file di acquizione dati da file e simulazione che non riesco ad utilizzzare e sarei grato a chiunque mi potesse aiutare. E' un file salvato nel mio laboratorio cn labview 7.1 ma nella mia workstation ho la versione precedente e non riesco ad utilizzarlo.Mi potreste convertire il file affinchè possa andar avanti cn il lavoro? Ringrazio antecipatamente,Marco. Contattatemi via msn nel caso abbiate la gentilezza d farlo. ---------------------------------------- AUTORE: 2031 DATA :26/04/2007 - 13:28:35 ---------------------------------------- Proprio nessuno?Mi serve semplicemente che qualcn mi salvi un file di labview 7.1 in uno leggibile con la versione 7.. ---------------------------------------- AUTORE: 1165 DATA :26/04/2007 - 13:48:28 ---------------------------------------- prova ad allegare il tuo VI, forse qualcuno povvederà .. ---------------------------------------- AUTORE: 1612 DATA :26/04/2007 - 15:02:24 ---------------------------------------- Ciao, ti ho girato una mail... spediscimelo che provvedo... ---------------------------------------- AUTORE: 2031 DATA :26/04/2007 - 22:53:12 ---------------------------------------- ok? ---------------------------------------- AUTORE: 1612 DATA :27/04/2007 - 06:37:19 ---------------------------------------- Eccoti servito... Non ho le librerie dello strumento quindi quelle non le ha convertite... Fammi sapere se hai problemi... Ciao ---------------------------------------- AUTORE: 2031 DATA :27/04/2007 - 18:23:21 ---------------------------------------- Perfetto...grazie mille..troppo gentile.. Se poi hai visto il sistema e hai qualche modifica da apportargli...ogni suggerimento è ben gradito..ciao ---------------------------------------- ================================================================================ interfaccia porta stampante con circuito integrato ================================================================================ AUTORE: 1669 DATA :26/04/2007 - 10:46:58 ---------------------------------------- Ciao a tutti Devo interfacciare Labview con un circuito integrato. Vorrei utilizzare come porta del pc, la porta stampante. A questa porta devo collegare un integrato. Potete dirmi per cortesia quale libreria/istruzione di Labview devo utilizzare per effettuare questo interfacciamento. Vi ringrazio in anticipo ---------------------------------------- AUTORE: 963 DATA :26/04/2007 - 11:15:58 ---------------------------------------- Ciao, per comunicare con la porta della stampante (es.LPT1) devi utilizzare i blocchetti Out Port.vi e In Port.vi utilizzando come ingresso l'indirizzo esadecimale della porta ( es. 378 per inviare e l'indirizzo 379 per leggere..). Può succedere che su alcuni PC non funzioni e che te debba scaricare dei driver da ni.com.. Dipende dalla versione che hai. ---------------------------------------- AUTORE: 1669 DATA :26/04/2007 - 11:22:58 ---------------------------------------- ciao la versione labview è 7.1 Devo collegare la porta (outpu dal pc) praticamente ai due piedini dell'integrato. Questo integrato l'ho gia saldato con il relè (normalmente aperto) Potete aiutarmi grazie ---------------------------------------- AUTORE: 963 DATA :02/05/2007 - 07:47:18 ---------------------------------------- Ciao, ti mando un esempio di scrittura su parallela.. se metti FFFF su "value" questo ti manderà 1 sui pin 2,3,4,5 di un connettore 25 PIN o comunque sui segnali D0,D1,D2,D3. Ciao, stefano ---------------------------------------- AUTORE: 1669 DATA :02/05/2007 - 08:44:55 ---------------------------------------- Ciao grazie per la risposta. Allora vediamo se ho capito bene Se io imposto FFFF il valore di default sarà uno, giusto ? Fammi sapere A presto ---------------------------------------- AUTORE: 1669 DATA :02/05/2007 - 08:59:33 ---------------------------------------- ciao ma è possibile impostare un default con un controllo Booleano ? Cioè io vorrei un controllo che mi fa partire il processo (quindi mi apre la valvola per far scendere il liquido da un serbatoio) successivamente dopo che il liquido raggiunge un certo livello definito da me, tramite un altro valore booleano, questo mi deve chiudere la valvola. Cioè è possonile impostare due controlli booleani sullo stesso vi della porta ? O devo mettere un controllo per l'accensione ed un altro per il limite ? Grazie di tutto A presto ---------------------------------------- AUTORE: 963 DATA :02/05/2007 - 10:32:52 ---------------------------------------- Ciao, ti invio un esempio di lettura da parallela molto simile a quello di scrittura. Nell'esempio ho quattro ingressi che te puoi utilizzarli per il livello liquido. Ciao ---------------------------------------- AUTORE: 680 DATA :03/05/2007 - 19:46:29 ---------------------------------------- questo argomento è gia stato trattato molte volte su questo forum.... prova a fare un ricerca.... in ogni caso ti consiglio questo topic: viewtopic.php?p=6739 ---------------------------------------- ================================================================================ Memorizzazione dato (tipo latch D) ================================================================================ AUTORE: 2032 DATA :26/04/2007 - 11:33:39 ---------------------------------------- Ciao a tutti, sono uno studente di ingegneria elettronica specialistica che sta lavorando con LabView 8.20 per la tesi. Sto diventando matto perchè non riesco a fare una cosa: memorizzare un dato. Per esempio: voglio fare un filtro passa basso con freuenza di taglio impostabile dall utente ogni qual volta egli lo voglia. Ho anche messo un valore di default. Il VI parte filtrando col valore di default (100) poi se l utente vuole cambiare f, schiaccia un pulsante che apre una finestra di dialogo, inserisce il nuovo valore e schiaccia ok. Questa operazione deve poterla fare ogni volta che vuole, ma deve restare memorizzato (latchato) il dato immesso finchè premendo l' ok della finestra non se ne inserisce un altro (il latch lascia passare il dato). Io invece non riesco a tenere il dato memorizzato, dopo un ciclo torno al valore di default.. Se qln mi aiuta mi fa un piacere, spiegandomi la soluzione del mio problema, o dandomi il VI stesso da scaricare per vederlo meglio, oppure spiegandomi come si fa in generale se si vuole tenere un nodo a un certo valore fino all'inserimento d uno nuovo. Grazie1000!!!! ---------------------------------------- AUTORE: 645 DATA :26/04/2007 - 12:55:04 ---------------------------------------- Puoi postare un'immagine del tuo Block Diagram? Così partiamo dal tuo schema per eventuali modifiche \":D\" ---------------------------------------- AUTORE: 2032 DATA :26/04/2007 - 13:35:56 ---------------------------------------- Ecco qua. Come programma è una stupidaggine, ma il problema che ho è generale. Grazie dell aiuto ---------------------------------------- AUTORE: 1165 DATA :26/04/2007 - 13:53:10 ---------------------------------------- Scusa ho pochissimo tempo e non riesco a guardare il tuo VI, ma così molto ad occhio mi sembra che il tuo problema si possa risolvere immediatamente (e molto elegantemente) con un ciclo while che contanga uno shift register non inizializzato. Devi creare, cioè, una Functional Varable, cerca in questo forum e vedrai che troverai più riferimenti, ciao ed in bocca al lupo. ---------------------------------------- AUTORE: 2032 DATA :26/04/2007 - 14:43:11 ---------------------------------------- Ciao e grazie dell indicazione. Spero tu possa avere un po più tempo, perchè ho prvato a darci un occhiata, anche all help di LabView, ma non capisco.. ---------------------------------------- AUTORE: 645 DATA :26/04/2007 - 15:31:36 ---------------------------------------- Puoi scegliere almeno due strade: la prima, già suggerita da Enr, consiste in uno Shift Register (però lo inizializzerei con due frequenze standard, magari zero e una frequenza classica...). Puoi cercare info su questo strumento sia nel forum che negli esempi di LabView (si tratta di una variabile che attraversa i cicli). Oppure puoi impostare due variabili locali (crei due controlli invisibili e lavori sulle rispettive variabili locali). In questo modo i valori delle frequenze inseriti rimangono in queste variabili e vengono usati nel ciclo. Cerca qualche info sulle variabili locali tra gli esempi di LabView o sul sito della National... oppure sul forum \":D\" ---------------------------------------- AUTORE: 2032 DATA :03/05/2007 - 16:52:26 ---------------------------------------- Perdonerete la mia scarsa intelligenza spero.. Ho avuto un po da fare, ma sono tornato sulla questione. Io ho provato a cercare sti shift register o ste variabili, esempi e manuale, ma non capisco. Se uno di voi due avesse il tempo di editare il mio vi risolvendo il problema che mi affligge, ve ne sarei davvero grato.. Sperando poi un giorno quando sarò più esperto di riuscire a dar una mano a qualcuno, ricambiando cosi il favore!!!!!!!!! Se anche non riusciste ad aiutarmi, vi ringrazio cmq, visto che coi post precedenti ci avete provato. \":D\" ---------------------------------------- AUTORE: 482 DATA :04/05/2007 - 07:32:09 ---------------------------------------- Se posti il VI anzichè l'immagine magari ci posso dare un occhio veloce. ---------------------------------------- AUTORE: 2032 DATA :04/05/2007 - 07:41:54 ---------------------------------------- Ma il VI c'è, è sotto l immagine.. Grazie, Andrea \":D\" ---------------------------------------- AUTORE: 482 DATA :04/05/2007 - 12:47:19 ---------------------------------------- Sorry, non l'avevo visto. Cmq...questa è la soluzione. Studiala e impara bene l'uso degli shift register perchè sono un mezzo indispensabile per poter programmare in labVIEW. \":wink:\" ---------------------------------------- AUTORE: 2032 DATA :04/05/2007 - 13:03:24 ---------------------------------------- OK!! Grazie tante ---------------------------------------- ================================================================================ come fare a ricostuire dati mancanti? ================================================================================ AUTORE: 2034 DATA :26/04/2007 - 12:58:03 ---------------------------------------- scusate ho iniziato da pochissimo a lavorare con labviw e ho subito un problema ho dei dati con dei buchi (dati di marker non visti da due telecamere contemporaneamenta) e vorrei cercare di interpolare i dati mancanti in modo da potrli poi visualizzare. Qualcuno può aiutarmi? ---------------------------------------- AUTORE: 384 DATA :27/04/2007 - 08:33:19 ---------------------------------------- Esistono delle funzioni per interpolazione in Imaq, ma in problematiche di visione ogni caso è un caso a sè e non esistono modelli "generali". Temo che dovrai tu trovare l'algoritmo giusto per ricostruire i dati che ti mancano. Ricorda soltanto che l'elaborazione di immagini NON aumenta la quantità di informazione - anzi, alla meglio non la diminuisce. Quindi, se i dati mancanti non li hai da qualche parte, a meno di inventarli, non potrai ricostruirli. ---------------------------------------- ================================================================================ Chiarimento Flat sequence ================================================================================ AUTORE: 1308 DATA :26/04/2007 - 14:46:00 ---------------------------------------- il miop obbiettivo è quello di comandare con una flat sequence una digital out, dovrebbe dovrebbe stre in uno stato per 5 sec e po invertire per 2 sec, sono un principiantissimo e quindi avrei bisogno di capire dove sto sbagliando. vi allego cio che ho costruito fino ad ora ma che non funziona.. \":D\" ---------------------------------------- AUTORE: 927 DATA :27/04/2007 - 09:20:07 ---------------------------------------- il DAQmx write dovresti metterlo dentro ogni fotogramma; attualmente lo scrive solo 1 volta all'inizio. Poi per i ritardi è meglio che usi Wait anzichè Wait until..., altrimenti potrebbe durare meno di 5 secondi (Wait until non aspetta a partire da "adesso", ma usa un'asse dei tempi unico) ---------------------------------------- AUTORE: 1308 DATA :02/05/2007 - 07:08:23 ---------------------------------------- grazie, anche questo suggerimento è ben accetto, ma il problema grosso è che nel primo frame tento di accendere il motore per 5 secondi e con il secondo dovrei tenerlo spento per x secondi, il problema è che il secondo frame non riesce a spegnerlo. la cosa curiosa è che il led del pulsante si illumina e si spegne ma la line out non cambia di stato. ---------------------------------------- AUTORE: 927 DATA :02/05/2007 - 08:22:07 ---------------------------------------- Ripeto: devi mettere il DAQmx Write dentro ogni fotogramma. Spegnere il led con la variabile locale non basta ---------------------------------------- AUTORE: 1308 DATA :02/05/2007 - 14:08:40 ---------------------------------------- scusa, non so come ma ho tralasciato la prima riga del tuo mess. appena posso provo e ti aggiorno. grazie ---------------------------------------- ================================================================================ IMAQ per labview 7.1 non compatibili con labview 8.2 ================================================================================ AUTORE: 1669 DATA :27/04/2007 - 07:15:41 ---------------------------------------- Ciao a tutti ho un problema con la libreria IMAQ Praticamente ho finito un progetto dove utilizzo diversi IMAQ (snap, search horizontal line ecc..) Questi IMAQ mi funzionano perfettamente sulla versione 7.1 di Labview ma dato che nel laboratorio dove devo far vedere il progetto hanno messo la versione 8.2 (sulla quale il mio progetto non riesce ad utlizzare IMAQ), vorrei sapere se è disponibile un aggiornamento per fare girare il mio progetto anche sotto la 8.2 Vi ringrazio in anticipo ---------------------------------------- AUTORE: 482 DATA :02/05/2007 - 07:32:57 ---------------------------------------- ..mmhh... IMAQ esiste in versione 8.2 pero' il tuo problema non mi torna perchè l'IMAQ è a se stante rispettoa labVIEW, quindi se hai la stessa versione di IMAQ non dovrebbe cambiare niente. Il mio consiglio principale è di provare a reinstallare la stessa versine di IMAQ che usi con labview 7.1 sulla macchina che usa labVIEW 8.2. ---------------------------------------- AUTORE: 1669 DATA :02/05/2007 - 08:30:39 ---------------------------------------- Si ho già provato ma non va Praticamente non riesce a trovare IMAQ Snap.VI che è quelle che mi serve per acquisire le immagini dala webcam usb. Fatemi sapere A presto ---------------------------------------- ================================================================================ DAQ ================================================================================ AUTORE: 1960 DATA :30/04/2007 - 14:23:13 ---------------------------------------- Ciao a tutti, io non dispongo di nessun hardware per acquisizione dati e non ho intenzione di acquistarne......pero' vorrei avere un simulatore di dati....che penso dovrebbe essere il software NI-DAQmx. Chi di voi sa dove lo posso trovare o come fare per scaricarlo gratuitamente? Io utilizzo la versione 8.2 di LabView, Student Edition Ciao Grazie ---------------------------------------- AUTORE: 645 DATA :30/04/2007 - 16:21:43 ---------------------------------------- Nel pacchetto DAQ-mx (dal 7.4 in avanti) trovi la possibilità di simulare schede di acquisizione... per sapere come fare guarda http://digital.ni.com/public.nsf/allkb/ ... CC006E25A2 . Puoi scaricare le DAQ-mx dal sito della National (www.ni.com) alla voce "Supporto --> Driver e aggiornamenti". ---------------------------------------- AUTORE: 1960 DATA :05/05/2007 - 09:07:03 ---------------------------------------- Perfetto Trovati, Grazie! ---------------------------------------- ================================================================================ Zip ================================================================================ AUTORE: 927 DATA :03/05/2007 - 11:09:48 ---------------------------------------- interessanti i VI per zippare di LV8, ma mi par di capire che non è possibile aggiungere file a uno zip già esistente, si può solo creare nuovo? ---------------------------------------- ================================================================================ comunicazione plc ================================================================================ AUTORE: 1637 DATA :03/05/2007 - 16:56:03 ---------------------------------------- ciao a tutti, sono nuovo del forum, sto cercando di imparare l'uso di LV, ho studiato un pò di "fondamenti di programmazione grafica" e mi piacerebbe approfondire la comunicazione con plc dell'allen bradley, tipicamente uso quelli della famiglia micrologix 1100 o 1200, qualcuno ha degli esempi da postarmi per cercare di capire?? \":?:\" premetto che ho a disposizione l'opc del plc grazie a tutti per l'aiuto ciao tornado ---------------------------------------- AUTORE: 247 DATA :04/05/2007 - 08:05:10 ---------------------------------------- Ciao, fai una ricerca nel forum come [url=http://www.ilvg.it/gsearch.html?cx=007266463114908589647%3Arvkpqmatq-q&cof=FORID%3A11&q=plc&sa=Cerca#1036:1e4t2xs9]questa[/url:1e4t2xs9], abbiamo parlato molte volte di PLC e LabVIEW! Se non ti dovesse bastare ovviamente torna a chiedere \";-)\". BYE. ---------------------------------------- ================================================================================ Passaggio parametri listbox ================================================================================ AUTORE: 1876 DATA :04/05/2007 - 07:29:46 ---------------------------------------- Ciao a tutti, ho un problema con un VI in cui ho una listbox che fungerebbe da logger, in pratica deve visualizzare tutte le operazioni che vengono eseguite dal VI. Il problema è che questo VI permette di svolgere diverse operazioni e per eseguirle richiema degli altri VI, i quali non permettono il passaggio di parametri. Ho provato a creare da questi VI che vengono richiamati dei subVI, però così facendo labview mi crea direttamente i parametri da passare ed in alcuni casi, essendo essi più di 28, non mi fa creare il subVI. C'è un modo per limitare il numero di parametri nel caso non voglia passarli tutti? So che mi spiego come una capra, spero di essere stato almeno minimamente chiaro. Grazie, ciao! ---------------------------------------- AUTORE: 645 DATA :04/05/2007 - 08:47:37 ---------------------------------------- Puoi passare dalle variabili globali... ---------------------------------------- AUTORE: 1876 DATA :04/05/2007 - 09:28:16 ---------------------------------------- Ah ok, preferivo evitare l'uso delle variabili globali in quanto sacrilego nella mia concezione programmativa da "c++ista", ma se è l'unico modo non vedo alternative. Basta dichiarare la variabile globale? ---------------------------------------- AUTORE: 384 DATA :05/05/2007 - 22:37:28 ---------------------------------------- Tieniti pure ben stretta la tua "concezione programmativa da "c++ista""... \":D\" La soluzione sta nel creare dei cluster, assimilabili alle "strutture" in "C" (o C++). Non esistono limiti al numero di componenti di un cluster e, in più, se li definisci come "typedef", facilita molto la programazione quando si deve fare una qualunque modifica. ---------------------------------------- AUTORE: 1876 DATA :07/05/2007 - 10:56:17 ---------------------------------------- Grazie del consiglio, ma come faccio a passare i cluster da VI a VI? Nel senso, io non ho bisogno di creare "una struttura" generalizzata da utilizzare in vari VI, a me serve che "quella listbox" venga passata tra vari VI. Il mio problema è che devo aggiungere delle stringhe alla listbox da un vi differente a quello che contiene la definizione di tale palette; quindi anche nel caso estremo in cui usassi una variabile locale, ciò non sarebbe possibile perchè da essa non posso creare "property node". Magari mi sono impuntato io su una cavolata ma non riesco a venirne fuori... ...Ah, e grazie per la pazienza! ---------------------------------------- AUTORE: 129 DATA :07/05/2007 - 11:03:56 ---------------------------------------- Allora devi solo trasfomare la list box come typedef in modo che ogni modifica riportata in una ti viene automaticamente realizzata su tutte quelle connesse in typedef. Altrimenti se il tuo bisogno è quello di andare a modificare i valori della listbox programmaticamente devi ricorrere alla property node del controllo in cui trovi appunto item names (gli colleghi l'array dei valori da inserire). DA qui i giochini sono molti perchè puoi aprire per esempio la property in lettura per tirarti fuori i valori e poi tramite manipolazione di array andarli a rimettere in scrittura e di fatto modificare il tuo listbox. ---------------------------------------- AUTORE: 927 DATA :08/05/2007 - 09:00:48 ---------------------------------------- Forse (molto forse) ho capito cosa vuoi fare... Per modificare le proprietà della listbox da un altro VI, questo altro VI ha bisogno della reference alla listbox originaria. Creala col tasto dx, poi passagliela come ingresso se puoi, altrimenti come variabile globale. A questo punto manda la reference a un property node. ---------------------------------------- AUTORE: 1876 DATA :10/05/2007 - 10:27:46 ---------------------------------------- Inizialmente grazie a tutti per i consigli. Scusate l'insistenza ma continuo a non riuscire a fare il passaggio di parametri, per disperazione ho provato anche a creare una variabile globale ma nulla, all'interno di un VI me la legge normalmente, ma nell'altro no, mi salva valori diversi, è come se ci fossero 2 variabili differenti. Comunque il mio problema non è quello di scrivere o leggere dati dalla listbox, è semplicemente quello di renderla visibile ad altri VI. Ammetto che labview è un grande programma, ma perchè non hanno implementato un semplice passaggio di parametri? ---------------------------------------- AUTORE: 927 DATA :10/05/2007 - 10:32:58 ---------------------------------------- e "renderla visibile ad altri VI" cosa vuol dire, se non poterla leggere? \":o\" ---------------------------------------- AUTORE: 1876 DATA :10/05/2007 - 10:59:30 ---------------------------------------- Si ma da altri VI non riesco a leggerla, anche se creo una variabile globale... ---------------------------------------- AUTORE: 927 DATA :10/05/2007 - 11:09:25 ---------------------------------------- cosa ci hai messo nella variabile globale? se ci hai passato il contenuto della listbox, ricorda che devi ripassarlo ogni volta che aggiorni la listbox, non sono collegati automaticamente. oppure usa il metodo della reference come ho detto sopra ---------------------------------------- AUTORE: 1876 DATA :10/05/2007 - 11:32:46 ---------------------------------------- io ho semplicemente creato una variabile globale, e al suo interno, dato che ha solo il front panel ci ho messo una listbox. Nei due VI che dovrebbero comunicare in uno ci ho messo una listbox, che periodicamente scrive nella variabile globale, nell'altro ho messo la variabile globale in lettura e ho creato un indicatore. ---------------------------------------- AUTORE: 927 DATA :10/05/2007 - 11:46:56 ---------------------------------------- ecco il problema: la listbox come controllo/variabile ha solo un valore numerico, l'indice della riga selezionata. Il contenuto delle righe lo puoi tirar fuori solo con i property node (proprietà Item Names, mi pare). Non puoi passare semplicemente la listbox, devi estrarre le stringhe e passare queste a una globale array di stringhe; oppure passare la reference a una globale reference, e poi tirar fuori le stringhe ---------------------------------------- AUTORE: 1876 DATA :10/05/2007 - 13:06:30 ---------------------------------------- AAAhhhh funziona, finalmente, grazie mille!!! Ammetto di non essere un geniaccio, però a mio parere il passaggio di parametri è veramente gestito male in labview, o sbaglio? Grazie a tutti, ciao. ---------------------------------------- AUTORE: 927 DATA :10/05/2007 - 13:11:14 ---------------------------------------- Mah, sei il primo che sento lamentarsi di questa cosa \":lol:\" ---------------------------------------- AUTORE: 1876 DATA :10/05/2007 - 13:16:10 ---------------------------------------- c'è sempre una prima volta no? \":lol:\" ---------------------------------------- AUTORE: 384 DATA :11/05/2007 - 09:50:46 ---------------------------------------- [quote="jocker":x9vjhus9]AAAhhhh funziona, finalmente, grazie mille!!! Ammetto di non essere un geniaccio, però a mio parere il passaggio di parametri è veramente gestito male in labview, o sbaglio? Grazie a tutti, ciao.[/quote:x9vjhus9] Sbagli, e clamorosamente!!! Anzi, e per quanto LV non sia perfetto, è la prima volta che sento questo commento, la cui origine posso solo concedere alla tua iniziale mancanza di dimestichezza! Che speriamo tu possa migliorare anche con l'aiuto di questo forum - basta che ci cia l'impegno da parte tua!!! Le variabili globali non sono fatte per passaggio di parametri, anzi, sono assolutamente SCONSIGLIATE per quell'utilizzo - ed io sono il [i:x9vjhus9][b:x9vjhus9]primo[/b:x9vjhus9][/i:x9vjhus9] della fila che lo sconsiglia. In realtà, quello che a te serviva (e serve), ma non era chiaro della tua descrizione, non è passare la listbox - quello è solo un modo di interfacciarsi all'utente - ma l'array di stringe da metterci dentro. Se il tuo software gestisce un'array di stringhe al quale aggiungi e togli ciò che serve, solo l'array devi passare da vi a vi. Poi, l'interfaccia utente potrebbe essere con la listbox, piutosto che con l'array stesso oppure completamente fatta ad-hoc... ---------------------------------------- AUTORE: 645 DATA :11/05/2007 - 10:30:41 ---------------------------------------- [quote="gyc":1nfs7wk5] Le variabili globali non sono fatte per passaggio di parametri, anzi, sono assolutamente SCONSIGLIATE per quell'utilizzo - ed io sono il [i:1nfs7wk5][b:1nfs7wk5]primo[/b:1nfs7wk5][/i:1nfs7wk5] della fila che lo sconsiglia. [/quote:1nfs7wk5] Però per scambiare la lista degli elementi tra più VI non sono male... Io le usate: effettivamente possono non essere performanti rispetto ad altre soluzioni ma risultano comode e nel caso non ci siano esigenze spintissime non sono male. ---------------------------------------- AUTORE: 384 DATA :11/05/2007 - 16:10:24 ---------------------------------------- [quote="MagicBotolo":2hibkoh1]Però per scambiare la lista degli elementi tra più VI non sono male... Io le usate: effettivamente possono non essere performanti rispetto ad altre soluzioni ma risultano comode e nel caso non ci siano esigenze spintissime non sono male.[/quote:2hibkoh1] Già sai che quando dici così mi fai arrabiare... \":evil:\" \":wink:\" ---------------------------------------- ================================================================================ Aiuto!! Server Labview Client c++ ================================================================================ AUTORE: 2037 DATA :04/05/2007 - 11:57:57 ---------------------------------------- Ho bisogno di un Aiuto e spero che qualcuno fra di Voi sarà in grado di darmelo... Ho necessità di creare un Server in Labview 8.2 che stia in ascolto su una certa porta in modo da poter comunicare con un Client che stà su una macchina Linux ed è implementato in c++. Il protocollo di comunicazione dovrà essere TCP/IP. Ringrazio in anticipo e saluto ---------------------------------------- AUTORE: 927 DATA :04/05/2007 - 14:40:46 ---------------------------------------- Cerca "TCP VI and Functions" nell'help. Ci sono anche i collegamenti agli esempi; in particolare ti interessa "TCP Communicator - Passive.vi" e la funzione "TCP Listen" ---------------------------------------- AUTORE: 247 DATA :04/05/2007 - 17:21:47 ---------------------------------------- Ciao, per l'ennesima volta: E ASSOLUTAMENTE VIETATO POSTARE IN SEZIONI DIVERSE DEL FORUM LO STESSO MESSAGGIO!!! \":evil:\" \":evil:\" \":evil:\" \":evil:\" BYE. ---------------------------------------- ================================================================================ ( IMAQ ) ni vision con labview 8.2 ================================================================================ AUTORE: 1669 DATA :04/05/2007 - 19:48:52 ---------------------------------------- Ciao ho fatto un progetto con labview 7.1 ed ho provato a far funzionare lo stesso con labview 8.2 pero non funziona nel senso che quando vado ad aprirlo non mi vede tutti i subvi imaq vision che ho utilizzato..come imaqsnap.vi e imaq write..mi date una dritta ? grazie ---------------------------------------- AUTORE: 384 DATA :05/05/2007 - 22:28:36 ---------------------------------------- Mi sembra che ci sia un thread recente proprio su questo argomento. Prova a cercare con imaq e 8.2. Se ricordo, credo che il problema stia nel fatto che il nuovo nel Imaq hanno riorganizzato i blocchi di funzioni, sia nelle funzionalità propeie e vere sia nell'organizzazione delle pallette. Mi sa che dovrai metterci un pò la mano!!! ---------------------------------------- ================================================================================ Stazione Meteo ================================================================================ AUTORE: 1960 DATA :05/05/2007 - 09:09:40 ---------------------------------------- Ciao a tutti, io vorrei simulare una stazione meteo comprendente di termometro con grafico annesso per misurare le medie giornaliere e un altro grafico che mi calcoli la velocità del vento, con un "gauge" che indichi la direzione. Il tutto senza prelevare dati da hardware. Per il termometro non ho problemi, ma per simulare la velocità e la direzione del vento, come posso fare?? ---------------------------------------- AUTORE: 129 DATA :05/05/2007 - 15:09:57 ---------------------------------------- Questa è una bella iniziativa, per farla abbastanza realistica e seria, dovresti a mio avviso trovare o registare dei dati delle temperatura/velocità vento/direzione. Le tabelle saranno fornite per zona e per periodo es. bologna estate sera secco(no pioggia) --> 26°C / 2m/s /NO Per la grafica ti puoi sbizzarrire, potresti creare per esempio da dei controlli slide degli indicatori di direzione/intensità vento, semplicemente sostituendo la picture del controllo slide con una freccia vuota... Potresti anche mappare la temperatura su un intensity graph... Ti allego una proposta per visualizzare direzione e velocità del vento (non ho trovato delle freccie ma si può migliorare. ---------------------------------------- AUTORE: 1960 DATA :05/05/2007 - 15:42:16 ---------------------------------------- Ti faccio vedere come ho iniziato a farlo io....è solo il primo progetto che ho fatto stamattina.....lo devo migliorare pero' penso di partire da quest'idea....ti ripeto i dati sono tutti casuali non presi da un hardware specifico.... ---------------------------------------- AUTORE: 129 DATA :05/05/2007 - 16:12:47 ---------------------------------------- OK. E se il gauge per la direzione vento lo metti con uno sfondo che ti dice anche il tipo di vento? Dovresti fare anche un datalog ? es. martedì 19/07/06 ore 14.00 temp. 19°C speed 2m/s dir SE raffiche ---------------------------------------- AUTORE: 1960 DATA :07/05/2007 - 08:05:37 ---------------------------------------- Si grande idea, non ci avevo pensato di mettere la rosa dei venti come sfondo.....giusto! Grazie; ah poi una cosa: per le temperature.....io vorrei avere nel grafico della temperatura una media più varia, che non si aggiri solamente in un range di valori ristretto (tanto per capirci da 26,7 gradi a 28,9 gradi. Mi piacerebbe avere un range che andasse da 14 per esempio a 30....quali sono i valori da impostare? ---------------------------------------- AUTORE: 129 DATA :07/05/2007 - 10:49:09 ---------------------------------------- Non capisco se vuoi limitare la generazione delle temperature entro due valori (14min. 30 max) o la scala del grafico. Personalizzo la risposta auspicando che sia nella generazione e allora ti suggerisco dalla palette comparison di utilizzare range e coerce, che ti permette di limitare in uscita i numeri compresi tra un minimo e un massimo. ---------------------------------------- AUTORE: 1960 DATA :07/05/2007 - 11:12:37 ---------------------------------------- Si, Range e Coerce infatti è molto utile......ho provato a usarlo e in effetti puo' essere una soluzione. Andando avanti pero' mi vengono nuove idee e quindi pensavo: 1- Dal termometro mantenere i valori attuali, facendo lavorare il termometro costantemente cioè ad ogni input ricevuto aumentare e dimuniure i valori. 2- Nel grafico della temperatura aggiungere oltre al plot già in uso un altro che sia la media di tutti i valori.....della giornata per esempio o del mese. 3- I valori Max e Min pero' devono registrare i Massimi e Minimi Assoluti..... 4- Grafico e Direzione Vento secondo me possono andare bene, l'unica cosa e che vorrei simulare il vento in maniera piu' reale, cioè senza sballottare la direzione in maniera drastica; quindi se il vento risulta da Sud Est, prima di passare a Ovest dovrebbe "girare" a Sud poi a Sud Ovest e infine arrivare a Ovest 5- Grafico Velocità Vento secondo me va bene, pero' anche li' vorrei tenere conto solo delle raffiche alte, quelle per intenderci che sono sopra la media. Il programma finora procede bene penso...eccolo qua' ---------------------------------------- AUTORE: 1960 DATA :07/05/2007 - 11:17:05 ---------------------------------------- [quote="nicola":2rmk5dux] Dovresti fare anche un datalog ? es. martedì 19/07/06 ore 14.00 temp. 19°C speed 2m/s dir SE raffiche[/quote:2rmk5dux] Adesso che ci penso anche questo non sarebbe male, pero' anche qui' io terrei conto della media o giornaliera o mensile......mmm Adesso ci provo....Grande Grazie per le dritte ---------------------------------------- AUTORE: 645 DATA :07/05/2007 - 15:46:34 ---------------------------------------- Scusate... come avete fatto a mettere l'immagine della rosa dei venti come sfonfo del gauge? ---------------------------------------- AUTORE: 384 DATA :08/05/2007 - 09:10:01 ---------------------------------------- Puoi personalizzare il controllo, oppure lo rendi trasparente e gli metti sotto l'immagine! ---------------------------------------- AUTORE: 129 DATA :08/05/2007 - 09:38:09 ---------------------------------------- Advanced/customize --> ti si apre il pannello del controllo, premi sulla chiave inglese per entrare in modifica. Dal menu edit, selezioni import clipboard to clipboard, quindi selzioni l'area di sfondo del controllo, tasto dx e paste at same size. voilà lo sfondo è la rosa dei venti. Con un programma di fotoritocco (io uso Corel Draw) si può tagliare lo sfondo bianco dall'immagine, quindi si salva come .png) ora puoi incollare solo la rosa e personalizzarti senza sfondo. Sempre in edit mode selezioni l'indicatore(l'ago) e lo ridimensioni, mentre con il pennello rendi trasparente il cerchio centrale. ---------------------------------------- AUTORE: 1955 DATA :08/05/2007 - 10:45:46 ---------------------------------------- ragazzi gentilmente mi trasformereste i vostri vi in versione 6.1 oppure mi mandate dei screen shot al mio indirizzo e-mail sacconesilvano@hotmail.com io devo affrontare lo stesso problema a breve e non so come iniziare. ho fatto tutta la parte di logging se vi interessa. ma sempre in lab6.1 grazie ---------------------------------------- AUTORE: 1960 DATA :10/05/2007 - 11:02:39 ---------------------------------------- Ciao Boys, allora, io non riesco sempre nel solito programma a far funzionare bene il generatore casuale di direzione del vento......voglio in pratica che mi indichi tutte le direzioni, ma vorrei metterci un peso migliore; cioè vorrei che per lo piu' la direzione fosse Sud Est Est.....cioè vorrei mantenere piu' stabile la direzione del vento....come lo posso fare? Con che tipo di onda o segnale? ---------------------------------------- AUTORE: 129 DATA :11/05/2007 - 08:24:35 ---------------------------------------- Io ti suggerirei di utilizzare un generatore casuale che ad avvio programa ti imposti un case dove ci saranno i range di vento da utilizzare (per esempio si avvia e invia al while S-SE-SO oppure E-SE ecc.) siccome corrispondono a dei numeri poi li puoi usare con range e coerce e il gioco è fatto. ---------------------------------------- AUTORE: 1960 DATA :14/05/2007 - 10:43:32 ---------------------------------------- [quote="nicola":23bq3g43]dei numeri poi li puoi usare con range e coerce e il gioco è fatto.[/quote:23bq3g43] C'è anche il modo con Range e Coerce di impostare due valori MIN e MAX ma comunque dare la possibilità di avere ogni tanto un valore fuori dal range? Tipo MIN 5 MAX 10 pero' ogni tot secondi valori compresi tra MIN 3 MAX 7?????????? ---------------------------------------- AUTORE: 384 DATA :15/05/2007 - 08:36:47 ---------------------------------------- Non esiste nel senso che non è già pronta. Naturalmente puoi programmarla tu. Io utilizzerei un generatore random per i "soliti" valori, un secondo RND per decidere quando (ogni tanto) dare un valore "fuori" limiti ed il terzo per generare il valore fuori limite. Con altri 2 blocchi ("In Range & Corece" e "Select") il giocco è fatto. Forza, fai lavorare un pò le "carruccole" \":P\" e semmai ci ritorniamo più tardi! ---------------------------------------- ================================================================================ progetto labview ================================================================================ AUTORE: 2020 DATA :06/05/2007 - 21:08:22 ---------------------------------------- salve a tutti, sono un nuovo iscritto del forum (eccezzionale) e anche un nuovo utilizzatore di labview. Dovrei realizzare un sistema di lettura di dati provenienti da un circuito driver (di cui vi allego lo schema di funzionamento)collegato ad un array di fotodiodi. il driver funziona solo se alimentato con una tensione di 5v e 100mA di corrente e se gli vengono inviati dei segnali di RESET E DI CLOCK, e qui iniziano i miei grossi dubbi: dalla foto potete vedere che il circuito driver ha 3 canali: cn1 per collegarlo all'array di fotodiodi, cn2 penso per l'input e cn3 per eventuali altri stadi costituiti da ulteriori array e driver. Ora i segnali di clock e di reset come li invio al driver? l'alimentazione la prendo dall'esterno o dal blocco connettori? Devo usare anche un TRIGGER e se si come si fa? Scusatemi se sono lungo e pretendo troppo ma vorrei qls suggerimento per capire di piu. Gli strum che ho nel lab. sono:Chassis PXI : Mod. PXI 8187, Digitalizzatore NI PXI-5114 , NI PXI-6132,Blocco connettore NI BNC-2110. Grazie a tutti coloro che vorranno aiutarmi e complimenti ancora per il forum!!!!!!!! \":oops:\" \":wink:\" ---------------------------------------- AUTORE: 2020 DATA :07/05/2007 - 09:01:55 ---------------------------------------- proprio nessuno che possa darmi una mano??? ---------------------------------------- AUTORE: 384 DATA :08/05/2007 - 08:55:20 ---------------------------------------- Guardando la tua foto, mi sembra che i segnali che entrano in uno dei blocchi escono dall'altro. Dovrai sapere tu dalle specifiche perchè e a cosa serve. Io tenderei a pensare che l'alimentazione (5V) devi fornirla tu al circuito. Poi i segnali di clock e di reset solitamente sono dei "treni di impulsi", in qualche modo sincronizzati fra loro. Per generarli, usa i counter a bordo scheda. Li puoi programmare in diversi modi. Inizia dagli esempi di labview; troverai anche esempi predisposti per delle schede NI. Anche se non c'è la tua, sará semplice modificarli (atento a non salvare le modifiche! \":wink:\" ) ---------------------------------------- AUTORE: 2020 DATA :08/05/2007 - 16:09:15 ---------------------------------------- CIAO, intanto grazie mille per la risposta!!! \":D\" Mi ha fatto fare qualche passo in avanti!! Se nn ti dispiace ne approfitterei per chiedere delle altre cose: Prendiamo in considerazione un solo segnale che devo fornire, ad esempio il segnale di clock, a qst proposito ho visto moltissimi esempi, potresti darmi il nome di un esempio che ritieni adatto? con il tuo messaggio intendevi dire che se apro uno degli esempi di clock e collego con un cavo bnc il connettore del BNC 2110: [size=150:32b7rlq1]ctr 0 out [/size:32b7rlq1]ad un oscilloscopio visualizzo il segnale o devo fare qualche altra cosa? posso fare il tutto con simulazione visto che simulato gli strum con MAX? scusami ma sono un principiante e ti sarei grato se continuassi a rispondermi (anche qualcun'altro ovviamente).... grazie mille!!!! \":P\" \":P\" ---------------------------------------- AUTORE: 384 DATA :09/05/2007 - 00:04:43 ---------------------------------------- [quote="antoniotrapasso":1nutkzon]Prendiamo in considerazione un solo segnale che devo fornire, ad esempio il segnale di clock, a qst proposito ho visto moltissimi esempi, potresti darmi il nome di un esempio che ritieni adatto?[/quote:1nutkzon] Il clock e' solo un treno di impulsi, qualunque esempio può andare. Cerca negli esempi con "pulse generating". Ti suggerisco di concentrarti su quelli che hanno sulla destra il simbolo dove si legge "mx" - sono gli esempi che usano il DAQmx, molto più potente e flessibile a gestire le schede. Magari inizia da "Gen Dig Pulse Train-Continuous.vi", ma sicuramente anche VI altri possono darti informazioni utili, anche quelli con il simbolo della sheda (cioè, per il DAQ tradizionale) . [quote="antoniotrapasso":1nutkzon]con il tuo messaggio intendevi dire che se apro uno degli esempi di clock e collego con un cavo bnc il connettore del BNC 2110: ctr 0 out ad un oscilloscopio visualizzo il segnale o devo fare qualche altra cosa? [/quote:1nutkzon] Normalmente gli esempi sono pronti. Se la "freccia" non è rotta, fai pure girare il vi. [quote="antoniotrapasso":1nutkzon]posso fare il tutto con simulazione visto che simulato gli strum con MAX? [/quote:1nutkzon] É possibile. Potresti soltanto aver problemi di velocità; dipende da ciò che devi fare. ---------------------------------------- AUTORE: 2020 DATA :09/05/2007 - 14:38:25 ---------------------------------------- Allora, intanto devo rendervi i miei ringraziamenti, ma non mollatemi proprio ora che ci sto capendo qlks!!! In pratica stamattina seguendo le vs. istr. ho visualizzato il segnale fornito dall'esempio: Gen Dig Pulse Train-Continuous.vi collegandomi con un connettore BNC dall'uscita [u:4mw8sspa]ctr o out [/u:4mw8sspa] (sul block connector bnc2110) all'oscilloscopio, mentre nel VI come counter ho selezionato PXISlot1/ctr0. Fin qui tutto ok. Poi, siccome mi servirà generare + di 1 segnale digitale, ho provato all'interno dello stesso vi a duplicare lo stesso strum virt., cioè in pratica avevo 2 generatori di impulsi digitali, a questo punto dal primo I/O ho lasciato selezionato Counter: PXISlot1/ctr0 e sull'altro Counter ho selezionato PXISlot1/ctr1 che secondo a quanto letto corrisponde a prelevare il segnale dal BNC 2110 al terminale USER2 nella sezione USER DEFINED SIGNALS, e qui succede che non mi da nessuno errore però non visualizzo il secondo segnale. Dove sbaglio? da dove prelevo un secondo segnale? come si usano i terminali: USER1 e USER2? Poi un 'altra domanda che vi volevo fare è qst: il segnale che sono riuscito a visualizzare sull'oscilloscopio va bene, ma come dovro fare quando dovrò fornirlo alla scheda driver che ha dei normalissimi fili conduttori? ho visto che i terminali CTR1 OUT, USER1 e USER2 sono presenti anche su quell'altro tipo di connettori (pin) che sarebbero adatti ai fili mi sembra, devo utilizzare quelli e se si come si fa? perdonatemi ma chiariti qst dubbi vi sarò enormemente grati!!! un saluto. \":oops:\" \":(\" \":D\" ---------------------------------------- AUTORE: 384 DATA :09/05/2007 - 23:54:47 ---------------------------------------- [quote="antoniotrapasso":2qyxweye]In pratica stamattina seguendo le vs. istr. ho visualizzato il segnale fornito dall'esempio: Gen Dig Pulse Train-Continuous.vi collegandomi con un connettore BNC dall'uscita [u:2qyxweye]ctr o out [/u:2qyxweye] (sul block connector bnc2110) all'oscilloscopio, mentre nel VI come counter ho selezionato PXISlot1/ctr0.[/quote:2qyxweye] Perfetto, sei sulla buona strada. [quote="antoniotrapasso":2qyxweye]Poi, siccome mi servirà generare + di 1 segnale digitale, ho provato all'interno dello stesso vi a duplicare lo stesso strum virt., cioè in pratica avevo 2 generatori di impulsi digitali, a questo punto dal primo I/O ho lasciato selezionato Counter: PXISlot1/ctr0 e sull'altro Counter ho selezionato PXISlot1/ctr1 che secondo a quanto letto corrisponde a prelevare il segnale dal BNC 2110 al terminale USER2 nella sezione USER DEFINED SIGNALS, e qui succede che non mi da nessuno errore però non visualizzo il secondo segnale. Dove sbaglio? da dove prelevo un secondo segnale? come si usano i terminali: USER1 e USER2?[/quote:2qyxweye] Per usare i bnc USER1 e USER2 devi fare un ponticello sulle terminaliere a vite collegando il segnale che ti interessa allo "USER" di tua scelta. In questo caso devi collegare il CTR1 Out allo USER1 (oppure 2) con un pezzetto di filo. [quote="antoniotrapasso":2qyxweye]Poi un 'altra domanda che vi volevo fare è qst: il segnale che sono riuscito a visualizzare sull'oscilloscopio va bene, ma come dovro fare quando dovrò fornirlo alla scheda driver che ha dei normalissimi fili conduttori? ho visto che i terminali CTR1 OUT, USER1 e USER2 sono presenti anche su quell'altro tipo di connettori (pin) che sarebbero adatti ai fili mi sembra, devo utilizzare quelli e se si come si fa? perdonatemi ma chiariti qst dubbi vi sarò enormemente grati!!![/quote:2qyxweye] Banalmente li devi collegare con dei fili a partire dalla morsettiera. Devi collegare anche il terminale [b:2qyxweye][i:2qyxweye]GND[/i:2qyxweye][/b:2qyxweye] (ground o massa, che dir si voglia) al [b:2qyxweye][i:2qyxweye]GND[/i:2qyxweye][/b:2qyxweye] tuo controller e al [b:2qyxweye][i:2qyxweye]0 Volt[/i:2qyxweye][/b:2qyxweye] dell'alimentatore. ---------------------------------------- AUTORE: 2020 DATA :10/05/2007 - 07:40:53 ---------------------------------------- INFINITI GRAZIE ! Oggi andrò in laboratorio e proverò la nuove indicazioni che mi hai dato!!! Ciao e ancora grazie. ---------------------------------------- AUTORE: 2020 DATA :11/05/2007 - 19:46:36 ---------------------------------------- Come al solito devo ringraziarvi, con i nuovi suggerimenti ho fatto notevoli passi in avanti, ho testato i vari connettori, anche quelli presenti sulla terminaliera a vite visualizzando anche due segnali TTL su oscilloscopio. Adesso il prossimo passo, oltre a studiare un po di teoria su segnali di clock, segnali di reset e loro sincronizzazione sarà quello di attuarli in pratica. Quindi se avete altri suggerimenti preziosissimi, senza i quali non penso che ce l'avrei fatta, allora gentilmente datemeli!!! Ve ne sarò grato!! Grazie aspetto risp... \":)\" \":D\" ---------------------------------------- AUTORE: 384 DATA :13/05/2007 - 17:51:07 ---------------------------------------- Adesso la palla è nel tuo campo. Senza conoscere l'hardware, non c'è altro che si possa dire. Sta a te, ora, capire como funziona quel tuo "aggeggio" e continuare a maniche rimboccate! Buon divertimento! (noi siamo sempre qua!) ---------------------------------------- AUTORE: 2020 DATA :16/05/2007 - 10:19:32 ---------------------------------------- Salve a tutti! sono di nuovo qua a chiedervi un aiuto prezioso. Le mie perplessità sono le seguenti: è possibile avere 3 canali per acquisire 3 segnali diversi provenienti da un circuito (driver) e altri due canali per fornire allo stesso circuito due segnali di tipo ttl? posso metterli tutti in un unico VI? mi spiego meglio io devo fornire un segnale continuo di clock ed un altro di reset, il circuito a sua volta mi deve inviare un segnale di trigger che mi avvisa che posso acquisire un altro segnale che mi sta per inviare che è di tipo VIDEO dopodichè ne invia un altro detto L-EOS che indica la fine della scansione, per poi riprendere altri cicli. E' possibile fare una cosa del genere secondo voi, e se si come imposto il VI? Posso inserire dei VI gia pronti nelle librerie, quali? Il Vs. aiuto è stato prezioso è lo sarà ancor di piu questa volta. Aiutatemi... Ciao un saluto a tutti i comp del forum!! \":oops:\" \":oops:\" \":oops:\" \":(\" ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 12:06:56 ---------------------------------------- Si può fare ciò che descrivi. É un caso tipico in cui il pc è un elemento "attivo" di un sistema ricevendo dati in ingresso e producendo dati in uscita. Circa l'opportunità di fare tutto in un unico vi, non lo si può dire cosí. Dipende molto dall'applicazione, di come "girano" i dati. Ovviamente non esistono già pronti dei vi che facciano esattamente il caso tuo che è molto particolare e specifico. ---------------------------------------- AUTORE: 2020 DATA :22/05/2007 - 21:17:33 ---------------------------------------- eccomi di nuovo qua...a chiedere il vs aiuto... prima di passare ad applicare i vari segnali di cui ho bisogno al mio "aggeggio" . stamattina ho portato su uno dei connettori PFI 1-9 del bnc2110 un segnale ttl da 0 a 5 V con una frequenza di 1 Mhz (duty cycle = 0.5) e visualizzarlo tramite un vi che ho preso e modificato da quelli presenti negli esempi, ma cio che ho visualizzato non sono i vari campioni ma i vari valori 1 e 0, guardando la foto che allego vi sara certamente piu chiaro. è giusto portarlo sul PFI ? invece i PO.0-7 a che servono? come si usano questi connettori (io ho infilato molto semplicemente il filo del segnale e quello della massa a gnd!) come faccio a visualizzare tutta la sequenza? un mio grosso dubbio è questo: supponiamo come ho detto che la freq del segnale è 1 MHz, come posso essere sicuro che la daq non ne perda nessuno, c'è un modo per verificare e inoltre che cosa si usa della libreria DAQmx? Lo so non sono granchè visto che vi faccio qst domande ma sono alle primissime armi.... in ogni caso finora mi avete aiutato tantissimo quindi non abbandonatemi proprio ora ...thanks... \":|\" \":|\" \":oops:\" \":|\" ---------------------------------------- AUTORE: 384 DATA :23/05/2007 - 22:31:38 ---------------------------------------- [quote="antoniotrapasso":1jknv4wa]... stamattina ho portato su uno dei connettori PFI 1-9 del bnc2110 un segnale ttl da 0 a 5 V con una frequenza di 1 Mhz (duty cycle = 0.5) e visualizzarlo tramite un vi che ho preso e modificato da quelli presenti negli esempi, ma cio che ho visualizzato non sono i vari campioni ma i vari valori 1 e 0, guardando la foto che allego vi sara certamente piu chiaro. è giusto portarlo sul PFI ? invece i PO.0-7 a che servono? come si usano questi connettori (io ho infilato molto semplicemente il filo del segnale e quello della massa a gnd!) come faccio a visualizzare tutta la sequenza?[/quote:1jknv4wa] Scarica il [url=http://digital.ni.com/manuals.nsf/websearch/7A862014CCE0CA0486256D3B005CE8DE:1jknv4wa]manuale[/url:1jknv4wa] del BNC-2110. Vedrai che i PFI sono ingressi programmabili speciali per le funzioni avanzate di triger e conteggio. I vari PO sono ingerssi/uscite digitali. Se vuoi acquisire un segnale devi semplicemente collegarlo agli ingressi analogici. [quote="antoniotrapasso":1jknv4wa]un mio grosso dubbio è questo: supponiamo come ho detto che la freq del segnale è 1 MHz, come posso essere sicuro che la daq non ne perda nessuno, c'è un modo per verificare e inoltre che cosa si usa della libreria DAQmx? Lo so non sono granchè visto che vi faccio qst domande ma sono alle primissime armi.... |[/quote:1jknv4wa] Mi sa che proprio alle primissime! Hai mai sentito parlare del [url=http://en.wikipedia.org/wiki/Nyquist-Shannon_sampling_theorem:1jknv4wa]teorema del campionamento di Shannon o di Nyquist[/url:1jknv4wa], come è anche conosciuto? Se ne è già parlato più volte nel forum. Guarda [url=http://www.ilvg.it/forum/viewtopic.php?p=9112:1jknv4wa]questo[/url:1jknv4wa]topic, in particolare [url=http://www.ilvg.it/forum/viewtopic.php?p=9036#9036:1jknv4wa]questo[/url:1jknv4wa] post. Trovi più informazione sul sito N.I. [url=http://zone.ni.com/devzone/cda/tut/p/id/3566:1jknv4wa]qui[/url:1jknv4wa], [url=http://zone.ni.com/devzone/cda/tut/p/id/2709:1jknv4wa]qui[/url:1jknv4wa] e [url=http://zone.ni.com/devzone/cda/tut/p/id/3016:1jknv4wa]qui[/url:1jknv4wa]. ---------------------------------------- AUTORE: 2020 DATA :24/05/2007 - 22:18:14 ---------------------------------------- ciao, sul manuale ho trovato l'utilità dei pin del blocco connettore bnc2110 ma nn come si usa, in ogni caso ci sono riuscito smanettando un po, in pratica si infila il filo premendo la piccola plastichina al lato dopodiche si rilascia ed il filo rimane fissato.. \":)\" almeno qlks da solo sono riuscito a farla...bhe poco direi! poi vi volevo dire che io il segnale analogico è tanto oramai che sono riuscito ad acquisirlo e quindi anche qst punto va bene. il prossimo passo che invece dovrei fare è un po piu complicato: devo effettuare un'acquisizione bufferizzata di un segnale analogico (es. una sinusoide proveniente da un gen di funzioni che ho nel laboratorio) ma l'acquisizione-scrittura nel buffer deve partire nel momento in cui do un segnale di start costituito da un onda quadra, piu precisamente quando questo segnale di start, che è un segnale TTL passa dallo stato alto allo stato basso poi l'acquisizione si deve fermare e scrivere su file o visualizzare i dati quando invio un terzo segnale di end cosituito sempre da un segnale TTL. ora io avevo visto l'esempio che vi allego...si puo adattare alle mie esigenze oppure cosa andrebbe modificato? voi come l'usereste? secondo voi oltre al generatore di funzioni cos'altro devo utilizzare per generare i tre segnali? quelli ttl li devo collegare ai pin PO 0-7? rispondetemi come sempre...è importante!! un saluto a tutti!! \":oops:\" \":P\" ---------------------------------------- AUTORE: 384 DATA :25/05/2007 - 00:38:23 ---------------------------------------- Purtroppo non ho la versione 8 installata e quindi non riesco a aprire il VI. Quello che vuoi fare credo sia ciò che si definisce in DAQmx con "acquisizione con trigger e riferimento". Guarda questo vi degli esempi: Acq&Graph Voltage-Int Clk-Dig Start&Ref.vi Probabilmente puoi partire da qui. ---------------------------------------- AUTORE: 384 DATA :25/05/2007 - 00:39:28 ---------------------------------------- Guarda anche l'help in linea del blocco DAQmx Timing.vi. ---------------------------------------- AUTORE: 2020 DATA :25/05/2007 - 09:25:45 ---------------------------------------- ok, mi metto subito a lavoro per capire se puo essere una buona base, intanto grazie e ci sentiamo presto.... poi volevo fare una domanda un po piu aperta verso tutti: avete mai usato o sapete come si usa un Dual Timer Mod. N 93 B ? mi potrebbe essere molto utile per il progetto.. aspetto risp ciao... \":wink:\" ---------------------------------------- AUTORE: 2020 DATA :25/05/2007 - 09:44:38 ---------------------------------------- una cosa che noto a prima vista è che nel acq&graph voltage int clk dig start&ref.vi che mi hai suggerito non è presente nessu while loop per cui mi viene da pensare che posso fare solo un'acquisizione con questa procedura, se volessi inseriro per effettuare più cicli quali blocchi dovrebbe contenere il while loop? ---------------------------------------- AUTORE: 384 DATA :27/05/2007 - 18:04:19 ---------------------------------------- Addesso non ce l'ho sott'occhio, ma in generale, sono da lasciare fuori dai loop i blocchi di inizializzazione/impostazione e di terminazione. Devi quindi guardare quel vi, capire quali siano i blocchi che fanno le varie impostazioni (canali, tempi, ecc.) iniziali e finali (chiusura task, "piluzie", ecc). Quelli li lasci fuori dall loop. Oltre al "sospetto" che deriva dal nome Dual Timer Mod. N 93 B, che cos'è, che marca è e. sopratutto, cosa intendi farci? ---------------------------------------- AUTORE: 2020 DATA :28/05/2007 - 09:15:49 ---------------------------------------- citazione: Oltre al "sospetto" che deriva dal nome Dual Timer Mod. N 93 B, che cos'è, che marca è e. il dual timer n 93 b è provvisto di 2 generatori identici di impulsi di trigger. è un dispositivo che genera impulsi NIM ed ECL con ampiezza regolabile da 50ns a 10s, sono retriggerabili prima che il segnale in uscita sia terminato. (qst quello che ho letto sul manuale che volendo è al seguente link: http://www.caen.it/getattach.php?mod=N93B&obj=mn). sopratutto, cosa intendi farci? intendo usarlo per far partire e per fermare l'acquisizione di un canale analogico in ingresso, ad es, usando il vi che mi hai suggerito . poi oltre qst ho una domanda: quando inseriamo il blocco daqmx timer, mi sembra di aver capito che in automatico si crea un buffer giusto (qnd nell'esempio che mi hai consigliato c'è gia) ? e se io volessi scrivere su file il contenuto del buffer ogni volta che invio l'impulso per fermare l'acquisizione? ti ringrazio molto dell'aiuto che mi stai dando, sai ho un po di fretta, per questo chiedo qlks in piu piuttosto che andare a cercare le soluzioni in manuali ed esempi!! \":oops:\" \":|\" \":P\" Saluti a tutti... \":!:\" \":!:\" ---------------------------------------- AUTORE: 384 DATA :28/05/2007 - 10:04:59 ---------------------------------------- Questo 93B sembra un bellissimo oggetto, ma non dimenticare che hai 2 counter a bordo scheda che puoi usare allo stesso modo e di cui hai il controllo via software, senza dover impegnarti con ulteriori i/o e dispositivi interni. Ad ogni modo, la scelta è sicuramente tua e sará dettata anche da altre raggioni tecniche. Non ti devi preocupare con la gestione dei buffer che i vari blocchi creano al loro interno. Per leggere i dati, basta leggerli con il blocco preposto a quella funzione (guarda la pallette DAQmx). Per quanto riguarda la fretta, ti posso solo dire che è una cattiva consigliera - ma credo che tu questo già lo sappia. Potrei anche darti tutto pronto - ammesso che ne avessi il tempo - ma non è cosí che capirai ciò che stai facendo, e al momento delle domande oppure di un tuo intervento saresti campato per aria senza poter reaggire. ---------------------------------------- AUTORE: 2020 DATA :28/05/2007 - 17:42:46 ---------------------------------------- in pratica ti riferisci ai 2 terminali presenti sul bnc2110 denominati TRIGGER/COUNTER (PFI 0/AI START e CTR0 OUT)? \":roll:\" In teoria posso fornire con questi 2 terminali due segnali tramite 2 VI che generano uno il segnale di clock ed uno il segnale di reset al circuito sotto test? \":roll:\" se la risposta è si , posso collegare in qualche modo qst 2 terminali con i PFI in quanto io devo fornire qst due segnali tramite un normalissimo filo? ---------------------------------------- AUTORE: 384 DATA :28/05/2007 - 19:03:22 ---------------------------------------- Esattamente cosí - daltronde come già accennato in uno dei primi messaggi di questo topi. ---------------------------------------- AUTORE: 2020 DATA :30/05/2007 - 17:41:52 ---------------------------------------- allora, eravamo rimasti all'utilità dei due connettori bnc sul blocco dei connettori, uno l'ho usato cioè quello denominato ctr 0 out, ma l'altro PFI 0/AI START non ho capito a cosa serve, mi fai un esempio pratico? poi vorrei fare una cosa: visto che mi hai consigliato l'esempio acq e graph con start e ref dig, che mi pare una buona base, come posso fare a provarlo, cioe a dare un impulso di start ed uno di stop? cioe vorrei indicare come source del trigger start e del ref un qualcosa di software, non è che mi modificheresti l'esempio e me lo allegheresti? mi faresti un grande piacere!! saluti...siete grandi!! per comodità ti allego l'esempio con start e ref. ---------------------------------------- AUTORE: 2020 DATA :31/05/2007 - 11:52:08 ---------------------------------------- anzi, se puoi, anxichè sistemare la questione dei trigger che poi nn è importante, dovresti (sempre che voglia) aggiungere la scittura su file quando ha ricevuto il segnale reference digital edge.......ti pregherei....nn ti disturbero' ++++++..... \":oops:\" \":oops:\" \":oops:\" \":(\" \":(\" \":!:\" ---------------------------------------- AUTORE: 2020 DATA :01/06/2007 - 16:50:16 ---------------------------------------- lascia stare...per ora ho risolto da solo in un altro modo...mi rifaccio vivo se ho qlk dubbio ok...fin qui tutto ok...e grazie per l'aiuto.. ---------------------------------------- AUTORE: 2020 DATA :06/06/2007 - 22:35:19 ---------------------------------------- ciao GYC! è possibile visualizzare cio che si genera in uscita? Cioè generando un segnale digitale oppure un treno di impulsi posso visualizzare i suddetti segnali? quali sono i blocchi da utilizzare? dovrei aggiungerli al vi, di cui ti allego l'immagine dello schema a blocchi. cari saluti!!! ---------------------------------------- AUTORE: 384 DATA :07/06/2007 - 19:34:31 ---------------------------------------- Generando il segnale in uscita direttamente nell'hardware, come in questo, l'unico modo è collegarelo ad un ingresso, acquisirlo e fare il display. Cerca negli esempi con "acqu" e ne troverai diversi. ---------------------------------------- AUTORE: 2020 DATA :07/06/2007 - 21:38:20 ---------------------------------------- grande GYC! NON CI AVEVO PENSATO!!!! GRAZIE PER ADESSO...TANTO LO SAI CHE CI RISENTIREMO PER QUALCHE ALTRO CONSIGLIO VERO? CIAO E A PRESTO!! ---------------------------------------- AUTORE: 2020 DATA :09/06/2007 - 17:58:49 ---------------------------------------- ciao GYC, mi rivolgo a te visto che tutte le risposte me le hai date tu! Volevo chiederti un parere: io devo acquisire un segnale che proviene da un circuito molto particolare che svolge elabozioni digitali ed analogiche (video). secondo te, visto che il circuito campiona gia da se il segnale, infatti mi invia oltre al segnale video analogico un segnale dig di trigger che mi avvisa che su ogni fronte di salita corrisponde un segnale in output video, nel vi per l'acquisizione, devo utilizzare lo stesso il blocco daqmx timing? questo blocco non viene utilizzato per il campionamento? usarlo non coincide a fare un doppio campionamento? mi è venuta in mente qst cosa pensando al fatto che mi hai detto di impostare come rate almeno il doppio della f del segnale in ingresso per il teor di nyquist onde evitare problemi di accavallamnto della banda vero? è giusto il mio pensiero? ciao e grazie ---------------------------------------- AUTORE: 384 DATA :10/06/2007 - 17:40:30 ---------------------------------------- Certo che devi usare il blocco timing. É con esso che imposti le caratteristiche dell 'acquisizione. Devi anche fare in modo di iniziare l'acquisizione sul fronte di salita del segnale di trigger che ti da il tuo circuito, quindi oltre a cambiare (forse) le impostazioni di timing, devi aggiungere le impostazioni sul trigger. Per vedere un esempio, vai agli esempi, cerca con "daqmx" e apri il vi "Acq&Graph Voltage-Int Clk-Dig Start&Ref.vi". Per quanto riguarda la doppia acquisizione, non sono sicuro di aver capito cosa intendi. Se il tuo circuito già campiona il segnale video, ci fa delle elaborazioni, poi lo riconverte in analogico e tu lo ricampioni per fare altro, allora si, è una doppia conversione. Tipicamente si perdono 3 dB di dinamica ad ogni conversione. Può non essere importante, può essere deleterio, a seconda delle circostanze, utilizzi e accuratezze necessarie. L'ideale sarebbe riuscire a prendere il segnale già digitalizzato dal tuo circuito. Se sei coinvolto nel suo sviluppo in qualche modo, magari riesci ad introdurne quelle poche modifiche per farlo. Altrimenti, non ti restano molte alternative: dovresti andare a fare un pò di reverse engineering e capire dove e come viene digitalizzato il segnale ed in qualche modo carpirlo sfrutando i protocolli (trigger e quant'altro) già presenti. Si può fare ma non è ne immediato ne semplice. ---------------------------------------- AUTORE: 2020 DATA :17/06/2007 - 16:26:47 ---------------------------------------- ciao gyc, le prime volte che ho utilizzato labview, facevo degli esempi con i daqtraditional, e ricordo che mentre il vi era in esecuzione si poteva agire ad esempio sulla frequanza ed in tempo reale qst cambiava anche sul waveform. è possibile farlo anche con daqmx, cioè un comando che viene settato in tempo reale? se si come si fa? ciao e grazie \":!:\" ---------------------------------------- AUTORE: 384 DATA :17/06/2007 - 23:16:27 ---------------------------------------- Con il daq tradizionale in realtà bisognava fermare l'acqusizione, cambiarne i parametri e farla ripartire. Chiaramente, con la velocità del processore queste operazioni sembrano in tempo reale. Con il DAQmx, si possono cambiare i parametri di un "task" usando un property node, che trovi in una delle sub-palettes. Ora non ricordo se tutti i parametri sono manipolabili con i task in corso, ma alla peggio, dovrai fermarlo e riavviarlo. ---------------------------------------- AUTORE: 2020 DATA :28/06/2007 - 21:24:53 ---------------------------------------- ciao GYC, rieccomi!! volevo chiederti un parere: devo acquisire un segnale analogico ad ogni fronte di salita di un segnale trigger (ttl) che ho posizionato su pfi0 che ha frequenza 10KHz e la stessa acquisizione deve finire sul fronte di discesa di un altro segnale che ho posizionato su pfi1. Questa acquisizione deve ripetersi. Io sarei partito dall'example Acq e graph voltage int clk dig start e ref. Volevo il tuo parere se sto facendo bene. 1. devo aggiungere un while loop? 2. cosa ci includo nel while loop? 3.che modifiche devo fare all'esempio? NB ti allego la foto di due segnali in questione che ho visualizzato su oscilloscopio, sono trigger sopra e segnale video sotto. NB dovrei realizzare il VI che faccia la stessa cosa, cioè visualizzare in quel modo. NB quali parametri di temporizzazione dovrei utilizzare secondo te nel daqmx timing? ciao e grazie sin da ora!!! ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 09:37:13 ---------------------------------------- Nel'esempio che citi devi aggiungere un loop attorno al solo blocco di lettura dei dati e al display. Naturalmente serve un pulsante per fermare il loop ed io includerei anche il controllo dell'errore. E non dimenticare un blocco di attesa (fosse anche solo per 1 msec) per non bloccare completamente il resto del PC. Nel blocco timing devi impostare "Continuous Samples". PS - quel segnale video non mi è sembrato per niente video... \":wink:\"   ---------------------------------------- AUTORE: 2135 DATA :29/06/2007 - 10:21:34 ---------------------------------------- ho capito, ma gli altri parametri? number of sample, rate, etc.? questo segnale è video anche se non sembra, è un segnale a sensore non eccitato....un segnale di buio... poi volevo chiederti una cosa, mi era venuto in mente di fare una cosa cghe sicuramente èerrata: mettere come source al blocco timing il pfi0 cioè dove mi arriva il trigger. secondo te ? ciao e grazie ancora ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 11:10:43 ---------------------------------------- [quote="francescaaprile":1aymfvcg]ho capito, ma gli altri parametri? number of sample, rate, etc.? [/quote:1aymfvcg] Questi parametri devi deciderli tu: -il "sample rate" va in funzione della banda del tuo segnale e del Teorema di Nyquist. -fissato quello, il "number of samples" determina solo la 'quatitá' di segnali che acquisisci ogni volta. [quote="francescaaprile":1aymfvcg]poi volevo chiederti una cosa, mi era venuto in mente di fare una cosa cghe sicuramente èerrata: mettere come source al blocco timing il pfi0 cioè dove mi arriva il trigger. secondo te ? ciao e grazie ancora[/quote:1aymfvcg] É sbagliato, si!!! Il terminale di source del timing non è per il trigger, bensi per il segnale di clock con cui si effettua la vera e propria acquisizione, cioè, determina il "sample rate". ---------------------------------------- AUTORE: 2135 DATA :29/06/2007 - 12:53:12 ---------------------------------------- quindi potrei evitare di mettere il control al terminale rate del blocco timing ed indicare come source il ctr0 visto che il mio circuito per funzionare gli devo fornire un segnale di clock a 40 khz? dopodiche il circuito mi ritorna un segnale video ogni 4 clock. qualce suggerimento di come ti muoveresti tu!! ciao ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 14:04:18 ---------------------------------------- Lascia in pace il blocco timing! Il sample rate è la frequenza di acquisizione di ogni singolo campione e normalmente si usa il clock interno della scheda, di cui si conosce anche la precisione e stabilità. Solo in casi particolari serve una sorgente esterna di clock. Per sincronizzare l'acquisizione e gli eventi si usa il trigger. Normalmente solo quello di start, ma talvolta (come nel tuo caso) anche quello di stop. ---------------------------------------- AUTORE: 2020 DATA :29/06/2007 - 16:23:40 ---------------------------------------- le domande che ti faccio scaturiscono dal fato che non riesco ad ottenere risulatati migliori, dovrei ottenere dei campioni come quello che ti allego che prendo dal datasheet, e penso proprio che dipenda dal timng, se puoi chiedimi qlk info necessaria per darmi qlk buon consiglio...saluti ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 17:09:55 ---------------------------------------- Questa immagine è talmente sfuocata que a malapena riesco a percepire la parola "saturation"... Non hai niente di meglio, il datasheet in pdf, per esempio? Leggi anche [url=http://www.ilvg.it/forum/viewtopic.php?p=9036#9036:1uwmjm8e]questo[/url:1uwmjm8e]mio post in merito all'acquisizione di dati e del Teorema di Nyquist.   ---------------------------------------- AUTORE: 2020 DATA :29/06/2007 - 19:56:42 ---------------------------------------- certo gyc.... grazie per l'aiuto, sai una cosa è avere qlkn che ti indirizza sulla strada giusta, un'altra è cercare su tutto... nel datasheet ci sono tutti i segnali in gioco... in pratica io li dovrei visualizzare tutti... in particolare quello video ad ogni fronte di salita del segnale trigger e stoppare l'acquis ad ogni fronte di discesa del segnale l-eos.. li troverai tutti qui..... ciao!! è bello potersi confrontare su queste cose... ---------------------------------------- AUTORE: 2135 DATA :02/07/2007 - 15:53:47 ---------------------------------------- ciao gyc, ti allego le imm del vi che utilizzo, ho inserito un loop a tutto per poter variare tutte le impost in running e scegliere il miglior setup, poi ti allego le immm di alcune acquisizioni che ho fatto ....cosa ne pensi cosa dovrei fare pe migliorare il tutto? ---------------------------------------- AUTORE: 2020 DATA :02/07/2007 - 21:23:10 ---------------------------------------- ciao, gyc rileggendo le varie discussioni, vedo che ti riferisci spesso al teorema di nyquist. ma il problema è che io non devo campionare il segnale, e li che serve il teorema di nyquist, ma devo acquisire il segnale ogni volta che c'è un fronte di salita del segnale trigger. a questo punto devo utilizzare ugualmente il blocco timng? in base a cosa imposto il rate? visto che il campionamento lo fa gia il circuito, perchè non posso indicare sample=1 (dice minimo 2) che mi da errore? ciao aspetto risposta!! ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 09:10:34 ---------------------------------------- [quote="antoniotrapasso":2b5dm9th]ciao, gyc rileggendo le varie discussioni, vedo che ti riferisci spesso al teorema di nyquist. ma il problema è che io non devo campionare il segnale, e li che serve il teorema di nyquist, ma devo acquisire il segnale ogni volta che c'è un fronte di salita del segnale trigger. a questo punto devo utilizzare ugualmente il blocco timng? in base a cosa imposto il rate? visto che il campionamento lo fa gia il circuito, perchè non posso indicare sample=1 (dice minimo 2) che mi da errore? ciao aspetto risposta!![/quote:2b5dm9th] Ma cosa stai dicendo??????? Dal momento che devi effettuare una conversione da analogico a digitale stai campionando il segnale. La domanda stessa "in base a cosa imposto il rate" è soltanto l'ultimo indicatore di questo fatto. Ed è proprio in base al teorema di Nyquist che devi impostare il rate!... Il fatto che l'acquisizione si faccia con un trigger di inizio ed un'altro di fine, è soltanto una questione pratica di sincronizzazione! Oppure - cosa tutt'altro che impossibile - non ho capito niente di cosa stai facendo e quindi, oltre che inutili, i miei consigli ti hanno copletamente fuorviato. ---------------------------------------- AUTORE: 2020 DATA :03/07/2007 - 09:38:19 ---------------------------------------- Ma infatti la conversione da nalogico a digitale l'effettua il circuito! una parte del datasheet (che non ho in forma elettronica ma che è molto simile a quello allegato) dice: trigger: digital output signal (cioè in output dal circuito in questione, quindi in input al daq): is used to trigger A/D conversion timing. the video signal is output for 2 clocks as the light signal output. the trigger pulse starts rising immediately after the signal of 1 clock is output. the number of trigger pulses that are output during one scan equals the number of pixels. ho copiato pari pari cio che sta scritto in questa sezione dal datasheet. Da qui io capisco che la conversione A/D la fa il circuito. ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 10:13:08 ---------------------------------------- Invece io no! Non è detto che quei segnali di trigger non siano studiati apposta per il convertitore A/D esterno. Non sto dicendo che sbagli, ma che è poco per la tua conclusione. Devi capire dalle caratteristiche del segnale video se è analogico opure se è già digitale. A me sembra strano che sia digitale, perchè vorrebbe dire che è una uscita digitale seriale, per forza di cose. Nella mia esperienza, la stragrande maggioranza dei manuali è fatta "pietosamente", per dirlo eufemisticamente, e solo parlando con un tecnico si capisce - più che altro si intuisce - ciò che serve sapere. Ed io proprio non posso perdere tempo ad "scoprire" ciò che dovrebbe essere ben chiaro, quindi in queste cose sono spietato e li massacro di telefonate ed e-mail, anche direttamente ai tecnici della casa madre! Per risparmiare tempo, chiama il produttore o il rivenditore in Italia e cerca di parlare con un tecnico. ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 10:20:31 ---------------------------------------- [quote="francescaaprile":1keqlyng]ciao gyc, ti allego le imm del vi che utilizzo, ho inserito un loop a tutto per poter variare tutte le impost in running e scegliere il miglior setup, poi ti allego le immm di alcune acquisizioni che ho fatto ....cosa ne pensi cosa dovrei fare pe migliorare il tutto?[/quote:1keqlyng] Attenzione che il loop non va messo attorno a tutto. In questo modo ad ogni ciclo reinizializzi tutto, con enorme perdita di tempo e anche di segnale, almeno potenzialmente - oltre al fatto che non è certo il modo corretto e per cui sono state pensate le funzioni. Solo la funzione di lettura e display del segnale vanno messe nel loop.   ---------------------------------------- ================================================================================ Segnale TTL da porta parallela ================================================================================ AUTORE: 1853 DATA :07/05/2007 - 15:42:57 ---------------------------------------- Buongiorno a tutti, a breve dovrò affrontare il problema di prelevare un segnale TTL dal mio pc, per inviare un "trigger" a degli strumenti esterni al pc. Sono quasi sicuro che questo si possa fare attraverso un PIN della porta parallela (che ha già la tensione 0 - 5 V, mentre la seriale no), trasformando il cavo parallelo in BNC. è possibile gestire singolarmente i PIN della parallela da Labview? Qualcuno di voi ha già affrontato il problema? consigli? grazie Luigi ---------------------------------------- AUTORE: 680 DATA :07/05/2007 - 19:42:53 ---------------------------------------- ecco qui: download.php?id=956 in ogni caso questo argomento è stato trattato più volte nel forum... prova a fare una ricerca con la parola "parallela" oppure "lpt" ciao..... ---------------------------------------- AUTORE: 2690 DATA :21/07/2009 - 15:45:46 ---------------------------------------- salve, io ho esattamente lo stesso problema riportato qui qualche anno fa da Luigi15: devo inviare un segnale di trigger 0-5V ad una scheda tramite la porta parallela (precisamente adattatore USB/parallela). Ho labview 8.5 e windowsXP. purtroppo il link nella risposta non e' piu' attivo. qualcuno sa qual e' il nuovo link o ha qualche nuovo suggerimento? sto cercando nel forum tutti gli argomenti relativi a parallela e LPT ma ancora non ne sono venuta a capo. grazie ---------------------------------------- AUTORE: 482 DATA :22/07/2009 - 07:59:43 ---------------------------------------- Se cerchi tra gli esempi di labview scrivendo Parallel, trovi un esempio che ti dice come pilotare la porta parallela, il significato di ogni canale e la descrizione di ogni pin. ---------------------------------------- AUTORE: 2690 DATA :22/07/2009 - 17:32:53 ---------------------------------------- grazie mille, il programma sembra semplice, adesso il problema e' che non riesco a determinare l'indirizzo della mia porta parallela utilizzando un adattatore usb. ho letto che altri utenti hanno avuto questo problema, ma non ho letto di soluzioni. per caso c'e' stato qualche aggiornamento negli ultimi tempi? e' possibile da LV 8.5 sapere l'indirizzo decimale della porta LPT (utilizzando un VISA magari)? grazie ancora ---------------------------------------- AUTORE: 482 DATA :23/07/2009 - 14:01:38 ---------------------------------------- ehm.... c'e' un errore di fondo... Io tempo fa avevo avuto lo stesso problema. Se usi un adattatore USB/parallela, tutto il discorso salta. L'adattatore USB lavora come una seriale e grazie al driver genera delle uscite come s efosse una parallela m anon è una parallela fisica, quindi non puoi usare i VI PORT IN e PORT OUT che invece gestiscono direttamente un harware. Per fare quello che vuoi fare tu, dovresti trovare le dll dell'adattatore e scoprire come sono fatte e vedere se si riesce a pilotare i singoli PIN. Io con l'adattatore che avevo ci ho rinunciato perchè non sono riuscito a trovarle. Se trovi una soluzione, fammela sapere ---------------------------------------- AUTORE: 2690 DATA :23/07/2009 - 16:27:41 ---------------------------------------- grazie mille, faro' ancora qualche tentativo seguendo i tuoi consigli prima di arrendermi e passare ad un vecchio portile con la porta parallela. Se puo' essere utile a qualcuno avevo trovato questo programma che potrebbe essere adatto all'uso http://www-user.tu-chemnitz.de/~heha/ba ... ex.html.en (se il link non funziona provate a cercare usb2lpt su google e dovrebbe essere il primo sito che compare, e' un sito tedesco) purtroppo non riconosce il mio adattatore usb-parallela che e' particolarmente rognoso, quindi non so se puo' andare bene. grazie ancora questo forum e' decisamente utile e con utenti eccezionali ---------------------------------------- ================================================================================ chiedo suggerimento per un semplice watermark ================================================================================ AUTORE: 123 DATA :07/05/2007 - 22:36:27 ---------------------------------------- Vorrei fare dei grafici da fare con labview e allo stesso tempo metterci sopra (al centro del graph entro il plot) un watermark. Vorrei mettere un watermark poco invasivo (sfondo trasparente). Si può fare in modo semplice? ---------------------------------------- AUTORE: 384 DATA :08/05/2007 - 08:40:11 ---------------------------------------- Devi creare la tua immagine di sfondo con il watermark esattamente come la vorresti vedere: dimensione, colore di fondo, watermark, ecc. La metti nel front panel, [u:1ompyeic]sotto[/u:1ompyeic] il grafico. Poi, imposti il colore dello sfondo del grafico come trasparente. Naturalmente devi aggiustare dimensioni e posizioni in modo da creare il giusto effetto che vuoi ottenere - credo che con un paio di tentativi te la caverai! \"8)\" [Per facilitarti la vita, semmai dovessi riorganizzare il fornt panel - capiterà di sicuro - riunisci sfondo e grafico in un "group".] ---------------------------------------- ================================================================================ Istanze multiple ================================================================================ AUTORE: 301 DATA :08/05/2007 - 07:41:17 ---------------------------------------- Ciao a tutti, vorrei chiedere consiglio su come fare per creare un programma in Labview (ovviamente) che possa essere lanciato piu volte contemporaneamente cliccando sull'icona. ---------------------------------------- AUTORE: 301 DATA :21/05/2007 - 07:26:41 ---------------------------------------- Scusate, ma credo che la domanda non sia troppo chiara e creco di chiarirmi meglio..... Un exe creato co Application builder, puo essere lanciato piu volte? Ovvio che si possono creare vi che richiamano altri in maniera rientrante tutte le volte che si vuole, ma un eseguibile puo essere lanciato piu di una volta (come succede con i programmi creati direttamente con C)? Grazie ancora ---------------------------------------- AUTORE: 927 DATA :21/05/2007 - 08:26:44 ---------------------------------------- Io avevo capito ma non sapevo cosa rispondere \":lol:\" Anche un exe in realtà usa il runtime engine per eseguire un vi, che normalmente è unico in memoria. Penso, ma è solo un'ipotesi, che i vi rientranti siano la soluzione anche per questo problema. Il tuo exe dovrebbe avere solo il compito di lanciare dinamicamente (con Invoke node) un vi rientrante e poi terminare, per cui ogni volta che lo clicchi te ne apre una copia. Ma la fattibilità di questa cosa è ancora tutta da verificare ---------------------------------------- AUTORE: 384 DATA :22/05/2007 - 08:22:31 ---------------------------------------- Io ho avuto un problema inverso: NON volevo che un eseguibile creato con l'ApplicationBuilder fosse lanciato più di una volta. Ho scoperto, con l'auito dei ragazzi del forum, che di fatti l'eseguibile NON può essere istanziato più volte già di suo - quindi, io non avevo il problema. Non so cosa tu abbia bisogno di fare, ma sono d'accordo che la soluzione può essere solo nel'utilizzo di VI dinamici. Ci sará un "modulo base" che funzionerà come "motore" per lanciare le varie istanze, magari con un semplice click su un pulsante. Aggiungo come promemoria, che se usi risorse uniche (file, port seriale, i/o, ecc) dovrai ovviamente risolvere il problema della concorrenza nel loro uso, con i meccanismo che già LV ti mette a disposizione. Buon divertimento. ---------------------------------------- AUTORE: 645 DATA :22/05/2007 - 11:42:30 ---------------------------------------- [quote="gyc":1xhsy0bi]...la soluzione può essere solo nel'utilizzo di VI dinamici. Ci sará un "modulo base" che funzionerà come "motore" per lanciare le varie istanze...[/quote:1xhsy0bi] Concordo con Gyc, io uso questa soluzione. Una finestra base e da quella puoi lanciare il VI quante volte vuoi... In più agendo sul titolo della finestra puoi adattare la scritta per esempio inserendo un numero progressivo... ---------------------------------------- AUTORE: 301 DATA :22/05/2007 - 15:58:39 ---------------------------------------- Grazie a tutti per le risposte.... Effettivamente mi sono gia "arrangiato in questo modo. Inoltre per sadere un po i vostri dubbi, vi spiego: ho sviluppato una applicazione che acquisisce i dati da delle macchine pre emodialisi via TCP/IP, per cui puo essere lanciata piu volte contemporaneamente e l'avere il pannellino il cui unico scopo è lanciare un' aistanza è semplicemente poco elegante.....tutto li! Diciamo che ero gia arrivato alla "fighineria" del lavoro......Grazie ancora a tutti!!!!Spero in futuro di potervi essere utile ---------------------------------------- AUTORE: 301 DATA :25/07/2008 - 08:14:16 ---------------------------------------- riecchime qua! Ia discussione è un po datata, ma si sa che le cose stagionate sono le piu buone...... Per poter lanciare un exe piu di una volta basta aggiungere ne file .ini allowmultipleinstaces=true In effetti mi sono trovato altre volte ad affrontare questo "problema", es. un banco di test con PLC Crouzet pilotati da labview che comunicano via usb. In pratica lo stesso pc gestisce piu banchi gemelli indipendenti tra loro. Ovvio che in queste situazioni la gestione di un "server" che lanci un vi rientrante è ottima ma meno elegante..... Ciao a tutti e buone ferie! ---------------------------------------- AUTORE: 43 DATA :25/07/2008 - 16:09:29 ---------------------------------------- [quote="aris":f0ygyaao]... basta aggiungere ne file .ini allowmultipleinstaces=true In effetti mi sono trovato altre volte ad affrontare questo "problema", es. un banco di test con PLC Crouzet pilotati da labview che comunicano via usb. In pratica lo stesso pc gestisce piu banchi gemelli indipendenti tra loro. Ovvio che in queste situazioni la gestione di un "server" che lanci un vi rientrante è ottima ma meno elegante..... Ciao a tutti e buone ferie![/quote:f0ygyaao] Un'alternatival stupidissima e "limitata" consiste nel duplicare letteralmete il file .exe per un numero preciso di volte. Questo consente di avere un unico eseguibile che si comporta in maniera diversa a seconda per es. di un file di config. o in base ai parametri sulla linea di comando, mantenendo "unicità" nell'esecuzione (cioè ogni copia può girare in modo mono-istanziato). Fra gli esempi di applicazioni in cui la multi-istanza è fortemente richiesta, si possono considerare tutte quelle applicazioni "custom" che analizzano file di dati in post-analisi. Quindi tutte quelle applicazioni che vengono lanciate doppioclickando sul nome di un file: a me era capitato di fare una applicazione VB che fungeva da "viewer" di file prodotti da un altro SW di collaudo. Il SW (VB) di collaudo produceva file contenenti gli esisti dei collaudi, già criptati per impedire che fossero manomessi. I file prodotti avevano una estensione particolare e poteveno essere visionati/analizzati/stampati con il "viewer" semplicamente doppioclickando su di essi. Spero di essermi fatto capire. Curiosità. Se avete, come me, installate sullo stesso PC, + versioni di LabVIEW, avrete notato che è possibile mandare in esecuzione una sola istanza per ogni versione di LV installato . Duplicando il file "LabVIEW.exe" (nella stessa dir dell'originale, possibilmente duplicando con lo stesso nome il .ini corrispondente) si ottengono 2 versioni di LabVIEW che possono essere eseguite parallelamente. Boh! potrebbe essere utile per "particolari" sessioni di Debug. Attenzione. Entrambi i LabVIEW possono caricare i medesimi VI e salvarne le modifiche... Ovviamente l' "Application.Name" letto da VI corrisponderà al nuovo nome dato a LabVIEW.exe, mentre da "Windows Task Manager" -> "Application" tutte le versioni di LabVIEW e i LabVIEW "duplicati" avranno lo stesso Task Name cioè "LabVIEW" Ricambio il saluto di buone ferie bye ---------------------------------------- AUTORE: 947 DATA :29/09/2009 - 15:37:10 ---------------------------------------- [quote="aris":359k67df] Per poter lanciare un exe piu di una volta basta aggiungere ne file .ini allowmultipleinstaces=true [/quote:359k67df] ... \":?:\" Perchè non mi funziona?? .. Uso il LV7.1 .. c'entra qualcosa? .. Non ho settato il VI come Rientrante .. Serve?? .. Non dovrebbe dal momento che 2 exe non condividono la Memoria .. \":?:\" Mi manca qualcosa?? \":?:\" Non è che semplicemente non è scritto così "allowmultipleinstaces=true" ma con maiuscole o "_" ?? .. ho provato invece a fare una copia dell'exe e se lancio l'originale e contemporaneamente la copia .. funziona tutto .. ( a parte che se scrivono/leggono su file entrano in concorrenza non gestita e succede un non so chè !! .. ma questo è ovvio!! ) ---------------------------------------- AUTORE: 301 DATA :29/09/2009 - 15:52:07 ---------------------------------------- Si, ovvio......quelle cose vanno gestite a dovere... Mi sembra strano che non funzioni, questa impostazione l'ho trovata per la 7.1 (appunto). No, no, va scritto solamente allowmultipleinstancies=true in coda alle altre impostazioni del file ini che viene creato di default..... ---------------------------------------- AUTORE: 947 DATA :29/09/2009 - 16:07:58 ---------------------------------------- .. Innanzitutto .. Grazie per la risposta repentina ... [quote="aris":2u3zhr04]Si, ovvio......quelle cose vanno gestite a dovere...[/quote:2u3zhr04] Se ti riferisci alla concorrenza sui file ... sì certo .. Se ti riferisci al VI come Rientrante ... non l'ho fatto .. \":?:\" serve??.. [quote="aris":2u3zhr04]No, no, va scritto solamente allowmultipleinstancies=true in coda alle altre impostazioni del file ini che viene creato di default.....[/quote:2u3zhr04] .. è quello che ho fatto .. \":cry:\" ---------------------------------------- AUTORE: 301 DATA :29/09/2009 - 17:56:20 ---------------------------------------- dire che nn serve affatto.....domani mattina verifico e poi ti dico, ma è una cosa ce ho già fatto spesso..... ---------------------------------------- AUTORE: 301 DATA :30/09/2009 - 06:10:28 ---------------------------------------- Buoooooooooooooooooon dì! Bene, ho fatto qualche prova e confermo quanto ho scritto...... No, non serve settare il vi come reentrant, è l'exe che viene lanciato più volte..... Purtroppo non ho LV 7.1 installato ma sia con l'8 che con 8.5 ti assicuro che funziona! Prova magari a fare un piccolo exe (che non faccia nulla) e settare allowmultipleinstancies=true sul suo file ini! magari poi lo posti zippato e vedo se da me funziona. Buona giornata! ---------------------------------------- AUTORE: 482 DATA :30/09/2009 - 08:32:31 ---------------------------------------- [quote="Luca.glt":1us9usfu] \":?:\" Non è che semplicemente non è scritto così "allowmultipleinstaces=true" ma con maiuscole o "_" ??[/quote:1us9usfu] Se l'hai scritto cosi' stai attento che ti manca una "n" e una "i". Hai scritto instaces anzichè instancies ---------------------------------------- AUTORE: 947 DATA :30/09/2009 - 14:35:29 ---------------------------------------- ... \":cry:\" Grazie a tutti maaaaaa ... sì è vero .. avevo scritto male .. mi ero fidato e ho fatto il Copy&Paste senza correggere .. \":roll:\" .. ora ho verificato con "allowmultipleinstancies=true " ... maaaaaaaaa ... Nulla di fatto .. non funziona !! Grazie cmq .. ---------------------------------------- AUTORE: 43 DATA :30/09/2009 - 14:51:36 ---------------------------------------- [quote="Luca.glt":2rlurioe]... \":cry:\" Grazie a tutti maaaaaa ... sì è vero .. avevo scritto male .. mi ero fidato e ho fatto il Copy&Paste senza correggere .. \":roll:\" .. ora ho verificato con "allowmultipleinstancies=true " ... maaaaaaaaa ... Nulla di fatto .. non funziona !! Grazie cmq ..[/quote:2rlurioe] Cercando in LaBVIEW.exe trovo allowMultipleInstances SENZA LA "i"!!!!! ---------------------------------------- AUTORE: 482 DATA :30/09/2009 - 15:16:08 ---------------------------------------- effettivamente quella "i" non so perchè stia li.... ---------------------------------------- AUTORE: 947 DATA :30/09/2009 - 15:24:33 ---------------------------------------- ...... ahhhhhhhhh .... NON CI CREDO ..... Stavo uscendo pazzo per un a "i " ????? \":o\" Sì !! ....... Ora Funonzia !!! \":P\" Thanks for all, folks !!! ---------------------------------------- ================================================================================ generare un segnale NOISE ================================================================================ AUTORE: 2054 DATA :08/05/2007 - 13:43:19 ---------------------------------------- Salve a tutti, il mio problema è quello di dove generare in uscita da una scheda DAQ 6221 un rumore gaussiano exponenzialmente correlato, labview 7.0 ha il modulo per la generazione di rumore bianco gaussiano ma senza la possibilità di modificare il tipo di autocorrelazione... qualche suggerimento? GRAZIE \":D\" ---------------------------------------- AUTORE: 384 DATA :18/06/2007 - 10:10:38 ---------------------------------------- Nei VI espress trovi un generatore di rumore molto versatile, ma non genera questo tipo specifico (anche chiamato "coloured gaussian noise"). Credo che non resti alternativa se non implementare un'algoritmo che lo generi. Trovi un'esempio scritto in Fortran [url=http://www.fortran.com/gauss_random.html:3a5d6zvf]qui[/url:3a5d6zvf].   ---------------------------------------- AUTORE: 1165 DATA :18/06/2007 - 19:23:26 ---------------------------------------- aiuto .. ricordo poco e forse dico una cavolata ma .. rumore gaussiano (ovvero rumore bianco) non voleva dire proprio completamente scorrelato? .. come ti ha giustamente detto gyc se lo correli anche minimamente diventa subito "colorato" e non è più gaussiano .. mi sembra .. e scusa se scavolo .. ma comunque a parte la precedente osservazione vale esattamente quanto detto da gyc .. tu puoi costruirti la formula che ti da la distribuzione di probalilità desiderata a partire da qualunque altra distribuzione di probalilità .. e ti puoi costruire da solo i tuoi noise colorati .. in bocca al lupo, enr ---------------------------------------- AUTORE: 384 DATA :19/06/2007 - 09:16:02 ---------------------------------------- In realtà il rumore gaussiano non è "bianco" è - appunto - gaussiano perchè la sua distribuzione di probabilità è gaussiana. Il rumore biano è quello con distribuzione costante. [Un problema è che i generatori di rumore bianco (ma cosí bianco che più bianco non si può! \":lol:\" ) sono dificili da implementare] Il "rumore gaussiano colorato" parte da un generatore di rumore gaussiano per poi "colorarlo"; l'esempio che ho [i:3bs3x6o9]linkato[/i:3bs3x6o9] fa esattamente quello. ---------------------------------------- ================================================================================ Comunicazione e gestione di uno Strumento collegato ad USB ================================================================================ AUTORE: 2055 DATA :08/05/2007 - 16:25:09 ---------------------------------------- Salve sono una nuova utente, mi approccio da poco al labview e aimè devo risolvere questo problema che mi assilla. Devo comunicare con uno strumento della Thorlabs collegato alla porta USB del PC, che a sua volta gestisce due nastri. Lo strumento è della NI ma non posso(per imposizione)usare le activex altrimenti avrei già risolto, invece devo fare tutto di sana pianta, adesso quello che mi servirebbe, almeno come incomincio, [b:3jtjehyv]è come inviare informazioni alla usb e quindi mettere in stato di pronto lo Strumento e soprattutto cosa inviarci?[/b:3jtjehyv] Qualcuno può aiutarmi? Grazie mille e saluti ---------------------------------------- AUTORE: 2055 DATA :08/05/2007 - 16:44:43 ---------------------------------------- Dimenticavo che utilizzo la versione 8. \":)\" ---------------------------------------- AUTORE: 482 DATA :09/05/2007 - 07:06:00 ---------------------------------------- Dai un occhiata in giro per il forum, la tua soluzione dovresti trovarla nelle funzioni VISA. \":wink:\" ---------------------------------------- ================================================================================ errore "tentativo lettura oltre ultimo campione" ================================================================================ AUTORE: 1555 DATA :09/05/2007 - 17:31:45 ---------------------------------------- ho un problema che mi si presenta ogniqualvolta; il vi esegue un monitoraggio della rete elettrica e quando le tensioni superano una certa soglia viene registrato tutto (data, valori,forme d'onda etc) il programma funziona ma ognitanto esce fuori un errore e non capisco da dove possa provenire, l'errore è il seguente: ---------------------------------------- AUTORE: 1555 DATA :18/05/2007 - 18:33:18 ---------------------------------------- nessuno può aiutarmi \":cry:\" \":cry:\" \":cry:\" \":cry:\" ---------------------------------------- AUTORE: 927 DATA :21/05/2007 - 08:35:16 ---------------------------------------- Io non ho installato il DAQmx, però... se ho ben capito il programma funziona, anche quando esce quell'errore? Se per te è sufficiente ignorarlo, prendi l'error out che esce da DAQmx Read e passalo a un blocco Clear Errors ---------------------------------------- AUTORE: 1555 DATA :21/05/2007 - 22:44:05 ---------------------------------------- si funziona , provo come dici tu; per adesso ho provato a disabilitare nelle opzioni questi "enable automatic error handling in new VIs" "enable automatic error handling dialogs" comunque grazie ---------------------------------------- ================================================================================ OSCILLATORE LOCALE COMANDATO DALL'ESTERNO ================================================================================ AUTORE: 1669 DATA :10/05/2007 - 09:01:39 ---------------------------------------- Ciao a tutti vorrei realizzare un oscillatore locale in labview questo oscillatore locale deve essere comdanato dall'esterno del pc All'esterno devo mettere un'antenna. Le variazioni dell'oscillatore locale devono essere provocate dalla capacità che si viene a formare tra la mano e l'antenna esterna. Vorrei sapere se è realizzabile in labview e che tipo di scheda di acquisizione posso utilizzare per mettere in ingresso l'antenna. Vi ringrazio in anticipo ---------------------------------------- AUTORE: 384 DATA :11/05/2007 - 09:08:12 ---------------------------------------- Ma, non ne abbiamo già discusso in [url=http://www.ilvg.it/forum/viewtopic.php?p=13098:31fruc0o]questo[/url:31fruc0o] thread? ---------------------------------------- AUTORE: 384 DATA :11/05/2007 - 09:30:30 ---------------------------------------- Comunque, se guardi [url=http://www.talkingelectronics.com/html/CapMeter.html:ya4xtn7t]qui[/url:ya4xtn7t], trovi la descrizione di un piccolo misuratore di capacità, con uscita analogica, in grado di misurare capacità da 1pF. Se la capacità fra la mano e l'antenna è maggiore di 1pF (e a me sembra che lo sia), puoi usare questo strumentino come "front-end" al quale collegare l'antenna. A questo punto, puoi acquisire l'uscita direi con qualunque scheda NI. Se puoi usare una scheda PCI, suggerirei la PCI-6023. C'è anche la USB-6008 che costa anche poco e secondo me basta per il tuo progetto. ---------------------------------------- ================================================================================ AIUTO TESI NIMODBUS ================================================================================ AUTORE: 2056 DATA :10/05/2007 - 09:17:09 ---------------------------------------- \":cry:\" Salve a tutti , sono nuova del forum e sono qui perchè ho bisogno di un aiuto per la mia tesi in cui devo usare questo labview a me sconosciuto.Dispongo di una versione 8.2 e il mio compito tanto per iniziare è di mettermi in comunicazione con cavo Ethernet a un gateway che mi han dato in dotazione(Woodhead v 1.3 tipo industriale).MI han detto di usare la libreria Nimodbus e l'ho presa da internet e ora nel labview ho vari esempi che pero' non so come usare.Qualcuno potrebbe gentilmente dirmi da dove iniziare? \":D\" Ogni piccolo suggerimento sarebbe vitale....se avete bisogno di altre informazioni per aiutarmi chiedete... grazie già da ora ---------------------------------------- AUTORE: 1313 DATA :10/05/2007 - 17:46:17 ---------------------------------------- Ciao, non sono un esperto di modbus, ma io procederei procurandomi il manuale dello strumento a cui ti devi interfacciare, in modo da mandare un comando tramite gli esempi di labview e vedere se l'oggetto risponde correttamente. Poi ti consiglio di scaricare qualche guida dal sito ed in giro per capire cosè labview; e ti consiglio di cliccare nel menù in alto a destra Help-> Show Context Help, così quando vai con il cursore su un oggetto ti esce la descrizione ( a me che non sono un esperto è utilissimo). Cris ---------------------------------------- AUTORE: 838 DATA :11/05/2007 - 16:55:41 ---------------------------------------- quanto sconosciuto?? da non capire gli esempi?? se il tuo livello di conoscenza di lw è basso, mi sa che sarà molto ardua la cosa. inizia magari a creare qualche vi che fa cose stupide, per poi man mano entrare nel dettaglio e modificare gli esempi, fino a crearti il tuo vi personale \":D\" ---------------------------------------- AUTORE: 129 DATA :12/05/2007 - 08:06:21 ---------------------------------------- Innanzitutto devi avere le idee chiare sul Modbus e su come esattamente lo interpreta lo strumento (modbus è uno standard a cui molti fanno piccole variazioni che ti rendono la vita difficile). Le librerie per il modbus dovrebbero sollevarti dalle fasi di formazione del codice modbus appuntpo (esempio calcolo del CRC ecc). Ora non ti resta che prendere le funzioni disponibili nella libreria NIModbus e utilizzarle con la logica che hai recepito per la formazione del protocollo MOdbus. ---------------------------------------- AUTORE: 2126 DATA :25/05/2007 - 12:13:10 ---------------------------------------- Salve a tutti..sono nuova di qui. Io ho un progetto da fare per l'università molto simile a quello di lauretta83 che consiste nel progettare un braccio meccanico che riconosca le forme degli oggetti che prende. Prima di usare il braccio però devo fare la simulazione con il gateqay che è come l'altro un woddheads. Ho letto tutti i vostri consigli e li ho seguiti. Ho letto il manuale e mi sono praticamente scannerizzata la libreria, ma non riesco a trovare il nesso che mi serve. Come lei devo far in modo che il gateway funzioni con i comandi in Labview 8.2 invece che con la sua interfaccia. Vi ringrazio tanto per l'aiuto che mi potrete dare. \":wink:\" ---------------------------------------- AUTORE: 2056 DATA :31/05/2007 - 15:23:14 ---------------------------------------- Grazie dell'apporto,Giusi!!! dopo li ringraziamo per bene questi ragazzi che ci danno una mano. Comunque ho seguito i consigli e ho visto gli esempi dati,vi ringrazio perhcè già qualcosa sto capendo. inoltre mi è giunto un buon consiglio ma vorrei che mi spiegaste bene cosa fare: "in LabVIEW non vedi direttamente il Gateway, ma lo utilizzi indirettamente facendo le chiamate al Modbus I/O Server. In breve: 1) Aggiungi l'I/O Server "Modbus Ethernet" nel Project di LabVIEW 8.20 2) Crei una Shared Variable e la leghi (Bind to Source) all'indirizzo del Modbus TCP che avrai precedentemente mappato su un indirizzo Profibus tramite il sw della Woodhead 3) Utilizzi la Shared Variable nel diagramma di LabVIEW come se fosse una variabile normale" io ho la libreria nimodbus ma questo I/O server non ce l'ho ..qualcuno ha idea da dove si scarica?. Cmq il ateway e' tra il PC e il PLC(Siemens ET 200M IM 153-1),quest'ultimo ha due moduli digitali con 16 led ognuno.è solo una prova e non dovrebbe essere difficile accendere e spegnere i led col labview no?.... INoltre qualcuno mi sa dire dove trovare i file gsd di un PLC se non li ho sul PC? grazie...^_^ ---------------------------------------- AUTORE: 2126 DATA :31/05/2007 - 20:12:26 ---------------------------------------- [quote="Lauretta83":1an2vhyh]Grazie dell'apporto,Giusi!!! dopo li ringraziamo per bene questi ragazzi che ci danno una mano.[/quote:1an2vhyh] A dir la verità più che un apporto era perchè mi serve \":D\" ..cmq io li ringrazio già da ora li ringrazio... grazie per qualsiasi piccolo aiuto. \":D\" ---------------------------------------- AUTORE: 2056 DATA :04/06/2007 - 08:14:54 ---------------------------------------- Sto studiando sul modulo DSC del labview per continuare questo progetto.Gli esempi li ho fatti e capiti.Ho creato un IO server che comunica con un simulatore di modbus,il vui VI e' incluso nel DSC. Adesso dovrei capire come si usano i registri e come interfacciarli al PLC. Se qualcuno avesse qualche idea o qualsiasi tipo di consiglio, scriva pure...ogni aiuto e' ben accetto.. GRAZIE ---------------------------------------- ================================================================================ Visualizzazione e scomposizione immagini ================================================================================ AUTORE: 963 DATA :10/05/2007 - 11:38:20 ---------------------------------------- Ciao a tutti, C'è qualcuno che può dirmi se c'è la possibilità con LabView di aprire un'immagine da file e confrontare le varie tonalità di colore (es. 60% rosso, 20% giallo e 20% Nero)? Ciao, Stefano ---------------------------------------- AUTORE: 2031 DATA :10/05/2007 - 13:01:47 ---------------------------------------- Per quel che ne so, direi di no. Io lo so far bene con linguaggio c, un ambiente di sviluppo c come DEVC++ e irfunview ---------------------------------------- AUTORE: 384 DATA :11/05/2007 - 10:02:10 ---------------------------------------- [quote="vander":1pw635eh]Per quel che ne so, direi di no. Io lo so far bene con linguaggio c, un ambiente di sviluppo c come DEVC++ e irfunview[/quote:1pw635eh] Non vedo il perchè di quest'affermazione: se lo puoi fare con "C", perchè secondo tè non è possibile con LabView? Lo puoi tranquillamente fare aprendo il file e facendo un istogramma dell'immagine stessa. Le funzioni per aprire il file e per convertire i dati dal formato specifico in un cluster già esistono (ma anche quelle puoi scrivere tu stesso). Devi solo scrivere il codice necessario per elaborarne l'istogramma. Se invece hai il NI-VISION, ci sono già questi blocchi pronti: basta aprire il file e usare il blocco histograma - fatto! ---------------------------------------- ================================================================================ errore 0xbfff006b ================================================================================ AUTORE: 1612 DATA :10/05/2007 - 16:15:10 ---------------------------------------- Salve a tutti, ho un VI che legge dei dati da seriale. Questo VI normalmente funziona bene, in alcuni casi, non sistematici mi restituisce il codice di errore in allegato. Mi piacerebbe capire la fonte dell'errore e riuscire a gestirlo al meglio. Se questo non fosse possibile, invece di dover far rispondere con un continue l'operatore preferirei non mi venisse segnalato a video ma solo come normale errore così da gestirlo con una routine del caso. Qualcuno ha informazioni in merito. GRAZIE ---------------------------------------- AUTORE: 645 DATA :10/05/2007 - 22:17:26 ---------------------------------------- Può essere dovuto al fatto che ogni tanto si verifica qualcosa che prevede il riempimento del buffer... mi spiego: può essere che qualche volta succede qualcosa (invii un comando, c'è qualche errore nello strumento...) che prevede una risposta da parte dello strumento. Questa risposta viene messa nel buffer. Se non viene letta (e in una routine che normalmente aspetta dei dati questa scrittura in più probabilmente non viene letta) il buffer rimane occupato e durante la lettura successiva possono verificarsi errori tra i quali quello segnalato. ---------------------------------------- AUTORE: 1612 DATA :11/05/2007 - 08:40:35 ---------------------------------------- Ciao, facendo in caso di valore errato diverse letture potrei "fregarmene" dell'errore, ma in questo caso come posso dire a Labview di non rompermi le scatole con questo debug? Grazie! Sei sempre disponibilissimo! ---------------------------------------- AUTORE: 645 DATA :11/05/2007 - 09:02:47 ---------------------------------------- Nella paletta degli errori trovi il blocco "Clear errors" che cancella l'eventuale errore verificatosi. Guarda l'immagine... ---------------------------------------- AUTORE: 384 DATA :11/05/2007 - 09:04:31 ---------------------------------------- Devi gestire tu l'errore, convogliando il "filo" dell'errore in un blocco di gestione degli errori ed impostando la gestione senza finestre di dialogo. Se guardi l'help dei blocchi di errore è tutto chiaramente spiegato. Naturalmente devi poi creare tu del "codice" che prenda le dovute azioni in caso di errore. ---------------------------------------- AUTORE: 1612 DATA :14/05/2007 - 06:38:18 ---------------------------------------- Grazie ragazzi! proverò! ---------------------------------------- ================================================================================ Data Access Component ================================================================================ AUTORE: 129 DATA :13/05/2007 - 14:02:08 ---------------------------------------- Per chi si affaccia ai database in labview, penso che questo link sia il punto di partenza [url=http://msdn2.microsoft.com/en-us/data/aa937703.aspx:1sxqn8lf]Data Access Component MDAC[/url:1sxqn8lf] Da cui tra l'altro si può scaricare la libreria MDAC obbligatoria per usare ADO su labVIEW. ---------------------------------------- ================================================================================ uso task DAQmx ================================================================================ AUTORE: 2032 DATA :14/05/2007 - 09:01:08 ---------------------------------------- Ciao a tutti, ho a che fare con una PCI 6025E da usare con LabView. Prima di partire alla cieca, mi sto un po documentando con consigli di uso ecc e con piccoli esercizi banali. Mi è sorta una curiosità - dubbio.. \":?\" Cercando esempi, forum, guardando un po vari VI, ho visto che l'usuale uso delle task è di crearle, usarle con read o write, e poi farne il clear alla fine. Ma se io le ho già create in MAX, devo ricrearle (create) in LabView? O è una specie di open? E devo farne il clear alla fine dell' uso? O basta che ci legga e scriva e non serve altro? Grazie, Andrea ---------------------------------------- AUTORE: 384 DATA :15/05/2007 - 08:41:55 ---------------------------------------- Se la "taks" è già definita in MAX, basta farla partire (DAQmx Start Task.vi) e fermarla alla fine (DAQmx Stop Task.vi). ---------------------------------------- AUTORE: 2032 DATA :16/05/2007 - 07:17:20 ---------------------------------------- Grazie 1000, mi hai chiarito una cosa importante! \":wink:\" ---------------------------------------- ================================================================================ write to spreadsheet file delimiter ================================================================================ AUTORE: 2016 DATA :14/05/2007 - 09:53:45 ---------------------------------------- Salve, sto scrivendo i miei dati in un file utilizzando "Write to spreadsheet File", ma vorrei usare come delimitatore il carattere nullo, cioè, in pratica vorrei scrivere i miei dati senza delimitatore. Ho provato con \0, ma il risultato è che mi viene scritto solo il primo dato dei 16. Ho provato a mettere una costante carattere senza nessun carattere dentro, ma il risultato è che i dati nel file sono delimitati dal tab (che è di default). Come posso fare? Vorrei la sequenza di dati 0391AD01F0ED03D1CB01F0EA... invece di 039 1AD 01F 0ED 03D 1CB 01F 0EA... Grazie. Lucio ---------------------------------------- AUTORE: 384 DATA :15/05/2007 - 08:44:41 ---------------------------------------- Invece del "Write To SpreadSheet File" usa il "Write Characters To File". Con quello controlli esattamente la "stringa" che vuoi scrivere. ---------------------------------------- AUTORE: 927 DATA :15/05/2007 - 08:49:03 ---------------------------------------- temo che con "Write to spreadsheet File" non sia possibile, devi farlo a mano in qualche modo, creare il testo e poi scriverlo su file separatamente. Un modo per creare il testo può essere: usa "Array To Spreadsheet String", anch'esso mette i tab di default, ma poi sostituisci tutti i tab con "niente", usando "Search and Replace Pattern" ---------------------------------------- AUTORE: 2016 DATA :16/05/2007 - 13:09:06 ---------------------------------------- Grazie mille. ---------------------------------------- ================================================================================ labview web server ================================================================================ AUTORE: 1978 DATA :14/05/2007 - 15:10:58 ---------------------------------------- Salve a tutti, dovrei mostrare su un compiuter la temperatura ambiente,connettendomi ad un altro computer sul quale ho creato una semplice applicazione labview che la legge. Come posso inziare? Che informazioni mi servono? ---------------------------------------- AUTORE: 645 DATA :14/05/2007 - 16:56:52 ---------------------------------------- Cerca nel forum e sul sito della National (www.ni.com) qualcosa riguardante la funzione "Web publishing tool". Si trova all'interno dei comandi di LabView e permette di creare una pagina html collegata al VI. In questa pagina può essere presente un'immagine statica del VI (in esecuzione) o un controllo per agire direttamente sul VI in azione. Questa pagina può essere vista accedendo al computer (per esempio tramite rete LAN) dopo aver avviato il WebServer interno di LabView. ---------------------------------------- AUTORE: 1978 DATA :15/05/2007 - 16:05:27 ---------------------------------------- dopo aver abilitato il web server devo anche specificargli il client che puo effettuare l'accesso e il nome del VI che voglio pubblicare? devo poi creare un file html del VI e salvarlo sul disco? poi come indirizzo url che ci devo mettere?quello locale? il computer dal quale effettuare l'accesso deve aver installato il labview run time engine? e come indirizzo url devo mettere quello con cui ho salvato il file html? ---------------------------------------- AUTORE: 645 DATA :15/05/2007 - 16:09:06 ---------------------------------------- In LabView, menù "Tools --> Web Publishing tool" e poi segui le indicazioni. Puoi cercare qualche info su questo comando. ---------------------------------------- ================================================================================ convertire un Array in un numero decimale [Aiutatemi!!!!!] ================================================================================ AUTORE: 2080 DATA :15/05/2007 - 08:48:34 ---------------------------------------- Devo convertire un Array in un numero decimale.Come posso fare \":?:\" \":?:\" \":?:\" \":o\" ...mandate anke delle foto.Grazie!!! \":wink:\" ---------------------------------------- AUTORE: 927 DATA :15/05/2007 - 08:51:48 ---------------------------------------- In che senso? Array di cosa? Convertire con che criterio? \":o\" ---------------------------------------- AUTORE: 2080 DATA :15/05/2007 - 08:58:47 ---------------------------------------- praticamente devo leggere la tensione da un multimetro digitale su porta RS-232 comandato da protocollo MODBUS.Dall'Array che ottengo alla fine devo ricavarne un numero decimale per poterlo visualizzare sul grafico.vedi la foto cosi capisci meglio.Grazie mille!!!! ---------------------------------------- AUTORE: 2080 DATA :15/05/2007 - 09:06:05 ---------------------------------------- ecco la foto ---------------------------------------- AUTORE: 927 DATA :15/05/2007 - 09:20:23 ---------------------------------------- Non si capisce molto meglio \":lol:\" Tu prendi una stringa di 2 caratteri e per 38 volte la converti (sempre la stessa) in I16... Il multimetro ti manda 2 byte per ogni lettura? Se è così, devi mettere anche lo String Subset dentro il ciclo for, con l'offset che aumenta a ogni iterazione. Poi non c'è bisogno che fai uscire un array, manda direttamente l'I16 a un Chart, dentro il ciclo for ---------------------------------------- AUTORE: 247 DATA :15/05/2007 - 10:32:14 ---------------------------------------- Ciao, al3x_itl leggiti le regole del forum, non puoi utilizzare nomi generici per le discussioni che apri!!! \":evil:\" \":evil:\" \":evil:\" BYE. ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 00:38:45 ---------------------------------------- [quote="Snamprogetti":vpmjs1te]Non si capisce molto meglio...[/quote:vpmjs1te] Sono d'accordo!!! Pensando che magari la foto è solo illustrativa e non corrisponde al codice effettivamente da eseguire, non è che ti basta fare la media dei valori dell'array? ---------------------------------------- ================================================================================ Creazione dinamica di indicatori ================================================================================ AUTORE: 1779 DATA :15/05/2007 - 13:26:21 ---------------------------------------- Salve volevo chiedervi se conoscete un modo per creare in modo dinamico indicatori all'interno di un VI. Mi spiego meglio: io ho la necessità di includere un numero di indicatori all'interno di un VI che varia a seconda dell'applicazione.(ho visto che all'interno del forum c'è una discussione a riguardo ma mi sembra che non sia applicabile al mio problema!) Vi ringrazio anticipatamente per la vostra disponbilità. Distinti Saluti Gianluca ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 00:49:46 ---------------------------------------- Con la generazione programmatica di "codice" si può fare, però si genera un vi che, quindi, deve essere eseguito nell'ambiente di sviluppo. Il tuo utilizzatore (cliente?) dovrebbe necessariamente avere LabView installato sul suo PC (con il conseguente costo di licenza). Si può anche pensare ad un'altra possibilità. Per quanto il nr. di indicatori/controlli vari a seconda dell'applicazione, ce ne sarà un numero massimo, probabilmente legato a qualche caratteristica limitante dell'applicazione stessa: nr di canali, di variabili, ecc. Quanto meno, questo nr dovrá essere limitato per l'uso di un operatore, altrimenti il tuo sw diventerà inutilizzabile da quiunque sia il "poveraccio" che ci debba lavorare. Dimensiona la tua schermata con quel numero di indicatori e rendili invisibili. Da codice li renderai visibili man mano che servirá. ---------------------------------------- AUTORE: 1779 DATA :16/05/2007 - 08:19:32 ---------------------------------------- Ti ringrazio per la risposta, non potendo effettivamente utilizzare la generazione programmatica di codice credo di dover utilizzare la seconda soluzione. Grazie ancora Gianluca ---------------------------------------- ================================================================================ Controllo activeX non caricato ================================================================================ AUTORE: 487 DATA :15/05/2007 - 14:42:37 ---------------------------------------- Ciao a tutti, mi trovo nuovamente a fare i conti con dei controlli activex. Il problema è il seguente: ho sviluppato un programma che alla prima eseguzione registra un controllo activex per rilevare alcuni id del hardware del pc. Il problema sta proprio nella prima eseguzione del programma poichè il controllo activex non è ancora stato caricato e labview si blocca inesorabilmente. Avrei bisogno di qualche consiglio per terminare l'esecuzione del programma senza dover ricorrere al "termina operazione" del task manager di windows. Ho già fatto qualche tentativo (vedi esempio allegato) ma senza grossi risultati. ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 00:34:48 ---------------------------------------- Il controllo activex deve essere installato (registrato) prima di eseguire il sw che lo utilizza, non può esserlo dallo stesso codice che lo utilizza. ---------------------------------------- AUTORE: 487 DATA :16/05/2007 - 07:20:22 ---------------------------------------- Questo lo so, o per lo meno l'ho scoperto. Il mio tentativo era quello di registrare il controllo alla prima esecuzione del programma, lasciando poi che il programma venga terminato. In questa maniera dalla seconda esecuzione in poi ho la possibilità di sfruttare le funzioni del controllo. Il mio problema è che se il controllo non è registrato e tento di utilizzarlo nel codice, labview si blocca e non riesco più a terminare l'esecuzione. ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 08:04:55 ---------------------------------------- Infatti, quando l'eseguibile si carica verifica tutte le risorse a cui fa riferimento. Anche se alla prima esecuzione non userai l'ActiveX, il linker questo non lo sa, quindi lo mette nell'elenco delle risorse. Magari se concentri il codice che chiama l'activex in un VI (o più VI) che poi chiami dinamicamente, magari riesci ad ingannare il linker. Puoi solo provare. Ma non è più semplice installare l'activex al momento dell'installazione dell'applicazione runtime usando l'installer? É una banale riga di comandi che puoi scrivere in un "batch file"... ---------------------------------------- AUTORE: 113 DATA :16/05/2007 - 08:57:28 ---------------------------------------- Sottoscrivo quanto detto da Gyc in merito alla registrazione dell'active-x in fase di installazione. Per ottenre gli Id hw del pc mi permetto di proporre una soluzione alternativa: ho scoperto per caso un eseguibile che lanciato tramite la funzione System Exec restituisce una stringa contenente di tutto e di più della configurazione del pc \":wink:\" L'eseguibile si chiama Compinfo.exe, è uno freeware e può essere scaricato al link: http://www.beyondlogic.org/consulting/c ... mpinfo.htm Ciao, Alberto ---------------------------------------- AUTORE: 487 DATA :16/05/2007 - 09:35:55 ---------------------------------------- Ok, grazie per i consigli. Supponiamo di voler fare come suggerito da gyc, cioè registrare l'activex durante la fase d'installazione. Per quanto riguarda il comando di batch non ci sono problemi, il vero problema è come fare a copiare il file ocx nella cartella di windows (altrimenti la funzione regsvr32 non trovando il file riporta un errore) non conoscendo a priori i percorsi esatti. E poi così risolverei solo parzialmente il problema: se per qualsiasi ragione viene persa la registrazione dell'activex il mio programma s'impalla!!! Penso che trovare il modo di forzare la chiusura del programma in caso di blocco dell'activex sia ancora la migliore soluzione per il problema: ma è possibile che non ci sia proprio il modo !?!? ---------------------------------------- AUTORE: 384 DATA :16/05/2007 - 10:29:21 ---------------------------------------- [quote="coma":1dr3zytg]Supponiamo di voler fare come suggerito da gyc, cioè registrare l'activex durante la fase d'installazione. Per quanto riguarda il comando di batch non ci sono problemi, il vero problema è come fare a copiare il file ocx nella cartella di windows (altrimenti la funzione regsvr32 non trovando il file riporta un errore) non conoscendo a priori i percorsi esatti.[/quote:1dr3zytg] Per questo esistono le variabili di sistema. [quote="coma":1dr3zytg]E poi così risolverei solo parzialmente il problema: se per qualsiasi ragione viene persa la registrazione dell'activex il mio programma s'impalla!!! Penso che trovare il modo di forzare la chiusura del programma in caso di blocco dell'activex sia ancora la migliore soluzione per il problema: ma è possibile che non ci sia proprio il modo !?!?[/quote:1dr3zytg] Proprio ciò che succede con i driver, per esempio. L'applicattivo presuppone che eventuali driver che usa ci siano. Se per caso gli sono stati cancellati "sotto al naso", può succedere di tutto, compreso impallarsi. Ma queste cose succedono per "incidente". Il sistema non si perde la registrazione degli ActiveX cosí... ---------------------------------------- AUTORE: 487 DATA :16/05/2007 - 10:49:08 ---------------------------------------- Va bene, grazie per tutte le spiegazioni. Risolvo il problema nel seguente modo: alla prima esecuzione del programma registro l'activex, senza utilizzarlo, e termino; dalla seconda esecuzione in poi utilizzo l'activex. La soluzione di registrare l'activex durante la fase d'installazione l'ho scartata perchè vorrei crearmi una libreria da utilizzare per diversi programmi senza dovermi preoccupare in fase di creazione dell'installer di dover effettuare le registrazioni di tutti i controlli activex utilizzati. Grazie ancora per l'aiuto. ---------------------------------------- ================================================================================ labview e comunicazione plc ================================================================================ AUTORE: 1637 DATA :16/05/2007 - 14:01:06 ---------------------------------------- ciao ragazzi, sto impazzendo (sono un neofita della materia) vorrei far comunicare labview ver. 8.0 con un plc allen bradley, qualcuno di voi ha qualche vi di esempio a proposito?? \":(\" \":?:\" ve ne sono grato ciao ---------------------------------------- AUTORE: 1368 DATA :16/05/2007 - 14:23:46 ---------------------------------------- ciao, comunicando come??? che protocollo stai usando?? ---------------------------------------- AUTORE: 1637 DATA :16/05/2007 - 16:06:26 ---------------------------------------- grazie per l'attenzione, sto cercando di comunicare via seriale con um micrologix 1200 utilizzazndo l'opc servere che si crea con rslinx professional grazie ancora ---------------------------------------- AUTORE: 384 DATA :17/05/2007 - 01:06:30 ---------------------------------------- Mi sembra che tu stia usando una "struttura" classica, solitamente a prova di problemi. Se non descrivi i problemi che stai incontrando, non possiamo fare molto altro! Comunque, ti ricordo che il programmatore del PLC deve, in qualche modo che dipende da come si programma e funziona il PLC stesso, "esportare" oppure rendere visibili all'esterno le "variabili" che interessa leggere e scrivere (se si deve anche agire sul PLC). Nella maggior parte dei casi questo corrisponde ad avere un file (che di fatto è una "mappa" di queste variabili) che andrà letto dal OPC server e che permette a quest'ultimo di leggere/scrivere le suddette variabili. In LabView, non resta che collegarsi al server OPC, sia stabilendo questo collegamento direttamente da controlli o indicatori (pulsante destro -> data operations -> datasoket connectione -> browse -> ecc) sia usando i blocchi DataSocket, modalità che permette un miglior controllo dei flussi di informazione e dell'interfaccia in generale. ---------------------------------------- ================================================================================ Cambiare valori in un VI programmaticamente ================================================================================ AUTORE: 482 DATA :16/05/2007 - 15:12:31 ---------------------------------------- ...ma ciao! ho un problemino. Ho un Vi (vedi figura) che va a immettermi dei valori a dei controlli di un VI globale. Questi valori vengono poi richiamati in un ciclo successivo per fare delel operazioni. Il problema è che per non so quale motivo, ogni tanto questi valori mi vengono letti tutti a zero. Inizialmente pensavo fosse un problema di sequenzialità per il quale il VI globale caricasse i valori di default. Tuttavia nel mio caso specifico i valori di default sono uguali a quelli che gli passo nel vi in figura e la sequenzialità è implementata. A questo punto mi sorge il dubbio... C'e' la possibilità che andando a fare la procedura che faccio io, intervenga qualche operazione strana che mi azzeri tutti i valori prima di settarli programmaticamente? E se si, perchè nonostante io richiami le variabili globali solo successivamente a questo vi, a volte mi restano a zero? ---------------------------------------- AUTORE: 645 DATA :16/05/2007 - 20:43:18 ---------------------------------------- Io faccio un po' fatica a capire la tua immagine ma anche io ho avuto un problema simile... in una variabile globale salvo il nome di un database e ogni tanto questo valore non mi viene restituito e al suo posto leggo una stringa vuota. Io ho risolto in altro modo, cambiando proprio tipo di operazioni. Ma a questo punto mi viene il dubbio che ci sia qualcosa che non va... ---------------------------------------- AUTORE: 384 DATA :17/05/2007 - 01:15:48 ---------------------------------------- Io [b:3ewct4xw][i:3ewct4xw][u:3ewct4xw]NON[/u:3ewct4xw][/i:3ewct4xw][/b:3ewct4xw] uso le globals per passare parametri. L'unico uso che ne faccio è come repositorio di parametri che leggo dal file ini dell'applicazione all'avviamento. Poi non le tocco più, diventano come delle costanti, quindi le leggo soltanto. Se prorio devo usare quel tipo di meccanismo per passare dei paametri- ed a volte succede - allora uso le functional globals, e finora non ho mai avuto problemi! ---------------------------------------- AUTORE: 482 DATA :17/05/2007 - 08:18:18 ---------------------------------------- E' esattamente quello che faccio io gyc! Spiego: in un file di testo ho l'elenco dei canali delle schede sotto forma di: Numero canale- descrizione Nell'immagine che ho allegato, carico i numeri e li associo alle variabili globali in base alal descrizione (la descrizione corrisponde alla label di ogni singola globale). Il problema è che ogni tanto c'e' qualche problema è questa operazione mi crea scompiglio. ---------------------------------------- AUTORE: 113 DATA :17/05/2007 - 16:12:34 ---------------------------------------- Vediamo se ho capito... Tu hai una vi con una serie di controlli/indicatori che vuoi utilizzare come pseudo-variabili globali. In pratica vai a scriverci all'inizio tramite la proprietà Value, e poi vai a leggerci in altri punti della tua applicazione. Domanda: lo apri il pannello di questa vi quando vai a scriverci? Se non lo fai nasce il problema, per quello che ne so non puoi modificare il contenuto di un oggetto del FP se lo stesso non è aperto. Quello che diceva invece Gyc è un po' diverso: per functional global si intende il metodo di memorizzare un dato all'interno di uno shift register di un while loop, è un metodo che risale un po' alla notte dei tempi quando LV non aveva le variabili globali; tuttavia è ancora assolutamente valido, anzi imbattibile! Va ad interagire direttamente con la memoria allocata dallo shift register senza dover modificare il contenuto di un oggetto del FP e quindi senza la necessità che esso sia aperto. \":wink:\" ---------------------------------------- AUTORE: 482 DATA :18/05/2007 - 07:19:50 ---------------------------------------- aspetta aspetta..chiariamo: A Gyc dicevo che faccio la stessa cosa nel senso che associo a dei controlli di una globale dei valori costanti e che poi vengono solo letti durante tutta l'esecuzione del software. Per quanto rigard al'apertura del vi. E' un vi globale, non un vi. Quindi non SI apre visualizzato il pannello frontale. E cmq sta cosa che non si puo' cambiare un oggetto se il front panel non è aperto non mi convince...pero' potrebbe essere una strada...Visto che opero su un Global Vi..dici che se richiamo una qualsiasi globale contenuta al suo interno prima di effettuare la scrittura dei dati mi risolve il problema? Ahimè le functional global le conosco e le ho usate spesso, ma in questo caso sarebbero quantomeno scomode. ---------------------------------------- AUTORE: 645 DATA :18/05/2007 - 08:33:28 ---------------------------------------- Cioè tu vai a scrivere nella variabile globale passando dal Property Node? Richiami la variabile globale, con il Property Node riferito ai controlli presenti sul pannello frontale richiami le label degli indicatori (presenti nella variabile globale) e li modifichi in base alle tue esigenze? Ma non fai prima a richiamare direttamente gli indicatori stringa nella variabile globale? Scusa la domanda, magari non ho capito niente... ---------------------------------------- AUTORE: 113 DATA :18/05/2007 - 08:41:43 ---------------------------------------- Ecco, proprio non avevo capito... \":oops:\" \":oops:\" \":oops:\" E' strano allora che una global non ti restituisca correttamente il suo valore, ma ammetto di non aver mai provato a leggere/scrivere nelle global tramite la proprietà Value. Hai provato a tracciare eventuali errori? Ricordo però che mi è capitato di scrivere in alcuni controlli a pannello con la Value, se i controlli erano molti dovevo dare tempo per compiere la scrittura inserendo un ritardo prima di procedere oltre, non so se possa essere il tuo caso. Riguardo al discorso FP chiuso o aperto, ho fatto una prova veloce e ti confermo che se è una vi "standard" (e non global \":wink:\" ) il FP deve essere aperto. ---------------------------------------- AUTORE: 482 DATA :18/05/2007 - 09:09:59 ---------------------------------------- Spiego bene: Ho un global vi con 72 controlli numerici al suo interno che mi rappresentano i 72 indirizzi dei canali delle schede. Se per caso mi capitasse di portare un sensore al canale 12 anzichè al 14, dovrei modificare ogni volta i sorgenti e ricompilare l'eseguibile. Per evitare questa cosa, creo un file di testo dove c'e' il numero del canale e la descrizioen del canale (che corrisponde alla label del controllo nel global vi). Quindi all'inizio del programma apro il file di testo e gli dico, al controllo con label X del global vi, associa il valore che c'e' nel file di testo che ha la descrizione X. Il problema è che nonostante i valori di default siano in questo momento gli stessi che ho scritto nel file di testo, probabilmente a volte succede qualcosa che setta i valori a 0 non so se sia un errore o qualcos'altro... LA cosa della temporizzazioen l'avevo pensata (anche se cmq dovrebbe essere una procedura veloce), soloche, subito dopo la prodedura di associazioend ei valori c'e' un ONE BUTTON DIALOG che dice INIZIALIZZAZIONE AVVENUTA e quello resta sempre su per almeno 5 o 6 secondi prima che l'utente clikki ok. A sto punto michiedo...I ONE BUTTON DIALOG, fermano tutte le esecuzioni sotto e quidni probabilmente non c'e' temporizzazione oppure se in parallelo c'e' qualcosa che sta girando, continua a girare? ---------------------------------------- AUTORE: 113 DATA :18/05/2007 - 09:54:47 ---------------------------------------- Dipende come e dove hai messo il dialog. Se lo metti in parallelo alla procedura di lettura/scrittura esso non rappresenta un ritardo perchè quando si apre LV non fa nient'altro fino a che clicchi su OK. Quindi forse è proprio lì il problema. Prova invece a leggere in un while che termina dopo un tempo determinato e solo successivamente metti il dialog che viene eseguito quando termina il while. ---------------------------------------- AUTORE: 482 DATA :18/05/2007 - 15:01:42 ---------------------------------------- Si infatti me n'ero accorto mentre scrivevo il mio scorso post. Errore da pivello! Mi ero dimenticato di mettere un filo che sequenzializzasse prima l'assegnamento dei valori e poi il popup! Ecco perchè ogni tanto lo faceva e ogni atnto no...dipendeva da labView se gli girava di fare partir eprima il dialog o prima l'altro. direi topic inutile quindi...che faccio, lo cancello? ---------------------------------------- AUTORE: 113 DATA :18/05/2007 - 16:04:19 ---------------------------------------- [quote:13c6ic1c]direi topic inutile quindi...che faccio, lo cancello?[/quote:13c6ic1c] Lascia, lascia! Qualcuno potrebbe prendere qualche spunto positivo... Sapessi quante volte anch'io mi ingrippo in cose che poi hanno soluzioni banali... \":wink:\" ---------------------------------------- AUTORE: 384 DATA :20/05/2007 - 00:41:14 ---------------------------------------- Continuo a pensare che dovresti usare una functional global - in questo caso a maggior ragione, visto che è dinamica e potresti avere questo dinamismo gestito direttamente allinterno. Comunque, questi errori "da pivello" ci succedono dopo che non lo siamo più! Fra gli "[i:2o7n2cep]hardwaristi[/i:2o7n2cep]", a qui non è mai sucesso di ricercare un guasto per un pò tempo, quando invece bastavce ataccare la spina! ---------------------------------------- AUTORE: 482 DATA :25/05/2007 - 07:46:37 ---------------------------------------- [quote="gyc":107bti2b]Continuo a pensare che dovresti usare una functional global [/quote:107bti2b] Allora... le ipotesi sono tre: - Un VI functional global con 72 ingressi (infattibile) - 72 fucntional global differenti (dovrei studiare un modo, come accio adesso, di associare il valore in base al nome del vi) - Un VI functional globl con un cluster di 72 elementi e poi capire come associare i valori in base al nome. Premesso che di tutti questi tre quello che preferisco è il 4° cioè quello che sto usando io con una variabile globale normale, tu quale soluzione mi consiglieresti e con che metodo per associare le costanti ai songoli elementi? ---------------------------------------- AUTORE: 384 DATA :27/05/2007 - 17:56:11 ---------------------------------------- Io userei una functional global con un cluster di N elementi. Salva il nome di ogni elemento sul file associato alla relativa costante. In ingresso alla functional passi il nome ed il valore della costante, oltre and una "enumeration" che userai per decidere se scrivi, leggi, resetti, ecc. ecc. Per le operazioni all'interno usa esattamente lo stesso meccanismo con dei property node. Sinceramente non vedo dove sta il problema. ---------------------------------------- AUTORE: 482 DATA :28/05/2007 - 07:03:30 ---------------------------------------- [quote="gyc":ccqe1l5l] Per le operazioni all'interno usa esattamente lo stesso meccanismo con dei property node.[/quote:ccqe1l5l] L'eventuale problema era proprio qui... nel senso che non ho mai provato apassare valori ad un cluster utilizzando il nome del controllo e non sapevo se si potesse fare tranquillamente o se ci fosse qualche giro strano da fare... \":?\" ---------------------------------------- AUTORE: 384 DATA :28/05/2007 - 08:31:16 ---------------------------------------- É esattamente uguale. Devi cercare prima il "reference" con il nome e poi assegni il valore. ---------------------------------------- AUTORE: 482 DATA :28/05/2007 - 11:11:48 ---------------------------------------- Visto che hai questa esperienza estrema di functional globals, a livello di prestazioni, cosa cambierebbe? ---------------------------------------- AUTORE: 384 DATA :28/05/2007 - 12:30:42 ---------------------------------------- Ti ringrazio per "l'estrema esperienza" \":wink:\" Con le functional globals hai il grossissimo vantaggio di garantire l'accesso esclusivo - mentre il vi è in uso, altri non possono accedervi. Attenzione che questo non garantische l'accesso nella sequenza corretta per il tuo algoritmo. Altro vantaggio, sai esattamente che i valori cambiano e diventano disponibili per tutti quando li setti, a diferenza delle globali di LV in cui il meccanismo di replicazione interno non è chiaro e non si sa mai quando un valore settato da una parte diventa disponibile dal'altra. Addirittura NI le raccomanda per [url=http://zone.ni.com/devzone/cda/epd/p/id/3124:20d6jn0y]migliorare il determinismo[/url:20d6jn0y] in VI time critical. A livello di prestazioni, per operazioni su oggetti classici, non ho trovato diferenze. Hai un pò di overhead nella chiamata al vi, ma la gestione dello shift register è sempre quella ed è velocissima. Guarda [url=http://zone.ni.com/devzone/cda/epd/p/id/2887:20d6jn0y]qui[/url:20d6jn0y] per un benchmark su functional vs. standard globals. Nel tuo caso, la gestione interna della global si complica leggermente perchè devi cercare il controllo sul quale agire (write, read), però ancora una volta, non credo che questo tempo in più possa comportare un degrado nelle prestazioni del tuo sw, se fai un uso corretto delle globali. ---------------------------------------- AUTORE: 482 DATA :28/05/2007 - 13:17:50 ---------------------------------------- [quote="gyc":3dv4qae1] Con le functional globals hai il grossissimo vantaggio di garantire l'accesso esclusivo - mentre il vi è in uso, altri non possono accedervi. Attenzione che questo non garantische l'accesso nella sequenza corretta per il tuo algoritmo.[/quote:3dv4qae1] eh cacchio... ma io utilizzo le stesse globali in diversi cicli paralleli...magari diversi indicatori pero' sarebbe lo stesso vi...dici che mi crea problemi? ---------------------------------------- AUTORE: 384 DATA :28/05/2007 - 16:23:55 ---------------------------------------- No! Appunto perchè è lo stesso vi, non ci può essere "concorrenza sleale"! Ad ogni modo puoi settare il vi come "time critical" oppure addirittura come "subroutine", amuntarne la priorità e disporlo in un thread diverso. Cosi è il più veloce possibile, se proprio il tempo di esecuzione è critico. Ma usi le globali per trasferire dati da un ciclo all'altro? ---------------------------------------- AUTORE: 482 DATA :29/05/2007 - 07:38:57 ---------------------------------------- No, uso le globali perchè quelle sono delle costanti che utilizzo in tutto il programma.Sia nel ciclo principale che nei subVI e quindi vengono chiamati in contemporanea da diverse parti di programma, magari per prendere due valori diversi, pero' in contemporanea. Un esempio pratico. Nel mio VI principale ho un ciclo che controlla le sicurezze della macchina diciamo il DIGITALI INPUT #9 e lo controllo ogni 200 ms( non critico).In questo ciclo faccio parecchie altre operazioni e leggo parecchi altri canali. In un ciclo parallelo chiamo la stessa globale per ottenere il valore di DIGITAL INPUT #14 che è il contamentri (impulsi dati da una ruota dentata) e questo gira a 5ms perchè non posso permettermi di perdere conteggi. QUESTI DUE CANALI CHE HO CITATO PERO' NON SONO I VALORI DELLE SCHEDE (True/False) MA SONO GLI INDIRIZZI DOVE ANDARE A PRENDERE I VALORI. Usando le globali io non ho problemi di chiamare lo stesso VI nello stesso momento in due cicli. Allo stesso tempo non posso permettermi che il contametri mi occupi il vi di continuo non permettendomi di leggere gli altri ingressi. Considera che tutti questi valori che ho messo su globale una volta inizializzati, non vengono piu' modificati per tutta la durata del programma. Capisco che tu abbia un astio verso le Globali perchè dici che non sai cosa fanno sotto, ma mi sembra un tentativo estremo di non utilizzarle quando invece possono tornare utili no? Gira che ti rigira, se devo stare li a fare i controlli minuziosi su chi accede prima dopo o durante ad una functional global, allora lo posso fare anche sulla globale e i problemi che dici tu di non sapere come e quando si aggiornerà il valore sparisce. Anche le variabili locali se è per quello, per me hanno ancora dei comportamenti "loschi" quando si tratta di aggiornamento del valore in cicli paralleli che girano a velocità diverse, pero' non smetto di usarle, riempirei il diagramma di fili. Chiarisco che non sto parlando di un applicazione time critical. QUindi riportando quanto hai detto: [quote:2fmvrhut] Con le functional globals hai il grossissimo vantaggio di garantire l'accesso esclusivo - mentre il vi è in uso, altri non possono accedervi. Attenzione che questo non garantische l'accesso nella sequenza corretta per il tuo algoritmo.[/quote:2fmvrhut] E questo abbiamo detto che non mi serve, anzi ho bisogno di accedere in contemporanea da piu' parti. [quote:2fmvrhut]Altro vantaggio, sai esattamente che i valori cambiano e diventano disponibili per tutti quando li setti, a diferenza delle globali di LV in cui il meccanismo di replicazione interno non è chiaro e non si sa mai quando un valore settato da una parte diventa disponibile dal'altra. [/quote:2fmvrhut] Fino ad adesso, se programmavo rispettando le sequenzialità sia temporali che di collegamenti, una volta che sulla globale ho scritto il valore è subito disponibile per gli altri vi.Le volte che ho avuto problemi in questo senso era perchè c'erano degli accessi quasi contemporanei e quindi poteva capitare una lettura prima della scrittura. (Ovvio con le functional, questo è facile da rispettare, devi collegarci dei fili e quindi crei intrinsecamente la sequenzialità) Detto questo, ci sono altre posizioni che possano convincermi ad usare le functional globals anzichè una globale normale? ---------------------------------------- AUTORE: 384 DATA :29/05/2007 - 09:07:34 ---------------------------------------- Non vedo il problema di usare le functional, anche con questo utilizzo. In più, sarebbe addirittura più comodo e veloce non usare un mega-cluster, bensi due array, uno per i nomi dei parametri e l'altro per i rispettivi valori - molto più facile da programmare e veloce ad accedere. Il fatto che l'accesso al vi sia esclusivo, non ti pone problemi, perchè questo comporta solo una manciata di microsecondi. (fai una prova con un ciclo for e una functional semplice!) Non solo, ma io, in generale, sia con globals normali che con le functional, cerco di accedervi fuori dai loop sempre che possibile - in particolare se sono delle impostazioni iniziali, è sempre cosi - perchè è sempre più veloce l'accesso ad un tunel rispetto ad una global. E comunque, anche se sono un detratore acerrimo delle globali classiche, le uso in queste stesse tue circostanze, cioè, come delle costanti che "carico" al momento delle inizializzazioni con i "parametri" di funzionamento dell'applicazione. Sconsiglio anche l'utilizzo delle variabili locali allo scopo di "evitare di riempire i vi con i fili"! Uno dei grossi punti di forza di LV è proprio nella grafica, che aiuta a caoire come girano i dati - fondamentale per il debugging. Inoltre, con le variabili perdi la sequanzialità e sei costretto ad usare altri meccanismi per garantire che l'accesso al dato avvenga nella sequenza giusta. Quindi, non hai tanti fili, mai perdi molti vantaggi ed aggingi complicazioni e complicanze. Poi, ovviamente, ognuno ha i propri metodi di lavoro. ---------------------------------------- AUTORE: 482 DATA :29/05/2007 - 11:15:14 ---------------------------------------- Aspetta aspetta..stiamo uscendo dal seminato. Se io faccio due array mi ritrovo al punto di partenza! Io non uso l'array proprio perchè senno' poi quale valore dell'array devo prendere? il valore all'indice X e l'indice X cos'e'!??!?! E' proprio quello che io ho sulla globale!! Stavo pensando... se io devo leggere una costante su globale leggo il valore su globale Se lo stesso valore dovessi leggerlo su una functional global, in ogni caso la functional global dovrebbe,quando la chiamo , aggiornare 72 shift register, so che è una cosa velocissima,ma vuoi dirmi che resta comunque piu' performante che non leggere un valore solo su globale? Per quanto riguard al'accedere fuori dal ciclo, son d'accordo, pero' resto del parere che sia piu' pulito e altrettanto performante, leggere solo la globale che mi interessa in un subvi che non portarmi in giro nel main 72 fili. Le variabili locali cerco anche io di evitarle quando possibile ma ci sono casi in cui difficilmente se ne riesce a fare a meno. Detto questo, comincio ad avere il sospetto che quanto detto da Alberto sia la soluzione...e cioè che facendo una semplice chiamata della globale, prima di assegnargli i valori con i property, mi risolva il problema. Verifichero'. ---------------------------------------- AUTORE: 384 DATA :29/05/2007 - 11:40:16 ---------------------------------------- Calma! Con gli array te ne servono 2: uno per il nome della costante, l'altro per il valore corrispondente. Man mano che aggiungi costanti agli array (al momento dell'inizializzazione) sia i nomi che i relativi valori sono nello stesso ordine. Quindi, quando ti tocca riprendere un certo valore, cerchi quel nome nell'array dei nomi; poi con quell'indice vai all'array dei valori pescare il dato. Quindi hai 1 solo shift register. Ma anche in altro modo, io non ci metterei 72 shif register. Ci metti un cluster - quindi 1 solo shift register. E per accedere ai valori usi il meccanis,o dei properti node, come nell'esempio che ho allegato ad un mio precedente messaggio. Il vantaggio dell'array è che è dinamico. Se ti serve aggiungere o togliere una costante, lo fai solo ed esclusivamente nel ini file, mentre se usi il cluster devi ANCHE cambiare il cluster della functional global. Poi, a proposito delle globali, io preferisco leggerle prima dei loop e andare in giro con i fili. Non mi è mai capitato di dover andare in giro con delle decine di fili/globali nello stesso vi. Se mi permetti un commento, credo che una tale situazione suggerisca fortemente un ridisegno del vi stesso, se non della struttura dell'applicazione. E guarda che non lo dico con legerezza - so benissimo cosa può comportare un'azione del genere e anch'io ho ancora qualche "scheletro" del genere nei miei armadi! \"8)\" ---------------------------------------- AUTORE: 384 DATA :29/05/2007 - 11:41:59 ---------------------------------------- [quote="gyc":esii5qyw]Calma! Con gli array te ne servono 2: uno per il nome della costante, l'altro per il valore corrispondente. Man mano che aggiungi costanti agli array (al momento dell'inizializzazione) sia i nomi che i relativi valori sono nello stesso ordine. Quindi, quando ti tocca riprendere un certo valore, cerchi quel nome nell'array dei nomi; poi con quell'indice vai all'array dei valori pescare il dato. Quindi hai 1 solo shift register.[/quote:esii5qyw] Scusate ho sbagliato!!! \":oops:\" Ovviamente servo 2 shift register!!! \"8)\" ---------------------------------------- AUTORE: 384 DATA :29/05/2007 - 11:45:16 ---------------------------------------- \":oops:\" Rileggendo i due precedenti messaggi mi sono accorto che "svolazzano" diverse doppie consonanti. Ve ne chiedo venia - non riuscirò mai ad impararle tutte e senza il correttore ortografico sono perso! ---------------------------------------- AUTORE: 482 DATA :29/05/2007 - 14:01:33 ---------------------------------------- BEh questo è uno scheletrone che non arriva d ame purtroppo ma di mettermi a rifarlo non ho proprio ne la voglia ne il tempo... pero' la cosa degli array proprio non mi va giu'... nel senso... se io devo chiamare la globale pippo devo: 1) Inserire una stringa pippo da ricercare (con gli eventuali problemi disintassi che potrebbero esserci) 2) cercare la stringa 3)ricavare l'indice ed utilizzarlo per ricavare il valore dal secondo array Con la globale scelgo la variabile Pippo e ho il valore che ho richiesto. Per la questione del dinamismo, siccome quello a cui mi riferisco sono i canali delle schede, questi sono e sarannosempre costanti, non possono incrementare, quindi non ho questa esigenza. E detto questo, resto dell'idea che per la mia applicazione la variabile globale sia la soluzione migliore. Anzi, la soluzione giusta sarebbero delle semplici costanti INTEGER. Solo che poi ho preferito prelevarle da file per evitarmi di ricompilare l'eseguibile quel paio di volte che mi si sono bruciati un paio di canali delle schede. Tornando invece al mio problema iniziale.... Ho trovato un subVI bruttobrutto brutto, forse è la causa dei miei mali ma non saprei e quindi lo sottopongo al vostro giudizio. Credo che a causarmi i problemi possano essere i vari close e open mancanti. A questo putno mi chiedevo. E' meglio fare open e close di ogni tipo di riferimento o farne uno unico? ---------------------------------------- AUTORE: 384 DATA :29/05/2007 - 15:15:04 ---------------------------------------- Ahià... \":o\" Non ho la versione 8 (e posteriori) installata!!! \":wink:\" Però, in generale, devi chiudere ogni istanza aperta (di qualunque cosa sia) al momento in cui non ti serve più. Se invece ci lavori e rilavori, è inutile chiuderla e riaprirla ogni volta. É solo tempo perso. ---------------------------------------- AUTORE: 482 DATA :29/05/2007 - 15:56:20 ---------------------------------------- Io la uso li e poi basta... aspetta, allego un immagine (peccato che non hai la 8, avresti potuto vedere meglio com'e' fatta l'applicazione che mi da problemi! \":(\" ---------------------------------------- AUTORE: 384 DATA :29/05/2007 - 16:31:28 ---------------------------------------- [quote="gepponline":3k3c9dvg]peccato che non hai la 8, avresti potuto vedere meglio com'e' fatta l'applicazione che mi da problemi![/quote:3k3c9dvg] Con tutti i problemi che ha, ho scelto di non installarla. Però vedo che sono sempre più numerosi quelli che si "sono arresi", quindi dovrò anch'io rassegnarmi e installarla... \":cry:\" Comunque, nella tua immagine vedo che il riferimento al vi viene chiuso indipendentemente dal ciclo for. Questo è un problema perchè non sai mai se sará chiuso prima o dopo che il ciclo finisca. Ecco forse perchè ogni tanto hai problemi. Fai in modo che venga chiuso solo alla fine. ---------------------------------------- AUTORE: 482 DATA :30/05/2007 - 09:18:00 ---------------------------------------- Eh si..anche io ero fedele alla 7.1...piu' che altro perchè mi stava sulle palle il fatto di dover chiedere il codice di attivazione per ogni installazione. La 8.0 era veramente un problema...lenta e pesante. La 8.1 è decisamente piu' rapida e quindi siccome continuavano ad arrivare cd di installazione ho deciso di usarli. Per quanto riguarda la close... Avevo pensato anche io di chiuderla a fine del ciclo. Ma basta una che chiude un reference qualsiasi o siccome apro una proprietà legata al VI una al Panel e una ai ocntrols devo mettere tre close differenti? Questa cos ami è sempre stata oscura..a volte lo facevo in un modo, a volte in un altro... ---------------------------------------- AUTORE: 384 DATA :30/05/2007 - 09:42:37 ---------------------------------------- Fin che usi qualcosa appartenente al VI, il suo ref va tenuto aperto. Quando usi i reference ai vari controlli, li stai pescando da un array che è stato "riempito" nel momento in cui il ref al vi è stato aperto, quindi non c'è una loro apertura esplicita perchè è legata - ripeto - a quella del vi stesso. Con la chiusura del vi ref cosí com'è, non si sa quando avviene, se prima, dopo o - peggio - durante l'esecuzione del ciclo for. Nel momenro in cui chiudi il ref verrano rilasciati i buffer interni e da lí in poi si può solo sperare che i vari "pointers" vadano ancora bene - come hai visto, non sempre funziona! Solo perchè esistono meccanismi di protezione al livello del OS non ti si impianta tutto!!! Fosse ai buoni vecchi tempi \":wink:\" del "C", ed era quasi garantito il crash!!!!! \":o\" E poi pedalare a trovare l'inghippo!... \":twisted:\" ---------------------------------------- ================================================================================ Variabile... VERA ================================================================================ AUTORE: 2088 DATA :17/05/2007 - 09:02:40 ---------------------------------------- Salve ragazzi, premetto che sono nuovo di LabView e che sono più un informatico che un elettronico, ma ho avuto qualche problema. Ho iniziato a fare dei programmini di prova per capire come funziona sto linguaggio, ma non sono riuscito a creare una variabile. OK Mi spiego meglio. Il problema è questo: vorrei poter selezionare un file da leggere, modificarlo e salvarlo di nuovo. Per la lettura del file ho risolto, e anche il salvataggio di un file che scelgo sono riuscito a farlo. L'unica cosa che non sono riuscito a fare è trovare un controllo o qualcosa di simile, che mi permetta, sia di leggere che di scrivere in esso. La mia idea era di controllare se questo controllo è vuoto, ed in quel caso, vi salvo all'interno il path del file che scelgo. Fatto questo, il controllo non è più vuoto e non c'è più bisogno di scegliere il file da salvare, xkè è quello che ho aperto prima. In pratica, i controlli permettono di inserire un'informazione (tramite interfaccia), ma non possono essere scritti, e gli indicatori possono essere solo scritti ma non possono essere letti. Mi serve una variabile della programmazione classica, stringa magari, poi la converto io, in cui si possa scrivere e leggere. Mi sapete dare una mano? Grazie mille ---------------------------------------- AUTORE: 482 DATA :17/05/2007 - 10:50:19 ---------------------------------------- Dal block diagram, sul simbolo del controllo o indicatore che sia, fai tasto destro -> create->Local variable Una volta che hai la variabile, tasto destro su di essa -> change to read o change to write a seconda se devi leggerla o scriverla \":wink:\" ---------------------------------------- AUTORE: 2088 DATA :17/05/2007 - 11:18:23 ---------------------------------------- Questa soluzione l'ho già vagliata, con scarsi risultati, sicuramente dovuti alla mia inesperienza. In pratica, la variabile non veniva mai riempita, sicuramente xkè l'operazione di riempimento era posta in una posizione sbagliata, e quindi non riuscito a mantenere il valore. Ho trovato però una soluzione, nelle Property Node: in questo modo, posso controllare le proprietà fisice degli oggetti a mio piacimento; è sufficiente leggere o scrivere (QUI SI PUO' FARLO!!! EVVIVA) la proprietà VALUE di indicatori e controlli per farci quello che si vuole. In sostanza, il mio editor di testo prende corpo pian piano (ho ancora qualche problema di natura semantica, ma direi che ci sono!) Grazie comunque della pronta risposta. ---------------------------------------- AUTORE: 2088 DATA :17/05/2007 - 11:27:31 ---------------------------------------- Come fare a bloccare la message box che mi chiede conferma di Sovrascrivere il file? Tale message box viene fuori usando "Write Characters to File", con "Append to File?" a FALSE Grazie mille per l'aiuto ---------------------------------------- AUTORE: 482 DATA :17/05/2007 - 13:14:25 ---------------------------------------- Allora... una cos aper volta 1) laproperty VALUE equivale in tutto e per tutto alla variabile locale. Se tu sostituisci quel property node con una variabile come ti ho detto prima, avrai lo stesso funzionamento. 2) Per evitare che ti venga dato il messaggio di conferma sul replace devi passare il path tramite il vi Open/create/replace file nel quale c'e' l'opzione per far uscire o meno il popup. Come consiglio personale ti suggerisco,quando sviluppi, di premere CTRL+ H prima di iniziare e quando cerchi una funzione, passare il mouse sui vari vi e vedere che dice l'help. Il piu' delel volte scopri che esistono vi già fatti per are cose che magari ti hanno fatto sbattere la testa contro il muro svariate volte. \":wink:\" ---------------------------------------- AUTORE: 2088 DATA :17/05/2007 - 14:25:45 ---------------------------------------- Grazie mille per la risposta. Davvero non pensavo fosse un software così potente. \":o\" Adesso ho scoperto che si può anche modificare la barrà dei menù. Ho dei problemi anche lì, ma non ho intenzione di approfondire per il momento... Però la butto lì... Riesco in qualche modo a dirgli che se premo un menù devo fare la stessa azione che farei premendo un pulsante LATCH? ho provato con le Property Node e mi da errore. Collegando una costate TRUE col dataflow può funzionare? Sin ora non mi ha dato molti esiti. \":D\" Grazie mille per tutto!! ---------------------------------------- AUTORE: 482 DATA :18/05/2007 - 07:14:49 ---------------------------------------- No, per utilizzare le azione dell'utente sul menu, ci sono due strade: 1) Utilizzare l'apposita palette dei menu. 2) Utilizzare una event structure e da li selezionare la voce del menu che ti interessa. In tuti e due i casi ci vuole un po' di base teorica per capire come funzionano. Il consiglio è quello di guardare gli esempi. In labview sono parecchi e su quasi tutti gli argomenti \":wink:\" ---------------------------------------- ================================================================================ Creazione eseguibile ================================================================================ AUTORE: 1876 DATA :17/05/2007 - 13:20:16 ---------------------------------------- Ciao a tutti, qualcuno sa per favore come è possibile creare un file eseguibile per far girare un VI all'apertura? Grazie. ---------------------------------------- AUTORE: 645 DATA :17/05/2007 - 13:35:24 ---------------------------------------- Cioè creare un eseguibile che parta in automatico all'avvio? Se sì, allora devi controllare tra le opzioni che Application Builder (da usare per creare l'eseguibile) mette a disposizione. C'è una voce "Run when opened": selezioni la voce (è un check) e quando avvi l'eseguibile questo parte automaticamente (cioè il VI principale che lo compone parte automaticamente). ---------------------------------------- AUTORE: 1597 DATA :17/05/2007 - 13:35:57 ---------------------------------------- ciao...basta spuntare l'opzione "run when opened" ---------------------------------------- AUTORE: 1876 DATA :17/05/2007 - 13:43:08 ---------------------------------------- Praticamente io ho un programma, costituito da un insieme di VI e dovrei creare l'eseguibile per poi farlo girare su una macchina che non ha LabView installato.. ---------------------------------------- AUTORE: 113 DATA :17/05/2007 - 16:26:23 ---------------------------------------- Devi avere un add-on di LV che si chiama Application Builder. Ti crea un eseguibile (.exe) che può girare senza LV, purchè ci sia installato il LV-Runtime. Guarda il sito NI per dettagli in merito. ---------------------------------------- AUTORE: 482 DATA :18/05/2007 - 07:10:36 ---------------------------------------- Non serve il run when open! Quando crei l'eseguibile con l'application builder, automaticamente il vi principale diventa Run when open. ---------------------------------------- ================================================================================ Problema di triggering con scheda 6120 ================================================================================ AUTORE: 1977 DATA :17/05/2007 - 14:47:52 ---------------------------------------- Salve a tutti, avrei un problema: ho una scheda di acquisizione 6120, praticamente imposto i parametri di triggering sull' AI Start per far partire l'acquisizione su un canale quando la forma d'onda in ingresso (una sinusoide) attraversa il livello impostato, però non accade nulla, non acquisisce. Ho controllato tutto, ho pure preso un esempio dal Measurements Manual: Acquire N Scans Analog Hardware Trig.vi, ma non funziona. Ho letto da qualche parte che per questa scheda è consigliato labview 7, io purtroppo al laboratorio ho trovato solo il 6. Inoltre nel portatile ho installato labview 7, con daq-traditional e daqmx, ma nelle palette non ho trovato il data acquisition, forse perchè non ho una scheda di acquisizione sul portatile??? Aiutatemi perfavor \":)\" ---------------------------------------- AUTORE: 482 DATA :18/05/2007 - 07:12:27 ---------------------------------------- Il data acquisition in ambiente di sviluppo è indipendente dalla presenza o meno di schede. Per il tuo problema non ti so aiutare perchè non ho mai sato funzioni di quel genere, ma per il portatile ti consiglio di reinstallare l'NIO Device Driver cd o cmq l'NI-DAQ \":wink:\" ---------------------------------------- AUTORE: 645 DATA :18/05/2007 - 08:28:11 ---------------------------------------- "...non funziona..." è un po' generico. Ti restituisce qualche errore? Di preciso cosa non va? Se togli il trigger riesci ad acquisire il segnale? Giusto per capire se è un problema legato all'impostazione del trigger o se invece il pc non riesce a vedere la scheda di acquisizione. ---------------------------------------- AUTORE: 1977 DATA :18/05/2007 - 15:54:58 ---------------------------------------- Ciao, grazie per avermi risposto. Comunque si, se tolgo il trigger la scheda acquisisce tranquillamente, l'errore che mi da è 10800, essattamente me lo da l'AI Read. Nell'esempio "Acquire N Scans Analog Hardware Trig.vi" c'è messo un time out di 5 secondi. A voler essere precisi magari ciò che sbaglio è il triggerchan, praticamente ho messo lo stesso canale di ingresso perchè la scheda 6120 supporta analog triggering da ogni ingresso analogico, c'è pure un block digram raffigurato nel manuale della stessa che sembra dimostrare ciò. Fammi sapere qualcosina. Ciao ---------------------------------------- ================================================================================ Creazione driver USB per comunicazione con fotocamera ================================================================================ AUTORE: 645 DATA :17/05/2007 - 18:31:57 ---------------------------------------- Sto lavorando con una fotocamera collegata al pc tramite USB. La fotocamera possiede già i driver ufficiali che possono essere installati da cd e quando collegata viene riconosciuta automaticamente da WinXP. Ho letto le spiegazioni su http://zone.ni.com/devzone/cda/tut/p/id/4478 e guardato i file http://zone.ni.com/devzone/cda/epd/p/id/3637 e http://zone.ni.com/devzone/cda/epd/p/id/3622 . Sono riuscito a creare il file .inf e a sostituirlo al driver ufficiale (nel Pannello di Controllo --> Sistema --> Gestione periferiche ho sostituito il driver installato da WinXP con il file .inf creato da me tramite VISA Driver DW). A questo punto credo di dover utilizzare il protocollo corretto e il gioco dovrebbe essere fatto... rimane il fatto che il protocollo non lo conosco (e non penso la Nikon me lo fornisca) e quindi non so come comunicare con la fotocamera (i VI di esempio scaricati riescono ad avviare la sessione ma poi non posso lanciare nessun comando...). Qualche commento? ---------------------------------------- AUTORE: 384 DATA :20/05/2007 - 00:46:13 ---------------------------------------- Sei arrivato al punto giusto per la strada giusta! Io ho già fatto lo stesso con altri tipi di strumenti. Conoscendone il linguaggio di comandi, ho potuto utilizzarli come fossero semplicemente collegati alla seriale. Devi proprio conoscere il protocollo di comunicazione con la fotocamera, altrimenti non potrai farci niente di più che aprire (e chiudere) il canale di comunicazione! Prova a cercare in internet. Probabilmente troverai qualche informazione a riguardo. ---------------------------------------- AUTORE: 645 DATA :25/05/2007 - 10:43:23 ---------------------------------------- Cercando in giro ho trovato molti software che gestiscono il protocollo PTP (protocollo di trasferimento immagini supportato dalla mia fotocamera): a questo punto dovrei trovare i comandi di questo protocollo. Essendo siglato ISO mi sa che non sarà facile... \":)\" ... In pratica la fotocamera può essere vista dal pc come un disco rigido o come una periferica PTP. Nel primo caso quando collego la fotocamera al pc è come se collegassi una chiavetta USB: il pc riconosce un nuovo disco. Nel secondo caso il pc trova una periferica predisposta al trasferimento di file: tramite un software dedicato posso trasferire le foto con un semplice click (oppure regolare le impostazioni della macchina, gestire lo scatto automatico di una foto...). Se fosse possibile recuperare i comandi del protocollo PTP potrei gestire la fotocamera con LabView. Beh, continua la ricerca... se avete idee sono molto ben accette! ---------------------------------------- AUTORE: 384 DATA :27/05/2007 - 18:21:02 ---------------------------------------- Mi vengono in mente altre due possibilitá: 1)Perchè non contatti il fabbricante direttamente e gli racconti che intendi usare il loro prodotto sotto LV e chiedi se ti danno queste informazioni? 2)Mi sembra che il meccanismo di comunicazione sia standard. Hai cercato sul sito [url=http://www.usb.org:2ao6qmmp]http://www.usb.org[/url:2ao6qmmp]? ---------------------------------------- AUTORE: 384 DATA :02/06/2007 - 21:07:28 ---------------------------------------- Per puro caso, ho trovato [url=http://www.hytekautomation.com/Products/IVision.html:1vlizsi5]questo site[/url:1vlizsi5]. Guarda se magari fa al caso tuo. ---------------------------------------- ================================================================================ FFT di un segnale ================================================================================ AUTORE: 2002 DATA :18/05/2007 - 09:48:36 ---------------------------------------- Ciao ragazzi...sono riusciti ad acquisire un segnale, da me generato con un generatore di funzioni, con un NI cRIO 9004. Ora di questo segnale dovrei effettuarne la FFT. Qualcuno può aiutarmi???? Ringrazio in anticipo... ---------------------------------------- AUTORE: 645 DATA :18/05/2007 - 12:21:44 ---------------------------------------- Hai almeno due possibilità: la prima sfrutta i VI Express, la seconda sfrutta i blocchi base con i quali puoi fare la FFT del segnale isolando le componenti reali e immaginario... \":D\" ---------------------------------------- AUTORE: 2002 DATA :20/05/2007 - 18:55:17 ---------------------------------------- grazie...domattina il laboratorio sarà la prima cosa ke farò e poi ti farò sapere...grazie ancora \":D\" ---------------------------------------- AUTORE: 2002 DATA :21/05/2007 - 15:36:38 ---------------------------------------- scuasami di nuovo...sapresti dirmi pure una volta acquisito e campionato il segnale dove posso andare a recuperare i campioni? ...grazie... ---------------------------------------- ================================================================================ Librerie Modbus National ================================================================================ AUTORE: 838 DATA :18/05/2007 - 15:40:23 ---------------------------------------- Ho usato le librerie modbus 8.2 della NI e mi è funzionato tutto al primo colpo. Comunico con un Twido e vedo la comunicazione via ethernet abbastanza performante. Però ho un problema: quando richiedo di andare a leggere oltre alla 147 word mi da errore il blocchetto della NI, mandandomi in stop l'applicativo prima della 147 word va da dio tutto, non capisco questo limite... qualcuno ha avuto esperienze simili? \":D\" ---------------------------------------- AUTORE: 384 DATA :20/05/2007 - 00:57:55 ---------------------------------------- Non ho ancora provato, quindi la mia risposta è - ahimè - no. Però mi interessa molto l'argomento perchè ho in fase di studio una richiesta di lavoro dove mi viene chiesto di usare strumenti su Modbus e pensavo, appunto, di usare le librerie NI. ---------------------------------------- AUTORE: 838 DATA :21/05/2007 - 07:17:30 ---------------------------------------- sono semplicissime da usare, purtroppo però io sono incappato in questo problema cque ad esempio io leggo un blocco 100 word tutte insieme con un ciclo di 100 ms, e va molto bene. alla scrittura di word o bit lo vedo molto immediato. speriamo che almenu sveli l'arcano \":D\" ---------------------------------------- ================================================================================ Comunicazione UDP via ethernet ================================================================================ AUTORE: 838 DATA :18/05/2007 - 15:43:16 ---------------------------------------- Ciao, dovrei comunicare con una board di domotica via ethernet la scheda utilizza il protocollo UDP con cifratura AES 128 bit Ho provato a cercare qualche activex che mi fa la crittografia, ma manco uno mi funziona. sniffando i pacchetti dal programma in dotazione ho provato a lanciare tramite LW un pacchetto copiato, e la scheda risponde. Penso che quindi il mio problema è la criptatura sotto LW, non tanto la comunicazione UDP avete qualche idea? \":D\" ---------------------------------------- AUTORE: 384 DATA :20/05/2007 - 00:48:12 ---------------------------------------- Non per sembrare palese, ma se trovi la descrizione dell'algoritmo, puoi sempre implementarlo! \":wink:\" ---------------------------------------- AUTORE: 384 DATA :20/05/2007 - 00:50:37 ---------------------------------------- [url=http://csrc.nist.gov/CryptoToolkit/aes/rijndael/:38ivvlz1]AES Algorithm (Rijndael) Information[/url:38ivvlz1] ---------------------------------------- ================================================================================ excel tool: excel rimane in memoria ================================================================================ AUTORE: 680 DATA :20/05/2007 - 13:57:14 ---------------------------------------- tempo fa ho scaricato l'excel tool presente in questo sito.... mi sono accorto però che dopo aver chiuso labview resta tra i processi excel è gia capitato a qualcuno? ciao grazie ---------------------------------------- ================================================================================ scala ================================================================================ AUTORE: 1926 DATA :20/05/2007 - 14:55:39 ---------------------------------------- ciao...ho bisogno di un aito... qualcuno sa dirmi come posso modificare la scala di un grafico in visualizzazione real time, in modo da far comparire non più il valore di ampiezza ma un'altra grandezza voluta? grazie ---------------------------------------- AUTORE: 129 DATA :20/05/2007 - 16:52:53 ---------------------------------------- Penso che tu voglia togliere l'autoscale e modificare la scala programmaticamente (in run mode). Puoi farlo semplicemente mentre è in esecuzione, con tasto dx sul grafico quindi togli la spunta da autoscale Y.Ora basta che modifichi il valore di fondoscala cliccandoci su con il mouse. Ma penso questo sia un pò riduttivo, quindi per controllarlo da programma, devi inserire un property node selezionando le property degi assi (per vedere le property tasto dx sul icona del grafico sul diagram, quindi create property). ---------------------------------------- ================================================================================ Multilingua con caratteri unicode ================================================================================ AUTORE: 1591 DATA :20/05/2007 - 14:56:07 ---------------------------------------- Dovrei rendere un applicazione in labview 8.20 multilingua, pescando i dati da un database. In problema e' quando mi hanno chiesto una traduzione in cirillico, che e' supportata dall'unicode, ma non da labview visto che ha solo i caratteri occidentali. Sapete se e' possibile trasformare tutte le stringhe in stringhe unicode? Perche' altrimenti mi tocchera' rinunciare o usare il Rich text Format, pero' sarebbe un problema per i pulsanti o per le strutture \":(\" grazie ---------------------------------------- AUTORE: 384 DATA :21/05/2007 - 00:59:00 ---------------------------------------- Sul sito NI ho trovato questo: -[url=http://digital.ni.com/public.nsf/allkb/16EC9A6BB526F555862571F6005A6D53:1kkgdezz]Using English LabVIEW VIs in Localized LabVIEW[/url:1kkgdezz]  All'interno ci sono diversi link ad altri documenti, incluso l'help di LV. -[url=http://zone.ni.com/devzone/cda/tut/p/id/3603:1kkgdezz]Localizing Your LabVIEW Application to Different Languages[/url:1kkgdezz]   -[url=http://digital.ni.com/public.nsf/allkb/993A8FE1540F8AC0862568490002D806:1kkgdezz]How Does LabVIEW Handle Multilingual Support?[/url:1kkgdezz] Di sicuro, hai un pò di lavoro da fare!... ---------------------------------------- ================================================================================ Titolo della finestra ================================================================================ AUTORE: 2088 DATA :21/05/2007 - 14:07:35 ---------------------------------------- Salve ragazzi, sto utilizzando da poco LabView, e mi sono imbattutto in un problema, non fondamentale a dire il vero ma che mi piacerebbe riuscire a risolvere. Vorrei poter cambiare il titolo della finestra sel programma, in fase di esecuzione, e far comparire ad esempio, il percorso del file che è caricato all'interno di un controllo. Ho visto sull'help di LabView (uso il 7.1) dice che è possibile modificarlo a run time, ma come? con una Property NOde dell'applicazione. Considerate che ho modificato la barrà dei menù e se si modificava tramite quella, a run-time non c'è più. Ho anche visto che si può inviare il comando di modifica del titolo da un VI ad un SubVi, ma, sinceramente, non ho ben capito come e se e come si può applicare ad un solo VI, magari richiamando se stesso. Grazie mille per l'aiuto ---------------------------------------- AUTORE: 113 DATA :21/05/2007 - 15:38:54 ---------------------------------------- Ti elenco i passi per impostare il titolo della finestra programmaticamente: - Dalla palette Application Control inserisci un Property node nel tuo codice - Facci click destro sopra: Select class - Vi Server - Vi - Ora seleziona la proprietà Front Panel Window - Title Qui puoi collegare una stringa che puoi modificare a piacere che ti viene visualizzata quando la vi è in esecuzione. ---------------------------------------- AUTORE: 2088 DATA :21/05/2007 - 15:51:51 ---------------------------------------- Grazie mille per la dritta. E dire che fino a Application Control -> Property Node c'ero arrivato, mi mancava solo il namespace delle proprietà della finestra. Grazie mille!! ---------------------------------------- AUTORE: 487 DATA :22/05/2007 - 07:45:36 ---------------------------------------- Ciao, prova vedere se l'esempio che ti allego può essere un buon punto di partenza per risolvere il tuo problema ---------------------------------------- AUTORE: 2088 DATA :22/05/2007 - 08:56:07 ---------------------------------------- Ti ringrazio molto della disponibilità, ma purtroppo il tuo file è stato realizzato con LabView 8.1.2 ed il mio 7.1 si rifiuta di aprirlo. Comunque, ero riuscito a risolvere il problema con il consiglio di Alberto L. Grazie mille lo stesso per la disponibilità ---------------------------------------- ================================================================================ Ricavare un numero da una stringa ================================================================================ AUTORE: 1959 DATA :21/05/2007 - 18:33:43 ---------------------------------------- Un saluto a tutto il forum \":D\". Premetto che sono agli inizi con Labview \"8)\" Tramite il vostro forum ho scaricato un VI (serialWS) che mi legge dalla seriale i dati inviati da una mia interfaccia. I dati che ricevo sono relativi alla temperatura di un sensore (28.9, 29.1, ecc.) e vengono visualizzati nella schermata "stringa ricevuta" in questo modo: 28.929.128.9 ecc. In pratica senza spazi trai valori (volendo posso pure metterli...non è quello il problema \":P\" ) La mia domanda è, invece, questa: Come faccio a convertire la stringa ricevuta in un numero ed inviarlo ad un Grafico per poter visualizzare l'andamento? L'unico convertitore che ho trovato è: [b:1408slwz]String to Byte array[/b:1408slwz]. Questo mi crea un array di byte ma poi come faccio ad ottenere il numero 28.9 per mandarlo ad XY graph (ad esempio)? Ho provato ad usare un cluster ma ovviamente dopo il grafico mi visualizza le componenti del graph (per intenderci 28.5 mi viene convertito in array[0]=50 array[1]=56 array[2]=46 array[3]=53) Vi ringrazio infinitamente per l'aiuto Ciao \";)\" ---------------------------------------- AUTORE: 487 DATA :22/05/2007 - 07:38:56 ---------------------------------------- Ciao, Se riesci a separare i valori delle temperature con uno spazio (od un altro carattere univoco nella stringa), puoi utilizzare la funzione spreadsheet string to array ottenendo così un array di stringhe che sucessivamente puoi convertire in numero con una delle funzioni string to number. ---------------------------------------- AUTORE: 384 DATA :22/05/2007 - 08:32:26 ---------------------------------------- Perdonami il commento, ma non capisco perchè tu abbia scelto la trasmissione dei valori senza separatore. Oltre alla funzione citata da Coma, in cui l'input è una stringa di valori - ovviamente separatie! - e l'uscita è un array, potresti usare le funzioni elementari della subpalette "String/Number Conversion" su ogni singolo valore letta dall'interfaccia, ottenendo così un valore numerico ad ogni lettura. Naturalmente dipende da come escono i valori e dall'uso che ne farai successivamente. ---------------------------------------- AUTORE: 1959 DATA :22/05/2007 - 08:35:16 ---------------------------------------- [quote="coma":5al6utas]Ciao, Se riesci a separare i valori delle temperature con uno spazio (od un altro carattere univoco nella stringa), puoi utilizzare la funzione spreadsheet string to array ottenendo così un array di stringhe che sucessivamente puoi convertire in numero con una delle funzioni string to number.[/quote:5al6utas] Si certo ci posso mettere qualsiasi carattere \":)\" Ad esempio mettendo \ come potrei fare? In stringa ricevuta avrei qualcosa tipo questo: 28.2\ 29.0\ 28.8\ ecc. Scusa ma sono proprio agli inizi \":oops:\" Ti ringrazio infinitamente per l'aiuto \":)\" ---------------------------------------- AUTORE: 1959 DATA :22/05/2007 - 08:37:44 ---------------------------------------- [quote="gyc":2a7v3noj]Perdonami il commento, ma non capisco perchè tu abbia scelto la trasmissione dei valori senza separatore. Oltre alla funzione citata da Coma, in cui l'input è una stringa di valori - ovviamente separatie! - e l'uscita è un array, potresti usare le funzioni elementari della subpalette "String/Number Conversion" su ogni singolo valore letta dall'interfaccia, ottenendo così un valore numerico ad ogni lettura. Naturalmente dipende da come escono i valori e dall'uso che ne farai successivamente.[/quote:2a7v3noj] Il separatore non è un problema \":)\" Inizialmente ho usato anch'io String/Number conversion ma si "mangia" i decimali e sembra incantarsi all'arrivo dei numeri. Inoltre non ho capito come fare ad impostare l'offeset past number \":oops:\" Ti ringrazio \";)\" ---------------------------------------- AUTORE: 1959 DATA :22/05/2007 - 08:43:20 ---------------------------------------- [quote="Kova":3iqfq1oe][quote="gyc":3iqfq1oe]Perdonami il commento, ma non capisco perchè tu abbia scelto la trasmissione dei valori senza separatore. Oltre alla funzione citata da Coma, in cui l'input è una stringa di valori - ovviamente separatie! - e l'uscita è un array, potresti usare le funzioni elementari della subpalette "String/Number Conversion" su ogni singolo valore letta dall'interfaccia, ottenendo così un valore numerico ad ogni lettura. Naturalmente dipende da come escono i valori e dall'uso che ne farai successivamente.[/quote:3iqfq1oe] Il separatore non è un problema \":)\" Inizialmente ho usato anch'io String/Number conversion ma si "mangia" i decimali e sembra incantarsi all'arrivo dei numeri (forse perchè vede sempre e solo il primo \":(\" della textbox stringa ricevuta). Inoltre non ho capito come fare ad impostare l'offeset past number \":oops:\" Ti ringrazio \";)\"[/quote:3iqfq1oe] ---------------------------------------- AUTORE: 384 DATA :22/05/2007 - 09:29:54 ---------------------------------------- [quote="Kova":1q77l58n]Inizialmente ho usato anch'io String/Number conversion ma si "mangia" i decimali e sembra incantarsi all'arrivo dei numeri. Inoltre non ho capito come fare ad impostare l'offeset past number[/quote:1q77l58n] Se si "mangia" i decimali, hai usato la funzione sbagliata (probabilmente Decimal String To Number). Devi usare "Fract/Exp String To Number" lasciando gli altri parametri in ingresso (offset e default) scollegati ed ignorando l'usita "offset past number". ---------------------------------------- AUTORE: 487 DATA :22/05/2007 - 09:30:26 ---------------------------------------- Ok, prendi la tua stringa e la metti in ingresso al blocchetto spreadsheet string to array. Come delimiter metti "/n" e come array type metti una 1D array of double. Infine come format string inserisci un "%f" che ti consente di convertire i numeri in virgola mobile. Il gioco è fatto, in uscita dal tuo blocchetto avrai un array di numeri. Chiaramente se, come ti ha suggerito gyc, tu potessi leggere ogni singolo valore, la conversione dea stringa in numero sarebbe più semplice. Per quanto riguarda il discorso dei decimali devi stare attento a che tipo di separatore decimale viene usato ("." o ",") ---------------------------------------- AUTORE: 384 DATA :22/05/2007 - 09:40:47 ---------------------------------------- Per quanto riguarda il separatore/terminatore, va bene qualunque carattere non compaia normalmente nei dati da trasmettere. Quelli più comunemente usati sono: - lo "Spazio" (\s o Ascii 32) oppure il "Tab" (\t o Ascii 9) per separare valori all'interno della stringa prima che questa termini. - il "Carriage Return" (\ o Ascii 13) o il "Line Feed" (\ o Ascii 10) come ULTIMO carattere trasmesso - cioè il TERMINATORE. ---------------------------------------- AUTORE: 1959 DATA :22/05/2007 - 15:40:22 ---------------------------------------- [quote="gyc":3nsmnco8] Se si "mangia" i decimali, hai usato la funzione sbagliata (probabilmente Decimal String To Number).[/quote:3nsmnco8] Vi ringrazio tantissimo per l'aiuto \":o\" Allora il problema, come dice coma, dipende dalla stringa; nel senso che se scrivo 28.5 il fract/exp string to number me lo interpreta come 28 mentre se scrivo 28,5 lo interpreta correttamente! Tramite la funzione di search and replace string sono riuscito ad ottenere il risultato voluto \":lol:\" \":lol:\" \":wink:\" Quale tipo di grafico mi consigliate per visualizzare i valori delle temperature lette? \":wink:\" ---------------------------------------- AUTORE: 1959 DATA :22/05/2007 - 15:57:35 ---------------------------------------- [quote="Kova":2bcam6kk]Quale tipo di grafico mi consigliate per visualizzare i valori delle temperature lette? \":wink:\"[/quote:2bcam6kk] Ora sto utilizzando il waveform charts e ho messo sulle Y le ampiezze (la temperatura letta) e sulle X il tempo che scorre. L'unica cosa è che pur impostando nelle proprietà dell'asse X il relative time o absolute time (espresso in HH:MM:SS) vedo che il tempo scorre con una velocità mostruosa in 5 minuti mi dice già che sono trascorse 8 ore \":o\" \":o\" ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 07:05:06 ---------------------------------------- [quote="Kova":26lp5hr8]CUT[/quote:26lp5hr8] \":cry:\" \":cry:\" \":cry:\" Ciao, sono disperato \":oops:\" la funzione "search and replace string" a volte impazzisce. Mi spiego meglio: Gli passo in input il valore 28.9\ e in uscita 9 volte su 10 mi da 28,9 (corretto) altre volte mi da solo 8,9 oppure solo 28. Come mai commette questo tipo di errori? Eccovi un log di quello che ricevo (li ho messi in colonna per renderli leggibili) [code:26lp5hr8] 29,3\ 29.3\ 29,3\ 29.3\ 29,3\ 2929.3\ ,3\ 29.3\ 29,3\ 29.3\ 29,3\ 29.3\ 29,3\ 29.3\ 29,3\ 29.29,3\ 3\ 29.3\ 29,3\ 229.2\ 9,2\ 29.1\ 29,1\ 29.1\ [/code:26lp5hr8] il primo numero rappresenta il valore che gli passo in input, il secondo valore è quello che ricevo in output \":oops:\" Come vedete a volte impazzisce \":roll:\" Vi ringrazio per l'aiuto \":P\" Ciao![/code] ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 07:17:17 ---------------------------------------- Il log è al contrario (sono le 8 di mattina...abbiate pietà \":D\"): [code:jexdm99c] 29.3\ 29,3\ 2929.3\ ,3\ 29.3\ 29,3\ 29.3\ 29,3\ 29.3\ 29,3\ 29.3\ 29,3\ 29.29,3\ 3\ 29.3\ 29,3\ 229.2\ 9,2\ 29.1\ 29,1\ 29.1\ 29,1\ [/code:jexdm99c] Il primo numero è il valore in IN il 2° è quello di OUT (funzione search and raplace). Vedendolo meglio però, mi sembra di capire che il problema sia in IN e non in OUT \":roll:\"? Eppure nel box "Stringa ricevuta" (del programma SerialWS.vi) leggo dei valori corretti! Vi allego lo schema Grazie a tutti[/img] ---------------------------------------- AUTORE: 487 DATA :23/05/2007 - 07:31:41 ---------------------------------------- Ciao Kova, nella funzione "Search and Replace String" ti manca di settare a true l'ingresso "replace all?" che per default è false. ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 08:06:11 ---------------------------------------- [quote="coma":231vxsgu]Ciao Kova, nella funzione "Search and Replace String" ti manca di settare a true l'ingresso "replace all?" che per default è false.[/quote:231vxsgu] Provato, mi continua a fare sempre lo stesso "difetto" \":cry:\" \":cry:\" \":cry:\" ---------------------------------------- AUTORE: 487 DATA :23/05/2007 - 08:22:43 ---------------------------------------- Ho provato ad usare il blocchetto search and replace string con i tuoi dati e non ho avuto nessun problema. Non potresti inviare il tuo codice con una stringa di esempio di quello che acquisisci da seriale? ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 08:36:24 ---------------------------------------- [quote="coma":jzekvn71]Ho provato ad usare il blocchetto search and replace string con i tuoi dati e non ho avuto nessun problema. Non potresti inviare il tuo codice con una stringa di esempio di quello che acquisisci da seriale?[/quote:jzekvn71] Il problema è random \":P\" nel senso che su 10 valori che riceve 9 vengono visualizzati correttamente e 1 solo è sballato! Se vuoi te lo invio il programma, ma non so come tu possa farlo funzionare senza interfaccia \":oops:\" Bohhh sto impazzendo... \":cry:\" \":cry:\" ---------------------------------------- AUTORE: 927 DATA :23/05/2007 - 09:00:08 ---------------------------------------- la colpa non può essere di search and replace string... sicuro che non si mangia i primi byte durante la trasmissione? ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 15:37:59 ---------------------------------------- [quote="Snamprogetti":8o0kjwbv]la colpa non può essere di search and replace string... sicuro che non si mangia i primi byte durante la trasmissione?[/quote:8o0kjwbv] Hai pienamente ragione! Allora per tagliare la testa al toro ho "aggiustato" il firmware dell'interfaccia in modo da farmi spedire il valore della temperatura con la virgola (e non con il punto) e formattato in questo modo: [color=red:8o0kjwbv][b:8o0kjwbv]29,2\ [/b:8o0kjwbv][/color:8o0kjwbv] In questo modo ho tolto da Labview la funzione di replace e ho lasciato solo quella di "Fract/Exp to string". Risultato: stesso difetto! La cosa che mi fa imbestialire è che nel riquadro "Stringa ricevuta" del programma SerialWS leggo i valori **esatti** e la stringa la prelevo a monte (prima che si concateni). Non so più che fare. Lo schema è quello di SerialWS.vi (questo: [url:8o0kjwbv]http://www.ilvg.it/forum/download.php?id=126[/url:8o0kjwbv]) con l'aggiunta di una funzione e di un grafico \":(\" Grazie a tutti per l'aiuto! CIAO \";)\" ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 15:39:23 ---------------------------------------- Block diagram: ---------------------------------------- AUTORE: 927 DATA :23/05/2007 - 15:53:50 ---------------------------------------- Ho visto serialWS anche se al momento non ho hardware per provarlo. Ci sono un paio di cose che potrebbero essere la causa: Quando si usa in carattere di terminazione non c'è bisogno di Bytes at port; basta dargli un n° di byte grande, e si ferma da solo quando arriva il \ . Poi non so quanto velocemente il tuo hardware spara i numeri, ma immagino che puoi farlo aspettare un pò di + di 10ms tra una lettura e l'altra... ---------------------------------------- AUTORE: 487 DATA :23/05/2007 - 15:56:52 ---------------------------------------- Scusa Kova, ho riprovato svariate volte ma non riesco proprio a riprodurre il tuo problema. Prova a postare quello che ricevi dalla porta seriale ad ogni singola iterazione del while loop: probabilmente il problema è nei dati non nel codice. ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 16:06:05 ---------------------------------------- [quote="Snamprogetti":25fji2k6]che puoi farlo aspettare un pò di + di 10ms tra una lettura e l'altra...[/quote:25fji2k6] Tra una lettura e l'altra passano più di 1sec \":cry:\" ---------------------------------------- AUTORE: 1959 DATA :23/05/2007 - 16:43:16 ---------------------------------------- [quote="coma":5j9u60w7]Scusa Kova, ho riprovato svariate volte ma non riesco proprio a riprodurre il tuo problema. Prova a postare quello che ricevi dalla porta seriale ad ogni singola iterazione del while loop: probabilmente il problema è nei dati non nel codice.[/quote:5j9u60w7] Vabbè ragazzi non vi voglio tediare con i miei problemi \":D\" Comunque facendo il debug con lo step e mettendo l'highlight per vedere il transito dei valori, non ricevo nessun dato "anomalo". Secondo me accade questo perchè è tutto "rallentato" infatti, non appena lo avvio normalmente, dopo un numero indefinito di valori corretti, ottengo quello sbagliato. Comunque mettendo il probe su Read Buffer ottengo questi valori (dopo 5 iterazioni di while) 30,1 30,1 30,2 29,8 30,0 E nel probe di uscita dal Fract/exp (alla quinta iterazione) leggo 30,1 Alla fine ci rinuncio \":lol:\" , tanto è un progettino a scopo didattico! Con tutto il rispetto per chi lavora con labview, ma preferisco 10000 volte programmare in .Net/Java/C++, avere tutte queste scatole chiuse senza sapere cosa avviene al proprio interno può essere positvo ma anche negativo \":roll:\" Io ho usato il Labview prevalentemente all'università per creare strumenti di misura virtuali (analizzatori di spettro ecc.), personalmente non ci rimetterò più mano e non lo userei mai per i miei progetti non didattici \":|\" ! Sicuramente dipende dalla mia ignoranza, ma io preferisco avere il pieno controllo di quello che sto facendo, collegare due wire e sperare che tutto vada bene, non è il massimo per chi è abituato a programmare (e soprattutto per chi è un ing., penso la maggior parte degli utenti in questo forum \";)\") Ripeto: massimo rispetto, quello che ho scritto è un mio schifosissimo ed insignificante parere! Grazie infinitamente per l'aiuto \":wink:\" Ciao ---------------------------------------- AUTORE: 129 DATA :23/05/2007 - 16:55:18 ---------------------------------------- Secondo me è il buffer che rimane sporco. Assicurati il pacchetto esatto, facendo una pulizia del buffer prima di acquisire la misura, semplicemente facendogli fare un read con il bytes at serial port attacato (gli dice di prendere tutti i dati sul buffer e mandarli in uscita). Successiavmente a questo esegui la tua query. lascia un tempo di pausa tra il messaggio in scrittura e quello in lettura e vedrai che il tuo pacchetto ti arriverà intero. Prima di passare alle funzioni di trattamento sulle stringhe, prova ad archiviare un array di letture (tutta la stringa di lettura) e controlla se arriavno tutti i pacchetti, questo è per capire se a volte ti arrivano dei dati che pur corretti non sono compatibili con un tipo di funzione, per esempio se ragiono su una stringa con RS2_29,7A e voglio tirar fuori il 29,7 dovrò tener conto che debba interpretare anche un RS3_9,6A che ivece ha 2 caratteri. ---------------------------------------- AUTORE: 487 DATA :24/05/2007 - 07:31:36 ---------------------------------------- Forse mi sono perso un passaggio, ma non ricevevi una stringa con più valori numerici separati da un "/n"? Adesso i dati li ricevi uno per volta? Hai detto che la trasmissione avviene una volta al secondo, ciò significa che ricevi un dato oppure una serie di dati ogni secondo? ---------------------------------------- AUTORE: 1959 DATA :24/05/2007 - 12:45:18 ---------------------------------------- [quote="coma":2dkp1kea]Forse mi sono perso un passaggio, ma non ricevevi una stringa con più valori numerici separati da un "/n"? Adesso i dati li ricevi uno per volta? Hai detto che la trasmissione avviene una volta al secondo, ciò significa che ricevi un dato oppure una serie di dati ogni secondo?[/quote:2dkp1kea] Azz forse mi sono spiegato io male \":oops:\" L'interfaccia invia ogni secondo la temperatura in questo modo: 29,3\ Dopo 1 sec invia 29,2\ Dopo 1 sec invia 29,5\ ecc. (Inizialmente non avevo messo il \ , perchè lo ritenevo inutile) Comunque ho messo in labview un wait di 500ms e non mi sta dando più problemi \":|\" Ringrazio Nicola per lo schema \":wink:\" \":wink:\" , sei stato gentilissimo (come tutti in questo forum \":P\" ), lo proverò quanto prima e ti farò sapere \":D\" ---------------------------------------- AUTORE: 927 DATA :24/05/2007 - 13:16:30 ---------------------------------------- [quote="Kova":2lxez7gp]Comunque ho messo in labview un wait di 500ms e non mi sta dando più problemi \":|\" [/quote:2lxez7gp] Proprio come ti avevo detto... In 10ms lo strumento non fa in tempo a mandare tutta la stringa! Cmq non farti idee sbagliate su labviù, a volte è meglio e a volte è peggio dei linguaggi testuali, ma in generale i blocchi non sono "scatole chiuse" più di quanto non lo siano le funzioni di libreria del C++ (tu lo sai cosa succede dentro alla sprintf??). E il pieno controllo ce l'hai eccome, chiaro che se prendi la serialWS così com'è e speri che tutto vada bene rischi di sbatterci la testa, ma non mi pare che la colpa sia di labviù \":lol:\" Non aver fretta di scartarlo... ---------------------------------------- AUTORE: 384 DATA :25/05/2007 - 01:36:07 ---------------------------------------- [quote="Kova":1cli44n3]Con tutto il rispetto per chi lavora con labview, ma preferisco 10000 volte programmare in .Net/Java/C++[/quote:1cli44n3] De gustibus... [quote="Kova":1cli44n3]avere tutte queste scatole chiuse senza sapere cosa avviene al proprio interno[/quote:1cli44n3] Quindi hai il codice sorgente delle librerie del C++??? Potresti condividerlo con noi? [quote="Kova":1cli44n3]Sicuramente dipende dalla mia ignoranza, ma io preferisco avere il pieno controllo di quello che sto facendo, [/quote:1cli44n3] Sicuramente!!! [quote="Kova":1cli44n3]collegare due wire e sperare che tutto vada bene, non è il massimo per chi è abituato a programmare (e soprattutto per chi è un ing., penso la maggior parte degli utenti in questo forum)[/quote:1cli44n3] Quindi, secondo te non solo collegare 2 wire non è programmare, ma è cosí que (gli ingegneri) programmatori di LV creano le loro applicazioni, "sperando che tutto vada bene"? Non mi sorprende che tu sia in difficoltá - non sei il primo, non sarai l'ultimo - mi sorprende che tu abbia imparato cosí poco da una laurea in ingegneria! Non basta dare l'esame di stato e freggiarsi del titolo "Ing." per essere un [b:1cli44n3][u:1cli44n3]vero[/u:1cli44n3][/b:1cli44n3] ingegnere. Forse sei tu poco incline ad imparare?... Per programmare in LabView, oltre ad altre qualità, è necessario cambiare 'forma mentis' per passare dal paradigma di programmazione algoritmico "instruction driven" che è naturale a tutti - cioè, in cui il flusso del programma è determinato dalle istruzioni - a quello "data driven", cioè, in cui il flusso del programma è determinato dal flusso dei dati. Ne ho visti diversi fallire in questo, nei miei 15 anni di esperienza di "C" e 12 di LabView. In un certo senso mi dispiace, ma in fondo credo che la comunità LV non perda molto a non annoverarti fra i suoi membri. ---------------------------------------- AUTORE: 927 DATA :25/05/2007 - 08:23:01 ---------------------------------------- (non c'era bisogno di infamarlo così...) ---------------------------------------- AUTORE: 645 DATA :25/05/2007 - 08:32:27 ---------------------------------------- Calma.. calma... Credo che siamo tutti d'accordo sul fatto che ogni linguaggio ha i suoi pro e i suoi contro. Il C offre maggior controllo su alcune cose, LabView permette di realizzare schemi anche molto complessi utilizzando blocchetti "semplici", VB permette un'interazione con Windows più bella a livello grafico, Java si comporta meglio su internet... e così via. Quello che sicuramente ci vuole è un po' di studio. Non credo che Kova stia sbagliando se dice che preferisce lavorare con altri linguaggi: se si trova meglio con quelli ben venga per le sue attività. Personalmente ti consiglio di dare comunque un'occhiata a LabView: è vero che agli inizi può sembrare un po' strano (io con i blocchetti e la programmazione grafica ci litigo ancora) ma poi può rivelarsi molto comodo (soprattutto per la connessione con gli strumenti... parere personale... \":D\" ). Siamo qui per imparare ma non per giudicare: altrimenti nessuno dovrebbe postare domande ma tutti dovrebbero inserire solo risposte... Non so se ho reso l'idea! ---------------------------------------- AUTORE: 1959 DATA :25/05/2007 - 15:35:19 ---------------------------------------- [quote="Snamprogetti":3f44vqkg](non c'era bisogno di infamarlo così...)[/quote:3f44vqkg] Avevo scritto una risposta, ma all'ultimo momento ho deciso di non inviarla per non scatenare un inutile flame, non mi sembra proprio il caso \":D\". Tornando in tema volevo chiedervi se il problema esposto in questo topic (si legga la risposta di aldik): viewtopic.php?t=384 è l'unico rimedio per impedire all'exe di avviarsi automaticamente all'apertura. Dovendo impostare, prima del run, i parametri della seriale (soprattutto il numero di porta) vorrei che il programma non si avviasse da solo \":roll:\" ---------------------------------------- AUTORE: 645 DATA :25/05/2007 - 15:41:06 ---------------------------------------- Ma le impostazioni della seriale come le regoli? Puoi anche pensare di creare un primo VI che si avvia quando viene fatto doppio clic e offre all'utente la possibilità di visualizzare, modificare e accettare le impostazioni della seriale. Una volta fatto questo si procede avviando il VI principale. In questo modo crei una specie di percorso, un "wizard" che guida l'utente nelle operazioni che compiere con l'ordine giusto. ---------------------------------------- ================================================================================ PrintPanel.vi ================================================================================ AUTORE: 724 DATA :21/05/2007 - 23:29:51 ---------------------------------------- Uso la printpanel.vi per stampare il pannello che contiene un XYgraph. Con labview 6.1 tutto ok. Con la versione 6.0.2 i plot vengono stampati sottili anche se nel vi di stampa sono settati alla massima grossezza e i plot vengono stampati monchi degli ultimi punti. Il pannello viene aperto e visualizzato e mostra i plot in modo corretto ma la stampa non è conforme a quello visualizzato. E' un baco della 6.0.2 ho esiste una soluzione? Ciao, Cesare ---------------------------------------- AUTORE: 724 DATA :22/05/2007 - 11:55:17 ---------------------------------------- La stessa tecnica di stampa è usata nel medesimo progetto più volte e funziona correttamente. La stampa anomala l'ho ottenuta su due pc diversi con diverse stampanti. Ho anche provato a modificare da File>pageSetup>opzionistampante il tipo di stampa in bozza veloce per poter consumare meno inchiostro nelle varie prove. Con bozza veloce il plot non viene tagliato. ???????????????????????? ---------------------------------------- AUTORE: 113 DATA :22/05/2007 - 13:58:08 ---------------------------------------- L'anno scorso ho anch'io avuto problemi con la stampa dei front panel di LV con una stampante inkjet HP Mod. K550, in proatica non mi stampava niente, mentre se impostavo la qualità di stampa come bozza la stampa era ok. \":o\" Ho contattato il supporto tecnico HP e dopo una serie infinita di prove, hanno confermato che il problema era causato da una non precisata incompatibilità del driver di quella stampante con LV... \":cry:\" Risultato: lavoro consegnato al cliente con stampante in modalità bozza... In attesa di un nuovo firmware del produttore. N.B. con altri modelli di stampanti HP il problema non si manifestava! ---------------------------------------- AUTORE: 724 DATA :22/05/2007 - 20:58:28 ---------------------------------------- Con la 6.1 funziona tutto. Ricompilo tutto il progetto grazie, cesare ---------------------------------------- ================================================================================ RT target ================================================================================ AUTORE: 2099 DATA :22/05/2007 - 09:33:01 ---------------------------------------- Salve a tutti! Sto lavorando su un'applicazione Real-Time e vorrei sapere come fare a trasferire i VI realizzati e gli altri files necessari (dll e modelli in Matlab Simulink) sulla scheda PXI. Sto cercando di capire come funziona un Real-Time Project.....è la strada migliore o ci sono altre soluzioni? Grazie - Marco - ---------------------------------------- ================================================================================ vb6 e OCX labview ================================================================================ AUTORE: 2111 DATA :22/05/2007 - 17:24:37 ---------------------------------------- Ho da poco acquistato una scheda NI USB-6211 ed ho bisogno di utilizzarla con un programma in VB6, ma pur rispettando tutte le indicazioni di NI, in merito all'uso di Measurement Studio con visual basic non vedo la scheda. Più semplicemente carico CWAI (ocx) e l'elenco delle periferiche rimane vuoto (es. Device 1(none), ecc.). ---------------------------------------- ================================================================================ devo iniziare un nuovo progetto lw82/vb6 ================================================================================ AUTORE: 838 DATA :23/05/2007 - 07:43:32 ---------------------------------------- ma sono indeciso se usare LW 8.2 o Visual Basic il lavoro è prendere un vecchio programma fatto in clipper (di cui ho i sorgenti) e convertirlo in un sistema nuovo per farlo girare sotto xp, in rete con altre pc, database condivisi il programma è un controllo accessi di un campeggio, dove passano un badge all'entrata e all'uscita e c'è da gestire l'in/out delle schede, chi autorizzate chi no, eccecc voi guru, cosa consigliate? ---------------------------------------- AUTORE: 247 DATA :23/05/2007 - 09:24:13 ---------------------------------------- Ciao, mi sembra un'applicativo normalissimo, niente strumentazione particolare od acq dati di rilievo, limitate necessità di interfaccia....quindi LabVIEW e VB6?....quello con cui ti trovi melio e programmi più velocemente! anche se ovviamente io utilizzerei LabVIEW! \";-)\" BYE. ---------------------------------------- AUTORE: 838 DATA :23/05/2007 - 09:30:21 ---------------------------------------- sai cosa c'è? che devo colloquiare con due strumenti via seriale, uno è il lettore di chiavi e uno è il lettore del passaggio quindi sul pc nuovo che consegno monto una scheda pci con 2 seriali (com2/com3) e visto che con labview ho già masticato protocolli in seriale opterei per questa opzione poi mi sembra che a livello grafico labview possa offrire molti oggetti già fatti, mah aspetterò altri consigli \":D\" ---------------------------------------- ================================================================================ RMS ================================================================================ AUTORE: 2002 DATA :23/05/2007 - 12:13:51 ---------------------------------------- Ciao ragazzi...sono riuscito ad acquisire con un CompactRio 9004 un segnale da me generato con nu generatore di segnale...adesso dovrei calcolare il valore RMS di tale segnale! Qualcuno mi saprebbe aiutare???? ...grazie in anticipo... ---------------------------------------- AUTORE: 927 DATA :23/05/2007 - 16:07:15 ---------------------------------------- Esiste la funzione RMS.vi ma non è detto che tu ce l'abbia, non fa parte della versione base di Labviù. Altrimenti, l'RMS è la somma dei quadrati, diviso n, sotto radice... puoi farcela da solo, su!! ---------------------------------------- ================================================================================ Operazioni con Array ================================================================================ AUTORE: 2027 DATA :23/05/2007 - 14:54:42 ---------------------------------------- Salve a tutti! E' da un pò che leggo il forum (anche se non ho mai postato) e l'ho trovato molto utile (mi avete "salvato" più di una volta). Mi servirebbe un pò d'aiuto con un problema (forse banale) che non riesco a risolvere. Ho 2 array: il primo (10righe*3colonne) contiene valori numerici mentre i secondo è un array monodimensionale con soli 3 elementi. Quello che non riesco a fare è ottenere 10 array distinti (2righe*3colonne) in modo tale che esso sia formato dai 3 elementi di ogni riga del primo array e dai 3 (unici) elementi del secondo array, per graficarli e interpolarli linearmente. Non so se sono stato chiaro, nel caso fatemi domande. \":D\" ---------------------------------------- AUTORE: 927 DATA :23/05/2007 - 16:00:02 ---------------------------------------- Per staccare le righe dalla matrice usa Index Array, lasciando vuoto l'ingresso col. Per attaccare una riga al secondo array, usa Build Array ---------------------------------------- AUTORE: 2027 DATA :23/05/2007 - 16:04:45 ---------------------------------------- Ti ringrazio! Rapido e indolore!! \":P\" \":oops:\" ---------------------------------------- ================================================================================ usb pic/atmel ================================================================================ AUTORE: 314 DATA :23/05/2007 - 17:10:24 ---------------------------------------- Sono in fase di studio, devo creare un collegamento usb 2.0 tra pc e hardware esterno. Alcuni microcontrollori tipo Microchip o Atmel.... hanno già il controller usb. I driver scritti per questi micro sono compatibili con LV 7 o 8? Esistono in commercio dei controller, non embedded è meglio, i cui driver è assodato siano perfettamente compatibili con LV 7 o 8 che sia?. Esistono delle librerie usb ? Magari ho fatto delle domande stupide ma fino ad ora ho lavorato con seriali (senza problemi anche grazie a voi), ma usb mai. Mi devo aggiornare un attimo.... \":?\" Grazie a tutti ---------------------------------------- AUTORE: 314 DATA :25/05/2007 - 15:43:16 ---------------------------------------- Mi sono spiegato male o nessuna sa aiutarmi? ---------------------------------------- ================================================================================ client server con due pc ================================================================================ AUTORE: 838 DATA :24/05/2007 - 09:03:32 ---------------------------------------- ho provato ad usare l'esempio delle shared variable client server ma mi vanno solo in locale se metto la parte server su un pc e la parte client su un'altro, e andando a modificare l'indirizzamento delle shared client, non mi va un tubo ho già fatto applicazioni con le shared tra pc e cfp, e mi funziona bene. però nel progetto inserisco sia la parte pc che quella cfp, mentre nel caso dei due pc non ho trovato come fare qualcuno di voi ha già provato? e poi spero che non sia obbligatorio l'uso del DSC, al cliente vorrei dare solo le runtime 8.2 grazie \":D\" ---------------------------------------- AUTORE: 927 DATA :25/05/2007 - 14:45:28 ---------------------------------------- Ho provato quell'esempio. Il primi 3 client funzionano, basta mettere il nome o l'IP dell'altro pc nei path, che si trova in posti diversi a seconda del client (rispettivamente nelle proprietà delle var. della libreria clients, in una costante stringa, e nelle proprietà dei controlli). Il quarto (Var. API client) credo sia sbagliato: usa direttamente le variabili della libreria "server", e non vedo come possa funzionare, se la libreria server è su un altro pc! Se la si attiva anche in locale, diventa un doppione Cmq il DSC non c'entra niente \":)\" ---------------------------------------- ================================================================================ Shared variable remote ================================================================================ AUTORE: 927 DATA :24/05/2007 - 12:00:50 ---------------------------------------- Una delle mie tipiche domande sulle shared variable che riceveranno 0 risposte \":lol:\" Se una shared variable è ospitata su un altro pc (il deploy è stato fatto là), c'è modo di ricavare da programma l'url completo della variabile (tipo \\ omepc\ omeprocesso\ omevar), o almeno il nome del pc host? ---------------------------------------- AUTORE: 4 DATA :24/05/2007 - 14:46:18 ---------------------------------------- [quote:1uge3ld1]Una delle mie tipiche domande sulle shared variable che riceveranno 0 risposte Laughing [/quote:1uge3ld1] quanto hai ragione, cmq sappi che io le leggo sempre tutte ma anche questa volta, come le altre, non so risponderti... sembra proprio che l'unico ad usare le shared variable sia tu \":wink:\" ---------------------------------------- AUTORE: 838 DATA :24/05/2007 - 16:48:15 ---------------------------------------- infatti le ho abbandonate pure io \"8)\" uso una connessione tcp tra i pc client e server \":D\" ---------------------------------------- AUTORE: 927 DATA :25/05/2007 - 08:43:32 ---------------------------------------- sto usando il DSC, che vive di variabili shared... cmq NON lo consiglio, a meno che non siano assolutamente necessarie molte delle sue funzionalità. tra l'altro fino a poco tempo fa non sapevo che ci vuole una licenza da 700 pezzi per ogni PC dove girano eseguibili labviù che usano il DSC! 700€ sono una bazzecola rispetto al costo dell'impianto, però insomma... ---------------------------------------- ================================================================================ waveform chart nel tempo ================================================================================ AUTORE: 86 DATA :24/05/2007 - 14:06:11 ---------------------------------------- Devo visualizzare una temperatura, acquisita con un fp1601, in funzione del tempo. uso una waveform chart, ma non riesco a 'governare' l'asse del tempo. Se setto nelle proprietà della chart, cartella Format and Precision/absolute time/System time format, -cioè, credo, usando il tempo del computer - parte con un tempo che è shiftato in avanti di mezz'ora. Ho provatoo di tutto nelle proprietà, (sicuramente sbagliando) ma non sono riouscito a venirne a capo. Qualcuno può aiutarmi?? Grazie anticipatamente ---------------------------------------- AUTORE: 645 DATA :24/05/2007 - 16:08:33 ---------------------------------------- Prova a giocare con i Property Node del Chart impostando come ora iniziale l'ora corrente del pc. ---------------------------------------- AUTORE: 86 DATA :30/05/2007 - 14:23:05 ---------------------------------------- potresti indicarmi come si fa? ---------------------------------------- ================================================================================ Finestre pop up ================================================================================ AUTORE: 1779 DATA :24/05/2007 - 15:48:04 ---------------------------------------- Salve a tutti, avrei la necessità di generare delle finestre pop up per la gestione di allarmi, per capirsi simili a quelle di messenger che compaiono in automatico quando si connette un contatto!Qualcuno a qualche idea a proposito? Vi ringranzio anticipatamente per la vostra disponibilità! Gianluca ---------------------------------------- AUTORE: 645 DATA :24/05/2007 - 16:05:23 ---------------------------------------- Quelle presenti tra gli Express VI sono comode ma devono essere chiuse dall'utente tramite la pressione di un pulsante... Potresti realizzare un piccolo VI da usare come finestra pop-up. Inserisci questo mini VI in un ciclo temporizzato richiamandolo in maniera attiva tramite server VI e usi i Property Node del pannello per visualizzare il pannello frontale del VI; dopo un tot di tempo con il Property Node regoli la visualizzazione a false e il mini VI sparisce (ricordati di chiuderlo...). ---------------------------------------- AUTORE: 1779 DATA :24/05/2007 - 16:13:34 ---------------------------------------- Ti ringrazio per l'immediata risposta cercherò di mettere in pratica il tuo consiglio (anche se al momento non ho ben chiaro che cosa siano i sever vi ma mi documenterò!) e ti farò sapere! Gianluca ---------------------------------------- AUTORE: 384 DATA :25/05/2007 - 00:48:20 ---------------------------------------- Puoi iniziare con dei vi normali. Devi inserire all'interno un ciclo temporizzato in modo che il VI termini quando l'operatore clicca sul pulsante oppure quando è trascorso un certo tempo. Impostando le proprietà del VI in modo corretto, esso si apri quando viene chiamato e si chiude quando termina. Il problema, è che il flusso del tuo programma si "interrompe" mentre si attende l'utente o il timeout. Magari per te non è importante ora, o in questa applicazione, ma sicuramente presto o tardi (forse più presto di quanto pensi! \":)\" ) vorrai fare in modo que il tuo programmi continui normalmente, indipendentemente di questa attesa. É allora che per forza entreranno in gioco i VI dinamici. Questi non sono altro che dei vi che vengono "lanciati" e vanno per conto suo, mentre il VI che li ha lanciati continua anche lui per conto suo. Il meccanismo di LabView che consente di fare questo si chiama VI server. Troverai sicuramente una montagna di riferimenti, sia nel'help in linea che sul forum e sul sito NI. ---------------------------------------- AUTORE: 301 DATA :19/11/2007 - 13:52:55 ---------------------------------------- vedi se ti piace una cosa del genere, ovviamente puoi anche richiamare il vi di popup in maniera dinamica...... ---------------------------------------- AUTORE: 645 DATA :19/11/2007 - 14:05:31 ---------------------------------------- Puoi convertire i file per LabView 8.2? O postare i block diagram... Mi piacerebbe vedere che soluzione hai usato ma ho la versione 8.2... ---------------------------------------- AUTORE: 301 DATA :26/11/2007 - 15:38:05 ---------------------------------------- Fatto, l'ho convertito in lv 8.....se non va sappimi dire.... ---------------------------------------- ================================================================================ recupero dati ================================================================================ AUTORE: 2002 DATA :25/05/2007 - 09:35:54 ---------------------------------------- ciaoo, dopo aver acquisito un segnale con un CompactRio, quindi dopo aver generatore il mio segnale con un generatore di segnale e aver fissato la frequenza di campionamento vorrei andare a visualizzare i campioni...Come posso fare? grazie ---------------------------------------- ================================================================================ Esercizi ================================================================================ AUTORE: 2125 DATA :25/05/2007 - 10:46:32 ---------------------------------------- Ciao a tutti, sono un nuovo utente del forum e mi sto avvicinando al linguaggio di programmazione in vista di un corso che seguirò il prossimo mese. Esistono esercizi e soluzioni on line oltre a quelli che ho trovato a questo indirizzo? Avete altri suggerimenti per incominciare a conoscere il programma? Grazie. ---------------------------------------- AUTORE: 247 DATA :25/05/2007 - 11:35:42 ---------------------------------------- Ciao, hai già deto un'occhiata alla sezione link di questo sito? Ci sono riferimenti a molti siti esterni, tra gli altri guarda anche [url=http://cnx.org/content/col10241/latest:38fs21u0]questo[/url:38fs21u0]. BYE. ---------------------------------------- AUTORE: 2125 DATA :25/05/2007 - 13:37:12 ---------------------------------------- [quote="apollon":3i1ua3dh]Ciao, hai già deto un'occhiata alla sezione link di questo sito? Ci sono riferimenti a molti siti esterni, tra gli altri guarda anche [url=http://cnx.org/content/col10241/latest:3i1ua3dh]questo[/url:3i1ua3dh]. BYE.[/quote:3i1ua3dh] Grazie mille, ho provato a dare un'occhiata al link .... io cercavo qualche esercizio tipo questi che mi sono stati molto utili.. http://www.dei.unipd.it/ricerca/gmee/di ... ogramma_LV (se non è corretto mettere questo tipo di link prego cancellarlo) ---------------------------------------- AUTORE: 2125 DATA :25/05/2007 - 13:54:28 ---------------------------------------- Ah.. dimenticavo.. io sto lavorando con la versione 7.1 dopo il corso mi farò acquistare dal mio capo la 8. ---------------------------------------- ================================================================================ segnali temporali, parere su soluzione (e alternative) ================================================================================ AUTORE: 2032 DATA :25/05/2007 - 11:21:10 ---------------------------------------- Ciao a tutti, volevo gentilmente chiedere se qualcuno potesse siutarmi a risolvere il mio seguente problema. Intanto dico che uso LabView 8.2, MAX 4.1, scheda PCI 6025E. Devo acquisire da due sensori di velocita un segnale che nel suo periodo porta l'informazione sulla velocita appunto, e inoltre avere un uscita simile, ovvero che abbia un certo periodo che indica la velocita da segnalare su un contagiri. Ora, intanto vorrei dire la documentazione che ho trovato sull'uso dei contatori, dei PFI, la configurazione SW di questi (che si dice si faccia, ma non capisco proprio dove, a meno che mi manchi del SW) mi sembra nebulosa, sopratutto per il fatto che MAX non indica assolutamente la connessione da fare sulla scheda, a differenza di quanto fa con gli AI ad esempio (cosa molto comoda per avere conferme!). Cmq, per i due sensori di ingresso ho pensato di usare i due contatori, e quindi connetere ai loro GATE il mio segnale (coi livelli di tensione opportunamente adattati ovviamente) per misurare il periodo. In questo modo pero mi brucio i due contatori, in quanto la risorsa diventa reserved. Per la generazione del segnale che va al contagiri, direi che non mi resta altro che usare un uscita digitale pilotata con una digital waveform di periodo impostabile (anche se ancora non so come si fa..). Vorrei avere un opinione sulla solzione che ho pensato, e se qualcuno ha delle soluzioni alternative migliori, ben vengano (i due AO li uso già..)! Tutti e tre i segnali hanno periodi che variano da 0s a al minimo 1ms. Grazi 1000. PS: forse il mio topic è un po..sciocco. Pero ho trovato n sacco di forum dove la questione dei counter non è molto chiara a mlti, e perciò probabilmente le risposte che mi darete potranno chiarire i dubbi di molti altri! ---------------------------------------- AUTORE: 2032 DATA :25/05/2007 - 13:08:48 ---------------------------------------- Che casino, stamattina dovevo essere proprio stanco.. Il topic che ho scritto è tutto sbagliato.. Di seguito metto quello giusto: ****************************************************** Ciao a tutti, volevo gentilmente chiedere se qualcuno potesse siutarmi a risolvere il mio seguente problema. Intanto dico che uso LabView 8.2, MAX 4.1, scheda PCI 6025E. Devo simulare due sensori di velocita , ovvero due segnali che nel loro periodo portano l'informazione sulla velocita appunto: la scheda a cui li mando li elabora e poi mi restituisce un uscita simile, ovvero che abbia un certo periodo che indica la velocita da segnalare su un contagiri (che io simulo). Ora, intanto vorrei dire la documentazione che ho trovato sull'uso dei contatori, dei PFI, la configurazione SW di questi (che si dice si faccia, ma non capisco proprio dove, a meno che mi manchi del SW) mi sembra nebulosa, sopratutto per il fatto che MAX non indica assolutamente la connessione da fare sulla scheda, a differenza di quanto fa con gli AI ad esempio (cosa molto comoda per avere conferme!). Cmq, per i due sensori (che sono quindi le mie uscite) ho pensato di usare i due contatori, e quindi connetere ai loro CTR_OUT gli ingressi della mia scheda sotto test (coi livelli di tensione opportunamente adattati ovviamente), CTR_OUT a cui impostero il periodo. In questo modo pero mi brucio i due contatori, in quanto la risorsa diventa reserved. Per l' acquisizione del segnale che va al mio contagiri simulato con LabView, direi che non mi resta altro che usare un ingresso digitale. Vorrei avere un opinione sulla solzione che ho pensato, e se qualcuno ha delle soluzioni alternative migliori, ben vengano (i due AO li uso già..)! Tutti e tre i segnali hanno periodi che variano da 0s a al minimo 1ms. Grazie 1000. PS: forse il mio topic è un po..sciocco. Pero ho trovato n sacco di forum dove la questione dei counter non è molto chiara a mlti, e perciò probabilmente le risposte che mi darete potranno chiarire i dubbi di molti altri *************************************************** Rinnovo il grazie ---------------------------------------- AUTORE: 113 DATA :25/05/2007 - 14:21:32 ---------------------------------------- Una cosa non mi è chiara: ma la scheda che definisci sotto test è la stessa che deve generare i segnali simulati? Se è così, effettivamente i due contatori sono già impegnati per generare i segnali stessi. Io non userei gli ingressi digitali per acquisirli poichè con la 6025 avresti possibilità molto limitate per farci misure di frequenza. Perchè invece non utilizzi gli ingressi analogici? Potresti campionare i segnali con un ritmo elevato e determinare con buona precisione la frequenza con la trasformata di Fourier (FFT); è un segnale ad onda quadra quindi avresti la frequenza fondamentale più le armoniche dispari che a te non interessano. Alberto P.S. Concordo con te quando dici che la documentazione riguardo DAQ-Mx non sia il miglior parto di NI... \":(\" P.P.S. Il topic non è sciocco! \":wink:\" ---------------------------------------- AUTORE: 2032 DATA :25/05/2007 - 15:09:23 ---------------------------------------- Fai conto che devo testare una scheda, chiamiamola PIPPO, con la 6025, percio la 6025 deve generare (simulare) i segnali che nella realta a PIPPO arriverebbero dai sensori. PIPPO elabora e poi li spedisce a un contagiri che simulo con la 6025. In effetti l astuzia di usare un AI per acquisire l output di PIPPO non è male, anzi. Me la segno subito!! Per quanto riguarda le risorse: io devo avere tutti questi segnali "attivi" nello stesso tempo, percio (se non sbaglio) visto che i due contatori li uso come out (CTR_OUT di entrambi) non posso usare CTR_GATE di uno per la misura ma mi tocca ricorrere all AI come suggerito da Alberto. ---------------------------------------- AUTORE: 384 DATA :27/05/2007 - 18:47:37 ---------------------------------------- Concordo con quanto suggerito da Alberto. I contatori sono molto utili per contare, per gli encoder e per generare. Se si tratta solo di misurare frequenza/tempo possono molto spesso essere rimpiazzati da degli AI e un pò di software. ---------------------------------------- ================================================================================ Labview e mysql ================================================================================ AUTORE: 2128 DATA :27/05/2007 - 14:38:33 ---------------------------------------- Salve a tutti. Mi sono iscritto da poco all' ILVG quindi non so bene come funziona. Volevo sapere se qualcuno di voi ha mai avuto problemi di velocità nel richiamare, utilizzando i tool di labview, un certo numero di dati (dell'ordine delle centinaia di migliaia) dal data base mysql. In tutte le prove che ho fatto il tempo di richiamo è veramente improponibile. Qualcuno ha mai affrontato il problema? grazie dell'aiuto. ciao ---------------------------------------- AUTORE: 129 DATA :28/05/2007 - 07:24:28 ---------------------------------------- Prova a guardare questa discussione [url=http://www.ilvg.it/forum/viewtopic.php?p=9003:1fis9byw]qui.[/url:1fis9byw] ---------------------------------------- ================================================================================ Comunicazione rs 232 pc a scheda auto costruita ================================================================================ AUTORE: 2129 DATA :28/05/2007 - 18:08:01 ---------------------------------------- Ho una scheda autocostruita che funziona da convertitore analogico digitale su 2 canali (utilizzo un pic) che comunica via rs 232 con il pc. Ora vorrei realizzare un applicativo in labview per leggere e visualizzare i valori convertiti dai sensori su labview. Sono un newbe di labview e uso una versione student del programma. Voglio fare una cosa semplice... labview interroga il pic (tramite un codice) e il pic gli risponde con i valori dei due canali (prima canale 1 e dopo canale 2). Quando labview rceve i valori li converte moltiplicandoli per una costante e poi li visualizza su un plot. Ovviamente il PIC è già programmato per fare tutto questo. Potreste indicarmi i controlli da utilizzare ? Grazie. ---------------------------------------- AUTORE: 2129 DATA :29/05/2007 - 15:52:08 ---------------------------------------- ok ho installato le librerie VISA. Ho notato che sono comparsi i controlli per la seriale. Come devo settare la seriale ? E come faccio a spedire un byte predeterminato ? ---------------------------------------- AUTORE: 645 DATA :29/05/2007 - 17:56:06 ---------------------------------------- Ho letto anche in un altro post che chiedi cos'è MAX... però ormai le VISA le hai installate. Parti dal blocco "Configure Serial Port" che ti permette di settare i parametri della porta seriale (baud rate & Co... dipende dalla tua scheda). Poi apri la connessione ("OPEN"), invii un blocco alla scheda con il blocco WRITE, aspetti un po' (secondi o millisecondi) e poi leggi una risposta con il blocco READ. Il blocco WRITE accetta in ingresso una stringa: il comando che devi inviare al PIC per ottenere la risposta. Il blocco READ restituisce una stringa: la risposta. Alla fine delle operazioni (per letture e scritture multiple puoi racchiudere questi blocchi in un ciclo) chiudi la connessione con il blocco "CLOSE". Se cerchi nel forum o tra gli esempi di LabView trovi molto sulla seriale. Fai qualche prova e poi fai un fischio! \":D\" ---------------------------------------- AUTORE: 2129 DATA :29/05/2007 - 21:38:20 ---------------------------------------- ok.. venerdì mi arriva l'adattatore seriale-TTL nel frattempo mi guardo anche gli esempi per prendere spunto e nn fare boiate. Quando raggiungo qualche risultato vi avverto. ---------------------------------------- AUTORE: 384 DATA :30/05/2007 - 00:28:38 ---------------------------------------- [quote="tecnezio":3esl0dht]ok.. venerdì mi arriva l'adattatore seriale-TTL.[/quote:3esl0dht] Non fai prima ad accricchiarne uno con un MAX232 su una millefori??? ---------------------------------------- AUTORE: 1168 DATA :30/05/2007 - 06:37:33 ---------------------------------------- Un paio di anni fa lo spedivano come campione... rapido, veloce, indolore...e gratis! \":-)\" ---------------------------------------- AUTORE: 384 DATA :30/05/2007 - 09:21:01 ---------------------------------------- Ora si trova anche nei negozzi di componenti elettronici all'angolo. (anche se di questi negozzi ce ne sono sempre meno \":(\" ) ---------------------------------------- AUTORE: 2129 DATA :30/05/2007 - 14:12:27 ---------------------------------------- I campioni nn li spediscono più... ci ho provato l'anno scorso. Ho dovuto ordinare i max232 e connettore per la seriale su distrelect perchè al negozio nn avevano ne uno ne l'altro. Per quanto riguarda la millefori preferisco gli stampati. ---------------------------------------- AUTORE: 384 DATA :30/05/2007 - 14:34:15 ---------------------------------------- Anch'io preferisco gli stampati. Ma per arranggiarsi in 1/2 ora solo con le millefori oppure le "breadboard"... ---------------------------------------- AUTORE: 660 DATA :31/05/2007 - 10:15:45 ---------------------------------------- Se ti può interessare inizia a provare con l'esempio "Basic serial write and read.vi". Io ho usato quello e da lì ho sviluppato tutta l'applicazione Max ---------------------------------------- AUTORE: 2129 DATA :31/05/2007 - 16:44:21 ---------------------------------------- Dove lo trovo l'esempio ? Cmq... ho fatto qualche tentativo... trasmetto e ricevo in modo esatto anche se ogni tanto mi da un time-out.... Il problema principale adesso è quella che in uscita dalla lettura della porta ho una stringa mentre per usare il grafico serve un dato DBL (per il chart) come posso fare ? ---------------------------------------- AUTORE: 1165 DATA :31/05/2007 - 19:00:18 ---------------------------------------- Ragazzi per me la soluzione migliore non sono gli stampati nè le millefori, ma come ho detto in una precedente discussione (viewtopic.php?p=12733#12733), in questi casi sono le strip board della Vero Technologies (non ho azioni di questa azienda inglese!). Anzi sulla base dei loro prodotti io mi sono disegnato un mio proprio originale layout più efficiente e versatile delle stripboard, e appena avrò un po' di tempo riprenderò la discussione sopradetta, aggoirnandola con gli ultimi sviluppi. Enr. ---------------------------------------- AUTORE: 2129 DATA :01/06/2007 - 14:33:11 ---------------------------------------- Lasciando da parte gli off topic.... Ho fatto molte prove ma nn riesco ad uscirne... ricevo correttamente dal pic il valore della conversione... è un valore che va da 0 a 255 (8 bit) ogni 100 ms. La seriale li riceve e labview fa la pensata di convertirli nel corrispondete codice ascii perchè si riceve una stringa e non un numero.... Però io ho bisogno del numero non del corrispondente ASCII... Come faccio a convertire la stringa in numero ??? Vi posto l'esempio che stò usando... leggermente modificato per creare un CHART... ---------------------------------------- AUTORE: 645 DATA :01/06/2007 - 15:49:50 ---------------------------------------- Hai provato con i blocchi di conversione da stringa a numero? Li trovi nella paletta dei numeri o in quella della stringhe sotto la voce conversione... ---------------------------------------- AUTORE: 2129 DATA :01/06/2007 - 16:52:38 ---------------------------------------- si ho provato ma il risultato è veramente penoso nel senso che se la stringa è una lettera allora il numero è 0 mentre se il numero è un numero allora c'è il numero.... ---------------------------------------- AUTORE: 2129 DATA :01/06/2007 - 16:55:38 ---------------------------------------- ho tentato un'altro approccio... ho riscritto tutto il firmware ed oratrasmette separatamente i valori della conversione nella modalità: XXX,XX\ dove x è un numero.... tutto questo per riallacciarmi ad un post che ho trovato: viewtopic.php?p=13619 Cmq... ho un problemini sul firmware... ma proprio piccolo.... non riesco a scrivere la virgola.... non trovo il codice corrispondente.... ---------------------------------------- AUTORE: 2129 DATA :01/06/2007 - 19:35:55 ---------------------------------------- funziona... evvai!!!!!! con il secondo approccio sono riuscito a fare quello che volevo all'inizio. Ora devo sistemare la parte grafica..... cmq. Labview 7 che requisiti di sistema ha ??? ---------------------------------------- ================================================================================ PROBLEMA CON CLUSTER E ARRAY ================================================================================ AUTORE: 2130 DATA :28/05/2007 - 18:45:13 ---------------------------------------- Salve a tutti, ho un problemino con array e clusters,credo che la soluzione sia banale,ma non riesco a venirne a capo. Ho un array formato da cluster,devo selezionare uno di questi cluster(con unbundle by name credo)e confrontarlo con gli altri per trovare i 2 più simili(ho pensato di sottrarre i due elementi e poi verificare che il risultato sia minore di una certa soglia scelta da me).Il problema è proprio riuscire a confrontare tra loro tutti i cluster dell'array. Grazie in anticipo per l'aiuto. ---------------------------------------- AUTORE: 129 DATA :28/05/2007 - 20:45:16 ---------------------------------------- Se il cluster è omogeneo puoi usare la funzione di conversione in array. Altrimenti devi scompattare il cluster e quindi cercare per tipi di dati omogenei. ---------------------------------------- AUTORE: 2130 DATA :28/05/2007 - 21:08:56 ---------------------------------------- Mi sono spiegato male il mio problema è costruire un vi che dato un array di cluster di grandezza variabile,mi dica se in una categoria di cluster ci sono 2 elementi simili a meno di una costante,la difficoltà è fare tutti i confronti possibili. (Es 3 elementi(0,1,2)- ---------------------------------------- AUTORE: 645 DATA :28/05/2007 - 23:18:44 ---------------------------------------- Puoi fare un esempio dei cluster con cui lavori? Secondo me puoi isolare gli elementi del cluster e impostare un ciclo dalla posizione corrente alla fine con le relative differenze: bisogna pensarci un attimo ma credo che sia fattibile giocando con la dimensione dell'array estratto (mi pare di aver capito che ogni elemento del cluster è un array) e la posizione corrente. ---------------------------------------- AUTORE: 2130 DATA :29/05/2007 - 07:23:52 ---------------------------------------- In pratica lavoro sull'uscita di un blocco di count objects,mi vien fuori un array di cluster (che hanno all'interno valori numerici circa la posizione,l'aspetto e altre caratteristiche degli oggetti individuati nell'immagine).Il mio scopo è individuare i due oggetti più simili tra loro per poi valutare la loro distanza sfruttando una calibrazione precedentemente effettuata(ovviamente l'operazione deve valere indipendentemente dalla posizione dell'oggetto).Un ulteriore problema è che devo ripetere queste operazioni anche nel caso in cui gli oggetti sensibili siano 3 (sempre con dimensioni e orientazione uguale),forse stò seguendo la strada sbagliata? ---------------------------------------- AUTORE: 2130 DATA :29/05/2007 - 17:10:16 ---------------------------------------- Proprio nessuno riesce a darmi una mano?Devo sottrarre due elementi alla volta di un array e controllare se questa differenza è < di una soglia di tolleranza.Ci sono altri metodi per sapere se in un array ci sono due elementi se non uguali molto simili tra loro? ---------------------------------------- AUTORE: 645 DATA :29/05/2007 - 17:52:02 ---------------------------------------- Ma quindi lavori con un array di cluster o con un cluster di array? Se la risposta è la prima puoi fare un esempio di cluster (per capire cosa confrontare)? ---------------------------------------- AUTORE: 2130 DATA :29/05/2007 - 18:33:09 ---------------------------------------- Grazie per la pazienza e la disponibilità. Devo lavorare sull'uscita di un blocco count objects che mi dà un array Objects composto da cluster del tipo Area,Orientation,Aspect Ratio,etc... A partire da un'immagine acquisita con una telecamera devo trovare degli oggetti di una certa forma,col count objects riesco a selezionarli,ma a volte mi seleziona anche altri oggetti che non sono di interesse.Per questo motivo devo scartare dei valori,mi sembrava utile quindi operare su un solo campo (es Orientation) e confrontare a due a due i valori numerici per trovare quelli simili tra loro.L'immagine è una spina e devo misurare la distanza tra i terminali dopo aver individuato se sono 2 o 3 indipendentemente dalla posizione.Forse stò seguendo una strada sbagliata,fatemi sapere e grazie ancora. ---------------------------------------- AUTORE: 384 DATA :30/05/2007 - 00:35:39 ---------------------------------------- Non stai sbagliando strada. Devi solo costruire la funzione di comparazione, visto che i cluster contengono diversi tipi di informazione. Se ho capito bene, ti servirebbe ordinare il tuo array di cluster secondo un tuo particolare criterio. Visto che l'algoritmo di sorting di LV non accetta la funzione di comparazione definita dal programmatore (a diferenza di quella della stdlib del C - e questo è tuttora una grossa mancanza di LV!!!) ma procede con la normale comparazione numerica campo per campo del cluster hai 2 possibilità: 1)i toui cluster contengono dei dati tali per cui questo processo può dare dei risultati e basta usarlo. 2)devi costruire un array con dei tuoi cluster in cui le informazioni sono prese da quelli originali e pre-elaborate in modo tale che il sorting produca un risultato a te confaccente. Spero di aver apportato qualcosa di utile al tuo problema. ---------------------------------------- ================================================================================ Utilizzo counter e visualizzazione segnale [era:new entry] ================================================================================ AUTORE: 2135 DATA :28/05/2007 - 21:23:57 ---------------------------------------- ciao raga!!! ce l'ho fatta, adesso faccio parte ankio di qst forum!! \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" \":D\" mettiamoci subito a lavoro...voi lavorerete per me vero? \":P\" \":P\" \":P\" a parte gli scherzi...ho bisogno del vs aiuto: le prime due domande: 1. a che servono i counter, si usano come input o come output? 2. come faccio a visualizzare un segnale con due livelli H/L (0-5V) che varia nel tempo ? Un bacione.... \":!:\" \":!:\" \":wink:\" ---------------------------------------- AUTORE: 384 DATA :29/05/2007 - 09:21:23 ---------------------------------------- [quote="francescaaprile":ygp1pwln]ciao raga!!! ce l'ho fatta, adesso faccio parte ankio di qst forum!![/quote:ygp1pwln] A nome di tutti, ti porgo li benvenuto "ufficiale" del forum ILVG! [quote="francescaaprile":ygp1pwln]mettiamoci subito a lavoro...voi lavorerete per me vero?[/quote:ygp1pwln] Certamente!... \":wink:\" [quote="francescaaprile":ygp1pwln]1. a che servono i counter, si usano come input o come output? 2. come faccio a visualizzare un segnale con due livelli H/L (0-5V) che varia nel tempo ?[/quote:ygp1pwln] 1.Come input, i counter servono per contare eventi - appunto - misurare frequenza/tempo, per interfacciare degli encoder incrementali, come trigger, ecc.. Come output, servono da generatori di impulsi, treni di impulsi, onda quadra. Con qualche ulteriore trucco si possono usare come normali ingressi/uscite digitali. 2.Come con tutti isegnali! Se il tuo segnale è del tipo "free run", cioè, non ha informazione temporale esplicita, puoi usare il "Waveform Chart". Se invece ha informazione temporale puoi usare il "Waveform Graph". Esiste anche il "Digital Waveform Graph" per i casi particolari di segnali strettamente digitali (come il tuo) particolarmente utile se si hanno più segnali a scopo di "logic analyser". [quote="francescaaprile":ygp1pwln]Un bacione.... \":!:\" \":!:\" \":wink:\"[/quote:ygp1pwln] Solo uno?!... (che farfallone!!!!) \":wink:\" \"8)\" ---------------------------------------- AUTORE: 2135 DATA :29/05/2007 - 19:44:40 ---------------------------------------- adesso guadagnati piu di un bacio farfallone.... \":wink:\" \":wink:\" ho realizzato il vi della figura allegata, ma come mai con il waveform graph l'asse dei tempi rimane fisso tra 0 e 0.015, come devo fare per farlo andare avanti? cosa sbaglio? e poi vorrei scrivere su file quali blocchi devo aggiungere? ---------------------------------------- AUTORE: 2135 DATA :29/05/2007 - 19:58:26 ---------------------------------------- sto facendo un po di confusione...... \":roll:\" \":roll:\" \":wink:\" \":wink:\" \":D\" ---------------------------------------- AUTORE: 2135 DATA :29/05/2007 - 20:06:22 ---------------------------------------- e poi ci sarebbe un'altra cosa che mi interesserebbe fare: ho visto l'esempio del vi che genera impulsi digitali (di cui allego il diagramma a blocchi), a me serve proprio generare questo segnale pero' vedo che ne genera un ciclo solo e poi si ferma, immagino che devo aggiungere un while loop? se si cosa deve contenere? oppure come si fa:? \":?:\" \":P\" \":P\" \":wink:\" ah domenticavo.......tre baci!!! per favore spiegami le cose come le bambine delle elementari!!! ---------------------------------------- AUTORE: 384 DATA :30/05/2007 - 00:24:16 ---------------------------------------- Io mi guadagnerò i tre bacci, ma anche tu dovrai guadagnarti il "privileggio" di darmeli, capito?! \":)\" Allora, andiamo per parti! 1.Waveform Graph Quello che stai facendo è acquisire un segnale sempre della stessa dimensione. Ogni volta, l'acquisizione inizia all'istante t0=0 e quindi vedi sempre la stessa scala dei tempi, anche se magari il segnale in sè varia. Per osservare la progressione nel tempo devi concatenare ogni acquisizione a quelle passate. Cercca nell'help in linea e negli esempi con "shift register" e troverai tutte le istruzioni che ti servono. 2.Scrittura su file Dipende da ciò che vuoi scrivere e in che modo. a)Se vuoi salvare tutti i dati alla massima velocità, ti conviene fare ciò che si chiama "streaming" (cerca nell'help) ed esistono delle funzioni già pronte nella pallette 'File I/O\Storage". b)se vuoi salvare i dati di forma d'onda per poi rileggerli con LabView, usa le funzioni di I/O su file della pallette Waveform. c)se vuoi salvare i dati in modo leggibile agli umani ed importabile da altre applicazioni (e.g., ecxel), devi convertire questi dati in strunghe ascii e poi scriverli su file. É un processo più oneroso e lento e va bene se la mole di dati non è esagerata. 3.Generazione onda quadra Non serve il loop while. Si può programmare il counter in modo che generi continuamente un'onda quadra, da quando lo si fa partire a quando lo si fa fermare. Cerca negli esempi con "generating" e guarda il VI "Gen Dig Pulse Train-Continuous.vi". E quando avrai finito i compiti sarò pronto per i bacci! \"8)\" ---------------------------------------- AUTORE: 2135 DATA :30/05/2007 - 12:06:31 ---------------------------------------- ciao, sulla base del vi che ti allego dovrei aggiungere qst shift register di cui parli e inoltre scrivere su file i risultati....ma non ci riesco!!! \":oops:\" \":oops:\" nn mi sto guadagnando piu i baci vero? help help me!!!! \":!:\" \":!:\" \":(\" \":(\" un vi gia fatto no e? cosi collego le cose che mi hai spiegato alla pratica...ho visto che ad alcuni hai spiegato elementarmente le cose sullo shift register ma nn riesco ad applicarle al mio caso..la teoria + 0 - è chiara....ma nn basta per la pratica!!!! baci baci baci!!! ---------------------------------------- AUTORE: 247 DATA :30/05/2007 - 13:02:56 ---------------------------------------- Ciao e benvenuta, per il resto....[b:3kmv4itf]dai nomi sigificativi ai post che scrivi[/b:3kmv4itf] \":evil:\" \":evil:\" \":evil:\" !!! E' una non troppo dura legge da rispettare che porta molti benefici al forum! (hai letto il regolamento no?) BYE. ---------------------------------------- AUTORE: 2135 DATA :30/05/2007 - 13:23:11 ---------------------------------------- hai ragione , mi è sfuggito....credo che in effeti sia importantissimo!!! un aiuto ciascuno e migliorerò in tutto!!! intanto grazie, aiuti per il vi? ---------------------------------------- AUTORE: 2135 DATA :30/05/2007 - 14:58:22 ---------------------------------------- se poi la base del vi che ho allegato nn va bene allora fatemi vedere come si fa... ---------------------------------------- AUTORE: 2135 DATA :30/05/2007 - 17:27:27 ---------------------------------------- GYC dove seiiiiiiiiiiiiiiiiii? eri l'unico a rispondermi e ora nn ci sei piu????????? guarda che pasticcio che ho combinato (ho allegato le imm di quello che ho fatto che è sicuramente sbagliato!!). Allego anche il Vi che mi da errore 8 possible reason.... aiuto!!!!! \":roll:\" \":roll:\" \":roll:\" \":(\" \":(\" \":(\" ---------------------------------------- AUTORE: 384 DATA :31/05/2007 - 09:19:33 ---------------------------------------- Eccomi, ma per poco. Eh, non sono sempre davanti al computer... E mi spiace ma ci torno solo oggi pomeriggio. A dopo. ---------------------------------------- AUTORE: 384 DATA :01/06/2007 - 12:25:17 ---------------------------------------- Rieccomi! Mi dispiace per il delay. É stato un bell'esempio del teorema di Hofstadter!... Allora, riprendiamo con gli shift register. Per aggiungerli ad un loop, devi puntare con il mouse sul bordo (sinistro) del loop, click destro, "Add Shift Register". Compare un quadratone con un triangolo invertito, inizialmente colorato bianco/nero, sia a sinistra che destra . Solo quando vi si collegherá qualcosa, esso prenderá i colori del tipo di dati che vi circolerà. L'idea è che da quello di sinistra si prendono i dati dal giro precedente, e su quello di destra si immetono i dati per il passa Ricordati che gli shift register vanno inizializzati. Normalmente lo si fa collegandovi una costante fuori dal loop. Lo si può anche fare dall'interno, ma per iniziare, basta cosí. Per quanto riguarda il file, lo stai creando ogni volta. Devi spostare l'apertura e la chiusua fuori dal loop. ---------------------------------------- AUTORE: 2135 DATA :01/06/2007 - 13:04:50 ---------------------------------------- ehi GYC finalmente... cmnq sulla teoria c'ero, nel senso che sono riuscita a creare lo shift register, ma cosa collego al triangolo di sx e di dx? se nn ricordi mi serve per: detto da te: Per osservare la progressione nel tempo (del segnale sul grafico) devi concatenare ogni acquisizione a quelle passate. usare il waveform chart è giusto se voglio visualizzare dall'inizio alla fine tutti i campioni del segnale video? baci baci.... \":!:\" ---------------------------------------- AUTORE: 384 DATA :01/06/2007 - 17:57:47 ---------------------------------------- [quote="francescaaprile":q3lwafi5]ehi GYC finalmente... cmnq sulla teoria c'ero, nel senso che sono riuscita a creare lo shift register, ma cosa collego al triangolo di sx e di dx?[/quote:q3lwafi5] Da sinistra prelevi il segnale del passato. Ad esso concateni quello acquisito ed il risultato lo immetti a destra ed in un grafico. [quote="francescaaprile":q3lwafi5]usare il waveform chart è giusto se voglio visualizzare dall'inizio alla fine tutti i campioni del segnale video?[/quote:q3lwafi5] Si. Devi però acquisire il segnale 1 solo campione alla volta. Questo metodo è inerentemente lento, quindi devi fare il conto alla frequenza di Nyquist (o Shanon) per capire se va bene per la tua applicazione. (Se ti servono info su Nyquist/Shanon, cerca sul forum perchè ne abbiamo già discusso. Anche su [url=http://en.wikipedia.org/wiki/Nyquist–Shannon_sampling_theorem:q3lwafi5]wikipedia[/url:q3lwafi5] c'è una buona descrizione.) ---------------------------------------- AUTORE: 2135 DATA :02/06/2007 - 16:14:05 ---------------------------------------- ehi GYC cosi nn capiro' mai,...... \":?\" allora io ti scrivo delle cose e tu le completi ok? (vediamo se cosi funziona!) ricorda che lo scopo a cui voglio arrivare è: osservare la progressione nel tempo quindi concatenare ogni acquisizione a quelle passate quindi: 1. a sinistra del triangolone di sinistra ci porto un filo che proviene dal blocco? 2.da destra del triangolone di sinistra vado dove? 3. a sinistra del triangolone di destra ci attacco? 4.a destra del triangolone di destra ci attacco? lo so che sembra un enigma ...ma è l'unico modo...dopodichè colleghero' la teoria che gia so grazie a te al VI e allora sarà tutto chiaro!!! cmnq grazie davvero per l'aiuto che mi stai dando!!! \":)\" \":)\" \":P\" \":wink:\" \":wink:\" \":wink:\" \":wink:\" \":wink:\" \":wink:\" \":wink:\" ---------------------------------------- AUTORE: 384 DATA :02/06/2007 - 20:38:55 ---------------------------------------- Vai all'help online, clicka su index e scrivi "shift". Compariranno tutte le voci disponibili sui shift register; leggile, sono solo una mezza dozzina. Poi vai agli esempi, cicka su "search" e cerca "shift". Apri il vi: Find Maximum Value from Array.vi Ossrvalo e rileggi ciò che ho scritto. Riassumendo: A sinistra: -fuori dal loop: inizializzazione con una costante. -all'interno del loop: prelevi i dati dei "giri" precedenti. A destra: -all'interno del loop: immetti i dati che andranno al "giro" successivo. -fuori dal loop: una volta usciti dal loop si possono prelevare tutti i dati accumulati nello shift register durante l'esecizione dell loop stesso. Poi prova con un esercizio semplice: facendo 10 iterazioni di un loop, sommare gli indici dei giri. Nauralmente ti serve uno shift register. Facendo 10 iterazioni, il risultato dovrebbe essere 45. ---------------------------------------- AUTORE: 2135 DATA :04/06/2007 - 07:38:58 ---------------------------------------- Ciao GYC e Ciao a tutti i componenti del forum \":!:\" \":wink:\" GYC lo shift register con i numeri è chiaro. Non riesco ad ottenere gli stessi risultati per concatenare i grafici della tensione acquisita! Cmnq ti allego l'immagine del VI che ho realizzato cosi mi puoi dare spiegazioni specifiche. Poi...guarderesti se ci sono degli altri errori evidenti? grazie a tutti , in particolar modo a Gyc che mi sta seguendo sin dall'inizio!!! \":P\" \":P\" \":wink:\" ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 11:07:35 ---------------------------------------- Bene con i shift register. Sono assolutamente essenziali e scoprirai di doverli usare molto più spesso di quanto magari tu non creda ora. Buon lavoro. Per concatenare le waveform, non lo si può fare direttamente. Bisogna estrarre l'array dei punti, concatenare quello e reinserirlo nella wave form. Lo so che sembra complicato - allego un'immagine di questo. ---------------------------------------- AUTORE: 2135 DATA :05/06/2007 - 19:34:27 ---------------------------------------- ciao GYC e company!! Mi è sorto un nuovo probllema: ho realizzato un VI per l'acquisizione di un canale analogico, ho collegato il gen di funz esterno ad un canale analogico, ma dopo averlo tenuto in runnning parecchi secondi il risultato è l'acquisizione di un solo fronte di salita del segnale, tra l'altro costituito da un sacco di campioni. per precisione ho usano un segnale ad onda quadra con freq 1 KHz e il rate del daqmx timing l'ho provato sia a 1000 che a 2000, addirittura a 5000 nn funziona proprio... 1.come mai? dove devo agire? 2.ti sembrerà assurdo ma il concatenamento del waveform non mi è riuscito, se guardi qlk messaggio prima contiene in allegato lo schema a blocchi, magari se mi dicessi da dove devo iniziare.... ciao e grazie ---------------------------------------- AUTORE: 384 DATA :06/06/2007 - 10:08:03 ---------------------------------------- 1. a)Stai usando il trigger esterno? potrebbe essere il problema. b)dal teorema di Nyquist, pr campionare un segnale bisogna usare una frequenza di campionamento almeno il doppio della "larghezza di banda" del segnale stesso, quindi 1000 e 2000 sono decisamente insufficienti per un'onda quadra. 5000 sono appena sufficienti. Ed in generale, vale la regola di 10x se si vuole fare delle misure nel tempo, e non solo elaborazioni in frequenza, quindi imposta pure 10KHz di sampling rate. c)sei sicura di aver collegato tutte le masse? 2. Imposta il blocco di lettura dati in modo da uscire direttamente con un array e non con una wave form. Diventa più semplice da gestire. L'unico vi che hai allegato è in versione 8.x che io non posso leggere. ---------------------------------------- AUTORE: 2135 DATA :06/06/2007 - 11:23:26 ---------------------------------------- citazione: Stai usando il trigger esterno? potrebbe essere il problema. risposta :no non sto utilizzando un trigger esterno. citazione: sei sicura di aver collegato tutte le masse? risposta :non sto utilizzando un segnale proveniente da qualche sensore o quant'altro ma proveniente da un generatore di funzioni. citazione: 2Imposta il blocco di lettura dati in modo da uscire direttamente con un array e non con una wave form. Diventa più semplice da gestire. risposta: e poi come visualizzo la forma d'onda in modo da visualizzare ttta la storia delle forme d'onda , quello di cui abbiamo parlato sopra, nn sono riuscita ancora a farlo! invece volevo farti un'altra domanda che nn c'entra con queste: se io imposto un canale digitale in ingresso e cerco di visualizzare cio che sto acquisendo con il waveform digital vedo solo un puntino che va sopra e sotto, come faccio a vedere il susseguirsi nel tempo degli stati alti e bassi? ciao GYC, sei gentile!!! come sempre!!!! ---------------------------------------- AUTORE: 384 DATA :06/06/2007 - 12:51:39 ---------------------------------------- [quote="francescaaprile":2rgbax5n]citazione: sei sicura di aver collegato tutte le masse? risposta :non sto utilizzando un segnale proveniente da qualche sensore o quant'altro ma proveniente da un generatore di funzioni.[/quote:2rgbax5n] Non è per questo che la massa non serve!... Verifica le connessioni. [quote="francescaaprile":2rgbax5n]citazione: 2Imposta il blocco di lettura dati in modo da uscire direttamente con un array e non con una wave form. Diventa più semplice da gestire. risposta: e poi come visualizzo la forma d'onda in modo da visualizzare ttta la storia delle forme d'onda , quello di cui abbiamo parlato sopra, nn sono riuscita ancora a farlo![/quote:2rgbax5n] Puoi partire con il "waveform chart" (si chiama waveform ma accetta tutto!), che si incarica di aggiungere l'informazione temporale. [quote="francescaaprile":2rgbax5n]invece volevo farti un'altra domanda che nn c'entra con queste: se io imposto un canale digitale in ingresso e cerco di visualizzare cio che sto acquisendo con il waveform digital vedo solo un puntino che va sopra e sotto, come faccio a vedere il susseguirsi nel tempo degli stati alti e bassi?[/quote:2rgbax5n] Se immetti nel graph solo un risultato alla volta solo quello vedi; questo blocco non aggiunge - come il chart - l'informazione temporale. Devi quindi accodare (concatenare) ad un array ogni valore digitale acquisito ad ogni passaggio e visualizzarlo tutto. Sembro noioso, ma il problema è sempre quello. Quindi, in generale, non esiste un meccanismo automatico per ricordare i dati del passato (acquisiti o prodotti in altro modo). L'unico blocco che lo fa è il "chart". Deve essere il programmatore a tenere traccia del passato in degli array con i shift registers. La funzione "Build Array", che in realtà è flessibile, viene usata per "aggiungere" i dati recenti a quelli del passato. Però non capisco: neanche ocn quell'immagine che ho allegato sei riuscita a concatenare due array? Concatenare uno scalare ad un array è esattamente lo stesso diagramma, cambia solo il tipo di uno dei dati. Vai all'help, cerca "build" e clicka su "Build Array". Spiega tutto in dettaglio. ---------------------------------------- AUTORE: 2135 DATA :06/06/2007 - 13:33:55 ---------------------------------------- non capisco, io vado dal generatore di funzioni tektronix al blocco connettori sul connettore AI0 tramite un cavo bnc, lo switch è posizionato su fs. 1. cosa c'è di sbagliato secondo te? ti allego l'immagine del VI incriminato visto che nn hai Labview 8. 2. in base all'immagine che mi hai inviato conc waveform, dove devo collegare i tre terminali che hai lasciato liberi guardando il mio VI? ---------------------------------------- AUTORE: 384 DATA :06/06/2007 - 15:37:46 ---------------------------------------- [quote="francescaaprile":3ru7rr1m]non capisco, io vado dal generatore di funzioni tektronix al blocco connettori sul connettore AI0 tramite un cavo bnc, lo switch è posizionato su fs. 1. cosa c'è di sbagliato secondo te?[/quote:3ru7rr1m] Niente! Quindi il problema è nella acquisizione e/o visualizzazione. [quote="francescaaprile":3ru7rr1m]ti allego l'immagine del VI incriminato visto che nn hai Labview 8. 2. in base all'immagine che mi hai inviato conc waveform, dove devo collegare i tre terminali che hai lasciato liberi guardando il mio VI?[/quote:3ru7rr1m] Il terminale sinistro superiore va a collegarsi allo shift register (lato sinistro). Il terminale sinistro iunferiore va a collegarsi al blocco di acquisizione dati. Il terminale destro va a collegarsi allo shift register (lato destro) e al graph.   ---------------------------------------- AUTORE: 2135 DATA :06/06/2007 - 16:43:41 ---------------------------------------- il tuo e/o vuol dire che forse risolta la visualizzazione con il concatenamento (come di fatto è successo con il tuo ultimo messaggio) si puo risolvere la cosa o no? oppure quali possono essere altre cause? se me ne elenchi un po io domani mattina in lab potrei tentare piu soluzioni. ---------------------------------------- AUTORE: 384 DATA :07/06/2007 - 18:55:43 ---------------------------------------- Il "e/o" vuol dire che il problema può essere in entrambi. Nell'immagine che hai allegato ai precedenti messaggi non vedo nienete di strano per quanto riguarda l'acquisizione, ma io non sono davanti alle attrezzature per poter guardare tutti i parametri. Verifica che le scale, sia del generatore sia della scheda di acquisizione siano compatibili. Imposta la freq. di campionamento 10x quella del generatore. Vai agli esempi, cerca con "oscil" e fai girare il vi: "1 Channel Simple Scope.vi". Imposta il canale ed il "device" se necessario (se hai una sola scheda, "1" dovrebbe essere giusto, altrimenti apri il MAX e guarda). Nel panello di help, in basso a destra c'è una finestrella con l'elenco del HW che si può usare; verifica che ci sia la tua scheada. Questo VI è un oscilloscoppio semplice e sappiamo che funziona. Se con esso non riesci a visualizza il tuo segnale, allora c'è qualcosa che non val nella catena HW. Se invece funziona, allora concentrati nel tuo SW. Parti con leggere bene il manuale per quanto riguarda il DAQmx; fai anche delle ricerche sul sito NI. Il DAQmx è molto versatile, offre un sacco di opzioni e - appunto per questo, può diventare complicato da capire ed è facile impostare le cose in modo sbagliato all'inizio. Imposta la funzione di acquisizione dati in modo da uscire con un array di double e concentrati nel acquisire "tronconi" di segnale in modo free run, cioè, senza alcun sincronismo; usa il "Waveform Graph" per visualizzare; solo per caso, aggiustando la freq. del generatore a mano, si vedrá il segnale fermo: è normale. Quando raggiungerai questo, usa il Waveform chart, per mantenere uno storico. E finalmente, gli shift register. ---------------------------------------- AUTORE: 384 DATA :07/06/2007 - 19:10:56 ---------------------------------------- Un dettaglio: non dimenticare che se acquisisci con Fs=10KHz il tuo storico scorrerá ad una velocità superiore a ciò che l'occhio umano riesce a guardare. Se, per rallentarlo, prendi tronconi più lunghi, allora avrai troppi dati per la risoluzione dello schermo e vedrai solo una macchia colorata, magari con qualche frangia di Moirè. Eventualmente abbassa la freq. del generatore a pochi Herz (1 5 2 Hz) e imposta la Fs in corrispondenza, in modo che tu possa osservare il segnale che "scorre" nel display. E inizia con una sinusoide! (è sempre più semplice...)   ---------------------------------------- AUTORE: 384 DATA :07/06/2007 - 19:21:56 ---------------------------------------- [quote="gyc":1gzvj0kh]...pochi Herz (1 5 2 Hz)...[/quote:1gzvj0kh] Intendevo scrivere: (1 - 5 Hz) \":lol:\" Sorry. ([url=http://en.wikipedia.org/wiki/Moire_pattern:1gzvj0kh]Moirè Patterns / Effetto Moirè[/url:1gzvj0kh])   ---------------------------------------- AUTORE: 2135 DATA :07/06/2007 - 22:42:19 ---------------------------------------- GYC è andata bene correggendo lo shif register. Ora avrei un'altra cosa da risolvere: c'è un metodo per avviare e stoppare tutto il processo di acquisizione solo quando do uno start (un bottone) che pero sia diverso dalla freccia del "run"? Ciao GYC...l'ennesimo grazie! ---------------------------------------- AUTORE: 384 DATA :08/06/2007 - 11:14:41 ---------------------------------------- Si: 1) un pulsante collegato a un "case"; quando clicchi la procedura di acquisizione si esegue. 2) usa la event structure; è la scelta migliore per gestire l'interfaccia uomo-macchina. Immagino che termini da sola. Se non è cosí, dovrà avere un pulsante di stop. Non stai mettendo troppa carne al fuoco? ---------------------------------------- AUTORE: 384 DATA :08/06/2007 - 11:16:20 ---------------------------------------- [quote="gyc":2ylgo9jc]Immagino che termini da sola. Se non è cosí, dovrà avere un pulsante di stop.[/quote:2ylgo9jc] Mi riferivo alla procedura di acquisizione (mentre scrivevo la frase è rimasta staccata dal paragrafo). ---------------------------------------- AUTORE: 2135 DATA :08/06/2007 - 12:53:54 ---------------------------------------- GYC mi rendo conto che questo post è diventato un po lungo.... ma non mi diverto a fare domande...anzi eviterei molto volentieri, comunque se non hai piu voglia di rispondermi tranqui, grazie a te sono riuscita a fare tante cose. Se invece non è cosi...allora tieniti pronto!!!! \":P\" \":P\" \":P\" \":P\" \":P\" \":P\" \":P\" \":P\" \":P\" ---------------------------------------- AUTORE: 384 DATA :08/06/2007 - 13:54:39 ---------------------------------------- Dicevo della "carne al fuoco" per questioni di complessità; come sai la complessità di un sistema cresce esponenzialmente con il numero di componenti del sistema stesso - e da principiante hai ancora una limitata capacità per gestire una complessità elevata. Poi, comunque, sapi che ti presenterò il conto... \":lol:\" in baci, naturalmente! \":wink:\" E non farò sconti!!!... \":wink:\" \":wink:\" ---------------------------------------- AUTORE: 2135 DATA :09/06/2007 - 10:42:41 ---------------------------------------- hai capito tuuu a GYC.... \":!:\" \":!:\" VEDREMO..... adesso rispondimi a questa domanda: io sto simulando tramite il MAX l'hardware per poter fa girare i programmi e senza il quale non potrei farlo. Ora, sempre che tu conosca questo SW (non ho dubbi!), mi dici perchè ad ogni task che voglio creare con il max, devo settare anche Timing e Triggering? Guarda preferisco fare domande pratiche: supponiamo che io crei un task con input analogico..... e che setti in questo modo il timing ed il triggering: task timing: N samples;sample to read:1;rate 10 hz; advanced clock setting: external;rising;PFI0 task triggering: start trigger: digital edge; pxi_trig0; rising ref trigger: digital edge; pxi_trig0; falling mi fai una spiegazione (in termini elementari) di cio che avviene supponendo che io usi questo task con un example della libreria con cui acquisisco quando vi è un trigger (mi riferisco all'example acq con dig start e ref)?????? il settaggio di timing e triggering cosa comporta? CIAO GYC!!!! A DOPO!!! \":wink:\" ---------------------------------------- AUTORE: 384 DATA :10/06/2007 - 18:14:34 ---------------------------------------- Fino alla versione 8.1 (compresa) del DAQmx, le impostazioni di timing e di trigger non hanno alcuna influenza perchè il simulatore non ne tiene conto. Ciò significa che quando dai start all'acquisizione - ed essa dovrebbe attendere un trigger - in realtà l'acquisione inizia subito. Allo stesso modo, ogni volta che leggi un buffer di dati, esso è già pronto e la funzione ritorna subito. Per le elaborazioni successive non dovrebbe cambiare nulla. Se proprio non è cosí, puoi sempre "imporre" i tuoi dati di acquisizione quando il segnale è simulato. Esiste un [url=http://zone.ni.com/devzone/cda/tut/p/id/3697#toc3:169x6q08]Property Node[/url:169x6q08] che ti permette di saperlo programaticamente (quindi con un case fare le dovute impostazioni) Soltanto dalla versione 8.2 il timing viene tenuto in conto. Leggi questo [url=http://zone.ni.com/devzone/cda/tut/p/id/3698:169x6q08]tutorial[/url:169x6q08] sul DAQmx. Io sono ancora "fermo" alla versione 8.0 perchè dalla 8.1 in poi cessa il supporto a LabView 7.1 con cui devo - e dovrò ancora a lungo - lavorare (oltre al fatto che non ho mai installato LV 8.0 e successive, per i suoi noti problemi! \":?\" )   ---------------------------------------- AUTORE: 2135 DATA :15/06/2007 - 21:03:41 ---------------------------------------- Ciao GYC, con la tua frase: Fino alla versione 8.1 (compresa) del DAQmx, le impostazioni di timing e di trigger non hanno alcuna influenza perchè il simulatore non ne tiene conto. Ciò significa che quando dai start all'acquisizione - ed essa dovrebbe attendere un trigger - in realtà l'acquisione inizia subito. parli solo del MAX vero? oppure ti riferisci al fatto che se io realizzo un vi con daqmx inserendo anche i blocchi timing e trigger e come se non li mettessi? non penso!! un'altra curiosità: che differenza c'è tra lavorare con daqmx e con traditional daq? c'entra il tipo di segnai con cui si ha a che fare? ciao gyc....baci...baci ---------------------------------------- AUTORE: 384 DATA :15/06/2007 - 23:43:50 ---------------------------------------- [quote:3oipk637]parli solo del MAX vero?[/quote:3oipk637] No, è proprio come si comporta il vi con l'hardware simulato. Con hardware reale, si comporta come ci si aspetta!!! La differenza tra il DAQmx ed il tradizionale è solo nel software, in particolare nel modo di gestire le schede. Il DAQmx ha introdotto diverse novità in termini di "gestione parallela" delle schede (non tutte lo supportano) e supporto al multi-threading di LabView. Ha un set di blocchi diverso e anche meno macchinoso da usare, rispetto al tradizionale. ---------------------------------------- AUTORE: 2135 DATA :29/06/2007 - 07:05:12 ---------------------------------------- Ciao GYC \":!:\" \":!:\" \":)\" \":)\" è un po che nn ci sentiamo!!! ho un problemino ma non so dove mettere mano: sto visualizzando un segnale in tensione proveniente da un sensore a cui fornisco l'alimentazione tramite daq, ho collegato le due masse: massa del circuito e massa video, quindi le ho c.c. Il problema è che visualizzo un segnale che va da -2 a +2.5 , invece dovrebbe essere da 0 a 4.5....come mai? ho provato a misurare lla tensione tra le due masse ed il ris è una tensione di 0.1 mV....che faccio? ho notato che nel MAX c'è solo la possibilita di selezoinare differential....le altre opzioni sono ""oscurate"" ......dimmi tu... ciao e baci ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 09:44:14 ---------------------------------------- Una differenza di 0.1 mV tra due masse è accettabile, se questo è entro l'errore massimo ammissibile - e mi sembra che con segnali video ce lo si possa concedere. É il fatto che tu abbia opzioni "oscurate" nel MAX che mi lascia perplesso. Guarda nelle specifiche della tua scheda se magari essa non sia limitata ai soli ingressi differenziali, ragion per cui il MAX stesso ti impedirebbe di settarla in altro modo. Ma se il tuo ingresso è diferenziale, hai due "terminali" da connettere. Hai colegato il viedo ad un di essi - credo il (+) - e le 2 masse. E l'altro terminale, il (-)? Se non lo usi devi collegarlo anch'esso a massa. Verifica queste cose.   ---------------------------------------- AUTORE: 2135 DATA :29/06/2007 - 10:17:42 ---------------------------------------- si infatti ho collegato il + del seg video ad ai0, il - lìho collegato al terminale gnd ai , poi ho collegato +5v e massa a gnd del terminale 5v e poi ho c.c le due masse. lo switch è posizionato su gs. sul manuale ho trovato questa dicitura: S Series devices support only differential (DIFF) input mode. The channels on S Series devices are true differential inputs, meaning both positive and negative inputs can carry signals of interest. For more information about DIFF input, refer to the Connecting Analog Input Signals section, which contains diagrams showing the signal paths for DIFF input mode. allora come faccio a non avere un range tra negativo e positivo? ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 11:03:15 ---------------------------------------- [quote="francescaaprile":3ijqd43m]si infatti ho collegato il + del seg video ad ai0, il - lìho collegato al terminale gnd ai , poi ho collegato +5v e massa a gnd del terminale 5v e poi ho c.c le due masse.[/quote:3ijqd43m] Leggendo direi che hai un c.c. tra +5V e massa!... Fai uno scarabocchio e postalo. Gli ingressi differenziali sono 2, ai0 e un'altro (solitamente ai8). Cosa ne hai fatto? Se tu guardi il tuo segnale video con un normale oscilloscopio, hai lo stesso offset che riscontri con la scheda? ---------------------------------------- AUTORE: 2135 DATA :29/06/2007 - 12:50:11 ---------------------------------------- ecco il disegnino gyc \":)\" ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 13:06:52 ---------------------------------------- 1) la connessione tra AI GND e GND dovrebbe essere già assicurata all'interno del blocco connettori. Se la togli smette di funzionare? Se no, toglila; non risolve il problema del offset, ma elimina un loop di massa che può dare seri problemi di rumore. 2) essendo l'ingresso differenziale, devono essere collegati 2 terminali. Solitamente la N.I. li accoppia (ai0,ai8), (ai1,ai9), ecc. Devi quindi prendere il corrispondente di ai0 (credo, spero, sia ai8) e collegarlo al AI GND.   ---------------------------------------- AUTORE: 2135 DATA :30/06/2007 - 17:39:47 ---------------------------------------- Ciao!!! GYC ci sei? Mi rivolgo anche ad altri che magari l'hanno gia fatto: mi riferisco a simulare un segnale in input su PFI0 con MAX da poter indicare nel blocco daqmx trigger al terminale pfi0. 1. è possibile? 2. come si fa? faccio questa domanda perchè scegliendo qlsiasi opzione in max non da mai la possibilità di selezionare pfi0. ciao e baci.... ---------------------------------------- AUTORE: 384 DATA :01/07/2007 - 00:43:15 ---------------------------------------- L'utilizzo di hardware simulato attraverso il MAx ha alcune peculiarità, che credo di aver già spiegato prima. In particolare, il trigger non funziona in quanto tale, cioè, quando si procede alla lettura dei dati, il simulatore "costruisce" il segnale e ritorna subito. Per questo non puoi aggiungere il trigger sul PFI. Questo sarebbe un misto di simulazione e hw reale. ---------------------------------------- AUTORE: 2135 DATA :01/07/2007 - 20:50:29 ---------------------------------------- ok...ho capito....non posso provare tutti quei vi in cui è coinvolto il blocco daqmx trigger...mmmm.... ---------------------------------------- AUTORE: 2135 DATA :02/07/2007 - 15:38:43 ---------------------------------------- Ciao \":!:\" \":!:\" \":wink:\" \":wink:\" è possibile avere sulla coordinata x del waveform graph il numero di acquisizioni anziche il tempo? ad es supponiamo che faccio x acq , e voglio il valore della tensione in y per ogni acquisizione in x? baci baci ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 09:33:48 ---------------------------------------- Certo. Quando hai una waveform collegata ad un graph, vai sul graph (front panel) click destro, nel pop-up c'è l'opzione "Ignore Timestamp". Basta deselezionarla. Oppure, estrai l'array di dati dalla waveform e lo metti direttamente nel graph. ---------------------------------------- ================================================================================ ACQUISIZIONE DATI ================================================================================ AUTORE: 2140 DATA :30/05/2007 - 22:17:13 ---------------------------------------- SALVE A TUTTI! COMPLIMENTI PER IL FORUM, HO DATO UN'OCCHIATA AI VARI TOPIC E DEVO DIRE CHE SONO MOLTO INTERESSANTI, HO APPENA INNIZIATO A LAVORARE CON IL LABVIEW, SPERO DI IMPARARE. DEVO ACQUISIRE UN SEGNALE ANALOGICO IN TENSIONE PRODOTTO DA UN SENSORE TRAMITE LA MIA DAQ PCI MA L'ACQUISIZIONE DEVE ESSERE TRIGGERATA CON HW ESTERNO. CI SONO ALCUNI PIN SUL BNC2110 DI CUI NON CONOSCO LA FUNZIONE: 1. F OUT;2. AI SENSE;3. EXTSTFB;4. AI HOLD;5. PFI0/ AI START; 6. AOEXT REF. GRAZIE A TUTTI! ---------------------------------------- AUTORE: 247 DATA :31/05/2007 - 17:37:44 ---------------------------------------- Ciao, la possibilità di trigger esterni, routing di segnali etc dipende dal modello della scheda PCI che possiedi e non da ciò che c'è scritto sul BNC2010, che ha anche ingressi che con la tua scheda non puoi sfruttare. Per cominciare cmq puoi trovare le definizioni di tutti i termini che indichi sul sito ni, controlla sempre sullo stesso sito anche le caratteristiche della tua scheda per non rischiare di impazzire perchè qualcosa che non c'è ovviamente non và \";-)\". BYE. ---------------------------------------- AUTORE: 2140 DATA :31/05/2007 - 22:22:54 ---------------------------------------- io utilizzo una pxi 6132..... adesso potete spiegarmi cosa servono? ---------------------------------------- AUTORE: 2140 DATA :01/06/2007 - 22:32:16 ---------------------------------------- ciao a tutti di nuovo.... cerco aiuto e nessun galantuomo risponde.... \":cry:\" \":cry:\" ci riprovo con un'altra domanda: in pratica cosa indica il rate del blocco daqmx timing? il segnale che devo acquisire ha una frequenza di 5 Hz, a quanto devo impostare il RATE del blocco daqmx timing? ciao ciao!!!! ---------------------------------------- AUTORE: 2001 DATA :02/06/2007 - 11:24:10 ---------------------------------------- Ciao Susanna. Se clikki col tasto destro del mouse sui vari blocchi presenti sulle palette, si apre una piccola finestra vicina al blocco, scegli "Help" e ti si apre una finestra di aiuto dove puoi trovare una spiegazione abbastanza esauriente della funzione del blocco (per molti blocchi c'è anche l'opzione "Example" che ti apre un esempio concreto di utilizzo del blocco). Cmnqe, nel blocco "DAQmx Timing", "Rate" identifica la frequenza di campionamento espressa in campioni (samples) per canale, per secondo. Consiglio (visto che anch'io sono un "novizio" di LabVIEW e lo sto imparando da autodidatta): seleziona "File", poi "Open", selezioni la cartella di installazione di LabVIEW (es. C:\Program Files\National Instruments\LabVIEW 8.2\examples\DAQmx) e li trovi varie cartelle relative a VI già realizzati: io ho preso spunto da questi per realizzare quelli di mio interesse o per capire la funzione di taluni blocchi. Spero di esserti stato d'aiuto (ti allego un es. di DAQmx Timing che utilizzo in un mio VI). Ah....dimenticavo: se il tuo segnale è a 5Hz, devi impostare una frequenza di campionamento pari ad almeno il doppio della frequenza massima del segnale (Teorema di Shannon-Nyquist del campionamento). ---------------------------------------- AUTORE: 2001 DATA :02/06/2007 - 11:42:14 ---------------------------------------- Qualche link di interesse: http://forums.lavag.org/home.html http://www.mooregoodideas.com/goodLabViewStuff.htm http://vindex.lavag.org/index.php ---------------------------------------- AUTORE: 2140 DATA :02/06/2007 - 19:46:39 ---------------------------------------- grazie per la risposta!!! adesso avrei un'altra domanda da farvi: devo tirare fuori dai terminali counter 2 segnali digitali, e come base ho usato il VI negli example : gen dig pulse contiunos, in pratca l'ho duplicato in uno stesso VI. adesso dovrei collegarli in modo tale che tra un segnale e l'altro ci sia un ritardo fissato da me. come si fà? da dove inizio? grazie a chiunquee voglia rispondere a qst mia domanda... \":wink:\" \":wink:\" ---------------------------------------- AUTORE: 2140 DATA :06/06/2007 - 09:10:51 ---------------------------------------- ciao raga.... avrei un problemino, sequalcuno puo aiutarmi \":!:\" \":!:\" \":wink:\" dunque ho preso l'esempio gia pronto generate continuos pulse train ma vorrei visualizzare nello stesso VI quello che sto generando. come si fa? ciao e grazie ---------------------------------------- AUTORE: 2210 DATA :06/08/2007 - 09:58:12 ---------------------------------------- [quote="susanna":1t0geen8]ciao raga.... avrei un problemino, sequalcuno puo aiutarmi \":!:\" \":!:\" \":wink:\" dunque ho preso l'esempio gia pronto generate continuos pulse train ma vorrei visualizzare nello stesso VI quello che sto generando. come si fa? ciao e grazie[/quote:1t0geen8] Ciao una soluzione potrebbe essere creare un task parallelo di acquisizione in ingresso (sia su di un ingresso analogico, se ne hai disponibili, che su di uno digitale), a questo punto colleghi l'uscita del tuo contatore al tuo ingresso e cosi' puoi verificare il tuo segnale...funzionerebbe un po come oscilloscopio. Spero di essere stato chiaro ... visto che e' la mia prima risposta. Ciao ---------------------------------------- AUTORE: 2210 DATA :06/08/2007 - 10:07:40 ---------------------------------------- [quote="susanna":1h4lj8l3]ciao raga.... avrei un problemino, sequalcuno puo aiutarmi \":!:\" \":!:\" \":wink:\" dunque ho preso l'esempio gia pronto generate continuos pulse train ma vorrei visualizzare nello stesso VI quello che sto generando. come si fa? ciao e grazie[/quote:1h4lj8l3] Ciao se guardi nell'esempio Gen Dig Pulse-Train Continous, quando setti i valori di frequenza e duty cycle, puoi anche inserire un delay iniziale (forzato a 0 da una costante), se tu rendi quella costante un controllo .... il gioco e' fatto! Temo pero' che la precisione sia aleatoria, io sceglierei il Gen Dig Pulse Train-Continous-Dig Start, in modo da garantire lo start contemporaneo delle due generazioni. Chiaramente devi usare una uscita digitare per comandare lo start della generazione. Ciao ---------------------------------------- ================================================================================ VI RT esce dal run senza apparente motivo ================================================================================ AUTORE: 515 DATA :31/05/2007 - 08:25:48 ---------------------------------------- Ciao a tutti. Ho realizzato una (anzi tre) macchine inserite in stabilimento in una linea di produzione che lavora su tre turni. L'applicativo labview si basa su una macchina a stati RT (anzi, due in parallelo) che ciclano all'infinito all'interno di altrettanti while la cui condizione di terminazione è, per ora, una costante. Dal lato PC, una macchina a stati analoga rispecchia la FSM su RT e ne viene condizionata (nel senso che lo stato su PC-HOST è sempre quello della vi RT). Ora, la macchina cicla correttamente e produce regolarmente per svariate ore, finchè non succede una cosa molto strana... dopo circa un centinaio di cicli completi l'RT, semplicemente, CESSA DI CICLARE ed esce dalla condizione di run, come se qualcuno avesse arrestato i due cicli while dei due thread paralleli principali... ma ciò è impossibile!! Ho pensato ad alcune possibili cause: ad esempio, un'occupazione eccessiva della memoria. Però, osservando con il tool profile VI, non mi pare proprio che l'occupazione di memoria si incrementi da un ciclo all'altro... Qualcuno ha qualche suggerimento? Il target RT è un PXI-8184... grazie a tutti! ---------------------------------------- AUTORE: 1165 DATA :31/05/2007 - 19:09:47 ---------------------------------------- la tua condzione di terminazione è l'aver raggiunto un numero prefissato di cicli?? .. o comunque il cambiamento di stato di una variabile booleana?? .. se sì, allora forse potresti attivare il debug passo a passo e vedere graficamente quale evento ti fa cambiare di stato la tua condizione di terminazione .. semprechè non intervenga prima un errore incontrollato .. e al proposito ti consiglio (semprechè tu non l'abbia già fatto) di implementare una efficiente sotto-struttura di gestione degli errori .. utilissima per debuggare VI complessi come il tuo .. in bocca al lupo .. enr ---------------------------------------- ================================================================================ chiamata di libreria errata! ================================================================================ AUTORE: 1520 DATA :31/05/2007 - 15:11:06 ---------------------------------------- Salve a tutti, rompo le scatole per un problema che sto avendo con le librerie del Vision di Labview e che non so veramente come trattare. Ho una parte di codice che lavora su delle foto fatte a microscopio e si occupa in automatico di trovare delle sfere fluorescenti. In pratica si tratta di un po' di image procesing per pulire dal rumore l'immagine dopodichè individuo le sferette utilizzando una funzione di libreria che guardacaso si chiama "findcircle". Ecco: il mio problema è che in maniera del tutto aleatoria questo blocco di codice mi genera un'errore dovuto ad una chiamata di libreria del blocchetto Labview in questione. Allego la finestra di errore che ne risulta. Non so che pesci prendere, ho trovato qualcosina sul sito della National ma abbastanza poco utile al momento. Chiunque ne abbia una anche pallida idea...... Grazie Matteo ---------------------------------------- AUTORE: 927 DATA :19/06/2007 - 08:25:52 ---------------------------------------- Hai dimenticato l'allegato... (ma la domanda resterà difficile anche con l'allegato \":lol:\" ) ---------------------------------------- ================================================================================ Uscita da finestra secondaria subvi ================================================================================ AUTORE: 1108 DATA :31/05/2007 - 16:04:04 ---------------------------------------- Ciao a tutti \":D\" Ho una finestra secondaria che richiamo dal programma principale, e che serve a mostrare alcuni dati; per fare questo, ho creato a parte un nuovo VI nel quale ho messo gli indicatori che mi servono collegati a dei vertical point slide (che ho poi occultato) ed un pulsante collegato ad un WHILE che mi permette di uscire dalla finestra in seguito ad una sua pressione. Ho configurato opportunamente il connettore del vi, e lo richiamo correttamente dal programma principale (ho configurato sub vi node setup). Il problema è che la finestra secondaria, quando aperta, mi blocca l'elaborazione principale, permettendomi solo di visualizzare gli ultimi dati disponibili forniti dall'elaborazione principale, perchè la finestra "aspetta" la pressione del pulsate di uscita. Ora, mi chiedo: è possibile fare in modo che l'apertura di questa finestra non blocchi tutto il programma principale finchè non viene chiusa? In pratica mi servirebbe un modo alternativo per uscire dalla finestra senza usare un ciclo while + pulsante. Grazie in anticipo \":lol:\" Sundance ---------------------------------------- AUTORE: 4 DATA :31/05/2007 - 17:47:46 ---------------------------------------- Ciao, "l'inconveniente" non dipende dal subVI finestra in se ma è causa diretta del paradigma che sta dietro labview e cioè il data driven. Ogni parte di codice esegue solo quando ha a disposizione hai suoi ingressi tutti i dati di cui necessita, altrimenti aspetta che arrivino. Il tuo loop principale rimane fermo perchè aspetta i dati di ritorno dal subVI finestra (anche se questo non torna dati sui suio connettori la cosa non cambia per labview) Quello che devi fare è il "salto di livello" cioè iniziare a programmare usando cicli paralleli invece di un solo ciclo while. Se dovessi piazzare il tuo subVI in un while e il resto del codice in un altro while (allo stesso livello del primo) riusciresti ad ottenere l'effetto voluto, il programma principale in run anche con la finestra aperta. Ciao ---------------------------------------- AUTORE: 1108 DATA :31/05/2007 - 23:18:22 ---------------------------------------- [quote="ale914":2r0t5bxy]Ciao, Quello che devi fare è il "salto di livello" cioè iniziare a programmare usando cicli paralleli invece di un solo ciclo while. Se dovessi piazzare il tuo subVI in un while e il resto del codice in un altro while (allo stesso livello del primo) riusciresti ad ottenere l'effetto voluto, il programma principale in run anche con la finestra aperta. Ciao[/quote:2r0t5bxy] Ciao, anzitutto grazie per la risposta \":D\" Effettivamente piazzando un while gerarchicamente corrispondente a quello dove vengono prodotti i dati ed usando una variabile globale per passare i dati nel ciclo 'parallelo' la cosa può funzionare, ma da un paio di prove che ho fatto l'esecuzione del programma è visibilmente rallentata, per cui o sbaglio io qualcosa (e ho il sospetto che dovrei usare le funzioni di sincronizzazione, che finora non ho ancora adoperato) o devo pensare necessariamente ad una soluzione di tipo diverso, ammesso che esista \":o\" Ciao, Sundance ---------------------------------------- AUTORE: 384 DATA :01/06/2007 - 17:50:55 ---------------------------------------- La soluzione esiste - ovviamente! - e si chiama VI dinamici. Però, prima di percorrere quella strada, hai inserito un wait per temporizzare i tuoi loop e facilitare la condivisione del processore? Un loop senza un wait dio attesa praticamente cattura il 100% del processore, rallentando di fatto tutto il resto non solo del sw ma anche del PC in generale. ---------------------------------------- AUTORE: 1108 DATA :03/06/2007 - 22:26:55 ---------------------------------------- Ringrazio tutti per le diverse soluzioni suggeritemi \":D\" Ho risolto il problema in una maniera non molto elegante, ovvero inserendo delle variabili globali all'interno del WHILE del subVI. Naturalmente il subVI è inserito (su suggerimento di ale914 \":D\") in un ciclo che gira in parallelo a quello principale, che si occupa di fornire i dati. In questo modo il ciclo principale continua a lavorare, il subvi aggiorna gli indicatori con i dati forniti dall'altro ciclo e premendo un bottone di ESC (a runtime) posto sul pannello del subvi esso si chiude senza problemi. Mi sarebbe piaciuto però passare i dati al subVI mediante connettore, ma in questo modo la cosa non funziona, perchè pare che non vengano aggiornate le variabili globali interne al CASE (che si attiva quando si seleziona la visualizzazione a indicatori), e questo per via del while interno al subvi. Allego i vi che ho usato per fare le prove, casomai servissero a qualcuno (anche se sono davvero molto semplici). Ciao, Sundance ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 01:18:48 ---------------------------------------- Ti suggerisco l'utilizzo dei notifier (oppure delle code) al posto delle globali. Sono una soluzione molto elegante, oltre che molto più efficiente. Con essi si segue la strategia del "produttore/consumatore", molto vicina al "client/server" che, presto o tardi, ci si trova a dover implementare, man mano le applicazioni diventano più complese. Come al solito, trovi tutte le informazioni nel'help in linea, negli esempi, qui nel forum in discussioni precedenti e nel sito NI. E - ovviamente - puoi re-iniziare un topic su questo. ---------------------------------------- ================================================================================ RS232-pic ================================================================================ AUTORE: 2109 DATA :31/05/2007 - 17:28:13 ---------------------------------------- Sto realizzando un programma per scambiare dati con un PIC tramite un convertitore USB-RS232 ed ho il problema che il numero assegnato alla porta COM cambia di volta in volta a seconda della porta USB a cui è collegato il dispositivo... Mi chiedevo se esiste un modo per risalire (magari leggendo un qualche file) a questo numero, visto che per vari motivi il programma non può avere un'interfaccia grafica e non mi è possibile quindi chiedere all'utente il numero della porta da utilizzare... So che la richiesta non riguarda specificamente LabView, ma se c'è qualcuno che mi può aiutare gliene sarei grato... Altrimenti dovrò ricorrere ad una richiesta dati con attesa con timeout... Ciao, Zeni Lorenzo ---------------------------------------- AUTORE: 384 DATA :01/06/2007 - 11:01:40 ---------------------------------------- Il timeout dovresti averlo sempre e comunque. Anche se la porta COM mnon varia, può esserci sempre il caso che qualcuno inavvertitamente stacchi la spina!... Io uso un file ini dove specifico la porta dove sono collegati i disposittivi, ed isettaggi di communicazione, che poi leggo con i blocchi preposti, qualcosa del tipo: [Serial] Port=COM1 Baud=9600 Data=8 Stop=1 Parity=N Timeout=1000 Se poi ho diversi dispositivi collegati a più port seriali, cambio il nome della "section" in funzione del dispositivo stesso (esempio: Serial_PLC, Serial_BarCode). ---------------------------------------- AUTORE: 129 DATA :01/06/2007 - 23:57:45 ---------------------------------------- IUo ho lo stesso problema (maledetti portatili della nuova generazione, tutto USB e nenache una seriale). Io uso lo stesso sistema di GYC. ALtrimenti un modo (visto che usi dei pic) è creare un codice id sulla pic e quindi lanciare una query per id e leggere il buffer, se non ti viene data la risposta attesa, provi su un altra porta e così via.Però quei convertitori generano porte seriali anche tipo com 12 ecc. costringendoti ad una esetnuante ricrca e il rischio di lascioare porte aperte. Direi che supportarti da file esterni che puoi configurare è la migliore. ---------------------------------------- ================================================================================ grafico con più scale ================================================================================ AUTORE: 1313 DATA :31/05/2007 - 23:04:18 ---------------------------------------- Salve Ragazzi, dovrei fare un grafico in cui visualizzo valori con scale diverse sapete se è possibile??? per esempio; curva 1: temperatura curva 2: pressione sinistra scala1; scala 2. Grazie in anticipo, Cris ---------------------------------------- AUTORE: 384 DATA :01/06/2007 - 10:52:27 ---------------------------------------- Vai sulla scala col puntatore del mouse, click destro, "Duplicate Scale". Poi, punta sulla scala che vuoi spostare a destra, click destro, "Swap sides". Poi devi "agganciare" la curva alla scala. Sulla plot legend, punta sulla curva che ti interessa, click destro, "Y scale", esce un'altro sotto menu; su quello scegli la scala a cui agganciare quella curva. ---------------------------------------- AUTORE: 1313 DATA :01/06/2007 - 17:21:33 ---------------------------------------- Grazie mille, funziona alla grande. Ciao, Cris \":D\" \":D\" ---------------------------------------- AUTORE: 384 DATA :02/06/2007 - 19:56:06 ---------------------------------------- In generale, il pulsante destro del mouse fa aparire sempre un menu attinente a funzioni avanzate relative all'oggetto a cui si punta. Usa e abusa!!!!! ---------------------------------------- ================================================================================ Qualcuno ha installato daqmx e nikal su ubuntu ================================================================================ AUTORE: 168 DATA :01/06/2007 - 08:18:46 ---------------------------------------- Volevo sapere se qualcuno era riuscito ad installare le daqmx e nikal su ubuntu, perche' sino a labview 8 ci si riesce anche se a me non risulta stabilissimo, ma il resto visto che la NI "distribuisce" questi pacchetti (daqmx e nikal) solo per le tre sorelle RH,Suse,Mandriva/mandrake, non sono riuscito a cavarci un ragno dal buco. Se qualcuno avesse un idea?!?!? \":idea:\" o fosse gia' detentore del "segreto" GRAZIE PAO ubuntu 7.04 (2.6.20-15) labview 8.0 ---------------------------------------- ================================================================================ web publishing tool ================================================================================ AUTORE: 1955 DATA :01/06/2007 - 09:13:07 ---------------------------------------- dopo aver configurato option, e creato al pagina htlm. il link è questo http://192.84.149.140/stazioni.htm (per ora non è in esecuzione) (funziona nella mia sottorete) quando creo la pagina web con il web publishing tool mi da un indirizzo differente! http://pcmedphys9.na.infn.it/Stazioni.htm (funziona solo in locale) nella mia sottorete funziona! mi chiede il download di quel motore con il primo link.poi mi visualizza il progetto (non completamente) 1) però io ho un tasto che mi fa scrivere un file di testo e non me lo scrive. 2) non mi carica i grafici Ni hyper thrends(dice che non possono essere caricati) (uso la versione 6.1 del labview) 3) per farlo essere accessibile a tutti(da web) come devo fare? (ho anche configurato options con tutti *) 4)voglio togliere la possibilità che l'utente che visualizza tramite web non deve poter arrestare e far ripartire il progetto, ma solo visualizzare e gestire le funzionalità (per ciò come devo spuntare in options, le ho provate tutte) grazie a tutti silvano nel caso mi date il link del manuale sul sito NI non sono riuscito a trovare nulla di ciò che mi possa servire per la pubblicazione. ---------------------------------------- AUTORE: 1955 DATA :05/06/2007 - 20:36:41 ---------------------------------------- capito il problema dell'accessibilità da parte di tutti via web. ora restano gli altri, ne sapete qualcosa? grazie ---------------------------------------- ================================================================================ catturare immagine ================================================================================ AUTORE: 2141 DATA :01/06/2007 - 14:34:38 ---------------------------------------- salve, sono un neofita del labview e ho qualche problema: riesco a manovrare una telecamera seriale in diretta, ma vorrei sapere come posso catturare un singolo fotogramma di ciò che riprende la telecamera. spero d'essere stato abbastanza chiaro(anche se non penso)! ---------------------------------------- AUTORE: 4 DATA :03/06/2007 - 09:18:31 ---------------------------------------- Ciao che funzioni usi per interfacciarti alla telecamera? che versione di labview? ---------------------------------------- AUTORE: 2141 DATA :06/06/2007 - 15:26:12 ---------------------------------------- uso labview 7.0. le funzioni che ho usato sono 'imaq 1394 Init', 'imaq 1394 grab setup', 'imaq 1394 grab acquire' ---------------------------------------- AUTORE: 1520 DATA :11/06/2007 - 14:19:13 ---------------------------------------- Non credo di avere bene afferrato, scusa la grab acquire non ti da in uscita già un fotogramma singolo? Matteo ---------------------------------------- AUTORE: 2141 DATA :11/06/2007 - 14:36:17 ---------------------------------------- no, la grab mi fa vedere in diretta ciò che inquadra la videocamera e quindi "video" ---------------------------------------- AUTORE: 482 DATA :11/06/2007 - 14:50:29 ---------------------------------------- prova con la SNAP. Invece per quanto riguard ala grab, ovviamente vedi in diretta perchè hai messola grab in un ciclo continuo. E' un vido perchè è un ciclo continuo di singole immagini. Modifica il vi che sta attorno alla grab e sei a posto. ---------------------------------------- AUTORE: 2141 DATA :11/06/2007 - 15:02:52 ---------------------------------------- ah...ok.provo e vi faccio sapere.intanto grazie ---------------------------------------- AUTORE: 1839 DATA :15/06/2007 - 15:14:32 ---------------------------------------- tempo fa GYC mi ha gentilmente concesso un vi che consente di acquisire immagini bmp dalla camera.. Qui è impostato per una profondità di 10 bit, ma si può cambiare... Vedi se può aiutarti.... Puoi metterla dentro un ciclo cambiando il nome dell'immagine acquisita ad ogni iterazione.. ---------------------------------------- ================================================================================ Colore background delle label ================================================================================ AUTORE: 2129 DATA :02/06/2007 - 11:23:53 ---------------------------------------- Ho fatto il mio piccolo applicativo ma graficamente fa pena è tutto grigio e non si distiguono le cose importanti da quelle che nn lo sono. Devo colorare il background di alcune label ma nn resco a trovare il comando. Dove lo trovo ? grazie. ---------------------------------------- AUTORE: 1165 DATA :03/06/2007 - 00:30:05 ---------------------------------------- con il cursore del muose in un punto vuoto qualsiasi del Front Panel clicca col tasto destro del mouse (right click) mentre tieni premuto il tasto delle maiuscole (tasto shift) e ti apparirà una finestrella con tutte le modalità possibili del mouse. Tu ti scegli quella del colore (pennellino) e con quello colori tutti i dettagli di tutti gli oggeti nel Front Panel. Spero di esserti stato d aiuto, ciao, enr. ---------------------------------------- AUTORE: 2129 DATA :03/06/2007 - 08:36:21 ---------------------------------------- grazie.... non riuscivo proprio a trovarlo... ma dovevano proprio complicare le cose in questo modo ??? ---------------------------------------- ================================================================================ Acquisizione continua e su richiesta nello stesso VI ================================================================================ AUTORE: 1801 DATA :02/06/2007 - 11:26:59 ---------------------------------------- Il mio problema è il seguente: Ho creato un VI che acquisisce dati in continuo da 10 potenziometri ad una frequenza di 10 Hz. Adesso devo inserire all'interno dello stesso VI un algoritmo fatto in matlab che deve leggere un solo potenziometro,ma non di continuo,solo all'istante in cui l'algoritmo lo richieda e inoltre non ad un istante prefissato,ma variabile. Come posso fare a collegare l'uscita dei potenziometri (in lettura continua)allo script di matlab in modo che matlab legga il dato solo quando richiesto.Io l'ho collegato direttamente,ma ovviamente non funziona perchè arrivano dati in continuo.Grazie per l'aiuto,se volete vi allego il VI. ---------------------------------------- AUTORE: 1165 DATA :03/06/2007 - 00:37:17 ---------------------------------------- scusami ma io non conosco il Matlab e quindi non solo non so quanto potrò esserti di aiuto, ma neanche se quanto sto per dire è una cavolata in questo caso, però forse il Matlab può dialogare con il Labview attraverso una qualche variabile condivisa. Se così fosse tu in quella variabile ci puoi andare a scrivere con regolarità con il Labview i tuoi valori letti sui potenziometri e solo al bisogno il Matlab può andare di quando in quando a leggere questi valori. Sono io che non ho forse capito dove è il problema?? ---------------------------------------- AUTORE: 1801 DATA :03/06/2007 - 21:44:52 ---------------------------------------- Il fatto è che mi è stato consigliato di usare delle CODE,ma in effetti non penso servano a molto.Non sono un esperto di Labview,ma avevo pensato anche io, a dire la verità,a delle variabili che poi matlab usava quando gli servono,ma non so come usarle.cmq ci provo.grazie ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 01:28:13 ---------------------------------------- Come fai interagire Matlab con LabView? Hai inserito il codice matlab in uno script matlab di LabView? In questo caso, lo script si esegue alla stessa velocità del loop in cui è inserito. Se non hai bisogno di un dato ad ogni "giro", devi creare nello script matlab una variabile in uscita che segnali quando il dato è necessario. Con un semplice case, allora puoi aquisire il dato. ---------------------------------------- AUTORE: 1801 DATA :04/06/2007 - 09:45:47 ---------------------------------------- Si,per far interagire matlab con labview ho inserito uno script. Lo script è inserito in un dato loop,ma l'acquisizione dati è inserita in un secondo loop diverso dal primo che esegue un' acquisizione continua. ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 11:37:34 ---------------------------------------- Purtroppo non riesco ad aprire il tuop vi. Non ricevo nessun messaggio di errore, semplicemente LV non lo apre. Vedo due potenziali soluzioni: Un notifier (non una coda) oppure una functional global, in cui il loop produtore continuamente scrive dati. Il loop consumatore legge dal notifier/global all'occorrenza, sapendo di aver sempre il dato più recente a disposizione. ---------------------------------------- AUTORE: 1801 DATA :04/06/2007 - 15:00:42 ---------------------------------------- Quindi dovrei mettere un "send notification" collegato all'acquisizione e un "obtain notifier" nell'algoritmo collegandolo alla variabile di ingresso nello script di matlab? devo specificare il nome della variabile che poi userà matlab? Grazie ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 15:22:26 ---------------------------------------- Dalla parte dell script matlab devi usare il blocco "Wait on Notification". Puoi forzarlo a non attendere collegando "0" all'ingresso di timeout. Naturalmente devi prevvedere cosa fare se non c'è il dato; ciò non dovrebbe mai capitare se il produttore è più veloce del consumatore. Se invece specifichi "-1", sei sicuro di continuare soltanto quando ti arriva un nuovo valore. Con la functional global, c'è sempre un dato disponibile, anche se magari è lo stesso della volta precedente. Non lo puoi sapere in modo automatico, ma puoi costruire la functional in modo da saperlo. In ogni caso, è una decisione programmatica. ---------------------------------------- AUTORE: 1801 DATA :04/06/2007 - 23:01:17 ---------------------------------------- In pratica l'acquisizone è continua,quindi il dato c'è sempre,magari al massimo l'algoritmo deve aspettare un decimo di secondo (visto che la frequenza di acquisizione è 10 Htz) e non è mai uguale al dato precedente,visto che lo spostamento è continuo e ciclico.quindi la soluzione più giusta è la notifica? ---------------------------------------- AUTORE: 384 DATA :05/06/2007 - 07:21:14 ---------------------------------------- Direi proprio di si.   ---------------------------------------- AUTORE: 1801 DATA :05/06/2007 - 08:24:15 ---------------------------------------- Visto che ho 2 potenziometri,devo fare 2 notifiche?Come si distinguono?grazie ---------------------------------------- AUTORE: 384 DATA :05/06/2007 - 09:16:38 ---------------------------------------- Quando crei un notifier, oltre a dargli un nome (opzionale), esce un reference cho poi convogli a entrambi i loop. Quindi, se crei 2 notifier avrai due reference. Siccome alla creazione del notifier devi specificare il tipo di dato (colegandovi anche una costante), puoi definire un cluster di due "double" e trasporti le 2 temperature contemporaneamente con un notifier solo. ---------------------------------------- AUTORE: 1801 DATA :05/06/2007 - 09:32:14 ---------------------------------------- Questo è il VI ,ma ancora non funziona.Inoltre ho creato un cluster per trasmettere 2 dati,ma mi da errore.La versione di labview è la 8.2 ---------------------------------------- AUTORE: 384 DATA :05/06/2007 - 10:25:19 ---------------------------------------- Non ho mai installato LV dalla versione 8.0 in su, mi dispiace. ---------------------------------------- ================================================================================ Controllo filettature ================================================================================ AUTORE: 384 DATA :02/06/2007 - 20:05:52 ---------------------------------------- Ciao ragazzi. Ripeto il post perchè il subject di quello precedente è risultato con 2 errori su 2 parole. Non chiedetemi come ci sia riuscito! \":oops:\" Allora... Devo controllare la filettatura di una vite e sto considerando Vision. Io qualche idea ce l'ho, ma mi piaccerebbe scambiare qualche considerazione con qualcuno di voi che magari abbia già affrontato questa oppure problematiche simili. ---------------------------------------- AUTORE: 4 DATA :03/06/2007 - 09:24:57 ---------------------------------------- beh magari dico cose che già sai... backlight, camera B\N, CCD da 3\4, ottica più lunga è meglio è (meno distorsioni prospettiche) Come algoritmo io userei "edge finding" facendone due aree una a DX e una a SX della filettatura e poi analizzando le misure fatte (i punti trovati) oppure facendo u pattern di un "dente" della filettatua e andandolo a cercare lungo i fianchi della vite. tu che avevi pensato? ---------------------------------------- AUTORE: 384 DATA :03/06/2007 - 14:21:14 ---------------------------------------- Pensavo esattamente lo stesso per hw e setup. Binarizzazione automatica dall'istogramma e calcolo dell'asse della vite. Per la ricerca pensavo al conteggio dei vertici - sia convessi che concavi. Però la ricerca del pattern della dentattura non è una cattiva idea! Bisogna solo vedere quanto sará sensibile ai diffetti, che in generale sono filetti storti oppure occlusi. Sono aperto a qualsiasi altra idea! ---------------------------------------- AUTORE: 247 DATA :04/06/2007 - 09:30:47 ---------------------------------------- Ciao, [quote="gyc":f0uf368q]Binarizzazione automatica dall'istogramma e calcolo dell'asse della vite. [/quote:f0uf368q] Come pensi di mantenere l'asse della vite perfettamente ortogonale a quello della telecamera? Secondo me è uno dei maggiori problemi che dovrai risolvere, soprattutto perchè le viti, anche se ben fatte e "funzionanti", possono avere grossi problemi di forma.. BYE. ---------------------------------------- AUTORE: 482 DATA :04/06/2007 - 09:53:41 ---------------------------------------- 1) Le viti come verranno poste nel campo di vista della telecamera? A mano? su nastro scorrevole? che altro? 2) Cos adevi controllare della filettatura? il passo?la lunghezza? la sagoma delle creste? il diametro? O tutte le cose? ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 11:30:11 ---------------------------------------- Le vite verranno alimentate da un nastro vibrante, poi prese da un ammorsaggio e fate ruotare - ovviamente - per farne circa una trentina di scatti. Io so il tipo (M6, ecc.) e la lunghezza, quindi devo controllare che la lunghezza sia giusta, il passo e, sopratutto, che il filetto sia integro e non ci siano occlusioni. Per quanto la vite sia ammorsata, ogni volta ne devo calcolare l'asse longitudinale e riferire tutte le elaborazioni a quello. Da quando inizia la rotazione al risultato ok/nok ho non più di 1 secondo a disposizione. Secondo voi mi divertirò? \":wink:\"   ---------------------------------------- AUTORE: 482 DATA :04/06/2007 - 12:34:54 ---------------------------------------- Decisamente ci sarà parecchio da divertirsi!! Non capisco l'ammorsaggio e il " fatta girare". Intendi dire che ci sarà qualcosa tipo braccio robotico che te la blocca e la fa ruotare di 360 gradi sul suo asse longitudinale? Perchè se hai un punto fisso di rotazione il tutto diventa decisamente semplice. Basta tracciare una retta sul profilo della filettatura e fare un edge detector calcolando per ogni posizione la distanza tra gli edge. Con quell'edge vedresti da subito sia il passo che l'occlusione. per la lunghezza beh quello è abbastanza semplice. Il problema credo sia piu' che altro nella costruzione della struttura di prelevamento. ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 13:37:18 ---------------------------------------- [quote="gepponline":2yroshzg]Non capisco l'ammorsaggio e il " fatta girare". Intendi dire che ci sarà qualcosa tipo braccio robotico che te la blocca e la fa ruotare di 360 gradi sul suo asse longitudinale?[/quote:2yroshzg] Esattamente! Solo non è necessario un braccio robotico ma un'automazione molto più semplice e basta farla ruotare 180 gradi. \":wink:\" [quote="gepponline":2yroshzg]Perchè se hai un punto fisso di rotazione il tutto diventa decisamente semplice. Basta tracciare una retta sul profilo della filettatura e fare un edge detector calcolando per ogni posizione la distanza tra gli edge. Con quell'edge vedresti da subito sia il passo che l'occlusione.[/quote:2yroshzg] -Confesso che mi sfugge perchè avere un punto (asse) di rotazione renda le cose più semplici. -Il problema di fare l'edge detection con una sola retta è che può sempre scapparci qualcosa. Serve un "fascio" di almeno 4, ma l'idea è valida e sopratutto fra quelle computazionalmente meno onerose. [quote="gepponline":2yroshzg]Il problema credo sia piu' che altro nella costruzione della struttura di prelevamento.[/quote:2yroshzg] In realtà non è un problema. Questo tipo di sistemi si usano per molti altri scopi e sono ben conosciuti da chi fa automazione. ---------------------------------------- AUTORE: 482 DATA :04/06/2007 - 15:29:00 ---------------------------------------- Ipotizzo un magnete che blocc ala vite e la a girare..potrebeb essere semplice e funzionale. Cmq...la questione dell'asse rende le cose piu' semplici perchè per l'esperienza che ho fatto finora nel campo del vision, quando si tratta di afre delle misure in diagonale ad esempio, si ottengono dei risultati con dei margini di errore abbastanza critici. Con misure di tipo verticale ed orizzontale, non ci sono di questi problemi, probabilmenet dovuti alla forma rettangolare dei pixel. Un ipotesi rapida ed indolore potrebbe essere un clamp. Un clamp che comprenda tutta la parte filettata ti permetterebbe di ottenere l'intero profilo della vite in un colpo solo. Se hai a disposizione un immagine di campione potrebbe essere interessante lavorarci \";)\" ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 16:13:01 ---------------------------------------- [quote="gepponline":2xnuupxq]Ipotizzo un magnete che blocc ala vite e la a girare..potrebeb essere semplice e funzionale.[/quote:2xnuupxq] Questa è una buona soluzione, semplice e simpatica a cui avevo già pensato anch'io. Comunque, ripeto, non è l'unica e non mi preocupa, perchè chi costruirà la meccanica sa il fatto suo! [quote="gepponline":2xnuupxq]Cmq...la questione dell'asse rende le cose piu' semplici perchè per l'esperienza che ho fatto finora nel campo del vision, quando si tratta di afre delle misure in diagonale ad esempio, si ottengono dei risultati con dei margini di errore abbastanza critici. Con misure di tipo verticale ed orizzontale, non ci sono di questi problemi, probabilmenet dovuti alla forma rettangolare dei pixel.[/quote:2xnuupxq] Ok, in questo senso capisco e sono d'accordo! [quote="gepponline":2xnuupxq]Un ipotesi rapida ed indolore potrebbe essere un clamp. Un clamp che comprenda tutta la parte filettata ti permetterebbe di ottenere l'intero profilo della vite in un colpo solo.[/quote:2xnuupxq] Non ho capito... \":oops:\" [quote="gepponline":2xnuupxq]Se hai a disposizione un immagine di campione potrebbe essere interessante lavorarci \";)\"[/quote:2xnuupxq] Ne allego una, che però non è delle "mie" viti ma che può funzionare per iniziare. In realtà è una cavitá, ma invertendola funzia! \":wink:\" Comunque, mi manca solo un pò di tempo per allestire un angolo in laboratorio e averne delle mie. Con un pò di fortuna domani... (c'è sempre Hofstadter in aguato! \":evil:\" ) ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 16:21:39 ---------------------------------------- Ecco l'immagine già binarizzata e invertita. ---------------------------------------- AUTORE: 482 DATA :05/06/2007 - 07:36:54 ---------------------------------------- [img:9128kr2g]http://gepponline.altervista.org/_altervista_ht/clamp.PNG[/img:9128kr2g] Il Clamp è un rettangolo all'interno del quale ci sono tot righe parallele di ricerca (linee blu) Su queste righe vengono rilevati il primo e l'ultimo edge. E come vedi nella figura praticamente ti viene delineato il profilo di tutta la filettatura. In teoria se la filettatura è giusta, la distanza tra il primo e l'ultimo edge di ogni riga dovrebbe essere uguale (all'incirca). Praticamente tu fai il clamp ma non prelevi il risultato del clamp che in realtà sarebbe "l'ingombro massimo" (linee rosse), ma prelevi le coordinate dei singoli edge (punti gialli). LA differenza tra le due immagini postate è solo la distanza tra le righe. Entro certi limiti ti permetterebbe di lavorarci anche con l'immagine inclinata. ---------------------------------------- AUTORE: 384 DATA :05/06/2007 - 08:53:09 ---------------------------------------- Ieri dovevo essere completamente rinco! Scusami!!! \":oops:\" [quote:21mhcsj9]In teoria se la filettatura è giusta, la distanza tra il primo e l'ultimo edge di ogni riga dovrebbe essere uguale (all'incirca). [/quote:21mhcsj9] Non è proprio così perchè la vite è un'elica la cui inclinazione non è tale da contrappore le creste alle valli. Però mi hai fatto venire un'altra idea: costruire la funzione di distanza fra i due edge, che a sua volta può essere descritta in formula chiusa (la vite ha una formula matematica) e impostare una banda passante. Si complica un pò perchè la fase varia con la rotazione, ovviamente. Interessante! Da provare... ---------------------------------------- AUTORE: 482 DATA :05/06/2007 - 09:04:45 ---------------------------------------- Potresti tasformare senno' le coordinate dei punti in una waveform ed andare a fare un analisi dei picchi e dei buchi... ---------------------------------------- ================================================================================ Consigli per iniziare ================================================================================ AUTORE: 2143 DATA :03/06/2007 - 18:06:59 ---------------------------------------- Ciao a tutti, sono un nuovo utente del forum e principiante in labview. Volevo chiedervi dei consigli per iniziare, nel senso se devo imparare prima determinati concetti. Volevo chiedervi inoltre se esistono dei manuali o tutorial. Ho capito solo come usare il block diagram e il front panel. Grazie in anticipo Energy83 ---------------------------------------- AUTORE: 384 DATA :04/06/2007 - 02:02:20 ---------------------------------------- Puoi partire dalla sezione [url=http://www.ilvg.it/index.php?option=com_content&task=blogcategory&id=0&Itemid=93:d8tw16zp]documenti e le guide[/url:d8tw16zp] di questo forum. Li troverai un corso di introduzione che puoi scaricare. LabView ha molti esempi (menu Help\Find Examples) pronti che puoi vedere far girare e modificare. [atento a non sovrascriverli con le proprie modifiche!!!] Il [url=http://ni.com:d8tw16zp]sito NI[/url:d8tw16zp] ha moltissime informazioni, basta cercare. E se vai su google e cerchi "labview tutorial" trovi più di 350000 (trecentocianquantamila!) riferimenti. \":!:\" E poi, ci siamo noi per chiarire i dubbi. \"8)\" Direi che non puoi proprio annoiarti! \":wink:\"   ---------------------------------------- AUTORE: 2143 DATA :04/06/2007 - 07:12:39 ---------------------------------------- Ti ringrazio sei stato gentilissimo. Seguirò i tuoi consigli \":D\" ---------------------------------------- ================================================================================ multipagine ================================================================================ AUTORE: 1637 DATA :04/06/2007 - 07:06:17 ---------------------------------------- ciao a tutti, premetto che la mia domanda potrebbe sembrare scontata, tuttavia, è possibile con labview realizzare delle applicazioni che abbiano più pagine selezionabili da push-botton??? la mia è pura ignoranza saluti tornado \":cry:\" \":cry:\" ---------------------------------------- AUTORE: 247 DATA :04/06/2007 - 09:20:24 ---------------------------------------- Ciao, più o meno si, io l'ho realizzato in passato con un tab alla quale nascondevo le etichette delle pagine e con una barra laterale contenente i bottoni di selezione. In pratica assomigliava molto ad una classica pagina web con menù a sx e contenuto nella pagina principale a dx. BYE. ---------------------------------------- AUTORE: 1779 DATA :04/06/2007 - 12:03:10 ---------------------------------------- Ciao, anche io ho risolto il problema utilizzando un tab cmq ti metto in allegato un esempio che ti potrebbe essere utile! Gianluca ---------------------------------------- AUTORE: 838 DATA :04/06/2007 - 13:40:55 ---------------------------------------- per fare applicazioni più complesse occorre utilizzare il subpanel nel vi principale sbatti un subpanel con tutti i pulsanti dei menu all'avvio carichi dinamicamente le pagine/vi da richiamare, e alla pressione dei pulsanti del menu schiaffi i vi nel subpanel è l'unica cosa che assomiglia di più a un menu serio ciao ---------------------------------------- AUTORE: 1637 DATA :05/06/2007 - 17:52:11 ---------------------------------------- grazie a tutti per la disponibilità, per ginvas, non riesco ad aprire il vi perchè ho la versione 8.0, puoi renderlo compatibile? grazie ancora ---------------------------------------- AUTORE: 1779 DATA :06/06/2007 - 13:33:10 ---------------------------------------- Ciao, ti metto in allegato la versione salvata in 8.0, spero possa esserti utile! ---------------------------------------- ================================================================================ Problemi Application Builder ================================================================================ AUTORE: 1876 DATA :04/06/2007 - 08:40:10 ---------------------------------------- Ciao a tutti! Ho da poco (pochissimo direi) avuto a che fare con l'Application Builder per creare applicativi con LabView ed ho qualche problema. Io ho creato il mio progetto che contiene tutti i file e le cartelle necessari per il programma, infatti se apro un file del progetto e lo eseguo funziona correttamente. Se invece provo a creare l'applicazione con l'App. Builder, e faccio partire il VI principale, non mi carica più le immagini del programma e non riesco a visualizzarle... Ancora una volta credo di essermi spiegato da schifo, spero mi possiate aiutare. Grazie, ciao! ---------------------------------------- AUTORE: 645 DATA :04/06/2007 - 11:29:15 ---------------------------------------- Hai messo le immagini tra i file di supporto durante la creazione dell'eseguibile? ---------------------------------------- AUTORE: 1876 DATA :04/06/2007 - 11:39:17 ---------------------------------------- Si certo le ho messe, ma non me le visualizza \":cry:\" ---------------------------------------- ================================================================================ daqmx ================================================================================ AUTORE: 73 DATA :04/06/2007 - 10:15:30 ---------------------------------------- Salve fino ad ora ho utilizzato labview 6.1 siccome sono passato all'ultimo volevo utilizzare le daqmx In un vecchio programma avevo degli input di voltaggio in diversi punti, tipo acquisisci da 1 canale. Ora volevo sapere posso sostituirci in quei punti le daqmx e quindi avere + ingrassi anlogici di voltaggio in + punti , oppure devo raggruppare tutto in un'unica acquisizione analogica di n canali e poi usare le variabili locali? Vale anche per gli output E così x ingressi digitali, counters etc. Spero di essermi spiegato ---------------------------------------- AUTORE: 645 DATA :04/06/2007 - 11:28:36 ---------------------------------------- Il passaggio a DAQmx prevede anche qualche novità (forse prima usavi le Traditional DAQ che lavoravano in maniera diversa). Comunque non dovrebbero esserci problemi nel mettere i blocchi di acquisizione sparsi nel VI: dipende dalle prestazioni del tuo programma e dagli obiettivi. ---------------------------------------- AUTORE: 73 DATA :04/06/2007 - 11:40:59 ---------------------------------------- A primo impatto mi sembra che l'acquisizione non funzioni se non definisco e acquisisco tutti i canali analogici della stessa scheda 6071 dalla stessa catena ---- crea virtual channel, start,read etc..----- ma faccio questa catena in + parti del programma assurdamente x ogni canale cmq se tu mi dici che invece dovrebbe funzionare comunque faccio delle prove più approfondite ---------------------------------------- ================================================================================ Acquisizione dati e array ================================================================================ AUTORE: 2129 DATA :04/06/2007 - 15:30:07 ---------------------------------------- ho un programma che acquisisce dei dati dalla seriale (10 al secondo) poi li converte da stringa a numero dbl. Dovrei creare un array di valori da cui estrarre il massimo e il minimo ogni circa 10 sec. quindi ogni 1000 valori. Come si creano gli array ? e come faccio a memorizzare questi elementi dentro l'array ? grazie. ---------------------------------------- AUTORE: 482 DATA :04/06/2007 - 15:57:21 ---------------------------------------- VAi negli esempi di labview e cerchi [b:2u8x7lpf]array[/b:2u8x7lpf] Troviuna serie di esempi che spiegano come fare per creare degli array. E senza dare ulteriori indizi ti dico una parolina magica che comincerai ad usare da ora in poi: SHIFT REGISTER. \":wink:\" ---------------------------------------- AUTORE: 2129 DATA :04/06/2007 - 21:10:26 ---------------------------------------- ok.. ho risolto in un modo un po' rozzo... creando un ciclo for che crea l'array e lo mantiene aggiornato con 20 misurazioni ---------------------------------------- ================================================================================ Utilizzo Template e Patterns ================================================================================ AUTORE: 2130 DATA :04/06/2007 - 16:59:51 ---------------------------------------- Salve ho di nuovo bisogno di aiuto: dovrei effettuare delle misure su un'immagine acquisita con una telecamera(una spina di quelle che vanno nelle prese di corrente).Ho effettuato la parte di calibrazione,mi manca in pratica di trovare la distanza in pixel dei terminali. Ho provato in tanti modi senza ottenere nulla: 1)ho fatto un count objects evidenziando gli oggetti tra cui calcolare le distanze,ma non riesco a posizionare degli assi opportuni perpendicolari ad essi 2)sempre col count object ho provato a creare una retta partendo dai centroidi degli oggetti lungo la quale calcolare le distanze 3)ho provato a confrontare l'immagine con un pattern ma ho problemi con le dimensioni. In definitiva dovrei calcolare quanti pixel intercorrono tra 2 pin indipendentemente dalla posizione della spina.Avete qualche consiglio da darmi?Grazie in anticipo ---------------------------------------- AUTORE: 384 DATA :05/06/2007 - 07:32:53 ---------------------------------------- Probabilmente ti occorerá un pò di pre-elaborazione del'immagine - che non specifichi se hai già o meno. Prova a usare l'edge detector. Con quello strumento, definisci una retta che "attraversa" i tuoi pin e puoi calcolare la distanza fra gli "edge" trovati. Se la fai "incrocciare" 2 pin ne troverà 4, 2 di ogni pin, quindi potrai calcolare tutte le distanze/dimensioni attinenti. Se la spina non è sempre posizionata allo stesso punto nell'immagine - come mi sembra di aver capito - dovresti torvare in essa una caratteristica distintiva, riconoscerla per prima e collocarvi gli assi di riferimento. Giust'appunto, tutti gli altri "strumenti" che posteriormente userai sull'immagine stessa andranno posizionati relativamente agli assi di riferimento.   ---------------------------------------- AUTORE: 2130 DATA :05/06/2007 - 16:01:09 ---------------------------------------- Innanzitutto ti ringrazio per la gentilezza.Diciamo che teoricamente avevo intuito il percorso che mi descrivi ma nella pratica non sono riuscito ad implementarlo,Labview è uno strumento nuovo per me e non sono troppo capace,potresti essere più preciso?Ho provato con l'edge detection ma mi esce un immagine scurissima con un accenno ai bordi. ---------------------------------------- AUTORE: 384 DATA :05/06/2007 - 16:49:55 ---------------------------------------- [quote="EroWii":31vgk13s]Innanzitutto ti ringrazio per la gentilezza.Diciamo che teoricamente avevo intuito il percorso che mi descrivi ma nella pratica non sono riuscito ad implementarlo, Labview è uno strumento nuovo per me e non sono troppo capace,potresti essere più preciso?[/quote:31vgk13s] Vista la tua autovalutazione in quanto a competenze LabView, diventerà un pò difficile guidarti in una materia complessa come la visione. Se hai Vision, dovresti anche avere il VisionBuilder. Con quello strumento puoi provare più facilmente tutte le funzioni disponibili per elaborazione immagini. In più, puoi generare un vi di quello che hai fatto. É mooolto pratico, perchè il "lavoro da schiappa" lo fa il builder... [quote="EroWii":31vgk13s]Ho provato con l'edge detection ma mi esce un immagine scurissima con un accenno ai bordi.[/quote:31vgk13s] Lo strumento di edge detection a cui mi riferivo non da un'immagine in uscita, bensi dei punti (x,y), quindi evidentemente stai facendo qualcos'altro. Per questo suggerisco di iniziare a provare con il VisionBuilder e poi raggionare su quella base, prima di passare a LabView. [PS-In realtà, dal edge detection esce un'immagine, ma è l'esatto originale con sovraimposte le elaborazioni del blocco.] ---------------------------------------- ================================================================================ Uso del VI Server per la comunicazione tra VI ================================================================================ AUTORE: 645 DATA :05/06/2007 - 09:34:55 ---------------------------------------- Vi indico questo sito: http://zone.ni.com/devzone/cda/epd/p/id/4271 . C'è un file .zip contenente un esempio di comunicazione Master/Slave tramite VI Server. Può essere interessante... \":D\" ---------------------------------------- ================================================================================ Assegnare etichetta all'asse X di un grafico. Come? ================================================================================ AUTORE: 2147 DATA :05/06/2007 - 09:36:25 ---------------------------------------- Ciao ragazzi, uso labview da un pò ma sono nuovo del forum. Vi scrivo per chiedere un aiuto: qualcuno di voi sa come assegnare all'asse X di un grafico (waveform chart/graph) un'etichetta? In pratica sull'asse delle ascisse vorrei fosse visualizzata una scala "testuale" (non esclusivamente numerica) ma non ho trovato alcun property node che consenta di fare ciò. Es.: Vorrei plottare l'andamento di un dato di collaudo rispetto all'item collaudato. L'item è individuato da un ID; quindi, sull'asse X vorrei l'elenco degli ID. Ad ogni ID, nel grafico, è associato il valore del dato di collaudo. Se qualcuno sa dirmi come fare (se si può fare), grazie in ogni caso. Enrico PS.: Uso LabVIEW 7 ---------------------------------------- AUTORE: 645 DATA :05/06/2007 - 12:38:20 ---------------------------------------- Con LabView 7 non so ma con la versione 8.2 c'è un "Property Node" chiamato Xscale e poi Unit Label. Vale sia per i Graph che per i Chart... prova a vedere se c'è qualcosa di simile nella versione 7. ---------------------------------------- AUTORE: 2147 DATA :05/06/2007 - 14:02:36 ---------------------------------------- Grazie, ma a meno che non abbia capito come usarlo, non è quello che cercavo io. "Unit Label" permette di associare un'unità di misura (Hz, s, mm, etc.) ad un controllo (anche grafico), mentre a me serve graficare l'andamento di un dato di collaudo (asse Y in "mm" ad esempio) rispetto all'item stesso (asse X in "ID_item")...un pò come è possibile fare in excel con "etichetta asse". Insomma, l'ideale per me sarebbe poter utilizzare due vettori, uno numerico per l'asse delle ordinate ed uno di tipo stringa per l'asse delle ascisse. Grazie, Enrico ---------------------------------------- AUTORE: 645 DATA :05/06/2007 - 14:10:38 ---------------------------------------- Una specie di istogramma? ---------------------------------------- AUTORE: 2147 DATA :05/06/2007 - 16:38:20 ---------------------------------------- Esatto, un istogramma magari fatto con le linee e non con le classiche barre verticali, ma mi andrebbe bene in ogni modo. ---------------------------------------- ================================================================================ conversione immagine da RGB a L*a*b ================================================================================ AUTORE: 2149 DATA :06/06/2007 - 10:57:41 ---------------------------------------- Buongiorno a tutti. Mi trovo davanti al problema di convertire un'immagine da RGB a CIE L*a*b. Nel pachetto IMAQ esiste la funzione "IMAQ RGBToColor 2" che converte le componenti RGB di un singolo pixel in un qualsiasi formato di colore ma inserendolo in un doppio ciclo for e convertendo tutti i pixel il risultato finale è una matrice vuota, senza segnali di errore. Inoltre il programma concepito in questo modo è estremamente dispendioso in quanto si deve prima estrarre i piani R,G e B dell'immagine, in seguito convertirli in matrice ed infine operare la conversione. Qualcuno può suggerirmi un modo più furbo di fare questa cosa o una libreria che io non sono riuscito a trovare?!?!?! Grazie \":)\" ---------------------------------------- ================================================================================ INTERVALLI DI TEMPO ================================================================================ AUTORE: 2150 DATA :06/06/2007 - 15:33:09 ---------------------------------------- ciao,ho appena iniziato ad usare lab e tra mille esempi e l'inglese non sò cmq come fare,chiedo consigli. PROBLEMA:ho una daq che mi fornisce dati(collegata a degli edometri) e dovrei salvare questi dati in 4 modi diversi: -salvare a tempi prefissai(es:t1=5sec;t2=8min....tn=12h) -salvare per l'intervallo Dt1 ogni sec -salvare per l'intervallo Dt2 ogni min -salvare per l'intervallo Dt3 ogni 10 min (Con Dt tot =Dt1+Dt2+Dt3) DOMANDA:quale struttura devo usare?while,for,timed loop? GRAZIE ---------------------------------------- AUTORE: 247 DATA :06/06/2007 - 16:53:58 ---------------------------------------- Ciao, per semplicità e vista la bassa freq con cui acquisisci utilizzerei un semplice timed loop settato a 1 sec nel quale acquisisci un punto alla volta per tutti i canali di tuo interesse e conservi o scarti il dato a seconda che sia il campione temporalmente di tuo interesse, utilizzando un confronto o con il tempo trascorso per le misure più lunghe o semplicemente utilizando il count del ciclo come riferimento di tempo. BYE. ---------------------------------------- AUTORE: 2150 DATA :06/06/2007 - 21:09:57 ---------------------------------------- grazie apollon domani in laboratorio seguirò i tuoi consigli.ciao ---------------------------------------- ================================================================================ Circuiti eletronici ================================================================================ AUTORE: 2152 DATA :06/06/2007 - 17:30:12 ---------------------------------------- Ciao sono nuovo del programma ^^ a me interessa inserire dei circuiti eletronici nei programmi, che so integrati transistor etc etc è possibile? se si come??? ringrazio anticipatamente tutti quelli che mi risponderanno ---------------------------------------- AUTORE: 645 DATA :06/06/2007 - 17:52:16 ---------------------------------------- Tu intendi inserire un circuito simulato (tipo PSpice) in un VI fatto con LabView? Se è così dovresti cercare info sull'integrazione di LabView con Multisim. ---------------------------------------- AUTORE: 2152 DATA :06/06/2007 - 18:13:40 ---------------------------------------- si intendo dire quello, per fare un esempio che so mettere un circuito per la modulazione d'ampiezza collegato al generatore di segnali di labview ---------------------------------------- AUTORE: 384 DATA :07/06/2007 - 19:03:03 ---------------------------------------- National Instruments sta facendo enormi sforzi per coprire l'intera catena dello sviluppo prodotto, dal design al implementazione e test in-circuit. Guarda questi link: http://zone.ni.com/devzone/cda/pub/p/id/142 http://zone.ni.com/devzone/cda/pub/p/id/144 http://digital.ni.com/worldwide/bwconte ... e=164520_i http://digital.ni.com/worldwide/bwconte ... e=164520_i   ---------------------------------------- ================================================================================ Visualizzare segnale generato ================================================================================ AUTORE: 2154 DATA :06/06/2007 - 18:10:28 ---------------------------------------- salve, avrei bisogno del vostro aiuto: volendo utilizzare l'example Gen Dig Pulse Train Continuos, come posso modificarlo per visualizzare ciò che sto generando? quali sono i blocchi da aggiungere e dopo quali gia esistenti devo aggiungerli? Ringrazio tutti coloro che vorranno darmi una risposta! ah dimenticavo...complimenti per il forum, ho trovato molti post interessanti.... \":!:\" \":!:\" Ciao! ---------------------------------------- AUTORE: 384 DATA :07/06/2007 - 19:36:41 ---------------------------------------- Guarda la riposta a [url=http://www.ilvg.it/forum/viewtopic.php?p=13962#13962:1igf4w64]questo[/url:1igf4w64] post.   ---------------------------------------- AUTORE: 2154 DATA :17/06/2007 - 14:34:40 ---------------------------------------- Ciao GYC, ho visto la risposta che hai dato ad un problema uguale al mio. potrebbe essere una soluzione. Ho trovato in uno degli esempi un SubVI di cui ti allego l'immagine dello schema a blocchi, che forse fa al mio caso, perchè non saprei come devo modificare ad esempio pulse train gen continuous per riportare il segnale su un altro ingresso e quindi visualizzarlo.... gli dai un occhiata a qst e mi dici se puo andar bene oppure dove va modificato (magari i vari punti che vanno modificati) ? te ne sarei grato.... intanto ti saluto!!! ---------------------------------------- AUTORE: 2154 DATA :17/06/2007 - 14:51:12 ---------------------------------------- se invece l'unica strada è quella di riportare ctr0out su un ingresso e visualizzarlo, potre unire i due esempi pulse train gen continuous e read cont digital channel? se si come si fa? ciao ciao \":!:\" \":!:\" \":!:\" \":)\" \":)\" \":)\" \":)\" \":)\" \":)\" \":)\" ---------------------------------------- AUTORE: 2154 DATA :17/06/2007 - 15:45:29 ---------------------------------------- ciao gyc, scusa se intervengo molte volte, ti allego anche un'immagine di un vi che ho modificato con il subvi di cui ti parlavo sopra (con imm allegata) denominato Create DigWavefom....a me i pare una stronzata quello che ho fatto....mmmhhaaa!! vero? aspetto tua risp.... ciao... \":lol:\" ---------------------------------------- AUTORE: 384 DATA :18/06/2007 - 02:44:57 ---------------------------------------- L'unica strada è proprio acquisire il segnale generato. I 2 vi (generazione e acquisizione) possono tranquillamente girare separati! ---------------------------------------- AUTORE: 2154 DATA :18/06/2007 - 07:03:42 ---------------------------------------- ciao gyc... ma allora viso che è cosi, cosa mi fa visualizzare qst vi che ti allego? fai conto che il subvi che compare ha lo schema a blocchi presente nell'immagine allegata precedentemente. poi, come è possibile che uno non puo visualizzare cio che genera? mi meraviglia questa risposta..... ciao e grazie gyc... ---------------------------------------- AUTORE: 384 DATA :18/06/2007 - 09:56:30 ---------------------------------------- Calma! Se si genera una qualunque forma d'onda in software e poi la si "butta fuori" da un'uscita (analogia o digitale a seconda del caso) allora per visualizzare ciò che si genera basta usare un comunissimo "graph". Quando, invece, si usa l'hardware per generare una forma d'onda, lo si programma e lo si mette in funzione, ma il segnale generato non passa mai dal software, appunto perchè è generato dall'hw stesso. In questo caso, l'unico modo per visualizzarlo è acquisirlo. Spreo sia più chiaro ora. \":)\" ---------------------------------------- AUTORE: 2154 DATA :18/06/2007 - 18:41:57 ---------------------------------------- forse abbiamo complicato una semplice situazione!!!! allora, io voglio visualizzare il segnale che genero tramite il vi presente negli example gen dig pulse train continuos.vi Per quanto ho capito si puo fare mettendo un comunissimo graph... dove? mi spighi gentilmente passo passo come devo fare? ciao gyc ...... è inutile dirte che sei gentilissimo.... ---------------------------------------- AUTORE: 384 DATA :19/06/2007 - 09:36:04 ---------------------------------------- [quote="cicciociccio":21p1hnxf]forse abbiamo complicato una semplice situazione!!!! allora, io voglio visualizzare il segnale che genero tramite il vi presente negli example gen dig pulse train continuos.vi [/quote:21p1hnxf] Con questo esempio, il segnale è generato direttamente dall'hardware, quindi, non puoi visualizzarlo se non acquisendolo con un altro canale della scheda. Nell'immagine che hai allegato il blocco "CreateDigiWfm" serve a generare dei treni di impulsi digitali via software. Quello che succede è che stai visualizzando qualcosa che non è il segnale reale, ma una sua simulazione. L'utilizzo corretto di quel blocco si vede nel vi "Cont Write Dig Chan-Burst.vi".   ---------------------------------------- AUTORE: 2154 DATA :20/06/2007 - 13:21:26 ---------------------------------------- OK! Non ti arrabbiare...adesso ho capito bene!!! \":lol:\" Senti GYC, ma quindi per acquisirlo con un altro canale devo per forza riportare fisicamente ctr0out su un digital input (sul blocco connettori), oppure c'è un modo per farlo senza disturbare fisicamente cio che porta il segnale da ctr0out? poi un'altra cosa che volevo chiederti, come funziona il buffer nei VI? come si crea? quando da errori del tipo: buffer insufficiente etc etc su quale blocco si deve agire? ciao gyc e grazie mille...anzi milioni!!! \":wink:\" \":cry:\" \":lol:\" ---------------------------------------- AUTORE: 2154 DATA :20/06/2007 - 15:38:19 ---------------------------------------- ti faccio queste domande perchè devo acquisire segnali con frequenze elevate, anche fino a 100 KHz. Qual'è secondo te la soluzione migliore che mi permette di non perdere campioni e di scrivere per bene i dati su file? ---------------------------------------- AUTORE: 384 DATA :26/06/2007 - 17:54:50 ---------------------------------------- [quote="cicciociccio":aqly66vr]OK! Non ti arrabbiare...adesso ho capito bene!!! \":lol:\" [/quote:aqly66vr] Io non mi arrabio mai... \":evil:\" \":wink:\" [quote="cicciociccio":aqly66vr]Senti GYC, ma quindi per acquisirlo con un altro canale devo per forza riportare fisicamente ctr0out su un digital input (sul blocco connettori), oppure c'è un modo per farlo senza disturbare fisicamente cio che porta il segnale da ctr0out?[/quote:aqly66vr] Ahimè, no. Devi proprio fare un colegamento fisico. Le schede non hano un "commutatore" interno per fare ciò che vorresti, cioè dei colegamenti fisici senza passare dalla "morsettiera". [quote="cicciociccio":aqly66vr]poi un'altra cosa che volevo chiederti, come funziona il buffer nei VI? come si crea? quando da errori del tipo: buffer insufficiente etc etc su quale blocco si deve agire?[/quote:aqly66vr] In realtà non puoi farci nulla perchè i buffer sono completamente gestiti da LabView. Quel tipo di errori è sintomo di qualcosaltro che sta andando male a monte. Devi prima capire quale blocco produce effettivamente l'errore e poi il perchè. Può essere solo una questione relativa ai parametri che vi passi oppure legato al modo in cui usi l'hardware della scheda oppure ancora un misto delle 2 cose. Devi leggere con attenzione l'help in linea, poi un'eventuale ricerca sul sito della N.I. con il codice dell'errore. E infine ci siamo noi. PS - Mi suco per la mancata immediatezza. Alcune problematiche di indole familiare mi hanno allontanato da internet per qualche giorno! \":(\"   ---------------------------------------- AUTORE: 384 DATA :26/06/2007 - 18:00:05 ---------------------------------------- [quote="cicciociccio":3i3g3xsu]ti faccio queste domande perchè devo acquisire segnali con frequenze elevate, anche fino a 100 KHz. Qual'è secondo te la soluzione migliore che mi permette di non perdere campioni e di scrivere per bene i dati su file?[/quote:3i3g3xsu] Acquisizione in "streaming" controllata dall'hardware della scheda e salvataggio in file direttamente in binario oppure in formato "tdm", cioè, usando i blocchi della pallette "File I/O \ Storage"; il tutto in un loop assolutamente scarno di pulsanti, grafica, ecc, ecc. ---------------------------------------- ================================================================================ offset temporale ================================================================================ AUTORE: 1555 DATA :07/06/2007 - 19:05:42 ---------------------------------------- ho un piccolo problema, il segnale che devo acquisire ha un ritardo dovuto al circuito di adattamento, come posso riportarlo al valore originale? il segnale ha frequenza di 50 hz e un ritardo di 0,0024 s cioè 22° grazie in anticipo a tutti ---------------------------------------- AUTORE: 247 DATA :08/06/2007 - 17:13:58 ---------------------------------------- Ciao, se per "riportarlo al valore originale" intendi "avere una visualizzazione sincrona al segnale reale" a prescindere dall'acquisizione ritardata, potresti, nel caso di onde periodiche, sfasare anticipandolo il segnale visualizzato prendendo come riferimento un punto noto dell'onda acquisita. Se quindi tu stessi acquisendo un'onda quadra potresti sincronizzare la visualizzazione su uno dei due fronti, visualizzando un segnale fittizio, perchè non è quello acquisito, ma temporalemnte più fedele a quello che tu sai essere l'originale aggiungendo un numero di punti necessari a recuperare il ritardo. BYE. ---------------------------------------- AUTORE: 1555 DATA :08/06/2007 - 17:55:42 ---------------------------------------- mi spiego meglio: ho due segnali a 50 Hz rispettivamente corrente e tensione di un carico;la corrente viene prelevata da una pinza amperometrica mentre la tensione da un trasformatore; essendo il carico una resistenza le sinusoidi devono essere in fase, ma non lo sono e sicuramente questo errore di fase è dovuto al trasformatore. non voglio che la tensione sia sempre in fase poichè cambiando carico (es. ohmico induttivo) lo sfasamento ci deve essere ---------------------------------------- AUTORE: 645 DATA :08/06/2007 - 23:46:17 ---------------------------------------- Puoi controllare lo sfasamento introdotto dal trasformatore (usi un Trasformatore di Misura? Un TV per intenderci?) e compensarlo nel grafico. I Trasformatori di misura introducono nella misura uno sfasamento che però può essere calcolato... cerca qualche appunto di Misure Elettriche sul sito del politecnico, magari nel dipartimento di Elettrotecnica. \":)\" ---------------------------------------- AUTORE: 1555 DATA :09/06/2007 - 00:31:12 ---------------------------------------- si è un trasformatore e attraverso un oscilloscopio il ritardo è di circa 22° cioè 2,4ms, il problema è che non sò come compensarlo. ---------------------------------------- AUTORE: 384 DATA :09/06/2007 - 14:28:46 ---------------------------------------- Se questo errore di fase non cambia con il carico sotto test - e non dovrebbe - hai soltanto da sotrarlo alle misurazioni di fase che farai. Sei sicuro che il segnale che hai in uscita dalla pinza amperometrica abbia errore di fase nullo? Assicurati pure di questo, perchè un errore di 22 gradi tutti su un trasformatore mi sembra strano. Non trovi un'altro modo di misurare senza la pinza e senza il TV? ---------------------------------------- AUTORE: 1555 DATA :10/06/2007 - 17:53:48 ---------------------------------------- la pinza è nuova mentre i trasformatori non sono quelli appositi per le misure ma sono dei sempilici trasf. di potenza (i primi che ho trovato) ---------------------------------------- AUTORE: 384 DATA :10/06/2007 - 18:18:25 ---------------------------------------- Non c'entra che la pinza sia nuova. Il problema è nel suo funzionamento intrinseco (ci sono molti modi di misurare una corrente e, quindi, di costruire una pinza amperometrica). Dovresti cercare nel manuale se questo dato viene esplicitato. Altrimenti dovrai fare una misura con un oscilloscopio. ---------------------------------------- AUTORE: 1555 DATA :11/06/2007 - 00:35:02 ---------------------------------------- nelle caratteristiche della pinza è garantito uno sfasamento massimo di 1° ---------------------------------------- AUTORE: 384 DATA :11/06/2007 - 01:53:21 ---------------------------------------- La pinza, quindi, è a posto. Resta il trasformatore, che non essendo di misura non è particolarmente curato per quanto riguarda il dimensionamento del ferro (potrebbe tranquillamente saturare, anche se non creddo che ciò succeda con il solo carico della scheda di acquisizione) ne negli avvolgimenti. Devi verificare che questi 22 gradi non varino al variare del carico resistivo e poi li sotrai ad ogni misura di fase. Però ti ripeto la domanda: devi proprio usare un trasformatore per le misure di tensione? Di che valori di tensione si tratta? Il 220Vac della normale rete "enel"? Potresti magari allegare uno schizzo del tuo circuito di misura? ---------------------------------------- AUTORE: 1555 DATA :11/06/2007 - 19:34:29 ---------------------------------------- allora la tensione da misurare è di 400 V; forse riesco a risolvere utilizzando il vi Y[i]=x[i-n] effettivamente anche a me semrano tanti 22°, scusa ma uno schemino non riesco a farlo per mancanza di tempo ---------------------------------------- ================================================================================ Applicazione senza menu ================================================================================ AUTORE: 1876 DATA :08/06/2007 - 07:09:37 ---------------------------------------- Ciao a tutti, io vorrei creare un'applicazione con l'Application builder che però non faccia comparire le barre degli strumenti "file, modifica, visualizza ecc..." Oltretutto vorrei anche, se possibile, eliminare la barra blu della finestra impedendo all'utente di chiudere l'applicazione con il classico bottone rosso "X" Qualcuno mi può dare una mano? ---------------------------------------- AUTORE: 487 DATA :08/06/2007 - 07:28:41 ---------------------------------------- Ciao, devi settare le proprietà del vi: VI properties >> Window Appearance >> Customize e togli il segno di spunta su "windows has title bar" e "Show menu bar". Se vuoi solo impedire di chiuder l'applicazione con il bottone rosso, puoi lasciare la title bar e disabilitare "Allow user to close window". ---------------------------------------- AUTORE: 838 DATA :08/06/2007 - 07:31:32 ---------------------------------------- niente di più facile vi proprieties (tasto dx sulla icona in alto a dx) windows apparance custom togli tutto \":D\" ---------------------------------------- AUTORE: 1876 DATA :08/06/2007 - 11:00:13 ---------------------------------------- Ah ok grazie mille... Solo un altra cosa, c'è la possibilità di visualizzarlo a schermo intero così com'è? cioè senza i vari Menu? ---------------------------------------- ================================================================================ Problema funzionamento contagiri per automobile ================================================================================ AUTORE: 2157 DATA :08/06/2007 - 10:37:22 ---------------------------------------- Salve a tutti,sono un neofita di labview. Ho creato un programma che simuli molto semplicemente il funzionamento di un' automobile.Il mio problema è nel funzionamento del contagiri.Accetto tutti i consigli possibili. Grazie in anticipo. ---------------------------------------- AUTORE: 645 DATA :08/06/2007 - 11:20:52 ---------------------------------------- Io non capisco bene la logica del programma... cioè, come vuoi collegare i vari pezzi? ---------------------------------------- AUTORE: 2157 DATA :11/06/2007 - 07:34:29 ---------------------------------------- Qualcuno è riuscito a far funzionare il contagiri? ---------------------------------------- AUTORE: 482 DATA :11/06/2007 - 10:39:21 ---------------------------------------- Ci sono errori abbastanza palesi nel contagiri.... 1) il selettore del case è uno 0/1, coem fa ad avere il case 2 ?? 2) Nel case 2 gli mandi in ingresso un booleano trasformato in 0/1 e poi verifichi se <= 100 e > di 60. Come puo' uno 0/1 rispettare quei criteri? E'decisamente d arifare tutta la procedura del contagiri perchè non ha nessun senso. \":|\" ---------------------------------------- AUTORE: 2157 DATA :11/06/2007 - 11:06:25 ---------------------------------------- Ti ringrazio per i consigli. ---------------------------------------- ================================================================================ labview per mac osx ================================================================================ AUTORE: 1669 DATA :09/06/2007 - 11:12:46 ---------------------------------------- Ciao a tutti vorrei sapere se laversione che utilizzo (LABview 8.0) sotto windows è la stessa che posso utilizzare sotto OSX Grazie A presto ---------------------------------------- AUTORE: 4 DATA :10/06/2007 - 09:45:02 ---------------------------------------- ciao, no. esisteono versioni diverse per win, mac e linux. ---------------------------------------- ================================================================================ prendere gli spazi vuoti in un array ================================================================================ AUTORE: 1368 DATA :11/06/2007 - 08:57:39 ---------------------------------------- Ciao a tutti, ho un array composto da numeri ad esempio 1 2 3 5 6 9 10 come faccio a trovare che il 4 libero e ci posso scrivere dentro?? codi per il 7 e 8 grazie e tutti ---------------------------------------- AUTORE: 482 DATA :11/06/2007 - 10:31:58 ---------------------------------------- un idea potrebbe essere quella di fare la differenza tra in numero n+1 e n Nella prima iterazione tra n+1 e 0. Se la differenza è maggiore di uno il valore è libero. Il valore della differenza ti direbbe inoltre quanti numeri ci sono liberi è cioè RISULTATO - 1. ---------------------------------------- ================================================================================ Eseguibile in background ================================================================================ AUTORE: 487 DATA :11/06/2007 - 10:12:28 ---------------------------------------- Ciao a tutti, il problema è il seguente: voglio creare un eseguibile che giri in background (non deve comparire il front panel) in quanto deve eseguire delle semplici operazioni di controllo. Il problema è che non riesco a eliminare il front panel del top vi quando creo l'eseguibile. Mi sembrava che l'argomento fosse già stato trattato nel forum, ma non sono riuscito a trovare le informazioni che cercavo. ---------------------------------------- AUTORE: 645 DATA :11/06/2007 - 10:51:20 ---------------------------------------- Guarda se l'allegato può tornare utile: crea l'eseguibile e lancialo. ---------------------------------------- AUTORE: 487 DATA :11/06/2007 - 12:53:04 ---------------------------------------- Ciao MagicBotolo, ho provato il tuo esempio, ma il risultato è uguale a quello che avevo già ottenuto: compare il front panel per un attimo e poi viene reso trasparente. Io vorrei, se fosse possibile, non far comparire proprio un bel niente. Hai qualche altro suggerimento? ---------------------------------------- AUTORE: 482 DATA :11/06/2007 - 13:32:30 ---------------------------------------- e se provi afare un frontpanel di dimensione 1x1 pixel e messo in un angolo dello schermo? NOn è elegantissimo ma funziona. ---------------------------------------- AUTORE: 487 DATA :11/06/2007 - 14:37:54 ---------------------------------------- Già provato, ma la minima dimensione che viene accettata è 94 x 1. In realtà la mia attuale situazione è proprio questa: front panel ridotto ai minimi termini, posizionato fuori dallo schermo visibile e con trasparenza al 100%. ---------------------------------------- AUTORE: 645 DATA :11/06/2007 - 15:06:45 ---------------------------------------- Ho provato a chiamare il VI invisibile (Prova) attraverso il server VI partendo da un altro VI (Inizio)... Fai partire Inizio e poi chiama Prova ---------------------------------------- AUTORE: 487 DATA :11/06/2007 - 15:59:52 ---------------------------------------- Scusa MagicBotolo, il mio problema è che il vi che non deve comparire è proprio il topvi, altrimenti facendo come hai suggerito tu, cioè con una chiamata dinamica, potrei non far aprire per niente il front panel ed il problema sarebbe risolto. L'obbiettivo è che io devo lanciare l'eseguibile e non devo aver nessuna evidenza sullo schermo che il mio programma è in running. ---------------------------------------- ================================================================================ simulare valori ================================================================================ AUTORE: 2125 DATA :11/06/2007 - 13:40:12 ---------------------------------------- ciao a tutti, vorrei simulare dei segnali acquisiti (ad es. temperature o valori di tensione) perchè non ho sensori connessi al pc, come posso fare? Grazie. ---------------------------------------- AUTORE: 645 DATA :11/06/2007 - 14:52:44 ---------------------------------------- Se hai schede DAQ-mx puoi simulare le acquisizioni ( http://zone.ni.com/devzone/cda/tut/p/id/3698 ). Altrimenti puoi generare numeri random intorno a valori plausibili per i sensori che pensi di utilizzare (cioè parti da un valore base che potrebbe essere acquisito (es: 20°C) e poi sommi o sottrai un numero random con qualche blocco di programmazione). ---------------------------------------- AUTORE: 2125 DATA :11/06/2007 - 15:33:49 ---------------------------------------- grazie, la seconda soluzione che mi hai suggerito è quella che fa a caso mio. ---------------------------------------- ================================================================================ Termoregolazione ================================================================================ AUTORE: 482 DATA :11/06/2007 - 15:47:12 ---------------------------------------- ...ma ciao! sono incappato in un problemone... Devo controllare la temperatura di uno stampo. Questo stampo è riscaldato da 6 resistenze (quindi ON/OFF) e non raffreddato. Io devo fargli eseguire delle rampe di riscaldamento (es. in mezz'ora arrivare a 70 gradi, restarci per un ora, salire in mezz'ora a 120 gradi, restarci per un ora e poi spegnere tutto). Avevo pensato di inserire un sistema di tipo PID per fare cio' ma ho due grossi problemi: 1) I tempi di risposta sono lentissimi e non so come comportarmi con le costanti, qualcuno ha qualche idea? Se comincio a riscaldare, la temperatura comincia a slaire dopo qualche minuto e se spengo le resistenze, sale ancora di una decina di gradi prima di cominciare a scendere e ci mette un po') 2) Le funzioni PID mi restituiscono un valore modulato di potenza di uscita, io pero' ho degli ON/OFF da pilotare, esiste qualche funzione che fa già questa trasformazione o devo costruirmi io qualche calcolo stranoche in base alla potenza mi modula la frequenza o l'intervallo di tempo ON ? AIUTOOOO!!! \":o\" \":o\" \":o\" ---------------------------------------- AUTORE: 1520 DATA :15/06/2007 - 10:22:04 ---------------------------------------- Premetto che sono un po' arrugginito sui controlli automatici ma la sovraelongazione del sistema la puoi correggere con i PId per cui si tratterà di tarare un po' il sistema all'inizio e probabilmente di abbassare la costante per il proporzionale (quindi anche più lento a salire però). Per quanto riguarda la potenza non puoi fare qualcosa tipo un PWM molto semplice? Direttamente proporzionale alla potenza che ti da il PID, il periodo non credo proprio che necessiti di tempi stretti trattandosi di temperature. Ciao Matteo ---------------------------------------- AUTORE: 482 DATA :15/06/2007 - 12:39:15 ---------------------------------------- Diciamo che piu' o meno ho realizzato quello che dici tu...e regolando i PID adesso sembra funzionare... Nella mia mente malata pero' ho ipotizzato una teoria che non sose è corretta. Come range di uscita dal modulo PID ho messo 0/100 in modo che mi restituisse dei valori in percentuale. Poi ho ipotizzato che in questo range di uscite, i valori minori di 50 equivarrebbero a dei valori negativi con range simmetrico allo zero. Quindi ho stabilito che per tutti i valori inferiori al 50, le resistenze restino spente, mentre dal 50 al 100 mi si generi un segnale ON/OF con duty cycle in funzione del valore restituito dal PID,riportato su una scala da 0 a 100% E' giusto come ragionamento? ---------------------------------------- AUTORE: 1520 DATA :15/06/2007 - 13:01:10 ---------------------------------------- Non ho mai personalmente utilizzato il PID di Labview però se prevede come ovvio che sia l'attuazione sulla variabile di uscita nel caso più generale direi che appoggio pienamente la tua teoria. E' certamente così. Matteo ---------------------------------------- AUTORE: 1124 DATA :29/06/2007 - 13:21:08 ---------------------------------------- Ciao a tutti. Il problema è che mentre si ha a disposizione sufficiente potenza per apportare energia (scaldare) non se ne ha per toglierne (raffreddare). Io lo vedo come un sistema asimmetrico, con tempi di risposta differenti in riscaldamento ed in raffreddamento. Limitare al 50% superiore l'utilizzo della dinamica disponibile non mi sembra utilissimo. Questo tipo di gestione è ottimale se da 0 al 50 si raffredda e dal 50 in su si scalda (o viceversa). Le funzioni PID di Labview danno la possibilità di gestire la linearità ed un coefficiente Beta che se ben ottimizzati forse migliorerebbero la regolazione, ma senza un minimo di assorbimento di calore, una ventola, una cella di Peltier o altra diavoleria, gestibile con una frazione del segnale PID temo che ci sia da accontentarsi di avere un sistema con una banda in temperatura un po' alta, ma magari accettabile. Ciao ---------------------------------------- AUTORE: 645 DATA :29/06/2007 - 15:23:12 ---------------------------------------- Il fatto che lo stampo non sia raffreddato impone tempi di controllo un po' più lunghi come suggerisce stefanog. Però si può lavorare giocando con i coefficienti proporzionale ed integrale del PID. Per iniziare si può usare un valore proporzionale basso (diciamo 3) e un valore integrale (se non ricordo male espresso in ms o s) superiore al tempo di variazione della temperatura della piastra. Mi spiego: il valore proporzionale permette la botta di riscaldamento: da un lato è il responsabile della risposta veloce (la piastra arriva in temperatura in fretta), dall'altro porta la piastra a scaldarsi più del dovuto prima di capire che ha superato la temperatura richiesta. Il tempo integrale invece permette al sistema di ammorbidire le salite e le discese: in questo modo si rimane nei dintorni della temperatura desiderata. Una regoletta che funziona è selezionare un tempo integrale superiore al tempo di variazione della temperatura della piastra (io partirei con una trentina di secondi per poi vedere come vanno le cose) ma avente lo stesso ordine di grandezza. Ci sono regole per la taratura dei PID ma funzionano bene quando le variazioni sono veloci (per esempio fenomeni elettrici). In caso di fenomeni lenti conviene giocare un po' partendo da queste considerazioni (o almeno io ho fatto così e sono arrivato ad un sistema che funziona: in particolare io ho preparato il condizionamento di un sistema a piastre calde che deve essere portato in temperatura e deve rimanere al valore raggiunto per alcuni giorni). ---------------------------------------- AUTORE: 482 DATA :29/06/2007 - 15:50:00 ---------------------------------------- occhei..provero' appena possibile perchè al momento lavoro quasi unicamente col proporzionale perchè l'integrale mi portava fuori strada, forse perchè appunto il proporzionale era troppo alto. Al momento lavoro con proporzionale a 8 e Integrale a 1. Detto questo..credo che il periodo del pwm che adesso è di un secondo, andrà alzato..non vorrei che impulsi troppo brevi creino casini alle resistenze (ne è bruciata una ma non se ne conosce il motivo). La scala di uscita probabilmente la riportero' a -100/100 in modo da ignorare (considerare spento) tutti i valori negativi. mah...faro' parecchi tentativi intanto pe ril momento ho una situazione per nienet stabile ma accettabile a livello di inseguimento di curva, quindi mi accontento. ---------------------------------------- ================================================================================ Controllare motore trifase ================================================================================ AUTORE: 1801 DATA :12/06/2007 - 17:32:45 ---------------------------------------- Dovrei controllare con labview un motore elettrico trifase, collegato ad un inverter.Siccome sono un ingegnere civile, non saprei da dove iniziare.Che dovrei fare?Procurarmi i driver dell'inverter?Per adesso ho solo un programma per controllarlo.Grazie anticipatamente. ---------------------------------------- AUTORE: 1124 DATA :13/06/2007 - 13:17:31 ---------------------------------------- Caro Lumags, personalmente ho sempre usato inverter pilotabili mediante segnale analogico (4÷20mA o 0÷10Vdc), ma credo che alcuni costruttori abbinno dei modelli gestibili dialogando con una seriale. Se conosci il modello di inverter verifica come puoi pilotarlo, ma se questo accetta esclusivamente un segnale analogico dovrai dotarti di una scheda hardware, che potrai poi usare tramite labview. Se invece riesci a pilotarlo mediante seriale o comunque senza segnali analogici verifica il protocollo e che tipo di interfaccia fisica necessita: potrebbe essere una 422 o 485 e difficilmente un PC ne è dotato, ma si trovano in commercio. A questo punto con labview dovresti riuscire a gestire il sistema di controllo. E' prassi diffusa pilotare gli inverter tramite una porta analogica di un PLC, non so se è il tuo caso, ma allora non credo che sia necessario (e soprattuto molto utile) labview. Ciao e buon lavoro. Stefano ---------------------------------------- AUTORE: 1801 DATA :18/06/2007 - 10:50:52 ---------------------------------------- L'inverter è il NORD SK520E.Il software di programmazione è NORD CON. Ma io non ho capito se devo collegare direttamente labview all'inverter o devo comunicare in qualche modo con il software. In realtà sto proprio all'inizio quindi magari se qualcuno potrebbe fare cortesemente un elenco di operazioni che dovrei fare,perchè non so neanche da dove iniziare!!! \":(\" Grazie ---------------------------------------- AUTORE: 384 DATA :19/06/2007 - 09:49:19 ---------------------------------------- A meno che il software di programmazioe dell'inverter non sia anche un server OPC (e non credo!) non è con il software che devi interaggire. Solitamente questi software servono per programmare dei parametri propri del dispositivo, ad esempio, il tipo di motore, le protezioni, ecc. Poi, come diceva [b:yvshyv0y][i:yvshyv0y]stefanog[/i:yvshyv0y][/b:yvshyv0y], il controllo viene fato il più delle volte attraverso un segnale da -10 a + 10 volt (0-10 volt, in altri casi). Quindi, ti serve una scheda che abbia un'uscita analogica attraverso la quale tu generi la tensione che vuoi inviare all'inverter. A questa tensione, normalmente corrisponde una velocità del motore stesso. Ho il sospeto che tu non voglia soltanto pilotare il motore avanti/indietro, in loop aperto. Se devi controllarne anche la posizione (classico esercizio di controllo di un asse) devi avere anche un trasduttore di posizione (può essere un potenziometro, un encoder, un semplicissimo fine-corsa). Devi quindi acquisire il segnale da quel "sensore" per poi utilizzarlo nella gestione del motore. Può anche capitare che tu possa controllare l'inverter con dei commandi da inviare attraverso la linea seriale (dipende solo dall'inverter). Devi naturalmente conoscere questi commandi, cioè il protocollo, e quindi non ti serve più l'uscita analogica. Se proprio non hai nessun altro sensore di "ritorno", allora non ti serve nessuna scheda aggiuntiva.   ---------------------------------------- AUTORE: 1801 DATA :19/06/2007 - 10:25:22 ---------------------------------------- Si,penso che si controlli con un segnale di -10: 10 volt attraverso porta seriale (c'è scritto sul manuale).Poi dovrei effettuare un controllo con un trasduttore di posizione,ma quello lo so fare. Abbiamo una scheda di uscita analogica per l'inverter,ma non so come usarla per far dialogare labview con l'inverter.Nel manuale ci sono vari codici(ad esempio P100:velocità motore...etc) ma non so prorio da dove iniziare...Grazie per le risposte che mi avete dato. ---------------------------------------- AUTORE: 645 DATA :19/06/2007 - 10:53:58 ---------------------------------------- Ma non si può parlare direttamente con l'inverter? Non c'è un protocollo di comunicazione seriale? ---------------------------------------- AUTORE: 384 DATA :19/06/2007 - 11:17:30 ---------------------------------------- Allora, chiariamo un punto: Se controlli l'inverter con una tensione -10 : +10 volt, ciò [b:3mjknf45][u:3mjknf45]NON PUÃ’[/u:3mjknf45][/b:3mjknf45] essere fatto attraverso la porta seriale. Per il controllo con una tensione analogica, c'è un'apposito ingresso sul'inverter. Invece i codici che riferisci (P100, ecc.) suggeriscono che si possa anche fare attraverso la seriale. Visto che, come sospettavo, devi fare un controllo retroazionato, io ti suggerirei di controllare con la tensione analogica. É molto più semplice e concettualmente più chiaro da capire ciò che succede nel software. Ti suggerisco di cercare negli esempi di LabView con "pid" e partire con i vi "Sample PID Demo.vi" , "PID Control Loop.vi" e "Real-Time PID Control.vi". Anche se usano il DAQ tradizionale, sono molto più educativi rispetto agli esempi per il DAQmx. PS - Non ti preocupare se per ora non ti è chiaro cosa siano DAQ tradizionale e DAQmx. Prova con gli esempi che ti ho suggerito e poi, vedrai che se sará il caso, tu stesso scoprirai cos'è questa cosa del DAQ, chi sono e quale utilizzare. ---------------------------------------- ================================================================================ immagine dei risultati del waveform ================================================================================ AUTORE: 1839 DATA :12/06/2007 - 18:46:35 ---------------------------------------- Salve a tutti, avrei un piccolo problema da proporre : Uso la versione 8.0 e ho realizzato un vi in cui sfrutto un Waveform chart per visualizzare dei valori relativi a delle immagini acquisite da una telecamera.. Avrei la necessità di salvare su un file immagine i risultati del grafico una volta finito il processo di acquisizione. Come posso procedere?? Inoltre ho notato che il blocchetto "Waveform Chart" che sto usando non presenta valori in uscita.. ---------------------------------------- AUTORE: 384 DATA :13/06/2007 - 18:16:49 ---------------------------------------- Devi creare un "Invoke Node" e selezionare la funzione "Get Image"; l'immagine esce dal item "image data". Poi usi i blocchi della sub palette "Graphics & Sounds\Graphics Formats" per salvarla su file come BMP, PNG o JPG. É normale che il chart non abbia uscite, come tutti gli "indicatori"!...   ---------------------------------------- AUTORE: 1839 DATA :15/06/2007 - 16:18:24 ---------------------------------------- Grazie per l'attenzione... Ho provato a fare come mi hai consigliato, ma non sono riuscito a costruire il vi come tu mi hai descritto... Sicuramente perchè ho poca familiarità con l'invoke node e non l'ho saputo usare... ti invio un vi contenente il blocchetto relativo al waveform che sto utilizzando, magari se ne hai il tempo fammi uno schizzo, te ne sarei infinitamnente grato... ---------------------------------------- AUTORE: 1839 DATA :15/06/2007 - 16:19:48 ---------------------------------------- dimenticavo l'allegato ---------------------------------------- AUTORE: 384 DATA :15/06/2007 - 22:43:17 ---------------------------------------- Non riesco ad aprire il tuo vi; produce un'errore "insane object" - solitamente devastante per il vi in causa. Allego un'immagine di ciò che ho descritto prima. [img:ssjx19yn]http://www.ilvg.it/forum/files/save_waveform_chart_image_197.png[/img:ssjx19yn] ---------------------------------------- AUTORE: 384 DATA :15/06/2007 - 22:44:13 ---------------------------------------- Mancata l'immagine, sorry! ---------------------------------------- AUTORE: 1839 DATA :15/06/2007 - 23:04:57 ---------------------------------------- grazie GYC, 6 sempre disponibile.. non appena avrò la possibilità di ricollegare la camera, proverò il vi... Ti faccio sapere al + presto.. ---------------------------------------- ================================================================================ Screenshot Programmino ================================================================================ AUTORE: 1960 DATA :12/06/2007 - 21:33:43 ---------------------------------------- Ciao Ragazzi, scusate, ma se io volessi esportare su video qualche secondo di sviluppo del mio VI salvando quello che fa dopo aver cliccato il pulsante run, come posso farlo? Diciamo che voglio fare una sorta di screenshot pero' invece che creare un immagine, io vorrei creare un filmatino Grazias ---------------------------------------- AUTORE: 301 DATA :13/06/2007 - 07:46:19 ---------------------------------------- Ciao, esistono dei programmi gratuiti per fare quello che chiedi.Registrano esattamente il tuo schermo. ---------------------------------------- AUTORE: 301 DATA :13/06/2007 - 07:49:29 ---------------------------------------- http://www.filehungry.com/italian/produ ... n_recorder Prova con questo ---------------------------------------- AUTORE: 1165 DATA :13/06/2007 - 07:52:56 ---------------------------------------- Se ti bastasse una sola immagine statica dello schermo, anche windows ha i suoi strumenti: il tasto "Printscreen" (Stamp RSist) da solo cattura una immagine di tutto lo schermo e la mette negli appunti (da dove può essere poi incollata dove vuoi), mentre il tasto "Alt PrintScreen" cattura solo l'immagine della finestra attiva in quel momento. Invece se vuoi catturare un filmato (l'evoluzione del filmato dopo aver premuto il tasto di Run, allora puoi fare ricorso ad una miriade di programmini tutti rintracciabili nel web. Uno fra tanti che mi piace è SnapShot, veramente completo, ma ce ne sono una miriade del tipo "screen capture". Ciao, enr. ---------------------------------------- AUTORE: 1960 DATA :14/06/2007 - 20:49:26 ---------------------------------------- Alla grande, il programma è perfetto, pero': su Windows media player si vede da Dio, ma quando vado a infilare il filmato nel file pps per le slide della discussione, non va si vede male e nero, perche'? ---------------------------------------- ================================================================================ integrazione numerica ================================================================================ AUTORE: 2164 DATA :13/06/2007 - 09:09:57 ---------------------------------------- Salve, ho sviluppato un programmino che intregra un array utilizzando due funzioni di LW: 1 - Integral X(t) documentata in http://zone.ni.com/reference/en-XX/help ... tegral_xt/ e poi 2 - Numeric Integradion documentata in http://zone.ni.com/reference/en-XX/help ... tegration/ Ottendo due risultati nettamente diversi, invece di ottenere risultati che differiscono per errori di arrotondamento dovuti ai due metodi numerici differenti. Qualcuno sa risolvere l'arcano? Allego il .vi e un file di provacon i dati di partenza se qualcuno si volesse cimentare! \":D\" Saluti, Angelo. ---------------------------------------- AUTORE: 645 DATA :13/06/2007 - 10:48:21 ---------------------------------------- Non rispondo proprio al tuo VI... nel senso che l'ho modificato per fare una considerazione. Ho sostituito la waveform con un vettore contenente i punti di una curva (per esempio una retta, tra 0 e 10... quindi y=x). Poi ho usato i due modi di integrazione: forse dico una cosa banale, però un metodo calcola l'integrale sulla curva mentre l'altro metodo calcola l'integrale finito (il valore vero e proprio). Quindi nel primo caso trovi la nuova curva mentre nel secondo caso trovi il valore numerico dell'area sottesa alla curva iniziale tra l'istante iniziale e l'istante finale. Ti allego un'immagine del VI che ho usato io. Sul sito della National puoi partire da http://zone.ni.com/reference/en-XX/help ... _diff_vis/ (anche se non vengono descritte particolari differenze...). ---------------------------------------- AUTORE: 2164 DATA :13/06/2007 - 12:26:00 ---------------------------------------- Ciao, grazie per la risposta. Ho fatto delle prove con vari segnali generati in modo simile a come fai tu, ed i due risultati mi coincidono (l'ultimo valore della curva generata dalla funzione integral x(t) deve coincidere col valore di numeric integral). Tuttavia continua a non coincidere con quel segnale di prova. Boh. Saluti, Angelo. ---------------------------------------- AUTORE: 2164 DATA :13/06/2007 - 13:53:14 ---------------------------------------- Ah, forse ho scoperto l'arcano. C'è un problema di dipendenza del risultato dal valore iniziale dell'onda. In questo caso credo sia particolarmente fastidioso perchè si ha divergenza nell'origine. Saluti, A. ---------------------------------------- ================================================================================ visual basic -> ocx -> labview ================================================================================ AUTORE: 838 DATA :13/06/2007 - 09:42:49 ---------------------------------------- ho un programmino fatto in vb6 questo ha la sua interfaccia grafica e codice salvato in un form (main.frm) dovrei convertirlo in activex (OCX) dovrei passargli solo una stringa in ingresso (quella che poi modificavo nella grafica) e poi lanciare delle sub (che sono legate ora ai pulsanti) pensavo di fare la stringa come proprety e le sub come method qualcuno se ne intende? o provato a fare una class con dentro il copia/incolla della form, dichiarando public le sub che venivano lanciate dai puls, e Public RemoteIP As String per la proprety però sembra funzionare solo la proprety, i method no, labview mi da errore \":D\" ---------------------------------------- AUTORE: 838 DATA :14/06/2007 - 09:18:57 ---------------------------------------- fatto e funziona ho creato un activex semplificato da importare in labview che richiama un'altro activex abbastanza complesso che dava errore in labview \":twisted:\" ---------------------------------------- ================================================================================ Comunicazione seriale ================================================================================ AUTORE: 1156 DATA :13/06/2007 - 13:41:58 ---------------------------------------- Ciao,sto acquisendo con Labv dei dati tramite seriale che provengono da una demoboard(acquisisco le posizioni di un motorino in dc),e utilizzo per l'acquisizione le varie funzioni Visa ConfigSerial,Read Serialecc;ho però un problema:riesco massimo a leggere un certo numero di byte(460), che penso sia impostato dal visa resource stesso,e poi dopo tale soglia nn acquisisco più niente!Come faccio quindi ad acquisire bytes continuamente,che poi dovrei convertire in numeri e graficarli con un chart! Utilizzando un emulatore di terminale il tutto funziona,però con labv si blocca dopo un pò! Grazie mille anticipatamente! ---------------------------------------- AUTORE: 838 DATA :13/06/2007 - 14:14:39 ---------------------------------------- ma hai una comincazione client/server? cioè tu gli mandi "dammi i valori" e l'apparecchio risponde "eccoteli...." con un unico pacchetto > di 460? mi sembra strano, non puoi fare un ciclo che leggi un pò di byte per volta? ---------------------------------------- AUTORE: 1156 DATA :13/06/2007 - 14:29:41 ---------------------------------------- In pratica sulla demoboard ho un pic che mi spara verso il pc,tramite seriale,dei byte che devo acquisire con labv.Tramite un while riesco ad acquisire e bufferizzare i dati in continuazione? ---------------------------------------- AUTORE: 838 DATA :13/06/2007 - 15:01:57 ---------------------------------------- certo, puoi sempre leggere con visa read quanti byte vuoi pacchettando il tutto però non capisco, ti sparerà un numero certo di byte o è a caso? avrà un minimo di logica il pacchetto che spara l'apparecchio se ad es l'apparecchio invia un valore in 6 byte, tu vai a leggere continuamente pacchetti di 6 byte, in un ciclo while temporizzato a x ms ---------------------------------------- AUTORE: 1156 DATA :13/06/2007 - 15:18:35 ---------------------------------------- Invio 20 byte alla volta(però avendo un baudrate elevato,sul pc mi arrivano molti pacchetti).avevo già provato a fare come dici tu,ma non cambia niente!Ho provato anke a riempire il buffer e a scaricarlo dopo la lettura,ma nn succede niente,oppure sn io ke sbaglio qualcosa! Cmq ti allego qullo che ho fatto! ---------------------------------------- AUTORE: 838 DATA :14/06/2007 - 09:16:47 ---------------------------------------- AAAAAAAARRRRRRRRGGGGGGGHHHHHHHHHHH togli subito l'inizializzazione della seriale da dentro al while!!! va fatta solo una volta prima del ciclo while, passi solo poi il visa reference togli il flush finale che mi sa che non ti serve na mazza metti fuori il set i/o buffer, da fare 1 sola volta prima del ciclo alla chiusura del ciclo while chiudi la seriale con il visa close il delay da scrittura a lettura non impostarlo oltre i 100ms, ma provalo a modificare e vedi come ti va prova \":D\" ---------------------------------------- AUTORE: 1156 DATA :14/06/2007 - 10:17:57 ---------------------------------------- Hai ragione,l'avevo già fatta queta modifica,cmq te lo allego così mi dici se pò andar bene! Poi volevo sapere come posso fare a prendere i primi dieci byte che mi arrivano e graficarli sull'asse x di un chart(questi 10 byte rappresentano un long del tipo 0000000012) e i successivi 10byte, che rappresentano sempre un long,sull'asse y(il pic mi invia tramite seriale pacchetti da 20 byte contenenti le posizioni aggiornate di due motorini e vorrei quindi volta per volta visualizzarle sul grafico in modo tale da avere sull'ascissa la posiz di un motore e sull'ordinata la posiz dell'altro motore)!Nel VI io ho eseguito solo una semplice conversione da stringa a decimale per vedere un pò l'andamento,ma vorrei realizzare quello ke ho scritto sopra! Grazie 1000! ---------------------------------------- AUTORE: 838 DATA :14/06/2007 - 13:34:46 ---------------------------------------- prova a vedere se ho capito quello che ti serve ho aggiunto qualche commento ---------------------------------------- AUTORE: 1156 DATA :18/06/2007 - 10:01:50 ---------------------------------------- Funziona finalmente!!!!!!!siccome ho impostato il wait all'interno del while a 30ms,sul front panel,quando acquisisco,il grafico vibra,mentre aggiorna le posizioni, a causa dell'alta velocità con cui gli arrivano i dati!Esiste qualke metodo per evitare ciò? Grazie 1000 \":D\" ---------------------------------------- AUTORE: 838 DATA :18/06/2007 - 10:30:08 ---------------------------------------- strano, aggiorna il grafico solo se hai realmente letto un valore se vibra vuol dire che ci sono momenti che non leggi dati e aggiorni il grafico con zero quindi controlla se hai un valore, se no, non passarlo al grafico ---------------------------------------- AUTORE: 838 DATA :18/06/2007 - 10:33:38 ---------------------------------------- almeno che il "vibra" che dici tu sia un'altra cosa può essere che leggi valori poco discordanti tra loro (se hai una precisione di encodere elevata) e il puntino si muove continuamente di poco in quel caso aggiorna il grafico se la differenza di valore è significativa per te (controlli vecchio valore con il nuovo, se la diff è maggiore di x allora passa i valori al grafico) ma alla fine l'esempio che ti ho dato del grafico è quello che intendevi? ---------------------------------------- AUTORE: 1156 DATA :18/06/2007 - 10:57:22 ---------------------------------------- Si,l'esempio va bene!Ancora nn ho a disposizione i motori ,quindi ho creato via software(in C) una routine che mi permette di simulare l'andamento ad esempio lineare( ad esempio se una posiz è zero lo è anke l'altra,se è1 lo è anke l'altra ecc. e così facendo visualizzo una retta passante per l'origine) ed è forse per quel motivo ke il grafico nel front panel oscilla.Cmq anke quando testerò i motori dovrò essere preciso nell'acquisizione anke se ho valori encoder molto vicini! ---------------------------------------- ================================================================================ elaborazione immagini ================================================================================ AUTORE: 2166 DATA :13/06/2007 - 16:35:47 ---------------------------------------- Salve a tutti,sono uno studente di ingegneria elettronica e vorrei sapere come iniziare a lavorare con labview per elaborare immagini. mi serve il toolbox IMAQ vision? grazie a tutti \":lol:\" ---------------------------------------- AUTORE: 1156 DATA :13/06/2007 - 16:56:11 ---------------------------------------- Ti serve il driver NI-IMAQ (ci sono varie versioni) che puoi trovare nel sito della national alla voce downloads! ---------------------------------------- AUTORE: 2166 DATA :13/06/2007 - 18:38:28 ---------------------------------------- grazie,sto scaricando Vision Acquisition Software dove ci sono NI-IMAQ. Se posso vorrei chiedere un'altra cosa : si può lavorare senza installare il cd dei driver? (appesantisce abbastanza il mio computer). ciao e grazie ancora \":wink:\" ---------------------------------------- AUTORE: 384 DATA :14/06/2007 - 07:19:40 ---------------------------------------- No! ---------------------------------------- ================================================================================ File control - Selezione multipla dei files ================================================================================ AUTORE: 1168 DATA :14/06/2007 - 08:59:54 ---------------------------------------- Buongiorno! Domanda banale, ma alla quale non ho trovato soluzione.... vorrei selezionare un numero di files di testo da una cartella. E' possibile usare un solo path control? Come? grazie a tutti, P! ---------------------------------------- AUTORE: 384 DATA :15/06/2007 - 08:40:21 ---------------------------------------- Confesso che non ho capito il tuo dubbio sul path control. Io uso sempre un solo path control. Poi per accedere ai file devo, ovviamente, ricostruire l'intero path nuovamente e lo facio con un "for". Guarda l'immagine allegata, se magari ti chiarisce il concetto. ---------------------------------------- AUTORE: 384 DATA :15/06/2007 - 08:44:34 ---------------------------------------- Un nota: cosí com'e in quell'immagine, non c'è la possibilità di selezionare i files prima che il tutto finisca, perchè non ho inserito nulla di interfaccia. L'idea è solo illustrare il concetto, non fare un'interfaccia. A quello ci devi pensare tu! \":wink:\" ---------------------------------------- AUTORE: 1168 DATA :15/06/2007 - 09:59:17 ---------------------------------------- Ciao! E' vero non sono stato chiaro... \":-)\" Non riesco a replicare il tuo VI perchè non riesco ad abilitare l'indicizzazione dul tunnel della listbox... non capisco perchè. Comunque ho capito il funzionamento ed è quello che mi serviva. Grazie! ---------------------------------------- AUTORE: 384 DATA :15/06/2007 - 11:01:51 ---------------------------------------- Devi andare sul [b:2lds79fq][u:2lds79fq]front panel[/u:2lds79fq][/b:2lds79fq] (il perchè, lo sano solo i ragazzi di NI!), click destro, Selection Mode, poi vedi subito cosa impostare. ---------------------------------------- ================================================================================ Listato in C di una VI ================================================================================ AUTORE: 2168 DATA :14/06/2007 - 09:41:10 ---------------------------------------- Vorrei sapere se qualcuno sa dirmi se è possibile e come si fa a creare un listato di una VI visto che ho un programma in LabView estremamente complesso. Grazie ---------------------------------------- AUTORE: 1165 DATA :14/06/2007 - 13:25:00 ---------------------------------------- Il linguaggio sorgente del Labview, detto G, è un grafico bidimensionale (grafo orientato) che si sviluppa intrinsecamente nelle due dimensioni di un piano e quindi con molta difficoltà è proiettabile nella unica dimensione di un listato monodimensionale. Con questo comunque non escludo che, vista la non infinita estensione del diagramma a blocchi, sia teoricamente possibile fare una cosa del genere, anzi fondamentalmente sarà proprio così che probabilmente funzionerà il compilatore del G, presumo. Ma per quanto ne so io non esiste niente del genere a disposizione degli sviluppatori in Labview. E aggiungo che non se ne sente neanche la mancanza. Il codice G è molto più potente e più leggibile di qualsiasi altro sistema sintattico-linguistico, proprio per la sua intrinseca bidimensionalità, a cui si aggiunge la potenzialità espressiva della grafica, dando connotazioni morfosintattiche che le asciutte normali sintassi testuali in genere non hanno. Quindi se il tuo programma è molto complesso e l'hai scritto tu (cosa che non credo) pentiti di non averlo scomposto in sottoprogrammi più agevoli. Se invece non l'hai scritto tu, allora, oltre a mandare un caldo pensierino allo sviluppatore precedente, hai secondo me una ben chiara strada: metterti a riodinarlo graficamente senza cambiare nessuna delle connessioni e solo cercando di dare una parvenza più chiara al groviglio di fili e di nodi che hai davanti. Sottolineo che questa dello scrivere grafi ordinati e puliti è una BUONISSIMA abitudine, peraltro poco frequentata anche dai migliori sviluppatori presenti nel panorama dei programmatori in Labview. Anzi, al proposito, se qualcuno volesse andare oltre in questo tema, potremmo aprire un topic apposito e cominciare a discutere come rendere più leggibili i grafi. Ti consiglio di perdere un po' di tempo a mettere a posto tutti i nodi e i fili in modo da cominciare a rendere più leggibile il tuo programma, sperando che chi l'ha scritto non abbia usato troppi property node e variabili. Ciao, enr. ---------------------------------------- AUTORE: 482 DATA :14/06/2007 - 14:28:57 ---------------------------------------- A me piacerebbe loscopo per il quale vorresti un listato. Se è per leggibilità concordo con quanto detto da ENR, se è invece per inserire il vi all'interno di un programma in C basta creare uan DLL e richiamarla dal programma C. ---------------------------------------- ================================================================================ crash labview con Sql Server dll ================================================================================ AUTORE: 2169 DATA :14/06/2007 - 11:53:48 ---------------------------------------- Ciao, sto implementando una vi che utilizza un database per fare delle analisi su dati lì contenuti. Tutto sembra funzionare ma richiamando più volte una stored procedure la vi va in crash indicando la causa nella dll. Preciso che il db è interrogato via odbc e che alla fine di ogni chiamata faccio la free sullo statement utilizzato per richiamare la stored procedure. Qualcuno può aiutarmi? Grazie, Zema ---------------------------------------- AUTORE: 645 DATA :14/06/2007 - 14:00:58 ---------------------------------------- Quale errore ricevi? (ve in crash direttamente o prima ti segnala qualcosa, magari un errore senza documentazione...?). Se esegui la Store Procedure più volte con un programma di interrogazione database ottieni i risultati voluti o qualche errore particolare? ---------------------------------------- ================================================================================ Miglio modo di accedere a grandi file di testo ================================================================================ AUTORE: 1168 DATA :15/06/2007 - 10:16:38 ---------------------------------------- Salve a tutti. Devo accedere a una decina di file di testo conteneti dati di dimensioni non proprio piccole (10-20 Mb), ma purtroppo non posso usare file binari... Le operazioni da fare sono quelle di staccare la prima riga di intestazione da ogni file(da usare poi in un secondo momento)e poi appendere tutti i file uno sotto l'altro. Con le righe di intestazione di elabora la nuova linea di intestazione che andrà riattaccata in cima al file finale. Siccome caricare tutte le volte i file non è veloce, volevo sapere se c'e' qualche "trucco" invece di usare il semplice "read from text file" per leggere la riga di intestazione, ma soprattutto come poter gestire tutta la parte restante in un solo blocco. Grazie in anticipo! ---------------------------------------- AUTORE: 927 DATA :19/06/2007 - 08:39:25 ---------------------------------------- Forse guadagni qualcosa se la prima riga la leggi come testo (usando Read lines e Count=1), ricavi il punto di inizio dei dati, e il resto da lì in poi lo leggi come se fosse binario. Cmq anche se trovi dei trucchi resta sempre un'operazione pesante; sei proprio sicuro che creare questo megafile sia utile? ---------------------------------------- AUTORE: 1168 DATA :19/06/2007 - 09:10:45 ---------------------------------------- Ciao! Sono assolutamente convinto che sia sbagliatissimo lavorare con files di testo così grandi, ma purtroppo non posso fare altrimenti. I files vengono generati da software di simulazione che non possono essere cambiati... Grazie mille! ---------------------------------------- AUTORE: 645 DATA :19/06/2007 - 11:00:05 ---------------------------------------- I file hanno un formato proprietario o particolare o sono file .txt? Lavorare con file grossi credo proprio comporti tempi lunghi... non riesci a creare un qualcosa (programmino in C... a me è capitato di usarne uno fatto da una ditta...) che inserisce i dai dei file in un database e poi lavori sul database che è più velce? ---------------------------------------- AUTORE: 1168 DATA :19/06/2007 - 11:12:16 ---------------------------------------- A parte che mi sono accorto solo ora di aver scritto "miglio modo" al posto di "miglior modo"... Purtroppo i file testo sono un formato di esportazione di dati proprietari... e la struttura del file .pincopallo (quello proprietario) non è dichiarata... quindi il testo me lo deo gestire... sto procedendo nei ritagli di tempo! ---------------------------------------- ================================================================================ acquisizione da più canali ================================================================================ AUTORE: 1926 DATA :15/06/2007 - 18:22:18 ---------------------------------------- ciao a tutti devo acquisire dati con un DaqPad. Ho già creato l'interfaccia per acquisire da un canale e ora devo inserire un altro canale con la relativa visualizzazione in tempo reale. Qualcuno può aiutarmi? Grazie ---------------------------------------- ================================================================================ Query per trovare le porte seriali del PC ================================================================================ AUTORE: 2172 DATA :18/06/2007 - 10:48:35 ---------------------------------------- Ciao, sto facendo un programma in cui devo interrogare le porte seriali del pc, e grazie alla VI Visa Find Resource riesco a trovare tutte le porte seriali del pc. Il punto è che su tutti i pc trova sempre una porta in più, ovvero trova tutte le porte COM che si trovano in [b:3ovi08rq]Pannello di controllo>>Sistema>>Hardware>>Gestione Periferiche [/b:3ovi08rq]ed in più un'altra porta, che in genere varia in base al pc. Perchè trova tale porta che in realtà non c'è e a cosa è legata la sua presenza? Grazie in anticipo! ---------------------------------------- AUTORE: 645 DATA :18/06/2007 - 12:30:32 ---------------------------------------- Come porta in più intendi una COM o la LPT1? ---------------------------------------- AUTORE: 2172 DATA :18/06/2007 - 13:26:49 ---------------------------------------- trova una porta COM in più ---------------------------------------- AUTORE: 2172 DATA :18/06/2007 - 19:07:01 ---------------------------------------- Su ogni pc trova una porta Com in più, che in realtà non è presente nel sistema. A cosa è dovuta? ---------------------------------------- AUTORE: 645 DATA :18/06/2007 - 19:21:12 ---------------------------------------- Puoi fare così per avere le idee più chiare (forse...): nel blocco "Find VISA" setta il morsetto "Search Mode" al valore 3 ("Include all Aliases"). A questo punto dovresti leggere i nomi delle porte così come vengono assegnati dal pc e forse riesci a capire qual è questa porta in più. ---------------------------------------- AUTORE: 2172 DATA :20/06/2007 - 10:46:11 ---------------------------------------- Il search mode può essere settato a 0, 1, 2 oppure 4 ma non a 3 Ciao ---------------------------------------- ================================================================================ sinusoide sonora ================================================================================ AUTORE: 1441 DATA :18/06/2007 - 10:52:03 ---------------------------------------- Ho la necessità di realizzare un programmino che mostri a video una sinuosoide a varie frequenze per esempio da 0,05 hz ad 1 - 2 hz e questa sinusode deve rappresentare il target da inseguire per un soggetto che esercita forza tramite una cella di carico. Fin qui tutto bene vorrei però che alla sinusoide mostrata a video, della quale mostro solo un brevissimo intervallo su di un grafico (ottenendo quindi una linea retta che si muove in alto e in basso) fosse associato anche un suono. Una specie di beep continuo che aumenti la sua intensità quando aumenta l'ampiezza e che diminuisca quando diminuisce. In alternativa e anche meglio sarebbe che invece dell'intensità aumenta proprio la frequenza del suono salendo e scendendo l'ampiezza della sinusoide. Mi sono spiegato bene? Io per ora saon riuscito a fare qualcosa di simile ma il beep non è continuo e non è come voglio io non rappresenta insomma il target a video. Grazie ciao ciao Paolo ---------------------------------------- AUTORE: 645 DATA :18/06/2007 - 12:32:30 ---------------------------------------- Per produrre il suono puoi inviare la sinusoide al blocco BEEP ... adesso non ho sottomano LabView ma ricordo che c'è un blocco di questo tipo che accetta in ingresso la frequenza del beep da produrre. Prova a cercare nella paletta dei suoni... ---------------------------------------- AUTORE: 1441 DATA :18/06/2007 - 13:47:46 ---------------------------------------- il problema è proprio che la sinusoide ha varie frequenze ma all'interno della stessa prova la frequenza è la medesima. Io vorrei che il segnale sonoro ricalcasse in qualche modo l'ampiezza della sinusoide, il suo valore in ampiezza istantaneo...in un certo senso dovrei far diventare l'ampiezza istantanea della sinusoide la frequenza del segnale acustico... riesco a spiegarmi? ciao grazie ---------------------------------------- AUTORE: 645 DATA :18/06/2007 - 15:09:27 ---------------------------------------- Non capisco una cosa: la tua sinusoide varia in ampiezza e in frequenza o solo in uno dei due termini? ---------------------------------------- AUTORE: 1441 DATA :18/06/2007 - 16:36:14 ---------------------------------------- dunque: l'ampiezza e la frequenza della sinusoide sono costanti infatti sono specificate nell impostazioni del programma. La frequenza serve per impostare la velocità con cui il target si muove mentre l'ampiezza corrisponde al valore in kg che il soggetto deve esprimere. Quindi sono costanti. Quello che intendevo dire è questo: Immagina di vedere a video un target (un bersaglio rappresentato da due linee parallele con uno spazio al centro) che da un valore "zero" sale verso il massimo (ad esempio 50 kg). Il target va da zero al massimo e viceversa in modo sinusoidale...siccome io rappresento a video una piccola parte della sinusoide vedo il target appunto come due linee parallele orizzontali che salgono e scendono. Vorrei che mentre salgono e scendono fossero accompagnate da un suono che varia di intensità col variare dei valori rappresentati...mi riesco a spiegare? ciao grazie paolo ---------------------------------------- AUTORE: 1165 DATA :18/06/2007 - 19:16:34 ---------------------------------------- secondo me era valida la prima risposta che ti aveva data magic .. LV ti dà a disposizione un blocco per generare frequenze acustiche alla frequenza da te desiderata .. quindi se ho capito bene quello che chiedi basta che tu invii come ingresso di frequenza proprio il valore istantaneo (istante per istante) del tuo segnale (cioè la sua ampiezza istantanea) .. ovviamente opportunamente scalato di un fattore che ti devi calcolare per riportare il tuo range di ampiezze nel range delle frequenze udibili (20Hz-20.000Hz in teoria, in pratica molto meno) .. il tutto dentro un ciclo while naturalmente .. ciao, enr ---------------------------------------- AUTORE: 1441 DATA :18/06/2007 - 23:43:03 ---------------------------------------- esatto è proprio quello che ho fatto e pare funzioni abbastanza bene. Un ultima domanda....per estrarre l'ampiezza del segnale "punto a punto" io ho fatto entrare il segnale della sinusoide nell'ingresso chiamato offset del blocco "simulate signal" dove come segnale ho fatto simulare un segnale DC che mando poi al blocco beep. Scommetto che per estrarre l'ampiezza del segnale esiste un metodo migliore vero? Grazie in anticipo \":P\" ---------------------------------------- AUTORE: 645 DATA :19/06/2007 - 10:52:16 ---------------------------------------- Se fai "unbundle by name" sulla waveform dovresti trovare la voce "y" che contiene i dati... mi pare... ---------------------------------------- AUTORE: 1441 DATA :19/06/2007 - 12:51:32 ---------------------------------------- purtroppo come dici tu nn funziona...guarda cosa dice nell'immagine che allego...help! \":cry:\" \":cry:\" \":cry:\" \":cry:\" ---------------------------------------- AUTORE: 645 DATA :19/06/2007 - 18:20:49 ---------------------------------------- Ho sbagliato... usa il bloco "Get Waveform Components" nella sezione "Waveform --> Analog Waveform" e sfrutta il valore Y che contiene il valore del segnale. ---------------------------------------- AUTORE: 1441 DATA :19/06/2007 - 22:57:58 ---------------------------------------- perfetto grazie!!! PS: ero riuscito ad ottenere la stessa cosa con simulate signal generando una DC con la sinusoide in ingresso..probabilmente però era più pesante... ciao grazie ---------------------------------------- ================================================================================ Leggere con LV7 semplici *.VI salvati con LV8 ================================================================================ AUTORE: 2174 DATA :18/06/2007 - 19:01:44 ---------------------------------------- Scusate, sono decisamente nuovo di Labview e non so come muovermi. Ho iniziato con LabView7 a sviluppare primi programmi di acquisizione ed analisi dati molto semplici (acqusizione immagini da CCD). Poi sono passato al Labview8 (unicamente perchè è dotato di "Navigator Window"; non avevo altri motivi). \":oops:\" Tristemente, ho realizzato che LabView 7.1 NON TENTA NEMMENO DI APRIRE i file *.vi prodotti con LabView 8.0 (suona qualcosa del tipo "mi hai voluto lasciare per una più giovane? Arrangiati!) \":twisted:\" . E nelle opzioni di salvataggio di LabView8 non c'è un "save as labview 7" o simili. Almeno, io non l'ho trovato. La cosa mi sembra francamente demenziale \":o\". Esiste una soluzione? Grazie a chi mi risponderà... M2 ---------------------------------------- AUTORE: 645 DATA :18/06/2007 - 19:15:22 ---------------------------------------- Le versioni "nuove" di LabView aprono i VI fatti con le "vecchie" ma non è vero il viceversa. A meno che tu abbia installato sul pc la versione vecchia e poi su questa tu faccia l'aggiornamento. Allora tra le opzioni trovi anche la voce "Save for previous version" che ti permette di scegliere la versione di LabView nella quale salvare il VI (hai a disposizione le versioni che sul pc sono state installate e poi aggiornate...). ---------------------------------------- AUTORE: 2174 DATA :18/06/2007 - 22:52:20 ---------------------------------------- Grazie. Ma qual è l'aggiornamento che mi serve? Esiste? Io ho cercato, ma ho solo trovato dei Maintenance Pack dal 7.1 al 7.1.1. e Dall'8.0 al'8.0.1. Possibile che tra 7 e 8 non si possa fare niente?? Dai non ci credo! Con quello che costerà alle aziende in termini di licenze e balle varie, ci andranno coi piedi di piombo con la retrocompatibilità....\":roll:\" Qualcuno mi sa dire qual è la patch giusta? \":?:\" ---------------------------------------- AUTORE: 1165 DATA :19/06/2007 - 08:12:54 ---------------------------------------- dunque .. salvo smentite da qualcuno più informato di me il discorso dovrebbe stare così: ogni versione di labview salva solo (e soltanto) in formato compatibile con la sua precedente versione (previous version) .. a questo punto occorre dire cosa venga inteso con la parola "versione" .. se ho ben capito viene considerata "versione" ogni modifica numerica che coinvolga i primi due numeri .. cioè la 7 (7.0) e la 7.1 sono due versioni differenti e consecutive, mentre la 7.1.1 è la stessa versione della 7.1 .. e fra due versioni distanti più di un passo non c'è convertibilità .. cioè se hai un VI creato con la 7.1 e lo vuoi usare con la 6 devi avere necessariamente istallata la versione 7.1 (con cui fai il backgrade alla 7) , la 7 (con cui fai il backgrade alla 6.1), e la 6.1 (con cui fai il backgrade alla 6) .. sono stato sufficientemente chiaro? .. spero anche di non aver scavolato .. ciao, enr. ---------------------------------------- AUTORE: 384 DATA :19/06/2007 - 09:57:02 ---------------------------------------- É esattamente cosí. Può sembra strano e demenziale (sono il primo a pensarlo!) ma è, chiara e ovviamente, una decisione consapevole di N.I. - cedo che a nessuno venga il dubbio che lo facciano per difficoltá tecniche - volta, a mio parere, a forzare all'abbandono delle vecchie versioni.   ---------------------------------------- AUTORE: 645 DATA :19/06/2007 - 10:55:36 ---------------------------------------- C'è da ricordare che alcuni blocchi delle nuove versioni non sono compatibili con le vecchie versioni... ecco perchè serve una procedura particolare per adattare i nuovi VI alle versioni precedenti di LabView. ---------------------------------------- ================================================================================ temporizzazione di un salvataggio di dati ================================================================================ AUTORE: 2176 DATA :19/06/2007 - 17:07:13 ---------------------------------------- Buon giorno a tutti voi. Vi chiedo consiglio per un problema che sto affrontando questi giorni. Sto usando labview da poco tempo e quindi premetto che devo ancora prendere dimestichezza con la logica che lo caratterizza (seppur immediata e intuitiva). Veniamo al problema. Sto compiendo acquisizioni di un segnale di accelerazione che deve essere poi visualizzato come spettro e salvato in un file. Il problema sta nel fatto che , vista la durata della acquisizione (3 ore circa) non è produttivo ne darebbe valore aggiunto alle misure, salvare una miriade di dati. Vorrei inpostare il salvataggio per un tempo X seguito poi da un intervallo Y nel quale la scrittura di questo file non avviene il tutto scrivendo nel file finale a quale secondo dall'inizio della acquisizione mi trovo ( per esempio se i tempi di attesa e salvataggio sono uguali e pari ad un secondo alla terza scrittura del file saro al secondo 6 (3 di attesa e 3 di scrittura). Qualcuno di voi mi puo dare una mano. Grazie mille Nicola ---------------------------------------- AUTORE: 384 DATA :20/06/2007 - 01:23:39 ---------------------------------------- Una soluzione semplice ed immediata potrebbe essere usare un [b:y8x6r6p3][i:y8x6r6p3]timed loop[/i:y8x6r6p3][/b:y8x6r6p3] e salvare il "time stamp" insieme ai tuoi dati.   ---------------------------------------- ================================================================================ Dimensioni finestra eseguibile ================================================================================ AUTORE: 1547 DATA :20/06/2007 - 12:41:12 ---------------------------------------- Salve a tutti , qualcuno sa dirmi come fare a fissare le dimensioni del pannello frontale di un eseguibile ? Ho realizzato un VI e il pannello frontale in esecuzione ha determinate misure fissate da me ; quando però realizzo l'eseguibile le dimensioni cambiano e non trovo l'opzione da settare per recuperare le misure che mi interessano. Grazie. ---------------------------------------- AUTORE: 1547 DATA :20/06/2007 - 13:25:14 ---------------------------------------- Salve ho risolto il problema impostando prima la dimensione del pannello frontale dal VI e successivamente da windows run time position settando l'opzionu use current pannel size. Grazie . ---------------------------------------- ================================================================================ Generazione e Cattura di un Interrupt Software ================================================================================ AUTORE: 1313 DATA :20/06/2007 - 17:32:44 ---------------------------------------- Salve Ragazzi, Il mio problema è il seguente: Io ho un while che fa acquisizione da 2 daq usb, ora quando clicco sullo stop devo aspettare la fine dell'acquisizione per poter interrompere il sw, tale situazione succede anche se metto un evento collegato alla pressione dello stop. Quindi sapete dirmi se esiste un modo per generare un interrupt sw, come quando si preme sul tasto "Abort Execution"?? Grazie in anticipo, Cris ---------------------------------------- AUTORE: 1313 DATA :21/06/2007 - 12:55:33 ---------------------------------------- Salve Ragazzi, sono sempre io, dopo aver provato e riprovato, spulciato tutto il forum ho risolto. Per chi lo volesse sapere: 1) ho creato un while parallelo 2) ho crato un event structure collegata all'evento cambiamento del pulsante 3) come azione ho messo STOP dell menu' All Function -> Application Control. E qualsiasi cosa faccia il sw cattura l'evento e termina. Cris P.S. fate riferimento a questa discussione: viewtopic.php?p=3696 ---------------------------------------- ================================================================================ Stampa Chart ================================================================================ AUTORE: 1313 DATA :20/06/2007 - 17:34:54 ---------------------------------------- Salve Ragazzi, Riesco a stampare correttamente il front panel del mio vi grazie alla funzione print panel to printer. Ma non riesco a capire come far stampare solo ol mio grafico e come impostare il verso del foglio. Sapreste darmi qualche dritta??? Grazie in anticipo, Cris ---------------------------------------- AUTORE: 129 DATA :21/06/2007 - 23:17:48 ---------------------------------------- Devi usare il metodo GET IMAGE e le funzioni write jpeg file.vi (o bmp) che trovi nella palette sound e graph. Ti allego un esempio. ---------------------------------------- AUTORE: 1313 DATA :22/06/2007 - 10:55:10 ---------------------------------------- Grazie \":-)\" per la risosta, la funzione che mi hai postato va benissimo per catturare il grafico, però non riesco a capire come farla stampare a labview???, sinceramente non sono riuscito a combinare la funzione print panel e get image. Già questo aiuto è molto, poi se sapresti farmi capire come combianre le due stampe sarebbe il massimo. \";-)\" Ancora grazie, Cris ---------------------------------------- AUTORE: 1165 DATA :22/06/2007 - 14:28:37 ---------------------------------------- allora .. anche io avevo capito come nicola .. ma se invece il tuo problema è stampare "programmaticamente" (cioè in automatico durante l'esecuzione del tuo programma) allora in questo caso la soluzione migliore per te è crearti un subVI che contiene solo una copia del tuo grafico e gli passi in ingresso i valori che popolano i tuoi tracciati .. avendo però l'accortezza di settare il parametro "print at completion" come attributo del subVI .. questo attributo fa sì che alla fine della esecuzione del tuo subVI (la quale esecuzione consisterà ovviamente solo nel tracciare i tuoi grafici nel front panel del tuo subVI) venga stampata dalla stampante di default (con le impostazioni di default) il front panel stesso del tuo sunVI .. che tu ti sarai opportunamente configurato ed addobbato a piacimento .. prova e dicci se era questo che cercavi .. ciao, enr ---------------------------------------- ================================================================================ Cambia scala ascisse per i grafici ================================================================================ AUTORE: 2172 DATA :22/06/2007 - 00:00:45 ---------------------------------------- Ciao Dovrei realizzare un grafico che abbia la scala delle ascisse che nel mio caso è una scala temporale che si aggiorni automaticamente allo scorrere del tempo, ovvero che dopo 60 minuti visualizzi le ore, dopo 48 ore i giorni (ad esempio) etc... Qualche consiglio? Grazie anticipatamente ---------------------------------------- AUTORE: 1165 DATA :22/06/2007 - 09:06:43 ---------------------------------------- tramite il property node del grafico tu puoi facilmente gestire il valore iniziale e l'ampiezza dell'intervallo temporale visualizzato in ascissa .. quindi puoi computare questi valori programmaticamente e passarli al tuo property dinamicamente ---------------------------------------- AUTORE: 2172 DATA :22/06/2007 - 09:26:39 ---------------------------------------- che tipo di grafico e consigliato? un chart, un XY, etc? ---------------------------------------- ================================================================================ VISION ================================================================================ AUTORE: 2160 DATA :23/06/2007 - 18:51:50 ---------------------------------------- Sto lavorando con il vision assistant 8.0 nell'immagine ho una circonferenza devo calcolarmi la tangente in un punto come si puo. CIAO \":(\" ---------------------------------------- AUTORE: 1520 DATA :25/06/2007 - 14:42:53 ---------------------------------------- Vuol dire che devi calcolare la tangente (anzi le dato che sarebbero 2) alla circonferenza passante per un punto? Matteo ---------------------------------------- AUTORE: 2160 DATA :25/06/2007 - 19:12:15 ---------------------------------------- [quote="professormister":31y3wphz]Vuol dire che devi calcolare la tangente (anzi le dato che sarebbero 2) alla circonferenza passante per un punto? Matteo[/quote:31y3wphz] esatto!!!!! \":o\" \":o\" \":o\" ---------------------------------------- ================================================================================ acquisizione clock scheda-trigger esterno ================================================================================ AUTORE: 2181 DATA :25/06/2007 - 15:40:39 ---------------------------------------- Ciao a tutti sono un nuovo utente di labWindows-CVI. Sto utilizzando uno ChassisNI PXI-1031 con montato una scheda di acquisizione PXI 5122 a 100Ms/sec. Devo risolvere due problemi: 1. devo acquisire valori di tensione ad alta velocita' e associare ad ogni campionamento il tempo di acquisizione. il clock del PC arriva ad una precisione dei msec non sufficiente per il mio scopo. Esiste una funzione per richiamare il clock del PXI che dovrebbe essere decisamente piu' veloce? 2. Se ho due canali di acquisizione, entrambi soggetti ad un trigger esterno, come faccio a far partire contemporaneamente le due acquisizioni? Da quello che ho provato, sembra che prima termini l'acquisizione sul primo canale menzionato nel listato del programma e solo dopo fa partire l'acquisizione sul secondo canale. (La mia richiesta sarebbe anche piu' complessa in quanto dovrei far acquisire entrambi i canali quando anche solo uno dei due raggiunge una soglia di tensione. L'idea e' di creare un trigger che funzioni come un OR ma non so proprio come fare...) Vi ringrazio anticipatamente Sugar ---------------------------------------- AUTORE: 113 DATA :26/06/2007 - 16:39:57 ---------------------------------------- Ciao! Prima cosa: perchè vuoi correlare ad ogni campione il tempo in cui è stato acquisito? Se configuri la tua scheda per fare un'acquisizione continua dei due canali a 100Msamples/s i dati campionati saranno contenuti in un array, i campioni avranno una distanza temporale di esattamente 10ns. In pratica la scheda utilizza un oscillatore di precisione interno a 100MHz per sincronizzare i due convertitori analogico/digitale (uno per canale). Non utilizzo CVI, ma sono sicuro che con il software NI-Scope avrai già una moltitudine di esempi per fare appunto un'acquisizione contemporanea dei due canali di ingresso. Visto che poi vuoi che l'acquisizione inizi quando il valore di tensione su un canale superi una certa soglia, guarda gli esempi che utilizzano un trigger analogico esterno. Ho dato un'occhiata agli esempi di NI-Scope in C, guarda nella cartella C:\Programmi\IVI\Drivers\ iScope\Examples\c\ConfiguredAcquisition E' un esempio di acquisizione generica in cui puoi impostare il sampling rate e il tipo /livello/sorgente di trigger esterno. Alberto ---------------------------------------- AUTORE: 2181 DATA :27/06/2007 - 10:36:37 ---------------------------------------- Ciao Alberto Intanto grazie per la risposta... quando faccio un ciclo di acquisizioni mi interessa sapere il tempo iniziale di ognuna di queste (ovvero quando si raggiunge la soglia definita col trigger), non del singolo campionamento.... quest'ultimo infatti lo si puo' calcolare come mi hai suggerito anche tu cioe' partendo dal tempo di inizio e sommandoci l'inversi del rate. Devo quindi ottenere una descrizione temporale della forma d'onda (seguire punto punto la variazione di tensione) e sapere quando questa comincia ad essere acquisita. Per l'acquisizione contemporanea su due canali sono riuscito a trovare il modo di farla. \":D\" ---------------------------------------- AUTORE: 113 DATA :27/06/2007 - 14:41:41 ---------------------------------------- Dipende che precisione vuoi per il tempo di inizio acquisizione. Se ti basta il secondo allora puoi banalmente utilizzare la funzione che ti restituisce l'ora (hh:mm:ss) nel momento in cui il primo campione viene acquisito. Tieni inoltre presente che se configuri la funzione di Fetch per restituirti i dati in formato waveform (wfm), nella waveform hai il dato di t0 che corrisponde al valore di tempo relativo al primo campione acquisito; questo è possibile con Labview ma immagino anche con CVI. ---------------------------------------- ================================================================================ PLC e lab view 7 ================================================================================ AUTORE: 2183 DATA :26/06/2007 - 10:18:26 ---------------------------------------- ciaoa tutti... mi trovo di fronte a un problema per me molto complicato.... devo gestire un plc SIEMENS s7 200 cpu 222 con lab view 7... prima di tutto è posibile? il mio cavo è USB... protocollo PPI grazie a tutti ---------------------------------------- ================================================================================ acquisizione clock scheda-trigger esterno ================================================================================ AUTORE: 2181 DATA :26/06/2007 - 11:47:05 ---------------------------------------- Ciao a tutti sono un nuovo utente di labWindows-CVI. Sto utilizzando uno ChassisNI PXI-1031 con montato una scheda di acquisizione PXI 5122 a 100Ms/sec. Devo risolvere due problemi: 1. devo acquisire valori di tensione ad alta velocita' e associare ad ogni campionamento il tempo di acquisizione. il clock del PC arriva ad una precisione dei msec non sufficiente per il mio scopo. Esiste una funzione per richiamare il clock del PXI che dovrebbe essere decisamente piu' veloce? 2. Se ho due canali di acquisizione, entrambi soggetti ad un trigger esterno, come faccio a far partire contemporaneamente le due acquisizioni? Da quello che ho provato, sembra che prima termini l'acquisizione sul primo canale menzionato nel listato del programma e solo dopo fa partire l'acquisizione sul secondo canale. (La mia richiesta sarebbe anche piu' complessa in quanto dovrei far acquisire entrambi i canali quando anche solo uno dei due raggiunge una soglia di tensione. L'idea e' di creare un trigger che funzioni come un OR ma non so proprio come fare...) Vi ringrazio anticipatamente Sugar ---------------------------------------- ================================================================================ media valore ================================================================================ AUTORE: 1637 DATA :27/06/2007 - 09:38:25 ---------------------------------------- ciao a tutti, avrei bisogno di un paio di dritte, leggo un segnale analogico da un plc via opc, devo calcolare la media minuto con t=0.5 sec, in modo da avere una popolazione di dati abbastanza robusta, come ddevo definire questo clock, è corretto usare un ciclo while?? grazie a tutti tornado ---------------------------------------- AUTORE: 2168 DATA :27/09/2007 - 14:27:09 ---------------------------------------- [quote="tornado":3ceyawgz]ciao a tutti, avrei bisogno di un paio di dritte, leggo un segnale analogico da un plc via opc, devo calcolare la media minuto con t=0.5 sec, in modo da avere una popolazione di dati abbastanza robusta, come ddevo definire questo clock, è corretto usare un ciclo while?? grazie a tutti tornado[/quote:3ceyawgz] Secondo me va benissimo il cilco While con un temporizzatore da 0.5 sec (il wait until next ms multiple). Anzi, siccome devi fare una media minuto potresti addirittura farne 2 uno nell'altro, il primo interno gira ogni 0.5 sec e l'esterno ogni 60 sec e dà la media, anche se ci sono metodi migliori. ---------------------------------------- ================================================================================ Graficare la differenza di array! ================================================================================ AUTORE: 1156 DATA :27/06/2007 - 11:19:48 ---------------------------------------- Ciao,dovrei fare un grafico su cui voglio visualizzare nel tempo la differenza di due valori in ingresso.Questi ingressi sono degli array.Come devo fare? ---------------------------------------- AUTORE: 482 DATA :27/06/2007 - 14:23:10 ---------------------------------------- Prendi i due array, li colleghi ad un "-" e metti l'uscita su un grafico. ---------------------------------------- AUTORE: 1156 DATA :27/06/2007 - 19:17:18 ---------------------------------------- E per visualizzare gli andamenti di questi due array che variano volta per volta su uno stesso grafico ( cioè due grafici in uno) come devo fare? Grazie mille ---------------------------------------- AUTORE: 482 DATA :28/06/2007 - 07:15:55 ---------------------------------------- li uniscic on un Bundle facendolo diventare un cluster di tre elementi, due array e la differenza. \":wink:\" ---------------------------------------- ================================================================================ clear chart ================================================================================ AUTORE: 2184 DATA :27/06/2007 - 12:17:02 ---------------------------------------- Come posso far cancellare in automatico un waveform chart ad ogni riavvio delle prove? Normalmente il grafico non si cancella fino a quando non faccio clear chart. Grazie infinite. ---------------------------------------- AUTORE: 482 DATA :27/06/2007 - 14:25:40 ---------------------------------------- Crea un property node con la proprietà History Data e gli passi un array vuoto. \":wink:\" ---------------------------------------- ================================================================================ numero stringhe file exel da importare in labview ================================================================================ AUTORE: 2182 DATA :28/06/2007 - 14:17:01 ---------------------------------------- Ciao a tutti, ho un problema devo richiamare in labview un file exel precedentemente prodotto e poi lavorare sui suoi dati per colonne, ho però la necessità di sapere prima quante stringhe ho, tali stringhe riesco a visualizzarle ma non a contarle! come posso fare? grazie a tutti ciao \":roll:\" ---------------------------------------- AUTORE: 2182 DATA :28/06/2007 - 14:22:18 ---------------------------------------- esempio dello script prodotto! ---------------------------------------- AUTORE: 113 DATA :28/06/2007 - 15:29:10 ---------------------------------------- Ciao, dall'immagine del codice che hai allegato in realtà vai a leggere da uno spreadsheet file (da non confondere con un file .XLS); che altro non è che un file di testo in cui i dati sono separati, nel tuo caso, dal TAB e da CR per indicare la fine di ogni riga. Quando converti la stringa spreadsheet in array [2D] è sufficiente che utilizzi la funzione ArraySize per avere il numero di righe e di colonne. Visto che poi il while loop fa solo la visualizzazione dei dati numerici, non hai altri controlli oltre lo Stop, puoi utilizzare un for-loop invece del while, colleghi l'array[2D] sul bordo sinistro e all'interno ad ogni iterazione hai già la tua riga di dati estratta, dalla prima all'ultima. Non serve collegare il loop count perchè il loop eseguirà tante iterazioni quante sono le righe. Spero di essere stato chiaro, Alberto ---------------------------------------- AUTORE: 2182 DATA :29/06/2007 - 02:11:49 ---------------------------------------- Grazie mille! ora funziona correttamente!! \":lol:\" per caso sapreste dirmi dove trovare del materiale per rappresentare sull'asse x il tempo e la data per ogni punto e sull'asse y i miei dati dal momento che devo rappresentare dei dati in real time? Grazie mille! ciao bicevola ---------------------------------------- AUTORE: 645 DATA :29/06/2007 - 14:59:08 ---------------------------------------- Premetto che non ho guardato gli allegati alle risposte precedenti... Ma nel file non hai anche la colonna con l'orario di acquisizione del dato? Se sì puoi usare questa come etichetta dell'asse x. ---------------------------------------- ================================================================================ encoder incrementale ================================================================================ AUTORE: 2185 DATA :28/06/2007 - 16:52:27 ---------------------------------------- Salve a tutti, sono uno studente di ingegneria di brescia e come attività di stage devo realizzare un'interfaccia encoder utilizzando una fpga Crio9103.Qualcuno puo aiutarmi???? Accetto anche consigli su come realizzare al meglio l' interfaccia e i calcoli della posizione,velocià e accellerazione. Grazie in anticipo, Gianluca. ---------------------------------------- AUTORE: 2185 DATA :29/06/2007 - 09:40:40 ---------------------------------------- nessuno ha un' idea????? ---------------------------------------- AUTORE: 384 DATA :29/06/2007 - 10:05:34 ---------------------------------------- La FPGA non è ancora uno strumento di uso comune e forse per questo non c'è stata la "pioggia" di risposte che magari ti aspettavi. Comunque sia, il tuo compito non è particolarmente arduo. Se hai a disposizione un'altro tipo di scheda (per esempio, una PCI-602x) potresiti iniziare a fare il tuo compito su LabView normalmente, collegando l'ancoder a due ingressi digitali. Sai come funzione l'encoder, quindi sviluperai il tuo algoritmo per produrre i dati che ti servono. Devi solo tener conto che in questo modo, non potrai far girare l'encoder "troppo velocemente", altrimenti perderai dei conteggi. Non è un male perchè stai solo provando. L'algoritmo che svilupperai in LV sará gia abbastanza vicino a quanto poi porterai su FPGA. Dovrai solo cambiare alcune cose sul'modo di uscita dati, la gestione del loop e sulle temprizzazioni. Comunque, cerca su NI con [url=http://search.ni.com/nisearch/nisearchservlet?nistype=default&ddown=3&cluster=true&filter=%2Btaxonomy:%22Developer+Zone%22&q=encoder+fpga:am4eqca1]"encoder fpga"[/url:am4eqca1]. Trovi molte informazioni, in particolare un [url=http://zone.ni.com/devzone/cda/tut/p/id/3921:am4eqca1]tutorial dedicato[/url:am4eqca1] e [url=http://zone.ni.com/devzone/cda/epd/p/id/1580:am4eqca1]un'esempio[/url:am4eqca1]. Non dimenticare che le l'help in linea, i manuali, le ricerche sul sito NI, il [url=http://forums.ni.com/:am4eqca1]forum di Developer Zone[/url:am4eqca1] e il forum [url=http://forums.lavag.org/:am4eqca1]LAVA[/url:am4eqca1] sono fonti di tantissime informazioni. ---------------------------------------- ================================================================================ Creazione Numeri casuali ================================================================================ AUTORE: 1876 DATA :29/06/2007 - 08:08:16 ---------------------------------------- Ciao a tutti, potreste dirmi per favore come posso creare sequenze di numeri interi casuali all'interno di un intervallo? Ho trovato solo il bloco che genera numeri casuali ma tra 0 e 1... Grazie, ciao. ---------------------------------------- AUTORE: 838 DATA :29/06/2007 - 10:34:59 ---------------------------------------- .... e quindi li moltiplichi ad esempio per 1000 e converti in intero avrai numeri casuali da 0 a 999 :lol da 0 a 1 si intende non booleano, ma duble, quindi 0,xxxxxxxxxxxxx ciao ---------------------------------------- AUTORE: 1876 DATA :29/06/2007 - 10:39:20 ---------------------------------------- Dopo tanta fatica ho trovato la soluzione, grazie mille comunque. Ciao! ---------------------------------------- AUTORE: 645 DATA :29/06/2007 - 15:01:46 ---------------------------------------- Il messaggio di Minzuk ti dava un'idea della risposta... partendo dal blocchetto di generazione casuale tra 0 e 1 puoi moltiplicare (ed eventualmente sommare per creare una specie di offset iniziale) per arrivare a lavorare all'interno di un intervallo. \":D\" ---------------------------------------- ================================================================================ Array di led ================================================================================ AUTORE: 516 DATA :01/07/2007 - 22:17:20 ---------------------------------------- Ciao a tutti Vi scrivo nuovamente per un vostro aiuto , ho creato un'array di led , ora dovrei far si che quando passo sull'array con il mouse se il led si deve spegnere e vice versa so che devo usare l'event structure ma come faccio a sapere in base alle coordinate se primo li c'è il led secondo se è acceso spegnerlo o accenderlo ? Grazie Mille a tutti Sergio ---------------------------------------- AUTORE: 838 DATA :02/07/2007 - 07:17:04 ---------------------------------------- perchè solo con il passaggio? non puoi usarlo cliccandoci sopra che fai mooolto prima? fai un array di led control e il gioco è fatto ---------------------------------------- AUTORE: 516 DATA :02/07/2007 - 12:28:50 ---------------------------------------- Ciao Il problema è che questo array di led dovrà essere di 128x64 (mi serve per creare disegni da mandare poi a un display grafico) e se tutte le volte devo cliccare per accendere o spegnere un led il lavoro incomicia a essere lungo . Scusa cosa intendi per fai un array di led control e il gioco è fatto ?? Grazie Mille per la tua risposta Sergio ---------------------------------------- AUTORE: 838 DATA :02/07/2007 - 13:20:34 ---------------------------------------- allora devi stare attento a quando passi sopra con il mouse!! rischi di accendere led anche senza volerlo :lol i led control lo dicevo proprio perchè così eri costretto a cliccarci sopra per accenderlo, e non dovevi fare nulla allora usa la event structure, con il mouse up ci dovrebbe essere il sistema di risalire a quale elemento dell'array stai sopra, ora non ricordo altrimenti ti crei una griglia, calcoli quanti pixel ci sono da un led e l'altro, e calcoli il tutto dalle coordinate ---------------------------------------- AUTORE: 516 DATA :02/07/2007 - 16:48:17 ---------------------------------------- Ciao Ho dato un'occhiata a quello che mi hai detto , credo però che l'unica soluzione sia cliccare sul led , anche perchè se mi creassi una griglia e mi calcolassi le coordinate non saprei comunque quale funzione usare per accendere il led \":-(\"(((( Grazie Mille Sergio ---------------------------------------- AUTORE: 645 DATA :02/07/2007 - 17:39:07 ---------------------------------------- Non usare un array di Led ma tanti controlli booleani. Quando passi sopra ad uno dei controlli fai scattare l'evento MouseEnter e invertendo il valore (trovi la negazione all'interno della paletta booleana) accendi o spegni il led. Suggerimento: ingrandisci i led per comodità! ---------------------------------------- AUTORE: 516 DATA :02/07/2007 - 18:02:52 ---------------------------------------- Ciao Ho provato ad aprire il tuo programma ma è stato creato con 8.20 e io ho ancora la 7.1 riesci a convertirlo per la mia versione ? Inoltre devo mettere qualcosa come 8192 led 128x64 credi che come gestione sia fattibile ? Grazie Mille ---------------------------------------- AUTORE: 645 DATA :02/07/2007 - 20:20:05 ---------------------------------------- Se i Led sono così tanti ti conviene usare una matrice: ad ogni posizione della matrice associ un led e ne gestici il valore. Devi accendere e spegnere un quadro luminoso? Ti allego l'immagine del VI... ---------------------------------------- AUTORE: 516 DATA :02/07/2007 - 20:26:57 ---------------------------------------- Ciao Voglio creare disegni da memorizzare poi all'interno di un eeprom che verranno visualizzati su un display grafico di piccole dimensioni cosi posso aggiungere un display supplementare al mio lego nxt . Per quanto riguarda la matrice come faccio a crearla ? usando l'array ? se si come scrivevo prima non saprei come poter accendere poi i led in base alle coordinate o meglio non so che controllo usare per accendere il led spero di essermi spiegato Ciao Sergio ---------------------------------------- AUTORE: 482 DATA :03/07/2007 - 09:15:44 ---------------------------------------- ma...se vuo iaccenderli solo passandoci con il mouse, quando entri sulla matrice, da qualsiasi lato, ti porteresti la scia di led accesi che non vuoi... ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 09:22:51 ---------------------------------------- Scusate se mi intrometto. Avete considerato i metodi illustratti in questi esempi: Draw Graph.vi Draw Graph with Events.vi Probabilmete, limitando adeguatamente la risoluzione del graph oppure ricampionando il disegno si ottiene quanto voluto senza il gigantesco sforzo di gestire una matrice 128x64 a singoli eventi.   ---------------------------------------- AUTORE: 516 DATA :03/07/2007 - 10:54:28 ---------------------------------------- Ciao Si per quanta riguada il mouse aggiungo anche la funzione che se clicco il pulsante dx allora si attivano i led . Non male la tua idea del Draw Graph.vi Draw Graph with Events.vi ora guardo e valuto il tutto . Se avete altre idee o suggerimenti tutto ben accetto Ciao e grazie Sergio ---------------------------------------- ================================================================================ Conflitti Software ================================================================================ AUTORE: 2168 DATA :02/07/2007 - 07:52:55 ---------------------------------------- Ciao a tutti, ho un enorme problema con un mega programma in LabView che funziona benissimo quando gira su un PC su cui il Sistema operativo è windows 2000 NT4 ma su un altro PC con XP si blocca dopo poche ore di esecuzione. Inizialmente pensavo fosse colpa della versione 8.2 e così sono tornato alla 7.1 ma la cosa non cambia. Poichè cambiando il PC anche la scheda GPIB è cambiata non ho la certezza che il problema sia di tipo Hardware o Software. Qualcuno ha già avuto problemi di questo tipo o sa darmi qualche dritta senza che io debba fare tutte le prove per verificare cosa c'è che realmente non va? Avevo sentito anche qualche episodio di altre applicazioni che venivano inibite dopo l'installazione degli aggiornamenti di XP. Grazie ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 09:59:04 ---------------------------------------- Il problema che lamenti sembra tipico di una "fuga di memoria". Prova a cercare sul sito NI, sulla Developer Zone e su LAVA con "memory leak", magari anche associando a "windows xp". Io ho provato con "[url=http://vivisimo.com/search?tb=vivisimocom&query=labview+memory+leak+xp&x=0&y=0:lqkjfyj1]labview memory leak xp[/url:lqkjfyj1]" su [url=http://vivisimo.com:lqkjfyj1]Vivisimo[/url:lqkjfyj1] e ho trovato un discreto numero di trovate - diverse e secondo me più attinenti rispetto alla stessa ricerca su google (e oltretutto mi piace molto la classificazione che Vivissimo fa e google NON fa!). ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 10:03:22 ---------------------------------------- [quote="gyc":tb6evhyu]...e ho trovato un discreto numero di trovate...[/quote:tb6evhyu] [i:tb6evhyu]Torvato trovate...[/i:tb6evhyu] Si, buona note! Scusate l'italiano!...   ---------------------------------------- AUTORE: 2168 DATA :03/07/2007 - 13:08:22 ---------------------------------------- Grazie, ho trovato molte cose utili ma purtroppo nulla di risolutivo. Ho scoperto intanto che la versione di MAX sul PC che funziona non è quella del LV 7.1 (cioè MAX 3.1) ma è la versione 2.2 di LV 6.1, quindi ho provato a installare la stessa versione. Se fosse questo il problema si tratterebbe solo di un modo diverso di gestire la GPIB tra i due sistemi. ---------------------------------------- AUTORE: 645 DATA :03/07/2007 - 14:13:33 ---------------------------------------- Potresti guardare se per caso la gestione dei file (sempre che ci sia) o dei dati nel VI comporta l'esaurimento delle risorse... non sono un espertone ma mi pare che WinXP gestisca il file di paging della memoria in modo particolare... puoi controllare con il Task Manager, guardando le prestazioni e la CPU occupata mentre il VI è in esecuzione. ---------------------------------------- AUTORE: 2168 DATA :03/07/2007 - 14:31:21 ---------------------------------------- avevo già guardato ed era al 50%, niente di esagerato. Ora ho lanciato il programma e domani vedrò se non si è ancora bloccato. Se funziona ti faccio sapere. Grazie ancora e ciao ---------------------------------------- ================================================================================ problemi di timing per generazione di onda quadra ================================================================================ AUTORE: 2187 DATA :02/07/2007 - 11:19:03 ---------------------------------------- Salve a tutti! Ho iniziato da poco a programmare in LV. Ho un problema: devo generare un'onda quadra di frequenza e duty cycle impostati da me su un canale di output analogico. Ho una traditional DAQ e Labview 7.0. Ho provato ad usare il vi "Square Waveform" dentro un ciclo while, con un'attesa uguale a un numero intero di periodi fra un ciclo e l'altro. Funziona abbastanza bene (perde solo un colpo a volte). Il problema e' pero' che di tanto in tanto il programma da' un messaggio di errore (non ricordo esattamente, ma tipo "A/O Buffer Error"). Se clicco comunque OK riprende a funzionare normalmente. Si tratta di un problema di sincronizzazione fra step del ciclo e stato dell'onda? Come posso fare per correggere l'errore? grazie mille ely_xx ---------------------------------------- AUTORE: 2187 DATA :02/07/2007 - 11:27:07 ---------------------------------------- Lo specifico messaggio di errore e' il seguente: Error -10843 occurred at AO Wait:AO Buffer Write Possible reason(s): NI-DAQ LV: Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device throughput; the onboard device memory reported an underflow error. This error may be returned erroneously when an overrun error has occurred. (mi ricordavo male) ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 09:48:12 ---------------------------------------- Dalla stessa descrizione dell'errore, sembra che il tuo loop di generazione del segnale non sia abbastanza veloce da produrre dati alla velocità a cui vengono consumati. Eventualmente, potrebbe succedere il contrario, cioè, stai producendo troppi dati, ma l'errore che compare è questo, anche se non esatto. Adesso non ho i mezzi per controllare, ma credo ci siano le funzioni per poter controllare durante l'esecuzione se/quando è il momento di scrivere altri dati. Se si tratta di un'onda quadra, perchè non usi i counter della scheda?   ---------------------------------------- AUTORE: 2187 DATA :03/07/2007 - 16:52:09 ---------------------------------------- grazie mille gyc di aver risposto! La frequenza della mia onda quadra non e' molto alta (da 1 a 50 Hz), quindi forse il problema e' che vengono prodotti troppi dati. Scusa... ho un ulteriore problema... \":oops:\" cosa sono i counter della scheda.... \":oops:\" e come faccio a usarli? e. ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 20:07:08 ---------------------------------------- Le schede multifunction (non so quale tu abbia) hanno a bordo dei "counter". Questi sono dei circuiti che possono essere usati sia per contare fronti di salita/discesa di un'onda quadra, quindi anche misurare delle frequenze, sia per generare impulsi, treni d'impulsi oppure onde quadre in modo continuo, senza che per quello sia necessario l'ulteriore intervento del software. Negli esempi di LabView cerca con "generation" e inizia a guardare i VI di esempio che vi trovi, in particolare Gen Dig Pulse Train-Continuous.vi Quest'altro esempio (Function Generator.vi) invece è un generatore via software, simile a ciò che stai provando a fare.   ---------------------------------------- AUTORE: 2187 DATA :04/07/2007 - 08:29:26 ---------------------------------------- OK, grazie. Ora mi guardo gli esempi. ... non so pero' se si possono applicare al mio caso: l'onda quadra che devo generare e' un segnale analogico, di ampiezza che scelgo da pannello.... e. ---------------------------------------- AUTORE: 2187 DATA :04/07/2007 - 09:10:42 ---------------------------------------- ciao gyc, ho guardato l'esempio "function generation.vi". Devo ancora studiarmi bene lo schema.... comunque ho provato a far girare l'esempio sulla mia scheda e mi da' lo stesso messaggio di errore del mio programma (Error -10843 occurred at AO Buffer Write... etc..). Fra l'altro,entrambi i programmi (il mio e l'esempio) quando compare il messaggio di errore non si chiudono (il che li renderebbe comunque poco pericolosi), ma inchiodano la tensione sulla scheda al valore che aveva nel momento in cui e' partito l'errore. Se non c'e' nessuno a cliccare materialmente uno dei due pulsanti della finestra di errore, quel valore di tensione rimane per un tempo indefinito..... Come potrei fare, al lmite, se non riesco a toglielo, per azzerare la tensione in caso di errore? \":oops:\" ---------------------------------------- AUTORE: 384 DATA :04/07/2007 - 10:36:59 ---------------------------------------- É strano che anche l'esempio abbia lo stesso comportamento. Solitamente gli esempi di LV sono funzionanti e non danno problemi. Guarda bene le caratteristiche della tua scheda e anche se essa è nell'elenco di quelle previste per far funzionare il VI esempio (nella finestra degli esempi, in basso a destra c'è il riquadro con questo elenco). Per quanto riguarda l'errore, devi intercettare tu esplicitamente il cluster di errore (direttamente con un 'case' oppure con il blocco "Simple Error Hadler.vi" che si trova nella palette "Time & Dialog) e prendere azioni specifiche nel caso in cui l'errore ci sia. Visto che l'errore sembra avere anche impatto sulla scheda, fra quelle azioni forse ti conviene chiudere tutto con "AO CLear.vi"; se questo non dovesse azzerare l'output analogico, allora devi reinizializzarne un task di output nuovo e farne uscire 0 volt, chiudere tutto ancora e fermare il VI.   ---------------------------------------- AUTORE: 2187 DATA :12/07/2007 - 15:21:18 ---------------------------------------- ciao gyc, ho provato a fare come mi hai suggerito e funziona. Ho pero' due domande molto importanti per la mia gestione effettiva dello strumento: 1) come funziona la bufferizzazione e la scrittura sull'output analogico della scheda (soprattutto se il write e' dentro un while)? Prima scrive su buffer per tutta la durata di un singolo ciclo del loop e poi scrive sull'output della scheda o scrive sulla scheda in tempo reale? In altre parole: l'errore (che mi sembra legato alle dimensioni del buffer) puo' comparire in ogni momento del ciclo del loop o solo in determinati momenti (all'inizio o alla fine di ogni ciclo)? E nel caso che intervenga, mettiamo, a meta' ciclo, il vi di gestione dell'errore (quello della nuvoletta "Error!?"), interviene solo dopo la fine del ciclo (dato che si trova fuori di esso) o interviene subito dopo che l'errore si e' manifestato? 2) Dove posso trovare delle info su come funziona il buffer della scheda (in particolare, su come si impostano le sue dimensioni)? grazie ancora e. ---------------------------------------- AUTORE: 384 DATA :12/07/2007 - 17:38:17 ---------------------------------------- 1) Non conosco gli "intrinsics" del codice delle librerie NI, ma per quello che so di gestione hardware, il blocco che scrive in realtà riempie un buffer in memoria e termina subito. Il buffer poi viene trasferito alla scheda tramite DMA, ad una velocitrà che dipende strettamente della velocità di output della scheda stessa. L'errore si produce subito, se il blocco prova a sovrascrivere ancora presenti nel buffer. In quale momento del loop si esegue il blocco dipende dal flusso dei dati. Se hai messo il blocco di gestione dell'errore fuori dal loop, allora esso si eseguirà soltanto dopo che il loop ha terminato, ovviamente. Però non c'è nulla che vieti di metterlo all'interno del loop. Devi solo tener presente che, dato che è un blocco di interazione con l'utente, l'esecuzione del loop si ferma finchè l'utente non clicca su uno dei pulsanti. 2) Io non ho mai dovuto toccare quel tipo di impostazioni, ma non escludo che ce ne possa essere la necessità di farlo. Nella pallette del DAQmx esiste un property node che forse ti permette di controllare quel parametro (devi darci un'occhio!). Comunque, per aver questi dettagli ti suggerisco di iniziare a cercare sul sito NI, nella [url=http://zone.ni.com/devzone/cda/main:37y2by7k]Developer Zone[/url:37y2by7k] (c'è un [url=http://forums.ni.com/:37y2by7k]forum[/url:37y2by7k] anche lì), poi magari anche sul forum [url=http://forums.lavausergroup.org/:37y2by7k]LAVA[/url:37y2by7k]. E in ultimo chiama direttamente l'assistenza NI e pone loro il problema.   ---------------------------------------- ================================================================================ array 2d e mouse down con event structure ================================================================================ AUTORE: 838 DATA :03/07/2007 - 10:37:02 ---------------------------------------- ho un array di 2 dimensioni vorrei ottenere i due indici (col, row) della cella dove ho cliccato con il mouse sto cercando ovunque ma non trovo niente come si può fare? grazie \":D\" ---------------------------------------- AUTORE: 645 DATA :03/07/2007 - 10:58:06 ---------------------------------------- Usi un indicatore di Array? Se passi l'array in una MultiColumn Listbox dovrebbe esserci un property node contenente il valore della cella selezionata e degli indici di riga e colonna corrispondenti. ---------------------------------------- AUTORE: 838 DATA :03/07/2007 - 13:10:16 ---------------------------------------- con solo l'array non si può fare, ma con una table o listbox si grazie ciao ---------------------------------------- AUTORE: 482 DATA :03/07/2007 - 13:17:24 ---------------------------------------- Questa potrebbe essere una soluzione. Nota che all'inizio viene posizionato l'array alla posizione 0/0 per avere i calcoli corretti, in alternativa guardi la posizione e la sottrai al valore trovato \";)\" ---------------------------------------- AUTORE: 384 DATA :03/07/2007 - 13:28:52 ---------------------------------------- Credo proprio che non ci siano altre strade!   ---------------------------------------- AUTORE: 838 DATA :03/07/2007 - 14:23:39 ---------------------------------------- esatto, penso anche io ottima soluzione come alternativa alla table ---------------------------------------- ================================================================================ Problemi con Task ================================================================================ AUTORE: 2032 DATA :03/07/2007 - 11:56:22 ---------------------------------------- Ciao a tutti Mi appresto a fare un progetto abb laborioso con LabView e una 6025, con la gestione di vari AI, AO, CTR, DO, DI. Io vorrei poter mettere in un file "main" la lista dei miei global virtual channel che devo usare. Poi dentro una stacked sequence, avrò vari VI che riceveranno in ingresso i channel di cui hanno bisogno. Ma se voglio, per esempio, pilotare entrambi i contatori allo stesso tempo ed eventualmente con valori diversi? Dovrei creare una task che raccolga entrambi i channel (che non essendo physical channel, non so come fare)? Devo per forza crearla in MAX, o esiste un modo per far ciò anche in Labview? Considerando che i valori (i tempi high e low) voglio poterli cambiare quasi quando voglio nel block diagram ---------------------------------------- ================================================================================ Generazione eventi da variabile globale ================================================================================ AUTORE: 21 DATA :04/07/2007 - 07:57:24 ---------------------------------------- Ciao a tutti \":D\" Volevo sapere se qualche abile sviluppatore mi sa dire come generare e soprattutto intercettare eventi al variare del valore di una variabile globale .... ovviamente senza usare meccanismi di polling \"8)\" Grazie a chi vorra' darmi una mano \":P\" Bye bye Federico ---------------------------------------- AUTORE: 482 DATA :04/07/2007 - 11:00:04 ---------------------------------------- quindi intendi senza usare i dynamic event? Interessante come domand aperchè mi fa sorgere un dubbio teorico... Un evento non dovrebbe rappresentare, salvo quelli dinamici, un azione che in qualche modo viene compiuta da o sull'interfaccia (pannello frontale) DA questa teoria ne deduco che senza polling/evento dinamico, e' giusto che non esista un metodo per generare eventi sulle globali che non hanno possibilità di essere visualizzati come interfaccia utente. o sbaglio qualcosa? ---------------------------------------- AUTORE: 21 DATA :04/07/2007 - 12:25:09 ---------------------------------------- Ciao .. non sbagli niente \":lol:\" Diciamo che vorrei generare un evento ,anche usando i dynamic event, quando varia il valore di una variabile [b:28611g0h]globale[/b:28611g0h]. Supponi di avere 2 VI .. il primo scrive su una globale e il secondo la legge. Quando il valore letto varia devo eseguire una certa routine. Bene ... la cosa e' facilissima con un polling ma usando una gestione ad eventi come si potrebbe fare? \":?\" Grazie ancora ..... Federico ---------------------------------------- AUTORE: 482 DATA :04/07/2007 - 12:28:39 ---------------------------------------- beh semplicemente crei unciclo parallelo che fa il polling sul variare della globale. Quando quel controllo restituisce un TRUE (valore avriato) genera un evento dinamico che lo dai in pasto ad un event structure ---------------------------------------- AUTORE: 21 DATA :04/07/2007 - 21:21:37 ---------------------------------------- grazie \":lol:\" .... però dovrei usare un ciclo di polling \":oops:\" \":oops:\" Cioe' ... come per una interfaccia utente se l'utente preme un bottone si genera un evento e il ciclo while che contiene la event structure solo in quel momento esegue il codice in essa contenuto (impostando un timeout infinito) cosi' vorrei generare un evento quando varia una variabile globale. Con le variabili locali la cosa e' semplice perche basta usare la proprieta' di signalling del valore ma se si usano le globali non potendo creare property node e non avendo questa proprietà la cosa mi risulta difficile ..... \":cry:\" ... probabilmente la soluzione da te proposta è quella più semplice (e forse l'unica) ma se qualcuno mi sà dare una soluzione più elegante ne sarei molto felice \":cry:\" In ogni caso grazie per il suggerimento ....... Bye bye Federico ---------------------------------------- AUTORE: 384 DATA :05/07/2007 - 08:50:09 ---------------------------------------- Se sei disposto all'utilizzo degli eventi dinamici, registra un evento che segnala la variazione della globale. La funzione che scrive nella globale (tanto, qualcuno/qualcosa ci scriverà) fa il trigger di questo evento, cosí che il "ricevitore" si sveglia e prende le sue azioni. Poi, se vuoi andare sul fine, puoi far si che prima di scrivere verifichi che ci sia una effettiva variazione e solo in quel caso scrivi e scateni l'evento.   ---------------------------------------- AUTORE: 129 DATA :07/07/2007 - 07:40:59 ---------------------------------------- Anche io concordo con la registrazione di eventi, ma se vuoi puoi mettere la variabile globale come functional global con una event structure della tua variabile e contenere all'interno il codice che ti chiama la tua routine. Questo evita il polling perchè scatena la tua routine appena si verifica il cambiamento e soprattutto evita l'uso di una globale. ---------------------------------------- ================================================================================ CALCOLO CRC ================================================================================ AUTORE: 838 DATA :04/07/2007 - 08:33:19 ---------------------------------------- Chi è in grado di convertire sto caloclo in c in formato labview? io non ci capisco na mazza \":?:\" se qualcuno riesce a darmi una mano sarebbe fantastico ho provato a fare una dll in visual c ma mi da un sacco di errori dalla documentazione: #define INIT 0x0000 #define POLINOMIAL 0x1021 unsigned short calc_crc(unsigned short crc, unsigned short ch) { unsigned short i; ch<<=8; for (i=8;i>0;i--) { if ((ch^crc)&0x8000){ crc=(crc<<1)^POLINOMIAL; } else {crc<<=1; } ch<<=1; } return crc; } unsigned short GetCRC(unsigned char *p, unsigned short n) { unsigned char ch; unsigned short i; unsigned short crc=INIT; for(i=0;i<n;i++) { ch=*p++; crc=calc_crc(crc,(unsigned short)ch); } return crc; } int main(unsigned char TransCommand, unsigned short TextLeght) { unsigned short crc; crc=GetCRC(TransCommand, TextLeght); TransCommand[TextLeght]=(crc>>8) & 0xFF; TrandCommand[TextLeght+1]=crc & 0xFF; return 0; } /* esempio CODICFICA CRCC (X16+X12+X5+1) comando= F2 00 08 43 30 30 33 32 34 30 30 lunghezza= 11 crc= FA CE comando con crc = F2 00 08 43 30 30 33 32 34 30 30 FA CE */ ---------------------------------------- AUTORE: 838 DATA :04/07/2007 - 08:34:16 ---------------------------------------- dove c'è la faccina ci va 8 ) ---------------------------------------- AUTORE: 482 DATA :04/07/2007 - 10:53:00 ---------------------------------------- da qualche parte dovrei aver già postato il calcolo del CRC fatto in labview..prova a cercare ---------------------------------------- AUTORE: 1313 DATA :04/07/2007 - 13:48:04 ---------------------------------------- Ciao, non so che polinomio ti serve, cmq il CRC-16, ti allego questo VI modificato da quello della libreria NI sul modbus. Cris \":P\" ---------------------------------------- AUTORE: 838 DATA :04/07/2007 - 13:55:15 ---------------------------------------- grazie mille ora provo \":D\" ---------------------------------------- AUTORE: 384 DATA :05/07/2007 - 08:32:31 ---------------------------------------- A parte che non vedo il problema nel trasporre in LavBiew un algoritmo di cui si conosce il codice "C", puoi anche riportarlo quasi pari in un formula node che, come sai, usa una sintassi praticamente identica. Ci metti dentro direttamente il codice di GetCRC(). Questa fa soltanto una chiamata a calc_crc() che puoi comunque inserire "in line" senza tanti complimenti. Proprio perchè non ho tempo i questi giorni, altrimenti mi ci divertirei io...   ---------------------------------------- AUTORE: 838 DATA :05/07/2007 - 09:59:43 ---------------------------------------- mi son sempre chiesto se si possono inserire codici in c in labview è quindi il formula node da cercare? esempio please \":D\" ---------------------------------------- AUTORE: 384 DATA :05/07/2007 - 17:18:47 ---------------------------------------- [quote="minzuk":28gdyvdo]mi son sempre chiesto se si possono inserire codici in c in labview è quindi il formula node da cercare? esempio please \":D\"[/quote:28gdyvdo] No, per inserire del "vero" codice C in LabView si deve usare il "Code Interface Node" (CIN come viene anche chiamato), che si trova nella palette "Adavnced". Devi avere un compilatore di C installato nel PC, perchè LV lo chiama per compilare il sorgente trasformandolo in codice oggetto (.obj) che poi "carica" sul formula node e "linka" al codice ogetto generato dal diagramma al momento dell'esecuzione. Un'ulteriore cosa molto interessante è che, una volta compilato il sorgente e "caricato" l'oggetto sul CIN, lo puoi anche facilmente distribuire, perchè il compilatore non serve più e il destinatario non può "sbirciare" dato che il sorgente è in un file a parte - che ovviamente non distribuirai. Il formula node è una risorsa più semplice, pensata non per funzioni/subroutines ma per calcoli - che possono anche essere un pò complessi - e per i quali risulti più pratico implementarli in modo testuale, tra tante ragioni, magari perchè già li hai scritti in C e quindi con minor sforzo si possono "portare" su un formula node. L'help in linea del CIN non dice molto perchè rimanda al manuale "Using External Code in LabVIEW", che puoi anche scaricare da [url=http://digital.ni.com/manuals.nsf/websearch/8D930295FFBF9F7686256D2C00624728:28gdyvdo]qui[/url:28gdyvdo]. L'help in linea del "Formula Node" ha tutte le informazioni, ma è sopratutto negli esempi trovi cose interessanti. In particolare il "quick sort.vi" è l'implementazione dell'algoritmo Quicksort, formulato con una struttura simile al tuo algoritmo CRC - magari ti interessa per capire come si può usare. Buon divertimento.   ---------------------------------------- ================================================================================ Background Graph sfumato ================================================================================ AUTORE: 1033 DATA :04/07/2007 - 09:10:51 ---------------------------------------- Ciao, sono alle prese con un vezzo da GUI. In un graph vorrei avere il background che sfuma tra due tonalità di colore. Traminte le property riesco a settare un colore di background, ma non a fare l'effetto sfumato (quello che si trova nei "fill effect" di excel per intenderci). Avete qualche idea in proposito? Grazie. ---------------------------------------- AUTORE: 482 DATA :04/07/2007 - 10:53:51 ---------------------------------------- 2 idee: 1)fai il graph trasparente e sotto gli metti un immagine sfumata. 2) rinunciaci \":lol:\" \":lol:\" ---------------------------------------- AUTORE: 384 DATA :05/07/2007 - 08:20:36 ---------------------------------------- [quote="gepponline":5qi1vs50] 2) rinunciaci [/quote:5qi1vs50] Rinunciare soltanto quando tecnicamente è impossibile o per raggioni di costo/beneficio non conviene...   ---------------------------------------- AUTORE: 129 DATA :07/07/2007 - 07:12:32 ---------------------------------------- Forse [url=http://www.ilvg.it/forum/viewtopic.php?p=4131:3pnm8ca5]questo[/url:3pnm8ca5] fa al caso tuo. IN realtà se devi fare solo il background del grafico, vai in advanced/customize, quindi metti il grafico in edit, importi una picture che rappresenti il tuo sfondo sfumato, quindi lo copy at same size. Ora basta rendere lo sfondo del areaplot trasparente e il gioco è fatto. Ti allego un esempio ---------------------------------------- ================================================================================ comandi at in c++ ================================================================================ AUTORE: 2189 DATA :04/07/2007 - 18:36:54 ---------------------------------------- ragazzi mi serve un aiuto urgente, devo modificare un pezzo di codice scritto in c++ con Borland c++ 4, in pratica dato un comando legge un numero di telefono da una posizione di memoria, a questo punto tramite un comando AT deve comporre quel numero. Come faccio ad inviare un comando AT da c++??? Mi serve per la tesi ---------------------------------------- AUTORE: 384 DATA :05/07/2007 - 08:43:39 ---------------------------------------- A parte che sei fuori topic (OT) con questa domanda in questo forum, il metodo è sempre lo stesso in ogni os/linguaggio: devi concaternare alla stringa AT il numero di telefono da comporre ed il terminatore (CR). Poi devi aprire il port seriale (con i parametri giusti) ed scriverci questa stringa. Che io sappia, nella piattaforma Windows per la gestione dei port seriali serve una libreria che abbia le funzioni per comunicare con esse - NON è simile a unix/linux, in cui le primitive sono uguali per tutte le risorse (a parte il io_ctrl block, dal punto di vista del programmatore tutte le risorse sembrano dei file). Credo che Borland abbia già queste funzioni nel pacchetto. Almeno io li ritengo seri a tal punto, ma dovrai verificarlo. Sicuramente l'help in linea avrá delle informazioni a riguardo. E poi esistono dei forum e newsgroups dedicati al C++.   ---------------------------------------- ================================================================================ Eliminare Menu Tasto Dx del Mouse ================================================================================ AUTORE: 947 DATA :05/07/2007 - 11:10:39 ---------------------------------------- Cito quanto letto da questo forum: [quote="ale914":hersha3j]Attualmente il menù contestuale del tasto destro non è previsto in LV, nemmeno nell'ultimissima versione 7. Secondo voi qual'è il modo migliore per "aggirare l'ostacolo" di questa mancanza? Ciao, Ale.[/quote:hersha3j] Io per adesso mi accontenterei di [b:hersha3j]DISABILITARE [/b:hersha3j]il menù contestuale associato al tasto destro del mouse.... ma.... [b:hersha3j]COME SI FA ??[/b:hersha3j] Mi serve soprattutto per impedire di utilizzare il menù per modificare un le impostazioni di un grafico... cioè vorrei che l'utente NON abbia la possibilità di eliminare i dati con "Renitialize..." oppure modificare "Autoscale" e cose del genere... come posso fare? Se non fosse possibile disabilitare il menù sul tasto Dx.... avete altri suggerimenti?? GRAZIE!! ---------------------------------------- AUTORE: 838 DATA :05/07/2007 - 13:46:22 ---------------------------------------- io per un oggetto che non sia clikkabile ne con il sx ne con il dx (ad esempio un grafico) ci metto sopra una picture trasparente che blocca tutto quanto \":D\" ---------------------------------------- AUTORE: 947 DATA :05/07/2007 - 14:28:54 ---------------------------------------- [b:2a4ufwlb].... E S A T T O !!! ..... [/b:2a4ufwlb] è esattamente quello che ho fatto..... ma ... ...a parte il fatto che sia pocoprofesionale.... ... NON posso mettere una picture o label trasparente proprio su TUTTO!!! \":?\" ---------------------------------------- AUTORE: 43 DATA :05/07/2007 - 15:47:52 ---------------------------------------- Se si vuole disabilitare/abilitare il menu di LabVIEW sui controlli di un pannello si deve agire su: mouse dx on icon (Diagram or Front Panel) -> VI Properties... -> Windows Appearance -> Customize... -> Allow run-time shortcut menus Se si vuole gestire la pressione del tasto dx del mouse su un controllo, si deve usare , con un "event case", un evento di tipo "mouse ..." (verde!!!, non rosso !!! \":)\" ) in cui si analizza il valore di "Button", che varrà 1 per tasto sx e 2 per tasto rx del mouse. In "Mods", cluster costituito da una coppia di booleani, si verifica: 1) se è stato fatto un "Double Click" (anche x il tasto dx!!!) 2) con "Menu Key", se è stato premuto il tasto [Ctrl] della tastiera in contemporanea al click del mouse. bye ---------------------------------------- AUTORE: 113 DATA :05/07/2007 - 15:56:07 ---------------------------------------- Per disabilitare il menu di pop-up che si apre con il tasto destro: - click tasto destro sull'icona della vi e seleziona VI Properties - seleziona Window Appearance - Customize - deseleziona il flag Allow run-time shortcut menu Vale sia per una vi in esecuzione che per un eseguibile. Per disabilitare un oggetto del front panel consiglio invece di usare la proprietà Disabled settata a 1. Ciao, Alberto ---------------------------------------- AUTORE: 947 DATA :05/07/2007 - 16:32:04 ---------------------------------------- [b:mhxlzio1]Grazie a tutti..... [/b:mhxlzio1] .... in effetti la cosa era più semplice di quello che immaginavo... ... non riuscivo a trovare il flag giusto... ... ma cerca cerca ... alla fine lo avevo trovato... \":D\" ma non ho avuto neanche il tempo di scriverlo qui che ho trovato i vostri post!! Grazie!! Per il fatto di usare l'Event Case per gestire l'evento... ...Ottimo!! ... ma... anche gestendo l'evento appare comunque la fastidiosa tendina... penso .... nn ho provato in realtà. Invece se volessi far apparire un menù tutto mio.... come dovrei fare? \":D\" Difficile eh ..?!? .. ---------------------------------------- ================================================================================ Simulazione rumore ================================================================================ AUTORE: 1801 DATA :07/07/2007 - 10:17:55 ---------------------------------------- Voglio simulare il rumore che mi da uno strumento di misura(potenziometro).Come devo fare?Ho provato con noise uniform o costante,ma ho visto che ci sono vari tipi di distribuzione,quale simula meglio quello di un potenziometro o di un qualsiasi strumento di misura a voltaggio?Non ho mai fatto esami del genere,sapreste dirmi se c'è in rete materiale che parla di queste cose?Grazie. Grazie in anticipo ---------------------------------------- AUTORE: 2168 DATA :06/11/2007 - 11:44:59 ---------------------------------------- [quote="lumags":3ojp3wa7]Voglio simulare il rumore che mi da uno strumento di misura(potenziometro).Come devo fare?Ho provato con noise uniform o costante,ma ho visto che ci sono vari tipi di distribuzione,quale simula meglio quello di un potenziometro o di un qualsiasi strumento di misura a voltaggio?Non ho mai fatto esami del genere,sapreste dirmi se c'è in rete materiale che parla di queste cose?Grazie. Grazie in anticipo[/quote:3ojp3wa7] Io credo che se non hai particolari indizi per cui credi che il rumore sia distribuito prevalentemente in qualche frequenza specifica, la distribuzione uniforme è l'ideale perchè rappresenta il rumore bianco: ogni frequenza ha la stessa probabilità di verificarsi delle altre. Solitamente nelle misure si spera che il rumore sia uniforme, anche se in realtà non lo è (ad esempio ci sono spesso picchi nella frequenza di rete, 50 Hz) ma non credo che in una simulazione sia opportuno inserirla. ---------------------------------------- ================================================================================ Picture ================================================================================ AUTORE: 516 DATA :07/07/2007 - 21:41:09 ---------------------------------------- Ciao a tutti Dopo i suggerimenti che mi avete dato nel precedente post , vi scrivo per chiedervi ancora un 'auito . Voglio creami due controlli picture uno di dimesioni maggiori dell'altro es:400x500 uno l'altro 128x64 e fino a qui nessun problema come faccio però a far si che l'area del primo display corrisponda all'area del secondo ? mi spiego il primo servirebbe solo da zoom del primo mi serve solo per disegnare meglio . Nella speranza di essermi spiegato qualche suggerimento ? Come sempre Grazie Mille Sergio ---------------------------------------- AUTORE: 927 DATA :11/07/2007 - 09:48:34 ---------------------------------------- Per copiare un'immagine da un controllo picture all'altro basta collegare i terminali con un filo. Questo collegamento dev'essere ripetuto ogni volta che la prima immagine cambia, quindi mettilo ad esempio in un ciclo. Per zoomare ci vuole un property node con la proprietà ZoomFactor. Se gli passi ad esempio 2, il controllo picture raddoppia le dimensioni. Quindi devi dargli tu il rapporto, ma è sufficiente farlo una volta, poi zooma in automatico tutte le immagini che gli mandi. ---------------------------------------- AUTORE: 516 DATA :11/07/2007 - 11:08:25 ---------------------------------------- Ciao Grazie per l'info , ma come lo imposto il rapporto ? Sergio LV 7.1 ---------------------------------------- AUTORE: 927 DATA :11/07/2007 - 11:15:48 ---------------------------------------- In che senso come? Se ad es. l'immagine primaria è 600x300 e la secondaria è 200x100, il rapporto è 0,333... Oppure hai problemi a usare il property node? ---------------------------------------- AUTORE: 516 DATA :11/07/2007 - 14:02:52 ---------------------------------------- Ciao Si riguarda il propety node ,adesso non sono a casa ma non ricordo di aver visto questa opzione del rapporto puoi guidarmi ? Grazie Mille Sergio ---------------------------------------- AUTORE: 927 DATA :11/07/2007 - 14:35:27 ---------------------------------------- Nella 7.1, Zoom Factor è la penultima opzione del property node di un Picture. Di default è in lettura, quindi poi devi fare tasto dx -> Change to write ---------------------------------------- AUTORE: 516 DATA :11/07/2007 - 15:12:38 ---------------------------------------- GRAZIE MILLEEEEEEEE Ciao Sergio ---------------------------------------- ================================================================================ Problema MAX con digital channel ================================================================================ AUTORE: 963 DATA :09/07/2007 - 09:35:08 ---------------------------------------- Ciao a tutti. . . Dopo aver installato sul mio computer la versione 8.2 di LabView quando creo dei canali digitali (sia input che output) con il MAX LabView non me li vede all'interno del programma e , anche se inserisco il blocchetto READ TO DIGITAL LINE, mi da solamento un elenco dei soli canali analogici e non quelli digitali... Qualcuno sa spiegarmi il perchè? Allego un immagine dimostrativa Ciao, grazie Stefano ---------------------------------------- AUTORE: 384 DATA :10/07/2007 - 09:40:52 ---------------------------------------- É una caratteristica, non è un problema. Con il DAQ tradizionale, NI aveva fatto un ottimo lavoro su MAX nella definizione/gestione dei canali analogici, ma non altrettanto con queli digitali. Ed è cosí a tutt'oggi, forse perchè al momento di iniziare aveva già nell'orizzonte il DAQmx. É l'unica alternativa. In MAX, anzichè definire dei canali nel "Traditional DAQ" dovrai definire dei "task" sotto "DAQmx". Dal punto di vista del programmatore, concettualmente cambia poco. Negli "intrinsics" è tutta un'altra cosa, sopratutto nelle prestazioni. Se cerchi in questo forum con "daqmx" trovi molti riferimenti. Leggi anche [url=http://zone.ni.com/devzone/cda/tut/p/id/4342:25c5v281]questo[/url:25c5v281] sul'argomento.   ---------------------------------------- ================================================================================ Analisi tempo frequenza ================================================================================ AUTORE: 2182 DATA :10/07/2007 - 09:09:57 ---------------------------------------- Ciao a tutti, volevo chiedere alcune informazioni circa la trasformata tempo frequenza, ovvero in prelevo da un dispositivo sei segnali vorrei però poter osservare questi segnali nel tempo e in frequenza. Per quanto concerne l'osservazione in frequenza dovrei applicare la trasformata di fourier ma devo campionare prima, il punto è che dovrei lavorare in real time, come posso fare? grazie mille a tutti ciao ---------------------------------------- AUTORE: 645 DATA :10/07/2007 - 10:42:58 ---------------------------------------- Hai già letto qualcosa sull'argomento? Devi tenere conto del fatto che la frequenza di acquisizione deve essere superiore al doppio della massima frequenza che vuoi osservare nel segnale originale e per le eventuali altre frequenze dovrai pensare ad un filtro per evitare problemi di aliasing. Puoi cercare qualcosa su "Teorema del campionamento" e "Anti Aliasing". Una volta prese queste decisioni devi pensare all'hardware, in particolare alla scheda di acquisizione dati che deve supportare velocità di acquisizione tali da soddisfare il criterio del campionamento. E infine (credo che manchi qualcosa ma i passi fondamentali dovrebbero essere questi) devi programmare in Real-Time, cioè sfruttando tecniche di cicli paralleli o memorizzazioni e visualizzazioni separate per essere sicuro di realizzare applicazioni LabView che possano funzionare in Real-Time. ---------------------------------------- AUTORE: 384 DATA :11/07/2007 - 08:53:46 ---------------------------------------- A quanto Magic ha già elencato, aggiungo alcuni riferimenti sul campionamento su [url=http://en.wikipedia.org/wiki/Nyquist-Shannon_sampling_theorem:2w5z5rw4]questo link[/url:2w5z5rw4] e in [url=http://www.ilvg.it/forum/viewtopic.php?p=9036#9036:2w5z5rw4]questo[/url:2w5z5rw4] post. Se cerchi con "nyquist" su questo forum trovi diverse discussioni in cui se ne fa riferimento. Trovi anche altre informazione sul sito N.I. [url=http://zone.ni.com/devzone/cda/tut/p/id/3566:2w5z5rw4]qui[/url:2w5z5rw4], [url=http://zone.ni.com/devzone/cda/tut/p/id/2709:2w5z5rw4]qui[/url:2w5z5rw4] e [url=http://zone.ni.com/devzone/cda/tut/p/id/3016:2w5z5rw4]qui[/url:2w5z5rw4].   ---------------------------------------- AUTORE: 2182 DATA :12/07/2007 - 11:00:27 ---------------------------------------- Grazie mille! Vi faccio sapere se riesco a farne uscire qualcosa di buono! Grazie ancora! \":lol:\" ---------------------------------------- ================================================================================ problemi con VISA e TCPIP ================================================================================ AUTORE: 2195 DATA :10/07/2007 - 15:35:25 ---------------------------------------- salve a tutti, sono al primo approccio con labview e gradirei gentilmente un piccolo aiutino... devo utilizzarlo per aquisire segnali vari da un data acquisition unit della yokogawa precisamente l'mx100; ho installato i suoi driver per labview(che fanno uso dei driver visa), l' ho collegato al pc attraverso la porta ethernet ma quando vado per accedervi con le specifiche palette mi da un errore non identificato... sono riuscito a capire che il problema risiede nel riconoscimento dell'mx100 in quanto il messaggio di errore parte proprio dal primo blocco visa open a cui io passo il dato: TCPIP::192.168.1.101::34316::SOCKET all'ingresso "visa resource name"... mi chiedo dove sbaglio? ho pure utilizzato il comando "?*" ma non trova nulla... vi ringrazio anticipatamente e ciao! roberto ---------------------------------------- AUTORE: 645 DATA :10/07/2007 - 15:48:42 ---------------------------------------- http://digital.ni.com/public.nsf/allkb/ ... D700556D98 ... Può essere utile? È vero che lo strumento è diverso ma magari come inizio funziona... ---------------------------------------- AUTORE: 2195 DATA :10/07/2007 - 16:47:17 ---------------------------------------- ho seguito ciò che c'era sul link, ma non ha funzionato... l'errore è generato immadiatamente da VISA open. preciso che indirizzo IP e la porta sono dati dal costruttore, cioè sono quelli...ma c'è qualcosi che non è proprio quella... ---------------------------------------- AUTORE: 384 DATA :11/07/2007 - 08:36:11 ---------------------------------------- Sei sicuro dell'indirizzo IP, oltre al fatto che sia quello dato dal costruttore? Prova a verificarlo sullo strumento, se ha un panello di commandi, oppure con il software di configurazione che sicuramente ci sará - non è pensabile che questi parametri siano fissi di fabbrica!!!   ---------------------------------------- AUTORE: 2195 DATA :11/07/2007 - 09:24:34 ---------------------------------------- si sull'indirizzo ip e la porta sono sicuro, sono riportati nel manuale dello strumento e sono solo quelli. preciso che lo strumento con il software allegato funziona correttamente, il fatto è che io devo usarlo con labview.. ---------------------------------------- AUTORE: 384 DATA :11/07/2007 - 10:55:33 ---------------------------------------- Evidentemente c'è qualcosa che non va, ma così a distanza è dificile avanzare soluzioni... Hai provato a verificare il colegamento con il ping e il browser, come in quel documento della NI? Hai verificato bene nel manuale visa la sintassi del "resource name"? Verifica che non ci sia una qualche "incompatibilità" fra versioni VISA, quella installata sul tuo PC e quella per cui i driver dello strumento sono stati sviluppati. E, se fossi in te, io attiverei subito anche l'assistenza tecnica del fabbricante - esistono per quello!!!   ---------------------------------------- AUTORE: 2195 DATA :11/07/2007 - 12:05:03 ---------------------------------------- problema risolto!! vi era una qualche incopatibilità tra il driver visa e lo strumento... ho installato la NI-VISA 4.1 e per il momento sembra funzionare. grazie per la vostra collaborazione! ---------------------------------------- ================================================================================ Individuare un processo in task manager ================================================================================ AUTORE: 10 DATA :10/07/2007 - 16:03:23 ---------------------------------------- Ciao, stò utilizzando labview per compilare un report in excel tramite ActiveX e fin qui tutto bene. Desidero però che excel venga aperto alla generazione del primo report e che successivamente rimanga in memoria. Faccio questo chiudendo il workbook e non l'application e salvando in una variabile globale il reference di EXCEL. Adesso arriva il bello: Se chiudo a mano excel, qalla successiva apertura del workbook vado in errore perchè la mia reference è ancora in memoria, ma excel è chiuso. C'è qualcuno che ha un'idea su come trovare se un processo è attivo o meno (per esempio nel task manager)? Grazie mille ---------------------------------------- AUTORE: 10 DATA :10/07/2007 - 20:04:43 ---------------------------------------- lasciate stare ho scritto una cavolata. se avessi penzato un po' di più... ---------------------------------------- AUTORE: 384 DATA :11/07/2007 - 09:17:52 ---------------------------------------- Vanno benissimo gli aiuti, ma è sempre più bello trovare le soluzioni da solo, rh!...   ---------------------------------------- AUTORE: 4 DATA :11/07/2007 - 11:22:12 ---------------------------------------- ancora meglio è condividerle... quindi \";)\" ---------------------------------------- AUTORE: 10 DATA :11/07/2007 - 13:40:03 ---------------------------------------- \":oops:\" Nulla, è solo che quando si apre una nuova automazione (con il vi automation-open nella palette Coomunication/ActiveX), automaticamente viene cercata l'applicazione relativa alla reference passata al vi: se esiste già un'istanza dell'applicazione attiva viene utilizzata quella, altrimenti ne viene creata una nuova. E' anche possibile forzare la creazione di una nuova istanza dell'applicazione che si vuole aprire passando un boolean TRUE all'ingresso "open new istance" dello stesso VI. Spero di essere stato chiaro, in caso contrario, fatevi sentire... ---------------------------------------- ================================================================================ Stoppare un ciclo for loop ================================================================================ AUTORE: 516 DATA :10/07/2007 - 18:57:04 ---------------------------------------- Ciao a tutti Ho inserito un ciclo for loop all'interno di un case structure , ora vorrei far si che quando il case structure si trova nella condizione false si fermi il conteggio , ho notato però che si ferma ma dopo che ha concluso il suo ciclo , come posso far si che si stoppa immediatamente ? Grazie a tutti Sergio LV 7.1 ---------------------------------------- AUTORE: 487 DATA :11/07/2007 - 07:24:13 ---------------------------------------- Ciao Giants, non so cosa tu voglia realizzare però mettendo il ciclo while all'interno di un case ottieni come risultato l'esecuzione del ciclo quando si verifica il case (stato true, se non ho capito male) ed il ciclo continua a girare finchè non si verifica la sua condizione d'uscita. Mentre il programma esegue il while, tutto ciò che è all'esterno del while viene ignorato. Spero di essere stato abbastanza chiaro. Se mi dici quale risultato vuoi ottenere vedo di aiutarti a realizzarlo ---------------------------------------- AUTORE: 384 DATA :11/07/2007 - 09:14:34 ---------------------------------------- Sono d'accordo con [i:p98wxcta][b:p98wxcta]coma[/b:p98wxcta][/i:p98wxcta] che può essere una scelta non idonea e che senza ulteriori informazioni non si può valutare ulteriormente. Ciò che ti posso dire è che [b:p98wxcta][u:p98wxcta]NON[/u:p98wxcta][/b:p98wxcta] si può fermare un ciclo [b:p98wxcta]FOR[/b:p98wxcta] prima che esso abbia eseguito [u:p98wxcta]TUTTE[/u:p98wxcta] le iterazioni per cui è stato programmato sul suo ingresso "[b:p98wxcta]N[/b:p98wxcta]". Quando serve fermare un ciclo per multiple ragioni, bisogna ricorrere ad un [b:p98wxcta]WHILE[/b:p98wxcta] e combinare le condizioni di uscita necessarie - nel tuo caso una dovuta al raggiungimento di un certo numero di iterazioni e l'altra dovuta al raggiungimento di una particolare condizione che, evidentemente, si svilupperà nel corso delle iterazioni. Guarda l'esempio allegato.   ---------------------------------------- AUTORE: 516 DATA :11/07/2007 - 11:06:55 ---------------------------------------- Ciao GRAZIE MILLE ad entrambi . Sto realizzando un progetto dove disegno o scrivo all'interno di una picture poi da qui mi ricavo i codici Hex e li mando a un display grafico o li memorizzo all'interno di una eeprom , il ciclo for mi serve appunto per fare lo scroll delle righe e colonne per ottenere i codici . Grazie ancora adesso posso continuare con il progetto Ciao Sergio ---------------------------------------- ================================================================================ quali .vi sto usando ? ================================================================================ AUTORE: 2196 DATA :11/07/2007 - 11:07:32 ---------------------------------------- Ciao a tutti, sono nuovo \":)\" Una semplice domanda, come faccio a sapere quali file .vi utilizza il mio main (che non hoscritto io ovviamente) ? ---------------------------------------- AUTORE: 927 DATA :11/07/2007 - 14:38:49 ---------------------------------------- Nel menù in alto: Browse -> Show vi hierarchy. Poi c'è un pulsantino per mostrare anche i VI di sistema ---------------------------------------- AUTORE: 2196 DATA :11/07/2007 - 15:36:39 ---------------------------------------- [quote="Snamprogetti":2bhdueow]Nel menù in alto: Browse -> Show vi hierarchy. Poi c'è un pulsantino per mostrare anche i VI di sistema[/quote:2bhdueow] grazie, in che finestra deco cercare ? nel front pannel, nel block diagram o altrove ? ---------------------------------------- AUTORE: 927 DATA :11/07/2007 - 15:43:54 ---------------------------------------- Il menù fisso, quello con File, Tools, Help... c'è in tutte e due le finestre! ---------------------------------------- AUTORE: 2196 DATA :12/07/2007 - 07:48:38 ---------------------------------------- Trovato, grazie. ---------------------------------------- ================================================================================ Come costruire una matrice dinamica? ================================================================================ AUTORE: 2182 DATA :12/07/2007 - 10:44:56 ---------------------------------------- Ciao, è possibile realizzare una matrice dinamica con labview? Mi spiego meglio,devo acquisire dei dati provenienti da più file e introdurli in una matrice, ovvero prelevo una colonna da ciascun file, ma non so qual è la sua lunghezza,posso calcolarla ma questo non mi aiuta a definire le dimensioni della matrice perchè se il primo file ha 10 elementi e il secondo 20 in comunque ne vedo solo 10 per ciascuno se invece inverto l'ordine di importazione dei dati allora il tutto funziona correttamente perchè si setta su 20 la dimensione delle colonne della matrice. Posso sovradimensionare la matrice ma questa è una soluzione pericolosa, oltre ad avere problemi nella rappresentazione. Grazie mille \":roll:\" ---------------------------------------- AUTORE: 927 DATA :13/07/2007 - 08:06:33 ---------------------------------------- Anzichè un array 2D, potresti usare un array di array, così ogni "colonna" può avere lunghezza diversa. Però in labviù serve un trucco per poterlo fare: devi creare un array di cluster, dove ogni cluster contiene un sottoarray. ---------------------------------------- AUTORE: 2182 DATA :13/07/2007 - 09:34:48 ---------------------------------------- Grazie mille per la risposta ma non sono riuscita a collegare l'array di cluster al mio progetto avrei bisogno di avere in uscita dal caricamento dei dati un 2D-array su cui poi devo fare delle elaborazioni, come da te suggerito non riesco! Ho allegato un esempio che grosso modo riproduce il mio problema i piccola scala. Grazie mille \":wink:\" ---------------------------------------- AUTORE: 487 DATA :13/07/2007 - 11:10:14 ---------------------------------------- Ciao bicevola, ho modificato il tuo vi, spero di aver capito bene quello che volevi fare. ---------------------------------------- AUTORE: 482 DATA :13/07/2007 - 12:41:23 ---------------------------------------- l'ho fatto anche io. Fondamentalmente cambia solo l'estetica per dare l'idea delal stessa struttura dell'array 2d. ---------------------------------------- AUTORE: 2182 DATA :13/07/2007 - 18:29:48 ---------------------------------------- Purtroppo non posso vedere i programmi perchè ho labview 8! come faccio? ciao ---------------------------------------- AUTORE: 487 DATA :16/07/2007 - 07:09:41 ---------------------------------------- Ok, eccoti gli esempi convertiti per labview 8.0 ---------------------------------------- AUTORE: 2182 DATA :16/07/2007 - 09:20:39 ---------------------------------------- Grazie mille!ora funziona benissimo! \":lol:\" ---------------------------------------- ================================================================================ da labview a visual basic ================================================================================ AUTORE: 534 DATA :12/07/2007 - 13:17:36 ---------------------------------------- Ciao a tutti, Vorrei sapere se fosse possibile esportare o trasformare una semplice applicazione labview, in codice visual basic, cosi da non dover imparare l'odiato vb. Grazie per aver letto questo messaggio. Saluti Luigi ---------------------------------------- AUTORE: 482 DATA :12/07/2007 - 15:26:20 ---------------------------------------- Potresti creare una DLL (cosi' come si creano gli eseguibili) e poi richiamarla in VB...ma se fai cosi' , qualcosa di visual basic lo devi pur imparare. Se invece intendi proprio convertire un applicazione labview in un "listato" visual basic...non credo ci siano modi di farlo... \":?:\" ---------------------------------------- ================================================================================ Help sui property & invoke nodes ================================================================================ AUTORE: 424 DATA :13/07/2007 - 10:10:35 ---------------------------------------- Ciao a tutti mi chiamo Max! Vi spiego la mia situazione:dovrei realizzare una interfaccia utente fatta in questo modo: una matrice i cui elementi di devono illuminare a seconda del valore selzionato di riga e colonna. Pensavo (e sono ancora convinto \";-)\") di poter realizzare questa cosa con i property node ma finora sto avendo un po' di difficoltà qualcuno mi potrebbe dare qualche dritta? per cortesia? grazie a tutti quelli che risponderanno! PS:ho già visto la property blinking e pensavo di poter sfruttare le property selction size e selection start ma ci deve essere ancora qualcosa che mi sfugge \";-)\" Di nuovo grazie! ---------------------------------------- AUTORE: 482 DATA :13/07/2007 - 11:24:14 ---------------------------------------- 1) cosa intendi pe rilluminare? Blikare o cambiare colore? 2) come devi selezionare riga e colonna? cliccandoci sopra o con dei controlli numerici? o mettendoci il cursore dentro (nel caso di una string o un numerico)? ---------------------------------------- AUTORE: 424 DATA :13/07/2007 - 11:30:59 ---------------------------------------- Mi andrebbe bene anche colorare le caselle selzionate in modo diverso gli indici di riga x ora li seleziono tramite dei controlos numerici. Mi servirebbe anche sapere come far cambiare colore alla casella sulla base della posizione del cursore! Grazie de tutto Geppo! ---------------------------------------- AUTORE: 424 DATA :13/07/2007 - 13:58:36 ---------------------------------------- Correggetemi se sbaglio:mi pare di aver capito (sbattendoci la testa un po' \";-)\") che LabView non ti consente di trattare gli elementi di una matrice come fossero caselle indipendenti l'una dall'altra e quindi occorrerebbe andare a modificare le proprietà (blinking ad esempio) delle caselle ridefinendole come indicators singoli. Avrei un'altra question:per modificare il colore background della casella oppure il colore di blinking come si fa? Gratias a todos! ---------------------------------------- AUTORE: 384 DATA :15/07/2007 - 23:08:47 ---------------------------------------- Non puoi usare un 'indicatore di tipo array, devi usare una tabella. ---------------------------------------- AUTORE: 927 DATA :16/07/2007 - 08:15:04 ---------------------------------------- Confermo che non ti consente di trattare indipendentemente gli elementi di una matrice, devi usare le tabelle. Il colore di lampeggio è una proprietà generale di tutto Labviù, puoi modificarla solo globalmente nelle opzioni (oppure metterla nel .ini, per gli eseguibili). Ho paura che, se vuoi far lampeggiare contemporaneamente caselle diverse con colori diversi, devi cambiar colore a mano con un ciclo temporizzato... ---------------------------------------- AUTORE: 424 DATA :16/07/2007 - 08:30:24 ---------------------------------------- Grazie x le risposte ragazzi! Alla fine io mi sto orientando sull'utilizzo di un insieme di controls singoli anche se è un po' peso la gesione elemento x elemento ma mi viene + comodo xchè ho visto che la tabella usa le stringhe... Se vi pare troppo un delirio non mancate di farmelo sapere \";-)\" A presto raga! ---------------------------------------- AUTORE: 384 DATA :16/07/2007 - 09:33:14 ---------------------------------------- [quote="cobain":3pokdkf3]Grazie x le risposte ragazzi! Alla fine io mi sto orientando sull'utilizzo di un insieme di controls singoli anche se è un po' peso la gesione elemento x elemento ma mi viene + comodo xchè ho visto che la tabella usa le stringhe... Se vi pare troppo un delirio non mancate di farmelo sapere \";-)\" A presto raga![/quote:3pokdkf3] Sinceramente, a me pare di si. Anche computazionalmente ti "costa" meno convertire numeri in stringhe e riempire una tabella che non gestire un enorme blocco di indicatori indipendenti.   ---------------------------------------- AUTORE: 482 DATA :16/07/2007 - 09:39:20 ---------------------------------------- stavo vedendo che negli array esiste la proprietà ARRAYElement-> doev poi c'e' la sottoproprietà ad esempio Blinking. Quest apotrebbe essere uan mezza gestione dei singoli elementi di un array..anche se al momento la sto provando e non mi sembra che funzioni benissimo.... ---------------------------------------- AUTORE: 482 DATA :16/07/2007 - 09:42:43 ---------------------------------------- ho trovato anche questo esempio....interessante... anche se un po' macchinoso http://zone.ni.com/devzone/cda/epd/p/id/3902 ---------------------------------------- AUTORE: 424 DATA :16/07/2007 - 09:52:57 ---------------------------------------- Avevo provato anche io con la gestione dei singoli elementi dell'array ma on c'era stato verso! In seguito avevo anche provato le tabelle ma purtroppo anche l' la gestione dei singoli elementi non è consentita... E' un mondo difficile....ora provo a dare un'occhiata all'esempio! Grazie geppo! ---------------------------------------- AUTORE: 927 DATA :16/07/2007 - 09:53:16 ---------------------------------------- Ci ho già provato in abbondanza con ArrayElement ma non si può, infatti dice "The properties of the array apply to all elements in the array". Quell'esempio non l'ho aperto, ma dice che converte l'array in un cluster... grazie al c... \":lol:\" Meglio ancora convertirlo in tabella, allora ---------------------------------------- AUTORE: 482 DATA :16/07/2007 - 10:01:53 ---------------------------------------- Vi allego questo semplicissimo vi (l'ho salvato in 8.0) Come potete vedere cliccando sull'elemento, solo quell'elemento lampeggia. Il problema è che ci dev'essere qualche problema di grafica nella gestione della cosa. Ovviamente a livello di programmazione non è corretto pero' mi ha fatto specie il comportamento. Passando sopra con il mouse agli elementi, cambiano colore (non so con che criterio) e se ci clikko, lampeggiano. Se sostituisco i booleani con dei numerici, il problema di passaggio del mouse resta, ma se clikko per editare il controllo non succede niente,se invece clikko con la manina per selezionarlo, allora lampeggia. Che dite? e' un baco sa segnalare o c'e' qualcosa a livello di programmazione da fare per farlo funzionare correttamente? ---------------------------------------- AUTORE: 645 DATA :16/07/2007 - 12:30:10 ---------------------------------------- A patto di lavorare con tanti controlli booleani si può fare così: si allarga la label del bottone fino a coprire esattamente il bottone stesso. Poi si usa il property node "Label --> Color --> BG Color" con gli eventi "Mouse Enter" e "Mouse Leave" della struttura ad eventi. Il primo si scatena quando il mouse passa sopra il bottone entrando, il secondo quando il mouse abbandona il bottone (esce dalla superficie del bottone). I property node del colore della label si aspettano in ingresso un colore (la costante dei colori è nella paletta "Graphics --> Picture functions"). Macchinoso e scomodo se i bottoni sono tanti ma almeno funziona. Ah... se cancellate tutti i caratteri dalla label (così rimane solo una superficie da colorare) bisogna settare a true il property node "Label --> Visible" altrimenti di default LabView non visualizza la label perchè vuota. I bottoni vengono indicati nella struttura ad eventi con numeri progressivi preceduti da un cancelletto (questo perchè la label è vuota e quindi non compaiono nomi riferiti ai bottoni...). ---------------------------------------- AUTORE: 384 DATA :16/07/2007 - 13:34:22 ----------------------------------------   Se avete così tanta voglia di farvi del male, perchè non usare il cilicio? \":wink:\"   ---------------------------------------- AUTORE: 424 DATA :18/07/2007 - 09:41:41 ---------------------------------------- Ragazzi ie l'ho fatta!!! Ho usato l'esempio postato da geppo e funziona benone con un codice relativamente semplice. Ora però avevo un'altra curiosità: sono riuscito a fare blinkare gli elementi che voglio della matrice ma se volessi ad esempio colorare in maniera diversa gli elementi della casella (col blinking c'è rischio epilessia \";-)\")? NB:ora sto lavorando su un array converito in cluster. Qualcuno di voi lo ha per caso già fatto? Resto in attesa di dritte! Ciao raga! ---------------------------------------- AUTORE: 482 DATA :18/07/2007 - 12:45:26 ---------------------------------------- 1) se il tutto ti funziona, sarebbe buna cos condividerlo, vsto che a me dava un po' di problemi di grafica 2) anzichè usare la parola blinking usa le proprietà Color. ---------------------------------------- AUTORE: 424 DATA :18/07/2007 - 14:12:45 ---------------------------------------- Ecco qua carissimo! Se hai qualche problema non esitare a farmi sapere! Ciaooo! ---------------------------------------- AUTORE: 424 DATA :18/07/2007 - 14:27:43 ---------------------------------------- Caro Geppo ho trovato la proprietà color ma purtroppo (e qui smadonno \";-)\") non ti consente la trattazione separata dei singoli elementi del cluster... colora tutti gli elementi dell'array...mannaggissima \";-)\" mentra blinking ti consente di illuminare selettivamente l'elementio che ti pare sfruttando la proprietà control come si può vedere nel VI che ho postato. Attendo evoluzioni! ---------------------------------------- AUTORE: 113 DATA :18/07/2007 - 16:27:57 ---------------------------------------- Mi intrometto per confermare, come detto da Gyc, che la soluzione più ovvia sarebbe utilizzare una table. Allego un esempio. \":wink:\" ---------------------------------------- AUTORE: 482 DATA :19/07/2007 - 07:18:34 ---------------------------------------- eh si effettivamente cosi' è piu' semplice... pero' sta cosa di aggirare l'ostacolo...se ci fosse la proprietà color degli elementi sarebbe stato piu' corretto... vabbhè..allego la correzione per togliere il colore dalla casella precedente ---------------------------------------- AUTORE: 424 DATA :19/07/2007 - 12:54:31 ---------------------------------------- Ciao ragzzi alla fine sono passato anche io alla filosofia delle tabelle \";-)\" Però ho un piccolo casino sul mio VI: se avete seguito la discussione avrete capito che devo colorare 4 celle sulla base di indice riga-colonna e colorarne un'altra sulla base della posizione del cursore. Nel VI allegato troverete quello che ho fatto ma ho dei problemi:quando lo lancio si illumina sempre l'ultima casella in basso a sinistra e inoltre quando clicco col mouse sulle celle queste cambiano colore ma non del colore che impongo io, ma dello stesso con cui si colorano le 4 di cui ho accennato prima. Si riesce a vedere il rosso solo nell'esecuzione con gli highlights... Waity 4 your comments a presto! ---------------------------------------- AUTORE: 482 DATA :19/07/2007 - 13:39:10 ---------------------------------------- eheh..problema particolare... a parte che non mi piace com'e' sviluppato il vi, cmq... inverti i property node e hai risolto tutti i tuoi problemi. Metti Sopra l'active cell e sotto il background color. Detto questo: 1)che ci fa l'evento timeout la sotto? toglilo del tutto che è meglio 2) Perchè ogni volta vai a reimbiancare tutta la tabella? Non è meglio usare degli shift register e reimbiancare solo i qudretti che prima erano colorati? ---------------------------------------- AUTORE: 424 DATA :19/07/2007 - 13:59:38 ---------------------------------------- Grazie dei preziosi consigli geppone! 6 un pochino petizzo col codice eh? \";-)\" scherzo chiaramente! Grazie ancora a risentirci! ---------------------------------------- AUTORE: 482 DATA :19/07/2007 - 14:59:22 ---------------------------------------- che vuol dire petizzo? \":o\" ---------------------------------------- AUTORE: 384 DATA :19/07/2007 - 15:03:33 ---------------------------------------- [quote="gepponline":md8mxeia]che vuol dire petizzo? \":o\"[/quote:md8mxeia] Non voglio neanche immaginare!!! \":wink:\" Però ti garantisco che paga lungamente essere molto, molto, molto ma moooolto "petizzo" con il codice...   ---------------------------------------- AUTORE: 424 DATA :19/07/2007 - 15:04:03 ---------------------------------------- Ops scusa è una parola del mio dialetto \";-)\" Petizzo è uno un po' puntiglioso che vuole le cose fatte come vuole lui...ma beninteso in senso molto bonario! Have a nice day! ---------------------------------------- AUTORE: 384 DATA :19/07/2007 - 15:06:17 ---------------------------------------- ... qualunque cosa "petizzo" voglia dire!!! \":!:\" ---------------------------------------- AUTORE: 384 DATA :19/07/2007 - 15:13:25 ---------------------------------------- Direi che non si applica precisamente al ciò che geppo voleva dire e che io supporto in tutti i modi. Non è ciò che vogliamo noi, ma il modo in cui è giusto fare le cose - se le vogliamo fare bene - e sopratutto se vogliamo poterci raggionare e lavorare anche più tardi senza dover perdere tempo prezioso. E - ancora una volta - posso assicurare e dimostrare con la mia esperienza che vale la pena essere molto precisi e anche pignoli con il codice, qualunque codice...   ---------------------------------------- AUTORE: 424 DATA :19/07/2007 - 15:16:13 ---------------------------------------- Ma sì raga era solo per fare una battuta! Chiaro che Geppo ha ragione era solo x scherzare \";-)\" ---------------------------------------- AUTORE: 482 DATA :19/07/2007 - 15:27:27 ---------------------------------------- calmi calmi..non è che volevo si creasse un flame. E' ch emi sono stupito perchè avevo ipotizzato che volesse dire quello, solo che non c'e' cos piu' lontana da me che non la "petizzitudine" Anzi sono un disordinato cronico. Solo che mi sono accorto che, e in particolar modo quando il codice lo devi passare a qualcun'altro, determinati punti fermi aiutano nel valutare l'approcio alla programmazione. In particolare me ne sono ri-reso conto ultimamente perchè ho rimesso mano a dei software miei di 3 o 4 anni fa e mi sono accorto di aver lasciato una gran confusione in giro e io stesso ho fatto fatica a risalire a cosa facessero i singoli pezzi di codice. Per dirtene una, nel tuo esempio,l'ultimo che hai postato, c'era una tabella enorme, e una cifra di spazi vuoti in giro ne diagramma. Tagliare! minimizzare il tutto al minor spazio possibile, poi c'e' la magnifica combinazione ctrl+drag per crearsi spazio nei diagrammi. ---------------------------------------- AUTORE: 384 DATA :19/07/2007 - 16:04:26 ---------------------------------------- Anch'io non volevo assolutamente creare una guerra da [i:2vqauz9g]lanciafiamme[/i:2vqauz9g], bensi ribadire proprio quel concetto. \":)\" Il fare in fretta (quick and dirty) non paga, neanche nell'immediato (è grantito che lo stesso programmatore si troverà a dover fare "debugging" su una ragnatela in breve tempo). Invece è molto più proficuo essere anche pignoli nel rispettare le sintassi ed un proprio stile chiaro e pulito nella stesura di un codiche - che sia testuale o grafico, poco importa! Sapeste quante ore o perso per trovare dei problemi dovuti al "type cast" automatico del compilatore C della Microsoft, prima di convincermene di questo!!! \":oops:\" Eh, si... peccatucci di "iovinezza"... \":wink:\" Ma ho imparato!!! \":)\"   ---------------------------------------- AUTORE: 424 DATA :20/07/2007 - 07:53:56 ---------------------------------------- Ok incidente diplomatico chiuso \";-)\" Cmq vedrete che migliorerò anche io (sono ancora giovane e stupido \";-)\") sono il primo ad ammettere che sono un gran disordinato! A presto ragazzacci! ---------------------------------------- ================================================================================ controllo remoto ================================================================================ AUTORE: 1596 DATA :13/07/2007 - 11:15:10 ---------------------------------------- salve a tutti: il mio problema e' questo... premetto che ho gia' utilizzato LabVIEW6i per fare un po' di acquisizione dati...per il resto buio totale. Ho a disposizione: un Network Analyzer motore AIRPAX 9904 120 52407 con le seguenti caratteristiche: # tension 6V = 25 Upm/idle current 180 mA # length (without axle): 66.5 mm # ø engine part: 33 mm/ø transmission part: 38 mm # assembly flange 39.5 x 39.5 mm # axle (ø x l): 4 x 9mm Power Supply LabVIEW 8.2 Ethernet GPIB Controller Devo controllare il tutto da remoto: azionare il motore, fermarlo ad un certo punto, acquisire i dati dal DUT tramite il N.A., far ripartire il motore,ripetere le fasi precedenti,stoppare il motore, farlo ritornare nella posizione di partenza. Magari montare anche una telecamera per controllo visivo. Come metto insieme tutto cio'? I miei dubbi sono sui vari interfacciamenti motore-PC, telecamera-PC, mi serve qualke altro HW e come assemblo fisicamente il tutto? non so se sono stato chiaro... \":?\" grazie!!! ---------------------------------------- AUTORE: 482 DATA :13/07/2007 - 11:25:44 ---------------------------------------- A me non è chiaro cos aintendi con "da remoto". Con il motore collegato direttamenet al pc riesci a fare quello di cui hai parlato? ---------------------------------------- AUTORE: 1596 DATA :13/07/2007 - 12:23:46 ---------------------------------------- ...la strumentazione sta in un laboratorio e il PC in un ufficio... ...intendevo...controllare tutta la strumentazione (non so manco se si puo' fare con quello che ho) dall'ufficio! ---------------------------------------- ================================================================================ estrazione dati da stringa ================================================================================ AUTORE: 2197 DATA :13/07/2007 - 11:28:41 ---------------------------------------- Premesso che è da pochi giorni che sto usando il labview, vorrei risolvere questo mio problema. Leggo una serie di valori dalla seriale che me li riporta in una stringa. Mi serve estrarre i codici ascii di ogni carattere per l'elaborazioni. Ad esmpio in delphi potrei fare valore:=ord(dati[1])*256+ord(dati[2]); dove valore è la variabile con il risultato, ord mi estrae il codice ascii,dati[1] è la stringa che contiene i dati ed in particolare sto prendendo il primo carattere. Come posso risolvere lo stesso problema in labview. Spero di essermi spiegato. ---------------------------------------- AUTORE: 927 DATA :13/07/2007 - 14:42:28 ---------------------------------------- La funzione String to Byte Array trasforma la stringa in un array di numeri. Per estrarre i singoli byte dall'array usa Index Array ---------------------------------------- ================================================================================ Task attivi ================================================================================ AUTORE: 238 DATA :13/07/2007 - 17:35:24 ---------------------------------------- Capita che un operatore lanci una seconda volta un programma che e´gia in esecuzione. Come si riesce a ricavare la lista dei task attivi \":?:\" ---------------------------------------- AUTORE: 384 DATA :15/07/2007 - 23:05:12 ---------------------------------------- I prgrammi stand alone creati con application builder NON possono essere lamciati più di una volta dall'operatore. ---------------------------------------- AUTORE: 238 DATA :16/07/2007 - 07:48:59 ---------------------------------------- Non ci avevo fatto caso \":!:\" ---------------------------------------- ================================================================================ Memorizzare dati in un array ================================================================================ AUTORE: 516 DATA :16/07/2007 - 09:02:18 ---------------------------------------- Ciao a tutti Vi scrivo nuovamente x chiedervi un'info , devo memorizzare dati all'interno di un'array , il problema mio è questo devo questi dati aggiungerli in coda a quelli già memorizzati prima nell'array es: dalla cella 0 alla 3 ho i miei primi 4 valori ora dopo che il programma ha analizzato altri dati questi nuovi li devo memorizzare dalla cella 4 alla 7 e così via come posso fare ? GRAZIE MILLE Sergio L.V. 7.1 ---------------------------------------- AUTORE: 482 DATA :16/07/2007 - 09:22:33 ---------------------------------------- Se tu usi il blocco INSERT into ARRAY, e gli passi l'array in ingresso, automaticamente, i nuovi valori te li accoda a quelli già presenti. Altriemnti puoi usare il build array e inserire i nuovi valori nell'ingresso piu' in basso. Ipotizzo un ciclo che fa questa memorizzazione quindi: -Shift registre sui bordi del ciclo (in ingresso un array vuoto). - all'interno del ciclo metti l'insert into array (o il build array)passandogli l'array dello shift register e l'array con i nuovi valori -mandi l'uscita dell'isert allo shhift register. ---------------------------------------- AUTORE: 516 DATA :16/07/2007 - 12:06:06 ---------------------------------------- Ciao Grazie Mille per la risposta Sergio ---------------------------------------- ================================================================================ Acquisizione triggerata con CVS ================================================================================ AUTORE: 2149 DATA :16/07/2007 - 13:45:38 ---------------------------------------- Ciao a tutti. Devo fare un programma labview che gestisca una acquisizione triggerata da telecamera firewire connessa a una cvs 1456. In particolare ho una fotocellula che mi fornisce un segnale 0-24VDC e vorrei ottenere un trigger software passando tramite la digital I/O nei pin isolated? Il problema è che non riesco a capire come gestire questa porta? \":oops:\" Qualcuno mi può aiutare con qualche indicazione o magari un semplice VI?!?!? Grazie a tutti in anticipo. Ciao ---------------------------------------- ================================================================================ cluster refresh? ================================================================================ AUTORE: 2032 DATA :16/07/2007 - 15:05:08 ---------------------------------------- Ciao a tutti, sto facendo un programma di simulazione con LabView abbastanza corposo, e per evitare tanti wire e tanti ingressi ai subVI, sto facendo massiccio uso di variabili locali e cluster (a volte composti ancora da cluster). Ho pero notato una cosa spiacevole. \":cry:\" Ad esempio, se costruisco un cluster con 5 dbl e 2 i32, all'uscita ci metto un indicator "cluster1", poi creo una variabile locale "cluster1" collegata all' indicator in modalita write, poi la uso in svariati ambiti. Se mi accorgo che mi sono sbagliato a definire uno degli elementi come i32 invece che come dbl, e vado quindi a modificare l ingresso del cluster, perchè questa modifica abbia effetto devo rifare tutto il procedimento precedente (indicator e local variable). Se poi in ingresso a un subVI davo i dati di questa local variable, devo pure andare a modificare il subVI. Non esiste un modo per far si che LabView si accorga che ho modificato l'ingresso di un cluster, e vada quindi a rinfrescare chi usa la local variable abbinata?!?!?!? Sarebbe un tot piu comodo \":lol:\" , altrimenti uno non puo permettersi il benchè minimo errore di progetto iniziale.. Grazie ---------------------------------------- AUTORE: 927 DATA :17/07/2007 - 09:56:21 ---------------------------------------- Devi definire il tuo cluster come un "tipo" di variabile. In questo modo, cambiando il tipo, vengono aggiornate tutte le variabili di quel tipo. Per far questo si usano i Custom Control del genere Type Def. Non è complicato ma è lungo da spiegare... Leggi "Creating Custom Controls, Indicators, and Type Definitions" nell'help ---------------------------------------- AUTORE: 2032 DATA :18/07/2007 - 08:12:49 ---------------------------------------- ok grazie, ora provo a darci un occhio ---------------------------------------- AUTORE: 2032 DATA :18/07/2007 - 09:08:51 ---------------------------------------- ho trovato nell help e sto provando l uso. Ti spiego il mio problema. Io sto realizzando una sequenza (sequence structure)di test, quindi nei primi frame faccio delle inizializzazioni varie (numeri stringhe channel) che poi memorizzo in local variable. poi quando nei vari frame (test) successivi mi servono (per darle in pasto a dei subVI che realizzano i singoli test o parte dei singoli test), le ripesco usando le local variable corrispondenti (vedi VI di esempio allegato). Tra queste local variable, molte sono cluster (per evitare di avere subVI con 1000 ingressi), e sono proprio queste che volevo rendere in un certo senso dinamiche (in modo che se mi accorgo che mi serve una stringa in piu, non debba ricreare il cluster corrispondente, la local variable, e il control corrispondente del subVI sopratutto). Ora, da quel che ho capito (non sono un genio di LabView) con la procedura che mi hai indicato nell help, io è come se creassi tanti piccoli file (uno per ogni cluster, chiamiamolo cosi, aggiornabile), quindi tutte le mie inizializzazioni nei miei primi frame vengono rimpiazzate, anzi eliminate e sostituite da questi piccoli file, che quindi poi sostituiranno le mie local variable nei frame successivi. Inoltre, nel caso dei subVI del mio programma generale, i control precedenti (passati dal programma generale) vengono rimpiazzati con questi file, per la gioia delle minori connessioni da operare (e della aggiornabilita). se è così, la cosa mi piace ancora di piu, visto che uso molte local variable, e da un post sul forum dell NI ho scoperto che a volte queste non vengono aggiornate in tempo da labview, creando non pochi problemi (basti pensare che non mi scriveva le local variable riguardanti le task).. ---------------------------------------- AUTORE: 2032 DATA :18/07/2007 - 11:00:42 ---------------------------------------- mmmmhhh, usare questi control rende aggiornabile dimensione del cluster e tipo dei suoi elementi, ma non il valore dei singoli.. Anche se con un trucchetto è possibile fare ciò (basta cambiare il tipo, apply changes, rimettere il tipo di prima con un nuovo valore, apply changes). Ma mi chiedo, si puo fare in altro modo? ---------------------------------------- ================================================================================ Lista dei Data Neighborhood ================================================================================ AUTORE: 482 DATA :17/07/2007 - 10:07:45 ---------------------------------------- ..ma ciao! Esiste un modo per ottenere la list adei data neighborhood configurati nel max? Vorrei realizzare un grafico che mi permetta di graficare piu' canali selezionandoli da una lista di task. vai coi consigli! \":wink:\" ---------------------------------------- AUTORE: 113 DATA :18/07/2007 - 17:25:18 ---------------------------------------- Puoi ottenere la lista completa della configurazione creata in Max: Tasks, Scales, Global Channels: Metti nel diagramma il property node che trovi in NI DAQ-Mx>Advanced>System Setup>System Node; espandi e hai tutto ciò che ti serve \":wink:\" Ciao, Alberto ---------------------------------------- AUTORE: 482 DATA :19/07/2007 - 07:10:25 ---------------------------------------- ma se i miei tasks sono dei fieldpoint? ---------------------------------------- AUTORE: 113 DATA :19/07/2007 - 08:03:07 ---------------------------------------- Questo non te lo so dire, mai usato i fieldpoint... \":(\" Però a naso penso che dovrebbe darti anche la lista dei task creati per il fielpoint; dopotutto sono proprietà relative alla configurazione del Max. Boh, bisognerebbe provare. ---------------------------------------- AUTORE: 482 DATA :19/07/2007 - 08:06:26 ---------------------------------------- Ho appena provato e....no..del field point non da niente. Solo dei daqmx...e la palette dei fieldpoint è particolarmente scarna \":(\" ---------------------------------------- AUTORE: 645 DATA :20/07/2007 - 08:29:15 ---------------------------------------- Le indicazioni contenute in questa pagina: http://digital.ni.com/public.nsf/allkb/ ... 8700764F9D possono servire? ---------------------------------------- AUTORE: 482 DATA :20/07/2007 - 09:08:15 ---------------------------------------- E' la stessa cosa che mi ha detto di fare Alberto. Quella funziona, ma solo con i Daqmx e non con i Field Point. ---------------------------------------- AUTORE: 384 DATA :21/07/2007 - 14:39:09 ---------------------------------------- Io ho avuto un problema simile qualche anno fa, ancora con 7.0. Semplicemente ho dovuto copiare la lista dei canali che ti propone la finestra di scelta quando ne inserisci una costante daq nel diagramma; questa lista l'ho "incollata" in un file di testo e poi ho "accrocchiato" 3 blocchi per leggerlo e infilare l'elenco dei canali in un indicatore di tipo array. Da lí lo puoi usare come vuoi. Macchinoso, ma non ho trovato altro modo! ---------------------------------------- AUTORE: 129 DATA :05/08/2007 - 21:55:08 ---------------------------------------- Scusa, e se lavori con il file .iak? Configuri con MAX un file .iak e quindi leggi i canali disponibili con le funzioni FP su labview(es. Get configuration info). ---------------------------------------- AUTORE: 384 DATA :06/08/2007 - 11:59:37 ---------------------------------------- Ciò non toglie che è un'operazione da fare durante lo sviluppo per poi usare i cnali dinamicamente nel codice... ---------------------------------------- ================================================================================ IIR FILTER ================================================================================ AUTORE: 2002 DATA :17/07/2007 - 13:15:37 ---------------------------------------- Ciao a tutti,sto utilizzando un "IIR Filter with I.C. (DBL)" x filtrare il mio segnale disturbato,ma nn sò che mettere in "Forward Coefficients " e "Reverse Coefficients "!!!! Qualcuno mi può aiutare?????? ---------------------------------------- AUTORE: 2002 DATA :23/07/2007 - 11:39:50 ---------------------------------------- ciao ragazzi, qualcuno sà dove posso trovare notizie x quanto riguarda il funzionamento dei filtri FIR? Grazie... ---------------------------------------- ================================================================================ INTERFACCIA GRAFICA/UTENTE ================================================================================ AUTORE: 1669 DATA :17/07/2007 - 21:48:47 ---------------------------------------- Ciao a tutti Vorrei realizzare una interfaccia grafica per uno strumento virtuale. So che è possibile farlo in c++, in java..ma vorrei utilizzare Labview. Vorrei sapere da voi le differenze sostanziali che ci sono tra Labview e Java. Cioè so che sono entrambi linguaggi di programmazione..ma secondo voi si possono fare (graficamente) le stesse cose ? Grazie A presto J ---------------------------------------- AUTORE: 384 DATA :18/07/2007 - 11:47:01 ---------------------------------------- In modo lato, si può dire che tutto ciò che si può fare con Java si può anche fare con LV, e viceversa. Attenzione però che 2 linguaggi (qualunqui) non sono mai perfettamente equivalenti, altrimenti non ci sarebbe motivo perchè esistessero entrambi. Java è nato per facilitare la programmazione di interfacie utenti volte all'interazione via rete. LV è nato con l'occhio nel laboratorio, nell'acquisizione ed elaborazione dati e nel controllo della strumentazione. Io, quindi, userei LV per controllare uno strumento; invece preferirei Java se dovesse fare un front-end per un database oppure qualche altro tipo di programma non scientifico-industriale.   ---------------------------------------- AUTORE: 1669 DATA :18/07/2007 - 12:01:35 ---------------------------------------- si ok non è che devo solo realizzare l'interfaccia grafica. Cioè devo realizzare uno strumento virtuale che abbia una interfacci grafica - utente. Fors con Java posso realizzare interfacce piu sfiziose e personalizzate rispetto a Labview? A presto ---------------------------------------- AUTORE: 384 DATA :18/07/2007 - 12:20:38 ---------------------------------------- [quote="jurij":3fsis6nq]si ok non è che devo solo realizzare l'interfaccia grafica. Cioè devo realizzare uno strumento virtuale che abbia una interfacci grafica - utente. Fors con Java posso realizzare interfacce piu sfiziose e personalizzate rispetto a Labview? A presto[/quote:3fsis6nq] Ma... onestamente non lo so!... Con LabView si ha il vantaggio di aver a disposizione tutta una serie di "oggetti" grafici già pronti, attinenti a ciò che vuoi fare. In più, hai il pieno controllo di tutte le caratteristiche grafiche (forma, colore, ecc) fino a poterli editare e personalizzare in vari modi, compreso l'inserimento di grafica ed immagini "esterne" , cioè, che procuri o crei tu stesso. Sicuramente con Java riesci a fare le "skin" - che con LabView non si può fare in modo semplice e diretto - ma per il resto non sono tanto sicuro che tu riesca a fare "meglio" o più "strano" o più "figo" con Java rispeto a LV. E comunque sta a te valutare l'obiettivo principale del tuo lavoro!...   ---------------------------------------- AUTORE: 384 DATA :18/07/2007 - 12:33:33 ---------------------------------------- \":oops:\" ... mi è scappato un click accidentale su "invia"... Dicevo dell'obiettivo del tuo programma. Se si tratta dell'interfaccia di un "media player", posso capire i pulsanti rombici oppure a mezza luna. ecc, ecc. \":wink:\" Non che non si possa fare con LV, è solo un pò più laborioso. \"8)\" Invece in un strumento (virtuale o no) ci si aspetta (almeno io) un'interfaccia sopratutto ben organizzata funzionalmente, intuitiva, e solo dopo anche bella, senza però dei "contorzionismi" esagerati. \":lol:\" Questo è il mio parere! Naturalmente è un tema di discussioni tra i fautori dell'estrema funzionalità e quelli del'estremo design - oviamente mai si giungerà ad una definitiva conclusione! \"8)\"   ---------------------------------------- AUTORE: 1669 DATA :18/07/2007 - 12:38:03 ---------------------------------------- beh inceramente non è che voglio necessariamente interfaccia "figa" e che questo prof...diciamo che si sfizia con le interfacce "fighe" se tu mi dici che posso realizzare graficamente..bottoncini..coloretti...e cose simili all'utilizzo di java...ok Grazie mille (sono rimasto al vecchio conio!) p.s. se avessi bisogno..su carinerie grafiche posso contare su di te? j ---------------------------------------- AUTORE: 384 DATA :18/07/2007 - 12:47:54 ---------------------------------------- [quote="jurij":2gr75rjj] p.s. se avessi bisogno..su carinerie grafiche posso contare su di te? j[/quote:2gr75rjj] Naturalmente... come, daltronde, in generale puoi contare su tutti del forum...   ---------------------------------------- AUTORE: 1669 DATA :18/07/2007 - 13:01:27 ---------------------------------------- ahh...un'altra cosa ho la versione 8.0 di labview installata su pc (windows xp)..posso utilizzare la stessa versione su mac (OS X) ? grazie ---------------------------------------- AUTORE: 384 DATA :18/07/2007 - 13:58:24 ---------------------------------------- Se per "stessa versione" intendi installare dagli stessi CD su MAC, la risposta è NO. Esiste LV per MAC (così come per linux) ma bisogna acquistarla... ---------------------------------------- AUTORE: 1669 DATA :31/07/2007 - 17:54:04 ---------------------------------------- Ciao vorrei sapere se ci sono moduli o integrazioni del labview per quanto riguarda la grafica di un qualsiasi strumento virtuale. Cioè i colori, i bottoni, gli sfondi...sono quelli predefiniti installando labview oppure queste parti di grafica possono essere integrati con pacchetti specifici disponibili da NI ? Fatemi sapere Grazie A presto ---------------------------------------- AUTORE: 384 DATA :31/07/2007 - 18:18:00 ---------------------------------------- Che io sappia, da NI l'unico toolkit che aggiunge un numero consistente di oggetti grafici è il DSC, quello per "monitoraggio di impianti" (detto in poche grossolane parole) ma che non sono del tipo che intendi tu e cioè, pulsanti, display, scale, bottoni e similia - se ho capito bene. Cerca in rete com le varie combinazioni delle parole labview, custom, controls, indicators, library. Con una rapida ricerca ho trovato [url=http://members.lycos.co.uk/sgctek/spot-temp.html:3x37gjhq]questo[/url:3x37gjhq]. Ma non dimenticare che puoi modificare quelli che già esistono, di fatto creandone di nuovi.   ---------------------------------------- AUTORE: 1313 DATA :01/08/2007 - 08:23:53 ---------------------------------------- Ciao, volevo aggiungere la mia. \";-)\" Io, per lavoro, programmo un pò in tutti i linguaggi, a secondo delle esigenze, ma per le interfaccie con struentazione labview per me è un mito. Quindi secondo me se hai possibilità di imparearlo approfittane che può tornare utile ed è divertente (almeno per me). Cris \":D\" ---------------------------------------- ================================================================================ Scrivere una stringa in excel ================================================================================ AUTORE: 2182 DATA :18/07/2007 - 09:51:54 ---------------------------------------- Ciao a tutti! volevo chiedervi se avete delle idee a proposito della scrittura di una stringa in un file excel, io invio il mio comando e in risposta ottengo una stringa così fatta: *01;06;15;6;25. Devo prelevare i dati fra i punti e virgola ovvero 1,6,15,6,25 per elaborarli e devo poi stampare la stringa in excel, il punto è che nel mio programma non mi consente di scrivere la stringa in excel oltre il fatto che non riesco a gestire i numeri! Grazie mille per il vostro aiuto! ciao ciao a tutti ---------------------------------------- AUTORE: 645 DATA :18/07/2007 - 17:10:22 ---------------------------------------- Nella paletta delle stringhe trovi i blocchi necessari per la ricerca di un carattere all'interno di una stringa (nel tuo caso il ; ). Poi leggi i caratteri precedenti o successivi (eventualmente continuando la ricerca fino alla fine della stringa) e quando hai estratto tutti i numeri puoi inserirli in un vettore e passare il vettore al blocco di scrittura su file (guarda nella paletta legata ai file... c'è anche un blocco per la scrittura su fogli di calcolo...). ---------------------------------------- AUTORE: 2182 DATA :21/07/2007 - 17:40:32 ---------------------------------------- Grazie mille! problema risolto! ciao ---------------------------------------- ================================================================================ Leggere ID hardware ================================================================================ AUTORE: 2196 DATA :18/07/2007 - 12:20:47 ---------------------------------------- c'è modo, tramite labview di leggere qualche ID hadware dello chassis, del controllore i di altre schede? ---------------------------------------- AUTORE: 838 DATA :19/07/2007 - 08:20:25 ---------------------------------------- esiste la possibilità tramite dll di leggere il mac address della scheda di rete del pc, che è univoco per tutto il mondo ---------------------------------------- ================================================================================ Trigger esterno con CVS NI 1456 ================================================================================ AUTORE: 963 DATA :18/07/2007 - 13:05:35 ---------------------------------------- Ciao a tutti... io ho un piccolo problema.. vorrei acquisire un immagine con una fotocamera firewire collegata al CVS e triggerrarla tramite una fotocellula collegata al connettore di trigger..il problema è che con Labview non riesco a leggere il trigger e nemmeno con il MAX.. qualcuno mi potrebbe spiegare come fare?? Ciao, grazie ,Stefano ---------------------------------------- ================================================================================ SINCRONIZZAZIONE ================================================================================ AUTORE: 2198 DATA :19/07/2007 - 14:50:35 ---------------------------------------- Ciao ragazzi, qualcuno può aiutarmi? Devo effettuare una sincronizzazione tra una fonte di dati (stringhe) provenienti da un sistema udp ad un passo variabile e una fonte di dati (stringhe) che trasmette pacchetti di stringhe via tcp a 100 Hz. In pratica quando arriva il pacchetto via udp devo legare il pacchetto via tcp che corrisponde in quel momento....e tralasciare eventualmente ciò che sta prima. Possono essere utili i blocchi notifier? Oppure devo usare strutture ad evento? Ho sentito parlare di polling??? Come si realizza???? ---------------------------------------- ================================================================================ controllo tipo gauge ================================================================================ AUTORE: 2197 DATA :20/07/2007 - 09:10:04 ---------------------------------------- Vorrei sapere se in un controllo di tipo gauge è possibile cambiare le dimensioni dell'indice, in particolare vorrei allargare la base dell'indice. Ho provato con importa immagine da clipboar, ma ruotando poi l'ago uno degli estremi non rimane agganciato al centro. ---------------------------------------- AUTORE: 927 DATA :24/07/2007 - 15:22:13 ---------------------------------------- Io non ho capito cosa intendi con "l'indice" e la "base dell'indice"... Se intendi le dimensioni dei numeri, selezionane uno qualunque doppiocliccandolo, poi usa il menù a tendina in alto (di fianco al tasto pausa) per cambiare le proprietà del carattere, in questo caso Size ---------------------------------------- ================================================================================ Inserimento caratteri ASCII estesi nei testi LABView ================================================================================ AUTORE: 1465 DATA :20/07/2007 - 10:36:49 ---------------------------------------- Salve a tutti, abbiamo un problema sul nostro applicativo. Abbiamo inserito un supporto multilingua ed alcuni nostri clienti ci hanno chiesto una versione in greco. Mentre con il tedesco LabView visualizza correttamente tutti i caratteri dell'alfabeto tedesco, con il greco se tentiamo di introdurre frasi nel loro alfabeto, LabView le visualizza solo con punti interrogativi (?). Esiste un modo per fargli "apprendere" un set ASCII esteso che comprenda i simboli dell'alfabeto greco? Grazie ---------------------------------------- AUTORE: 645 DATA :20/07/2007 - 10:49:09 ---------------------------------------- Non so se può servire: http://zone.ni.com/devzone/cda/pub/p/id/99 ; http://digital.ni.com/public.nsf/allkb/ ... 1A004FCACB ; http://digital.ni.com/public.nsf/allkb/ ... CC00476162 ---------------------------------------- ================================================================================ "control custom" con trasparenze ================================================================================ AUTORE: 1191 DATA :20/07/2007 - 16:55:22 ---------------------------------------- salve volevo modificare un Bolean ,usando 2 immagini, al posto del tasto ON e OFF. le immagini hanno un disegno nero ed il resto dello sfondo è normalmente bianco. è possibile avere lo sfondo delle immagini "trasparente", modificando le immagini con un programma di grafica? ovvero LV accetta come immagini di un "custom control" delle immagini che hanno delle trasparenze? emilio ---------------------------------------- AUTORE: 129 DATA :21/07/2007 - 08:08:51 ---------------------------------------- Si se riesci a creare una png con sfondo trasparente, la puoi importare nel controllo. ---------------------------------------- ================================================================================ leggere e scrivere sulla USB ================================================================================ AUTORE: 314 DATA :21/07/2007 - 14:22:06 ---------------------------------------- Qualcuno sa dirmi come si fa a leggere e scrivere sulla porta usb. cambia qualcosa se ad inviare i dati sulla porta USB e' un microcontrollore? ---------------------------------------- ================================================================================ Concatenare time e data ad una stringa ================================================================================ AUTORE: 2182 DATA :21/07/2007 - 17:55:35 ---------------------------------------- Ciao a tutti! DOMANDA: dato un array fatto di numeri interi,che devo trasformare in una stringa per poi portarlo in scrittura su un file excel mi chiedevo se era possibile concatenare una stringa che mi porti informazione sul tempo in cui quei valori numeri sono stati prelevati : esempio: 1- 34- 23- 56- 23- 21/07/2007- 18:44 questo è ciò che vorrei ottenere in uscita sul file excel, solo che non riesco si sovrappone al primo dato e poi data e tempo mi vengono inseriti nella stessa casella! \":roll:\" ciao grazie mille per l'attenzione! ---------------------------------------- AUTORE: 384 DATA :22/07/2007 - 17:40:30 ---------------------------------------- Non ho potuto aprire il tuo VI perchè non ho le versioni 8.* installate. Comunque, mi sembrerebbe più logico mettere data e ora all'inizio della stringa - se ti serve un "time stamp" allora quello è il posto giusto, anche perchè cosí le stringhe sono "naturalmente" in ordine cronologico, anche se fai un normale ordinamento alfabetico. Guarda l'immagine allegata.   ---------------------------------------- AUTORE: 384 DATA :22/07/2007 - 17:43:55 ---------------------------------------- [quote="gyc":skn5u0xn]anche perchè cosí le stringhe sono "naturalmente" in ordine cronologico, anche se fai un normale ordinamento alfabetic [/quote:skn5u0xn] Non è completamente giusto... \":oops:\" Lo è soltanto se il formato della data è YYYY/MM/DD anzichè il classico giorno/mese/anno che ho usato nell'esempio.   ---------------------------------------- AUTORE: 2182 DATA :23/07/2007 - 09:51:20 ---------------------------------------- Grazie mille il problema è risolto!Posso però chiederti come fare ora ti spiego: io salvo il tempo di acquisizione dei dati e i dati stessi in un file excel però allo stesso tempo devo visualizzarli su in grafico e vorrei poter inserire sull'asse x i tempi registrati e sull'asse y i dati corrispettivi! Nell'esempio riportato però non riesco a farlo funzionare correttamente ---------------------------------------- AUTORE: 2182 DATA :23/07/2007 - 09:53:32 ---------------------------------------- grazie mille! ---------------------------------------- AUTORE: 384 DATA :23/07/2007 - 11:21:39 ---------------------------------------- Quello che hai fatto è concettualmente valido. Nella pratica, però, questo modo di temporizzare un loop non è preciso, per il modo in cui il PC gestisce il tempo e che è la base del blocco di wait che hai usato. Ecco perchè vedi dei tempi che non ti aspetti. Nella palette delle "Structures" esiste il "Timed Loop" che è adatto a questo scopo. Inoltre, il modo giusto di graficare dei dati con un time stamp è la WaveformGraph, con una dato di tipo Waveform. Questa struttura ha in sè l'istante di inizio (t0), il tempo di acquisizione (dt) e l'array dei dati. Quando lo immetti in un WaveformGraph, il resto è automatico. In più aleggerisci il tuo loop perchè non devi più usare il blocco dei tempi ad ogni giro.   ---------------------------------------- AUTORE: 384 DATA :23/07/2007 - 11:27:17 ---------------------------------------- Nella figura che ho allegato ho dimenticato di inserire la condizione di uscita dal loop. Sorry... Questo è un loop simile ad un While (non è un For..Next) per quanto riguarda il comportamento, però con caratteristiche di timing molto più accurate.   ---------------------------------------- AUTORE: 2182 DATA :23/07/2007 - 17:31:28 ---------------------------------------- Grazie mille dei tuoi suggerimenti, ma purtroppo non riesco ancora a visualizzare ciò che voglio!continuo ad avere delle incongruenze, se imposto 10 ms fra un punto e l'altro perchè mi ritrovo con valori che vengono presi a caso!nel programma che sto realizzando lavoro in real time, perchè acquisisco dei dati da una seriale quindi ho dei dati dinamici questa soluzione che mi hai proposto funziona cmq? grazie ancora ciao bicevola ---------------------------------------- AUTORE: 384 DATA :23/07/2007 - 18:07:35 ---------------------------------------- Non rieso ad aprire il tuo vi, ma il fatto che tu lamenti di aver valori del tempo "a caso" mi fa pensare che tu non stia pensando ed eseguende le stesse cose. 1) se la seriale ti da dei dati con cadenza garantita, devi solo sapere il "dt" e impostarlo nella waveform (lascia perdere anche il "t0" che può essere tranquillamente (almeno per ora) uguale a zero. Questo è il caso, per esempio, in cui il dispositivo genera o acquisisce dei dati secondo un suo clock e li invia costantemente al PC. Devi solo leggerli e lasciar perdere il resto. Se, però, devi dare il comando di lettura, devi usare un timed loop, per garantire che lo fai a intervalli certi - e devi anche aver la garanzia che il tempo di risposta del dispositivo seriale seriale è costante. 2)se invece dalla seriale i dati arrivano assincronamente, cioè, il tempo fra l'arrivo di un dato e quello successivo NON è costante (per una serie di buoni motivi, tecnici, costruttivi, ecc.), devi prendere il tempo nel momento in cui prendi il dato. In questo caso, i tempi NON sono costanti, anzi, sembrano casuali - perchè di fatto lo sono.   ---------------------------------------- AUTORE: 384 DATA :23/07/2007 - 18:22:24 ---------------------------------------- Ho cercato di simulare il tuo problema, ma sinceramente mi torna un grafico perfettamente plausibile. Guarda l'allegato.   ---------------------------------------- AUTORE: 2182 DATA :23/07/2007 - 18:26:03 ---------------------------------------- Ciao, la questione è complessa e spero di spiegarmi, i dati che ricevo dal dispositivo li richiamo io (definendo il numero di campioni che voglio) il punto è che io concateno il tempo di acquisizione del dato al dato stesso e lo salvo in file excel, ora però vorrei visualizzare sull'asse y i dati e sull'asse x i tempi che salvo cioè mentre salvo i dati li visualizzo man mano che mi arrivano. Ma mentre riesco a salvarlo sul file non riesco a visualizzarlo es. tempo (x) dato (y) 19.20.01,456 5 19.20.04,234 6 e così via, ora vorrei rappresentare questi dati ---------------------------------------- AUTORE: 2182 DATA :23/07/2007 - 18:30:02 ---------------------------------------- file ---------------------------------------- AUTORE: 384 DATA :23/07/2007 - 19:10:28 ---------------------------------------- Non capisco perchè insisti nel prendere il tempo dal blocco "Get Date/Time In Seconds" ad ogni giro del loop. Questo blocco non è pensato per utilizzi di timing preciso - e sopratutto fine - e non ho idea di ciò che fa all'interno e del perchè da risultati apparentemente incongruenti. Leggi il suo help. E poi, ripeto, non è necessario, dal momento che hai il "dt". Se proprio ti serve l'array dei tempi, prendilo dalla waveform stessa con il blocco "Get Waveform Time Arrayi". PS - il valore del "period" che esce dal timed loop va diviso per 1000 prima di entrare nel dt perchè viene dato in milisecondi ed le funzioni che operano sul waveform (graph, blocchi) presumono che il dt sia espresso in secondi. ---------------------------------------- AUTORE: 384 DATA :23/07/2007 - 19:18:21 ---------------------------------------- [quote="bicevola":1ltm4mv0] tempo (x) dato (y) 19.20.01,456 5 19.20.04,234 6 [/quote:1ltm4mv0] Dal'esempio, concludo che ci sono 2 dati per ogni istante "t". Devi creare una waveform separata per ogni dato, farne un'array e poi graficarle. ---------------------------------------- AUTORE: 482 DATA :24/07/2007 - 07:34:23 ---------------------------------------- MA è questo quello che devi fare? \":?:\" ---------------------------------------- AUTORE: 2182 DATA :25/07/2007 - 15:19:16 ---------------------------------------- ciao mi dispiace ma come al solito non riesco a visionare quello che hai fatto ho la versione 8 di labview! se potessi copiarla in pdf te ne sarei immensamente grata è da un po' che sono dietro a questa questione e non ho avuto ancora dei risultati buoni!non so come mai il tutto funziona, in realtà non benissimo solo la prima volta dopodichè mi abbandona! grazie mille!!! \":wink:\" ---------------------------------------- AUTORE: 482 DATA :26/07/2007 - 07:10:00 ---------------------------------------- Te lo riallego in versione 8.0 cosi' lo vedi subito all'opera. ---------------------------------------- AUTORE: 2182 DATA :26/07/2007 - 14:01:05 ---------------------------------------- Ciao grazie mille! ma niente da fare!non so forse accade solo a me!ma se guardi il file ti accorgerai che una cosa è ciò che scrivo negli array e un'altra cosa e ciò che viene rappresentato, ma non riesco a modificare il valore iniziale dell'asse x! \":cry:\" ciao ciao ---------------------------------------- AUTORE: 482 DATA :26/07/2007 - 14:23:27 ---------------------------------------- [quote="bicevola":3h7cbt1g]non so forse accade solo a me![/quote:3h7cbt1g] A sto punto direi di si, perchè il file che ti ho mandatoa me funziona correttamente e non come a te nel grafico.... Non è che l'hai modificato in qualche modo il vi che ti ho passtao io? Oppure ti mette qualche costante in ingresso allo shift register per qualche motivo? boh...a me funziona... ---------------------------------------- AUTORE: 482 DATA :26/07/2007 - 14:24:16 ---------------------------------------- pensavo... hai provato a farlo girare in debug e vedere cosa ti esce? ---------------------------------------- AUTORE: 2182 DATA :26/07/2007 - 15:09:05 ---------------------------------------- ho fatto il debug e le stringhe vengono scritte correttamente, è il grafico che non va!il primo valore dell'asse x è sempre posto due ore in anticipo rispetto all'orario d'inizio effettivo della mia registrazione!!!ma!!! grazie cmq del tuo interesse! \":wink:\" ---------------------------------------- AUTORE: 482 DATA :26/07/2007 - 15:26:32 ---------------------------------------- Eppure c'e' qualcosa che non mi torna... nella tua immagine si vede chiaramente che il grafico ha solo due indicazioni di data e ora, mentre il viche ti ho mandato ha l'indicazione di data e ora pe rogni "step". Quindi mi aspetterei di vederne 6 di indicazioni dell'ora nell'asse X. c'e' qualcosa a livello di visualizzazioen o di impostazioni dle grafico che ti sballa tutto. Prova a cancellare il grafico e inserirne uno nuovo... ---------------------------------------- ================================================================================ excel tool ================================================================================ AUTORE: 1317 DATA :22/07/2007 - 12:26:39 ---------------------------------------- ciao a tutti. qualcuno potrebbe per favore convertire questa llb "http://www.ilvg.it/forum/viewtopic.php?t=1886&highlight=excel+tool" in una versione labview 7.0 grazie mille ---------------------------------------- AUTORE: 113 DATA :23/07/2007 - 15:57:59 ---------------------------------------- Te l'ho convertita così com'è. Ti consiglio comunque di sistemarla un po': - Chiudi tutti i reference aperti alla fine - Aggiungi il controllo degli errori ---------------------------------------- AUTORE: 1317 DATA :23/07/2007 - 16:52:11 ---------------------------------------- grazie. ho qualche problema con l'invoke node (open) nel VI openworkbook. quali sono le referenze da connettere e quali da rimuovere. e soprattuto mi sapresti dire come rimuovere quelle referenze?..grazie ancora ---------------------------------------- AUTORE: 113 DATA :23/07/2007 - 17:17:07 ---------------------------------------- Scusa, mi sono spiegato male... \":roll:\" Volevo dire che quando hai terminato la sessione di inserimento dati, o tutto quello che devi fare con Excel, è buona norma chiudere i riferimenti aperti. Nell'ordine: - Worksheet ref. - Workbook ref. - Application ref. Utilizza la funzione Close Reference che trovi nella palette ActiveX. Comunque ti consiglio di dare un occhio anche all'esempio di LV: Write Table to XL.vi, è un'estensione di quello che vuoi fare. Ciao ---------------------------------------- ================================================================================ Connessioni di rete ================================================================================ AUTORE: 487 DATA :23/07/2007 - 10:52:32 ---------------------------------------- Ciao a tutti, eccovi il mio nuovo problema: devo verificare l'esistenza di un certo numero di connessioni di rete. Ho tentato di risolvere il problema cercando di aprire ogni connessione e andando a leggere i file contenuti in una determinata cartella. Tutto funziona egregiamente se la connessione è attiva, ma se non è così il programma rimane bloccato per un tempo esageratamente lungo in attesa di riuscire a stabilire la connessione. Ho già abbozzato una possibile soluzione, ma vorrei conoscere anche il vostro parere. Grazie ---------------------------------------- AUTORE: 645 DATA :23/07/2007 - 11:41:58 ---------------------------------------- Dovrebbe essere possibile gestire gli errori: controlli lo status dell'errore dopo un certo periodo di tempo e poi chiedi all'utente se ritentare o abbandonare... una specie di timeout sull'errore. ---------------------------------------- AUTORE: 487 DATA :23/07/2007 - 12:39:22 ---------------------------------------- Avevo pensato anch'io d'inserire un timeout, però non lo posso mettere sull'errore perchè il vi rimane bloccato senza restituirmi niente (stò utilizzando il blocchetto "File/Directory Info"). L'idea che ho in mente è quella di crearmi un ciclo parallelo per gestire il timeout. Inoltre le connessioni di rete che devo verificare sono più di una (attualmente 9), perciò nella peggiore delle ipotesi (tutte le connessioni disattive) mi ritrovo a dover sommare tutti i timeout (forse un po' troppo tempo!!!). ---------------------------------------- AUTORE: 487 DATA :24/07/2007 - 09:32:08 ---------------------------------------- Ho risolto il problema utilizzando gli indirizzi ip delle unità di rete e andando a fare un ping per vedere se sono connesse. La soluzione non mi entusiasma, perchè per verificare le 9 connessioni impiego circa 30 secondi, però non mi è venuto in mente niente di meglio. ---------------------------------------- AUTORE: 838 DATA :25/07/2007 - 10:39:31 ---------------------------------------- ti fai un activex con vb.bet che fa il ping, diciamo che dalla richiesta dell'ip alla risposta è quasi immediato ---------------------------------------- AUTORE: 487 DATA :25/07/2007 - 10:46:52 ---------------------------------------- Ciao minzuk, la fai molto semplice, ma il problema è che non so nenche da che parte iniziare per creare un activex. Comunque grazie per il suggerimento. ---------------------------------------- ================================================================================ FIR filter ================================================================================ AUTORE: 2002 DATA :23/07/2007 - 21:32:39 ---------------------------------------- Ciao a tutti...X il mio lavoro di tesi sto utilizzando un CompactRio con il quale devo acquisire dei seganli x poi poter effettuare su di essi varie misure.Sono riuscito ad implementare in LabView un VI con il quale acquisisco su otto canali. I miei segnali possono essere soggetti a dei disturbi, quindi effettuo un filtraggio FIR, attraverso un subVi, x eliminare tale disturbo. Ora xò il filtro FIR effettua una media pesata(convoluzione) su una finestra di N campioni di dati. Le prime K(ordine del filtro) uscite del filtro sono errate, xkè il filtro nn è andato ancora a regime; quindi i primi K campioni andranno persi dopodichè inizierei ad avere le uscite esatte. Questo nel primo ciclo di acquisizione; successivamente dovrei procedere sempre allo stesso modo sprecando sempre i primi K campioni per aspettare ke il filtro vada a regime! Invece io vorrei utilizzare i K campioni precedenti come condizioni iniziali per ottenere le K uscite successive e far funzionare il filtro in modo continuo, ottenendo K uscite errate all'inizio del primo ciclo di acquisizione e successivamente uscite sempre corrette. Sto da qualche settimana ma nn ho trovato ancora la soluzione...qualcuno può darmi una mano??? Vi ringrazio anticipatamente... ---------------------------------------- AUTORE: 384 DATA :24/07/2007 - 11:17:27 ---------------------------------------- Solitamente i blocchi della libreria NI che hanno il problema dell'inizializzazione hanno anche un flag true/false che permete di "informarli" del fatto che sia la prima esecuzione (e quindi devono inizializzarsi) oppure devono riprendere lo stato dall'esecuzione precedente. Cerca bene nell'help in linea dei blochhi che stai usando perchè forse ci troverai la soluzione. Comunque, anche se così non fosse, puoi sempre creare tu stesso questa "memoria" inserendo il tuo codice in un loop che si esegue una volta sola ad ogni chiamata e che memorizza questo stato. É lo stesso principio delle [url=http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/suggestions_for_exec/#Functional_Global_Variables:1huy3hiq]functional globals[/url:1huy3hiq].   ---------------------------------------- AUTORE: 2002 DATA :24/07/2007 - 13:40:49 ---------------------------------------- [quote="gyc":3tb6p9wz]Solitamente i blocchi della libreria NI che hanno il problema dell'inizializzazione hanno anche un flag true/false che permete di "informarli" del fatto che sia la prima esecuzione (e quindi devono inizializzarsi) oppure devono riprendere lo stato dall'esecuzione precedente. Cerca bene nell'help in linea dei blochhi che stai usando perchè forse ci troverai la soluzione. Comunque, anche se così non fosse, puoi sempre creare tu stesso questa "memoria" inserendo il tuo codice in un loop che si esegue una volta sola ad ogni chiamata e che memorizza questo stato. É lo stesso principio delle [url=http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/suggestions_for_exec/#Functional_Global_Variables:3tb6p9wz]functional globals[/url:3tb6p9wz].  [/quote:3tb6p9wz] Ciao gyc, grazie x il tuo aiuto...Sto utilizzando il "IIR Filter with I.C. (CDB)" e nell'help in linea nn c'è nessun flag true/false che mi permette di fare ciò di cui ho detto sopra. Secondo me l'unica soluzione è quella ke mi dicevi tu di crearmi io una "memoria" e di procedere come hai detto tu. Il fatto è ke ho iniziato da poco a lavorare con il labview e non so da dove iniziare...non è ke mi potresti dare qualche altro consiglio su come procedere? Se vuoi ti posso inviare anke parte del mio progetto... Grazie ancora di tutto... ---------------------------------------- AUTORE: 384 DATA :24/07/2007 - 14:28:43 ---------------------------------------- Stai usando i "vecchi" blocchi. Usa invece il 'Digital IIR Filter' della palette "Analyze\Waveform Conditioning", fatti appunto per le waveform. Quello ha il flag di reset. Non solo, poi aprirlo e guardare come è fatto; è molto istruttivo.   ---------------------------------------- AUTORE: 2002 DATA :24/07/2007 - 17:33:38 ---------------------------------------- Ok proverò ad inserire il blocco ke mi hai detto...Ma con questo riesco sempre a fare quello di cui ti dicevo sopra,cioè a far funzionare il filtro in modo continuo???? Grazie ancora x il disturbo... ---------------------------------------- AUTORE: 384 DATA :24/07/2007 - 18:44:21 ---------------------------------------- Certamente si! Anzi, è proprio con questo scopo (elaborazione in real time) che è stata migliorata la funzione. L'ingresso "reset" deve essere messo a TRUE durante la prima esecuzione e a FALSE in tutte le successive. In questo modo il filtro si risetta e ricalcola tutti i parametri interni la prima volta che ci fai passare il primo blocco di dati, poi memorizza lo stato e le volte successive è come se il segnale non avvesse mai smesso di "scorrere". ---------------------------------------- AUTORE: 384 DATA :24/07/2007 - 18:47:50 ---------------------------------------- ... "avvesse" ... \":oops:\" Scusate! ---------------------------------------- AUTORE: 2002 DATA :25/07/2007 - 11:58:27 ---------------------------------------- Ciao gyc, sto usando il nuovo blocco che mi dicevi tu. Il fatto è che il mio segale non viene filtrato; cioè in uscita dal filtro ho il segnale così come ce l'ho in ingresso. Poi non ho capito ancora bene ke ci và in ingresso a "FIR filter specifications" e a "optional FIR filter specifications"! Scusami per i disturbo...e ti ringrazio per la tua disponibilità... ---------------------------------------- AUTORE: 384 DATA :26/07/2007 - 00:40:41 ---------------------------------------- [quote="pietroview"]Ciao gyc, sto usando il nuovo blocco che mi dicevi tu. Il fatto è che il mio segale non viene filtrato; cioè in uscita dal filtro ho il segnale così come ce l'ho in ingresso. Poi non ho capito ancora bene ke ci và in ingresso a "FIR filter specifications" e a "optional FIR filter specifications"!/quote] Dal tuo dubbio deduco che non hai definito il filtro. É proprio a quello che serve l'ingresso IIR FIlter Specifications. In quel clusters devi definire il tuo filtro: topologia, tipo, ordine, frequenze, guadagno ed attenuazione. L'ingresso opzionale serve solo se non sai l'ordine del filtro ma invece conosci i parametri che la determinano; è utile se hai quelle specifiche e non vuoi fare tu il calcolo, oppure se è un filtro interattivo e, quindi, l'ordine può variare a seconda delle impostazioni. Per il resto, mi sembra abbastanza lineare! Guarda l'help in linea e anche gli esempi.   ---------------------------------------- AUTORE: 2002 DATA :26/07/2007 - 12:14:57 ---------------------------------------- Ciao gyc, finalmente stamattina sono riuscito a far funzionare il mio progetto, xò ho seguito il tuo primo consiglio e cioè mi sono creato io una "memoria" e seguendo l'esempio della "functional global"... Ti ringrazio x il tuo aiuto e la tua disponibilità... ---------------------------------------- AUTORE: 384 DATA :26/07/2007 - 13:46:01 ---------------------------------------- Bravo. L'importante è farlo funzionare. Il resto è training ed esperienza. Comunque assolutamente da non trascurare il rispetto anche solo formale delle sintassi ed il mantenimento di uno stile chiaro e pulito di programmazione secondo le "best practices" raccomandate dai "guru" sicuramente paga anche a breve termine - a prescindere che si programi grafica o testualmente! Buon lavoro!   ---------------------------------------- ================================================================================ Accesso ai valori dei controlli presenti in un TAB ================================================================================ AUTORE: 645 DATA :24/07/2007 - 14:23:17 ---------------------------------------- Ciao, sto cercando di accedere ai controlli presenti nelle pagine di un TAB Control, in particolare ai valori di questi controlli. Io ho un TAB Control con alcune pagine e su ogni pagina ci sono una lista e un grafico. Io vorrei accedere alla lista, controllare quanti valori (quante stringhe) ci sono scritte all'interno e in caso non ci sia scritto niente rendere invisibile la pagina del TAB Control. Ho provato in vari modi: fino alla lista ci arrivo ma quando cerco di leggerne i valori mi blocco. Vi allego una figura dello schema realizzato (sono arrivato ad usare i Variant perchè non sono riuscito in altro modo... ma anche così non va...)... Suggerimenti?? L'esempio in figura non funziona perchè il blocco della conversione dei Variant in un vettore di stringhe mi restituisce un errore... Tipo dati non accettato. ---------------------------------------- AUTORE: 645 DATA :24/07/2007 - 14:50:59 ---------------------------------------- Risolto: al posto del Property Node "Value" che restituisce un Variant ho inserito un "More Specific Class" specificando "ListBox" come tipo e poi ho potuto lavorare con gli stessi Property Node delle Liste. ---------------------------------------- ================================================================================ Lanciare un programma esterno da Labview ================================================================================ AUTORE: 2202 DATA :24/07/2007 - 17:05:01 ---------------------------------------- Salve a tutti, vorrei sapere come lanciare un programma esterno da labview. Es. Se voglio lanciare autocad da un programma labview come faccio? ---------------------------------------- AUTORE: 927 DATA :26/07/2007 - 08:55:42 ---------------------------------------- Usa System exec.vi, come "comando" gli passi il percorso completo dell'exe che vuoi lanciare ---------------------------------------- ================================================================================ ON\OFF ================================================================================ AUTORE: 1596 DATA :25/07/2007 - 14:48:14 ---------------------------------------- salve a tutti, devo fare un controllo ON\OFF di un motore DC 6V, vorrei utilizzare una DAQCARD-DIO-24;CB-50LP;PSH27-50F-D1;una scheda rele' tra motore e connettore e mandare il segnale di attivazione alla scheda rele' tramite il pin PA0... qualcuno conosce qualche altra soluzione,magari piu' economica e\o efficiente? ammesso che l'hardware vada bene, come comando il segnale su quel pin? esistono gia' VI pronti per la scrittura su linea digitale?? \":roll:\" grazie... ---------------------------------------- AUTORE: 384 DATA :26/07/2007 - 01:16:05 ---------------------------------------- Se devi fare solo dei controlli on/off o in generale ingressi e uscite digitali, c'è la [url=http://sine.ni.com/nips/cds/view/p/lang/it/nid/201630:29huola9]USB-6501[/url:29huola9] che costa veramente poco. La [url=http://www.dlpdesign.com/usb/io8.shtml:29huola9]DLP ha un modulo multifunction[/url:29huola9] che costa 30 dollari. Sempre nella stessa ottica, esistono [url=http://www.weedtech.com/wtdio-m.html:29huola9]altre soluzioni anch'esse poco costose via seriale della Weeder[/url:29huola9]. Dai un'occhiata agli esempi di LabView; ci troverai dei VI già pronti da cui partire. Ovviamente sono fatti per HW della N.I.   ---------------------------------------- AUTORE: 1596 DATA :26/07/2007 - 08:13:46 ---------------------------------------- grazie gyc... allora se ho capito bene (scusa ma e' la prima volta ke affronto questo argomento), sostituisco la DAQcard-DIO-24(229euro) e il connector block CB-50LP(79euro) con la USB-6501(89euro)... quello ke devo fare e' il controllo on\off del motore ma devo anche controllare la velocita'...pensavo di montare sul motore un encoder incrementale e mandare la sua uscita TTL in ingresso alla stessa USB...se tutto quello ke ho detto e' esatto,la tua soluzione sembra ottima!.. p.s. ovviamente mi servira' anke un cavo USB ke non trovo qui [url:uqmlgegl]http://sine.ni.com/nips/cds/view/p/lang/it/nid/201630[/url:uqmlgegl] o sbaglio? p.p.s. gia' ke ci sono ma come si crea il collegamento ipertestuale su una parola qualsiasi invece di scrivere tutto l'indirizzo? \":)\" ---------------------------------------- AUTORE: 1596 DATA :26/07/2007 - 08:17:21 ---------------------------------------- ah dimenticavo...da detrarre anche il costo del cavo PSH27-50F-D1(59euro) ---------------------------------------- AUTORE: 384 DATA :26/07/2007 - 13:34:57 ---------------------------------------- [quote="gianni1":350vjr14]allora se ho capito bene (scusa ma e' la prima volta ke affronto questo argomento), sostituisco la DAQcard-DIO-24(229euro) e il connector block CB-50LP(79euro) con la USB-6501(89euro)... quello ke devo fare e' il controllo on\off del motore ma devo anche controllare la velocita'...pensavo di montare sul motore un encoder incrementale e mandare la sua uscita TTL in ingresso alla stessa USB...se tutto quello ke ho detto e' esatto,la tua soluzione sembra ottima!..[/quote:350vjr14] Per rilevare un segnale da un encoder la 6501 non è abbastanza veloce. Devi usare una scheda che abbia almeno un counter up/down a bordo, tipo la [url=http://sine.ni.com/nips/cds/view/p/lang/it/nid/203189:350vjr14]USB-6211[/url:350vjr14]; però ti costa come la somma di ciò che ora hai. Chiaramente ci sono vantaggi e svantaggi nell'usare l'usb rispetto al PCI o alla PCMCIA - va visto caso per caso. Sicuramente la soluzione usb è quela con minor numero di componenti: c'è la scheda e basta, niente cavi speciali, terminaliere e via dicendo. Mi dispiace, ma roba che costi pocco e che abbia funzioni avanzate (cioè, oltre a qualche input analogico e i/o digitale) non c'è, nemmeno della concorrenza. [quote="gianni1":350vjr14]p.s. ovviamente mi servira' anke un cavo USB ke non trovo qui [url:350vjr14]http://sine.ni.com/nips/cds/view/p/lang/it/nid/201630[/url:350vjr14] o sbaglio?[/quote:350vjr14] Il cavo USB è incluso nella confezione. Ma poi è un banale cavo USB, da 5-10 euro (se proprio insisti nel prendere quelli di una qualche marca molto conosciuta, per cui paghi tutta la pubblicità!) [quote="gianni1":350vjr14]p.p.s. gia' ke ci sono ma come si crea il collegamento ipertestuale su una parola qualsiasi invece di scrivere tutto l'indirizzo?[/quote:350vjr14] Quando stai editando il messaggio devi selezionare la parola (o le parole) che ti interessa e cliccare sul pulsantino "URL" che trovi sopra la text box dove stai lavorando. Il tuo testo apparirà cosí: [ u r l ] parola [ / u r l ] Poi devi aggiungere il link: [ u r l = h t t p : / / w w w . l i n k . c o m ] parola [ / u r l ] Ed il giocco è fatto!... Nota che qui vedi degli spazi che in realtà non ci saranno. Li ho dovuto usare per "ingannare" l'editor e far comparire il testo "crudo", altrimenti si vedrebbe soltanto il risultato. Ad ogni modo, fai delle prove; anzichè inviare i tuoi messaggi di prova, clicca sul pulsante "anteprima" posto a sinistra di quello "invia"; cosí vedi il risultato senza effettivamente inviarlo, con sotto ancora la text box dove continuare l'editing. Vedrai che con pochi tentativi ci prenderai la mano!...   ---------------------------------------- AUTORE: 482 DATA :26/07/2007 - 14:17:37 ---------------------------------------- [quote="gianni1":3i0s6f1f]...pensavo di montare sul motore un encoder incrementale e mandare la sua uscita TTL in ingresso alla stessa USB...[/quote:3i0s6f1f] Anche la DAQCardDIO24 non va bene per un encoder. I segnali di queste schede (questa o la PCI6503) sono digitali statici. Al limite potresti riuscire ad acquisire una ruota fonica ma non un encoder. ---------------------------------------- AUTORE: 1596 DATA :26/07/2007 - 18:52:21 ---------------------------------------- ok...ho buttato 2 giorni alla ricerca di questi componenti... la DAQcard-DIO-24 non va bene come nemmeno la PCI-6503(avevo pensato a questa per una scelta +economica rispetto alla DAQcard) perche' [quote:1o0apxu3]Anche la DAQCardDIO24 non va bene per un encoder. I segnali di queste schede (questa o la PCI6503) sono digitali statici. ,[/quote:1o0apxu3] scusa gepponline allora non mi devo immaginare in uscita dall'encoder un'onda quadra che entra nella mia scheda e la visualizzo con LabVIEW per poi elaborarla?oppure all'uscita dell'encoder l'onda e' quadra ma il device non la riconosce come tale?...non riesco a capire! [quote:1o0apxu3] Per rilevare un segnale da un encoder la 6501 non è abbastanza veloce. [/quote:1o0apxu3] la USB-6501 non e' abbastanza veloce?leggo [url=http://pdfdownload.04340.com/pdf2html.php?url=http%3A%2F%2Fwww.ni.com%2Fpdf%2Fproducts%2Fus%2F20054920301101dlr.pdf:1o0apxu3]qui[/url:1o0apxu3]...Maximum input frequency...5 MHz e' questo ke intendi???non credo ke il mio motorino ke girera' al max a 50giri/sec (ma anke molti di meno) possa dare problemi...o sto sbagliando tutto e non sto capendo niente??? \":?\" [quote:1o0apxu3]Devi usare una scheda che abbia almeno un counter up/down a bordo, tipo la USB-6211; però ti costa come la somma di ciò che ora hai.[/quote:1o0apxu3] perche' devo avere un counter up\down?non mi basta un counter come quello della USB-6501 che mi conta i fronti di discesa? \":?\" p.s.grazie gyc adesso URLo anche io \":D\" ...eh gyc guardando bene, l'help compare quando ci passi sopra col mouse,ma la stessa cosa non succede con la citazione...come fate a scrivere il nome dell'autore della citazione e non come ho fatto io che ho riportato solo la citazione senza nome??? p.p.s.grazie ad entrambi per la collaborazione!!! \":wink:\" ---------------------------------------- AUTORE: 482 DATA :27/07/2007 - 07:11:57 ---------------------------------------- [quote="gianni1":26p6hrx7] [quote:26p6hrx7]Anche la DAQCardDIO24 non va bene per un encoder. I segnali di queste schede (questa o la PCI6503) sono digitali statici. ,[/quote:26p6hrx7] scusa gepponline allora non mi devo immaginare in uscita dall'encoder un'onda quadra che entra nella mia scheda e la visualizzo con LabVIEW per poi elaborarla?oppure all'uscita dell'encoder l'onda e' quadra ma il device non la riconosce come tale?...non riesco a capire! [quote:26p6hrx7][/quote:26p6hrx7][/quote:26p6hrx7] No , scusa, forse non mi sono speigato bene, è una questioen di velocità. La 6503 (e la DaqCard corrispondente) sono nate come schede per acquisire che ne so, pulsanti, interruttori e cose simili e per l'elettronica che montano non sono adatte ad acquisire frequenze elevate come puo' essere quella di un encoder. Ovvio, se tu hai un encoder con pochissimi impulsi/giro che gira ad una velocità bassa, magari ce la puoi anche fare ma in linea di massima non è quello il loro lavoro \":wink:\" ---------------------------------------- AUTORE: 1596 DATA :27/07/2007 - 08:17:41 ---------------------------------------- scusate se insisto... tale motore mi servira', agganciato ad un sistema di 4carrucoline, a far scorrere un filo lungo un percorso rettangolare. Guardando un punto fisso su tale filo, esso non viaggera' ad una velocita' piu' alta di 1m/sec. Poiche' sul motore stesso e' aggangiata una 5 carrucolina(di diametro non inferiore ad 1cm) (le altre 4 sono solo delle guide per seguire un percorso rettangolare), essa rilascera' ad ogni giro del motore 3.14cm di filo. Cio' significa che per rilasciare 1m in 1 sec dovro' avere circa 32 giri di motore\sec. A questo punto credo ke non ci siano problemi per la velocita'...se mi confermate cio' ve ne saro' grato. Ora vi kiedo una cosa in piu': mi potete consigliare un encoder ke vada bene per tale lavoro? Inoltre il motore ke ho e ke purtroppo devo utilizzare e' un motore AIRPAX 9904 120 52407 con le seguenti caratteristiche: # tension 6V = 25 Upm/idle current 180 mA # length (without axle): 66.5 mm # ø engine part: 33 mm/ø transmission part: 38 mm # assembly flange 39.5 x 39.5 mm # axle (ø x l): 4 x 9mm tali specifiche le ho trovate in rete (solo queste???:roll: )...ma cm faccio a sapere il max di giri\sec ke tale motore puo' sostenere solamente con tali informazioni? \":?\" [quote="gepponline":2d1wnbyg]No , scusa, forse non mi sono speigato bene, è una questioen di velocità.[/quote:2d1wnbyg] no,ti sei spiegato bene...mi riferivo anke al fatto ke dici segnali digitali statici...con digitali statici cosa intendi? ...inoltre collegando l'uscita dell'encoder alla USB-6501 vedro' o no l'onda quadra?o per vedere l'onda quadra bisogna fare qualcosa in piu'?ma eventualmente riusciro' anke a fare un controllo a ciclo chiuso della velocita' del motore con tali componenti? grazie gepponline!!! p.s. comunque la citazione nn mi funziona \":roll:\" ---------------------------------------- AUTORE: 113 DATA :27/07/2007 - 08:43:35 ---------------------------------------- La USB-6501 ha in effetti un contatore a 32 bit che puoi utilizzare per contare gli impulsi dell'encoder fino a 5MHz. Tieni presente che è una scelta un po' ai minimi sindacali, nel senso che il contatore conta solo in un senso quindi non puoi, senza hardware esterno, controllare il senso di rotazione. I tuoi post all'inizio hanno tratto un po' in inganno perchè sembrava che volevi collegare la fase dell'encoder a un ingresso digitale di una porta DIO e non a un counter... ---------------------------------------- AUTORE: 482 DATA :27/07/2007 - 10:49:32 ---------------------------------------- Consegnali statici si intendono dei segnali "lenti". Nel dettaglio no nti so dire cos asia..probabilmenet qualcosa che ritarda la discriminazione tra segnale basso e segnale alto. Se stai sulla USB puoi acquisire l'encoder e dovrai trovare la giusta quantità di impulsi giro, se vuoi usare questa PCI-6503 rinunciaci perchè 32 giri al secondo sono comunque tanti anche se tu avessi solo un impulso al giro. Perchè poi li il limite e' dato anche dal software. ipotizzando un impulso al giro (cosa che gli encoder solitamente ne hanno moooooolti di piu') dovresti fare 32 cicli al secondo, valutando che è buona norma andare al doppio della velocità massima, diciamo 70 cicli al secondo. 14 Millisecondi al ciclo...boh..nonso i digitali nella scheda se ti stanno dietro.... \":?:\" ---------------------------------------- AUTORE: 384 DATA :27/07/2007 - 12:01:28 ---------------------------------------- Non è solo o principalmente il problema: è che devi ricostruire l'onda quadra per discriminare velocità e senso di rotazione, quindi devi campionare non a 2 olte la massima frequenza, ma almeno 10 volte. Poi, appunto, io non conosco encoder da 1 passo al giro. Il minimo che conosco sono 100 passi al giro; per 32 rpm fanno un'onda da 3.2 KHz che quindi va campionata almento a 10 volte, cioè 32 KHz - per 2 canali. Quella USB non ce l a fa, assolutamente! Per questo parlavo dei counter e per questo si usano. Con il counter puoi andare a leggere il conteggio più lentamente e con il tempo fra letture si può calcolare la velocità ed il senso di rotazione. Ribadisco che - sfortunatamente - materiale a buon mercato per fare cose non banali non esiste! ---------------------------------------- AUTORE: 1596 DATA :27/07/2007 - 13:00:12 ---------------------------------------- ...sto nel pallone... leggo dal data sheet: [quote="USB-6501":1vo2ih9g][size=150:1vo2ih9g]Counter[/size:1vo2ih9g] Number of counters ............................ 1 (P2.7 can be configured as the counter) Resolution ........................................... 32 bits Counter measurements....................... Falling edge counting Maximum input frequency.................. 5 MHz Minimum high pulse width................. 100 ns Minimum low pulse width.................. 100 ns[/quote:1vo2ih9g] gyc, ok vanno bene i 32khz (anke se non mi e' chiaro perche' proprio 10 volte e non mi bastano le poco piu' delle 2 volte come recita il teorema di shannon!!!)! Ma allora il valore di 5Mhz del data sheet cosa significa? E poi [quote="gyc":1vo2ih9g]Per questo parlavo dei counter e per questo si usano. Con il counter puoi andare a leggere il conteggio più lentamente e con il tempo fra letture si può calcolare la velocità ed il senso di rotazione. [/quote:1vo2ih9g] perche' questa USB non ha il counter? \":roll:\" mi sembra ke ne abbia uno, non mi basta? scusate se vi scoccio ma nn riesco a capire!!! \":(\" ---------------------------------------- AUTORE: 384 DATA :27/07/2007 - 16:04:13 ---------------------------------------- [quote="gianni1":2zuvnmgk] gyc, ok vanno bene i 32khz (anke se non mi e' chiaro perche' proprio 10 volte e non mi bastano le poco piu' delle 2 volte come recita il teorema di shannon!!!)![/quote:2zuvnmgk] Leggi [url=http://www.ilvg.it/forum/viewtopic.php?p=9036#9036:2zuvnmgk]qui[/url:2zuvnmgk]. [quote="gianni1":2zuvnmgk]Ma allora il valore di 5Mhz del data sheet cosa significa?[/quote:2zuvnmgk] É la massima frequenza nel pin di conteggio del counter, non la massima frequenza a cui riesce a campionare. [quote="gianni1":2zuvnmgk]perche' questa USB non ha il counter? \":roll:\" mi sembra ke ne abbia uno, non mi basta? scusate se vi scoccio ma nn riesco a capire!!! \":(\"[/quote:2zuvnmgk] Ha un counter, ma queso counter è unidirezionale. Avendo un solo ingresso di conteggio, non riesci a discriminare il senso di rotazione dell'encoder. Se la cosa ti va bene lo stesso puoi usarlo, ovviamente. É solo che non ho mai visto montare un encoder per poi "buttare" quell'informazione. Allora, piuttosto, trova il modo di incollare un magnetino all'asse del motore e rileva il movimento con un semplice "reed". Te la cavi con pocchi euro anzichè 150-200 dell'encoder.   ---------------------------------------- AUTORE: 1596 DATA :27/07/2007 - 18:02:37 ---------------------------------------- ok ho capito per quanto riguarda il campionamento (10 volte)... [quote="gyc":h1sp5rv8]É la massima frequenza nel pin di conteggio del counter, non la massima frequenza a cui riesce a campionare. [/quote:h1sp5rv8] quindi per quanto riguarda il conteggio il counter non ha problemi...ora mi chiedo,il segnale ke esce dal counter ed entra nella USB, me lo ritrovo disponibile per il SW LabVIEW???voglio dire...non saro' io poi ad impostare, nel VI di acquisizione, una frequenza di campionamento tale da farmi ricostruire il segnale???..e' cosi' oppure no??? [quote="gyc":h1sp5rv8]Ha un counter, ma queso counter è unidirezionale. Avendo un solo ingresso di conteggio, non riesci a discriminare il senso di rotazione dell'encoder. Se la cosa ti va bene lo stesso puoi usarlo, ovviamente. [/quote:h1sp5rv8] e' vero hai ragione ma nn mi interessa il senso di rotazione. [quote="gyc":h1sp5rv8]Allora, piuttosto, trova il modo di incollare un magnetino all'asse del motore e rileva il movimento con un semplice "reed".[/quote:h1sp5rv8] potrebbe essere un'ottima idea se solo sapessi come prelevare l'info sulla velocita'..mi devo studiare un po' l'argomento..nn so come fare...\":roll:\" grazie ancora... ---------------------------------------- AUTORE: 384 DATA :27/07/2007 - 19:41:27 ---------------------------------------- [quote="gianni1":3tyfcr9o]quindi per quanto riguarda il conteggio il counter non ha problemi...ora mi chiedo,il segnale ke esce dal counter ed entra nella USB, me lo ritrovo disponibile per il SW LabVIEW???voglio dire...non saro' io poi ad impostare, nel VI di acquisizione, una frequenza di campionamento tale da farmi ricostruire il segnale???..e' cosi' oppure no???[/quote:3tyfcr9o] NO. Se si usa il counter, non si ricostruisce l'onda quadra perchè il valore di conteggio già ci dice "quanto" il motore ha "caminato". É proprio questo il senso di usare un counter! Il lavoro lo fa direttamente l'hardware al posto del software (cioè, il programmatore!) Leggendo il counter a intervalli regolari e misurando questi intervali si calcola banalmente la velocità. [quote="gianni1":3tyfcr9o]potrebbe essere un'ottima idea se solo sapessi come prelevare l'info sulla velocita'..mi devo studiare un po' l'argomento..nn so come fare...\":roll:\" grazie ancora...[/quote:3tyfcr9o] Il magnetino + reed sono la versione a buon mercato dell'encoder, solo con 2 passi al giro (ammesso che usi un magnete a barra e fai passare entrambe le estremità davanti al reed). Il resto è come sopra...   ---------------------------------------- AUTORE: 1596 DATA :29/07/2007 - 14:33:39 ---------------------------------------- grazie ancora gyc, nei prossimi giorni mi mettero' un po' all'opera e poi ti faro' sapere... \"8)\" ---------------------------------------- AUTORE: 384 DATA :29/07/2007 - 15:04:42 ---------------------------------------- buon divertimento!... \":)\" ---------------------------------------- AUTORE: 1596 DATA :02/08/2007 - 09:38:45 ---------------------------------------- rieccomi,salve! sto passando alla fase operativa e necessiterei di ulteriori chiarimenti. Il mio progetto e' riportato in allegato. MOTORE:(ho trovato qualche dato in piu') [url=http://www.micromotors.nl/download/:3371vr6p]9904 120 52407[/url:3371vr6p] -->A81_IC34.0.15Nm.pdf la mia idea era creare un controllo PID seguito da una modulazione PWM ho letto un po' di cose e sembrerebbe essere la scelta migliore)da dare in ingresso alla USB-6210. Potete darmi qualche suggerimento in merito? Va bene quello che ho detto?...non ho ancora le idee ben chiare! (gyc: e' vero ke mi hai spiegato un po' di cose sull'encoder ma mi servirebbero delle spiegazioni ad un livello piu' basso \":oops:\" ...per dirti,faccio confusione sull'uscita dell'encoder e come e cosa prelevo in LabVIEW:non ti chiedo di passarmi i VI ma a parole...thanks!!!) Inoltre, credo che il segnale in ingresso alla USB possa andare dai 20 ai 100 khz (dipende dall'encoder e dalla speed del motore vero?...non l'ho scelto ancora...qualche consiglio?). A questo punto, potete darmi qualche consiglio sulla scheda rele'?da fare ad hoc oppure esiste in commercio?ne conoscete qualcuna che fa al caso mio? \":roll:\" ---------------------------------------- AUTORE: 1596 DATA :02/08/2007 - 09:42:45 ---------------------------------------- e l'allegato??? \":o\" ...eccolo!!! \":wink:\" ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 10:34:19 ---------------------------------------- L'idea è buona e giusta. Però ci sono ancora alcune cose: non puoi implementare un controllo PWM con dei relè. La frequenza di commutazione in un PWM è solitamente di diverse decine di KHz, mai sotto i 20KHz. Ma anche se nel tuo caso, essendo un esercizio accademico, potessi scendere a 5 KHz, i relè non sono fatti per queste velocità: il tempo di comutazione di un relè dimensionalmente piccolo e di BUONA MARCA non è mai inferiore ai 2 milisecondi! A proposito di encoders, la cosa non è complicata. Dai un'occhiata [url=http://206.167.134.155/bb/ref/ni/instrupedia/appnotes/73417786256869005E5FC3.htm:3g43rtey]qui[/url:3g43rtey]. Ho trovato anche [url=http://www.boondog.com/tutorials/2993pwm/2993pwm.htm:3g43rtey]questo link[/url:3g43rtey] e anche [url=http://www.boondog.com/tutorials/7266/7266.htm:3g43rtey]questo[/url:3g43rtey], di un progetto molto simile al tuo. Non usa schede NI ma il problema è lo stesso. Dagli un'occhio. E come sempre non dimenticare gli esempi; cerca con "pwm" e poi con "encoder" e troverai alcune cose da studiare.   ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 10:35:52 ---------------------------------------- Ah, dimenticavo. Il tuo diagramma non è giustissimo - te ne renderai conto - ma va bene per illustrare il concetto (tranne che per i relè, come accennato prima).   ---------------------------------------- AUTORE: 1596 DATA :02/08/2007 - 10:41:09 ---------------------------------------- forse cosi'!!! ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 10:43:39 ---------------------------------------- Ecco ancora [url=http://zone.ni.com/devzone/cda/ph/p/id/132:22qwia8a]un riferimento[/url:22qwia8a] sugli encoders.   ---------------------------------------- AUTORE: 1596 DATA :02/08/2007 - 10:53:48 ---------------------------------------- grazie gyc, [quote="gyc":25vqag40]A proposito di encoders, la cosa non è complicata. Dai un'occhiata qui. [/quote:25vqag40] non si apre! sei un grande...ho letto gia' parecchio ma sei riuscito a trovare cose nuove!!! studiero' ancora un po'... ma allora visto che il rele' non mi sta dietro, come faccio? se la risposta la trovo negli articoli ke mi hai suggerito, non rispondere! \":wink:\" ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 11:06:01 ---------------------------------------- [quote="gianni1":22tiozeh]non si apre![/quote:22tiozeh] A me si, senza problemi. Prova [url=http://www.mediafire.com/?1xjyreg41xi:22tiozeh]qui.[/url:22tiozeh] [quote="gianni1":22tiozeh]ma allora visto che il rele' non mi sta dietro, come faccio?[/quote:22tiozeh] Devi pilotare il motore con dei transistor!   ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 11:49:58 ---------------------------------------- Alcuni link interessanti per pilotaggio di motori: http://www.bobblick.com/techref/project ... ridge.html http://www.robotroom.com/HBridge.html http://matthieu.benoit.free.fr/moteur2.htm http://www.solorb.com/elect/pwm/pwm0/ http://www.solorb.com/elect/solarcirc/pwm2/index.html   ---------------------------------------- AUTORE: 1596 DATA :02/08/2007 - 16:02:14 ---------------------------------------- voila'... mi hanno suggerito di fare diversamente... allego il nuovo progetto... gyc mi puoi confermare quello che diro' in seguito?...merci... ...faro' solo un controllo PID sulla velocita' e non piu' anche una PWM... prelevero' la tensione dall'uscita analogica della USB (sono passato alla USB 6211!!!) e la mando allo stadio amplificatore e il gioco e' fatto! mi sembra strano ma io vedo solo vantaggi: 1)non devo fare la PWM 2)non devo pilotare il motore con i transistor 3)devo fare solo un piccolo stadio AMPlificatore 4)ci impieghero' meno tempo (il costo e' un po' aumentato ma se il tempo realizzativo e' minore va bene lo stesso!!!) e' davvero cosi'? o c'e' qualcosa che la mia mente non vede??? \":roll:\" vi ricordo (ricordo anche a me stesso in realta')che il mio obiettivo e' fare un controllo ON/OFF e allo stesso tempo di velocita'! il progetto almeno su carta deve essere pronto per lunedi'!!!! \":o\" HELP ME!!!! ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 16:41:40 ---------------------------------------- [quote="gianni1":mkkgm59s]...faro' solo un controllo PID sulla velocita' e non piu' anche una PWM... prelevero' la tensione dall'uscita analogica della USB (sono passato alla USB 6211!!!) e la mando allo stadio amplificatore e il gioco e' fatto! mi sembra strano ma io vedo solo vantaggi: 1)non devo fare la PWM 2)non devo pilotare il motore con i transistor 3)devo fare solo un piccolo stadio AMPlificatore 4)ci impieghero' meno tempo (il costo e' un po' aumentato ma se il tempo realizzativo e' minore va bene lo stesso!!!) e' davvero cosi'? o c'e' qualcosa che la mia mente non vede??? \":roll:\" vi ricordo (ricordo anche a me stesso in realta')che il mio obiettivo e' fare un controllo ON/OFF e allo stesso tempo di velocita'! il progetto almeno su carta deve essere pronto per lunedi'!!!! \":o\" HELP ME!!!![/quote:mkkgm59s] 1) non è che non devi. è una tua scelta non usare un pilotaggio PWM. 2 e 3) in realtá non capisco come tu faccia un amplificatore senza i transistor! Anche se usi un circuito integrato e non dei transistor discreti, la sostanza non cambia... 4) magari nel totale si, ma non credo che la differenza sia sostanziale. Sicuramente il controllo lineare, relativamente a quello PWM, è più intuitivo e più veloce da implementare. Nel tempo totale non so quanto peserà perchè dipende da quanti altri "fronzoli" ti si richiede. Direi che in linea di massima sei sulla pista giusta! Buon divertimento... \":)\"   ---------------------------------------- AUTORE: 1596 DATA :02/08/2007 - 17:00:55 ---------------------------------------- grazieeeee...mio salvatore!!! \":D\" [quote="gyc":1lsgbett]2 e 3) in realtá non capisco come tu faccia un amplificatore senza i transistor! Anche se usi un circuito integrato e non dei transistor discreti, la sostanza non cambia... [/quote:1lsgbett] sisi hai ragione, sorry!..era il fatto di pensare all'amplificatore che mi risultava piu' semplice! allora presentero' questo nuovo schema a blocchi \"8)\" ciaooo!!!grande grande grande GYC \":wink:\" ---------------------------------------- AUTORE: 1596 DATA :09/08/2007 - 10:07:50 ---------------------------------------- salve!!! [quote="gyc":2mlage9m]Con il counter puoi andare a leggere il conteggio più lentamente e con il tempo fra letture si può calcolare la velocità ed il senso di rotazione.[/quote:2mlage9m] [quote="gyc":2mlage9m]Leggendo il counter a intervalli regolari e misurando questi intervali si calcola banalmente la velocità. [/quote:2mlage9m] non mi e' chiara una cosa: quando dici...leggere il conteggio piu' lentamente...in che modo?e piu' lentamente rispetto a che cosa?...ma ti riferisci alla modalita' X1, X2, X4??? [quote="gyc":2mlage9m]misurando questi intervalli[/quote:2mlage9m]...quando aziono il mio motore, devo far partire anche un orologio per misurare il tempo??? Inoltre ho dato un'occhiata ai VI Measure Angolar Position, Measure Angolar Position Buffered Cont, Measure Angolar Position Buffered Finite ma non capisco: dall'encoder ho le uscite A,B,Z ma le devo collegare ad un solo counter? e l'altro counter a cosa mi serve?..magari per la generazione del treno di impulsi da dare in ingresso al Sample Clock??? Ma quale VI fa al mio caso???...troooppo confuso!!! \":|\" ...mi puoi guidare un po'??? THX!!! ---------------------------------------- AUTORE: 384 DATA :12/08/2007 - 23:14:13 ---------------------------------------- sarò sintetico, perdonami, per mancanza di ulteriore opportunità. dicevo "più lentamente" rispetto a quanto dovresti riuscire a fare se dovessi rilevare le transizioni dei segnali A e B con gli ingressi digitali. Se colleghi l'encoder al counter (solo A e B, lo Z non serve) ogni volta che leggerai il conteggio sai dove l'encoder si è spostato. Per misurare la velocità devi appunto misurare il tuo tempo ciclo. Puoi farlo con i blocchi già disponibili in LV. Se però la precisione che offrono non fosse sufficiente, potrai usare il secondo counter per farlo. Questo counter non servirà ad altro, se hai solo 1 encoder. Ora non ho LV sotto mano. Devi cercare ancora con l'help in linea, il sito NI e, al limite, prova anche su [url=http://forums.lavausergroup.org/:3nowamgg]LAVA[/url:3nowamgg]. ---------------------------------------- AUTORE: 1596 DATA :13/08/2007 - 17:23:05 ---------------------------------------- grazie gyc... ho cominciato a preparare qualcosa: ho visto un po' di esempi e ho assemblato il tutto alle mie esigenze (almeno spero). ho alcuni dubbi: ho visto alcuni esempi come il "PID Control Counter input.vi"che utilizzano i VI "DAQmx Timing(Sample Clock).vi". Io nel VI che posto non li ho inseriti (perche' non mi e' ancora ben chiara la faccenda)...ma servono anche nella mia applicazione? Nel VI i numeri 6 e 2.51 sono rispettivamente la tensione max del motore e i rad/sec con carico nominale. Inoltre non mi e' chiaro come sfruttare il Z-index [quote="gyc":hqqeyra3]Per misurare la velocità devi appunto misurare il tuo tempo ciclo. Puoi farlo con i blocchi già disponibili in LV.[/quote:hqqeyra3] Nel VI che ho postato dove ho scritto QUI, c'e' un errore ovvero devo inserire una parte di codice che mi dia i radianti al secondo e quindi devo misurare il tempo di ciclo come dici tu.Vero?(forse a questo punto mi servira' un Sample Clock??? \":roll:\" ..non so..\":?\" ) ..scusami se mi rivolgo sempre a te ma sei l'unica persona che mi sta dando una mano..non avevo mai studiato controlli automatici fino a qualche settimana fa (con questo nn voglio giustificarmi delle cavolate che scrivo ma e' un dato di fatto!!!)... ---------------------------------------- AUTORE: 1596 DATA :14/08/2007 - 10:34:36 ---------------------------------------- salve!!! ho aggiunto una parte al VI...quella ke mi dovrebbe restituire il periodo della forma d'onda... qualcuno di buona volonta' potrebbe correggermi il VI? mi e' venuto un altro dubbio... la parte superiore del VI mi restituisce i radianti complessivi...ma se dalle specifiche dell'encoder conosco tra due tacche quanti radianti ho, ho che il valore radianti e' fissato...poi al variare della velocita' del motore, aumenta o diminuisce il periodo tra 2 fronti(ipotizzo modalita' X1) e di conseguenza diminuisce o aumenta la velocita'(rad/sec)..giusto??? quindi mi serve poter conoscere solo il periodo tra 2 fronti successivi...vero? help me please...sto facendo una confusione terribile..qualcuno puo' darmi dei suggerimenti???????? quindi la parte superiore del VI, quella relativa alla misura angolare la devo sostituire col valore costante dei radianti tra 2 tacche dell'encoder o potrei comunque sfruttarla..non so come??? \":?\" \":?\" \":?\" ---------------------------------------- AUTORE: 1596 DATA :14/08/2007 - 11:59:39 ---------------------------------------- un'altra cosa che non mi e' chiara e' la tipologia di esempi come quello che vi allego... sotto riporto il metodo utilizzato preso da [url=http://digital.ni.com/manuals.nsf/websearch/F6C32684BEB1E1038625728000720D2E:sszruuw3]NI USB-621x User Manual[/url:sszruuw3] [color=red:sszruuw3]Measure High Frequency with Two Counters[/color:sszruuw3] In this method, you measure one pulse of a known width using your signal and derive the frequency of your signal from the result. This method is good for high frequency signals. In this method, you route a pulse of known duration (T) to the Gate of a counter. You can generate the pulse using a second counter. You also can generate the pulse externally and connect it to a PFI terminal. You only need to use one counter if you generate the pulse externally. Route the signal to measure (F1) to the Source of the counter. Configure the counter for a single pulse-width measurement. Suppose you measure the width of pulse T to be N periods of F1. Then the frequency of F1 is N/T. Quindi il periodo 1/F1. Ora mi chiedo e vi chiedo: ma questo VI come fa ad implementare il metodo suddetto se in input mi permette di inserire solo il nome del counter??? forse saro' io a non capire, ma le spiegazioni riportate nei VI non mi sembrano sufficienti a farne capire il funzionamento almeno a chi parte da zero come me \":!:\" \":o\" ---------------------------------------- AUTORE: 384 DATA :15/08/2007 - 11:53:14 ---------------------------------------- Non riesco ad aprire i tuoi vi per chè non ho nessuna delle versioni 8.x installate. Ad ogni modo, confesso che non capisco quali siano ee da dove vengono i tuoi dubbi. Il counter va usato come contattore up/down in cui uno dei segnali dell'encoder (per esempio il "A") va collegato oall'ingresso di clock e l'altro (quindi il "B") va collegato all'ingresso "direction". In questo modo il conteggio si incrementa in una direzione e si decrementa in quella opposta. Se, rispetto alle tue necessità o punto di riferimento il comportamento non è quello giusto, basta scambiare "A" con "B" nei rispettivi ingressi del counter. Da software devi leggere il valore di conteggio del counter. Misurando il tempo intercorso fra una lettura e l'altra puoi calcolare la velocità. Sapendo il numero di passi per giro dell'encoder puoi ovviamente calcorare la velocità come vuoi: rad/s, gradi/s, ecc. L'uscita index ("Z") dell'encoder segnala l'avvenuta rotazione completa. Se usi un counter come ho descritto, l'index non serve a nulla. L'index è utile soltanto in alcuni casi di applicazioni di controllo numerico e dipende dal punto di applicazione dell'encoder; quando esso è applicato direttamente al motore, l'index dificilmente può essere usato. Per quanto riguarda il sample clock, usa il blocco per selezionare il "onboard clock" se proprio vuoi farlo. Per usare una sorgenete esterna devi avere un generatore, oppure usare l'altro counter, ma, francamente, per la tua applicazione non ne vedo la necessità. ---------------------------------------- AUTORE: 1596 DATA :15/08/2007 - 19:26:51 ---------------------------------------- grazie gyc...ti voglio kiedere una cosa...invece della USB6211...potrei utilizzare una PXI6071E che mi regalano...pero' ho letto le [url=http://digital.ni.com/manuals.nsf/websearch/06115536722DAA558625728E007E6BA4:3e6q6nly]specifiche[/url:3e6q6nly] e a pagina 5-1 vedo che per i due counter ho solo gli ingressi source e gate mentre per la [url=http://digital.ni.com/manuals.nsf/websearch/F6C32684BEB1E1038625728000720D2E:3e6q6nly]USB 6211[/url:3e6q6nly] ho anche gli ingressi A, B, Z...ma allora con la PXI suddetta non posso leggere l'encoder??? mi puoi illuminare? inoltre non tutti gli esempi della NI che giravano per la USB posso girare con la PXI come e.g. [color=green:3e6q6nly]meas angular position-buffered-cont-Ext clk.vi[/color:3e6q6nly] THX, Gianni!!! ---------------------------------------- AUTORE: 384 DATA :16/08/2007 - 19:24:02 ---------------------------------------- [quote="gianni1":3myshp0l]potrei utilizzare una PXI6071E che mi regalano...pero' ho letto le [url=http://digital.ni.com/manuals.nsf/websearch/06115536722DAA558625728E007E6BA4:3myshp0l]specifiche[/url:3myshp0l] e a pagina 5-1 vedo che per i due counter ho solo gli ingressi source e gate mentre per la [url=http://digital.ni.com/manuals.nsf/websearch/F6C32684BEB1E1038625728000720D2E:3myshp0l]USB 6211[/url:3myshp0l] ho anche gli ingressi A, B, Z...ma allora con la PXI suddetta non posso leggere l'encoder???[/quote:3myshp0l] Se leggi la pagina 5-7 vedi che c'è anche l'ingresso up/down. L'unica è che per poterlo usare si perde un'uscita digitale visto che condivide il pin P0.6 9per il counter 0). Quindi puoi tranquillamente collegare un encoder: A al 'source' e B al "up/down" (o viceversa se conta al contrario!) [quote="gianni1":3myshp0l]inoltre non tutti gli esempi della NI che giravano per la USB posso girare con la PXI come e.g. [color=green:3myshp0l]meas angular position-buffered-cont-Ext clk.vi[/color:3myshp0l][/quote:3myshp0l] Puoi sempre modificarli ed adattarli. Solitamente queste modifiche sono limitate ai primi blocchi della gestione del dispositivo. ---------------------------------------- AUTORE: 1596 DATA :22/08/2007 - 08:55:26 ---------------------------------------- grazie gyc x l'ultima risp e buondi' a tutti... sto per acquistare l'encoder...ne ho visti vari e nelle specifiche leggo che posso avere vari output circuit...[color=red:3e65ebqh]RS 422(TTL-compatible)[/color:3e65ebqh], [color=red:3e65ebqh]push-pull[/color:3e65ebqh], [color=red:3e65ebqh]totem pole[/color:3e65ebqh]...ma a me serve un'uscita TTL vero?ma poi l'RS 422 e' sempre TTL compatible anche se non espressamente specificato???qual e' la differenza tra RS 422, TTL ,push-pull,totem pole??...ho fatto un po' di ricerche sul web ma non mi e' ancora chiara tale differenza. ---------------------------------------- AUTORE: 4 DATA :22/08/2007 - 10:28:24 ---------------------------------------- gianni1, [u:1pjyzyys]apri una discussione per ogni domanda che hai da fare[/u:1pjyzyys] è gratis. Non te la prendere ma in questa maniera chi legge non capisce nulla. Il forum serve a tutti, tutti i tuoi dubbi possono essere gli stessi di altri e le risposte che ti vengono date non servono solo a te ma a tutti. Usando il forum in questa maniera diventa difficile se non impossibile seguire il filo delle discussioni e trovare gli argomenti di interesse per gli altri. Questo per dire che il forum di ilvg.it [u:1pjyzyys]NON[/u:1pjyzyys] è un help desk ma un luogo di condivisione. ---------------------------------------- AUTORE: 1596 DATA :22/08/2007 - 11:18:04 ---------------------------------------- ...ho fatto quella domanda nello stesso post perche' appartiene a quel progetto...aprire un altro post mi sembrava fuori luogo in quanto non so se l'argomento encoder in assoluto possa interessare in un forum dove si spera di trovare dei chiarimenti su un linguaggio di programmazione... ---------------------------------------- AUTORE: 1596 DATA :24/08/2007 - 16:52:03 ---------------------------------------- [quote="Alberto.L":2bk3y5lb]Ciao Nicola! Ho affrontato lo stesso problema di misura in continuo della frequenza di impulsi (nel mio caso erano generati da un encoder); effettivamente il problema è che il tempo per eseguire una misura (finestra temporale di misura) deve essere sufficientemente lungo per avere un dato preciso, il che rende impossibile inserire la routine all'interno del loop principale dell'applicazione pena il rallentamento della stessa. Ho risolto il problema facendo girare la routine di misura della frequenza in un loop parallelo, separato dal principale, che trasmette il dato tramite una queue. Nella mia applicazione ho utilizzato le traditional DAQ, però lo stesso può essere fatto con i DAQ-Mx. Se fai una ricerca in LV trovi diversi esempi per la misura di frequenza. Tieni presente che vengono utilizzati due contatori: uno per contare gli impulsi e uno che agisce come gate temporizzato sul primo. [color=red:2bk3y5lb]Se ti serve ti posso allegare quello che ti ho descritto[/color:2bk3y5lb], la base parte dall'esempio di LV: MFC measure freq cont.vi. P.S. Utilizza i conters STC, quelli ad esempio delle schede della serie E. Ciao, Alberto[/quote:2bk3y5lb] visto che io sto affrontando lo stesso problema che tu hai affrontato qualche anno fa (il [url=http://www.ilvg.it/forum/viewtopic.php?p=6069:2bk3y5lb]post[/url:2bk3y5lb] e' datato 28 Marzo 2006), ti sarei grato se tu lo potessi allegare se ovviamente quello che hai detto non vale solo per Nicola... Grazie Tante!!! p.s. magari potrei chiarirmi le idee una volta per tutte!!! ---------------------------------------- ================================================================================ Bluetooth ================================================================================ AUTORE: 2125 DATA :25/07/2007 - 16:01:52 ---------------------------------------- Ciao a tutti, vorrei fare un Vi che mi rilevi i dispositivi BT che rileva il pc. Sono un neofita, quindi avrei bisogno di qualche consiglio fondamentale almeno per partire...... Chiedo troppo? Grazie. ---------------------------------------- AUTORE: 1596 DATA :25/07/2007 - 16:10:32 ---------------------------------------- ..prova leggendo questo... http://zone.ni.com/devzone/cda/tut/p/id/3260 ---------------------------------------- AUTORE: 384 DATA :26/07/2007 - 00:44:58 ---------------------------------------- Quando inserisci un link, puoi renderlo cliccabile con il tag '[url]' e '[/url]'. Hai visto quei "pulsantini" che ci sono nella parte superiore della text box in cui scrivi i messaggi?   ---------------------------------------- AUTORE: 2125 DATA :26/07/2007 - 09:36:37 ---------------------------------------- Grazie, ho guardato il link. non nascondo che non ci capisco molto (ho propio appena iniziato) per esempio.... che cosa è il "UUID" ? dove lo trovo? Grazie ---------------------------------------- AUTORE: 482 DATA :26/07/2007 - 10:00:32 ---------------------------------------- [quote="gyc":2kcjp81u]Quando inserisci un link, puoi renderlo cliccabile con il tag '[url]' e '[/url]' [/quote:2kcjp81u] Non è necessario il TAG url , bastava che lasciasse uno spazio dopo i puntini \":wink:\" ---------------------------------------- AUTORE: 1596 DATA :26/07/2007 - 10:13:11 ---------------------------------------- gepponline: ke bravo moderatore \":)\" mi hai anke corretto il post..merci! eunos:un UUID (Universal Unique Identifier) è un numero a 128-bit usato per identificare unicamente un certo oggetto su Internet... ..anke io nn ne so molto ma questo argomento mi incuriosisce..quando avro' un po' di tempo leggero' qualcosa anche io... ---------------------------------------- AUTORE: 2125 DATA :26/07/2007 - 10:23:01 ---------------------------------------- Questo l'avevo letto pure io, ma non so dove trovarlo ---------------------------------------- AUTORE: 1596 DATA :26/07/2007 - 11:01:27 ---------------------------------------- vedi [url:1njed7h2]http://www.handheld-basic.com/documentation/text/page_1764.html[/url:1njed7h2] ...nn so se puo' servire..ti ripeto nn ne so +di te!!! \":(\" ---------------------------------------- AUTORE: 384 DATA :26/07/2007 - 13:41:22 ---------------------------------------- [quote="gepponline":3sy65nrb][quote="gyc":3sy65nrb]Quando inserisci un link, puoi renderlo cliccabile con il tag '[url]' e '[/url]' [/quote:3sy65nrb] Non è necessario il TAG url , bastava che lasciasse uno spazio dopo i puntini \":wink:\"[/quote:3sy65nrb] Bravo geppo. Ma funziona solo se si inserisce il link nudo. Comunque, loscopo di questa risposta è un'altro: visto che nell'arco delle últime ore è già la terza volta che qualcuno chiede istruzioni in merito a come usare i "tag", in particolare l'url, forse esiste un'help. Se si, dov'è?   ---------------------------------------- AUTORE: 2125 DATA :30/07/2007 - 09:36:03 ---------------------------------------- Mi sto demoralizzando..... ho provato a fare qualcosa ma il programma mi dice: error 58 Possible reason: The network function is not supported by the system anche se faccio girare gli esempi di BT mi torna lo stesso err. HELP ME! ---------------------------------------- AUTORE: 1596 DATA :30/07/2007 - 09:49:53 ---------------------------------------- ...vedi [url=http://forums.ni.com/rss/message?board.id=170&message.id=181649:3a6fopuk]qui[/url:3a6fopuk]se trovi qualcosa di utile... ---------------------------------------- AUTORE: 2125 DATA :30/07/2007 - 11:18:25 ---------------------------------------- peggio che andar di notte! \":?\" ---------------------------------------- AUTORE: 1944 DATA :27/12/2008 - 22:01:53 ---------------------------------------- Io ti do un consiglio che mi è stato dato da un mio professore delle superiori. Questo consiglio è più vecchio di LabVIEW: guarda gli esempi che sono presenti nel software. Certamente, dando un'occhiata all'esempio "Advanced Bluetooth Client", capirai come si possono rilevare i dispositivi e ottenere i relativi servizi che offrono. Poi con un po' di smanettamento in una VI nuova riuscirai a tirare assieme qualcosa di interessante. Un consiglio che ti passo è quello di utilizzare la connessione Bluetooth di windows, visto che ad usare il software proprietario dell'adattatore si fa molta difficoltà ad ottenere una connessione che poi si rivela inutile. Questo è il principale problema che ho avuto io e che mi ha bloccato per qualche mese. Ciao ciao Fabio ---------------------------------------- ================================================================================ NI 6723 ================================================================================ AUTORE: 2196 DATA :27/07/2007 - 08:55:00 ---------------------------------------- Ciao a tutti, dovrei leggere gli ingressi e scrivere sulle uscite della 6723 ma non so come fare. Devo usare qualche blocco di libreria ? ---------------------------------------- ================================================================================ Visualizzazione forme d'onda oscilloscopio LC534A LeCroy ================================================================================ AUTORE: 2203 DATA :27/07/2007 - 16:04:21 ---------------------------------------- Volevo chiedere a qualcuno se sa come fare a visualizzare entrambe le forme d'onda nel VI di un oscilloscopio LC534A LeCroy. Se qualcuno sa darmi qualche dritta ne sarei grato, ne ho bisogno per un progetto universitario. Grazie Mille!! ---------------------------------------- ================================================================================ Array_Cancellazione_Riempimento ================================================================================ AUTORE: 516 DATA :30/07/2007 - 20:22:04 ---------------------------------------- Ciao a tutti Vi scrivo nuovamente perchè non riesco a venirne a capo di questo mio problema . Quello che vorrei fare è questo : Vorrei cancellare un'array e poi riempirlo con dei dati che mi interessano , poi lo cancello nuovamente e lo riempio con altri dati Ho provato a realizzare il programma ma non funziona \":(\" in pratica dopo averlo cancellato quando vado a inserire altri dati ne mette di più come se li accodasse.Vi allego il progetto di test che ho realizzato con LV 7.1 potete dirmi dove sbaglio GRAZIE MILLE A TUTTI Sergio ---------------------------------------- AUTORE: 384 DATA :31/07/2007 - 00:10:07 ---------------------------------------- Per forza!!! Mentre nello "svuotamento" crei un array ex-novo e lo "butti" nell'indicatore, nel riempimento NON inizializzi lo shift register, quindi ogni volta ti ritrovi altri 5 elementi aggiunti al tuo array!!! Ahi, ahi, ahi... \":wink:\"   ---------------------------------------- AUTORE: 384 DATA :31/07/2007 - 00:21:14 ---------------------------------------- Per inizializzare l'indicatore, potresti buttarci dentro una costante array vuota oppure usare l'invoke node "Reinit to Dflt", cioè, reinizializzare al default, dove ovviamente il default deve essere array vuoto.   ---------------------------------------- AUTORE: 516 DATA :31/07/2007 - 06:58:15 ---------------------------------------- SEI UN MITO , ora posso continuare a lavorare al mio programma GRAZIE MILLE Ciao Sergio ---------------------------------------- ================================================================================ formula node semplice ================================================================================ AUTORE: 595 DATA :31/07/2007 - 14:58:10 ---------------------------------------- Ciao a tutti devo scrivere una semplice funzione y = x * 218,3 - 5,5; ma il risultato della stessa è sbagliato in quanto sicuramente è mal scritta anche se il VI non mi da errori help me se la scrivo cosi funziona perchè a = x * 218,3; y = a - 5,5; ---------------------------------------- AUTORE: 487 DATA :01/08/2007 - 07:37:01 ---------------------------------------- I risultati dovrebbero essere identici, l'unica cosa è che devi stare attento al separatore decimale: prova ad utilizzare il punto anzichè la virgola. ---------------------------------------- AUTORE: 595 DATA :06/08/2007 - 14:05:33 ---------------------------------------- grazie mille con il punto funziona ---------------------------------------- ================================================================================ Salvataggio dati di un array in excel ================================================================================ AUTORE: 2204 DATA :01/08/2007 - 11:48:19 ---------------------------------------- Di seguito mostro le stringhe che sono in ingresso al sottoprogramma di salvataggio i cui valori, compresi gli spazi, devono essere riportati su un foglio excel. VEDI IMMAGINE 1 IN ALLEGATO[/img] Il file che ottengo risulta essere corretto eccetto per il fatto che tutti gli spazi presenti nelle due stringhe non sono riportati; ciò è dovuto al fatto che la funzione “match” preleva esclusivamente i valori numeri. Ho provato diverse soluzioni alternative senza però ottenere il risultato voluto. Qualcuno sa dirmi come fare? Nei due messaggi successivi allego le immagini del mio sottoprogramma di salvataggio e del file excel che ottengo. ---------------------------------------- AUTORE: 2204 DATA :01/08/2007 - 12:27:18 ---------------------------------------- Purtroppo a causa delle dimensioni eccessive non riesco a riportare le immagini in allegato. Cerco quindi di spiegarmi con un esempio: Queste sono le tre stringhe che ricevo e che dovrei riportare così come sono sul file excel (DOVE CI SONO LE BARRE HO SPAZI VUOTI): 12 4 100 12 3 100 //// 100 15 6 100 15 8 //// 200 18 5 200 18 4 200 //// 200 //// 500 //// 500 //// 500 //// 500 Le dimensioni delle prime 2 stringhe sono identiche mentr la terza ha dimensione maggiore (ma ciò non ci interessa ai fini del mio scopo) RIPORTO ORA UN ESEMPIO DEL FILE CHE OTTENGO 12 4 100 12 3 100 15 6 100 15 8 100 18 5 200 18 4 200 //// 200 //// 200 //// 500 //// 500 //// 500 //// 500 ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 10:50:38 ---------------------------------------- La mia domanda sembrerà stupida, magari perchè non ho ben capito il tuo problema, ma perchè semplicemente non scrivi le stringhe così come le ricevi, senza ulteriori elaborazioni?   ---------------------------------------- AUTORE: 2206 DATA :02/08/2007 - 13:12:59 ---------------------------------------- Potresti postare le immagini usando questo sito : http://imageshack.us/ Fai l'upload e poi nel post immetti il link all'immagine _____________________________________ IRS Srl www.irsweb.it Via Vigonovese 81, 35127 Padova +39-049-8705156 Fax +39-049-7625206 ---------------------------------------- AUTORE: 2204 DATA :14/08/2007 - 10:30:21 ---------------------------------------- Anzitutto grazie per l'attenzione e scusate il ritardo ma ero in montagna. Purtroppo non posso salvarle così come sono perchè prima del salvataggio devo concatenare tra loro tre Array (lo faccio con un concatenate string dentro ciclo For) e poi dare in ingresso all'operazione di salvataggio ciò che ho ottenuto con il concatenate. ---------------------------------------- AUTORE: 384 DATA :15/08/2007 - 12:41:36 ---------------------------------------- In questo caso, devi tu ricomporre la stringa inserendo gli spazi dove non hai valori numerici, oppure degli zeri, se logica e funzionalmente puoi effettuare la sostituzione. Ricorada che excel lavora con il concetto di separatore - solitamente il "tab" - quindi basta non inserire nulla fra due separatori, ossia, avere due separatori consecuttivi, per avere la relativa casella vuota quando il file viene letto da excel stesso. ---------------------------------------- AUTORE: 2204 DATA :22/08/2007 - 14:49:55 ---------------------------------------- Grazie, appena torno al lavoro ci provo anche se già qualcosa del genere l'avevo provato. Intanto metto di seguito i link alle immagini. La prima immagine riporta la foto di ciò che ottengo negli indicatori che dovrei salvare nel file tali e quali. http://img230.imageshack.us/img230/1155 ... ne1dg8.jpg La seconda mostra il mio schema a blocchi nel sottoprogramma di salvataggio. http://img407.imageshack.us/img407/4576 ... ne2tm1.jpg La terza mostra il file excel che ottengo. In rosso ho evidenziato le caselle nelle quali dovrei aver uno spazio vuoto.http://img407.imageshack.us/img407/726/immagine3oj9.jpg ---------------------------------------- AUTORE: 2204 DATA :22/08/2007 - 14:51:37 ---------------------------------------- Rimetto il terzo link perchè non lo aveva preso correttamente. http://img407.imageshack.us/img407/726/immagine3oj9.jpg ---------------------------------------- ================================================================================ Compilare VI per fpga ================================================================================ AUTORE: 2196 DATA :01/08/2007 - 16:24:47 ---------------------------------------- Ciao, devo compilare una vi per un fpga. Dove posso trovare la procedura per la compilazione ? ---------------------------------------- ================================================================================ regolatore PID ================================================================================ AUTORE: 2195 DATA :01/08/2007 - 19:53:55 ---------------------------------------- salve a tutti! lo so, lo so siamo tutti in vacanza, però io la domanda la faccio comunque... come si implementa un sistema di regolazione pid in labview? se avete consigli, manuali, vi, dritte, link...insomma la qualsiasi fatemi sapere!! grazie e buone vacanze a tutti! \":D\" ---------------------------------------- AUTORE: 384 DATA :02/08/2007 - 10:58:44 ---------------------------------------- 1) Compri il toolkit PID 2) Guardi la formula su un qualunque libro di testo e la implementi con le funzioni normali. Un PID non è altro che la soma di una moltiplicazione (parte P), una integrazione (parte I) e una derivazione (parte D) del segnale in ingresso. Nel loop ti ci vorranno alcuni accorgimenti per limitare la crescita del proporzionale ed il tempo di ciclo deve essere molto preciso. [b:hj1vn5m4]Non è facile![/b:hj1vn5m4] Il controller PID è una BRUTTA bestia già solo ad utilizzarlo. Comunque, leggi [url=http://en.wikipedia.org/wiki/PID_controller:hj1vn5m4]qui[/url:hj1vn5m4].   ---------------------------------------- AUTORE: 2195 DATA :06/08/2007 - 14:50:57 ---------------------------------------- ciao! il regolatore PID lo posso realizzare anche senza acquistare il toolkit PID? ---------------------------------------- AUTORE: 384 DATA :06/08/2007 - 15:29:35 ---------------------------------------- Si. Ti servono soltanto integrazione e derivazione per farlo.   ---------------------------------------- ================================================================================ Serializzazione Cluster ================================================================================ AUTORE: 2088 DATA :02/08/2007 - 14:19:51 ---------------------------------------- Salve a tutti, premetto che sono nuovo di LabView, ma mi sono trovato a doverci lavorare. In particolare, mi sono trovato ad avere la necessità di inviare dei dati da un sistema ad un altro, tramite TCP. I dati, molto probabilmente saranno contenuti in un cluster. Il problema dunque è questo: come si può serializzare un cluster in modo da poterlo inviare tramite TCP? Vorrei che fosse una cosa generale, senza specificare il tipo di elementi del cluster stesso, in modo da poterci creare un VI indipendente, da richiamare quando mi serve. L'idea sarebbe quella di creare una cosa come l'ingresso Type della Bundle ad esempio, a cui è possibile associare qualsiasi Cluster. Qualcunod i voi sa come aiutarmi?? Grazie mille Michele ---------------------------------------- AUTORE: 129 DATA :05/08/2007 - 15:38:55 ---------------------------------------- Il cluster è una struttura disomogenea per sua natura. Per inviare via TCP ti conviene trasformare i dati in stringhe e viceversa riconvertirli quando lavori in lettura. Usa la funzione flatten e unflatten to string. Puoi fare il flatten anche dell'intero cluster, ma poi ti è più difficile generalizzarlo. Usa il type string e un case structure, per crearti i codici per fare l'unflatten dei dati e quindi recuperare il tipo e visualizzarli nella loro forma originaria. ---------------------------------------- AUTORE: 301 DATA :09/08/2007 - 06:01:47 ---------------------------------------- Altrimenti (premetto che non ne ho mai fatto uso) potresti covertire il tuo cluster in un variant e metterlo in una Shared variable (credo da LV 8 in poi)..... ---------------------------------------- AUTORE: 384 DATA :12/08/2007 - 23:15:36 ---------------------------------------- Se volete un consiglio, lasciate perdere le shared variables, almeno per ora, sperando nella versione 8.5 (di prossima uscita...) ---------------------------------------- ================================================================================ Struttura case ... aiutino ================================================================================ AUTORE: 2208 DATA :03/08/2007 - 09:49:01 ---------------------------------------- Salve a tutti, avrei bisogno di un aiutino. Questo è il mio problema: acquisisco dati attraverso la seriale da uno strumento (un titolatore). I dati sono di tipo stringa. Dopo aver acquisito qualche riga di inizializzazione, lo strumento si ferma ed ha bisogno della pressione del tasto OK per andare avanti con la titolazione vera e propria. Io vorrei usare una struttura case per fare in modo che non appena arrivo a questo punto venga eseguita la parte di codice inerente la pressione del tasto OK dello strumento e poi riprenda da dove si era interrotto. Io avevo pensato di usare il case solo che la condizione non è vero o falso ma sarebbe un confronto di una stringa. Come posso fare? Qualche suggerimento? ---------------------------------------- AUTORE: 301 DATA :03/08/2007 - 15:13:20 ---------------------------------------- Puoi fare il compare tra 2 stringhe...... Semplice no?!? Sempre a patto che le stringhe di configurazione siano sempre le stesse.... ---------------------------------------- AUTORE: 301 DATA :03/08/2007 - 15:15:56 ---------------------------------------- Scusa, mi era partito linvio..... Dicevo: la funzione di compare (output vero o falso) funziona anche sulle stringhe, altrimenti puoi settare i vari casi gestiti dalla tua struttura (case)....ne puoi implementare fin che vuoi..... ---------------------------------------- AUTORE: 2208 DATA :03/08/2007 - 21:29:39 ---------------------------------------- Grazie per la risposta. Ho utilizzato il blocco "Match True/False String" e con questo ho risolto. Ancora grazie. ---------------------------------------- ================================================================================ Event structure ================================================================================ AUTORE: 424 DATA :03/08/2007 - 15:21:03 ---------------------------------------- Ciao a tutti! Volevo chiedervi conferma di 1 cosa di cui mi sono accorto: volevo utilizzare la struttura ad eventi per gestire una certa sequenza di operazioni in corrispondenza del cambio di valore un indicator. Temo che però il buon labview non si accorga dell'evento change value sugli indicators, ma solo sui controls. Ho provato a gestire la cosa con l'utilizzo di variabili ma non va bene: riesce ad accorgersi del change value solo se si varia da front panel il valore del control. Qualcuno mi può dare una dritta x favore? Grazie \";-)\" ---------------------------------------- AUTORE: 724 DATA :03/08/2007 - 19:28:47 ---------------------------------------- Devi usare il property node "value signaling" al postodella variabiel stessa o di una sua local. Inquesto modo fai scattare l'event ---------------------------------------- ================================================================================ Costruzione grafico X Y: problemi ================================================================================ AUTORE: 2208 DATA :03/08/2007 - 21:40:13 ---------------------------------------- Salve a tutti. Volevo sottoporvi un problemino. Dovrei costruire un grafico X Y con dei valori di Tempo e di PH estratti da una stringa che viene dalla seriale. Ho gia trovato il modo di estrarre i valori e convertirli in numeri ma trovo un po di difficoltà nel creare il grafico. A me servirebbe un grafico in cui i punti generati dalle coppie XY rimangono visibili; invece ogni volta che legge dalla seriale il grafico si resetta. Il grafico è messo all'interno di un ciclo while perchè ciclicamente deve plottare i punti dati dalle coppie XY estratti dalla stringa che arriva dalla seriale. Avete idea di come fare una sorta di append nel grafico? Grazie per l'attenzione ---------------------------------------- AUTORE: 129 DATA :04/08/2007 - 08:25:38 ---------------------------------------- La prima cosa è quella di utilizzare uno shift register per memorizzare le acquisizioni. trattandosi di un array dove le coppie x e y sono in un cluster, puoi usare insert in to array per accodare i dati prima clusterizzati con la funzione bundle, l'array che risulta lo fai entrare nello shift register. ti consiglerei comunque di separare il codice in due while, uno per l'acquisizione e uno per il grafico. ---------------------------------------- AUTORE: 2208 DATA :04/08/2007 - 09:22:46 ---------------------------------------- Ciao e grazie per la risposta. Cercherò di utilizzare i tuoi suggerimenti ma ti sarei grato se potessi allegare il file di esempio in labview 8.0 (non ho la ver. 8.2). ---------------------------------------- AUTORE: 129 DATA :04/08/2007 - 12:04:21 ---------------------------------------- Il diagramma è questo, i dadi rappresentano i tui input numerici X e Y. Ciao, Nicola ---------------------------------------- ================================================================================ Array sostituire parte di dati ================================================================================ AUTORE: 516 DATA :04/08/2007 - 16:27:26 ---------------------------------------- Ciao Ho un'array di dimensioni variabili (1D) e devo poter andare a sostituire i dati solo in alcune celle dell'array senza modificare quelli non interessati es: 1 2 3 4 5 6 Vorrei poterla modificare così : 1 2 7 8 9 6 Come posso fare ? GRAZIE MILLE A TUTTI Ciao Sergio L.V 7.1 ---------------------------------------- AUTORE: 129 DATA :05/08/2007 - 13:26:55 ---------------------------------------- Devi usare la funzione replace array subset in un ciclo for. Guarda l'esempio allegato. ---------------------------------------- AUTORE: 516 DATA :05/08/2007 - 13:30:25 ---------------------------------------- Grazie Mille Ciao Sergio ---------------------------------------- ================================================================================ ModBus 2-wire LabView ================================================================================ AUTORE: 2088 DATA :06/08/2007 - 08:31:03 ---------------------------------------- Salve ragazzi, sono di nuovo qui a rompere le scatole, spero mi perdonerete. Ho un problema che credo sia difficilmente risolvibile, ma ve lo sottopongo lo stesso. Sto lavorando con Compact FieldPoint 2120, che monta una porta RS485 a 4 fili; tuttavia, con la mia solita fortuna, ci devo collegare un apparecchio che invece lavora a due fili! Il supporto tecnico National non mi è stato d'aiuto e si è limitato a dire che non è supportato o poco più, speravo che voi, magari nella mia stessa situazione, aveste architettato qualcosa di più utile \":lol:\" Sarebbe sufficiente capire come disabilitare l'eco. Come collegare l'apparecchiatura l'ho trovato (credo) Grazie mille a tutti ---------------------------------------- ================================================================================ build executable ================================================================================ AUTORE: 595 DATA :06/08/2007 - 10:07:25 ---------------------------------------- Ciao, ho un semplice VI per schede DAQ usb. Quando eseguo il build il vi parte " RUN" in automatico nonostante io abbia settato nel "Source File Settings" l'inverso e cioè che non parta in automatico quando clicco sull'exe perchè ? ---------------------------------------- AUTORE: 2210 DATA :06/08/2007 - 10:57:55 ---------------------------------------- [quote="principiante":3sajteue]Ciao, ho un semplice VI per schede DAQ usb. Quando eseguo il build il vi parte " RUN" in automatico nonostante io abbia settato nel "Source File Settings" l'inverso e cioè che non parta in automatico quando clicco sull'exe perchè ?[/quote:3sajteue] Ciao se crei l'exe tramite l'application builder ti setta il bit di esecuzione automatica di default. Per disabilitarla dopo aver predisposto tutto per la creazione dell'exe vai su VI settings, scegli il tuo vi principale e clicchi su edit build settings (io utilizzo LV7.0, ma penso la gestione sia analoga) e disabiliti run when opened. A questo punto dovresti aver risolto il tuo problema. ---------------------------------------- AUTORE: 595 DATA :06/08/2007 - 11:05:40 ---------------------------------------- il problema è che io faccio il settaggio "run when opened" (negandolo sul "value") ma il VI va comunque in "RUN" quando viene aperto. ---------------------------------------- AUTORE: 1597 DATA :27/08/2007 - 11:59:25 ---------------------------------------- ciao, se riscontri il problema con Lv 8.2 è un bug: si risolve come ho spiegato nel seguente post... viewtopic.php?t=2955&view=previous ---------------------------------------- AUTORE: 595 DATA :27/08/2007 - 12:30:39 ---------------------------------------- grazie mille aldik ora funziona!!!! ---------------------------------------- ================================================================================ Exit Case ================================================================================ AUTORE: 2088 DATA :10/08/2007 - 10:39:06 ---------------------------------------- Salve ragazzi, Il problema che vi sottopongo questa volta, dovrebbe essere di più facile soluzione. Iniziamo dalla definizione della situazione. Ogni volta che entriamo un caso della struttura case, anche se la condizione che l'ha attivata cambia prima della fine del caso, la struttura finisce il suo corso, dopodichè (considerando che si trova dentro un ciclo while), la nuova condizione viene letta ed eseguita. A questo punto, il problema: Ho bisogno di implementare una situazione di emergenza, in cui, se l'utente preme un pulsante sul front panel, il sistema si blocca immediatamente. Quando però l'emergenza rientra (il pulsante viene rilasciato) il sistema deve ripartire dal punto esatto in cui si è fermato. Non mi è possibile quindi uscire dal ciclo... ma ho bisogno di congelare tutto il codice che sto eseguendo, per poi riprenderlo non appena l'emergenza rientra. Per chi ha esperienza di programmazione testuale... una cosa simile potrebbe essere fatta dall' Exit in VisualBasic, o anche con semplice GOTO. Grazie mille per la disponibilità \":D\" ---------------------------------------- AUTORE: 129 DATA :12/08/2007 - 07:27:21 ---------------------------------------- DAto che la struttura che utilizzi suppongo sia una macchina a stati con uno shift register che chiama i case dei codici da eseguire, puoi semplicemente creare un case vuoto, al suo interno metti un select(lo trovi nella palette comparison) e sul false inserisci il numero del case a cui deve rimanere finchè non si verifica la condizione true del select, che appunto punterà ad una latro case dove hai messo il codice da eseguire dopo lo scongelamento. ---------------------------------------- AUTORE: 2088 DATA :12/08/2007 - 12:00:27 ---------------------------------------- Il problema è che comunque, anche mettendo i due stati come hai detto tu, il case corrente continua, il che potrebbe creare dei danni alla macchina... come ti dicevo, supponi che la condizione scatenante sia l'attivazione di una emergenza: se la macchina va in emergenza, deve stopparsi all'istante, non deve neanche terminare il case che sta eseguendo. Come posso ottenerlo? Per il resto, grazie del consiglio, è una buona idea su come effettuare il controllo. Grazie mille ---------------------------------------- AUTORE: 384 DATA :12/08/2007 - 23:27:11 ---------------------------------------- É una situazione abbastanza complessa da gestire. Evidentemente ogni tuo case è programmaticamente complesso. Devi avere dei case molto più "elementari", oppure controllare la condizione di emergenza all'interno di ogni case in modo da poter interrompere all'occorrenza. Quando essa succede, devi salvare lo stato del sistema in modo da poterlo oriprendere. Ovviamente, ogni stato deve essere in grado di "riprendersi". Oltre al case, un'altro modo di farlo è creare una sorta di "process server" che lancia dei vi dinamicamente e che potrà interromperli con dei messaggi (attraverso una coda, per esempio). Attenzione a quello che hai detto dei linguaggi testuali: interrompere con un exit o un goto può sembrare molto pratico ed immediato ma ti sposta il program counter e non pensare che riprendi l'esecuzione con un semplice altro goto alla "riga" dov'eri prima. Anche con linguaggi testuali questa eventualità deve essere prevista ed il programma fatto per gestirla al meglio. Comunque lo si implementi ed indipendentemente dal linguaggio, la cosa non è banale. ---------------------------------------- AUTORE: 2210 DATA :13/08/2007 - 09:14:51 ---------------------------------------- Non so se puo' fare il caso tuo, pero' fornire qualche idea. Sul sito ni avevo visto questo esempio di gestione di una macchina a stati in cui i vari case possono essere bloccati. E' la soluzione di un esame cld, e simula la gestione di un autolavaggio vi allego il link a cui trovare testo e soluzione http://zone.ni.com/devzone/cda/epd/p/id/1683 Allegato c'e' lo zip con la soluzione. ---------------------------------------- ================================================================================ vi che riconsca un segnale ================================================================================ AUTORE: 2213 DATA :13/08/2007 - 00:02:15 ---------------------------------------- Salve a tutti, mi scuso in anticipo con tutti voi per la mia domanda forse troppo semplice...ma sono in difficoltà...ho qualche idea ma non sono arrivato ancora alla soluzione. Dunque il mio problema è questo: devo programmare un vi che acquisisca un segnale da un generatore di funzioni (e fin qui..giusto qualche problemino con il significato dello scan backlog...so che c'entra la condizione di Nyquist...), inoltre il programma dovrebbe essere in grado di riconoscere che tipo di segnale ha ricevuto in ingresso. E qui viene la mia domanda...suggerimenti? come fare? La mia prima idea è stata questa (veramente poco "fisica"..): acquisito il segnale il vi ne fa la FFT, poi passo il tutto attraverso un peak detect con un threshold in modo che mi elimini tutte ampiezze troppo piccole in confronto al picco massimo. a questo punto gli faccio fare il rapporto tra il primo e il secondo picco massimo. Avevo "osservato" che tale rapporto "generalmente" entro certi range a secondo del segnale che ho in ingresso: onda quadra - tra 0 e 4 -, onda triangolare - tra 4 e 13 - sinusoide > 13...questa è la più semplice...la sua trasformata è composta da due delte di Dirac..per cui...quando mi cerca i massimi, difatto me ne trova solo uno (consedero solo le frequanze positive). Il problema è che tale metodo funziona, anche carino, con i LED che si accendono etc...ma qualche volta "non va"! variando la frequenza capita a volte che i picchi della trasformata di una funzione vadano a coincidere con quelli di un altra...e quindi non la riconsce più!! (sono tutte considerazioni fatte "a occhio"...non mi sono messo a calcolare le trasformate..) Allora ho provato a escogitare un'altra idea...mi sono detto: "ma io da cosa riconosco che si tratta di un segnale piuttosto che di un altro?"..dalla forma! e allora ho pensato di fare la derivata del segnale acquisito (anche se sinceramente non so quanto sia efficiente...visto che la derivata dell'onda triangolare ad alte frequenze somiglia terribilmente ad una sinusoide!!)...ma poi non ho ben in mente cosa farci...ho provato a farne la trasformata..ma niente di utile.. insomma...che si fa? grazie del vostro aiuto ciao il vecchio ---------------------------------------- AUTORE: 384 DATA :15/08/2007 - 12:22:38 ---------------------------------------- Un meto semplice è quello di determinare la frequenza fondamentale e "cercare" le armoniche laddove le aspettiamo, per le varie forme d'onda standard (alla fine, sono anche pocche). Chiaramente il metodo è semplice, ma può anche essere facilemte messo in difficoltà alle alte frequenze, per esempio. Generalmente il riconoscimeto di una "forma" trova supporto nella convoluzione. Non la si può usare direttamente perchè al variare della frequenza la forma - strettamente parlando - varia anch'essa. Si fanno quindi delle trasformate, passando dallo spazio del tempo ad altri di carattere vettoriale (lo stesso principio della trasf. di Fourier). Una di esse è la trasf. di Hadamard. Di sviluppo relatimavente recente vi trovano applicazione anche le "wavelets", computazionalmente più efficienti. Comunque, la cosa che per i nostri occhi/cervello è una barzelletta, non lo è altretanto algoritmicamente. Buon divertimento. ---------------------------------------- ================================================================================ bloccare l'accesso ad un file ================================================================================ AUTORE: 680 DATA :16/08/2007 - 08:15:21 ---------------------------------------- devo fare delle operazioni con dei file. durante questo "tempo" voglio che i file che utilizzo siano in solo lettura per l'os.... grazie ciao.... ---------------------------------------- AUTORE: 129 DATA :17/08/2007 - 22:28:13 ---------------------------------------- Dovresti utilizzare il vi Set Permission, dalla palette File/advanced. ---------------------------------------- ================================================================================ fornt panel ================================================================================ AUTORE: 1743 DATA :16/08/2007 - 08:45:14 ---------------------------------------- Ciao, vorrei poter fare questa cosa. Ho un cluster che l'utente puo' decidere di riempire con paramentri di default o settarli personalmente. Ho un radio button sul front panel: se l'utente seleziona un'opzione del radio button, il cluster viene riempito con i parametri di default: se seleziona l'altra opzione del radio button, alla viene inserita la configurazione che lui stesso ha impostato: per far cio' ho un cluster di radio button ciascuno dei quali permette i due settaggi possibili per ogni paramentro. Io vorrei che quando l'utente sceglie l'opzione di default nel prio radio button, il cluster di radio button per la configurazione manuale risultassa alla vista come disabilitato, in modo che l'utente non possa inserire nulla. Come posso fare? Grazie infinite, barbara ---------------------------------------- AUTORE: 680 DATA :16/08/2007 - 09:09:04 ---------------------------------------- devi creare un property node del cluster da disabilitare e impostare "disable"... per creare il property node, vai sul block diagram, tasto dx sopra il cluster create property node-->disable ciao.... ---------------------------------------- AUTORE: 1743 DATA :31/08/2007 - 21:11:20 ---------------------------------------- Grazie mille, ciao! \":D\" [quote="linux120":31i5j1ls]devi creare un property node del cluster da disabilitare e impostare "disable"... per creare il property node, vai sul block diagram, tasto dx sopra il cluster create property node-->disable ciao....[/quote:31i5j1ls] ---------------------------------------- ================================================================================ modulo a completamento automatico ================================================================================ AUTORE: 680 DATA :16/08/2007 - 10:52:24 ---------------------------------------- ho un control string vorrei che digitando le prime lettere del modulo, il modulo si completi da solo (come avviene con i browser internet) thak by.. ---------------------------------------- AUTORE: 645 DATA :16/08/2007 - 16:25:16 ---------------------------------------- Ricordo che tra i Property Node delle stringhe (o nelle opzioni del controllo stringa) c'è una casella "Update while typing". In pratica il valore della stringa si aggiorna mentre la scrivi e non alla fine (o qualcosa di simile). Prova a cercare info su questa cosa: puoi controllare il valore della stringa con una gestione ad eventi e il Property Node "Value" (l'evento scatta quando il controllo cambia valore... cosa che avviene ad ogni lettera dopo aver settato la proprietà indicata) e in base alle lettere inserite puoi confrontare ciò che l'utente sta scrivendo con le parole memorizzate da qualche parte (in un file o in un vettore invisibile...). Può essere un inizio... ---------------------------------------- AUTORE: 680 DATA :16/08/2007 - 20:09:57 ---------------------------------------- avevo pensato anch'io così ma poi mi sono incasinato e lasciato perdere.... ho risolto cmq con un "combo box" ... fa in automatico quello che voglio io... ---------------------------------------- ================================================================================ creare file xls ================================================================================ AUTORE: 2214 DATA :20/08/2007 - 10:58:44 ---------------------------------------- Buongiorno a tutti! Premetto che sono un neofita di LV... Vorrei creare un file xls e poi inserirci dei dati presenti in una tabella... Non sò proprio da che parte muovermi... Ho provato a cercare tra i vari topic ma non sono riuscito a trovare quel che fa per me... Ringrazio anticipatamente chiunque riesca a darmi una mano (magari anche con degli esempi \":-D\"). Ciao ciao, T. ---------------------------------------- AUTORE: 129 DATA :20/08/2007 - 12:51:03 ---------------------------------------- Se i dati sono sottoforma tabellare(array) usa array to spreadsheat file dalla paletta File. Altrimenti devi ricorrere agli active-X. Cerca sul forum oppure guarda [url=http://www.ilvg.it/forum/viewtopic.php?t=1886&highlight=excel+tool:21vp9k5k]questa discussione[/url:21vp9k5k], troverai sicuramente degli spunti interessanti. ---------------------------------------- AUTORE: 2214 DATA :20/08/2007 - 13:55:46 ---------------------------------------- I dati sono stringhe inserite in una tabella. ll VI 'array to spreadsheat file' non l'ho trovato... io ho un 'write to spreadsheat file' che però permette di scrivere su un file dei dati solo se questi sono numerici \":|\" Ah... la mia versione di LV è la 8.0. ---------------------------------------- AUTORE: 129 DATA :20/08/2007 - 14:29:11 ---------------------------------------- Scusa, il nome esatto è write to spreadsheat file; quindi è corretto quello che hai trovato tu. Puoi collegare tranquillamente un array di strighe/DBL o integer (è polimorfo). ---------------------------------------- ================================================================================ info corso national instruments labview ================================================================================ AUTORE: 2020 DATA :20/08/2007 - 19:49:54 ---------------------------------------- Ciao a tutti!!! Volevo ricevere info e consigli sui corsi della national instruments su labview. Come si fa a scegliere quello piu adatto tra quelli che propone NI? Qualcuno che ne ha frequentato qlkn puo dirmi come è stato? qualsiasi info è utili...naturalmente nn solo a me!!! Saluti.... ---------------------------------------- ================================================================================ Blocco UI ================================================================================ AUTORE: 927 DATA :22/08/2007 - 08:04:23 ---------------------------------------- Ho un'applicazione di interfaccia abbastanza complessa e a volte mi capita, senza cause evidenti, che tutti i controlli smettano di funzionare in scrittura, ovvero se li clicco non succede niente, nemmeno graficamente. L'unica cosa che rimane funzionante è la barra del titolo (quella di sistema, con _ e X). E' come se il thread dell'UI si fosse piantato, l'unica soluzione è chiudere e riaprire l'applicazione. Vi è mai capitato qualcosa del genere o avete idea di cosa può essere? ---------------------------------------- AUTORE: 482 DATA :23/08/2007 - 06:50:47 ---------------------------------------- Ma non ho capito..osa intendi per "applicazione di interfaccia"? che sotto non c'e' nessun tipo di codice? ---------------------------------------- AUTORE: 4 DATA :23/08/2007 - 08:12:51 ---------------------------------------- Usi gli event case per gestire la UI e\o usi delle dll nol tuo codice? Ciao ---------------------------------------- AUTORE: 927 DATA :23/08/2007 - 08:26:28 ---------------------------------------- Si, uso anche gli event case (più di uno, ma ognuno all'interno del suo while e con timeout breve). DLL mie non ce ne sono, ma i VI di sistema ne usano qualcuna (ad es. NVIORef.dll). gepponline: lascia stare, intendevo "applicazione"... ---------------------------------------- AUTORE: 482 DATA :23/08/2007 - 11:21:05 ---------------------------------------- eh..io chiedevo perchè magari c'e' qualche event lungo nel quale non hai tolto il blocco front panel fino alla fien dell'esecuzione. ---------------------------------------- AUTORE: 927 DATA :23/08/2007 - 11:50:11 ---------------------------------------- Mi ero dimenticato l'esistenza di quella casellina in effetti, il blocco non sembra legato ad alcun evento in particolare ma intanto per sicurezza provo a togliere tutti i "lock front panel until the event ecc..." ---------------------------------------- AUTORE: 43 DATA :27/08/2007 - 11:00:19 ---------------------------------------- [quote="Snamprogetti":3qgc2iyk]Mi ero dimenticato l'esistenza di quella casellina in effetti, il blocco non sembra legato ad alcun evento in particolare ma intanto per sicurezza provo a togliere tutti i "lock front panel until the event ecc..."[/quote:3qgc2iyk] Ti [b:3qgc2iyk]sconsiglio[/b:3qgc2iyk] caldamente di togliere i "lock front panel...". La mia impressione è che non riusciresti a trovare il baco che probabilmente è stato infilato nell'EventCase. Per vedere cosa succede prova il pessimo VI che ti allego (LV7.1) Se devi fare qualcosa di critico dentro al loop con l'EventCase, manda messaggi (notifiche, accodamenti o altro) a parti di codice che girano in parallelo, oppure gestisci 1 o + case FUORI dall'EventCase ma dentro lo stesso loop dell'EventCase bye ---------------------------------------- AUTORE: 927 DATA :27/08/2007 - 11:38:48 ---------------------------------------- A me sembra proprio il contrario... Se tolgo i "lock front panel" almeno non mi si inchioda tutta l'interfaccia ma solo gli eventi gestiti nella event structure problematica, e riesco a circoscrivere l'errore. ---------------------------------------- ================================================================================ simulazionePXI6071E ================================================================================ AUTORE: 1596 DATA :22/08/2007 - 16:47:52 ---------------------------------------- salve a tutti, vorrei simulare i segnali in ingresso ai counter della PXI6071E in attesa che mi arrivi l'encoder incrementale per il controllo a ciclo chiuso della velocita' di un motore DC. Inoltre vorrei poter simulare anche l'uscita analogica da tale scheda che pilotera' il motore... qualche consiglio? grazie!!! ---------------------------------------- AUTORE: 2020 DATA :23/08/2007 - 09:50:41 ---------------------------------------- Ciao, anch'io come te ho avuto l'esigenza di lavorare prima ancora che abbia avuto disponibile tutto l'hardware. Devi utilizzare [u:11pn2p4p]Measurement & Automation[/u:11pn2p4p], una volta aperto in [u:11pn2p4p]Devices and Interfaces[/u:11pn2p4p] (in alto a sx) fai tasto dx quindi [u:11pn2p4p]create new[/u:11pn2p4p], a questo punto ti comparirà una nuova finestra sulla quale potrai selezionare [u:11pn2p4p]NI-DAQmx Simulated Device[/u:11pn2p4p]. Nella serie "E" troverai la tua scheda da simulare. Dopodichè in [u:11pn2p4p]Devices and Interfaces[/u:11pn2p4p] ti apparirà il dispositivo simulato, basterà fare tasto destro [u:11pn2p4p]create task[/u:11pn2p4p] e da qui simulare segnali in ingresso ed in uscita.....spero di esserti stato utile.....saluti!!!! ---------------------------------------- AUTORE: 1596 DATA :23/08/2007 - 10:11:18 ---------------------------------------- grazie tante \":D\" provero' e poi ti faro' sapere! gianni! ---------------------------------------- AUTORE: 1596 DATA :23/08/2007 - 10:41:31 ---------------------------------------- ciao, purtroppo il mio sistema PXI lavora su Win2000 e con LV 6.1 (non posso installare LV8.2.1 per mancanza di spazio...). Ho la vers. 2.2.0 di MAX...ho fatto come mi hai detto, ma quando clickko con tasto dx sulla scheda ho solo i campi Test Panel(che d'altronde non ho capito come usarlo), Delete, Properties, NON mi compare il campo Create Task!! \":(\" ---------------------------------------- ================================================================================ Modularità ================================================================================ AUTORE: 2215 DATA :23/08/2007 - 07:12:03 ---------------------------------------- Ciao sono neofita devo fare delle modifiche a un progetto con lW6.1. stato attuale: prova1 prova2 prova3 (gli indicatori sono posizionati in aree fisse). Modifica: esempio, prova2 prova1 prova3 prova1 prova1. come posso adattare il pannello frontale in modo dinamico? ---------------------------------------- AUTORE: 927 DATA :23/08/2007 - 08:32:42 ---------------------------------------- Temo che non sia molto chiaro... Vuoi spostare gli indicatori mentre il programma è in esecuzione? ---------------------------------------- AUTORE: 2215 DATA :27/08/2007 - 13:42:49 ---------------------------------------- Ho il pannello frontale con: Prima: prova1 (indicatori: tensione, corrente) prova2 (indicatori: corrente, potenza) prova3 (indicatore: azionamento fine corsa ok) Dopo: prova2 (indicatori: corrente, potenza) prova3 (indicatore: azionamento fine corsa ok) prova2 (indicatori: corrente, potenza) prova1 (indicatori: tensione, corrente) prova3 (indicatore: azionamento fine corsa ok) ---------------------------------------- AUTORE: 2215 DATA :27/08/2007 - 13:46:44 ---------------------------------------- (Prima in ingresso leggo un file di testo contenente i dati) ora vorrei utilizzare un file di testo analogo per le prove ed un altro (per esempio) per decidere la sequenza ---------------------------------------- AUTORE: 927 DATA :27/08/2007 - 13:53:59 ---------------------------------------- Immagino che ci sia un limite massimo, ad es. possono esserci fino a 5 indicatori di ogni tipo; tu creali tutti e 5, poi li fai apparire e sparire a seconda delle necessità, usando il Propery node "Visible". Crearli veramente non è possibile con la normale programmazione ---------------------------------------- AUTORE: 2215 DATA :27/08/2007 - 16:03:14 ---------------------------------------- scusa se tedio ancora! si posso impostare (per es. 6 prove max ripetute per 6 volte max) però vorrei dargli un offset (per es. riga 0) poi: riga 1 -- prova2 - corrente - potenza) riga 2 -- prova3 - azionamento_fine_corsa_ok riga 3 -- prova2 - corrente - potenza riga 4 -- prova1 - tensione - corrente riga 5 -- prova3 - indicatore - azionamento_fine_corsa_ok quindi in un certo senso farli traslare e poi, dato che ora, la mia funzione "corrente" si riferisce ad un preciso indicator come faccio a dirgli che deve scrivere la prima volta nella riga 1 e la seconda volta nella riga 3? ---------------------------------------- AUTORE: 927 DATA :28/08/2007 - 08:32:13 ---------------------------------------- Nella soluzione che ti dicevo io non c'è bisogno di spostarli. In ogni riga ci sono tutti e 3 i tipi di indicatore, uno sopra l'altro, ma solo uno alla volta è visibile. (Se cmq vuoi spostare un indicatore, si usa sempre il property node) La tua funzione "corrente" non può riferirsi a un preciso indicatore, devi cambiarla per forza se vuoi ottenere quel risultato. Mettici ad esempio un Case che, a seconda del numero di riga, scrive su un indicatore diverso ---------------------------------------- AUTORE: 2215 DATA :28/08/2007 - 16:22:18 ---------------------------------------- ora ho tutto corrotto provo appena sistemo un pò di cose Grazie ---------------------------------------- ================================================================================ AOwrite(LV6.1) ================================================================================ AUTORE: 1596 DATA :24/08/2007 - 09:13:29 ---------------------------------------- salve!!! come dico al VI che ho un unico canale?...non ho trovato l'opzione come sta in LV8.2.1 nei DAQ.mx dove mi permette di selezionare il singolo canale... grazie in anticipo... ---------------------------------------- AUTORE: 927 DATA :27/08/2007 - 10:55:49 ---------------------------------------- Non puoi dargli un array con un solo elemento? ---------------------------------------- AUTORE: 1596 DATA :27/08/2007 - 13:15:50 ---------------------------------------- ...se questa e' l'unica soluzione mi sta bene.. ok grazie per la risposta! gianni!!! \":wink:\" ---------------------------------------- ================================================================================ modificare colore oggetto FP ================================================================================ AUTORE: 1317 DATA :24/08/2007 - 10:54:16 ---------------------------------------- ciao a tutti. Avrei bisogno di cambiare il colore (simulando un accensione tipo ON AIR) ad un box del FP nel quale scriverei "MISURA IN CORSO"!!L'unica soluzione che sono riuscito a trovare sono boleani ON/OFF ma in questo caso non risco a rendere l'atteso in quanto il controllore non ritorna allo stato "SPENTO" al termine del VI. Vi è modo di creare un box e cambiarne il colore con il property node? grazie a tutti ---------------------------------------- AUTORE: 129 DATA :26/08/2007 - 13:14:35 ---------------------------------------- Non ho capito perchè non colori direttamente lo sfondo del controllo. Coqunque i rifer. dei dacoration possono essere portate fuori dalla property fronpanel del VI, quindi decorations che ti restituisce un array delle deco. devi ora selezionare a decorazione da modificare, quindi usi le property come colors. Ti allego un immagine. ---------------------------------------- AUTORE: 645 DATA :26/08/2007 - 16:27:19 ---------------------------------------- Puoi settare lo stato ON-OFF del controllo anche da Block Diagram attraverso il Property Node "Value". Se prima della fine del VI inserisci un Property Node con Value=False risetti il pulsante allo stato iniziale prima di chiudere il VI. Comunque la soluzione di Nicola per colorare lo sfondo è la più veloce... ---------------------------------------- AUTORE: 1317 DATA :27/08/2007 - 08:15:20 ---------------------------------------- grazie. è una soluzione veramente comoda!!anche se in effetti anche con il property node, seguendo il consiglio, sono riuscito a rendere lo stesso effetto.Grazie a tutti. ---------------------------------------- ================================================================================ mancata installazione labview 8.0 - errore 1402 ================================================================================ AUTORE: 2216 DATA :26/08/2007 - 22:52:39 ---------------------------------------- Ciao a tutti sono Luca e scrivo da Verona.ho bisogno di un consiglio.Sto cercando di installare Labview 8.0 su questo PC ma l'installazione si blocca con una finestra che da "errore 1402" "could not open key:HKEY_LOCAL_MACHINE\Software\Classes\LVDB.Applications\CLSID verificare di possedere un accesso a tale chieve di registro. Perche' secondo voi su questo mi compare questo messaggio metre sul portatile l'installazione demo e' andata a buon fine? grazie mille ---------------------------------------- AUTORE: 43 DATA :27/08/2007 - 10:03:45 ---------------------------------------- Forse perchè l'installazione è stata fatta da utente non privilegiato? (utente non Amministratore) mah!?! ---------------------------------------- AUTORE: 2216 DATA :28/08/2007 - 07:46:12 ---------------------------------------- esatto,risolto il problema.in admin l'ha fatta immediatamente.grazie per la risposta ---------------------------------------- ================================================================================ MAXcounter&nonsolo ================================================================================ AUTORE: 1596 DATA :28/08/2007 - 13:31:57 ---------------------------------------- salve, ho implementato il VI che vi [url=http://img168.imageshack.us/my.php?image=maxcf0.jpg:32xy8w8f]allego[/url:32xy8w8f], non riesco ad impostare MAX per la lettura del counter.Almeno la parte relativa al counter non mi da errore ma il #del count e' zero \":(\" ..la parte relativa al AO invece mi da errore -10007(A channel, port, or counter is out of range for the device type or device configuration; or the combination of channels is not allowed; or the scan order must be reversed (0 last).)-->ma non riesco a risolvere.. qualche suggerimento \":?:\" \":?:\" \":?:\" ---------------------------------------- ================================================================================ COUNTER ================================================================================ AUTORE: 1596 DATA :30/08/2007 - 09:36:16 ---------------------------------------- salve, con MAX ho impostato la generazione di un pulse train a 100Hz con duty cycle 50% sul GPCTR0, dopodiche' la faccio partire con lo START. Ho collegato fisicamente il pin out del CTR0 al gate del CTR1. A questo punto faccio partire il mio VI che dovrebbe, a mio parere \":oops:\" , leggere sul CTR1 il periodo dell'onda quadra...ma non funziona nulla \":(\" Perche'??? Dove Sbaglio??? p.s.utilizzo una PXI6071E e LV 6.1 ---------------------------------------- AUTORE: 1596 DATA :30/08/2007 - 09:37:30 ---------------------------------------- ...il VI... ---------------------------------------- ================================================================================ Colore indicator ================================================================================ AUTORE: 2215 DATA :30/08/2007 - 14:54:27 ---------------------------------------- Come posso gestire il colore del terzo stato di un indicator? cioè: Rosso (esito negativo) verde (esito positivo) Altro colore (prova in corso) Grazie? ---------------------------------------- AUTORE: 487 DATA :31/08/2007 - 07:43:35 ---------------------------------------- Utilizzando il property node dell'indicator puoi cambiare il colore tutte le volte che ti serve ---------------------------------------- AUTORE: 2215 DATA :07/09/2007 - 12:43:08 ---------------------------------------- Grazie Scusa il ritardo, chiedevo se si poteva gestire un terzo stato del indicator, alcuni lo chiamano tree state o qualcosa di simile ho provato col property node ma ha un pò troppi parametri, sai se c'è in giro qualche esempio o documentazione? Grazie ---------------------------------------- AUTORE: 487 DATA :07/09/2007 - 12:52:07 ---------------------------------------- Anche se rimango dell'idea che per il tuo problema basta utilizzare il property node dell'indicator, se proprio vuoi avere il terzo stato puoi sempre utilizzare dei controlli custom. A tale proposito prova a cercare nel forum perchè sono sicuro che l'argomento è già stato trattato. Comunque, se mi spieghi più precisamente cosa vuoi fare (magari postando un esempio), posso darti qualche suggerimento in più. ---------------------------------------- AUTORE: 2215 DATA :07/09/2007 - 13:02:40 ---------------------------------------- questo forum permette di inviare immagini, ci sono limiti di grandezza e di formato? ---------------------------------------- AUTORE: 927 DATA :07/09/2007 - 13:16:19 ---------------------------------------- Non ci sono limiti particolarmente stretti, cmq l'ideale per Labviù è il formato PNG. La penso anch'io come Coma (cambia colore col property e fai prima); ma senza scomodare i custom control potresti usare un Pict Ring, che mostra una di N immagini a seconda dell'indice numerico che gli passi (0-2 nel tuo caso) ---------------------------------------- AUTORE: 129 DATA :08/09/2007 - 06:25:19 ---------------------------------------- Sotto troivi un esempio di un 3state boolean, secondo il metodo proposto da snamprogetti. ---------------------------------------- ================================================================================ modbus seriale/tcp ================================================================================ AUTORE: 2018 DATA :30/08/2007 - 17:04:34 ---------------------------------------- Ciao a tutti, ho provato a cercare sul forum qualche lume ma non ho trovato niente di efficace: esiste un esempio da qualche parte che inplementi il Modbus seriale o TCP come master? in poche parole dovrei leggere dei dati da dispositivi con porta modbus RS485, ho provato con VISA BASIC SERIAL READ WRITE ma la stringa non viene letta dall'hardware, mentre nella stessa configurazione hardware con un simulatore master funziona correttamente. Ci sono blocchi specifici o bisogna adattare il Visa? grazie ---------------------------------------- AUTORE: 645 DATA :31/08/2007 - 09:17:23 ---------------------------------------- Guarda http://sine.ni.com/nips/cds/view/p/lang/it/nid/201711 ---------------------------------------- AUTORE: 2018 DATA :31/08/2007 - 10:38:22 ---------------------------------------- grazie mille MagicBotolo ora provo a leggere tutto il papiro e caricare le librerie CIAO ---------------------------------------- AUTORE: 2018 DATA :18/09/2007 - 16:08:01 ---------------------------------------- Dopo non poche peripezie ho provato gli esempi esposti e mi sono creato il programmino come Master, il problema è che pare funzionare ma il messaggio di risposta non è corretto: facendo semplice read multiple register (funzione 3) della variabile 41 e sucessive 1 (quella di cui conosco il valore =228) la risposta che ottengo è 10496 che in hex corrisponde a (29+00) ovvero 41+00, se richiedo la variabile 2, la risposta è 32 (in hex 02+00 ) e così via... dove sto sbagliando? A livello hardware il modbus Poll funziona da Dio, quando passo a Labview sembra che non funzioni. Ho usato anche il Basic serial read write ricostruendo la stringa ma la risposta è la stessa stringa inviata. Grazie Ciao ---------------------------------------- AUTORE: 838 DATA :19/09/2007 - 08:01:02 ---------------------------------------- ho svuto problemi pure io io nello specifico ottengo una corretta interrogazione fino alla 148 registro (da MW0 a MW147), poi non riesco a leggere più nulla ricevendo errore. le ho provate tutte ma non riesco andare oltre!! utilizzo la MB Ethernet Master query con la read input register qualcuno ha già provato e ottenuto risultati diversi? ---------------------------------------- ================================================================================ strano comportamento funzione strip path ================================================================================ AUTORE: 2109 DATA :31/08/2007 - 10:38:11 ---------------------------------------- Ciao a tutti, in un lavoro che sto facendo ho incontrato dei problemi nell'utilizzo della funzione "strip path", che ritorna l'ultimo elemento del percorso fornito in ingresso e la restante parte del percorso stesso. Io riesco ad utilizzare correttamente il VI se lavoro normalmente con LabView, mentre nel momento in cui creo un'applicazione, questo funziona in un modo strano: invece di spezzare la stringa togliendo dal percorso rimanente anche la barra di separazione (\), gliela lascia attaccata. Questo mi crea dei problemi nella parte di programma a valle del VI. Forse sono stato un po' contorto, ma se c'è qualcuno che mi può dare un consiglio gliene sarei grato, non vi dico quanto ho imprecato dietro a questo programma. Ciao ---------------------------------------- AUTORE: 680 DATA :31/08/2007 - 13:44:11 ---------------------------------------- guarda qui: http://80.241.175.99/forum/viewtopic.php?t=326 ---------------------------------------- ================================================================================ control-->VI in esecuzione ================================================================================ AUTORE: 1596 DATA :31/08/2007 - 14:51:16 ---------------------------------------- ...vorrei cambiare il valore di un controllo con il VI in esecuzione, come posso fare? THX ---------------------------------------- AUTORE: 645 DATA :31/08/2007 - 19:26:16 ---------------------------------------- Devi usare il Property Node "Value" del controllo... tramite programmazione nel Block Diagram puoi modificare i valori. ---------------------------------------- AUTORE: 129 DATA :01/09/2007 - 13:57:33 ---------------------------------------- Ma lo devi cambiare dallo stesso vi o da un vi esterno? Se il vi è esterno devi ricorrere alla tecnica VI server, quindi chiamando un riferimento al vi,quindi al suo pannello e il metodo set control, o altrimenti usi una variabile globale. Se dallo stesso VI, devi usare o una variabile globale o la property value del controllo (come suggerito da Magic). ---------------------------------------- AUTORE: 1596 DATA :03/09/2007 - 08:07:40 ---------------------------------------- salve, ho provato ma non ci sono riuscito,. Ho messo il pproperty node, ho selezionato "change all to write" , ho collegato il controllo all'ingresso value...evidentemente non si fa cosi' perche' mi da errore. Mi potete fare un esempio? Non so come si usa \":oops:\" ---------------------------------------- AUTORE: 645 DATA :03/09/2007 - 09:41:38 ---------------------------------------- Ti allego un'immagine con due soluzioni: il Property Node "Value" e la Local Variable... se devi modificare il valore di un controllo (o di un indicatore) mentre il VI è in esecuzione metti un'assegnazione nel punto in cui ti serve. Puoi usare una delle due strade. ---------------------------------------- AUTORE: 1596 DATA :03/09/2007 - 09:59:35 ---------------------------------------- allego il Vi perche' faccio partire il VI, cambio il controllo quando il VI e' in esecuzione ma non cambia la frequenza del treno di impulsi... dove sbaglio??? \":(\" ---------------------------------------- AUTORE: 645 DATA :03/09/2007 - 10:25:40 ---------------------------------------- Scusa ma usi una cosa un po' strana: colleghi il Property Node direttamente al controllo... significa che per modificare il valore del controllo devi modificare il controllo... è come dire che un triangolo ha 3 lati perchè ha 3 lati... cioè... non serve. Mi spiego: il fatto di modificare il valore del controllo mentre il VI è in esecuzione significa che il VI sta girando con un ciclo (che non vedo nell'immagine) e quando succede qualcosa (gestione ad eventi... qualcosa accade e siccome è successa il valore in questione deve essere modificato) il valore del controllo cambia. Questo cambiamento non dipende dall'utente ma deve avvenire in modo automatico: ecco che serve un Property Node "Value" o una variabile locale. Il Property e il controllo non sono collegati con un filo diretto. Fuori dal ciclo c'è il controllo, all'interno del ciclo c'è il suo Property Node che in caso di necessità riceve un ingresso e va a modificare il valore del controllo. ---------------------------------------- AUTORE: 43 DATA :03/09/2007 - 10:27:55 ---------------------------------------- Ciao Nicola. [quote="nicola":1flykkc4]... Se il vi è esterno devi ricorrere alla tecnica VI server, ...[/quote:1flykkc4] Non è sempre necessario. usando un VI (FunctionalGlobal) la necessità di ottenere dal VI le informazioni riguguardanti un suo controllo, aprendolo (e conoscendo il nome del Controllo), sono scongiurate. A patto però che il VI FG venga inizializzato con il CtrlRef che si vuole modificare chiamandolo da dentro il VI proprietario del CTRLRef stesso. eccoti l'esempio. bye ---------------------------------------- AUTORE: 1596 DATA :03/09/2007 - 10:56:32 ---------------------------------------- ho capito che non vanno collegati..pero' non mi e' chiaro come fare..io vorrei poter variare il valore del controllo(agisco sulla manopola) e poter vedere il cambiamento della frequenza del treno di impulsi sull'oscilloscopio... [quote="MagicBotolo":2zu3j8p2]il fatto di modificare il valore del controllo mentre il VI è in esecuzione significa che il VI sta girando con un ciclo (che non vedo nell'immagine) e quando succede qualcosa (gestione ad eventi... qualcosa accade e siccome è successa il valore in questione deve essere modificato) il valore del controllo cambia. Questo cambiamento non dipende dall'utente ma deve avvenire in modo automatico..omissis..Fuori dal ciclo c'è il controllo, all'interno del ciclo c'è il suo Property Node che in caso di necessità riceve un ingresso e va a modificare il valore del controllo.[/quote:2zu3j8p2] ...non ti seguo... \":o\" ti allego il VI, se puoi darmi una mano... \":|\" ---------------------------------------- ================================================================================ Variabile locale e while ================================================================================ AUTORE: 2196 DATA :31/08/2007 - 17:43:50 ---------------------------------------- perchè non funziona ? In poche parole se lo eseguo con la lampadina va tutto bene se disattivo la llampadina non va più. Funziona anche se inserisco un ritardo di 1ms. Per non funzionamento vuol dire che se attivo il pulsante esso rimane disattivo. Mi è anche venuto il dubbio che fosse troppo veloce e non mi accorgevo del funzionamento, ma aumentando a dismisura i vari timeout del codice non cambia nulla. [url=http://img409.imageshack.us/my.php?image=lvkq0.jpg:h3i526dr][img:h3i526dr]http://img409.imageshack.us/img409/4248/lvkq0.th.jpg[/img:h3i526dr][/url:h3i526dr] ---------------------------------------- AUTORE: 645 DATA :31/08/2007 - 20:40:53 ---------------------------------------- Non ho calcolato tutti i casi ma penso che la variabile locale "Bottone" che metti in modalità scrittura sia quella che va a modificare lo stato del tuo bottone. Puoi fare due cose: 1) controllare che il valore che vai a scrivere nel bottone sia effettivamente quello che ti aspetti 2) inserire le operazioni in una struttura ad eventi che parte quando viene premuto il pulsante. Il tutto funziona in modalità "Debug" (con la lampadina) perchè il VI gira più lentamente e hai tempo di accorgerti di quello che succede. Quando mandi in esecuzione il VI a velocità normale non distingui più quello che succede perchè hai bottone e sua variabile locale nello stesso ciclo: appena premi sei già nel ciclo e tutto avviene rapidamente. Tra le altre cose puoi anche avere il problema che la pressione del pulsante (e quindi il suo cambiamento di valore) non avviene abbastanza rapidamente per il ciclo e quindi non vengono eseguite le operazioni con i valori corretti. Secondo me è meglio distinguere il ciclo dal pulsante usando una soluzione temporizzata (se per i tuoi scopi può andare bene credo che la struttura ad eventi sia la più comoda). ---------------------------------------- ================================================================================ Come modificare I/O di un sub.VI? ================================================================================ AUTORE: 2182 DATA :31/08/2007 - 18:04:18 ---------------------------------------- Ma ciao! Domandona : se creo un sub.VI che richiamo nel programma principale e mi accorgessi che ho bisogno di modificare il sub.VI perchè ho bisogno di introdurre un ulteriore input come posso fare??? ho provato ma niente da fare devo rifare il sub.VI? è un pasticcio perchè si staccano tutti i connettori collegati e ricollegarli è veramente tragico! avete idee di suggerimento, non so magari c'è un comando che mi consente di variare le caratteristiche I/O del sub.VI? grazie mille bice ---------------------------------------- AUTORE: 645 DATA :31/08/2007 - 20:35:25 ---------------------------------------- Fai doppio clic sul subVI, si apre, lo modifichi, aggiungi il morsetto che ti serve, lo salvi e quando torni al VI principale rifai i collegamenti e hai a disposizione anche il nuovo morsetto. Penso che sia l'unico modo... ---------------------------------------- AUTORE: 2182 DATA :01/09/2007 - 09:38:28 ---------------------------------------- io ho provato un po' di volte ma niente ti invio un esempio con il rispettivo sub.VI per spiegarmi meglio spero!ora se volessi aggiungere un altro connettore come faccio?vedi esempio2 e esempiosub2 numeric3 esiste nel sub.VI2 ma non compare nel main principale grazie ciao ciao ---------------------------------------- AUTORE: 2182 DATA :01/09/2007 - 09:52:43 ---------------------------------------- Ho guardato ma ho solo trovato che non posso aggiungere nuovi input o output! ---------------------------------------- AUTORE: 482 DATA :03/09/2007 - 07:26:27 ---------------------------------------- Non ho scaricato i tuoi esempi per mancanza di tempo (please, la prossima volta che hai piu' vi, mandali in un unico file zip) cmq credo che il tuo problema dia di modificare il pattern. Quando visualizzi i connettori devi afre Add Input (o output) oppure Change pattern cosi' da avere ulteriori connettori a disposizione ---------------------------------------- AUTORE: 482 DATA :03/09/2007 - 07:29:33 ---------------------------------------- aspetta aspetta..ho visto solo ora il tuo secondo post... Gli ingressi e le uscite li puoi inserire solo agendo DIRETTAMENTE sul subVI, non dall'esterno. Uell'add Input/output che hai evidenziato, serve solo nel caso tu abbia scelto di visualizzare meno collegamenti di quelli presenti nel SubVI, in quel caso hai la possibilità di aggiungere input o output ma solo a livello di visualizzazione per poterci collegare i fili, senza modificare il codice. Se li ti da l'indicatore in grigetto, significa ch enon ci sono altri input o output da poter visualizzare ---------------------------------------- AUTORE: 645 DATA :03/09/2007 - 09:45:31 ---------------------------------------- Come dice Geppo... per aggiungere morsetti di input e output nel subVI deve editare direttamente il subVI stesso, lo devi modificare dall'interno (sia esso un subVI creato da te piuttosto che un VI Express... come nel pdf che hai allegato al post). Dall'interno del subVI fai le modifiche che ti interessano e prima di chiudere modifichi anche il pannello dei terminali (in alto a destra, dove c'è l'icona... clicchi sull'icona e chiedi di mostrare i terminali... poi aggiungi i terminali che ti servono e quando salvi trovi questi terminali aggiunti nell'icona del subVI e puoi usarli per collegare nuovi valori). Dai un'occhiata a http://zone.ni.com/reference/en-XX/help ... ng_subvis/ ---------------------------------------- AUTORE: 2182 DATA :03/09/2007 - 16:06:18 ---------------------------------------- Grazie mille per i suggerimenti, ho provato e in parte ci sono riuscita, in parte no, perchè riesco a modificare la configurazione del sub.VI ovvero ad aggiungere I/O ma nel main in cui il sub.VI viene richiamato tale oggetto non viene modificato diventa trasparente, come riportato in figura, a questo punto devo importare il sub.VI modificato?e ricollegarlo?oppure c'è un modo per riuscire a recuperare quello c'è esistente? grazie ancora bice ---------------------------------------- AUTORE: 2182 DATA :03/09/2007 - 16:18:14 ---------------------------------------- Problema risolto!sono un po' idiota! grazie ancora! \":lol:\" ---------------------------------------- AUTORE: 482 DATA :04/09/2007 - 07:21:17 ---------------------------------------- per completezza di informazioni, magari questo post verrà aperto da qualcun'altro in futuro... Quando modifichi i terminali di un subvi, nel VI principale comapre in grigetto. Clikkando col tasto destro del mouse sul vi in grigetto selezionare Relink SubVI e il tutto andrà a posto. Lo stesso effetto lo si ottiene se si chiude il vi principale e lo si riapre. ---------------------------------------- ================================================================================ usb-6008: come generare un treno di impulsi? ================================================================================ AUTORE: 2187 DATA :03/09/2007 - 11:40:08 ---------------------------------------- Ciao a tutti, dovrei generare un treno di impulsi su un canale di output analogico della scheda usb-6008. Premetto che ho iniziato da poco a lavorare con labview e che non mai usato prima le DAQmx. \":oops:\" Sono in difficolta' perche' con la scheda USB-6008 moltissimi esempi non funzionano. Fra l'altro ho visto sul sito NI che il counter della questa scheda NON supporta la generazione di impulsi. Come posso fare per produrre un treno di impulsi analogici di frequenza 10-50 Hz e duty cycle che posso scegliere? Secondo voi potrei produrre gli impulsi su un canale di output digitale, ri-acquisirli come input digitale e prendere questo come clock esterno per la produzione dell'output analogico?? E' puro delirio?? Esiste un modo piu' semplice? grazie mille a tutti ---------------------------------------- AUTORE: 43 DATA :03/09/2007 - 13:40:04 ---------------------------------------- ATTENZIONE: Osservando il data sheet della tua Scheda si nota che: [b:3w519gdn]Analog Out = 2 uscite, a 150 Hz, range 0-5V, 12bit di risoluzione.[/b:3w519gdn] Significa che puoi generare una onda quadra di max 75Hz con duty cycle del 50% che non puoi modificare!!! Personalmente non sono convinto che quella scheda faccia al caso tuo... ---------------------------------------- AUTORE: 2187 DATA :03/09/2007 - 14:40:48 ---------------------------------------- Scusa Paracarro.... \":oops:\" da cosa deduco che non posso cambiare il duty? \":oops:\" \":oops:\" ---------------------------------------- AUTORE: 43 DATA :03/09/2007 - 17:29:55 ---------------------------------------- [quote="ely_xx":zgn4ytdk]Scusa Paracarro.... \":oops:\" da cosa deduco che non posso cambiare il duty? \":oops:\" \":oops:\"[/quote:zgn4ytdk] ...dal fatto che quando solitamente si comanda una uscita analogica si invia alla scheda un array di valori (espressi in Volt...) e la frequenza con cui questo array dovrà essere "riprodotto" sulla uscita stessa. Al termine, la "riproduzione" ricomincerà con il primo valore dell'array e continuerà all'infinito finchè l'uscita analogica verrà resettata. Perciò, volendo gestireun duty cycle con step del 10% e una freq. di uscita di 10 Hz, potrei avere un array di 10 elementi che vengono processati con una freq. di 100Hz nel tuo caso peggiore, 50Hz, volendo avere la possibilità di avere un duty cycle che funziona con step , per es. del 5% (array di 20 elementi) dovresti avere un freq. di output di 1 kHz... non so se mi sono capito... bye ---------------------------------------- ================================================================================ Creare una cartella da labview che abbia come nome la data ================================================================================ AUTORE: 2202 DATA :03/09/2007 - 14:56:25 ---------------------------------------- Salve a tutti, ho un problema, c'è un modo per creare una cartella con labview che abbai come nome la data del giorno in cui è stata creata. Naturalmente questa operazione deve avvenire in automatico ogni volta che lancio il programma. Ciao \":lol:\" ---------------------------------------- AUTORE: 645 DATA :03/09/2007 - 15:44:31 ---------------------------------------- Guarda http://zone.ni.com/devzone/cda/epd/p/id/3783 ---------------------------------------- ================================================================================ Porta seriale ================================================================================ AUTORE: 1355 DATA :03/09/2007 - 15:29:26 ---------------------------------------- Ciao a tutti Utilizzo i vi standard (non VISA) per comunicare con un dispositivo ma tale dispositivo richiede che i segnali DTR ed RTS siano disattivati. Per default questi segnali sono invece attivati. E' per caso possibile "manipolare" questi segnali con i Vi standard (non VISA) sulla seriale? P.S. Utilizzo LabView 6 Grazie a tutti per l'attenzione Saluti Jasca ---------------------------------------- AUTORE: 43 DATA :04/09/2007 - 09:06:34 ---------------------------------------- [quote="Jasca":2ezcu87q]Ciao a tutti Utilizzo i vi standard (non VISA) per comunicare con un dispositivo ma tale dispositivo richiede che i segnali DTR ed RTS siano disattivati. Per default questi segnali sono invece attivati. E' per caso possibile "manipolare" questi segnali con i Vi standard (non VISA) sulla seriale? P.S. Utilizzo LabView 6 ... Jasca[/quote:2ezcu87q] certamente Non ho + installato LV6 ma, per fortuna, il VI che richiedi si trova anche in labview 7.1. Questo è il path, suppongo sia simile x LV6: <Labview dir>\vi.lib\instr\_sersup.llb\serial line ctrl.vi. Ti consiglio, però, di cortocircuitare sul connettore seriale lato dispositivo (cioè non lato PC), i segnali RTS con CTS, e DTR con DSR. Al limite mettili a GND. Eccoti un promemoria: [size=75:2ezcu87q]Serial (RS232) port interface pinout and signals 9 25 pin# pin# Acronym Full name Direction Mean 3 2 TxD Transmit Data —» Transmits bytes out of PC 2 3 RxD Receive Data «— Receives bytes into PC 7 4 RTS Request To Send —» RTS/CTS flow control 8 5 CTS Clear To Send «— RTS/CTS flow control 6 6 DSR Data Set Ready «— I'm ready to communicate 4 20 DTR Data Terminal Ready —» I'm ready to communicate 1 8 DCD Data Carrier Detect «— Modem connected to another 9 22 RI Ring Indicator «— Telephone line ringing 5 7 SG Signal Ground [/size:2ezcu87q] bye ---------------------------------------- AUTORE: 1355 DATA :04/09/2007 - 12:47:26 ---------------------------------------- Grazie per l'interessamento. Purtroppo In LV6 non c'è questa llb ma ho controllato in LV7 ed era presente. Comunque sotto a questa LLB ci sono ancora le VISA. Se qualcuno ha qualche idea... ---------------------------------------- AUTORE: 645 DATA :04/09/2007 - 12:58:01 ---------------------------------------- Scusa la domanda... ma come mai non puoi usare i VISA? ---------------------------------------- AUTORE: 1355 DATA :13/09/2007 - 08:05:24 ---------------------------------------- La questione è un po complessa da spiegare e non sono nenche sicuro che sia la strada giusta per risolver il problema ma cercherò di spiegare brevemnte la questione. Io scrivo programmi di test. Noi utilizziamo un programma per schedulare i test (Test Executive di National pesantemente modificato). Io ho scritto il mio programma di test e tutto funzionava a meraviglia ma all'introduzione di una versione successiva del Test Executive in alcune perticolari circostanze la seriale smette di comunicare. Dopo vari controlli e tentativi che non sto a spiegare ma che non hanno comunque risolto il problema vorrei provare a "staccarmi" dai VISA per vedere se la problematica scompare. Grazie a tutti per l'attenzione Ciao ---------------------------------------- ================================================================================ database ================================================================================ AUTORE: 680 DATA :05/09/2007 - 07:45:17 ---------------------------------------- avete mai provato a caricare 20000 righe o più su una tabella? caricando 20000 record da un database su una tabella, labview si incasina un po'..... ---------------------------------------- AUTORE: 645 DATA :05/09/2007 - 08:49:59 ---------------------------------------- Esattamente cosa intendi con "si incasina"? Che rallenta un sacco? Io sto lavorando su database anche più grossi e con qualche accorgimento tutto funziona bene. ---------------------------------------- AUTORE: 680 DATA :05/09/2007 - 11:43:05 ---------------------------------------- si, mostrando tutti i 20mila record su una table control, rallenta soprattutto quando a vado a visualizzare gli ultimi della tabella... ---------------------------------------- AUTORE: 680 DATA :06/09/2007 - 09:24:26 ---------------------------------------- io avevo penso di visualizzarne 500 alla volta.. ma come posso fare per farli visualizzare sulla tabella? ---------------------------------------- ================================================================================ link property node ================================================================================ AUTORE: 73 DATA :05/09/2007 - 09:20:20 ---------------------------------------- uso labview 7.1 Se ho un property node e voglio cambiare la variabile a cui è associato faccio tasto destro link to..... ma nella lista che compare non ci sono tutte le variabili ma solo alcune quando usavo labview 6 c'erano tutte avete consigli? Altrimenti mi tocca andare sul terminal creare da lì il property node e portarlo nella parte di programma dove serve....un po' lungo ---------------------------------------- AUTORE: 645 DATA :05/09/2007 - 10:38:22 ---------------------------------------- Strano... di solito ci sono tutte. A che tipo di variabile fa riferimento il Property Node? ---------------------------------------- AUTORE: 482 DATA :05/09/2007 - 11:13:29 ---------------------------------------- mi sorge un dubbio.. non è che hai un tab control con all'interno dei controlli? se cosi' fosse, le variabili le troveresti in una sottocategoria. ---------------------------------------- AUTORE: 73 DATA :05/09/2007 - 11:21:37 ---------------------------------------- Grande hai ragione ....non avevo notato le sottocategorie ---------------------------------------- ================================================================================ Conversione data ================================================================================ AUTORE: 2202 DATA :05/09/2007 - 10:18:44 ---------------------------------------- Grazie Magic Botolo \":D\" ... devo ancora disturbarvi perchè non riesco a fare una cosa....riesco a generare una cartella con la data \":lol:\" ....ma la data che mi da è ( faccio l'esempio di oggi ) 5set2007 .... e invece a me servirebbe 05092007 \":(\" .... come faccio??? \":?:\" .... Grazie a atutti per l'aiuto.... Ciao Andrea.PS ho provato ad inserire l'opzione "short" per la creazione della data ma mi dà un codice di errore 10.........please help me \"8)\" ---------------------------------------- AUTORE: 645 DATA :05/09/2007 - 10:37:43 ---------------------------------------- Se cerchi sul sito della National (www.ni.com) nel motore di ricerca (inserisci "Date", "Time" o qualcosa di simile come parole da cercare) puoi trovare molte informazioni sulla gestione delle date (e non solo). PS: prego... \":D\" ... ---------------------------------------- ================================================================================ DAQ mx vs tradizionali ================================================================================ AUTORE: 73 DATA :05/09/2007 - 11:31:36 ---------------------------------------- Ho fatto una conversione di un labview 6 a un 7.1 su un computer e ho notato questo. Nel progamma col 6.0 avevo + acquisizioni analogiche in + punti, mi spiego in un punto del programma acquisivo un canale definito nel max e lo mettevo in una variabile, in un'altra acquisivo un'altro canale. Quando ho fatto la conversione lo stesso programma non funzionava +, torna a funzionare solo se acquisisco tutti i canali nello stesso punto è possibile? Il dubbio è + grosso se girano 2 programmi in contemporanea nello stesso pc e entrambi leggono la stessa scheda, il secondo mi dà errore....cosa dovrei fare acquisire tutto in un programma e poi passare le vARIABILI COME GLOBALI........mi sembra assurdo nel 6 tutto funzionava bene e upgradando hanno peggiorato? sapete aiutarmi? P.S ho provato anche a usare le DAQ mx e non riesco a chiamare un canale definito nel max ma devo definirlo nel programma e poi comunque devo definire tutti i canali analogici in un punto del programma Boh \":(\" ---------------------------------------- ================================================================================ Gestione Password ================================================================================ AUTORE: 847 DATA :05/09/2007 - 14:00:57 ---------------------------------------- Ciao volevo chiedere se in Labview esiste qualche sistema di gestione utente per proteggere l'accesso in alcune pagine da password o devo implementarlo da zero? Grazie Ciao ---------------------------------------- AUTORE: 927 DATA :07/09/2007 - 11:08:39 ---------------------------------------- Cosa intendi per pagine? Se intendi poter vedere/modificare il diagramma, vai su VI Proprieties e poi Protection ---------------------------------------- AUTORE: 129 DATA :08/09/2007 - 06:46:11 ---------------------------------------- Ovviamente essendo un ambiente di sviluppo, ti fornisce dei fondamentali per programmare la tua applicazione. Nel caso tu voglia implementare una gestione utente con login/pasword, quindi in base all'utente deve rendere disponibili alcuni elementi piuttosto che altri devi: Crearti un vi di interfaccia per il login (i controlli stringa possono essere modificati con tasto dx / password, per farti vedere gli asterischi al posto del testo digitato). Farti un vi di check login, che ti restituisce magari una stringa che attaccata ad una case structure del tu vi principale contiene le property di enabe(o visible etc.) per configurare il tuo pannello in base al codice inserito. Ti allego un esempio molto basic ---------------------------------------- AUTORE: 847 DATA :10/09/2007 - 09:35:50 ---------------------------------------- ..è proprio quello che intendevo... ti ringrazio. ---------------------------------------- ================================================================================ Problema queue ================================================================================ AUTORE: 904 DATA :05/09/2007 - 14:25:39 ---------------------------------------- Buon pomeriggio a tutti i lettori del forum . Mi sto cimentando nell'utilizzo delle funzioni queue di Labview .... Esattamente ho utilizzato la versione di esempio di labview 7.1 della funzione basic queue .... Vorrei gestire il queue in questo modo : Utilizzare un digital output esterno (trigger) che inserisce 1 solo nuovo numero nella queue... Attualmente nel VI che ho allegato succede che per il tempo che mantengo ON il segnale trigger la queue aggiunge n.. valori invece che 1 solo come sarei interessato a fare ..... Potreste svelarmi l'arcano per risolvere questo problema ?... Grazie in anticipo per il vostro supporto. La VI allegata è in versione labview 7.1 ---------------------------------------- AUTORE: 482 DATA :05/09/2007 - 15:26:20 ---------------------------------------- Beh, non è tanto un problema di queue quanto di programmazione. Il tuo trigger è collegato direttamenet al case che aggiunge un elemento alal coda. Invece tu dovresti collegare il trigger ad un altro controllo che sul fronte di salita del trigger diventa true e appena viene aggiunto l'elemento alla coda viene settato a false. ---------------------------------------- AUTORE: 904 DATA :05/09/2007 - 15:34:19 ---------------------------------------- Per cortesia potresti indicarmi come modificando il mio VI ???? Grazie molte in anticipo \":D\" ---------------------------------------- AUTORE: 482 DATA :05/09/2007 - 15:56:18 ---------------------------------------- no, purtroppo non posso perchè tu usi la versione 7.1e io la 8.2. E cmq come da regola, qui non è un forum di soluzioni take away, è un forum di discussione. Per una cosa cosi' "banale" credo che sia MOLTO piu' costruttivo per te e per chiunque leggerà questo topic avendo un problema simile, arrivare alla soluzione autonomamente. Ti posso dare un aiuto dicendoti che per individuare il fronte di salita del trigger devi fare in modo che il tuo controllo venga settato a true solo la prima volta che il trigger è true. Potresti per esempio farlo con un contatore che si resetta non appena il trigger è false. Credo che se segui alla lettera i consigli ti troverai con la soluzioen in mano. ---------------------------------------- AUTORE: 904 DATA :05/09/2007 - 15:57:40 ---------------------------------------- OK ! ci proverò grazie molte \":)\" ---------------------------------------- ================================================================================ DFT ================================================================================ AUTORE: 2002 DATA :06/09/2007 - 09:41:19 ---------------------------------------- Ciao a tutti, mi serve aiuto...Qualcuno sa dirmi qualcosa sulla DFT? L'algoritmo lo conosco, ma nn o implementare in labview! Nn riesco a trovare niente...Grazie in anticipo... ---------------------------------------- AUTORE: 1124 DATA :07/09/2007 - 18:25:31 ---------------------------------------- Potresti chiarire cosa significa DFT, perchè io immagino Discrete Fourier Transform ma non sono sicuro. Se così fosse dai una occhiata alle librerie di LV che ha parecchie funzioni disponibili per l'analisi dei dati: magari sono ultra sofisticate ma di solito sono anche dotate di una buona spiegazione. Ciao ---------------------------------------- ================================================================================ Controllo motore passo-passo ================================================================================ AUTORE: 2222 DATA :06/09/2007 - 12:28:16 ---------------------------------------- Ciao a tutti...sono nuovo nel forum e anche nell'utilizzo di Labview e inevitabilmente alcune (parecchie!) cose mi sfuggono. Quindi scusate la banalità ma mi servirebbe un consiglio... io dovrei controllare un motore passo-passo da ambiente labview. Il motore è connesso al pc tramite Rs232. Il motore ha un suo linguaggio di programmazione. Io ho pensato a due soluzioni: 1)importo il codice del programma in Labview tramite una stringa; 2)faccio partire il programma del motore direttamenet da Labview. Già, ma come? Ringrazio tutti anticipatamente per eventuali chiarimenti. Ciao! ---------------------------------------- AUTORE: 129 DATA :09/09/2007 - 17:07:14 ---------------------------------------- Ipotizzando che avendo una connessione RS232, dovresti avere un driver che provvede alla cmunicazione con il pc. A questo punto dovresti avere il set di istruzioni (stringhe) per gestire il motore. Per farla breve per inviare/ricevere una stringa via seriale, utilizzi i VI VISA . sul forum trovi molti esempi. Ciao, Nicola ---------------------------------------- ================================================================================ Inserire automaticamente un file in una cartella ================================================================================ AUTORE: 2202 DATA :06/09/2007 - 15:53:15 ---------------------------------------- Ciao a tutti \":D\" .... e GRAZIE ANCORA A MAGIC BOTOLO \":D\" ....sono riuscito a creare la cartella con la data automaticamente e ho quasi finito il mio programma......un ultimo dubbio mi è rimasto \":?:\" ..... Come faccio ad indirizzare i fies creati durante l'acquisizione all'interno della cartella che ha creato il programma?????????Sarei immensamente grato a chi di voi riuscisse ad indirizzarmi VERSO LA LUCE \":lol:\" ...Ciao Andrea ---------------------------------------- AUTORE: 927 DATA :07/09/2007 - 11:16:25 ---------------------------------------- Quando usi una qualunque funzione per scrivere su file, uno degli ingressi è il percorso del file, basta mettere in quel percorso la tua cartella. Per "attaccare" nome cartella e nome file, usa Build Path ---------------------------------------- ================================================================================ buffer vuoto VISA read ================================================================================ AUTORE: 1612 DATA :06/09/2007 - 17:18:43 ---------------------------------------- Ciao a tutti! Ho un VI che legge informazioni sulla seriale tramite il VISA read. Lo Allego... Se per qualche motivo chi scrive sulla seriale smette di scrivere il mio VI rimane in attesa. Come posso impostare un tempo di attesa e passato questo tempo il VISA read cessi di rimanere in attesa e quindi magari generi un errore o faccia qualsiasi cosa diversa dal rimanere impallato??! ---------------------------------------- AUTORE: 927 DATA :07/09/2007 - 11:22:46 ---------------------------------------- Qui da me il tuo VISA read non rimane in attesa, smette dopo 10 secondi come previsto. Solo che non si esce mai dal ciclo while; dovresti dargli lo stop anche in caso di errore ---------------------------------------- AUTORE: 1612 DATA :07/09/2007 - 12:53:31 ---------------------------------------- Hai ragione.... risolto... Il mio controllo sulla dimensione dell'array letto blocca il tutto. Chiedo venia per la ca...ta ma ero proprio fissato che il problema fosse il blocchetto VISA! Sorry! \":oops:\" ---------------------------------------- AUTORE: 927 DATA :07/09/2007 - 13:00:43 ---------------------------------------- Conviene usare il pulsante "lampadina" per fare il debug, ti saresti accorto subito ---------------------------------------- AUTORE: 1612 DATA :07/09/2007 - 13:02:47 ---------------------------------------- In effetti lo uso raramente e in questo caso mi avrebbe risolto il problema... Grazie!!!!!! \":wink:\" ---------------------------------------- ================================================================================ CONVERT to BINARY ================================================================================ AUTORE: 2002 DATA :06/09/2007 - 19:01:13 ---------------------------------------- ...ragazzi mi serve un VI col nome "convert to binary (crio-9236) "...Qualcuno mi può aiutare??? Vi ringrazio in anticipo... ---------------------------------------- ================================================================================ Trasformata Wavelet ================================================================================ AUTORE: 2225 DATA :10/09/2007 - 14:03:27 ---------------------------------------- Ciao, qualcuno si è mai cimentato a eseguire una trasformata wavelet con labview? So che è un tipo di trasformata molto utile nell'analisi dei transitori acustici... Grazie ---------------------------------------- AUTORE: 129 DATA :16/09/2007 - 20:59:08 ---------------------------------------- Prova a vedere se trovi spunti qui: [url=http://www.mayhu.com/talks/Wavelet_CSBurrus.pdf:7tdnv3tu]mayhu.com[/url:7tdnv3tu] [url=http://zone.ni.com/devzone/cda/epd/p/id/2212:7tdnv3tu]devzone_wavelet[/url:7tdnv3tu] Poi ancora [url=http://search.ni.com/nisearch/nisearchservlet?q=wavelet&filter=%2Btaxonomy%3Atop+%2B%28meta.collection%3Awww+meta.collection%3Awww2+meta.collection%3ApsEn+meta.collection%3Acommunity+meta.collection%3Acms%29+%2B%28language%3Aen+nilanguage%3Aen+nilanguage%3Aenglish%29+-docstatus%3Aobsolete&category=%2Btaxonomy:%22Tutorials%20and%20Application%20Notes%22&nistype=default&cluster=false&show_de=true&sortby=default&sortorder=ascending&ddown=2&view=basicsearch&nresults=10&lang=en:7tdnv3tu]qui[/url:7tdnv3tu] ---------------------------------------- ================================================================================ visualizzazione errori nell'eseguibile ================================================================================ AUTORE: 2227 DATA :10/09/2007 - 15:44:13 ---------------------------------------- Ciao, mi serve un po’ di aiuto. Ho creato un eseguibile con application builder, ma tale file non blocca la sua esecuzione in caso d’errore (ad esempio la comunicazione con un strumento spento) , non visualizza l’ errore ma prosegue nell’esecuzione. C’è un modo per far si che l’eseguibile si comporti allo stesso modo del VI originale? ---------------------------------------- AUTORE: 482 DATA :11/09/2007 - 07:22:12 ---------------------------------------- Non sono sicuro che sia questo il tuo problema, ma quasi sicuramente inserendo il vi GENRAR ERROR HANDLER in cascata in uscita dai vari vi dovrebbe risolverti il problema. poi ovviamente dovrai essere tu a gestirlo...nel senso che se ad un eseguibile gli dici STOP EXECUTION e basta...boh..non è bellissimo il comportamento... ---------------------------------------- AUTORE: 129 DATA :11/09/2007 - 07:43:00 ---------------------------------------- Ti devi assicurare di aver collegato il cluster di errore rispettando anche le regole di dataflow. Se hai un array di cluster li devi passare con la funzione merge error cluster. Se possibile metti il codice all'interno di un case a cui colleghi il terminale di selezione al cluster di errore in ingresso, il codice si trova nella condizione false, mentre puoi creare un codice che si genera all'evento di errore, inserendolo nel frame 'error'. Personalizza i messaggi di errore e creane per esempio generati da settaggi sbagliati, prima di eseguire sull' hardware. Puoi anche fare un piccolo vi per registrare su un logfile gli eventi di errore. ---------------------------------------- AUTORE: 2227 DATA :11/09/2007 - 10:05:05 ---------------------------------------- Grazie ad entrambi. L’unica cosa che non riesco a capire è perchè nell’eseguibile dovrei essere costretto a gestire personalmente i vari errori, magari anche bloccando l’esecuzione al verificarsene, quando invece normalmente l’errore viene visualizzato automaticamente e in maniera automatica l’esecuzione si blocca (devo dunque avere un codice un po’ diverso per far girare l’eseguibile allo stesso modo). ---------------------------------------- AUTORE: 927 DATA :11/09/2007 - 15:06:55 ---------------------------------------- Infatti non mi tornano i conti... di default, l'eseguibile si comporta come il VI, ovvero se un errore non è gestito esce la finestrella con "stop" e "continue". Non è che prima di compilare hai tolto "enable automatic error handling" su VI proprieties -> Execution? ---------------------------------------- AUTORE: 2227 DATA :12/09/2007 - 10:43:15 ---------------------------------------- No, non l’ho tolto. Strano, ad intuito avrei pensato che l’eseguibile si comportasse allo stesso modo ed invece sono stato costretto a gestire personalmente i vari errori. Almeno così li ho personalizzati. Grazie a tutti! ---------------------------------------- ================================================================================ TCP read CRLF ================================================================================ AUTORE: 927 DATA :11/09/2007 - 15:25:55 ---------------------------------------- Vorrei usare il TCP read in modalità CRLF (ovvero che legge finchè non incontra un CR/LF), però con caratteri di terminazione diversi da CR/LF. C'è un modo pratico o devo leggermi i byte uno a uno? ---------------------------------------- ================================================================================ acquisizione da seriale ================================================================================ AUTORE: 2229 DATA :11/09/2007 - 15:34:43 ---------------------------------------- Sono un nuovo labviewer. Vorrei acquisire da seriale da una board con 2 differenti sensori. Comandi. Inizio acquisizione: OxFF A 0 Ox00. Il 1° byte è di start, la lettera A è il comando per acquisire, il numero 0 viene scartato, l'ultimo byte è di stop. I dati arrivano nel seguente formato: OxFF S1H S1L S2H S2L Ox00 in modo continuo fino a quando non viene inviato il comando di fine acquisizione: OxFF C 0 Ox00. In cascata dovrei graficizzare sia S1 sia S2 verso il tempo. Qualcuno può darmi qualche dritta su come fare? Grazie mille. ---------------------------------------- AUTORE: 645 DATA :12/09/2007 - 09:13:50 ---------------------------------------- Con le funzioni per l'analisi delle stringhe (nella paletta "String" del Block Diagram) controlli la stringa ricevuta dalla periferica, cerchi i caratteri di separazione tra i valori che ti interessano (le grandezze lette dai sensori) e isoli questi valori. Poi li trasformi in numeri (nella paletta delle stringhe trovi una sottopaletta per le conversioni) e li passi ad un grafico (un Chart... per aver qualche info in più su questo tipo di grafici puoi cercare nel forum o sul sito della National, www.ni.com ). ---------------------------------------- AUTORE: 2229 DATA :13/09/2007 - 13:12:32 ---------------------------------------- Per attivare l'acquisizione dovrei inviare al dispositivo collegato alla seriale una stringa di 4 bytes di comando. I comandi possono essere 2, così composti: OxFF A 0 Ox00 oppure OxFF B 0 Ox00. Il primo e l'ultimo byte sono di intestazione start ed end della comunicazione. Come posso fare? Grazie ---------------------------------------- AUTORE: 838 DATA :13/09/2007 - 15:57:16 ---------------------------------------- quello che chiedi è lungo da spiegare, ma riassumendo devi fare: inizializzazione della seriale con i paramtri del dispositivo inviare con visa write il comando di richiesta con visa read leggi il pacchetto (in stringa) e invii di nuovo il comando con le visa write, poi read, poi write in un ciclo che terminerà con il write di fine comunicazione chiudi la seriale queste stringhe le metti in un array, ti fai un loop con la conversione in numero, poi lo passi ad un grafico è abbastanza riassuntivo, ma le cose principali sono queste ciao ---------------------------------------- AUTORE: 2229 DATA :15/09/2007 - 01:16:20 ---------------------------------------- Grazie dei consigli. Sono riuscito a fare quase tutto, quasi! Dunque, la stringa che mi arriva dalla seriale contiene caratteri ascii, come posso trasformarli in numero? Grazie ancora, Luca. Se necessario posso inviare il programma che ho fatto. ---------------------------------------- AUTORE: 645 DATA :15/09/2007 - 14:26:11 ---------------------------------------- Nella paletta delle stringhe ci sono delle funzioni di conversione "String to..." che permettono di convertire la stringa numero (prima devi isolare la parte di stringa che contiene il numero) in un dato effettivamente numerico di tipo decimale o più complesso. ---------------------------------------- AUTORE: 2229 DATA :17/09/2007 - 14:17:48 ---------------------------------------- In string palette ho trovato blocchi che convertono da exe string, oct string, dec string a numero, però non da stringa con caratteri ascii. ---------------------------------------- AUTORE: 2210 DATA :18/09/2007 - 23:55:48 ---------------------------------------- Probabilmente cio' che tu desideri e' il valore decimale di ogni singolo carattere. Puoi usare il blocchetto string to byte array che trovi nella paletta delle strings. poi ti gestisci il tutto come integer/esadecimali ... o nella notazione che a te piu' fa comodo. Ciao G. ---------------------------------------- AUTORE: 2229 DATA :19/09/2007 - 14:57:41 ---------------------------------------- Ho risolto, facendo scrivere dal micro sulla seriale direttamente in caratteri ascii la rappresentazione exe. Funziona! Ho i valori che cercavo. Purtroppo mi resta un ultimo problema, portare i risultati su grafico. Dovrei plottare su grafico continuamente ciò che mi arriva da seriale. Come posso fare? Allego il file. Grazie mille, Luca. ---------------------------------------- AUTORE: 2210 DATA :20/09/2007 - 11:12:41 ---------------------------------------- ti proporrei di utilizzare degli shift register ti allego l'immagine della modifica. Io ho LV8.5 se riesci a leggere i file 8.x ti posto il file ciao ---------------------------------------- AUTORE: 2229 DATA :20/09/2007 - 13:30:48 ---------------------------------------- grazie mille, sì anch'io ho labview 8.5 ---------------------------------------- AUTORE: 2229 DATA :20/09/2007 - 15:02:26 ---------------------------------------- Ottimo!Grazie infinite! Funziona tutto a dovere. Una cosa sola... come faccio al temrine di ogni acquisizione ad azzerare lo shift register in modo che allo start successivo il grafico ricominci dal tempo 0? Grazie ancora ---------------------------------------- AUTORE: 2210 DATA :21/09/2007 - 10:07:03 ---------------------------------------- ci colleghi a sinistra (fuori dal ciclo while) una costante (chiaramente vuota). ciao ---------------------------------------- AUTORE: 2229 DATA :21/09/2007 - 13:24:56 ---------------------------------------- grazie, fatto! ---------------------------------------- AUTORE: 2266 DATA :21/10/2007 - 12:10:00 ---------------------------------------- ciao a tutti, sono uno studente di ingegneria alle prime esperienze con labview. essendo questa la prima volta che scrivo sul forum perdonatemi se non ho inserito il messaggio nel topic corretto. il mio problema è il seguente (suppongo e spero che a voi sembri estremamente banale...): desidero acquisire dei dati provenienti da una termocoppia, che interagisce con il pc tramite porta seriale. il problema è che non riesco a comunicare con la porta seriale, neanche facendo girare gli esempi forniti da labview (Basic Serial Write and Read.vi e Advanced Serial Write and Read.vi). tentando di individuare il problema con l'aiuto dei probe ho notato che, dopo aver scritto una stringa nel buffer di memoria, il property node mi restituisce un valore di "byte at port" pari a 0 (e la cosa non mi sembra giusta...). Se invece provo a imporre io un numero di byte da leggere mi da il seguente errore: " Error -1073807339 occurred at VISA Read in Basic Serial Write and Read.vi Possible reason(s): VISA: (Hex 0xBFFF0015) Timeout expired before operation completed. " per quanto riguarda la configurazione della porta credo èproprio che sia giusta, e anche la scrittura non restituisce errori, quindi credo che il problema non sia qui (ma potrei sbagliarmi.. ovviamente....) il fatto è che lo stesso programma sul mio portatile funziona benissimo, ma sui due fissi su cui l'ho provato (il protatile non dispone di uscita seriale) ha sempre questo problema. dopo due giorni di esperimenti strampalati ho pensato di chiedere a qualcuno di voi. spero riusciate ad illumiarmi... \":idea:\" grazie in anticipo per la disponibilità ---------------------------------------- AUTORE: 1898 DATA :21/10/2007 - 14:19:00 ---------------------------------------- hai installato i driver per la visa? ---------------------------------------- AUTORE: 2266 DATA :21/10/2007 - 15:14:05 ---------------------------------------- ecco... me l'ero chiesto anch'io... installando labview, quando mi ha chiesto di dargli i driver, io gli ho dato tutto quello che avevo, e se adesso reinesrisco il cd e dalla cartella dei driver visa eseguo i setup mi viene chiesto se desidero reinstallarli. quindi immagino siano già installati. inoltre, se apro il menu Start>>tutti i programmi>>National Instrument mi compare, insieme alle cartelle labview NI-DAQ e altre, anche quella VISA. al suo interno c'è una "cosa" chiamata VISA driver Development Wizard che non so cos'è ma la ho eseguita lo stesso... credi che manchi qual'cosa? grazie ancora... ---------------------------------------- AUTORE: 384 DATA :22/10/2007 - 08:25:03 ---------------------------------------- [quote:2buk0iac]il fatto è che lo stesso programma sul mio portatile funziona benissimo, ma sui due fissi su cui l'ho provato (il protatile non dispone di uscita seriale) ha sempre questo problema.[/quote:2buk0iac] Se il portatile non ha la seriale, come fai a dire che funziona benissimo??? ---------------------------------------- AUTORE: 645 DATA :22/10/2007 - 09:02:38 ---------------------------------------- Cosa significa esattamente che "la termocoppia interagisce con il pc attraverso la seriale"? Questo "interagisce" cosa significa? Come leggi il valore delle termocoppia? Attraverso una scheda di acquisizione dati collegata alla seriale, attraverso un'interfaccia dedicata alla termocoppia (magari venduta insieme alla termocoppia stessa), attraverso una scheda realizzata "in casa"... ---------------------------------------- AUTORE: 2266 DATA :22/10/2007 - 19:16:24 ---------------------------------------- [quote="gyc":2ylwd3g5]Se il portatile non ha la seriale, come fai a dire che funziona benissimo???[/quote:2ylwd3g5] quello che intendo è che il programma di esempio se gira sul potatile non restituisce errori, esegue la scrittura e nella casella di lettura compare la stringa da me inserita nella casella di scrittura. se ho capito bene avviene semplicemente il passaggio della stringa nel buffer di memoria della porta seriale e successivamente questa stringa viene recuperata dall'istruzione read. se lo stesso programma lo provo sul pc fisso la stringa che io scrivo non viene letta. e compare l'errore. credo che capire il perchè di questo sia il primo passo.... ora mi spiego meglio sulla questione termocoppia-porta seriale. tutto l'hardware non l'ho realizzato io, è stato fatto in laboratorio da dei tecnici. so che la termocoppia è dotata di una scheda di acquisizione (visualizza anche la temperatura su un display a 7 segmenti) e so che in laboratorio riuscivano, collegandola ad un pc con il cavo serile, a visualizzare i valori di temperatura. quello che vorrei fare io è implementare la cosa in labview, in modo da poter visualizzare i dati, impostare dei tempi di lettura predefiniti, salvare i dati su dei file e altre cose del genere, poichè il programma che hanno in laboratorio queste cose non le fa... come ho già detto però sono piuttosto inesperto di labview, spero di non aver detto delle gran castronerie.... grazie per l'aiuto ---------------------------------------- AUTORE: 645 DATA :22/10/2007 - 23:11:22 ---------------------------------------- Secondo me devi chiedere (a chi ha costruito la scheda della termocoppia, a chi l'ha già usata in laboratorio, al manuale delle istruzioni...) se per comunicare con la termocoppia bisogna usare un protocollo. Mi spiego: quando si parla con gli strumenti esterni non sempre il dato è disponibile per essere letto. A volte (quasi sempre con gli strumenti da laboratorio controllabili in remoto per esempio) è necessario inviare una stringa di comando alla scheda e attendere la risposta. ---------------------------------------- AUTORE: 2266 DATA :26/10/2007 - 17:24:56 ---------------------------------------- mi sono informato: il protocollo è Modbus, e l'istruzione per leggere una word è 03h oppure 04h (non ho capito in base a cosa usare l'una o l'altra...) solo che il problema non si risolve, e sono convinto si trovi più a monte. ad esempio perchè il property node mi dice che ci sono 0 byte alla porta? non mi sembra normale... forse la cosa migliore sarebbe farvi avere il mio programma. appena disporrò di un pc con una connessione decente se vi va ve lo allego. intanto ancora grazie per la pazienza ---------------------------------------- AUTORE: 384 DATA :26/10/2007 - 17:58:53 ---------------------------------------- Ah... ecco dov'è il guaio!!! Il protocollo ModBus è un pò articolato; non si riassume a spedire un carattere e riceverne un'altro o una stringa terminata con CR/LF. Probabilmente stai inviando un commando incompleto che viene semplicemente ignorato, quindi non trovi niente in ricezione. Esiste una libreria per implementare questo protocollo sia su seriale che su TCP, liberamente scaricabile dal sito della N.I. Clicca [url=http://sine.ni.com/nips/cds/view/p/lang/en/nid/201711:3ak1y4m8]qui[/url:3ak1y4m8]. C'è anche un tutorial. Spiega l'essenziale per poterci lavorare. Il tutorial non è direttamente scaricabile, ma esiste il link per poterlo stampare in un formato senza tutti i fronzoli del sito. Suggerisco di stamparlo direttamente in PDF, così te lo tieni sul disco fisso. ---------------------------------------- AUTORE: 384 DATA :26/10/2007 - 18:11:04 ---------------------------------------- In rete trovo molto cose su ModBus. Ho trovato questi 2 riferimenti abbastanza completi e al contempo succinti da veler la pena darci un'occhiata: http://www.simplymodbus.ca/FAQ.htm http://www.lammertbies.nl/comm/info/modbus.html#mess E qui la sorgente ufficiale: http://www.modbus.org/specs.php Buon divertimento!   ---------------------------------------- ================================================================================ INTERRUTTORE ================================================================================ AUTORE: 1596 DATA :12/09/2007 - 14:00:15 ---------------------------------------- salve a tutti, ho un problema, credo banale, ma non riesco a risolvere... \":(\" allego il VI:in pratica ho uno switch a tre stati e vorrei portare ciascuno stato al di fuori del while. Ho provato con il property node-->value, ma si aggiorna solo una volta. Io vorrei che ciascuno stato si aggiornasse al di fuori del while cosiccome accade all'interno(continuamente). Tali stati mi servono poi per 'pilotare' strutture case e gli stop dei while. THX ---------------------------------------- AUTORE: 487 DATA :12/09/2007 - 14:50:22 ---------------------------------------- Ciao gianni1, non credo di aver capito molto bene cosa intendi con "vorrei portare ciascuno stato al di fuori del while". Il tuo controllo è un ring, ti basta portarne il valore all'esterno del while loop per sapere quale stato è attivo. Oppure vuoi avere i valori booleani dei tre comandi (avanti,stop, indietro)? In tal caso devi portare fuori dal while i tre indicator. ---------------------------------------- AUTORE: 487 DATA :12/09/2007 - 14:52:56 ---------------------------------------- Scusa, ti ho detto una cavolata ("In tal caso devi portare fuori dal while i tre indicator"). Devi portare fuori solo i segnali dei tre indicator, altrimenti perdi la visualizzazione del loro stato durante l'esecuzione del while loop. ---------------------------------------- AUTORE: 645 DATA :12/09/2007 - 15:13:25 ---------------------------------------- Non so se ho capito bene... ma prova ad inserire anche le costanti false. Mi spiego: quando nei vari stati del case imposti a true l'indicatore opportuno, imposta anche a false gli altri indicatori. Altirmenti gli indicatori non interessati dal case mantengono lo stato precedente. Poi controlla le varie posizioni: sicuro dei valori impostati? ---------------------------------------- AUTORE: 487 DATA :12/09/2007 - 15:21:37 ---------------------------------------- Scusa MagicBotolo, a me non risulta che "gli indicatori non interessati dal case mantengono lo stato precedente", anzi, così come ha fatto gianni1, gli indicatori non collegati alle costanti vengono riportati nello stato false (use default if unwired) ---------------------------------------- AUTORE: 645 DATA :12/09/2007 - 15:30:10 ---------------------------------------- È vero... \":D\" pardon! Però penso di aver capito... Gianni, tu vorresti che il Property Node si aggiornasse fuori dal ciclo in base al valore dell'indicatore nel ciclo. Non so se sia possibile. Così com'è il Property Node aggiorna il suo valore alla fine o all'inizio dell'esecuzione del VI. ---------------------------------------- AUTORE: 1596 DATA :12/09/2007 - 15:59:21 ---------------------------------------- coma: voglio avere i valori booleani dei tre comandi che si devono aggiornare cosiccome si aggiornano nel while(in tempo reale), se li porto semplicemente fuori non funziona!!!il while, all'interno del quale ho l'interruttore, mi restituisce i valori solo quando termina.Io non voglio cio'!!Il while mi deve restituire i valori booleani al suo esterno cosiccome li aggiorna al suo interno!!! MagicBotolo:il fatto e' che i valori 'avanti' e 'indietro' voglio che pilotino un case(true, false).All'interno di questo case(in entrambe le finestre) ho un while che voglio poter stoppare con il terzo comando 'stop'!!! ..spero di essere stato piu' chiaro seno' vi posto tutto il VI.... THX ---------------------------------------- AUTORE: 680 DATA :12/09/2007 - 16:05:13 ---------------------------------------- sinceramente, devo ancora capire quello che vuoi fare... cmq non puoi aggiornare un valore fuori dal ciclo whilo (si chiama ciclo a posta!)... nel tuo vi, per esempio, l'indicatore .not. x? 2 viene aggiornato solo all'avvio del vi... sei vuoi che venga aggiornato mettilo nel ciclo while oppure crea un'altro ciclo in parallelo... ---------------------------------------- AUTORE: 1596 DATA :12/09/2007 - 16:14:33 ---------------------------------------- voglio fare esattamente quello che ha detto MagicBotolo nell'ultimo post. [quote="linux120":2w5w8xh1]nel tuo vi, per esempio, l'indicatore .not. x? 2 viene aggiornato solo all'avvio del vi... sei vuoi che venga aggiornato mettilo nel ciclo while[/quote:2w5w8xh1] ...e' proprio questo che non voglio! [quote="linux120":2w5w8xh1]crea un'altro ciclo in parallelo...[/quote:2w5w8xh1] ...in questo modo riesco a fare quello che voglio?..non ho ben capito. ---------------------------------------- AUTORE: 487 DATA :13/09/2007 - 07:18:05 ---------------------------------------- Adesso credo di aver capito. Quello che sinceramente non riesco a capire è il perchè vuoi che il comando venga riportato all'esterno del ciclo. Comunque, il fatto è che quello che esiste all'esterno del tuo while loop non viene eseguito mentre è in esecuzione il while loop (puoi eseguirlo prima o dopo, ma non durante il loop). Per avere una esecuzione contemporanea devi necessariamente aver più loop in parallelo. Per passare i dati tra i due while loop puoi utilizzare vari metodi (variabili, queue, ecc. ). ---------------------------------------- AUTORE: 1596 DATA :13/09/2007 - 07:58:56 ---------------------------------------- ok...il fatto dei loop in parallelo me lo ha detto anche linux120...mi potreste consigliare qualche esempio o postarmelo perche' non saprei come fare.. THX p.s. voglio portare i valori booleani alll'esterno perche' essi devono pilotare un case che al suo interno ha ancora due while (uno in ogni finestra del case) e voglio che lo stop di questi while sia dettato dai valori booleani. In questo modo sul front panel ho solo l'interruttore a tre stati che mi governa il case e i 2 while (uno in ciascuna finestra)...questa era la mia idea, non so se e' realizzabile o se esiste un modo alternativo. ---------------------------------------- AUTORE: 487 DATA :13/09/2007 - 09:11:17 ---------------------------------------- Ok, eccoti un esempio. Non è certamente la soluzione migliore ma è solo per darti un suggerimento su come potresti fare ---------------------------------------- AUTORE: 1596 DATA :14/09/2007 - 08:43:45 ---------------------------------------- grazie coma!!! e' vero che cosi' funziona ma poi devo gestire lo stop2 del while...il mio problema nasceva proprio dal fatto che volevo gestire gli stop dei while senza troppi pulsanti ma solo con lo switch a tre stati(avanti e indietro mi gestivano un case e stop mi gestiva i 2 stop dei 2 while all'interno del case)...non so se rendo l'idea... ---------------------------------------- AUTORE: 680 DATA :14/09/2007 - 18:51:29 ---------------------------------------- per stoppare il "secondo" ciclo while, metti sulla condizione di stop una variabile locale del tasto del primo while... ricordati di impostare il tasto come switch on release.... ---------------------------------------- AUTORE: 487 DATA :17/09/2007 - 07:16:06 ---------------------------------------- Oppure puoi utilizzare le occorrenze ---------------------------------------- AUTORE: 129 DATA :17/09/2007 - 07:27:49 ---------------------------------------- Oppure una functional global. ---------------------------------------- AUTORE: 1596 DATA :17/09/2007 - 08:39:21 ---------------------------------------- ok grazie a tutti!!!! \":D\" ---------------------------------------- ================================================================================ La velcocità delle inport e outport? (solo 20us?) ================================================================================ AUTORE: 314 DATA :12/09/2007 - 16:19:38 ---------------------------------------- Salve a tutti. Mi sono proposto di acquisire e scrivere dati dalla porta parallela nella maniera più veloce possibile in modo da poter costruire un piccolo datalogger. Per prima cosa ho misurato il tempo che impiega a scrivere un dato sulla porta parallela. Lo strumento è di seguito allegato e genera una forma d'onda quadrata sul pin 2 della porta. Misurando il semiperiodo dell'onda si risale al tempo che impiega outport a scrivere il dato sulla porta. Il semiperiodo in questione è 20-25us.La porta è in modo EPP e scrive direttamente nel registro 378. Se si scrive nel registro 37C i tempi si allungano a 35us. Ora mi e vi chiedo: c'è una maniera per far si che i dati escano più velocemente? Il processore e la memoria del pc inoltre quanto influisce sulle prestazione? Qualcuno sa dirmi se usando questo VI riesce ad ottenere delle prestazioni migliori della mia? Spero nel vostro aiuto. ---------------------------------------- AUTORE: 927 DATA :18/09/2007 - 14:41:12 ---------------------------------------- Mancano tutti i sottoVI (ma penso che non ti saprei rispondere lo stesso...) ---------------------------------------- ================================================================================ uscire variabili dal while ================================================================================ AUTORE: 2195 DATA :13/09/2007 - 16:46:52 ---------------------------------------- salve a tutti! premetto che non sono molto pratico di labview... quindi il problema potrà sembrarvi banale... vi espongo il problemino: vorrei utilizzare i dati prelevati dall'interno di un while ma questi sono nulli fin quando il while non si ferma... ho provato con uno shift register ma la cosa non cambia... in pratica voglio far uscire i dati dal while mentre questo è in esecuzione. come si fa? grazie a tutti e ciao! ---------------------------------------- AUTORE: 1596 DATA :13/09/2007 - 16:59:34 ---------------------------------------- il mio stesso problema... [url=http://www.ilvg.it/forum/viewtopic.php?t=3398:xgie006c]vedi[/url:xgie006c] se ti soddisfa!!! ---------------------------------------- AUTORE: 2195 DATA :13/09/2007 - 19:30:28 ---------------------------------------- quindi in pratica non posso leggere le variabili se non prima il while si ferma? e se ho bosogno di tale variabili per passarle al altre parti della vi come faccio?? ---------------------------------------- AUTORE: 129 DATA :14/09/2007 - 07:51:17 ---------------------------------------- Si che puoi, Se vuoi passarle all'interno del tuo vi, usi una local variable Se vuoi passarle all'esterno usi una global variable Per entrambi potresti usare una functional global che nientaltro si tratta che di un vi con all'interno un ciclo while con condizione di terminazione attiva(esegue un solo ciclo) e uno shift register in cui passi la varibaile in scrittura e leggi la variabile in uscita. Il bello della functional global è che puoi eseguire codice all'interno della functional che ti elabori l'ingresso. Nota: lo shift register non deve essere realizzato(in questo modo ad ogni ciclo la variabile non viene inizializzata e funge quindi da memoria). Ciao, Nic ---------------------------------------- AUTORE: 1596 DATA :14/09/2007 - 08:39:18 ---------------------------------------- ...con la variabile locale oppure con il property node-->value come detto [url=http://www.ilvg.it/forum/viewtopic.php?t=3398:32n83hvb]qui[/url:32n83hvb], ma alla fine ci si ritrova a gestire lo stop di un altro while(quello in cui inserisco la variabile locale)...almeno io non volevo questo! p.s. gia' che ci sono...ma che differenza c'e' tra la property node-->value e la variabile locale? \":oops:\" ---------------------------------------- ================================================================================ ancoraCOLORtabCONTROL ================================================================================ AUTORE: 1596 DATA :13/09/2007 - 17:33:23 ---------------------------------------- ho visto le discussioni su come colorare un tab control....non hanno risolto il mio problema!!non riesco a colorarlo!Nella vers 8 se si prende il tab dai containers col pennello si riesce a colorare come si dice in questo [url=http://www.ilvg.it/forum/viewtopic.php?p=8882:2bxd8tig]post[/url:2bxd8tig]...io utilizzo la vers 6...ho letto quest'altro [url=http://www.ilvg.it/forum/viewtopic.php?t=1337:2bxd8tig]post[/url:2bxd8tig]...ho fatto come si dice, cioe' di spuntare 'allow multiple colors' sotto advanced(tasto dx sul tab control)...in realta' io non sono riuscito a spuntarlo in questo modo perche' il campo era invisibile ed ho utilizzato il property node-->allow multiple colors...una volta spuntato tale campo, come si procede???? \":o\" THX ---------------------------------------- ================================================================================ convertire vi da LV7.1 a LV7.0 ================================================================================ AUTORE: 314 DATA :13/09/2007 - 18:38:10 ---------------------------------------- Ho 2 vi scritti per labview 7.1 ma io ho il 7.0 . Qualcuno può convertirli per il 7.0 in modo che li possa leggere???? Grazie in anticipo ---------------------------------------- AUTORE: 927 DATA :18/09/2007 - 15:12:46 ---------------------------------------- Tiè ---------------------------------------- ================================================================================ subVI ================================================================================ AUTORE: 1596 DATA :14/09/2007 - 09:37:46 ---------------------------------------- salve... ho creato una subVI con i connettori che mi servivano...uno di questi e' un controllo all'interno di un while..quando inserisco tale subVI in un altro VI e creo la mia manopolina di controllo, il suo valore non viene aggiornato..solo se entro nella subVI allora(ovviamente)funziona... come e' possibile???cosa mi sfugge?? THX ---------------------------------------- AUTORE: 680 DATA :14/09/2007 - 18:48:21 ---------------------------------------- riesci a postare un'immagine del codice? ---------------------------------------- AUTORE: 129 DATA :16/09/2007 - 08:14:14 ---------------------------------------- Il while ha una condizione di terminazione e fintanto questa non viene settata, viene eseguito solo il codice al suo interno e non può passare dati verso l'esterno. In pratica nel tuo caso, il controllo viene passato al ciclo la prima volta, poi il ciclo entra in esecuzione e non puoi ne inserire ne prelevare dati dal suo interno. Ovviamente non puoi gestire la condizione di terminazione cercando di dargliela dall'esterno. Per risolvere il tuo caso devi trovare il modo di eseguire i cicli while all'interno di subvi in maniera che possano terminare da soli. Puoi usare la functional global che ti risolve anche il problema di usare dei shift register nell'applicazione. ---------------------------------------- ================================================================================ Manca qualcosa!! ================================================================================ AUTORE: 2197 DATA :16/09/2007 - 09:56:32 ---------------------------------------- Ho realizzato un sistema di visualizzazione di dati generati da un datalogger con trasmissione RS232,e fin quì tutto Ok. Creo l'eseguibile e poi l'installer, ma quando installo il programma su un sistema che non abbia il labview la seriale non funziona, ad esempio la [b:35mbscjx]VISA resurce name [/b:35mbscjx]non mi mostra le varie porte che sul computer ci sono. La domanda è cosa ho dimenticato di inserire nell'installer affinchè il tutto funzioni? ---------------------------------------- AUTORE: 129 DATA :16/09/2007 - 10:35:56 ---------------------------------------- Devi inserire il supporto VISA. E' una cosa che mi capita sempre anche a me (acc se fosse default).. ---------------------------------------- AUTORE: 2197 DATA :16/09/2007 - 10:40:18 ---------------------------------------- [quote="nicola":21ryvmp8]Devi inserire il supporto VISA. E' una cosa che mi capita sempre anche a me (acc se fosse default)..[/quote:21ryvmp8] Scusa potresti dirmi come fare, è da più di tre giorni che cerco di risolvere il problema ma non ci riesco, comunque grazie per il suggerimento. ---------------------------------------- AUTORE: 129 DATA :16/09/2007 - 10:47:35 ---------------------------------------- Che versione hai? DAlla 8 cambiano molte cose. ---------------------------------------- AUTORE: 2197 DATA :16/09/2007 - 10:48:40 ---------------------------------------- 8.2.1 ---------------------------------------- AUTORE: 129 DATA :16/09/2007 - 10:57:31 ---------------------------------------- OK, devi creare l'applicazione (exe) e poi ti devi obbligatoriamente creare l'installer con settati oltra al runtime di labview il runtime VISA. Sulla macchina dove esegui il codice devi installare complatamente l'applicazione che ti installerà una verisone del runtime con il supporto delle visa. ---------------------------------------- AUTORE: 2197 DATA :16/09/2007 - 11:10:04 ---------------------------------------- Ok ma sul mio installer non ci sono tutte quelle voci che vedo sul tuo. forse devo rifare l'installazione del labview ---------------------------------------- AUTORE: 2197 DATA :16/09/2007 - 11:12:35 ---------------------------------------- non sò come inserire l'immagine sul forum, per farti vedere quali sono le voci che compaiono sul mio installer. ---------------------------------------- AUTORE: 129 DATA :16/09/2007 - 20:42:12 ---------------------------------------- lAscia perdere il resto delle voci, l'importante è solo la visa runtime. Molte voci sono disponibili in funzione dell'HW che monti sulla macchina. Se non ha il VISa runtime allora senza rifare l'installazione da capo (però comunque ti serviranno i cd d'installazione), puoi andare su pannello di controllo/installazione applicazioni, trovare national instruents software e aggiungere i driver che ti mancano (i visa appunto). Per aggiungere un immagine al tuo messaggio, usa il pulsante sfoglia e selezioni l'immagine da allegare (deve essere inferiore a 500x500px e non deve superare i 250Kb). ---------------------------------------- AUTORE: 2197 DATA :17/09/2007 - 14:43:42 ---------------------------------------- Ok grazie. ---------------------------------------- AUTORE: 2197 DATA :17/09/2007 - 14:49:18 ---------------------------------------- Giusto per provare ---------------------------------------- AUTORE: 2197 DATA :18/09/2007 - 15:17:02 ---------------------------------------- Ok driver aggiornati, ma ora quando realizzo l'installer mi viene fuori questo messaggio. Mi spiegate che cosa manca, perchè non riesco in alcun modo ad andare avanti. ---------------------------------------- AUTORE: 645 DATA :18/09/2007 - 15:47:55 ---------------------------------------- Può centrare qualcosa? http://digital.ni.com/public.nsf/allkb/ ... D20056E692 ---------------------------------------- AUTORE: 2197 DATA :18/09/2007 - 22:25:05 ---------------------------------------- [quote="MagicBotolo":2cmoclkc]Può centrare qualcosa? http://digital.ni.com/public.nsf/allkb/ ... D20056E692[/quote:2cmoclkc] Ok grazie. ---------------------------------------- ================================================================================ inserire dati senza fermare il VI ================================================================================ AUTORE: 1596 DATA :18/09/2007 - 08:26:35 ---------------------------------------- salve a tutti, vi volevo chiedere se e' possibile inserire dati senza stoppare il VI...in pratica vorrei inserire una pausa (ad esempio con un 'button dialog' ) che dice all'utente di inserire i dati e lo stesso utente dovrebbe poter accedere al front panel (solo che con il button dialog non mi fa navigare nel VI)...c'e' un modo per fare cio' \":?:\" p.s. tutto cio' perche' i dati da inserire li conosco solo quando entra in esecuzione una parte del VI! (mi rendo conto che non e' proprio italiano \":o\" ) THX ---------------------------------------- AUTORE: 645 DATA :18/09/2007 - 10:32:41 ---------------------------------------- Potresti usare il VI Server, richiamare il VI che chiede all'utente l'inserimento delle informazioni e bloccare il VI principale in modo che non continui fino a quando il VI delle info non è stato compilato. Però non saprei farti un esempio. Prova a cercare su www.ni.com o qui nel forum... ---------------------------------------- AUTORE: 1596 DATA :18/09/2007 - 11:20:30 ---------------------------------------- grazie per l'info MagicBotolo!!!... \":D\" ---------------------------------------- ================================================================================ make current value default ================================================================================ AUTORE: 116 DATA :18/09/2007 - 08:37:42 ---------------------------------------- Salve a tutti, non trovo il modo di salvare all’uscita di un VI i nuovi valori impostati in un control e di conseguenza tenerli per il futuro come default. Naturalmente lo vorrei fare senza utilizzare file di appoggio. Questo è possibile? gazie Alberto S. ---------------------------------------- AUTORE: 2168 DATA :26/09/2007 - 10:52:53 ---------------------------------------- [quote="salberto":31k5uq06]Salve a tutti, non trovo il modo di salvare all’uscita di un VI i nuovi valori impostati in un control e di conseguenza tenerli per il futuro come default. Naturalmente lo vorrei fare senza utilizzare file di appoggio. Questo è possibile? gazie Alberto S.[/quote:31k5uq06] Non so se ho capito bene, ma per rendere i valori di Default basta cliccare con il tasto destro sul controllo o indicatore che vuoi e selezionare -Data operation-Make current Value default inoltre quando alla fine salvi dovrebbe tener ferme le impostazioni. Ciao ---------------------------------------- AUTORE: 116 DATA :26/09/2007 - 13:48:28 ---------------------------------------- scusa manca qualche spiegazione iniziale. quando il file .vi è compilato ed è in run se tu cambi il valore in un control quando esci dal programma, questo valore lo perdi. Io cercavo (penso non sia possibile) un modo per salvare questo nuovo valore inserito nel control in modo che alla successiva lancio del file .exe il nuovo valore fosse disponibile come default. (che giro di parole) spero di essere stato più chiaro ---------------------------------------- AUTORE: 927 DATA :27/09/2007 - 09:53:35 ---------------------------------------- Non mi risulta che sia possibile. Devi salvarti i valori a mano da qualche parte; se proprio non vuoi usare file di appoggio, in Windows potresti usare il Registro (vedi Advanced->Windows registry) ---------------------------------------- AUTORE: 482 DATA :27/09/2007 - 10:48:51 ---------------------------------------- Il metodo da applicare al VI esiste, il problema è che se lo inserisci in un VI e lo mandi in RUN, restituisce questo errore: Error 1073 occurred at Invoke Node in prova.vi Possible reason(s): LabVIEW: This property is writable only when the VI is in edit mode, or this method is available only when the VI is in edit mode. Method Name: Default Values:Make Current Default E' un errore che mi è capitato altre volte e non capisco...quindi qund'e' ch epotrei usarlo? Se e' in edit mode non ci sono cambiamenti e quindi che me ne faccio!? ---------------------------------------- AUTORE: 927 DATA :27/09/2007 - 11:12:09 ---------------------------------------- Io più che altro non ho mai capito come faccio a invocare un metodo, se è disponibile solo in edit mode... Metodi così non dovrebbero nemmeno farli apparire nel menù del blocco Invoke ---------------------------------------- AUTORE: 482 DATA :27/09/2007 - 12:30:08 ---------------------------------------- concordo.... ---------------------------------------- AUTORE: 487 DATA :28/09/2007 - 07:15:01 ---------------------------------------- Ciao a tutti, guardate l'esempio che ho postato: l'ho buttato giù un po velocemente, ma se lo ritenete interessante ci si può lavorare. Fatemi sapere. ---------------------------------------- AUTORE: 927 DATA :28/09/2007 - 07:51:40 ---------------------------------------- 8.5... pretendi troppo \":lol:\" ---------------------------------------- AUTORE: 487 DATA :28/09/2007 - 08:17:22 ---------------------------------------- La versione 8.0 è il massimo che posso fare. ---------------------------------------- AUTORE: 927 DATA :28/09/2007 - 08:30:22 ---------------------------------------- Ottima idea! Ora capisco... Quel metodo non può essere invocato da un VI [i:3vq0az8p]per sè stesso[/i:3vq0az8p], ma per un altro VI si! ---------------------------------------- AUTORE: 482 DATA :28/09/2007 - 10:30:01 ---------------------------------------- Io ci avevo provato ma non avevo inserito la VIOpen e tutto il resto, avevo messo solo il Default.... Con che criterio haistabilito quali funzioni ci volessero? ---------------------------------------- AUTORE: 487 DATA :28/09/2007 - 10:43:54 ---------------------------------------- Scusa Gepponline, ma se non apri il vi come fai a modificare i controlli del suo front panel? Perciò: devo aprire il front panel (che dev'essere in edit mode, altrimenti non posso operare), devo mandarlo in run (per consentire all'utente di agire su di esso), devo aspettare che il vi sia terminato e poi setto i valori attuali come default, infine salvo e chiudo tutto. Chiaramente il tutto funziona solo con il codice sorgente e non con il run-time-engine, perciò non credo che sia di grossa utilità ---------------------------------------- AUTORE: 482 DATA :28/09/2007 - 12:30:35 ---------------------------------------- ecco appunto ,io partivocon il VI già aperto. E non ho considerato minimamente di doverlo mandare in run. Io ho cambato un valore in edit mode. E poi cosa mi rappresenta l'Edit Mode? E' diverso da cosa? ---------------------------------------- AUTORE: 116 DATA :02/10/2007 - 07:33:59 ---------------------------------------- [quote:u9hb0wqe]La versione 8.0 è il massimo che posso fare.[/quote:u9hb0wqe] scusa coma, ma con la versione 8.0 come ti trovi? all'inizio sembrava ci fossero dei bachi e io non la ho mai installata. sbaglio tutto o cosa? un altro motivo perchè non la ho installata, sono le dimensioni del run time! dalla 6 alla 7 sono raddoppiate e quando devi spedire a un cliente un software compilato e gli devi allegare il run time è proprio un casino. ciao grazie ---------------------------------------- AUTORE: 487 DATA :02/10/2007 - 07:41:16 ---------------------------------------- Ciao Salberto, in realtà la versione 8.0 l'ho utilizzata per pochissimo tempo e mi è sembrata piuttosto un mattone per cui sono passato velocemente alle versioni successive (appena disponibili). Comunque mi sembra che stiamo un po' divagando dall'argomento del topic, eventualmente aprine un'altro. ---------------------------------------- AUTORE: 838 DATA :02/10/2007 - 10:49:59 ---------------------------------------- per ora io non ho trovato altra soluzione che con un file d'appoggio è la via più comoda, veloce e sicura \":D\" ---------------------------------------- ================================================================================ Compilazione eseguibile, chiusura al termine. ================================================================================ AUTORE: 2196 DATA :18/09/2007 - 09:43:19 ---------------------------------------- Ciao a tutti, dovrei compilare un eseguibile che una volta terminato si chiude automaticamente. Ho provato a modificare le proprietà della VI con scarsi risultati. Una volta terminata l'esecuzione del compilato la VI si ferma ma la finestra non si chiude. Come posso fare ? ---------------------------------------- AUTORE: 4 DATA :18/09/2007 - 10:32:39 ---------------------------------------- devi chiamare alla fine della tua applicazione la funzione Quit LabVIEW che trovi nella paletta Application Ciao ---------------------------------------- AUTORE: 645 DATA :18/09/2007 - 10:33:59 ---------------------------------------- Nelle palette del Block Diagram c'è una voce "Exit LabView". Dovrebbe essere sufficiente questo blocco per far sì che alla fine dell'esecuzione il VI (sia in fomato modificabile che in formato eseguibile compilato con Application Builder) si chiuda. ---------------------------------------- ================================================================================ 2 onde quadre con numero di impulsi finito e sfasate di 90° ================================================================================ AUTORE: 2233 DATA :18/09/2007 - 12:50:13 ---------------------------------------- Salve a tutti. Ho un problema da risolvere su cui sto sbattendo la testa da più di una settimana: devo generare 2 onde quadre sfasate di 90° e aventi un numero di impulsi finito (che devo ovviamente scegliere io). Inoltre queste onde devono avere una frequenza possibilmente elevata (dell'ordine dei 500 kHz, ma eventualmente andrebbe bene anche di meno)). I due segnali generati devono andare in uscita in una scheda della National Instruments (scusate ma non so il modello, non sono molto esperto). Ovviamente le due onde quadre devono andare in uscita su due canali diversi della scheda. Ho provato in tantissimi modi, guardando gli esempi presenti in labview, utilizzanto i counter, segnali analogici o digitali ma c'è sempre qualche problema. Qualcuno saprebbe darmi una mano o darmi qualche consiglio????? Grazie a tutti per l'attenzione!!! ---------------------------------------- ================================================================================ output analogico o digitale per governare motore trifase ================================================================================ AUTORE: 2235 DATA :19/09/2007 - 11:30:31 ---------------------------------------- Buongiornoa tutti sono cromax un utente nuovo nel forum e colgo l'occasione per salutarvi e farvi i complimenti su di esso. in realtà avevo già postato questa topic nella parte hardware del forum ma forse mi sono sbagliato. Mi scuso e vi ripresento il mio problema Cortesemente avrei bisogno di alcune indicazioni su come inviare un segnale analogico o digitale in uscita da una scheda NI 6281 che deve essere letto da un inverter con encoder che può lavorare ad anello chiuso. L'encoder si collega direttamente a una porta dell'inverter per cui non penso occorra un programma di PID. l'obiettivo è inviare un setpoint calcolato da un programma in labview che deve essere attuato da un motore trifase pilotato da un inverter con encoder per sistema anello chiuso, che pilota un martinetto a vite. Indicazioni per link di esempi sarebbero molto utili. Grazie tante un saluto P.S. A vostra disposizione per ogni delucidazione in merito all'architettura del sistema ---------------------------------------- AUTORE: 1124 DATA :20/09/2007 - 13:09:39 ---------------------------------------- Ciao se l'inverter accetta segnali analogici in ingresso non devi fare altro che settare un analog output ad un valore opportunamente calcolato e diverso da 0V, per poi settare il valore di 0V una volata che l'encoder ha segnalato che il martinetto ha raggiunto il punto di funzionamento voluto misurato tramite l'encoder. Forse la cosa migliore sarebbe quella di fare generare un valore fisso, ma comunque basso, dalla 6281 per poi settare questo valore a 0Volt: in questo modo il motore si muove 'lentamente' altrimenti se il valore di tensione generato dalla 6281 è elevato l'inverter va a pilotare ad alta frequenza il motore che quindi 'gira veloce'. Se hai un motoriduttore il problema non si pone e ti suggerisco un controllo retroazionato con parametri PID: il valore di tensione genrato all'uscita dovrà essere inversamente provporzionale alla corsa (residua) della vite o del n. di giri mancanti calcolati in base al passo della vite. Al posto dell'encoder io useri o un LVDT o ancora meglio una cella di carico acquisiti in modo analogico da un canale della scheda. ---------------------------------------- AUTORE: 2235 DATA :26/09/2007 - 14:19:28 ---------------------------------------- Grazie tante Seguirò questa strada. ---------------------------------------- ================================================================================ timer autoresettante ================================================================================ AUTORE: 2195 DATA :19/09/2007 - 22:31:26 ---------------------------------------- salve a tutti! lo so che l'argomento timer è molto trattato ma tra i topic presenti non ho trovato ciò che fà al caso mio... vorrei realizzare una specie di cronometro (detta schietta...) cioè vorrei che appena avvio la vi parta un timer che arrivato ad esempio a 10 secondi si fermi e mi restituisca 1 e che possa ricevere la condizione di azzerarsi come un ingresso... un cronometro appunto! ho provato ad utilizzare il blocco "Elapsed time" ma non va come vorrei... se potete aiutarmi... grazie a tutti e ciao! ---------------------------------------- AUTORE: 129 DATA :20/09/2007 - 08:20:42 ---------------------------------------- Prova modificando questo. ---------------------------------------- AUTORE: 2195 DATA :20/09/2007 - 11:53:14 ---------------------------------------- ciao! uso LabView 8.0 potresti convertirlo? grazie! ---------------------------------------- AUTORE: 129 DATA :21/09/2007 - 06:44:10 ---------------------------------------- Ti allego una screenshot del diagramma ---------------------------------------- AUTORE: 2195 DATA :21/09/2007 - 13:43:52 ---------------------------------------- ok adesso lo implemento! comunque se qualcuno potesse convertirlo in 8.0 gli sarei grato dato che la figura e piccina ed alcune cose non sono ricostruibili perchè nascoste... ciao! ---------------------------------------- AUTORE: 2195 DATA :24/09/2007 - 09:28:27 ---------------------------------------- non è proprio ciò che stavo cercando... vi illustro meglio il problema: devo eseguire un controllo su dei sensori e ciò deve avvenire ogni 10 minuti, durante questi 10 min la vi fa altre cose... avevo pensato di usare un while...ma non mi è sembrata la scelta più opportuna...poi avevo pensato ad utilizzare quel cronometro ma anch'esso fa uso di while ed io non li voglio... sapreste suggermi qualcosa? grazie e ciao! ps: che differenza c'è tra un while e run continuously? ---------------------------------------- AUTORE: 129 DATA :24/09/2007 - 13:47:03 ---------------------------------------- Il while lo puoi temporizzare il run continously invece va a velocità macchina(da evitare perchè a seconda della macchina dopo un pò di tempo ti crasha la macchina). IL while che ho usato non è precondizionato nel senso che esegue un solo ciclo (questo utilizzo con shift register si chiama ance functional global). In pratica sfrutti solo l'effetto di memorizzazione dello shift register non inizializzato. Se devi fare un conteggio di 10 minuti basta che confronti il tempo trascorso con il tempo prefissato. Finalmente ti sono riuscito a convertire per la 8.0 Nicola ---------------------------------------- AUTORE: 2195 DATA :24/09/2007 - 14:19:06 ---------------------------------------- grazie nicola! ma la tua vi la devo inserire inserire all'interno di un altro ciclo? o devo usare run continously? perdonami l'ignoranza ma sono nuovo... ---------------------------------------- AUTORE: 129 DATA :24/09/2007 - 16:38:29 ---------------------------------------- In un altro while, che stavolta avrà il suo bravo bottone di stop da interfaccia e un wait per regolare il refresh del ciclo. Il run continuosly lo puoi usare solo per fare dei debug (e te lo sconsiglio anche in quel caso) di vi che on hanno un while. In pratica non usare mai il run continuosly. Non ti preoccupare siamo tutti principianti in qualcosa.... \":lol:\" ---------------------------------------- AUTORE: 2195 DATA :24/09/2007 - 16:48:57 ---------------------------------------- grazie nicola!! un'ultimo chiarimento: una volta completata la mia vi essa dovrà rimanere in funzione per molte ore durante il quale dovra fare letture di dati ogni 1 sec ed accendere-spegnere vari attuatori ogni 10min. Che faccio allora gestisco i vari tempi con dei while, magari in parallelo, e poi metto tutto in un unico while? grazie e ciao! ---------------------------------------- AUTORE: 129 DATA :25/09/2007 - 07:11:14 ---------------------------------------- Continui inglobando il timer in un vi che gestisci il meccanismo che richiedi. Ti allego un esempio in 8.0 ---------------------------------------- ================================================================================ Event structure e prestazioni ================================================================================ AUTORE: 1520 DATA :20/09/2007 - 10:24:07 ---------------------------------------- Salve a tutti, volevo porre una questione sul'event structure, ho cercato un po' di documentazione ma ho difficoltà a trovare dei rimandi anche sul sito della NI. Ho un'applicazione piuttosto complessa e ho 2 vi che comunicano tramite eventi: tipo client server. In pratica ho fatto un processo che mi fa da gestore di una telecamera che deve fare una serie di acquisizioni ed un programma che chiede al gestore di fare la foto. Ora, il problema è questo: di solito funziona tutto bene, ma a volte il programma rallenta inspiegabilmente in maniera molto evidente. Ho aggiunto dei time stamp e vedo che tra la trasmissione dell'evento e la sua esecuzione passano fino a 4 secondi (mentre di solito si parla di decine di millisecondi). Qualcuno ha idea di come possa succedere questo? C'è modo di ovviare al problema. Ho parlato con un mio collega che ha avuto lo stesso problema e che ha risolto eliminando gli eventi ma vorrei evitare se possibile. Al limite potrei forse usare le notifiche al posto degli eventi ma sono più efficenti? Boh? \":?\" Grazie. Matteo ---------------------------------------- ================================================================================ Valutare qualità programmi Labview ================================================================================ AUTORE: 2242 DATA :20/09/2007 - 13:12:40 ---------------------------------------- Ho la necessità, pur non possedendo Labview, di valutare la qualità e la complessità di programmi Labview che mi vengono forniti. Leggo [url=http://zone.ni.com/devzone/cda/tut/p/id/3324:1xhbq0tp]qui[/url:1xhbq0tp] che esiste un tool adatto allo scopo... ma è integrato in Labview!! Non esistono tool simili ma esterni? ---------------------------------------- AUTORE: 645 DATA :20/09/2007 - 13:41:56 ---------------------------------------- Il tool di cui parli fornisce indicazioni riguardo il numero di VI e subVI presenti, il numero di chiamate... e poi informazioni sulla memoria usata, sui tempi di esecuzione, sui tempi di chiamata tra VI principali e subVI... ma penso che per valutare la complessità dei programmi la cosa migliore sia testarli in condizioni critiche (a meno che tu abbia bisogno di dati oggettivi e numerici tipo quelli che ho indicato qualche riga fa...). \":D\" ---------------------------------------- AUTORE: 2242 DATA :20/09/2007 - 14:26:34 ---------------------------------------- [quote="MagicBotolo":3elppiu9]Il tool di cui parli fornisce indicazioni riguardo il numero di VI e subVI presenti, il numero di chiamate... e poi informazioni sulla memoria usata, sui tempi di esecuzione, sui tempi di chiamata tra VI principali e subVI... ma penso che per valutare la complessità dei programmi la cosa migliore sia testarli in condizioni critiche (a meno che tu abbia bisogno di dati oggettivi e numerici tipo quelli che ho indicato qualche riga fa...). \":D\"[/quote:3elppiu9] invece è proprio cosi', mi servono i "dati oggettivi" di cui parli. ---------------------------------------- AUTORE: 384 DATA :21/09/2007 - 02:26:20 ---------------------------------------- La IBM, (neanche) molti anni fa, valutava i programmi e relativi programmatori in base al numero di righe di codice che essi scrivevano: più righe = più complesso = più competenza = più soldi. Il risultato - OVVIAMENTE - è stato che il software di IBM è sempre stato una disgrazia, fintanto che i più bravi sono usciti (vedi Amdahl, SAP) e IBM si è vista costretta a cambiare modello. Questo per dire che, pur essendo dati "oggettivi", il numero di VI, la memoria occupata, ecc, in realtá di per sè non dicono molto della complessità dell'implementazione che hai davanti. Io posso risolvere un piccolo problema con diverse decine di VI, basta strattificare il software esaperatamente: avrá un numero altissimo di VI e occuperá più memória (e sará pure più lento!) - chi programma cosí, per me è un incompetente!!! Ovviamente ci si metterà più tempo a realizzarlo e quindi costerà di più. Se è a questo che vuoi arrivare - capire quanto tempo è "costato" dal numero di VI - allora qualcosa ricaverai. Ma per favore, [b:f1wh9muf][u:f1wh9muf]NON[/u:f1wh9muf][/b:f1wh9muf] usare questo come [u:f1wh9muf]unico[/u:f1wh9muf] metro per valutare la complessitá del software e [b:f1wh9muf][u:f1wh9muf]tantomeno[/u:f1wh9muf][/b:f1wh9muf] per valutare la competenza del programmatore! E comunque non dimenticare che realizzare un VI di interfaccia operatore è spesso molto più [i:f1wh9muf]time consuming[/i:f1wh9muf] di un VI con un algoritmo di elaborazione dati, pure essendo molto meno complesso dal punto di vista di concetto e di implementazione programatica.   ---------------------------------------- AUTORE: 2242 DATA :21/09/2007 - 08:37:40 ---------------------------------------- [quote="gyc":14sxlsx9]La IBM, (neanche) molti anni fa, valutava i programmi e relativi programmatori in base al numero di righe di codice che essi scrivevano: più righe = più complesso = più competenza = più soldi. Il risultato - OVVIAMENTE - è stato che il software di IBM è sempre stato una disgrazia, fintanto che i più bravi sono usciti (vedi Amdahl, SAP) e IBM si è vista costretta a cambiare modello. Questo per dire che, pur essendo dati "oggettivi", il numero di VI, la memoria occupata, ecc, in realtá di per sè non dicono molto della complessità dell'implementazione che hai davanti. Io posso risolvere un piccolo problema con diverse decine di VI, basta strattificare il software esaperatamente: avrá un numero altissimo di VI e occuperá più memória (e sará pure più lento!) - chi programma cosí, per me è un incompetente!!! Ovviamente ci si metterà più tempo a realizzarlo e quindi costerà di più. Se è a questo che vuoi arrivare - capire quanto tempo è "costato" dal numero di VI - allora qualcosa ricaverai. Ma per favore, [b:14sxlsx9][u:14sxlsx9]NON[/u:14sxlsx9][/b:14sxlsx9] usare questo come [u:14sxlsx9]unico[/u:14sxlsx9] metro per valutare la complessitá del software e [b:14sxlsx9][u:14sxlsx9]tantomeno[/u:14sxlsx9][/b:14sxlsx9] per valutare la competenza del programmatore! E comunque non dimenticare che realizzare un VI di interfaccia operatore è spesso molto più [i:14sxlsx9]time consuming[/i:14sxlsx9] di un VI con un algoritmo di elaborazione dati, pure essendo molto meno complesso dal punto di vista di concetto e di implementazione programatica.  [/quote:14sxlsx9] tutte queste cose le so... e' per questo che esistono le METRICHE (complessità ciclomatica in primis). Ma se per LabView non esistono linee di codice e l'unico modo per valutarlo è... contare i disegnini \":roll:\" ... beh.. contiamoli! Cmq mi sembra una baggianata che non esistano linee di codice: semmai non si scrivono... ma da qualce parte andranno salvati i dati dell'interfaccia, no? DOve? In file binari o in file di testo? Com'e' fatto un "sorgente" Labview?? ---------------------------------------- AUTORE: 1871 DATA :21/09/2007 - 09:22:47 ---------------------------------------- Tipicamente per valutare la complessità di un programma non si contano certo le righe di codice. E' molto importante invece tenere in considerazione i cicli e la ricorsività. E' comunque una materia piuttosto complessa, e di certo non ci si può limitare a contare il numero di oggetti. ---------------------------------------- AUTORE: 2242 DATA :21/09/2007 - 09:39:59 ---------------------------------------- [quote="Trombetta":2ikoxxy6]Tipicamente per valutare la complessità di un programma non si contano certo le righe di codice. E' molto importante invece tenere in considerazione i cicli e la ricorsività. E' comunque una materia piuttosto complessa, e di certo non ci si può limitare a contare il numero di oggetti.[/quote:2ikoxxy6] vabbe', continuate a dirmi come NON devo fare, ma ancora nessuno mi ha detto COME fare a valutare un programma LV! ---------------------------------------- AUTORE: 1597 DATA :21/09/2007 - 10:04:56 ---------------------------------------- secondo me o ti servi dello strumento che hai segnalato oppure se vuoi essere più preciso nella valutazione dovresti conoscere il linguaggio di programmazione. ---------------------------------------- AUTORE: 384 DATA :21/09/2007 - 10:44:52 ---------------------------------------- [quote:2qr4qmos]Cmq mi sembra una baggianata che non esistano linee di codice: semmai non si scrivono... ma da qualce parte andranno salvati i dati dell'interfaccia, no? DOve? In file binari o in file di testo? Com'e' fatto un "sorgente" Labview??[/quote:2qr4qmos] In realtà, il sorgente di LV è grafico, Il compilatore passa direttamente dal diagramma al codice macchina, non c'è un linguaggio testuale comprensibile a umani di mezzo. Leggi [url=http://www.ni.com/devzone/lvzone/dr_vi_archived6.htm:2qr4qmos]qui[/url:2qr4qmos].   ---------------------------------------- AUTORE: 384 DATA :21/09/2007 - 10:53:47 ---------------------------------------- [quote="jumpjack":ldd5762q]vabbe', continuate a dirmi come NON devo fare, ma ancora nessuno mi ha detto COME fare a valutare un programma LV![/quote:ldd5762q] Ti è venuto il dubbio che sia perchè di fatto NON esiste un solo modo per analizzare e valutare la complessità di un programma? Solo alcuni esempi [url=http://www.linuxjournal.com/article/8035:ldd5762q]qui[/url:ldd5762q], [url=http://en.wikipedia.org/wiki/Cyclomatic_complexity:ldd5762q]qui[/url:ldd5762q], [url=http://www.sei.cmu.edu/str/descriptions/halstead_body.html:ldd5762q]qui[/url:ldd5762q] e [url=http://www.verifysoft.com/en_code_complexity_measures.html:ldd5762q]qui[/url:ldd5762q]. Ma non sono nè gli unici, tantomeno gli ultimi arrivati. A proposito di contare le righe di codice, o per analogia il numero di VI, leggi anche [url=http://c2.com/cgi/wiki/quickDiff?LinesOfCode:ldd5762q]qui[/url:ldd5762q].   ---------------------------------------- AUTORE: 129 DATA :22/09/2007 - 07:54:48 ---------------------------------------- A mio avviso l'approccio comune per vaòutare una cosa che non conosciamo è appellarci a quello che chiede e quello che da fuori; - prendi l'applicazione: Fa quello che hai chiesto di fare in condizioni normali? in condizioni critiche? LA metti in esecuzione per diverse ore e non ti blocca la cpu? Ti sono forniti i sorgenti? Sono chiari e leggibili? LA documentazione è efficace? E' possibile modifiocare l'andamento del codice agendo su file di configurazione in modo che se faccio una modifica (per esempio un accesso ad un altro database o una com seriale diversa) possa rapidamente agire su questi file senza doverlo richiamare per modificare il codice. A mio avviso è migliore un codice leggibile/documentato e manutenibile che un codice scombinato anche se ha molti VI. Per farti un esempio, un meccanico lo paghi ad ore, ma quello che giudichi è il suo operato e che la macchina si a posto, non ti concentri molto sulle ore che ha impiegato. Per questo se io scrivo un applicazione con 1000 righe di codice ma non la documento e non è facilmente leggibile (e non si capisce come faccia a funzionare perchè non si riesce a capire come gira il codice) e un altro scrive la stessa applicazione con 100 righe di codice, mi fornisce un algoritmo e una documentazione per chiarirmi come funziona, mi documenta ogni passaggio all'interno del codice, in modo che possa facilmente trovare soluzioni future, mi da un codice modulare tanto da poter agevolmente modificarlo inserendo moduli diversi. Insomma i criteri di valutazione sono tanti ma abbandonerei il mero conteggio di righe o di subVI, avresti dei risultati sfalsati e inesatti. Nicola ---------------------------------------- ================================================================================ uscita del counter e generazione di segnali analogici ================================================================================ AUTORE: 2187 DATA :20/09/2007 - 17:03:45 ---------------------------------------- Ciao a tutti, ho un problema probabilmente sciocco: ho bisogno di generare un'onda quadra analogica di ampiezza che posso scegliere, a frequenze di 40-50 Hz. Dato che ho bisogno che l'onda sia estremamente stabile in duty e frequenza, vorrei avere un timing hardware e dunque utilizzare l'uscita del counter. Il problema e' il seguente: come faccio a trasformare il segnale TTL del counter in un segnale analogico? Altra domanda: la mia scheda supporta sia le DAQmx che quelle tradizionali. Quale mi conviene usare? grazie mille ---------------------------------------- AUTORE: 247 DATA :22/09/2007 - 23:46:53 ---------------------------------------- Ciao, [quote:21t4umji]Il problema e' il seguente: come faccio a trasformare il segnale TTL del counter in un segnale analogico?[/quote:21t4umji] ..non puoi, per fare quello che penso tu intenda fare, dovresti riscalare il segnale TTL con uno stadio di amplificazione esterno che ne modifica l'ampiezza; potresti anche utilizzare un'output analogico per pilotare il suddetto amplificatore in modo da avere un sistema completamente governabile da PC. BYE. ---------------------------------------- AUTORE: 2187 DATA :26/09/2007 - 15:23:32 ---------------------------------------- Ciao Apollon, salve a tutti i membri del forum, guardando fra gli esempi del LV e modificandoli ho creato il vi che allego (e che sicuramente e' sbagliato). Il tentativo era quello di a) produrre il treno di impulsi digitali con la precisione di cui ho bisogno usando il counter b) dare in pasto quest'onda 0-5 V a un canale di input analogico e trasformarla in onda 0-1 V. c) far uscire poi l'onda da un canale di output analogico (dopo averla moltiplicata per un coefficiente in modo da avere l'ampiezza desiderata). Ho pero' riscontrato parecchi problemi nel funzionamento, dovuti probabilmente a configurazioni di timing errate (... ne so veramente poco.... \":oops:\" \":oops:\" \":oops:\" .... e in particolare ho grandi problemi sulle configurazioni dei canali, sulle opzioni di timing etc.... \":oops:\" \":cry:\" \":cry:\"). Un elenco di dubbi e/o problemi, per i quali chiedo l'aiuto del forum: 1) come faccio a conoscere la frequenza dell'onda che viene acquisita dall'input analogico e che viene plottata sul pannello del vi? Mi sembra di capire che la frequenza e' legata al rate di campionamento e alla dimensione del buffer, ma COME? \":cry:\" Per l'acquisizione ho modificato il vi di esempio "Acq&Graph Voltage-Ext Clk.vi", ma non so cosa scrivere come "Clock source" "Samples per channel" e "Sample rate (Hz)". \":cry:\" Se faccio funzionare il vi impostando il counter a produrre un'onda a 50 Hz. ... cosa devo scrivere come "sample rate"? Ho visto che il valore di default di "Sample rate (Hz)" e' 10000 .... cioe' 10 Khz \":cry:\" .... Che frequenza ha allora l'onda che vedo? 2) Se guardo il secondo grafico (che dovrebbe essere il segnale che viene scritto sull'output) sembra -quasi- tutto OK (fermo restando quanto detto al dubbio precedente). In realta' pero' all'oscilloscopio vedo delle cose pazzesche sul canale di output: 3 o 4 periodi di un'onda a circa 1KHz, e poi stati alto o basso continui molto lunghi, poi altri 3 o 4 questi impulsi ad alta frequenza.... Un'altra cosa: nemmeno le ampiezze si comportano come mi aspetterei. Infatti se all'input ho un'onda 0-1 V e la mando direttamente all'output senza nessuna divisione ho un segnale 0-10 V, cioe' 10 volte piu' grande... \":cry:\" grazie mille a tutti ---------------------------------------- ================================================================================ modbus + lw 8.5? ================================================================================ AUTORE: 838 DATA :21/09/2007 - 15:08:00 ---------------------------------------- Ho sentito che nel 8.5 è implementato il modbus Cercando in rete e su ni.com ho trovato solo le librerie per l'8.2 Tutto tenendo lontano il più possibile le shared variable e il dsc, che per me sono fatte malissimooooooo (parlando di 8.2) ciao e grazie ---------------------------------------- ================================================================================ Wait temporale ================================================================================ AUTORE: 2208 DATA :21/09/2007 - 18:06:40 ---------------------------------------- Salve, mi serve il vostro aiuto. Vi espongo il mio problema: il mio codice gestisce tramite seriale un titolatore. Il programma fa partire un timer di 30 minuti nel frattempo il codice colloquia col titolatore e acquisisce le misure. Finita la titolazione, dopo circa 15 minuti, il programma si dovrebbe mettere in attesa fino allo scadere dei trenta minuti settati nel timer. Passati i 30 minuti il programma riprende da dove si è fermato ricominciando una nuova titolazione. La mia domanda è come faccio a fare attendere il programma fino a quando non si raggiungono i 30 minuti? Il ciclo Timed loop potrebbe essermi utile? In attesa di qualche suggerimento faccio qualche prova. ---------------------------------------- AUTORE: 2208 DATA :21/09/2007 - 19:51:19 ---------------------------------------- [quote="aieie_brazov":abxyhbvm]Salve, mi serve il vostro aiuto. Vi espongo il mio problema: il mio codice gestisce tramite seriale un titolatore. Il programma fa partire un timer di 30 minuti nel frattempo il codice colloquia col titolatore e acquisisce le misure. Finita la titolazione, dopo circa 15 minuti, il programma si dovrebbe mettere in attesa fino allo scadere dei trenta minuti settati nel timer. Passati i 30 minuti il programma riprende da dove si è fermato ricominciando una nuova titolazione. La mia domanda è come faccio a fare attendere il programma fino a quando non si raggiungono i 30 minuti? Il ciclo Timed loop potrebbe essermi utile? In attesa di qualche suggerimento faccio qualche prova.[/quote:abxyhbvm] Ho risolto mettendo un ciclo while, che non ha niente all'interno, che gira fino a quando la variabile "time has elapsed" del timer dei 30 minuti non lo stoppa. Se avete soluzioni alternative fatemi sapere. Grazie ---------------------------------------- AUTORE: 129 DATA :22/09/2007 - 08:10:54 ---------------------------------------- E' sicuramente una soluzione che funziona ma ha un prezzo: Il tuo vi rimane fermo 30minuti, bloccando il resto del codice che potrebbe essere eseguito (per esempio ti sarà difficile arrestare l'applicazione se non finisce prima i 30minuti). La soluzione è quella di contare il tempo(tick copunt) e non impostarlo(wait). Devi inserire un tick all'inizio del while, quindi lo sottrai ad un tick all'interno, il risultato(msec) lo confronti con una costante settata a 30sec. Ho allegato in [url=http://www.ilvg.it/forum/viewtopic.php?t=3415:1g8rxghh]questo topic[/url:1g8rxghh] un cronometro che potrebbe aiutarti, lo resetti prima di iniziare il ciclo e lo metti in confronto con la costante 30sec. ---------------------------------------- ================================================================================ Dati da File xml ================================================================================ AUTORE: 238 DATA :22/09/2007 - 08:01:05 ---------------------------------------- Eccomi di nuovo con una domanda da 1000 punti \":?\" Da un File .xml (vedi LGZ86713816.xml) dovrei estrapolare i dati C1..C8 che si trovano nella sezione <Data>. Ho creato un VI che mi converte il file xml in una stringa leggibile. Siccome ho dei file xml con circa 5000 righe la conversione diventa lenta. Domanda: esiste una funzione con la quale riesco a leggere direttamente i dati di una sezione e depositarli in un array \":?:\" ---------------------------------------- AUTORE: 247 DATA :22/09/2007 - 23:38:14 ---------------------------------------- Caio, non c'è bisogno d convertire il file XML in testo dato che è già scritto in ascii a meno che sia XML binario (devo ancra vederlo, so che ci stavaono lavorando). Tutto ciò che devi fare è semplicemente fare il parsing del file per estrarre i valori di tuo interesse, un pò noioso ma funzionale. Non dovresti aver nessun problema di prestazioni per 5000 righe (anche se in realtà dvresti indicare il numero di caratteri del file). BYE. ---------------------------------------- ================================================================================ convertire vi da 8.5 a 8.0 ================================================================================ AUTORE: 2195 DATA :22/09/2007 - 14:31:10 ---------------------------------------- salve a tutti potreste convertire questa vi nella versione 8.0? grazie ---------------------------------------- AUTORE: 2168 DATA :27/09/2007 - 14:40:54 ---------------------------------------- Purtroppo non ho nemmeno la versione 8 ma so che dalle versioni superiori si può salvare in quella precedente, devi andare su "save with options" ---------------------------------------- ================================================================================ orologio di riferimento per un VI ================================================================================ AUTORE: 2243 DATA :22/09/2007 - 18:07:18 ---------------------------------------- Salve a tutti, questo è il primo post di un utente ancora inesperto con labview \":)\" non ho visto un problema simile in post precedenti perchè forse è più semplice di quel che sembra a me... Ecco quel che dovrei fare: il mio VI dovrebbe simulare la programmazione di un impianto di irrigazione da giardino, in cui si possono immettere date/orari di inizio irrigazione e durate delle irrigazioni, però ho un sacco di problemi perchè deve essere una cosa "concorrente": un orologio con data/ora che va per conto suo, e un sistema che controlla, in modo parallelo, quando vengono raggiunte certe date/ore e quanto deve durare il funzionamento. A partire dalla funzione Get Date/Time In Seconds, opportunamente accelerata con un ciclo while che incrementa il tempo di 1 minuto a ogni iterazione da 1ms (per far scorrere il tempo in modo artificiale, alla velocità che mi pare), genero una specie di clock di riferimento, che vorrei girasse in maniera slegata da tutto il resto, mentre parallelamente controllo che si accendano dei led nei giorni/ore indicati dall'utente e restino accesi per una durata sempre indicata dall'utente, per poi spegnersi. Il mio problema sta nell'avere l'orologio che gira "per conto suo"; come potrei fare? Tutte le cose che ho provato finora funzionano in modo sequenziale... \":(\" Grazie in anticipo per le eventuali indicazioni, ciao Ale ---------------------------------------- AUTORE: 129 DATA :22/09/2007 - 20:33:13 ---------------------------------------- Puoi utilizzare l'architettura parallela, ovvero due while loop(meglio timed loop) che girano per cointo proprio e a velocità diverse. I dati tr auno e l'altro li passi per via di variabili globali. In un while esegui il codice di controllo degli irrigatori, con l'altro esegui il codice per l'oroilogio. ---------------------------------------- AUTORE: 2243 DATA :23/09/2007 - 17:24:25 ---------------------------------------- Grazie Nicola, non avevo ancora avuto occasione di guardare il funzionamento del timed loop e il tuo suggerimento mi dà l'input giusto \":)\" Nel frattempo, ho anche pensato a questa soluzione alternativa: ad ogni passo del ciclo while, posso controllare che il tempo corrente del mio orologio sia >= dell'ora di inizio irrigazione e anche <= dell'ora di fine irrigazione. Mettendo le due condizioni in AND e attaccando all'uscita un booleano (led) ho che la luce rimane accesa per tutta la durata dell'operazione. La luce rappresenta una valvola dell'impianto, dovrò poi gestirne più di una ma l'idea di base rimane \":)\" Cosa ne pensi? ciao, Ale ---------------------------------------- AUTORE: 129 DATA :24/09/2007 - 08:27:35 ---------------------------------------- Si certo è un ottima soluzione. ---------------------------------------- ================================================================================ CPU del computer a 100% quando gira un eseguibile ================================================================================ AUTORE: 1440 DATA :24/09/2007 - 17:25:21 ---------------------------------------- Ciao a tutti, vorrei chiedervi un aiuto per far lavorare meglio degli eseguibili fatti con LabView 7.1. Quello che ho notato è che quando si eseguono occupano il 100% della CPU. Il programma nella fattispecie deve leggere alcune stringhe dalla GPIB che arrivano da alcuni multimetri, poi elaborare la stringa per convertirla in numero e graficarla su un Chart. I loop while sono temporizzati, poi ci sono alcune sequenze e queste non le ho temporizzate, ma non credo che vadano temporizzate anche loro. Il resto sono convertitori di stringhe, tool per la gestione degli array, niente di complicato insomma. Comunque la CPU scatta al 100% e il computer si rallenta tantissimo. Qualcuno ha qualche suggerimento da darmi? grazie ---------------------------------------- AUTORE: 482 DATA :25/09/2007 - 07:14:31 ---------------------------------------- Hai provato a spezzettare il codice e farlo girare un pezzo alla volta? ---------------------------------------- AUTORE: 645 DATA :25/09/2007 - 08:30:30 ---------------------------------------- Magari durante la lettura dei valori qualcosa porta il pc al massimo carico: controlla i cicli di lettura GPIB perchè leggendo da più multimetri devi essere sicuro che non ci siano cicli non temporizzati (anche se hai indicato che sono temporizzati... ma un controllino...). Poi assicurati che le letture avvengano in sequenza, uno strumento alla volta. Questo ovviamente se non hai bisogno di letture contemporanee. Altrimenti controlla la struttura parallela che hai usato (se le letture sono contemporanee i cicli di lettura sono in parallelo... sempre che l'hardware permetta di leggere più strumenti contemporaneamente). Altra cosa: hai in giro strutture ad eventi? Sono temporizzate? E un'altra cosina: quando fai la lettura degli strumenti hai messo il blocco di ritardo per aspettare qualche millisecondo tra richiesta e lettura? Questo permette allo strumento di "capire" la richiesta e rispondere correttamente: senza questo blocchetto a volte si verificano errori (che magari intasano il pc...). ---------------------------------------- AUTORE: 43 DATA :25/09/2007 - 08:57:53 ---------------------------------------- [quote="scrikki":2batajap]Ciao a tutti, [/quote:2batajap] ciao [quote="scrikki":2batajap] vorrei chiedervi un aiuto per far lavorare meglio degli eseguibili fatti con LabView 7.1. Quello che ho notato è che quando si eseguono occupano il 100% della CPU. [/quote:2batajap] Detto così, sembra che Tu sia propenso a credere che il Tuo problema risieda nella versione eseguibile del Tuo SW (in versione NON .exe hai gli stessi problemi?) o nella versione di LabVIEW (hai convertito i .vi da una versione di LV precedente?) [quote="scrikki":2batajap] Il programma nella fattispecie deve leggere alcune stringhe dalla GPIB che arrivano da alcuni multimetri, poi elaborare la stringa per convertirla in numero e graficarla su un Chart. [/quote:2batajap] Sarebbe interessante sapere almeno se la comunicazione via GPIB è del tipo Master/Slave o se i multimetri inviano spontaneamente le misure. Si possono fare una infinità di ipotesi. Ti consiglio di verificare la temporizzazione della lettura da GPIB. Se non metti delle temporizzazzioni atte a rilasciare del tempo all'interfaccia il sistema collassa... Per contro, basta dimenticare un loop che gira all'infinito senza temporizzazzione, magari nascosto "visivamente" da altro codice, e si ottiene quello che hai ottenuto Tu. [quote="scrikki":2batajap] I loop while sono temporizzati, poi ci sono alcune sequenze e queste non le ho temporizzate, ma non credo che vadano temporizzate anche loro. Il resto sono convertitori di stringhe, tool per la gestione degli array, niente di complicato insomma. Comunque la CPU scatta al 100% e il computer si rallenta tantissimo. Qualcuno ha qualche suggerimento da darmi? grazie[/quote:2batajap] Qualcun'altro dovrebbe dare un'occhiata al tuo SW. Spesso un'altra persona Ti aiuta a vedere le cose in modo diverso e a vedere cose che da solo puoi dare per scontato. Poi prova ad usare il VI profiler: Tools -> Profile -> Performance and Memory... bye ---------------------------------------- ================================================================================ Variabili Globali ================================================================================ AUTORE: 2168 DATA :25/09/2007 - 11:36:52 ---------------------------------------- Ciao a tutti, potrebbe essere una domanda banale per molti di voi ma io non riesco a capire come fare a definire le Variabili Globali. Credo che mi siano piuttosto indispensabili per alleggerire una VI che contiene numerose subVI. Grazie \":(\" \":o\" ---------------------------------------- AUTORE: 927 DATA :25/09/2007 - 13:47:19 ---------------------------------------- Fai "New..." e vedrai anche l'opzione variabile globale. Le globali stanno in file separati, anch'essi con estensione .vi e col pannello frontale uguale ai VI, ma senza diagramma a blocchi. In un file possono stare molte variabili globali (ogni controllo o indicatore è una variabile) ---------------------------------------- AUTORE: 2168 DATA :25/09/2007 - 14:07:22 ---------------------------------------- [quote="Snamprogetti":2j5xraly]Fai "New..." e vedrai anche l'opzione variabile globale. Le globali stanno in file separati, anch'essi con estensione .vi e col pannello frontale uguale ai VI, ma senza diagramma a blocchi. In un file possono stare molte variabili globali (ogni controllo o indicatore è una variabile)[/quote:2j5xraly] Avevo creato le variabili globali dall'elenco delle function ma ogni volta mi apre un file global diversa. Non funzionano come le variabili locali che una volta aperto il collegamento lo si può assegnare a qualsiasi controllo o indicatore? ---------------------------------------- AUTORE: 645 DATA :25/09/2007 - 14:12:33 ---------------------------------------- La variabile globale è una specie di subVI che ha solo il pannello frontale. Una volta creata la puoi richiamare nel VI principale inserendola come se inserissi un subVI (con LabView 8 e successivi puoi trascinarla dal Project Manager direttamente nel tuo VI, per le versioni precedenti devi utilizzare il comando "Insert VI" che se non ricordo male si trova in una paletta del Block Diagram). Gli indicatori creati nel pannello frontale della variabile globale sono a disposizione per il "mondo esterno": quando inserisci la variabile globale nel tuo VI puoi selezionare quale di questi indicatori utilizzare e se lavorare in modalità di lettura o di scrittura. Se cerci sul sito della National ( www.ni.com ) tramite il motore di ricerca dovresti trovare diverse pagine sull'arogmento. \":)\" ---------------------------------------- AUTORE: 384 DATA :26/09/2007 - 09:26:45 ---------------------------------------- Come sapete io sono un detratore accerrimo delle variabili globali. N.I. stesa ne "sconsiglia" l'uso a favore delle "funtcional globas" perchè il modo in cui LabView aggiorna le globali non è prevvedibile e non è "stoccastico" potendo provocare diversi problemi dificilissimi da trovare, quando l'articolazione delle applicazioni si basa molto sullo scambio di dati e informazioni. Le uso anch'io - certo - ma praticamente soltanto come costanti che non modifico durante l'esecuzione dell'applicazione. Fate una ricerca su questo forum - se ne è molto discusso - e assolutamente sul sito della NI, dove ci sono tutti i consigli attinenti.   ---------------------------------------- AUTORE: 2168 DATA :26/09/2007 - 10:24:26 ---------------------------------------- [quote="gyc":o9fv7lxd]Come sapete io sono un detratore accerrimo delle variabili globali. N.I. stesa ne "sconsiglia" l'uso a favore delle "funtcional globas" perchè il modo in cui LabView aggiorna le globali non è prevvedibile e non è "stoccastico" potendo provocare diversi problemi dificilissimi da trovare, quando l'articolazione delle applicazioni si basa molto sullo scambio di dati e informazioni. Le uso anch'io - certo - ma praticamente soltanto come costanti che non modifico durante l'esecuzione dell'applicazione. Fate una ricerca su questo forum - se ne è molto discusso - e assolutamente sul sito della NI, dove ci sono tutti i consigli attinenti.  [/quote:o9fv7lxd] Ho provato a cercare queste "functional globals" ma probabilmente nella versione 7 non ci sono. Sono riuscito a trasformare la mia Vi usando le variabili globali ma vorrei ancora sapere se c'è un modo per evitare di mettere ad esempio, sul front panel della variabile globale, un waveform chart o simili, non è possibile mettere solo un riferimento? La mia VI global è infatti ora piena di Waveform chart, indicatori e controlli; se dovessi aumentarne il numero diverrebbe illeggibile. Grazie a tutti comunque ---------------------------------------- AUTORE: 927 DATA :26/09/2007 - 10:35:03 ---------------------------------------- Le functional globals non sono un componente che trovi nel menù, è uno stile di programmazione. Se vuoi approfondire, cerca su google il documento "Are LabVIEW global variables good or bad, and when is it OK to use them?", ma probabilmente è ancora prematuro. Certo l'uso che stai facendo delle globali è un po' strano... non so perchè ci hai messo dei grafici, come variabile un chart contiene solo una double, usa delle normali caselle double. Dentro il Vi delle globali non dovrebbe interessarti la visualizzazione, nè la leggibilità (se non per fare un po' di debug) ---------------------------------------- ================================================================================ tornare in edit mode da un vi provvisto del comando "sy ================================================================================ AUTORE: 248 DATA :25/09/2007 - 15:12:50 ---------------------------------------- Salve a tutti, ho un programma che prevede un tasto all'uscita che porta direttamente al sistema operativo non passando quindi dall'edit mode. Purtroppo stupidamente non ho salvato la vi che lopermettesse e quindi adesso non riesco ad editare unamodifica sul programma stesso. Esiste un modo per portarmi in edit mode tenendo conto che non ho tool bar nel vi di lavoro? Spero di essermi spiegato. Grazie ---------------------------------------- AUTORE: 482 DATA :26/09/2007 - 07:09:58 ---------------------------------------- Prova con CTRL +"." a volte funziona! ---------------------------------------- AUTORE: 487 DATA :26/09/2007 - 07:39:40 ---------------------------------------- Altrimenti devi richiamare il tuo vi dinamicamente: lo carichi, ne visualizzi il front panel e non lo mondi in run. ---------------------------------------- AUTORE: 724 DATA :26/09/2007 - 08:10:19 ---------------------------------------- Lo piazzi sul diagramma di un nuovo vi e da li lo apri cliccandoci sopra ciao cesare ---------------------------------------- ================================================================================ Event structure ================================================================================ AUTORE: 424 DATA :26/09/2007 - 10:38:35 ---------------------------------------- Ciao a tutti! Volevo chiedere una cosa ai geniacci di questo forum: sto sviluppando un applicativo basato su sttruttura ad eventi. Volevo sapere se oltre alla possibilità di gestire eventi legati al front panel tipo switches, controls, indicators etc. è possibile anche avere un evento tipo pressione del tasto enter. Ho visto che nella parte Dialog & User Interface c'è la possibilità di generare eventi ma ancora non ho capito come fare. Qualcuno può darmi una dritta per favore? Grazie Un salutone Max ---------------------------------------- AUTORE: 1871 DATA :26/09/2007 - 10:49:46 ---------------------------------------- Il Labview User Manual ha un intero capitolo dedicato agli eventi, puoi cercare lì. Dovrebbe essere disponibile sul CD di insatallazione, o comunque in giro sulla rete lo trovi. ---------------------------------------- AUTORE: 645 DATA :26/09/2007 - 22:42:24 ---------------------------------------- Puoi cercare qualcosa sul sito della National ( www.ni.com ) e "giocare" con gli eventi messi a disposizione dalla struttura (adesso non ho sottomano LabView e quindi non ti so elencare tutti gli eventi gestibili). ---------------------------------------- ================================================================================ Timed Loop Annidati ================================================================================ AUTORE: 2196 DATA :26/09/2007 - 11:33:46 ---------------------------------------- Ciao a tutto. Sto lavorando ad un software per RT non scritto da me. La struttura del programma è la seguente c'è un while con all'interno 3 timed loop. Come funzionano ? Nel senso af ogni giro di while viene eseguito un giro per ogni timed loop ? ---------------------------------------- AUTORE: 645 DATA :26/09/2007 - 22:37:16 ---------------------------------------- Puoi postare un'immagine del Block Diagram? ---------------------------------------- AUTORE: 927 DATA :27/09/2007 - 09:44:15 ---------------------------------------- No, ad ogni giro di while vengono eseguiti a oltranza tutti i timed loop. Solo quando tutti i timed loop si fermano, si passa al prossimo giro di while e i timed loop ricominciano. Dal tuo mex non si capisce altro, sono anche annidati tra di loro? (per questo ti hanno chiesto un'immagine...) ---------------------------------------- AUTORE: 2196 DATA :27/09/2007 - 10:33:42 ---------------------------------------- No i timed loop non sono annidati. Diciamo ch quanto detto da snamprogetti conferma quanto avevo intuito. ---------------------------------------- ================================================================================ Acquisire dati da file e graficarli. ================================================================================ AUTORE: 2224 DATA :26/09/2007 - 15:12:37 ---------------------------------------- Ciao a tutta la comunity, è il mio primo post per cui un saluto era doveroso. Sono uno studente di ingegneria che si sta avvicinando al labview. Ho iniziato da poco a lavorare con questo software per svolgere il mio lavoro di tesi. Vorrei un aiuto da parte vostra. In pratica ho acquisito delle forme d'onda con un'oscilloscopio e ho salvato i dati dell'acquisizione in formato ASCII. In pratica mi ritrovo un file di tipo .txt in cui sono tabellati il tempo e l'ampiezza della forma d'onda separati da una virgola. Quello che dovrei fare è accedere a questi file da labview e ricostruire l'andamento della forma d'onda acquisita utilizando i dati salvati nel file di testo. Potreste darmi qualche indicazione per effettuare questa operazione? Grazie. ---------------------------------------- AUTORE: 645 DATA :26/09/2007 - 22:40:16 ---------------------------------------- Puoi cercare sul sito della National ( www.ni.com ), nel forum o negli esempi di LabView qualcosa riguardante la lettura di file di testo attraverso LabView. In pratica leggi il file di testo (magari una riga alla volta), cerchi la virgola (tra le funzioni per le stringhe trovi i blocchi per cercare i caratteri) e usi le due parti di stringa (prima e dopo la virgola) per popolare le assi X e Y di un grafico. ---------------------------------------- AUTORE: 2224 DATA :02/10/2007 - 12:41:47 ---------------------------------------- Ciao, volevo chiederti se per favore potevi darmi qualche indicazione in più. Sono giorni che sto impazendo con il labview ma non riesco a fare in modo che il grafico venga effettuato in tempo reale. Cioè vorrei che i punti venissero letti dal file di testo e graficati uno per volta così da vedere il grafico formarsi punto punto. Spero di essermi spiegato. Grazie dell'aiutol. ---------------------------------------- AUTORE: 645 DATA :02/10/2007 - 14:54:22 ---------------------------------------- Puoi leggere il file di testo tramite un ciclo: ad ogni passata leggi un valore e metti il dato letto in un Chart (occhio alla differenza tra Graph, che si aspetta pacchetti di dati, e Chart, che si aspetta un dato alla volta). Purtroppo non ho sottomano un esempio di lettura dati ma se sei riuscito a farla (trovi qualcosa nel forum, tra gli esempi di LabView e sul sito www.ni.com ) credo che ti rimanga solo da implementare un ciclo per popolare un Chart... ---------------------------------------- AUTORE: 2224 DATA :02/10/2007 - 15:22:49 ---------------------------------------- Grazie per ora. Se però ti capita qualche esempio sottomano ti prego di passarmelo. Grazie ancora. ---------------------------------------- AUTORE: 1944 DATA :04/10/2007 - 07:47:18 ---------------------------------------- Puoi creare un file .TXT, mettere l'indirizzo nel controllo PATH ed avviare la VI. Funziona veramente!!! ---------------------------------------- AUTORE: 2224 DATA :04/10/2007 - 08:46:50 ---------------------------------------- Ti ringrazio, il problema è che io non devo acquisire caratteri, ma devo estrarre i valori numerici da ogni riga per utilizzarli nella ricostruzione della forma d'onda. ---------------------------------------- AUTORE: 1944 DATA :29/10/2007 - 08:16:38 ---------------------------------------- Ho inserito una parte che estrae il numero dalla stringa di testo. Ciao! ---------------------------------------- ================================================================================ Indicator aggiuntivi e altro ================================================================================ AUTORE: 2032 DATA :27/09/2007 - 08:34:55 ---------------------------------------- Ciao a tutti, volevo sapere se esistno dei siti da cui si possono scaricare deli indicator o dei control aggiuntivi rispetto a quelli che LabView offre. Per esempio un indictor numerico fatto a mo di display 7 segmenti ---------------------------------------- AUTORE: 2168 DATA :27/09/2007 - 14:37:32 ---------------------------------------- [quote="pelle2005":1ibf2to6]Ciao a tutti, volevo sapere se esistno dei siti da cui si possono scaricare deli indicator o dei control aggiuntivi rispetto a quelli che LabView offre. Per esempio un indictor numerico fatto a mo di display 7 segmenti[/quote:1ibf2to6] Non so se esistono siti del genere ma so che te lo puoi creare tu un indicatore o controllo personalizzato, basta cliccare sull'indicatore con il destro, scegliere advanced-customize.. e puoi modificarlo come vuoi... ---------------------------------------- AUTORE: 129 DATA :28/09/2007 - 06:57:53 ---------------------------------------- Prova a vedere [url=http://www.ilvg.it/forum/viewtopic.php?t=588&start=0&postdays=0&postorder=asc&highlight=grafica:d718rxk5]se questa discussione[/url:d718rxk5], fa al caso tuo. ---------------------------------------- AUTORE: 927 DATA :28/09/2007 - 08:14:57 ---------------------------------------- Nel caso del display a 7 segmenti, credo sia molto, molto più semplice utilizzare un tipo di carattere (font) con quella forma, se ne trovano parecchi gratuiti, ad esempio: http://www.twyman.org.uk/Fonts/font-download.htm ---------------------------------------- ================================================================================ Salvataggio dati di array in un file excel ================================================================================ AUTORE: 2204 DATA :27/09/2007 - 10:57:37 ---------------------------------------- Di seguito mostro le stringhe che sono in ingresso al sottoprogramma di salvataggio i cui valori, compresi gli spazi, devono essere riportati su un foglio excel. Il file che ottengo risulta essere corretto eccetto per il fatto che tutti gli spazi presenti nelle due stringhe non sono riportati; ciò è dovuto al fatto che la funzione “match” preleva esclusivamente i valori numerici. Ho provato diverse soluzioni alternative senza però ottenere il risultato voluto. Qualcuno sa dirmi come fare? Metto di seguito i link alle immagini. La prima immagine riporta la foto di ciò che ottengo negli indicatori che dovrei salvare nel file tali e quali. http://img230.imageshack.us/img230/1155 ... ne1dg8.jpg La seconda mostra il mio schema a blocchi nel sottoprogramma di salvataggio. http://img407.imageshack.us/img407/4576 ... ne2tm1.jpg La terza mostra il file excel che ottengo. In rosso ho evidenziato le caselle nelle quali dovrei aver uno spazio vuoto. http://img407.imageshack.us/img407/726/immagine3oj9.jpg ---------------------------------------- AUTORE: 927 DATA :04/10/2007 - 09:04:50 ---------------------------------------- Non so se è un problema mio, ma non riesco a vedere la 2° e la 3° immagine. Che funzioni usi per creare il file? C'è giusto una discussione che ti potrebbe interessare: [url:2zq9u7uv]http://www.ilvg.it/forum/viewtopic.php?t=3441[/url:2zq9u7uv] ---------------------------------------- AUTORE: 2204 DATA :17/10/2007 - 18:22:06 ---------------------------------------- Per creare il file ho semplicemente concatenato le stringhe contenenti i dati e poi ho salvato l'array ottenuto su un file che mi si apre automaticamente in formato excel. ---------------------------------------- AUTORE: 927 DATA :18/10/2007 - 08:09:20 ---------------------------------------- Devi mettere dei separatori tra un dato e l'altro; tra le caselle di una riga metti dei TAB, tra una riga e l'altra dei CR/LF. Funziona anche per caselle e righe vuote ---------------------------------------- ================================================================================ Avviare vi in processi separati ================================================================================ AUTORE: 2195 DATA :27/09/2007 - 12:58:25 ---------------------------------------- salve a tutti! come faccio ad avviare delle vi in processi separati? cioè ciò che mi serve è far partire delle vi prima (qualche secondo..) che partano delle altre vi, ciò perchè se le avvio in contemporanea da stessa vi principale lo strumento a cui accedono mi da errore, quindi attualmente sono costretto ad avviarle una alla volta in processi separati. Quindi come le avvio da un'unica vi in processi separati? si può fare? grazie per la collaborazione! ciao! ---------------------------------------- AUTORE: 2168 DATA :27/09/2007 - 14:30:37 ---------------------------------------- [quote="john_doe81":3q19p0k1]salve a tutti! come faccio ad avviare delle vi in processi separati? cioè ciò che mi serve è far partire delle vi prima (qualche secondo..) che partano delle altre vi, ciò perchè se le avvio in contemporanea da stessa vi principale lo strumento a cui accedono mi da errore, quindi attualmente sono costretto ad avviarle una alla volta in processi separati. Quindi come le avvio da un'unica vi in processi separati? si può fare? grazie per la collaborazione! ciao![/quote:3q19p0k1] Ciao, devi inserire una sequenza Stacked Sequence Structure che viene eseguita seguendo l'ordine dei "fotogrammi". Per ciascuno puoi anche dare un tempo di esecuzione prima che il programmi passi ad eseguire la prossima sequenza. ---------------------------------------- AUTORE: 2195 DATA :27/09/2007 - 21:18:11 ---------------------------------------- ciao! grazie per la risposta ma credo di avere risolto con VI server reference oppure Static VI reference che mi sembra facciano più a caso mio!Con la Static VI in particolare seleziono Browse for path... scelgo la mia VI poi create->method->Run VI e dovrei ottenere ciò che volevo (ancora devo testarla per benino con lo strumento..) ciao! ---------------------------------------- AUTORE: 927 DATA :28/09/2007 - 08:04:32 ---------------------------------------- Quello che stai facendo è lanciare dinamicamente dei VI. E' una tecnica utile, ma nel tuo caso non credo sia necessaria. Labviù usa automaticamente processi separati ogni volta che c'è del codice "parallelo". Se il problema era solo ritardare le esecuzioni, è più semplice (e più facile da debuggare) usare dei blocchi Wait in sequenza prima di ogni VI, come diceva il collega... ---------------------------------------- AUTORE: 2195 DATA :28/09/2007 - 09:09:09 ---------------------------------------- salve! cercherò di speigarmi meglio... per poter leggere i dati dall'acquisitore ho bisogno di avviare la "lettura.vi", per poter attivare le uscite ho bisogno di avviare "attiva output.vi", per poter controllare le uscite in funzione degli ingressi ho bisogno di avviare "controllo.vi". Adesso il problema sta nel fatto che se uso "lettura.vi" e "attiva output.vi" come subvi in "controllo.vi" lo strumento segne un errore di comunicazione. è per questo che ho persato al static vi perchè se le faccio partire ognuna per i fatti sui il tutto funziona o almeno dovrebbe dato che devo capire ancora come si passa le variabili (ho usato delle variabili glibali). se avete delle soluzioni più efficenti accetto consigli! grazie e ciao ---------------------------------------- AUTORE: 927 DATA :28/09/2007 - 09:45:31 ---------------------------------------- Non conosco l'applicazione, ma probabilmente puoi fare un quarto VI "principale" che apre tutti gli altri. Se ho ben capito "Controllo" deve partire dopo, quindi il VI conterrebbe 3 parti parallele: [lettura] [output] [aspetta N secondi]----[controllo] Per il passaggio delle variabili, tutto dipende dall'applicazione... Le globali possono andar bene se ti interessa solo il valore istantaneo. Se ad es. è importante processare tutte le letture, meglio usare le Queue ---------------------------------------- AUTORE: 645 DATA :28/09/2007 - 10:20:43 ---------------------------------------- O forse la struttura è 1) Lettura 2) Controllo 3) Output Devi fare un programma che legge grandezze, calcola le uscite in base a parametri e setpoint, adatta le uscite in base ai valori calcolati? Se è così puoi seguire la strada di Snamprogetti: crei un VI principale al cui interno vengono richiamati (come subVI, senza usare il VI server) i tre VI nell'ordine giusto. Quello che non capisco è come mai hai un conflitto nella comunicazione con lo strumento (sempre che le mie ipotesi sul tuo programma siano corrette): la comunicazione con lo strumento viene effettuata per leggere le grandezze, poi lo strumento è libero durante la fase di controllo e torna ad essere occupato durante la fase di settaggio delle uscite. ---------------------------------------- AUTORE: 2195 DATA :28/09/2007 - 12:29:18 ---------------------------------------- MagicBotolo è come dici tu solo che lo strumento non è libero durante la fase di controllo ma legge altri ingressi per il monitoraggio ecc. il collegamento tra controllo.vi e output.vi l'ho risolto inserendo quest'ultima come subvi all'interno di controllo.vi (o usandole entrambe come subvi la cosa non cambia) il problema mi rimane con il collegamento tra lettura.vi e controllo.vi!infatti se uso lettura.vi come subvi oppure uso static vi le variabili globali non mi vengono aggiornate(??) mentre se faccio partire lettura.vi per i fatti suoi il passaggio di dati avviene. preciso che lettura.vi contiene un while e che ho provato a modificarla come funcional global ma mi da errore (probabilmente non si riempie qualche buffer..). vi allego l'html dei lettura.vi vedete se magari sbaglio qualcosa.. grazie e ciao ---------------------------------------- AUTORE: 2195 DATA :28/09/2007 - 12:32:47 ---------------------------------------- ops... non si è allegato il file.. eccolo! ---------------------------------------- AUTORE: 129 DATA :29/09/2007 - 07:44:29 ---------------------------------------- Trattandosi dello stesso strumento non puoi mandare comandi in paralleo, quindi va bene quanto ti è stato detto sul fatto di sequenzializzare il codice. SIccome mi sembra di aver capito che la sequenza non è sempre la stessa, puoi usare una macchina a stati. Un while con un case all'interno che chiama i comandi per lo strumento. Puoi anche usare (se mantiene la sequenza) un array con l'ordine delle operazioni da fare(eventualmente per finezza lo puoi mettere i un file in modo da creare delle ricette di operazioni) questo arry lo metti in un for loop che ti esegue tutte le operazioni (che come codice saranno sempre contenute in un case con terminale di tipo enum o string). ---------------------------------------- ================================================================================ Inserire un collegamento all'eseguibile durante l'installazi ================================================================================ AUTORE: 1600 DATA :28/09/2007 - 08:10:28 ---------------------------------------- Ciao a tutti . Non riesco ad aggiungere un collegamento all'eseguibile nel desktop durante l'installazione. Come posso fare ? Utilizzo Labview 7.1 ---------------------------------------- AUTORE: 129 DATA :29/09/2007 - 07:47:09 ---------------------------------------- QUando compili con application builder l'installer, puoi inserire file accessori e settare se eseguirli o meno dopo a procedura d'installazione. ---------------------------------------- ================================================================================ Saltare un punto in un grafico ================================================================================ AUTORE: 645 DATA :28/09/2007 - 10:43:28 ---------------------------------------- Io mi trovo in questa situazione: ho un vettore di stringhe che converto in numeri decimali e inserisco in un XY Graph come valori dell'asse Y. Sull'asse X ho una serie crescente di numeri corrispondenti alla posizione del vettore di stringhe analizzata. Quindi sulla Y avrò una serie di numeri, sulla X avrò una serie crescente di numeri (0,1,2,3,4...). Se io avessi una stringa che anzichè contenere un numero contenesse una parola (tipo NULL o altra se più utile per il corretto funzionamento) vorrei che nel grafico non comparisse nessun valore per questo punto. Mi serve che compaia la X ma il punto della Y corrispondente non ci deve essere. Se passo il vettore di stringhe al blocco di conversione da stringa a numero decimale la parola NULL viene convertita in zero e questo zero entra far parte del grafico. Invece io vorrei saltare questo valore. Avete qualche idea? ---------------------------------------- AUTORE: 129 DATA :29/09/2007 - 08:01:39 ---------------------------------------- Io farei così Ovviamente devi ragionare in modo da togliere anche la y (magari butti su i due array x e Y e fai il delete in entrambe. ---------------------------------------- AUTORE: 645 DATA :29/09/2007 - 13:54:22 ---------------------------------------- Il mio problema è che sullo stesso grafico devo disegnare più vettori e a priori non so quante sono i valori "NULL" e soprattutto non so se ci sono e in quali posizioni si trovano. Per questo motivo mi serve che la scala delle X continui senza interruzioni e la scala delle Y non presenti punti in corrispondenza dei "NULL". ---------------------------------------- AUTORE: 129 DATA :29/09/2007 - 20:27:22 ---------------------------------------- Ma l'esempio che ti ho inviato dovrebbe togliere la cordinata (x[NULL];y) indipendentemente da dove si trova e quante volte viene scritto null. Ti allego cosa intendevo io. ---------------------------------------- AUTORE: 384 DATA :01/10/2007 - 08:59:04 ---------------------------------------- Se sostituisci il valore indesiderato con un "NaN" esso non viene scritto nel grafico. Dai un'occhio a come funziona "Analyse\Waveform Monitoring\Limit Testing.vi".   ---------------------------------------- AUTORE: 645 DATA :01/10/2007 - 14:58:11 ---------------------------------------- Sembra funzionare alla grande! \":D\" ---------------------------------------- ================================================================================ Trasferimento dati numerici ad Exel ================================================================================ AUTORE: 1377 DATA :28/09/2007 - 14:59:40 ---------------------------------------- Salve a tutti. Premetto che utilizzo LabView poco e sporadicamente. Ho bisogno ti trasferire dei dati da LabView ad Exel. Sto usando il VI Set cell value with range. In questo modo riesco a scrivere nella cella desiderata del file Exel aperto precedentemente stringhe di testo. Vorrei peró trasferire un valore numerico che sia riconosciuto in Exel come numero e non come carattere in modo tale da non doverlo convertire manualmente. Qualcuno puó suggerirmi come fare? PS - Vi posto un esempio realizzato con LabView 8. Come posso fare a passare ad Exel un valore numerico? Grazie Massimo ---------------------------------------- AUTORE: 927 DATA :02/10/2007 - 08:42:43 ---------------------------------------- Che libreria stai usando per la gestione di Excel? Io non ho nessuno di quei subVI e non ci sono nemmeno nell'help. Ho le funzioni per gestire Excel nella tavolozza Report generation -> Excel specific, e sono diverse dalle tue ---------------------------------------- AUTORE: 384 DATA :03/10/2007 - 08:37:37 ---------------------------------------- Io non riesco ad aprire il tuo vi, ma da come descrivi il problema credo di aver intuito cosa succede. Probabilmente, il valore che stai trasferendo da LabView ha come separatore decimale il punto, mentre Excel si aspetta la virgola.   ---------------------------------------- AUTORE: 1377 DATA :03/10/2007 - 10:09:58 ---------------------------------------- Ciao. Allego la libreria che uso; l'ho scaricata tempo fa. Per quanto riguarda il separatore decimale, non so se questo abbia a che fare dato che ho lo stesso problema quando invio ad Excel un numero intero, per esempio 1. Massimo ---------------------------------------- AUTORE: 927 DATA :04/10/2007 - 08:54:08 ---------------------------------------- "Set cell value with range" continua a non esserci, cmq quella libreria sembra piuttosto grezza e vecchiotta. Supporta solo le stringhe, dovresti modificarla un po'. Tieni conto che Exel può leggere tranquillamente anche dei normali file di testo, con i dati separati ad esempio da virgola o tab; valuta se ti è possibile lavorare con questi, è molto semplice senza bisogno di librerie ---------------------------------------- AUTORE: 10 DATA :08/10/2007 - 10:09:18 ---------------------------------------- Non riesco ad aprire la tua libreria perchè uso ancora LV7.1.1, comunque presumo tu usi gli activeX per produrre un vero file di excel e non un file di testo che deve essere importato. In questo caso, nonn dovresti aver nessun problema a dare in pasto dei valori numerici anzichè delle stringhe ad excel, basta utilizzare il metodo range, specificare le dimensioni dell'array di dati numerici che gli passi,e collegare l'array (sempre bidimensionale) alla proprietà value2. Il resto che vedi nell'immagine allegata è solo un po' di "fuffa". ---------------------------------------- ================================================================================ OOP Labview ================================================================================ AUTORE: 129 DATA :30/09/2007 - 09:13:33 ---------------------------------------- Qualcuno di voi si è cimentato nell'uso della programmazione a oggetti nativa in labview dalla 8.2? Io ci stò provando con crisi mistiche, mi sembra infatti di programmare nello stesso identico stile delle vecchie (non native) GOOP (Vedi INDEVO ecc.). Si è vero ora puoi utilizzare meglio ereditarietà e incapsulamento, ma: Il problema per cui decido di fare una classe è per poterla riutilizzarla, e qui vengono i primi tasti dolenti. Creo la classe ad esempio timer, dove metto un semplice cronometro che voglio riutilizzare in vari VI. Se prendo il cronometro così come è non posso settarlo a rientrante perchè se non non sfrutto il functional global che mi tiene in memoria il conteggio. Allora dico, potrei crearmi una classe e utilizzarla.... Sorpresa (forse anche per ia ignoranza), se inserisco il timer in più vi, non mi crea una sessione nuova, ma si comporta dando fuori il tempo trascorso del primo timer. Con il vecchio metodo si macchinava un pò ma o con gli array o con le code si risuciva a fare un VI multissessione anche senza settarlo come rientrante. Pensavo che il fatto di creare una classe avesse inglobato la creazione di diverse sessioni se utilizzato i altre parti di programma. Mi piacerebbe capire se sbaglio io o se effettivamente si tratta di un limite. Nicola ---------------------------------------- AUTORE: 129 DATA :30/09/2007 - 18:27:53 ---------------------------------------- Qualche spiegazione (la d3evo ancora digerire) l'ho trovata in [url=http://expressionflow.com:3a539fj8]expresssionflow.com[/url:3a539fj8]. Oltre a due o tre articoli su oop ci sono interessanti articoli di programmazione avanzata in labview. ---------------------------------------- ================================================================================ Functional global in LV85 ================================================================================ AUTORE: 129 DATA :30/09/2007 - 21:22:49 ---------------------------------------- Girando sul blog di [url=http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/:11a0m00n]Thinking in G[/url:11a0m00n] ho letto che le functional global si possono implementare anche senza while loop, utilizzando il Feedback node. ---------------------------------------- AUTORE: 113 DATA :01/10/2007 - 17:38:53 ---------------------------------------- Apparentemente molto interessante. Però leggendo tutti i commenti presenti nella pagina esce che i nuovi feedback node della versione 8.5 sono parecchio meno performanti rispetto ai 'vecchi' shift registers delle functional-globals; inoltre (e questo è peggio) causano un duplicato della memoria allocata... \":(\" Bene saperlo prima di imbarcarsi in ipotetiche semplificazioni... \":wink:\" ---------------------------------------- AUTORE: 129 DATA :02/10/2007 - 09:53:08 ---------------------------------------- E poi è talmente comodo il while con lo shift register... \":lol:\" Io ormai lo uso d'abitudine a volte rendendomi conto che non lo uso nenche lo shift... ---------------------------------------- ================================================================================ Timed Loop in ambiente RealTime ================================================================================ AUTORE: 2088 DATA :01/10/2007 - 08:21:05 ---------------------------------------- Salve a tutti ragazzi, Vi scrivo per chiedere alcune delucidazioni sull'uso dei timed loop, quali sono le loro caratteristiche, come utilizzarli ottimizzando al meglio il codice (l'utilizzo di ram e cpu); ma soprattutto, come sincronizzarli fra loro. Mi spiego meglio. Sto lavorando da qualche tempo su un'applicazione particolare, composta da due fasi: acquisizione dati e registrazione. La prima fase viene svolta da un Compact Field Point 2120, mentre la seconda da un PC che registra i dati necessari e che contiene la parte host dell'applicazione. La comunicazione fra i due target è gestita tramite Shared Variables (utilizzo Labview 8.2.1) Ho realizzato l'intera applicazione con cicli while normali ed ho notato una evidente difficoltà di sincronizzazione fra gli stessi (va anche detto che stiamo parlando di circa 50 variabili e quasi altrettanti vi molti dei quali contengono più cicli in parallelo) Nel corso dello sviluppo, ho visto più volte errori dovuti alla mancata sincronizzazione delle variabili (lv_Read, o lv_Write) ed ho avuto il consiglio di utilizzare i timed loop per migliorare il sistema, tuttavia, quando ho convertito l'intera applicazione, le due parti neanche si avviavano più, il che mi ha fatto venire il dubbio di aver sbagliato qualcosina \":-)\" Non è che avreste degli esempi o del materiale da consigliarmi? o anche una semplice guida, un po' più completa dell'help di labview che possa spiegare come impostare i 1000 parametri di questo tipo di struttura dati... In ogni caso, vi ringrazio in anticipo per l'aiuto che vorrete darmi! ---------------------------------------- AUTORE: 927 DATA :02/10/2007 - 10:17:37 ---------------------------------------- Io ho il documento "Using the Timed Loop to Write Multirate Applications in LabVIEW", lo trovi su google. Ma se intendi sincronizzare automaticamente i timedloop sul PC con i timedloop sul FP, non mi risulta che sia possibile, le "timing source" sono locali. Personalmente non ti incoraggio nemmeno a usare le Shared Var, a me hanno dato più noie che altro, ma non so, magari è sfortuna mia... ---------------------------------------- ================================================================================ versione applicativo ================================================================================ AUTORE: 1520 DATA :01/10/2007 - 11:09:22 ---------------------------------------- Salve a tutti, mi sembra di ricordare che un post sull'argomento fosse già stato fatto ma non riesco a trovarlo per cui forse mi sbaglio. \":?\" Comunque: c'è un modo per ottenere la versione del compilato da Labview? Mi spiego meglio: quando compilo è possibile assegnare all'applicativo un numero di versione a 4 cifre. Come si può recuperarlo programmaticamente? Non risco a trovarlo? Matteo ---------------------------------------- AUTORE: 1520 DATA :01/10/2007 - 14:12:53 ---------------------------------------- Cerca cerca le ho ritrovate (almeno sul mio PC) \":wink:\" Sono delle chiamate a ddl che recuperano i dati di una versione compilata in Labview. Matteo ---------------------------------------- ================================================================================ resettare porta COM ================================================================================ AUTORE: 1313 DATA :02/10/2007 - 13:22:20 ---------------------------------------- Salve, sapete come resettare la porta seriale, opure se esiste un sw per fare cio'? (altrimenti quando si blocca la porta seriame come si fa???) grazie in anticipo per la risposta, Cris ---------------------------------------- AUTORE: 645 DATA :02/10/2007 - 14:51:38 ---------------------------------------- Secondo me devi gestire l'errore e in caso di errore (Status True) devi chiudere la comunicazione con la seriale e riparirla. Penso che sia un metodo per resettare la porta seriale eventualmente senza stoppare il VI. ---------------------------------------- AUTORE: 1313 DATA :02/10/2007 - 15:31:00 ---------------------------------------- Capito, grazie. Ciao, Cris ---------------------------------------- ================================================================================ creazione eseguibile ================================================================================ AUTORE: 1313 DATA :02/10/2007 - 14:30:28 ---------------------------------------- Salve, se creo un eseguibile con l'application builder, quando viene l'anciato vorrei far si che non esegua automaticamente il vi, cioè ho bisogno di fare dei settaggi prima di avviare il vi. Grazie in anticipo, Cris ---------------------------------------- AUTORE: 645 DATA :02/10/2007 - 14:49:57 ---------------------------------------- Tra le opzioni dell'eseguibile (settabili da Application Builder) ce n'è una del tipo "Run when opened": se True, il VI parte appena l'eseguibile viene lanciato, se False il VI viene aperto quando l'eseguibile viene lanciato ma poi l'utente deve premere la freccia di Run come in LabView per far partire il VI. ---------------------------------------- AUTORE: 1313 DATA :02/10/2007 - 15:16:31 ---------------------------------------- Grazie mille, funziona \":-)\" Ciao, cris ---------------------------------------- ================================================================================ PID funziona? ================================================================================ AUTORE: 2195 DATA :02/10/2007 - 14:39:03 ---------------------------------------- salve a tutti! ho realizzato un regolatore PID seguendo varie fonti on line sia con un pò di teoria. la domanda che adesso mi nasce spontanea è: come faccio a sapere se funziona? preciso che non ho il toolkit PID e che comunque non mi labview non mi da errori, il problema è solo sapere come testarlo... grazie e ciao ps vi allego il pid.vi e se magari avete qualcosa di meglio... ---------------------------------------- AUTORE: 384 DATA :03/10/2007 - 08:23:40 ---------------------------------------- Generalmente, qualunque "sistema di controllo" si testa verificando la risposta al gradino e alla rampa. Generare una rampa è solitamente più dificile e quindi ci si accontenta del gradino - che, però, ci dà quasi tutte le informazioni e spesso basta e avanza per affinare un PID. Semplicemente devi dare in ingresso un segnale controllante (set point) con la forma del gradino e misurare la risposta. I parametri interessanti sono il tempo di salita (dal 10 al 90% della gamma), la percentuale di overshoot, il "settling time" (tempo di stabilizzazione entro un certo margine del valore finale) e l'errore in "steady state", cioè quanto il valore finale, una volta stabilizzato, si discosta da quanto desiderato. Leggi [url=http://en.wikipedia.org/wiki/PID_controller:vswcopem]qui[/url:vswcopem] per una descrizione abbastanza completa sul PID, in particolare la sezione [url=http://en.wikipedia.org/wiki/PID_controller#Loop_tuning:vswcopem]Loop Tuning[/url:vswcopem]. ---------------------------------------- AUTORE: 384 DATA :03/10/2007 - 08:26:47 ---------------------------------------- [quote="gyc":1a5dn7fn]I parametri interessanti sono il tempo di salita (dal 10 al 90% della gamma)[/quote:1a5dn7fn] Scusate, qui è sbagliato! \"8)\" Il tempo di salita si misura, si, fra il 10 ed il 90% ma del valore finale, non della gamma del valore di uscita. Sorry...   ---------------------------------------- AUTORE: 2195 DATA :03/10/2007 - 08:55:38 ---------------------------------------- grazie gyc! vedrò di seguire i tuoi consigli! ciao ---------------------------------------- ================================================================================ salvataggio setting vi ================================================================================ AUTORE: 1313 DATA :02/10/2007 - 15:24:24 ---------------------------------------- Salve ragazzi, mi domandavo qual'è il modo più semplice per salvare i setting dell'utente su un file, oppure in altro modo e ricaricarli?? Grazie in anticipo, Cris ---------------------------------------- AUTORE: 1313 DATA :02/10/2007 - 15:30:10 ---------------------------------------- Per esempio non esiste una propietà degli oggetti, per far si che memorizzino l'ultimo settaggio come default? grazie, Cirs ---------------------------------------- AUTORE: 129 DATA :03/10/2007 - 06:45:33 ---------------------------------------- Prova a leggere [url=http://www.ilvg.it/forum/viewtopic.php?t=3409:l4anpyf3]questa discussione[/url:l4anpyf3], trovi anche un esempio. Altrimenti ti puoi appoggiare ad un file (ad esempio .ini). ---------------------------------------- ================================================================================ funzionamento anomalo VI ================================================================================ AUTORE: 1313 DATA :05/10/2007 - 15:31:21 ---------------------------------------- Salve ragazzi, come leggerete nel post: viewtopic.php?p=7345 mi avete fatto vedere come estrarre da una stringa un esponenziale. Il sw funzionava, e fin qui tutto bene. Ad un certo punto, non so se la versione di labview che ho è diversa, oppure se c'è qualche setting particolare, ma il vi non funge più bene. Facendo n+1 test e riprovando il vi del post ho scoperto la magagna: La stringa Y.XXXXE-X viene convertita nel numero Y Mentre la stringa Y,XXXXE-X viene convertita nel numero: Y,XXXXE-X In sostanza se c'è il punto tronca la stringa. Potete provare il vi e darmi conferma?? avete qualche idea del perchè??? Ho trovato una soluzione patch, ma vorrei almeno capire cosa è successo, una situazione del genere mi ha procurato problemi, e vi lascio immaginare..... Grazie in anticipo per la risposta, Cris ---------------------------------------- AUTORE: 645 DATA :05/10/2007 - 16:23:05 ---------------------------------------- Potrebbe dipendere dalle impostazioni del computer: guarda nel Pannello di Controllo (se stai usando Windows), sotto la voce Impostazioni Internazionali. Puoi scegliere se indicare i decimanli con virgola o punto. Se però dipende veramente da questo settaggio potrebbe essere utile trovare un modo per accedere a questa opzioni in maniera automatica all'avvio del VI in modo da capire come gestire i decimali (e le migliaia) su ogni computer dove verrà eseguito il VI (se reso eseguibile con Application Builder). ---------------------------------------- AUTORE: 1313 DATA :05/10/2007 - 19:46:23 ---------------------------------------- SEI UN GRANDE!!!! Purtroppo sono a casa e non posso provare con la pompa di pressione, ma funzionando il vi di sempio funzionera' anche il resto. Sconvolgente, fare una figura di niente per windows,eppuro uno scherzzetto del genere me lo fece con il file di log. Grazie mille, Cris ---------------------------------------- AUTORE: 482 DATA :08/10/2007 - 07:13:08 ---------------------------------------- Per non toccare le impostazioni internazionali di windows,c'e' anche l'opzione in labVIEW "use local decimal point". Se tu dici di ignorarla, userà sempre il punto come separatore decimale. Al momento di compilare l'eseguibile dovrai solo ricordarti di inserire nel file .exe questa stringa: useLocaleDecimalPt=False \":wink:\" ---------------------------------------- AUTORE: 645 DATA :08/10/2007 - 08:27:22 ---------------------------------------- Ottimo! Anche a me è capitato di dover modificare le opzioni dal Pannello di Controllo... sapere che si può sfruttare qualche opzione direttamente in LabView senza modificare Windows non mi dispiace... \":)\" ---------------------------------------- ================================================================================ Array di stringhe to variant e ADO ================================================================================ AUTORE: 10 DATA :05/10/2007 - 15:43:45 ---------------------------------------- Ciao a tutti, ho un problemino che riguarda il ADO ed il modo di passargli i dati. Stò utilizzando Labview per interfacciarmi ad un database in MYSQL piuttosto complesso, ed ho bisogno di generare un recordset e aggioungere dei valori a quest'ultimo. Il problema è che ADO vuole in ingresso un variant con i nomi dei campi ed un'altro con i valori dei campi. Avevo pensato di farlo passando al controllo due array di stringhe, ma viene generato un errore. Qualcuno di voi guru ha qualche idea? Allego il vi così è più chiaro. ---------------------------------------- AUTORE: 645 DATA :05/10/2007 - 16:26:52 ---------------------------------------- Premetto che non ho aperto il tuo VI quindi magari dico una cosa che già fai: potresti passare i valori tramite query anzichè a pezzi. Mi spiego: puoi incatenare le stringhe (nomi campi e valori dei record) in maniera opportuna e passarle ad un blocco che esegue la query di inserimento dati. ---------------------------------------- AUTORE: 384 DATA :07/10/2007 - 13:38:31 ---------------------------------------- Non riesco a far girare il vi (manca la libreria), ma credo che ti basti collegare l'array di stringhe direttamente. Si incaricherà LabView di fare la trasformazione corretta. Se per formalismo preferisci trasformare il dato esplicitamente prima - come d'altronde consiglio e cerco sempre di fare io stesso - allora, secondo me, non devi passare un variant (trasformando l'array) bensì un'array di variant (trasformando ogni singola stringa prima).   ---------------------------------------- AUTORE: 129 DATA :07/10/2007 - 20:39:51 ---------------------------------------- Probabilmente l'errore potrebbe non essere dovuto al fatto di inviare stringhe (metodo più comune) che variant; ma probabilmente al fatto che possa non essere compatibile il tipo di contenuto. Per fare un esempio se hai una tabella con una colonna di tipo integer e una varchar(o stringa per altri dB). Se tenti di inviare un carattere alla colonna nteger, questa ti genera un errore di tipo. Prova a rivedere la formattazione dei dati e soprattutto la query di insert o update che ti genera; fai attenzione al codice SQL, che non è per esempio la stessa di SQL per Access. ---------------------------------------- AUTORE: 384 DATA :08/10/2007 - 09:08:00 ---------------------------------------- Il post di Nicola mi ha fatto ricordare che ho già avuto problemi in passato, per esempio con la formattazione delle date, che Access tratta in modo molto diverso del SQL standard. ---------------------------------------- AUTORE: 10 DATA :08/10/2007 - 09:38:25 ---------------------------------------- Vi ringrazio tutti per le informazioni \":D\" Allego il vi (stavolta in forma di libreria così non macheranno più i vi). Ho fatto un po' di test: [list:19nmmp4e]I campi sono TUTTE stringhe[/list:u:19nmmp4e] [list:19nmmp4e]I campi sono formattati correttamente (non eccedono le dimensioni date nella definizione della tabella, sono del tipo corretto,ecc)[/list:u:19nmmp4e] [list:19nmmp4e]I dati possono anche essere passati sotto forma di comando INSERT, ma \":?:\" SE \":?:\" fosse possibile utilizzare il comando addnew di ADO, sarebbe meglio.[/list:u:19nmmp4e] In linea generale mi piacerebbe sapere come si passa ad un controllo activeX qualunque un array di stringhe attraverso un variant perchè non mi è chiaro per niente. In nessun post (neppure sul sito NI) è presente nulla sul comando addnew di ADO, come se non fosse possibile implementarlo, ma mi sembra veramente troppo strano, anche perchè ha solo due parametri: la lista dei campi e la lista dei valori, entrambi presentati come array di variant. Idee? ---------------------------------------- AUTORE: 129 DATA :08/10/2007 - 13:25:13 ---------------------------------------- A me funziona tranquillamente, prova a vedere meglio nomi di campi e valori oppure la select che fai per tirar fuori il recordset. Io stò usando un DB Access, ma penso poco importi se l' SQL è ANSI. Nicola ---------------------------------------- AUTORE: 384 DATA :08/10/2007 - 13:59:34 ---------------------------------------- [quote="nicola":1nycnxrd]A me funziona tranquillamente, prova a vedere meglio nomi di campi e valori oppure la select che fai per tirar fuori il recordset. Io stò usando un DB Access, ma penso poco importi se l' SQL è ANSI. Nicola[/quote:1nycnxrd] Io non ci giurerei!!! \":wink:\" Ripeto che ho avuto problemi con access eppure ero partito da SQL ansi... Zio Bill fa ciò che gli pare, standard o non standard... \":x\"   ---------------------------------------- AUTORE: 129 DATA :08/10/2007 - 14:08:19 ---------------------------------------- Si è vero, io devo sempre riformattare le mie stringhe sql, ad esempio, gli Apici (access usa ", mentre bisogna usare '). In effetti lìho fatta troppo semplice dicendo che basta codice ANSI, bisogna fare delle prove sempre e in ogni modo....Grazie a Bill ---------------------------------------- ================================================================================ Eseguire un operazione all'apertura del vi ================================================================================ AUTORE: 1313 DATA :05/10/2007 - 15:46:13 ---------------------------------------- Salve ragazzi, devo caricare un file di configurazione all'apertura del vi esiste un modo?? Il problema è che l'utente quando apre il VI deve trovarsi caricata l'ultima configurazione, poi fa dei setting e avvia il sw. Grazion in anticipo, Cris ---------------------------------------- AUTORE: 645 DATA :05/10/2007 - 16:24:38 ---------------------------------------- Cioè vorresti caricare un file di configurazione prima di avviare il VI? Non puoi far partire il VI, caricare la configurazione, entrare in un ciclo infinito (un while con STOP) in modo da mettere in pausa l'esecuzione e nel momento in cui l'utente preme STOP ripartire? ---------------------------------------- AUTORE: 1313 DATA :05/10/2007 - 19:48:02 ---------------------------------------- Pensandoci bene, forse forse va bene, perchè la prima volta che l'utente accede deve fermare il sw e configurare la com ecc ecc, dalla volta successiva non c'è problema. Grazie, Cris ---------------------------------------- ================================================================================ CREAZIONE WARMING ================================================================================ AUTORE: 2247 DATA :08/10/2007 - 12:52:10 ---------------------------------------- \":D\" Ciao a tutti.......vorrei sapere come collegare ad un operatore booleano un warming ( es. schiaccio un tasto sbagliato e mi esce una scritta , che dura alcuna secondi, che mi comunica l'errore ) . Grazie a tutti dell'aiuto CIAO GUMBA \"8)\" ---------------------------------------- AUTORE: 2168 DATA :09/10/2007 - 19:10:53 ---------------------------------------- [quote="gumba":2v9sw18f]:D Ciao a tutti.......vorrei sapere come collegare ad un operatore booleano un warming ( es. schiaccio un tasto sbagliato e mi esce una scritta , che dura alcuna secondi, che mi comunica l'errore ) . Grazie a tutti dell'aiuto CIAO GUMBA \"8)\"[/quote:2v9sw18f] Ciao,dipende da come è l'errore, in ogni caso se vai nel pannello time and dialog puoi inserire una finestra di dialogo che si apre per qualche evento che decidi tu e ti scrive un mesaggio d'errore, se poi vuoi che l'esecuzione vada avanti dopo qualche secondo basta inserire il messaggio d'errore in una sequence e dargli un tempo per andare avanti. Spero di essere stato utile,ciao ---------------------------------------- ================================================================================ Errore ================================================================================ AUTORE: 1596 DATA :08/10/2007 - 13:57:37 ---------------------------------------- salve a tutti, e' da qualche giorno che cerco di risolvere questo problema ma nn ne vengo a capo..qualcuno ha mai incontrato tale errore?...quando accedo a LabVIEW mi resetta il PC \":cry:\" THX ---------------------------------------- AUTORE: 113 DATA :08/10/2007 - 17:51:35 ---------------------------------------- Non so certo darti informazioni in merito a questo 'simpatico' messaggio di errore. \":o\" Al tuo posto quello che farei è brutalmente re-installare LV, meglio comunque prima disinstallare quello che hai... \":(\" ---------------------------------------- AUTORE: 1596 DATA :09/10/2007 - 08:34:34 ---------------------------------------- ...il fatto e' ke se lo disinstallo nn posso piu' installarlo perche' stavo lavorando sulla 6.1 e dove lavoro e' possibile installare solo dalla 8.2 in poi... ora mi chiedo, ma allora uno ke lavora su una versione vecchia e per qualche motivo non puo' piu' procurarsela(il mio caso), dopo aver fatto dei VI con tale versione, come fa a leggerli visto ke ad esempio la 8.2 nn legge alcuni subvi???? \":cry:\" ho perso solo tempo fino ad ora???? \":|\" non c'e' un modo per leggere VI di qualsiasi versione???, mi basta anke solo la lettura senza l'esecuzione!!!! ---------------------------------------- AUTORE: 113 DATA :09/10/2007 - 17:01:44 ---------------------------------------- Dando per scontato che la versione 6.1 di LV che avevi installata era 'regolare' \":wink:\" , immagino non sia un problema farsi dare da NI una copia del CD fornendo il tuo numero di serie. [quote:12acss5r]la 8.2 nn legge alcuni subvi[/quote:12acss5r] Questo è strano, di solito le nuove versioni sono abbastanza compatibili con le precedenti; a meno che hai qualche sub-vi senza il diagramma, nel caso ovviamente il compilatore di LV 8.2 non può interpretarle e genera errori. ---------------------------------------- AUTORE: 1596 DATA :09/10/2007 - 17:30:59 ---------------------------------------- ...la copia era regolare (non ho detto che c'avevo LabVIEW sul mio PC \":wink:\" )...ma sono le versioni che girano con licenza da campus in rete....ora abbiamo(o almeno sono accessibili) solo le licenze per 8.2 e 8.5.....la macchina su cui lavoravo (e mi sa che dovro' dire cosi') e' un vecchio PXI con 2 HHD di 2 Go ognuno, niente lettore CD \":o\" ma con una porta USB \":)\", non aveva abbastanza memoria da usufruire del servizio antivirus in rete e ti lascio immaginare....l'ho scollegato dalla rete, reinstallato win2k conservando quella copia di LabVIEW 6.1, l'avevo anche fatta girare senza la rete, ma per qualche motivo da quando ho installato i vari driver non mi funziona piu'...credo che ci siano conflitti vari...non sono riuscito a trovare un documento che mi dicesse: con win2k sarebbe buona norma installare tale versione di NIDAQ, tale di NIVISA, etc.... per quanto riguarda i VI erano AOStart AOConfig AOSingleUpdate AOClear PulseWidthorPeriodMeasConfig CounterStart ConterRead CounterStop ---------------------------------------- AUTORE: 482 DATA :10/10/2007 - 07:18:17 ---------------------------------------- Credo che i subvi di cui stai parlando non centrino. L'errore segnalato è nel driver nipalk.sys. Se cerchi con google tale file trovi un po' di problemi a tal proposito e tutti parlano di NI-PAL. Che te ne fai di NI-PAL? E' una cosa che serve all'applicazione oppure è stata installata di default? In teoria reinstallando NI-DAQ dovresti risolvere il problema. I SubVI di cui parli nelle nuove versioni non sono contenuti nell'installazione di default, devi chekkare anche Traditional NI-DAQ quando richiesto. ---------------------------------------- AUTORE: 1596 DATA :10/10/2007 - 08:15:34 ---------------------------------------- il NIPAL credo venga installato insieme a NIVISA...ho provato a reinstallare NIDAQ, anche varie versioni ma non ho risolto...comunque credo di abbandonare l'utilizzo del PXI controller perche' per problemi vari non potrei installare una versione 'regolare' di LabVIEW... per quanto riguarda i VI del Traditional NIDAQ, ma devo reinstallare LV 8.2 e al momento dell'installazione spuntare anche traditional NIDAQ oppure esiste un altro modo con installazione 8.2 gia' avvenuta? THX ---------------------------------------- AUTORE: 482 DATA :10/10/2007 - 08:43:13 ---------------------------------------- no, il cd NI-DAQ non c'entra con il cd di Labview. E' un cd a parte. ---------------------------------------- ================================================================================ LabView RealTIme ================================================================================ AUTORE: 2196 DATA :08/10/2007 - 16:41:25 ---------------------------------------- Esiste un qualche tools per monitorare il carico di a lvoro della macchina con RT in esecuzione ? ---------------------------------------- AUTORE: 113 DATA :08/10/2007 - 17:44:35 ---------------------------------------- Sì, esiste! Da LV: menu Tools - Real-Time Module - System Manager Hai accesso un po' a tutte le informazioni riguardo alla macchina con RT: vis in memoria/esecuzione, memoria utilizzata/ libera, utilizzo CPU, ecc. ---------------------------------------- AUTORE: 2196 DATA :09/10/2007 - 08:34:33 ---------------------------------------- Grazie della risposta. Nella specifica posso monitorare dei timed loop ?? ---------------------------------------- AUTORE: 113 DATA :09/10/2007 - 17:06:30 ---------------------------------------- Prego! In che senso monitorare un timed loop? Quello che puoi fare è monitorare la vi che lo fa girare: stato, risorse, memoria impegnata ecc. E' a tutti gli effetti un task manager di RT. ---------------------------------------- AUTORE: 2196 DATA :10/10/2007 - 08:37:22 ---------------------------------------- [quote="Alberto.L":1x89k6v4]Prego! In che senso monitorare un timed loop? Quello che puoi fare è monitorare la vi che lo fa girare: stato, risorse, memoria impegnata ecc. E' a tutti gli effetti un task manager di RT.[/quote:1x89k6v4] Per monitorare un timed loop intendo aver modo di vedere la durata del timedloop e la frequenza reale di esecuzione. ---------------------------------------- AUTORE: 113 DATA :10/10/2007 - 10:40:00 ---------------------------------------- Per fare questo devi esportare dall'applicazione realtime i dati che hai citato e leggerli poi sul pc host, sul quale comunque devi creare una vi ad hoc. Due passaggi quindi: - modificare l'applicazione RT in modo che pubblichi i dati di interesse (LAN, RS232, ecc) - creare una vi di lettura sul pc host Ma dipende molto da come è costituito il tuo sistema. ---------------------------------------- ================================================================================ errore sql (ricerca su DB Access) ================================================================================ AUTORE: 680 DATA :09/10/2007 - 11:54:09 ---------------------------------------- quando eseguo questo codice con ADO da LV, mi dà un errore di un parametro non previsto... SELECT Articoli.Descrizione FROM Articoli WHERE Articoli.Descrizione LIKE "*" & 'cart' & "*" se io eseguo lo stesso codice direttamente in Access funziona perfettamente... ringrazio anticipatamente chiunque mi possa aiutare... ---------------------------------------- AUTORE: 482 DATA :09/10/2007 - 13:51:19 ---------------------------------------- beh sintassi, semplicemente sintassi. Allo stesso modo le date in access tramite labview danno casini e bisogna mettere i cancelletti # al posto degli apici e cosi' via... Io proverei come priam cosa a sostituire gli & con degli AND, poi provi con i vari apici. Magari fai prove sui campi singoli prima \";)\" \":wink:\" ---------------------------------------- AUTORE: 838 DATA :09/10/2007 - 15:19:51 ---------------------------------------- come si riesce a gestire la data? ---------------------------------------- AUTORE: 384 DATA :10/10/2007 - 01:38:17 ---------------------------------------- Le date vanno messe tra cancelletti (#) al posto delle singole apici ('). Invece, per la sintassi di linux120, elimina gli operatori '&' che servono solo a concatenare gli asterischi ottenendo "*cart*", con questa stringa già composta. ---------------------------------------- ================================================================================ Creare eseguibile ================================================================================ AUTORE: 2168 DATA :09/10/2007 - 15:56:14 ---------------------------------------- Ciao a tutti, sapete dirmi come si fa a creare un eseguibile dei programmi in LabVIEW Grazie ---------------------------------------- AUTORE: 927 DATA :10/10/2007 - 09:05:31 ---------------------------------------- Ci vuole l'Application Builder, che non è compreso nel pacchetto minimo di Labviù, va comprato a parte. Se ce l'hai, trovi la funzione sotto Tools -> Build Application (o simile) ---------------------------------------- AUTORE: 2168 DATA :10/10/2007 - 09:27:47 ---------------------------------------- Ce l'ho, ma non so cosa fare una volta aperto build application, ci sono un sacco di opzioni, tipo LOAD, SAVE...devo solo fare SAVE? ---------------------------------------- AUTORE: 927 DATA :10/10/2007 - 09:30:15 ---------------------------------------- Che versione di labviù hai? Cmq dovrebbe esserci BUILD. SAVE ti salva solo le opzioni (per poter rifare lo stesso build in futuro) ---------------------------------------- AUTORE: 2168 DATA :10/10/2007 - 10:00:48 ---------------------------------------- Ok, grazie ---------------------------------------- AUTORE: 2168 DATA :10/10/2007 - 15:30:41 ---------------------------------------- [quote="Snamprogetti":1cqando2]Che versione di labviù hai? Cmq dovrebbe esserci BUILD. SAVE ti salva solo le opzioni (per poter rifare lo stesso build in futuro)[/quote:1cqando2] Scusate ancora, ho la versione 7.1 di LV e sono riuscito a creare l'eseguibile che però non funziona, qualcuno sa darmi qualche dritta. ---------------------------------------- AUTORE: 927 DATA :10/10/2007 - 15:36:35 ---------------------------------------- Sei sempre molto avaro di dettagli... Intanto ti ricordo che per far girare un exe su un pc dove non c'è Labviù, devi installare anche il "Run-time engine" (gratuito) ---------------------------------------- AUTORE: 645 DATA :10/10/2007 - 17:33:40 ---------------------------------------- Ciao, se guardi nella sezione articoli del sito c'è una guida su Application Builder. Non è per farmi pubblicità (l'ho scritta io), è solo che trovi alcune idee in un unico posto... download.php?id=1473 ---------------------------------------- ================================================================================ Aiuto x elaborazione immagini ================================================================================ AUTORE: 2250 DATA :10/10/2007 - 13:28:55 ---------------------------------------- Salve a tutti per sviluppare la mia tesi devo fare un programma che da una foto di una goccia prima mi riconosca il contorno della goccia tramite il contrasto di colore poi da essa calcolare il volme della goccia tramite qualche tool già integrato potete darmi qualche consiglio su coem fare e che tool utilizzare? le mie conoscenze ed esperinze di programazione sono molto scarse ---------------------------------------- AUTORE: 384 DATA :11/10/2007 - 07:15:35 ---------------------------------------- Devi usare il modulo NI-VISION. Questo è un'intera libreria di funzioni già pronte per manipolazione ed elaborazione di immagini quali "edge detection", riconoscimento pattern, ecc. Devo metterti in guardia sul fatto che per lavorare in elaborazioni di immagini [b:25qjgze6][color=darkred:25qjgze6]è NECESSARIO[/color:25qjgze6][/b:25qjgze6] aver conoscenze di programmazione già di un certo livello. Per quanto LAbView sia "facile da usare", [b:25qjgze6][color=darkred:25qjgze6][u:25qjgze6]non è assolutamente vero[/u:25qjgze6][/color:25qjgze6][/b:25qjgze6] che "chiunque riesce a fare qualunque cosa in pocchi minuti", sopratutto a mano a mano che l'oggetto del lavoro si rende tecnica e/o scientificamente più complesso. Non voglio scoraggiarti - anzi è l'esatto contrario! Voglio esortarti a coltivare seriamente le conoscenze di programmazione anche a livello generale, perchè oggigiorno sono utili a moltissimi livelli, anche se non si è un programmatore professionsta. (pensiamo solo, ad esempio, al vantaggioso uso che ne può fare soltanto con le macro di Exel anche qualcuno che fa il venditore) ---------------------------------------- AUTORE: 2250 DATA :11/10/2007 - 12:55:07 ---------------------------------------- si vision lo sto usando, mi serve pure x acquisire i dati quali sono i tool che mi traovano il contorno, "edge detection" invece quello x calcolare il numero di pixel all'interno? ---------------------------------------- AUTORE: 384 DATA :11/10/2007 - 19:50:15 ---------------------------------------- edge detection: pallette vision\image processing\filters\IMAQ Edge Detection conteggio pixels: negli esempi di labview cerca "blob" e tra i vi che risulteranno apri e guarda 'Particle Analysis Example.vi' ---------------------------------------- AUTORE: 2250 DATA :15/10/2007 - 14:44:14 ---------------------------------------- il programma d'esempio è molto utile credo di riuscire a prederlo e riadattarlo x le mie esigenze grazie x l'aiuto ---------------------------------------- AUTORE: 2250 DATA :05/11/2007 - 21:48:43 ---------------------------------------- c'è un tool che dal contorno mi può tirare fuori una simmetria sferica? il mio prof vuole quella oppure un altro modo per calcolarla ---------------------------------------- ================================================================================ Labview & Wireless ================================================================================ AUTORE: 445 DATA :10/10/2007 - 14:31:04 ---------------------------------------- Ciao a tutti, nessuno di voi ha mai provato ad utilizzare una scheda di rete wireless (WiFi) tramite Labview? ci sono funzioni già pronte da poter utilizzare al volo per utilizzare questi gioiellini dell RF? Grazie 1000 ---------------------------------------- AUTORE: 384 DATA :11/10/2007 - 07:03:34 ---------------------------------------- Dal punto di vista delle applicazioni, il fatto che la scheda di rete sia wireless, cablata, bluetooth o 1394 è trasparente, cioè, l'applicazione non lo percepisce nemmeno. Da labview devi soltanto aprire una communicazione TCP e basta. Della scheda di rete non hai neanche un parametro! ---------------------------------------- AUTORE: 445 DATA :11/10/2007 - 17:21:23 ---------------------------------------- Quindi basta che io usi le funzioni TCP/IP giusto? io non ho molta esperienza a livello di TCP/IP, ma è davvero cosi' facile?!?! se ad esempio volessi fare un ricevitore wiFi per vedere le reti wireless che ci sono in zona basta utilizzare la funzione TCP Listen?? ---------------------------------------- AUTORE: 384 DATA :11/10/2007 - 19:21:19 ---------------------------------------- No. Per fare questo tipo di lavoro devi proprio pilotare direttamente l'hardware, quindi devi scendere nel livello di programmazione e praticamente scrivere un device driver tutto tuo con le funzioni di basso livello che ti servono e che allora dovrai invocare tramite DLL. Non è uno scherzetto, neanche per programmatori provetti. ---------------------------------------- ================================================================================ Modifica delle scale con MAX ================================================================================ AUTORE: 2257 DATA :12/10/2007 - 13:57:20 ---------------------------------------- E' possibile che nell' albero di configurazione in MAX non appaia la cartella "Scales"? Se sì, come posso riabilitarlo o visualizzarlo? grazie ---------------------------------------- ================================================================================ interpolazione lineare tra 2 punti ================================================================================ AUTORE: 2002 DATA :13/10/2007 - 12:42:55 ---------------------------------------- Ciao a tutti,ho scritto un VI in cui acquisisco un segnale. Per la sincronizzazione mi servono gli attraversamenti per lo ZERO del segnale. Mi accorgo di un attraversamento quando moltipilcando un campione per quello immediatamente scusseccivo mi miene un valore negativo. Così facendo so che c'è stato un attraversamento ma nn conosco il punto preciso dove il segnale attraversa l'asse dei tempi. Io vorrei determinare proprio questo punto. Ho pensato di risolvere questa cosa trovando una retta passante per questi due punti e poi ricavando l'intersezione di questa retta con l'asse dei tempi. Vi posto un'immagine x rendere più kiara la cosa...Ora dovrei implemetarlo in LabVIEW. Qualcuno potrebbe darmi una mano??? Grazie in anticipo... ---------------------------------------- AUTORE: 2195 DATA :13/10/2007 - 14:43:18 ---------------------------------------- hai provato ad utilizzare semplicemente la condizione che appena la tua variabile è uguale a zero salvi il valore temporale relativo su file?ti basta il blocchetto di uguaglianza a zero ed un subvi che registri a comando. ciao ---------------------------------------- AUTORE: 2002 DATA :13/10/2007 - 15:13:38 ---------------------------------------- Ciao,ma nn posso fare come hai detto tu xkè io campiono la mia sinusoide e quindi ho dei campioni e nn una variabile continua. I miei campioni x1 e x2 sono uno positivo e l'altro negativo ma uguale a zero! Come posso fare'?? Grazie... ---------------------------------------- AUTORE: 384 DATA :14/10/2007 - 15:30:27 ---------------------------------------- [quote="pietroview":2ycd9v1s]Ho pensato di risolvere questa cosa trovando una retta passante per questi due punti e poi ricavando l'intersezione di questa retta con l'asse dei tempi. Vi posto un'immagine x rendere più kiara la cosa...Ora dovrei implemetarlo in LabVIEW. Qualcuno potrebbe darmi una mano??? Grazie in anticipo...[/quote:2ycd9v1s] É proprio un'equazione semplice. Prendendo [url=http://en.wikipedia.org/wiki/Linear_equation#Two-point_form:2ycd9v1s]questa[/url:2ycd9v1s] come esempio, se sostituisci (h,k) e (pq) con i tuoi (x1,y1) e (x2,y2), ti basta mettere y uguale a zero e ti ritrovi il tuo 'x', cioè il momento in cui la curva incroccia lo zero. Non c'è praticamente nulla da programmare!   ---------------------------------------- AUTORE: 2002 DATA :15/10/2007 - 10:57:05 ---------------------------------------- Hai ragione GYC, questa è la retta passante per due punti..ci avevo pensato pure io infatti! Non è stato molto difficile arrivarci!! Il fatto è ke i miei campioni sono dei valori numerici e non ho quindi le coordinate x e y...quindi non è tanto semplice trovarmi la retta passante per 2 punti. Penso proprio che c'è qualcosa da programmare!! ---------------------------------------- AUTORE: 384 DATA :15/10/2007 - 12:28:56 ---------------------------------------- [quote="pietroview":tnyqily8]Il fatto è ke i miei campioni sono dei valori numerici e non ho quindi le coordinate x e y...quindi non è tanto semplice trovarmi la retta passante per 2 punti.[/quote:tnyqily8] C'è qualcosa che non capisco!!! Stai acquisendo valori numerici nel tempo, vero? Allora PER FORZA hai le coordinate!!! Il piano cartesiano ha l'ampiezza nell'asse verticale ed il tempo nell'asse orizzontale. I [b:tnyqily8]nomi[/b:tnyqily8] degli assi non contano assolutamente nulla (potrei chiamarli alfa e beta, cip e ciop, 'a' e 't' oppure 'x' e 'y') - cioè, la 'y' è il valore di ampiezza (volts) e la 'x' è il valore del tempo. Davero non vedo la difficoltà...   ---------------------------------------- AUTORE: 2002 DATA :15/10/2007 - 12:46:14 ---------------------------------------- Si sto acquisendo valori numerici nel tempo... Guarda ke nn c'è bisogno ke mi speghi quelle cose tipo l'asse e quant'altro!!!!! Il fatto è campionando ottengo solo delle ampiezze e nn i rispettivi valori temporali...(I VALORI TEMPORALI NN LI CONOSCO, QUESTA è LA MIA DIFFCOLTà!!!!!!) ---------------------------------------- AUTORE: 645 DATA :15/10/2007 - 13:05:21 ---------------------------------------- Piano piano... allora, PietroView stai lavorando con una sinusoide. Hai provato ad usare una Waveform? Non ho sottomano LabView, appena riesco guardo. Però dalla Wave form puoi ricavare il dato Y (ampiezza) e il corrispondente dato nel tempo (dovrebbe essere il blocco Get Waveform Components o qualcosa di simile). Tu devi lavorare su una sinusoide acquisita e (in tempo reale) devi calcolare lo zero o su una sinusoide acquisita e dopo aver terminato l'acquisizione calcolare gli zeri? ---------------------------------------- AUTORE: 384 DATA :15/10/2007 - 13:13:35 ---------------------------------------- Puoi acquisire una waveform. Con quella diventa molto semplice effettuare molte funzioni. Si può anche convertirla in un arrary XY per fare anche delle elaborazioni specifiche - anche se mi sembra di ricordare che esista una funzione per il zero-crossing (cerca negli esempi). Da come descrivi la tua difficoltà - confesso che in tutti i tuoi messaggi non avevo capito che fosse questa - mi sembra di aver capito che stai acquisendo "liberamente" con uno di quei blocchi che fa tutto da solo, all'interno di un ciclo while. Devi prendere l'informazione temporale contestualmente a quando immagazzini il valore di ampiezza, costruento un array XY. Semplicemente metti un frame sequence attorno al blocco di acqusizione e all'interno agguingi un blocco time. Così prelevi i tuoi x ed y.   ---------------------------------------- AUTORE: 2002 DATA :15/10/2007 - 13:14:35 ---------------------------------------- Allora MagicBartolo io acquisisco tramite CompactRio un segnale generato con un generatore e per la sicocronizzazione ho bisogno di trovare il passaggio per lo 0, così ke da quel punto inizio a campionare...Il passaggio per lo zero l'ho ricavato moltiplicando il campione attuale per quello precedente e se è <0 significa ke ho avuto l'attraversamento. Ma per avere minore incertezza devo calcolare il punto preciso dove il segnale attraversa l'asse dei tempi!!!!Fondamentalmente questo è il mio problema...devo iniziare a campionare dal punto preciso in cui il segnale attraversa l'asse dei tempi... Mi puoi aiutare??? ---------------------------------------- AUTORE: 645 DATA :15/10/2007 - 13:19:59 ---------------------------------------- Scusa ma non è ancora chiaro: tu acquisisci un segnale tramite CompactRio. Appena questo segnale passa per lo zero tu devi salvare i campioni? O fare delle elaborazioni? Altrimenti non capisco: tu acquisisci tutto il segnale, sia prima che dopo il passaggio per lo zero. Cosa intendi per sincronizzazione? Cosa devi sincronizzare? E cosa deve fare l'apparecchio sincronizzato? ... ehm... comunque MagicBotolo, non Bartolo... \":D\" ---------------------------------------- AUTORE: 2168 DATA :09/11/2007 - 13:16:58 ---------------------------------------- [quote="pietroview"]Ciao a tutti,ho scritto un VI in cui acquisisco un segnale. Per la sincronizzazione mi servono gli attraversamenti per lo ZERO del segnale. Mi accorgo di un attraversamento quando moltipilcando un campione per quello immediatamente scusseccivo mi miene un valore negativo. Così facendo so che c'è stato un attraversamento ma nn conosco il punto preciso dove il segnale attraversa l'asse dei tempi. Io vorrei determinare proprio questo punto. Ho pensato di risolvere questa cosa trovando una retta passante per questi due punti e poi ricavando l'intersezione di questa retta con l'asse dei tempi. Vi posto un'immagine x rendere più kiara la cosa...Ora dovrei implemetarlo in LabVIEW. Qualcuno potrebbe darmi una mano??? Grazie in anticipo...[/quote] Esiste un funzione che calcola direttamente l'intercetta, dovrebbe essere proprio quella che calcola il fit o solo la pendenza, non ricordo ---------------------------------------- AUTORE: 113 DATA :10/11/2007 - 08:58:38 ---------------------------------------- Ma per fare quello che chiedi esiste già una funzione nativa di LV: Basic Level Trigger Detection che trovi nella palette Analyze - Waveform Monitoring Basta che imposti il livello di trigger a 0 e stabilisci lo slope per la ricerca; eventualmente ne usi due in parallelo uno con slope rising e l'altra falling, poi confronti gli indici trovati e utilizzi il minore per trovare il primo zero-crossing. Comunque fai riferimento all'help per capirne tutti i parametri. ---------------------------------------- ================================================================================ rallentare global function ================================================================================ AUTORE: 2195 DATA :13/10/2007 - 14:17:50 ---------------------------------------- salve a tutti! ho realizzato una global function utilizzando un ciclo while con condizione di terminazione continue if is true, con costante false, e degli shift register non inizializzati; all'interno del while ho messo una stacked sequence structure con 5 frame; i vari frame si passano i valori tra loro attraverso sequence local. il tutto funzione come dovrebbe apparte che è troppo veloce! ho provato con il time whait (metronomo) ma cambia solo il periodo di aggiornamento della variabile e non l'incremento nell'unità di tempo; ho provato la timed structure ma non mi consente di usare le sequence local per il passaggio dei valori tra i vari frame. in pratica: come rallento la crescita della varibile a cui sono passati i valori provenienti dagli shift register? grazie a tutti e ciao! ---------------------------------------- AUTORE: 129 DATA :13/10/2007 - 21:37:55 ---------------------------------------- Semplicemente facendo in modo che le operazioni che vuoi rallentare, vengano eseguite solo in concomitanza di un certo evento (in questo caso un conteggio temporale). ti allego un esempio ---------------------------------------- AUTORE: 2195 DATA :14/10/2007 - 15:04:15 ---------------------------------------- grazie nicola! ho provato anche inserendo sul percorso della varibile una cosa simile ma con solo un while con dentro il metronomo... vedrò quale mi funziona meglio. ciao! ---------------------------------------- ================================================================================ multi-plot ================================================================================ AUTORE: 1596 DATA :15/10/2007 - 10:01:20 ---------------------------------------- salve... all'uscita di un ciclo for con 'enable indexing' mi ritrovo le forme d'onda plottate su un solo grafico (2D array)...come faccio ad avere ogni singola forma d'onda nel suo plot? THX ---------------------------------------- AUTORE: 645 DATA :15/10/2007 - 10:32:40 ---------------------------------------- Puoi postare un'immagine del Block Diagram? ---------------------------------------- AUTORE: 1596 DATA :15/10/2007 - 12:53:56 ---------------------------------------- [url=http://img526.imageshack.us/my.php?image=66590985ny8.png:53krr837]..eccolo...[/url:53krr837] THX ---------------------------------------- AUTORE: 645 DATA :15/10/2007 - 13:07:12 ---------------------------------------- Tu vuoi un grafico per ogni forma d'onda? Se sì devi prima creare tutti i grafici e poi inviare ad ogni grafico la sua forma d'onda, altrimenti prova a comporre le diverse forme d'onda con un Bundle prima di passarle al grafico e te le ritrovi plottate tutte insieme. ---------------------------------------- AUTORE: 1596 DATA :15/10/2007 - 13:26:27 ---------------------------------------- ...si' voglio un grafico per ogni forma d'onda, come faccio a creare prima i grafici??...e poi se sapessi inviare ad ogni grafico la sua forma d'onda avrei risolto gia' il problema...scusa ma non mi e' chiaro \":oops:\" ---------------------------------------- AUTORE: 645 DATA :15/10/2007 - 14:08:33 ---------------------------------------- Dunque, se invii un array 2d ad un grafico ogni riga dell'array diventa un grafico... giusto? A priori devi creare tanti grafici quanti sono le righe (è un numero fisso che conosci?), poi scorri l'array 2d prendendo una colonna e tutta la riga corrispondente (con il blocco "Array Subset") e invii il risultato ad un grafico, cambiando grafico per ogni riga estratta. Ma tu forse non sai le dimensioni dell'array 2d all'inizio... ---------------------------------------- AUTORE: 1596 DATA :15/10/2007 - 14:42:51 ---------------------------------------- ...infatti, le dimensioni le conosco solo quando sto nel ciclo for...in pratica, per capirci, ho una sorta di sinusoide...leggo due pikki consecutivi (in realta' fuori dal for trovo tutti i pikki della forma d'onda e li analizzo a due a due dentro il for) e da qui trovo quanto deve essere lungo l'asse dei tempi per graficare le forme d'onda che alla fine saranno costituite da un solo picco(cioe' saranno tante finestre consecutive della forma d'onda iniziale)...cio' che mi serve e' poterle avere separate per poi calcolare l'integrale di ognuna... ---------------------------------------- AUTORE: 645 DATA :15/10/2007 - 15:19:28 ---------------------------------------- Il problema è la generazione runtime di grafici che non so se e come si possa fare... Però puoi calcolare l'integrale con il blocco di integrazione senza fare i grafici e alla fine realizzare un grafico solo, quello con la curva che ti interessa. ---------------------------------------- ================================================================================ type cast ================================================================================ AUTORE: 1137 DATA :15/10/2007 - 13:33:25 ---------------------------------------- ciao a tutti, oggi vi riporto un piccolo quiz, risolto grazie a un amico esperto. \":wink:\" Se voglio usare gli enumerativi e non mi piace vedere le macchioline grigie del "type coerce" di LV, uso il type cast. Purtroppo i risultati non sono sempre quelli attesi. \":?\" Cosa c'e' che non va nel vi allegato? (LV6.1) \":?:\" ---------------------------------------- AUTORE: 645 DATA :15/10/2007 - 14:02:08 ---------------------------------------- Se non fai il cast funziona correttamente... come mai? ---------------------------------------- AUTORE: 482 DATA :15/10/2007 - 14:29:54 ---------------------------------------- La sparo... facendo il cast viene generato un oggetto di quel tipo ma con il valore di default. Se faccio il cast all'aumento di grado e poi gli sommo 2 allora funziona.... \":roll:\" ---------------------------------------- AUTORE: 680 DATA :15/10/2007 - 15:22:30 ---------------------------------------- dall'help del type cast: se type e x non sono della stessa dimensione (tipo), la funzione può generare dati inaspettati... nel tuo caso, passi un unsigned 16 come type ed un integer 32 come x ---------------------------------------- AUTORE: 1596 DATA :15/10/2007 - 16:16:06 ---------------------------------------- ..proprio cosi', infatti basta cambiare la rappresentazione dell'enum in U32 e il tutto funziona! ---------------------------------------- AUTORE: 1137 DATA :16/10/2007 - 09:09:02 ---------------------------------------- ok, ci siamo quasi. Mancano i dettagli di basso livello. La soluzione, fornita dall'amico Paracarro, è nella versione aggiornata del vi che allego. Buona lettura e alla prossima! \":)\" ---------------------------------------- ================================================================================ come poter leggere la posizione del mouse ================================================================================ AUTORE: 335 DATA :17/10/2007 - 09:10:04 ---------------------------------------- Come da oggetto vorrei poter usare un mouse "ausiliario"per poter leggere i suoi movimenti mentre continuo ad usare il mio mouse principale per lavorare al pc. Se ad esempio riuscissi a visualizzare i dati X Y che entrano da un mouse su ps2, potrei lasciare il programma in funzione mentre io uso il mio mouse principale per lavorare-spero di essere stato chiaro- chi puo' aiutarmi?? ---------------------------------------- AUTORE: 838 DATA :17/10/2007 - 10:01:56 ---------------------------------------- bisognerebbe studiare il protocollo che usa il mouse seriale per catturare i suoi spostamenti, ma non e ho idea non penso che windows possa gestire più mouse, rischi di avere due mouse che spostano lo stesso puntatore ---------------------------------------- AUTORE: 335 DATA :17/10/2007 - 10:05:45 ---------------------------------------- continuo a sperare \":cry:\" ---------------------------------------- AUTORE: 1871 DATA :17/10/2007 - 10:21:46 ---------------------------------------- [quote="minzuk":3il7gnj3]non penso che windows possa gestire più mouse, rischi di avere due mouse che spostano lo stesso puntatore[/quote:3il7gnj3] Poter gestire più mouse è possibile, solo che i due in effetti muovono lo stesso puntatore. Sul mio portatile ad esempio posso benissimo utilizzare un mouse esterno mentre è abilitato il touchpad. Però, appunto, operano sullo stesso puntatore. ---------------------------------------- AUTORE: 645 DATA :17/10/2007 - 10:38:21 ---------------------------------------- Per la lettura delle coordinate del mouse dovrebbe esserci qualcosa sul sito della National (ricordo di aver visto un esempio ma non so il link esatto...). Però come dice Trombetta il puntatore è uno solo... ---------------------------------------- AUTORE: 335 DATA :17/10/2007 - 11:45:41 ---------------------------------------- [quote="Trombetta":1iuivc7k][quote="minzuk":1iuivc7k]non penso che windows possa gestire più mouse, rischi di avere due mouse che spostano lo stesso puntatore[/quote:1iuivc7k] Poter gestire più mouse è possibile, solo che i due in effetti muovono lo stesso puntatore. Sul mio portatile ad esempio posso benissimo utilizzare un mouse esterno mentre è abilitato il touchpad. Però, appunto, operano sullo stesso puntatore.[/quote:1iuivc7k] capisco ma magari c'e' possibilita di definire quale dei due LV andra' a leggere ---------------------------------------- AUTORE: 838 DATA :17/10/2007 - 15:18:35 ---------------------------------------- mi ripeto... per poter leggere un secondo mouse indipendente per me occorre interpretare il protocollo di comunicazione per il mouse seriale, ricevendo le coordinate e lo spostamento se hai un mouse seriale (non ps/2, ma seriale) lo sbatti su un pc e sniffa la seriale per vedere cosa passa altre soluzioni non ne vedo a meno che non usi 2 pc o un hardware particolare ---------------------------------------- AUTORE: 384 DATA :18/10/2007 - 08:17:38 ---------------------------------------- Una rapida ricerca in internet mi ha portato ai seguenti link sul protocollo del mouse (tra PS/2 e seriale cambia soltanto l'interfaccai fisica): http://www.mousetrak.com/rs232mousespec.htm http://www.computer-engineering.org/ps2protocol/ http://freedos-32.sourceforge.net/showd ... e=sermouse Ce ne sono molti altri link, ma credo che alla fine tutti abbiano pressochè le stesse informazioni.   ---------------------------------------- AUTORE: 2195 DATA :18/10/2007 - 09:16:09 ---------------------------------------- guarda se ti può essere utile questo ciao ---------------------------------------- AUTORE: 927 DATA :18/10/2007 - 10:24:23 ---------------------------------------- Anche l'help di labviù dice: Query Input Devices Obtains information about the devices connected to the computer. The operating system recognizes more than one mouse or keyboard but interprets them to be one virtual mouse/keyboard. LabVIEW cannot return the output for each device separately but returns only the sum of both outputs. Quindi, come detto sopra, l'unica è non passare per il sistema operativo, ma disattivare il secondo mouse tra le periferiche di sistema, e gestire a basso livello la comunicazione seriale ---------------------------------------- AUTORE: 335 DATA :18/10/2007 - 11:58:45 ---------------------------------------- grazie a tutti per le risposta ---------------------------------------- AUTORE: 43 DATA :18/10/2007 - 13:26:34 ---------------------------------------- seguendo le indicazione di [u:2heb7p75][b:2heb7p75]gyc[/b:2heb7p75][/u:2heb7p75] http://www.mousetrak.com/rs232mousespec.htm potresti collegare un vecchio mouse seriale ad una porta RS232 o "adattare" un mouse PS2 al connettore RS232 http://www.epanorama.net/documents/pc/m ... pters.html ...e il giuoco è fatto Ovviamente devi leggere con LabVIEW e interpretare i messaggi che il mouse ti invierà sulla porta seriale alla quale lo avrai collegato. Dovrai anche occuparti del disegno a video del cursore... auguri!! ---------------------------------------- AUTORE: 838 DATA :18/10/2007 - 16:30:11 ---------------------------------------- hai visto che ci ho preso? \":twisted:\" l'unica soluzione è quella, mouse seriale e ci parli direttamente con lw \":D\" ---------------------------------------- ================================================================================ estarpolare i dati da un immagine tiff ================================================================================ AUTORE: 1839 DATA :17/10/2007 - 21:19:55 ---------------------------------------- Salve ragazzi , sto cercando di realizzare un vi che mi permetta di estrapolare i dati relativi ai pixel di un'immagine tif 1024 x 768 e mi riporti la matrice delle informazioni in uno spreadsheet file di testo .txt . Il semplice vi che ho realizzato (e allegato), crea il file di testo, ma quest'ultimo risulta vuoto... C'è qualcuno che ha avuto gia' a che fare con qualcosa del genere?? inoltre, visto che il formato tiff è abbasta particolare avevo pensato di convertirlo prima in bitmap, ma non sono riuscito a farlo... ---------------------------------------- ================================================================================ lista porte com ================================================================================ AUTORE: 1313 DATA :18/10/2007 - 16:11:53 ---------------------------------------- Salve Ragazzi, ho visto che con il blocco "VISA Find Resource" è posso listare le porte com ed lpt del PC. Ora mi domandavo, se sia possibile mostrare anche il nome dei driver. Mi spiego io ho un convertitore USB-RS485 installo i driver e lo vedo come una porta com. Siccome l'utente deve scegliere la porta com corrisondente al convertitore, se io gli mostrassi il nome del driver potrei dirgli guarda il prolific è il convertitore e quindi la com giusta. Altrimenti, devo per forza crere un vi per testare le porte. Grazie in anticipo per la risposta, Cris ---------------------------------------- AUTORE: 838 DATA :18/10/2007 - 16:28:20 ---------------------------------------- come ti trovi con il convertitore usb? è quello della intracom? io ho sempre usato schede pci moxa... cque penso che ci sia la possibilità di vedere le caratteristiche della porta, ma non saprei come. forse andando nel registro, mah ---------------------------------------- AUTORE: 1313 DATA :18/10/2007 - 17:05:49 ---------------------------------------- Io uso quello della trycim: http://www.trycom.com.tw/TRP-C08.htm e mi trovo una favola, uso il protocollo modbus per interfacciarmi a gruppi di 6 pid. Per la seriale vabbe, faccio un altro po di ricerche. Cris ---------------------------------------- AUTORE: 43 DATA :19/10/2007 - 11:35:01 ---------------------------------------- Ciao Ti propongo una pseudo soluzione, non so se ti può andare bene [quote="crisVI":2x0c31ux]Salve Ragazzi, ho visto che con il blocco "VISA Find Resource" è posso listare le porte com ed lpt del PC. [/quote:2x0c31ux] Tu mi insegni che le risorse VISA sono di diverse tipologie (connessioni seriali, GPIB,VXI,PXI,FireWire, USB, ecc.) per cui per prima cosa si deve fare è filtrare le sole risorse seriali ASRL*::INSTR l'array di stringhe risultante deve autoindicizzare un ciclo FOR nel quale la ogni risorsa seriale dovrà essere aperta, da esse si otterrà la proprietà General settings -> resource name e poi verrà rilasciata con il VI di chiusura. Ora, ho notato che la descrizione del "resource name" coincide con la descrizione della risorsa che appare appunto nel "Gestione risorse" di Windows. Solitamente nella descrizione appare il nome della COM a cui la risorsa fa riferimento, per cui cercando all' interno delle stringhe con un "match pattern" con parametro "regular expression" = "COM[0-9]+" dovresti ottenere l'etichetta "COM" associata ad ogni seriale Analizzando altre parti della stringa potresti sapere se è prorpio la tua USB_2_Serial, se si stratta di una porta RS485 ecc. Facci sapere. ---------------------------------------- AUTORE: 384 DATA :20/10/2007 - 11:13:00 ---------------------------------------- Per quanto riguarda le schede PCI, ho rinunciato a marchi "buon mercato", tipo, appunto, moxxa e compagnia. Semplicemente o non vanno, o non vanno con alcuni strumenti, il fatto è che ho avuto un sacco di grane, oltre a qualche soldo e lavoro buttato via. Per scopi professionale uso soltanto materiale della [url=http://www.bb-europe.com/:3nwpnhii]B&B[/url:3nwpnhii]. Robusto, affidabile, senza problemi di installazione, li si mette in funzione e si dimenticano! Punto!!! Invece per i convertitori usb-seriale, non ho mai avuto difficoltà di nessun genere, e ho già provato diversi marchi. ---------------------------------------- AUTORE: 1313 DATA :22/10/2007 - 09:49:28 ---------------------------------------- Grazie per le risposte, alla fine ho trovato una soluzione che media le due cose. Nel sw listo le porte com attive, e poi creo un file batch e lo trasformo in exe che avvia il comando msinfo32 di windows, con l'opzione per visualizzare le specifiche delle componenti usb. Così l'utente visualizza quale porta com è quella corrispondente al convertitore \";-)\" . Cris ---------------------------------------- ================================================================================ Togliere la profondità ================================================================================ AUTORE: 2265 DATA :18/10/2007 - 17:52:06 ---------------------------------------- Ciao raga! Sono uno studente della 3 superiore, programmo in labview, o meglio sto imparando! Volevo sapere 1 cosa: si può togliere la profondità? vi mando una screen x farvi capire: [img:7ns3wnpg]http://img140.imageshack.us/img140/2580/immaginefq3.jpg[/img:7ns3wnpg] grazie raga \":D\" ---------------------------------------- AUTORE: 482 DATA :19/10/2007 - 07:14:10 ---------------------------------------- Se intendi l'effetto 3D dei controlli devi andare nella palette Classic e li trovi i controlli e gli indicatori senza l'effetto 3D \":wink:\" ---------------------------------------- AUTORE: 43 DATA :19/10/2007 - 11:50:36 ---------------------------------------- Volendo fare il Bastardo, puoi rendere la tua "cornicetta" completamente trasparente, invece di semi trasparente come di default. Fai così - Vai sul pannello dove devi effettuare la modifica -Premi Shift + tasto dx del mouse appare il pannello dei cursori - seleziona il pennello (HO DETTO il PENNELLO NON IL CONTAGOCCE!!) otterrai che il cursore del tuo mouse ha la foggia del pennello -ora clicca col tasto dx del mouse il bordo che vuoi rendere invisibile(il punto di click è la punta del pennello) poi rilascia il tasto dovresti ootenere il pannello dei colori. - premi una volta spazio oppure "f" ( sta per foreground color) -premi la "T" in alto a dx del pannello dei colori FATTO! - premi 1 volta spazio o 2 volte TAB x rimettere a posto il cursore bye ---------------------------------------- AUTORE: 2265 DATA :19/10/2007 - 17:50:03 ---------------------------------------- ok risolto!!! ragazzi una cosa...vi allego il VI devo fare in modo k qnd a.b.c sono tutti 0 mi visualizzi sul display <con i seguenti valori risulta 0> e che gli indicatori scompaiano..... chi sa farlo??? ---------------------------------------- AUTORE: 680 DATA :19/10/2007 - 19:41:56 ---------------------------------------- ecco qui: basta controllare se i controlli sono uguali a 0 e fare la funzione logica AND degli stessi.... ---------------------------------------- AUTORE: 680 DATA :19/10/2007 - 19:45:33 ---------------------------------------- oppure potresti andare a controllare il delta (d) quando assume valore infinito (NaN --> Not a Number)....... come stavi facendo... ---------------------------------------- AUTORE: 2265 DATA :19/10/2007 - 20:59:57 ---------------------------------------- mmm ma qll k nn voglio io è k compaia la scritta NaN qnd è ttt 0....voglio k succeda cm qnd è negativo k vanno via gli indicatori.... mmm \":?:\" ---------------------------------------- AUTORE: 2265 DATA :19/10/2007 - 21:56:42 ---------------------------------------- non riesco ad andare fuori...heeeelp \":cry:\" ---------------------------------------- AUTORE: 680 DATA :19/10/2007 - 22:46:14 ---------------------------------------- guarda l'immagine allegata nel post precedente...... ---------------------------------------- AUTORE: 2265 DATA :20/10/2007 - 06:53:25 ---------------------------------------- si ho visto ma così resta un punto scoperto....qll del <0 ---------------------------------------- AUTORE: 2265 DATA :20/10/2007 - 06:54:14 ---------------------------------------- qll del delta dico... uff nn so cm fARE \":|\" ---------------------------------------- AUTORE: 680 DATA :20/10/2007 - 18:03:32 ---------------------------------------- fai un OR tra delta < 0 e l'and dell'altra immagine.... ---------------------------------------- ================================================================================ Passaggio di STRINGHE in Matlab Script ================================================================================ AUTORE: 1598 DATA :19/10/2007 - 14:56:40 ---------------------------------------- Premetto che il mio problema è più legato all'uso di Matlab, ma non ho trovato un forum specifico efficiente quanto questo. Ho un "Matlab Script Node" e vorrei che, scrivendo in una stringa di controllo l'operazione matematica da svolgere, questa venga passata all'interno dello script node e venga usata da esso proprio come se la stringa fosse stata digitata direttamente dentro. Nel file che ho qui postato vorrei che venisse fatta la semplice somma di due numeri, con la modalità che ho appena spiegato. Grazie in anticipo x l'aiuto. ---------------------------------------- AUTORE: 1871 DATA :23/10/2007 - 09:48:57 ---------------------------------------- Nel caso che hai postato ovviamente basta eseguire il comando in labview e poi passarlo a matlab. Ma credo che tu voglia decidere a run-time il comando, e quindi non sempre si può fare così. Una procedura un po' farraginosa potrebbe essere quella di, a partire dalla stringa di comando, creare un m-file e richiamarlo poi nel matlab node (ovviamente il nome e path del file devono essere sempre gli stessi). Però forse in matlab esiste qualcosa che converte una stringa nel rispettivo comando.... questa sarebbe la soluzione migliore. ---------------------------------------- AUTORE: 1871 DATA :23/10/2007 - 16:31:00 ---------------------------------------- [quote="Trombetta":1cp4hx5k] Però forse in matlab esiste qualcosa che converte una stringa nel rispettivo comando.... questa sarebbe la soluzione migliore.[/quote:1cp4hx5k] Sì: il comando eval([i:1cp4hx5k]string[/i:1cp4hx5k]) converte la stringa [i:1cp4hx5k]string[/i:1cp4hx5k] nel rispettivo comando. Quindi da labview passi il comando che vuoi nella stringa (ad esempio la chiami st) e nel matlab node esegui il comando con eval(st). ---------------------------------------- AUTORE: 1598 DATA :25/10/2007 - 16:09:21 ---------------------------------------- Ottimo! Grazie Trombetta \":mrgreen:\" ---------------------------------------- ================================================================================ ACQUISIZIONE SU 4 ANALOG INPUT PXI 6132 ================================================================================ AUTORE: 2268 DATA :22/10/2007 - 09:01:05 ---------------------------------------- SALVE A TUTTI!!! \":D\" \":D\" \":D\" Per sottoporvi alla mia domanda devo fare una piccola descrizione di ciò che devo realizzare:Acquisire su 4 canali d’ingresso analogici.Ogni canale analogico in ingresso deve acquisire un segnale analogico in tensione proveniente da 2 array di fotodiodi collegati in serie, ciascuno composto da 128 fotodiodi, quindi un totale di 256 fotodiodi per canale che moltiplicato per i 4 canali (2 per ogni canale) vede un totale di 1028 fotodiodi. Premesso che tali array di fotodiodi sono forniti di relativi circuiti driver che provvedono al loro pilotaggio ed all’elaborazione dei dati, ciascun fotodiodo fornisce un valore in tensione (una parola) in relazione all’eccitamento che riceve: qual è l’ordine sequenziale di lettura e quindi di visualizzazione di tali valori? Fin'ora ho acquisito su un solo canale e visualizzavo i 256 campioni in modo sequanziale, e lì finiva la cosa. Ad esempio, supponendo di indicare con A e B i due array di fotodiodi connessi al canale ai0, con C e D i due connessi al canale ai1, E ed F quelli connessi al canale ai2 ed infine con G e H quelli connessi al canale ai3: come sarà l’ordine sequenziale di lettura? In altre parole la sequenza d lettura potrebbe essere ad esempio del tipo: valore (parola) del primo fotodiodo della coppia connessa ad ai0, valore del primo fotodiodo della coppia connessa ad ai1, valore del primo fotodiodo della coppia connessa ad ai2, valore del primo fotodiodo della coppia connessa ad ai3 per poi passare al secondo di ai0, secondo ai1 etc etc? è così oppure la sequenza di lettura è diversa? scusatemi se la domanda è un po lunga \":!:\" \":!:\" \":!:\" Spero di ricevere molte risposte \":!:\" \":!:\" \":!:\" A presto...saluti \":D\" ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 08:39:58 ---------------------------------------- Il modo in cui acquisisci dei dati, viene dettato soltanto dal funzionamento interno del'hardware - che non conosciamo. Dalla tua descrizione, mi sembra che ti convenga acquisire tutti i dati dei 2 array, canale per canale, ma, ripeto, a seconda del funzionamento del tuo sistema magari potresti anche acquisire i 4 canali alla volta, fotodiodo per fotodiodo. Magari non ho compreso il tuo problema, ma mi sembra che le tue scelta siano "limitate" dall'hardware. Ache perchè, se anche potessi acquisire questi fotodiodi in modo molto "strano" - per esempio a diagonali incrocciate, tanto per dire - una volta che hai i dati puoi riorganizzarli come vuoi e nel modo più adeguato alle tue elaborazioni - si tratta soltanto di manipolarli - quindi la scelta non è determinata dal software.   ---------------------------------------- AUTORE: 2268 DATA :23/10/2007 - 12:24:32 ---------------------------------------- Intanto grazie per la risposta!!!! Io volevo proprio capire in che modo l'hardware mi da i valori acquisiti, cioè vengono letti prima i due array di ai0 poi glia altri due di ai1 etc oppure vengono letti in modo diverso? Poi mi hai detto che posso manipolarli....qualche idea? considera che a me serve avere i valori dei vari fotodiodi in ordine.... Vabbe per ora mi fermo qui..nn voglio mettere troppa carene al fuoco!! saluti e grazie ancora!! ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 12:39:11 ---------------------------------------- [quote="New Project":2sef919y]Intanto grazie per la risposta!!!! Io volevo proprio capire in che modo l'hardware mi da i valori acquisiti, cioè vengono letti prima i due array di ai0 poi glia altri due di ai1 etc oppure vengono letti in modo diverso? [/quote:2sef919y] Mi stai chiedendo informazioni (o opinioni) che non posso dare perchè non conosco il tuo hw, non posso saperlo. Avrai sicuramente della documentazione che ti dirà come vengono generati i dati. [quote="New Project":2sef919y]Poi mi hai detto che posso manipolarli....qualche idea? considera che a me serve avere i valori dei vari fotodiodi in ordine.... Vabbe per ora mi fermo qui..nn voglio mettere troppa carene al fuoco!! saluti e grazie ancora!![/quote:2sef919y] Pensa solo - e come banale esempio - alla trasposizione di una matrice. In realtà potresti dover fare delle cose semplici (decalare di 1) oppure più complesse (dati interlacciati) ma non credo dipenda interamente date. ---------------------------------------- AUTORE: 2268 DATA :23/10/2007 - 12:55:28 ---------------------------------------- hai ragione!!! io utilizzo un sitema pxi 8187 con scheda daq pxi 6132 s a campionamneto simultaneo....se questo ti puo essere d'aiuto per indicarmi come capire....poi: sapendo che dovro acquisire su 4 canali differenti devo pensare a 4 task distinti e separati? come faccio a capire praticamente sulla strumentazione come sto acquisendo i dati dagli array? ciao...!!!! ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 13:25:48 ---------------------------------------- Non ho capito una cosa: hai un sistema che già lavora e devi analizzarlo oppure devi realizzare il sistema che acquisirà dai fotodiodi? ---------------------------------------- AUTORE: 2268 DATA :24/10/2007 - 12:13:07 ---------------------------------------- Ho gia realizzato una parte del sistema che acquisisce su un unico canale analogico i dati provenienti da due array di fotodiodi. adesso il sistema si complica nel senso che si aggiungono altre 3 coppie di array ognuna delle quai verra collegata ad un ulteriore input analogico. Ti posto il diagramma a blocchi di cio che ho fatto magari riesci a darmi consigli piu pratici da seguire....a presto!! ---------------------------------------- AUTORE: 2268 DATA :24/10/2007 - 12:16:09 ---------------------------------------- ah dimenticavo.....su cio che ho fatto ho ancora un dubbio: noterai che c'è il vi "triggering" che dovrebbe (secondo la mia esigenza) triggerare l'acquisizione analogica sul fronte di un segnale di tipo ttl che collego al relativo terminale......secondo te funziona????? In generale che te ne sembra del vi? è bello parlare di queste cose con altri utenti piu esperti...è il massimo x me!!! grazie e alla prox!!! \":wink:\" ---------------------------------------- AUTORE: 384 DATA :24/10/2007 - 13:41:09 ---------------------------------------- [quote="New Project":2rkskkip]ah dimenticavo.....su cio che ho fatto ho ancora un dubbio: noterai che c'è il vi "triggering" che dovrebbe (secondo la mia esigenza) triggerare l'acquisizione analogica sul fronte di un segnale di tipo ttl che collego al relativo terminale......secondo te funziona????? [/quote:2rkskkip] In line di principio è proprio a questo che serve. Ripeto, dipende da come gli array di fotodiodi "buttano fuori" i dati. [quote="New Project":2rkskkip]In generale che te ne sembra del vi? è bello parlare di queste cose con altri utenti piu esperti...è il massimo x me!!! grazie e alla prox!!! \":wink:\"[/quote:2rkskkip] Alcune cose vanno cambiate. Il ciclo iniziale di attesa, da dove si esce quando clicchi su start deve in realtà essere vuoto, altrimenti continui ad eseguire ripetutamente gli stessi blocchi - tra l'altro alla massima velocità possibile, perchè non ci hai messo una pausa. Il un loop di attesa va sempre messo il blocco con la figura del metronomo. Nella parte di aquisizione, lo start task e il end task non devono essere all'interno del loop. Poi, secondo me, i loop non servono nemmeno, nè il FOR nè il WHILE. Il task di acquisizione, a fronte del trigger, può acquisire TUTTI i dati in uscita dai fotodiodi in un colpo solo. Se i trigger dei vari array di fotodiodi si possono sincronizzare, allora puoi anche definire un task di acquisizione con tutti i 4 canali e che a fronte del trigger acquisisce TUTTI i dati in uscita dei 4 array in un colpo solo. Cerca nel help in linea e anche in nel [url=http://ni.com:2rkskkip]sito della N.I.[/url:2rkskkip] più informazione su come usare i blocchi DAQmx. Non è una cosa che ti possa descrivere in poche righe. ---------------------------------------- AUTORE: 2268 DATA :26/10/2007 - 08:38:18 ---------------------------------------- per ciclo iniziale di attesa vuoto intendi dire che devo spostare i blocchi fuori dal ciclo e lasciare dentro solo il "create control" degli stessi blocchi? poi non ho ben capito cosa intendi dire con: [i:2pg8qwy2] Se i trigger dei vari array di fotodiodi si possono sincronizzare, allora puoi anche definire un task di acquisizione con tutti i 4 canali e che a fronte del trigger acquisisce TUTTI i dati in uscita dei 4 array in un colpo solo[/i:2pg8qwy2]..poi volevo chiederti, visto che io ho effettuato delle acquisizione con questo VI, posso ritenerle valide in linea di massima oppure queste modifiche suggerite (che farò) pregiudicano in qualche modo i risultati ottenuti? cari saluti..... ---------------------------------------- AUTORE: 384 DATA :26/10/2007 - 09:18:10 ---------------------------------------- [quote="New Project":216h0hj3]per ciclo iniziale di attesa vuoto intendi dire che devo spostare i blocchi fuori dal ciclo e lasciare dentro solo il "create control" degli stessi blocchi? [/quote:216h0hj3] Devi spostare TUTTo fuori; rimane solo il timer e il pulsante di start. Al limite, per garantire il flusso, lasci i controlli "prima" del loop e fai passare il relativo "filo" attraverso il loop. [quote="New Project":216h0hj3]poi non ho ben capito cosa intendi dire con: [i:216h0hj3] Se i trigger dei vari array di fotodiodi si possono sincronizzare, allora puoi anche definire un task di acquisizione con tutti i 4 canali e che a fronte del trigger acquisisce TUTTI i dati in uscita dei 4 array in un colpo solo[/i:216h0hj3].. [/quote:216h0hj3] Volevo dire che se i 4 array di fotodiodi sono indipendenti, avrai 4 segnali di trigger diversi. Dovrai collegarili ad altretanti ingressi di trigger della scheda che dovrà reaggire indipendentemente a ciascuno di loro. Nel software, questo si traduce nel avere 4 task di acquisizione diversi. Invece se i 4 array si possono in qualche modo sincronizzare, allora avrai un solo segnale di trigger e quindi puoi acquisire i 4 canali al contempo. Nel software avrai un solo task di acquisizione. [quote="New Project":216h0hj3]poi volevo chiederti, visto che io ho effettuato delle acquisizione con questo VI, posso ritenerle valide in linea di massima oppure queste modifiche suggerite (che farò) pregiudicano in qualche modo i risultati ottenuti? [/quote:216h0hj3] Non c'è una risposta definitiva a questa domanda. Se quello che hai fatto è corretto dal punto di vista di acquisizione dei dati - pure essendo inefficiente dal punto di vista computazionale e incorreto dal punto di vista del linguaggio di programmazione - allora i dati restano validi. Ma questa valutazione non posso farla io, che - ripeto - non conosco il sistema, il funzionamento, il tipo di dati, il significato fisico e tantomeno l'obiettivo. ---------------------------------------- AUTORE: 2268 DATA :26/10/2007 - 14:59:45 ---------------------------------------- è sicuro che ho 4 segnali di trigger, perchè ogni array è connesso ad un altro circuito il quale invia un segnale di tipo ttl che funge da trigger ed un altro segnale sempre di tipo ttl che funge da reference trigger. Quindi seguendo i tuoi consigli mi oriento sui 4 task......ma poi volendo avere un'unica visualizzazione cosa mi consigli di fare? ---------------------------------------- AUTORE: 384 DATA :26/10/2007 - 15:39:07 ---------------------------------------- [quote="New Project":1zifxve7] ma poi volendo avere un'unica visualizzazione cosa mi consigli di fare? [/quote:1zifxve7] Una volta che ogni task ha finito di acquisire il rispettivo array, componi tutto in un array 2D o in un "bundle" e metti tutto nello stesso Graph. Su come graficare "multiple" funzioni sui graph, vai negli esempi di LabView cerca "graph" e guarda l'esempio "Waveform Graph.vi".   ---------------------------------------- AUTORE: 2268 DATA :27/10/2007 - 09:45:22 ---------------------------------------- [quote="gyc":3tyyxh55]Poi, secondo me, i loop non servono nemmeno, nè il FOR nè il WHILE. [/quote:3tyyxh55]. Intendi dire il while loop piu esterno? Per qanto riguarda il Ciclo For io l'ho inserito perchè voglio essere in grado di scegliere quanti cicli di acquisizione eseguire....è sbagliato? ---------------------------------------- AUTORE: 2268 DATA :27/10/2007 - 13:42:08 ---------------------------------------- [quote="gyc":2a3jt56m]Poi, secondo me, i loop non servono nemmeno, nè il FOR nè il WHILE.[/quote:2a3jt56m] In realtà pensavo che mi servisse anche il while loop piu esterno, in quanto finiti i cicli di acquisizione impostati tramite il For Loop potevo riacquisire ancora il numero di cicli impostati...nn pensi? Io sarei felicissimo di ottimizzare il tutto però vorrei sapere anche come fare...ho fatto le modifiche che mi hai dettato, ora vorrei sapere come fare con i loop. ciao e grazie per quanto mi hai detto fin'ora!! ---------------------------------------- AUTORE: 384 DATA :29/10/2007 - 22:02:18 ---------------------------------------- Ora non ho la possibilità di guardare il tuo vi, ma credo di ricordare che mi riferivo al ciclo FOR che a sua volta contiene un ulteriore WHILE. Se il ciclo FOR è solo dettato da un certo numero di acquisizioni, va bene. Non mi era sembrato così, ma posso solo fare affidamento su quanto mi dici. Il WHILE esterno, ovviamente serve, per mantenere "viva" l'applicazione. Era quello interno al FOR che mi è sembrato non utile, in quanto prendi 1 campione alla volta. Dovrebbe essere il task DAQmx a acquisire l'array di dati di un colpo solo, una volta ricevuto il trigger. ---------------------------------------- AUTORE: 2268 DATA :04/11/2007 - 08:47:27 ---------------------------------------- Ciao!!! Ho effettuato le correzzioni suggeritemi e sembra che il tutto sia ottimizzato. Ora avrei un'altra cosa importante da fare: l'acquisizione del canale analogico è triggerata mediante il blocco "triggering di daqmx" da un segnale di tipo ttl che io ricevo dall'esterno sul PFI0, vorrei poter aggiungere un led che rilevi il trigger...come posso fare? Ho visto gli esempi ma non ne ho trovato nessuno che utilizzi il blocco triggering... Grazie per quanto mi hai suggerito fino ad ora!!! Cari Saluti. ---------------------------------------- AUTORE: 384 DATA :05/11/2007 - 10:35:00 ---------------------------------------- Il segnale di trigger rimane nascosto all'interno della scheda. Non ricordo se esista una funzione per andare anche a estrarlo via software - ma non credo. Solitamente è abbastanza inutile visualizza un segnale di trigger. Basta che esso sia più veloce di 10-15 Hz e giá lo si vede permanentemente acceso! Comunque, per visualizzarlo, devi farlo entrare anche da un altro ingresso digitale collegandolo in parallelo. Poi devi leggerlo. Puoi farlo con un while separato che interroga la scheda costantemente (polling) oppure, se la scheda lo supporta, puoi usare il modo interrupt, in cui la scheda rileva la transizione e fa scattare la funzione che rileva il valore per poi elaborarlo. Come sempre, per partire cerca negli esempi di Labview. ---------------------------------------- AUTORE: 2268 DATA :07/11/2007 - 13:29:17 ---------------------------------------- Sinceramente non ho capito molto cosa vogliano significare "Polling" ed "Interrupt". Potresti darmi delle spiegazioni piu semplici da capire per uno come me che non è un'esperto? o anche dei link dove è spiegato il significato delle due cose? grazie....e cari saluti!!! ---------------------------------------- AUTORE: 384 DATA :08/11/2007 - 18:37:28 ---------------------------------------- La spiegazione è già in quel paragrafo. Vediamo se riesco un pò meglio. Polling É un modo di rilevazione (di un qualunque evento) che si ottiene andando esplicitamente e regolarmente ad osservare un suo indicatore. In termini di ingressi digitali, significa che il programmatore deve scrivere una funzione che va a leggere regolarmente un certo ingresso e cosí si accorge che il relativo stato è cambiato da vero a falso oppure da falso a vero. Il concetto si può estendere anche agli ingressi analogici; in quel caso non si parla dello "stato" ma del valore della grandezza acquisita. Interrupt É un modo di rilevazione (di un qualunque evento) in cui l'osservazione viene deputata all'hardware. Esso, all'occorrenza dell'evento, fa scattare una funzione che andrà a reaggire a detto evento. Quella funzione chiaramente è scritta dal programmatore. Il vantaggio è che il processore non è occupato a far girare un pezzo di codice che osserva; in realtà può anche essere fermo, se non c'è altro da eseguire. Solo al momento in cui scatta l'evento il processore viene "svegliato" per fare girare la funzione che è stata scritta e predisposta per "asservire" l'evento stesso. Altro vantaggio è chè può rilevare eventi molto più "veloci", ad esempio impulsi molto stretti che invece potrebbero avere il tempo di comparire e scomparire fra due tornate successive di "osservazione". Lo svantaggio è che complica un pò l'hardware e quindi alza i costi. Dal punto di vista del software, nei linguaggi ad alto livello (tipo labview) la cosa è abbastanza trasparente, mentre il codice di basso livello (il driver, per intenderci) si complica anch'esso.   ---------------------------------------- ================================================================================ Apertura VI predefinito al lancio di Labview ================================================================================ AUTORE: 2269 DATA :22/10/2007 - 13:10:27 ---------------------------------------- \":?:\" Salve. Domanda apparentemente banale: "E' possibile impostare un VI che venga automaticamente aperto al lancio del Labview" ? La versione in mio possesso è la 7.1. Grazie ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 08:24:24 ---------------------------------------- [quote="pdipaolo":2fwzdoq9]:?: Salve. Domanda apparentemente banale: "E' possibile impostare un VI che venga automaticamente aperto al lancio del Labview" ? La versione in mio possesso è la 7.1. Grazie[/quote:2fwzdoq9] Detto così, che io sappia no. Però non vedo il problema e forse non ha neanche molto senso. Perchè devi aprire LabView prima? Apri direttamente il vi che vuoi!... Quando io devo "costringere" l'utente ad aprire un vi, tolgo il link diretto a LabView e piazzo nel bel mezzo del desktop il link a quel VI.   ---------------------------------------- AUTORE: 2269 DATA :23/10/2007 - 10:43:01 ---------------------------------------- D'accordo. E se il VI fosse membro di una libreria LLB? In effetti il SO non mi consente a tal fine di creare un collegamento ma soltanto una copia fisica sul desktop... Che fare? Tanks. ---------------------------------------- AUTORE: 927 DATA :23/10/2007 - 10:51:25 ---------------------------------------- Soluzione grezza: crea un miniVI che non fa altro che chiamare il VI "vero", poi crea un collegamento al miniVI... ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 12:42:49 ---------------------------------------- [quote="pdipaolo":34qle23o]D'accordo. E se il VI fosse membro di una libreria LLB? [/quote:34qle23o] Si può definire il "top level" vi di una LLB, così quando la apri si apre quel vi. [quote="pdipaolo":34qle23o]In effetti il SO non mi consente a tal fine di creare un collegamento ma soltanto una copia fisica sul desktop... Che fare? Tanks.[/quote:34qle23o] Questa mi sfugge! Winzozz non ti consente di creare un collegamento sul desktop????? \":o\" ---------------------------------------- ================================================================================ Network Functions (avg).vi ================================================================================ AUTORE: 1871 DATA :22/10/2007 - 15:16:06 ---------------------------------------- Sapete dove si trova? ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 08:55:58 ---------------------------------------- Palette Analyse\Signal Processing\Frequency Domain   ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 08:56:55 ---------------------------------------- [quote:2vvfehe1] Palette Analyse\Signal Processing\Frequency Domain [/quote:2vvfehe1] Ultima riga, seconda da destra...   ---------------------------------------- AUTORE: 1871 DATA :23/10/2007 - 09:26:57 ---------------------------------------- uhmm.... sto usando la 8.2 (demo) l'unica cosa "simile" a quella che dici è la palette Signal Processing\Spectral Analisys, ma qui non lo trovo. Ho provato anche con la funzione seach ma non c'è niente. Non è che mi manca qualcosa? ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 09:42:29 ---------------------------------------- Alllora, auguri..... ---------------------------------------- AUTORE: 1871 DATA :23/10/2007 - 14:10:16 ---------------------------------------- ok..... trovato \":!:\" A nessuno importerà granchè...ma si trova nella libreria 0measdsp.llb ---------------------------------------- AUTORE: 384 DATA :23/10/2007 - 16:53:57 ---------------------------------------- Qualche tempo fa ho avuto anch'io delle grane con un "porting" da 7.1 a 8.2. Il mio software si è caricato ed eseguito senza alcun segno di problema. Ripeto NESSUN problema. Peccato che, alle verifiche, i risultati delle elaborazioni fossero sbagliati. C'ho impiegato diverso tempo (più di 01h30!!!) a scoprire che la funzione "WDT Get Waveform Subset.vi" veniva incapsulata per diversi livelli e cambiava comportamento nel calcolo dei valori di uscita "actual start" e "actual duration" e che - guarda caso - mi scombussolavano tutto il calcolo susseguente. ---------------------------------------- ================================================================================ problema dati tipo stringa con excel ================================================================================ AUTORE: 1898 DATA :22/10/2007 - 21:37:38 ---------------------------------------- il mio obbiettivo è quello di far memorizzare delle stringhe in un file excel. ho provato ad usare il VI "write to spreadsheet file" ma non riesco a dargli in pasto delle stringhe! ho provato anche a creare un file excel tramite il VI "write to text file" salvando con estensione .xls dato che con questo mi accetta le stringhe, ma qui il problema è che tutte le volte che genera il file mi cancella il contenuto del file precedente(dato che ha lo stesso nome) questo problema usando il VI precedente non c'è perchè gli si può dire di non cancellare il contenuto (ho provato con dei dati di tipo numerico e funziona alla grande!) chiedo scusa se il tema fosse già stato trattato, ma facendo diverse ricerche nel forum ho trovato tante discussioni riguardo all'esportazione di dati in excel, ma non ho trovato la risposta al mio problema... PS: uso Labview versione 8 grazie! ---------------------------------------- AUTORE: 645 DATA :22/10/2007 - 23:09:02 ---------------------------------------- Hai dato un'occhiata agli esempi di LabView (directory Examples) e sul sito della National ( www.ni.com ) cercando "write to spreadsheet file" ? ---------------------------------------- AUTORE: 927 DATA :23/10/2007 - 10:48:57 ---------------------------------------- Nella 8.2 la "write to spreadsheet file" accetta anche le stringhe. Prova a passargli %s come formato. Altrimenti, per scrivere in fondo a un file, devi usare in sequenza i blocchi Open file, Set file position, Write to text file, Close file (analoghi ai classici fopen, fseek... del C). Io ricordo che nella versione 7 c'era la possibilità di scrivere in fondo al file anche col solo blocco Write... perchè l'abbiano tolto è un mistero ---------------------------------------- AUTORE: 1898 DATA :23/10/2007 - 11:23:48 ---------------------------------------- cercando anche sul sito national(ammetto di non averlo fatto prima, chiedo scusa) ho trovato esempi per scrivere stringhe, ma tutti usano...diciamo dei trucchetti, insomma non usano mai direttamente il VI "write to spreadsheet file". io pensavo che invece, magari con qualche conversione od impostazione particolare, si potesse fare... bhè, l'importante è saperlo così non mi scervello più per niente... se poi come dice l'utente "Snamprogetti" che dalla 8.2 accetta anche le stringhe trovo conferma di quanto detto sopra. PS: ho provato come hai suggerito a inserire %s in format, ma non funziona. da quello che mi sembra di capire dall'help in linea, i vari parametri di format servono per l'uscita e non l'ingresso del VI...ma non vorrei aver detto stupidate... grazie ---------------------------------------- ================================================================================ Grafico che si disegna da solo ================================================================================ AUTORE: 482 DATA :23/10/2007 - 09:33:46 ---------------------------------------- ...ma ciao! Non so in che termini porre sta domanda... Ho un VI che gestisce un acquisizione e disegna un grafico solo se il pulsante di avvio è premuto. Il pulsante non lo premo e quindi il grafico non viene trattato eppure mi disegna uno zero continuo. Vi allego il vi. Mandatelo in run continuo e ditemi se capite cos'e' che mi fa disegnare lo 0 sul grafio perchè proprio io non lo capisco.... \":roll:\" ---------------------------------------- AUTORE: 482 DATA :23/10/2007 - 09:49:06 ---------------------------------------- allego anche il subVI, che non serve a niente a livello funzionae, gestisce solo l'interfaccia grafica. ---------------------------------------- AUTORE: 1871 DATA :23/10/2007 - 10:55:41 ---------------------------------------- Bisogna resettare la history del waveform chart. Lo si fa con un property node. Ti allego il VI corretto, vedi nel block diagram sotto AVVIA. Dovrebbe funzionare. ---------------------------------------- AUTORE: 482 DATA :23/10/2007 - 10:57:37 ---------------------------------------- ehm no aspetta...lo so che se resetto la history mi si cancella. Ma questo è un subvi che dovrebbe mandarmi in uscita un grafico. Tale grafico pero' dovrebbe essere vuoto visto che non vado a scrivergli niente.... ---------------------------------------- AUTORE: 1871 DATA :23/10/2007 - 11:03:26 ---------------------------------------- allora il reset lo fai all'uscita dal subVI.... ---------------------------------------- AUTORE: 482 DATA :23/10/2007 - 11:18:07 ---------------------------------------- ANche questa non va bene... io ho bisogno di non resettarlo. Quello che non capisco è come mai prenda degli zero. ---------------------------------------- AUTORE: 482 DATA :23/10/2007 - 11:26:40 ---------------------------------------- Mi spiego meglio. Il subVI in questione inizialmente era un ciclo infinito. Questo subVI dovrà essere rientrante per essere eseguito TOT volte contemporaneamente. Non sapendo come afre per passare al main il grafico delle diverse istanze del subVI, sto vedendo di farlo passare come terminale facendo in modo ch enon sia piu' in un ciclo ma singole esecuzioni consecutive. Per questo non devo resettare nulla a inizio e fine dell'esecuzione. Quello ch enon torna è sempre quello 0 maledetto! ---------------------------------------- AUTORE: 724 DATA :23/10/2007 - 12:22:45 ---------------------------------------- Non saprei cosa dire. Oltrteutto provando a duplicare il frafico sul panello e richiamandolo nello stesso modo dell'originale sul diagramma il duplicato funziona correttamente rimane fermo). Provo con un mass compile! ---------------------------------------- AUTORE: 482 DATA :23/10/2007 - 13:01:41 ---------------------------------------- esatto, ho fatto la stessa cosa! Ho duplicato il grafico e il duplicato funziona correttamente. La soluzione è stata per il momento eliminare l'originale. Pero' è curiosa come cosa no? ---------------------------------------- AUTORE: 482 DATA :23/10/2007 - 13:13:26 ---------------------------------------- NON E' ANCORA FINITA!!! Il problema sta in qualche modo nel terminale del subVI! Se collego il grafico a un terminale in uscita dal subVI l'errore mi si ripresenta, s elo scollego, sparisce!! \":?:\" \":?:\" \":?:\" \":?:\" \":?:\" ---------------------------------------- AUTORE: 482 DATA :23/10/2007 - 13:38:58 ---------------------------------------- Confermato, ho ridotto all'osso il subvi, ho rimpiazzato il grafico con uno nuovo e il problema persiste. Se si collega il grafico ad un terminle di uscita si presenta il problema...adesso chiamo in national a sentire cosa mi dicono. ---------------------------------------- AUTORE: 482 DATA :24/10/2007 - 09:29:58 ---------------------------------------- Occhei...COMPORTAMENTO CORRETTO. Particamente collegando un terminale, automaticamente si fa in modo che quel dato sia SEMPRE disponibile in uscita e quindi viene generato anche in caso di non utilizzo dell'indicatore, un valore di default. ---------------------------------------- AUTORE: 1871 DATA :24/10/2007 - 09:35:11 ---------------------------------------- E quindi, come nel tuo caso, per non avere quel valore di default bisogna clonare il terminale e cancellare il primo? E' comunque un comportamento poco ortodosso.... sarebbe meglio introdurre un flag col quale si possa decidere se il terminale deve fornire il valore oppure no? ---------------------------------------- AUTORE: 482 DATA :24/10/2007 - 09:45:00 ---------------------------------------- No, anche clonando il terminale in ogni caso un valore deve uscire. Probabilmente sincronizzando i due VI il problema viene meno, ma se i due non sono sincronizzati, per ogni esecuzione viene generato un valore. Sarebbe buona cosa se tenesse l'ultimo valore disponibile. Invece crea un valore di default... ---------------------------------------- AUTORE: 43 DATA :24/10/2007 - 11:08:44 ---------------------------------------- Ho provato a cancellare Tutto il contenuto del tuo VI originale. Quindi nel diagramma ho solo l'icona del grafico senza collegamenti. con "RUn continuosly" si vede che il chart viene "alimentato", quindi il problema persiste!!! Poi ho creato un nuovo vi ed ho semplicemente trascinato il grafico da Front panel a front Panel: risultato il grafico non si muove. Allora ho pensato che questo baco fosse legato al connubio "GRaph chart"- "VI rientrante" ma salvando una copia non rientrante del VI il problema persiste. Non so perchè hai fatto un VI di interfaccia rientrante (te lo sconsiglio) ma soprattutto non so xchè ti ostini ad usare quella STRAMER*A di chart quando con poca fatica ti gestisci il grafico come vuoi tu... Io ho sempre avuto problemi (di scalatura asse X prevalentemente) con i chart, sin dalla versione LabVIEW 3.1. Ho sempre tentato di usarli ad ogni cambio di versione ma mi hanno sempre deluso. questa è l'ennesima conferma abbasso i chart viva gli XYGraph ---------------------------------------- AUTORE: 482 DATA :24/10/2007 - 12:39:09 ---------------------------------------- non condivido per nienet al tua teoria... ho sempre scalato gli ssi correttamente con i chart. Hai idea di quanto occupi di piu' un xy graph che deve ogni singola volta riaggiornare tutto l'intero grafico? Detto questo, come ho già scrittosopra, il problema è dato dal collegamento al terminale in uscita. Se lo fai con un XY graph otterrai lo stesso risultato. Il subVI grafico rientrante mi serve perchè ho un main che lancia X volte una stessa applicazione per gestire X dispositivi uguali. Nei singoli subVI cisaranno le impostazioni dei singoli dispositivi, nel main solo igrafici che mostrano i risultati di tutti i dispositivi in funzione. ---------------------------------------- AUTORE: 43 DATA :24/10/2007 - 14:52:40 ---------------------------------------- [quote="gepponline":3ltdgilu]non condivido per nienet al tua teoria... ho sempre scalato gli ssi correttamente con i chart.[/quote:3ltdgilu] Forse sarebbe meglio dire la mia pratica... [quote="gepponline":3ltdgilu]Hai idea di quanto occupi di piu' un xy graph che deve ogni singola volta riaggiornare tutto l'intero grafico? [/quote:3ltdgilu] Certo... Se il tuo asse X è l'asse dei tempi e i tuoi campioni sono tutti "equidistanti" su questo asse, allora potresti usare un 'Waveform Graph' e non un 'XYGraph' Solitamente, uso uno shift register inizializzato con un array\ matrice che contiene il massimo numero di campioni che voglio tenermi in Ram. Lo uso come buffer circolare. Per ottenere buone prestazioni di aggiornamento a video uso la solita proprietà "DeferPanelUpdate", è una mano santa.... Non mi pare cmq che un chart con Autoscale sull'asse X sia il massimo della performance... Anche perchè visualizzando contemporaneamente 16000 (dimensione dell'"history buffer")valori x 3 tracce molti punti sarebbero sovrapposti.. Mai sentito parlare di decimazione? [quote="gepponline":3ltdgilu]Detto questo, come ho già scrittosopra, il problema è dato dal collegamento al terminale in uscita. [/quote:3ltdgilu] Non ho detto che è un tuo errore. E' un baco Nazional... [quote="gepponline":3ltdgilu]Se lo fai con un XY graph otterrai lo stesso risultato. [/quote:3ltdgilu] Ma dai.... E' ovvio che con un XY graph non avresti questi problemi.... [quote="gepponline":3ltdgilu] Il subVI grafico rientrante mi serve perchè ho un main che lancia X volte una stessa applicazione per gestire X dispositivi uguali. Nei singoli subVI cisaranno le impostazioni dei singoli dispositivi, nel main solo igrafici che mostrano i risultati di tutti i dispositivi in funzione.[/quote:3ltdgilu] OK io non avrei usato i VI rientranti. tutto qua. Per interagire costringerei l'operatore ad usare un pannello solo e ci caricherei dentro i dati che mi servono di volta in volta. E sono certo che funzionerebbe.... Dato che devi monitorare grandezze "lente" come le temperature. bye ---------------------------------------- AUTORE: 482 DATA :25/10/2007 - 07:50:41 ---------------------------------------- Vabbhè, ognuno segue le sue strade. Credo tu abbia ragione sul fatto del XY graph che forse non avrebbe lo stesso problema, fatto sta che non voglio inizializzare un array perchè non posso sapere a priori quanti saranno i campionamenti. La prova potrebbe durare dai 20 minuti alle 6 ore. Defer Panle Update cosa fa? non l'ho mai usata \":?:\" La questione dei VI rientranti è che il progetto è partito con un solo dispositivo. Ora mi è stato chiesto di fare un software che possa gestire X dispositivi. visto che la gestione di questo dispositivo non è composta solo da monitoraggio di termocoppie ma dalla generazione di una rampa tramite dei PID, e gli X dispositivi non andranno fatti partire in contemporanea ma quando capita, la soluzione piu' immediata a cui avevo pensato è quella di prendere il vi che ho già funzionante e renderlo semplicemente rientrante in modo che ogni dispositivo sia autonomo e indipendente. Comunque se hai idee migliori ben vengano \":wink:\" ---------------------------------------- AUTORE: 645 DATA :25/10/2007 - 08:50:33 ---------------------------------------- Mi fate un riassunto? Cioè, Geppo tu stai cercando di usare un SubVI che disegna un grafico e il problema è che butta fuori valori anche quando non dovrebbe buttare fuori nulla? E in National hanno detto che è normale perchè c'è sempre un valore di default? Ma non è possibile eliminare questo default? Magari qualche opzione strana... Scusate ma siccome non ho seguito la discussione dall'inizio e l'ho letta tutta insieme mi sono un po' perso... Per quanto riguarda i discorsi sulle performance dei vari grafici potremmo aprire una chiacchierata: io non mi sono mai posto il problema di quale grafico scegliere in base alle prestazioni ma sempre e solo in base a quello che devo fare, a come devono essere visualizzati i dati, se tutti insieme o un po' alla volta, come XY o solo come Y... Sbaglio? Se mi indicate qualche link mi documento... ---------------------------------------- AUTORE: 482 DATA :25/10/2007 - 09:11:55 ---------------------------------------- Per quanto riguarda i grafici faccio lo stesso discorso solitamente. Detto questo... Il problema è esattamente come hai detto tu. Questo DEFAULT viene generato SOLO se il grafico lo si collega in uscita ad un terminale del VI. E' un comportamento che non mi piace pero' questa è stata la spiegazione. In pratica io ho stabilito che il subVI debba avere un uscita sempre e comunque. DI conseguenza se il ciclo main viene eseguito due volte, anche se il subVI lo chiamo una volta sola, lui avrà due dati. quindi quando eseguo il main la terza volta chiamando il subvi avro' il dato 1, il default e il dato 2. La sintesi di tutto questo discorso è nel vi che allego. Se lo mandi in run continuo senza premere il pulsante AVVIA, il grafico continuerà ad aggiornarsi con un dato di default invece che restare fermo. Se pero' scolleghi il grafico dal terminale in uscita, il grafico resta fermo come è giusto che sia. Il problema al momento l'ho risolto utilizzando i reference al garfico del main anzichè i teminali di uscita. ---------------------------------------- AUTORE: 43 DATA :25/10/2007 - 09:27:13 ---------------------------------------- [quote="gepponline":2sd6ci2n]... non voglio inizializzare un array perchè non posso sapere a priori quanti saranno i campionamenti. La prova potrebbe durare dai 20 minuti alle 6 ore. [/quote:2sd6ci2n] Scusa ma, di fatto, ogni tuo chart alloca un buffer 16000 punti x 3 tracce di DBL per un totale di 375Kbytes moltiplicato X volte... [quote="gepponline":2sd6ci2n]Defer Panle Update cosa fa? non l'ho mai usata \":?:\" [/quote:2sd6ci2n] La proprietà "Defer Panel Update" riguarda il Front Panel di un VI. La ottieni aprendo un VI con "Open VI Reference" e poi con un property node "Front Panel". Dal reference risultantecolleghi un altro property node dal quale si ottiene "Defer Panel Update" che è un valore booleano R/W (in runtime) Ora, settando/resettando tale valore viene bloccato/sbloccato ogni "aggiornamento" del pannello: ogni scritta, grafico, led colorato, immagine non viene aggiornata nel momento in cui viene processata, ma al momento in cui si rilascia resettando "Defer Panel Update" in una botta sola. Per es. ho fatto una bella minilibreria che gestisce il "multilingue" delle scritte nei VI di interfaccia HMI (spero un giorno di completarla e renderla fruibili a tutti gratuitamente...) Se non avessi usato "Defer Panel Update", cambiando da una lingua all'altra, (da francese ad italiano x es.)avrei visto cambiare le centinaia di Caption degli indicatori, i contenuti delle list box, le scritte sui tasti e le descrizioni nelle tabelle, lentamente seguendo un ordine + o meno casuale, o meglio ci sarebbe stato qualche secondo in cui alcune caption erano in italiano e altre in francese... Con "Defer Panel Update" il passaggio è praticamente istantaneo.. Per sfruttare al max "Defer Panel Update" si devono concentrare al massimo gli aggiornamenti a video ( del singolo VI) in unico punto..... Sfruttando poi la funzione "Call chain" si può costruire un VI generico che setta e resetta "Defer Panel Update" del VI chiamante.... [quote="gepponline":2sd6ci2n]La questione dei VI rientranti è che il progetto è partito con un solo dispositivo. Ora mi è stato chiesto di fare un software che possa gestire X dispositivi. visto che la gestione di questo dispositivo non è composta solo da monitoraggio di termocoppie ma dalla generazione di una rampa tramite dei PID, e gli X dispositivi non andranno fatti partire in contemporanea ma quando capita, la soluzione piu' immediata a cui avevo pensato è quella di prendere il vi che ho già funzionante e renderlo semplicemente rientrante in modo che ogni dispositivo sia autonomo e indipendente. Comunque se hai idee migliori ben vengano \":wink:\"[/quote:2sd6ci2n] In effetti i primi esempi di VI rientranti li ho visti nella Libreria PID di N.I. A me piace molto curare l'interfaccia e quindi separerei nettamente i Loop PID da essa. Cioè PID = X VI rientranti interfaccia HMI = 1 solo VI non rientrante ---------------------------------------- AUTORE: 43 DATA :25/10/2007 - 09:58:20 ---------------------------------------- [quote="gepponline":31h72zpa].... Questo DEFAULT viene generato SOLO se il grafico lo si collega in uscita ad un terminale del VI. ......... [/quote:31h72zpa] N - O - N E' V - E - R - O eseguire i 2 esempi con Run continuosly ---------------------------------------- AUTORE: 482 DATA :25/10/2007 - 10:11:25 ---------------------------------------- Paracarro ma leggi quello che scrivo?!?! \":?:\" Quello che tu dici essere un VI funzionante, NON E' COLLEGATO al terminale!! di uscita del VI! Ho preso il tuo esempio funzionante, ho collegato il grafico a uno dei terminali di uscita e "l'errore" si ripresenta! ---------------------------------------- AUTORE: 43 DATA :25/10/2007 - 10:18:13 ---------------------------------------- [quote="gepponline":2pu374pz]Paracarro ma leggi quello che scrivo?!?! \":?:\" Quello che tu dici essere un VI funzionante, NON E' COLLEGATO al terminale!! di uscita del VI! Ho preso il tuo esempio funzionante, ho collegato il grafico a uno dei terminali di uscita e "l'errore" si ripresenta![/quote:2pu374pz] A ME NON RISULTA!!!! ---------------------------------------- AUTORE: 43 DATA :25/10/2007 - 10:28:32 ---------------------------------------- [quote="paracarro":11b00piz][quote="gepponline":11b00piz]Paracarro ma leggi quello che scrivo?!?! \":?:\" Quello che tu dici essere un VI funzionante, NON E' COLLEGATO al terminale!! di uscita del VI! Ho preso il tuo esempio funzionante, ho collegato il grafico a uno dei terminali di uscita e "l'errore" si ripresenta![/quote:11b00piz] A ME NON RISULTA!!!![/quote:11b00piz] C*ZZ !! Mi rimangio tutto!!!! Il comportamento è corretto e non si tratta di un baco.... Il punto è che il tipo di dato con cui si identifica il chart è un cluster di numeri e non un array, quindi non può essere "vuoto"!! Penso che dopo questa i chart non li userò mai per applicazioni "serie" ma solo per graficare acquisizioni fatte al volo..... sorry 4 il misunderstanding bye ---------------------------------------- AUTORE: 482 DATA :25/10/2007 - 10:40:10 ---------------------------------------- [quote="paracarro":2h2cqr76] Il punto è che il tipo di dato con cui si identifica il chart è un cluster di numeri e non un array, quindi non può essere "vuoto"!![/quote:2h2cqr76] Nel caso specifico è un cluster, ma puo' anche essere un numero singolo (come diventa se gli si collega un singolo controllo) e il risultato resta lo stesso perchè anche il numero ha comunque il suo default. ---------------------------------------- AUTORE: 645 DATA :25/10/2007 - 12:28:22 ---------------------------------------- Premetto che non ho aperto i VI perchè non ho LabView sotto mano ma con i graph e i chart è possibile passare il valore "NaN". Questo valore viene convertito in un "buco" nel grafico, nel senso che la y non viene disegnata. Potrebbe essere sufficiente associare al valore di default del subVI questa uscita per non vedere nulla disegnato sul grafico... (forse però le x continuano a scorrere). ---------------------------------------- AUTORE: 482 DATA :25/10/2007 - 13:00:41 ---------------------------------------- eh si...ho provato ma le X continuano comunque a scorrere \":wink:\" ---------------------------------------- ================================================================================ Reference ad un subVI in esecuzione ================================================================================ AUTORE: 482 DATA :23/10/2007 - 11:23:22 ---------------------------------------- ..ma ciao! Ho un subVI con un ciclo continuo che mi genera un grafico. Dal vi principale vorrei vedere il grafico che viene generato all'interno del subVI. Allego quello che ho realizzato. QUalcuno mi sa dire dove sbaglio? ---------------------------------------- AUTORE: 113 DATA :23/10/2007 - 17:11:04 ---------------------------------------- Ciao Geppo! Innanzi tutto devi aprire il riferimento alla vi remota correttamente. Poi tieni presente che il dato scambiato è una variabile numerica, non il contenuto del grafico. Per avere gli stessi chart identici devi creare una correlazione temporale fra il server (vi remota) e il client; per semplificare ti ho messo lo stesso ritardo nei due loops. ---------------------------------------- AUTORE: 384 DATA :24/10/2007 - 08:26:19 ---------------------------------------- Scusate se mi intrometto. Ma se piazzi il grafico sul VI principale, di quello crei un reference e lo passi al subVI, il subVI ci scrive il grafico da un property node, hai il tuo grafico in tempo reale sul MAIN front panel creato dal tuo vi "nascosto" cge gira in background. Almeno io faccio così quando la situazione è "statica", cioè, se il subVI non è di per se dinamico. ---------------------------------------- AUTORE: 384 DATA :24/10/2007 - 08:31:23 ---------------------------------------- [quote:1n4urg2d]Almeno io faccio così quando la situazione è "statica", cioè, se il subVI non è di per se dinamico.[/quote:1n4urg2d] Anzi, l'ho già fatto ANCHE quando il subVI è dinamico!!! ---------------------------------------- AUTORE: 482 DATA :24/10/2007 - 08:33:40 ---------------------------------------- mmhh...valutero'anche questa opzione...sisi... ---------------------------------------- ================================================================================ Universal time to string ================================================================================ AUTORE: 73 DATA :23/10/2007 - 15:48:55 ---------------------------------------- una domanda semplice: ho bisogno di scrivere in un file l'universal time che esce da "get time/date in second", lo metto in un array e poi lo passo per write to spreedsheet file con format string %.10e ma quando vado a leggere il file leggo solo 7 cifre e quindi non vedo il tempo che cambia ogni secondo ma circa ogni 200.... Purtroppo ho bisogno proprio di un contatore universale e non di uno relativo Grazie xchè come al solito mi verrete in aiuto ---------------------------------------- AUTORE: 73 DATA :24/10/2007 - 09:58:43 ---------------------------------------- Aiuto in 1 giorno nessuno ha trovato la soluzione mi preoccupo non mi era mai successo!!!!!! Mi sa che allora è un problema reale \":oops:\" ---------------------------------------- AUTORE: 43 DATA :24/10/2007 - 10:05:28 ---------------------------------------- Alla faccia della domanda semplice.... Qua si va a pescare nel torbido: Funzione [b:3i5hf7j1]"Get Date/Time In Seconds"[/b:3i5hf7j1] Versione --> Tipo Valore --> Occup. LabVIEW --> Restituito --> Memoria --> Precis. LV5 --> U32 --> 4 bytes --> sec. (limite anno 2040) (dati non verificati vado a memoria) LV6 --> DBL --> 8 bytes --> msec. LV7+LV8 --> Time stamp --> 16 bytes --> msec. e non vorrei continuare oltre. Basti pensare che da LV7 e LV8 è stato introdotta la funzione di conversione: [b:3i5hf7j1]"To Time Stamp"[/b:3i5hf7j1] che converte un 'double' in un valore di tipo 'time stamp', mentre non esiste una funzione "al contrario" che converte da 'time stamp' a 'double'. Il mio personale consiglio è quello se possibile di non memorizzare "MAI" i tempi assoluti in formato "interno" ma esplicitarli in una stringa sintetica ma comprensibile. Nel tuo caso, poi, devi memorizzare in un file di testo (csv, txt) una data per cui NEL MODO PIU'ASSOLUTO NON MEMORIZZARE LE DATE IN QUEL MODO. Usa piuttosto la funzione [b:3i5hf7j1]"Get Date/Time String"[/b:3i5hf7j1] oppure, meglio ancora la [b:3i5hf7j1]"Format Date/Time String"[/b:3i5hf7j1] con questo formato %y%m%d%H%M%S%3u ottieni una stringa di 16 bytes yymmgghhmmss.mmm byte, anzi bye[/i] ---------------------------------------- AUTORE: 73 DATA :24/10/2007 - 10:36:05 ---------------------------------------- Ok hai perfettamente ragione, io uso labview 7 e lo trasformi in dbl con l'apposito blocchetto Il problema è che io non devo memorizzare una data ,quello lo faccio come tu hai suggerito con "format date/time",ma un numero di secondi assoluto, cioè che non si azzeri ogni volta che fermo il programma ed è per questo che io ho usato l'universal time........... Io ho risolto il problema così..... Controlla se lo metti in una stringa in formato decimale con la virgola con "number to fractional string" viene il numero giusto nella stringa se usi "number to exponential string" anche;quello che fa quando tu cerchi di salvarlo in un file è che te lo salva sempre troncato come se gli mancassero dei bit..... Il problema dov'è quindi nel "write to spreedsheet file" o nel numero che esce come universal time......io ho pensato + nel primo xchè se scrivi un numero di 8 cifre lui non riesce a scriverlo con la giusta precisione .......infatti all'interno del blocchetto c'è il controllo di entrata che è in singol precision.........lo metti in dbl e tutto torna a funzionare Prova Grazie ---------------------------------------- AUTORE: 43 DATA :24/10/2007 - 12:04:27 ---------------------------------------- [quote="delpi":16l9wlw7]Ok hai perfettamente ragione, io uso labview 7 e lo trasformi in dbl con l'apposito blocchetto[/quote:16l9wlw7] Mi dici con quale blocchetto converti i 16 byte del tipo Time stamp in un double di 8 bytes ? Facendo il furbetto, ho provato a [b:16l9wlw7]sottrarre[/b:16l9wlw7] ad un valore timestamp uno 0 (zero) double , ed il risultato è un timestamp!!! Mentre se sottraggo fra loro 2 timestamp ottengo un double..... [quote="delpi":16l9wlw7] Il problema è che io non devo memorizzare una data ,quello lo faccio come tu hai suggerito con "format date/time",ma un numero di secondi assoluto, cioè che non si azzeri ogni volta che fermo il programma ed è per questo che io ho usato l'universal time........... [/quote:16l9wlw7] Appunto ... non DEVI usare un numero (double o altro) ma usare sempre il tipo Time stamp x grafici o calcoli.. L'unico tuo problema è scrivere il time stamp su file e ricaricarlo da file.. [quote="delpi":16l9wlw7] Io ho risolto il problema così..... Controlla se lo metti in una stringa in formato decimale con la virgola con "number to fractional string" viene il numero giusto nella stringa [/quote:16l9wlw7] Non capisco come fai a passare da timestamp a numero o stringa... usi un cast?? [quote="delpi":16l9wlw7] se usi "number to exponential string" anche;quello che fa quando tu cerchi di salvarlo in un file è che te lo salva sempre troncato come se gli mancassero dei bit..... [/quote:16l9wlw7] Beh! scusa la banalità ma devi sempre impostare un numero di decimali congruo.... se il numero ha una precisione di 8 o 16 cifre significative (SGL o DBL) devi indicare fra i parametri del VI "number to exponential string" il numero di cifre decimali che vuoi ottenere nella stringa, mentre nella "Array To Spreadsheet String" x es. o nella "write to spreedsheet file" devi indicare il formato corretto.... Nella "write to spreedsheet file" il formato di default è "%.3f" Potresti tentare con un "%.15e" Cmq è interessante vedere che un array di tipo 'time stamp' non è accettato dalla funzione "Array To Spreadsheet String" [quote="delpi":16l9wlw7] Il problema dov'è quindi nel "write to spreedsheet file" o nel numero che esce come universal time......io ho pensato + nel primo xchè se scrivi un numero di 8 cifre lui non riesce a scriverlo con la giusta precisione .......infatti all'interno del blocchetto c'è il controllo di entrata che è in singol precision.........lo metti in dbl e tutto torna a funzionare Prova Grazie[/quote:16l9wlw7] boh !! prova a non usare il "%f". Usa "%e" ---------------------------------------- AUTORE: 73 DATA :24/10/2007 - 13:24:42 ---------------------------------------- Il problema è nel write to spreedsheet file.......all'interno lui converte in singol precision!!!!! bisogna modificare il blocchetto mettendo double...... ---------------------------------------- ================================================================================ esecuzione controllata ================================================================================ AUTORE: 2270 DATA :23/10/2007 - 22:44:38 ---------------------------------------- Ciao a tutti. Voglio realizzare sul front panel una icona cliccando sulla quale si apre un altro VI eseguito il quale posso tornare al VI di partenza e eseguirlo. Come posso fare ? Grazie. ---------------------------------------- AUTORE: 384 DATA :24/10/2007 - 08:08:12 ---------------------------------------- Qualunque subVI si crei può funzionare in questo modo. Nelle proprietà del VI bisogna solo impostarlo in modo che si apra il front panel quando viene chiamato e che si chiuda se era già chiuso prima della chiamata. ---------------------------------------- AUTORE: 2270 DATA :24/10/2007 - 12:53:44 ---------------------------------------- Ti ringrazio per avermi risopsto. Non riesco però a capire dove devo si impostano le propietà del subVIcome tu mi dici. Ciao. ---------------------------------------- AUTORE: 384 DATA :24/10/2007 - 13:27:48 ---------------------------------------- Devi selezionare dal menu File, VI Properties. Si apre la finestra delle proprietà del VI. Seleziona "Window Appearance" dalla finestrella "Category" che si trova in alto. Clicca sul pulsante "Customize" e si apre una sottofinestra dove troverai tutte le voci relative da impostare. ---------------------------------------- AUTORE: 2270 DATA :24/10/2007 - 21:35:50 ---------------------------------------- Grazie di nuovo. In questo modo il sub si apre e si chiude automaticamente. Io invece vorrei aprirlo e chiuderlo per mezzo di in pulsante. Ciao. ---------------------------------------- AUTORE: 645 DATA :25/10/2007 - 07:29:13 ---------------------------------------- Cerca qualcosa sull'uso del VI Server (puoi cercare nel forum o sul sito della National, www.ni.com ). L'uso del VI Server permette di richiamare in maniera dinamica un altro VI e mettere in attesa il primo, quello che si verifica con le maschere nelle procedure guidate. Facendo così puoi attivare il VI principale, sospenderne l'esecuzione, avviare il VI secondario, lavorare su questo e solo al termine (per esempio con la pressione di un pulsante per terminare un ciclo e chiudere il VI secondario) tornare al VI principale eventualmente passando qualche valore tra i due VI. ---------------------------------------- AUTORE: 384 DATA :25/10/2007 - 08:53:27 ---------------------------------------- Magic, stai complicando troppo! \"8)\" Basta mettere il vi in un case booleano e collegarci un pulsante. ---------------------------------------- AUTORE: 645 DATA :25/10/2007 - 12:29:50 ---------------------------------------- Ma mettendo solo il subVI senza l'uso del VI Server si riesce ad ottenere l'apertura del pannello frontale e la sospensione del VI chiamante fino alla chiusura del VI secondario chiamato? ---------------------------------------- AUTORE: 384 DATA :25/10/2007 - 12:58:50 ---------------------------------------- Vista la domanda, per iniziare nel modo più semplificato, suggerirei di usare un pulsante e un case per chiamare il subVI che si apre da solo, e che a sua volta avrà il suo pulsante di "fine" con cui termina le sue operazioni e quindi si chiude in automatico. Quello che stai pensando tu ( \":wink:\" ) è la gestione totale di un secondo vi sempre dallo stesso vi principale, e allora si che non c'è altro modo se non il vi server. Per quanto il nostro amico Mario possa anche dover andare a finire lì (dipende soltanto dal suo reale "problema"), credo che per iniziare sia un pò troppo complicato... ---------------------------------------- AUTORE: 2270 DATA :25/10/2007 - 22:10:38 ---------------------------------------- Grazie a tutti per la disponibilità e la chiarezza. Potreste anche dirmi come calcolare i coefficienti A,B,C,R dell' equazione V=A-Bln(CI)-RI, assagnati alcuni valori sperimentali di tensione V e corrente I. Sono disperato. ---------------------------------------- AUTORE: 384 DATA :26/10/2007 - 08:57:06 ---------------------------------------- A parte il fatto che non ci dici niente del problema e cosa rappresenta l'equazione, hai 1 equazione e 4 variabili (presumendo di assegnare valori a V ed I). L'algebra dice che non è possibile risolverla in modo chiuso!!! Quello che eventualmente puoi fare è determinare una delle variabili in funzione delle altre, assegnare valori a quelle altre e ripetere a turno per tutte. La mole di dati che risulterà è enorme e l'interpretazione non è banale, dato che otterrai una superficie multidimensionale. A meno che tu possa attribuire dei valori che più o meno siano possibili (ossia heuristici) ed in funzione dei risultati farne qualche iterazione finchè non trovi dei risultati congrui - cosa che si fa regolarmente nel progetto di circuiti elettronici, per esempio - non vedo vie di uscita. ---------------------------------------- AUTORE: 2270 DATA :26/10/2007 - 13:45:48 ---------------------------------------- Scusami per la poca chiarezza qvc. Provo a spiegarmi meglio per quel che riguarda l'esecuzione controllata. Mi trovo in un front panel . Avvio il programma.Clicco con il mause su un pulsante. Si apre un altro front panel. In questo front panel inserisco dei dati e premo run.Dopo l'esecuzione clicco su un altro pulsante e ritorno al front panel di partenza. Su questo ultimo programma utilizzo i dati elaborati dal programma chiamato manualmente. Nota: l'equazione che ho riportato e la caratteristica di polarizzazione di una cella a combustibile. ---------------------------------------- AUTORE: 384 DATA :26/10/2007 - 15:36:08 ---------------------------------------- [quote="mario64":2pqhj9js]Scusami per la poca chiarezza qvc. Provo a spiegarmi meglio per quel che riguarda l'esecuzione controllata. Mi trovo in un front panel . Avvio il programma.Clicco con il mause su un pulsante. Si apre un altro front panel. In questo front panel inserisco dei dati e premo run.Dopo l'esecuzione clicco su un altro pulsante e ritorno al front panel di partenza. Su questo ultimo programma utilizzo i dati elaborati dal programma chiamato manualmente. [/quote:2pqhj9js] Il mio suggerimento (pulsante + case booleano + subVI) calza perfettamente. [quote="mario64":2pqhj9js]Nota: l'equazione che ho riportato e la caratteristica di polarizzazione di una cella a combustibile.[/quote:2pqhj9js] Tranne che per il principio di funzionamento, ammetto la mia totale ignoranza per quanto riguarda le celle a combustibile, per cui, oltre alla mia precedente risposta meramente "matematica" non posso aiutarti, mi dispiace.   ---------------------------------------- AUTORE: 2270 DATA :26/10/2007 - 16:08:49 ---------------------------------------- Per case booleano intendi il case structure? In questo caso devo collegare il pulsante al quadratino con il punto interrogativo? Devo impostare altre caratteristiche? ---------------------------------------- AUTORE: 384 DATA :26/10/2007 - 16:31:44 ---------------------------------------- [quote="mario64":udk83x4z] Per case booleano intendi il case structure? [/quote:udk83x4z] Si, esattamente. (booleano perchè in ingresso il dato è di tipo true/false) [quote="mario64":udk83x4z] In questo caso devo collegare il pulsante al quadratino con il punto interrogativo? [/quote:udk83x4z] Si. [quote="mario64":udk83x4z] Devo impostare altre caratteristiche? [/quote:udk83x4z] Se scegli il pulsante "OK" è già tutto impostato come ti serve. Ti basta cambiare la dicitura ("OK" per l'appunto) semplicemente selezionandola con il mouse e scrivendoci sopra quello che vorrai.   ---------------------------------------- ================================================================================ from labview to C++ ================================================================================ AUTORE: 2272 DATA :24/10/2007 - 09:53:53 ---------------------------------------- Ciao a tutti, premetto dicendo che sono nuovo per il labview. Ho un domanda: vorrei sapere se e' possibile effettuare una traduzione dal linguaggio G del labview al linguaggio del C++ Ringrazio in anticipo chiunque mi sappia dare una risposta ---------------------------------------- ================================================================================ Build e Stringhe scomparse ================================================================================ AUTORE: 2215 DATA :24/10/2007 - 09:54:05 ---------------------------------------- Ciao! Ho un vi che legge/scrive un file tabulato di testo. Se lo compilo con la 6 mi carica testi e numeri Se lo compilo con la 7 mi carica solo i numeri Grazie ---------------------------------------- AUTORE: 927 DATA :26/10/2007 - 10:57:25 ---------------------------------------- Temo che dovrai spiegarti molto meglio... ---------------------------------------- AUTORE: 645 DATA :26/10/2007 - 16:50:34 ---------------------------------------- Ehm... quindi? Prova a raccontarci qualcosa in più sul tuo VI... ---------------------------------------- AUTORE: 2215 DATA :09/11/2007 - 14:05:55 ---------------------------------------- Dicevo: ho un vi che genera un file di testo che contiene le impostazioni dell'utente. per es. 10 1 prova1 10 sta per 10 Ampere 1 sta per durata prova prova1 sta per nome prova con Lw 6 creo l'eseguibile, lo eseguo, legge 10 1 prova1 con Lw 7 creo l'eseguibile, lo eseguo, legge 10 1 ---------------------------------------- AUTORE: 645 DATA :09/11/2007 - 14:33:51 ---------------------------------------- Devi controllare i blocchi di lettura delle stringhe... Può essere che si comportino in maniera diversa nelle due versioni (mi sembra strano ma un controllo si può fare...) ---------------------------------------- AUTORE: 2215 DATA :09/11/2007 - 16:00:19 ---------------------------------------- Risolto! c'era un errore con le variabili locali. con la 6 mi leggeva sempre prima la variabile che estraeva dal file e poi entrava nel while. con la 7 leggeva prima dal while. Un baco che c'è sempre stato ma la 6 non lo evidenziava cmq ho risolto mah Grazie! ---------------------------------------- ================================================================================ ERRORE LIBRERIA ================================================================================ AUTORE: 1596 DATA :24/10/2007 - 10:49:18 ---------------------------------------- salve a tutti, ho un subVI che mi da' l' "errore0", procedo come mi viene indicato nella finestra di errore (ho fatto una ricerca della libreria e risulta nella cartella il cui percorso si puo' notare sullo sfondo in "errore1") ma mi da' un altro messaggio "errore1" \":o\" conoscete tale errore e il modo per risolverlo?:roll: THX ---------------------------------------- AUTORE: 43 DATA :26/10/2007 - 11:35:59 ---------------------------------------- [quote="gianni1":2jcxtpv7]salve a tutti, ho un subVI che mi da' l' "errore0", procedo come mi viene indicato nella finestra di errore (ho fatto una ricerca della libreria e risulta nella cartella il cui percorso si puo' notare sullo sfondo in "errore1") ma mi da' un altro messaggio "errore1" \":o\" conoscete tale errore e il modo per risolverlo?:roll: THX[/quote:2jcxtpv7] Se è vero quello che c'è scritto nell'immagine jpg il tuo file di progetto \LabVIEW 8.2\vi.lib\Analysis\NI_AALBase.lvlib è corrotto. O reinstalli Tutto LabVIEW oppure dal CD di installazione originale (stessa versione di quello installato), doppio clikki sul file: _:\Products\LabVIEW\vi.lib.msi\vi.lib.msi boh!!?!! bite cioè bye ---------------------------------------- AUTORE: 1596 DATA :26/10/2007 - 12:31:48 ---------------------------------------- ..grazie per la risposta.. c'erano due cose che non andavano...veniva caricata una libreria che non si trovava al suo posto (c'era una copia sul PC) e c'erano dei subVI della versione 7 che risultavano non compatibili con la 8.2 che ora utilizzo... \":o\" ..in ogni caso, ora ho risolto... THX ---------------------------------------- AUTORE: 1596 DATA :26/10/2007 - 12:34:53 ---------------------------------------- scusa scusa ...i subVI precedenti erano stati creati con la versione 6 credo...comunque 8.2 me li caricava in qualche modo (voglio dire che non mi compariva il punto interrogativo al posto del VI come succede di solito), ma non giravano...li ho sostituiti con quelli della versione 8.2 e il tutto gira... ---------------------------------------- AUTORE: 43 DATA :26/10/2007 - 13:26:49 ---------------------------------------- [quote="gianni1":1b555myz]scusa scusa ...i subVI precedenti erano stati creati con la versione 6 credo....[/quote:1b555myz] Sulle riconversioni automatiche: dai sempre un occhio a quello che LabVIEW converte automaticamente... soprattutto se non è roba N.I. ... Anche se nella stragrande maggioranza dei casi tutto fila liscio, mi ricordo nel passaggio da LV5 a LV6, un problema legato agli attributi di grafici LabVIEW che allocavano memoria senza rilasciarla... per cui, con una applicazione che girava 24 h su 24 il sistema crashava dopo un po'... Mi ricordo anche di VI che smettevano di funzionare al cambio di versione di NIDAQ... bye ---------------------------------------- ================================================================================ interpolazione ================================================================================ AUTORE: 2270 DATA :24/10/2007 - 13:07:30 ---------------------------------------- Saluti a tutti. Devo calcolare i coefficienti A,B,R di questa equazione V=A-Bln(CI)-RI, nti sperimentalmente alcuni valori di tensione V e corrente I. Ho provato con il sub "non linear curve fit" e con il sub" General LS curve fit", ma non ci riesco. Come posso fare? ---------------------------------------- AUTORE: 927 DATA :26/10/2007 - 10:45:03 ---------------------------------------- Dovrebbe essere Nonlinear Curve Fit che fa al caso tuo. Nella pagina "Using the Nonlinear Curve Fit VI" dell'help trovi i dettagli su come passargli il tuo modello di funzione. In che senso non ci riesci? ---------------------------------------- AUTORE: 2270 DATA :26/10/2007 - 13:57:15 ---------------------------------------- Il programma mi calcola i coefficienti voluti solo per alcuni valori di V e I. Se modifico anche poco questi valori il programma si blocca. ---------------------------------------- AUTORE: 927 DATA :29/10/2007 - 09:27:10 ---------------------------------------- Ho notato che se metti un abs() dentro il logaritmo, non si pianta più (ma non so se i risultati siano corretti). Evidentemente la "Nonlinear curve fit" è un po' stupida, e se durante i calcoli gli capita un numero non valido (in questo caso, il logaritmo di un numero negativo è -Inf), blocca tutto. Potresti provare a usare un VI anzichè una formula testuale, così puoi controllare se b<=0 e non far uscire un errore, ad es. -9999 anzichè -Inf. ---------------------------------------- AUTORE: 2270 DATA :30/10/2007 - 11:04:04 ---------------------------------------- Ho seguito i tuoi consigli.Ho messo il modulo nel logaritmo e ho usato un VI anzichè una formula testuale. Nel VI ho anche inserito un case che esclude i valori di corrente nulli. Tuttavia se la corrente è nulla il programma continua a bloccarsi. Come posso fare? Non potrei usare il formula node oppure un mathscript per ottenere maggiore affidabilità? ---------------------------------------- AUTORE: 927 DATA :31/10/2007 - 10:09:51 ---------------------------------------- Ho provato a fare così e pare che non si blocca: se C*I > 0 ne faccio il logaritmo, se C*I <= 0 passo -999 ("simulazione" di -Inf!) Cmq penso che dentro il subVI di calcolo puoi metterci quello che vuoi, incluso formula node e mathscript. ---------------------------------------- AUTORE: 2168 DATA :06/11/2007 - 11:31:33 ---------------------------------------- Ho il dubbio che abbiate un po' di problemi con la matematica. Il Logaritmo è una funzione definita solamente per valori maggiori (strettamente) di zero, quindi non ha nemmeno senso lamentarsi che se metti la corrente uguale a zero il programma si blocca, lo stesso vale per i valori negativi. Con il valore assoluto va bene e va bene e il fit non ha problemi. Non ho potuto vedere le VI che hai messo a disposizione perchè ho LV 7.1 ma io metterei iningresso un selettore che se vede che l'input è uguale a 0 non fa nulla e se è minore di zero ne fail valore assoluto. Una scappatoia che potresti fare per calcolare lo stesso la formula anche per corrente nulla, è quella di approssimare ulteriormente la formula, cioè scrivere ad esempio Ln(CI+e) dove "e" è una costante positiva ma piccolissima, tipo 0.0000000000001, in modo che il programma quando imposti la corrente uguale a 0, non veda realmente 0 ma un numero molto piccolo e può calcolarne il logaritmo. ---------------------------------------- AUTORE: 2270 DATA :15/11/2007 - 11:02:38 ---------------------------------------- Grazie per l'utile consiglio. ---------------------------------------- AUTORE: 2270 DATA :15/11/2007 - 12:52:03 ---------------------------------------- Ciao nicky79. Ti invio il file salvato nella versione 7.1. Non riesco a capire dove mettere il selettore. Io l'avevo già messo nello Static VI Reference. Tuttavia non funziona. ---------------------------------------- AUTORE: 927 DATA :03/12/2007 - 09:11:49 ---------------------------------------- Problemi con la matematica non ne ho, visto che avevo detto la stessa cosa... Il selettore puoi metterlo ad esempio a valle della prima moltiplicazione, se C*I>0 fai il logaritmo, sennò non lo fai per niente e passi una costante tipo -9999. Così è più semplice ---------------------------------------- AUTORE: 947 DATA :03/12/2007 - 17:35:53 ---------------------------------------- ... [quote:33s6ux8x]Il selettore puoi metterlo ad esempio a valle della prima moltiplicazione, se C*I>0 fai il logaritmo, sennò non lo fai per niente e passi una costante tipo -9999. Così è più semplice [/quote:33s6ux8x] Sì... mi pare la cosa + logica.... concordo perfettamente... il problema però è a monte... perkè mai CI dovrebbe essere <=0 ?? cioè ... evidentemente questa formula è la soluzione di un problema... che per CI<=0 avrà un caso tutto suo ... non è detto che per CI<=0 sostituire ln(CI) con -9999 (cioè -Inf) sia realmente la cosa migliore... ma questo lo puoi sapere solo tu [b:33s6ux8x]mario64[/b:33s6ux8x]... Bye ---------------------------------------- AUTORE: 2270 DATA :03/12/2007 - 21:53:34 ---------------------------------------- Ho fatto come avete detto. Sembra che funzioni. Ciao. ---------------------------------------- AUTORE: 927 DATA :04/12/2007 - 08:20:18 ---------------------------------------- [quote="Luca.glt":1m132zdj]il problema però è a monte... perkè mai CI dovrebbe essere <=0 ??[/quote:1m132zdj] I valori sperimentali di I nel campo di interesse sono ovviamente positivi; però le funzioni di Labviù che fanno l'interpolazione non lo sanno, e usano dei metodi matematici prova-e-correggi che possono dare qualsiasi valore a I ---------------------------------------- ================================================================================ bluetooth comunication ================================================================================ AUTORE: 2274 DATA :24/10/2007 - 15:18:08 ---------------------------------------- Ciao a tutti, sono nuovo del forum. Sto utilizzando il Labview 8.2.1. Avrei biogno di un consulto per quanto riguarda la comunicazione tra due PC tramite il bluetooth. Devo inviare dei semplici dati ma alla chusura del run del VI mi da questo errore: error 58. The network function is not supported by the system. Ho già letto che potrebbe essere dovuto all'incompatibilità del driver bluetooth. A questo punto ho due domande: 1- dove posso trovare i driver microsoft per il bluetooth? 2- Quale altro potrebbe essere il motivo el malfunzionamento (supponendo che non ci sono errori di programmazione)? grazie dell'iuto ---------------------------------------- ================================================================================ Aprire il pannello di vi rientranti ================================================================================ AUTORE: 482 DATA :25/10/2007 - 09:23:20 ---------------------------------------- ...ma ciao! Questa applicazione mi ha fatto scoprire un "nuovo mondo" che mi fa sorgere mille domande. Ho un programma che va ad eseguire un subVI rientrante X volte. Voglio che con un pulsante si possa aprire il pannello di ogni istanza del subVI. Come devo fare? Come faccio ad identificare l'istanza giusta? ---------------------------------------- AUTORE: 43 DATA :25/10/2007 - 09:39:26 ---------------------------------------- Devi memorizzarti il reference di ogni istanza che ti viene restituito dalla "Open VI Reference" (non puoi chiudere il "VI reference" altrimenti ditruggi l'istanza). Quindi dall'array di reference, alla bisogna, prelevi quello che ti serve e usando un property node "Front Panel Window" --> "Open" puoi rendere visibile\invisibile il front panel settando\ esettando tale proprietà bye ---------------------------------------- AUTORE: 482 DATA :25/10/2007 - 09:47:36 ---------------------------------------- Eh, il problema è che io il VI non lo apro con una OpenVIReference ma piazzandoci l'icona del subVI. Quindi quando vadoa fare l'openvi referenmce per aprire e chiudere il pannello frontale, mi apre un altra istanza. Quindi devo per forza aprirlo in modo dinamico o cmq tramite property node? ---------------------------------------- AUTORE: 43 DATA :25/10/2007 - 10:49:05 ---------------------------------------- [quote="gepponline":2u90d6k4]Eh, il problema è che io il VI non lo apro con una OpenVIReference ma piazzandoci l'icona del subVI. Quindi quando vadoa fare l'openvi referenmce per aprire e chiudere il pannello frontale, mi apre un altra istanza. Quindi devo per forza aprirlo in modo dinamico o cmq tramite property node?[/quote:2u90d6k4] Ovviamente si può aggirare il problema usando un pò di fantasia... Se ogni volta che generi una istanza passi fra i parametri del VI rientrante una stringa che contiene un identificatore univoco, beh potresti usare quello come nome di una coda con cui passare dei "comandi" (tra cui apri pannello) tra main e VI rientrante. Oppure potresti usare un VI tipo FG (functional Global) che viene chiamato all'inizio della esecuzione del VI rientrante che provvederà ad aggiungerci il VI ref di se stesso (per salvare parzialmente la proposta 1) e riceverà i comandi dal Main ( che però dovrà con un <qualcosa> (un indice?)) il vi rientrante sul quale si vuole intraprendere un'azione) ..... bye ---------------------------------------- AUTORE: 482 DATA :25/10/2007 - 10:58:09 ---------------------------------------- Probabilmente è tutto legato al fatto che non ho quasi mai lavorato con i riferimenti ai VI e proprietà varie ma non riesco a capire, potresti farmi un esempio? Ipotizza un subvi rientrante con un ciclo infinito che genera numeri random. Il main composto da tre cicli paralleli, due con un istanza del subVI ognuno e il terzo che con due pulsanti mi fa aprire il pannello di uno o l'atro subVI. ---------------------------------------- AUTORE: 43 DATA :25/10/2007 - 15:16:41 ---------------------------------------- Ti ho confenzionato 2 bellissimi esempi. Fatti con le mie manine.... e poi non dire che non lavoro x te..... prova Main1 e Main2 - LV8.2.1 ---------------------------------------- AUTORE: 43 DATA :26/10/2007 - 09:48:47 ---------------------------------------- Beh! Mi aspettavo di essere sommerso dalle domande invece nulla... Spero cmq di esserti stato di aiuto, Geppo... bye ---------------------------------------- AUTORE: 482 DATA :26/10/2007 - 11:20:48 ---------------------------------------- tranquillo, è che lo sto ancora valutando. Non ti sei risparmiato niente eh? DIciamo che per quello che devo fare, i tuoi esempi sono fintroppo complicati. Comunque mi è stata particolarmente di aiuto la funzioen chain che non conoscevo pe rrecuperare il nome del VI clone. appena metto insieme il tutto ti mando un riassunto di quello che ho sviluppato. Per adesso ti ringrazio per la pazienza. \":wink:\" ---------------------------------------- ================================================================================ Connessione ADODB ================================================================================ AUTORE: 1871 DATA :25/10/2007 - 11:42:28 ---------------------------------------- Sto cercando di creare un VI (chiamato Mio_ADODB_Connection.VI) che si colleghi ad un DB Oracle remoto. Premetto che è la prima volta che mi ci cimento, quindi perdonatemi eventuali errori da principiante. Ora, il vi è standard, nel senso che è pari pari quello descritto nell'articolo di labview world 0, ma quando provo a lanciarlo ricevo questo errore: Error -2147467259 occurred at Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [Oracle][ODBC][Ora]ORA-12514: TNS: il listener non ha risolto SERVICE_NAME fornito nel descrittore di connessione in Mio_ADODB_Connection.vi Cosa sbaglio? Cos'è il descrittore di connessione? ---------------------------------------- AUTORE: 645 DATA :25/10/2007 - 12:26:26 ---------------------------------------- I driver ODBC permettono di creare riferimenti per i database che possono essere visti da tutti i software installati sul pc o comunicanti con il pc in rete. Una specie di variabile globale che fa riferimento al database e può essere richiamata dall'esterno. Ogni database ha il suo driver specifico: c'è l'ODBC per SQL Server, quello per MySQL, quello per Oracle... La stringa di connessione è la stringa che avvia la comunicazione con il database, quella che fa capire al software chiamante (in questo caso LabView) con chi deve comunicare. Se hai seguito i passi presentati in LabView World dovresti aver creato un riferimento al database nel Pannello di Controllo di Windows (usi Windows?), sezione Servizi e Origini dati (penso che per Linux si passi da qualcosa di simile) sfruttando il driver ODBC per Oracle. A questo punto per richiamare il database devi passare questo riferimento a LabView: qui entra in gioco la stringa di connessione. Per esempio per SQL Server si usa una stringa tipo "DSN=<riferimento>;". Credo che questa stringa funzioni anche per altri tipi di database ma puoi provare a guardare http://www.connectionstrings.com o http://www.carlprothman.net/Default.aspx?tabid=89#DSN per informazioni. Io penso che una volta creato il riferimento al database la procedura di connessione funzioni con la stringa "DSN=<riferimento>" (sono sicuro che con SQL Server e MySQL funziona). L'importante è creare il riferimento nel modo corretto \":D\" ---------------------------------------- AUTORE: 1871 DATA :25/10/2007 - 13:37:28 ---------------------------------------- Evidentemente stringa di connessione e descrittore di connessione sono due cose diverse... Infatti la stringa la invio correttamente (DSN=<riferimento>) altrimenti, se fosse sbagliata, semplicemente mi direbbe "nome origine dati non trovato". Il problema forse è nel driver ODBC che creo: da amministrazione origine dati ODBC scelgo Aggiungi (nel tab DSN Utente) e vado a selezionare Oracle ODBC driver. A questo punto, nella maschera che mi si apre inserisco: in Data Source Name il valore <riferimento> (che è un valore valido di tnsnames.ora); in Service Name il nome della macchina su cui è presente il DB Oracle a cui mi voglio connettere (e che sempre in tnsnames è il valore di HOST); in UserID lo username dell'utente del DB. Mi sembra che non ci sia nient'altro da fare no? E' tutto corretto? Perchè dal messaggio di errore che ho riportato prima sembrerebbe che non riesce a trovare il server... ---------------------------------------- AUTORE: 645 DATA :25/10/2007 - 18:54:01 ---------------------------------------- Sembra che il nome dato al riferimento nel Pannello di Controllo non venga utilizzato correttamente... se la stringa di connessione è giusta magari è colpa del server come dici tu... ---------------------------------------- AUTORE: 1871 DATA :26/10/2007 - 08:57:54 ---------------------------------------- Purtroppo temo non sia colpa del server..... infatti con Net8 Assistant di Oracle testo la connessione e non mi dà problemi, e poi mi ci collego tranquillamente senza problemi con Toad... Allego il VI, forse faccio qualche errore balordo di cui non mi accorgo.... In tnsnames.ora ho questo alias: My_DB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = server)(PORT = 1521)) ) (CONNECT_DATA = (SID = db_test) ) ) Ho inoltre fatto altre prove con un altro driver ODBC (Microsoft ODBC for Oracle) impostando: Nome Origine Dati = My_DB Nome Utente = user Server = server ...ma non ci sono in giro esempi di connessioni a server oracle?..... non ho trovato ancora niente.... ---------------------------------------- AUTORE: 1871 DATA :26/10/2007 - 09:53:12 ---------------------------------------- Risolto il problema!!!!!!!!! Bisogna usare l'Oracle ODBC driver. In Data Source Name va messo un qualsiasi nome a piacere (che poi sarà il valore di [i:bjc6j7wh]riferimento[/i:bjc6j7wh] in DSN=<[i:bjc6j7wh]riferimento[/i:bjc6j7wh]> nel VI) in Service Name si mette il nome dell'alias nel file tnsnames.ora, e in UserID ovviamente lo user. Per chi fosse interessato ad approfondire gli Oracle ODBC drivers scaricare: http://www.oracle.com/technology/softwa ... DBCFAQ.pdf \":D\" ---------------------------------------- AUTORE: 645 DATA :26/10/2007 - 16:54:22 ---------------------------------------- Ma io pensavo che tu avessi già installato ODBC driver per Oracle sul tuo pc: è questo driver che permette di creare il nome-riferimento-variabile globale... Senza questo driver non puoi fare molto, nel senso che non puoi comunicare con altri software, come LabView... Beh, l'importante è che funzioni!! ---------------------------------------- AUTORE: 1871 DATA :26/10/2007 - 17:12:32 ---------------------------------------- Sì lo avevo installato. Semplicemente gli passavo dei dati sbagliati. ---------------------------------------- ================================================================================ Come gestire due trigger diversi ================================================================================ AUTORE: 2271 DATA :25/10/2007 - 12:49:25 ---------------------------------------- Ciao a tutti, sono nuova nel forum che cmq leggo e seguo da un pò... Ho bisogno del vostro aiuto... Io lavoro con labview 8.5... Dispongo di un NI cDaq-9172 in cui ho sistemato: - nel primo slot un NI 9215 ( da cui prelevo il mio analogic input); - nel quinto slot un NI9423 dove prelevo i due digital input diversi tra loro che voglio usare come trigger; Il problema è questo: io vorrei acquisire e scrivere poi su file continuamente un solo valore del mio ai ogni volta che uno dei due trigger va alto. Finora ho lavorato con un solo trigger e ho realizzato il vi che acquisisce e scrive un valore di ai ogni volta che il mio trigger ha il fronte di salita... Non so come muovermi e come gestire il vi con due trigger??? Anche perchè spesso incorro in problemi di condivisione di risorse, visto che cmq i due trigger devono agire sullo stesso segnale e quindi sullo stesso task.... Vi ringrazio anticipatamente, Vale. ---------------------------------------- AUTORE: 43 DATA :26/10/2007 - 00:28:09 ---------------------------------------- [quote="vgalante":19td62tf]... Io lavoro con labview 8.5... [/quote:19td62tf] wow! [quote="vgalante":19td62tf]Dispongo di un NI cDaq-9172 in cui ho sistemato: - nel primo slot un NI 9215 ( da cui prelevo il mio analogic input);[/quote:19td62tf] NI 9215=4-Channel, 100 kS/s, 16-bit, ±10 V Simultaneous Sampling Analog Input Module cosa ci fai con tutti quei bit di precisione? non ti bastavano 12 bit? Avresti avuto in cambio il doppio dei canali di ingresso e il quintuplo del max sampling rate (se usi un solo canale). Tra l'altro la NI9215 costa pure di + della NI9201 [quote="vgalante":19td62tf]- nel quinto slot un NI9423 dove prelevo i due digital input diversi tra loro che voglio usare come trigger;[/quote:19td62tf] NI9423=8-Channel, Up to 30 V, 1 µs, Sinking Digital Input Module quindi hai dei digitali 0-24V? [quote="vgalante":19td62tf]Il problema è questo: io vorrei acquisire e scrivere poi su file continuamente un solo valore del mio ai ogni volta che uno dei due trigger va alto. [/quote:19td62tf] come se i due ingressi digitali fossero in OR ? [quote="vgalante":19td62tf]Finora ho lavorato con un solo trigger e ho realizzato il vi che acquisisce e scrive un valore di ai ogni volta che il mio trigger ha il fronte di salita... Non so come muovermi e come gestire il vi con due trigger??? Anche perchè spesso incorro in problemi di condivisione di risorse, visto che cmq i due trigger devono agire sullo stesso segnale e quindi sullo stesso task.... Vi ringrazio anticipatamente, Vale.[/quote:19td62tf] Certo, non puoi usare ne' 2 task che acquisiscono dallo stesso canale, ne 1 task di acq. che utilizza 2 trigger... In questi casi DEVE aiutarti N.I. . Io tenterei la strada dell'HW: -con 2 partitori di tensione (4 restistenze...) porterei i tuoi 2 digitali da 0- 24V a 0-5V (TTL) -li schiafferei come ingressi di una porta logica OR (o NOR...). - a questo punto, l'uscita digitale della porta logica la infilerei come secondo ingresso analogico della tua NI 9215 e per l'acquisizione utilizzerei un trigger su canale analogico (ovviamente) con l'opportunità che si possa utilizzare un trigger SW... ma io non sono un gran elettronico.... cmq sposterei questa tua richiesta sotto il Forum dell'HW... bye ---------------------------------------- AUTORE: 113 DATA :26/10/2007 - 07:40:39 ---------------------------------------- Banalmente potresti pure miscelare i due trigger con due diodi collegando insieme gli anodi all'ingresso di trigger dell'hw, collega però una resistenza di pull-down verso massa. In pratica fai un OR dei trigger come ti ha detto Paracarro. ---------------------------------------- AUTORE: 2271 DATA :26/10/2007 - 08:51:23 ---------------------------------------- Bene...mi metto subito al lavoro... Grazie mille per i consigli preziosi. Saluti Valentina. ---------------------------------------- ================================================================================ colore sfondo grafici ================================================================================ AUTORE: 2270 DATA :26/10/2007 - 16:21:27 ---------------------------------------- Come faccio a rendere bianco lo sfondo dell' Waveform Chart, dell' Waveform Graph, dell' XY Graph? ---------------------------------------- AUTORE: 2168 DATA :07/11/2007 - 09:15:31 ---------------------------------------- Ti ringrazio per la domanda e spero che qualcuno mi risponda perchè me lo son sempre chiesto anche io. ---------------------------------------- AUTORE: 482 DATA :07/11/2007 - 11:26:10 ---------------------------------------- beh..col pennello direi.... ---------------------------------------- ================================================================================ decorazioni ================================================================================ AUTORE: 2270 DATA :26/10/2007 - 17:53:42 ---------------------------------------- Se inserisco un controllo all' interno di un lowered rounded box, dopo non riesco più a modificarne il valore. Come posso fare? ---------------------------------------- AUTORE: 487 DATA :29/10/2007 - 07:24:43 ---------------------------------------- Devi portare il tuo controllo in primo piano: selezioni il controllo poi dalla barra strumenti "reorder" ==> "move to front" ---------------------------------------- AUTORE: 2270 DATA :30/10/2007 - 10:50:31 ---------------------------------------- Grazie. ---------------------------------------- ================================================================================ zeriCUT ================================================================================ AUTORE: 1596 DATA :26/10/2007 - 17:57:39 ---------------------------------------- ...salve...ho un array 2D, con un ciclo for 'prelevo' i singoli vettori, con un altro 'leggo' i singoli elementi...poi volevo eliminare gli zeri (che si trovano solo alla fine della forma d'onda...ma con scarso risultato!!!) \":cry:\" dove sbaaaglioooooooo???? THX \":(\" ---------------------------------------- AUTORE: 1596 DATA :26/10/2007 - 20:39:20 ---------------------------------------- ok...ho risolto mettendo, nel CASE (true), il NaN...non mettendo nulla prendeva un valore di default che era comunque zero! ---------------------------------------- AUTORE: 645 DATA :27/10/2007 - 12:26:57 ---------------------------------------- Potresti fare una ricerca degli zeri nell'array (con il blocco Search, paletta Array) e poi cancellare l'elemento nella posizione corrispondente (con il blocco Delete, paletta Array). Oppure se sai che gli zeri sono in fondo puoi fare una ricerca (blocco Search) e dalla prima posizione trovata in poi cancellare il vettore. ---------------------------------------- AUTORE: 1596 DATA :27/10/2007 - 13:19:00 ---------------------------------------- si' potrei fare come dici tu...ma come ho fatto io non va bene?...nel senso che voglio capire perche' mi consigli di fare come dici tu oppure me lo hai detto solo per informarmi delle altre possibilita'... THX ---------------------------------------- AUTORE: 482 DATA :29/10/2007 - 07:15:34 ---------------------------------------- Se sostituisci gli zero con dei NaN in ogni caso sono resenti dei "valori" nell'array, quindi se vai a verificare la lunghezza questa sarà identica a prima. Io girerei l'array (il primo elemento diventa l'ultimo) e farei un delete element fintanto che l'ultimo elemento è =0. Ovviamente per fare cio' non potrai passare direttamente il filo sul bordo del for con l'autoindexing ma dovrai sfruttare uno shift register, altrimenti l'array risultante resterebbe comunque lungo uguale a quello originale. ---------------------------------------- AUTORE: 645 DATA :29/10/2007 - 08:29:46 ---------------------------------------- Le soluzioni alternative che ti ho indicato non dovrebbero comportare grandi differenze, sono solo altri modi per lavorare sugli array. A volte bisogna valutare soluzioni diverse per migliorare le prestazioni del VI in termini di memoria e velocità di esecuzione. Lavorare sugli array può rivelarsi pericoloso nel senso che LabView crea delle copie delle variabili durante alcuni procedimenti. Creare una copia dell'array può voler dire, a volte, creare variabili aggiuntive grandi (se le posizioni dell'array sono tante). Ci sono alcune strategie che permettono di lavorare sugli array senza creare copie, manipolando direttamente l'array originale. In linea di massima si può dire che se l'array entra in un blocco e ne esce modificato (in realtà non bisognerebbe modificare la dimensione o il tipo dei dati... oppure le modifiche devono avvenire con un blocco solo...) non ci sono problemi a livello computanzionale. Altrimenti la CPU fa i conti con variabili di troppo... Lo so, abbastanza incasinato e poco chiaro... ottimo! \":D\" ---------------------------------------- AUTORE: 1596 DATA :29/10/2007 - 09:37:18 ---------------------------------------- ok...THX ad entrambi \":D\" ---------------------------------------- AUTORE: 1596 DATA :30/10/2007 - 10:51:15 ---------------------------------------- ...come avevo fatto io passando un NaN avevo risolto il problema della rappresentazione grafica, ma poi calcolavo l'integrale e mi dava giustamente un NaN in quanto si trovava a calcolare l'integrale di un NaN... ..ho provato a rifare come dite voi...vi posto il VI, ma dove sbaglio?? \":(\" ...non e' gestito il caso di assenza di zeri... THX ---------------------------------------- AUTORE: 482 DATA :30/10/2007 - 12:36:38 ---------------------------------------- [quote="gianni1":1scsgisp]poi volevo eliminare gli zeri (che si trovano solo alla fine della forma d'onda...[/quote:1scsgisp] Guardando il tuo VI mi è sorto il dubbio... Cos aintendi per "alla fine dell'onda?" intendi ultimi elementi o "vicino" agli ultimi? Perchè ho notato che gli zeri sono sparsi... ---------------------------------------- AUTORE: 1596 DATA :30/10/2007 - 12:53:28 ---------------------------------------- sparsi \":?:\" no, sono solo alla fine di ciascuna forma d'onda...nel 2D array(costante)del front panel io li vedo solo alla fine \":o\" ---------------------------------------- AUTORE: 482 DATA :30/10/2007 - 13:13:46 ---------------------------------------- sorry, li stavo guardando in verticale anzichè in orizzontale! Cmq... Il problema fondamentale del tutto è che togliendo gli zeri, senza rimpiazzarli con niente, ottieni degli array di diversa dimensione. Automaticamente, quando li riunisci in un array a 2 dimensioni (o waveform graph), quelli piu' piccoli diventano grandi quanto il piu' grande e questo viene fatto aggiungendo degli zero. Dovresti cambiare tipo di grafico. Se tu usassi un XY non avresti questo problema. ---------------------------------------- AUTORE: 482 DATA :30/10/2007 - 13:18:42 ---------------------------------------- Questo è un esempio di soluzione ---------------------------------------- AUTORE: 1596 DATA :30/10/2007 - 18:11:04 ---------------------------------------- clap clap clap... \":D\" si, si... quello che volevo... THX... \":wink:\" ---------------------------------------- ================================================================================ Waveform chart ================================================================================ AUTORE: 2270 DATA :27/10/2007 - 20:53:22 ---------------------------------------- Ciao. Il piano del grafico scorre mentre il segnale si impacchetta sulla sinistra. Io invece vorrei far scorrere i due elementi contemporaneamente. Come posso risolvere il problema? ---------------------------------------- AUTORE: 129 DATA :28/10/2007 - 06:45:31 ---------------------------------------- prova togliendo l'autoscale delle x. Se vuoi gestire completamente i grafici ti conviene usare i graph (waveform o meglio XY graph). ---------------------------------------- AUTORE: 2270 DATA :28/10/2007 - 18:04:23 ---------------------------------------- Ho tolto l'autoscale delle x e funziona perfettamente. Grazie. Ciao. ---------------------------------------- ================================================================================ refresh monitor ================================================================================ AUTORE: 482 DATA :29/10/2007 - 08:25:10 ---------------------------------------- ..ma ciao! ho crato un VI che va a ridimensionare dei grafici all'interno dello schermo in base al numero di grafici che si vuole visualizzare. Questo ridimensionamento a volta lascia degli strascichi di "errori di grafica" che semplicemente scrollando con il mouse spariscono. Esiste una funzione che mi permetta di fare un refresh della grafica programmaticamente? ---------------------------------------- AUTORE: 43 DATA :29/10/2007 - 09:19:19 ---------------------------------------- [b:1q7937xk]1) ______________________________________[/b:1q7937xk] Abilitare nelle "Option..." -> "Front Panel" di LabvIEW "Use smooth updates during drawing". Cito ora l' Help di LV7 perchè non ho trovato tale parametro di config. di LV8 [quote="LabVIEW 7.1":1q7937xk][b:1q7937xk]Use smooth updates during drawing[/b:1q7937xk]—Draws data to an offscreen buffer and copies that image to the screen instead of erasing a section of the screen. When LabVIEW updates an object with smooth updates off, it erases the contents of the object and draws the new value, which results in a noticeable flicker. Using smooth updates avoids the flicker that erasing and drawing causes. However, using smooth updates can slow performance and requires more application memory because you have to maintain an offscreen drawing buffer.[/quote:1q7937xk] Però su LAVA si dice che questo par. di cfg è valido anche per LV8 http://wiki.lavag.org/LabVIEW_configura ... ront_Panel Per cui si può Modificare in LabVIEW.ini offscreenUpdates=TRUE [b:1q7937xk]2) ______________________________________[/b:1q7937xk] Per i grafici XY e gli intensity graph (E [b:1q7937xk][u:1q7937xk]NON[/u:1q7937xk][/b:1q7937xk] NEI CHART) Testo dx del mouse "Advanced" --> "Smooth Updates" [quote="LabVIEW 8.2":1q7937xk]Property of WaveformGraph. Draws graph with less flicker, but slightly slower. Mac OS LabVIEW ignores this property. This property is similar to the Advanced»Smooth Updates item on the shortcut menu of a waveform graph. [/quote:1q7937xk] [b:1q7937xk]3) ______________________________________[/b:1q7937xk] Usare il Defer Panel Update che Ti ho già spiegato... bye ---------------------------------------- AUTORE: 482 DATA :29/10/2007 - 12:56:32 ---------------------------------------- 1) Purtroppo non ho trovato quella funzione nella 8.1, nell'help compare la voce ma poi nell'elenco delle opzioni non c'e'. Ho provato ad inserire anualmente il parametro in LabVIEW.ini ma non cambia niente 2) Purtroppo il mio problema non è nella plot area, lo smooth update influenza quella se non sbaglio. 3)Col defer panel update messo in sequenza con la modifica del pannello (prima blocco poi sblocco) sembra funzionare. Grazie mille! \":wink:\" ---------------------------------------- ================================================================================ UNBUNDLE ================================================================================ AUTORE: 1596 DATA :29/10/2007 - 09:36:04 ---------------------------------------- salve a tutti e buon inizio settimana.. ho un 2D array e volevo fare un "unbundle" per avere in modo separato i vettori che lo costituiscono...ma l'unbundle che ho trovato funziona solo per gli 1D array...come posso fare? THX ---------------------------------------- AUTORE: 645 DATA :29/10/2007 - 09:55:37 ---------------------------------------- Puoi selezionare le singole colonne o le singole righe (dipende come sono inseriti i valori nell'array 2d) ed estrarre il vettore corrispondente con il blocco "Array subset". ---------------------------------------- AUTORE: 43 DATA :29/10/2007 - 09:58:37 ---------------------------------------- [quote="gianni1":2ywx7w4d]salve a tutti e buon inizio settimana.. ho un 2D array e volevo fare un "unbundle" per avere in modo separato i vettori che lo costituiscono...ma l'unbundle che ho trovato funziona solo per gli 1D array...come posso fare? THX[/quote:2ywx7w4d] \":lol:\" \":lol:\" \":lol:\" \":lol:\" [b:2ywx7w4d]1)_____________________________________[/b:2ywx7w4d] Se hai una matrice 2D e vuoi ottenere una riga o una colonna di essa basta usare "Index Array" al quale colleghi solo l'indice della riga o della colonna: otterrai un array corrispondente alla riga o alla colonna che avrai indicato... [b:2ywx7w4d]2)_____________________________________[/b:2ywx7w4d] Se crei [b:2ywx7w4d][u:2ywx7w4d]erroneamente[/u:2ywx7w4d][/b:2ywx7w4d] una matrice mentre vorresti ottenere un "array di array" dove ogni riga può avere lunghezza diversa dall'altra, allora devi costruire un "array di cluster di array": in questo modo ogni elemento del Tuo array è un cluster e puoi metterci dentro (nel cluster) un array di dati di lunghezza diversa, l'uno dall'altro Le funzioni da usare in questo caso sono: "Bundle", da usare con un solo ingresso x l'array "Index Array", per prendere l'elemento dall'array di cluster che avrai creato "Unbundle" per estrarre il singolo array di dati dal singolo cluster bye ---------------------------------------- AUTORE: 645 DATA :29/10/2007 - 10:01:44 ---------------------------------------- È vero... non "Array subset" ma "Index array"... ---------------------------------------- AUTORE: 1596 DATA :29/10/2007 - 10:02:34 ---------------------------------------- ...avevo fatto con un index array (o anche come dici tu)..ma poi se ho un 2D array di 20 elementi devo avere 20 index array...volevo fare con un ciclo for ma poi il problema sussiste perche' non so come assegnare a ciascun vettore il suo grafico all'uscita del for...non so se rendo l'idea.... ---------------------------------------- AUTORE: 645 DATA :29/10/2007 - 10:37:08 ---------------------------------------- Hai bisogno di un grafico diverso per ogni array o vuoi visualizzare i dati in un solo grafico (quindi un array alla volta viene visualizzato sul grafico insieme ai precedenti)? ---------------------------------------- AUTORE: 43 DATA :29/10/2007 - 11:28:48 ---------------------------------------- [quote="gianni1":2r3ibaew]...avevo fatto con un index array (o anche come dici tu)..ma poi se ho un 2D array di 20 elementi devo avere 20 index array...volevo fare con un ciclo for ma poi il problema sussiste perche' non so come assegnare a ciascun vettore il suo grafico all'uscita del for...non so se rendo l'idea....[/quote:2r3ibaew] Guarda se questa idea ti piace... puoi scegliere la traccia da rendere visibile ed il suo colore... bye ---------------------------------------- AUTORE: 1596 DATA :29/10/2007 - 13:06:40 ---------------------------------------- [quote="paracarro":2oo9dtwn]Se crei erroneamente una matrice mentre vorresti ottenere un "array di array" dove ogni riga può avere lunghezza diversa dall'altra, allora devi costruire un "array di cluster di array": in questo modo ogni elemento del Tuo array è un cluster e puoi metterci dentro (nel cluster) un array di dati di lunghezza diversa, l'uno dall'altro Le funzioni da usare in questo caso sono: "Bundle", da usare con un solo ingresso x l'array "Index Array", per prendere l'elemento dall'array di cluster che avrai creato "Unbundle" per estrarre il singolo array di dati dal singolo cluster[/quote:2oo9dtwn] ...io ho un "array di array" (cioe' ho un ciclo for che mi da' l'array di array), ma non ho capito come dall'array di array mi costruisco un "array di cluster di array"...non ho accesso al singolo array dell'"array di array" \":(\" [quote="MagicBotolo":2oo9dtwn]Hai bisogno di un grafico diverso per ogni array o vuoi visualizzare i dati in un solo grafico (quindi un array alla volta viene visualizzato sul grafico insieme ai precedenti)?[/quote:2oo9dtwn] per ora so visualizzare i dati in un solo grafico ma ho bisogno di un grafico diverso per ogni array (perche' poi devo elaborare ogni singolo array) [quote="paracarro":2oo9dtwn]Guarda se questa idea ti piace... [/quote:2oo9dtwn] ...la tua idea me gusta mucho \":D\" ... ...la utilizzero' ma il problema rimane... se le tue indicazioni sono corrette, rileggendo anche quello che ti ho scritto sopra (a mio parere manca ancora qualcosina), allora non ho capito! ---------------------------------------- AUTORE: 43 DATA :29/10/2007 - 15:05:39 ---------------------------------------- [quote="gianni1":1kteyl0s]...io ho un "array di array" (cioe' ho un ciclo for che mi da' l'array di array), ma non ho capito come dall'array di array mi costruisco un "array di cluster di array"...non ho accesso al singolo array dell'"array di array" \":(\" [/quote:1kteyl0s] Non sapendo quale fosse il tuo problema... Tu parli di UNBUNDLE ma hai solamente una matrice di valori... In effetti l'array di cluster di array può avere senso in alcune situazioni e non avere senso in altre. Guarda il mio VI di esempio x capire. Nel caso specifico delle acquisizioni, [u:1kteyl0s][b:1kteyl0s]se[/b:1kteyl0s][/u:1kteyl0s] il campionamento viene fatto con una freq. uguale x tutti i tuoi canali , e l'inizio /fine acquisizione sono stabilite ugualmente x tutti i canali, allora ha senso SEMPRE parlare di una matrice 2D di valori. Se le grandezze campionate sono disomogenee (temperature, pressioni) sono acquisite con. freq. diverse (temperature ogni 5 sec., press ogni 1 sec.), possono iniziare o terminare in momenti diverse, ma sono correlate nel tempo, allora può aver senso unire tutti questi dati in array di cluster di array. Per graficare ogni grandezza nello stesso indicatore grafico, si deve usare un XY graph. E non basterebbe avere il valore acquisito Y ma anche un valore assoluto temporale X associato ad esso. I dati cioè sarebbero rappresentati da coppie di array in ogni cluster (o X0 + deltaX...) [quote="gianni1":1kteyl0s]per ora so visualizzare i dati in un solo grafico ma ho bisogno di un grafico diverso per ogni array (perche' poi devo elaborare ogni singolo array)[/quote:1kteyl0s] Cosa ci devi fare? Scrivere i dati in file? ricercare i Picchi? misurare tempi? filtrare le forma d'onda acquisite? o calcolarne la FFT? cmq ti consiglio di non usare 1 grafico per ogni grandezza: molto spesso le misure è meglio vederle correlate in un unico grafico. Tra l'altro puoi usare scale diverse nello stesso grafico. bye ---------------------------------------- AUTORE: 1596 DATA :29/10/2007 - 18:50:35 ---------------------------------------- THX per l'esempio... \":D\" [quote="paracarro":3rikkeyy]Cosa ci devi fare? Scrivere i dati in file? ricercare i Picchi? misurare tempi? filtrare le forma d'onda acquisite? o calcolarne la FFT? [/quote:3rikkeyy] ...calcolarci l'integrale! ..comunque il mio problema e' molto piu' semplice di quelli che hai elencato... io acquisisco una sola forma d'onda e questa me la spezzetto a modo mio...ogni pezzetto lo volevo graficare e elaborare separatamente... con l'index array lo riesco a fare ma non volevo nel Block Diagram un index array lungo 20 cm ma pensavo ad un ciclo for cosi' avrei avuto anche un dimensionamento giusto grazie all'indice N del ciclo e non magari settare l'index array con 20 valori quando poi in uscita potrei averne 8 oppure 18... ---------------------------------------- AUTORE: 43 DATA :30/10/2007 - 11:34:54 ---------------------------------------- [quote="gianni1":1io04fja]io acquisisco una sola forma d'onda e questa me la spezzetto a modo mio...ogni pezzetto lo volevo graficare e elaborare separatamente...[/quote:1io04fja] Se da un array di valori vuoi ottenere una matrice (suddividere in "righe" di uguale lunghezza i tuoi dati), puoi usare la ottima funzione "Reshape Array". Permettimi di non farti l'esempio. Usa l'help on line x saperne di +. bye ---------------------------------------- ================================================================================ Registrazione dati su file excel ================================================================================ AUTORE: 2278 DATA :29/10/2007 - 16:27:18 ---------------------------------------- Un caro saluto a tutti. Prima di esporre il mio problema mi presento in poche righe. Sono uno studente di Ingegneria gestionale dell'Università di Padova e sto svolgendo una tesi che che riguarda la misurazione di una forza in un processo di microtrafilatura. La forza viene rilevata da una cella di carico collegata al modulo NI 9237 del cdaq 9172. Le mie conoscenze di labview all'inizio dell'esperienza erano praticamente nulle. Il mio intento è quello di realizzare un programma che visualizzi il grafico della forza e registri i dati in un file excel. Niente di più semplice direte voi...eppure ecco che sorgono diversi problemi sicuramente legati alla mia ignoranza in materia. Il file allegato è quello che sono riuscito a produrre fino adesso. Non riesco a capire perche nel momento in cui salvo i dati sul file i primi 4 5 dati relativi alla colonna dei tempi mi danno un intervallo di 0.00062 secondi. Dopo questi dati il range si "aggiusta" in base al valore del number of sample che inserisco. Se inserisco Number of sample 30 avrò 150 campioni. Per quale motivo? Come posso avere una regolazione dei campioni più lineare. Confido in un aiuto da parte vostra e ringrazio anticipatamente per la pazienza. ---------------------------------------- AUTORE: 2278 DATA :31/10/2007 - 09:18:45 ---------------------------------------- Nessuno riesce almeno ad indirizzarmi per risolvere il problenma? Grazie ancora! ---------------------------------------- AUTORE: 927 DATA :31/10/2007 - 10:23:08 ---------------------------------------- Non ho il DAQ installato, ma a prima vista sembra che manchi una temporizzazione del ciclo. Prova a mettere un Wait dentro il While ---------------------------------------- AUTORE: 2278 DATA :31/10/2007 - 16:40:19 ---------------------------------------- Grazie mille, spero di risolvere...appena sono il laboratorio provo. ---------------------------------------- ================================================================================ Ottenere i timestamps di un trigger su USB-6251 ================================================================================ AUTORE: 2279 DATA :30/10/2007 - 09:18:06 ---------------------------------------- Salve a tutti!! \":D\" Vi spiego il mio problema \":roll:\" ho una scheda usb 6251 e devo acquisire un segnale analogico (uno sweep di frequenza) per effettuare un misura della risposta in frequenza di una linea. Su tale linea è presente anche l'alimentazione a 50hz che eccita delle non linearità. Ciò che voglio fare è acquisire continuamente i campioni analogici provenienti dalla scheda (al massimo rate possibile, ovvero 1,25MS/s), cosa che già faccio, ma in più, utilizzando un circuitino che mi genera un impulso ttl all'inizio del periodo dei 50Hz dell'alimentazione, entrando in un ingresso digitale come trigger, voglio anche registrare gli istanti temporali in cui avvengono i fronti del segnale digitale a 50HZ. è possibile fare una lettura di un canale analogico ed uno digitale insieme \":?\" , mantenendo il sampling rate al massimo per l'analogico?? inoltre esistono funzioni che permettano di ottenere come output direttamente i valori degli istanti in cui avvenono i fronti del trigger? Spero di essere stato sufficientemente chiaro. Grazie mille della gentilezza \":D\" \":D\" ---------------------------------------- AUTORE: 43 DATA :30/10/2007 - 11:22:33 ---------------------------------------- [quote="Alle":1tr8i3rm]... Ciò che voglio fare è acquisire continuamente i campioni analogici provenienti dalla scheda (al massimo rate possibile, ovvero 1,25MS/s), cosa che già faccio, ma in più, utilizzando un circuitino che mi genera un impulso ttl all'inizio del periodo dei 50Hz dell'alimentazione, entrando in un ingresso digitale come trigger, voglio anche registrare gli istanti temporali in cui avvengono i fronti del segnale digitale a 50HZ.[/quote:1tr8i3rm] Secondo me non è possibile. Dovresti usare una scheda oscilloscopio nel quale campioni con velocità folle 2 canali analogici: il tuo canale analogico e lo stesso trigger. In questo modo hai una correlazione temporale corretta tra le 2 forme d'onda. Però... Oltre all'ovvio problema di doverti procurare una scheda oscilloscopio(:)), dubito che ne esista una con la stessa risoluzione ADC (16 bit) di quella che usi attulmente. Dubito anche che possa essere una scheda di acq. USB.... [quote="Alle":1tr8i3rm]è possibile fare una lettura di un canale analogico ed uno digitale insieme \":?\" , mantenendo il sampling rate al massimo per l'analogico??[/quote:1tr8i3rm] [u:1tr8i3rm]Forse[/u:1tr8i3rm] sì. Ma non so come potresti correlarli nel tempo. [quote="Alle":1tr8i3rm] inoltre esistono funzioni che permettano di ottenere come output direttamente i valori degli istanti in cui avvenono i fronti del trigger?[/quote:1tr8i3rm] Non mi risulta. Ma tu vorresti un [u:1tr8i3rm]timestamp assoluto[/u:1tr8i3rm](data, ore-min.-sec.-.-msec.) su ogni singolo valore acquisito? Se il campionamento è fatto seguendo un clock, devi solo avere il valore assoluto del tempo iniziale. Ma riferito a cosa, all'orologio di windows? bah! ciao. ---------------------------------------- AUTORE: 2279 DATA :30/10/2007 - 11:45:10 ---------------------------------------- Grazie delle info, paracarro! Penso anche io che sia un gran casino... In ogni caso, facendo una acqisizione continous sul canale analogico (con buffer di Nsample) ottengo dei dati di tipo wavwform che contengono: l'array dei valori degli N sample, il valore di deltaT cioè 1/Freq campionamentro, e Time0, ovvero l'istante iniziale (dd/mm/aaa 00.00.00,0000) il quale mi da un rif temporale per tutti gli N campioni. Io vorrei ruscire contemporaneamente a mangiare i campioni analogici valutare l'ingresso del trigger, in modo da ottenere un riferimento temporale come quello descritto sopra ad ogni scatto. Avevo pensato di entrare in analogico con i 50 Hz e elaborare direttamente i dati per per trovare gli zero crossing, ma così facendo sono costretto a dimezzare la frequenza di campionameto del segnale che mi serve e campionare a velocità pazzesca anche i 50 HZ (correggetemi se sbaglio). PS: non si può campionare 2 in analogici, uno a 1MS/s e uno a 50KS/s contemporaneamente, giusto?? ---------------------------------------- AUTORE: 43 DATA :30/10/2007 - 12:05:52 ---------------------------------------- [quote="Alle":1d8131ru]... Avevo pensato di entrare in analogico con i 50 Hz e elaborare direttamente i dati per per trovare gli zero crossing, ma così facendo sono costretto a dimezzare la frequenza di campionameto del segnale che mi serve e campionare a velocità pazzesca anche i 50 HZ (correggetemi se sbaglio). PS: non si può campionare 2 in analogici, uno a 1MS/s e uno a 50KS/s contemporaneamente, giusto??[/quote:1d8131ru] Mi sembra esistano schede di N.I. che hanno a bordo + ADC. In questo caso ogni ADC ha il suo clock e si possono fare cose un pò + strane. Nella stragrande maggioranza dei casi(anche il tuo), l'ADC è uno solo. La Freq. Max di campionamento deve essere percò suddivisa x ogni canale che vuoi acquisire. X avere freq. diverse di campionamento prova a replicare lo stesso segnale su + ingressi analogici in modo che lo stesso canale sia acq. con una freq. maggiore di un' altro. poi usi la funzione interleave array... basta vado a mangiare!!!! bye ---------------------------------------- AUTORE: 2279 DATA :30/10/2007 - 13:17:03 ---------------------------------------- [quote="paracarro":1izlgv2q] X avere freq. diverse di campionamento prova a replicare lo stesso segnale su + ingressi analogici in modo che lo stesso canale sia acq. con una freq. maggiore di un' altro. poi usi la funzione interleave array... bye[/quote:1izlgv2q] SAGACE!!!! potrebbe essere un'ottima idea! Spero solo che tutte quelle operazioni le riesca a fare in "real Time" perchè ho visto che se uso freq di campionamento così alte il PC fa fatica a starci dietro: di salvare i campioni su disco non se ne parla (buffer overflow all'istante) e sono costretto a calcolare Ampiezza Freq e THD istante per istante e poi salvare solo quelle alla fine del processo! [quote="paracarro":1izlgv2q] basta vado a mangiare!!!! [/quote:1izlgv2q] Buon appetito e Grazie mille!! Intanto provo poi vi farò sapere! ---------------------------------------- AUTORE: 43 DATA :30/10/2007 - 14:24:05 ---------------------------------------- guarda un po' sta simulazione ---------------------------------------- AUTORE: 43 DATA :30/10/2007 - 15:05:43 ---------------------------------------- [quote="Alle":2d5mryht]Spero solo che tutte quelle operazioni le riesca a fare in "real Time" perchè ho visto che se uso freq di campionamento così alte il PC fa fatica a starci dietro: di salvare i campioni su disco non se ne parla (buffer overflow all'istante) e sono costretto a calcolare Ampiezza Freq e THD istante per istante e poi salvare solo quelle alla fine del processo![/quote:2d5mryht] Non ho mai usato un trabiccolo USB come il tuo, ma sembra che N.I. sfrutti USB2 come nessun altro. Per quanto riguarda le acq. in continua di solito,(ove applicabile) utilizzo la legge del 1/2 sec.: cioè scarico dal buffer circolare gestito da NIDAQ l'equivalente di 1/2 sec. di acq x volta (500000 campioni nel tuo caso). Ovviamente se vuoi graficare l'acq, devi decimare i campioni, ma questo ti viene abbastanza comodo; i calcoli invece falli su tutti i campioni acquisiti, ed infine per il salvataggio, usa una coda.... SE FOSSI VENUTO ALL' ILVG DAY "ALBERTO.L" TI AVREBBE SPIEGATO COME FARE!!! bye ---------------------------------------- AUTORE: 2279 DATA :30/10/2007 - 15:34:06 ---------------------------------------- [quote="paracarro":2w22n563] Per quanto riguarda le acq. in continua di solito,(ove applicabile) utilizzo la legge del 1/2 sec.: cioè scarico dal buffer circolare gestito da NIDAQ l'equivalente di 1/2 sec. di acq x volta (500000 campioni nel tuo caso). Ovviamente se vuoi graficare l'acq, devi decimare i campioni, ma questo ti viene abbastanza comodo; i calcoli invece falli su tutti i campioni acquisiti, ed infine per il salvataggio, usa una coda.... SE FOSSI VENUTO ALL' ILVG DAY "ALBERTO.L" TI AVREBBE SPIEGATO COME FARE!!! bye[/quote:2w22n563] Già lo sto facendo, ovvero utilizzo dei buffer di 1M sample. Ho provato a utilizzare più ingressi, ma non riesce a gestire frequenze elevate, ovvero dopo i 400k si arrabbia e mi dice che "Measurements: ADC conversion attempted before the prior conversion was complete". Ne sto provando un po di tutti i colori... Io avrei bisogno di associare l'istante in cui c'è esattamente l'inizio dell'onda a 50 Hz (oppure il rising edge di un segnale digitale metto un circuitino per una conversione digitale) e associarlo al corrispondente campione del segnale analogico (ovvero quello campionato nell'istante in cui avviene il passaggio)... Ora sto provando a vedere se è possibile acquisire un canale analogico e unodigitale insieme... Mah... mi sto deprimendo... \":roll:\" \":(\" \":cry:\" \":cry:\" Grazie per l'interessamento Paracarro! ma il tuo file non riesco a vederlo perchè ho una versione di labview più vecchia.. \":(\" \":roll:\" ---------------------------------------- AUTORE: 2279 DATA :30/10/2007 - 15:56:11 ---------------------------------------- Altra idea: Se utilizzazzi il trigger a 50 HZ per far partire l'aquisizione e nello stesso tempo eliminare quella precedente, in modo da ottenere strisciate di campioni che durano esattamente una forma d'onda a 50Hz? Sto vaneggiando?? Povero me... ---------------------------------------- ================================================================================ domanda ================================================================================ AUTORE: 2277 DATA :30/10/2007 - 09:57:04 ---------------------------------------- come si fa a vedere da una webcam mi spiego meglio, voglio fare una vi che mostra a video le imagini catturate da una webcam usb.grazie sono un principiante.ciao ---------------------------------------- AUTORE: 129 DATA :01/11/2007 - 15:37:54 ---------------------------------------- Potresti interfacciarti al driver fornito dal costruttore con un call library node, oppure sfruttando active x puoi aprire una sessione in netmeeting. Se usi la funzione cerca nel forum dovresti trovare anche qualche info in più, prova a cercare con webcam. ---------------------------------------- ================================================================================ CAN Blocco CWrite ================================================================================ AUTORE: 2196 DATA :31/10/2007 - 08:57:22 ---------------------------------------- Ciao a tutti, qualcuno sa come funziona questo blocco ? Nel senso che una volta impostati i dati con CCOnfig e COpen è la scheda a farsi carico di trasmettere periodicamente i frame del CAN ? ---------------------------------------- AUTORE: 43 DATA :31/10/2007 - 15:14:30 ---------------------------------------- [quote="Buddace":2s2fgtba]Ciao a tutti, qualcuno sa come funziona questo blocco ? Nel senso che una volta impostati i dati con CCOnfig e COpen è la scheda a farsi carico di trasmettere periodicamente i frame del CAN ?[/quote:2s2fgtba] Abbi pietà.... A quale libreria ti riferisci? E' una libreria N.I.? L'hai scaricato da un sito non bene precisato? E' a corredo di qualche HW (scheda, strumento o altro)? NON puoi postare una simile richiesta e sperare che qualcuno Ti dia una risposta plausibile.... bye buon halloween anche a te!!!! ---------------------------------------- ================================================================================ come catturare da webcam usb in labview ================================================================================ AUTORE: 2277 DATA :31/10/2007 - 09:21:49 ---------------------------------------- salve a tutti, volevo realizzare un'applicazione in labview che cattura immagini da webcam usb. Sono andato sul sito:www.mindtrove.info/oss/lvw.html e ho scaricato la libreria open source e l'exe ma mi cattura solo immagini nere.Se qualcuno mi puo dare una dritta ---------------------------------------- AUTORE: 2149 DATA :05/12/2007 - 13:56:29 ---------------------------------------- Rispolvero questo topic perchè anche io mi sono trovato davanti allo stesso problema. Ho scaricato i driver USB da http://sine.ni.com/devzone/cda/epd/p/id/5030 e sono riuscito a scrivere un programmino semplice semplice che acquisisce delle immagini senza restituire errori ma quando le vado a visualizzare sono tutte nere (controllato anche con matlab!) \":cry:\" Se qualcuno ha anche una vaga idea di cosa possa essere il problema è ben accetto... Ciao a tutti Franz ---------------------------------------- AUTORE: 384 DATA :07/12/2007 - 00:56:39 ---------------------------------------- Hai verificato che i pixel siano tutti effettivamente zero? A me sembra strano!!! Un potenziale problema può essere il formatto binario con cui i pixel arrivano dalla telecamera usb e poi vengono convertiti in automatico per display in LabView. Se, per esempio, dalla telecamera arrivano 8 bit e poi li converti in intero U32, stai mappando 256 livelli in (più di) 4 miliardi, il che corrisponde a vedere tutto nero, anche se effettivamente i pixel non sono zero.   ---------------------------------------- ================================================================================ Attributi di una select ================================================================================ AUTORE: 1871 DATA :31/10/2007 - 13:43:24 ---------------------------------------- Se da labview invio ad un DB una select del tipo select * from TABELLA mi ritornano i valori di TABELLA, ma coma faccio a sapere anche i nomi delle colonne? ---------------------------------------- AUTORE: 43 DATA :31/10/2007 - 14:02:48 ---------------------------------------- [quote="Trombetta":3gfmy9wp]Se da labview invio ad un DB una select del tipo select * from TABELLA mi ritornano i valori di TABELLA, ma coma faccio a sapere anche i nomi delle colonne?[/quote:3gfmy9wp] Penso si debba usare un altro comando tipo {DESCRIBE | DESC} tbl_name [col_name | wild] Perciò DESCRIBE TABELLA Questo con Mysql.... ma non è un problema LabVIEW... Direi che è un problema OT bye ---------------------------------------- AUTORE: 1871 DATA :31/10/2007 - 14:34:10 ---------------------------------------- Pensavo si potesse settare qualche parametro in labview in modo da ottenere anche gli attributi.... In effetti, DESCRIBE TABELLA sembra funzionare, ma se lo eseguo via labview mi dà errore... Altri suggerimenti? Grazie \":roll:\" ---------------------------------------- AUTORE: 1871 DATA :31/10/2007 - 15:02:19 ---------------------------------------- Ok, la risolvo così: ogni volta che faccio una select su tab_name eseguo anche questa: select column_name from USER_tab_columns where table_Name = UPPER('tab_name') order by column_id asc che ritorna appunto i nomi delle colonne. Non è il massimo della praticità, ma molto meglio avere i risultati di una select con il rispettivo nome di colonna anzichè senza, no? Ciao. E perdonatemi per aver sconfinato nell'SQL! (ma questa cosa può comunque essere utile a qualcuno \":wink:\" ) ---------------------------------------- AUTORE: 43 DATA :31/10/2007 - 15:07:23 ---------------------------------------- [quote="Trombetta":2scl69fn]... E perdonatemi per aver sconfinato nell'SQL! (ma questa cosa può comunque essere utile a qualcuno \":wink:\" )[/quote:2scl69fn] ok! perdonato! buon halloween!! bye ---------------------------------------- AUTORE: 1871 DATA :14/12/2007 - 09:36:10 ---------------------------------------- Scusate se resuscito questo vecchio post, ma è giusto per mettere i puntini sulle i....... In realtà per la classe ADODB._recordset esiste la proprietà "Fields", che appunto permette di lavorare sugli attributi di una select. Come spesso accade la soluzione è molto più semplice di quello che si crede.... ---------------------------------------- ================================================================================ USB/DMX512 pilotaggio ================================================================================ AUTORE: 2280 DATA :31/10/2007 - 14:58:13 ---------------------------------------- Devo poter pilotare un interfaccia USB/DMX512 con Labview 6.1. Purtroppo la vede come una "com" e non riesco a impostare la trasmissione col protocollo DMX512. L'unico esempio trovato e in LW8.5 e utilizza la "FTD2XX.dll". qualcuno dispone di esempi in LW6.1 funzionanti? Grazie ---------------------------------------- ================================================================================ RICERCA MAX E MIN in ARRAY ================================================================================ AUTORE: 314 DATA :01/11/2007 - 13:45:36 ---------------------------------------- Salve a tutti. Ho il seguente problema: devo ricercare all' interno di un array in cui sono riportati 65536 valori il valore max e min (e relativo indice). All'interno dell'array però ci sono più max e min perchè non è altro che l'insieme dei punti di una funzione periodica la cui frequenza varia nel tempo. Ho pensato che potrei ricercare il primo dei max e il primo dei min con la funzione "Array MAx Min". Poi "tagliare" l'array appena scandito con la funzione "Array Subset" usando come indice quello del minimo appena incontrato. In seguito ricomincio a scandire l'array tagliato e così via fino alla fine dell'array. Quello che non riesco a fare però e riportare all'ingresso del loop l'array "tagliato". Come si fa? esiste una maniera più semplice?? Grazie dell'aiuto. ---------------------------------------- AUTORE: 129 DATA :01/11/2007 - 15:35:28 ---------------------------------------- Devi usare uno shift register ---------------------------------------- AUTORE: 314 DATA :01/11/2007 - 18:04:27 ---------------------------------------- Non esiste funzione dal nome Shift register (o simili)... o almeno io non l'ho trovata... Potresti indicarmi il nome esatto? Grazie ---------------------------------------- AUTORE: 1596 DATA :01/11/2007 - 18:42:49 ---------------------------------------- ...vai sul bordo del for loop, clikka il tasto destro del mouse--->add shift register... ---------------------------------------- AUTORE: 645 DATA :02/11/2007 - 10:21:03 ---------------------------------------- Lo shift register è un modo per passare valori tra un'iterazione e l'altra del ciclo. Cerca sul forum di ILVG per maggiori informazioni... ---------------------------------------- AUTORE: 314 DATA :02/11/2007 - 14:23:26 ---------------------------------------- grazie per le informazioni. Adesso proverò a mettere in pratica questo shift register. Approfitto della disponibilità anche per chiedere se qualcuno ha mai usato uno di quei while-loop a tempo che ci sono nella versione 8 per sapere se sono performanti oppure è il caso che mi faccia un while-loop a tempo da solo? Grazie ancora. ---------------------------------------- ================================================================================ Trasmissione in standard DMX512 ================================================================================ AUTORE: 2280 DATA :02/11/2007 - 00:27:41 ---------------------------------------- Devo poter pilotare un interfaccia USB/DMX512 con Labview 6.1. Purtroppo la vede come una "com" e non riesco a impostare la trasmissione col protocollo DMX512. L'unico esempio trovato e in LW8.5 e utilizza la "FTD2XX.dll". qualcuno dispone di esempi in LW6.1 funzionanti? Grazie _________________ -------------------------- mmarcotti@gmail.com __________________ ---------------------------------------- AUTORE: 43 DATA :07/11/2007 - 15:29:40 ---------------------------------------- [quote="gon_italia":lwvoqzf6]Devo poter pilotare un interfaccia USB/DMX512 con Labview 6.1. Purtroppo la vede come una "com" e non riesco a impostare la trasmissione col protocollo DMX512. L'unico esempio trovato e in LW8.5 e utilizza la "FTD2XX.dll". qualcuno dispone di esempi in LW6.1 funzionanti? Grazie [/quote:lwvoqzf6] Peccato che in questi giorni Ale914 è preso dal piccolo Riccardo nato da poco, altrimenti "salirebbe in cattedra" e ci illuminerebbe tutti su questo argomento. Io ti posso dire che se non conosci il protocollo seriale potresti usare la DLL (bleah!!! preferisco la prima ipotesi) conoscendo le funzioni implementate in essa... bye ---------------------------------------- ================================================================================ Acquisizione elevato numero di dati ================================================================================ AUTORE: 2282 DATA :04/11/2007 - 21:55:07 ---------------------------------------- Salve a tutti, vi illustro il mio problema. Ho realizzato un sistema che mi permette di rilevare la corrente di carica di una batteria collegata ad un alimentatore e la tensione, sempre ai capi della batteria. Il mio programma deve visualizzare e salvare su di un file, i dati che provengono dalla scheda di acquisizione analogica, una DAQ. Le specifiche richieste sono due: la prima è che sia possibile mettere in evidenza i ripple di tensione e corrente e per fare questo devo impostare una frequenza di campionamento elevata, la seconda è che le prove di carica/scarica devono durare almeno 12- 24 ore. Come faccio a visualizzare un così elevato numero di dati su di un chart senza incontrare problemi di gestione di RAM? Ed inoltre come faccio a zoomare il segnale visualizzato in real time se ad ogni campione aggiunto al grafico questo torna alla visualizzazione completa? Per risolvere il secondo problema avevo pensato di far partire un vi ausiliario (alla pressione di un bottone) che carichi da file i dati fino a li raccolti e visualizzarli su un graph però sopra i 40 MB comincio ad incontrare problemi, ovvero rischia di piantarsi il programma. Qualcuno è in grado di aiutarmi? ---------------------------------------- AUTORE: 2168 DATA :09/11/2007 - 09:45:25 ---------------------------------------- Spero di aver capito il problema ma un po' ne dubito. Per quanto riguarda la seconda parte, se nel grafico togli la funzione Autoscale X non si aggiorna il grafico ad ogni nuovo punto e puoi zoomare. Per quanto riguarad il primo problema, è proprio necessario visualizzare tutti quei punti su un grafico? Non è meglio salvarli su file e poi visualizzarli in seguito? Scusa se forse non ti ho aiutato molto ---------------------------------------- AUTORE: 2282 DATA :09/11/2007 - 09:54:16 ---------------------------------------- In effetti ho constatato che l'unica opzione possibile è analizzare i dati successivamente all'acquisizione, caricandoli da file. Ti è mai capitato di utilizzare i blocchi per configurare le Daq? ---------------------------------------- AUTORE: 2168 DATA :09/11/2007 - 13:05:08 ---------------------------------------- [quote="zurla_andrea"]In effetti ho constatato che l'unica opzione possibile è analizzare i dati successivamente all'acquisizione, caricandoli da file. Ti è mai capitato di utilizzare i blocchi per configurare le Daq?[/quote] No, direi di no. Pensavo comunque che probabilmente che anche l'idea di fare in modo che un'altra VI o la stessa legga il file non è male. Io ad esempio guardo spesso il file dati mentre il VI è ancora in esecuzione, non da nessuno problema e ovviamente è aggiornato all'ultimo dato preso nel momento in cui l'hai aperto. In quel caso puoi anche aprirlo semplicemente con Excel o Matlab. ---------------------------------------- AUTORE: 2282 DATA :09/11/2007 - 13:10:57 ---------------------------------------- All'inizio avevo provato a consultare il file durante l'acquisizione (lanciando un vi appositamente creato per l'analisi), ma purtroppo, con le scarse risorse dellla cpu della ni, perdo un sacco di campioni. Ora uso due cicli while bufferizzati nei quali da una parte acquisisco e dall'altra vado a scrivere su file. ---------------------------------------- AUTORE: 2168 DATA :09/11/2007 - 13:13:31 ---------------------------------------- [quote="zurla_andrea"]All'inizio avevo provato a consultare il file durante l'acquisizione (lanciando un vi appositamente creato per l'analisi), ma purtroppo, con le scarse risorse dellla cpu della ni, perdo un sacco di campioni. Ora uso due cicli while bufferizzati nei quali da una parte acquisisco e dall'altra vado a scrivere su file.[/quote] Così facendo hai risolto il problema? ---------------------------------------- AUTORE: 2282 DATA :09/11/2007 - 13:18:40 ---------------------------------------- In parte sì, cmq non posso sfruttare al massimo le potenzialità della scheda di acquisizione per ragioni HW/SW della cpu. Nella mia applicazione, il programma potrebbe funzionare anche una settimana con file dati binari dalle dimensioni superiori ai 100Mb, per cui tutto diventa molto critico e debbo accettare diversi compromessi. Sono dovuto passare dai file testo ai binari, dalla rappresentazione continua dei dati run time ad una temporizzata (con un altro ciclo while bufferizzato in parallelo agli altri due). ---------------------------------------- ================================================================================ rappresentaz. grafica di dati acquisiti tramite com seriale ================================================================================ AUTORE: 2283 DATA :05/11/2007 - 18:25:27 ---------------------------------------- Salve, non so è questa la sezione giusta. Devo rappresentare graficamente dati acquisiti tramite porta com seriale. Ogni campione ha 8 bit, e viene preceduto nella trasmissione da un bit di start e termina con un bit di stop. I bit viaggiano a 115200 bit al secondo. E' essenzialmente un oscillocopio digitale. Come posso fare? ---------------------------------------- AUTORE: 73 DATA :12/11/2007 - 09:29:00 ---------------------------------------- Non penso sia la sezione giusta,ma non ti preoccupare qualcuno penserà a spostarlo. Per quanto riguarda il tuo problema avrai quello che leggi dalla seriale in una stringa, con il blocchetto serch to string cerchi il codice ASCI del bit di start (che è sempre lo stesso ) e poi prendi l'uscita dal blocco che ti da la stringa seguente a ciò che ha trovato. A quel punto con lo stesso blocco cerchi il bit di stop e poi questa volta prendi la stringa precedente, quello è il tuo dato che puoi convertire in un n° Ciao ---------------------------------------- ================================================================================ rappresentaz. grafica di dati acquisiti da com seriale ================================================================================ AUTORE: 2283 DATA :05/11/2007 - 18:26:44 ---------------------------------------- Salve, non so è questa la sezione giusta. Devo rappresentare graficamente dati acquisiti tramite porta com seriale. Ogni campione ha 8 bit, e viene preceduto nella trasmissione da un bit di start e termina con un bit di stop. I bit viaggiano a 115200 bit al secondo. E' essenzialmente un oscillocopio digitale. Come posso fare? ---------------------------------------- AUTORE: 314 DATA :05/11/2007 - 21:06:57 ---------------------------------------- Una maniera è usare "in port.vi" passandogli l'indirizzo del registro della porta seriale a cui vuoi accedere e per graficare usare un waveform graph passandogli il valori dei campioni e l'istante temporale associato (ottenibile attraverso il tempo di campionamento del segnale). Se comunque cerci questo argomento nel forum troverai molti argomenti al riguardo. E' stato un argomento molto gettonato. Attento perchè se non usi una memoria, la banda dell'oscillocopio è solo 7,2 KHz (115200/8)/2. Buon Lavoro ---------------------------------------- ================================================================================ Simulazione di Strumenti ================================================================================ AUTORE: 2168 DATA :06/11/2007 - 11:38:37 ---------------------------------------- Ho un problema che mi sembra essere molto difficile da risolvere ma spero che qualcuno di voi sappia darmi qualche dritta! Ho un VI molto molto grande che gestisce un intero apparato di misure in un laboratorio di criogenia. Ogni volta che apporto qualche modifica al VI è necessario testarlo e il problema è che in criogenia i tempi e i costi sono molto alti. Per testare il mio programma è necessario aspettare da uno a due giorni che lo strumento sia alla temperatura giusta e se poi qualcosa non va si deve ricominciare quasi tutto da capo, inoltre il programma per intero deve controllare il processo per una settimana di fila per poter eseguire tutte le subVI. La domanda è questa: è possibile creare delle VI che simulino i comportamenti di ogni strumento collegato alla mia GPIB e che rispondano ai comandi reali con risposte reali? Ad esempio se la mia VI interroga un multimetro per misurare la V, vorrei una VI che a tale domanda mi riesca a rispondere con un valore che ovviamwente dipenderà da una serie di cose che dovrò impostare. In questo modo potrei risparmiare molto tempo. Se non sono stato molto chiaro non esitate a chiedere. Grazie ---------------------------------------- AUTORE: 1050 DATA :06/11/2007 - 12:36:26 ---------------------------------------- Che io sappia no se non nel caso di IVI driver. leggi qui: http://digital.ni.com/public.nsf/allkb/ ... BD004F0A22 ciao ---------------------------------------- ================================================================================ Write to spreadsheet: le virgole e i punti... ================================================================================ AUTORE: 2279 DATA :06/11/2007 - 13:29:33 ---------------------------------------- Ciao a tutti. Volevo porvi il seguente quesito: quando labview scrive su uno spreadsheet inserisce le virgole utilizzando appunto la virgola. è possibile imporre di inserire il punto, visto che la notazione internazionale vuole il punto ed inoltre, volendo acquisire il file in matlab, sono necessari i punti? ---------------------------------------- AUTORE: 2168 DATA :07/11/2007 - 09:13:55 ---------------------------------------- Credo che il fatto che ci sia la virgola al posto del punto per indicare il separatore decimale, sia dovuto alle tue impostazioni nel sistema operativo in IMPOSTAZIONI INTERNAZIONALI se hai WINDOWS. Io infatti non ho mai avuto questi problemi e i numeri in ingresso su "write to spreadsheet file" li leggo su excel con il punto. Lo stesso vale per Matlab. ---------------------------------------- AUTORE: 645 DATA :07/11/2007 - 09:45:43 ---------------------------------------- Concordo con Nicky: la gestione dei separatori delle migliaia e dei decimali dipende dalle Impostazioni Internazionali regolabili dal Pannello di Controllo (per Windows). ---------------------------------------- AUTORE: 43 DATA :07/11/2007 - 15:12:44 ---------------------------------------- [quote="nicky79":2mw1uk7p]Credo che il fatto che ci sia la virgola al posto del punto per indicare il separatore decimale, sia dovuto alle tue impostazioni nel sistema operativo in IMPOSTAZIONI INTERNAZIONALI se hai WINDOWS. Io infatti non ho mai avuto questi problemi e i numeri in ingresso su "write to spreadsheet file" li leggo su excel con il punto. Lo stesso vale per Matlab.[/quote:2mw1uk7p] Io consiglierei di leggersi l'help on-line di LabVIEW cercando: Use Localized decimal Point, che non riguarda solo la visualizzazione dei numeri in virgola mobile nei controlli, ma piuttosto tutti i VI coinvolti dalle conversioni numero --> stringa e stringa --> numero. Direi che alcuni comportamenti in merito dipendono strettamente dalla versione di LabVIEW utilizzata.. bye ---------------------------------------- AUTORE: 43 DATA :07/11/2007 - 15:23:24 ---------------------------------------- Dimenticavo io disabilito sempre l'opzione "use localized decimal point" così uso sempre il punto come separatore. In tutte le situazioni. E se qualcuno si permette di usare Excel con la localizzazzione tipo "Italiana" cioè con la virgola al posto del punto, per analizzare un file prodotto da un'applicazione LV è un suo problema...\";)\";) ---------------------------------------- ================================================================================ Waveform chart capriccioso ================================================================================ AUTORE: 2168 DATA :07/11/2007 - 09:21:13 ---------------------------------------- Ciao a tutti, ho un problema con un Waveform Chart in una VI in cui ce ne sono 3 contemporaneamente. Negli ultimi due anni non mi ha mai dato problemi ma ultimamente sparisce la legenda sull'asse delle y ed entrambe le scale numerate. Inoltre a volte rimane bloccato l'aggiornamento dati. Se uso la funzione "replace" e ne metto uno nuovo tutto torna a posto, ma dopo un po' ricominca. Ho notato che tutto è cominciato quando un multimetro, che però viene letto su un altro grafico, ha iniziato ad avere problemi. Possibile che un problema sugli strumenti vada ad incidere sul VI? ---------------------------------------- ================================================================================ Passaggio dati tra 2 VI ================================================================================ AUTORE: 424 DATA :07/11/2007 - 09:42:27 ---------------------------------------- Ciao a tutti! Ho una curiosità: vorrei separare in 2 VI il software che sto facendo, in modo che un VI si occupi dell'acquisizione di un certo dato e l'altro VI della parte grafica e di gestione della seriale. Qualcuno di voi sa spiegarmi come eseguire il passaggio del dato acquisito da un VI all'altro? Gratias, resto trepidante in attesa di risposte \":D\" ---------------------------------------- AUTORE: 645 DATA :07/11/2007 - 09:48:47 ---------------------------------------- Ci sono vari metodi: puoi cercare qualcosa sulle variabili globali. Anche se penso che la soluzione migliore sia quella di usare un VI solo contenente due cicli: uno a "Priorità critica" per acquisire, l'altro a "Priorità normale" per graficare i dati. Tra i due cicli puoi passare i dati usando le variabili globali (puoi cercare qualcosa sulle Shared Variables introdotte con le ultime versioni di LabView), le code o altre strutture. Cerca nel forum, tra gli articoli (nella sezione articoli ne trovi uno sul parallelismo che può darti qualche dritta) o sul sito della National argomenti riguardanti la gestione di cicli paralleli con priorità diversa. Cerca anche strutture "Client Server"... ---------------------------------------- ================================================================================ Disistallare LV runtime ================================================================================ AUTORE: 1033 DATA :07/11/2007 - 12:41:11 ---------------------------------------- Ciao, ho un problema con LV runtime. Ho una macchina su cui sono secondo MAX sono istallati LV runtime 8.2, 8.0, 7.1, mentre secondo aggiungi e rimuovi programmi di windows sono istallati LV runtime 6.1, 7.1.1. HO una dll che per funzionare mi chiede di istallare LVruntime7.1.1 \":!:\" \":?:\" HO scaricato dal sito NI un LVruntimeengine 7.1.1 ma essendoci istallate versioni successive non esegue l'istallazione. Come faccio a rimuovere le versioni successive se non le vedo da aggiungi e rimuovi programmi di windows? Grazie a tutti. Torna in cima ---------------------------------------- AUTORE: 645 DATA :07/11/2007 - 13:12:51 ---------------------------------------- Puoi provare a cercare un programma che gestisce l'installazione dei file... tipo Ccleaner (cerca in rete)... e vedere se con questo riesci a disinstallare ciò che non ti serve. Ma se hai il RunTime aggiornato non dovresti avere problemi... cioè, se un programma chiede il RunTime 7.1 non dovrebbe dare problemi con un RunTimee più aggiornato... sempre che questo sia davvero installato e non sia una visione del MAX... ---------------------------------------- AUTORE: 43 DATA :07/11/2007 - 14:43:09 ---------------------------------------- [quote="Altomare":1avipwf2]Ciao, ho un problema con LV runtime. Ho una macchina su cui sono secondo MAX sono istallati LV runtime 8.2, 8.0, 7.1, mentre secondo aggiungi e rimuovi programmi di windows sono istallati LV runtime 6.1, 7.1.1. HO una dll che per funzionare mi chiede di istallare LVruntime7.1.1 \":!:\" \":?:\" HO scaricato dal sito NI un LVruntimeengine 7.1.1 ma essendoci istallate versioni successive non esegue l'istallazione. Come faccio a rimuovere le versioni successive se non le vedo da aggiungi e rimuovi programmi di windows? Grazie a tutti. Torna in cima[/quote:1avipwf2] Dunque, quello che Max Ti segnala dovrebbe trovarsi anche in "installazione applicazioni" di windows, ma, non è esplicitato direttamente dell'elenco applicazioni installate. Si deve guardare all'interno di "National Instrument Software" (che appare fra le applicazioni installate) premendo il tasto [cambia/rimuovi]. per quanto riguarda una verifica manuale... lasciando perdere i registri di windows... Ti posso dire che: Sul PC che sto attualmente usando ho installato le versioni di sviluppo LV 7.1, LV 8.2.1 e LV 8.5(che non uso) + applicazioni compilate probabilmente con altre versioni di LabVIEW + ho disinstallato LabVIEW 8.0. MAX mi dice che ho installato, oltre alle versioni sopracitate, il motore runtime di LV 6.1, 7.0, 7.1, 8.0.1, 8.2.1, 8.5.0 da "National Instrument Software" in installazione applicazioni, mi dice che, oltre alle correte versioni di LabVIEW installate sono installati: RTEngine 7.0, 7.1.1 Mah!!! In C:\Program Files\National Instruments\Shared\LabVIEW Run-Time\ trovo le seguenti sottodir [6.1] [7.0] [7.1] [8.0] [8.2] [8.5] analizzando il file "lvapp.rsc" presente in tutte queste dir (nelle versioni + recenti si trova in una ulteriore sottodir [English]), e cercando in esso la stringa "National Instrument" (ripetere la ricerca fino alla fine del file...), scopro che ci sono dei riferimenti a versioni di runtime diverse da quelle indicate dal nome della sotto dir [6.1] 6.1 (anno 2001) [7.0] 7.0 (anno 2003) [7.1] 7.1.1 (anno 2004) [8.0] 8.0.1 (anno 2005) [8.2] 8.2.1 (anno 2007) [8.5] 8.5 (anno 2007) Che dire!!?!! Boh!! bye ---------------------------------------- ================================================================================ Tasto X in alto a destra ================================================================================ AUTORE: 482 DATA :07/11/2007 - 13:43:53 ---------------------------------------- ...ma ciao! Mi è sorto un dubbio riguardante il tasto X in alto a destra. Non conosco bene il suo funzionamento. QUel pulsante arresta l'applicazione nello stato in cui è o genera qualche operazione particolare? E' possibile monitorarlo in modo da chiudere correttamente il programma quando viene premuto? O meglio...ho troavto nell'event structure la fuznione "panel close" ma funziona solo quella con la freccia rossa. Com'e' che funzionano ste frecce che non mi ricordo piu'? Il problema è che io vorrei che questo vi terminasse l'esecuzione prima di chiudersi, solo che l'evento Timeout e Panel Close con la freccia rossa non sono compatibili nello stesso case e quindi non posso farlo. ---------------------------------------- AUTORE: 43 DATA :07/11/2007 - 15:04:24 ---------------------------------------- [quote="gepponline":3ouwce8t]... O meglio...ho troavto nell'event structure la fuznione "panel close" ma funziona solo quella con la freccia rossa. Com'e' che funzionano ste frecce che non mi ricordo piu'? [/quote:3ouwce8t] Le frecce VERDI sono eventi che si scatenano DOPO che è successo qualcosa sul controllo. Le frecce ROSSE sono eventi Preventivi cioè si scatenano in anticipo rispetto al cambiamento: infatti questi eventi hanno anche dei "parametri in uscita", che devono confermare o meno quanto successo nell'interfaccia. Per esempio se premo un tasto cu un controllo di tipo "string control" e gestisco l'evento Key Down (VERDE) gestirò l'evento dopo che è apparso il tasto nel controllo. Se gestisco l'evento Key Down? (ROSSO) gestirò l'evento prima che venga processato a video il tasto premuto per cui posso impedire che il tasto appaia, o far apparire un altro tasto (premendo "a" ottengo nella stringa "b" x es...) In questo esempio la seq. di generazione eventi: 1) (evento ROSSO x LV) l'operatore ha interagito con il controllo 2) Il controllo processa l'evento (se confermato) 3) (evento VERDE) evento processato dal controllo (se confermato) [quote="gepponline":3ouwce8t] Il problema è che io vorrei che questo vi terminasse l'esecuzione prima di chiudersi, solo che l'evento Timeout e Panel Close con la freccia rossa non sono compatibili nello stesso case e quindi non posso farlo.[/quote:3ouwce8t] Un a alternativa potrebbe essere quella di disabilitare la X di chiusura finestra (si disabilita anche l' ALT-F4)o da VI Properties-> windows appearance -->customize--> "Allow user to close window" oppure programmaticamente con la proprietà del pannello "Closable" bye ---------------------------------------- AUTORE: 482 DATA :07/11/2007 - 15:51:55 ---------------------------------------- eh, lo so, ma io VOGLIO che l'utente possa chiuderlo. Allo stesso twempo vorrei essere sicuro che il vi finisca il ciclo e vorrei evitare di crearmi un bottone personalizzato per chiudere la finestra. MA quindi confermi che il tasto X arresta l'esecuzione nel momento in cui viene premuto? E la memoria viene liberata? ---------------------------------------- ================================================================================ Interpolazione lineare ================================================================================ AUTORE: 2287 DATA :08/11/2007 - 14:30:48 ---------------------------------------- ciao, sono alle prime armi con labview e devo creare un vi per poter interfacciare il pc ad un analizzatore di spettro. Devo però inserire dei valori di alcuni parametri (attenuazione, etc)prima di visualizzare la traccia. Il problema è che ho un dato numero di valori di attenuazione riferiti a varie frequenze e devo interpolarli linearmente. Come posso riuscire a fare questo? ---------------------------------------- AUTORE: 645 DATA :08/11/2007 - 22:39:22 ---------------------------------------- In LabView 8.2 puoi guardare nella paletta "Mathematics" ( http://zone.ni.com/reference/en-XX/help ... xtrap_pal/ )... Può servire? ---------------------------------------- ================================================================================ Ancora creazione eseguibile ================================================================================ AUTORE: 2168 DATA :09/11/2007 - 13:21:47 ---------------------------------------- Ho provato a creare un esgeuibile e mi è successo che se lo creo su un PC va tutto bene, se lo porto su un altro, su cui è anche installata la stessa versione di LV (7.1) non funziona. Ho provato poi a creare l'eseguibile su quello stesso PC e non funziona lo stesso. La domanda è questa: ci sono particolari impostazioni di sistema che impediscono la creazione di eseguibili? ---------------------------------------- AUTORE: 645 DATA :09/11/2007 - 14:34:44 ---------------------------------------- Ci sono librerie collegate? Per esempio quelle per la comunicazione con strumenti esterni? Se sì devi aggiungerle durante la creazione dell'eseguibile e conviene creare un installer... ---------------------------------------- ================================================================================ Salvare subVI ================================================================================ AUTORE: 2168 DATA :09/11/2007 - 13:41:19 ---------------------------------------- Ciao a tutti, ho un problema con le subVi nel senso che sto modificando una VI piuttosto grande che contiene molte subVI in diverse librerie. Quando modifico il file e vorrei salvarlo su un'altra cartella, mi salva semplicemente quello principale. Come faccio a fargli salvare anche tutto ciò che contiene senza dover andare a prendere ogni subVI e inserirle in una nuova libreria? Devo per forza copiare le librerie? ---------------------------------------- ================================================================================ BAR CODE carattere "J" ================================================================================ AUTORE: 2215 DATA :09/11/2007 - 15:26:35 ---------------------------------------- Ciao! Ho collegato un Bar code in emulazione di tastiera. mi metto su un control con autofocus, e, una volta su 20 mi compare il mio codice con una J alla fine. Se provo a scannerizzare lo stesso codice su blocco note di Windows me lo da sempre giusto Vi è capitato qualcosa di simile? Grazie! ---------------------------------------- ================================================================================ Database e Labview8 ================================================================================ AUTORE: 2288 DATA :10/11/2007 - 11:35:12 ---------------------------------------- Ciao, sono alle prime armi con labView e sto cercando di generare un piccolo programmino per la creazione e lettura si DB ... almeno per farmi un'idea di come funziona il DB. Ora vi chiedo se eseguo la procedura correttamente: [img:3c0p85uv]http://www.mirview.it/labview/immagine.jpg[/img:3c0p85uv] Di fatto ottengo due file dopo aver fatto girare un po' il codice: prova.TDM (2kb) prova.tdx (37kb) Ora pongo un paio di domande: come mai ottengo due file? come posso creare una rapida procedura per leggere il contenuto del db creato? Ho dato un occhiata anche ai vostri articoli sui database ma sono incuriosito dal sistema integrato in labview. Molte grazie dell'aiuto e un grazie speciale ai creatori del sito \":D\" ciao mir ---------------------------------------- AUTORE: 645 DATA :10/11/2007 - 15:37:07 ---------------------------------------- I file TDM non sono veri e propri database, sono strutture file che LabView mette a disposizione per combinare la velocità di accesso e leggerezza di memorizzazione (file binari) con la possibilità di assegnare ad ogni grandezza una descrizione. Puoi cercare qualche info sul sito della National. I database sono strutture diverse, tabelle collegate da relazioni dove puoi eseguire "domande" per ottenere le "riposte" che desideri (i dati che cerchi). ---------------------------------------- AUTORE: 2288 DATA :11/11/2007 - 17:57:12 ---------------------------------------- Capisco ... ma per usare db tipo access devo installare il LabVIEW Database Connectivity Toolkit? ---------------------------------------- AUTORE: 645 DATA :12/11/2007 - 08:43:56 ---------------------------------------- Puoi usare il database toolkit oppure puoi cercare di accedere al database tramite le istruzioni che trovi nelle guide sui database presenti nella sezione articoli del sito ILVG. Infatti le soluzioni presentate sono generali e possono essere adattate a diversi tipi di database. ---------------------------------------- AUTORE: 2288 DATA :12/11/2007 - 09:40:37 ---------------------------------------- Si ma ho visto il toolkit quanto costa … possibile che un semplice pacchetto per l'interazione con un DB venga così tanto mannaggia! … mi chidevo se posso usare la libreria di LabSQL di Jeff Travis anche per database access. \":roll:\" ---------------------------------------- AUTORE: 645 DATA :12/11/2007 - 09:59:39 ---------------------------------------- Dovresti poter usare la libreria free anche per Access... Ti conviene fare qualche prova... poi facci sapere! \":D\" ---------------------------------------- AUTORE: 2288 DATA :12/11/2007 - 15:20:56 ---------------------------------------- Ho dei seri problemi da far girare questa roba ... da quello che ho capito non si deve installare niente se non il MDAC (scaricata la versione 2.8 da Microsoft). Lancio un esempio che si trova nelle cartelle ma niente ... mi genera un sacco di errori (ne riporto alcuni): SubVI is non exectuble You have connected two terminals of different types Invalid method ... Qualcuno ha installato questo prodotto su labView 8 e può darmi una mano? molte grazie mir ---------------------------------------- AUTORE: 2288 DATA :12/11/2007 - 15:53:58 ---------------------------------------- Forse dipende che NON installo la libreria: nella guida del creatore dice semplicemente: [quote:1f5fi9gs]To install LabSQL, simply place the "LabSQL ADO VIs" in any convenient directory. For ease of use, we suggest you create a custom palette under the "User Libraries" LabVIEW palette that links to this directory, so you will have easy access to the ADO VIs[/quote:1f5fi9gs] io ho copiato tutto sotto user.lib ma non sembra comunque funzionare nulla. Sono nelle vostre mani. grazie mir ---------------------------------------- AUTORE: 2288 DATA :13/11/2007 - 17:30:40 ---------------------------------------- Vabbè ho abbandonato la libreria e mi sono letto per bene gli articoli nel sito ... però mi trovo a sbattere contro un muro: ho Vista originale con office 2007 ma quanto voglio attivare il microsoft activex data object nell'ADODB connection non trovo la voce corretta. Dove diavolo posso trovare il microsoft activex data object ? Veramente grazie per l'aiuto! mir ---------------------------------------- AUTORE: 2288 DATA :13/11/2007 - 17:40:00 ---------------------------------------- Qualcuno ha a disposizione i file che vengono sviluppati negli articoli tra Labview e Database? Ne ho veramente bisogno. grazie mir ---------------------------------------- AUTORE: 482 DATA :14/11/2007 - 07:15:46 ---------------------------------------- ma...ma... Scusate eh, i database Access possono essere interrogati e creati senza nessun tipo di libreria ma semplicemente utilizzando gli activex. Risulta una cosa anche abbastanza semplice perchè si tratta di aprire e chiudere database e lanciare "runSQL" per interrogare o popolare il database. Ovviamente questo comporta il fatto che si conosca la sintassi SQL. ---------------------------------------- AUTORE: 2288 DATA :14/11/2007 - 08:38:55 ---------------------------------------- io penso di perdermi in un bicchiere d'acqua a sto punto ... il fatto è che labview lo uso da due settimane ma devo prima (richiesta del mio docente) capire bene il legame tra labview e db ... mi trovo quindi a sbattere contro ad un muro. Ho quindi necessità di un esempietto che funzioni giusto per capirne le potenzialità .... qualcosa di banale tipo leggere un db od eseguire un sql. VERAMENTE VERAMENTE grazie dell'aiuto! mir ---------------------------------------- AUTORE: 482 DATA :14/11/2007 - 13:36:01 ---------------------------------------- Purtroppo non ho tempo di realizzarti un esempio e neanche di andartelo a cercare nei meandri dei miei archivi, cmq puoi dare un occhiata a questi link dal sito national: http://digital.ni.com/public.nsf/allkb/ ... E8007C51CD http://zone.ni.com/devzone/cda/epd/p/id/640 ---------------------------------------- AUTORE: 2288 DATA :15/11/2007 - 10:21:51 ---------------------------------------- Scusate ma ho scaricato il file da [url:144tct0l]http://zone.ni.com/devzone/cda/epd/p/id/640[/url:144tct0l] e proprio non vuole funzionare! Ecco qua le finestre per aiutarmi a CAPIRE! finestra con gli elementi [img:144tct0l]http://www.mirview.it/labview/lab1.jpg[/img:144tct0l] Errori [img:144tct0l]http://www.mirview.it/labview/lab2.jpg[/img:144tct0l] Ma è normale che tante connessioni sia interrotte? E questo è l'originale senza farci assolutamente nulla. [img:144tct0l]http://www.mirview.it/labview/lab3.jpg[/img:144tct0l] Oggi cerco di provarlo su un XP x' non vorrei mai dipendesse da Vista! AIUTO! ---------------------------------------- AUTORE: 482 DATA :15/11/2007 - 10:56:03 ---------------------------------------- Prova a dare un occhiata a questo tipo di struttura. Io all'inizio usavo questo sistema per comunicare con access (non mi ricordo le funzioni esatte, per questo esempio ho messo insieme qualcosa a caso). Poi son passato ad ADO per evitare di legarmi alla versione di Office e di db. ---------------------------------------- AUTORE: 2288 DATA :16/11/2007 - 11:05:59 ---------------------------------------- Il problema è questo ... sotto Vista non trovo le librerie di DAO ... qualcuno sa dirmi come fare a trovarle od installarle? grazie mir ---------------------------------------- AUTORE: 645 DATA :16/11/2007 - 11:55:55 ---------------------------------------- Qui trovi un link http://www.taxonline.it/730/contenuti/s ... TALE=TGCOM per l'installazione delle librerie DAO ("Installazione DAO") e ADO (devi installare MDAC). Il fatto è che non so se le librerie DAO siano supportate da Vista: le librerie ADO sono nate per sostituire le DAO e permettere al programmatore di slegarsi da alcune restrizioni (se non sbaglio le DAO sono legate ad Access mentre le ADO posso essere usate per interfacciarsi ad un driver ODBC con la possibilità di parlare con tipi diversi di database). ---------------------------------------- AUTORE: 2288 DATA :16/11/2007 - 12:56:01 ---------------------------------------- ho installato le dao ma cercando le librerie non le trovo ... sotto che nome potrebbero essere secondo? ---------------------------------------- AUTORE: 645 DATA :16/11/2007 - 17:02:33 ---------------------------------------- Ma tu cerchi le DAO da LabView? ---------------------------------------- AUTORE: 2288 DATA :16/11/2007 - 17:41:15 ---------------------------------------- si ---------------------------------------- AUTORE: 129 DATA :17/11/2007 - 21:40:49 ---------------------------------------- Nell'elenco dovrebbero avere un nome del tipo Mcrosoft Access x.x Object library version x.x x.x sono riferimenti a versioni che possono differire a seconda della versione di access installata. Sono molto limitanti, non passando per un driver d'interfaccia come le DAO (su ODBC) sono compatibili solo con Access. ---------------------------------------- AUTORE: 2288 DATA :19/11/2007 - 15:08:39 ---------------------------------------- Ok ho Microsoft Access 12.0 Object Library Version 9.0 ... ma ancora niente .... devo scegliere uno specifico object? molte grazie davvero! ---------------------------------------- AUTORE: 129 DATA :23/11/2007 - 07:15:45 ---------------------------------------- Certo devi usare application (Access.Application.9) e poi crei un metodo o una propietà cliccando dx sul controllo refnum dal diagramma e selezioni create/property for access application class o method ..... ---------------------------------------- ================================================================================ DAQmxRead-Counter ================================================================================ AUTORE: 1596 DATA :12/11/2007 - 08:48:20 ---------------------------------------- salve a tutti, faccio girare il VI e dopo un po' si blocca e mi da' il seguente errore in cui mi suggerirebbe anke come operare. A dire il vero non so mettere in pratica i suggerimenti che mi da' \":(\" ..qualcuno saprebbe aiutarmi? grazie! p.s. per ulteriori chiarimenti posso postarvi anche il VI. ---------------------------------------- ================================================================================ event structure ================================================================================ AUTORE: 2168 DATA :12/11/2007 - 11:21:08 ---------------------------------------- Ciao a tutti, ho scoperto da poco l'uso dell'event structure ma non riesco a farlo funzionare come vorrei. La mia necessità è quella di scrivere su un file ogni volta che un valore viene calcolato. Per fare ciò ho creato un file di prova ma non mi scrive nè il file nè mi mette i dati su grafico. vi mostro il file di prova che ho creato. P.S. Ho LV 7.1 quindi se volete modificarlo con versioni superiori e poi rimandarmelo non ho la possibilità di guardarlo. Grazie ---------------------------------------- AUTORE: 2168 DATA :12/11/2007 - 11:23:39 ---------------------------------------- scusate, ecco il file ---------------------------------------- AUTORE: 680 DATA :12/11/2007 - 14:04:42 ---------------------------------------- innanzi tutto, la struttura ad eventi vieni eseguita una volta solo poichè e messa fuori dal ciclo while... poi, la struttura ad eventi funziona quanto succede qualcosa sul front panel... (es. pressione del mouse, valore cambiato su un CONTROLLO).. per fare quello che vuoi tu, devi o utilizzare gli eventi dinamici, oppure potresti creare uno shift register sul ciclo while e quando il nuovo valore è diverso dal precedente, visualizzarlo sul grafico.... buon lavoro.... ---------------------------------------- AUTORE: 2168 DATA :12/11/2007 - 14:09:39 ---------------------------------------- [quote="linux120"]... oppure potresti creare uno shift register sul ciclo while e quando il nuovo valore è diverso dal precedente, visualizzarlo sul grafico.... [/quote] In effetti ho usato come soluzione proprio lo shift register. Sapresti dirmi cosa sono e come usare gli eventi dinamici? ---------------------------------------- AUTORE: 645 DATA :12/11/2007 - 14:51:50 ---------------------------------------- Nel programma che hai allegato potrebbe essere sufficiente utilizzare un array per memorizzare tutto... o se riempi l'array solo quando la deviazione è maggiore di 0.5 (tramite un case) puoi scrivere nel file solo determinati valori alla fine del ciclo. Te lo dico perchè la struttura ad eventi è molto potente ma bisogna usarla quando davvero serve... Devi inserirla in un ciclo (come diceva linux120) e "collegarla" ad eventi particolari (la modifica di un controllo, la pressione di un pulsante...). La struttura ad eventi ti permette di reagire ad un evento eseguendo la parte di codice riferita solo a quell'evento. Anzichè usare gli shift register potevi monitorare l'evento "Change value" dell'indicatore numerico (nel quale inserire il valore calcolato). Quando questo valore cambia memorizzi. In pratica aggiungi alla struttura ad eventi il caso "Value change" riferito all'indicatore numerico e nel frame di questo evento inserisci il codice per memorizzare il dato. ---------------------------------------- AUTORE: 2168 DATA :13/11/2007 - 09:26:24 ---------------------------------------- In realtà il VI che ho mandato a voi è solo un mio trainer per usare l'event structure su un altro programma che voglio che scriva su file ogni volta che trova che il drift dei dati che sto misurando ha la pendenza entro dei limiti che stabilisco io. La mia idea era quella di far scrivere ogni volta che veniva misurata la pendenza, quindi andare proprio a controllare l'indicatore quando varia. Per quanto riguarda ciò che mi diceva Magic Botolo non mi è molto chiaro come fare a monitorare l'evento, sai darmi qualche delucidazione in più. grazie ---------------------------------------- ================================================================================ programma acquisizione segnale, guida semplice? aiutatemi ================================================================================ AUTORE: 2290 DATA :12/11/2007 - 15:29:15 ---------------------------------------- salve a tutti, sono nuovo del mondo labview e non sono ancora abile, anzi, ancora so fare ben poco devo creare lo schema a blocchi di un prog per acquisire dei dati da un oscilloscopio tramite una scheda di acquisizione della ni (6250)! dove posso trovare una guida per capire come muovermi, per capire cosa fare, come muovermi ecc? ho già letto i due manuali di labview, quelli terra terra che danno insieme al programma, ma non mi son d'aiuto... sapete aiutarmi voi? per favore è urgente ---------------------------------------- AUTORE: 645 DATA :12/11/2007 - 16:03:21 ---------------------------------------- Guarda qualche esempio di acquisizione nella cartella Examples di LabView e poi cerca nel forum e sul sito della National ( www.ni.com ) le indicazioni per acquisire segnali da schede DAQ (con DAQmx). ---------------------------------------- ================================================================================ Lettura/elaborazione dati in parallelo ================================================================================ AUTORE: 314 DATA :12/11/2007 - 22:49:53 ---------------------------------------- Salve a tutti. Il problema è il seguente: acquisco dati dalla porta USB (64Kbyte alla volta)tramite una scheda sviluppata da me. I dati devono essere acquisiti anche per 2 ore di seguito. Se elaboro i dati durante la fase di lettura la velocità di comunicazione della porta USB scende notevolmente. Ho provato a bufferizzare con un while ma dopo un po' si blocca tutto(memoria esuarita...). Se faccio 2 VI, uno che scrive su un file dati e l'altro che ci legge ed elabora il problema sarebbe aggirato? Inoltre, non si creerebbe un conflitto nella scrittura/lettura contemporanea dello stesso file? Esistono esempi al riguardo Qual'è il tipo di file più indicato all'uso? La CPU in questo caso deve essere molto potente e quanto può influire sulle prestazioni del sistema? Spero in un vostro sugerimento. ---------------------------------------- AUTORE: 645 DATA :12/11/2007 - 22:52:11 ---------------------------------------- Prova a realizzare una struttura a cici paralleli (trovi informazioni nella sezione articoli del sito ILVG): un ciclo acquisisce, l'altro analizza i dati ogni tanto... ---------------------------------------- AUTORE: 314 DATA :13/11/2007 - 16:32:59 ---------------------------------------- Ho seguito il tuo suggerimento è ho pensato bene di usare delle code. Scrivo in una coda in maniera continua, ovvero ogni volta che ho un dato, e vi leggo ogni 200 ms. In questa maniera viene assicurata una maggiore velocità dato che la durata del ciclo di elaborazione non dipende da quello di acquisiszione. Siccome non ho molta dimestichezza delle code, ho incontrato delle difficoltà, ovvero riesco a prelevare solo il primo elemento e gli altri no. I VI per la creazione delle code, estrazione, inserzione e distruzione di una coda sono stati copiati dall' esempio nell'articolo. Invio il file in questione...sono convinto che è un banale errore ma non lo trovo...se ci potresti dare un'occhiata te ne sarei grato. Ciao! ---------------------------------------- AUTORE: 314 DATA :13/11/2007 - 22:15:48 ---------------------------------------- Mi correggo. Sono riuscito a creare e leggere da una coda non usando i VI dell'esempio. Quello che mi lascia perplesso però è che la comunicazione sulla porta continua a rallentare. Forse ci mette troppo a mettere in coda i 64Kb che arriva sulla porta all'interno della coda perchè se non aspetto almeno 250ms la coda la trovo vuota e non posso prenderci elementi. Può essere una questione anche di velocità del processore del pC e della memoria? perchè sto usando labview 8.0 su un pc x86 family. Quale sarebbe la macchina ideale su cui far girare LV8 a prestazioni ottimali? Ciao ciao ---------------------------------------- ================================================================================ problema acquisizione continua ================================================================================ AUTORE: 2292 DATA :13/11/2007 - 11:24:35 ---------------------------------------- ciao a tutti, ho da poco "imparato" ad usare labview, ma ho un problema che non riesco a risolvere: faccio un'acquisizione continua utilizzando il DAQ assistant e vorrei salvare i dati in più file di testo. Ho provato ad utilizzare il Write Meas Data, ma se accodo i vari file creati si nota la discontinuità tra i vari file. ho provato anche ad impostare un acquisizione di N campioni all'interno di un ciclo while, e salvare i dati in più spreedsheet, ma il risultato è lo stesso. Avete qualche suggerimento? Grazie in anticipo ---------------------------------------- AUTORE: 2168 DATA :15/11/2007 - 11:43:25 ---------------------------------------- [quote="alexx"]ciao a tutti, ho da poco "imparato" ad usare labview, ma ho un problema che non riesco a risolvere: faccio un'acquisizione continua utilizzando il DAQ assistant e vorrei salvare i dati in più file di testo. Ho provato ad utilizzare il Write Meas Data, ma se accodo i vari file creati si nota la discontinuità tra i vari file. ho provato anche ad impostare un acquisizione di N campioni all'interno di un ciclo while, e salvare i dati in più spreedsheet, ma il risultato è lo stesso. Avete qualche suggerimento? Grazie in anticipo[/quote] Cosa intendi per discontinuità tra i file? Io scrivo continuamente su più file ma non ho mai avuto problemi. Se ho capito il problema, potresti comunque raggirarlo facendo scrivere tutti i dati su un unico file e poi piuttosto fai un VI che li separa secondo le tue esigenze, ma comunque il nocciolo della questione resta: cosa intendi per discontinuità, temporale? ---------------------------------------- AUTORE: 645 DATA :15/11/2007 - 17:04:34 ---------------------------------------- Intendi che tra una serie di dati e l'altra viene inserita l'intestazione? ---------------------------------------- ================================================================================ Web sever con vi remoto ================================================================================ AUTORE: 1771 DATA :14/11/2007 - 18:34:04 ---------------------------------------- Ciao a tutti vorrei sapere come usare in maniera appropriata il parametro: IPADDRESS (COMPUTERNAME se sulla rete è attiva un dns) che permette al web server di labview di recuperare il Vi (da visualizzare sul browser) da un computer remoto Secondo questo documento (in inglese) sembrerebbe possibile [url] http://zone.ni.com/reference/en-XX/help ... _html_doc/ [/url] ho provato in questo modo : [code:22ld0zao] ... <PARAM name="LVFPPVINAME" value="VI_NAME"> <PARAM name="IPADDRESS" value="http://192.168.1.100"> <EMBED SRC="http://192.168.1.100/.LV_FrontPanelProtocol.rpvi82" LVFPPVINAME="VI_NAME" IPADDRESS="http://192.168.1.100" TYPE="application/x-labviewrpvi82" WIDTH=x HEIGHT=x PLUGINSPAGE="http://digital.ni.com/express.nsf/express?openagent&code=ex3e33&"></EMBED> </OBJECT> ma non mi funziona. Qualche idea? Grazie Daniele[/code:22ld0zao] ---------------------------------------- ================================================================================ Problema con NXT Terminal: aiuto! ================================================================================ AUTORE: 2274 DATA :15/11/2007 - 09:35:39 ---------------------------------------- Ciao a tutti! Volevo sapere se qualcuno di voi può darmi una mano con l'NXT terminal di Labview in quanto non riesco proprio a connettermi tramite bluetooth... Soprattutto: il terminal va utilizzato se la connessione bluetooth tra il PC e l'NXT è già stata avviata oppure bisogna attendere che sia il terminal stesso a crearla?... Mi spiego meglio: una volta che creo una connessione bluetooth dall'NXT al mio PC tramite una COM virtuale (e fin qui ci siamo), se avvio il terminal nella finestra principale ("Find NXT") e clicco su "Scan" riesco effettivamente a vedere il dispositivo e lo stato risulta "Available". Non appena cerco di connettermi cliccando su "Connect", il programma va in timeout, lo stato passa ad "Unavailable" e mi dà sempre il seguente errore: Problem: "Connection to NXT device was lost." Suggestions: "- Retry connecting to the NXT device in the Find NXT window." "- Make sure the current NXT device is turned on." Non credo che sia un problema di driver bluetooth perchè ho i driver Widcomm e a quanto pare dovrebbero essere compatibili con tutto... Vi sarei davvero grato se riusciste a darmi qualche dritta! Grazie anticipatamente! ---------------------------------------- AUTORE: 2274 DATA :15/11/2007 - 09:36:22 ---------------------------------------- Ah, dimenticavo: è possibile collegare più NXT ad un solo PC sempre tramite bluetooth? ---------------------------------------- AUTORE: 482 DATA :15/11/2007 - 10:02:02 ---------------------------------------- No, se ne hai piu' di uno, uno lo devi regalare a me cosi' ti eviti il problema! \"8)\" ---------------------------------------- AUTORE: 2274 DATA :15/11/2007 - 16:27:14 ---------------------------------------- \":lol:\" ... Un'altra domandina: ma se io volessi connettere tra loro più di due NXT tramite Bluetooth posso farlo?... \":?\" Oppure (soprattutto) se io fossi connesso con un NXT dal mio PC tramite Bluetooth potrei connettere l'NXT ad altri NXT sempre tramite Bluetooth?... \":?\" Grazie dell'aiuto! ---------------------------------------- AUTORE: 645 DATA :15/11/2007 - 17:10:45 ---------------------------------------- Sai qual è il problema? Che in questo momento in ILVG ci sono pochi Lego NXT per risponderti... come ai ad averne così tanti? Capperi, io non riesco a trovarlo... Non so risponderti in maniera certa ma puoi guardare sul sito della Lego NXT dove ci sono le guide al prodotto. Ce n'è una sul Bluetooth: non so di cosa parla ma magari tratta anche l'argomento connessioni... http://mindstorms.lego.com/Overview/NXTreme.aspx ... Tu vorresti realizzare un ponte radio tra il pc e i mattoncini NXT usandone uno come ripetitore centrale? Da quello che ho visto (al ILVG day ne avevamo due... troppo belli... \":D\" ) sicuramente puoi connettere un NXT al pc con Bluetooth senza troppe difficoltà (o almeno, a me è sembrato che chi ha programmato ha usato due blocchetti LabView e ha risolto), per quanto riguarda la comunicazione tra NXT non saprei: con altri dispositivi si può, quindi magari anche qui si riesce... ILVGiani con LegoNXT fatevi sotto! ---------------------------------------- ================================================================================ Simulate Arbitrary Signal ================================================================================ AUTORE: 2270 DATA :15/11/2007 - 15:50:23 ---------------------------------------- Ciao a tutti. Vorrei sapere come posso inserire i dati che fissano il segnale all' interno del Simulate Arbitrary Signal dal front panel. Grazie. ---------------------------------------- ================================================================================ Vision Acquisition Software x vista_32bit ================================================================================ AUTORE: 2293 DATA :15/11/2007 - 16:00:45 ---------------------------------------- Salve a tutti, sto provando a scaricare del sito della ni Vision Acquisition Software x vista, ho notato che esiste la versione solo per processori a 64bit, mi chiedo come posso fare dato che possiedo un processore a 32bt? Grazie \":roll:\" ---------------------------------------- ================================================================================ Somma e media di array ================================================================================ AUTORE: 2241 DATA :15/11/2007 - 18:43:25 ---------------------------------------- Ciao a tutti. Vi illustro il mio problema. Simulo dei segnali utilizzando 10 "cicli for". Per ogni step registro una colonna che viene salvata automaticamente su un file txt. Alla fine nel mio file ci sono tante colonne quanti sono gli steps. Come faccio a sommare tutte queste colonne, farne la media e salvarla in un altro file (formato da una sola colonna)? La cosa potrebbe essere fatta in excel ma un foglio excel riesce a contenere al maximo 256 colonne e nel mio caso il file txt finale ha circa 2000 colonne. Marius javascript:emoticon(':o') Surprised PS. Utilizzo Labview 7.1[/b] ---------------------------------------- AUTORE: 645 DATA :15/11/2007 - 23:09:22 ---------------------------------------- Perchè memorizzi ad ogni fine ciclo? Puoi inserire i nuovi valori in un unico array e alla fine dei 10 cicli (o quanti saranno) lavorare sul mega array creato per fare i calcoli che ti servono (somma e media si possono fare con un pizzico di programmazione o sfruttando qualche blocco di LabView) e memorizzi nel file solo il risultato (per esempio i valori di media e somma anzichè tutto il vettore). Altrimenti penso che la soluzione migliore sia leggere tutti ii dati dal file e riportarli in LabView in un array e poi fare le operazioni che ti servono. ---------------------------------------- AUTORE: 2241 DATA :16/11/2007 - 10:20:39 ---------------------------------------- Ciao MagicBotolo, memorizzo ad ogni ciclo perche', all'inizio, con tale simulatore dovevo confrontare tra loro i diversi risultati. Now, invece, lo scopo e' quello di ottenere la somma dei diversi steps e trovarne la media. Seguiro' i tuoi consigli e ti faro' sapere. Nel frattempo, grazie della risposta. Ciao Marius \":o\" ---------------------------------------- ================================================================================ levelberg-marquardt non linear fit ================================================================================ AUTORE: 2296 DATA :15/11/2007 - 14:11:03 ---------------------------------------- Ciao, sono un neofita di Labview. Devo operare un fit su un set di dati (x,y) secondo l'equazione y=a*(1+b*(x-c))+d*exp((x-c)/d) in cui a, b, d sono i parametri da determinare mediante il fit e c è una quantità che viene determinata a partire dai dati e che deve essere mantenuta costante all'interno del fit. Mi pare di aver capito di non poter usare Nonlinear Curve Fit LM Formula String (giusto), ma non sono riuscito a capire come usare Nonlinear Curve Fit LM per fare ciò che ho descritto. ---------------------------------------- AUTORE: 2270 DATA :17/11/2007 - 22:15:49 ---------------------------------------- Prova ad analizzare l'esempio che trovi al seguente indirizzo: find example>analyzing and processing signals >curve fitting and interpolation> non linear curve Fit lev.Mar.vi. E' simile al programma che devi realizzare tu. ---------------------------------------- ================================================================================ ping ================================================================================ AUTORE: 2300 DATA :16/11/2007 - 16:14:04 ---------------------------------------- Salve a tutti, ho bisogno di una mano a realizzare un' applicazione. Sto realizzando una applicazione che esegua un pingtra 2 pc connessi in rete. Lo schema generale l ho ricavato da un esempio preso tra i tanti esempi che ci sono nel programma. Ciò che non riesco a fare è la seguente cosa: devo confrontare la stringa inviata con quella ricevuta in modo da calcolare la ber e farne alla fine un grafico.Devo praticamente prendere le 2 stringhe e confrontarle bit a bit per vedere ogni volta quanti bit si perdono durante la comunicazione tra li 2 pc.Ma non mi riesce farli. Qualcuno mi puo aiutare?? grazie mille ---------------------------------------- AUTORE: 301 DATA :26/11/2007 - 10:02:55 ---------------------------------------- Potresti mettere un esempio di quello che hai fatto fino ad ora?La spiegazione nn è molto chiara, in ogni caso credo dovresti usare le funzioni di lettura e scrittura TCP\IP.... ---------------------------------------- AUTORE: 384 DATA :27/11/2007 - 11:07:54 ---------------------------------------- Mi sembra que questo ti possa mettere nella pista giusta.   ---------------------------------------- AUTORE: 2300 DATA :01/12/2007 - 16:18:03 ---------------------------------------- grazie per il suggerimento..però io ho la versione 7 di labview e non mi fa aprire il tuo download grazie ---------------------------------------- AUTORE: 947 DATA :01/12/2007 - 17:55:13 ---------------------------------------- --- Penso sia prorpio quello che ti serve... .. e mi sembra una soluzione efficace ed efficiente !! Io mi limito a comvertirla in [b:18zmjniu]jpg[/b:18zmjniu] per renderla usufruibile ad ogni versione di LV.. !! Bye ---------------------------------------- AUTORE: 2300 DATA :02/12/2007 - 19:02:06 ---------------------------------------- grazie..ora provo grazie ancora ---------------------------------------- ================================================================================ SQL: errore dll ================================================================================ AUTORE: 2228 DATA :16/11/2007 - 18:30:29 ---------------------------------------- Salve a tutti, sto cercando di comunicare con un database appena creato ma non appena mando in esecuzione il vi mi da il seguente errore: CINLoad - DLL Setup Error Premetto che ho installato microsoft access driver, può essere questo il problema? e se si potete indirizzarmi per risolvere il problema? grazie mille ---------------------------------------- ================================================================================ applicazione con due finestre ================================================================================ AUTORE: 2302 DATA :17/11/2007 - 14:02:59 ---------------------------------------- ciao a tutti sto realizzando un'applicazione che dovrebbe essere strutturata su due finestre, ho predisposto un pulsante sulla prima finestra e vorrei che quando si clicca su di esso questa finestra si chiude e si apre la seconda. Qualcuno potrebbe spiegarmi come è possibile fare questa cosa? ringrazio tutti anticipatamente ---------------------------------------- AUTORE: 129 DATA :17/11/2007 - 21:33:59 ---------------------------------------- Devi utilizzare le propietà del vi. Per farlo devi utilizzare le tecniche dette VIserver per accedere a propietà e metodi dei VI. Ti allego un esempio ---------------------------------------- AUTORE: 2302 DATA :17/11/2007 - 22:38:29 ---------------------------------------- Grazie per l'esempio, è stato veramente molto utile, mi rimane un ultimo dubbio... come faccio a passare dei dati da una finestra ad un'altra? attraverso le variabili globali o in un altro modo? ---------------------------------------- AUTORE: 129 DATA :18/11/2007 - 16:08:59 ---------------------------------------- puoi sfruttare le globali, ma se usi le functional global(cerca nel sito per capire come funzionano) è meglio.... puoi anche usare le code (più complesso ma + efficente se hai molti dati). \":wink:\" ---------------------------------------- AUTORE: 2302 DATA :24/11/2007 - 09:59:17 ---------------------------------------- ciao nicola, scusa la mia assenza, ma il lavoro mi porta via molto tempo. Ho provato a fare quanto mi hai consigliato, ma ho notato che il secondo vi che si apre non è in esecuzione! come faccio a farlo partire in run mode? mi aiuti? grazie ---------------------------------------- AUTORE: 129 DATA :24/11/2007 - 14:26:20 ---------------------------------------- Per eseguirlo, devi usare un invoke node (dalla palette control application), se spezzi il filo tra la property e la chisura, fai tasto destro sul terminale di reference e create method-RUN. ---------------------------------------- AUTORE: 2302 DATA :24/11/2007 - 16:40:47 ---------------------------------------- Grazie Nicola, mi sei stato veramente di aiuto!!! in più volevo segnalare agli altri interessati a questo topic che per far funzionare tutto per bene ho dovuto mettere a FALSE la proprietà "Wait Until Done" dell'invoke node ciao ---------------------------------------- ================================================================================ trasferire dati in tabella di excel ================================================================================ AUTORE: 2270 DATA :17/11/2007 - 15:28:44 ---------------------------------------- Salve a tutti. Il mio programma in labVIEW genera ogni secondo i valori di tensione, potenza, rendimento. Io vorrei visualizzare questi dati in una tabella di excel,allineati al corrispettivo valore del tempo. Faccio uno schema. TEMPO TENSIONE POTENZA RENDIMENTO 0 6 56 56 1 6 55 58 Utilizzo la versione 8.0. ---------------------------------------- AUTORE: 129 DATA :17/11/2007 - 21:20:34 ---------------------------------------- Usa la funzione write to spreadshet file. ---------------------------------------- AUTORE: 2270 DATA :17/11/2007 - 22:05:00 ---------------------------------------- Ciao Nicola. Ho usato la funzione che mi hai suggerito. Non riesco però a mettere i dati in colonna sotto al corrispettivo titolo. ---------------------------------------- AUTORE: 129 DATA :18/11/2007 - 16:10:22 ---------------------------------------- usa il blocchetto transpose 2d array, vedrai che i dati si mettoino in colonna. ---------------------------------------- AUTORE: 2270 DATA :18/11/2007 - 17:59:40 ---------------------------------------- Sono riuscito a mettere i dati in colonna senza usare la funzione transpose 2d array. Dal file che ho allegato è chiaro il modo con cui ho risolto il problema. Il problema ora è un altro. Non so come mettere il titolo su ogni colonna. Ciao Nicola. ---------------------------------------- AUTORE: 680 DATA :18/11/2007 - 18:21:49 ---------------------------------------- ciao guarda qui.... [url:384xhv1c]http://img231.imageshack.us/img231/5421/ciclozr1.jpg[/url:384xhv1c] ---------------------------------------- AUTORE: 2270 DATA :18/11/2007 - 19:24:18 ---------------------------------------- Grazie anche a te linux120. Ho appena provato a realizzare il codice che mi hai spedito. Tuttavia non riesco a collegare ,come hai fatto tu, il vettore con i nomi alla funzione write to spreadshet file. Ti mando il file. ---------------------------------------- AUTORE: 129 DATA :19/11/2007 - 07:17:18 ---------------------------------------- sulla funzione clicca il tasto dx e dal menu contesdtuale seleziona select type --> automatic o string in modo che ti accetta le struinghe. prova con lo schema allegato (il for esterno è solo per generarti un pò di numeri. ---------------------------------------- AUTORE: 2270 DATA :19/11/2007 - 10:00:16 ---------------------------------------- Buongiorno nicola. Ho realizzato il codice che mi hai spedito. Quando però vado a cliccare con il tasto destro del mause sulla funzione write to spreadshet file non mi appare nessun select type da selezionare. Io sto usando labVIEW 8.0 student edition. Ti invio il file per maggiore chiarezza. ---------------------------------------- AUTORE: 301 DATA :19/11/2007 - 13:59:15 ---------------------------------------- Ciao, puoi creare un file di testo, scrivere le stringhe corrispondenti ai titoli delle colonne e passare il riferimento al file al "write to predsheet file". ---------------------------------------- AUTORE: 2270 DATA :19/11/2007 - 14:48:29 ---------------------------------------- Ciao aris. Ho creato il file excel e ho inserito il titolo alle colonne. Ho messo in ingresso alla funzione write to predsheet file l'indirizzo del file. Il programma però non riesce a scrivere sul file. ---------------------------------------- AUTORE: 2270 DATA :19/11/2007 - 16:16:48 ---------------------------------------- Ho provato a utilizzare altre funzioni. Non riesco a metter in colonne separate e affiancate le parole indice, random 1, random 2, random 3. Non riesco neppure a far comparire sotto ad ogni cone la corrispettiva fila di numeri. ---------------------------------------- AUTORE: 2270 DATA :19/11/2007 - 16:17:49 ---------------------------------------- Scusatemi . Mi sono dimenticato di allegare il file. ---------------------------------------- AUTORE: 2270 DATA :22/11/2007 - 13:21:10 ---------------------------------------- Ho risolto il problema. Allego un file di esempio per chiunque si inbatta nelle stesse difficolta. ---------------------------------------- AUTORE: 2208 DATA :23/11/2007 - 10:07:42 ---------------------------------------- Salve a tutti. Dovrei creare un file excel di 5 colonne, 4 delle quali hanno campi numerici; l'altra colonna dovrebbe contenere l'orario. La vi realizzata da mario64 fa al mio caso se non fosse che il campo dell'orario non viene accettato nell'array. Qualche suggerimento? ---------------------------------------- AUTORE: 301 DATA :26/11/2007 - 16:01:11 ---------------------------------------- Scusate, sono stato assente per un pochino........sorry Prova con questo ---------------------------------------- AUTORE: 2208 DATA :27/11/2007 - 21:16:21 ---------------------------------------- Grazie tante per l'aiuto. Ho risolto ---------------------------------------- ================================================================================ conversione ================================================================================ AUTORE: 2300 DATA :17/11/2007 - 16:13:52 ---------------------------------------- ciao, volevo sapere se in labview c è un modo per confrontare 2 byte array bit a bit grazie ---------------------------------------- AUTORE: 129 DATA :17/11/2007 - 21:17:38 ---------------------------------------- Certo devi passare i due array in un for loop, in modo da processare 1 elemento dell'array per volta. ---------------------------------------- AUTORE: 2300 DATA :18/11/2007 - 09:04:16 ---------------------------------------- grazie per il suggerimento..ora ci provo già che mi trovo ti chiedo unn' altra cosa che non riesco a fare. Dopo aver confrontato i 2 byte array bit a bit ed aver individuato se ci sono eventuali errori, i bit errati li devo mettere in un grafico in funzione della lunghezza dei byte array iniziali. Come potrei farlo? grazie ancora ---------------------------------------- AUTORE: 129 DATA :18/11/2007 - 16:05:49 ---------------------------------------- qualcosa di simile a ciò che chiedi dovresti ottenerlo con l'esmpio allegato.... ---------------------------------------- AUTORE: 2300 DATA :18/11/2007 - 16:15:35 ---------------------------------------- grazie. Però ho un piccolo problema; io ho la versione 7 di labview..come posso visualizzare lo schema che mi hai mandato?? grazie mille ---------------------------------------- AUTORE: 129 DATA :19/11/2007 - 07:32:14 ---------------------------------------- Ti allego lo screenshot ---------------------------------------- AUTORE: 2300 DATA :19/11/2007 - 11:27:20 ---------------------------------------- grazie mille ora provo..grazie ancora ---------------------------------------- ================================================================================ value change su indicator ================================================================================ AUTORE: 1898 DATA :18/11/2007 - 14:19:04 ---------------------------------------- Ciao ragazzi, stò fondendo! Anch'io mi sono imbattuto nel problema di dover comandare un cambio di stato di una struttura EVENT tramite un INDICATOR (es: led) e quindi non tramite un controllo (es: tasto) Il problema è appunto che il cambio di stato di un control viene perfettamente catturato, ma di un indicator no! Ho letto in questo forum la seguente soluzione: [quote="ghianda":2oq6r0y7]Devi usare il property node "value signaling" al postodella variabiel stessa o di una sua local. Inquesto modo fai scattare l'event[/quote:2oq6r0y7] il problema è che facendo così, e non capisco il motivo, l'event legge sempre un cambio di stato!! nell'esempio il VI dovrebbe incrementare il valore del contatore SOLO quando il LED cambia di stato, invece il contatore incrementa in continuazione il suo valore! Grazie! ---------------------------------------- AUTORE: 487 DATA :19/11/2007 - 07:40:33 ---------------------------------------- Ciao, dai un'occhiata al vi modificato, è una possibile soluzione. ---------------------------------------- AUTORE: 1898 DATA :19/11/2007 - 09:03:26 ---------------------------------------- Bhè grazie 1000! Ho visto come hai modificato il VI, ed ora funziona! Grande! Cmq non ho capito come mai si comportava in quel modo... Ciao ---------------------------------------- ================================================================================ Problema con OPC ================================================================================ AUTORE: 46 DATA :19/11/2007 - 08:15:41 ---------------------------------------- Buongiorno a tutti Ho un problema con la gestione degli OPC che non riesco a risolvere e spero che possiate darmi qualche indicazione. Ho due PC: uno con windows xp professional e uno (portatile) con XP media center collegati entrambi sulla stessa rete Sul primo è installato LV 8.0 con relativo DSC e industrial OPC server 5.1; su questo un software da me realizzato per interfaciarmi con un applicom gateway (utilizzando un server modbus) e un fieldpoint (utilizzando l'OPC relativo) funziona perfettamente. Sull'altro PC è installato LV 8.2 con relativo DSC e industrial OPC server 5.1; lo stesso programma qui non va. O meglio, alcune volte funziona e altre no; in pratica quello che acade è che le variabili globali presenti sul VI hanno l'indicatore di connessione che rimane sempre rosso. La cosa curiosa è che se provo a connettermi al fielpoint utilizzando le funzioni della paletta Measurement I/O, il fielpoint risponde perfettamente e lo stesso accade se utilizzo MAX. Non so più che pesci prendere; tra l'altro ho scaricato da NI anche l'aggiornamento dell'industrial OPC server 5.1, ma il risultato non cambia. Ciò che chiedo è: può essere colpa di media center? Nell'installazione di LV 8.2 posso aver dimenticato di installare qualcosa di fondamentale ? Ringrazio chiunque per l'attenzione che potrà concedermi. Claudio ---------------------------------------- ================================================================================ Prelevare dati da file binario ================================================================================ AUTORE: 2282 DATA :19/11/2007 - 13:22:41 ---------------------------------------- Buongiorno a tutti, il mio problema è il seguente: ho un file binario in cui sono salvati dati in formato sgl. I dati si riferiscono a delle acquisizioni effettuate con una scheda della NI. Nel file i dati sono salvati in questo modo: dato temporale 1, dato canale 1, dato canale 2, dato temporale 2, dato canale 1, dato canale 2..... Quindi ogni dato comprende 4 byte e per avere le informazioni che mi servono devo leggere 12 byte (4 x 3). La mia idea era quella prelevare solo alcuni di questi dati memorizzati, ad esempio una terna ogni 10, continuando a leggere dal file e non caricando tutto il file in ram ed elaborarlo successivamente. Questo perchè il file da aprire può essere molto grande. ---------------------------------------- AUTORE: 2282 DATA :20/11/2007 - 14:21:34 ---------------------------------------- La domanda è: come implemento questa routine in codice? ---------------------------------------- ================================================================================ errore application builder ================================================================================ AUTORE: 314 DATA :19/11/2007 - 17:42:12 ---------------------------------------- Salve a tutti. Ho un problema, ho creato con application builder la mia applicazione ma quando la eseguo mi da i seguenti errori(in allegato) Qualcuno mi sa illuminare al rigurado? Uso XP e labview run-time engine 8.0. L'applicazione è stata creata con LV 8.0. ---------------------------------------- AUTORE: 1050 DATA :20/11/2007 - 09:22:10 ---------------------------------------- Ciao, 1. della vi Peak Detector carichi il pannello? (cioè non la usi come semplice subvi ma ne utilizzi il pannello come interfaccia grafica?) => se è così e se tale vi non è quella principale in genere devi esplicitamente dire al builder di non rimuovere il pannello. 2. le dll non vengono link-ate automativamente => le devi aggiungere nel builder (io non ho labview 8.0 ma ci dovrebbe comunque essere una voce "Add dll..."). ---------------------------------------- AUTORE: 314 DATA :20/11/2007 - 14:22:32 ---------------------------------------- Del SubVi in questione(NI_AALPro.lvlib:Paeak Detector.vi) non uso il pannello ma dall'application builder non lo rimuovo. Ho aggiunto anche i dll come suggerito, anche se il file lvanlys.dll era già presente. Credo che il problema sia legato a questo subvi perchè senza di esso l'applicazione funziona. Non è che devo modificare qualcosa dal SubVI Node Setup? Se si in che maniera visto che non mi è mai capitata una cosa del genere? ---------------------------------------- AUTORE: 1050 DATA :21/11/2007 - 08:59:38 ---------------------------------------- Ciao, provo con altri "consigli", magari li hai già seguiti: 1. apri la vi Peak Detector dalla tua vi, clicca 2 volte sulla dll e verificane il path (ex: National....\Labview 8.0\ esource\lvanlys.*); 2. controlla se quando costruisci l'exe nella direcory "support" trovi questa libreria 3. il tuo exe gira sul pc dove è installato il Labview?? ---------------------------------------- AUTORE: 314 DATA :21/11/2007 - 09:25:44 ---------------------------------------- Ciao, 1.Ho notato solo ora che se apro il subvi peakDetector questo non è modificabile e che sulla barra della finestra c'è scritto: NI_AAL.lvlib: PeakDetector.vi:2 (clone). Perchè clone? Ho provato a vedere quale è il dll associato ma non mi è riuscito, forse per qesto motivo. Ho anche provato a cancellare e riposizionare il subvi ma nienete da fare 2. Ho notato che il file lvanlys.dll c'è ed è nella sottocartella "Data" all' interno della cartella principale nel quale è stato slavato il file .exe 3. Gira su un PC sul quale NON è installato Labview. Se invece labview è installato non ci sono problemi. Non capisco però dove sia l'utilità allora di creare un file exe se poi non lo posso far girare solo con labview runtime engine ma solo installando tutto il paccheto LV. Help!! ---------------------------------------- AUTORE: 43 DATA :21/11/2007 - 11:51:18 ---------------------------------------- [quote="paolo_ne80":3ehc2n3q]Ciao, 1.Ho notato solo ora che se apro il subvi peakDetector questo non è modificabile e che sulla barra della finestra c'è scritto: NI_AAL.lvlib: PeakDetector.vi:2 (clone). Perchè clone? Ho provato a vedere quale è il dll associato ma non mi è riuscito, forse per qesto motivo. Ho anche provato a cancellare e riposizionare il subvi ma nienete da fare [/quote:3ehc2n3q] la scritta "N:clone" sta ad indicare che hai aperto una "istanza" di un VI rientrante e non il VI "originale". Questa feature presente il LV8 consente il debugging del singolo VI rientrante, ma chiaramente non permette la modifica del diagramma...sennò che VI rientrante sarebbe??!?! X modificare il VI devi aprireil VI specificando il percorso di origine e NON doppio-cliccando sul VI incluso in un diagramma... Non ti voglio spiegare cosa sono i VI rientranti x cui Ti rimando alla documentazione National e al Nostro Forum [quote="paolo_ne80":3ehc2n3q] 2. Ho notato che il file lvanlys.dll c'è ed è nella sottocartella "Data" all' interno della cartella principale nel quale è stato slavato il file .exe 3. Gira su un PC sul quale NON è installato Labview. Se invece labview è installato non ci sono problemi. Non capisco però dove sia l'utilità allora di creare un file exe se poi non lo posso far girare solo con labview runtime engine ma solo installando tutto il paccheto LV. [/quote:3ehc2n3q] E' chiaro che non è possibile che non funzioni... Io non ho per ora ancora creato eseguibili e pacchetti di installazione con LV8, ma ho fatto una piccola prova ed ho notato che in seguito al rinnovo totalissimo dell' Applic. Builder sono cambiate molte opzioni di compilazione. In particolare Ti consiglio di provare a scegliere l'opzione: in "Properties" della Tua applicazione sotto "Build Specifications" scegli "Additional Exclusions" e poi scegli "do not disconnect type definitions or remove unreferenced members" E' un tentativo stupido anche perche' il VI "peak Detector" non è polimorfo e non contiene typedef.. ma provare non costa nulla... Secondo me il problema passa attraverso il Path del VI: questo è il Path assoluto sul mio PC C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\Analysis\8numeric.llb\Peak Detector.vi ma nell'intestazione del VI appare: NI_AALPro.lvlib:Peak Detector.vi Cioè c'è il riferimento esplicito ad un file inutile (NI_AALPro.lvlib) di cui ignoro l'influenza nella creazione di un eseguibile. Ti consiglio di chiedere sul Forum di NI. bye ---------------------------------------- AUTORE: 1050 DATA :21/11/2007 - 13:18:07 ---------------------------------------- ciao, ho trovato questa info: <<[u:28tr4vt6]Not all of the DLLs used by the LabVIEW VIs are included with the RT Engine. [/u:28tr4vt6].......The DLLs need to be placed in a location that the RT Engine will find them, such as c:\ i-rt\system....>> controlla il path della tua vi, eventualmente prova a copiare la dll anche nella dir del run time engine.... non avendo labview 8 non sò riprodurre il problema \":(\" ---------------------------------------- AUTORE: 43 DATA :21/11/2007 - 14:34:23 ---------------------------------------- Tagliamo la testa al toro: Duplica il VI cambiando il nome dello stesso da sistema operativo da Peak Detector.vi a Peak_Detector.vi Apri il VI "Peak_Detector.vi" e dal menu "File" seleziona "Disconnect from Library". Salva il VI. Modifica tutte le chiamate nella tua applicazione affinchè puntino a "Peak_Detector.vi" Ricompila e vedi se funziona... bye ---------------------------------------- AUTORE: 314 DATA :21/11/2007 - 16:39:39 ---------------------------------------- Ho fatto come mi hai detto. Ho copiato e incollato il subvi in questione nella cartella dove ho salvato lo strumento principale. Infatti appena ho provato ad aprire il subvi(Peak_detector) non trovava il file lvanlys.dll. Dopo l'operazione FIle>Disconnect from Library l'errore è sparito. Allora sono andato a sostituire Peak detector.vi all' interno del vi principale con Peak_Detector. Lo strumento funziona ma in fase di esecuzione del file.exe si verificano i soliti errori.[b:z48za9am] Solo il terzo messagio di errore è scomparso[/b:z48za9am], cioè: Missing subVI NI_AALPro.lvlib: peak detector.vi. Giustamente perchè ho sostituito il subvi... ma il file lnavlys.dll continua a dare problemi. Che fare? comincio a disperarmi.... ---------------------------------------- AUTORE: 314 DATA :21/11/2007 - 17:01:01 ---------------------------------------- dimenticavo i nuovi errori sono: 1.LabViwe: Resorce not found. An error occurred loading VI "Peak_Detector.vi". Labview load error code 3: Could not load front panel 2. LabView: generi error The file 'lvanlys.dll' is not a valid labview file Grazie ancora ---------------------------------------- AUTORE: 43 DATA :22/11/2007 - 11:25:38 ---------------------------------------- [quote="paolo_ne80":3mdkuj0e]dimenticavo i nuovi errori sono: 1.LabViwe: Resorce not found. An error occurred loading VI "Peak_Detector.vi". Labview load error code 3: Could not load front panel 2. LabView: generi error The file 'lvanlys.dll' is not a valid labview file Grazie ancora[/quote:3mdkuj0e] Allora... prendiamo il toro x le corna... (oops gli avevo già tagliato la testa...) 1)----------------------------------------------------------------- Torna a ri-linkare il VI "Peak detector" originale. Ora nel tuo progetto tasto dx su "my computer" --> "Add File..." seleziona il file "NI_AALPro.lvLib" Risultato: nel tuo progetto è esplicitamente incluso il VI chiamato. Ora sempre nel progetto tasto dx su "dependencies" --> "Refresh" attendi che la clessidra sparisca salva il progetto genera il kit di installazione. 2)--------------------------------------------------------------- Nelle chiamate alle dll spesso non si tiene conto delle dll chiamate all'interno di esse. Vedi da help labview ("Viewing Dependencies in a LabVIEW Project") ho notato che all'interno della nostra "lvanlys.dll" ci sono i seguenti riferimenti ad altre dll: mkl_p4p.dll mkl_p3.dll mkl_def.dll mkl_p4.dll mkl_lapack64.dll libguide40.dll mkl_vml_def.dll mkl_vml_p3.dll mkl_vml_p4.dll mkl_vml_p4p.dll mkl_lapack32.dll mkl_def.dll che dovrebbero essere installate sotto \programmi\National Instrument\Shared\MKL (fanno parte di LabVIEW RUNTIME) lvrt.dll che dovrebbe essere installata sotto \programmi\National Instrument\Shared\Labview Run-time\....(+ altre sottodir) (e' la dll principale di LabVIEW RUNTIME) kernel32.dll advapi.dll user32.dll che dovrebbero essere installate sotto \windows\system32 (sono librerie di sistema) ma poi vedo anche MSVCRT.dll che dovrebbe essere MicroSoftVisualCRunTime.dll che non mi risulta faccia parte dei kit installati di default. verifica che sia presente sotto windows\system32 del tuo target PC bye ---------------------------------------- AUTORE: 314 DATA :24/11/2007 - 14:45:19 ---------------------------------------- Abbiamo preso veramente il toro per le corna. Adesso funziona. Ho fatto come scritto nel punto 1 e creato un installer con la mia applicazione Grazie 1000 ---------------------------------------- ================================================================================ Analisi segnali ================================================================================ AUTORE: 2304 DATA :20/11/2007 - 10:50:52 ---------------------------------------- Premetto che sono nuovo all'uso di Labview e che lo sto usando per una materia universitaria... Allora il problema è il seguente devo convertire un segnale sinusoidale in un'onda quadra... Ho provato la soluzione che allego (sia come file perchè uso il Labview 7.0 express student edition) sia come immagine... (ho provato anche anzicchè con il formula con il simulate signal ma non cambia granchè)... Sinceramente non so come risolvere la situazione... Ringrazio chiunque in anticipo per un aiuto, suggerimento o per la soluzione al problema \":D\" ---------------------------------------- ================================================================================ Analisi segnali II ================================================================================ AUTORE: 2304 DATA :20/11/2007 - 11:00:12 ---------------------------------------- Un altro problema che non riesco a risolvere è quello dell'implementazione di un frequenzimetro... Saltando la parte teorica il problema "implementativo" è il seguente: ho un segnale onda quadra... lo taglio con un segnale onda quadra di frequenza molto più bassa (una semplice operazione di moltiplicazione fra i due segnali) bene ora devo contare... in ogni "taglio" quanti impulsi ho... quel numero mi serve poi per avere la frequenza e implementare così il frequenzimetro... La soluzione che ho trovato è quella di usare il formula node... e vedere quando il segnale raggiunge il valore 1... ma questo non funziona... mi da valori assurdi... Vi allego qui quello che ho provato, sperando che qualcuno sappia la soluzione \":P\" ---------------------------------------- AUTORE: 947 DATA :20/11/2007 - 18:09:54 ---------------------------------------- [quote="OliWan":1y97dfdt] [...] La soluzione che ho trovato è quella di usare il formula node... e vedere quando il segnale raggiunge il valore 1... ma questo non funziona... mi da valori assurdi... Vi allego qui quello che ho provato, sperando che qualcuno sappia la soluzione \":P\" [/quote:1y97dfdt] Dunque ... ho notato 2 problemi: 1) hai scritto il numero nel formula node 0,5 con la virgola anzichè con il punto : deve essere 0.5 ... altrimenti il formula node lo interpreta come 0 e in pratica conta tutti i punti 0 del tuo segnale 2) in realtà è errata l'impostazione del problema ... immagino che tu (contrariamente a quanto hai scritto nel testo in cui dici di contare tutti gli "1" che sarebbe ovviamente sbagliato!!) voglia contare tutte le volte che il segnale tenda a 1 ... e prendi 0.5 come punto di passaggio... tuttavia il segnale è discreto (ovviamente) e quindi può non essere mai esattamente 0.5... infatti se metti i punti nel Graph ti accorgi che non lo è mai!! Per valutare il passaggio dallo stato da -1 a 1 devi contare tutti i punti che all'istante (i-1) erano <0 e ora all'istante (i) sono >0 .... mi spiego? Poi un suggerimento .... io nn utilizzerei il Formula Node per una questione di lentezza.... implementerei il tutto in un ciclo Loop di LV o meglio ancora (se fosse possibile .. ma è da studiare bene) lavorando direttamente sui vettori e non sugli elementi.. Spero di averti illuminato.... altrimenti.... contattami! Ciao ---------------------------------------- ================================================================================ da 8.0 a 7.0 ================================================================================ AUTORE: 2304 DATA :20/11/2007 - 12:18:13 ---------------------------------------- E' possibile convertire un file da 8.0 a 7.0? Se potete vi prego me lo convertite? ve lo allego subito \":P\" ---------------------------------------- ================================================================================ NXT USB comunication ================================================================================ AUTORE: 2274 DATA :21/11/2007 - 09:32:16 ---------------------------------------- Ciao a Tutti, volevo chiedervi un aiuto per il seguente prolema. Devo instaurare una comunicazione tra PC ed NXT utilizzando un collegamento USB. Per quanto riguarda il lato PC sto pensando di utilizzare dei blocchi VISA per la lettura e la scrittura, solo che ancora non sono riuscito a configurare la porta COM. QUalcuno sa darmi un adritta sul come fare? Secondo Problema: dal lato NXT, ho trovato i blocchi per la comunicazione tramite bluetooth, ma non riesco a trovare per comunicare tramite USB. Quali blocchi posso utilizzare? Grazie anticipatamente della'aiuto. Ciao ---------------------------------------- AUTORE: 2274 DATA :25/11/2007 - 09:53:38 ---------------------------------------- Ho risolto il problema cambiando alla base la comunicazione. Ho deciso di utilizzare il bluetooth per scambiare File di dati tra PC e NXT. ---------------------------------------- AUTORE: 4 DATA :26/11/2007 - 10:12:23 ---------------------------------------- Ciao, io ho usato il NXT con LabVIEW sia per programmarlo, sia per comunicare o quasi nel senso che non mi pare ci siano VI di comunicazione specifici ma labVIEW si occupa dello scambio di dati in maniera trasparente. per intenderci quando crei un VI con controlli e indicatori, lo scarichi in modo debug sul NXT utilizzando il Toolkit, modificando i valori dei controlli modificherai gli input del sw che gira sul NXT che ti comunicherà i cambiamente sugli indicatori del tuo VI. Ciao ---------------------------------------- ================================================================================ come far variare un pacchetto ================================================================================ AUTORE: 2300 DATA :21/11/2007 - 10:41:57 ---------------------------------------- ciao a tutti, volevo chiedervi una cosa che non riesco a fare. Ho un sistema di comunicazione che fa dialogare 2 pc; ad uno dei due invio in ingresso una stringa generica ( per ora ho provato con tutte a o tutte b). devo ora far variare questa stringa in ingresso da 0 a 65500 che è il limite massimo per la dimensione del pacchetto. Come faccio a farla variare?? ---------------------------------------- AUTORE: 247 DATA :21/11/2007 - 16:18:34 ---------------------------------------- Ciao, potresti utilizzzare un codice come in figura! BYE. ---------------------------------------- ================================================================================ segnale continuo da valori sperimentali ================================================================================ AUTORE: 2270 DATA :21/11/2007 - 11:04:25 ---------------------------------------- Salve a tutti. Ho un vettore che contiene dei valori sperimentali ricavati da un segnale. Il periodo di campionamento di questi dati è pari a 1 secondo. Vorrei ricostruire il segnale continuo. Come posso fare? Grazie. ---------------------------------------- AUTORE: 247 DATA :21/11/2007 - 15:10:11 ---------------------------------------- Ciao, se per continuo intendi "vederli all'interno di uno stesso grafico" collegal l'array direttamente ad un Chart, se la freq di campionamento è di 1 sec. come dici, sull'asse delle ascisse hai il tempo in secondi e sulle ordinate i valori del tuo array. Se poi proprio non vuoi vedere i singoli punti ma una "riga continua" attiva l'interpolazione fra le opzioni del Plot. BYE. ---------------------------------------- AUTORE: 2270 DATA :22/11/2007 - 15:24:23 ---------------------------------------- Ciao Apollon. Quando parlavo di continuo non mi riferivo alla rappresentazione grafica. Dai dati discreti voglio ottenere un segnale continuo perche il processo a valle non funziona con un segnale discreto. ---------------------------------------- AUTORE: 947 DATA :24/11/2007 - 12:03:51 ---------------------------------------- [quote="mario64":1ygdkv3y] [...] Dai dati discreti voglio ottenere un segnale continuo perche il processo a valle non funziona con un segnale discreto.[/quote:1ygdkv3y] ... mmmm .... C'è qualcosa che non quadra concettualmente ... [b:1ygdkv3y]In un sistema digitale NON esiste un segnale continuo!![/b:1ygdkv3y] probabilmente ciò che cerchi è un segnale sempre [b:1ygdkv3y]discreto[/b:1ygdkv3y] ma con un periodo di campionamento più fitto.... ... a quest punto devi [b:1ygdkv3y]interpolare[/b:1ygdkv3y] ovvero "[i:1ygdkv3y]inventare[/i:1ygdkv3y]" dei dati che cadono fra due campioni noti... ma prima devi decidere la legge di interpolazione... interpolazione a mantenimento (ordine 0) o lineare (ordine 1) o quadratica (ord 2) cubica (ord 3) oppure esponenziale oppure ... etc etc ... cioè per "[i:1ygdkv3y]inventare[/i:1ygdkv3y]" i dati devi decidere che andamento devono avere. La cosa + semplice è l'interpolazione lineare, ovvero fra 2 punti noti tracci una retta e tutti i punti che ricadono dentro staranno su questa retta ... Comunque sia prova a vedere il VI "[b:1ygdkv3y]Curve Fitting[/b:1ygdkv3y]" dei VI Express ... ti permette di scegliere un bel po' di leggi di interpolazione... Buon lavoro ... ed in caso ... contattami... ---------------------------------------- AUTORE: 2270 DATA :28/11/2007 - 08:40:38 ---------------------------------------- Grazie luca.glt. Mi sono espresso male, ma tu hai capito benissimo quello che intendevo. Adesso provo con la funzione Curve Fitting. ---------------------------------------- AUTORE: 2270 DATA :28/11/2007 - 16:20:34 ---------------------------------------- La funzione curve fitting interpola tutti i dati sperimentali. A me invece serve una funzione che interpola linearmente i dati uno alla volta. Ho usato la funzione 1D Linear Evaluation PtByPt . Secondo te è uguale? ---------------------------------------- AUTORE: 947 DATA :30/11/2007 - 22:27:52 ---------------------------------------- Mmmmmmmmmmm... mi sa che le idee sono ancora confuse!! Il VI che hai fatto mi sa che nn serve a nulla!! prende tutti i punti che hai (uno a uno) e li moltiplica per 1 aggiungendo 0... ovvero ... li lascia inalterati quindi alla fine avrai la stessa cosa che avevi prima e cioè i soli dati sperimentali ... e l'interpolazione dov'è?? Cmq ... cerco di interpretare quello che ti serve... e ti mando questaimmagine con il VI fatto da me visto in entrambe le facciate... spero che ti sia utile... Per eventuali domande contattami ... CIAO !! ---------------------------------------- AUTORE: 2270 DATA :01/12/2007 - 15:47:00 ---------------------------------------- Ho modificato il mio vi tenendo conto dell'immagine che mi hai mandato. C'è un problema. L'asse dei tempi risulta dilatato . I valori contenuti nel vettore sono dati sperimentali misurati ogni secondo. Ho visto che mettendo il waveform chart fuori dal for loop e impostando disable indexing riesco ad avere il grafico voluto. Secondo te questa soluzione inficia interpolazione lineare tra i due punti sperimentali ? Grazie anche per la soluzione all'equazione differenziale Luca.glt. ---------------------------------------- AUTORE: 947 DATA :01/12/2007 - 17:40:26 ---------------------------------------- [quote="mario64":2ru4nz5i] C'è un problema. L'asse dei tempi risulta dilatato . [/quote:2ru4nz5i] Dunque .... l'asse dei tempi è in [b:2ru4nz5i]millisecondi[/b:2ru4nz5i] nn in secondi .. okkio ... cmq ho visto che in realtà avevo sbagliato perchè i punti in effetti così risultano spostati di un campione => 1 sec... Il fatto è che a primo colpo, con un solo dato, nn deve fare l'interpolazione con il precedente ... perkè nn esiste un precedete !! quindi ho modificatpo come vedi in fig in allegato .... con un case che a i=0 nn fa l'interpolazione ... ora dovrebbe essere ok.. CIAO !! ---------------------------------------- AUTORE: 2270 DATA :01/12/2007 - 19:37:11 ---------------------------------------- Forse le mie incertezze ti sembreranno banali. Ho messo nel cilclo un time delay impostato a un secondo. Di conseguenza anche l'asse dei tempi dovrebbe uniformarsi automaticamente a questa unità. In altri casi ha sempre funzionato. ---------------------------------------- AUTORE: 947 DATA :02/12/2007 - 16:41:15 ---------------------------------------- ... No .. scusa... nn ho capito che intendi .... cmq garda che nel mio VI c'è già il time delay di 1000 msec !! .... ho notato che ne avevi inserito un altro ... ma nn serve...!! .... ma nn ho chiaro cosa volevi dirmi !! ---------------------------------------- AUTORE: 2270 DATA :02/12/2007 - 16:57:33 ---------------------------------------- Voglio dire questo: il grafico raggiunge il valore 5 a 50 s,mentre dovrebbe raggiunger il valore 5 a 5 s. La stessa cosa vale ovviamente per gli altri punti. ---------------------------------------- AUTORE: 2270 DATA :02/12/2007 - 17:03:38 ---------------------------------------- Per capirci vorrei che l'andamento del grafico fosse come quello della linea rossa del seguente vi. ---------------------------------------- AUTORE: 947 DATA :03/12/2007 - 18:14:10 ---------------------------------------- ... ahhhh ... ok .... ora capisco .... nel mio VI quello che vedi come asse TIME in realtà sono campioni... e siccome abbiamo interpolato con 10 sample/sec dunque il campione num 50 corrisponde a 5 sec ... quindi al valore 5 in y ... ma il problema si risolve banalmente .. [b:9dfygp16]fai click con il dx sul Chart e scegli prorpietà, quindi vai su Scale e sul "Time" inserisci un fattore di scala pari a 0,1 ... ecco che adesso il 50 è interpretato dal chart come 5 e quindi l'asse dei tempi è in sec come volevi[/b:9dfygp16] ... [i:9dfygp16]etvoilà[/i:9dfygp16] ... Ciao !! ---------------------------------------- AUTORE: 2270 DATA :03/12/2007 - 19:51:47 ---------------------------------------- Ho fatto quello che hai detto. L'andamento del grafico coincide con le mie aspettative. Ora però ho un altro problema. Lo stesso vi l'ho trsformato in un subVI e l'ho inserito in un altro vi. L'andamento del grafico è cambiato. Vorrei avere lo stesso andamento presente nel vi prima che fosse trasformato in un subVI. ---------------------------------------- AUTORE: 947 DATA :03/12/2007 - 21:57:00 ---------------------------------------- ... Non posso aprire il tuo VI perchè fa rifeimento ad un subVI che non ho ... devi mandarmi pure quello... cmq forse ho capito il problema ... se parli del fatto che un chart esterno ha nuovamente l'asse temporale con 10 Sample/sec ... bhè ... ovvio !! ..... [b:1mi8xx7r]devi impostare le stessse proprietà anche sull'altro chart [/b:1mi8xx7r]... ogni chart lo puoi impostare diversamente!!... quindi [b:1mi8xx7r]ad ogni Chart che aggiungi devi impostare la scala nel modo corretto!![/b:1mi8xx7r] [b:1mi8xx7r]OPPURE [/b:1mi8xx7r] altra soluzione : crea una "[b:1mi8xx7r]wavewform[/b:1mi8xx7r]" impostando [b:1mi8xx7r]dt = 0,1 sec[/b:1mi8xx7r] e poi invece di usare il chart usa il [b:1mi8xx7r]Graph[/b:1mi8xx7r] che accetta in ingreso una o + wavewform ... così il periodo di campionamento diventa intrinseco alla variabile stessa e non devi pensarci + !! Spero che era questo il problema..... Bye !! ---------------------------------------- AUTORE: 2270 DATA :04/12/2007 - 21:06:59 ---------------------------------------- Ho impostato, come mi hai detto, le stesse propietà anche sull'altro chart. Non va bene. Io vorrei avere lo stesso identico andamento dei vi prima che fosse modificato e trasformato in subVI. Ti invio il vi mancante. ---------------------------------------- AUTORE: 947 DATA :05/12/2007 - 19:03:44 ---------------------------------------- ... Ti posto il VI ed il SubVI modificati .... sperando di aver capito bene.. sono fatti con il LV 8.2 .... spero sia ok per te... maaaa... la cosa non mi convince..... questi dati devono uscire in tempo rale? .... se sì ... con il subVI così fatto nn funziona.... potresti spiegarmi cosa devi fare esatamente?? ---------------------------------------- AUTORE: 2270 DATA :05/12/2007 - 21:03:58 ---------------------------------------- Io uso la versione 8.0. Ti spiego meglio il mio problema. Il subVI che ho realizzato disegna sul waveform chart la curva del segnale a scatti di ampiezza paria un secondo. Io invece vorrei che tra gli estremi in ogni intervallo ci fossero altri valori. I dati devono uscire in tempo reale. Il vi prima di trasformarlo in sub vi funzionava perfettamente. ---------------------------------------- AUTORE: 947 DATA :05/12/2007 - 22:16:33 ---------------------------------------- .... Domani converto in 8.0 e ti rispedisco ..... o forse dopodomani.... cmq... i dati devono uscire in tempo reale a 1 sec ?? e quindi 10 campioni con dt=0,1 al sec?? se è così .. i VI che ho postato sono OK .... se invece ogni singolo campione deve uscire in real time ... allora deve uscire ogni 0,1 sec ... e la soluzione a SubVI nn va bene .... perchè il SubVI per come è fatto dura sempre 1 sec e poi butta fuori 10 campioni ... bisogna riprogettare tutto !! .... Alla prox!! ---------------------------------------- AUTORE: 2270 DATA :06/12/2007 - 14:24:44 ---------------------------------------- Ogni campione deve uscire in tempo reale a 0,1 s. Sono vincolato ad avere uno scalare im uscita dal subVI.[/img][/list][/list][/code] ---------------------------------------- ================================================================================ Labview & Outlook ================================================================================ AUTORE: 13 DATA :21/11/2007 - 15:34:44 ---------------------------------------- Salve a tutti prima di postare questa richiesta ho sbattuto la testa su questo problema 100000000000000000 di volte. Volevo sapere se qualcuno sa come leggere un email da outlook e quindi riuscire a leggere il contenuto almeno quello in formato testo che c'e' all'interno. Ho trovato delle llb che sfruttando le mapi di outlook in grado di creare appuntamenti o inviare email , ma da nessuna parte sono riuscito a trovare qualcosa in grado di leggere ....... le ho provate tutte sono sceso a tutti i livelli di proprieta' e metodi che il controllo activex di outlook fornisce , ma senza risultato.... se qualcuno ha qualche info e magari anche qualche vi di esempio che non siano i classici che si trovano per invio di email gliene sarei molto grato........ devo sviluppare un tool in azienda che gestisce in automatico le email provenienti dai vari centri di produzione sparsi per il mondo \":-(\"(((((((( RINGRAZIO CHI RIESCE A DARMI UN AIUTINO \":-)\" Grazie anticipatamente a tutti . ---------------------------------------- AUTORE: 482 DATA :22/11/2007 - 07:15:05 ---------------------------------------- Credo che dovrai naufragare nei meandri degli activeX forniti da Outlook. Io avevo sviluppato tempo fa un programmino che tramite activeX notificava l'arrivo di una mail in determinate cartelle. Mi ricordo che per alcuni passaggi era stata una battaglia trovare la proprietà giusta. Cmq credo che tutto quello che ti serve sia a disposizione. ---------------------------------------- AUTORE: 1137 DATA :22/11/2007 - 08:34:22 ---------------------------------------- [quote="fioreg":1moauvkg] Volevo sapere se qualcuno sa come leggere un email da outlook e quindi riuscire a leggere il contenuto almeno quello in formato testo che c'e' all'interno. ... grato........ devo sviluppare un tool in azienda che gestisce in automatico le email provenienti dai vari centri di produzione sparsi per il mondo \":-(\"(((((((( Grazie anticipatamente a tutti .[/quote:1moauvkg] prova a fare un passo indietro.... Sei proprio sicuro che devi usare Outlook? Il protocollo POP non è poi così difficile. Ad esempio, potresti farti spedire le mail in cc, e scriverti un piccolo client in Labview. ---------------------------------------- AUTORE: 645 DATA :22/11/2007 - 09:47:29 ---------------------------------------- Ziounclesi hai qualche esempio da proporre? ---------------------------------------- AUTORE: 13 DATA :22/11/2007 - 10:57:11 ---------------------------------------- Ringrazio tutti , ma sono riuscito a risolvere il problema stamattina mi si e' illuminato il cervello. Thanxs for all ---------------------------------------- AUTORE: 645 DATA :22/11/2007 - 13:49:50 ---------------------------------------- Fioreg puoi spiegare come hai fatto? Anche io sto cercando qualcosa sulla comunicazione con e-mail e sono curioso... \":D\" ---------------------------------------- AUTORE: 13 DATA :29/11/2007 - 13:25:13 ---------------------------------------- Salve a tutti Scusate per il ritardo ma ero fuori per lavoro..... Spero di essere il piu' esauriente possibile per spiegarvi in quale modo ho operato per la soluzione al problema. Il metodo piu' professionale e meno sporco e' quello indubbiamente di utilizzare il controllo activex di Outlook. Vi allego un file dove mostra metodi e proprieta' da usare. Oltre a questo ho sviluppato anche la gestione degli attachments che alleghero' non appena ultimato. Un saluto a tutti www.jolupa.com un po di publicita' non fa mai male............. \":-)\" ---------------------------------------- AUTORE: 384 DATA :03/12/2007 - 17:49:22 ---------------------------------------- Io condivido l'approccio proposto dallo "zio"... Perchè passare da Outlook (e rischiare che con la prossima versione si debba riscrivere in parte o in totto questa funzione!) se si può andare direttamente al server POP3? Sul sito NI c'è qualcosa in proposito. Clicca [url=http://sine.ni.com/devzone/cda/epd/p/id/1373:3bkr71e4]qui[/url:3bkr71e4].   ---------------------------------------- ================================================================================ segnale impulsivo ================================================================================ AUTORE: 335 DATA :21/11/2007 - 18:33:12 ---------------------------------------- devo, leggendo un onda quaddra dall'esternoe attivare in segnale impulsivo del tempo da me stabilito ad ogni cambiamento di frone come si puo' fare? aspetto soluzioni o spunti grazie ---------------------------------------- AUTORE: 1898 DATA :21/11/2007 - 20:56:40 ---------------------------------------- usare la struttura event con il controllo del cambio di stato sul segnale che ti interessa monitorare potrebbe essere una strada...però non sò se è il modo migliore...meglio aspettare qualcuno con più esperienza ciao! ---------------------------------------- AUTORE: 335 DATA :22/11/2007 - 09:06:38 ---------------------------------------- vorrei rifare la domanda in modo piu chiaro come posso generare un segnale impulsivo di una durata da me stabilita? ---------------------------------------- ================================================================================ applicazione come un servizio ================================================================================ AUTORE: 838 DATA :22/11/2007 - 08:09:57 ---------------------------------------- ciao a tutti devo realizzare un sistema di videocitofono in una azienda tramite plc e videoserver installo un client su ogni pc della ditta che comunicano via modbus ethernet al plc che fa da server, poi tramite acitevx mi vado a prendere i viedo dal videoserver ip ho già praticamente tutto di funzionante, il problema è che l'applicazione ridotta a icona mi va a finire nella barra in basso e non vicino all'ora come i classici programmini eseguiti come servizi a me occorre che l'applicazione va nell'angolo, per poi aprirsi in popup quando c'è l'evento della chiamata è possibile? grazie ---------------------------------------- AUTORE: 645 DATA :22/11/2007 - 09:54:22 ---------------------------------------- Prova a guardare http://digital.ni.com/public.nsf/allkb/ ... 250021D9FA ... io non ho capito molto, se riesci puoi postare una spiegazione? ---------------------------------------- AUTORE: 838 DATA :22/11/2007 - 10:52:07 ---------------------------------------- grazie ora lo provo. fa parte di quelle utilità che mandano in popup, nascondono, sempre in primo piano, ecc le finestre di labview nel frattempo ho trovato un software che manda un qualsiasi exe come servizio di windows, devo provare pure quello \":D\" ---------------------------------------- AUTORE: 838 DATA :04/12/2007 - 07:40:41 ---------------------------------------- provate assoluitamente questo: [url:3fzs6gs5]http://forums.ni.com/attachments/ni/170/95141/1/LabVIEWTrayIcon.zip[/url:3fzs6gs5] funziona da dio ed è molto completo sfrutta un activex free e puoi fare quello che vuoi \"8)\" io l'ho abbinato al winutil e sfrutto le funzioni hidewindows e showwindows poi ho creato un menu dall'icona in basso a destra (che puoi cambiare anche realtime) con varie funzioni SPETTACOLO ---------------------------------------- AUTORE: 645 DATA :04/12/2007 - 09:05:23 ---------------------------------------- A cosa serve Winutil? So che non è una domanda propriamente su LabView... ma non riesco a trovare spiegazioni di questo programma. Usato in combinazione con l'activeX che hai indicato cosa permette di fare? ---------------------------------------- AUTORE: 838 DATA :04/12/2007 - 16:12:13 ---------------------------------------- le winutil sono delle utility datte dalla national in allegato ad una loro dll che permette di aprire, chiudere, manovrare finestre windows esterne a labview [url:1e29r82n]http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/824b3db43031317686256aaf00713218/$FILE/00readme.txt[/url:1e29r82n] ---------------------------------------- AUTORE: 927 DATA :07/12/2007 - 10:13:12 ---------------------------------------- [quote="minzuk":rqqcpsbw]nel frattempo ho trovato un software che manda un qualsiasi exe come servizio di windows, devo provare pure quello[/quote:rqqcpsbw] è XYNTservice per caso? risolve il problema in 44KB! ---------------------------------------- AUTORE: 838 DATA :07/12/2007 - 15:28:37 ---------------------------------------- no, fire deamon service manager cque come ho fatto io è abbastanza veloce e crei una tendina dal tasto dx gestibile dal vi direttamente ---------------------------------------- AUTORE: 947 DATA :13/05/2009 - 10:12:19 ---------------------------------------- .. [quote="minzuk":x3nwgt7a]provate assoluitamente questo: [url:x3nwgt7a]http://forums.ni.com/attachments/ni/170/95141/1/LabVIEWTrayIcon.zip[/url:x3nwgt7a] funziona da dio ed è molto completo sfrutta un activex free e puoi fare quello che vuoi \"8)\" io l'ho abbinato al winutil e sfrutto le funzioni hidewindows e showwindows poi ho creato un menu dall'icona in basso a destra (che puoi cambiare anche realtime) con varie funzioni SPETTACOLO[/quote:x3nwgt7a] .. Scaricato e provato .. è vero !! .. è utilissimo !! .. SPETTACOLO !! .. Però ... Ho compilato il tutto con l' ApplBuild del LV7.1 ed ho installato il SW in un altro PC ... \":!:\" Non funziona !! Mi pare di capire (correggetimi se sbaglio!) che se utilizzo un [u:x3nwgt7a]ActiveX[/u:x3nwgt7a] (come per es quello della TryIcon ma lo stesso vale probabilmente per tutti gli ActiveX) devo aspettarmi che il SW compilato [u:x3nwgt7a]funzioni SOLO sui PC in cui quell'ActiveX è già installato[/u:x3nwgt7a], nonostante esegua l'installazione tramite il pacchetto installer creato dal ApplBuild del LV! Quindi le domande che mi sorgono sono: \":?:\" Più pressante per adesso, Come posso far funzionare il [b:x3nwgt7a][u:x3nwgt7a]LabVIEWTrayIcon[/u:x3nwgt7a][/b:x3nwgt7a] ed il menù che ho creato per il SW anche su un altro PC ? \":?:\" Più in generale, dal momento che pare che l' ApplBuild non lo faccia in automatico, Come potrei inserire l'installazione anche degli ActiveX nel pacchetto Installer da consegnare al Cliente ? Grazie in anticipo per le risposte! ---------------------------------------- AUTORE: 278 DATA :13/05/2009 - 13:49:56 ---------------------------------------- aggiungerei.. \":?:\" con vista non funziona \":lol:\" e menomale che gli activex sono sempre roba microsoft \":mrgreen:\" \":mrgreen:\" ---------------------------------------- AUTORE: 838 DATA :14/05/2009 - 06:51:44 ---------------------------------------- molto strano che non ti funzioni, controlla che con l'application builder ci sia impostata la cartella di supporta (di solito "data") dove vengono inserite tutte le librerie extra non integrate nell'eseguibile. In teoria dovresti avere il tuo eseguibile supportato dalla cartella data con dentro le winutil necessarie al funzionamento su altri pc io l'ho installato su diversi pc (con solo le runtime classiche) e vanno tutti io ho usato la 8.2, con la 7.1 non ho mai provato i pc utilizzati hanno tutti xp ---------------------------------------- AUTORE: 947 DATA :14/05/2009 - 13:21:15 ---------------------------------------- .. Grazie per la risposta ! Dunque .. quando creo il pacchetto di Installazione con AplBuilder lui crea il [u:23q3vt8j]data.cab[/u:23q3vt8j] con dentro un bel po' di cose (dll, ocx, ...) ma non riesco ad individuare l' [u:23q3vt8j]ActiveX[/u:23q3vt8j] del [u:23q3vt8j]LabVIEWTrayIcon[/u:23q3vt8j] nè so se è possibile aggiungerlo in qualche modo anche manualmente .. .. quindi in teoria (da quello che mi dici) sembra che lui dovrebbe farlo in automatico in modo che installado in un qualunque PC possa funzionare correttamente .. In teoria!! .. ma non è così .. E (sempre in teoria) lo stesso vale per un qualunque ActiveX utilizzato nella mia applicazione .. \":?:\" Mi puoi confermare che questa teoria (almeno come teoria!!) sia corretta e non una mia interpretazione errata ?? Grazie! ---------------------------------------- AUTORE: 838 DATA :14/05/2009 - 16:25:02 ---------------------------------------- ma invece di provare a fare l'installer crei l'applicativo e basta? io non l'ho mai usato l'installer perchè non riuscivo a farlo personalizzato come volevo, allora io creo l'application e la dò zippata al cliente insieme alle runtime da installare, e mi sembra che ci sia proprio tutto in data prova così ---------------------------------------- AUTORE: 947 DATA :14/05/2009 - 16:43:40 ---------------------------------------- .. \":?\" .. Ma sei sicuro ?? .. a me così nn ha mai funzionato .. in Data c'è solo "[u:32x4e0gl]lvalarms.dll[/u:32x4e0gl]" e nient'altro .. e il Runtime Engine?? .. nn mi dire che è anche quello contenuto là dentro !! .. Boh.. adesso provo .. cmq Grazie!! ---------------------------------------- AUTORE: 838 DATA :15/05/2009 - 07:46:03 ---------------------------------------- non hai capito, il runtime va dato a parte da installare a parte e in data ho solo LVWUtil32.dll ---------------------------------------- AUTORE: 487 DATA :15/05/2009 - 10:41:59 ---------------------------------------- Ciao a tutti, [quote="minzuk":2uba6c7q]ma invece di provare a fare l'installer crei l'applicativo e basta? io non l'ho mai usato l'installer perchè non riuscivo a farlo personalizzato come volevo, allora io creo l'application e la dò zippata al cliente insieme alle runtime da installare, e mi sembra che ci sia proprio tutto in data[/quote:2uba6c7q] non sono molto d'accordo: è vero che la creazione dell'installer con labview è abbastanza limitata, ma se si crea in maniera corretta l'eseguibile la sucessiva creazione dell'installer è rapida e semplice. [quote="Luca.glt":2uba6c7q]Dunque .. quando creo il pacchetto di Installazione con AplBuilder lui crea il data.cab con dentro un bel po' di cose (dll, ocx, ...) ma non riesco ad individuare l' ActiveX del LabVIEWTrayIcon nè so se è possibile aggiungerlo in qualche modo anche manualmente .. .. quindi in teoria (da quello che mi dici) sembra che lui dovrebbe farlo in automatico in modo che installado in un qualunque PC possa funzionare correttamente .. In teoria!! .. ma non è così ..[/quote:2uba6c7q] secondo me la tua teoria è sbagliata: se utilizzi dei file che non sono gestiti direttamente da labview, come per esempio degli activeX, ti consiglierei di inserirli nella directory di supporto quando crei l'eseguibile, altrimenti li perderai [quote="Luca.glt":2uba6c7q]Ho compilato il tutto con l' ApplBuild del LV7.1 ed ho installato il SW in un altro PC ... \":!:\" Non funziona !! Mi pare di capire (correggetimi se sbaglio!) che se utilizzo un ActiveX (come per es quello della TryIcon ma lo stesso vale probabilmente per tutti gli ActiveX) devo aspettarmi che il SW compilato funzioni SOLO sui PC in cui quell'ActiveX è già installato, nonostante esegua l'installazione tramite il pacchetto installer creato dal ApplBuild del LV! Quindi le domande che mi sorgono sono: \":?:\" Più pressante per adesso, Come posso far funzionare il LabVIEWTrayIcon ed il menù che ho creato per il SW anche su un altro PC ?[/quote:2uba6c7q] oltre ad avere l'activeX a disposizione nella cartella di supporto, se la tua applicazione viene installata su un altro pc devi avere l'accortezza di registrare il controllo activex perchè, se sul pc di destinazione tale controllo non è presente non lo puoi ovviamente utilizzare. Io generalmente crea dei file .bat contenenti il comando "regsvr32" per la registrazione dei controlli activeX. Spero di esservi stato utile e non troppo contorto nella spiegazione ---------------------------------------- AUTORE: 838 DATA :15/05/2009 - 13:23:08 ---------------------------------------- io ho utilizzato solo le llb che usano LVWUtil32.dll e automaticamente il builder lo mette in data non ho usato direttamente alcun activex, e non ho registrato nulla sotto windows forse non utizza le winutil corrette nel progetto per il discorso dell'installer probabilmente se approfondito può essere un buon prodotto, ma diciamo che ho fatto prima a dare le cose separate anche perchè rilasciavo continuamente aggiornamenti (e veniva comodo copiare solo l'exe) ---------------------------------------- AUTORE: 947 DATA :09/12/2010 - 12:04:44 ---------------------------------------- .. Ciao a tutti, .. riapro questo vecchio thread di discussione per ritornare al punto centrale della questione: [b:2g5ds6q7] \":?:\" Come creare una Applicazione come un Servizio ? [/b:2g5ds6q7] intendendo per "servizio" [b:2g5ds6q7]un vero servizio di Win[/b:2g5ds6q7] .. Io ho provato il tool [b:2g5ds6q7][u:2g5ds6q7]Fire Daemon Pro Service[/u:2g5ds6q7][/b:2g5ds6q7] "[u:2g5ds6q7]http://www.firedaemon.com/post-install.php[/u:2g5ds6q7]" e devo dire che è OTTIMO. Dato un normale Exe questo lo si può far partire come Servizio impostando vari parametri fra cui l'Utente del servizio, schedulare run e stop, gestire restart in caso di fallimenti .. etc etc .. Ok .. maaaa .. se volessi fare il tutto senza usare Tool esterni ma solo il LV ?? [b:2g5ds6q7] \":?:\" Come dovrebbe essere fatto un programma in LV poi compilato in Exe per poter essere visto dal Win come un Servizio di user generico (System) ??? [/b:2g5ds6q7] Qualcuno sa darmi un consiglio?? ---------------------------------------- AUTORE: 927 DATA :10/12/2010 - 09:16:28 ---------------------------------------- non è possibile scendere così a basso livello. servirebbero delle funzioni standard, tipiche del paradigma di programmazione "classico", che il SO possa chiamare. serve come minimo una DLL esterna; l'hanno anche fatta... non gratis. Ne parlano (in inglese) in http://forums.ni.com/t5/LabVIEW/Windows ... m-p/476489 Il demo della DLL è in http://www.citengineering.com/nl/produc ... liotheken/ (pagina in olandese, ma demo in inglese!) ---------------------------------------- AUTORE: 947 DATA :14/12/2010 - 09:04:13 ---------------------------------------- .. [quote:1g8ok9ij]non è possibile scendere così a basso livello. servirebbero delle funzioni standard, tipiche del paradigma di programmazione "classico", che il SO possa chiamare. serve come minimo una DLL esterna; l'hanno anche fatta... non gratis.[/quote:1g8ok9ij] .. Bhè .. però la DLL la potrei fare da me .. se solo sapessi come .. \":roll:\" .. Ad ogni modo, grazie 1000 per la risposta .. ora do un'occhiata al tutto .. ---------------------------------------- AUTORE: 482 DATA :27/07/2011 - 12:41:37 ---------------------------------------- riporto in auge questo topic. Ho un applicazioen che la momento gira su server. Solo che per farla restare in run, deve sempre rimanere loggato un utente. Per questo volevo trasformare l'applicazione in u nservizio. Il tool tray icon fa al caso mio o mi devo rivolgere a qalche applicazione ch emi trasforma l'eseguibile in un servizio? e in tal caso devo installar el'applicazione sul server? ---------------------------------------- AUTORE: 301 DATA :28/07/2011 - 06:04:39 ---------------------------------------- Ciao Geppo, Il tool tray icon, l'ho provato, ma non fa altro che crearti e gestirti una icona (nella tray di sistema appunto), utilizzando una architettura tipo vi server..... Non so esattamente come funzioni la tua applicazione, ma non credo che ti possa essere d'aiuto questo programma......a meno che, non ci implementi dentro una sorta di "sentinella" che alla richiesta di connessione ti riavvii il tuo vi e che si prende la connessione entrante... Aris ---------------------------------------- AUTORE: 927 DATA :28/07/2011 - 09:31:12 ---------------------------------------- In realtà il titolo di questa discussione è un po' fuorviante: i servizi e la tray icon sono due cose diverse e del tutto indipendenti. Comunque per trasformare facilmente un'applicazione in un servizio puoi usare i citati XYNTservice o FireDaemon. Non ho capito la domanda "devo installare l'applicazione sul server"; come fai a farla girare sul server senza installarla? ---------------------------------------- AUTORE: 482 DATA :28/07/2011 - 11:04:56 ---------------------------------------- Sorry, mi riferivo apputno all'applicazione tipo FireDaemon. E' una aplicazioen continuamente in run che fa girare il mio eseguibile come un servizio (e quindi va installata sul server) oppure trasforma proprio il mio eseguibile in un servizio e quindi poi sul server non ci mettero' il mio exe ma qualcos'altro? ---------------------------------------- AUTORE: 927 DATA :28/07/2011 - 11:29:03 ---------------------------------------- Per XYNTservice è sicuramente la prima che hai detto ---------------------------------------- AUTORE: 301 DATA :28/07/2011 - 16:06:43 ---------------------------------------- Ho trovato anche questo.....credo si possa automatizzare tranquillamente! [url] http://support.microsoft.com/kb/137890[/url] Aris ---------------------------------------- ================================================================================ controllo data flow con tab control ================================================================================ AUTORE: 2270 DATA :22/11/2007 - 15:41:49 ---------------------------------------- Ciao a tutti. Voglio che il programma contenuto nel file si comporti in questo modo. Quando passo dalla pagina 1 alla pagina 2 il primo ciclo deve interrompersi e deve avviarsi is secondo. Quando passo dalla pagina 2 alla pagina 1 il secondo ciclo deve interrompersi e deve avviarsi il primo. ---------------------------------------- AUTORE: 129 DATA :23/11/2007 - 07:32:32 ---------------------------------------- Devi pilotare un solo select con il tab, dove il frame tab1 contiene il codice del primo tab, mentre il secondo frame contiene quello del secondo appunto. Altra cosa, usa il functional global e il comando di arresto lo fai dall'esterno. Ti allego un esempio ---------------------------------------- AUTORE: 2270 DATA :28/11/2007 - 09:26:21 ---------------------------------------- Grazie nicola. Ho fatto come hai detto. Ho inserito ulteriori istruzioni che permettono un maggiore controllo. Allego il file ultimo per chiunque si trovi nella mia stessa situazione. ---------------------------------------- ================================================================================ Seriale rs232: Errore non documentato ================================================================================ AUTORE: 1348 DATA :22/11/2007 - 16:58:46 ---------------------------------------- Salve a tutti! Sto cercando di far girare un programma per scrivere e leggere sulla seriale e, nonostante sia abbastanza semplice mi ritorna un errore strano ovvero -1073807202 Property Node in VISA Configure Serial Port (Instr).vi->Seriale.vi La stessa cosa mi succede se provo a lanciare gli esempi presenti in lw 7.2 Qualche idea? ---------------------------------------- AUTORE: 645 DATA :22/11/2007 - 23:26:26 ---------------------------------------- http://digital.ni.com/public.nsf/allkb/ ... 32004EC84D .. probabilnte mancano i driver NI-VISA sul tuo sistema. Puoi scaricarli dal sito www.ni.com nella sezione supporto. ---------------------------------------- ================================================================================ Aquisizione continua buffer ================================================================================ AUTORE: 2303 DATA :22/11/2007 - 17:27:08 ---------------------------------------- salve a tutti sono nuovo e spero di non violare alcune regole del forum. il mio problema è che non riesco a fare l'acquisizione continua. ho letto del buffer circolare ma non trovo esempi ne chiare spiegazioni. in pratica io avrei bisogno di qualcosa che venga elaborato mentre si sta ancora acquisendo. avevo pensato nella mia testa ad un doppio buffer ma sono i alto mare. qualcuno ha riscontrato tale problema ed hala soluzione? grazie davvero per l'interessamento. saluti a tutti ---------------------------------------- AUTORE: 314 DATA :22/11/2007 - 20:34:06 ---------------------------------------- se devi acquisire ed elaborare i dati allo stesso tempo senza che la durata di una delle due operazioni non influenzi l'altra .... potresti usare una Queue (coda) usando due cicli while-loop in parallelo. Il while della acquisizione mette nella coda i dati letti. Il while dell'elaborazione li preleva e li acquisisce. In pratica fai una FIFO... Spero di averti dato una mano. Ciao ---------------------------------------- ================================================================================ Importare file CAD in LV ================================================================================ AUTORE: 925 DATA :23/11/2007 - 09:34:33 ---------------------------------------- Ciao a tutti, sto realizzando un programmino in LV per gestire la movimentazione di un sistema di slitte XY utilizzando un controller che accetta comandi ASCII tramite comunicazione seriale. Volevo sapere se è possibile importare in LV un file proveniente da AUTOCAD (cioè a me occorre che le slitte si muovano seguendo un disegno fatto al CAD). Qualcuno sa dirmi qualcosa al riguardo? Grazie ---------------------------------------- AUTORE: 1050 DATA :23/11/2007 - 09:41:36 ---------------------------------------- Hai già provato copia/incolla sul pannello? ---------------------------------------- AUTORE: 645 DATA :23/11/2007 - 10:56:22 ---------------------------------------- Nel senso che devi importare un file CAD interpretandolo? Cioè, ti serve solo il disegno sullo sfondo o devi analizzare le quote (o le misure) per poi far muovere le slitte? Se è così ti coviene dare un'occhiata alla compatibilità tra LabView e Solid Works. ---------------------------------------- AUTORE: 482 DATA :23/11/2007 - 11:00:51 ---------------------------------------- Non so darti dettagli precisi, pero' so che Marco Quaglia, tecnico National che si occupa di Vision e Motion a Milano, aveva realizzato un software che da un disegno tecnico (non so se dwg o che altro) aveva creato una fresa che andava a riprodurre il disegno su un pezzetto di legno. Quindi la cosa è assolutamente fattibile.Probabilmente ci vorranno altri passaggi in mezzo tipo CAM. ---------------------------------------- ================================================================================ Lancio Applicazione.exe in un front panel di labview ================================================================================ AUTORE: 2307 DATA :23/11/2007 - 14:52:33 ---------------------------------------- Ciao a tutti, Sono un nuovo utente, Ho labview 8 ed per una mia applicazione ho necessita di chiamare un programma .exe all'interno di un Panel Labview... Io gia uso System exec.vi e tutto funziona ma apre applicazione all'esterno di labview. Qulcuno puo aiutarmi..?? Grazie in anticipo Giuseppe ---------------------------------------- AUTORE: 927 DATA :03/12/2007 - 10:29:01 ---------------------------------------- Non credo sia possibile, gli exe sono indipendenti per natura. Spetta al software esterno fornirti le sue finestre come componenti, ad es. tramite i controlli ActiveX ---------------------------------------- ================================================================================ Compilare con LabVIEW 8.5 ================================================================================ AUTORE: 2302 DATA :24/11/2007 - 12:26:53 ---------------------------------------- Ciao raga, ho LabVIEW 8.5 Full Development System con la licenza per Application Builder, ma non riesco a trovare nel menù Tools il comando per compilare la mia applicazione, qualcuno gentilmante potrebbe aiutarmi? Grazie a tutti ciao ---------------------------------------- AUTORE: 487 DATA :26/11/2007 - 07:15:55 ---------------------------------------- Dalla versione 8 in poi, per poter creare un eseguibile devi partire dal progetto (Build Specifications) ---------------------------------------- ================================================================================ Regolare intensità luminosa tramite labview ================================================================================ AUTORE: 2306 DATA :25/11/2007 - 11:05:23 ---------------------------------------- Buongiorno , sono nuovo e [u:2qmvoix7]non so usare labview[/u:2qmvoix7] ma nel giro di alcuni mesi devo imparare a fare la seguente cosa: Ho una faretto iplb207 da 2000W a cui è collegato un variatore di tensione digitale da 0 a 230V ora la regolazione dell'intensità luminosa è svolta attraverso un potenziometro (posto sul variatore di tensione), mi è stato detto che a breve mi arriverà una scheda di interfaccia da collegare al pc e al variatore (che ha un remote control per il pc). Mi è stato chiesto di creare un programma in labview che gestisca la variazione di intensità in base a tempi e valori di intensità prestabiliti, in pratica il programma deve variare l'intensità luminosa(quindi la tensione di alimentazione) in un periodo di X ore totali ogni tot minuti qualche buona anima potrebbe darmi una mano? grazie mille \":lol:\" ---------------------------------------- AUTORE: 947 DATA :25/11/2007 - 11:32:03 ---------------------------------------- Volentieri... Il progetto non sembra difficile... in pratica c'è da controllare la tensione in uscita da una scheda da un min a un max secondo una determinata legge (non chiarissima per la verità) ... ma il problema è ... da dove dovrei cominciare a spiegarti? ... Le tue perplessità sono nell'uso del LV in genere, oppure nell'implementazione della legge di variazione, o nel pilotare la scheda oppure .... ??? in ogni caso (anche tutti e 3!!) dovresti essere + preciso ... [b:v076x0qi]Per l'uso del LV[/b:v076x0qi] ... dovresti delimitare il problema e fare richieste + precise... [b:v076x0qi]Per la legge di variazione[/b:v076x0qi] ... dovresti spiegare meglio ... + dettaglio... [b:v076x0qi]Per il pilotaggio della scheda[/b:v076x0qi] .... di che tipo di scheda si tratta? ... una della NI? e se sì ... di che tipo? ... come è connessa al PC?... cmq fra gli esempi di LV si trova molto sulla generazione continua di tensioni... potresti dare un'occhiata per farti un'idea... Ricorda .... + scrivi e + sarà facile darti una mano ... Ciao!! ---------------------------------------- AUTORE: 2306 DATA :25/11/2007 - 11:38:24 ---------------------------------------- ok allora appena arriva la scheda mi rifaccio sentire dato che sivuramente daranno indicazioni più dettagliate anche a me..ci riaggiorneremo e grazie di tutto per adesso ---------------------------------------- ================================================================================ MOTORE_DC-Temporizzazione ================================================================================ AUTORE: 1596 DATA :26/11/2007 - 10:15:27 ---------------------------------------- salve a tutti, ho un problema di temporizzazione ma non riesco a risolverlo. In pratica quello che mi succede e' questo: avvio il VI allegato e dopo 5 secondi (time out del Counter DBL 1 sample ) compare l'[url=http://img225.imageshack.us/my.php?image=provajh9.png:2o3d15mf]errore[/url:2o3d15mf] . In pratica vengono "letti" dei valori sul counter (in uscita da un encoder incrementale) che non sono ancora disponibili...dopo l'errore il motore in DC parte con un valore di 4 volt o -4 volt (range sul PID)..a questo punto, stoppando e facendo ripartire il VI, il controllo del motore funziona (cio' perche' sull'uscita analogica sono presenti ancora i 4 volt al momento della ripartenza del VI e quindi il counter ha dei valori disponibili). I 4 volt sono ancora presenti perche' il VI non termina e quindi non viene resettata la scheda al valore 0 volt che ho messo nel "case". THX ---------------------------------------- AUTORE: 1596 DATA :26/11/2007 - 12:39:33 ---------------------------------------- ...ecco il VI. ---------------------------------------- AUTORE: 1596 DATA :26/11/2007 - 14:17:00 ---------------------------------------- ok ho risolto... faccio partire il motore con una tensione minima e poi gli faccio controllare la velocita' col VI postato. In pratica ho messo una sequence e nel primo frame una tensione sull'Analog Output cosicche' la lettura del counter possa avvenire quando parte il controllo nel secondo frame. Se qualcuno ha altre idee mi faccia saxe. THX ---------------------------------------- ================================================================================ ILVG.it all'NI Day 2008 ================================================================================ AUTORE: 4 DATA :26/11/2007 - 14:31:58 ---------------------------------------- Anche quest'anno ILVG.it partecipa all'NIDay. [b:2hpha3ju]Roma, mercoledì 27 febbraio 2008 presso Ergife Palace Hotel.[/b:2hpha3ju] Per altre info, il sito ufficiale è [url=http://digital.ni.com/worldwide/italy.nsf/webevents/9853B9DE8D790935802570D8002F5ECC?OpenDocument&node=164560_i;%20164560_i:2hpha3ju]questo[/url:2hpha3ju] Quest'anno NI ci ha chiesto di preparare una presentazione tecnica proponendo due temi: 1 programmazione avanzata in LabVIEW 2 LabVIEW su sistemi embedded Ci piacerebbe raccogliere i vostri feedback su cosa vi piacerebbe presentassimo all'NI day. Come al solito tutti i commenti sono benvenuti, proponete le vostre idee. Ciao ---------------------------------------- ================================================================================ Problemi di sincronizzazione ================================================================================ AUTORE: 1921 DATA :27/11/2007 - 09:11:52 ---------------------------------------- Salve a tutti, grazie per tutte le dritte che mi avete dato, anche solo leggendo le risposte degli altri. Ora però ho un problema e non riesco a venirne a capo. Nel mio programma, lancio una sequenza di test e devo verificare ad ogni invio, la correttezza della risposta che mi torna indietro. Faccio così: prelevo da una tabella la configurazione da inviare e, ad ogni interrogazione che mi viene fatta, invio tramite seriale una riga della tabella. Contemporaneamente, devo verificare che la configurazione che ho inviato abbia sortito l'effetto desiderato (si tratta del colloquio con il Fix.. devo rileggere il valore delle variabili che sono state modificate dalla configurazione che ho inviato). Questo colloquio avvene via TCP-IP. Io vorrei che il sistema non interrompesse mai il colloquio via seriale (cioè non mandare mai in timeout il sistema, rispondendo ad ogni richiesta) ma vorrei passare alla riga successiva solo quando ho terminato il confronto e registrato l'esito. Ho realizzato il tutto tramite 2 cicli paralleli, sincronizzati dai notifier e la notifica consiste nell'invio al ciclo slave dell'indice della configurazione da confrontare. Il ciclo slave si prende i suoi tot secondi per effettuare i controlli e poi deve consentirmi di passare alla riga successiva, indipendentemente dall'esito del confronto (che viene cmq registrato su un file). Ecco.. non riesco a realizzare quest'ultima parte... cioè... rimandargli indietro l'ok per passare alla riga successiva. Scusate se mi sono dilungata, ma mi aiutate, se potete?? Grazie mille in anticipo.. probabilmente ci vedremo all'NIDays... sto anche preparando l'articolo per un'applicazione già fatta. Angela ---------------------------------------- AUTORE: 927 DATA :03/12/2007 - 10:20:48 ---------------------------------------- Non puoi usare un altro notifier, un semaforo o simili? ---------------------------------------- AUTORE: 1921 DATA :03/12/2007 - 11:29:46 ---------------------------------------- [quote="Snamprogetti":1qq5e9re]Non puoi usare un altro notifier, un semaforo o simili?[/quote:1qq5e9re] Se uso un altro notifier, o simile, il primo ciclo si ferma in attesa della notifica... invece deve continuare a girare per non mandare in timeout il sistema! ---------------------------------------- AUTORE: 927 DATA :03/12/2007 - 11:37:25 ---------------------------------------- Se usi Cancel Notification (almeno mi pare sia quello il nome...) ti dà il valore della notifica se è arrivata, o niente se non è arrivata, senza fermarsi ad aspettare ---------------------------------------- ================================================================================ Chiamata ActiveX ================================================================================ AUTORE: 1033 DATA :27/11/2007 - 09:29:31 ---------------------------------------- Ciao, ho trovato un controllo activex che fa semplicemente un display di un'icona e della sua caption. Usando il controllo nel vi in cui l'ho generato non ho problemi e funziona correttamente. Quello che vorrei fare è creare di questo un sub-vi da poter inserire in tutti i miei vi top level. Il mio problema è che non so quale reference passare al subvi per far si che il il controllo activex posto sul pannello del chiamante funzioni correttamente. Avete qualche suggeriemento. Grazie. ---------------------------------------- ================================================================================ IMAQ detect shapes ================================================================================ AUTORE: 46 DATA :27/11/2007 - 10:13:54 ---------------------------------------- Buongiorno a tutti A fini didattici sto utilizzando la funzione IMAQ detect shapes per determinare quante forme circolari vengono viste da una webcam usb. Tutto funziona correttamente, però . . . mi piacerebbe che nell'immagine risultante apparissero anche le indicazioni di quali sono le figure che sono state riconosciute, un po' come accade nel vision assistant, ma purtroppo non ne sono capace. Sapreste darmi qualche indicazione su come procedere ? Grazie mille e buona giornata Claudio ---------------------------------------- ================================================================================ IMAQ detect shapes ================================================================================ AUTORE: 46 DATA :27/11/2007 - 12:09:48 ---------------------------------------- Buongiorno a tutti A fini didattici sto utilizzando la funzione IMAQ detect shapes per determinare quante forme circolari vengono viste da una webcam usb. Tutto funziona correttamente, però . . . mi piacerebbe che nell'immagine risultante apparissero anche le indicazioni di quali sono le figure che sono state riconosciute, un po' come accade nel vision assistant, ma purtroppo non ne sono capace. Sapreste darmi qualche indicazione su come procedere ? Grazie mille e buona giornata Claudio ---------------------------------------- ================================================================================ salvare su file ================================================================================ AUTORE: 2168 DATA :28/11/2007 - 11:24:50 ---------------------------------------- Ciao a tutti, ho un VI che dovrebbe salvare su file ogni volta che un valore viene modificato e lo fa, ma quando provo ad aprirlo con Excel mi dice che è in un formato non valido, lo apre ugualmente ma i tempi hanno valori strani, a volte negativi, a volte con simboli anomali in mezzo. Tutti gli altri valori sembrano corretti. Vi mostro il block diagram. La stringa risultante va poi fuori dal ciclo while fino al blocco Open file, Write e Close ---------------------------------------- AUTORE: 927 DATA :03/12/2007 - 10:08:58 ---------------------------------------- Il tempo prova a stamparlo ad es. in formato gg/mm/aa oo:mm:ss, usando Format Date/time String. Excel dovrebbe riconoscerlo ---------------------------------------- AUTORE: 2168 DATA :03/12/2007 - 10:22:38 ---------------------------------------- [quote="Snamprogetti"]Il tempo prova a stamparlo ad es. in formato gg/mm/aa oo:mm:ss, usando Format Date/time String. Excel dovrebbe riconoscerlo[/quote] Ma in altri VI che ho fatto, tutti in realtà,mi ha sempre letto il tempo con questo formato senza problemi. Inoltre a me serve proprio il tempo in questo formato per poter fare da excel delle differenze di tempo senza problemi di conversione. ---------------------------------------- ================================================================================ valore di un booleano ================================================================================ AUTORE: 2270 DATA :28/11/2007 - 16:05:23 ---------------------------------------- Ciao a tutti. Nel mio block diagram c'è un ciclo con all'interno un altro ciclo la cui esecuzione è controllata da un booleano per mezzo di un select case. Quando premo il pulsante di stop del ciclo più esterno voglio far fermare anche l'esecuzione del ciclo più interno. Ho provato con un propety node ma non ci sono riuscito. Grazie a tutti ---------------------------------------- AUTORE: 487 DATA :29/11/2007 - 07:43:29 ---------------------------------------- Ciao mario64, porta il pulsante di stop nel ciclo più interno in maniera tale che quando lo premi fa terminare prima il ciclo interno e poi quello esterno ---------------------------------------- AUTORE: 2270 DATA :29/11/2007 - 09:32:01 ---------------------------------------- Ciao coma. Il ciclo più interno si trova all'interno di un select case che viene attivato per mezzo di un booleano. Ho messo il pulsante di stop relativo al ciclo esterno nel ciclo interno come tu hai detto. Se premo il pulsante di stop quando anche il booleano è schiacciato il programma si ferma. Ciò mi va bene. Se premo il pulsante di stop quando il booleano non è schiacciato il programma non si ferma. Ciò non mi va bene. ---------------------------------------- AUTORE: 487 DATA :29/11/2007 - 10:01:48 ---------------------------------------- Utilizza una variabile locale del pulsante di stop per passare il valore al ciclo esterno, senza collegarlo direttamente. Comunque non ho capito bene perchè utilizzi due cicli while anzichè uno solo. Se ci dici quale risultato vuoi ottenere, qual'è lo scopo del tuo vi, sicuramente dal forum ti arriveranno dei suggerimenti per risolvere al meglio il tuo problema. ---------------------------------------- AUTORE: 2270 DATA :29/11/2007 - 10:19:44 ---------------------------------------- Ho fatto quello che mi hai detto. Tuttavia il programma mi dice che: "boolean latch action is incompatible with local variables". Sono costretto a usare due cicli perche devo aver due diverse velocità di esecuzione. Il file che ho spedito è solo una semplificazione del programma che sto realizzando. ---------------------------------------- AUTORE: 301 DATA :29/11/2007 - 13:27:37 ---------------------------------------- boolean latch action is incompatible with local variables è un errore che viene restituito a causa (appunto) dell'azione meccanica associata al controllo. se la soluzione con variabile locale ti va bene, devi cambiare l'azione meccanica del boolean ed inizializzare il controllo all'inizio del ciclo. ---------------------------------------- AUTORE: 2270 DATA :29/11/2007 - 14:40:05 ---------------------------------------- Grazie aris per la risposta. Come faccio a cambiare l'azione meccanica del boolean ed ad inizializzare il controllo all'inizio del ciclo ? ---------------------------------------- AUTORE: 301 DATA :29/11/2007 - 16:28:58 ---------------------------------------- Tasto dx sul controllo e scegli l'azione che ti serve.....sappimi dire se riesci ad aprirlo.... buon lavoro! ---------------------------------------- AUTORE: 301 DATA :29/11/2007 - 16:38:23 ---------------------------------------- scusa......ho aggiunto un'altra modifichetta....spero ti faccia piacere.....bhè, torno a lavorare...sappimi dire! Ciau! ---------------------------------------- AUTORE: 2270 DATA :29/11/2007 - 17:38:00 ---------------------------------------- Grazie aris,sei stato veramente gentile. Io voglio vedere il pulsante di stop e il boolean durante l'intera esecuzione del vi. Per questo motivo ho settato tutti i proprety node visible su true. Secondo te va bene? ---------------------------------------- AUTORE: 2270 DATA :29/11/2007 - 18:24:52 ---------------------------------------- Scusami di nuovo aris. Ho provato a rifare il vi mettendo il codice che hai inserito tu. Tuttavia il programma mi dice ancora "boolean latch action is incompatible with local variables". Per caso esiste qualche impostazione particolare da settare ? Io uso la versione 8.0. ---------------------------------------- AUTORE: 301 DATA :29/11/2007 - 19:40:22 ---------------------------------------- L'unica cosa da settare è quella dell'immagine. Ricorda solamente che cambiando le mech act da latch in switch devi sempre gestire il valore del boolean. Per capirci: Quando inserisci lo stop in un wile (latch) in automatico viene creato un controllo che dopo essere stato premuto torna al valore precedente (non compatibile con local var). Sappimi dire se funge! ---------------------------------------- AUTORE: 2270 DATA :29/11/2007 - 21:59:45 ---------------------------------------- Grazie di nuovo aris. Il vi ora funziona come volevo. ---------------------------------------- AUTORE: 301 DATA :30/11/2007 - 12:05:15 ---------------------------------------- you are welcome! ---------------------------------------- ================================================================================ Come portare file in C++ e Visual Basic in LabVIEW 8.2? ================================================================================ AUTORE: 2312 DATA :29/11/2007 - 14:02:10 ---------------------------------------- Salve! E' da poco che uso il LabVIEW e devo sviluppare una tesi sul controllo di un robot, il tutto tramite l'uso del LabVIEW stesso. Vorrei sapere come posso importare, o comunque utilizzare, in LabVIEW del software già sviluppato in linguaggio C++ e Visual Basic. Purtroppo non mastico benissimo l'inglese quindi ho un pò di difficoltà a fare riferimento a quanto riportato nel sito nella National Instruments. Grazie, Alessandro. ---------------------------------------- AUTORE: 927 DATA :03/12/2007 - 10:00:32 ---------------------------------------- Sei in grado di compilare quei software come DLL? ---------------------------------------- AUTORE: 2312 DATA :03/12/2007 - 10:53:29 ---------------------------------------- Intanto grazie per la collaborazione. Purtroppo ora sto proprio combattendo con la ri-compilazione del software in C++ sviluppato da terzi e che mi tira fuori diversi errori. Comunque una volta riuscito a portare il software ad essere una DLL come devo agire? Grazie mille, Alessandro. ---------------------------------------- AUTORE: 927 DATA :03/12/2007 - 11:05:28 ---------------------------------------- Si usa il blocco Call Library Function Node. Quando lo doppioclicchi ti fa scegliere il file DLL, la funzione da chiamare, i parametri... In pratica la funzione esterna, compilata con qualunque linguaggio, ti si presenta come un normale blocco di Labviù ---------------------------------------- ================================================================================ sto iniziando, errore 50150, un tantino urgente, per favore ================================================================================ AUTORE: 2290 DATA :29/11/2007 - 14:58:06 ---------------------------------------- salve a tutti, sto iniziando ora ad apprendere labview... per adesso devo riuscire ad acquisire un segnale tramite una scheda di acquisizione ni6250 sono partito da uno degli esempi, ma ho un problema... ho collegato un generatore di funzioni alla scheda e mi da questo errore error -50150 occurred ad DAQmx Create Channel (AI-Voltage-Basic).vi possible reason: the software has entered an unknown state - usually as a result of a cascade failure induced by an unexpected series of state inputs. The operazion could not be completed as specified and you should immediately terminate all further transactions if you are able to do so che devo fare? ---------------------------------------- AUTORE: 2290 DATA :29/11/2007 - 15:32:45 ---------------------------------------- inoltre, sto notando, che se apro l'appricazione measurement & automation explorer, sotto devices and interfaces, sotto ni-daqmx devices, c'è la mia scheda, la ni pci-6250: "dev1" se provo a fare un self test o a resettare il device, mi da lo stesso errore -50150 che significa? ---------------------------------------- AUTORE: 645 DATA :29/11/2007 - 16:49:24 ---------------------------------------- Puoi provare ad installare una nuova versione dei driver Daq-MX scaricabili dal sito della National... non assicuro che risolva ma magari è un inizio... ---------------------------------------- AUTORE: 2290 DATA :30/11/2007 - 09:37:55 ---------------------------------------- ho reinstallato i driver... inizialmente mi dava un errore -50010, poi -200150 (questi due me li dava quando tentavo di fare un self-test) e non mi dava errore se provavo a fare il reset device poi ho aperto labview, ho provato a lanciare uno dei file di esempio e ha ricominciato con l'errore -50150... ---------------------------------------- ================================================================================ errore LV 8.5-->8.2 ================================================================================ AUTORE: 1596 DATA :29/11/2007 - 16:21:25 ---------------------------------------- salve a tutti, cerco di salvare un VI da LV 8.5 a 8.2 ma mi da' [url=http://img66.imageshack.us/my.php?image=errorevo0.jpg:2rvrpbjz][img:2rvrpbjz]http://img66.imageshack.us/img66/4548/errorevo0.th.jpg[/img:2rvrpbjz][/url:2rvrpbjz] ..c'e' da impostare qualcosa di particolare?? \":o\" \":?\" many thanks!!! ---------------------------------------- AUTORE: 301 DATA :29/11/2007 - 16:45:07 ---------------------------------------- hai utilizzato delle funzioni particolari implementate in lv8.5? hai provato a salvare in lv 8.0? ---------------------------------------- AUTORE: 1596 DATA :29/11/2007 - 17:58:39 ---------------------------------------- ho provato a salvare in LV 8, non ho utilizzato particolari funzioni ma non funziona!!! il tutto e' stato fatto con LV 8.21, ho fatto una modifica aprendo il VI con 8.5 (tipo aggiunta di una sum) e poi ho salvato... \":(\" c'e' da dire un'altra cosa che non ho detto.... LV 8.5 e LV 8.21 girano su due PC diversi, ma i file li sto salvando sul dominio in comune al quale si connettono e si sincronizzano... potrebbe essere questa la ragione? e se si', come potrei risolvere? THX ---------------------------------------- AUTORE: 301 DATA :29/11/2007 - 19:24:48 ---------------------------------------- aaaaaaaahhhhhhhhhhhhhhhh, mo forse si spiega..... sei sicuro di avere i diritti di lettura e scrittura nella cartella di rete?!?! Prova a salvare il file in locale e poi a spostarlo. Se non hai abbastanza diritti sul disco o cartella in cui cerchi di salvare è molto probabile che ti venga restituito quell'errore! Sappimi dire! Ciau! ---------------------------------------- AUTORE: 1596 DATA :29/11/2007 - 20:55:06 ---------------------------------------- ho provato a salvare in locale ma mi da' lo stesso errore \":?\" ---------------------------------------- AUTORE: 301 DATA :30/11/2007 - 12:12:13 ---------------------------------------- mmmmmmmm...veramente strano..... come gia detto quel tipo di errore potrebbe venir restituito per mancanza di diritti dulla directory..... Sei amministratore della macchina "che non riesce a salvare"?in caso contrario, immagino tu abbia provato a salvare sul desktop........La cosa è veramente strana, nella mia "ignoranza" di LV, direi che non c'è nessun settaggio particolare da fare per salvare in revisioni precedenti, quello che ti viene restituito è un errore di "sistema" (non legato a LV). Come detto, l'unica cosa che ti consiglio è di verificare gli accessi alla dir su cui vai a scrivere, magari provando anche su di una chiavetta di mem o altri supporti removibili......o magari (se non è troppo grande) prova a postare il VI e te lo converto..... ---------------------------------------- AUTORE: 1596 DATA :30/11/2007 - 13:10:31 ---------------------------------------- ehi ciao...si' sono amministratore... ho provato con la penna USB ma nulla da fare...ora te lo posto ..e ti ringrazio!!! molto gentile... (p.s. in realta' l'ho riscritto in LV 8.21 perche' e' piccolo e nn c'ho messo tempo...ma se me lo converti capiro' che e' davvero un problema della macchina e lo faro' presente a chi di dovere) ---------------------------------------- AUTORE: 301 DATA :30/11/2007 - 14:36:14 ---------------------------------------- No problem.....sappimi dire se ora va.....l'ho salvato in lv 8.0 (si sa mai)... ---------------------------------------- AUTORE: 1596 DATA :30/11/2007 - 15:17:29 ---------------------------------------- ..l'operazione e' andata a buon fine... \":D\" grazie ancora... faro' presente il problema! ciaooooooo ---------------------------------------- ================================================================================ risoluzione equazione differenziale ================================================================================ AUTORE: 2270 DATA :30/11/2007 - 16:16:34 ---------------------------------------- Salve a tutti. Devo risolvere l'equazione differenziale contenuta nel file. Avrei bisogno di alcuni suggerimenti per iniziare. ---------------------------------------- AUTORE: 947 DATA :01/12/2007 - 13:26:28 ---------------------------------------- .... Ciao ... sempre io... Le eq differenziali nn mi sono mai piaciute... ma ci provo ... allora partiamo da: [b:1zowpk3o]P'(t) + a P(t) = b I(t)[/b:1zowpk3o] e passiamo al dominio di Laplace: [b:1zowpk3o]s P(s) + P(t=0) + a P(s)= b I(s)[/b:1zowpk3o] P(t=0) è il primo valore (costante) per t=0 appunto e chiamo P0 per semplicità svolgendo ottengo: [b:1zowpk3o](s+a) P(s) = b I(s) - P0[/b:1zowpk3o] ovvero: [b:1zowpk3o]P(s) = b 1/(s+a) P(s) - P0 1/(s+a)[/b:1zowpk3o] sappiamo che: [b:1zowpk3o]1/(s+a) ==> e^(-a t)[/b:1zowpk3o] e che [b:1zowpk3o]X(s) Y(s) ==> x(t) * y(t)[/b:1zowpk3o] dove [b:1zowpk3o]*[/b:1zowpk3o] è l'[b:1zowpk3o]integrale di convoluzione[/b:1zowpk3o] cioè [b:1zowpk3o]x(t) * y(t) = integr da 0 a t di [ x(t-w) y(w) ] in dw[/b:1zowpk3o] quindi nel tempo si ha: [b:1zowpk3o]P(t) = b [e^(-a t) * I(t)] - P0 e^(-a t)[/b:1zowpk3o] che quindi contiene un [i:1zowpk3o]bellissimo[/i:1zowpk3o] [b:1zowpk3o]integrale di convoluzione[/b:1zowpk3o] e cioè l'integrale del prodotto fra una esponenziale negativa e la funzione d'ingresso I(t) .... ma se a te nteressa una discretizzazione del tutto allora considera che l'integrale diventa una sommatoria ed il tutto si semplifica leggermente... soprattutto se questa equazione la devi implememetare su SW ... le sommatorie sono facili da gestire in cicli... nn è necessario risolverle nella loro somma ... gli integrali invece li devi per forza risolvere prima di implementarli .... [b:1zowpk3o]Tienilo presente !!![/b:1zowpk3o] Spero di averti dato una mano ..... e cmq rivediti i calcoli .... io in genere tendo a fare errori stupidi ..... nn ti fidare troppo !!! Ciao ---------------------------------------- AUTORE: 2270 DATA :04/12/2007 - 10:02:05 ---------------------------------------- Vediamo se ho capito bene. L'equazione che devo implementare il labview è la seguente: P(t) = b [e^(-a t) * I(t)] - P0 e^(-a t) Il ingresso alla porzione di programma che calcola tale equazione devo inserire la soluzione dell' integrale di convoluzione, risolto per mezzo di una sommatoria. ---------------------------------------- AUTORE: 2270 DATA :04/12/2007 - 10:31:22 ---------------------------------------- Chiarisco meglio il mio problema. L'equazione che ho scritto nel file allegato è stata risolta con matlab. Io vorrei fare la stessa cosa con labview. Come posso fare ? ---------------------------------------- AUTORE: 2270 DATA :04/12/2007 - 10:54:13 ---------------------------------------- Secondo te posso usare MATLAB Script Node ? ---------------------------------------- AUTORE: 2270 DATA :04/12/2007 - 17:17:59 ---------------------------------------- Sul sito della national instruments ho trovato degli esempi che calcolano al funzione di trasferimento di sistemi di equazioni differenziali. I problemi trattati sono simili al mio. Utilizzano due funzioni: CD costruct transfer function model VI e CD draw transfer Function VI. Nella versione 8.0 student edition non ci sono. Come posso fare ? ---------------------------------------- AUTORE: 947 DATA :05/12/2007 - 20:26:40 ---------------------------------------- ... Con il [b:1l2bbn2g]MATLAB Script Node[/b:1l2bbn2g] nn ho mai lavorato ... nn saprei dirti... per quanto riguarda l'implementazione in LV io intendevo dire che la funzione da implementare è proprio la [b:1l2bbn2g]P(t) = b [e^(-a t) * I(t)] - P0 e^(-a t)[/b:1l2bbn2g] dove la parte : [b:1l2bbn2g][e^(-a t) * I(t)][/b:1l2bbn2g] è proprio l'integrale di convoluzione che in discreto diventa: Sommatoria in [b:1l2bbn2g]k[/b:1l2bbn2g] da [b:1l2bbn2g]0[/b:1l2bbn2g] a [b:1l2bbn2g]t[/b:1l2bbn2g] di : [b:1l2bbn2g]e^[-a(t-k) I(k)][/b:1l2bbn2g] da implementare in un VI in cui passi in INPUT: 1) t inteso come passo a cui sei arivato 2) vettore [I(0), I(1), I(2), ... I(t-1), I(t)] dentro il VI implementi un ciclo da 0 a t che sommi i vari elementi fra loro e metta la somma in OUTPUT.. il primo passo è per [b:1l2bbn2g]t=0[/b:1l2bbn2g] per cui si ha che la [b:1l2bbn2g]somma = I(0)[/b:1l2bbn2g] Poi l'OUTPUT del VI (cioè la somma) lo moltiplichi per [b:1l2bbn2g]b[/b:1l2bbn2g] e lo sottrai al risultato di [b:1l2bbn2g]P0 e^(-a t)[/b:1l2bbn2g] ottenedo così come risultato proprio [b:1l2bbn2g]P(t)[/b:1l2bbn2g] .... spero di essere stato chiaro ... Bye!! ---------------------------------------- AUTORE: 947 DATA :05/12/2007 - 20:38:16 ---------------------------------------- ......... AZZ ..... A furia di scrivere sei già diventato un [b:11bfnplj]Utente attivo[/b:11bfnplj] ..... e io invece che sono iscritto dal 2005 figuro ancora come [b:11bfnplj]Nuovo Utente[/b:11bfnplj] !! Azz .... NN cìè giustizia a questo mondo !!!!!!!!!!!!!!!!!! \":D\" ---------------------------------------- AUTORE: 2270 DATA :06/12/2007 - 16:57:55 ---------------------------------------- Grazie luca.glt sei stato gentilissimo a rispondermi. Ho realizzato il VI seguendo le tue indicazioni. C'è un problema. Il valore in uscita decresce nel tempo.Da un punto di vista fisico dovrebbe accadere il contrario.Non riesco a individuare l'errore. Il vi che ho realizzato rispetta le tue intenzioni ? ---------------------------------------- AUTORE: 947 DATA :07/12/2007 - 19:12:14 ---------------------------------------- ... OK!! .... è esattamente quello che intendevo .... .. ma in effeti hai fatto un piccolo errore di svista .... hai messo dentro il loop dell'integrale di convoluzione un nodo somma di 3 input che doveva essere una [b:10jywg7y]moltiplicazione[/b:10jywg7y] !! Immagino che ti starai mangiando le mani... Prova il VI con A molto piccolo (es 1milli o 10 micro) e crea un ingrasso I(t) di molti + campioni così potrai vedere che in effetti l'andamneto è esponenziale come penso dovrebbe essere .... Poi in effetti nn so come dovrebbe comportarsi ... cmq puoi confrontarlo con l'uscita del modello in Simulink in Matlab !! Bye!! ---------------------------------------- AUTORE: 2270 DATA :07/12/2007 - 21:02:22 ---------------------------------------- Grazie di nuovo. Ciao. ---------------------------------------- ================================================================================ convertitore ADC ================================================================================ AUTORE: 2316 DATA :30/11/2007 - 19:36:05 ---------------------------------------- Salve a tutti. Sto cercando d realizzare come strumento virtuale un convertitore ADC a scala ad arrotondamento, ma nn conoscendo benissimo labview (sono alle prime armi \":(\" ) sto riscontrando alcune difficoltà. se qualcuno potrebbe darmi qualche dritta gliene sarei davvero grata! Ciao ---------------------------------------- AUTORE: 947 DATA :01/12/2007 - 12:48:12 ---------------------------------------- .... .... OK ... con piacere... penso di poteri aiutare.. ma nn ricordo (o forse nn ho mai saputo!!) che cosa si intende per "[b:1c9mj0sh]ADC a scala ad arrotondamento[/b:1c9mj0sh]" ... ma in fin dei conti nn penso sia difficile... prova a spiegarmelo... e cmq nn so neanche se in realtà le difficoltà che trovi sono legate a questo o semplicemente all'uso del LV ... Forse se dai qualche indicazione in + posso aiutarti... Quali sono le difficoltà di cui parli ?? Apresto CIAO !! ---------------------------------------- AUTORE: 2316 DATA :02/12/2007 - 12:44:19 ---------------------------------------- Ciao, innanzitutto grazie per la tua disponibilità. Allora il convertitore a scala è un particolare tipo d convertitore che prevede la presenza d un contatore e di un DAC la cui uscita viene comparata con un segnale d tensione in ingresso. io ho realizzato il VI dell'ADC a scala ma ora devo renderlo ad arrotondamento... praticamente in base al valore d tensione in ingresso selezionato, l'uscita del contatore (che poi è anche quella dell'ADC) deve coincidere con quella corrispondente a metà dell'intervallo d quantizzazione in cui ricade quel valore... ti faccio un esempio: se il valore d tensione è compreso nell'intervallo 9.5Q e 10.5Q (con Q passo d quantizzazione) l'uscita del contatore e quindi dell'ADC dovrà essere 10Q ossia la metà di quell'intervallo. il mio problema è che nn so come poter realizzare questo in labview. ti sarei veramente grata se riuscissi ad aiutarmi. Grazie, ciao ---------------------------------------- AUTORE: 947 DATA :02/12/2007 - 16:31:15 ---------------------------------------- ... Allora ... vediamo se ho capito bene ... Abbiamo un range di valori [b:2u1kfi01](min,max)[/b:2u1kfi01] da dividere in [b:2u1kfi01]N[/b:2u1kfi01] intervalli di ampiezza [b:2u1kfi01]Q[/b:2u1kfi01] ciascuo => [b:2u1kfi01]N = (max-min)/Q[/b:2u1kfi01] quindi ogni intervallo ha dei limiti [b:2u1kfi01]inf[/b:2u1kfi01] e [b:2u1kfi01]sup[/b:2u1kfi01] pari a: [b:2u1kfi01]inf = min + i Q sup = min + (i+1) Q = inf + Q[/b:2u1kfi01] dove [b:2u1kfi01]inf[/b:2u1kfi01] corrisponde a [b:2u1kfi01]i[/b:2u1kfi01] e [b:2u1kfi01]sup[/b:2u1kfi01] a [b:2u1kfi01]i+1[/b:2u1kfi01] Abbiamo un valore [b:2u1kfi01]x[/b:2u1kfi01] compreso nel range [b:2u1kfi01](min,max)[/b:2u1kfi01] e che in particolare sarà compreso in [b:2u1kfi01](infx,supx)[/b:2u1kfi01] e questo [b:2u1kfi01]x[/b:2u1kfi01] deve essere arrotondato al volore [b:2u1kfi01]y[/b:2u1kfi01], dove [b:2u1kfi01]y[/b:2u1kfi01] è sempre uguale al valor medio fra [b:2u1kfi01]infx[/b:2u1kfi01] e [b:2u1kfi01]supx[/b:2u1kfi01]. date le formule di prima, allora possiamo scrivere [b:2u1kfi01]infx = min + a Q supx = min + (a+1) Q = min + (b) Q[/b:2u1kfi01] dove quindi chiamo [b:2u1kfi01]a[/b:2u1kfi01] e [b:2u1kfi01]b=a+1[/b:2u1kfi01] gli indici corrispondenti a [b:2u1kfi01]infx[/b:2u1kfi01] e [b:2u1kfi01]supx[/b:2u1kfi01] E quindi.... sempre che è questo quello che ti interessa ... possimao ricavare le formule seguenti: [b:2u1kfi01] a = Int [ ( x - min ) / Q ] b = a + 1 y = min + Q (a+b)/2 [/b:2u1kfi01] che nn sto qui a spiegarti .... ma sono semplici da ricavare da quello che ho sdetto fin ora. Quindi .... FORSE.... il VI che ti serve (che poi sono 4 conti!!) è quello in figura ... scaricara allegato!! Spero ti sia stato utile... Bye ---------------------------------------- AUTORE: 947 DATA :03/12/2007 - 18:17:20 ---------------------------------------- ... ... mmmm ... ... mi sono capito solo io ??? .... \":?\" ... mmmm ... .... oppure nn centrava assolutamente nulla cn il tuo problema ??? \":roll:\" ... ... ---------------------------------------- AUTORE: 645 DATA :03/12/2007 - 22:54:22 ---------------------------------------- Coincide con ADC ad approssimazioni successive? ---------------------------------------- AUTORE: 2316 DATA :04/12/2007 - 20:43:55 ---------------------------------------- ciao ragazzi scusate se rispondo solo ora. Allora...Luca innanzitutto ti ringrazio... ho capito il tuo ragionamento ma il problema è ke l'uscita del convertitore è digitale e quelle operazioni possono essere fatte per valori analogici... poi in teoria l'arrotondamento c dovrebbe essere per tutte le uscite tranne ke per quella coincidente con lo 0. appena posso ti allego l'immagine del mio VI così vedi come l'ho fatto. Per quanto riguarda il commento di magic... questo tipo d convertitore ADC nn coincide con quello ad approssimazioni successive... aspetto vostre notizie e nel frattempo cerco d allegare i file... grazie ancora ---------------------------------------- AUTORE: 947 DATA :05/12/2007 - 19:06:46 ---------------------------------------- [quote:12655n1g]il problema è ke l'uscita del convertitore è digitale e quelle operazioni possono essere fatte per valori analogici... [/quote:12655n1g] ...... mmmmm... ... Non penso di aver capito ..... spero sia + chiaro quando posterai l'immagine del VI .... Bye!! ---------------------------------------- ================================================================================ Cambiamento scala dinamico ================================================================================ AUTORE: 2319 DATA :03/12/2007 - 20:14:44 ---------------------------------------- Salve a tutti. Mi scuso anticipatamente per la mia incapacità, ma sono alle prime armi... Il mio problema è di visualizzazione, ho un array di 400 elementi, e questi devono venire graficati su un grafico in cui l'asse delle X ha valore di inizio e fine che dipendono dalla scelta dell'utente. Cerco di spiegarmi meglio: L'utente sceglie inizialmente una frequenza di inizio e fine analisi, il programma quale che siano queste frequenza prende 400 punti equispaziati. Quando vado a graficarli, vorrei che sull'asse X vi fossero i valori di inizio e fine scelti dall'utente... C'è un controllo, una funzione che realizzino questo? Per favore aiutatemi! ---------------------------------------- AUTORE: 487 DATA :04/12/2007 - 07:47:48 ---------------------------------------- Ciao Grifis, cerca tra le property node del grafico e troverai la posibilità di settare le scale a tuo piacimento ---------------------------------------- AUTORE: 2319 DATA :04/12/2007 - 10:04:52 ---------------------------------------- Avevo provata questa strada, ma non riesco in nessun modo a capire su quali campi opeare e cosa passarci.... ---------------------------------------- AUTORE: 487 DATA :04/12/2007 - 10:12:18 ---------------------------------------- Allora, supponendo che tu stia utilizzando un XY Graph, tasto destro del mouse sul grafico o sul suo terminal, poi "create" -> "Property Node" -> "XScale" -> "Range" e qui selezioni quello che ti serve (minimo, massimo, incremento, ecc.) ---------------------------------------- AUTORE: 2319 DATA :04/12/2007 - 10:56:35 ---------------------------------------- Ok, ho trovato questo, ma ho bisogno di un altro aiuto, quando in range creo ad es il min, mi compare un blocchetto che non capisco dove collegare, e dove metterci l'ingresso... ---------------------------------------- AUTORE: 487 DATA :04/12/2007 - 11:07:18 ---------------------------------------- Il blocchetto che ti compare può essere usato in lettura o scrittura. Nel tuo caso lo devi usare in scrittura, perciò tasto destro del mouse sul blocchetto -> "change to write". Poi devi collegare il valore che ti serve (minimo o massimo). ---------------------------------------- AUTORE: 2319 DATA :04/12/2007 - 11:18:51 ---------------------------------------- A questo punto io ho il property node in lettura, un blocco Graphscl in lettura a cui passo i parametri che voglio settare. Come collego questi fra loro? ---------------------------------------- AUTORE: 487 DATA :04/12/2007 - 11:23:44 ---------------------------------------- Scusa grifis, ma proprio non riesco a capire il tuo problema. Prova a postare il codice e vediamo se riesco a capire e ad aiutarti. ---------------------------------------- AUTORE: 2319 DATA :04/12/2007 - 11:31:10 ---------------------------------------- Tutto a posto, grazie mille! Il mio problema era dettato unicamente dalla mia stupidità, non collegavo niente al reference e ovviamente non funzionava nulla, adesso sembra essere tutto a posto, nel caso qualche cosa non vada posterò il codice per farti capire meglio, sempre ringraziandoti infinitamente, sono le persone come te a rendere una grande risorsa i forum... ---------------------------------------- ================================================================================ da dove comincio?... una mano ================================================================================ AUTORE: 2290 DATA :04/12/2007 - 09:47:34 ---------------------------------------- devo realizzare un progetto in cui tramite labview acquisisco dati da vari sensori, salvo tutto su un hdd. eseguo elaborazioni tra i valori ricevuti dai sensori e devo inoltre realizzare un'interfaccia grafica che mi dia lo status dei sensori e mostri il risultato delle elaborazioni... da dove comincio? sono abbastanza inesperto di labview... c'è qualche manuale che mi può venire incontro? un qualche esempio... qualcosa insomma... ---------------------------------------- AUTORE: 2290 DATA :04/12/2007 - 11:45:39 ---------------------------------------- affiniamo le domande... 1. come faccio a salvare dati acquisiti su di un file? ho visto che negli esempi labview salva in dei database credo proprietari, tdms. in excel posso aprirli (non ho excel al momento e nn posso provare)? 2. non riesco a trovare un esempio che mi mostri come eseguire più acquisizioni simultaneamente... sapete indicarmene uno? oppure, come modifico un vi che acquisisce un segnale di tensione in un vi che ne acquisisca di più? grazie mille... ---------------------------------------- AUTORE: 645 DATA :04/12/2007 - 12:43:59 ---------------------------------------- Per salvare i dati in Excel puoi usare la funzione "Write to spreadsheet". Per quanto riguarda la acquisizioni guarda gli esempi perchè creare un VI intero sul forum diventa un po' complicato: parti dagli esempi, fai le modifiche proprie del tuo caso e poi si può correggere qualcosa... \":)\" ---------------------------------------- AUTORE: 2288 DATA :04/12/2007 - 13:02:34 ---------------------------------------- Sono anche io interessato ... puoi tenere informato il forum su come ti muovi? grazie e buon lavoro mir ---------------------------------------- ================================================================================ controllo degli inverter della toshiba s9 ================================================================================ AUTORE: 2313 DATA :04/12/2007 - 13:39:58 ---------------------------------------- buongiorno a tutti, sono uno studente di ingenegneria che per potersi laureare deve realizzare una tesi che prevede l'utilizzo del labview. Quello che dovremmo fare è controllare due motori e quindi avere la possibilibilità di variare il loro numero di giri in funzione del tempo attraverso terminale, per questo vorremmo utilizzare il labview, collegando a pioggia PC-inverter e motori. Solo che non riesco a comunicare con gli inverter attraverso labview, al momento ho scaricato degli esempi per testare la seriale (agli inverter mi collego attraverso una RS 232) però il programma mi dà un errore di output. spero mi possiate aiutare \":D\" ---------------------------------------- AUTORE: 645 DATA :04/12/2007 - 15:31:36 ---------------------------------------- Hai un protocollo per comunicare con gli inverter? Una serie di comandi per controllare da remoto gli inverter... Attraverso la porta seriale puoi inviare comandi agli inverter per eseguire determinate operazioni. Ma questi comandi di solito sono specifici per ogni sistema controllato e dovrebbero esserti stati forniti insieme agli inverter (guarda se nei manuali c'è una sezione chiamata "controllo remoto" o "con pc" o qualcosa di simile). Poi con LabView puoi inviare questi comandi. Se già invii i comandi e hai errori nelle risposte da parte degli inverter controlla le tempistiche: dopo l'invio del comando devi attendere "un po'" (parti da un secondo e poi scendi piano piano, oppure guarda se nel manuale è scritto qualcosa) prima di leggere la risposta. ---------------------------------------- AUTORE: 2313 DATA :07/12/2007 - 16:34:26 ---------------------------------------- grazie per la risposta, ho cercato il codice con cui parlare all'inverter, ed ho provato ad interrogarlo con programmi come hyperterminal e putty solo che l'inverter non risponde, per cui diciamo che ho trovato il problema, ora devo trovare quei comandi per poterlo controllare. Per il m omento devo risolvere questo problema di comunicazione, assieme all'inverter mi èe stato fornito un manuale solo che per quanto riguarda la comunicazione seriale non dice niente. ---------------------------------------- AUTORE: 645 DATA :10/12/2007 - 08:25:03 ---------------------------------------- Magari cercando in internet il modello di inverter che usi trovi qualche indicazione o qualche libreria (prova sul sito della casa produttrice se esiste...). ---------------------------------------- ================================================================================ Usare diag ================================================================================ AUTORE: 2319 DATA :04/12/2007 - 15:34:06 ---------------------------------------- Il mio software deve dare comandi ad un analizzatore si spettro. Si devono settare dal front pannel alcuni valori (SPAN, RBW etc). All'ingresso della write devo mandare una stringa contenente i comando, le quantità e le'unità di misura (ES RB 100KHz; SP 100Khz). Io realizzo questo, mettendo per ogni comando impostabile, un concatenatore di stringhe al quale passo una stringa costante per il comando, un controllo nel quale l'utente mette la sua scelta e una stringa costante per l'unità. Poi concateno ancora ed ho un'unica stringa da passare alla write. Volendo far si che invece di scrivere, l'utente possa "girare la rotellina" del diag, come devo modificare il mio software? Non capisco come funzioni la diag, non so cosa mi restituisce.... ---------------------------------------- AUTORE: 2319 DATA :04/12/2007 - 16:25:39 ---------------------------------------- Tutto fatto, ho già risolto, bastava convertire il valore numerico in uscita dal dial in stringa ---------------------------------------- ================================================================================ Vi e DB ================================================================================ AUTORE: 1637 DATA :05/12/2007 - 07:21:49 ---------------------------------------- ciao a tutti, ho un problema che voglio sottoporvi: ho realizzato un vi che deve scrivere un DB mysql, se metto in run il vi da labview, il DB viene popolato, viceversa se metto in run l'eseguibile compilato con application builder il DB non viene scritto. qualcuno può aiutarmi???? \":(\" ---------------------------------------- AUTORE: 43 DATA :05/12/2007 - 09:15:31 ---------------------------------------- [quote="tornado":11495wgv]ciao a tutti, ho un problema che voglio sottoporvi: ho realizzato un vi che deve scrivere un DB mysql, se metto in run il vi da labview, il DB viene popolato, viceversa se metto in run l'eseguibile compilato con application builder il DB non viene scritto. qualcuno può aiutarmi???? \":(\"[/quote:11495wgv] Carissimo Tornado, dovrai giocoforza convenire con me che gli elementi che hai fornito in merito al Tuo problema sono scarsi. E' ovvio che a fronte di un problema del genere, non potendo Debuggare il SW che hai scritto, o meglio "disegnato", non Ti rimane che infilare all'interno del Tuo SW delle parti di codice che Ti facciano meglio comprendere le criticità intrinseche. La scrittura di file di Log, l'uso di pannelli di Popup, unito alla gestione di file di config. provvisori servono a tracciare tutti i punti in cui il Tuo SW fallisce. In generale, è auspicabile che una corretta "gestione degli errori" renda piu' semplice l'indagine di problemi implementativi o bachi SW. Se vuoi risposte dettagliate, devi fornire indicazioni dettagliate. Ciao Buon Natale ---------------------------------------- AUTORE: 2288 DATA :05/12/2007 - 12:53:08 ---------------------------------------- Quasi sicuramente un problema di riferimenti ... prova a far girare l'eseguibile nella stessa cartella dove hai il compilato. ---------------------------------------- ================================================================================ disabilitare il tasto destro del mouse ================================================================================ AUTORE: 838 DATA :05/12/2007 - 08:03:07 ---------------------------------------- ho provato di tutto ma non riesco a togliere la tendina delle proprietà degli oggetti (tipo copia/incolla o description), oppure lock/unlock del pannello ma come cavolo si fa? ho provato a smanettare sulle vi proprieties, ma mi rimane sempre abilitato suggerimenti? grassie \":D\" ---------------------------------------- AUTORE: 43 DATA :05/12/2007 - 08:36:10 ---------------------------------------- [quote="minzuk":17ran6ss]ho provato di tutto ma non riesco a togliere la tendina delle proprietà degli oggetti (tipo copia/incolla o description), oppure lock/unlock del pannello ma come cavolo si fa? ho provato a smanettare sulle vi proprieties, ma mi rimane sempre abilitato suggerimenti? grassie \":D\"[/quote:17ran6ss] Front Panel del VI interessato: tasto DX sull'icona -> VI properties ->Windows Appearance-> Customize... Deselezionare Allow default run-time shortcut menus bye ---------------------------------------- AUTORE: 838 DATA :05/12/2007 - 10:14:51 ---------------------------------------- già fatto e strafatto, il problema rimane!!! e si che dovrebbe essere una stupidata!! ---------------------------------------- AUTORE: 838 DATA :05/12/2007 - 10:17:26 ---------------------------------------- rimane "remote panel server" con le opzioni "lock, switch,..." \":evil:\" ---------------------------------------- AUTORE: 838 DATA :05/12/2007 - 10:19:38 ---------------------------------------- trovato, bisogna disabilitare il webserver nelle option di labview ma questo influenza solo il vi in esecuzione o tutti i vi che si creano? ---------------------------------------- ================================================================================ Array e tracciamento del contenuto ================================================================================ AUTORE: 2288 DATA :05/12/2007 - 12:55:44 ---------------------------------------- Ho un array 1D (vettore quindi) e vorrei "tracciare" in una casella di testo ogni singolo valore... immagino di dover usare un ciclo da 0 a array.lenght-1. Qualcuno può postarmi un esempio? grazie mir ---------------------------------------- AUTORE: 2288 DATA :05/12/2007 - 13:10:43 ---------------------------------------- Aggiungo l'immagine di cosa intendo ...[/img] ---------------------------------------- AUTORE: 43 DATA :05/12/2007 - 13:41:36 ---------------------------------------- Guarda se questo può servire ---------------------------------------- AUTORE: 2288 DATA :05/12/2007 - 14:03:05 ---------------------------------------- Perfetto ... qualche accorgimento per il mio caso e funziona una meraviglia. GRAZIE! ---------------------------------------- ================================================================================ Iniziare con tutte le array,liste,etc .... PULITE ================================================================================ AUTORE: 2288 DATA :05/12/2007 - 14:37:42 ---------------------------------------- Quando lavoro in labview mi capita spesso di lanciare diversi test solo che dopo il primo mi rimangono "sporche" le caselle a video ... anche se questo è solo una questione estetica è possibile pulire tutto rapidamente ad ogni ricompilazione? ... mi viene in mente per esempio il RESTART che si usa in Maple ... Grazie mir ---------------------------------------- AUTORE: 645 DATA :05/12/2007 - 17:53:36 ---------------------------------------- Io di solito implemento un sistema di "reset" delle caselle all'inizio del VI... in pratica forzo i valori iniziali a stringhe vuote, casi di Ring Control voluti da me, numeri desiderati... ---------------------------------------- AUTORE: 43 DATA :06/12/2007 - 10:22:05 ---------------------------------------- [quote="mir":225r3cgn]Quando lavoro in labview ....[/quote:225r3cgn] In questi frangenti, mi permetto di consigliare, come "antipasto" (cioè come prima cosa da fare nel Frame iniziale), una bella "reinit All to default" della casa.... bye BUON NATALE P.S.: la "Reinit all 2 default" sembra un piatto difficile da preparare, in realtà e molto semplice e si serve freddo ---------------------------------------- ================================================================================ Abilitare auto-indexing in un loop con un tasto ================================================================================ AUTORE: 2279 DATA :05/12/2007 - 14:40:36 ---------------------------------------- Ciao a tutti. Volevo porvi una questione: nel mio programma ho un loop in cui acquisisco continuamente dei valori analogici con DAQmx. I valori ottenuti vengono inseriti in un array utilizzando la funzione di auto-indexing del loop while. Se io volessi far si che l'array venga aggiornato soltanto ad esempio quando un particolare tasto è premuto, è possibile fare un auto indexing "condizionato" allo stato dell'array? Utilizzando la funzione build array si riuscirebbe abb bene, ma ho visto che questa non è abbastanza efficiente, tanto che non riesco a lavorare in real time. Come si potrebbe fare? -grazie mille ---------------------------------------- AUTORE: 947 DATA :05/12/2007 - 20:35:47 ---------------------------------------- [quote:27sgn16p]Utilizzando la funzione build array si riuscirebbe abb bene, ma ho visto che questa non è abbastanza efficiente, tanto che non riesco a lavorare in real time.[/quote:27sgn16p] .... scus.... fammi capire... dove sta il problema?? forse nella velocità di accodamento dei dati nell'array ?? ... troppo lento se gestito all'interno del ciclo con il build array?? ... invece se l'accodamento è fatto in automatico dal Loop stesso è + veloce?? .... Azz ... se è veramente così ... (però è strano!!) ... nn saprei prorpio come fare.... Buona Fortuna!! ---------------------------------------- AUTORE: 645 DATA :05/12/2007 - 22:25:52 ---------------------------------------- Potresti provare inserendo un carattere jolly nel vettore quando non viene premuto nessuno tasto e inserendo il numero quando viene premuto il tasto. Quando finisce il ciclo elimini tutte le posizioni dell'array contenenti il carattere jolly e poi presenti il vettore pulito all'utente o lo usi per le elaborazioni. ---------------------------------------- AUTORE: 10 DATA :10/12/2007 - 10:58:14 ---------------------------------------- hai provato in uno dei due modi in allegato? In entrambi gli esempi, l'elemento viene aggiunto all'array premendo il tasto. Per il resto del tempo l'array rimane invariato. ---------------------------------------- AUTORE: 43 DATA :10/12/2007 - 13:37:00 ---------------------------------------- [quote="max1971":2nnyxxe3]hai provato in uno dei due modi in allegato? In entrambi gli esempi, l'elemento viene aggiunto all'array premendo il tasto. Per il resto del tempo l'array rimane invariato.[/quote:2nnyxxe3] Meglio non usare il secondo esempio. L'esempio n.2 c'è una gestione di 'Tasto' con "Event case" e di 'stop' in polling tradizionale che non va bene. Inoltre il comportamento del 1 esempio dipende dalla "mechanical action" associata a 'tasto': Se fosse di tipo "Latch When Pressed" o "Latch When Release" verrebbe aggiunto un valore all'array ad ogni click sul bottone'Tasto' compatibilmente con la temporizzazione del Loop Se fosse di tipo "Switch When Pressed", "Switch When Release" il tasto sarebbe di tipo TOGGLE, perciò una volta "clickato", ad ogni giro del loop, verrebbe aggiunto un elemento all'array fino al click successivo che sospenderebbe l'inserimento di ulteriori elementi nell'array. Se fosse di tipo "Switch until released" o "Latch until released" dovrebbero aggiungersi elementi all'array fintanto che 'Tasto' venga tenuto premuto, compatibilmente con la temporizzazione del Loop correggetemi se sbaglio bye buon natale ---------------------------------------- AUTORE: 10 DATA :10/12/2007 - 16:37:59 ---------------------------------------- [b:w4jza4vc]Caso 1: Tasto in Swtch mode:[/b:w4jza4vc] basta aggiungere nel case [TRUE] un property node VALUE che riporta il tasto in FALSE [b:w4jza4vc]Caso 2: tasto in Latch when ... mode:[/b:w4jza4vc] [i:w4jza4vc]Latch when pressed:[/i:w4jza4vc] i dati vengono accodati sulla pressione del tasto che viene riportato immediatamente in FALSE senza generare false o doppie letture [i:w4jza4vc]Latch when released:[/i:w4jza4vc] Vedi sopra ma l'accodamento viene fatto quando il pulsante viene rilasciato e solo per una volta. In entrambi i casi per generare più accodamenti è necessario attivare più volte il controllo e per ogni attivazione hai un nuovo valore nell'array. Se il problema sta nella temporizzazione dell'evento, la gestione di un pulsante con meno di 50-60 msec. di intervallo fra un controllo e l'altro significa solo buttare risorse. Chi con un mouse preme un pulsente più velocemente che ogni 1/10 di sec. si faccia avanti che probabilmente vincerebbe le olimpiadi di sparatutto. [b:w4jza4vc]Caso 3: tasto in Latch until ... mode[/b:w4jza4vc] Qui, relamente avresti la generazione di nuovi valori accodati nell'array mantenendo la pressione sul tasto, ma non ho mai visto utilizzare questa modalità. La gestione dello STOP del caso due dovrebbe essere fatta all'interno dell'event structure, ma siccome non era parte del problema ho fatto la cosa più veloce. In ogni caso funziona uguale.[/i][/quote] ---------------------------------------- AUTORE: 2279 DATA :12/12/2007 - 20:37:15 ---------------------------------------- Grazie mille delle risposte!!! Scusate se replico solo adesso ma sono stato via per un po di tempo \":oops:\" LE soluzioni che avete proposto mi sembrano tutte valide, ma avevo pensato anche io a qualkcosa di simile. Il problema è che penso che Luca.glt abbia proprio ragione!!!!! \":(\" \":(\" Infatti nel mio caso ho un loop che ad ogni iterazione (che avviene ogni 50ms) acquisisce 50000 valori... potete immaginare che in pochissimo tempo i dati in mem diventano veramente un sacco! Quello che ho verificato è che usando l'auto indexing il pc riesce a gestire il tutto per un bel po (svariati minuti di dati) mentre con i build array dopo pochi secondi si impalla proprio (nel senso che non ci sta veramente più dietro) e due iterazioni consecutive del loop non sono più a 50ms ma in pochissimo tempo il deltaT tre due iterazioni successive diverge, perchè il pc sta li a macinare i dati come un pazzo... Ache io sono incredulo ma pare proprio che sia così. se non ci credete fate una prova... ---------------------------------------- AUTORE: 947 DATA :12/12/2007 - 21:19:13 ---------------------------------------- .... So che è poco elegante.... [u:1hl88eo4]nn dire in giro che te l'ho suggerita io[/u:1hl88eo4] ... ma una soluzione ci sarebbe ... [i:1hl88eo4]forse[/i:1hl88eo4].... [b:1hl88eo4]metti il ciclo di acquisizione (Loop) all'interno di un altro ciclo ... chiamiamolo di controlo (While)[/b:1hl88eo4] ... nel ciclo interno attiva l'auto indexing e fagli fare un numero fisso di iterazioni (Loop appunto!!) ... vedi tu quante... supponiamo 100... finite le 100 iterazioni, nel while di controllo decidi se conservare l'array che si è così creato in un Array di storage accodando i dati a quest'ultimo ... oppure se buttare via tutto semplicemente non facendo nulla... così svuoti la memoria ... quindi puoi ricominciare a prendere altri dati per altre 100 volte .... etc etc... però è una soluzione che dipende molto dalla macchina in uso ... dalla memoria e dalla velocità della cpu !! OPPURE ANCORA : [b:1hl88eo4]Prova a cambiare PC [/b:1hl88eo4].......... forse è giunto il momento !!! \":D\" ---------------------------------------- AUTORE: 301 DATA :25/07/2008 - 07:03:21 ---------------------------------------- Ciao, hai provato ad usare le code? Potresti accodarti i valori e memorizzare quelli in coda solo quando vuoi, ad una velocità di molto inferiore a quella del ciclo di acquisizione. ---------------------------------------- AUTORE: 1574 DATA :25/07/2008 - 19:35:37 ---------------------------------------- [quote="Alle":1bihlgls] Quello che ho verificato è che usando l'auto indexing il pc riesce a gestire il tutto per un bel po (svariati minuti di dati) mentre con i build array dopo pochi secondi si impalla proprio (nel senso che non ci sta veramente più dietro) e due iterazioni consecutive del loop non sono più a 50ms ma in pochissimo tempo il deltaT tre due iterazioni successive diverge, perchè il pc sta li a macinare i dati come un pazzo... Ache io sono incredulo ma pare proprio che sia così. se non ci credete fate una prova...[/quote:1bihlgls] Con il tempo ciclo che hai imposto (50 mSec) ed il numero di dati da manipolare ad ogni iterazione, la funzione build array ti fa esplodere la memoria. Essa rialloca dinamicamente il vettore che ti stai passando ad ogni iterazione, ed ogni volta dovrà trovare una zona di memoria contigua per far posto a tutti i nuovi campioni del tuo vettore... capisci che la richiesta di spazio libero in memoria da parte del tuo VI crescerà in maniera esorbitante ed in brevissimo tempo, causandone un rallentamento progressivo. Morale della favola: quando si devono gestire grosse quantità di dati MAI usare la funzionne build Array; meglio preallocare un vettore di una dimensione "massima" prevista e gestirlo con la funzione "Replace Array Subset" My two cents... ---------------------------------------- AUTORE: 129 DATA :27/07/2008 - 06:29:13 ---------------------------------------- potresti usare una struttura in parallelo in modo che il primo ciclo acquisisca su una coda i dati a 50ms , il secondo invece pulisce la coda ogni tot e magari li salva su un file, oppure potrebbe essere usato per la presentazione dei dati. Trovi [url=http://www.ilvg.it/forum/download/file.php?id=297:h0zmob42]qui[/url:h0zmob42] un articolo di Ale sul meccanismo. Ciao, Nicola ---------------------------------------- AUTORE: 645 DATA :28/07/2008 - 08:41:24 ---------------------------------------- Caspita quante idee... Anche secondo me la struttura a cicli paralleli può funzionare... È un po' la stessa situazione di quando un ciclo acquisisce dati molto velocemente e un altro ciclo li presenta all'utente o li memorizza o li elabora... etc etc... In pratica utilizzi un ciclo "a priorità critica" che non si ferma mai (o meglio non viene disturbato... puoi crearlo combinando la priorità dei cicli temporizzati con il determinismo del RealTime) e acquisisce dati (ovviamente devi avere l'hardware che sopporta questo carico di dati) e un ciclo "a priorità normale" che prende una serie di dati (non lavori sul singolo dato ma su un pacchetto di dati) e li elabora (presentazione, calcoli, salvataggio su file). Per passare i dati tra i cicli si possono usare vari metodi: variabili "shared", code... Questo è un argomento fondamentale per il RealTime e in generale la gestione di tanti dati: nel forum ILVG e sul sito della National (www.ni.com) dovresti trovare discussioni ed esempi \":D\" Guarda anche l'articolo di Ale che ti ha consigliato Nicola! Per la questione del "build array": si tratta di una funzione comoda ma dispendiosa in termini di memoria. Puoi provare allocando prima la grandezza dell'array e poi sostituendo le posizioni inizializzate con i dati raccolti (ma forse nel tuo caso è scomodo se i dati sono così tanti... a meno che ciclicamente non passi l'array modificato ad un altro ciclo che si occupa di memorizzarlo e di inizializzare nuovamente l'array). ---------------------------------------- ================================================================================ Lv 8.2 vs Lv 6.2....quali le differenze??? ================================================================================ AUTORE: 2294 DATA :05/12/2007 - 20:42:06 ---------------------------------------- Ciao raga! qualcuno di voi saprebbe indicarmi sommariamente le differenze tra Lv 6.2 e Lv 8.2. Ho dei Vi scritti in Lv 6.2 che fatti girare su Lv 8.2 danno problemi inspiegabili e fanno impallare il pc (vabbè a bordo c'è windows ) e a volte anche gli strumenti veri e propri.....qualche dritta??? Thanks MaDs ---------------------------------------- ================================================================================ help!! read from file.pdf ================================================================================ AUTORE: 116 DATA :06/12/2007 - 08:15:24 ---------------------------------------- ciao nel forum non trovo niente. Qualcuno è riuscito ad importare un file.pdf e visualizzarlo con Labviù? io uso ancora il l.v. 7 grazie Alberto S. \":|\" ---------------------------------------- AUTORE: 384 DATA :07/12/2007 - 03:38:13 ---------------------------------------- Dai una sbirciata [url=http://zone.ni.com/devzone/cda/epd/p/id/4867:3mierben]qui[/url:3mierben].   ---------------------------------------- AUTORE: 116 DATA :07/12/2007 - 07:13:49 ---------------------------------------- sei grande gyc ora provo ad inserirlo nel mio codice p.s. ma tu non dormi alla notte? il tuo post ha l'ora 4:38 \":roll:\" grazie ancora ciao Alberto \":wink:\" ---------------------------------------- AUTORE: 384 DATA :07/12/2007 - 08:45:53 ---------------------------------------- [quote="salberto":1dcjhkav] ma tu non dormi alla notte? il tuo post ha l'ora 4:38 \":roll:\" [/quote:1dcjhkav] Non me ne ero accorto, ma sará il pc di casa che ha l'orologgio "cannato"... e so anche chi può essere [b:1dcjhkav]LA[/b:1dcjhkav] responsabile!... \":wink:\" ---------------------------------------- AUTORE: 116 DATA :07/12/2007 - 09:12:30 ---------------------------------------- scusa gyc spero in un altro tuo aiuto ho inserito il codice nel mio programma e precisamente in una finestra Tab Control tutto OK il mio .PDF si apre, ma poi non riesco a fermare l'esecuzione del reader. provo a spiegarmi meglio: cambiando pagina/finestra del Tab lui continua a ciclare con la visualizzazione del PDF (ad è qui che non capisco dove/cosa) non lasciandomi fare altro. Il codice che mi hai suggerito è inserito in un while loop gestito da una logica che controlla la finestra del TAB (se sono in quella finesta=continua a ciclare), ma quando cambio finestra la grafica si modifica, ma il codice non gira più.....BO! grazie se mi dai un suggerimento Alberto ---------------------------------------- AUTORE: 384 DATA :07/12/2007 - 10:39:19 ---------------------------------------- Purtroppo l'activex del pdf non c'è più (non capisco come nè perchè) e non riesco più a far girare l;esempio per fare queche prova. Da come lo descrivi sembra che sia un problema di logica di controllo. Posta il VI (in LV7.1, mi raccomando) o almento una videata in png che io possa almeno dare un'occhiata. ---------------------------------------- AUTORE: 116 DATA :07/12/2007 - 10:48:23 ---------------------------------------- ho dato una controllata ai sorgenti, sono quasi 24MB ora sto lavorando con un altro progetto dammi il tempo di farti una demo e poi provo a postartelo grazie ciao ---------------------------------------- AUTORE: 384 DATA :07/12/2007 - 11:05:52 ---------------------------------------- [quote="salberto":aqpbsn24]ho dato una controllata ai sorgenti, sono quasi 24MB ora sto lavorando con un altro progetto dammi il tempo di farti una demo e poi provo a postartelo grazie ciao[/quote:aqpbsn24] Bravo! Mi interessa solo quel specifico vi, senza gli altri 24MB!!! ---------------------------------------- AUTORE: 116 DATA :07/12/2007 - 13:53:21 ---------------------------------------- ecco + o - il mio codice gira così quando tu vai in 3° pagina ed apri il PDF succede qualcosa che non capisco e devi fermare tutto (Ctrl . ) per uscirne ciao ---------------------------------------- AUTORE: 384 DATA :07/12/2007 - 15:31:27 ---------------------------------------- Quello che succede è che una volta fatto il display del pdf, il controllo dell'interfaccia viene catturato dalla event structure, quindi non esce mai dal loop della pagina3. Soltanto l'altro pulsante di stop può farlo, ma tu l'hai messo fuori e non lo pigi. Secondo me, non ti serve il loop esterno ne la event structure. Devi solo attendere l'uscita dalla pagina 3 per evitare che si continui a rivisialuzzare il pdf.   ---------------------------------------- AUTORE: 116 DATA :07/12/2007 - 16:30:10 ---------------------------------------- si è vero ora funziona in effetti mi ero chiesto a cosa servisse l'event e ....... ho preso il software troppo alla lettera ti ringrazio ancora buon week end ---------------------------------------- AUTORE: 384 DATA :07/12/2007 - 18:28:51 ---------------------------------------- Non c'è di chè. Buon week-end anche a te!   ---------------------------------------- ================================================================================ Impostazione seconda scala ================================================================================ AUTORE: 2228 DATA :07/12/2007 - 12:11:00 ---------------------------------------- Salve a tutti, ho creato un vi sul quale traccio su un XYgraph due curve da un array. Ho usato la doppia scala sull'asse Y, creata con duplicate scale e successivamente spostandola sulla parte opposta con swap sides, per rappresentare le due curve su scale diverse. Il problema è che ora con i property nodes riesco a impostare solo una delle due scale Y, sapete come si fa ad assegnare i property nodes anche sulla seconda scala? Grazie ---------------------------------------- AUTORE: 43 DATA :07/12/2007 - 13:39:26 ---------------------------------------- [quote="albydj":1xu6wall]...Il problema è che ora con i property nodes riesco a impostare solo una delle due scale Y, sapete come si fa ad assegnare i property nodes anche sulla seconda scala?[/quote:1xu6wall] Il principio vale per le tracce [plot], x i cursori[cursor] e x le scale: esiste un "Indice" che stabilisce quale degli oggetti fre loro omogenei è in uso. Nel nostro caso l'attributo o proprietà da settare è "Active Y Scale". ("Active Plot" x i plot, "Active Cursor" x i cursor) Pensando all'insieme delle "Y scale" come ad un array, "Active Y Scale" rappresenta l'indice dell'elemento dell'array in uso. Leggendo/Scrivendo di seguito le proprietà associate genericamente alla scala Y si agirà sull' elemento dell'array selezionato x ultimo... bye P.S. : x gli oggetti "Table" e "Multicolumn Listbox" esiste la proprietà "ActiveCell" simile a quelle menzionate... ---------------------------------------- AUTORE: 2228 DATA :07/12/2007 - 14:37:13 ---------------------------------------- Ti ringrazio della dritta! Non ci avevo pensato all'active Y, è così semplice ora! ---------------------------------------- AUTORE: 947 DATA :09/12/2007 - 13:22:13 ---------------------------------------- ... Scusate ... mi riferisco all'immagine postata da paracarro ... se quel VI funziona sempre .... mi pare di capire che in [b:2wq4yzgt]un nodo di property le property vengono Set e Get (scritte e lette) nell'ordine esatto in cui appaiono dall'alto verso il basso[/b:2wq4yzgt] .... Ma è veramente così ?? Perkè se così nn fosse, eseguendo quel VI succede un marasma ... nel senso che alcune proprietà sono impostate quando ancora la Scale voluta non è attiva... e quindi la mposta all'altra.... mi spiego?.. Mi date la conferma che il nodo è eseguito esattamente dall'alto al basso ?? GRZ!! Bye!! ---------------------------------------- AUTORE: 43 DATA :10/12/2007 - 09:06:37 ---------------------------------------- [quote="Luca.glt":39xi0ov7]...[b:39xi0ov7]un nodo di property le property vengono Set e Get (scritte e lette) nell'ordine esatto in cui appaiono dall'alto verso il basso[/b:39xi0ov7] .... Ma è veramente così ??[/quote:39xi0ov7] Carissimo Luca Come direbbe il mio caro amico M.Marassi [b:39xi0ov7][i:39xi0ov7]"Ti ringrazio x la domanda"[/i:39xi0ov7][/b:39xi0ov7] Ti riporto una parte dell'Help on line di Labviu' riguardo i property nodes. Ti evidenzio in [b:39xi0ov7]bold [/b:39xi0ov7]la parte interessata [quote="LabVIEW HELP":39xi0ov7] Property Node Details To select the class on which to execute the property, wire the refnum to the reference input. For example, to select the VI, Generic, or Application class, wire the VI, VI object, or application refnum to the reference input. The node adapts to the class automatically. You also can right-click the node and select a class from the shortcut menu. Move the cursor over terminals in the Property Node to display more information about the property in the Context Help window. You also can right-click a property terminal and select Help For Property from the shortcut menu, where Property is the name of the property. To get property information, right-click the node and select Change All to Read from the shortcut menu. To set property information, right-click the node and select Change All to Write from the shortcut menu. If a property is read only, Change to Write is dimmed in the shortcut menu. [b:39xi0ov7]The node executes each terminal in order from top to bottom. [/b:39xi0ov7]If an error occurs on a terminal, the node stops at that terminal, returns an error, and does not execute any further terminals. You can right-click the node and select Ignore Errors Inside Node from the shortcut menu to ignore any errors and continue executing further terminals. If an error occurs when Ignore Errors Inside Node is set, the property node still returns that error. The error out cluster reports which property caused the error. If the small direction arrow on the property is on the right, you are getting the property value. If the small direction arrow on a property is on the left, you are setting the property value. Properties have a short or long name that you can change by right-clicking and selecting Name Format from the shortcut menu. The No Names format displays only the data type for each property.[/quote:39xi0ov7] E'm sempre bello vedere che ci sono persone attente a queste cose. bye Buon Natale ---------------------------------------- AUTORE: 947 DATA :10/12/2007 - 18:13:56 ---------------------------------------- [quote:2crxqg0t]The node executes each terminal in order from top to bottom. [/quote:2crxqg0t] Wow .... era esattamente quello che cercavo !!! ... Praticamentele mie parole in inglese.... OTTIMO !!! [quote:2crxqg0t]E'm sempre bello vedere che ci sono persone attente a queste cose.[/quote:2crxqg0t] Ehhh sisi .... me lo dicono tutti che sono troppo pignolo !!! \":D\" Bye!! ---------------------------------------- AUTORE: 2467 DATA :04/09/2008 - 17:49:27 ---------------------------------------- ciao a tutti! a proposito di rappresentazioni delle scale, non riesco proprio a posizionare la seconda scala 'Y' sul lato destro del grafico: il comando 'swap sides' rimane nascosto (visualizzato, ma non lo lascia attivare). Vi è mai capitato? dove si nasconde il trucchetto? sicuramente è una banalità, ma non so più dove sbattere la testa... io ho cliccato sull'asse 'Y', clickato su 'duplicate scale' , a quel punto dovrebbe permettermi di clickare su swap sides, esattamente come ha fatto albydj... grazie infinite! hal ---------------------------------------- AUTORE: 2550 DATA :29/05/2009 - 10:37:05 ---------------------------------------- Ciao a tutti. Mi ricollego a questa vecchia discussione in quanto ho un problema simile. Dovrei modificare la proprietà "swap sides" sulla scala Y di un xygraph a comando, ma non riesco a trovare il prorperty node.... voi sapete se si può fare? ps. Utilizzo LV8.6 grazie a tutti ciao DVD ---------------------------------------- AUTORE: 43 DATA :29/05/2009 - 14:18:09 ---------------------------------------- [quote="dvd14986":3i1km9aa]Ciao a tutti. Mi ricollego a questa vecchia discussione in quanto ho un problema simile. Dovrei [b:3i1km9aa]modificare[/b:3i1km9aa] la proprietà "swap sides" sulla scala Y di un xygraph a comando, ma non riesco a trovare il prorperty node.... voi sapete se si può fare? ps. Utilizzo LV8.6[/quote:3i1km9aa] Ciao DVD. Come hai ben notato non esiste nè una proprietà, nè un metodo in grado di effettuare lo "swap sides" di una scala. Come scritto su LAVA, non esiste la possibilità durante il "run time" nè di creare, nè di cancellare una scala. L'operazione di "swap sides" implica la modifica non solo della proprietà "Y scale.position", ma anche il disegno delle tacche (tick, minor tick) in una posizione diversa dal default (cioè allineeate a dx). Quindi per risolvere il problema bisogna creare delle "doppie"scale: una a dx e una a sx.: nel momento in cui si "swappa" la scala, si rende la prima invisibile e si rende visibile l'altra. Ovviamente si deve associare la nuova scala anche alle giuste tracce visualizzate... bye ---------------------------------------- AUTORE: 2550 DATA :29/05/2009 - 16:23:10 ---------------------------------------- Ciao Paracarro. In effetti avevo notato anch'io la mancanza di questa proprietà, però per sicurezza è sempre meglio chiedere a chi ne sa più di me. Il problema era che su graph avevo 4 scale e in base alla scelta dell'utente dovevo visualizzare o tutte e 4 le curve, con le scale tutte a sinistra, oppure solamente 2 con le scale a destra e sinistra. Ho fatto un rapida prova a nascondere le scale, ma ho notato che labview quando le facevo ricomparire perdeva l'ordine originale e le metteva a """casaccio""" (es. originale: A-B-C-D, dopo averle nascoste: B-C-D-A). Purtroppo non ho potuto verificare il motivo di questo comportamento, visto che non è di vitale importanza e di lavoro ce n'è molto. Ho optato per la soluzione più semplice, ossia 2 graph sovrapposti visualizzati alternativamente a seconda della scelta dell'utente. è poco elegante come cosa ma è veloce da fare e funziona. Grazie per la risposta. ciao DVD ---------------------------------------- ================================================================================ Convertire Array in String ================================================================================ AUTORE: 2288 DATA :07/12/2007 - 13:41:09 ---------------------------------------- Ho un'array con valori I16 double e devo convertire in una stringa di testo ... come posso fare? grazie mir ---------------------------------------- AUTORE: 2288 DATA :07/12/2007 - 14:07:00 ---------------------------------------- ho risolto lavorando sulla conversione da numero a stringa ... ---------------------------------------- ================================================================================ sincronizzazione porta seriale ================================================================================ AUTORE: 1637 DATA :10/12/2007 - 21:59:42 ---------------------------------------- buonasera a tutti, mi serve qualche suggerimento, sto cercando di realizzare una comunicazione via modbus tra un controllore e labview, mi hanno suggerito di sincronizzare la seriale, .... ma come si fa, premetto che uso le librerie modbus dowlodabili dal sito ni. grazie a tutti \":(\" \":(\" ---------------------------------------- AUTORE: 838 DATA :11/12/2007 - 07:19:59 ---------------------------------------- è proprio quello che devo fare domani, usare il modbus con la seriale io ho già usato le librerie via ethernet e mi sono trovato bene, vediamo un pò se ho difficoltà domani con la seriale (che poi dovrò andare in 485 a interrogare diversi strumenti) al massimo ti posto come è andata \":D\" ---------------------------------------- AUTORE: 384 DATA :11/12/2007 - 09:23:19 ---------------------------------------- [quote="tornado":11xvpxjt]mi hanno suggerito di sincronizzare la seriale[/quote:11xvpxjt] Detto così, non vuol dire niente. Anche pensando a comunicazioni seriali sincrone (che non mi risulata sia lo stesso di "sincronizzare la seriale", o qualunque altra cosa) non vedo che sia la strada giusta. Le comunicazioni seriali sincrone si usa(va)no soltanto per collegamenti punto-a-punto tra calcolatori e sono da (molti) anni cadute in disuso. Io direi che ti conviene chiedere ulteriori spiegazione a chi ti a dato tale suggerimento. E poi posta qui le spiegazioni, perchè sono curioso anch'io. ---------------------------------------- AUTORE: 43 DATA :12/12/2007 - 09:16:29 ---------------------------------------- [quote="gyc":367e0bm2][quote="tornado":367e0bm2]mi hanno suggerito di sincronizzare la seriale[/quote:367e0bm2] Detto così, non vuol dire niente.... [/quote:367e0bm2] Stravero... Ma a me "sincronizzazione porta seriale" ricorda anche l'orologino che appare sui VI VISA di Read e Write (anche Read/Write GPIB). La "sincronizzazione" di cui sto parlando non riguarda le comunicazioni seriali sincrone o asincrone qunto piuttosto l'esecuzione dei thread di lettura e scrittura sulla seriale Considerando che i documenti di "KnowledgeBase" di N.I. sono una fonte quasi inesauribile di info interessanti, queste sono la spiega di quanto sto dicendo: The Effect of Asynchronous vs Synchronous VISA Write and Read Functions http://digital.ni.com/public.nsf/websea ... enDocument The Effect of UART FIFO Sizes on Serial Application Performance. http://digital.ni.com/public.nsf/websea ... enDocument Eventualmente fate un giro anche nei "Related Links". ---------------------------------------- AUTORE: 384 DATA :12/12/2007 - 11:23:44 ---------------------------------------- Nella mia esperienza, non ho mai trovato un caso in cui la chiamata sincrona/assincrona facesse diferenza. I consigli della NI stessa si rivolgono a casi estremi in cui la mole di dati da tx/rx alla volta sia molto elevata oppure ci sia la impellente necessità di rispettare tempistiche (lattenze) strette. Ripeto, con un canale seriale, non mi sembra ci siano le condizioni per dover preoccuparsi di questo dettaglio.   ---------------------------------------- AUTORE: 838 DATA :13/12/2007 - 07:15:55 ---------------------------------------- usati i blocchetti della national e tutto va da dio ho comunicato con uno strumento in modbus rtu a 9600 senza nessuna difficoltà, utilizzando poi l'init seriale della national, non quello diretto della visa, specificando appunto se il modbus è rtu o ascii poi con la richiesta modbus sono andato a leggere e comandare i registri dello strumento, tutto ok insomma quindi penso che hai qualche problema nel codice, i blocchetti NI funzionano bene (sia in ethernet che seriale) ---------------------------------------- AUTORE: 838 DATA :13/12/2007 - 07:18:30 ---------------------------------------- dimenticavo: sia in 232 che 485 su puù strumenti impostati come SALVE, essendo io un MASTER che vado a interrogare poi ci sono due tipi di registri, prova ad interrogare tutti e due (un tipo alla volta ovviamente) nella rete 485 ogni strumento ha un'indirizzo, e tramite il blocchetto NI puoi fare la richiesta direttamente allo strumento specificando appunto l'indirizzo spero che ti possa essere d'aiuto \":D\" grazie NI per questi blocchetti Modbus!!! ---------------------------------------- AUTORE: 2018 DATA :14/12/2007 - 14:32:48 ---------------------------------------- [quote="minzuk"]usati i blocchetti della national e tutto va da dio Ho provato a suo tempo con alcuni esempi di NI ma senza successo concreto, ho provato anche coi blocchetti VISA ma niente, puoi dirmi dove trovare tali blocchetti? o qualche info maggiore di come hai fatto? grazie ---------------------------------------- AUTORE: 838 DATA :17/12/2007 - 07:24:36 ---------------------------------------- [url:1m76elyx]http://zone.ni.com/devzone/cda/epd/p/id/4756[/url:1m76elyx] installi le librerie, sono per 8.2 ti si crea nel menu di lw il menu modbus in users library ci sono blocchetti sia in ethernet che seriale prova il demo master seriale e imposta lo strumento come slave ---------------------------------------- AUTORE: 2018 DATA :18/12/2007 - 08:11:58 ---------------------------------------- Grazie minzuk, io ne avevo installate altre a suo tempo e non funzionavano molto bene, spero che queste vadano bene, ciao provo e ti farò sapere, intanto Buone Feste a Tutti. ---------------------------------------- AUTORE: 2018 DATA :19/12/2007 - 08:52:10 ---------------------------------------- Ciao Minzuk ho provato a scaricare il file EXE e lo zip, nello Zip c'è un file msi che richiede LV 7.1 e non mi lascia continuare, (io ho l'8.2) mi basta installare il .exe? Grazie ---------------------------------------- AUTORE: 838 DATA :20/12/2007 - 07:34:42 ---------------------------------------- mi sa proprio di si, io uso l'8.2 e ho usato proprio quei file va a caricare nella dir di labview sotto user library i llb di modbus, tutto in automatico vai di installazione \":D\" ---------------------------------------- ================================================================================ digital output on NI USB-6009 ================================================================================ AUTORE: 2321 DATA :11/12/2007 - 07:48:29 ---------------------------------------- Ciao a tutti, qualcuno saprebbe consigliarmi un esempio o un link per creare un output digitale su una scheda NI USB-6009 in modo da avere un treno di impulsi con frequenza e duty cycle da me controllabili. Purtroppo non ho mai lavorato con gli output di labview e sono un pò impacciato grazie a tutti per i suggerimenti ---------------------------------------- ================================================================================ Barra degli strumenti di windows ================================================================================ AUTORE: 482 DATA :11/12/2007 - 09:12:06 ---------------------------------------- ...ma ciao! qualcuno mi sa dire dove trovo il file di ocnfigurazione delle barre degli strumenti in windows? Mi spiego: Devo creare, in base ai file presenti in una determinata cartella, una barra degli strumenti sul desktop dell'utente. Vorrei andare a crearla tramite labview. Ipotizzo che ci sia un file di testo che contiene le configurazioni del desktop e delle varie barre. Sapete dirmi dove lo trovo? ---------------------------------------- ================================================================================ aprire finestre di output in labview? ================================================================================ AUTORE: 2243 DATA :11/12/2007 - 10:31:34 ---------------------------------------- Ciao a tutti, avete presente l'hyper terminal di windows che permette di visualizzare i dati provenienti da porta seriale (nel mio caso sono stringhe numeriche provenienti da una scheda eletronica)? Con opportuna temporizzazione della scheda, i dati (in colonna, uno sotto l'altro, nel mio caso) man mano riempiono la finestra facendola scorrere verso il basso. Così mi sono chiesto: all'interno del front panel di labview c'è un box che si può usare in maniera simile? Una finestra di output in cui rimanga lo "storico" dei valori via via acquisiti, finchè non viene stoppato il programma? Ai guru la parola \":)\" ---------------------------------------- AUTORE: 645 DATA :11/12/2007 - 11:00:19 ---------------------------------------- Puoi creare un ciclo temporizzatoche ogni tot legge la porta seriale e scrive i dati in una casella di testo aggiungendo alla scritta precedente. ---------------------------------------- AUTORE: 2243 DATA :11/12/2007 - 11:31:45 ---------------------------------------- Esatto, è questo che mi servirebbe, ma non capisco cosa intendi con "casella di testo": un indicatore stringa? perchè se è così prima o poi la riempio, se non stoppo il programma. ---------------------------------------- AUTORE: 1871 DATA :11/12/2007 - 11:46:49 ---------------------------------------- Prova con una ListBox o un Table Control. ---------------------------------------- AUTORE: 2243 DATA :11/12/2007 - 14:26:02 ---------------------------------------- L'idea della listbox non sarebbe male, solo che non riesco a riempirla (ho visto che settandola come indicatore, accetta numeri interi come ingresso), faccio qualche prova intanto, cmq grazie \":D\" ---------------------------------------- ================================================================================ Estrarre i valori di una colonna di un'array ================================================================================ AUTORE: 2288 DATA :11/12/2007 - 11:40:08 ---------------------------------------- Ciao ragazzi come faccio ad estrarre la prima colonna di un'array? grazie mir ---------------------------------------- AUTORE: 1871 DATA :11/12/2007 - 11:50:14 ---------------------------------------- Blocchetto Index Array ---------------------------------------- AUTORE: 2288 DATA :11/12/2007 - 11:56:15 ---------------------------------------- grazie! ---------------------------------------- ================================================================================ Acquisizione multipla con output ================================================================================ AUTORE: 632 DATA :11/12/2007 - 12:37:59 ---------------------------------------- Ciao, mi trovo per la prima volta ad affrontare un problema per me complesso in cui devo acquisire vari segnali di tensione, corrente e da RS232 e generare un segnale in uscita in tensione in base all'ingreso della RS232. Qualcuno può darmi qualche suggerimento su come impostare il lavoro? Esistono degli esempi? Grazie!!! \":D\" ---------------------------------------- ================================================================================ Da Array a Stringa da mettere in un file ================================================================================ AUTORE: 2288 DATA :12/12/2007 - 12:51:00 ---------------------------------------- Da un'array a due dimensioni voglio passare ad una stringa da inserire in un log .dat .... se seguite la figura forse vi è più chiaro dove sta il mio problema. Grazie ciao mir ---------------------------------------- AUTORE: 2288 DATA :12/12/2007 - 12:59:21 ---------------------------------------- Ecco l'immagine ---------------------------------------- AUTORE: 645 DATA :12/12/2007 - 15:17:27 ---------------------------------------- Io ho guardato l'immagine ma non ho capito molto... \":D\" ... come è fatto l'array che vuoi trasformare in stringa? Probabilmente devi lavorare sulle singole posizioni dell'array (o sulle singole righe o colonne) e inserire questi valori in una stringa per poi passarle ad un file di testo (beh, il passaggio intermedio può essere saltato ma è per rendere l'idea). ---------------------------------------- AUTORE: 2288 DATA :12/12/2007 - 15:36:25 ---------------------------------------- è una normalissima array 2d ... la converto come vedete nell'immagine in decimal integer string ma poi se input questa nel file mi dà l'errore che vedete in figura! ---------------------------------------- AUTORE: 384 DATA :13/12/2007 - 00:20:58 ---------------------------------------- Usa la funzione "Write to Spreadsheet File". ---------------------------------------- ================================================================================ istogramma ================================================================================ AUTORE: 2300 DATA :12/12/2007 - 14:53:40 ---------------------------------------- Salve a tutti, vi espongo quello che devo fare. Devo visualizzare dei vettori sia su un grafico sia su un istogramma. per il grafico ci sono riuscito, ma non riesco a capire come posso visualizzare su un istogramma tali vettori che escono da un ciclo for. grazie... ---------------------------------------- AUTORE: 947 DATA :12/12/2007 - 18:38:43 ---------------------------------------- ... mmmm... vediamo di capire... dunque... suppongo che per vettori intendi dire [b:9j5r8r2z]n-uple ordinate di valori scalari[/b:9j5r8r2z] ... nn so come riesci a graficarli .... se è [b:9j5r8r2z]n=2[/b:9j5r8r2z] ... quindi [b:9j5r8r2z]coppie ordinate[/b:9j5r8r2z] ... allora il grafico XY fa al caso tuo ... se [b:9j5r8r2z]n=3[/b:9j5r8r2z] invece c'è il grafico 3D ... ma se n>3... nn esiste soluzione a meno che nn fissi n-3 variabili!! Invece per [b:9j5r8r2z]Istogramma[/b:9j5r8r2z] che intendi?? Cosa sta in X e cosa in Y ?? ... una volta stabilto questo ... basta usare un normale Graph e modificare il [b:9j5r8r2z]Bar Plots[/b:9j5r8r2z] della curva da graficare... Penso cmq di nn aver afferato il problema... puoi essere + preciso?? Ciao!! ---------------------------------------- AUTORE: 2300 DATA :17/12/2007 - 17:42:44 ---------------------------------------- mi spiego meglio. Ho realizzato una applicazione che fa n trasmissioni ed n ricezioni. Poi ho settato due orologi che segnano quando parte una trasmissione e quando avviene una ricezione.Di questi due tempi ne faccio la differenza per vedere quanto tempo passa tra una trasmissione ed una ricezione. Il tutto è ovviamente inserito in un ciclo for. Porto fuori dal ciclo il risultato della differenza (ho quindi un vettore) e ne faccio un grafico. In parallelo a questo grafico devo fare un istogramma, cioè prendo gli stessi dati che mando nel grafico (waveform graph) e ne devo fare un istogramma. ma come posso fare?? grazie ---------------------------------------- ================================================================================ Trasporre una spreadsheet string ================================================================================ AUTORE: 2279 DATA :12/12/2007 - 20:25:35 ---------------------------------------- Salve a tutti \":lol:\" \":lol:\" \"8)\" \"8)\" VI pongo il seguente quesito: qualcuno sa come si possa fare una trasposizione (come fosse una matrice) di una spreadsheet string, ovvero scambiare le righe con le colonne di una stringa di testo contenente dei tab per separare le colonne e degli enter per scalare le righe. Ho provato a pensarci un poco per fare una sub-vi da per me, ma la soluzione mi sembra veramente cervellotica \":(\" (ovviamente sostituire tab con invio e viceversa non funziona \":roll:\" ) e non penso di essere in grado di concepire un algoritmo che mi rimetta tutti i pezzetti di teso al posto giusto \":oops:\" Grazie a tutti ---------------------------------------- AUTORE: 947 DATA :12/12/2007 - 22:02:43 ---------------------------------------- ... e che ci vuole ?? Ecco il tuo sub VI !!! Ciao !! ---------------------------------------- ================================================================================ VI in background ================================================================================ AUTORE: 384 DATA :13/12/2007 - 02:16:28 ---------------------------------------- Date un'occhiata [url=http://eyesonvis.blogspot.com/2007/12/application-instance-close-events.html:2g4i0fbx]qui[/url:2g4i0fbx]. La cosa è molto interessante!!! \":idea:\" Qualcuno ha avuto modo/accasione di provare se funziona anche in "stand alone"? Finora ho sempre usato i notifier per far chiudere i vari VI "sparsi" per conto proprio nell'applicazione.   ---------------------------------------- ================================================================================ Passare dati da array a file excel ================================================================================ AUTORE: 2299 DATA :14/12/2007 - 12:49:00 ---------------------------------------- Salve. Volevo sapere se in labview fosse possibile passare dei valori da un array in un file excel,se qualcuno ha già fatto questa operazione è può aiutarmi ne sarei grato. Grazie. ---------------------------------------- AUTORE: 384 DATA :15/12/2007 - 22:22:24 ---------------------------------------- Usa la funzione (blocco) "Write to Spreadsheet File", nella sottopalette "File".   ---------------------------------------- ================================================================================ numeric control ================================================================================ AUTORE: 595 DATA :14/12/2007 - 14:50:39 ---------------------------------------- Ciao a tutti io devo fare una cosa semplice ma non mi riesce; uso un controllo per regolare il numero di giri di un motore elettrico tramite inverter e scheda national 4 - 20 mA. quando spingo lo STOP del mio VI il motore continua a girare all'ultima velocità impostata. Ho provato tramite variabile locale a dare un valore zero o 4 mA al numeric control quando spingo lo stop trmite il case, ma il motore continua a girare. COme posso portare il valore del controllo a zero quando fermo il VI? grazie ---------------------------------------- AUTORE: 947 DATA :15/12/2007 - 18:21:16 ---------------------------------------- .... Ciao !! puoi postare il VI giusto per dare un'occhiata e vedere se c'è qualcosa che non va lì ? attendo..... bye ---------------------------------------- AUTORE: 384 DATA :15/12/2007 - 22:26:02 ---------------------------------------- Non basta dare il valore 0 (o 4 mA) al numerical control. Anzi, più che impostare questo valore tramite variabile, devi scriverlo nel canale di output!   ---------------------------------------- AUTORE: 947 DATA :16/12/2007 - 15:28:22 ---------------------------------------- [quote="gyc":3b4uf0ce]Non basta dare il valore 0 (o 4 mA) al numerical control. Anzi, più che impostare questo valore tramite variabile, devi scriverlo nel canale di output!  [/quote:3b4uf0ce] Bhè ..... certo .... suppongo che questo lo abbia fatto .... immagino ... spero ... ... aspettiamo che posti il VI .... ---------------------------------------- AUTORE: 384 DATA :16/12/2007 - 18:42:03 ---------------------------------------- Io mi sono basato su quanto effettivamente riportato. [quote="principiante":3ejukxy3]Ho provato tramite variabile locale a dare un valore zero o 4 mA al numeric control quando spingo lo stop trmite il case, ma il motore continua a girare. COme posso portare il valore del controllo a zero quando fermo il VI?[/quote:3ejukxy3] Non è la prima volta che trovo questa "associazione implicita" in programmatori giovani (in termini di LabView, non anagrafici) quando fanno "output" la prima volta sopratutto se provengono, per esempio, dal mondo PLC, dove, invece, questo tipo di "associazione" è reale. Ecco perchè l'ho sottolineato.   ---------------------------------------- AUTORE: 947 DATA :16/12/2007 - 19:00:09 ---------------------------------------- [quote:3fmguybb]Non è la prima volta che trovo questa "associazione implicita" in programmatori giovani (in termini di LabView, non anagrafici) quando fanno "output" la prima volta sopratutto se provengono, per esempio, dal mondo PLC, dove, invece, questo tipo di "associazione" è reale. [/quote:3fmguybb] ... forse hai ragione ... nn pensavo al fatto che nel mondo PLC esiste questo tipo di "associazione"... non ho esperienza in quel campo ... invece ho molta esperienza nella programmaziopne + a basso livello ... tipo C/C++ ... (oltre che LV) ... quindi forse do per ovvie cose che per altri invece nn lo sono ... In effetti l'oggetto dell'intervento di [b:3fmguybb]principiante[/b:3fmguybb] è "[i:3fmguybb][b:3fmguybb]numeric control[/b:3fmguybb][/i:3fmguybb]" ... che io ho cambiato nel + significativo (a mio avviso!) "[b:3fmguybb][i:3fmguybb]controllare tramite 4-20 mA[/i:3fmguybb][/b:3fmguybb]"... questo può essere significativo ... Ad ogni modo ... sono nostre congetture... quando [b:3fmguybb]principiante[/b:3fmguybb] si farà vivo ... dipanerà i nostri dubbi ... CIAO !! ---------------------------------------- AUTORE: 595 DATA :17/12/2007 - 08:10:37 ---------------------------------------- si ho impostato con max l'output a 4 - 20 mA e impostato da proprietà la variabile tra 0,0039 a 0'021, il problema e che quando fermo il mio vi il motere continua a girare alla velocità impostata prima dello "stop"; dovrei quindi portare il valore della variabile a zero ogni volta che fermo il VI. ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 08:58:45 ---------------------------------------- Il valore della variabile deve essere settato tramite VI. Questo significa che quando chiudi il VI (che immagino giri all'interno di un ciclo principale) devi inserire una parte di "settaggio parametri" dove azzeri tutti canali da spegnere e/o resetti altre variabili se necessario. ---------------------------------------- AUTORE: 595 DATA :17/12/2007 - 09:10:30 ---------------------------------------- e come faccio questo settaggio?. Si comunque tutti i parametri o variabili sono dentro un ciclo ovviamente ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 10:02:00 ---------------------------------------- Imposti i canali a zero nello stesso modo in cui li imposti ad un valore particolare... \":D\" Tutto in una sequenza raggiunta dopo la chiusura del ciclo. ---------------------------------------- ================================================================================ bus SPI con parallela ================================================================================ AUTORE: 2324 DATA :15/12/2007 - 12:20:24 ---------------------------------------- Salve gente, ho bisogno di pilotare dispositivi con bus SPI, tipicamente a 16bit e con livelli a 5V. In particolare, devo poter scrivere e/o leggere su dei registri; ho da gestire 4 canali digitali: DI, DO, CLK e CSN. Per abilitare la comunicazione occore abbassare il CSN, dare 16 colpi di CLK e inviare la frame di 16 bit al DI. Il DO è usato in lettura. Pensavo di usare semplicemente la porta parallela dei PC, compatibile con i livelli di tensione, ma vorrei sapere: fino a quale frequenza di CLK posso arrivare? Come gestire la scrittura e lettura simultanea dal DI e DO? Insomma, ditemi tutto quello che sapete su quest'argomento, grazie mille Gugol ---------------------------------------- AUTORE: 2604 DATA :15/09/2011 - 09:54:28 ---------------------------------------- Salve, Anche io ho lo stesso problema. Nessuno ha mai fatto qualcosa di simile? ---------------------------------------- ================================================================================ Aiuto programmazione software counter ================================================================================ AUTORE: 2325 DATA :16/12/2007 - 13:38:41 ---------------------------------------- Ho creato con labwiew da qualche giorno un software per contare il tempo che mia sorella passa al MIO computer.....il problema è che all inizio parte dicendo che inizia il conteggio.....poi dopo 10 min (ho impostato tutto io) chiede se si vuole continuare...se dice si il conteggio ricomincia, se dice no viene scritto su un file txt che il tempo è finito.......però visto che lei ha un account suo personale(limitato) volevo chiedervi se fosse possibile fare in modo che quando clicca su no ( e quindi il counter termina e i chiude labwiew)..............insomma volevo aggiunger un comando che disconnette il suo utente quando clicca su no..........sennò lei clicca no....si ferma il counter ma puo continuare a utilizzare il pc!!!!!!!!!!!!!mi potete aiutare?????vi posto un video......[url:2i02ghyq]http://tinypic.com/player.php?v=85vheup&s=1[/url:2i02ghyq] ---------------------------------------- AUTORE: 947 DATA :16/12/2007 - 15:37:00 ---------------------------------------- ... \":D\" Ahahahah dunque ...... [b:36d3i7b5]Una nobile causa !!! [/b:36d3i7b5] \":lol:\" \":D\" ...... Dunque ... al di là del fine .... il problema essenziale se ho capito bene è: [b:36d3i7b5]1. Riuscire a riconoscere (e quindi gestire) gli utenti del Sistema Operativo 2. comandare il logout dell'utente[/b:36d3i7b5] ...... bhe.... direi che la questione è molto interessante... e può in effetti tornare utile in 1000 applicazioni + o - professionali .... Ci studio un po' sopra.... ma per adesso nn saprei aiutrti ... A presto .. spero .... Bye!! ---------------------------------------- AUTORE: 2325 DATA :16/12/2007 - 16:34:57 ---------------------------------------- io vorrei che se lei dice no e quindi esce un codice false...ci fosse qualcosa che gli disconnette l utente...... ---------------------------------------- AUTORE: 947 DATA :16/12/2007 - 19:08:42 ---------------------------------------- [quote="andre84":1p8czuaq]io vorrei che se lei dice no e quindi esce un codice false...ci fosse qualcosa che gli disconnette l'utente......[/quote:1p8czuaq] Esatto ... con i punti 1 e 2 io intendevo proprio questo ... per disconnettere un utente ... anzi .. per essere precisi ... [b:1p8czuaq]disconnettere solo uno specifico utente[/b:1p8czuaq] ... ([i:1p8czuaq]certo non vorrai disconnettere anche te stesso se tu usi questa applicazione!![/i:1p8czuaq]) .... è necesario prima che con il LV ci si ricavi il nome dell'utente che è attualmente connesso al SO ... e quindi lanciare il comando di logoff se è uguale a "bla bla" oppure se è diverso da "bla bla"... ti suona bene ?? ---------------------------------------- AUTORE: 2325 DATA :16/12/2007 - 20:06:15 ---------------------------------------- mi potresti spiegare passo passo??il nome utente è el......cm potrei fare? ---------------------------------------- AUTORE: 2325 DATA :16/12/2007 - 20:17:15 ---------------------------------------- che box(quegli aggeggi cn i disegnini dentro con le entrate e le uscite) potrei usare??????dovrei trovare qualcosa che mi fa chiudere un aprire un certo processo(logoff) di un certo utente (el)....mi potresti aiutare a trovare il box adatto per questa cosa??? ---------------------------------------- AUTORE: 947 DATA :16/12/2007 - 20:18:51 ---------------------------------------- [quote="andre84":23kdkrc4]mi potresti spiegare passo passo??il nome utente è el......cm potrei fare?[/quote:23kdkrc4] .... ehmm .... no... non posso piegarti passo passo perkè ancora non saprei come fare... dovrei studiarci un po' sopra... ma quando sprò come fare ... certo... tranquillo .... ti spiegherò al meglio .. ti invio pure il vi ... devi avere solo un po' di pazienza... devo trovare 2 min ... A presto ..... (spero!) ---------------------------------------- AUTORE: 2325 DATA :16/12/2007 - 20:38:25 ---------------------------------------- nn ti preoccupare nn sono di fretta....cmq se me lo fai entro una settimana preferisco......grazie per l aiuto... ---------------------------------------- AUTORE: 1871 DATA :17/12/2007 - 09:15:10 ---------------------------------------- Leggi qui http://www.swprog.com/howto/shutdown.php[/url] ---------------------------------------- AUTORE: 43 DATA :17/12/2007 - 09:59:50 ---------------------------------------- Se il Sistema Operativo è Windows >= a W2K allora è possibile utilizzare la chiamata API ExitWindowsEx presente in user32.dll qua c'è la spiga della funzione ExitWindowsEx Function http://msdn2.microsoft.com/en-us/library/aa376868.aspx Cmq ti consiglio di vedere l'esempio How to shutdown the system http://msdn2.microsoft.com/en-us/library/aa376871.aspx per chiamare la funzione da LabVIEW usare una Call Library Function Node Buon Natale ---------------------------------------- AUTORE: 2325 DATA :17/12/2007 - 16:24:49 ---------------------------------------- io nn volevo qualcosa che arrestasse il sitema....io devo semplicemente disconnettere l utente di mia sorella!!!!!!se il mio è logged...deve rimanere nn si devono disconnettere tutti e due.cmq grz e Buon Natale ---------------------------------------- AUTORE: 2325 DATA :17/12/2007 - 16:30:17 ---------------------------------------- mi basterebbe anche qualcosa per far partire un processo appena gli arriva il segnale.........come processo potrei mettere logoff e cosi si diconnetterebbe solo l utente di mia sorella.....che ne dite???? esiste un comando per far questo?? ---------------------------------------- AUTORE: 1871 DATA :17/12/2007 - 16:48:14 ---------------------------------------- Riposto: leggi http://www.swprog.com/howto/shutdown.php shutdown /l disconnette l'utente corrente. ---------------------------------------- AUTORE: 2325 DATA :17/12/2007 - 17:14:15 ---------------------------------------- ma come faccio a fargli eseguire quel comando....?????volevo farvi anche una ltra domanda....cm potrei fare per: appena accede l utente parte il programma...ma nn è visibile sull barra.....(cosi nn lo puo chiudere).....sapete cm potrei fare?? ---------------------------------------- AUTORE: 1871 DATA :18/12/2007 - 08:55:19 ---------------------------------------- Per inviare il comando mi pare dovrebbe bastare il System Exec.vi Per quanto riguarda il problema di non far chiudere il programma....questa è una cosa interessante. Perchè in realtà dovresti fare in modo che non sia 'killabile' anche da task manager. Ti dovresti studiare un po' i servizi windows.... Vedi se qui c'è qualcosa che può fare al tuo caso: [url:187r1md6]http://www.codeproject.com/KB/system/xyntservice.aspx[/url:187r1md6] ---------------------------------------- AUTORE: 2325 DATA :18/12/2007 - 12:28:19 ---------------------------------------- a me basterebbe che nn fosse chiudibile ne dalla x in alto a destra della finestra.....ne dall task manager cliccando termina operazione......nn mi serve qualcosa che protegga anche il processo..tanto mia sorella sa a mala pena cos'è il task manager!!!!!!cmq la disconnessione funziona.........grazie 1000!!!!! \":D\" \":D\" \"8)\" \":mrgreen:\" \":mrgreen:\" ---------------------------------------- AUTORE: 2325 DATA :18/12/2007 - 17:33:26 ---------------------------------------- vi vorrei chiedere un altra cosa.(sn assillante).........cm posso fare per appena viene visualizzato il messaggio cn le opzioni di risposta (si e no) se nn viene cliccato ne si ne no dopo (es. 10 secondi) sceglie automaticamente si o no.....(a seconda di come lo imposto)........ ---------------------------------------- AUTORE: 2325 DATA :26/12/2007 - 15:46:23 ---------------------------------------- nessuno mi può rispondere? ---------------------------------------- AUTORE: 680 DATA :26/12/2007 - 16:23:15 ---------------------------------------- allora per quanto riguarda la x rossa e il tasto dx chiudi sopra la barra.. basta che nelle proprietà del VI (file --> vi proprerties --> windows apparence --> customize) deselezioni "allow user to close window" (permetti all'utente di chiudere la finistra). per la disconessione puoi usare la system exec con il comando shutdown /l come ti ha detto qualcuno... per la risposta automatica dopo 10 secondi, devi chiamare il vi del messaggio dinamicamente per poi chiuderelo (sempre dinamicamente) dopo 10 sec se l'utente non ha premuto alcun tasto. ---------------------------------------- AUTORE: 2325 DATA :27/12/2007 - 08:25:16 ---------------------------------------- grazie dell aiuto.....ma orrei sapere...se metto il comando che nnfa chiudere la finestra.....quando lei clicca no..parte il comando shutdown /l....ma nn puole disconnettersi xchè se la finestra è "bloccata"????? cmq per risolvere questo problema suppongo che basterebbe aggiungere il comando exit labwiew.........no?....per la disconnessione e il blocco chiusura...ci sn riuscito......per il messaggio nn ho capito molto bene ---------------------------------------- AUTORE: 2325 DATA :27/12/2007 - 17:58:52 ---------------------------------------- mi sono spiegato male.....per la disconnessione e l'applicazione non chiudible ho risolto......mi è rimasto il problema dei messaggi con l auto risposta dopo un tot. di tempo...............nessuno mi sa rispondere? ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 03:22:08 ---------------------------------------- É un banalissimo vi con un messaggio scritto nel display ed un loop di attesa che potrà finire se viene premuto il pulsante oppure se si esaurisce il timeout. ---------------------------------------- AUTORE: 2325 DATA :28/12/2007 - 08:52:04 ---------------------------------------- scusa ma non ho capito...me lo potresti spiegare meglio(non sono molyo abile su labwiew devo ancora imparare)ho ripresoil tuo la voro...ma dove devo aggiungere il "display message to user"??mi potresti postare un immagine già fatta anche con un display message to user???? grazie 1000 ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 14:24:27 ---------------------------------------- Non è necessario postare un vi. Semplicemente nel front panel inserisci un commento. Se hai il "tool" automatico basta fare un doppio click dovunque tu voglia e puoi scrivere tutto ciò che vuoi. Poi devi solo cambiare le dimensioni/colori/stile dei caratteri nel modo più utile/funzionale/bello a seconda di ciò che vuoi ottenere. ---------------------------------------- AUTORE: 2325 DATA :28/12/2007 - 19:32:38 ---------------------------------------- grazie ci sono riuscito.... ---------------------------------------- ================================================================================ Arrestare VI su server quando il client da remoto chiude IE ================================================================================ AUTORE: 2327 DATA :17/12/2007 - 07:55:22 ---------------------------------------- Raga è possibile far terminare un VI, quando un client, che utilizza il programma da remoto (via web), chiude il browser senza prima arrestarne l'esecuzione? Si genera un qualche evento quando un client accede e si sconnette ad un VI remoto? Grazie! \":?\" ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 09:01:33 ---------------------------------------- Bella domanda... forse intercettando l'evento di chiusura della pagina tramite HTML ma non so se si può fare. Credo che la soluzione migliore sia inserire un pulsante di STOP nel VI; non so se si può passare un valore da VI alla pagina HTML. Altrimenti si potrebbe pensare qualcosa del tipo:"Quando l'utente preme il pulsante cambio il valore di una variabile nella pagina HTML (un boolean). Quando l'utente cerca di chiudere la pagina controllo questa variabile e a seconda del valore decido se avvisare l'utente che deve fermare il VI prima di chiudere". ---------------------------------------- AUTORE: 2327 DATA :17/12/2007 - 09:12:07 ---------------------------------------- [quote="MagicBotolo":zux8t1zt]Bella domanda... forse intercettando l'evento di chiusura della pagina tramite HTML ma non so se si può fare. Credo che la soluzione migliore sia inserire un pulsante di STOP nel VI; non so se si può passare un valore da VI alla pagina HTML. Altrimenti si potrebbe pensare qualcosa del tipo:"Quando l'utente preme il pulsante cambio il valore di una variabile nella pagina HTML (un boolean). Quando l'utente cerca di chiudere la pagina controllo questa variabile e a seconda del valore decido se avvisare l'utente che deve fermare il VI prima di chiudere".[/quote:zux8t1zt] Grazie della risposta \":wink:\" Il pulsante di stop che fa terminare il programma è implementato, però se qualche scalmanato non dovesse premere il pulsante, ma chiudere la finestra direttamente, mi creerebbe molti problemi xkè il VI continuerebbe a girare. Si potrebbe vedere se si riesce a "sentire" l'utende dall'altra parte. \":?\" ---------------------------------------- AUTORE: 1871 DATA :17/12/2007 - 09:43:31 ---------------------------------------- Allora, se l'utente usa internet solo per collegarsi all'applicativo, si può fare in modo da disabilitare la chiusura di internet explorer. Si fa così: nel registro di sistema del PC dell'utente vai nella cartella HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Restrictions (se Internet Explorer e/o Restrictions non esistono le crei tu) e in questa cartella crei la voce NoBrowserClose, a cui assegni il valore 1. A questo punto se qualcuno cercherà di chiudere la finestra di internet explorer gli comparirà un messaggio, e la finestra resterà aperta (ma da task manager è sempre possibile chiuderla!) ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 10:00:21 ---------------------------------------- [quote:3a5wigae]...registro di sistema del PC dell'utente...[/quote:3a5wigae] Questo prevede la possibilità di mettere le mani sul pc dell'utente... Si può porvare a sentire direttamente la National: su http://zone.ni.com/reference/en-XX/help ... _html_doc/ viene riportato il codice di un VI inserito in una pagina HTML... non so se si può fare qualche modifica per passare parametri. ---------------------------------------- AUTORE: 1871 DATA :17/12/2007 - 10:38:19 ---------------------------------------- [quote:2lajhwzq]Questo prevede la possibilità di mettere le mani sul pc dell'utente... [/quote:2lajhwzq] ovviamente la soluzione che ho proposto va bene solo in casi molto particolari... Comunque, non so esattamente come lavora il web server, ma immagino che esista un'opzione che permette un limite massimo di utenti connessi. Questo significa che ciclicamente controlla che le varie connessioni siano aperte, e se una viene chiusa (per un qualsiasi motivo) se ne accorge. Quindi, studiando come funziona questa cosa, dovrebbe poter essere possibile chiudere il processo sul server nel momento in cui una connessione viene chiusa. ...è solo un'idea buttata lì...non so se e come funziona. Sicuramente dalla National sapranno dirne di più. ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 10:43:54 ---------------------------------------- Però il discorso è interessante... \":D\" Vai Daxino, vedi se scopri qualcosa! ---------------------------------------- AUTORE: 4 DATA :17/12/2007 - 11:23:11 ---------------------------------------- che ve ne pare della soluzione in figura? dovrebbe funzionare ma non ho il tempo di provarla. Ciao ---------------------------------------- AUTORE: 2327 DATA :17/12/2007 - 11:56:42 ---------------------------------------- [quote="ale914":1666v87g]che ve ne pare della soluzione in figura? dovrebbe funzionare ma non ho il tempo di provarla. Ciao[/quote:1666v87g] Raga grazie a tuti x l'interessamento. @ale914 mi daresti il VI e mi dici cosa fa? grazie \":P\" ---------------------------------------- AUTORE: 2327 DATA :17/12/2007 - 12:38:33 ---------------------------------------- [quote="ale914":1d8uzz5v]che ve ne pare della soluzione in figura? dovrebbe funzionare ma non ho il tempo di provarla. Ciao[/quote:1d8uzz5v] Complimenti, funge \":D\" Ottengo tutti i dati nel client cosicchè posso controllare quando è connesso e arrestare il programma quando si sconnette \":wink:\" ---------------------------------------- ================================================================================ labview e comunicazione udp ================================================================================ AUTORE: 2328 DATA :17/12/2007 - 12:13:30 ---------------------------------------- Salve sono nuovo da queste parti...nn so se qst è la parte giusta dove effettuare delle domande e se nn è così mi scuso anticipatamente... mi sono rivolto a voi xk credo k mi potete dare una mano... dovrei realizzare un simulatore di volo real-time...utilizzo cm software x-plane 8.6 e cm hardware dovremmo utilizzare il cockpit di un'aereo reale... utilizzo vari computer, collegati in rete tra loro, per rappresentare i vari scenari, in più ho utilizzato un computer, sempre collegato in rete, sul quale gira il software labview con il quale dovrei, tramite porta udp ricevere i dati dal simulatore di volo ma ho alcuni problemi con qst compito. arrivano su porta udp una marea di dati ma nn riesco a capire quali sono i comandi pricipali e di conseguenza quali comandi mi servono per comandare il cockpit. qnd ricevo i dati vengono visualizzati in modo non leggibile...vorrei sapere come fare per rendere questi dati in modo leggibile così da riuscire a leggere i comandi necessari. la visualizzazione credo sia in codice ascii... Spero la domanda sia stata chiara e spero in un vostro aiuto. Grazie. Zimone. ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 12:45:21 ---------------------------------------- http://zone.ni.com/reference/en-XX/help ... criptions/ può essere un inizio sui comando UDP... Anche http://zone.ni.com/reference/en-XX/help ... cepts/udp/ . In pratica Xplane offre dati in output in formato testuale? Oppure si può comunicare con il software direttamente tramite connessione UDP? ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 13:18:38 ---------------------------------------- x-plane al suo interno ha delle caselle in cui possiamo inserire l'indirizzo ip dell'host sul quale vogliamo che vengano inviate le informazioni e bisogna indicare anche la porta udp dalla quale vengono inviate queste informazione e sul manuale viene detto che la porta è la 49000... ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 13:22:38 ---------------------------------------- Guarda http://cnx.org/content/m13780/latest/ ... trovi un esempio di comunicazione UDP con LabView. A questo punto però ti serve sapere quali dati effettivamente usare. Tu scrivi che non si capisce il significato dei dati: sul manuale di Xplane non ci sono indicazioni? ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 13:29:40 ---------------------------------------- ci ho pensato anche io...ho chiesto sia sul sito del simulatore e nel frattempo ho visto anche nella cartella udp reference che si trova nella directory del simulatore... i comandi ci sono ma labview nn riesce, facendo un parsing a ritrovare questi comandi all'interno della stringa che viene inviata dal simulatore.... ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 13:46:58 ---------------------------------------- Non riesce? In che senso? In che formato vengono inviati i comandi, puoi fare un esempio? ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 13:55:46 ---------------------------------------- Scusa potrebbe anche essere una cosa banale ma utilizzo labview da solo 2 mesi...prima non ne avevo sentito neanche parlare...cmq sul pannello frontale voglio visualizzare con un string indicator la stringa che è stata inviata dal simulatore...qnd mando in run questo programma i dati vengono visualizzati in modo non leggibile ma si vedono solo quadratini(credo sia codice ascii) ed ogni pacchetto inizia sempre con SNAP che non è contenuto all'interno dei miei comandi che devo trovare... il parsing all'internho di questa stringa la effetua con il match pattern e in uscita al match pattern prendo l'after string poichè i dati che mi occorrono dovrebbero essere contenuti in un tot di byte dopo il comando... ma labview, utilizzando il match pattern non riesce atrovare alcun comando all'interno di questa stringa.... Spero di essere stato un pò più chiaro..... ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 14:21:46 ---------------------------------------- Quando ho detto "Non riesce?" non intendevo dire che LabView riesce a fare tutto... non volevo sembrare aggressivo... intendevo dire che non capivo cosa intendessi con "non riesce" \":D\" . Se leggi i quadratini è un problema di codifica. Vedi i caratteri ascii... in realtà dovrebbero arrivare numeri e lettere? ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 14:39:04 ---------------------------------------- Tranquillo sono io che non voglio sembrare pesante...comunque leggo un'insieme di lettere, numeri e quadratini...in allegato un esempio di ciò che mi arriva salvato in un file..il file lo apro con blocco note e rispecchia ciò che mi fa vedere la string indicator ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 14:41:24 ---------------------------------------- Non mi fa inviare l'allegato... ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 14:43:52 ---------------------------------------- Allegato... ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 14:44:28 ---------------------------------------- Allegato: ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 15:20:00 ---------------------------------------- Non riesco ad aprire il pdf... smbra rovinato... Puoi creare un file di testo? ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 15:25:07 ---------------------------------------- Nuovo allegato: ---------------------------------------- AUTORE: 2328 DATA :17/12/2007 - 16:42:26 ---------------------------------------- MagicBotolo appena hai un minuto di tempo puoi controllare il file e magari darmi qualche dritta per arrivare al mio scopo.... Grazie anticipatamente... ---------------------------------------- AUTORE: 2328 DATA :18/12/2007 - 09:10:19 ---------------------------------------- Riguardo il file inviato in allegato c'è qualcuno che può darmi qualche informazione per riuscire a rendere in modo leggibile queste informazioni visto che è essenziale per il compito che devo effettuare? Grazie. ---------------------------------------- AUTORE: 384 DATA :18/12/2007 - 09:21:44 ---------------------------------------- Scusate se mi intrometto, ma volevo solo corroborare ciò che a già detto Magic. Sembra un problema di formatto, cioè, i dati vengono inviati in un certo formatto che non è banalmente ASCII leggibile direttamente dagli umani. Dovrai trovare informazioni su quei dati e sul formatto in cui vengono inviati, altrimenti non cè modo di renderli intellegibili. L'unica cosa aparentemente "umana" è la stringa "SNAP%" che sembra ripetersi. Non ho analizzato i dati in dettaglio, quindi non so se è preceduta e/o seguita da qualcos'altro che ne faccia parte. Quindi, per ora la "palla" non è nel campo di LabView bensì di X-plane. Hai visto [url=http://www.x-plane.info/:2h80xet4]qui[/url:2h80xet4]? ---------------------------------------- AUTORE: 2328 DATA :18/12/2007 - 09:56:03 ---------------------------------------- Si ci ho dato un occhiata ma il problema è che porca miseria non ho molta dimestichezza con l'inglese e quindi riesco a capire le cose al 50%... ---------------------------------------- AUTORE: 645 DATA :18/12/2007 - 15:15:37 ---------------------------------------- Effettivamente ho provato a leggere il file di testo con LabView e fare diversi tipi di conversione ma non ottengo nulla. Si potrebbe contattare quelli del supporto di Xplane e chiedere in che formato vengono passati i dati spiegando la situazione. ---------------------------------------- AUTORE: 2328 DATA :18/12/2007 - 15:31:40 ---------------------------------------- Ci sto provando ma sul sito di x-plane mi hanno dato un link nel quale ci sono una marea di dataref plugin e utilizzarli tutti all'interno di labview diventerebbe alquanto complicato...non riescono a darmi informazioni più precise...inoltre mi hanno dato la mail dello sviluppatore di x-plane m a dovrei scrivere in inglese e questo mi risulta difficile perchè non ho molta dimestichezza con l'inglese... ---------------------------------------- AUTORE: 2328 DATA :18/12/2007 - 15:33:43 ---------------------------------------- Un'altra domanda: è possibile che sbaglio metodo di acquisizione, utilizzo un semplice Udp Ready e nn effettuo nessuna conversione ai dati che mi arrivano? ---------------------------------------- ================================================================================ salvare file txt ================================================================================ AUTORE: 1990 DATA :17/12/2007 - 14:43:05 ---------------------------------------- salve, ho un problema e vorrei sapere se qualcuno di voi gentilmente me lo può risolvere. Salvo diversi dati del tipo DBL in un file xls (spreadsheet) senza problemi. Quando faccio la stessa cosa in un file txt, i dati mi vengono salvati con la "," decimale al posto del "." Come posso fare per far comparire il PUNTO? Anche perchè lo stesso file lo devo anche leggere e la presenza della VIRGOLA mi crea problemi di interpretazione. Grazie ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 15:18:55 ---------------------------------------- Controlla le impostazioni internazionali di Windows e sistema . e , ---------------------------------------- AUTORE: 1990 DATA :17/12/2007 - 15:36:33 ---------------------------------------- Grazie, ma è la prima cosa che ho fatto! E poi comunque il file in formato excel si scrive correttamente. Non so proprio che pensare.... \":(\" ---------------------------------------- AUTORE: 645 DATA :17/12/2007 - 21:47:50 ---------------------------------------- Urka, allora è strano... se non trovi una soluzione puoi sempre sostituire le virgole con i punti prima di memorizzare le stringhe su file di testo. ---------------------------------------- AUTORE: 487 DATA :18/12/2007 - 07:34:58 ---------------------------------------- Ciao Biba, se non dico una cavolata, mi sembra che il file in formato excel prenda le impostazioni tipiche di excel (perciò il punto come separatore decimale) mentre un file txt prende le impostazioni di windows. Perciò: nel blocchetto di conversione da numero a stringa metti su false l'ingresso "use system decimal point" cosichè verranno utilizzate le impostazioni di labview. ---------------------------------------- AUTORE: 1990 DATA :19/12/2007 - 08:46:55 ---------------------------------------- Grazie a tutti per l'interessamento! Ho provato prima il suggerimento di Coma ma invano. Quinidi ho seguito il consiglio di sostituire il punto con la virgola prima si salvare il file. Questa volta la cosa è andata a buon fine. Grazie ancora e Buon Natale a tutti. \":)\" ---------------------------------------- ================================================================================ Intepretare comandi che arrivano tramite porta udp ================================================================================ AUTORE: 2328 DATA :18/12/2007 - 07:54:49 ---------------------------------------- Salve a tutti...vorrei sapere perchè quando voglio visualizzare i dati che leggo da un simulatore su porta udp, riesco a leggere solo quadratini...io dovrei acquisire i comandi in modo leggibile in modo tale che posso effettuare un parsing sul pacchetto e trovare il comando da me cercato... Spero qualcuno mi possa dare una mano. Aggiungo in allegato una copia del pacchetto che mi arriva tramite porta udp. ---------------------------------------- ================================================================================ Remote Panel connection subVI ================================================================================ AUTORE: 482 DATA :18/12/2007 - 11:24:01 ---------------------------------------- ...ma ciao! dovrei pubblicare un intera applicazione (front panel, subVI e messaggi di errore) in modo da poterla controllare da un altro PC della rete. Mi chiedevo, esiste una procedura automatica o devo settare manualmente tutti i singoli vi in modo che vengano pubblicati? QUalcuno ha qualche esperienza a proposito? ---------------------------------------- ================================================================================ help me ================================================================================ AUTORE: 2329 DATA :19/12/2007 - 17:09:17 ---------------------------------------- Ciao a tutti \":D\" E' da un po' che bazzigo su questo forum per ottenere informazioni utili per il mio apprendimento su LaVIEW, e devo dire che mi e' servito molto \":wink:\" Utilizzo LabVIEW per sistemi, faccio un itis ( indirizzo elettronica ), il mio insegnante e' molto esigente, del tipo " o sai come si fa o e' un 2 sul registro \":P\" ". Scrivo qua, per chiedere consiglio, devo realizzare un controllo semaforo, dispongo di un oscillatore ( T=5 secondi ), i semafori sono 2, e devo selezionare quale voglio tramite un controllo ( \":|\" )... la tempistica del primo semaforo e': rosso ( 20 sec ), verde ( 15 sec ) giallo ( 5 sec ) mentre il secondo : rosso ( 10 sec ) rosso|giallo ( 10 sec ), verde (10 sec ) verde|giallo ( 10 sec )... qua quello che ho provato a realizzare http://www.mediafire.com/upload_complet ... nudkike02h , e' scarso lo so, ma e' il secondo progetto che devo realizzare e l'esperienza e poco e l'isegnante esigente \":(\" sono accetti consigli grazie in anticipo e complimenti per il forum \":)\" ---------------------------------------- AUTORE: 2329 DATA :19/12/2007 - 17:11:42 ---------------------------------------- ah, aggiungo, non capisco perche' ma e' talmente lento a cambiare colore che a volte rosso e verde si sovrappongono per un po', anzi non a volte sempre.. c'e' un modo per avvelocizzare? grazie ancora ---------------------------------------- AUTORE: 680 DATA :19/12/2007 - 18:51:07 ---------------------------------------- non riesco a vedere il tuo perchè non ho labview 8.5... comunque visto che anch'io a suo tempo avevo fatto una specie di semaforo, ti allego il vi e vedi se può esserti utile... bye, bye.. ---------------------------------------- AUTORE: 2329 DATA :19/12/2007 - 20:09:17 ---------------------------------------- grazie mille, sicuramente e' meglio del mio \":P\" Cerchero' di apportare le opportune modifiche e di ri-leggere per non annoiarvi in futuro \":wink:\" [img:dch4ph94]http://www.marmotta.ch/faccine/z015-ciao.gif[/img:dch4ph94] ---------------------------------------- AUTORE: 2329 DATA :19/12/2007 - 20:38:39 ---------------------------------------- hehe un altra domanda poi non rompo piu' giuro \":P\".. qualcuno sa dirmi come creare un controllo tra due " while loop" nel senso devo scegliere quale dei due fare andare e quale no, come faccio? grazie della paziena ormani non mi sopportate piu' \":?\" ---------------------------------------- AUTORE: 1871 DATA :19/12/2007 - 20:41:51 ---------------------------------------- [quote="Padishar":32onz9od]ah, aggiungo, non capisco perche' ma e' talmente lento a cambiare colore che a volte rosso e verde si sovrappongono per un po', anzi non a volte sempre.. c'e' un modo per avvelocizzare? grazie ancora[/quote:32onz9od] E' lento perchè lo esegui con highlight execution abilitato \":D\" Nel block diagram vai sul pulsantino con la lampadina e disabilitalo. Ho provato il tuo vi e mi sembra funzionare bene. L'unica cosa che devi cambiare è, relativamente al semaforo di sinistra, nel case S3 devi aggiornare STATO 2 ad S0 (o quello che deve venire dopo), non S3, altrimenti ti rimane sempre in S3. ---------------------------------------- ================================================================================ picture ring, cambio di immagini interne runtime ================================================================================ AUTORE: 838 DATA :20/12/2007 - 07:40:39 ---------------------------------------- ultimamente mi trovo molto bene con le picture ring, ma mi chiedevo una cosa che non riesco proprio a fare: supponiamo che io creo una picture ring formata da due immagini, che rispondono al valore 0 e 1 pilotandola direttamente (passandogli appunto 0 o 1) cambia di stato e va tutto bene ma io vorrei poter cambiare le due immagini che ci sono all'interno, e questo non riesco proprio a fare ho provato dalle proprety, dalle method, in tutte le salse, ma l'immagine all'interno non riesco proprio a modificarla (in runtime ovviamente) il concetto è quello dell'icona, io carico da file le due immagini (da una jpg o bmp o gif) e all'avvio del programma le assegno alle mie picture ring sparse sul vi qualcuno ce l'ha fatta? per me è impossibile!!! grazie \":P\" ---------------------------------------- AUTORE: 645 DATA :20/12/2007 - 09:56:27 ---------------------------------------- Io ho fatto qualcosa con il Picture Indicator: con il Picture Ring non ho trovato un modo. Se le immagini sono grosse il VI diventa scattoso rispetto all'uso di un Picture Ring. ---------------------------------------- AUTORE: 838 DATA :20/12/2007 - 13:52:35 ---------------------------------------- ora lo provo, grazie il mio uso è quello di personalizzare eventuali icone sul vi ciao ---------------------------------------- AUTORE: 838 DATA :20/12/2007 - 13:55:55 ---------------------------------------- \":o\" dovrei gestire circa 200 icone a video, di 10 gruppi diversi, se dovessi fare una cosa del genere diventa pazzesco devono segnalarmi pure lo stato 1/0 di oggetti in campo \":|\" mi sa che dovrò crearle nel vi e tenermele così ---------------------------------------- AUTORE: 301 DATA :24/07/2008 - 21:30:15 ---------------------------------------- Ciao, ti vorrei chiedere se quello che interessa a te è selezionare direttamente una immagine dal ring o se ti va bene anche variare l'immagine selezionando un elemento dal ring..... ---------------------------------------- ================================================================================ Subvi e terminals ================================================================================ AUTORE: 1882 DATA :20/12/2007 - 15:41:30 ---------------------------------------- Ciao a tutti! C'è un problema che ho da molto tempo e ho pensato che è ora di cercare una soluzione: mi capita spesso di creare delle subvi e di accorgermi di dover aggiungere dei terminali in ingresso o in uscita. Per farlo, dovrei creare una subvi che comprenda output ed input mancanti all'interno di quella già creata e poi sostituirle. Ma quando si usano local variables, ad esempio, il codice si incasina! In definitiva, quindi, [b:2lu2g22x]c'è un benedetto modo per aggiungere dei terminals a delle subvi[/b:2lu2g22x] partendo da dei controls o da degli indicators??? Grazie a tutti mgiaff ---------------------------------------- AUTORE: 645 DATA :20/12/2007 - 16:14:15 ---------------------------------------- Se apri il SubVI e aggiungi i terminali che ti servono, poi torni nel VI principale e agganci i nuovi terminali creati. Non comporta confusione particolare di solito... ---------------------------------------- AUTORE: 1882 DATA :20/12/2007 - 17:47:31 ---------------------------------------- Ma il fatto è che non so come crearli i nuovi terminali! Per le mie conoscenze attuali, l'unica per passare i dati dalla Subvi alla Vi che la contiene sarebbe una global... Ma non mi sembra proprio il caso... ---------------------------------------- AUTORE: 487 DATA :21/12/2007 - 07:30:57 ---------------------------------------- Ciao mgiaff - vai sull'icona del tuo subvi - tasto destro del mouse --> show connector - tasto destro del mouse --> add terminal (oppure scegli tra i patterns) ---------------------------------------- ================================================================================ aiuto please... ================================================================================ AUTORE: 2316 DATA :20/12/2007 - 16:49:59 ---------------------------------------- \":D\" ciao a tutti! io ho realizzato un VI di un convertitore ADC ad arrontondamento ke metto come allegato. vi spiego brevemente il funzionamento: una volta selezionato il valore d tensione in ingresso, questa viene comparata con l'uscita del DAC il cui ingresso nn è altro ke l'uscita (scusate il gioco d parole) di un contatore binario. praticamente sino a ke la tensione in uscita dal DAC è minore d quella in ingresso, l'ADC genera una rampa per poi azzerarsi nel caso opposto. nn so se sn stata molto chiara. nel VI allegato sono presenti anke i due subvi relativi al contatore (nel quale è possibile scegliere la frequenza d campionamento) e al DAC (reso ad arrotondamento tramite un semplice calcolo). il mio problema è che vorrei far visualizzare un messaggio d errore nel caso in cui si seleziona un valore d tensione in ingresso superiore a quello massimo consentito. cm faccio? qualcuno potrebbe gentilmente aiutarmi? grazie mille! e scusate per l'intervento troppo lungo! \":D\" ---------------------------------------- AUTORE: 2316 DATA :20/12/2007 - 16:58:42 ---------------------------------------- un'altra cosa... nel VI ke ho allegato nn badate alla case structure perchè si tratta di un mio tentativo \":wink:\" in ogni caso vi allego anche i VI relativi al DAC, al Contatore e al flip flop T ---------------------------------------- ================================================================================ coordinate del contorno ================================================================================ AUTORE: 2250 DATA :20/12/2007 - 19:08:15 ---------------------------------------- ciao mi servirebbe sapere se c'è un modo per conoscere le coordinate del contorno di un oggetto non mi basta sapere il valore del contorno, mi serve proprio sapere tutti i valori di x e y ---------------------------------------- AUTORE: 838 DATA :21/12/2007 - 07:41:45 ---------------------------------------- proprety node, position quello ti da l'xy in alto a sx, poi sempre con proprety hai l'altezza e la larghezza e sai quanto è grande l'oggetto e fai due conti :lol ---------------------------------------- AUTORE: 2250 DATA :21/12/2007 - 08:43:06 ---------------------------------------- non basta quello che devo fare è contare i pixel su di una linea, coordinate y e poi elevarli al quadrato le alternative sarebbero - conosco tutto le coordinate del contorno e da qui mi ricavo la lunghezza sottraendo i lato - conosco tutte le coordinate dei pixel che compongono l'immagine e da qu contando le volte che ho la stessa coordinata y posso conoscere il valore della linea in pixel - dalla luminosità, ho solo 2 colori alla fine, ricavo il numero d pixel su una linea se sapete come si fa sarebbe di grande aiuti ho provato un sistema simile al tuo ma non andava bene ---------------------------------------- ================================================================================ Byte to Binary Format ================================================================================ AUTORE: 2328 DATA :21/12/2007 - 11:04:22 ---------------------------------------- Salve a tutti...ho bisogno di convertire 4 Byte in un numero binario ma non saprei proprio che funzione utilizzare o come potri fare...qualcunop di voi può darmi una mano? ---------------------------------------- AUTORE: 2328 DATA :21/12/2007 - 11:13:08 ---------------------------------------- Scusate questi byte li dovrei trasformare in float....Grazie ---------------------------------------- AUTORE: 680 DATA :21/12/2007 - 12:17:02 ---------------------------------------- come li hai questi 4 byte? in formato numerici, come booleani.... ---------------------------------------- AUTORE: 2328 DATA :21/12/2007 - 15:41:27 ---------------------------------------- li ho in un formato no leggibile quindi non so che formato siano...so solo che si leggono quadratini e qualche numero... ---------------------------------------- AUTORE: 680 DATA :21/12/2007 - 18:18:16 ---------------------------------------- riesci a postare un esempio dei 4 byte? ---------------------------------------- AUTORE: 2328 DATA :27/12/2007 - 08:58:27 ---------------------------------------- Linux ti ringrazio della risposta...in allegato t aggiungo i byte che io dovrei trasformare..si tratta di un pacchetto udp che devve essere diviso nel seguente modo: 1- i primi 4 byte fanno parte dell'indice + 1 byte non utilizzati; 2- in seguito i byte rimanenti vengono divisi in gruppi di 4 byte. Questi gruppi di 4 Byte li devo trasfomare. ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 02:52:08 ---------------------------------------- Secondo me potrebbe essere come in allegato. ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 02:58:11 ---------------------------------------- Dimenticavo: -ho presuposto che i byte siano trasmessi "lsb first" o "big endian", cioè, il byte meno significativo per primo. Se l'ordine fosse inverso, basta scambiare i collegamenti dei 3 convertitori all'interno del ciclo for. -se serve avere il numero in un'altra rappresentazione (dbl, sgl, ecc.) ovviamente baste inserire un "cast", anche dopo l'uscita dal ciclo. ---------------------------------------- AUTORE: 2328 DATA :28/12/2007 - 07:59:15 ---------------------------------------- Ma questo converter deve essere applicato sull' intero pacchetto che arriva dalla porta udp o singolarmente per ciascun gruppo da 4 Byte? Grazie per l'aiuto.... ---------------------------------------- AUTORE: 2328 DATA :28/12/2007 - 09:31:29 ---------------------------------------- Gyg ti ringrazio per il programmino ma ci sono delle piccole modifiche da fare perchè mi sono dimenticato di mettere alcuni punti....del pacchetto in allegato sopra i primi 5 Byte sono da buttare via perchè non servono a nulla e in seguito vengono fatti tutti gruppi da 4 Byte di cui il primo è un'intero e tutti gli altri sono float...mi potresti ancora una volta una mano....ti ringrazio.... ---------------------------------------- AUTORE: 2328 DATA :28/12/2007 - 09:33:51 ---------------------------------------- La struttura del pacchetto è la seguente perchè sicuramente precedentemente mi sono esposto male: 5 di header (da buttare) 4 (int) indice del primo pacchetto 4 (float) dato(1) 4 (float) dato(2) 4 (float) dato(3) 4 (float) dato(4) 4 (float) dato(5) 4 (float) dato(6) 4 (float) dato(7) 4 (float) dato(8) ------------ 41 byte Grazie... ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 14:57:37 ---------------------------------------- In questo caso la soluzione non è tanto ovvia, ma non è complicata. Presumo, naturalmente, che i formati del pacchetto che ricevi siano secondo gli standard IEEE. Guarda l'immagine allegata e leggi [url=http://forums.ni.com/ni/board/message?board.id=170&message.id=195115&requireLogin=False:3bhyl36m]qui[/url:3bhyl36m]. ---------------------------------------- AUTORE: 2328 DATA :28/12/2007 - 15:11:23 ---------------------------------------- ti ringrazio gyg ora gli do subito una controllata... ---------------------------------------- ================================================================================ Comunicazione remota front panel ================================================================================ AUTORE: 812 DATA :21/12/2007 - 11:22:41 ---------------------------------------- Salve a tutti!! Avrei un problema da proporre, magari è anche una stupidaggine ma proprio non trovo una soluzione! Ho un VI su un PC che esegue certe misure e controlli adesso mi servirebbe poter visualizzare e comandare quel VI da un altro computer posto in un altro laboratorio con un altro VI, ovviamente senza utilizzare le funzioni per web. ---------------------------------------- AUTORE: 680 DATA :21/12/2007 - 12:15:25 ---------------------------------------- prova a vedere gli esempi di LV sui datasocket... ---------------------------------------- ================================================================================ Labview 8 -> labview 7 ================================================================================ AUTORE: 2288 DATA :21/12/2007 - 12:59:32 ---------------------------------------- Come si fa a convertire un labview 8 in labview 7? Non cè un esporta in labview 7? Grazie mir ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 02:54:10 ---------------------------------------- Da ogni versione si può salvare un vi soltanto nella versione immediatamente precedente, qunidi da 8.0 si può salvare solo in 7.1. ---------------------------------------- ================================================================================ Array globale ================================================================================ AUTORE: 1348 DATA :21/12/2007 - 16:13:36 ---------------------------------------- Salve a tutti! Ho un problema riguardo all'utilizzo di un array globale. In pratica ho creato un array di cluster. L'array è di 6 elementi ed al suo interno contiene 6 elementi misti (boolean,double,integer..). Da un vi leggo un file *.ini e dovrei scrivere i valori letti da quest'ultimo nelle variabili globali. Quindi [section1] indice 1 scrivo le keys, [section2] indice 2 e scrivo le keys, ecc. Il problema è come indicizzo la varibile globale? \":oops:\" \":oops:\" ---------------------------------------- AUTORE: 129 DATA :23/12/2007 - 20:40:51 ---------------------------------------- Con un for loop, in pratica devi inserire lò'elemento di lettura del file ini in for loop che indicizzano appunto l'array. ---------------------------------------- AUTORE: 1348 DATA :24/12/2007 - 17:32:31 ---------------------------------------- Eh ma non devo collegare la [i] all'array per indicizzarlo? perchè io li ci devo scrivere... Naturalmente la variabile globale non ha il collegamento per l'indice... ---------------------------------------- AUTORE: 645 DATA :24/12/2007 - 20:44:23 ---------------------------------------- Puoi fare una variabile globale fatta di tanti controlli anzichè di un array... Poi ne richiami uno alla volta, quello da modificare... sempre che questa soluzione sia compatibile con quello che devi fare... Altrimenti devi creare una specie di array temporaneo nel quale memorizzi i valori letti e poi passi tutto l'array alla variabile globale sostituendo, in pratica, l'array memorizzato precedentemente. ---------------------------------------- AUTORE: 129 DATA :25/12/2007 - 08:26:42 ---------------------------------------- Se colleghi un array di n elementi al bordo di un for loop, lo autoindicizzi automaticamente e ti scansiona tutti gli n elementi del tuo array. ---------------------------------------- ================================================================================ Installare librerie esterne ================================================================================ AUTORE: 2331 DATA :23/12/2007 - 14:08:16 ---------------------------------------- Gentili utenti, sapete come istallare correttamente una libreria esterna? In particolare, dispongo di un file di tipo .lib fornitomi dalla caen. Grazie ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 03:09:50 ---------------------------------------- Non mi risulta che si possano usare libreria statiche con LabView. Dovresti avere libreria dinamica (una DLL, appunto estensione .dll) che si possa utilizzare da LabView (non tutte le DLL si possono usare da LabView, leggi [url=http://www.ilvg.it/forum/viewtopic.php?p=16013#16013:2e21z46v]qui[/url:2e21z46v]). ---------------------------------------- ================================================================================ Libreria instr.lib/niTClk ================================================================================ AUTORE: 2330 DATA :23/12/2007 - 23:17:22 ---------------------------------------- Salve a tutti, ho bisogno di un grosso aiuto... Devo realizzare con LabVIEW 8.0 un oscilloscopio digitale ed essendo alle prime armi con questo programma ho cercato e trovato sulla Rete alcuni esempi di oscilloscopio, ma c'è un problema...la maggior parte dei VI non funziona perchè mi manca la seguente libreria di LabVIEW: instr.lib/niTClk qualcuno sa dove posso trovarla? Spero che qualcuno possa aiutarmi, è molto importante! Ciao... ---------------------------------------- ================================================================================ Problema con Eval Formula Node.vi ================================================================================ AUTORE: 2332 DATA :28/12/2007 - 13:26:32 ---------------------------------------- Ho sviluppato un VI in labVIEW 7.1 che utilizza Eval Formula Node.vi e che, nell'ambiente di sviluppo, funziona regolarmente. Una volta compilato con l'application builder, nell'esecuzione mi prospetta questa serie di finestre di errore: 1) An error occurred loading VI 'Cosine Integral.vi'. LabVIEW load errror code 21: An external subroutin required for execution could not be found 2) An error occurred loading VI 'Sine Integral.vi'. LabVIEW load errror code 21: An external subroutin required for execution could not be found 3) An error occurred loading VI '(Incomplete) Gamma Function.vi'. LabVIEW load errror code 21: An external subroutin required for execution could not be found 4) Missing subVI Cosine Integral.vi in VI Three Register Calculation.VI. Missing subVI Sine Integral.vi in VI Three Register Calculation.VI. Missing subVI (Incomplete) Gamma Function.vi in VI Three Register Calculation.VI. L'eseguibile si apre con la freccina del Run in errrore nonostante l'esistenza dei vari subVI richiamati dall'applicativo. Qualcuno sa aiutarmi ???? Grazie \":idea:\" [/img] ---------------------------------------- AUTORE: 645 DATA :28/12/2007 - 14:46:40 ---------------------------------------- Anche cercando sul sito della National ( www.ni.com ) non ho trovato nulla... credo che ti convenga chiedere direttamente alla National (dal sito puoi inviare una mail per la richiesta di supporto) ed eventualmente postare la soluzione. Penso che il problema non riguardi i subVI ma i primi VI della lista che probabilmente sono usati dal nodo Eval Formula e dei quali vengono persi i riferimenti durante la creazione dell'eseguibile. ---------------------------------------- AUTORE: 384 DATA :28/12/2007 - 15:20:17 ---------------------------------------- Prova a leggere [url=http://digital.ni.com/public.nsf/allkb/C8A5B532E94FED73862564E5000D3EA9:jjrwezad]qui[/url:jjrwezad]. ---------------------------------------- ================================================================================ aiuto!! ================================================================================ AUTORE: 1637 DATA :30/12/2007 - 09:35:07 ---------------------------------------- ciao a tutti, e buon anno che verrà, vorrei acquisire da 2 schede non NI, dei segnali analogici via seriale con protocollo modbus, ad ogni canale/registro è associata una grandezza, e di ogni grandezza vorrei calcolarne la media, il vi che calcola la media usa uno shift register in un ciclo while, ma poichè la seriale è una sola e le 2 schede hanno indirizzi modbus differenti come posso procedere?? grazie a tutti per l'aiuto ---------------------------------------- AUTORE: 645 DATA :30/12/2007 - 10:08:32 ---------------------------------------- Scusa la domanda: tu hai le due schede agganciate alla stessa seriale contemporaneamente? ---------------------------------------- AUTORE: 1637 DATA :30/12/2007 - 15:12:23 ---------------------------------------- le due schede sono agganciate sulla stessa seriale per mezzo di un convertitore 485/232 ---------------------------------------- AUTORE: 384 DATA :31/12/2007 - 03:27:59 ---------------------------------------- Cerca "modbus" nel forum e sul [url=http://ni.com:gc7c7zrc]sito NI[/url:gc7c7zrc]. Sul forum ci sono [url=http://www.ilvg.it/gsearch.html?cx=007266463114908589647%3Arvkpqmatq-q&cof=FORID%3A11&q=modbus&sa=Cerca#1321:gc7c7zrc]diversi topici[/url:gc7c7zrc] sul tema con dei [url=http://sine.ni.com/nips/cds/view/p/lang/en/nid/201711:gc7c7zrc]link[/url:gc7c7zrc] che troverai anche sul sito NI.   ---------------------------------------- ================================================================================ contatore binario ================================================================================ AUTORE: 2316 DATA :30/12/2007 - 23:23:13 ---------------------------------------- salve a tutti! innanzitutto tanti tanti auguri passati di buon Natale e tanti auguri per ill nuovo anno. detto questo passo a parlare del mio problema. io ho realizzato un VI relativo ad un contatore binario ad 8 bit; ora vorrei cercare d realizzarlo in modo tale da poter scegliere il numero d bit; secondo voi con un ciclo for ci riuscirei? voi cm lo realizzareste? grazie mille a tutti coloro che risponderanno...vi allego il VI da me realizzato... ---------------------------------------- AUTORE: 384 DATA :31/12/2007 - 03:19:00 ---------------------------------------- Hai realizzato il contattore in questo modo - cioè, un'implementazione hardwaristica - per un motivo specifico? \"8)\" Non è evidente, ma si può realizzare il contattore con un numero variabile di bits usando un ciclo for. Ecco alcune dritte: -Ti invito a osservare la zona dei flip-flop per trovare il "modulo" da replicare (cioè inserire nel ciclo for). -Il minimo sono 2 bits, non cambiando la struttura base del tuo vi iniziale. -Ovviamente il display non può essere fatto da indicatori separati - pensa al tipo di dato che per forza uscirà dal ciclo for. Allego il vi che lo fa. Ho aggiunto anche un minimo di interfaccia per dinamicizzare un pò il tutto. Ora il trucco \":wink:\" : per evitare di darti(vi) tutta la pappa già fatta e quindi far si che non impareresti(e) nulla, il vi è zippato con password. Posterò la password fra qualche giorno se dimostrerai di averci provato almeno un pò. \":twisted:\"   ---------------------------------------- AUTORE: 2316 DATA :01/01/2008 - 22:04:52 ---------------------------------------- ciao... innanzitutto grazie per la risposta... studio ingegneria e sto facendo tirocinio... mi è stato chiesto di realizzare un VI relativo ad un convertitore ADC a rampa ad arrotondamento e quindi mi è stato necessario realizzare prima alcuni sub VI tra cui anche quello relativo al contatore binario. ho provato a realizzare il VI con un ciclo for ma il mio problema era proprio l'uscita di tale ciclo.. dato che sono ancora molto inesperta con labview ho pensato d postare il mio problema proprio qui. forse quello ke sto per scrivere ti potrà sembrare banale, per cui perdona la mia ignoranza: nel modo in cui avevo realizzato il ciclo for, avevo un'unica uscita mentre a me ne servono N proprio pari al numero di bit, perchè poi queste uscite dovranno essere gli ingressi di un DAC. in effetti poi con il DAC mi ritrovo ad avere lo stesso problema, perchè è anch'esso realizzato ad 8 bit; cambiando però il num d bit del contatore automaticamente deve cambiare quello del DAC per cui dovrei poi trovare un modo per realizzare anche in questo caso un cilo for. ----------------------------------------