Ví dụ 1: Cấu trúc trường hợp dựa trên Boolean Control
Trong cuộc sống có một số trường hợp như sau: Tắt đèn bằng cách đưa công tắc (switch) về vị trí OFF và bật đèn bằng cách đưa công tắc về vị trí ON. Như vậy dựa vào vị trí công tắc mà hệ thống điện sẽ đóng hay ngắt điện tới bóng đèn.
Việc chuyển công tắc (bởi tay người điều khiển) là tín hiệu đầu vào để hệ thống điện sinh ra sự ngắt hay cấp điện tới bóng đèn.
Ứng dụng viết chương trình tắt bật một số bóng đèn theo yêu cầu sau: Có ba bóng đèn, tùy vào vị trí công tắc ON hay OFF thì cả ba bóng đèn sẽ tắt hoặc bật.
Thực hiện trong LabVIEW như sau:
- Lấy case structure bằng cách vào BD>Express>Execution> Case structure như hình vẽ 5.1.
- Lấy nút nhấn (công tắc) bằng cách vào FP> Express> Bottom>
Chọn kiểm công tắc gặt lên-xuống - Nối nút nhấn vào case selector.
- Quan sát thấy hai cửa sổ True/False của Case. Tùy vào vị trí công tắc đang ON hay OFF thì cấu trúc sẽ thực thi những hàm đặt trong cửa sổ True hay False tương ứng.
- Thêm vòng lặp vào chương trình để có được chương trình như hình 5.3.
Hình 5.2. Vị trí của hàm cấu trúc case
Hình ảnh FP và BD của chương trình bật/tắt ba bóng đèn như hình 5.3, xem file mẫu Case - boolean 1.vi trong đĩa CD/Bài 5. Trong ví dụ Case - boolean 1.vi, tùy vào giá trị của nút nhất đang gạt lên hay xuống thì chương trình trong cửa sổ True hay False sẽ được thực hiện.
Hình 5.3. FP và BD của cấu trúc case
Tham khảo thêm ví dụ Case - boolean 2.vi trong thư mục bài 5 trong đĩa CD để tham khảo thêm ví dụ về dạng cấu trúc case dựa trên kiểu Boolean này. Trong ví dụ Case
Hình 5.4. Ví dụ 2 của Case dạng boolean
Ví dụ 2: Cấu trúc trường hợp dựa trên Numeric Control
Ví dụ: Viết chương trình hiển thị các lời chào khác nhau tùy vào các giá trị nhập vào khác nhau. Đây là cấu trúc trường hợp dựa trên Numeric number (số). Giá trị nhập vào đó chính là Case selector. Số này là cơ sở (giá trị đầu vào) để cấu trúc case biết cần thực thi cửa sổ lệnh nào? Thực hiện một ví dụ về case dựa trên numeric control trong LabVIEW như sau:
- Save as ví dụ trên thành ví dụ mới.
- Chọn lên số 10 và hàm so sánh lớn hơn, nhấn Delete để xóa đi các đối tượng này.
Hình 5.5. Xóa các đối tượng
- Nhấn Ctrl+B để xóa đi các đường nối bị vỡ.
- Nối x vào case selector và quan sát thấy hai giá trị True/False sẽ được tự động chuyển thành hai giá trị 0 và 1. Đây chính là một case selector dạng numeric. Bây giờ, tùy vào giá trị của x là 0 hay 1 thì lệnh trong cửa sổ 0 và sửa 1 được thực hiện.
Hình 5.6. Hai giá trị 0,1 sẽ tự động hiện ra khi nối x vào case selector Khác với case dạng Boolean thì case dạng số cho phép người dùng tạo ra nhiều trường hợp. Ta hãy tạo ra một trường hợp x=2 nữa như sau:
- Chọn RC lên khung của cấu trúc Case (Được tô xanh).
- Chọn Add Case After
- Tự động có 1 case mang số 2 được tạo ra.
Hình 5.7. Tạo thêm một case sau case 1
Hình 5.8. Case số 2 được tạo ra
- Tạo string constant “Chao anh Bac va anh Nam” trong case số 2 vừa tạo.
Hình 5.9. Tạo string constant - Nhập string vào.
- Như vậy, giờ chạy chương trình, indicator sẽ hiện các lời chào khác nhau tùy vào các giá trị x=0,1 hoặc 2 khác nhau. Tuy nhiên bạn cần phải tạo 1 Boolean constant nữa thì chương trình mới chạy được.
Chương trình hoàn thiện như hình 5.10. Xem file CD>Bai 5> Case - numeric 2.vi
Hình 5.10. Chương trình hoàn thiện có 3 giá trị của x tương ứng 3 lời chào khác nhau
Ví dụ 3: Cấu trúc trường hợp dựa trên String Control Cấu trúc này dựa trên một String Control. Từ String Control này mà các cửa sổ case được thực thi. Thực hiện ví dụ sau:
- Lưu chế độ Save as file ở trên thành Case-string.vi - Xóa Numeric control X
- Tạo một String control bằng cách vào FP> Express> Text Control>
String Control> Lấy string Control ra.
Hình 5.11. Lấy String Control ở FP Ta được chương trình như hình 5.12
Hình 5.12. Kết quả sau khi nối String control
Ngay sau khi kết nối String Control và cấu trúc Case ta sẽ thấy có các dấu ngoặc kép hai bên các số 0, 1, 2. Điều này có nghĩa hiện tại Case Structure xem các giá trị này là chữ chứ không phải số. Ta có thể thay chữ “0” thành “loi chao 1”, giá trị “1” thành “loi chao 2”, giá trị “2”
thành “loi chao 3”. Chương trình sẽ trở thành như hình 5.13.
Hình 5.13. Chương trình sau khi đổi các chữ trong Case
- Chạy chương trình, ta sẽ thấy, giờ nếu ta nhập chữ: loi chao 1 vào string control tại FP thì bên string indicator sẽ xuất hiện ra chữ:
Chao anh Bac.
Hình 5.14. Kết quả chương trình
Bạn có biết?
Bạn có thể sử dụng lệnh Selector để thay thế cho một Case dạng Boolean. Việc thay thế này giúp code của bạn gọn hơn. Hãy tự mình suy nghĩ xem cách thay thế này nhé. Nếu gặp khó khăn hãy gửi email tới supports@hocdelam.org để nhận được lời giải.