10-30-2013 01:23 PM
Halo.. salam kenal..
Saya ingin mensinkronisasi dua devais:
1. XSENS inertial measurement unit (XSens Technology)
2. NI-DAQ 6210 USB
Data dari XSENS ditransfer ke PC melalui bluetooth, sedangkan dari NI-DAQ melalui USB. Pengolahan data menggunakan LabView version 2010.
Untuk akuisisi data dari XSENS sudah ada program contoh yang bisa digunakan. Untuk dapat melakukan akuisisi dari NI-DAQ, saya menambahkan DAQ assistant pada vi tersebut, dalam loop yang sama dengan saat dimulainya akuisisi data dari XSENS. Saya juga menambahkan modul write to measurement file untuk merekam data akuisisi tersebut.
Screen shoot bagian yang saya ubah seperti pada attachment pic1.jpg dan file lengkapnya XSENS_dyn_v3.vi.
Saya menggunakan frekuensi sampling yang sama untuk kedua devais (100 Hz), namun untuk rentang waktu pengambilan data yang sama, jumlah data yang didapat dari kedua devais tidak sama. Setelah saya teliti dengan fungsi "highlight execution", terlihat bahwa kedua devais tidak melakukan pengambilan data pada saat yang bersamaan.
Saya mencoba untuk menambahkan timestamp pada data (pic2.jpg dan XSENS_dyn_v4.vi), dengan tujuan untuk melakukan sinkronisasi data setelah pengambilan data. Namun saat eksekusi, nampak frekuensi sampling menurun (terlihat dari timestamp data yang terekam) terlebih untuk data dari NI-DAQ. Di front panel terlihat bahwa output potentiometer tidak responsif.
Adakah yang dapat membantu saya membetulkannya? Bagaimanakah cara mensinkronisasi dengan benar?
Terimakasih.
Subaryani Soedirdjo
11-06-2013 10:22 AM
Halo Soedirdjo,
Salam kenal juga.
Dimohon master Suryo dan Yodha turun tangan nih, saya cuman nimbrung saja karena belum ada yang balas.
1. Disebut kan di atas, bapak sampling 100Hz? Tapi saya buka DAQ Assistant pada v3, sampling rate adalah 50Hz, sementara pada v4 sampling rate adalah 1,000Hz, apa memang disengaja untuk testing?
2. Saya perhatikan juga, bapak menggunakan sample to readnya hanya 1, ini jelas menjadi masalah kalau sampling rate 1,000Hz, artinya, loop harus beriterasi sebanyak 1000 kali dalam satu detik untuk meng-clearkan FIFO buffer pada USB6210 Analog Input anda.
3. Saya sedikit anti-DAQ Assistant, jadi mohon maaf, saya kurang suka kalau DAQ Assistant digunakan didalam loop. Ini sumber masalah terutama pada saat Timing menjadi critical. Coba gunakan DAQmx saja.
4. Secara teori, tidak mungkin bisa sinkron antara XSENS dengan USB 6210 karena keduanya mempunyai sampling clock sendiri-sendiri. Kalau mau aman, saran saya jangan paka Continuous Sampling, tapi pakai Finite Sampling.
Semoga membantu.
11-14-2013 03:43 AM
Halo Mas Soedirdjo,
Saya coba jawab pakai overview dulu ya, supaya lebih jelas strukturnya dibanding langsung ke detilnya. Pada dasarnya, kalau mau sinkronisasi antara dua DAQ, pilihannya bisa lewat hardware atau software.
Hardware Trigger
Kalau lewat hardware, trigger-nya bisa lebih ketat, namun device yang dari XSENS harus punya terminal untuk hardware triggering. Jika ada, Mas bisa kirim trigger signal dari USB-6210 lewat terminal PFI mana saja (misal pakai DAQmx Export Signal VI) ke trigger terminal di XSENS, sehingga mulainya bisa berbarengan saat USB-6210 di-trigger (pakai DAQmx Start Trigger VI). Jika sampling rate-nya diset sama, data yang diterima bisa dipasangkan.
Perlu dicatat bahwa USB-6210 memakai buffer, jadi jumlah data yang diambil di setiap iterasi loop harus bisa keep up dengan sampling rate bagaimana caranya sehingga buffer tidak overflow dan datanya hilang. Ini yang dimaksud Krisna di point 2 di atas. Detilnya bisa dibaca di DAQmx Help >> Continuous Acquisition and Generation with Finite Buffer Size.
Contoh VI untuk kalau pakai dua NI DAQ bisa ditemukan di LabVIEW >> Help >> Find Example >> Hardware Input and Output >> Synchronization >> Analog Input - Synchronization.VI.
Jika tidak ada terminalnya di XSENS, pilihannya tinggal software timing.
Software Trigger
Cara ini tidak sebagus hardware trigger, karena akan ada skew (dkl. delay) yang mungkin signifikan, namun lebih mudah implementasinya. Mas tinggal panggil Start Trigger dari XSENS (asumsi saya, nama VI-nya XM_StartProcess) dan DAQmx Start Task VI di saat yang bersamaan di LabVIEW. Seperti yang di hardware trigger, sampling rate-nya harus sama dan jangan lupa ada buffer di USB-6210 (saya tidah tahu yang dari XSENS).
Seperti yang bisa dilihat, kedua opsi di atas mengharuskan Mas memakai DAQmx API secara langsung, bukan dengan DAQ Assistant yang configurable. Contoh gampang memakainya untuk continuous acquisition bisa dicek di LabVIEW >> Help >> Find Example >> Hardware Input and Output >> Analog Input >> Voltage - Continuous Input.
Sangat direkomendasikan untuk baca konsep terkait di DAQmx Help: Start >> ... >> National Instruments >> NI-DAQ >> NI-DAQmx Help.
Semoga ini membantu.
Salam,
Yodha
NI Singapore
11-30-2013 04:00 AM
Terimakasih pencerahannya.
Salam,
Subaryani Soedirdjo