IEC 1131-3: un recurso de programación estandar - · PDF filecircuitos integrados,...

4

Click here to load reader

Transcript of IEC 1131-3: un recurso de programación estandar - · PDF filecircuitos integrados,...

Page 1: IEC 1131-3: un recurso de programación estandar - · PDF filecircuitos integrados, IC´s, que representan funciones de control especializadas. ... para codificar expresiones complejas

PLCopenEstandarización en la programación de control industrial

IEC 1131-3: un recurso de programación estandarEn la actualidad aún siguen persistiendo sistemas decontrol específicos del fabricante, con programacióndependiente y conexión compleja entre distintossistemas de control. Esto significa para el usuariocostos elevados, escasa flexibilidad y falta denormalización en las soluciones al control industrial.

IEC 1131 es el primer paso en la estandarización de losautómatas programables y sus periféricos, incluyendolos lenguajes de programación que se deben utilizar.Esta norma se divide en cinco partes:• Parte 1: Vista general.• Parte 2: Hardware.• Parte 3: Lenguaje de programación.• Parte 4: Guías de usuario.• Parte 5: Comunicación.IEC 1131-3 pretende es la base real para estandarizar loslenguajes de programación en la automatizaciónindustrial, haciendo el trabajo independiente decualquier compañía.Hay muchas maneras de describir el trabajo desarrolladoen la tercera parte de esta norma, indicaremos algunasde ellas son:q IEC 1131-3 es el resultado del gran esfuerzo

realizado por 7 multinacionales a los que se añadenmuchos años de experiencia en el campo de laautomatización industrial.

q Incluye 200 páginas de texto aproximadamente, conmas de 60 tablas.

q IEC-1131-3 son las especificaciones de la sintaxis ysemántica de un lenguaje de programación,incluyendo el modelo de software y la estructuradel lenguaje.

Otra visión distinta es dividir el estándar en dos partes:(ver figura 1):• Elementos comunes.• Lenguajes de programación.

Estandar IEC 1131-3

Elementos Comunes

Lenguajes de Programación

Elementos ComunesTipos de datosDentro de los elementos comunes, se definen los tiposde datos. Los tipos de datos previenen de errores enuna fase inicial, como por ejemplo la división de un datotipo fecha por un número entero. Los tipos comunes dedatos son: variables booleanas, número entero, númeroreal, byte y palabra, pero también fechas, horas del día ycadenas (strings).Basado en estos tipos de datos, el usuario puede definirsus propios tipos de datos, conocidos como tipos dedatos derivados. De este modo, se puede definir porejemplo un canal de entrada analógica como un tipo dedato.

VariablesLas variables permiten identificar los objetos de datoscuyos contenidos pueden cambiar, por ejemplo, losdatos asociados a entradas, salidas o a la memoria delautómata programable. Una variable se puede declararcomo uno de los tipos de datos elementales definidos ocomo uno de los tipos de datos derivados. De estemodo se crea un alto nivel de independencia con elhardware, favoreciendo la reusabilidad del software.La extensión de las variables está normalmente limitadaa la unidad de organización en la cual han sidodeclaradas como locales. Esto significa que susnombres pueden ser reutilizados en otras partes sinconflictos, eliminando una frecuente fuente de errores.Si las variables deben tener una extensión global, han deser declaradas como globales utilizando la palabrareservada VAR_GLOBAL.Pueden ser asignados parámetros y valores iniciales quese restablecen al inicio, para obtener la configuracióninicial correcta.

Configuración, recursos y tareasPara entender ésto mejor, vamos a ver el modelo desoftware, que define IEC-1131-3 (ver figura 2).

Page 2: IEC 1131-3: un recurso de programación estandar - · PDF filecircuitos integrados, IC´s, que representan funciones de control especializadas. ... para codificar expresiones complejas

Al más alto nivel, el elemento software requerido parasolucionar un problema de control particular puede serformulado como una configuración. Una configuraciónes específica para un tipo de sistema de control,incluyendo las características del hardware:procesadores, direccionamiento de la memoria para loscanales de I/O y otras capacidades del sistema.Dentro de una configuración, se pueden definir uno omás recursos. Se puede entender el recurso como unprocesador capaz de ejecutar programas IEC.Con un recurso, pueden estar definidas una o mástareas. Las tareas controlan la ejecución de un conjuntode programas y/o bloques de función. Cada una de ellospuede ser ejecutado periódicamente o por una señal dedisparo especificada, como el cambio de estado de unavariable.Los programas están diseñados a partir de un diferentenúmero de elementos de software, escrito en algunos delos distintos lenguajes definidos en IEC-1131-3.Típicamente, un programa es una interacción deFunciones y Bloques Funcionales, con capacidad paraintercambiar datos. Funciones y bloques funcionalesson las partes básicas de construcción de un programa,que contienen una declaración de datos y variables y unconjunto de instrucciones..Comparado esto con un PLC convencional, éstecontiene un solo recurso, ejecutando una tarea quecontrola un único programa de manera cíclica. IEC 1131-3 incluye la posibilidad de disponer de estructuras máscomplejas. El futuro que incluye multi-procesamiento ygestión de programas por eventos ¡Y no está muy lejos!,observar simplemente las características de los sistemasdistribuidos o los sistemas de control de tiempo real.IEC 1131-3 está disponible para un amplio rango deaplicaciones, sin tener que conocer otros lenguajes deprogramación adicionales.

Unidades de Organización de ProgramaDentro de IEC 1131-3, los programas, bloquesFuncionales y funciones se denominan Unidades deOrganización de Programas, POU´s.FuncionesIEC 1131-3 especifica funciones estándar y funcionesdefinidas por usuario. Las funciones estándar son porejemplo ADD (suma), ABS (valor absoluto), SQRT (raízcuadrada), SIN (seno), y COS (coseno). Las funcionesdefinidas por usuario, una vez implementadas puedenser usadas indefinidamente en cualquier POU.Las funciones no pueden contener ninguna informaciónde estado interno, es decir, que la invocación de unafunción con los mismos argumentos (parámetros deentrada) debe suministrar siempre el mismo valor(salida).Bloques Funcionales, FB´sLos bloques funcionales son los equivalentes de loscircuitos integrados, IC´s, que representan funciones decontrol especializadas. Los FB´s contienen tanto datoscomo instrucciones, y además pueden guardar losvalores de las variables (que es una de las diferenciascon las funciones). Tienen un interfaz de entradas ysalidas bien definido y un código interno oculto, comoun circuito integrado o una caja negra. De este modo,

establecen una clara separación entre los diferentesniveles de programadores, o el personal demantenimiento. Un lazo de control de temperatura, PID,es un excelente ejemplo de bloque funcional. Una vezdefinido, puede ser usado una y otra vez, en el mismoprograma, en diferentes programas o en distintosproyectos. Esto lo hace altamente reutilizable.Los bloques funcionales pueden ser escritos por elusuario en alguno de los lenguajes de la norma IEC,pero también existen FB´s estándar (biestables,detección de flancos, contadores, temporizadores, etc.).Existe la posibilidad de ser llamados múltiples vecescreando copias del bloque funcional que se denominaninstancias. Cada instancia llevará asociado unidentificador y una estructura de datos que contengasus variables de salida e internas.ProgramasLos programas son “un conjunto lógico de todos loselementos y construcciones del lenguaje deprogramación que son necesarios para el tratamiento deseñal previsto que se requiere para el control de unamáquina o proceso mediante el sistema de autómataprogramable”. Un programa puede contener, aparte de ladeclaración de tipos de datos, variables y su códigointerno, distintas instancias de funciones y bloquesfuncionales.

Gráfico Funcional Secuencial (SFC)

E t a p a 1 N L l e n a r

E t a p a 3

E t a p a 2 S V a c i a r

T r a n s i c i o n 1

T r a n s i c i o n 2

SFC describe gráficamente el comportamientosecuencial de un programa de control. Esta definiciónderiva de las Redes de Petri y Grafcet (IEC 848), con lasmodificaciones adecuadas para convertir lasrepresentaciones de una norma de documentación en unconjunto de elementos de control de ejecución para unaPOU de un autómata programable.SFC ayuda a estructurar la organización interna de unprograma, y a descomponer un problema en partesmanejables, manteniendo simultáneamente una visiónglobal. Los elementos del SFC proporcionan un mediopara subdividir una POU de un autómata programableen un conjunto de etapas y transicionesinterconectadas por medio de enlaces directos. Cadaetapa lleva asociados un conjunto bloques de acción ya cada transición va asociada una condición detransición que cuando se cumple, causa ladesactivación de la etapa anterior a la transición y laactivación de la siguiente. Los bloques de acciónpermiten realizar el control del proceso. Cada elementopuede ser programado en alguno de los lenguajes IEC,incluyéndose el propio SFC. Dado que los elementos delSFC requieren almacenar información, las únicas POU´s

Page 3: IEC 1131-3: un recurso de programación estandar - · PDF filecircuitos integrados, IC´s, que representan funciones de control especializadas. ... para codificar expresiones complejas

que se pueden estructurar utilizando estos elementosson los bloques funcionales y los programas.Se pueden usar secuencias alternativas y paralelas,comúnmente utilizadas en muchas aplicaciones. Debidoa su estructura general, de sencilla comprensión, SFCpermite la transmisión de información entre distintaspersonas con distintos niveles de preparación yresponsabilidad dentro de la empresa.

Lenguajes de ProgramaciónSe definen cuatro lenguajes de programaciónnormalizados. Esto significa que su sintaxis y semánticaha sido definida, no permitiendo particularidadesdistintivas (dialectos). Una vez aprendidos se podráusar una amplia variedad de sistemas basados en estanorma.Los lenguajes consisten en dos de tipo literal y dos detipo gráfico:Literales:

§ Lista de instrucciones (IL).§ Texto estructurado (ST).

Gráficos:§ Diagrama de contactos (LD).§ Diagrama de bloques funcionales (FBD).

En la figura superior, los cuatro programas describen lamisma acción. La elección del lenguaje de programacióndepende de:q los conocimientos del programador,q el problema a tratar,q el nivel de descripción del proceso,q la estructura del sistema de control,q la coordinación con otras personas o

departamentos.Los cuatros lenguajes están interrelacionados ypermiten su empleo para resolver conjuntamente unproblema común según la experiencia del usuario.El Diagrama de contactos (LD) tiene sus orígenes enlos Estados Unidos. Está basado en la presentacióngráfica de la lógica de relés. Lista de Instrucciones (IL)es el modelo de lenguaje ensamblador basado unacumulador simple; procede del alemán´Anweisungliste, AWL.El Diagramas de Bloques Funcionales (FBD) es muycomún en aplicaciones que implican flujo de informacióno datos entre componentes de control. Las funciones ybloques funcionales aparecen como circuitos integradosy es ampliamente utilizado en Europa. El lenguaje Textoestructurado (ST) es un lenguaje de alto nivel conorígenes en el Ada, Pascal y ´C´; puede ser utilizadopara codificar expresiones complejas e instrucciones

anidadas; este lenguaje dispone de estructuras parabucles (REPEAT-UNTIL; WHILE-DO), ejecucióncondicional (IF-THEN-ELSE; CASE), funciones (SQRT,SIN, etc.).

Top-down vs. Bottom-up-

La norma también permite dos formas de desarrollar tuprograma de control (ver figura 5): de arriba a abajo(Top-down) y de abajo a arriba (bottom-up). Puedesespecificar inicialmente la aplicación completa y dividirlaen partes, declarar las variables y demás. Tambiénpuedes comenzar la programación desde abajo, porejemplo, por medio de funciones y bloque funcionales.Por cualquiera de los caminos que elijas, IEC-1131-3 teayudará durante todo el proceso.

ImplementacionesCumplir todos los requerimientos de la norma IEC 1131-3no es fácil, por eso se permiten implementacionesparciales en varios aspectos. Esto hace referencia alnúmero de lenguajes que soportan las herramientas dedesarrollo disponibles, y al número de funciones y debloques funcionales. Con ello se deja libertad alsuministrador, pero el usuario debe tener cuidadodurante el proceso de selección de la herramientaadecuada. Incluso una actualización del software puededar lugar a un nivel muy alto de trabajo durante laimplementación.Muchos entornos de programación IEC actuales ofrecenaquello que se espera a nivel de interface de usuario:uso de ratón, menús desplegables, pantallas deprogramación gráfica, múltiples ventanas, ayuda enlínea, verificación durante el diseño, etc. Debe hacersenotar que estos detalles no están especificados en lanorma por lo que es una de las partes donde losproveedores pueden diferenciarse.

ConclusionesLas implicaciones técnicas de la norma IEC 1131-3 sonaltas, dejando bastante espacio para el crecimiento y ladiferenciación. Esto la hace adecuada para entraróptimamente en el próximo siglo.La norma IEC 1131-3 tendrá un gran impacto en elmundo del control industrial y éste no se restringe almercado convencional de los PLC´s. Ahora mismo, sepueden ver adoptada en aplicaciones para control demovimiento, sistemas distribuidos y sistemas de controlbasados en PC (SoftPLC), incluyendo los paquetesSCADA. Y las áreas de su utilización siguen creciendo.

Page 4: IEC 1131-3: un recurso de programación estandar - · PDF filecircuitos integrados, IC´s, que representan funciones de control especializadas. ... para codificar expresiones complejas

El uso de IEC 1131-3 proporciona numerosos beneficiospara usuarios/programadores. Los beneficios de laadopción de este estándar son varios, dependiendo delas áreas de aplicación: control de procesos, integradorde sistemas, educación, programación, mantenimiento,instalación, etc. Vamos a nombrar sólo algunos de estosbeneficios:1. Se reduce el gasto en recursos humanos, formación,

mantenimiento y consultoría.2. Evita las fuentes habituales de problemas por el alto

nivel de flexibilidad y reusabilidad del software.3. Las técnicas de programación son utilizables en

amplios sectores (control industrial en general).4. Combinan adecuadamente diferentes elementos que

pueden provenir de diferentes fabricantes,programas, proyectos...

5. Incrementa la conectividad y comunicación entrelos distintos departamentos y compañías.

El estándar IEC-1131-3 es una realidad en papel. Ahoralos usuarios que aprecian los beneficios del estándardeben demandar productos que cubran susnecesidades, de modo que las empresas proveedoraspuedan amortizar los gastos de desarrollo de lasherramientas adecuadas: ´el problema del huevo y lagallina .́

Para mas información, contactar directamente conPLCopen o a través de la World Wide Web. Ladirección postal de PLCopen es:

PO Box 2015NL 5300 CA ZaltbommelThe Netherlands

Tel.: +31-418-541139Fax: +31-418-516336

www.plcopen.org

Documento traducido para PLCopen por el miembroeducacional:

Área de Ingeniería de Sistemas y AutomáticaUniversidad de OviedoCampus de Viesques s/n

33204 - GijónEspaña