Pregunta

Todos conocemos las diversas formas de probar sistemas OO.Sin embargo, parece que voy a hacer un proyecto en el que me ocuparé de la lógica de escalera de PLC (no preguntes :/), y me preguntaba si hay una buena manera de probar la validez del sistema.

La única forma que veo hasta ahora es simplemente construir una tabla enorme con todos los estados conocidos del sistema y qué estados de salida genera.Esto serviría para casos simples de 'si la entrada A está activada, active la salida B'.Sin embargo, no creo que esto funcione para construcciones más complicadas.

¿Fue útil?

Solución

La verificación de sistemas "lógicos" en el ámbito del diseño de circuitos integrados se conoce como "verificación de diseño", que es el proceso de garantizar que el sistema que usted diseña en hardware (RTL) implemente la funcionalidad deseada.

La lógica de escalera se puede transformar a una de las HDL modernas como Verilog.transforma cada escalera

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

a una expresión como

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

o podrías usar una declaración de asignación

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

un relé de enclavamiento

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

Luego use un simulador de Verilog gratuito como Ícaro para desarrollar un banco de pruebas y probar su sistema.¡Asegúrese de que sus casos de prueba brinden una buena cobertura de CÓDIGO de su lógica!Y si su software de edición de escalera le brinda capacidades de nombres decentes, úselas, en lugar de Rnn.

(Nota:En la convención de Ladder Logic para PLC, Rnn es para relés internos, mientras que Xnn es una entrada e Ynn es una salida, como se puede deducir rápidamente de uno de los tutoriales en línea.

¡Verilog será un lenguaje más fácil para desarrollar sus pruebas y bancos de pruebas!

Puede resultar útil programar retrasos en algunas unidades.

Lo siento, nunca he buscado lógica de escalera hacia/desde traductores verilog.pero la lógica de escalera en mi época apenas se colocaba en una computadora para programar PLC: ¡la mayoría de los sistemas de relés que usaba eran relés REALES, conectados a los gabinetes!

Buena suerte.jbd

Hay un par de editores de lógica de escalera (con simuladores) disponibles de forma gratuita.aquí hay uno que supuestamente se ejecuta en Windows:

http://cq.cx/ladder.pl

Otros consejos

Hemos experimentado con herramientas de cobertura de prueba para controladores Rockwell Control Logix.La mayoría de las herramientas de cobertura de pruebas de lenguaje procesal cubren sucursales o algo así;Debido a que Relay Ladder Logic normalmente no se bifurca, esto no funciona muy bien.

Lo que hemos prototipado es MC/CC (modificado/condición/cobertura de decisión) para el código RLL para controladores Rockwell.Esto indica, para cada condición en el renglón, si esa condición ha sido probada como VERDADERA, probada como FALSA y, lo que es más importante, si la condición controlaba el resultado de la decisión en el renglón (bueno, al menos la acción controlada por la decisión). en direcciones verdaderas y falsas bajo alguna prueba.

Este trabajo se realiza utilizando una herramienta de análisis y transformación de programas de propósito general llamadaDMS Se utiliza para instrumentar el código RLL con lógica adicional para recopilar los datos necesarios.

Todavía tienes que codificar las pruebas unitarias.La forma más sencilla de hacerlo es conseguir otro PLC que actúe como reemplazo del hardware mecánico que desea controlar y simplemente escribir otro programa RLL para ejercitar el primero.

Hay un programa llamado LogixPro que tiene un simulador de IO para lógica de escalera, puedes probarlo.

A veces, en pequeños programas de PLC, se escribe un programa de prueba (o subrutina o archivo de escalera) en el proyecto, que sólo se ejecuta cuando se está emulando el proyecto.El archivo tiene una lógica simple que dice que cuando se energiza una salida, se activa la entrada asociada con la retroalimentación.Luego puede controlar su PLC a través de cualquier HMI que esté conectado y ver que el código se comporta como se esperaba.Es muy importante desactivar o eliminar el programa de prueba cuando el software se descarga en un sitio real, ya que puede hacer cosas muy extrañas en el mundo real.

En proyectos más grandes, cada dispositivo tiene un modo de simulación que hace algo ligeramente similar. http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

Esto no se parece en nada a usar marcos de prueba para lenguajes OO, pero realmente no he visto ningún desarrollo basado en pruebas para PLC, ni siquiera muchas pruebas automatizadas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top