2008-09-16 34 views
8

Chúng ta đều biết các cách kiểm tra các hệ thống OO khác nhau. Tuy nhiên, có vẻ như tôi sẽ làm một dự án mà tôi sẽ giao dịch với logic bậc thang PLC (đừng hỏi: /), và tôi đã tự hỏi nếu có một cách tốt để kiểm tra tính hợp lệ của hệ thống.Kiểm tra logic bậc thang

Cách duy nhất tôi thấy cho đến nay là xây dựng một bảng lớn với tất cả các trạng thái đã biết của hệ thống và trạng thái đầu ra nào tạo ra. Điều này sẽ làm cho đơn giản 'nếu đầu vào A bật, hãy bật đầu ra B trên' thùng. Tôi không nghĩ rằng điều này sẽ làm việc cho các công trình phức tạp hơn mặc dù.

Trả lời

4

Việc xác minh hệ thống "hợp lý" trong trường thiết kế vi mạch được gọi là "Xác minh thiết kế", là quá trình đảm bảo rằng hệ thống bạn thiết kế trong phần cứng (RTL) thực hiện chức năng mong muốn.

Ladder logic có thể được chuyển thành một trong những HDL hiện đại như Verilog .. chuyển đổi từng bậc thang

|---|R15|---+---|/R16|---------(R18)--------| 
|   | 
|---|R12|---+ 

để một biểu thức như

always @(*) R18 = !R16 && (R15 | R12); 

hoặc bạn có thể sử dụng một tuyên bố assign

assign R18 = R16 && (R15 | R12); 

rơle chốt

assign R18 = (set condition) || R18 && !(break condition); 

Sau đó, sử dụng trình mô phỏng Verilog miễn phí như Icarus để phát triển testbench và kiểm tra hệ thống của bạn. Hãy chắc chắn rằng bạn là những người thử nghiệm đưa ra mức độ phù hợp CODE tốt cho logic của bạn! Và nếu phần mềm chỉnh sửa bậc thang của bạn cung cấp cho bạn khả năng đặt tên phù hợp, hãy sử dụng chúng, thay vì Rnn.

(Lưu ý:. Trong Ladder Logic cho ước PLC, Rnn là dành cho rơle nội bộ, thời gian, Xnn là một đầu vào và Ynn là một đầu ra, như có thể nhanh chóng thu được từ một trong những hướng dẫn trực tuyến

Verilog sẽ là một ngôn ngữ dễ dàng hơn để phát triển kiểm tra và testbenches của bạn trong!

Nó có thể hữu ích cho chương trình trong một số chậm trễ đơn vị.

Xin lỗi, tôi chưa bao giờ nhìn cho logic bậc thang đến/từ dịch Verilog .. nhưng thang logic trong ngày của tôi chỉ được đưa vào máy tính để lập trình PLC - hầu hết hệ thống tiếp sức tôi sử dụng là Rơle REAL, có dây vào tủ !!

Chúc may mắn. jbd

Có một vài biên tập viên logic bậc thang (với simultors) cung cấp miễn phí .. đây là một trong đó chạy trên các cửa sổ được cho là:

http://cq.cx/ladder.pl

+0

Rất đẹp! Tôi sẽ sớm xem xét giả lập đó, hy vọng. –

0

Có một chương trình gọi là LogixPro trong đó có một mô phỏng IO cho logic bậc thang, bạn có thể thử điều đó.

1

Chúng tôi đã thử nghiệm các công cụ kiểm tra cho bộ điều khiển Logix của Rockwell Control. Hầu hết các công cụ kiểm tra ngôn ngữ thủ tục kiểm thử thực hiện phạm vi chi nhánh hoặc một số nội dung như vậy; bởi vì Relay Ladder Logic thường không phân nhánh, điều này không hoạt động tốt.

Những gì chúng tôi đã tạo mẫu là MC/DC (sửa đổi/điều kiện/phạm vi quyết định) cho mã RLL cho bộ điều khiển Rockwell. Điều này cho biết, đối với mỗi điều kiện trong trạng thái rung, điều kiện đó đã được kiểm tra là TRUE, được kiểm tra là FALSE hay không quan trọng, nếu có điều kiện kiểm soát đầu ra của quyết định trong các bậc thang (ít nhất là hành động được kiểm soát bởi quyết định) trong cả hai hướng đúng và sai dưới một số thử nghiệm.

Công việc này được thực hiện bằng công cụ phân tích và chuyển đổi chương trình mục đích chung được gọi là DMS được sử dụng để thiết lập mã RLL với logic bổ sung để thu thập dữ liệu cần thiết.

Bạn vẫn phải mã kiểm tra đơn vị. Cách dễ nhất để thực hiện điều đó là để có một PLC khác hoạt động như một sự thay thế cho phần cứng cơ khí mà bạn dự định kiểm soát, và chỉ cần viết một chương trình RLL khác để thực hiện chương trình đầu tiên.

0

Đôi khi trên các chương trình PLC nhỏ, một chương trình thử nghiệm (hoặc chương trình con, hoặc tệp ladder) được viết trong dự án, nó chỉ chạy khi dự án đang được mô phỏng. Tệp có một số logic đơn giản cho biết khi đầu ra được cấp nguồn, hãy bật đầu vào được liên kết với phản hồi. Sau đó, bạn có thể điều khiển PLC của mình thông qua bất kỳ HMI nào được kết nối với nó và thấy rằng mã hoạt động như mong đợi. Điều quan trọng là vô hiệu hóa hoặc xóa chương trình thử nghiệm khi phần mềm được tải xuống một trang web thực sự vì nó có thể làm những điều rất lạ trong thế giới thực.

Trên các dự án lớn hơn, mỗi thiết bị có chế độ mô phỏng tương tự một chút. http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

Điều này không giống như sử dụng khung kiểm tra cho ngôn ngữ OO, nhưng tôi chưa thực sự thấy bất kỳ phát triển thử nghiệm nào cho PLC, hoặc thậm chí nhiều thử nghiệm tự động.

Các vấn đề liên quan