From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
in data 04-07-2008 08:45 AM
in data 04-07-2008 08:53 AM
non so se con l'approccio che ho seguito nell'esempio si possano evitare dei conflitti nell'utilizzo della risorsa (seriale, disco rigido, ecc...) e quale approcci bisogna utilizzare per evitare tale tipo di conflitto.
Ciao, Alan.
in data 04-08-2008 04:29 AM
Sicuramente quando si accede da più parti alla stessa risorsa occorre gestire (o meglio: tendenzialmente evitare) la contemporaneità dell'uso della risorsa stessa, sia essa la seriale, una scheda di acquisizione, un file su disco o altro.
In questi casi si può creare una struttura generica che prevede l'uso di una coda su cui accodare le richieste alla risorsa e la creazione di un modulo che riceve dalla coda e gestisce la risorsa. Una struttura di questo genere si chiama producer/consumer e la trovi descritta in questo documento. Prova anche a leggere questo thread.
In ogni caso, strutture di questo genere devono essere ottimizzate al fine di evitare overhead nel consumer loop (che deve essere il più rapido possibile per poter servire tutti gli accessi efficientemente): in questo senso, ti sconsiglio di scrivere sul file con il Write to Spreadsheet che ogni volta apre e chiude il file. E' meglio invece aprire il file alla partenza del processo (ma prima che inizino le richieste di scrittura), scrivere i dati con vi specifici di sola scrittura (il Write to Spreadsheet alla fin fine usa il Write Text File) e chiudere il file una volta terminati tutti i processi che devono memorizzare dati.
in data 04-08-2008 04:32 AM
Gentilissimo Alan,
Per avere esempi di programmazione corretta in labview di I/O su file o su risorse seriali le consiglio di guardare
Help>>Find Example>>Fundamentals>>File Input and Output
Help>>Find Example>>Hardware input and Output>>Serial
Per quanto riguarda un corretto approccio alla programmazione le consiglio vivamente di scegliere fin da subito una buona architettura tipo State Machine
Una solida architettura di base aiuta enormemente nella programmazione e nello sviluppo della proprie applicazioni.
Cordiali Saluti
in data 04-08-2008 04:53 PM
per essere più precisi dovrei effettuare l'accesso di tipo [A] alla seriale con la frequenza di un 1hz e l'accesso di tipo [B], [C] e [D] con la frequenza di 10hz sullo stesso strumento. [B], [C] e [D] devono essere sequenziali, prima 1 volta [A] poi 10 volte la serie ( [B], [C], [D]) poi un'altra volta [A] e poi 10 volte ([B], [C], [D]) ecc... fino a quando non ho riempito il disco o decido io di spegnere.
Non ho idea come utilizzare le macchine sequenziali, non ce le hanno insegnate in corso e ho poco tempo, non so dove mettere le mani, tra l'altro mi mancano anche 2 esami e non so quando prepararli.
Ciao, Alan.
04-09-2008 01:53 AM - modificato 04-09-2008 01:54 AM
in data 05-29-2008 11:36 AM
Ciao.
la procedura che mi hai inviato tu non funziona.
mi succede che a volte lo strumento a volte mi legge 41 byte come dovrebbe fare dal primo write e dopo mi legge solo 23 byte e però, cosa più grave non mi legge le risposte dello strumento dentro il for. ti posto il programma con i sub vi.
in data 05-30-2008 02:43 PM
in data 05-30-2008 03:42 PM
in data 06-10-2008 12:53 PM
nonostante abbia apportato le modifiche consigliate e sapendo che il dispositivo gps può gestire scambi di messaggi fino a una frequenza di 10 hz non capisco perhè mi da solamente un pacchetto invece che tutti e tre. ho trovato che in certi punti error out era collegato con error in e resurce name con resurce name out ma anche dopo aver modificato mi da 18 byte del primo pacchetto invece che 41, 25/25 byte del secondo pacchetto e 0/15 byte del terzo pacchetto.
è possibile che i driver visa mi diano problemi. a proposito, utilizzo un dispositivo che mi rende disponibile una porta seriale da usb, con il programma di gestione proprietario della casa costruttrice del gps tutto funziona correttamente ed aggiorna molto intensamente i dati.
ciao,Alan.