12-04-2014 09:57 PM
Cho mình hỏi: Tại sao khi tín hiệu boolean ở vòng while bên trái thay đổi giá trị mà giá trị biến cục bộ của nó ở vòng while bên tay phải lại khôn thay đổi giá trị vậy ạ. Mình đang cần gấp, rất mong nhận được sự giúp đỡ của mọi người. Cảm ơn mọi người đã quan tâm.
12-05-2014 01:17 AM
"Theo mình" khi nhìn hình bạn đưa thi biến trong vòng while bên phải sẽ thay đổi tính hiệu trước khi biến toàn cục được đọc giá trị bên vòng while bên trái. Mặc dù 2 vòng while này thực hiện song song (mình không thấy sự ràng buộc giữ 2 vòng while) tuy nhiên vì bạn không đồng bộ hoá thời gian của 2 vòng nên khi chạy hết 99.999% 2 vòng while sẽ có thời gian khác nhau..
VD: nếu vòng while bên trái thực hiện lệnh là 1s thì bên phải là 1.5s do đó nếu trong 2 s thì vòng bên trái đã thực hiện nhiều hơn vòng bên phải 1 lần lặp, dẫn tới tín hiện từ vòng trái nhận được khác với bên phải.
Để giải quyết vấn đề này bạn có thể làm theo các bước như mình :
1. bỏ 2 vòng while vòng cùng 1 "stack sequence" (vì bước thiết lập là trước tiên và bạn đâu muốn nó xảy ra cùng lúc với vòng lặp bên trái đúng không? )
2. sử dụng wait(ms) có cùng giá trị cho 2 vòng lập.
Chúc bạn thành công!
12-05-2014 06:37 AM
Bạn post toàn bộ code của bạn lên được không?
12-05-2014 08:42 AM
Code mình post lên cũng được, nhưng nó có phần cứng theo nên chắc các bạn phải tạo thiết bị ảo mới chạy được. Mình post lại trên topic nha bạn.
12-05-2014 10:31 AM
Bạn dùng phần cứng gì trong chương trình này? Dev1 là gì? Dev3 là gì?
12-05-2014 10:49 AM
À, mình kết nối với cái card NI 6014. Nhưng mà bạn ơi, cái vấn đề mình hỏi mình đã giải quyết được rồi. Bạn có thể cho mình hỏi làm cách nào để có thể khởi động lại vòng while khi mà đã dừng nó mà không cần chạy lại chương trình không bạn. Cảm ơn bạn rất nhiều.
12-05-2014 01:19 PM
Minh de nghi ban bo them vong while lon ben ngoai hoac ban nen sap xep lai trinh tu code cua ban
~Than~
12-06-2014 03:20 AM
Hi, cảm ơn bạn. Mình giải quyết được rồi, mình cho nó pause lại chứ không dừng.