Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán...

13
Curso sobre Controladores Lógicos Programables (PLC). Por Ing. Norberto Molinari. Entrega Nº 15. Capitulo 4 Otros Lenguajes de Programación Introducción Existen además de los lenguajes antes mencionados ( Ladder y Lista de Instrucciones), otros que en menor ó mayor grado también son muy adecuados cuando trabajamos como ser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos dos lenguajes de programación. Estructura del Programa STL El lenguaje STL le permite al programador resolver tareas de control usando expresiones sencillas en Inglés, las que describen la operación deseada del controlador. La naturaleza modular del lenguaje permite al programador resolver tareas complejas de una manera eficiente. El lenguaje STL como se describe aquí se aplica a los controladores de Festo Modelos FPC100 B / AF, FPC405, FEC, IPC y SF03. La información contenida en este documento se corresponde con el lenguaje STL Según la implementación del FST Software Versión 3.X. Los programas en Statement List están construidos usando diferentes elementos importantes. No es necesaria la totalidad de estos elementos, siendo además importante la forma en que esos elementos son combinados ya que influyen de modo importante en la operación del programa.

Transcript of Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán...

Page 1: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Curso sobre Controladores LógicosProgramables (PLC).

Por Ing. Norberto Molinari.

Entrega Nº 15.

Capitulo 4

Otros Lenguajes de ProgramaciónIntroducción

Existen además de los lenguajes antes mencionados ( Ladder y Lista de Instrucciones),otros que en menor ó mayor grado también son muy adecuados cuando trabajamos comoser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET,aquí daremos una breve descripción de estos dos lenguajes de programación.

Estructura del Programa STL

El lenguaje STL le permite al programador resolver tareas de control usando expresionessencillas en Inglés, las que describen la operación deseada del controlador.

La naturaleza modular del lenguaje permite al programador resolver tareascomplejas de una manera eficiente.

El lenguaje STL como se describe aquí se aplica a los controladores de FestoModelos FPC100 B / AF, FPC405, FEC, IPC y SF03.La información contenida en este documento se corresponde con el lenguaje STL Según laimplementación del FST Software Versión 3.X.Los programas en Statement List están construidos usando diferentes elementosimportantes. No es necesaria la totalidad de estos elementos, siendo además importante laforma en que esos elementos son combinados ya que influyen de modo importante en laoperación del programa.

Page 2: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Jerarquía de los Elementos STL

PROGRAMSTEPSENTENCECONDITIONAL PARTEXECUTIVE PART

Instrucción Step

Aunque el uso de la instrucción STEP (Paso) es opcional, la mayoría de los programasrequieren su uso. La instrucción STEP se utiliza para marcar el comienzo de un bloquelógico de código de programa. Cada programa STL puede contener hasta 255 STEPSdiscretos, pudiendo cada uno de estos STEP incluir una o más Sentences (o enunciados).

Cada Step puede tener asignada una etiqueta (label), esto es a voluntad del programador, ypuede ser requerida para referencia futura del Step.Un Label para un Step solo es requerido si el Step respectivo será asignado como destinopor una instrucción de salto (Jump). Más adelante, después de la introducción de Sentencesse presenta una descripción más detallada de Step

Sentences ô Sentencias

La Sentence (Sentencia: oración o enunciado) forma el nivel más básico de la organizacióndel programa. Cada Sentence consiste en una Parte Condicional y una Parte Ejecutiva.

La Parte Condicional sirve para enumerar una o más condiciones que deben evaluarsecuando el programa está corriendo y que pueden ser ciertas o falsas.La parte Condicional siempre comienza con la expresión lF y continúa con uno o másenunciados que describen las condiciones a ser evaluadas.

Si las condiciones programadas son evaluadas como true (verdaderas), entonces cualquierinstrucción programada en la parte Ejecutiva será cumplida.El comienzo de la parte Ejecutiva está marcado por la expresión THEN.

Sentencias Típicas

El siguiente capitulo presenta varias sentencias típicas en STL sin el uso de la instrucciónStep.

Page 3: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

IF I1.0 Si lnput 1.0 está activaTHEN SETO1.2 entonces conmutar a si Output 1.2IF N I2.0 Si lnput 2.0 NO está activaTHEN SET O2.3 entonces conmutar a si Output 2.3IF I6.0 Si Input 6.0 está activaAND N I2.1 y la Input 2.1 no está activaAND O3.1 y la Output 3.1 está activaTHEN RESET O2.1 entonces apagar Output 2.1RESET T6 y reset Timer 6

En el ultimo ejemplo, se ha introducido el principio de condiciones compuestas.Es decir, todas las condiciones establecidas en la sentencia deben cumplirse (serverdaderas) para que las acciones después de la expresión THEN sean ejecutadas.

Más Ejemplos

IF I3.2 Si Input 3.2 está ActivaORN T6 o Timer 6 NO está corriendoTHEN INC CW1 entonces incrementar Counter1SET T4 y arrancar Timer 4 con parámetros preexistentes

Este ejemplo muestra el uso de la estructura OR en la parte condicional de una sentencia.Por lo tanto, la sentencia será evaluada como verdadera (y se incrementará el Contador 1 yse arrancará el Timer 4) si alguna o ambas de las condiciones establecidas son ciertas.

La próxima sentencia introduce el uso de paréntesis en la parte condicional para establecerla forma en que las condiciones son evaluadas.

IF (11.1 Si lnput 1.1 está Activa YAND T4 ) Timer 4 está corriendoOR (I1.3 O si lnput 1.3 está ActivaAND I1.2 ) e Input 1.2 está Activa

Hemos usado la instrucción OR para combinar por medio del paréntesis dos condicionescompuestas.

Los ejemplos previos se han introducido para mostrar el uso de sentencias en el LenguajeStatement List. Es posible crear programas enteros que consistan solo en múltiplessentencias sin usar la instrucción STEP.

Page 4: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

A los programas construidos de esta forma se les llaman programas paralelos.Estos programas se comportan casi de la misma forma que los programas en el LenguajeLadder Diagram. Esto es sin usar la instrucción Step.

Para que estos programas puedan funcionar y ser procesados continuamente, es necesarioagregar la instrucción PSE

Comparación con el Ladder Diagram

Para quienes están familiarizados con el Lenguaje Ladder Diagram, puede decirse que haygran similitud entre una sentencia STL y una rama en Ladder Diagram.

Por ejemplo, una rama en Ladder Diagram para activar una salida (ponerla a ON) siempreque la entrada esté activa, y apagarla (OFF) cuando la entrada esté inactiva seria de lasiguiente forma

Fig. 4.1

Mientras que la sentencia equivalente STL seria:

IF I1.0 Si lnput 1.0 está activaTHEN SET 02.6 entonces conmutar a si Output 2.6PSE fin de programaOTHRW RESET 02.6 de otra forma apagar Output 2.6PSE fin de programa

Se verá la inclusión de la instrucción OTHRW en este ejemplo. El lenguaje STL requiereinstrucciones explícitas para alterar el estado de cualquier operando (por Ej. Output, Timer,Counter).

La instrucción PSE se coloca al final de la sección del programa paralelo para forzar alprograma a ejecutarse continuamente retornando a la primera sentencia del Step corriente oa la primera sentencia del programa si no hubiera Steps..

Page 5: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Instrucción Step

Los programas que no usan la instrucción STEP son procesados en forma paralela(barrido).Aunque este tipo de programa puede ser apto para resolver cierto tipo de tareas decontrol, el lenguaje STL provee la instrucción STEP.

Esta instrucción permite que los programas sean divididos en secciones discretas (STEPS)que serán ejecutadas independientemente.En su forma más simple un STEP, incluye al menos una sentencia y toma la siguienteforma:

STEP (label)IF I1.0 Si la lnput 1.0 es ActivaTHEN SET 02.4 entonces activar Output 2.4 y proceder al próximo step

Es importante comprender que el programa esperará en este Step hasta que las condicionessean ciertas, en ese momento las acciones serán ejecutadas y entonces, sólo entonces, elprograma seguirá al próximo Step.

La etiqueta (label) del Step solo es requerida si un Step será el destino de una instrucción desalto (JUMP) Debe notarse que cuando el software FST carga los programas STL en elPLC, asigna números relativos de Step a cada uno de estos. Estos números sonreproducidos en los listados de programas, siendo de gran ayuda para monitorear laejecución de programas On-Line con propósito de búsqueda de fallas (debugging). LosStep de un programa, pueden, incluir múltiples sentencias:

STEPIF I2.2 Si lnput 2.2 es ActivaTHEN SET 04.4 Conmutar a activa Output 4.4IF I1.6 Si Input 1.6 es ActiveTHEN RESET 02.5 Apagar Output 2.5SET 03.3 y activar Output 3.3

En el ejemplo previo, se ha introducido el concepto de múltiples Sentencias dentro de unStep único. Cuando el programa alcanza este Step, procesará la primera sentencia (en estecaso en panicular activando la salida Output 4.4 si la entrada lnput 2.2 está activa) y luegose moverá a la segunda sentencia sin importar si las condiciones de la primera sentenciafueron verdaderas.

Cuando la última (en este caso la segunda) sentencia de un Step es Procesada, si la parteCondicional es verdadera, entonces la parte Ejecutiva será llevada a cabo y el programaprocederá al próximo Step.

Page 6: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Si la parte Condicional de la última sentencia es no verdadera, entonces el programaretornará a la primera sentencia del Step actual.

Nota:

Es importante comprender al desarrollar programas o Steps que contengan múltiplesSentencias, que estas serán procesadas en forma paralela (barrido); que cada vez quela parte Condicional de una Sentencia sea evaluada como verdadera, las instruccionesprogramadas en la parte Ejecutiva serán Ejecutadas. Esto debe ser considerado paraevitar ejecución múltiple descontrolada tales como SET TIMER (arrancar un timer) oINC / DEC counter (incrementar / decrementar un contador).El lenguaje STL no usa condiciones de 'disparo por flancos', las condiciones seevalúan por verdadero o falso sin importar el estado previo.Esta situación es fácilmente manejada usando Steps, Flags u otro medio de control.

Reglas de Ejecución

Las siguientes líneas pueden aplicarse como guía para determinar como los Steps y lassentencias serán procesados por el PLC:

• Si las Condiciones de una Sentencia se cumplen, entonces las Acciones programadasserán Ejecutadas.

• Si las Condiciones de la última (o única) sentencia dentro de un Step se cumplen,entonces las Acciones programadas serán Ejecutadas y el programa procederá alpróximo Step.

• Si las Condiciones de una Sentencia no se cumplen, entonces el programa se moverá ala Sentencia siguiente en el Step actual.

• Si las Condiciones de la última (o única) sentencia dentro de un Step no se cumplen,entonces el programa retornará a la primera sentencia del Step actual.

La siguiente figura ilustra la estructura de proceso de un step STL. Usando variascombinaciones de Steps con una o varias Sentencias, el lenguaje STL brinda un ampliorango de posibilidades para resolver las más complejas tareas

Page 7: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Fig. 4.2

Modificando el Flujo del Programa

Además de las estructuras de control inherentes dentro de la instrucción Step, hay variasinstrucciones adicionales STL disponibles para modificar el criterio de ejecución de losSteps y Sentencias del programa.

Instrucción NOP

La instrucción NOP puede usarse en la parte Condicional o en la Ejecutiva de unasentencia.Si es usada NOP en la parte Condicional, siempre es evaluada como verdadera. Lainstrucción NOP puede usarse para la ejecución incondicional de una sentencia.

Page 8: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

IF NOP esto siempre es verdaderoTHEN SET O1.0 entonces Output 1.0 será siempre activada cuando

el programa ejecute esta línea.

El uso típico puede verse en el ejemplo siguiente. El programador desea que cuando laejecución del programa llegue al Step 50, se verifiquen determinadas condiciones, y encaso de ser estas verdaderas se ejecuten las acciones apropiadas.

Sin embargo, sin importar si alguna de las condiciones se cumplen, después de pasarexactamente una vez el programa encenderá la Output 3.6 y procederá al próximo Step estoes porque hemos forzado la última sentencia a ser verdadera mediante la instrucción NOP

STEP 50IF I1.0 Si lnput 1.0 es ActivaTHEN SET 02.2 entonces activar Output 2.2IF N I3.5 Si Input 3.5 Ni es ActivaAND I4.4 e lnput 4.4 es ActivaTHEN RESET O1.2 entonces apagar Output 1.2IF T3 Si Timer 3 está corriendoTHEN SET F0.0 entonces set Flag 0.0IF NOP En cualquiera de los casos nos aseguramos que la

ULTIMA sentencia sea SIEMPRE verdadera.

La instrucción NOP puede usarse en la parte Ejecutiva de una sentencia.Cuando se la usa de esta forma, un NOP es equivalente a 'hacer nada'. Se usa a menudocuando el programa debe esperar por ciertas condiciones y luego proceder al próximo Step.

IF I3.2 si lnput 3.2 es ActivaTHEN NOP no hacer nada e ir al próximo stepTHEN SET 03.6 encender Output 3.6 , salir de este Step e ir

al próximo Step.

Page 9: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Instrucción JUMP

Otra instrucción STL que puede usarse para modificar el flujo de ejecución del programa esla instrucción JMP.La instrucción JMP permite al programa ramificarse. Modificando el ejemplo previo esposible consultar las condiciones de cada sentencia y si se cumplen ejecutar la acciónprogramada y luego saltar (JUMP) al Step designado del programa.

STEP 50IF I1.0 Si lnput 1.0 es ActivaTHEN SET O2.2 encenderOutput2.2JMP TO 70 y saltar a Step label 70IF N I3.5 Si lnput 3.5 NO es ActivaAND I4.4 e lnput 4.4 es ActivaTHEN RESET O1.2 apagar Output 1.2JMPTO 6 y saltar a Step label 6IF T3 si Timer 3 está corriendoTHEN SET F0.0 entonces set Flag 0.0IF NOP Siempre verdadero, luego...THEN SET 03.6 encender Output 3.6 e ir al próximo paso.

Puede verse que no solamente hemos alterado el flujo del programa, sino que ademáshemos establecido prioridades entre las sentencias.

Por ejemplo, las sentencias 2, 3 y 4 solamente tendrán la posibilidad a ser procesadas si lasentencia 1 es falsa y por lo tanto no ejecutada; si la sentencia 1 se ejecuta, el programasaltará (Jump) al Step 70 sin haber procesado ninguna de las sentencias siguientes en elStep 50.

Instrucción OTHRW

La instrucción OTHRW (otherwise - traducido: por otra parte/sino-) puede cambiar el flujodel programa. Esta instrucción se ejecuta cuando la última cláusula IF encontrada esevaluada como (not true) no valida.

IF I2.0 Si lnput 2.0 es ActivaTHEN SET 03.3 encender Output 3.3OTHRW SET 04.5 sino encender Output 4.5

Page 10: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Fig. 4.3

Sumario de Instrucciones STL

El lenguaje STL tiene las siguientes instrucciones que permiten resolver en forma rápida ysencilla tareas de control simples y complejas..

Page 11: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Fig. 4.4

Page 12: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Fig. 4.5

Page 13: Otros Lenguajes de Programación - · PDF fileser con equipos de origen Alemán ó Francés , estos son el lenguaje STL y el GRAFCET, aquí daremos una breve descripción de estos

Continuará.....

Nota de Radacción: El lector puede descargar el curso capítulo a capítulo desde la sección“Artículos Técnico” dentro del sitio de EduDevices (www.edudevices.com.ar )