Pulsa ESC para cerrar · Ctrl+K para abrir

Introducción al RSLogix 5000

Una primera mirada a la organización de un proyecto Logix: controlador, tags, tareas, Add-On Instructions, tipos de datos y configuración de hardware.

Estructura de un proyecto RSLogix 5000

Introducción

Esta debería haber sido la primera práctica: una pequeña introducción a RSLogix 5000 y a la organización interna de un proyecto. La idea es ver cómo está estructurado, qué significa cada carpeta del árbol y dónde se configuran los elementos principales.

En el proyecto original, cada directorio se podía pulsar para mostrar su descripción. En esta versión queda organizado como artículo normal para que sea más fácil de leer, ampliar y consultar desde móvil.

Estructura del proyecto

El árbol del proyecto permite acceder a la configuración del controlador, las tareas, los programas, las instrucciones Add-On, los tipos de datos, las tendencias y la configuración de entradas y salidas.

Árbol principal de un proyecto RSLogix 5000

Controller y Controller Tags

En Controller, con botón derecho y Properties, accedemos a las propiedades de la CPU. Desde ahí se configuran parámetros generales del controlador que conviene revisar antes de empezar a programar.

Dentro de Controller Tags se declaran las variables de ámbito global. Todas las variables creadas aquí serán accesibles desde cualquier programa, tarea o evento del proyecto.

Hay cuatro tipos habituales de tags:

  • Base: el tipo normal que usamos al crear un tag nuevo.
  • Alias: una referencia a otra variable, muy usada para nombrar entradas y salidas físicas con nombres más claros.
  • Produced: variable producida para intercambiar datos con otro controlador.
  • Consumed: variable consumida desde otro controlador.

Los tags Produced y Consumed se utilizan cuando queremos intercambiar información entre dos o más controladores, ya sea en el mismo backplane o a través de redes como ControlNet o EtherNet/IP. Hay un ejemplo relacionado en la práctica de intercambio de datos entre controladores.

Directorio Controller en RSLogix 5000
Configuración de tags de controlador en RSLogix 5000

Una vez definido el tipo de tag, debemos seleccionar el tipo de dato. Podemos usar tipos estándar o tipos definidos por nosotros en Data Types.

Si tenemos dos controladores en el mismo backplane, el campo Scope indica a qué controlador hace referencia la variable. En External Access se define si la variable será de lectura, escritura o lectura/escritura. En Style seleccionamos el formato de visualización: decimal, hexadecimal, etc.

Controller Fault Handler es el directorio donde podemos declarar un programa que se ejecute cuando se produzca un fallo mayor en el controlador. Power-Up Handler permite ejecutar un programa después de una pérdida de tensión si el controlador vuelve en modo Run.

Declaración de programas para Fault Handler y Power-Up Handler

Después de crear esos programas, queda un último paso: entrar en las propiedades del controlador y, en la pestaña Advanced, seleccionar el programa que se ejecutará para cada caso.

Selección de programas especiales desde las propiedades del controlador

Tasks

En Tasks se definen las tareas que se ejecutarán en el controlador. Al crear un proyecto aparece por defecto MainTask, que se ejecuta cíclicamente y contiene MainProgram, donde normalmente empezamos a escribir el programa.

En controladores antiguos se podía trabajar con una MainTask y varias tareas periódicas o de evento. En controladores más modernos aumentan los límites de tareas y programas disponibles, pero la idea general se mantiene: organizar la ejecución del código según la necesidad del proceso.

También existe la opción de usar programación basada en Phases, relacionada con modelos como ISA S88, IEC 61512 y PackML. De forma resumida, una fase representa una parte del proceso y sus estados: Running, Holding, Stopping, Restarting, etc. Para pasar de un estado a otro se usan transiciones e instrucciones específicas como PSC, POVR o PCMD.

Al declarar una nueva tarea, se genera el archivo Program Tags, donde se declaran variables de ámbito local al programa. Estas variables solo son accesibles dentro de ese programa. Dos programas distintos pueden tener variables con el mismo nombre sin interferir entre sí.

Las tareas de evento disparadas por una condición se conocen como processor input interrupt (PII). Las tareas cíclicas temporizadas se conocen como selectable timed interrupt (STI).

Configuración de una tarea en RSLogix 5000
Tipos de tareas configurables en RSLogix 5000

Add-On Instruction

En Add-On Instruction podemos crear nuestras propias instrucciones reutilizables. Es una forma de encapsular lógica específica para usarla dentro del mismo proyecto o en otros proyectos futuros.

Al crear una Add-On Instruction se le asigna un nombre y se abre su editor de configuración. La definición incluye información general, descripción, lenguaje de programación, revisión y parámetros.

Creación de una Add-On Instruction en RSLogix 5000
Configuración general de una Add-On Instruction

En la pestaña Parameters definimos los parámetros de entrada, salida o entrada/salida. Para los parámetros de entrada y salida se suelen usar tipos simples. Si necesitamos trabajar con un tipo como STRING, podemos definirlo como entrada/salida.

Parámetros de una Add-On Instruction

La siguiente pestaña permite declarar variables internas. Son variables locales de la instrucción y no serán accesibles desde fuera. En este ejemplo se declara una variable entera que se usará como índice para recorrer un array.

Variables locales de una Add-On Instruction

La pestaña Scan Modes define cómo se ejecutará la instrucción. Por defecto, EnableIn está a true y el código se ejecuta cuando se cumplen las condiciones de llamada. También existen modos como Prescan, Postscan o EnableInFalse.

La pestaña Signature permite firmar la instrucción con un identificador único para protegerla frente a modificaciones. Las pestañas restantes se usan para historial de cambios y ayuda de la instrucción.

Después de crear la Add-On, RSLogix 5000 genera automáticamente un nuevo tipo de dato dentro de Data Types con el nombre de la instrucción.

Tipo de dato generado por una Add-On Instruction

Una vez definida la instrucción, podemos editar su código. En este ejemplo, pasando un índice se recuperan valores de un array compuesto por una estructura definida previamente en Data Types.

Código interno de una Add-On Instruction

Para usar la instrucción en un programa, primero creamos una variable del tipo de dato de nuestra Add-On y después insertamos la instrucción en la rutina correspondiente.

Variable asociada a una Add-On Instruction
Llamada a una Add-On Instruction desde el programa

Si la estructura de datos está correctamente rellenada, al pasar el índice a la función nos devolverá los datos esperados. Es un ejemplo sencillo, pero sirve para entender cómo se crean y reutilizan las Add-On Instructions.

Monitorización del resultado de una Add-On Instruction

Data Types

En Data Types definimos nuestros propios tipos de datos, conocidos como UDT o User Defined Data Types.

Por defecto existen tipos como BOOL, INT, DINT, REAL, STRING y otros más complejos. A partir de ellos podemos crear estructuras adaptadas a nuestro proceso. Un ejemplo sería crear un tipo llamado Ingrediente, con nombre, peso y porcentaje.

Creación de un tipo de dato definido por usuario en RSLogix 5000
Campos de un UDT en RSLogix 5000

También podemos crear un tipo que contenga otros tipos definidos por nosotros. Por ejemplo, un tipo Receta que contenga tres ingredientes.

Hasta aquí hemos definido tipos de datos, pero no variables. Si queremos guardar varias recetas, podemos crear a nivel de controlador un array de 10 elementos del tipo Receta, llamado Recipes.

Creación de un array de recetas con un UDT

La siguiente imagen muestra el array definido con el tipo de dato creado anteriormente.

Array de UDT en RSLogix 5000
Detalle de campos de una estructura UDT

I/O Configuration

En I/O Configuration se configura el hardware del sistema. Al crear un proyecto indicamos qué tipo de controlador vamos a utilizar y, según ese controlador, tendremos disponibles unas tarjetas u otras.

Un ejemplo claro se ve al comparar un proyecto para SoftLogix con otro para ControlLogix. La configuración de hardware cambia según la plataforma.

Configuración de hardware para un controlador SoftLogix
Configuración de hardware para un controlador ControlLogix

La configuración consiste en indicar el tipo de tarjeta y el número de slot donde está ubicada. Después, cada módulo tendrá sus propias propiedades de configuración.

Artículos relacionados