viernes, 28 de noviembre de 2014

Programador Vs Máquina - La batalla final


  

El duelo entre Máquina y Programador en ocasiones puede ser duro y complicado aunque todos sabemos que, con un poco de confianza y tiempo, tenemos la batalla ganada

Cuando nos enfrentamos al reto de programar una nueva máquina siempre sentimos un cierto punto de ilusión: un nuevo reto, nuevos elementos a automatizar, quizá una nueva marca de PLC, nuevas maniobras y tecnologías....
A este punto de ilusión se suele acompañar algo de preocupación por saber si seremos capaces de ganarle la batalla a la máquina, ya que cada vez hay que programar más elementos...Las máquinas van incorporando más electrónica y menos mecánica.

Muchas veces el programador se encuentra limitado por el propio diseño de la máquina. Si el proyectista mecánico no ha pensado bien la relación de motores, quizá no esté en nuestras manos llegar al tiempo de ciclo de máquina que se nos pide. En ese caso, difícilmente podremos hacer algo.


Desafortunadamente el programador es el último que entra en escena (antes van los mecánicos, los eléctricos ...) y en ocasiones el tiempo que se nos deja para probar el programa es menor del que necesitamos. Si tenías dos semanas de pruebas te quedan 4 días y ahí es donde la presión te puede jugar una mala broma. Sí que eres capaz de programar la máquina, pero las prisas y la presión pueden hacer que te quedes bloqueado. Algo parecido suele pasar en la puesta en marcha donde la presión por parte del cliente a veces es muy fuerte.
Aquí es donde el duelo Programador - Maquina se vuelve más crudo y donde hasta el mejor programador puede verse superado por las circunstancias.



Tipos de programación.


Existen, a la hora de programar un PLC,  tipos de programación a efectuar, por loque, antes de diseñar un programa es necesario entender los diferentes modos en que sepuede estructurar, distinguir los distintos tipos de módulo utilizables así como la forma de trabajo del PLC.

 Programación lineal: El programa completo se localiza en un módulo (OB1) con todas las instrucciones juntas. Este modelo es similar al esquema de relés fijo reemplazado por el controlador lógico programable. El sistema procesa sucesivamente las instrucciones individuales. Todo el programa está contenido en un único módulo.
Normalmente, este módulo es el OB1 (módulo de elaboración cíclica). Las instrucciones se van ejecutando secuencialmente una detrás de otra. Este sistema de programación sólo está recomendado en proyectos pequeños
Programación dividida: El programa se divide en módulos, con lo que cada bloque contiene las operaciones lógicas de un cierto grupo de dispositivos o tareas. Las instrucciones integradas en el módulo de organización OB1 determina la secuencia en que se procesan los módulos. Un programa dividido puede, por ejemplo, contener módulos de instrucciones con los que se controlan los modos de operación individuales para un proceso industrial.
Programación estructurada: Un programa estructurado contiene módulos con parámetros (módulos parametrizables). Estos módulos se programan de forma que se puedan usar universalmente. Durante la llamada se especifican los parámetros actuales (las direcciones concretas de las entradas y salidas).
 

Herramientas de Step 7.
A continuación, se detallan las más importantes funciones de cada herramienta, cada
una con su pantalla de Step 7 correspondiente con el proyecto de Sicalis como ejemplo,
lo cual nos ayudará tener una referencia visual más concreta. Con ello, se entenderá más
claramente el anexo G del proyecto, que contiene el Programa de Step 7 creado para la
aplicación del proyecto y en el que se muestran diferentes datos e informaciones de
prácticamente todas las herramientas de Step 7.
El software estándar STEP 7, ofrece en el paquete básico una serie de herramientas a la
hora de realizar proyectos:
- Administrador SIMATIC.
- HW-Config: Configurar el hardware.
- NETPRO: Configurar redes de comunicación.
- Editor de bloques de programa en KOP, FUP y AWL.
- Editor de símbolos.
- Datos de referencia.
Cada una de estas herramientas se ve representada en una ventana de Windows con su
menú de opciones correspondiente a cada una de ellas. Las herramientas no se deben llamar por separado, puesto que arrancan automáticamente al seleccionarse una determinada función o al abrirse un objeto. Pudiendo tener dos o más herramientas abiertas a la vez.


 Administrador SIMATIC.
 El Administrador SIMATIC es la interfase de acceso a la configuración y
programación, permitiendo acceder a las demás herramientas, que permitirán:
· crear proyectos,
· configurar y parametrizar el hardware,
· configurar redes de hardware,
· programar bloques,
· probar y hacer funcionar los programas.
Ventana del Administrador Simatic.  
 El acceso a las funciones es orientado a objetos, con lo cual resulta fácil de aprender.
 Se puede trabajar con el Administrador SIMATIC:
· Offline, es decir, sin conectar el sistema de automatización, o bien
· Online, es decir, estando conectado el sistema de automatización.
Tanto offline como online, desde el administrador, se tiene la visión general de todo el proyecto, incluyendo los diferentes módulos de programación. Los módulos son partes funcionales del programa de usuario. Se diferencian en su función, uso y estructura. Los módulos representan el código ejecutable del programa.
El entorno STEP7 soporta los siguientes tipos de módulos:
- OB - Módulos de Organización
- FC – Funciones
- FB - Módulos de Función
- SFC - Funciones de Sistema
- SFB - Módulos de Función de Sistema
- DB - Módulos de Datos
- SDB - Módulos de Datos de Sistema
- UDT - Tipos de Datos definidos por el Usuario
 Módulos de sistema : Los módulos de sistema son funciones predefinidas o módulos integrados en el sistema operativo de la CPU. Estos módulos no ocupan ningún espacio adicional en la memoria de usuario. Los módulos de sistema se llaman desde el programa de usuario. Estos módulos tienen la misma interfase, la misma designación y el mismo número en todo el sistema. Módulos de usuario: Los módulos de usuario son áreas provistas para administración del código del programa y los datos del programa. Basado en las condiciones para su proceso, puede estructurar su programa con las distintas opciones de módulos de usuario. Algunos de estos módulos se pueden ejecutar cíclicamente y otros se ejecutan sólo cuando se necesiten. Los módulos de usuario se llaman también módulos de programa. 

Módulo de organización: Los módulos de organización (OB) constituyen los módulos ejecutables del sistema. Todo el programa podrá ser almacenado en el módulo OB1 (módulo de elaboración cíclica). Por otra parte, el programa podrá ser almacenado en distintos bloques, en cuyo caso el módulo OB1 es utilizado para realizar la llamada del resto de los módulos.
Módulo de función: Un módulo de función (FB) es un bloque que contiene una parte del programa y que controla una determinada área de la memoria. Este módulo ofrece la posibilidad de utilizar parámetros. Estos módulos se emplean para tareas repetitivas o funciones complejas.
Función: Una función (FC) es, de acuerdo a la norma IEC 1131-3 un módulo de datos estáticos. Te ofrece la posibilidad de transferir datos al programa de usuario. Todas las operaciones son utilizables en todos los módulos (FB, FC y OB). Módulos de datos: Los módulos de datos (DB) constituyen áreas de datos en el
programa de usuario. Sólo contiene datos. Módulos de organización: Constituyen el interfaz entre la CPU y el programa. El sistema operativo llama a estos módulos de código para que realicen distintas operaciones de acuerdo a su función.
- OB1: Es un módulo de código que trabaja cíclicamente, el OB1 se ejecuta en cada ciclo. Puede almacenar y ejecutar su programa completo en el OB1, o bien puede almacenar su programa en diferentes módulos lógicos y utilizar el OB1 para llamarlos cuando sea necesario. Además del OB1, el sistema operativo puede llamar a otros OBs en respuesta a ciertos eventos. Los OBs sólo pueden ser llamados por el sistema operativo, no por otros módulos lógicos. El sistema  operativo de la CPU del S7 ofrece 26 clases de prioridad (niveles de ejecucióndel programa). El sistema operativo procesa los OBs de acuerdo a su prioridad.El OB1 (prioridad clase 1) tiene la prioridad más baja de todos los OBs. Esto significa que todos los otros OBs pueden interrumpir la ejecución cíclica del
OB1 si es necesario.

HW-Config: Configuración del hardware

Esta herramienta se utiliza para configurar y parametrizar el hardware de un proyecto de automatización. Es por tanto el lugar donde se almacena la información de los elementos hardware (CPUs, módulos de E/S, periferia DP, etc...) que se tienen.
Ventana de Configuración de Hardware.  
Net Pro: Configurar redes de comunicación.

Con Net Pro, los datos se pueden transferir de forma cíclica y temporizada a través de MPI, permitiendo seleccionar las estaciones que intervienen en la comunicación e introducir la fuente y el destino de los datos en una tabla. La creación de todos los bloques a cargar (SDBs) y su transferencia completa a todas las CPUs se efectúa deforma automática.


Ventana del Netpro.  
Editor de bloques de programa en KOP, FUP y AWL.

En el editor de bloques de programa, se escribe el código de programa, en los diferentes lenguajes posibles, para cada uno de los bloques de programación que componen el programa de usuario.
Ventana del Editor de bloques en AWL.
Los lenguajes de programación KOP, AWL y FUP para S7-300/400 son parte integrante
del software estándar.

FUP (diagrama de funciones): FUP es la abreviatura alemana de ”Funktionsplan”, que en español quiere decir diagrama de funciones. FUP es un lenguaje de programación gráfico. Para representar la lógica, este lenguaje emplea los cuadros lógicos según el álgebra de Bool. Además, las funciones complejas (por ejemplo, funciones matemáticas) se pueden representar directamente junto con los cuadros lógicos.
KOP (esquema de contactos): Lenguaje de programación gráfico. La sintaxis de las instrucciones es similar a la de un esquema de circuitos. KOP permite observar la circulación de la corriente a través de contactos, elementos complejos y bobinas.
AWL (lista de instrucciones): Lenguaje de programación textual orientado a la máquina. En un programa creado en AWL, las instrucciones equivalen en gran medida a los pasos con los que la CPU ejecuta el programa. Por ello, se trata del lenguaje más potente y difícil, estando más orientado al programador. No obstante con el se programa en la mayoría de los casos, pues las tareas que realizan los autómatas SIMATIC S7-300 y 400 son en su gran mayoría complicadas. No obstante, para facilitar la programación AWL se ha ampliado con algunas estructuras de lenguajes de alto nivel (tales como accesos estructurados a datos y parámetros de bloques).
 Además de éstos, se pueden instalar otros lenguajes de programación opcionales, que
permiten resolver mejor tareas más específicas.

S7-GRAPH: Lenguaje de programación que permite describir cómodamente controles secuenciales (programación de cadenas secuenciales) dividiendo el proceso en diferentes etapas. Estas últimas contienen sobre todo acciones para controlar las salidas.
Ejemplo de estructura de Graph.
S7-HiGraph: Lenguaje de programación que permite describir cómodamente los procesos asíncronos y no secuenciales en forma de grafos de estado. Para ello se divide la instalación en unidades funcionales que pueden adoptar diversos estados. Lasunidades funcionales se pueden sincronizar mediante el intercambio de mensajes.

Ejemplo de estructura de HIGraph.

S7-SCL: Lenguaje textual de alto nivel según la norma DIN EN 61131-3. Contiene estructuras similares a las de los lenguajes de programación Pascal y C. Por lo tanto, es especialmente apropiado para los usuarios que ya estén acostumbrados a utilizar lenguajes de nivel superior.
Ejemplo de estructura de SCL.    

CFC para S7 y M7: Lenguaje de programación para interconectar gráficamente las funciones existentes. Estas últimas abarcan una amplia gama que incluye desde combinaciones lógicas sencillas hasta regulaciones y controles complejos. Se dispone de un gran número de funciones en forma de bloques contenidos en una librería. La programación se lleva a cabo copiando los bloques en un esquema (plano) y conectándolos entre sí mediante líneas.


Ejemplo de estructura de CFC.
Editor de símbolos.
Con la herramienta editor de símbolos es posible realizar la asignación simbólica a los operandos absolutos muy fácilmente, pudiendo incluso importarme una tabla de símbolos realizada por ejemplo en Excel.

Ventana del editor de símbolos de Step 7. 
Datos de referencia.
Con esta herramienta, es posible crear y evaluar datos de referencia para probar y modificar cómodamente el programa de usuario. Los datos de referencia se utilizan como:
- sinopsis de todo el programa de usuario,
- base para efectuar cambios y tests
- complemento de la documentación del programa.
Los datos de referencia se componen de:

Lista de referencias cruzadas:
Panorámica de los operandos de las áreas de memoria y de los bloque de programación utilizados en
el programa de usuario.
 
Ventana de los datos de referencia de Step 7. Referencias cruzadas.
Plano de ocupación de memoria: Panorámica de los bits de los operandos de las áreas de
memoria , así como de los temporizadores y contadores que ya estén ocupados
en el programa de usuario.
Ventana de los datos de referencia de Step 7.                                         






No hay comentarios.:

Publicar un comentario