Buscando...
30/12/08

Lenguajes de Programación en PLC

Los lenguajes de programación son necesarios para la comunicación entre el usuario, sea programador u operario de la máquina o proceso donde se encuentre el PLC y el PLC. La interacción que tiene el usuario con el PLC la puede realizar por medio de la utilización de un cargador de programa también reconocida como consola de programación o por medio de un PC. En procesos grandes o en ambientes industriales el PLC recibe el nombre también de API (Autómata Programable Industrial) y utiliza como interfase para el usuario pantallas de plasma, pantallas de contacto (touch screen) o sistemas SCADA (sistemas para la adquisición de datos, supervisión, monitoreo y control de los procesos), cuyo contenido no serán presentados ni tenidos en cuenta en este artículo.

Clasificación de los Lenguajes de Programación

Los lenguajes de programación para PLC son de dos tipos, visuales y escritos. Los visuales admiten estructurar el programa por medio de símbolos gráficos, similares a los que se han venido utilizando para describir los sistemas de automatización, planos esquemáticos y diagramas de bloques. Los escritos son listados de sentencias que describen las funciones a ejecutar.


Los programadores de PLC poseen formación en múltiples disciplinas y esto determina que exista diversidad de lenguajes. Los programadores de aplicaciones familiarizados con el área industrial prefieren lenguajes visuales, por su parte quienes tienen formación en electrónica e informática optan, inicialmente por los lenguajes escritos.

Niveles de los Lenguajes

Los lenguajes de programación de sistemas basados en microprocesadores, como es el caso de los PLC, se clasifican en niveles; al microprocesador le corresponde el nivel más bajo, y al usuario el más alto.

Tipos Descripción Nivel Características



Acceso a los recursos Preferencias de uso
Visuales Utilizan los símboloes de planos esquemáticos y diagramas de bloques Alto Restringido a los símbolos que proporciona el lenguaje Profesionales en áreaas de automatización industrial, mecánica y afines
Escritos Utilizan sentencias similares a las de programación de computadoras Bajo Total a los recursos de programación Profesionales en área de electrónica e informática

Lenguajes de Bajo Nivel

  • Lenguaje de Máquina: Código binario encargado de la ejecución del programa directamente en el microprocesador.
  • Lenguaje Ensamblador: Lenguaje sintético de sentencias que representan cada una de las instrucciones que puede ejecutar el microprocesador. Una vez diseñado un programa en lenguaje ensamblador es necesario, para cargarlo en el sistema, convertirlo o compilarlo a lenguaje de máquina. Los programadores de lenguajes de bajo nivel deben estar especializados en microprocesadores y demás circuitos que conforman el sistema.


Lenguajes de Alto Nivel

Se basan en la construcción de sentencias orientadas a la estructura lógica de lo deseado; una sentencia de lenguaje de alto nivel representa varias de bajo; cabe la posibilidad que las sentencias de un lenguaje de alto nivel no cubran todas las instrucciones del lenguaje de bajo nivel, lo que limita el control sobre la máquina. Para que un lenguaje de alto nivel sea legible por el sistema, debe traducirse a lenguaje ensamblador y posteriormente a lenguaje de máquina.


Lenguajes de Programación para PLC

Los fabricantes de PLC han desarrollado una cantidad de lenguajes de programación en mayoría de los casos siguiendo normas internacionales, con el fin de suplir las necesidades y expectativas de los programadores.

En la siguiente tabla se presentan lenguajes de uso común.

Lenguaje Características Ejemplos Tipo Nivel
Listas Lista de instrucciones IL
AWL
STL
IL/ST
Escrito Bajo
Plano Diagrama eléctrico

LADDER
LD
KOP

Visual Alto
Diagrama de bloques funcionales Diagrama lógico FBD
FBS
FUD
Organigrama de bloques secuenciales Diagrama algorítmico AS
SFC
PETRI
GRAFSET
Otros Lenguajes usados en otras áreas de computación BASIC
C
Escrito

* Los nombres fueron asignados por el fabricante.

Niveles de los Lenguajes Específicos para PLC

  1. Bajo Nivel: En el ámbito de programación de PLC no se utiliza directamente el lenguaje de máquina o del ensamblador. Se emplea el lenguaje de lista de instrucciones, similar al lenguaje ensamblador, con una sintaxis y vocabulario acordes con la terminología usada en PLC.
  2. Listas: Lenguaje que describe lo que debe hacer el PLC instrucción por instrucción.
  3. Alto Nivel: Se caracterizan principalmente por ser visuales, aunque existen también lenguajes escritos de alto nivel.



  4. Diagrama de Contactos: Representa el funcionamiento deseado, como en un circuito de contactores y relés, fácil de entender y utilizar para usuarios con experiencia en lógica alambrada. En general, nos referimos a este lenguaje como LADDER (escalera), ya que la forma de construcción de su esquema se asemeja a una escalera.



  5. Diagrama de Bloques Funcionales: Utiliza los diagramas lógicos de la electrónica digital.



  6. Organigrama De Bloques Secuenciales: Explota la concepción algorítmica que todo proceso cumple con una secuencia. Estos lenguajes son los más utilizados por programadores de PLC con mayor trayectoria.


Reflexiones sobre lo visto

No podemos decir que alguno de los lenguajes abordados hasta el momento sea mejor que otro, cada uno de ellos cumple con una función propia que depende del tipo de aplicación.

Para aprender PLC es necesario saber cuando menos un lenguaje de programación. Desarrollaremos el Plano de Contactos y Lista de instrucciones.

Operaciones Lógicas

Las operaciones lógicas más utilizadas son: AND, OR, NOT, EXOR. A continuación se presentan las tablas de verdad que las definen.

Los programadores de PLC tienen formación en múltiples disciplinas y esto determina que exista una diversidad de lenguajes. Los programadores de aplicaciones familiarizados con el área industrial prefieren lenguajes visuales, por su parte quienes tienen formación en electrónica o informática optan inicialmente por los lenguajes escritos.

AND - Conjunción

La operación lógica AND -conjunción- entrega como resultado V si todas las entradas son V. Esta se aplica en situaciones en las que se requiere realizar una acción si y sólo sí se cumplen un determinado número de condiciones. En lenguaje de contactos se realiza disponiendo los contactos en serie.

Entradas Salidas
A B Y
F F F
F V F
V F F
V V V

Ejemplo: En el circuito se activa Q1.2 cuando I1.0, I1.1 e I1.2 son verdaderas. De hecho, el PLC evalúa la rama ejecutando la operación lógica Q1.2 = I1.0 AND I1.1 AND I1.2


OR - Disyunción

La operación lógica OR -disyunción - entrega como resultado V siempre que alguna de las entradas sea V, lo que se logra poniendo los contactos en paralelo.

Entradas Salidas
A B Y
F F F
F V V
V F V
V V V

Ejemplo: En el circito se activa Q1.3 si alguna de las entradas I1.0 o I1.1 se activa. La operación lógica es Q1.3 = I1.0 OR I1.1.


NOT - Inversión

La operación lógica NOT – inversión- entrega como resultado el estado contrario al presente en la entrada, esto se logra con el uso de Contactos Normal Cerrado.

Entradas Salidas
A Y
F V
V F

Ejemplo: Función y operación realizada es Q1.0 = NOT I1.0.


EXOR - OR - Exclusiva

La EXOR - OR -exclusiva- es V si alguna de las entradas, pero nunca ambas, es V también; se puede decir que es V si y sólo si las entradas son distintas. Analicemos detenidamente el circuito que la realiza.

Entradas Salidas
A B Y
F F F
F V V
V F V
V V F

Ejemplo: Para realizar la operación Q1.0 = I1.0 EXOR I1.1, se debe efectuar una combinación de operaciones AND y OR: Q1.0 = ((I1.0 AND (NOT I1.1)) OR ((NOT I1.0) AND I1.1)).


Lenguaje de Plano de Contactos

En el lenguaje de contactos es frecuente aquel caso en el cual las operaciones lógicas deben resolverse a partir de contactos normal abierto y normal cerrado.


El esquema se realiza entre dos líneas o barras de alimentación dispuestas verticalmente a ambos lados del diagrama, entre ellas se dibujan los elementos del lenguaje.


A la derecha del esquema se ubican los elementos de salida y a la izquierda los de entrada


El diagrama puede tener varias ramas o escalones.


Cada rama permite ubicar varios elementos de entrada pero sólo uno de salida.


La programación en cada bloque de contactos se realiza en el orden de izquierda a derecha.


El sentido de programación de los bloques de contactos de un programa de ejecuta en el sentido de arriba abajo.


Reglas del Lenguaje

El número de contactos que se pueden colocar en un bloque, desde el comienzo de la linea principal hasta la salida, es ilimitado. Limitación práctica: Anchura del papel cuando queramos sacar el programa por impresora o anchura en el amhiente de programación.


No se puede conectar una salida directamente a la línea principal, en estos casos se intercala un contacto cerrado de una marca o bit o relé interno cualquiera.

Con relación a los contactos, tenga presente lo siguiente

  • Contactos de entrada: El número de contactos abiertos o cerradas que se pueden utilizar en un programa, por cada una de las entradas, es ilimitado, es decir que, se puede repetir el mismo número de contacto cuantas veces se quiera.
  • Contactos de salida: El número de salidas o bobinas de salidas o relés de salida OUT es fijo, por lo que no se puede repetir un mism número de salida. Sin embargo, el número de contactos asociados a cada una de ellas es ilimitado.

Elementos del Lenguaje

Se clasifican en elementos de entrada y salida. Su estado es evaluado por el PLC para determinar un valor lógico, que recibe distintas denominaciones dependiendo del contexto de trabajo.

A continuación, se presenta una tabla donde se relacionan las denominaciones de los contextos con las usadas en este curso (activo e inactivo).

Contexto Activo Inactivo
Informática True / Verdadero False / Falso
Algebra de Boole V / 1 F / 0
Electrónica digital High / H Low / L

Elementos de entrada

Los contactos, únicos elementos que se colocan a las entradas, son de tipo

  • normal abierto
  • normal cerrado

Encima del contacto se escribe la variable a la cual hace referencia. El valor lógico del contacto depende directamente del valor lógico de su variable. Para los contactos normal abierto, si la variable es V el contacto también será V y, si la variable es F el contacto será F. Los contactos normal cerrado toman el valor inverso de su variable, si la variable es V el contacto será evaluado como F y viceversa.

Contacto Variable
Normal abierto V V
F F
Normal cerrado V F
F V

Las variables a las cuales pueden referirse los contactos son:

Variable Contacto Ejemplo
Entradas digitales Entrada digital l1.3
Salidas digitales Valor salida digital Q0.0
Bits en memoria Bit localizado en la memoria con posibilidad de ser definido por el usuario (también se conocen como relés internos, bits de estado, control de temporizadores y contadores)


Elementos de salida

A los elementos de salida, al igual que para la entrada, se les escribe la variable a la cual están referidos. El valor lógico del elemento de salida es determinado por el PLC a partir de los elementos de entrada. El elemento de salida principal se denomina Asignación o Bobina. Las bobinas son de tres tipos:

  • Asignación simple: su valor lógico es igual al resultado de la combinación de los contactos en la rama. Si el resultado de la evaluación de los contactos es V entonces la bobina será V; si el resultado es F, la bobina toma el valor F.
  • Puesta a uno (SET): cuando llega el valor V a esta bobina, su variable asociada se pone y mantiene indefinidamente en estado V sin imporar que a la bobina llegue posteriormente un valor F. Una vez retenida la variable en el valor V, para pasarla a F será necesario el uso de una bobina de puesta a 0.
  • Puesta a cero (RESET): Cuando llega un valor V a esta bobina, su variable asociada se pone y mantiene indefinidamente en estado F sin importar que a la bobina llegue posteriormente un valor F. la única manera de cambiar el estado de la variable es usando una bobina de puesta a 1.

Otros tipos de elementos de salida son: Temporizadores, Contadores, Saltos, Llamadas y Retornos.


  • Temporizadores: En las tablas, a continuación, se listan los diversos tipos de temporizadores disponibles en lenguaje de plano de contactos especificando su simbología y diagrama de tiempos.


Definición del Tiempo de Retardo

El Tiempo de Retardo (T#xx) se establece:

En la parte superior del símbolo de disparo del temporizador, en segundos o en milisegundos. Mediante el formato T#multiplicador.escala, como producto entre la base de tiempo estipulada por la escala y multiplicador. Así que

Retardo = base de tiempo * multiplicador

Observe en la tabla los posibles valores de base de tiempo.

Valor de escala Base de tiempo Ejemplo
0 0.01 S T#20.0 Retardo = 0.2 S
1 0.1 S T#15.1 Retardo = 1.5 S
2 1 S T#30.1 Retardo = 30 S
3 10 S T#60.3 Retardo = 600 S

La salida del temporizador es cualquier contacto al cual se le haya asignado como variable de referencia el nombre del temporizador.

Contadores

Las opciones de programación de los contadores son:

  • Asignación: con este elemento se define el nombre del contador a ser utilizado y el valor inicial de la cuenta
  • Cuenta ascendente: un flanco de subida en la entrada del elemento hace que el valor de la cuenta se incremente en 1. El flanco de subida se define como el cambio de una señal de F a V.
  • Cuenta descendente: con un flanco de subida se hace que el valor de la cuenta descienda en 1.
  • Reposición: obliga a que el contador se reinicie con su valor inicial.

La salida de un contador es un contacto cuya variable de referencia sea el nombre del contador, la variable es F mientras el valor de la cuenta sea 0 y es V si la cuenta es diferente de 0.


Ejemplos de Aplicación: Control de apertura y cierre de puerta con luz de pasillo temporizada

Supongamos que para proveer el control automático de una puerta disponemos de los siguientes componentes: Motor M1 eléctrico para abrir y cerrar la puerta

Contactores

  1. M ON, encendido y apagado el motor.
  2. M_open, direccionamiento del giro al motor necesario para abrir la puerta
  3. M_close, direccionamiento de giro de cerrar la puerta
  4. Interruptor ABRIR que accionado ordena la apertura de la puerta y sin accionar ordena que se cierre

Sensores

  1. S_open, fin de carrera puerta totalmente abierta
  2. S_close, fin de carrera puerta cerrada
  3. S_Día, tipo Día/Noche que se activa cuando hay suficiente luz solar
  4. Bombilla LUZ, para iluminar el pasillo
  5. Interruptor ILUM, para el encendido manual de la luz del pasillo
  6. Cuando se activa ABRIR la puerta debe abrirse y al desactivarse la puerta debe cerrarse.

Ejemplos de Aplicación: Estampadora

En una línea de producción en serie se estampan 1500 piezas, el proceso inicia al presionar el pulsador y termina cuando se enciende una luz y suena una sirena para dar aviso que se han fabricado las 1500 piezas. Cuando se posiciona una pieza en el área de estampado se acciona la prensa la cual se mantiene presionando la pieza durante 10 segundos, al cabo de los cuales se retira la prensa. Se esperan tres segundos adicionales para que la pieza repose y entonces se retira. Desde un proveedor se desplazará, por gravedad, otra pieza al área de estampado.

Proceso del Estampado

  1. Posicionamiento de la pieza (en bruto) en el área de estampado
  2. Accionamiento de la prensa
  3. Presión de 10 seg.
  4. Apertura de la prensa
  5. Reposo de la pieza 3 seg.
  6. Retiro de la pieza fabricada


El sistema consta de los siguientes componentes:

  1. Z1, cilindro de simple efecto, encargado de realizar el estampado
  2. Y1, electro válvula comandado
  3. S_HEAT, sensor de fin de carrera, el cual detecta cuando Z1 está completamente extendido
  4. Z2, cilindro de simple efecto, encargado de expulsar la pieza
  5. Y2, electro válvula comando
  6. S_INI, 2 sensores de fin de carrera, que indica cuando Z2 está retraído
  7. S_EXP, sensor que indica cuando Z2 está extendido
  8. S0, sensor de proximidad que indica cuando la pieza se halla en el área de estampado
  9. LUZ, luz indicadora de fin de producción
  10. SIREN, sirena indicadora de fin de producción
  11. START, pulsador inicio de producción

Iniciemos con la asignación de circuitos:

Símbolo Variable Descripción
START 10.0 Pulsador, accionado por el operario para iniciar la producción
S_HEAT 10.1 Fin de carrera, indica que Z1 está en posición de estampado
S_INI 10.2 Fin de carrera, indica que Z2 está en su posición inicial
S_EXP 10.3 Fin decarrera, indica que Z2 acaba de expulsar la pieza
S0 10.4 Detector de proximidad, indica que hay una pieza en el área de estampado
Y1 Q0.0 Cilindro de simple efecto, conforma la prensa de estampado
Y2 Q0.1 Cilindro de simple efecto, para retirar la pieza procesada
LUZ Q0.2 Bombilla, indica al operario que la producción se completó
SIREN Q0.3 Sirena, indica al operario que la producción se completó
T_ESTAMP T1 Temporizador de retardo de conexión utilizado para contar los 10 segundos de prensado de la pieza
T_COLD T2 Temporizador de retardo de conexión memorizado, para contar el tiempo de reposo de la pieza
CUENTA C1 Contador, para contar los 1500 estampados
MO M0.0 Marcador interno, 1 = en produccion, 0 = fin de producción

MO, bit en memoria, señala que el proceso de producción esta en marcha, se activa al presionar el botón de START y se desactiva cuando el contador desciende hasta 0 (cero).

El contador CUENTA es inicializado por START. MO debe encargarse de que la CUENTA sólo se inicie una vez durante la producción ya que el botón START podría presionarse varias veces, accidentalmente, durante el proceso.

(SET M0) = (NOT MO) AND (START).
(C1, #1500) = (NOT MO) AND (START).

Z1 avanza cuando se está en producción, caso en el cual una hay pieza localizada en el área de estampado, y por ende el cilindro expulsor Z2 esta retraído. (SET Y1) = M0 AND INI AND S0.

Z1, se retraerá cuando T_STAMP completa su tiempo de retardo.
(RESET Y1) = T_STAMP.

El disparo a T_STAMP se efectúa cuando Z2 alcanza la posición HEAT.
(T_STAMP, T#10Seg)= HEAT.

Se aprovecha HEAT para disparar T_COLD, por 3 segundos más.
(T_COLD, T#13Seg)= HEAT.

Al cabo del retardo de T_COLD se inicia el proceso de expulsión.
(SET Y2)= T_COLD.

Z2 se retrae con la señal S_EXP, siendo necesario efectuar la reposición del temporizador T_COLD
(RESET Y2)= S_EXP.
(RESET T_COLD)= S_EXP.

Al alcanzar Z2 a INI se aprovecha para el contador CUENTA descienda
(conteo descedente CUENTA)= INI.

En este punto el sistema está listo para un nuevo ciclo de estampado. Al cumplirse los 1500 ciclos el valor de la cuenta habrá llegado a 0 (cero), con lo cual se debe desactivar MO y encender la luz y la sirena.

(RESET MO)= (NOT CUENTA).
LUZ= (NOT CUENTA).
SIREN= (NOT CUENTA).

El Programa

0 comentarios:

Publicar un comentario

 
Volver al Inicio!