texto extructurado

Upload: felipe-alvarado

Post on 20-Feb-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Texto extructurado

    1/27

    El texto estructurado es un lenguaje de programacin textual que usaenunciados para definir lo que se va a ejecutar.

    El texto estructurado trata indistintamente las maysculas y lasminsculas.

    Use tabulaciones y retornos de carro (nuevas lneas) para facilitar lalectura del texto estructurado. stos no tienen ningn efecto en laejecucin del texto estructurado.

    El texto estructurado trata indistintamente las maysculas y las minsculas.El texto estructurado puede contener estos componentes:

  • 7/24/2019 Texto extructurado

    2/27

    Use una asignacin para cambiar el valor almacenado dentro de un tag. Una

    asignacin tiene esta sintaxis:

    donde:

    El tag retiene el valor asignado hasta que otra asignacin cambia el valor.

    La expresin puede ser simple, como un valor inmediato u otro nombre de tag,o la expresin puede ser compleja e incluir varios operadores y/o funciones.

    Los datos del mdulo de E/S se actualizan de maneraasncrona a la ejecucin de la lgica. Si usted hacereferencia a una entrada mltiples veces en la lgica, laentrada podra cambiar de estado entre las distintasreferencias. Si necesita que la entrada tenga el mismoestado en cada referencia, almacene en el bfer el valorde entrada y haga referencia a dicho tag en el bfer.

  • 7/24/2019 Texto extructurado

    3/27

    La asignacin no retentiva es diferente de la asignacin regular descritaanteriormente, porque el tag en una asignacin no retentiva se restablece a cerocada vez que el controlador:

    entra al modo marcha.

    deja el paso de un SFC si usted configura el SFC para restablecimientoautomtico (esto slo se aplica si usted incorpora la asignacin en laaccin del paso, o si usa la accin para llamar a una rutina de textoestructurado mediante una instruccin JSR).

    Una asignacin no retentiva tiene esta sintaxis:

    donde:

  • 7/24/2019 Texto extructurado

    4/27

    Use el operador de asignacin para asignar un carcter ASCII a un elementodel miembro DATA de un tag de cadena. Para asignar un carcter, especifiqueel valor del carcter o el nombre del tag, el miembro DATA y el elemento delcarcter.

    Para aadir o insertar una cadena de caracteres a un tag de cadena, usecualquiera de estas instrucciones de cadena ASCII.

    Una expresin es el nombre de un tag, una ecuacin o una comparacin. Paraescribir una expresin, use uno de estos elementos.

    Nombre de tag que almacene el valor (variable)

    Nmero que usted introduce directamente en una expresin (valorinmediato)

    Funciones, tales como: ABS, TRUNC

    Operadores, tales como: +, -, , And, Or

    A medida que usted escriba las expresiones, siga estas reglas generales.

    Use cualquier combinacin de maysculas y minsculas. Por ejemplo,estas tres variaciones de AND son aceptables: AND, And, and.

    Para requisitos ms complejos, use parntesis para agrupar expresionesdentro de expresiones. Esto hace que toda la expresin sea ms fcil deleer y asegura que la expresin se ejecute en la secuencia deseada.

    Usted puede aadir comentarios de usuario en lnea. Porlo tanto, la conmutacin de lenguaje local no se aplica a su

    lenguaje de programacin.

  • 7/24/2019 Texto extructurado

    5/27

    En texto estructurado usted usa dos tipos de expresiones:

    Expresin BOOL: Una expresin que produce ya sea el valor BOOL de 1(verdadero) o 0 (falso).

    Una expresin Bool usa tags bool, operadores con relaciones yoperadores lgicos para comparar valores o verificar si las condicionesson verdaderas o falsas. Por ejemplo, tag1>65.

    Una expresin Bool simple puede ser un tag BOOL sencillo.

    Normalmente usted usa expresiones BOOL para condicionar laejecucin de otra lgica.

    Expresin numrica: Una expresin que calcula un valor entero o de comaflotante (punto flotante).

    Una expresin numrica usa operadores aritmticos, funcionesaritmticas y operadores bit a bit. Por ejemplo, tag1+5.

    A menudo usted anida una expresin numrica dentro de una expresinBOOL. Por ejemplo, (tag1+5)>65.

    Use la siguiente tabla para seleccionar operadores para sus expresiones:

  • 7/24/2019 Texto extructurado

    6/27

    Usted puede combinar mltiples operadores y funciones en expresionesaritmticas.

    Los operadores aritmticos calculan nuevos valores.

    Las funciones aritmticas realizan operaciones matemticas. Especifique unaconstante, un tag no booleano o una expresin para la funcin.

  • 7/24/2019 Texto extructurado

    7/27

    Por ejemplo:

    Los operadores con relaciones comparan dos valores o cadenas paraproporcionar un resultado verdadero o falso. El resultado de una operacincon relaciones es un valor BOOL.

    Use estos operadores con relaciones.

  • 7/24/2019 Texto extructurado

    8/27

    Por ejemplo:

    Los valores hexadecimales de los caracteres ASCII determinan si una cadenaes menor o mayor que otra cadena.

    Cuando las dos cadenas se clasifican como en un directorio telefnico, elorden de las cadenas determina cul es mayor.

    Las cadenas son iguales si sus caracteres coinciden.

    Los caracteres distinguen entre minsculas y maysculas. La Amayscula ($41) noes igual a la a minscula ($61).

    Los operadores lgicos le permiten verificar si mltiples condiciones sonverdaderas o falsas. El resultado de una operacin lgica es un valor BOOL.

  • 7/24/2019 Texto extructurado

    9/27

    Use estos operadores lgicos:

    Por ejemplo:

    Los operadores bit a bit manipulan los bits dentro de un valor basado en dosvalores.

  • 7/24/2019 Texto extructurado

    10/27

    Por ejemplo:

    Las operaciones que usted escribe en una expresin se realizan en un ordenpredeterminado, no necesariamente de izquierda a derecha.

    Las operaciones de igual orden se realizan de izquierda a derecha.

    Si una expresin contiene mltiples operadores o funciones, agrupe las

    condiciones en parntesis ( ). Esto asegura el orden correcto deejecucin y facilita la lectura de la expresin.

    Los enunciados de texto estructurado tambin pueden ser instrucciones. Unainstruccin de texto estructurado se ejecuta cada vez que se escanea. Unainstruccin de texto estructurado dentro de una construccin se ejecuta cadavez que las condiciones de la construccin son verdaderas. Si las condicionesde la construccin son falsas, los enunciados dentro de la construccin no seescanean. No existe una condicin de rengln o transicin de estado que activela ejecucin.

    Esto es diferente de las instruccin de bloque de funciones que usan EnableInpara activar la ejecucin. Las instrucciones de texto estructurado se ejecutancomo si EnableIn siempre estuviera establecido.

  • 7/24/2019 Texto extructurado

    11/27

    Esto tambin es diferente de las instrucciones de lgica de escalera que usancondicin de entrada de rengln para activar la ejecucin. Algunasinstrucciones de lgica de escalera de rels slo se ejecutan cuando lacondicin de entrada de rengln cambia de falso a verdadero. stas soninstrucciones de lgica de escalera de rels transicionales. En textoestructurado, las instrucciones se ejecutan cada vez que son escaneadas, amenos que usted condicione previamente la ejecucin de la instruccin detexto estructurado.

    Por ejemplo, la instruccin ABL es una instruccin transicional en lgica deescalera de rels. En este ejemplo, la instruccin ABL slo se ejecuta en unescn cuando tag_xic cambia de borrado a establecido. La instruccin ABL nose ejecuta cuando tag_xic permanece establecido ni cuando se borra tag_xic.

    En texto estructurado, si usted escribe este ejemplo como:

    IF tag_xic THEN ABL(0,serial_control);

    END_IF;

    la instruccin ABL se ejecuta en cada escn en que tag_xic se establece, noslo cuando tag_xic cambia de borrado a establecido.

    Si desea que la instruccin ABL se ejecute slo cuando tag_xic cambia deborrado a establecido, tiene que condicionar la instruccin de textoestructurado. Use un impulso para activar la ejecucin.

  • 7/24/2019 Texto extructurado

    12/27

    Las construcciones pueden programarse individualmente o anidadas dentro deotras construcciones.

    Estas construcciones no estn disponibles:

    GOTO

    REPEAT

    El software RSLogix 5000 no le permite usarlas.

  • 7/24/2019 Texto extructurado

    13/27

    Use IFTHEN para hacer algo si o cuando ocurra una condicin especfica.

    La sintaxis es:

    Para usar ELSIF o ELSE, siga estas pautas.

    1. Para seleccionar entre varios posibles grupos de enunciados, aada unoo ms enunciados ELSIF.

    Cada enunciado ELSIF representa una ruta alternativa.

    Especifique todas las rutas ELSIF que necesite.

    El controlador ejecuta el primer enunciado IF o ELSIF verdadero yse salta el resto de los enunciados ELSIFs y ELSE.

    2. Para hacer algo cuando todas las condiciones IF o ELSIF son falsas,aada un enunciado ELSE.

  • 7/24/2019 Texto extructurado

    14/27

    Esta tabla resume combinaciones de IF, THEN, ELSIF, and ELSE.

    No afectados

    Ninguno

    IFTHEN

    IFTHENELSE

    [:=] le indica al controlador que restablezca la luz cada vez que el controlador:

    entre al modo marcha.

    deje el paso de un SFC si usted configura el SFC para restablecimientoautomtico (esto se aplica slo si usted incorpora la asignacin en laaccin del paso, o si usa la accin para llamar a una rutina de textoestructurado mediante una instruccin JSR).

  • 7/24/2019 Texto extructurado

    15/27

    IFTHENELSIF

    [:=] le indica al controlador que restablezca Sugar.Inlet cada vez que elcontrolador:

    entre al modo marcha.

    deje el paso de un SFC si usted configura el SFC para restablecimiento

    automtico (esto se aplica slo si usted incorpora la asignacin en laaccin del paso, o si usa la accin para llamar a una rutina de textoestructurado mediante una instruccin JSR).

    IFTHENELSIFELSE

  • 7/24/2019 Texto extructurado

    16/27

    Use CASE para seleccionar qu hacer en base a un valor numrico.

    La sintaxis es:

    Si usa valores REAL, use un rango de valores para un

    selector porque un valor REAL es ms probable que estdentro de un rango de valores que una coincidencia exactade un valor especfico.

  • 7/24/2019 Texto extructurado

    17/27

    La sintaxis para introducir los valores de selector es:

    La construccin CASE es similar a un enunciado de interruptor en loslenguajes de programacin C o C++. Sin embargo, con la construccin CASEel controlador ejecuta slo los enunciados asociados con el primer valor deselector coincidente. La ejecucin siempre se interrumpe despus de los

    enunciados de dicho selector y va al enunciado END_CASE.

    No afectados

    Ninguno

  • 7/24/2019 Texto extructurado

    18/27

    [:=] le indica al controlador que tambin restablezca los tags de salida cada vezque el controlador:

    entre al modo marcha.deje el paso de un SFC si usted configura el SFC para restablecimientoautomtico (esto se aplica slo si usted incorpora la asignacin en laaccin del paso, o si usa la accin para llamar a una rutina de textoestructurado mediante una instruccin JSR).

  • 7/24/2019 Texto extructurado

    19/27

    Use el lazo FORDO para hacer algo un nmero especfico de veces, antesde hacer otra cosa.

    La sintaxis es:

    Asegrese de no iterar dentro del lazo demasiadas veces en un solo escn.

    El controlador no ejecuta ningn otro enunciado en la rutina mientrasno se complete el lazo.

    Si el tiempo que se requiere para completar el lazo es mayor que eltemporizador de control (watchdog) para la tarea, se produce un fallomayor.

    Considere usar una construccin diferente, por ejemplo IF...THEN.

  • 7/24/2019 Texto extructurado

    20/27

    Estos diagramas muestran cmo se ejecuta un lazo FOR...DO y cmo unenunciado EXIT sale del lazo anticipadamente.

    No afectados

  • 7/24/2019 Texto extructurado

    21/27

  • 7/24/2019 Texto extructurado

    22/27

    Use el lazo WHILEDO para continuar haciendo algo, siempre y cuandociertas condiciones sean verdaderas.

    La sintaxis es:

    Estos diagramas muestran cmo se ejecuta un lazo WHILE...DO y cmo unenunciado EXIT sale del lazo anticipadamente.

    Asegrese de no iterar dentro del lazo demasiadas veces en un solo escn.

    El controlador no ejecuta ningn otro enunciado en la rutina mientrasno se complete el lazo.

    Si el tiempo que se requiere para completar el lazo es mayor que eltemporizador de control (watchdog) para la tarea, se produce un fallo

    mayor.Considere usar una construccin diferente, por ejemplo IF...THEN.

  • 7/24/2019 Texto extructurado

    23/27

    No afectados

  • 7/24/2019 Texto extructurado

    24/27

    Use el lazo REPEATUNTIL para continuar haciendo algo hasta que lascondiciones sean verdaderas.

    La sintaxis es:

    Asegrese de no repetir dentro del lazo demasiadas veces en un solo escn.

    El controlador no ejecuta ningn otro enunciado en la rutina mientrasno se complete el lazo.

    Si el tiempo que se requiere para completar el lazo es mayor que el

    temporizador de control (watchdog) para la tarea, se produce un fallomayor.

    Considere usar una construccin diferente, por ejemplo IF...THEN.

  • 7/24/2019 Texto extructurado

    25/27

    Estos diagramas muestran cmo se ejecuta un lazo REPEAT...UNTIL y cmoun enunciado EXIT sale del lazo anticipadamente.

    No afectados

  • 7/24/2019 Texto extructurado

    26/27

  • 7/24/2019 Texto extructurado

    27/27

    Para facilitar la interpretacin del texto estructurado, aada comentarios.

    Los comentarios le permiten usar lenguaje comn para describir cmofunciona su texto estructurado.

    Los comentarios no tienen ningn efecto en la ejecucin del textoestructurado.

    Los comentarios de texto estructurado se descargan a la memoria delcontrolador y estn disponibles para descarga. Para aadir comentarios a sutexto estructurado:

    Por ejemplo: