LabVIEW Vietnam

cancel
Showing results for 
Search instead for 
Did you mean: 

Serial port communication

Chào mọi người,

Em là người mới tiếp xúc với Labview, em có làm một bài tập nhỏ giao tiếp với cổng com. Bài tập yêu cầu gửi một chuỗi xuống cổng và đọc lại chuỗi đó. Trong ví dụ, em đã gửi xuống một chuỗi được rồi, nhưng khi đọc lên lại thì không có gì cả. Em đã debug bằng công cụ highlight execution thì thấy cái property node của cổng com báo rằng số lượng byte của cổng com lúc đó là 0 byte. Vì sao như vậy ah, mong mọi người giúp đỡ

Em có đính kèm project.

Message 1 of 8
(12,523 Views)

em dung loai micro controller gi vay NI-6008 ?

Message 2 of 8
(7,349 Views)

hic, nguyên nhân là em dùng cổng com ảo, và không nối hai chân tx và rx lại.

Message 3 of 8
(7,350 Views)

oh hieu roi em dung may vi tinh serial port voi labview !. Tx va Rx phai treo voi nhau thi moi doc duoc. em thu nhien cuu I2C bus di la vi tuong lai se sai no nhieu hon la serial port.

Message 4 of 8
(7,350 Views)

Chào Hungreohd

Bạn có thể tham khảo link sau đây về truyền thông nối tiếp và cách kiểm tra việc truyền nhận dữ liệu qua cổng COM nhé:

http://www.ni.com/white-paper/3450/en

https://decibel.ni.com/content/docs/DOC-2072

Message 5 of 8
(7,350 Views)

Cai nay chi dan cua Quang rat la dung .

Message 6 of 8
(7,350 Views)

em cảm ơn hai anh, em sẽ ngâm cứu nó và sẽ sớm đem thành quả lên đây để mọi người thảo luận

0 Kudos
Message 7 of 8
(7,350 Views)

Em đã làm được một vi giao tiếp com giữa labview và pic16f887. VI dùng để hiển thị nhiệt độ phòng từ cảm biến lm335 và đưa ra các cảnh báo cần thiết khi nhiệt độ quá nóng hoặc quá lạnh. Có hai vấn đề em đang thắc mắc

1. Khối Wait Until Next ms Multiple : khi em đặt khối này vào một vòng while loop, đầu vào em cài đặt là 10ms, nếu tất cả code trong vòng while loop cần thời gian thực hiện thì 25ms thì khối Wait Until Next ms Multiple phải chờ đến 30ms để vòng while loop chạy xong. Sau đó, máy tính đi làm chuyện khác và 10ms sau lại chạy đến thực hiện vòng while loop. Như vậy, vòng while loop sẽ phải cần đến 40ms để thực hiện 1 lần ?

2. Hai khối VISA Set I/O Buffer Size và VISA Clear trong cổng COM hoạt động như thế nào ? Em đọc phần help thì hiểu như thế này

     Đối với khối VISA Set I/O Buffer Size: Nó sẽ cài đặt bộ đệm truyền và nhận là bao nhiêu byte theo ý mình

     Đối với khối VISA Clear : Nó sẽ xóa dữ liệu trong bộ đệm truyền và nhận

Tuy nhiên, em đã kiểm tra bằng cách khi em đọc và gửi xong data xuống com của vi điều khiển rồi xóa ngay bộ đệm buffer thì dữ liệu trong bộ đệm vẫn còn. Hơn nữa, khi em đã set bộ đệm bằng 0 thì hàm write và read vẫn cứ chạy như thường, vậy ảnh hưởng của hai khối )VISA Set I/O Buffer Size và VISA Clear) này là sao ah ?

* Mục đích trong ứng dụng của em là đồng bộ được giữa labview và vi điều khiển. Ở vi điều khiển, cứ 10ms em gửi data lên một lần. Labview đọc xong, xử lý và xuất tín hiệu điều khiển. Sau đó, xóa ngay data vừa mới nhận đó để lần sau nhận được ngay data mới. Như vậy, trên labview em cũng lấy mẫu (thời gian chờ trong vòng while loop) là 10ms. Điều này có hợp lý không ah?

Message 8 of 8
(7,350 Views)