Vous êtes sur la page 1sur 27

El texto estructurado es un lenguaje de programacin textual que usa

enunciados para definir lo que se va a ejecutar.


El texto estructurado trata indistintamente las maysculas y las
minsculas.
Use tabulaciones y retornos de carro (nuevas lneas) para facilitar la
lectura del texto estructurado. stos no tienen ningn efecto en la
ejecucin del texto estructurado.
El texto estructurado trata indistintamente las maysculas y las minsculas.
El texto estructurado puede contener estos componentes:

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 manera
asncrona a la ejecucin de la lgica. Si usted hace
referencia a una entrada mltiples veces en la lgica, la
entrada podra cambiar de estado entre las distintas
referencias. Si necesita que la entrada tenga el mismo
estado en cada referencia, almacene en el bfer el valor
de entrada y haga referencia a dicho tag en el bfer.

La asignacin no retentiva es diferente de la asignacin regular descrita


anteriormente, porque el tag en una asignacin no retentiva se restablece a cero
cada vez que el controlador:
entra al modo marcha.
deja el paso de un SFC si usted configura el SFC para restablecimiento
automtico (esto slo se aplica si usted incorpora la asignacin en la
accin del paso, o si usa la accin para llamar a una rutina de texto
estructurado mediante una instruccin JSR).
Una asignacin no retentiva tiene esta sintaxis:
donde:

Use el operador de asignacin para asignar un carcter ASCII a un elemento


del miembro DATA de un tag de cadena. Para asignar un carcter, especifique
el valor del carcter o el nombre del tag, el miembro DATA y el elemento del
carcter.

Para aadir o insertar una cadena de caracteres a un tag de cadena, use


cualquiera de estas instrucciones de cadena ASCII.

Una expresin es el nombre de un tag, una ecuacin o una comparacin. Para


escribir una expresin, use uno de estos elementos.
Nombre de tag que almacene el valor (variable)
Nmero que usted introduce directamente en una expresin (valor
inmediato)
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 expresiones
dentro de expresiones. Esto hace que toda la expresin sea ms fcil de
leer y asegura que la expresin se ejecute en la secuencia deseada.
Usted puede aadir comentarios de usuario en lnea. Por
lo tanto, la conmutacin de lenguaje local no se aplica a su
lenguaje de programacin.

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 y
operadores lgicos para comparar valores o verificar si las condiciones
son verdaderas o falsas. Por ejemplo, tag1>65.
Una expresin Bool simple puede ser un tag BOOL sencillo.
Normalmente usted usa expresiones BOOL para condicionar la
ejecucin de otra lgica.
Expresin numrica: Una expresin que calcula un valor entero o de coma
flotante (punto flotante).
Una expresin numrica usa operadores aritmticos, funciones
aritmticas y operadores bit a bit. Por ejemplo, tag1+5.
A menudo usted anida una expresin numrica dentro de una expresin
BOOL. Por ejemplo, (tag1+5)>65.
Use la siguiente tabla para seleccionar operadores para sus expresiones:

Usted puede combinar mltiples operadores y funciones en expresiones


aritmticas.
Los operadores aritmticos calculan nuevos valores.

Las funciones aritmticas realizan operaciones matemticas. Especifique una


constante, un tag no booleano o una expresin para la funcin.

Por ejemplo:

Los operadores con relaciones comparan dos valores o cadenas para


proporcionar un resultado verdadero o falso. El resultado de una operacin
con relaciones es un valor BOOL.

Use estos operadores con relaciones.

Por ejemplo:

Los valores hexadecimales de los caracteres ASCII determinan si una cadena


es menor o mayor que otra cadena.
Cuando las dos cadenas se clasifican como en un directorio telefnico, el
orden de las cadenas determina cul es mayor.

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres distinguen entre minsculas y maysculas. La A
mayscula ($41) no es igual a la a minscula ($61).

Los operadores lgicos le permiten verificar si mltiples condiciones son


verdaderas o falsas. El resultado de una operacin lgica es un valor BOOL.

Use estos operadores lgicos:

Por ejemplo:

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

Por ejemplo:

Las operaciones que usted escribe en una expresin se realizan en un orden


predeterminado, 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 de
ejecucin y facilita la lectura de la expresin.

Los enunciados de texto estructurado tambin pueden ser instrucciones. Una


instruccin de texto estructurado se ejecuta cada vez que se escanea. Una
instruccin de texto estructurado dentro de una construccin se ejecuta cada
vez que las condiciones de la construccin son verdaderas. Si las condiciones
de la construccin son falsas, los enunciados dentro de la construccin no se
escanean. No existe una condicin de rengln o transicin de estado que active
la ejecucin.
Esto es diferente de las instruccin de bloque de funciones que usan EnableIn
para activar la ejecucin. Las instrucciones de texto estructurado se ejecutan
como si EnableIn siempre estuviera establecido.

Esto tambin es diferente de las instrucciones de lgica de escalera que usan


condicin de entrada de rengln para activar la ejecucin. Algunas
instrucciones de lgica de escalera de rels slo se ejecutan cuando la
condicin de entrada de rengln cambia de falso a verdadero. stas son
instrucciones de lgica de escalera de rels transicionales. En texto
estructurado, las instrucciones se ejecutan cada vez que son escaneadas, a
menos que usted condicione previamente la ejecucin de la instruccin de
texto estructurado.
Por ejemplo, la instruccin ABL es una instruccin transicional en lgica de
escalera de rels. En este ejemplo, la instruccin ABL slo se ejecuta en un
escn cuando tag_xic cambia de borrado a establecido. La instruccin ABL no
se 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, no
slo cuando tag_xic cambia de borrado a establecido.
Si desea que la instruccin ABL se ejecute slo cuando tag_xic cambia de
borrado a establecido, tiene que condicionar la instruccin de texto
estructurado. Use un impulso para activar la ejecucin.

Las construcciones pueden programarse individualmente o anidadas dentro de


otras construcciones.

Estas construcciones no estn disponibles:


GOTO
REPEAT
El software RSLogix 5000 no le permite usarlas.

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 uno
o 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 y
se 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.

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 restablecimiento
automtico (esto se aplica slo si usted incorpora la asignacin en la
accin del paso, o si usa la accin para llamar a una rutina de texto
estructurado mediante una instruccin JSR).

IFTHENELSIF

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


controlador:
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 la
accin del paso, o si usa la accin para llamar a una rutina de texto
estructurado mediante una instruccin JSR).
IFTHENELSIFELSE

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

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


selector porque un valor REAL es ms probable que est
dentro de un rango de valores que una coincidencia exacta
de un valor especfico.
La sintaxis es:

La sintaxis para introducir los valores de selector es:

La construccin CASE es similar a un enunciado de interruptor en los


lenguajes de programacin C o C++. Sin embargo, con la construccin CASE
el controlador ejecuta slo los enunciados asociados con el primer valor de
selector coincidente. La ejecucin siempre se interrumpe despus de los
enunciados de dicho selector y va al enunciado END_CASE.
No afectados
Ninguno

[:=] le indica al controlador que tambin restablezca los tags de salida cada vez
que el controlador:
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 la
accin del paso, o si usa la accin para llamar a una rutina de texto
estructurado mediante una instruccin JSR).

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

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

El controlador no ejecuta ningn otro enunciado en la rutina mientras


no 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 fallo
mayor.
Considere usar una construccin diferente, por ejemplo IF...THEN.

La sintaxis es:

Estos diagramas muestran cmo se ejecuta un lazo FOR...DO y cmo un


enunciado EXIT sale del lazo anticipadamente.

No afectados

Use el lazo WHILEDO para continuar haciendo algo, siempre y cuando


ciertas condiciones sean verdaderas.

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

El controlador no ejecuta ningn otro enunciado en la rutina mientras


no 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 fallo
mayor.
Considere usar una construccin diferente, por ejemplo IF...THEN.

La sintaxis es:

Estos diagramas muestran cmo se ejecuta un lazo WHILE...DO y cmo un


enunciado EXIT sale del lazo anticipadamente.

No afectados

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

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


El controlador no ejecuta ningn otro enunciado en la rutina mientras
no 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 fallo
mayor.
Considere usar una construccin diferente, por ejemplo IF...THEN.

La sintaxis es:

Estos diagramas muestran cmo se ejecuta un lazo REPEAT...UNTIL y cmo


un enunciado EXIT sale del lazo anticipadamente.

No afectados

Para facilitar la interpretacin del texto estructurado, aada comentarios.


Los comentarios le permiten usar lenguaje comn para describir cmo
funciona su texto estructurado.
Los comentarios no tienen ningn efecto en la ejecucin del texto
estructurado.
Los comentarios de texto estructurado se descargan a la memoria del
controlador y estn disponibles para descarga. Para aadir comentarios a su
texto estructurado:

Por ejemplo:

Vous aimerez peut-être aussi