Domanda

Conosciamo tutti i vari modi di testare i sistemi OO.Tuttavia, sembra che farò un progetto in cui mi occuperò della logica ladder del PLC (non chiedere :/), e mi chiedevo se esiste un buon modo per testare la validità del sistema.

L'unico modo che vedo finora è semplicemente costruire una tabella enorme con tutti gli stati noti del sistema e quali stati di output genera.Ciò andrebbe bene per i semplici casi "se l'ingresso A è attivo, attiva l'uscita B".Non penso però che funzionerà per costruzioni più complicate.

È stato utile?

Soluzione

La verifica dei sistemi "logici" nell'ambito della progettazione di circuiti integrati è nota come "Verifica della progettazione", ovvero il processo volto a garantire che il sistema progettato nell'hardware (RTL) implementi la funzionalità desiderata.

La logica ladder può essere trasformata in uno dei moderni HDL come Verilog..trasformare ogni scala

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

ad un'espressione come

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

oppure potresti usare un'istruzione di assegnazione

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

un relè bistabile

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

Quindi utilizza un simulatore Verilog gratuito come Icaro per sviluppare un banco di prova e testare il tuo sistema.Assicurati che i tuoi test forniscano una buona copertura del CODICE della tua logica!E se il tuo software di editing ladder ti offre funzionalità di denominazione decenti, usali invece di Rnn.

(Nota:nella logica Ladder per convenzione PLC, Rnn è per i relè interni, mentre Xnn è un ingresso e Ynn è un'uscita, come si può rapidamente ricavare da uno dei tutorial online.

Verilog sarà un linguaggio più semplice per sviluppare i tuoi test e banchi di prova!

Potrebbe essere utile programmare alcuni ritardi dell'unità.

Mi dispiace, non ho mai cercato la logica ladder da/verso i traduttori Verilog.ma ai miei tempi la logica ladder veniva appena inserita in un computer per programmare i PLC: la maggior parte dei sistemi di relè che usavo erano relè REALI, cablati negli armadietti!!

Buona fortuna.jbd

Ci sono un paio di editor di logica ladder (con simulatori) disponibili gratuitamente.eccone uno che presumibilmente funziona su Windows:

http://cq.cx/ladder.pl

Altri suggerimenti

Abbiamo sperimentato strumenti di copertura dei test per i controllori Rockwell Control Logix.La maggior parte degli strumenti di copertura dei test linguistici procedurali eseguono la copertura delle filiali o qualcosa del genere;poiché la logica ladder in genere non si ramifica, non funziona molto bene.

Ciò che abbiamo prototipato è MC/DC (copertura modificata/condizione/decisione) per il codice RLL per i controllori Rockwell.Questo indica, per ciascuna condizione nel ramo, se quella condizione è stata testata come VERA, testata come FALSO e, cosa più importante, se la condizione controlla l'output della decisione nel ramo (beh almeno l'azione controllata dalla decisione) in entrambe le direzioni vero e falso sotto qualche test.

Questo lavoro viene svolto utilizzando uno strumento di analisi e trasformazione del programma per scopi generali chiamatoDMS utilizzato per dotare il codice RLL di una logica aggiuntiva per raccogliere i dati necessari.

Devi ancora codificare i test unitari.Il modo più semplice per farlo è far sì che un altro PLC funga da sostituto dell'hardware meccanico che si intende controllare e scrivere semplicemente un altro programma RLL per esercitare il primo.

Esiste un programma chiamato LogixPro che ha un simulatore IO per la logica ladder, puoi provarlo.

A volte su piccoli programmi PLC viene scritto nel progetto un programma di test (o subroutine o file ladder), che viene eseguito solo quando il progetto viene emulato.Il file ha una logica semplice che dice che quando un'uscita è energizzata, attiva l'ingresso associato al feedback.Puoi quindi controllare il tuo PLC attraverso qualunque HMI sia collegato ad esso e vedere che il codice si comporta come previsto.È molto importante disabilitare o eliminare il programma di test quando il software viene scaricato su un sito reale poiché può fare cose molto strane nel mondo reale.

Nei progetti più grandi ogni dispositivo ha una modalità di simulazione che fa qualcosa di leggermente simile. http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

Questo non ha niente a che vedere con l'utilizzo di framework di test per i linguaggi OO, ma non ho visto alcuno sviluppo guidato dai test per i PLC, o anche molti test automatizzati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top