06-30-2014 10:50 AM
Buonasera a tutti,
sto cercando di acquisire una sequenza di 8 bit tramite una scheda usb 6501 ad ingressi digitali.
I dati, inclusa data ed ora, devono essere scritti su una tabella di un database MS SQL server tramite l'oggetto DB tools insert data.
Vi allego il codice che utilizzo.
Il formato con cui gli 8 bit vengono memorizzati non è quello atteso: io vorrei semplicemente una sequenza di 8 0/1.
Grazie per i suggerimenti,
Davide
07-01-2014 08:56 AM
Ciao,
non ho ben capito, vorresti una sequenza di 8 bit che occupa quindi 1 Byte in memoria? Se così fosse questa non è la procedura giusta; LabVIEW alloca 8 bit per ogni valore booleano e 8 bit per ogni carattere in una stringa.
Questo documento ti chiarirà le idee:
http://zone.ni.com/reference/en-XX/help/371361J-01/lvconcepts/how_labview_stores_data_in_memory/
07-01-2014 09:30 AM
Grazie per il suggerimento. Ho letto il documento linkato ma non sono riuscito a trovare la soluzione.
Io acquisisco 8 bit da una scheda con input digitali, usando l'oggetto Daqmx read digital boolean.
Poi vorrei convertirli in una samplice sequenza di 1 e 0 e memorizzarli su un tabella di un database SQL.
Per la conversione uso l'oggetto boolean to (0,1) e poi il number to decimal string (come si può vedere dal codice che avevo allegato).
Per la memorizzazione uso l'oggetto Bundle e poi il DB tools insert data.
Quello che ottengo è:
2014-01-07 |
12:47:20 |
10000000 |
una sorta di riga di tabella formattata. io vorrei semplicemente data, ora, 10000000 (stringa di testo)
(stranamente ora che ho fatto il copia-incolla da sql al web browser appare molto più chiara!)
Grazie,
Davide B
07-02-2014 04:21 AM
Capisco cosa intendi. Il problema è che come elemento del cluster c'è un Array di stringhe, quindi effettivamente non è un solo elemento e viene quindi diviso sul database.
Ti allego un esempio che risolve il tutto concatenando tutti gli elementi dell'array in un'unica stringa.
Bye