Nhận bản tin Online
Bài viết mới
Công nghệ gỡ lỗi thông minh cho mọi nhà để phát triển LabVIEW
Điện-Điện tử

Công nghệ gỡ lỗi thông minh cho mọi nhà để phát triển LabVIEW 

Nếu bạn dùng phần mềm NI LabVIEW thường xuyên, có thể bạn có 1 hộp công cụ cá nhân và kỹ thuật cho khi phần mềm của bạn không thực hiện những gì bạn cần. 1 vài công cụ này là thông dụng như Probes và Breakpoints, trong khi những cái khác hầu như là những công cụ cá nhân mà bạn tạo ra hoặc cấu hình bởi chính mình.

Hình 1. Khắc phục lỗi sự cố chương trình đã không hoạt động (photo by Brian Searle)

Chúng tôi đã nói về JKI’s Certified LabVIEW Architects (CLAs) cũng như những người bạn của MINH trong khắp cộng đồng LabVIEW để học hỏi 1 vài thủ thuật bảo mật cao của họ cho việc nhận dạng, cách ly và cố định sự cố lỗi nhanh. Chúng tôi đưa ra 1 nhóm kỹ thuật viên gở rối chương trình thông minh cho mỗi nhà phát triển LabVIEW.

Sự khảo sát lại

Sự khảo sát là công cụ đơn giản nhất đầu và đầu tiên cho việc gỡ lỗi chương trình LabVIEW, nhưng chúng có sự tác động 1 cách nhầm lẫn. Với hầu hết kết quả không đặc biệt, bạn có thể bỏ đi sự xử lý lỗi ở xa trên 1 dây và làm tăng số lượng thông tin khi bạntheo dõi và nắm bắt vấn đề.
Retain Wire Values

Retain Wire Values là 1 tính năng thường xem xét của môi trường phát triển LabVIEW. Khi bạn cho phép Retain Wire Values cho 1 VI, LabVIEW tự động lưu trữ giá trị sau cùng của mỗi dây trên block diagram của VI. Sau đó, bạn có thể lướt qua bất kỳ dây nào và công cụ Probe sữ hiển thị 1 tooltip cho giá trị cuối cùng của dây đó ngay cả khi VI không còn chạy.

Hình 2. Retain Wire Values bật lên.


Tạo dựng Probes theo nhu cầu mà không cần viết bất kỹ mã chương trình nào


Bạn có thể dùng LabVIEW Custom Probes để tạo công cụ gỡ lỗi phức tạp và mạnh mẽ, nhưng bạn cũng có thể sử dụng chúng mà không cần viết mã chương trình gì. Chẳng hạn, bạn có thể làm 1 “history probe” dễ dàng để hiển thị giá trị trước đó của bất kì Retain wire bằng cách sử dụng Custom Probe >> Controls >> Waveform Chart. Điều này có thể giúp bạn phát hiện mô hình hoặc xu hướng trong dữ liệu bạn đang khảo sát mà không phải viết mã chương trình khảo sát đặc biệt.

Hình 3. Sử dụng Waveform Chart probe để hiển thị giá trị đã qua
của 1 numeric đơn giản.

Custom Probes từ LabVIEW Tools Network


Mở rộng toolbox bằng cách sử dụng lại những probes đã được tạo bởi người khác. SAPHIR cung cấp 1 bộ miễn phí Probes tùy chỉnh của LabVIEW trên LabVIEW Tools Network.
Chỉ cần tải về và cài đặt VI Package Manager (VIPM) Community Edition (miễn phí), tìm ViBox, và cài chúng trong 1 cú đúp chuột, nếu bạn sử dụng LabVIEW 2011, bạn cũng có thể có ViBox từ LabVIEW Tools Network bằng cách nhấp vào Find LabVIEW Add-ons… trong cửa sổ bắt đầu LabVIEW Getting Started window.

Hình 4. Sử dụng VIPM để cài đặt Probes của SAPHIR.


Ngưng tạm thời khi được gọi


Nhiều CLAs không biết tính năng này của LabVIEW. Một khi họ gặp nó, họ sẽ ngạc nhiên về khả năng mạnh mẽ mà nó có thể làm như thế nào.
Suspend When Called ngừng tạm thời việc thực thi chương trình và để cho các nhà phát triển làm bất kỳ hoặc tất cả những điều sau:
1. Thay đổi tùy thích giá trị control của VI mà nó chạy trước đó.
2. Thay đổi tùy thích giá trị indicator 1 VI trở lại đến việc gọi nó.
3. Chạy 1 VI mà không cần trở lại việc thực hiện gọi nó.
4. Bỏ qua việc thực thi 1 VI hoàn toàn và trở về gọi VI.

Hình 5. SubVI node setup: Suspend When Called

National Instruments có 1 tài liệu chỉ dẫn vắn tắt về Suspend When Called here, và Sixclear cung cấp an introductory video trên blog của họ, cách tốt nhất để quen với tính năng này, tuy nhiên hãy thử dùng nó bởi chính bạn.

Front Panel Controls và Indicators

Ben Zimmer của Enable Training and Consulting, Inc. giới thiệu 1 kỹ thuật cho FIRST (For Inspiration and Recognition of Science and Technology) những nhóm Robotics đối thủ, nhưng nó cũng hữu ích cho các nhà phát triển LabVIEW chuyên nghiệp.
Ben đề nghị thêm front panel controls hoặc indicators cho 1 VI nhưng không nối chúng với bộ kết nối của chúng. Những tính năng của controls và indicators như “debug” ngõ vào, ngõ ra mà bạn có thể thao tác bằng tay trong suốt quá trình kiểm tra. 
Thậm chí bạn có thể sử dụng những controls và indicators gỡ lỗi được tạo dựng trong ứng dụng, cũng như bạn tạo độ chắc chắn Application Builder không thoát khỏi front panel của VI.
Thực thi đồ họa

Khi tất cả đều bị lỗi, giống như 1 lỗi kỹ thuật phụ thuộc vào điều kiện ban đầu hoặc khi nó phá hủy LabVIEW, đôi lúc tất cả những gì bạn làm là vẽ lại code từng bước một khi đối mặt với loại vấn đề này, có vài cách để họa lại sự thực hiện trong LabVIEW.
Phần lớn được xây dựng trong Execution Highlighting của LabVIEW, hay được biết đến là “the light bulb.” Nếu Probes là công cụ đầu tiên của gỡ rối chương trình trong LabVIEW, thì light bulb là chương trình thứ 2. Có những công cụ tốt hơn cho các lỗi phụ thuộc thời gian hoặc phức tạp.

Hình 6. Có nhiều execution tracing hơn light bulb.


Phát hiện ổ đĩa hay bộ nhớ


Một cách đơn giản để bắt đầu việc thực thi phát hiện là ghi giá trị của 1 dây trong 1 trong các subVIs. Bạn có thể viết 1 VI đơn giản để log giá trị của 1 file, hay thậm chí tạo ra 1 Custom Probe để hiển thị giá trị lịch sử của dây. Thông thường, 1 dấu hiệu đơn giản như vậy đủ thông tin để dẫn bạn đến nguyên nhân của lỗi.
Desktop Execution Trace Toolkit

Nếu bạn đang gỡ rối chương trình cho 1 ứng dụng song song khá lớn, LabVIEW Desktop Execution Trace Toolkit là 1 công cụ mạnh của sự phân tích mã chương trình LabVIEW. Nó cung cấp 1 số lượng thông tin lớn về ứng dụng đang chạy của bạn, bao gồm sự phân phối và phân phối lại bộ nhớ chi tiết, ngay cả phiên bản, thông tin tùy chọn theo yêu cầu được phát hiện bởi mã chương trình của bạn, cũng nhấn mạnh toolkit đó thật sự có ích cho việc gỡ rối 1 ứng dụng bị lỗi vì nó chạy ngoài chương trình LabVIEW.

Hình 7. Perils của Manual Execution Tracing (tác phong Oliver Widder)

Hình 8. Bạn kiểm tra mã chương trình ở đâu?

Chương trình này tiến đến sự gỡ rối tốn nhiều thời gian hơn lúc đầu nhưng nó cung cấp 1 vài tiện ích:

1. unit test cung cấp khả năng phát hiện lỗi để làm rõ cách mà lỗi được tìm thấy và bạn đã cách li nó như thế nào.
2. Bạn hoặc những nhà phát triển khác có thể dễ dàng xác minh hoặc xác minh lại việc sửa lỗi của bạn ở bất kỳ thời điểm nào mà không cần nhớ chi tiết cách xóa sửa lỗi.
3. unit test có thể được thực thi 1 cách tự động với tất cả những kiểm nghiệm khác trong dự án của bạn vì thế lỗi đã từng xảy ra cũng sẽ được biết ngay lập tức.
Có 2 LabVIEW add-ons chính cho unit testing, và bạn có thể thực hiện loại TDD approach này với người khác. Xem JKI’s free VI Tester LabVIEW add-on, hoặc tham khảo Software Engineering in LabVIEW của Eli Kerry để biết về LabVIEW Unit Test Framework Toolkit được bao gồm trong NI Developer Suite không thêm phí.

Related posts

Để lại một bình luận

Required fields are marked *