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 | 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
- 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.
- Listas: Lenguaje que describe lo que debe hacer el PLC instrucción por instrucción.
- Alto Nivel: Se caracterizan principalmente por ser visuales, aunque existen también lenguajes escritos de alto nivel.
- 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.
- Diagrama de Bloques Funcionales: Utiliza los diagramas lógicos de la electrónica digital.
- 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)).
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. 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 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. Los contactos, únicos elementos que se colocan a las entradas, son de tipo 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. Las variables a las cuales pueden referirse los contactos son: 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: Otros tipos de elementos de salida son: Temporizadores, Contadores, Saltos, Llamadas y Retornos. 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. La salida del temporizador es cualquier contacto al cual se le haya asignado como variable de referencia el nombre del temporizador. Las opciones de programación de los contadores son: 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.Lenguaje de Plano de Contactos
Reglas del Lenguaje
Elementos del Lenguaje
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
Contacto Variable Normal abierto V V F F Normal cerrado V F F V
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
Definición del Tiempo de Retardo
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 Contadores
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
- M ON, encendido y apagado el motor.
- M_open, direccionamiento del giro al motor necesario para abrir la puerta
- M_close, direccionamiento de giro de cerrar la puerta
- Interruptor ABRIR que accionado ordena la apertura de la puerta y sin accionar ordena que se cierre
Sensores
- S_open, fin de carrera puerta totalmente abierta
- S_close, fin de carrera puerta cerrada
- S_Día, tipo Día/Noche que se activa cuando hay suficiente luz solar
- Bombilla LUZ, para iluminar el pasillo
- Interruptor ILUM, para el encendido manual de la luz del pasillo
- 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
- Posicionamiento de la pieza (en bruto) en el área de estampado
- Accionamiento de la prensa
- Presión de 10 seg.
- Apertura de la prensa
- Reposo de la pieza 3 seg.
- Retiro de la pieza fabricada
El sistema consta de los siguientes componentes:
- Z1, cilindro de simple efecto, encargado de realizar el estampado
- Y1, electro válvula comandado
- S_HEAT, sensor de fin de carrera, el cual detecta cuando Z1 está completamente extendido
- Z2, cilindro de simple efecto, encargado de expulsar la pieza
- Y2, electro válvula comando
- S_INI, 2 sensores de fin de carrera, que indica cuando Z2 está retraído
- S_EXP, sensor que indica cuando Z2 está extendido
- S0, sensor de proximidad que indica cuando la pieza se halla en el área de estampado
- LUZ, luz indicadora de fin de producción
- SIREN, sirena indicadora de fin de producción
- 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