2.Lenguaje de Programacion

36

description

mop

Transcript of 2.Lenguaje de Programacion

Estándares referentes a controladores programable y sus periféricos asociados.

Parte 1: Información general

Establece las definiciones e identifica las principales características significativas a la

selección y aplicación de los controladores programables y sus periféricos.

Parte 2: Equipo requerimientos y pruebas

Especifica los requerimientos del equipo y pruebas relacionadas para los PLC y sus

periféricos asociados.

Parte 3: Lenguajes de programación

Define los elementos básicos de programación. Reglas sintácticas y semánticas para

los lenguajes de programación usados más comúnmente.

Parte 4: Guías de usuario

Reporte técnico que proporciona una vista general y guías de aplicación del estándar

para los usuarios finales del PLC.

Parte 5: Especificación del servicio de mensajería:

Define la comunicación de datos entre los PLC y otros sistemas electrónicos usando

el “Manufacturing Message Specification”(MMS, acorde al ISO/IEC 9506).

Parte 6: Programación en lógica difusa:

Define los elementos básicos de programación en lógica difusa para su uso en PLC.

Parte 7: Guías para aplicación e implementación de lenguajes de

programación:

Proporciona una guía para los desarrolladores de software para los lenguajes de

programación definidos en la parte 3.

Tipos de Datos.

La tipificación de datos previene errores en una etapa temprana. Tipos de datos:

Boolean, Integer, Real, Byte y Word. También Data, Time_of_Day y String.

Variables.

Las variables son únicamente asignadas a direcciones de hardware explicitas (Ej.

Entradas y Salidas) en la configuración recursos o programas. De esta manera se le

da a os programas una independencia de alto nivel del hardware, soportando el re-

uso del software.

Otro aspecto importante es la limitación de la visibilidad de las variables a la unidad

de organización en la que son declaradas. Lo que significa que sus nombres pueden

ser usados nuevamente sin ningún conflicto en otras partes, eliminando otra fuente

de error. Si las variables requieren un alcance global, deben ser declaradas como

tales.

Unidades de Organización del Programa.

En IEC 61131-3 los Programas, Bloque de Función y Funciones son llamados

Unidades de Organización de Programa (program organization units o POUs).

Funciones:

IEC define Funciones Estándar y Funciones Definidas por el Usuario. Las Funciones

Estándar son por ejemplo: ADD (suma), ABS(absoluto), SQRT(cuadrado), SIN(seno),

etc. Las funciones definidas por el usuario son basadas en funciones estándar.

Bloques de Función (FUNCTION BLOCKS FBs):

Los bloques de función son equivalentes a los circuitos integrados y representan una

función de control especializada. Contienen tanto datos como un algoritmo, así que

pueden conservar información de su estado. Ejemplo un PID.

Programas:

Se puede decir que un programa es una red de Funciones y Bloques de Función.

Dentro de la norma se definen dos grupos de lenguajes de programación: uno de

tipo textual y otro de tipo gráfico:

TEXTUALES GRÁFICOS

La elección del lenguaje de programación depende de:

- La formación y experiencia del programador.

- El problema que se atiende (la aplicación particular).

- La estructura del sistema de control.

- La interface con otras personas o departamentos.

Es común en la industria de proceso y representa el comportamiento del

programa mediante un conjunto de bloques de funciones a la manera de los

diagramas de circuitos de electrónica. Esto es: miran al sistema en términos

de flujo de señales entre elementos de procesamiento.

FBD es capaz de soportar:

- Todos los operadores de la norma IEC 61131-3

- Múltiples entradas / múltiples salidas

- Negaciones

- Comentarios

- Salidas SET/RESET

- Saltos

Trabaja con una serie de funciones encadenadas en una

especie de red que realiza una operación lógica o

aritmética, incluye a su vez funciones de salto, de

temporización, entre otras.

Este editor es una implementación de FBD.

Comparado con el FBD el editor CFC permite realizar conexiones

continuas, como por ejemplo una retroalimentación de una salida

en un bloque.

Algunas características del editor son:

- Múltiples entradas / múltiples salidas

- Negaciones / Comentarios / Saltos

- Salidas SET/RESET

- Bloque de función con Enable

TEMPORIZADORES:

Constantes de Tiempo: son generalmente usadas para operar los módulos

estándar de temporizado.

1. La constante de tiempo TIME, posee un tamaño de 32 bits.

Sintaxis: T#<declaración de tiempo>

TEMPORIZADORES:

2. La constante de tiempo LTIME, es soportado como una extensión

estándar como base de tiempo para temporizadores de alta resolución.

Posee un tamaño de 64 bits y una resolución de nanosegundos

Sintaxis: LTIME#<declaración de tiempo>

TEMPORIZADORES:

Bloques de función que encontramos en la librería estándar, existen tres

tipos básicos:

CONTADORES:

Bloques de función que encontramos en la librería estándar, existen tres

tipos básicos:

COMPARADORES:

EQ: Igual que (=)

LT: Menor que (<)

LE: Menor o igual que (≤)

GT: Mayor que (>)

GE: Mayor que (≥)

DETECTORES DE FLANCO:

F_TRIG: Flanco de subida

R_TRIG: Flanco de bajada

MEMORIA:

SR: SET/RESET

OTRAS:

Es un lenguaje de alto nivel, con sus raices de Pascal y

C. contiene todos los elementos esenciales de un

lenguaje de programación moderno, incluyendo

selección del flujo de la ejecución (IF – THEN – CASE -

ELSE – CASE OF) y los lazos de iteración (FOR,

WHILE Y REPEAT), que pueden ser anidados. Este

lenguaje resulta excelente para la definición de bloques

de función complejos que pueden ser usados en

cualquiera de los otros lenguajes. Ejecuciones basadas

en condiciones.

Lenguaje de programación similar al assembler. Seguidilla

completa de instrucciones ejecutadas de manera secuencial.

Debido a que se inicia siempre con una instrucción, se

requiere un espacio de memoria para el almacenamiento

temporal de los resultados de las operaciones que se leven

acabo, por lo que dichas operaciones se llevan a cabo a

través de un acumulador.

No soporta operandos como la programación estructurada.

Tiene sus raíces en USA. Originado desde la lógica

cableada, por lo que es similar en desarrollo a proceso para

el diseño de circuitos eléctricos lógicos de control.

Describe gráficamente el comportamiento secuencial de un programa de control.

Se deriva de sus antecesores “Petri Nets” y del IEC848 Grafcet.

Método: Estructura la organización interna de un programa y ayuda a

descomponerlo en partes más fácilmente manejables, mientras mantiene la visión

general.

Descripción: Consiste en “Pasos” enlazados con “Bloques de Acción” y

“Transiciones”. Cada paso representa un estado particular del sistema que se

esta controlando. Una transición se asocia a una condición o condiciones, que

cuando es cierta causa que el paso previo se desactive y el paso próximo se

active. Los pasos están ligados a bloques de acción, que ejecutan algunas

acciones de control pertinentes a dicho paso.

Características:

Cada elemento del diagrama puede ser programado en cualquiera de los lenguajes

definidos por el estándar IEC, incluido el propio SFC.

Se pueden usar secuencias alternativas o incluso paralelas según se requiere con

frecuencia en los procesos por lotes (tipo batch).

Por su estructura general, SFC proporciona un medio de comunicación o

entendimiento entre personas de diferentes especialidades.

Diseñar un programa que

permita que una luz

encienda por cuatro (4)

segundos, luego de que se

active un entrada

etiquetada como INICIO.

Diseñar un programa

para encender y

apagar una MOTOR,

desde dos entradas

diferentes; una

etiquetada como

MARCHA y otra

etiquetada como

PARO. De manera

adicional, contar el

número de veces que

el cambio sucede.

Diseñar un programa para el control de dos luces intermitentes (LUZ1, LUZ2),

utilizando un solo pulsador (INICIO). De la siguiente manera:

1. Al activar INICIO se debe encender la luz de destello LUZ1, con intermitencia

de 4 segundos.

2. Al desactivar INICIO se detiene la luz anterior, y la luz de destello LUZ2, se

enciende con intermitencia de 2 segundos.

3. Al activar de nuevo INICIO, ambas luces prenderán y apagaran de manera

simultanea con una frecuencia de 1HZ.

4. Al desactivar INICIO el sistema queda listo para iniciar de nuevo.

Ahora, defina una nueva entrada, etiquetada como SELECTOR, si el este se

encuentra inactivo, se ejecutará el ejercicio anterior, de lo contrario, se debe iniciar

el programa intercambiando el orden de los pasos , de la siguiente forma: 3,2,1.