Sunteți pe pagina 1din 13

Curso sobre Controladores Lgicos Programables (PLC).

Por Ing. Norberto Molinari.


Entrega N 15.

Capitulo 4

Otros Lenguajes de Programacin


Introduccin
Existen adems de los lenguajes antes mencionados ( Ladder y Lista de Instrucciones), otros que en menor mayor grado tambin son muy adecuados cuando trabajamos como ser con equipos de origen Alemn Francs , estos son el lenguaje STL y el GRAFCET, aqu daremos una breve descripcin de estos dos lenguajes de programacin.
Estructura del Programa STL

El lenguaje STL le permite al programador resolver tareas de control usando expresiones sencillas en Ingls, las que describen la operacin 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 informacin contenida en este documento se corresponde con el lenguaje STL Segn la implementacin del FST Software Versin 3.X. Los programas en Statement List estn construidos usando diferentes elementos importantes. No es necesaria la totalidad de estos elementos, siendo adems importante la forma en que esos elementos son combinados ya que influyen de modo importante en la operacin del programa.

Jerarqua de los Elementos STL PROGRAM STEP SENTENCE CONDITIONAL PART EXECUTIVE PART Instruccin Step Aunque el uso de la instruccin STEP (Paso) es opcional, la mayora de los programas requieren su uso. La instruccin STEP se utiliza para marcar el comienzo de un bloque lgico de cdigo de programa. Cada programa STL puede contener hasta 255 STEPS discretos, pudiendo cada uno de estos STEP incluir una o ms Sentences (o enunciados). Cada Step puede tener asignada una etiqueta (label), esto es a voluntad del programador, y puede ser requerida para referencia futura del Step. Un Label para un Step solo es requerido si el Step respectivo ser asignado como destino por una instruccin de salto (Jump). Ms adelante, despus de la introduccin de Sentences se presenta una descripcin ms detallada de Step Sentences Sentencias La Sentence (Sentencia: oracin o enunciado) forma el nivel ms bsico de la organizacin del programa. Cada Sentence consiste en una Parte Condicional y una Parte Ejecutiva. La Parte Condicional sirve para enumerar una o ms condiciones que deben evaluarse cuando el programa est corriendo y que pueden ser ciertas o falsas. La parte Condicional siempre comienza con la expresin lF y contina con uno o ms enunciados que describen las condiciones a ser evaluadas. Si las condiciones programadas son evaluadas como true (verdaderas), entonces cualquier instruccin programada en la parte Ejecutiva ser cumplida. El comienzo de la parte Ejecutiva est marcado por la expresin THEN. Sentencias Tpicas El siguiente capitulo presenta varias sentencias tpicas en STL sin el uso de la instruccin Step.

IF I1.0 THEN IF N I2.0 THEN IF I6.0 AND N AND THEN RESET T6

Si lnput 1.0 est activa entonces conmutar a si Output 1.2 Si lnput 2.0 NO est activa SET O2.3 entonces conmutar a si Output 2.3 Si Input 6.0 est activa I2.1 y la Input 2.1 no est activa O3.1 y la Output 3.1 est activa RESET O2.1 entonces apagar Output 2.1 y reset Timer 6

SETO1.2

En el ultimo ejemplo, se ha introducido el principio de condiciones compuestas. Es decir, todas las condiciones establecidas en la sentencia deben cumplirse (ser verdaderas) para que las acciones despus de la expresin THEN sean ejecutadas. Ms Ejemplos IF I3.2 ORN T6 THEN INC CW1 SET T4
Si Input 3.2 est Activa o Timer 6 NO est corriendo entonces incrementar Counter1 y arrancar Timer 4 con parmetros 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 y se arrancar el Timer 4) si alguna o ambas de las condiciones establecidas son ciertas. La prxima sentencia introduce el uso de parntesis en la parte condicional para establecer la forma en que las condiciones son evaluadas. IF AND OR AND (11.1 T4 ) (I1.3 I1.2 )
Si lnput 1.1 est Activa Y Timer 4 est corriendo O si lnput 1.3 est Activa e Input 1.2 est Activa

Hemos usado la instruccin OR para combinar por medio del parntesis dos condiciones compuestas. Los ejemplos previos se han introducido para mostrar el uso de sentencias en el Lenguaje Statement List. Es posible crear programas enteros que consistan solo en mltiples sentencias sin usar la instruccin STEP.

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 Lenguaje Ladder Diagram. Esto es sin usar la instruccin Step. Para que estos programas puedan funcionar y ser procesados continuamente, es necesario agregar la instruccin PSE Comparacin con el Ladder Diagram Para quienes estn familiarizados con el Lenguaje Ladder Diagram, puede decirse que hay gran 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) siempre que la entrada est activa, y apagarla (OFF) cuando la entrada est inactiva seria de la siguiente forma

Fig. 4.1

Mientras que la sentencia equivalente STL seria: IF THEN PSE OTHRW PSE
Si lnput 1.0 est activa entonces conmutar a si Output 2.6 fin de programa RESET 02.6 de otra forma apagar Output 2.6 fin de programa

I1.0 SET 02.6

Se ver la inclusin de la instruccin OTHRW en este ejemplo. El lenguaje STL requiere instrucciones explcitas para alterar el estado de cualquier operando (por Ej. Output, Timer, Counter). La instruccin PSE se coloca al final de la seccin del programa paralelo para forzar al programa a ejecutarse continuamente retornando a la primera sentencia del Step corriente o a la primera sentencia del programa si no hubiera Steps..

Instruccin Step Los programas que no usan la instruccin STEP son procesados en forma paralela (barrido).Aunque este tipo de programa puede ser apto para resolver cierto tipo de tareas de control, el lenguaje STL provee la instruccin STEP. Esta instruccin permite que los programas sean divididos en secciones discretas (STEPS) que sern ejecutadas independientemente. En su forma ms simple un STEP, incluye al menos una sentencia y toma la siguiente forma: STEP (label) IF I1.0 Si la lnput 1.0 es Activa THEN SET 02.4 entonces activar Output 2.4 y proceder al prximo step Es importante comprender que el programa esperar en este Step hasta que las condiciones sean ciertas, en ese momento las acciones sern ejecutadas y entonces, slo entonces, el programa seguir al prximo Step. La etiqueta (label) del Step solo es requerida si un Step ser el destino de una instruccin de salto (JUMP) Debe notarse que cuando el software FST carga los programas STL en el PLC, asigna nmeros relativos de Step a cada uno de estos. Estos nmeros son reproducidos en los listados de programas, siendo de gran ayuda para monitorear la ejecucin de programas On-Line con propsito de bsqueda de fallas (debugging). Los Step de un programa, pueden, incluir mltiples sentencias:

STEP IF I2.2 Si lnput 2.2 es Activa THEN SET 04.4 Conmutar a activa Output 4.4 IF I1.6 Si Input 1.6 es Active THEN RESET 02.5 Apagar Output 2.5 SET 03.3 y activar Output 3.3 En el ejemplo previo, se ha introducido el concepto de mltiples Sentencias dentro de un Step nico. Cuando el programa alcanza este Step, procesar la primera sentencia (en este caso en panicular activando la salida Output 4.4 si la entrada lnput 2.2 est activa) y luego se mover a la segunda sentencia sin importar si las condiciones de la primera sentencia fueron verdaderas. Cuando la ltima (en este caso la segunda) sentencia de un Step es Procesada, si la parte Condicional es verdadera, entonces la parte Ejecutiva ser llevada a cabo y el programa proceder al prximo Step.

Si la parte Condicional de la ltima sentencia es no verdadera, entonces el programa retornar a la primera sentencia del Step actual. Nota: Es importante comprender al desarrollar programas o Steps que contengan mltiples Sentencias, que estas sern procesadas en forma paralela (barrido); que cada vez que la parte Condicional de una Sentencia sea evaluada como verdadera, las instrucciones programadas en la parte Ejecutiva sern Ejecutadas. Esto debe ser considerado para evitar ejecucin mltiple descontrolada tales como SET TIMER (arrancar un timer) o INC / DEC counter (incrementar / decrementar un contador). El lenguaje STL no usa condiciones de 'disparo por flancos', las condiciones se evalan por verdadero o falso sin importar el estado previo. Esta situacin es fcilmente manejada usando Steps, Flags u otro medio de control.

Reglas de Ejecucin Las siguientes lneas pueden aplicarse como gua para determinar como los Steps y las sentencias sern procesados por el PLC: Si las Condiciones de una Sentencia se cumplen, entonces las Acciones programadas sern Ejecutadas. Si las Condiciones de la ltima (o nica) sentencia dentro de un Step se cumplen, entonces las Acciones programadas sern Ejecutadas y el programa proceder al prximo Step. Si las Condiciones de una Sentencia no se cumplen, entonces el programa se mover a la 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 varias combinaciones de Steps con una o varias Sentencias, el lenguaje STL brinda un amplio rango de posibilidades para resolver las ms complejas tareas

Fig. 4.2

Modificando el Flujo del Programa Adems de las estructuras de control inherentes dentro de la instruccin Step, hay varias instrucciones adicionales STL disponibles para modificar el criterio de ejecucin de los Steps y Sentencias del programa. Instruccin NOP La instruccin NOP puede usarse en la parte Condicional o en la Ejecutiva de una sentencia. Si es usada NOP en la parte Condicional, siempre es evaluada como verdadera. La instruccin NOP puede usarse para la ejecucin incondicional de una sentencia.

IF NOP THEN SET O1.0

esto siempre es verdadero entonces Output 1.0 ser siempre activada cuando el programa ejecute esta lnea.

El uso tpico puede verse en el ejemplo siguiente. El programador desea que cuando la ejecucin del programa llegue al Step 50, se verifiquen determinadas condiciones, y en caso de ser estas verdaderas se ejecuten las acciones apropiadas. Sin embargo, sin importar si alguna de las condiciones se cumplen, despus de pasar exactamente una vez el programa encender la Output 3.6 y proceder al prximo Step esto es porque hemos forzado la ltima sentencia a ser verdadera mediante la instruccin NOP STEP 50 IF I1.0 Si lnput 1.0 es Activa THEN SET 02.2 entonces activar Output 2.2 IF N I3.5 Si Input 3.5 Ni es Activa AND I4.4 e lnput 4.4 es Activa THEN RESET O1.2 entonces apagar Output 1.2 IF T3 Si Timer 3 est corriendo THEN SET F0.0 entonces set Flag 0.0 IF NOP En cualquiera de los casos nos aseguramos que la
ULTIMA sentencia sea SIEMPRE verdadera.

La instruccin 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 menudo cuando el programa debe esperar por ciertas condiciones y luego proceder al prximo Step.

IF I3.2 THEN NOP THEN SET 03.6

si lnput 3.2 es Activa no hacer nada e ir al prximo step encender Output 3.6 , salir de este Step e ir al prximo Step.

Instruccin JUMP Otra instruccin STL que puede usarse para modificar el flujo de ejecucin del programa es la instruccin JMP. La instruccin JMP permite al programa ramificarse. Modificando el ejemplo previo es posible consultar las condiciones de cada sentencia y si se cumplen ejecutar la accin programada y luego saltar (JUMP) al Step designado del programa. STEP 50 IF I1.0 Si lnput 1.0 es Activa THEN SET O2.2 encenderOutput2.2 JMP TO 70 y saltar a Step label 70 IF N I3.5 Si lnput 3.5 NO es Activa AND I4.4 e lnput 4.4 es Activa THEN RESET O1.2 apagar Output 1.2 JMPTO 6 y saltar a Step label 6 IF T3 si Timer 3 est corriendo THEN SET F0.0 entonces set Flag 0.0 IF NOP Siempre verdadero, luego... THEN SET 03.6 encender Output 3.6 e ir al prximo paso.

Puede verse que no solamente hemos alterado el flujo del programa, sino que adems hemos establecido prioridades entre las sentencias. Por ejemplo, las sentencias 2, 3 y 4 solamente tendrn la posibilidad a ser procesadas si la sentencia 1 es falsa y por lo tanto no ejecutada; si la sentencia 1 se ejecuta, el programa saltar (Jump) al Step 70 sin haber procesado ninguna de las sentencias siguientes en el Step 50. Instruccin OTHRW La instruccin OTHRW (otherwise - traducido: por otra parte/sino-) puede cambiar el flujo del programa. Esta instruccin se ejecuta cuando la ltima clusula IF encontrada es evaluada como (not true) no valida. IF I2.0 Si lnput 2.0 es Activa THEN SET 03.3 encender Output 3.3 OTHRW SET 04.5 sino encender Output 4.5

Fig. 4.3

Sumario de Instrucciones STL


El lenguaje STL tiene las siguientes instrucciones que permiten resolver en forma rpida y sencilla tareas de control simples y complejas..

Fig. 4.4

Fig. 4.5

Continuar..... Nota de Radaccin: El lector puede descargar el curso captulo a captulo desde la seccin Artculos Tcnico dentro del sitio de EduDevices (www.edudevices.com.ar )

S-ar putea să vă placă și