ESTRUCTURA DE PROGRAMACIÓN
Los lenguajes de programación definidos:
- LD lenguaje diagrama de contactos (Ladder)
- ST texto estructurado (variante de Pascal)
- SFC diagrama de funciones secuenciales (Grafcet)
- FBD diagrama de bloques de función
- IL listas de instrucciones
Sysmac Studio permite actualmente la programación en LD , ST y SFC.
Estructura de programación
La programación basada en IEC61131-3 se apoya básicamente en tres conceptos.
- POU (Program Organization Unit): Son los programas que ha de ejecutar el controlador en función del estado del sistema y las condiciones requeridas.
- Tareas (Tasks): Los POU son agregados a tareas que se ejecutan de forma periódica o por eventos.
- Variables y tipos de datos: Son los identificadores que leen y escriben programas.
POUs en Sysmac Studio
Los POU se componen de tres tipos de elementos diferentes:
- Programas: Son los algoritmos de programación, pueden estar programados en ST y/o LD. Además un programa puede llamar a funciones y bloques de función
- Funciones (F): Es un algoritmo o programa que trabaja con variables locales y no necesita almacenar estados intermedios, por lo que no ocupa memoria. Un ejemplo sería un cálculo matemático.
- Bloques de función (FB): Serían similares a las funciones pero contienen datos de estados intermedios, por lo que requieren memoria para almacenarlos, por ello se generan instancias para reservar memoria de trabajo (deben tener un nombre único).
Podemos crear por tanto cualquiera de estos elementos, pero además la aplicación incluye gran cantidad de funciones y bloques de función de sistema que podemos utilizar en nuestra programación.
Tareas (Tasks)
Las tareas se definen como una función que especifica la condición de ejecución del programa de usuario.
Los programas deben ser asignados a una tarea para poder ser ejecutados. En una tarea podremos asignar un máximo de 128 programas. El orden de ejecución dentro de una tarea viene determinado por el orden de asignación. Por tanto el procedimiento sería primero crear las tareas, configurarlas y después asignar los programas en función de nuestras necesidades.
Variables
Tenemos dos tipos de variables:
- Variables globales: Son accesibles desde todos los POU, funciones o bloques de función (FB). Para optimizar el funcionamiento, estas variables se definen en el POU como una variable externa.
- Variables locales: Son variables que se declaran en la tabla de variables locales de cada POU. Esas variables serán declaradas como variables internas.
Además , en las funciones (F) y bloques de función (FB) podremos seleccionar si se trata de variables de entrada, de salida o de entrada/salida y solo en el caso de los bloques de función además si se evaluará el flanco ascendente o descendente de la variable.
Variables de dispositivo
La identificación de las unidades de E/S y su vinculación con las variables de programación se hace desde página de configuración del Mapa de E/S para todas las unidades conectadas y de red.
Desde esa vista seleccionaremos la unidad que queramos y con el botón derecho del ratón podremos acceder a la opción de ‘Crear variables de dispositivo’.
Todas las variables así creadas se asignarán a la lista de variables globales y además estarán redireccionadas a la unidad de E/S correspondiente (Dirección AT). De esta forma podremos leer y escribir en las unidades de periferia del controlador.
Tenemos además disponibles las áreas de memoria tradicionales de Omron que pueden ser necesarias para acceder a las unidades de CJ (entradas, salidas, comunicaciones…) que utilizan los controladores NJ y necesarias también para la comunicación con otros dispositivos (por Modbus, Ethernet/IP…) que no sean configurables por Sysmac Studio.
Para referirnos y direccionar a las áreas de memoria tradicionales de Omron utilizaremos la asignación AT en la tabla de variables, bien sea local o global, precedida del símbolo %.
Tipos de datos
Como en todos los dispositivos, las variables van a asociadas a alguno de los tipos de datos básicos (o derivados). Los rangos de valores admisibles van en función de lo que establece la IEC y el tamaño en bits del dato. Tendremos como datos básicos con sus rangos de valores admisibles:
Estos son los tipos de datos que definen una configuración basada en tipos de datos básicos.
Los tipos de datos derivados definidos en IEC61131-3 son los siguientes:
- Estructura
- Enumeración
- Array
- Especificación de rango