2008-09-16 216 views
8

我們都知道測試面向對象系統的各種方法。然而,看起來我要做一個項目,在那裏我將要處理PLC梯形邏輯(不要問:/),我想知道是否有一種測試系統有效性的好方法。測試梯形圖邏輯

到目前爲止,我看到的唯一方法就是構建一個包含系統所有已知狀態和生成哪些輸出狀態的巨大表格。這對於簡單的'如果輸入A打開,打開輸出B'的情況下。我不認爲這會適用於更復雜的結構。

回答

4

IC設計領域中「邏輯」系統的驗證稱爲「設計驗證」,它是確保您在硬件設計的系統(RTL)實現所需功能的過程。

梯形邏輯可以轉化爲現代HDL的如Verilog之一.. 變換每個階梯

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

,以表達喜歡

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

,或者你可以使用一個賦值語句

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

a閉鎖繼電器

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

然後使用免費的verilog模擬器如Icarus開發測試臺並測試您的系統。 確保您的測試案例能夠爲您的邏輯提供良好的代碼覆蓋率!如果您的梯形圖編輯軟件爲您提供了體面的命名功能,請使用它們,而不是Rnn。

(注:用梯形圖進行PLC約定,RNN是內部繼電器,同時,XNN是輸入和YNN是輸出,這可以從網上教程的一個快速收集

的Verilog會有一個更簡單的語言來開發你的測試和測試平臺中!

它可能在某些單元延遲是有幫助的計劃。

對不起,我從來不爲梯形邏輯/ Verilog的從翻譯.. 但階梯我的日子裏的邏輯只是被放入一臺用於編程PLC的計算機中 - 大部分是我使用的繼電器系統是REAL繼電器,連接到機櫃中!

好運。 JBD

有一對夫婦梯形邏輯編輯器(與simultors)免費提供的.. 這裏是一個,理應在Windows上運行:

http://cq.cx/ladder.pl

+0

非常好!希望我很快就能看到那個模擬器。 – 2008-09-16 11:27:52

0

有一個名爲LogixPro程序,它具有一個用於梯形邏輯的IO模擬器,你可以試試。

1

我們已經試驗了Rockwell Control Logix控制器的測試覆蓋工具。大多數程序語言測試覆蓋工具都可以執行分支覆蓋或某些操作;因爲梯形圖邏輯通常不會分支,所以這不起作用。

我們的原型爲MC/DC(修改/條件/決策覆蓋率)用於羅克韋爾控制器的RLL代碼。這告訴,對於梯級中的每個條件,該條件是否已被測試爲TRUE,測試爲FALSE等等重要的是,如果在某些測試中,條件控制了橫向決策的輸出(至少是由決策控制的行爲)在真實和錯誤的方向上都是如此。

這項工作是使用通用程序分析完成, DMS用於儀器的RLL碼具有附加邏輯以收集必要的數據轉換工具調用。

你還得編碼單元測試。最簡單的方法就是讓另一個PLC代替你想要控制的機械硬件,並簡單地編寫另一個RLL程序來練習第一個。

0

有時在小型PLC程序中,測試程序(或子程序或梯形文件)寫在項目中,該項目僅在模擬項目時運行。該文件具有一些簡單的邏輯,說明何時輸出通電,打開與反饋相關的輸入。然後,您可以通過任何HMI連接到它的PLC來控制PLC,並看到代碼的行爲如預期。當軟件下載到真實網站時禁用或刪除測試程序非常重要,因爲它可以在現實世界中做出非常奇怪的事情。

在較大的項目中,每個設備都有一個模擬模式,它執行的操作稍有些類似。 http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

這與使用面向OO語言的測試框架沒什麼兩樣,但我還沒有真正看到PLC的任何測試驅動開發,甚至還有很多自動化測試。