02-03-2018 07:29 PM - edited 02-03-2018 07:29 PM
Xin chào tất cả các bạn.
Mình vừa mới làm quen với LabView và có làm một số bài tập nho nhỏ.
Bài tập của mình ở đây là viết chương trình chạy ra số bất kì và đợi một khoảng thời gian t để ra số thứ 2, đợi thời gian t ra số thứ 3 ,... (mình có thể control bao nhiêu số mình muốn). Và thể hiện các giá trị trên một đồ thị và sau đó ghi giá trị vào file.
Thắc mắc 1. Kết quả là mình thấy thời gian không đúng như mình muốn. Đúng ra là giá trị ban đầu là t0=0s, đợi khoảng 1s thì t1 =1s, t2=2,t3=3s,....Nhưng giá trị ra rất ngẫu nhiên. Mình không hiểu.
Thắc mắc 2. Và mình chọn create file nhưng sao cứ phải open một file có sẵn.
Thắc mắc 3. Các bạn cho mình hỏi là làm sao để đồ thị thể hiện giá trị thay đổi khi đang chạy chương trình, chứ không phải chạy xong rồi mới có đồ thị.
Mình có đính kèm bài tập của mình để các bạn xem.
Mình cảm ơn các bạn rất nhiều. Chúc các bạn cuối tuần vui vẻ.
Solved! Go to Solution.
02-03-2018 07:54 PM
Trả lời vấn đề khó nhất trước, cái số 3:
Gợi ý là bạn sử dụng thanh dịch. Nguyên tắc là bạn sẽ tạo 1 mảng. Tại t0 có 1 giá trị sẽ đc đi vào thanh dịch rồi đi vào mảng, t1...t2 cũng như vậy. Trình bày hơi khó, để tối mình sẽ up ví dụ cụ thể cho bạn cả 3 vấn đề trên.
02-03-2018 10:02 PM
Mình cảm ơn bạn rất nhiều. Bạn có thể dùng tiếng Anh cũng được, tại mình cũng chưa hiểu thanh dịch là gì.
02-04-2018 12:36 AM
Mình gửi bạn ví dụ có hình ảnh và file .vi đây. Ví dụ này chắc đủ 3 vấn đề bạn cần. Tự tìm hiểu, có gì không hiểu thì hỏi thêm.
Thanh dịch là shift register.
Trả lời ý 2: bạn có thể tạo sẵn đường dẫn cho file cần lưu dữ liệu thu thập. Có rất nhiều cách để lưu từ dạng txt, csv hay thậm chí là word, pdf:)
02-04-2018 03:43 AM
Woa. Cảm ơn bạn rất nhiều. Để mình tìm hiểu thêm. Có gì không rõ mình xin được hỏi tiếp.
Thanks
02-04-2018 04:55 AM
Mình nghĩ là cái đồng hồ bạn đặt là 1000ms, có nghĩa là sau mỗi 1s là có một giá trị mới xuất hiện trên amplitude. Trên trục x, thời gian sẽ là 0s, 1s, 2s, 3s, 4s,....
Như vậy, mình muốn sau 2s hoặc sau một t(s) nào đó sẽ xuất hiện một giá trị mới trên amplitude. Ví dụ mình muốn sau 2s, thì mình đặt giá trị cho đồng hồ là 2000ms, và mình sẽ nghĩ rằng trên trục thời gian sẽ có 0s, 2s, 4s, 6s,... và trên file giá trị cũng như vậy. Tuy nhiên, trên trục thời gian vẫn là 0s, 1s, 2s, 3s, .....Có nghĩa là mình muốn trục thời gian là thời gian từ lúc bắt đầu cho đến khi xuất hiện một số mới trên trục amplitude. Có lẽ phải dùng một shift register ở đây nữa?
Hy vọng thắc mắc của mình không ngớ ngẩn.
02-04-2018 06:26 AM
Không phải tạo thêm thanh ghi dịch nữa.
Đơn giản thôi, trong hàm add number to array ấy, có 2 đầu input, 2 đầu này đều đc nối đến i. Một input là giá trị số cần add vào mảng, 1 input và vị trí add số trong mảng. Vị trí add số thì vẫn nối với i, còn đầu input giá trị số add vào mảng thì tách ra, lấy i nhân 2 là ok.
02-04-2018 06:55 AM
Yeah, mình đã làm được. Cảm ơn bạn rất nhiều