Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

task out

Buongiorno,

in un sistema di acquisizione dati, ho messo alcuni Create channel in parallelo, il cui task out entra nei Daqmx read successivi. 

Non so però dove fare convergere tutti i task out dei read. Se fosse uno solo lo metterei in ingresso nel task in del Clear task, appena fuoiri dal loop... ma quando sono due o più non è possibile (credo). Come dovrei fare?

Grazie mille a tutti, 

Davide

0 Kudos
Messaggio 1 di 8
6.135Visualizzazioni

Due alternative:

1. Usare un unico Create Channel con tutti i canali in ingresso che ti servono. I canali possono essere scelti interattivamente oppure puoi creare una stringa tipo "Dev1/Ai0÷2" se sono consecutivi oppure "Dev1/Ai0,Dev1/Ai3" nel caso opposto

2. Mettere i Create Channel in serie, il task out del primo nel task in del secondo e così via: se i canali non sono duplicati fra i vari create non hai errori in compilazione (però non posso provare se funziona se non con schede virtuali: a te la prova sul campo)

 

In ogni caso dovrai dopo usare l'opportuna istanza del Read considerando che usi più canali.

Puoi cercare negli esempi di acquisizione dei vi già pronti.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 2 di 8
6.132Visualizzazioni

Ciao e grazie,

ma non mi è chiaro: io ho read diversi , uno per ogni canale.. in alcuni casi si tratta di acquisizioni di temperature, in altri di segnali digitali ecc. Come posso mettere un unico read dopo i vari create channel in serie (soluzione 2) ?

Grazie

Davide

0 Kudos
Messaggio 3 di 8
6.130Visualizzazioni

Non puoi comunque mischiare fra loro misure analogiche e digitali, mentre puoi acquisire temperature, tensioni ecc ecc nello stesso task.

Per leggere i digitali devi creare un task diverso e sincronizzare i due task.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 4 di 8
6.127Visualizzazioni

Infatti.. poi come posso gestire i task out paralleli?? devo per forza  cablarli o li lascio float? è possibile usare più clear task?

Grazie

Davide

0 Kudos
Messaggio 5 di 8
6.125Visualizzazioni

Non avevo capito che il problema erano i segnali non omogenei. Ogni task deve aprirsi e chiudersi: metti un clear per ogni task che crei nel programma.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 6 di 8
6.123Visualizzazioni

Ok Roberto, grazie mille. Come vedi dagli allegati, ho messo un clear task per ogni channel/read. 

Adesso però devo gestire error in-out. Meglio la soluzione in serie, oppure il parallelo (come credo) ?

Grazie,

Davide

Scarica tutti
0 Kudos
Messaggio 7 di 8
6.121Visualizzazioni

Dunque, per prima cosa come puoi vedere aprendo il Clear.vi il task viene arrestato comunque che è la cosa più importante (=non è uno di quei vi che se c'è un errore in ingresso non fanno nulla).

Rimane da vedere cosa succede in caso di errore: il merge errors restituisce il primo errore trovato, mettendoli in serie ti viene segnalato l'ultimo.

In ogni caso se c'è un solo errore la segnalazione ce l'hai comunque, se ce n'è più d'uno ne hai solamente una: quale opzione preferisci? A te la scelta Smiley Strizza l'occhio



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 8 di 8
6.116Visualizzazioni