Sei sulla pagina 1di 272

Prlogo, Contenido

SIMATIC S7
Lista de instrucciones (AWL)
para S7-300 y S7-400
Manual de referencia

Este manual forma parte del paquete de


documentacin con la referencia:

Presentacin del producto

Estructura y elementos de AWL

Direccionamiento

Operaciones con acumuladores


e instrucciones para el registro
de direcciones

Operaciones lgicas con bits

Operaciones de temporizacin

Operaciones de contaje

Operaciones
de carga y transferencia

Aritmtica de coma fija

6ES7810-4CA04-8DR0

10/98
C79000-G7078 C565
Edicin 01

Aritmtica de coma flotante

10

Operaciones de comparacin

11

Operaciones de conversin

12

Operaciones lgicas con


palabras

13

Operaciones
de desplazamiento y rotacin

14

Operaciones con bloques

15

Operaciones de salto

16

Operaciones
de control del programa

17

Anexos
Glosario, Indice alfabtico

Consignas de
seguridad para el
usuario

Este manual contiene las informaciones necesarias para la seguridad personal as como para la prevencin de daos materiales. Las informaciones estn puestas de relieve mediante seales de precaucin. Las seales que figuran a continuacin representan distintos grados de peligro:

Peligro
Significa que, si no se adoptan las medidas preventivas adecuadas, se producir la muerte,
lesiones corporales graves o daos materiales considerables.

Precaucin
Significa que, si no se adoptan las medidas preventivas adecuadas, puede producirse la muerte,
lesiones corporales graves o daos materiales considerables.

Cuidado
Significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse lesiones corporales o daos materiales.

Nota
Se trata de una informacin importante, sobre el producto o sobre una parte determinada del manual,
sobre la que se desea llamar particularmente la atencin.

Personal cualificado

La puesta en funcionamiento y el servicio del equipo slo deben ser llevados a cabo conforme con
este manual.
Slo est autorizado a intervenir en este equipo el personal cualificado. En el sentido del manual se
trata de personas que disponen de los conocimientos tcnicos necesarios para poner en funcionamiento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas estndar de seguridad.

Uso conforme

Considere lo siguiente:

Precaucin
El equipo o los componentes del sistema slo se podrn utilizar para los casos de aplicacin previstos
en el catlogo y en la descripcin tcnica, y slo en unin de los equipos y componentes de proveniencia tercera recomendados y homologados por Siemens.
El funcionamiento correcto y seguro del producto presupone un transporte, un almacenamiento, una
instalacin y un montaje conforme a las prcticas de la buena ingeniera, as como una operacin y
un mantenimiento rigurosos.

Marca registrada

SIMATIC, SIMATIC HMI y SIMATIC NET son marcas registradas por SIEMENS AG.
Los restantes nombres y designaciones contenidos en el presente impreso pueden ser marcas registradas cuya utilizacin por terceros para sus fines pueden violar los derechos de los proprietarios.

Copyright E Siemens AG 1998 All rights reserved

Exencin de responsabilidad

La divulgacin y reproduccin de este documento, as como el uso y


la comunicacin de su contenido, no estn autorizados, a no ser que
se obtenga el consentimiento expreso para ello. Los infractores
quedan obligados a la indemnizacin de los daos. Se reservan
todos los derechos, en particular para el caso de concesin de
patentes o de modelos de utilidad.

Hemos probado el contenido de esta publicacin con la concordancia descrita para el hardware y el software. Sin embargo, es posible
que se den algunas desviaciones que nos impiden tomar garanta
completa de esta concordancia. El contenido de esta publicacin
est sometido a revisiones regularmente y en caso necesario se
incluyen las correcciones en la siguiente edicin. Agradecemos
sugerencias.

Siemens AG
Bereich Automatisierungs- und Antriebstechnik
Geschaeftsgebiet Industrie-Automatisierungssysteme
Postfach 4848, D-90327 Nuernberg

E Siemens AG 1998
Sujeto a cambios sin previo aviso.

Siemens Aktiengesellschaft

C79000-G7078-C565

Prlogo

Finalidad del
manual

Este manual le servir de ayuda al crear programas de usuario con el lenguaje de


programacin AWL.
Describe los elementos del lenguaje de programacin AWL, as como su sintaxis y
sus funciones.

Destinatarios

Este manual est dirigido a programadores de programas S7, operadores y personal


de mantenimiento que dispongan de conocimientos bsicos sobre los autmatas programables.

Ambito de validez

El presente manual rige para el software de programacin STEP 7 a partir de la versin 5.0.

Cumplimiento de
la normativa
IEC 1131-3

AWL sigue los principios del lenguaje Lista de Instrucciones (en ingls Instruction List) observados en la norma DIN EN-61131-3 (int. IEC 1131-3), si bien existen diferencias esenciales en lo que se refiere a las operaciones. La tabla sobre cumplimiento de normas que encontrar en el archivo NORM.TAB de STEP 7 contiene
informacin ms detallada sobre el cumplimiento de las normas.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

iii

Prlogo

Requisitos

Para entender correctamente el presente manual de AWL se requieren conocimientos tericos acerca de los programas S7, que se pueden consultar en la Ayuda en
pantalla de STEP 7. Como que los paquetes acerca de los lenguajes de programacin se basan en el software estndar de STEP 7, debera conocerse ya mnimamente el uso del software y su documentacin.

Manuales

Finalidad

Informacin bsica de STEP 7:

S STEP 7 V5.0:
Introduccin y ejercicios prcticos

S Programar con STEP 7 V5.0


S Configurar el hardware y la comunicacin

Referencia

La informacin bsica para el personal


tcnico; es decir, el procedimiento que se
debe seguir al realizar tareas de control con
STEP 7 y S7-300 S7-400.

6ES7810-4CA04-8DA0

La informacin de referencia y consulta que


describen los manuales de los lenguajes de
programacin KOP, FUP y AWL, as como
las funciones estndar y las funciones de
sistema. Estos manuales de referencia son un
complemento de la informacin bsica de
STEP 7.

6ES7810-4CA04-8DR0

con STEP 7 V5.0

S De S5 a S7, Gua para facilitar la transicin


Manuales de referencia de STEP 7:

S Manuales KOP/FUP/AWL para S7-300 y


S7-400

S Funciones estndar y funciones de sistema


para S7-300 y S7-400

Ayudas en pantalla

Finalidad

Referencia

Ayuda de STEP 7

La informacin bsica para programar y


configurar el hardware con STEP 7 en forma
de Ayuda en pantalla

Parte integrante del


software estndar de
STEP 7

Ayudas de referencia para AWL/KOP/FUP

Informacin de referencia sensible al


contexto

Parte integrante del


software estndar de
STEP 7

Ayuda de referencia para SFBs/SFCs


Ayuda de referencia para bloques de
organizacin

Cmo acceder
a las Ayudas
en pantalla

Al contenido de la Ayuda en pantalla se accede como sigue:

S A la Ayuda contextual del objeto que se haya seleccionado con el comando de


men Ayuda > Ayuda contextual, la tecla de funcin F1 o el signo de
interrogacin de la barra de herramientas.

S A la Ayuda de STEP 7 con el comando de men Ayuda > Temas de Ayuda.


Convenciones

iv

Las referencias de documentacin adicional se indican a travs de ndices de bibliografa escritos entre barras /.../. Con estos nmeros se puede localizar el ttulo exacto de
la documentacin correspondiente en el ndice bibliogrfico

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Prlogo

Servicios online
SIMATIC de
asistencia directa
al cliente

El servicio SIMATIC de asistencia directa al cliente ofrece, a travs de sus servicios


online, informacin adicional acerca de los productos SIMATIC:

S Informacin general actual:


en Internet bajo http://www.ad.siemens.de/simatic
consultando el nmero de fax 08765-93 02 77 95 00

S Informacin actual y downloads que pueden ser de ayuda al utilizar los


productos SIMATIC:
en Internet bajo http://www.ad.siemens.de/support/html_00/
con el Bulletin Board System (BBS) de Nuremberg (buzn electrnico del
servicio de asistencia directa al cliente de SIMATIC) bajo el nmero
+49 (911) 895-7100.
Si desea consultar el buzn electrnico, utilice un mdem de hasta
V.34 (28,8 kbaudios) teniendo ajustados los siguientes parmetros: 8, N, 1,
ANSI, o utilice RDSI (x.75, 64 kbits).

Ayudas
adicionales

Si tiene ms preguntas, dirjase a su interlocutor de Siemens de la sucursal o concesionario correspondiente. La direccin la encontrar, p. ej., en los catlogos y en
Compuserve (go autforum).
Adems tambin dispone de nuestra SIMATIC Basis Hotline:

S en Nuremberg, Alemania
de lunes a viernes de 07:00 a 17:00 (hora local),
n de tel.: +49 (911) 8957000
o la EMail: simatic.support@nbgm.siemens.de

S en Johnson City (TN), EUA


de lunes a viernes de 08:00 a 17:00 (hora local), n de tel.: +1 423 4612522
o la EMail: simatic.hotline@sea.siemens.com

S en Singapur
de lunes a viernes de 08:30 a 17:30 (hora local), n de tel.: +65 7407000
o la EMail: simatic@singet.com.sg
Con la tarjeta SIMATIC podr ponerse en contacto a cualquier hora y desde
cualquier lugar con SIMATIC Premium Hotline (n de tel.: +49 (911) 895-7777).

Cursos sobre
productos
SIMATIC

Para facilitar la introduccin al sistema de automatizacin SIMATIC S7 ofrecemos


una gama completa de cursillos de formacin. Para ms informacin sobre el tema,
dirjase a su centro de formacin regional o al centro de formacin central en
Nuremberg, n de tel.: 911 / 895 3154.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Prlogo

Comentarios del
usuario acerca del
manual y la Ayuda
en pantalla

vi

Para poderle ofrecer a Usted y a los futuros usuarios de STEP 7 una documentacin
inmejorable, necesitamos su colaboracin. Si desea hacer sugerencias que afecten al
presente manual o a la Ayuda en pantalla, rellene el formulario de respuesta que se
encuentra al final de este manual y envelo a la direccin indicada en el mismo. Le
agradeceramos asimismo que nos comunicara la opinin que le merece el manual.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Contenido
Prlogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iii

Presentacin del producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1-1

Estructura y elementos de AWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2-1

2.1

Estructura de la instruccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2-2

2.2

Significado de los registros de la CPU en las instrucciones . . . . . . . . . . . .

2-10

Direccionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3-1

3.1

Direccionamiento inmediato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3-2

3.2

Direccionamiento directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3-2

3.3

Direccionamiento indirecto por memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3-3

3.4

Registro de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3-6

3.5

Direccionamiento indirecto por registro e intrarea . . . . . . . . . . . . . . . . . . .

3-7

3.6

Direccionamiento indirecto por registro e interrea . . . . . . . . . . . . . . . . . . .

3-11

Operaciones con acumuladores e instrucciones para el registro


de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4-1

4.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4-2

4.2

ENT y LEAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4-3

4.3

Incrementar y Decrementar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4-6

4.4

+AR1 y +AR2: Sumar una constante al registro de direcciones 1 2 . . .

4-7

Operaciones lgicas con bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5-1

5.1

Operaciones lgicas con bits como operandos . . . . . . . . . . . . . . . . . . . . . .

5-2

5.2

Operaciones lgicas con bits y circuitos de rel . . . . . . . . . . . . . . . . . . . . . .

5-6

5.3

Evaluar condiciones utilizando Y, O y O-exclusiva . . . . . . . . . . . . . . . . . . .

5-10

5.4

Operaciones lgicas con expresiones entre parntesis e Y antes de O .

5-14

5.5

Operaciones con flancos: FP, FN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5-16

5.6

Terminar una cadena lgica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5-20

5.7

Operaciones Activar (S) y Desactivar (R) . . . . . . . . . . . . . . . . . . . . . . . . . . .

5-21

5.8

Operacin Asignar (=) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5-24

5.9

Negar, activar, desactivar y salvar el RLO . . . . . . . . . . . . . . . . . . . . . . . . . .

5-26

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

vii

Contenido

Operaciones de temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6-1

6.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6-2

6.2

Areas de memoria y componentes de un temporizador . . . . . . . . . . . . . . .

6-3

6.3

Cargar, arrancar, borrar y habilitar un temporizador . . . . . . . . . . . . . . . . . .

6-5

6.4

Ejemplos de temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6-7

6.5

Operandos y reas de direccionamiento de las operaciones


de temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6-17

Elegir el temporizador adecuado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6-18

Operaciones de contaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7-1

7.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7-2

7.2

Inicializar, borrar y habilitar un contador . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7-3

7.3

Incrementar y decrementar un contador . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7-5

7.4

Cargar un valor de contaje como entero . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7-6

7.5

Cargar un valor de contaje en formato BCD . . . . . . . . . . . . . . . . . . . . . . . . .

7-7

7.6

Ejemplo de un contador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7-8

7.7

Operandos y reas de direccionamiento de las operaciones de contaje .

7-10

Operaciones de carga y transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8-1

8.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8-2

8.2

Cargar y transferir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8-3

8.3

Leer o transferir la palabra de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8-6

8.4

Cargar valores de temporizacin y de contaje como enteros . . . . . . . . . .

8-7

8.5

Cargar valores de temporizacin y contaje en formato BCD . . . . . . . . . . .

8-9

8.6

Cargar y transferir entre registros de direcciones . . . . . . . . . . . . . . . . . . . .

8-11

8.7

Cargar informacin de un bloque de datos . . . . . . . . . . . . . . . . . . . . . . . . . .

8-12

Aritmtica de coma fija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9-1

9.1

Operaciones aritmticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9-2

9.2

Sumar un entero al ACU 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9-6

Aritmtica de coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10-1

10.1

Operaciones aritmticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10-2

10.2

Formar el valor absoluto de un nmero en coma flotante . . . . . . . . . . . . .

10-6

10.3

Operaciones aritmticas ampliadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10-7

10.4

Calcular el cuadrado y la raz cuadrada de un nmero en coma flotante

10-9

10.5

Calcular el logaritmo natural de un nmero en coma flotante . . . . . . . . . . 10-11

10.6

Calcular el valor exponencial de un nmero en coma flotante . . . . . . . . . . 10-12

10.7

Calcular funciones trigonomtricas de ngulos representados mediante


nmeros en coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-13

6.6
7

10

viii

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Contenido

11

12

13

14

15

16

Operaciones de comparacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11-1

11.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11-2

11.2

Comparar dos enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11-3

11.3

Comparar dos nmeros en coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . .

11-5

Operaciones de conversin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12-1

12.1

Convertir nmeros decimales codificados en binario y enteros . . . . . . . . .

12-2

12.2

Convertir nmeros en coma flotante de 32 bits en enteros de 32 bits . . .

12-8

12.3

Invertir el orden de los bytes en el ACU 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-13

12.4

Formar complementos de nmeros enteros y cambiar el signo


de un nmero en coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14

Operaciones lgicas con palabras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13-1

13.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13-2

13.2

Operaciones lgicas con palabras (16 bits) . . . . . . . . . . . . . . . . . . . . . . . . .

13-3

13.3

Operaciones lgicas con palabras (32 bits) . . . . . . . . . . . . . . . . . . . . . . . . .

13-6

Operaciones de desplazamiento y rotacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14-1

14.1

Operaciones de desplazamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14-2

14.2

Operaciones de rotacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14-6

Operaciones con bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15-1

15.1

Abrir bloques de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15-2

15.2

Intercambiar registros de bloques de datos . . . . . . . . . . . . . . . . . . . . . . . . .

15-2

15.3

Cargar la longitud y el nmero de bloques de datos . . . . . . . . . . . . . . . . . .

15-3

Operaciones de salto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16-1

16.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16-2

16.2

Operaciones de salto incondicionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16-3

16.3

Operaciones de salto en funcin del resultado lgico . . . . . . . . . . . . . . . . .

16-4

16.4

Operaciones de salto en funcin de los bits de la palabra de estado


RB, OV u OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16-5

Operaciones de salto en funcin del contenido de los bits A1 y A0


de la palabra de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16-6

Bucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16-8

Operaciones de control del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17-1

17.1

Parametrizar al llamar funciones (FC) y bloques de funcin (FB) . . . . . . .

17-2

17.2

Llamar funciones y bloques de funcin con CALL . . . . . . . . . . . . . . . . . . . .

17-3

17.3

Llamar funciones y bloques de funcin con CC y UC . . . . . . . . . . . . . . . . .

17-7

17.4

Funciones del Master Control Relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-10

17.5

Operaciones con Master Control Relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-11

17.6

Finalizar bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-16

16.5
16.6
17

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

ix

Contenido

Indice alfabtico de las operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


A.1

A-1

Indice alfabtico de las abreviaturas nemotcnicas alemanas y


de las abreviaturas internacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A-2

Indice alfabtico de las operaciones AWL en espaol . . . . . . . . . . . . . . . .

A-12

Ejemplos de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-1

B.1

Resumen breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-2

B.2

Operaciones lgicas con bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-3

B.3

Operaciones de temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-7

B.4

Operaciones de contaje y comparacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-10

B.5

Operaciones aritmticas con enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-12

B.6

Operaciones lgicas con palabras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-14

Archivos fuente: Palabras clave reservadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C-1

Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

D-1

A.2
B

Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glosario-1
Indice alfabtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indice-1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Presentacin del producto

Qu significa
AWL?

AWL es la abreviatura alemana de Anweisungsliste que significa Lista de Instrucciones. AWL es un lenguaje de programacin STEP 7 que se utiliza para crear el
rea de instrucciones de los bloques lgicos. La sintaxis de las instrucciones se parece al lenguaje ensamblador: A los comandos u operaciones les siguen los operandos.

El lenguaje de
programacin
AWL

De los lenguajes de programacin que se pueden emplear para programar autmatas


SIMATIC S7, AWL es el ms prximo al cdigo de mquina MC7 usado por las
CPU S7. De este modo, se pueden programar tareas de control en unas condiciones
ptimas, tanto en lo que se refiere al espacio de memoria como al tiempo de ejecucin.
El lenguaje de programacin AWL facilita todos los elementos que se necesitan para
crear un programa de usuario completo. AWL contiene un amplio juego de instrucciones, ofrecindo ms de 130 operaciones bsicas, as como una gama completa de
operandos y su respectivo direccionamiento. Lo mismo se puede decir de la concepcin de las funciones y de los bloques de funcin, que le servirn para estructurar
sus programas AWL de modo claro y fcil de comprender.

El paquete de
programacin

El paquete de programacin AWL es una unidad integrada dentro del software estndar de STEP 7. Con este paquete, y una vez que haya instalado su software
STEP 7, dispondr de todas las funciones de edicin, compilacin y de test que se
requieren para programar con AWL.
Bsicamente existen dos formas de usar el lenguaje AWL para crear un programa de
usuario:

S Con un editor incremental; ste ofrece una cmoda solucin para introducir la
estructura de los datos locales de cada bloque mediante editores de tablas.

S Como archivo fuente en el editor de textos. El editor suministrado simplifica la


labor de introduccin de texto gracias a las plantillas de bloque (bloques modelo).
En el software estndar estn integrados tanto AWL como los lenguajes de programacin FUP y KOP. Por ello, y siempre que tenga en cuenta algunas limitaciones
existentes, podr cambiar entre los lenguajes y elegir el modo de representacin que
considere ms idneo para la programacin de cada bloque.
En general, los programas que se hayan escrito en KOP o en FUP tambin se pueden
representar en AWL sin ninguna dificultad. Al convertir programas en KOP a programas en FUP y viceversa, aquellos elementos del programa que no puedan representarse en el lenguaje deseado se representarn en AWL.a

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

1-1

1-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

Indice del
captulo

Apartado

Tema

2.1

Estructura de la instruccin

2.2

Significado de los registros de la CPU en las instrucciones

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Pgina
2-2
2-10

2-1

Estructura y elementos de AWL

2.1

Estructura de la instruccin

Componentes de
una instruccin

Las instrucciones pueden pertenecer segn su estructura a uno de los dos grupos
principales siguientes (v. tambin fig. 2-1):

S Instrucciones compuestas slo por una operacin (por ejemplo, NOT, v. apt. 5.9).
S Instrucciones compuestas por una operacin y un operando (v. tablas 2-1 a 2-5 y
tabla 2-9).

Instrucciones del grupo 1

Instrucciones del grupo 2

Slo una operacin

Figura 2-1

Operando de una
instruccin

Operacin + operando

Principales grupos de instrucciones

El operando de una instruccin indica una constante o direccin donde la operacin


encuentra un valor (objeto de datos) con el que ejecutar una combinacin. Al
operando se le puede dar un nombre simblico, una designacin absoluta o una
combinacin de ambos, pudiendo indicar uno de los elementos siguientes (v.
tambin tablas 2-1 a 2-9):

S una constante, el valor de un temporizador o de un contador o una cadena de


caracteres ASCII a cargar en el acumulador 1 (ACU 1) (p. ej. L +27, v. tabla 2-1).

S una direccin de la palabra de estado del autmata programable (p. ej. U UO,
v. tabla 2-2).

S un nombre simblico (p. ej. A MOTOR_ON, v. tabla 2-3).


S un bloque de datos y una direccin del rea de bloque de datos (p. ej.
L DB4.DBD10, v. tabla 2-4).

S una funcin (FC), un bloque de funcin (FB), una funcin de sistema integrada
(SFC) o un bloque de funcin de sistema integrado (SFB) y el nmero de la funcin o del bloque de funcin (v. tabla 2-5).

S un identificador del operando y una direccin del rea de memoria indicada por
el identificador (p. ej. U E 1.0 o U E [AR1,P#4.3], v. tabla 2-9).
Las tablas 2-1 a 2-9 muestran diferentes instrucciones compuestas cada una por una
operacin y un operando.

2-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

Valores constantes

La tabla 2-1 muestra cmo utilizar una constante como operando de una instruccin.
Tabla 2-1

Operandos que indican un valor o una cadena de caracteres


Instruccin

Operacin

Operando

Descripcin
Descr
pc n

= CONSTANTE

Direcciones de la
palabra de estado

+27

END

Cargar el entero 27 en el ACU 1.


Cargar los caracteres ASCII FIN en el ACU 1.

El operando de una operacin de la lista de instrucciones puede indicar uno o ms


bits de la palabra de estado del autmata programable (v. apt. 2.2). La instruccin
consulta el estado de seal de un bit determinado de la palabra de estado (p. ej.
U RB) y reacciona correspondientemente, o bien evala la combinacin de dos bits
(p. ej. U UO).
Tabla 2-2

Operandos que indican una direccin de la palabra de estado


Instruccin

Operacin

Operando
Direccin de
la palabra
de estado

Descripcin

BIE

Se combina el 1 0 en el bit 8 de la palabra de estado.

UO

La operacin evala la combinacin binaria que encuentra en


los bits de estado A1 y A0 para comprobar si se cumple una
condicin determinada. Por ejemplo, una combinacin de 1
y 1 indica no admisible, es decir, uno de los valores de
una operacin en coma flotante no era un nmero en coma
flotante vlido.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

2-3

Estructura y elementos de AWL

Nombres
simblicos

La tabla 2-3 muestra cmo utilizar un nombre simblico como operando de una
instruccin. Si quiere usar los nombres simblicos en las instrucciones AWL tiene
que haberlos declarado antes. Esta declaracin puede ser global o local. Si los quiere
usar de modo global tiene que declararlos en la tabla de smbolos; para emplearlos
de modo local hay que declararlos en el bloque para el que sern vlidos.
Tabla 2-3

Operandos que indican un nombre simblico


Instruccin

Operacin

Operando

Descripcin
Descr
pc n

Smbolo

Bloque de datos y
direccin del
bloque de datos

MOTOR_ON

RPM

Ejecutar una combinacin Y con el bit cuyo nombre


simblico es MOTOR_ON. En este caso, el nombre
simblico MOTOR_ON slo puede representar un bit en el
rea de memoria Bloque de datos (D).
Cargar en el ACU 1 el byte, la palabra o la palabra doble,
cuyo nombre simblico es RPM.

La tabla 2-4 muestra cmo utilizar un bloque de datos y una direccin del bloque
como operando de una instruccin
Tabla 2-4

Operandos que indican un bloque de datos o una direccin dentro del bloque
Instruccin

Operacin

Operando
Bloque de datos
y direccin

2-4

DB4.DBD10

DB10.DBX4.3

Descripcin
Cargar en el ACU 1 la palabra doble de datos
DBD10 del bloque de datos DB4.
Efectuar una combinacin Y con el bit de datos
DBX4.3 del bloque de datos DB10.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

Bloques FC, FB,


SFC y SFB

La tabla 2-5 muestra cmo utilizar una funcin (FC), un bloque de funcin (FB),
una funcin de sistema integrada (SFC), un bloque de funcin de sistema integrado
(SFB) y el nmero de la funcin o del bloque de funcin como operando de una
operacin.
Tabla 2-5

Operandos que indican una funcin, un bloque de funcin, una funcin de


sistema o un bloque de funcin de sistema
Instruccin

Operacin

Operando

Descripcin
Descr
pc n

FC, FB, SFC,


SFB y nmero

Identificador del
operando

CALL

FB10, DB 10

CALL

SFC43

Llamar albloque de funcin FB10 con un bloque de


datos de instancia DB10.
Llamar a la funcin de sistema SFC43.

Algunos operandos se componen de un identificador y de una direccin del rea de


memoria indicada por el identificador. El identificador puede pertenecer a uno de
los tres tipos siguientes (v. tablas 2-6 a 2-8):

S Un identificador que indica el rea de memoria y el tamao de los datos en este


rea del siguiente modo (v. tabla 2-6):
Area de memoria donde la operacin encuentra un valor (objeto de datos)
con el que ejecutar una combinacin (por ejemplo, E para imagen de proceso de las entradas).
Tamao de un valor (datos) con el que la operacin deba ejecutar una combinacin (por ejemplo, B para byte, W para palabra y D para palabra doble).

S Un identificador que indica un rea de memoria, pero no el tamao de los datos


en este rea (por ejemplo un identificador para el rea T (temporizadores), Z
(contadores) o DB/DI (bloque de datos) y el nmero del temporizador, del contador o del bloque de datos, v. tabla 2-7).

S Un identificador que indica el tamao de un objeto de datos sin indicar el rea de


memoria correspondiente. El rea de memoria se encuentra codificada en la direccin del operando que sigue al identificador (v. tabla 2-8).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

2-5

Estructura y elementos de AWL

Tabla 2-6

Identificador de un operando que indica el rea de memoria y el tamao del objeto


Operacin

Tipo de
direccionamiento

Identificador del operando


Area de la
memoria

Directo

Directo

Indirecto por memoria

Indirecto por memoria

Indirecto por registro,


intrarea,

Indirecto por registro,


intrarea,

Tabla 2-7

Direccin del
operando

Tamao del objeto


(bit por omisin),
0.0
B

10
[MD2]

[DID4]
[AR1, P#4.3]

[AR2, P#53.0]

Identificador de un operando que indica el rea de memoria pero no el tamao del objeto

Tipo de
direccionamiento

Operacin

Identificador del operando:


rea de la memoria

Nmero o direccin del nmero

Directo

AUF

DB

Directo

SI

Indirecto por memoria

AUF

DB

[LW2]

Indirecto por memoria

[MW44]

Tabla 2-8

Identificador de un operando que indica el tamao del objeto pero no el rea de memoria
Operacin

Tipo de
direccionamiento
Indirecto del registro,
interrea

Indirecto del registro,


interrea

Tabla 2-9

Tamao del objeto


(bit por omisin)

Direccin del
operando
[AR1, P#4.3]

[AR1, P#100.0]

Operandos que se componen de un identificador y una direccin


Instruccin

Operacin

2-6

Operando
Identificador del
operando

Direccin
del rea de
memoria o
registro

1.0

[MD2]

Descripcin

Efectuar una combinacin Y con el bit de entrada E1.0.


Efectuar una combinacin Y con el bit de entrada. La direccin exacta se
encuentra en la palabra doble de marcas MD2.
Cargar el valor del contador Z1 en el ACU 1.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

Utilizar una
palabra o palabra
doble como objeto

Si se utiliza una operacin, cuyo identificador del operando indique un rea de


memoria del autmata programable, y un objeto de datos, cuyo tamao sea el de una
palabra o de una palabra doble (v. tabla 2-6), se deber tener en cuenta que a la
direccin del rea de memoria siempre se acceda en forma de direccin de byte.
Dicha direccin de byte es el nmero del byte ms alto de la palabra o de la palabra
doble. El operando de la operacin que se aprecia en la figura 2-2 accede por
ejemplo a cuatro bytes consecutivos en el rea de memoria M, comenzando con el
byte 10 (MB 10) hasta el byte 13 (MB 13).

Operacin: L MD10
Identificador del operando

Figura 2-2

Direccin del byte

Ejemplo de una direccin del rea de memoria a la que se accede en


forma de direccin de byte

En la figura 2-3 se aprecian objetos de datos del siguiente tamao:

S Palabra doble: palabra doble de marcas MD10


S Palabra: palabra de marcas MW10, MW11 y MW13
S Byte: bytes de marcas MB10, MB11, MB12 y MB14
Si se utilizan operandos absolutos de una palabra o palabra doble de ancho, deber
evitarse que se solapen los bytes asignados.

15

0|15

MW10
MB10

MW12
MB11

MB12

MSB

LSB
MW11
16|15
MD10

31

Figura 2-3

Las reas de
memoria y sus
funciones

MB13

Acceso a una direccin del rea de memoria mediante una direccin de


byte

La mayora de los operandos de AWL acceden a reas de memoria. En la tabla siguiente se muestran los tipos de reas de memoria con sus funciones respectivas.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

2-7

Estructura y elementos de AWL

Tabla 2-10

Areas de memoria y sus funciones


Acceso a travs de

Nombre del
rea

Funcin

unidades del siguiente


tamao:

Abr.

Imagen del
proceso de las
entradas

Al principio del ciclo, el sistema operativo lee las entradas


del proceso y almacena los valores en este rea. El programa
utiliza estos valores durante la ejecucin cclica.

Entrada
Byte de entrada
Palabra de entrada
Palabra doble de entrada

E
EB
EW
ED

Imagen del
proceso de las
salidas

Durante el ciclo, el programa calcula valores de salida y los


coloca en este rea. Al final del ciclo, el sistema operativo
lee los valores de salida calculados en dicha rea y los transfiere
a las salidas del proceso.

Salida
Byte de salida
Palabra de salida
Palabra doble de salida

A
AB
AW
AD

Marcas

Este rea permite almacenar resultados intermedios


calculados en el programa

Marcas
Byte de marcas
Palabra de marcas
Palabra doble de marcas

M
MB
MW
MD

E/S: entradas
externas

Este ara permite al programa tener acceso directo a los


mdulos de E/S (es decir, entradas y salidas de la periferia).

Byte de entrada de la periferia


Palabra de entrada de la
periferia
Palabra doble de la periferia

PEB
PEW
PED

E/S: salidas
externas

Byte de salida de la periferia


PAB
Palabra de salida de la periferia PAW
Palabra doble de salida de la
periferia
PAD

Temporizadores

Los temporizadores son elementos funcionales del lenguaje de


programacin AWL. Este rea permite almacenar clulas
de temporizacin. En este rea, el reloj accede a estas clulas
para actualizarlas, decrementando el valor de temporizacin. A
esta rea se accede con operaciones de temporizacin.

Temporizador (T)

Contadores

Los contadores son elementos funcionales del lenguaje de


programacin AWL. Este rea permite almacenar contadores. A
este rea se accede mediante operaciones de contaje.

Contador (Z)

Bloque de datos

Este rea contiene datos a los que puede accederse desde


cualquier bloque. Si se desea tener abiertos dos bloques al
mismo tiempo, puede abrirse uno con la instruccin AUF DB
y otro con la instruccin AUF DI. De este modo, la CPU
podr distinguir a cul de los dos bloques de datos desea
acceder el programa cuando ambos estn abiertos. Aunque la
i t
instruccin
i AUF DI puede
d utilizarse
tili
para abrir
b i cualquier
l i
bloque de datos, su utilizacin principal consiste en abrir
bloques de datos de instancia asociados a bloques de funcin
(FB) y a bloques de funcin de sistema (SFB). Para ms
informacin sobre los bloques FB y SFB, vase la Ayuda en
pantalla de STEP 7.

Bloque de datos abierto con la


instruccin AUF DB:
Bit de datos
Byte de datos
Palabra de datos
Palabra doble de datos

DBX
DBB
DBW
DBD

Bloque de datos abierto con la


instruccin AUF DI:
Bit de datos
Byte de datos
Palabra de datos
Palabra doble de datos

DIX
DIB
DIW
DID

Este rea contiene datos temporales que se utilizan en un bloque


lgico (OB, FB o FC). Estos datos tambin se denominan datos
locales dinmicos y sirven de memoria intermedia. Cuando
termina el bloque lgico se pierden dichos datos. Los datos
estn depositados en la pila de datos local (pila L).

Bit de datos local temporal


Byte de datos local temporal
Palabra de datos local temporal
Palabra doble de datos local
temporal

Datos locales

2-8

L
LB
LW
LD

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

La tabla 2-11 muestra una lista de los mrgenes de direccionamiento de las diferentes reas de memoria. Para saber el rea de direccionamiento de la CPU utilizada,
consultar los datos correspondientes de la CPU. La funcin de las reas de memoria
se explica en la tabla 2-10.
Tabla 2-11

Areas de memoria y sus reas de direccionamiento


Acceso

Nombre del rea

con unidades del siguiente tamao:

Abrev.

Margen de direccionamiento
i t

Imagen del proceso de


las entradas

Entrada
Byte de entrada
Palabra de entrada
Palabra doble de entrada

E
EB
EW
ED

0.0 a 65 535.7
0 a 65 535
0 a 65 534
0 a 65 532

Imagen del proceso de


las salidas

Salida
Byte de salida
Palabra de salida
Palabra doble de salida

A
AB
AW
AD

0.0 a 65 535.7
0 a 65 535
0 a 65 534
0 a 65 532

Marcas

Marcas
Byte de marcas
Palabra de marcas
Palabra doble de marcas

M
MB
MW
MD

0.0 a 65 535.7
0 a 65 535
0 a 65 534
0 a 65 532

E/S:
entradas externas

Byte de entrada de la periferia


Palabra de entrada de la periferia
Palabra doble de entrada de la periferia

PEB
PEW
PED

0 a 65 535
0 a 65 534
0 a 65 532

E/S:
salidas externas

Byte de salida de la periferia


Palabra de salida de la periferia
Palabra doble de salida de la periferia

PAB
PAW
PAD

0 a 65 535
0 a 65 534
0 a 65 532

Temporizador

Temporizador

0 a 255

Contador

Contador

0 a 255

Bloque de datos

Bloque de datos abierto con la instruccin


AUF DB:
DBX
DBB
DBW
DBD

0.0 a 65 535.7
0 a 65 535
0 a 65 534
0 a 65 532

Bit de datos
Byte de datos
Palabra de datos
Palabra doble de datos

DIX
DIB
DIW
DID

0.0 a 65 535.7
0 a 65 535
0 a 65 534
0 a 65 532

Bit de datos local


Byte de datos local
Palabra de datos local
Palabra doble de datos local

L
LB
LW
LD

0.0 a 65 535.7
0 a 65 535
0 a 65 534
0 a 65 532

Bit de datos
Byte de datos
Palabra de datos
Palabra doble de datos
Bloque de datos abierto con la instruccin
AUF DI:

Datos locales

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

2-9

Estructura y elementos de AWL

2.2

Significado de los registros de la CPU en las instrucciones

Acumuladores

Los dos acumuladores (ACU 1 y ACU 2) de 32 bits son registros universales que se
utilizan para procesar bytes, palabras y palabras dobles. En los acumuladores se
pueden cargar constantes o valores de la memoria como operandos y ejecutar con
ellos operaciones lgicas (combinaciones). Tambin es posible transferir el resultado
de una operacin desde el ACU 1 a una direccin u operando. La figura 2-4 muestra
las reas de un acumulador.
La gestin de los acumuladores funciona como el mecanismo de pila (STACK):

S Las operaciones de carga actan siempre sobre el ACU 1 y depositan el antiguo


contenido en el ACU 2.

S Las operaciones de transferencia no modifican los acumuladores (a excepcin de


las operaciones TAR1 y TAR2).

S La operacin TAK intercambia el contenido de los ACUs 1 y 2.


En el apartado 9.1 encontrar informacin sobre la gestin de los acumuladores en
lo que respecta a las operaciones aritmticas.
31

24

23

Byte alto

16

15

8 7
Byte alto

Byte bajo

Palabra alta

0
Byte bajo

Palabra baja
ACU (1 2)

Figura 2-4

Areas de un acumulador

Pila de parntesis

La pila de parntesis es un rea de memoria, de un byte, utilizado por las operaciones de parntesis, U(, O(, X(, UN(, ON(, XN(. Estas operaciones almacenan el resultado lgico actual (RLO) en la pila de parntesis e inician una nueva cadena lgica.
Esta pila puede almacenar hasta siete registros. Un registro de la pila de parntesis
consta de los bits RLO, BR y OR de la palabra de estado, as como de un cdigo de
funcin que indica cul de las operaciones lgicas va a ser ejecutada (U, UN, O,
ON, X o XN).
La operacin ) cierra una expresin entre parntesis y ejecuta las funciones siguientes:

S Saca un registro de la pila de parntesis.


S Restablece los bits OR y RB.
S Define el nuevo RLO (resultado lgico) combinando el RLO actual (es decir, el
RLO del parntesis) con el RLO del registro de la pila que corresponde al cdigo
de funcin (v. apt. 5.4).

2-10

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

La figura 2-5 muestra la estructura de un registro de la pila de parntesis; a continuacin se explican los distintos bits que componen el byte de la pila de parntesis.

Figura 2-5

27

26

25

24

23

22

21

20

BR

RLO

OR Cdigo de funcin

Estructura de un registro de la pila de parntesis

El byte de la pila de parntesis contiene los siguientes bits (v. fig. 2-5):

S Los bits no asignados (bits 7 y 6 con estado de seal 0).


S El resultado binario (RB) memorizado.
S El resultado lgico (RLO) memorizado.
S El bit OR guardado en las operaciones U( y UN. En cada una de las otras operaciones se guarda el valor cero.

S El cdigo de funcin (en los bits 2, 1 y 0).


Cdigo de funcin
La operacin ) determina qu funcin se va a utilizar para combinar el RLO de
parntesis con el RLO del registro de la pila. La tabla 2-12 muestra la lista de combinaciones de bits del cdigo de funcin para cada tipo de funcin.
Tabla 2-12

Cdigo de funcin del byte de la pila de parntesis

Funciones de la operacin

Cdigo de
funcin 2

Cdigo de
funcin 1

Cdigo de funcin 0

U(

UN(

O(

ON(

X(

XN(

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

2-11

Estructura y elementos de AWL

Pila de parntesis con registros y puntero


La pila de parntesis y el puntero de la misma tienen que ser guardados en la pila de
interrupciones o guardados de sta si se cambian los niveles. El nmero del puntero
indica la cantidad de registros que hay en la pila de parntesis (v. fig. 2-6).
15

7
Registro 7 de la pila

Registro 6 de la pila

Registro 5 de la pila

Registro 4 de la pila

Registro 3 de la pila

Registro 2 de la pila

Registro 1 de la pila

Puntero de la pila

Figura 2-6

Palabra de estado

Direcciones
ascendientes

Estructura de una pila de parntesis con los registros y el puntero

La palabra de estado contiene bits a los que se puede acceder con el operando de
operaciones lgicas con bits y con palabras. La figura 2-7 muestra la estructura de la
palabra de estado. Los prrafos que siguen a la figura explican el significado de los
bits 0 a 8.
215...

Figura 2-7

Primera consulta

...29

28

27

26

25

RB

A1

A0

OV

24
OS

23

22

OR

STA

21

20

RLO /ER

Estructura de la palabra de estado

El bit 0 de la palabra de estado se denomina bit de primera consulta (bit /ER,


v. fig. 2-8). Si el estado de seal del bit /ER es 0, significa que siguiendo este
punto en el programa, la siguiente operacin lgica da inicio a otra cadena lgica.
(La barra delante de /ER significa su negacin.)
Cada operacin lgica consulta el estado del bit /ER, as como el estado de seal del
operando direccionado. Si el bit /ER es 0, la operacin almacenar el resultado de
la consulta del estado de seal en el bit RLO de la palabra de estado (bit RLO,
v. apartado siguiente) y el bit /ER se pone a 1. Este proceso se denomina primera
consulta (v. fig. 2-8 y apt. 5.6).
Si el bit /ER es 1, una operacin combina el resultado de la consulta del estado de
seal del contacto direccionado por ella con el valor almacenado en el bit RLO anterior (v. fig. 2-8).
Una cadena de operaciones lgicas siempre termina con una operacin de salida
(S, R =, v. apts. 5.7 y 5.8), con una operacin de salto referida al resultado lgico
(SPB, v. apt. 16) o con una expresin entre parntesis U(, O(, X(, UN(, ON( o XN(
(v. apt. 5.4). Estas operaciones de salida o de salto desactivan el bit /ER, es decir, lo
ponen a 0 (v. fig. 2-8).

2-12

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

Resultado lgico

El bit 1 de la palabra de estado se denomina bit RLO (RLO = resultado lgico,


v. fig. 2-7). Este bit almacena el resultado de una operacin lgica binaria o de una
comparacin.
Por ejemplo, la segunda operacin de una cadena de operaciones lgicas consulta el
estado de seal de un contacto, obteniendo el resultado 1 0. A continuacin,
la operacin combina este resultado con el valor almacenado en el bit RLO de la
palabra de estado, de acuerdo con los principios de la lgica de Boole (vase ms
arriba, bajo Primera Consulta, y en el captulo 5). El resultado de esta operacin
lgica se almacena en el bit RLO de la palabra de estado, reemplazando el valor
anterior en el bit RLO. Cada instruccin subsiguiente en la cadena ejecuta una operacin lgica con dos valores: el resultado que se obtiene consultando el estado de
seal del contacto, y el RLO actual.
El bit RLO puede ponerse absolutamente a 1 con la instruccin SET, o bien, ponerse absolutamente a 0 con la instruccin CLR. Utilizando una operacin lgica
en la primera consulta es posible asignarle al RLO el estado de un bit. Adems, mediante el RLO es posible impulsar operaciones de salto.

Estado de seal
en la entrada (E)
o salida (A)

Programa
AWL

Resultado
de la
consulta

Bit
RLO

Bit /ER
0

Explicacin
Bit /ER = 0 significa que la prxima operacin
da inicio a una nueva cadena lgica.
El resultado de la primera consulta est
almacenado en el bit RLO. El bit /ER se pone
a 1.

U E 1.0

UN E 1.1

El resultado de la consulta se combina con


el anterior RLO, de acuerdo con la tabla de
verdad Y. El bit /ER permanece a 1.

= A 4.0

El RLO se asigna a la bobina de salida.


El bit /ER se pone a 0.

Figura 2-8

Efecto del estado de seal del bit /ER en operaciones lgicas

Bit de estado

El bit de estado almacena el valor del bit direccionado. El estado de una operacin
lgica que tiene acceso de lectura a la memoria (U, UN, O, ON, X, XN) siempre es
igual al valor del bit que est consultando dicha operacin (el bit con el que est
ejecutando la combinacin). El estado de una operacin lgica que tiene acceso de
escritura a la memoria (S, R, =) siempre es igual al valor del bit donde la operacin
est escribiendo, o bien, si no tiene lugar ningn acceso de escritura, es igual al valor del bit direccionado. El bit de estado no es relevante en relacin con operaciones
lgicas que no acceden a la memoria. Dichas operaciones ponen el bit de estado a
1 (STA = 1). El bit de estado no es consultado por ninguna operacin sino que
solamente es interpretado durante el test del programa (estado del programa).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

2-13

Estructura y elementos de AWL

Bit OR

El bit OR (O) se requiere al realizar una combinacin Y antes de O con una operacin O. Una combinacin Y puede contener las siguientes operaciones: U, UN, U(,
UN(, ), y NOT. El bit OR indica a estas operaciones que una combinacin Y que ha
sido ejecutada previamente ha dado el valor 1, adelantado as el resultado de la
operacin O. Todas las restantes instrucciones que procesan bits ponen el bit OR a
0 (v. apt. 5.4).

Bit OV

El bit de desbordamiento OV (overflow) indica un error. Cuando aparece un error, el


bit de desbordamiento es activado por una operacin aritmtica o por una operacin
de comparacin de nmeros en coma flotante (desbordamiento, operacin no admisible, relacin no admisible). El bit se activa conforme al resultado de la siguiente
operacin aritmtica o de comparacin.

Bit OS

El bit de desbordamiento memorizado (OS) se activa junto con el bit de desbordamiento (bit OV) cuando se produce un error. Puesto que el bit OS permanece a 1
(activado) incluso despus de haberse eliminado el error, almacena el estado del bit
OV e indica si se ha producido un error en una de las operaciones ejecutadas previamente. Las operaciones siguientes desactivan el bit OS, es decir, lo ponen a 0:
SPS (salto si OS = 1), as como las operaciones de llamadas de bloques y de fin de
bloque.

A1 y A0

Los bits A1 y A0 dan informacin sobre los resultados o bits siguientes:

S Resultado de una operacin aritmtica


S Resultado de una operacin de comparacin
S Resultado de una operacin digital
S Bits que han sido desplazados por una operacin de desplazamiento o de rotacin
Las tablas 2-13 a 2-18 explican el significado de A1 y A0 despus de que el programa ha ejecutado determinadas operaciones.
Tabla 2-13

A1 y A0 tras operaciones aritmticas, sin desbordamiento

A1

A0

Explicacin

Resultado = 0

Resultado < 0

Resultado > 0

Tabla 2-14

2-14

A1 y A0 tras operaciones aritmticas con enteros, con desbordamiento

A1

A0

Explicacin

Rebase del lmite inferior con +I y +D

Rebase del lmite inferior con *I y *D


Rebase del lmite superior con +I, -I, +D, -D, NEGI y NEGD

Rebase del lmite inferior con *I, *D, /I y /D


Rebase del lmite superior con +I, -I, +D y -D

Divisin por 0 con /I, /D y MOD

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Estructura y elementos de AWL

Tabla 2-15

A1 y A0 tras operaciones aritmticas (coma flotante) con desbordamiento

A1

A0

Rebase gradual por defecto

Rebase por defecto

Rebase por exceso

Nmero en coma flotante no permitido

Tabla 2-16

Explicacin

A1 y A0 tras operaciones de comparacin

A1

A0

Acumulador 2 = Acumulador 1

Acumulador 2 < Acumulador 1

Acumulador 2 > Acumulador 1

ACU 1 o ACU 2 no es un nmero en coma flotante permitido

Tabla 2-17

Explicacin

A1 y A0 tras operaciones de desplazamiento y rotacin

A1

A0

Explicacin

ltimo bit desplazado = 0

ltimo bit desplazado = 1

Tabla 2-18

A1 y A0 tras operaciones lgicas digitales

A1

A0

Explicacin

Resultado = 0

Resultado <> 0

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

2-15

Estructura y elementos de AWL

Bit RB

El bit RB (resultado binario) establece un enlace entre el procesamiento de bits y el


procesamiento de palabras, permitiendo interpretar eficientemente el resultado de
una operacin con palabras como resultado binario e integrarlo as en una cadena de
combinaciones lgicas binarias. RB constituye desde este punto de vista una marca
interna de la mquina, en la que el RLO se salva de una operacin con palabras que
pudiera modificarlo, para poder seguir disponiendo del mismo despus de la operacin y proseguir as la cadena de bits interrumpida.
El bit RB permite programar en AWL por ejemplo un bloque de funcin (FB) o una
funcin (FC) y llamar al FB o a la FC desde el esquema de contactos KOP (para
ms informacin sobre KOP, consultar el manual de referencia /233/).
Si se ha escrito un bloque de funcin o una funcin en KOP o en AWL y se desea
llamarla desde KOP, hay que gestionar el bit RB. El bit RB corresponde a la salida
de habilitacin (ENO) para el cuadro KOP. Con la operacin SAVE (en AWL, v.
apt.5.9) o con la bobina se guarda un RLO en el bit RB conforme a los siguientes
criterios:

S Guarde un RLO de 1 en el bit RB cuando el FB o la FC se hayan procesado sin


errores.

S Guarde un RLO de 0 en el bit RB cuando el FB o la FC hayan sido procesados


con errores.
Estas operaciones deben programarse al final del FB o de la FC para que sean las
ltimas operaciones que se ejecuten en el bloque.
En caso de llamar a un bloque de funcin del sistema (SFB) o a una funcin del sistema (SFC), el SFB o la SFC indicarn mediante el estado de seal del bit RB si la
CPU ha ejecutado la funcin con o sin errores:

S Si apareci un error durante el procesamiento, el bit RB ser 0.


S Si la funcin se proces sin errores, el bit RB ser 1.

2-16

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Direccionamiento

Indice del
captulo

Apartado

Tema

Pgina

3.1

Direccionamiento inmediato

3-2

3.2

Direccionamiento directo

3-2

3.3

Direccionamiento indirecto por memoria

3-3

3.4

Registro de direcciones

3-6

3.5

Direccionamiento indirecto por registro e intrarea

3-7

3.6

Direccionamiento indirecto por registro e interrea

3-11

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

3-1

Direccionamiento

3.1

Direccionamiento inmediato

Descripcin

En el direccionamiento inmediato, el valor del operando est codificado


directamente en la operacin, es decir que la operacin va seguida directamente del
operando con el que operar (p. ej. Cargar). Por otra parte, una operacin tambin
puede aportar su propio valor (p. ej. SET, v. tabla 3-1).
Tabla 3-1

Ejemplos

3.2

Direccionamiento inmediato
Descripcin

Ejemplo
S

Poner el RLO a 1.

OW W#16#A320

O con palabras.

L 27

Cargar el valor entero 27 en el ACU 1.

L ABCD

Cargar los caracteres ASCII ABCD en el ACU 1.

L B#(100,12)

Cargar una constante de 2 bytes (100 y 12) en el ACU 1.

L C#0100

Cargar el valor BCD 100 en el ACU 1.

Direccionamiento directo

Descripcin

En el direccionamiento directo, la direccin del operando se encuentra codificada en


la operacin, es decir, el operando indica la direccin del valor que va a procesar la
operacin. El operando se compone de dos partes:

S un identificador (p. ej. EB para byte de entrada)


S una direccin exacta dentro del rea de memoria indicada por el identificador.
El operando indica directamente la direccin del valor.
Tabla 3-2

Ejemplos

3-2

Direccionamiento directo
Ejemplo

Descripcin

U E 0.0

Ejecutar una operacin lgica Y con el bit de entrada E 0.0.

S L 20.0

Activar el bit de datos locales L20.0.

= M 115.4

Asignar el RLO al bit de marcas M115.4.

L EB 0

Cargar el byte de entrada EB0 en el ACU 1.

L MW 64

Cargar la palabra de marcas MW64 en el ACU 1.

T DBD 12

Transferir el contenido del ACU 1 a la palabra doble de datos


DBD12.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Direccionamiento

3.3

Direccionamiento indirecto por memoria

Descripcin

En el direccionamiento indirecto por memoria, el operando indica la direccin del


valor que va a procesar la operacin. El operando se compone de las siguientes partes:

S Un identificador (p. ej. EB para byte de entrada)


S Una palabra que contiene el nmero de un temporizador (T), de un contador (Z),
de un bloque de datos (DB), de una funcin (FC) o de un bloque de funcin (FB)

S Una palabra doble que contiene la direccin exacta de un valor del rea de memoria, indicada por el identificador.
El operando indica la direccin del valor o del nmero de forma indirecta, es decir,
utilizando el puntero. Esta palabra o palabra doble puede encontrarse en una de las
siguientes reas:

S Marca

(M)

S Bloque de datos

(DB)

S Bloque de datos de instancia

(DI)

S Datos locales

(L).

La ventaja del direccionamiento indirecto por memoria es que permite modificar


dinmicamente el operando de la instruccin, durante la ejecucin del programa.

Utilizacin de la
sintaxis correcta

Si utiliza un operando indirecto por memoria que est almacenado en el rea de memoria del bloque de datos, deber abrir primero el bloque de datos, utilizando a tal
efecto la operacin Abrir bloque de datos. Luego podr utilizar la palabra de datos o
la palabra doble de datos como operando indirecto, segn se muestra en el ejemplo
siguiente:
AUF DB10
L EB [DBD20]

Ejemplos
Tabla 3-3 Direccionamiento indirecto por memoria

Ejemplo

Descripcin

U E [MD 2]

U E [ana]

Ejecutar una combinacin Y con el bit de entrada cuya direccin exacta se encuentra en la palabra doble
de marcas MD2 o en la direccin denominada Ana en la tabla de smbolos, como referencia a MD2.

= DIB [DBD2]

Asignar el bit RLO al bit de datos de instancia cuya direccin exacta se encuentra en la palabra doble de
datos DBD2.

L EB [DID 4]

Cargar en el ACU 1 el byte de entrada cuya direccin exacta se encuentra en la palabra doble de datos de
instancia DID4.

AUF DB [LW2] Abrir el bloque de datos cuyo nmero se encuentra en la palabra de datos local LW2.
O A [LD 3]
u
O A [juan]

Ejecutar una combinacin O con el bit de salida cuya direccin exacta se encuentra en la palabra doble
de datos locales 3 o en la direccin denominada Juan en la tabla de smbolos, como referencia a LD3.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

3-3

Direccionamiento

Formato
del puntero

Existen dos formatos posibles para el puntero: la palabra y la palabra doble. La


abreviatura de un puntero en formato de palabra termina con una W (p. ej., DBW).
La figura 3-1 muestra el formato de un puntero formado por una palabra. La
abreviatura de un puntero en formato de palabra doble termina con una D (p. ej.,
DBD). La figura 3-2 muestra el puntero en formato de palabra doble.

15..
nnnn

..8
nnnn

7..
nnnn

..0
nnnn

Bits 0 a 15 (nnnn nnnn nnnn nnnn): nmero (margen de 0 a 65.535) de un


temporizador (T), contador (C), bloque de datos (DB), funcin (FC) o
bloque de funcin (FB)

Figura 3-1

Puntero en formato de palabra para el direccionamiento indirecto por memoria

Los dos ejemplos siguientes muestran cmo utilizar el puntero en formato de palabra:

AWL

Explicacin

L +5
T MW2
AUF DB[MW2]

Cargar el valor 5 como entero en el ACU 1.


Transferir el contenido del ACU 1 a la palabra de marcas MW2.
Abrir bloque de datos 5.

AWL

Explicacin

AUF DB10
L +20
T DBW10
U T[DBW10]

Abrir el bloque de datos DB10.


Cargar el valor 20 como entero en el ACU 1.
Transferir el contenido del ACU 1 a la palabra de datos DBW10.
Consultar el estado de seal del temporizador T 20.

31..
..24 23..
0000 0000 0000 0

..16 15..
bbb bbbb

..8
bbbb

7..
bbbb b

..0
xxx

Bits 3 a 18 (bbbb bbbb bbbb bbbb): nmero (margen de 0 a 65.535) del byte
direccionado
Bits 0 a 2 (xxx): nmero (margen de 0 a 7) del bit direccionado
Figura 3-2

3-4

Puntero en formato de palabra doble para el direccionamiento indirecto por


memoria

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Direccionamiento

Nota
Antes de acceder a un byte, a una palabra o a una palabra doble hay que asegurarse
de que el nmero de bit del puntero sea 0.

Los dos ejemplos siguientes muestran cmo utilizar el puntero en formato de palabra doble:

AWL

Explicacin

P#8.7

MD2

E [MD2]

A [MD2]

Cargar 2#0000 0000 0000 0000 0000 0000 0100 0111 (valor
binario) en ACU 1.
Almacenar la direccin exacta 8.7 en la palabra doble de
marcas MD2.
El autmata consulta el bit de entrada E 8.7 y asigna su
estado de seal a la salida A 8.7.
La direccin exacta 8.7 se encuentra en la palabra doble de
marcas MD2.

AWL

Explicacin

P#8.0

MD2

Cargar 2#0000 0000 0000 0000 0000 0000 0100 0000 (valor
binario) en ACU 1.
Almacenar la direccin exacta 8 en la palabra doble de
marcas MD2.

L
T

EB [MD2]
MW [MD2]

El autmata carga el byte de entrada EB8 y transfiere su


contenido a la palabra de marcas MW8.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

3-5

Direccionamiento

3.4

Registro de direcciones

Descripcin

Algunos tipos de direccionamiento indirecto requieren para la programacin con


AWL el uso de ciertos registros internos de la CPU. Estos registros se describen en
los siguiente apartados.

Registros de
direcciones 1 y 2

Los registros de direcciones AR 1 y AR 2, de 32 bits, contienen las direcciones


intrarea e interrea para aquellas operaciones que utilizan el direccionamiento
indirecto por registro (v. apts. 3.5 y 3.6).

Punteros

Los punteros se emplean para el direccionamiento indirecto por registro (v. apts. 3.5
y 3.6). Se dispone de los dos tipos siguientes:

S Intrarea: sirven para acceder intrarea a bits, bytes, palabras y palabras dobles
en las reas de memoria P, E, A, M, DBX, DIX y L.

S Interrea: sirven para acceder interrea a bits, bytes, palabras y palabras dobles
en las reas de memoria P, E, A, M, DBX, DIX y L.

3-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Direccionamiento

3.5

Direccionamiento indirecto por registro e intrarea

Descripcin

En el direccionamiento indirecto por registro e intrarea, el operando indica la direccin del valor que va a procesar la operacin. El operando se compone de dos
partes:

S Un identificador (p. ej. LD para palabra doble de datos locales, v. tabla 2-6)
S Un registro de direcciones y un puntero para indicar el byte y el bit. El byte y el
bit indican un desplazamiento que, si se suma al contenido del registro, indica la
direccin exacta del valor que va a procesar la operacin.
El operando indica la direccin del valor indirectamente, a travs del registro de
direcciones ms el desplazamiento.
Una operacin que utiliza el direccionamiento indirecto por registro e intrarea no
modifica el valor del registro de direcciones.

Calcular la
direccin del
operando

El operando de una operacin indica el valor que ser procesado por la operacin.
En el direccionamiento indirecto por registro e intrarea, el operando indica
indirectamente la direccin del valor, a travs del registro de direcciones ms el
desplazamiento. En la figura 3-3 se muestra cmo calcular la direccin del operando
para la operacin Asignar (=) en la siguiente instruccin:
= A [AR1, P#1.1]

Byte

Bit

Contenido del registro


de direcciones AR1:

8.7

Byte 8, Bit 7

Desplazamiento P#:

1.1

Byte 1, Bit 1

Direccin:

Byte de salida A 10.0

Bytes: 9, Bits: 8 (= 1 Byte)


(9 Bytes + 1 Byte = 10 Bytes)

Figura 3-3

Clculo de la direccin de la salida [AR1, P#1.1]

La direccin del operando se calcula sumndole la porcin de bytes del contenido


del registro de direcciones a la porcin de bytes del puntero de desplazamiento y
sumndole la porcin de bits del registro de direcciones a la porcin de bits del
puntero de desplazamiento. Para calcular la porcin de bytes de la direccin se
utilizar el sistema decimal, en tanto que para calcular la porcin de bits se
emplear el sistema octal (8 bits = 1 byte). Puede haber una transferencia entre las
porciones de bits y de bytes.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

3-7

Direccionamiento

Tabla 3-4

Ejemplos

Direccionamiento indirecto por registro e intrarea


Ejemplo

Descripcin

U E [AR1, P#4.3]

Ejecutar una operacin lgica Y con el bit de entrada cuya


direccin exacta se calcula sumando 4 bytes y 3 bits al
contenido del registro de direcciones AR 1.

= DIX [AR2, P#0.0]

Asignar el bit RLO al bit de datos de instancia cuya direccin


exacta se encuentra en el registro de direcciones AR 2.

L EB [AR1, P#100.0]

Cargar en el ACU 1 el byte de entrada cuya direccin exacta


se calcula sumando 100 bytes al contenido del registro de
direcciones AR 1.

T LD [AR2, P#56.0]

Transferir el contenido del ACU 1 a la palabra doble de datos


local es LD, cuya direccin exacta se calcula sumando 56
bytes al contenido del registro de direcciones AR 2.
Por lo que respecta al direccionamiento de datos locales,
tenga en cuenta la indicacin que aparece ms abajo.

Precaucin
Es posible que se sobrescriban los datos utilizados por el compilador.
Si utiliza el direccionamiento absoluto para acceder a datos locales temporales,
puede presentarse un conflicto entre los datos utilizados por el compilador y los
datos locales. Es posible que se sobreescriban entonces algunos de los datos
utilizados por el compilador. (El compilador utiliza datos locales por ejemplo para
transferir parmetros formales.) Los datos locales utilizados por el compilador estn
unidos a los datos simblicos que define el programador.
Si desea acceder a datos locales temporales, es recomendable utilizar el
direccionamiento simblico y no el direccionamiento absoluto.

3-8

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Direccionamiento

Formato
del puntero

El direccionamiento indirecto por registro e intrarea de la memoria permite un solo


formato para los punteros: la palabra doble. Dicha palabra doble contiene un
operando codificado como direccin de bit. La abreviatura del formato de palabra
doble termina con una D (p. ej.: DBD). La figura 3-4 muestra el puntero en formato
de palabra doble.

31..
..24 23..
0000 0000 0000 0

..16 15..
bbb
bbbb

..8
bbbb

7..
bbbb b

..0
xxx

Bit 31 = 0 para indicar el direccionamiento indirecto por registro e intrarea


Bits 3 a 18 (bbbb bbbb bbbb bbbb): nmero (margen de 0 a 65.535) del byte
direccionado
Bits 0 a 2 (xxx): nmero (margen de 0 a 7) del bit direccionado
Figura 3-4

Puntero en formato de palabra doble para el direccionamiento indirecto por


registro e intrarea

Nota
Antes de acceder a un byte, a una palabra o a una palabra doble hay que asegurarse
de que el nmero de bit del puntero sea 0.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

3-9

Direccionamiento

Los dos ejemplos siguientes muestran cmo utilizar el puntero en formato de palabra doble:

AWL

Explicacin

Cargar un puntero en formato de palabra doble en la direccin


de bit 8.7 en el ACU 1.

P#8.7

LAR1

Almacenar un puntero en formato de palabra doble en la


direccin de bit 8.7 en el registro de direcciones AR 1.

E [AR1, P#0.0]

La CPU le aade al contenido del registro de direcciones AR1


(8.7) el desplazamiento (P#0.0) y utiliza dicha direccin como
operando de una combinacin lgica Y del bit. El contenido de
AR1 permanece inalterado.

A [AR1, P#1.1]

La CPU le asigna el resultado de la operacin lgica (RLO) a


una direccin (A 10.0). La CPU calcula dicho operando sumando
el contenido del registro de direcciones AR1 (8.7) y el
desplazamiento (P#1.1).

AWL

Explicacin

Cargar un puntero en formato de palabra doble en la direccin


de bit 8.0 en el ACU 1.

P#8.0

LAR2

Almacenar un puntero en formato de palabra doble en la


direccin de bit 8.0 en el registro de direcciones AR 2.

EB [AR2, P#2.0]

La CPU carga el byte de entrada EB10 en el ACU 1.

MW [AR2, P#200.0] La CPU transfiere el contenido de ACU 1 a la palabra de marcas


MW208.
La direccin 208 resulta de 8 (AR 2) + 200 (desplazamiento),
equivaliendo a 208.

3-10

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Direccionamiento

3.6

Direccionamiento indirecto por registro e interrea

Descripcin

En el direccionamiento indirecto por registro e interrea, el operando indica la direccin del valor que va a procesar la operacin. El operando se compone de dos
partes:

S Un identificador que indica el tamao de un objeto de datos (p. ej. B para


byte, v. tabla 2-8). El rea de memoria se indica en los bits 24, 25 y 26 del
registro de direcciones.

S Un registro de direcciones y un puntero; este puntero indica el desplazamiento


que se suma al contenido del registro de direcciones para determinar cul es la
direccin exacta que va a procesar la operacin. El puntero se indica de esta
forma: P#byte.bit.
El operando indica la direccin del valor indirectamente a travs del registro de direcciones ms el desplazamiento.
Una operacin que utiliza el direccionamiento indirecto por registro e interrea no
modifica el valor del registro de direcciones.

Calcular la
direccin del
operando

El operando de una operacin indica el valor que ser procesado por la operacin.
En el direccionamiento indirecto por registro e interrea, el operando indica
indirectamente la direccin del valor, a travs del registro de direcciones ms el
desplazamiento. En la figura 3-5 se muestra cmo calcular la direccin del operando
para la operacin Asignar (=) en la siguiente instruccin:
= [AR1, P#1.1]

Byte

Bit

Contenido del registro


de direcciones AR1:

8.7

Byte 8, Bit 7

Desplazamiento P#:

1.1

Byte 1, Bit 1

Direccin:

Byte de salida A 10.0

Bytes: 9, Bits: 8 (= 1 Byte)


(9 Bytes + 1 Byte = 10 Bytes)

Figura 3-5

Clculo de la direccin [AR1, P#1.1]

La direccin del operando se calcula sumndole la porcin de bytes del contenido


del registro de direcciones a la porcin de bytes del puntero de desplazamiento y
sumndole la porcin de bits del registro de direcciones a la porcin de bits del
puntero de desplazamiento. Para calcular la porcin de bytes de la direccin se
utilizar el sistema decimal, en tanto que para calcular la porcin de bits se
emplear el sistema octal (8 bits = 1 byte). Puede haber una transferencia entre las
porciones de bits y de bytes.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

3-11

Direccionamiento

Ejemplo

La tabla 3-5 muestra algunos ejemplos del direccionamiento indirecto por registro e
interrea. El operando debe contener un rea de identificacin adicional en los bits
24, 25 y 26 del puntero. La informacin direccionada se encuentra en el registro de
direcciones.
Tabla 3-5

Direccionamiento indirecto por registro e interrea


Descripcin

Ejemplo
U [AR1, P#4.3]

Ejecutar una operacin lgica Y con el bit cuya direccin


exacta se calcula sumando 4 bytes + 3 bits al contenido del
registro de direcciones AR 1. El rea de memoria del bit est
indicada en los bits 24, 25 y 26 del registro de direcciones
AR 1.

= [AR2, P#0.0]

Asignar el bit RLO al bit cuya direccin exacta se encuentra


en el registro de direcciones AR 2. El rea de memoria del
bit est indicada en los bits 24, 25 y 26 del registro de
direcciones AR 2.

L B [AR1, P#100.0]

Cargar en el ACU 1 el byte cuya direccin exacta se calcula


sumando 100 bytes al contenido del registro de direcciones
AR 1. El rea de memoria del byte est indicada en los bits
24, 25 y 26 del registro de direcciones AR 1.

T D [AR2, P#56.0]

Transferir el contenido del ACU 1 a la palabra doble cuya


direccin exacta se calcula sumando 56 bytes al contenido
del registro de direcciones AR 2. El rea de memoria de la
palabra doble est indicada en los bits 24, 25 y 26 del
registro de direcciones AR 2.

La tabla 3-6 lista el cdigo binario en los bits 24, 25 y 26 del puntero que identifica
este rea.
Identificador del rea para direccionamiento indirecto por registro e interrea

Tabla 3-6

Cdigo binario de los bits 26, 25 y 24

Identificador (rea de memoria)


P

(E/S, entradas y salidas externas)

000

(Imagen del proceso de las entradas)

001

(Imagen del proceso de las salidas)

010

(Marcas)

011

DBX (Bloque de datos)

100

DIX (Bloque de datos de instancia)

101

(Datos locales del bloque invocante, es decir,


datos locales del bloque inmediatamente
anterior en la jerarqua de llamada)

3-12

111

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Direccionamiento

Formato
del puntero

El direccionamiento indirecto por registro e interrea admite un solo formato para el


puntero: la palabra doble. La abreviatura de un puntero en formato de palabra doble
termina con una D (p. ej.: DBD). La figura 3-6 muestra un puntero en formato de
palabra doble.

31..
..24 23..
1000 0rrr
0000 0

..16 15..
bbb bbbb

..8
bbbb

3..
bbbb b

..0
xxx

Bit 31 = 1 indica el direccionamiento indirecto por registro e interrea


Bit 24, 25 y 26 (rrr): rea de memoria
Bits 3 a 18 (bbbb bbbb bbbb bbbb): nmero (margen de 0 a 65.535) del byte
direccionado
Bits 0 a 2 (xxx): nmero (margen de 0 a 7) del bit direccionado

Figura 3-6

Puntero en formato de palabra doble para el direccionamiento indirecto por


registro e interrea

Nota
Antes de acceder a un byte, a una palabra o a una palabra doble, hay que asegurarse
de que el nmero de bit del puntero sea 0.
No es posible acceder a datos locales mediante el direccionamiento indirecto por
registro e interrea.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

3-13

Direccionamiento

Los dos ejemplos siguientes muestran cmo utilizar punteros en formato de palabra
doble:

AWL

Explicacin

Cargar un puntero en formato de palabra doble en la direccin


de bit E 8.7 en el ACU 1.

P#E8.7

LAR1

Almacenar un puntero en formato de palabra doble en la


direccin de bit E 8.7 en el registro de direcciones AR 1.

Cargar un puntero en formato de palabra doble en la direccin


de bit A 8.7 en el ACU 1.

P#A8.7

LAR2

Almacenar un puntero en formato de palabra doble en la


direccin de bit A 8.7 en el registro de direcciones AR 2.

[AR1, P#0.0]

La CPU aade el contenido del registro de direcciones AR1 (P#


E 8.7) y el desplazamiento (P#0.0) y utiliza el operando al
que apunta el resultado (E 8.7) como operando de una
combinacin lgica Y del bit. El contenido de AR1 permanece
inalterado.

[AR2, P#1.1]

La CPU le asigna el resultado lgico (RLO) a un operando (A


10.0). La CPU calcula dicho operando sumando el contenido del
registro de direcciones AR2 (P#A 8.7) y el desplazamiento
(P#1.1), desactivando tambin el puntero. El contenido de AR2
permanece inalterado.

AWL

Explicacin

Cargar un puntero en formato de palabra doble en la direccin


de bit E 8.0 en el ACU 1.

P#E8.0

LAR2

Almacenar un puntero en formato de palabra doble en la


direccin de bit E 8.0 en el registro de direcciones AR 2.

Cargar un puntero en formato de palabra doble en la direccin


de bit M 8.0 en el ACU 1.

P#M8.0

LAR1

Almacenar un puntero en formato de palabra doble en la


direccin de bit M 8.0 en el registro de direcciones AR 1.

B [AR2, P#2.0]

La CPU carga el byte de entrada EB 10 en el ACU 1.

W [AR1, P#200.0]

La CPU transfiere el contenido de ACU 1 a la palabra de marcas


MW208.
El byte de entrada 10 se calcula sumando8 (AR 2) + 2 (desplazamiento). La palabra de marcas 208 se calcula sumando 8 (AR
1) + 200 (desplazamiento), dando como resultado 208.

3-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones con acumuladores e


instrucciones para el registro de direcciones

Indice del
captulo

Pgina

Apartado

Tema

4.1

Resumen breve

4-2

4.2

ENT y LEAVE

4-3

4.3

Incrementar y Decrementar

4-6

4.4

+AR1 y +AR2: Sumar una constante al registro de direcciones 1 2

4-7

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

4-1

Operaciones con acumuladores e instrucciones para el registro de direcciones

4.1

Resumen breve
Para operar con el contenido de uno o varios acumuladores o registros de direcciones se dispone de las siguientes operaciones:
Nemotcnica

Operacin

Significado

TAK

Intercambiar ACU 1 con ACU 2

Esta operacin intercambia el contenido de ACU 1 y


ACU 2.

PUSH

Copiar ACU 1 en ACU 2

Esta operacin copia el contenido del ACU 1 en el ACU 2.

ACU 2 en ACU 1 (POP)

Esta operacin copia el contenido del ACU 2 en el ACU 1.

Copiar ACU 3 en ACU 4, ACU 2 en


ACU 3, ACU 1 en ACU 2

Esta operacin copia el contenido del ACU 3 en el ACU 4,


el contenido del ACU 2 en el ACU 3, y el contenido del
ACU 1 en el ACU 2.

Copiar ACU 2 en ACU 1, ACU 3 en


ACU 2, ACU 4 en ACU 3

Esta operacin copia el contenido del ACU 2 en el ACU 1,


el contenido del ACU 3 en el ACU 2, y el contenido del
ACU 4 en el ACU 3.

ENT

Enter pila ACU

Esta operacin copia el contenido del ACU 3 en el ACU 4, y


el contenido del ACU 2 en el ACU 3.

LEAVE

Leave pila ACU

Esta operacin copia el contenido del ACU 3 en el ACU 2, y


el contenido del ACU 4 en el ACU 3.

INC

Incrementar ACU 1

Esta operacin incrementa el contenido del byte bajo de la


palabra baja del ACU 1 por la constante de 8 bits indicada
en la instruccin. La constante ha de estar comprendida en el
margen de 0 a 255.

DEC

Decrementar ACU 1

Esta operacin decrementa el contenido del byte bajo de la


palabra baja del ACU 1 por la constante de 8 bits indicada
en la instruccin. La constante ha de estar comprendida en el
margen de 0 a 255.

+AR1, +AR2

Sumar ACU 1 al registro de


direcciones

Esta operacin suma el contenido de la palabra baja del


ACU 1 al registro de direcciones 1 2.

+AR1 P#Byte.Bit,
+AR2 P#Byte.Bit

Sumar constante al registro de


direcciones

Esta operacin suma una constante al contenido del registro


de direcciones 1 o del 2.

BLD

Operacin de visualizacin (operacin Esta operacin no ejecuta ninguna funcin ni vara el connula)
tenido del bit de estado. La operacin tiene importancia slo
para la unidad de programacin (PG), en el caso de visualizarse un programa. El operando <cifra> es el nmero de
identificacin de la operacin BLD, y lo establece la unidad
de programacin.

NOP 0

Operacin nula 0

NOP 1

Operacin nula 1

con dos
acumuladores
POP
con dos
acumuladores
PUSH
con cuatro
acumuladores
POP
con cuatro
acumuladores

Esta operacin no ejecuta ninguna funcin ni vara el


contenido del bit de estado. Las operaciones NOP 1 y NOP
0 son necesarias para decompilar. El cdigo de operacin
contiene una configuracin binaria con 16 ceros o 16 unos.

Para ms informacin sobre cmo invertir la secuencia de los bytes en el ACU 1,


consulte el apartado 12.3.

4-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones con acumuladores e instrucciones para el registro de direcciones

4.2

ENT y LEAVE

Descripcin

Las operaciones ENT (entrar en pila ACU) y LEAVE (sacar de pila ACU) se
utilizan para ejecutar las siguientes funciones:

S La operacin ENT copia el contenido del ACU 3 en el ACU 4, y el contenido


del ACU 2 en el ACU 3. Si programa la operacin ENT inmediatamente antes
de una operacin de carga, la operacin ENT desplazar el ACU 2 y el ACU 3 a
un nivel ms profundo de la pila.

S La operacin LEAVE copia el contenido del ACU 3 en el ACU 2, y el contenido


del ACU 4 en el ACU 3. Si programa la operacin ENT inmediatamente antes
de una operacin de desplazamiento o de rotacin que combine acumuladores, la
operacin LEAVE funcionar igual que una operacin aritmtica.

ENT

En la figura 4-1 se muestra cmo acta la operacin ENT.

ENT

ACU 4
31

0
I

II

III

ACU 4
31

IV

0
V

ACU 3
0
VI

VII

0
IX

ACU 2
XI

Figura 4-1

XII

0
IX

ACU 1

XI

XII

ACU 1
0

XIV

XI

31

XII

31
XIII

ACU 2
0

VIII

31

VIII

31
IX

VII

ACU 3

31
V

VI

XV

XVI

31
XIII

0
XIV

XV

XVI

Operacin de copia del contenido del ACU 3 en el ACU 4 y del contenido del ACU 2 en el ACU 3 usando la
operacin ENT

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

4-3

Operaciones con acumuladores e instrucciones para el registro de direcciones

LEAVE

En la figura 4-2 se muestra cmo acta la operacin LEAVE.

ACU 4

31

0
I

II

ACU 4

LEAVE

31
III

0
I

IV

ACU 3
0
VI

VII

0
I

VIII

XI

XII

Figura 4-2

Ejemplo

IV

0
V

ACU 1

VI

VII

VIII

XV

XVI

ACU 1

31

0
XIV

III

31

XIII

II

ACU 2

31
X

IV

31

ACU 2
IX

III

ACU 3

31
V

II

XV

31

XVI

XIII

0
XIV

Operacin de copia del contenido del ACU 3 en el ACU 2 y del contenido del ACU 4 en el ACU 3 usando la
operacin LEAVE.

El siguiente fragmento de programa nos servir de ejemplo para explicar cmo se


utiliza la operacin ENT.
Se deben sumar los nmeros en coma flotante de las palabras dobles de datos DBD0
y DBD4. La suma hay que dividirla entre la diferencia de los nmeros en coma flotante contenidos en las palabras dobles de datos DBD8 y DBD12:

DBD16 =

DBD0 + DBD4
DBD8 DBD12

El resultado debe ser depositado en la palabra doble de datos DBD16.


En este ejemplo, la operacin ENT sirve para guardar en el ACU 3 el resultado intermedio que hay en el ACU 2 (DBD0 + DBD4). Tras efectuar la resta, el comando
de resta (-R) vuelve a copiar en el ACU 2 el resultado intermedio que se haba guardado en el ACU 3.

4-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones con acumuladores e instrucciones para el registro de direcciones

AWL

Explicacin

DBD0

DBD4

+R
L

DBD8

ENT
L

DBD12

R
/R
T

DBD16

Carga el valor de la palabra doble de datos DBD0 en el ACU 1


(Dicho valor tiene que estar en coma flotante).
Copia el valor de la palabra doble de datos DBD4 en el ACU 1.
(Dicho valor tiene que estar en coma flotante).
Suma los contenidos del ACU 1 y del ACU 2 como nmeros en coma
flotante (32 bits, IEEEFP) y guarda el resultado en el ACU 1.
Copia el valor de ACU 1 en el ACU 2.
Carga el valor de la palabra doble de datos DBD8 en el ACU 1.
Copia el contenido del ACU 3 en el ACU 4.
Copia el contenido del ACU 2 (resultado intermedio) en el ACU 3.
Copia el contenido del ACU 1 en el ACU 2.
Carga el contenido de la palabra doble de datos DBD12 en el ACU 1.
Resta el contenido del ACU 1 del contenido del ACU 2. Guarda el
resultado en el ACU 1. Copia el contenido del ACU 3 en el ACU 2.
Divide el contenido del ACU 2 por el contenido del ACU 1.
Guarda el resultado en el ACU 1.
Transfiere el resultado (ACU 1) a la palabra doble de datos DBD16.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

4-5

Operaciones con acumuladores e instrucciones para el registro de direcciones

4.3

Incrementar y Decrementar

Descripcin

Las operaciones INC (Incrementar ACU 1) y DEC (Decrementar ACU 1) se utilizan


para ejecutar las siguientes funciones:

S INC incrementa el contenido del byte bajo de la palabra baja del ACU 1 por la
constante de 8 bits indicada en la instruccin. El contenido ha de estar comprendido en el margen de 0 a 255.

S DEC decrementa el contenido del byte bajo de la palabra baja del ACU 1 por la
constante de 8 bits indicada en la instruccin. El contenido ha de estar comprendido en el margen de 0 a 255.
La CPU ejecuta las operaciones INC y DEC, independientemente del resultado lgico. Estas operaciones no afectan al RLO ni modifican los bits de estado).
Nota
Estas operaciones no sirven para las operaciones aritmticas de 16 32 bits, puesto
que no se transfiere nada desde el byte bajo de la palabra baja del ACU 1 al byte
alto de la palabra baja del ACU 1. Para las operaciones aritmticas de 16 32 bits
hay que utilizar la operacin +I o + D, respectivamente.

Ejemplo

El siguiente programa de ejemplo muestra cmo trabaja la operacin INC dentro de


un bucle (Loop) activado por un salto condicional.

AWL

Explicacin

Cuerpo de la operacin LOOP.

M1:

4-6

L
T
L
INC
T
.
.
L
<=
SPB

1
MB10
MB10
1
MB10

Poner el contador de bucles a 1.


Cargar el contenido del byte de marcas MB10 en el ACU 1.
Incrementar el contador de bucles de uno en uno.
Transferir el contenido del ACU 1 al byte de marcas MB10.
rea de instrucciones que se ejecuta 5 veces

B#16#5
I
M1

Si el programa an no ha ejecutado cinco veces el bucle,


retornar a la operacin LOOP.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones con acumuladores e instrucciones para el registro de direcciones

4.4

+AR1 y +AR2: Sumar una constante al registro de direcciones 1 2

Descripcin

Las operaciones +AR1 y +AR2 sirven para sumar un valor al contenido del registro
de direcciones 1 (AR1) o al registro de direcciones 2 (AR2).
Tabla 4-1

Sumar un valor al contenido de los registros de direcciones


Operando

Funcin

+AR1

Suma el contenido de la palabra baja del ACU 1


al contenido del registro de direcciones 1.

+AR2

Suma el contenido de la palabra baja del ACU 1


al contenido del registro de direcciones 2.

Operacin

+AR1

P#Byte.Bit:
(de 0.0 a 4 095.7)1

Suma una constante puntero al contenido del


registro de direcciones 1.

+AR2

P#Byte.Bit:
(de 0.0 a 4 095.7)1

Suma una constante puntero al contenido del


registro de direcciones 2.

1 Los bits 24, 25 y 26 del registro de direcciones no varan. Dichos bits indican el rea de memo-

ria.

Nota
El registro de direcciones AR2 se utiliza en el procesamiento de multiinstancias.
Por tanto, si programa el comando +AR2, deber salvar (guardar) antes el
contenido del AR2 y volver a cargarlo luego.

Ejemplos

A continuacin se muestran ejemplos de instrucciones que utilizan las operaciones


+AR1 y +AR2. Al cargar el formato de puntero en el ACU 1 y utilizar luego la operacin +AR1 +AR2, tal como se indica en las dos primeras operaciones siguientes,
podr disponer del margen comprendido entre 0.0 y 8 191.7.

AWL

Explicacin

L P#250.7
+AR1

Cargar una constante puntero (250.7) en el ACU 1.


Sumar el contenido del ACU (250.7) al contenido del
registro de direcciones 1.
Debido a las multiinstancias que usan como base el AR2

TAR2 #SAVE_AR2
+AR2 P#126.7
.
.
L AR2 #SAVE_AR2

Sumar una constante (126.7) al contenido del registro de


direcciones 2.
Restaurar AR2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

4-7

Operaciones con acumuladores e instrucciones para el registro de direcciones

4-8

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Indice del
captulo

Apartado

Tema

Pgina

5.1

Operaciones lgicas con bits como operandos

5-2

5.2

Operaciones lgicas con bits y circuitos de rel

5-6

5.3

Evaluar condiciones utilizando Y, O y O-exclusiva

5-10

5.4

Operaciones lgicas con expresiones entre parntesis e Y antes de O

5-14

5.5

Operaciones de flancos: FP, FN

5-16

5.6

Terminar una cadena lgica

5-20

5.7

Operaciones Activar (S) y Desactivar (R)

5-21

5.8

Operacin Asignar (=)

5-24

5.9

Negar, activar, desactivar y salvar el RLO

5-26

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-1

Operaciones lgicas con bits

5.1

Operaciones lgicas con bits como operandos

Explicacin

Las operaciones bsicas para las operaciones lgicas con bits son:

S Y (U) y su negacin Y-NO (U)


S O (O) y su negacin O-NO (ON)
S O-exclusiva (X) y su negacin, O-exclusiva-NO (XN)
Cada una de estas operaciones ejecuta las siguientes funciones bsicas siguientes:

S Consultar el estado de un bit operando para determinar si es 1 (activado) 0


(desactivado)

S Consultar el estado de una clula de tiempo (temporizador) o de un contador


para determinar si est a 0 (valor de la clula = 0) o a 1 (valor de la clula >
0).
El resultado de la operacin lgica depende del bit /ER:

S Si /ER = 0, el resultado de la consulta del estado de seal se almacena inalterado en el resultado lgico (comienzo de una cadena lgica).

S Si /ER = 1, el resultado de la consulta del estado de seal se combina conforme a la tabla de verdad de la operacin lgica (U, O, X) y se almacena en el
resultado lgico.

Tabla de verdad al
comienzo de una
cadena lgica

A partir de la siguiente tabla de verdad se puede determinar el resultado lgico al


comienzo de una cadena lgica:
Nemotcnica

Operacin

Estado del
operando

Resultado en el RLO

UN

ON

XN

5-2

Y-NO

O-NO

O-exclusiva

O-exclusiva-NO

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Tabla de verdad
dentro de una cadena lgica

En base a la siguiente tabla de verdad se puede determinar el resultado lgico a partir de la segunda operacin lgica con bits:
Clave
nemotcnica

Operacin

RLO antes de
ejecutar

Estado del
operando

Resultado
en el RLO

UN

ON

XN

Operandos de las
operaciones
bsicas ( U, UN, O,
ON, X, XN )

Y-NO

O-NO

O-exclusiva

O-exclusiva-NO

El operando al que acceden las operaciones puede ser un bit, un temporizador o un


contador. La operacin accede al contacto a travs de uno de los siguientes tipos de
operandos:
S Identificador del operando y de la direccin del rea de memoria indicada por el
identificador (v. tablas 5-1 a 5-3).
S Bit, temporizador o contador, transferido como parmetro (v. tabla 5-4).
S Condicin, expresada por bits de la palabra de estado (v. tabla 5-8).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-3

Operaciones lgicas con bits

Tabla 5-1

Operandos: Direccionamiento directo e indirecto


Mx. rea de direccionamiento segn el tipo de direccionamiento

Identificador
del operando

directo

E
A

0.0 a
65 535.7

[DBD]
[DID]
[LD]
[MD]

0a
65 532

0.0 a
65 535.7

[DBD]
[DID]
[LD]
[MD]

0a
65 532

0.0 a
65 535.7

[DBD]
[DID]
[LD]
[MD]

0a
65 532

DBX
DIX
L

Tabla 5-2

indirecto por
memoria

0.0 a
8 191.7

[AR2, P#byte.bit]
[AR1, P#byte.bit]

0.0 a
8 191.7

[AR2, P#byte.bit]
[AR1, P#byte.bit]

0.0 a
8 191.7

[AR2, P#byte.bit]

Mx. rea de direccionamiento


[AR1, P# byte.bit]
[AR2, P# byte.bit]

E, A, M, DBX, DIX o L

0.0 a 8 191.7

El rea de memoria est codificada en los bits puntero 24, 25 y 26 (v. apt. 3.6).

Tabla 5-3

Operandos: Temporizadores y contadores

Ident f cador del


Identificador
operando
T
Z

Tabla 5-4

Mx. rea de direccionamiento segn el tipo de direccionamiento


directo

0 a 65 535

[DBW]
[DIW]
[LW]
[MW]

0 a 65 534

Formato del parmetro de direccin

Nombre
simblico

Tabla 5-5

indirecto por memoria

Operandos: Bits, temporizadores o contadores transferidos como parmetros

Operando

Bit, temporizador o contador transferido como parmetro

Operandos de las operaciones lgicas de bits: Bits de la palabra de estado

Area de memoria o
referencia a una direccin

5-4

[AR1, P#byte.bit]

Operandos: Direccionamiento indirecto por registro e interrea

Identificador del operando1)

1)

indirecto por registro e intrarea

Bits de la palabra de estado

>0, <0, <>0, >=0, <=0, ==0

7 y 6: cdigos de condicin
(rea de memoria)

UO

7 y 6: cdigos de condicin
(rea de memoria)

RB

8: resultado binario (direccin)

OV

5: desbordamiento (direccin)

OS

4: desbordamiento memorizado (direccin)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Modificacin de
los bits de la
palabra de
estado

Operacin

OR

STA

RLO

/ER

UN

U(

UN(

ON

O(

ON(

XN

X(

XN(

CLR

FN

FP

NOT

SAVE

SET

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-5

Operaciones lgicas con bits

5.2

Operaciones lgicas con bits y circuitos de rel

Introduccin

A las operaciones lgicas con bits tambin se les denomina operaciones de rel, debido a que, normalmente, dichas operaciones ejecutan secuencias de comandos que
cumplen la misma funcin que los circuitos de rel. En este apartado se explica
cmo simular los circuitos de rel ms usuales utilizando secuencias de comandos
AWL.

Contacto
normalmente
abierto

La figura 5-1 muestra la representacin de un circuito de rel con un contacto normalmente abierto. Mientras no se active el contacto, ste permanecer abierto. El
estado de seal del contacto abierto es 0 (desactivado). Si el contacto permanece
abierto, la corriente del conductor no puede pasar corriente a la bobina al final del
circuito. Si se activa el contacto (es decir, el estado de seal del contacto es 1), la
corriente fluye hasta la bobina.

Conductor
Contacto
normalmente
abierto
Bobina

Figura 5-1

E 1.1

A 4.0

Circuito de rels con contacto normalmente abierto

Con la operacin Y (U) u O (O) puede consultarse el estado de seal de un contacto


abierto. Si dicho contacto (E 1.1 = 0) est abierto, el resultado de la consulta ser
0; si est cerrado, el resultado ser 1.

5-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Contacto
normalmente
cerrado

La figura 5-2 muestra un circuito de rels con un contacto normalmente cerrado.


Mientras no se active el contacto, ste permanecer cerrado. El estado de seal del
contacto cerrado es 0 (desactivado). Si el contacto permanece cerrado, la corriente
del conductor puede pasar por el contacto y fluir hasta la bobina al final del circuito.
Activando el contacto (es decir, el estado de seal del contacto es 1) se abre el
contacto, interrumpiendo la circulacin de corriente a la bobina.

Conductor
Contacto
normalmente
cerrado

E 1.1

Bobina

Figura 5-2

A 4.0

Circuito de rel con contacto normalmente cerrado

Con la operacin UN (Y-NO) u ON (O-NO) puede consultarse el estado de seal de


un contacto cerrado. Si dicho contacto est cerrado (E 1.1 = 0), el resultado de la
consulta ser 1; si est abierto, el resultado ser 0.

Circulacin de
corriente en un
circuito en serie

La figura 5-3 muestra una lista de instrucciones que utiliza una operacin Y (U)
para programar dos contactos en serie cuyo estado normal es abierto. La salida A 4.0
slo tendr el estado 1 (y, por tanto, por la bobina pasar corriente) cuando los dos
contactos tengan el estado 1 (cerrados).

Programa AWL

Circuito de rels

U E 1.0

E 1.0

U E 1.1

E 1.1

= A 4.0

A 4.0

Figura 5-3

Programacin de contactos en serie con la operacin Y

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-7

Operaciones lgicas con bits

Circulacin de
corriente en un
circuito paralelo

La figura 5-4 muestra una lista de instrucciones que utiliza una operacin O (O)
para conectar en paralelo dos contactos abiertos.
La salida A 4.0 slo tendr el estado 1 (y, por tanto, por la bobina pasar corriente) cuando los dos contactos normalmente abiertos tengan el estado 1 (cerrados).

Programa AWL

Esquema de rels
Conductor
E 1.0

E 1.1

O E 1.0
O E 1.1
= A 4.0

Figura 5-4

O-exclusiva

A 4.0

Programacin de contactos en paralelo con la operacin O

La operacin O EXCLUSIVA de AWL corresponde a un circuito de rel como el


representado en la figura 5-5, con un contacto normalmente cerrado y un contacto
normalmente abierto unidos mecnicamente. En este circuto, la salida A 4.0 ser
1 cuando E 1.0 y E 1.1 tengan valores diferentes.

Programa AWL

Esquema de rels
Barra de
alimentacin

X E 1.0
X E 1.1
= A 4.0

Contacto
E 1.0
Contacto
E 1.1

Bobina
A 4.0

Figura 5-5

5-8

Programacin de contactos en paralelo con la operacin O-exclusiva

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

UN, ON, XN

De forma similar a la operacin O EXCLUSIVA antes expuesta, con las operaciones


UN, ON y XN se puede realizar, respectivamente 1
UN: la conexin en serie de un
contacto normalmente
cerrado

Programa
AWL

Circuito de rels

Barra

ON: la conexin en paralelo de


un contacto normalmente
abierto

U E 1.0

E 1.0
Contacto abierto

UN E 1.1

E 1.1
Contacto cerrado

= A 4.0

A 4.0
Bobina

Programa
AWL

Circuito de rels

Barra

O E 1.0

E 1.0
Contacto abierto

ON E 1.1 E 1.1
Contacto cerrado

= A 4.0

XN: la conexin acoplada en


paralelo de un contacto
cerrado/abierto

A 4.0
Bobina

Programa
AWL

Circuito de rels

Barra

X E 1.0 E 1.0
Contacto abierto

XN E 1.1 E 1.1
Contacto cerrado

= A 4.0 A 4.0
Bobina

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-9

Operaciones lgicas con bits

5.3

Evaluar condiciones utilizando Y, O y O-exclusiva

Descripcin

Las operaciones lgicas con bits se pueden aplicar para consultar el estado de los
bits A0, A1, RB, OV y OS de la palabra de estado. El estado de dichos bits lo pueden haber fijado antes las operaciones enumeradas en la tabla siguiente (tabla 5-6).
Tabla 5-6

Operaciones que afectan a los bits A0 y A1, RB, OV y OS de la palabra de estado


Tipo de operacin

5-10

Operacin

Apartado

Aritmtica con nmeros en coma fija

)I, *I, /I,<I, )D, *D, /D,<D,


MOD

9.1

Operaciones de comparacin
(Aritmtica con nmeros en coma
fija)

==I, <>I, <I, <=I, >I, >=I, ==D, <>D,


<D, <=D,>D, >=D

11.2

Aritmtica con nmeros en coma


flotante

)R, *R,<R , /R, SQRT, SQR, LN,


EXP, SIN, COS, TAN, ASIN, ACOS,
ATAN

10.1

Comparaciones de coma flotante

==R, <>R, <R, <=R, >R, >=R

11.3

Operaciones de conversin

ITB, DTB, RND, RND*, RND),


TRUNC, NEGI, NEGD

12.1, 12.2 y
12.4

Operaciones de desplazamiento y
rotacin

SLW, SRW, SLD, SRD, SSI, SSD,


RLD, RRD, RLDA, RRDA

14.1 y 14.2

Operaciones lgicas con palabras

UW, OW, XOW, UD, OD, XOD

13.2

Parntesis

5.4

Salvar RLO en registro RB

SAVE

5.9

Operaciones de salto

SPBB, SPBNB, SPS

16.1

Operaciones de control del programa

BEB, BE, BEA, CC, UC

17.6

Operaciones de transferencia

T STW

8.3

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Relacin entre un
resultado y 0

La combinacin de los cdigos de condicin A1 y A0 de la palabra de estado puede


consultarse de forma simplificada mediante operandos sustitutivos (p. ej. >0, ==0,
<0, etc.). En la tabla 5-7 se representa la relacin entre diversas combinaciones de
bits con consulta simplificada. As, la combinacin A1=0 y A0=1 puede consultarse
por ejemplo en una operacin Y con U<0.
Tabla 5-7

Combinaciones de estado de A0 y A1 y su respectiva posibilidad de consulta

Si la palabra de estado contiene la siguiente


combinacin de estados de seal

la consulta puede efectuarse con

estado de seal de A1

estado de seal de A0

>0

<0

<>0

>=0

<=0

==0

UO

AWL

Explicacin

L +10 // LIMITE
INFERIOR

Cargar el entero 10 en la palabra baja del ACU 1 como lmite


inferior.

L MW30

Cargar el valor de la palabra de marcas MW30 en la palabra


baja del ACU 1 y transferir el valor entero 10 al ACU 2-L.

<=I

Si 10 es menor o igual al valor depositado en la palabra


MW 30, poner el bit RLO a 1 (activarlo). En caso contrario,
poner el RLO a 0 (desactivarlo).

L +100 // LIMITE
SUPERIOR

Cargar el entero 100 en la palabra baja del ACU 1 como lmite


superior y transferir el valor de la palabra de marcas MW30,
almacenada en la palabra baja del ACU 1, al ACU 2-L.

-I

Restar 100 al valor depositado en MW30. El resultado activa


A1 y A0 con una combinacin bit a bit que muestra la
relacin entre el resultado y 0 (v. tabla 5-7). El RLO no
cambia.

U <=0
Se cumple la condicin <= 0 de acuerdo con la combinacin
bit a bit en A1 y A0? S da como resultado 1 y No da
como resultado 0 (v. tabla 5-7). Combinar este 1 0 con el
RLO de acuerdo con la tabla de verdad Y. Almacenar el resultado en el bit RLO.
= A 4.0
Escribir el valor del RLO en el estado de seal de la salida
A 4.0. La bobina en la salida A 4.0 lleva corriente (su estado
de seal es 1) si el valor de MW30 es mayor o igual a 10, o
menor o igual a 100.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-11

Operaciones lgicas con bits

Las operaciones lgicas con bits permiten al programa reaccionar incluso cuando el
resultado de una operacin aritmtica en coma flotante no sea admisible porque uno
de los nmeros en coma flotante no es vlido (no vlido, UO). La operacin consulta el estado de seal del bit A1 y A0 de la palabra de estado (v. tabla 5-7).

Desbordamiento y
resultado binario

Algunas de las operaciones expuestas en la tabla 5-7 pueden poner el bit de


resultado binario (RB) o los bits de desbordamiento (OV y OS) a 1. Para ello pueden
utilizarse las operaciones lgicas con bits U, UN, O, ON, X y XN con las siguientes
reas de memoria, a fin de permitir al programa que reaccione ante los bis RB, OV
u OS con estado de seal 1.

AWL

Explicacin

L MW10

Cargar el entero de la palabra de marcas MW10 en la palabra


baja del ACU 1.

L MW20

Cargar el entero de la palabra de marcas MW20 en la palabra


baja del ACU 1 y transferir el valor de MW10 al ACU 2.

+I

Sumar ambos valores enteros de los acumuladores.

MW30

Transferir el resultado de la palabra baja del ACU 1 a MW30.

E 0.0

Consultar si el estado de seal de la entrada E 0.0 es 1


0.

OV

Consultar si el bit OV de la palabra de estado es 1 0.

A 4.0

Si el estado de seal
encuentra asimismo un
ocurrido en la ltima
de seal de la salida

de E0.0 es 1 y en el bit 0V se
1 (p.ej. debido a un desbordamiento
operacin aritmtica), poner el estado
A4.0 a 1; en otro caso, ponerlo a 0.

AWL

Explicacin

RB

Consultar si el bit RB de la palabra de estado es 1 0.

A 4.0

Si el bit RB de la palabra de estado est a 1, poner


el estado de seal de la salida A 4.0 a 1; en caso
contrario ponerlo a 0.

5-12

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Direccionar los
bits de la palabra
de estado

Las operaciones lgicas con bits evalan condiciones utilizando los operandos que
muestra la tabla 5-8.
Tabla 5-8

Operandos de las operaciones lgicas con bits: bits de la palabra de estado

Area de memoria o
referencia a una direccin

Bits de la palabra de estado

>0, <0, <>0, >=0, <=0, ==0

7 y 6: bits de estado
(rea de memoria)

UO

7 y 6: bits de estado
(rea de memoria)

RB

8: resultado binario (direccin)

OV

5: desbordamiento (direccin)

OS

4: desbordamiento memorizado (direccin)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-13

Operaciones lgicas con bits

5.4

Operaciones lgicas con expresiones entre parntesis e Y antes de O

Descripcin

Las operaciones U (Y), O (O) y X (O-exclusiva) y sus negaciones UN, ON y XN


permiten ejecutar operaciones lgicas con fragmentos de una cadena lgica encerradas entre parntesis (expresiones entre parntesis). Los parntesis que encierran un
fragmento de una cadena lgica indican que el programa va a ejecutar las operaciones entre parntesis antes de ejecutar la operacin lgica que precede a la expresin
entre parntesis.
Tambin es posible combinar las operaciones Y y O en una cadena lgica sin utilizar parntesis. Existe la convencin de evaluar en primer lugar las instrucciones Y, y
combinar luego los resultados de acuerdo con la tabla de verdad O.

Resultado lgico

La operacin que abre una expresin entre parntesis almacena el RLO de la operacin precedente en la pila de parntesis. A continuacin, el programa combina el
RLO almacenado con el resultado de las combinaciones lgicas ejecutadas dentro
del parntesis.

AWL

Explicacin

U(
O E 0.0

Las operaciones entre U( y ) forman una combinacin O normal.


El resultado de la primera consulta se guarda en el bit RLO.

O M 10.0
)

Conforme a la tabla de verdad de O se combina el resultado de


la consulta con el RLO de la operacin anterior. Esta
combinacin crea un nuevo resultado, que sustituye al valor
del bit RLO.

U(

U( copia el valor actual en el bit RLO, lo guarda en la pila


de parntesis y finaliza la cadena lgica anterior. Por ello,
la siguiente operacin lgica inicia una nueva cadena y
efecta una primera consulta.

O E 0.2

Las operaciones entre U( y ) forman una combinacin O normal.


El resultado de la consulta se guarda en el bit RLO.

O M 10.3

Conforme a la tabla de verdad de O se combina el resultado de


la consulta con el RLO de la operacin anterior. Esta
combinacin crea un nuevo resultado, que sustituye al valor
del bit RLO.

La operacin ) combina el RLO guardado en la pila de parntesis (v. arriba, paso 3) con el RLO actual, conforme a la tabla
de verdad de Y. Esta operacin utiliza la tabla de verdad de Y
porque el signo ) finaliza una expresin entre parntesis que
haba empezado por U. Esta combinacin forma un nuevo RLO.

U M 10.1

Esta operacin Y normal combina el nuevo RLO del paso 6 con el


resultado de la consulta, conforme a la tabla de verdad de Y.

= A 4.0

Y antes de O

5-14

La operacin de asignacin (=, v. apt. 11.8) asigna el valor


del RLO a la bobina de salida.

La siguiente lista de instrucciones utiliza el principio Y antes de O para programar


un circuito. Por convencin, el programa evala en primer lugar la combinacin Y.
A continuacin combina los resultados de la combinacin Y de acuerdo con la tabla
de verdad O. No se requieren parntesis. El principio con el que se trabaja aqu se
denomina Y antes de O.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

AWL

Explicacin

U E 0.0

El resultado de la primera consulta se guarda en el bit RLO.

U M 10.0

Conforme a la tabla de verdad de Y se combina el resultado de


la consulta con el RLO de la operacin anterior. Esta
combinacin crea un nuevo resultado, que sustituye al valor
del bit RLO.

La operacin O copia el valor actual en el bit RLO, lo guarda


en el bit OR y finaliza la cadena lgica anterior. La operacin O guarda el RLO como uno de los dos valores que utilizar
para realizar una combinacin O conforme al principio Y antes
de O.

U E 0.2

El resultado de la primera consulta se guarda en el bit RLO.


Adems de la operacin normal, en cada operacin Y que sigue a
una operacin O se combina el RLO formado con el bit O.
U M 0.3

Conforme a la tabla de verdad de Y se combina el resultado de


la consulta con el RLO formado en la operacin anterior. Esta
combinacin crea un nuevo resultado, que sustituye al valor
del bit RLO. Adems de la operacin normal, en cada operacin
Y se combina el RLO formado con el bit O.
La primera operacin O saca el RLO guardado en la pila de parntesis y lo combina con el RLO actual. Esta operacin forma
un nuevo valor, que se guarda en el bit RLO como resultado de
la combinacin Y antes de O. (No hay ninguna operacin especial para finalizar una combinacin Y antes de O. Un
procesador de bits especial del sistema de automatizacin encuentra la ltima operacin en la combinacin Y antes de O. La
operacin que sigue a la ltima operacin U (p.ej. =, S, R u
O) cierra automticamente la combinacin Y antes de O al calcular el RLO).
O M 10.1

La siguiente operacin O combina el resultado de la


combinacin Y antes de O con el resultado de la consulta de la
segunda operacin O.
= A 4.0

La operacin de asignacin (=, v. apartado 11.8) asigna el


valor del RLO de la bobina de salida.

La salida A 4.0 lleva corriente (su estado de seal es 1) cuando el resultado de uno
u otro de los pares de operaciones Y es 1 o cuando el resultado de la operacin O
normal con M 10.1 es 1.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-15

Operaciones lgicas con bits

5.5

Operaciones con flancos: FP, FN

Descripcin

Las operaciones FP (flanco positivo) y FN (flanco negativo) pueden utilizarse como


contactos detectores de cambios de flanco en un circuito de rel. Estas combinaciones detectan cambios en el resultado lgico y reaccionan correspondientemente. El
cambio de 0 a 1 se denomina flanco ascendente (positivo), mientras que el
cambio de 1 a 0 se denomina flanco descendente (negativo) (v. fig. 5-6).

Flanco ascendente

RLO

Flanco descendente

1
0
Figura 5-6

Reaccin ante un
flanco positivo

Tiempo
Representacin de los flancos positivo y negativo

La figura 5-7 muestra una lista de instrucciones que permite al programa reaccionar
ante un cambio de flanco positivo. En el prrafo que sigue a la figura se explica el
contenido de la misma.
Lista de instrucciones

Esquema de los estados de seal

U E 1.0

E 1.0

FP M 1.0

M 1.0

= A 4.0

A 4.0

OB1 ciclo no.:


Figura 5-7

1
0
1
0
1
0
1

Reaccin ante un cambio de flanco positivo

Cuando el autmata programable detecta un flanco positivo en el contacto E 1.0


activa la bobina en la salida A 4.0 durante un ciclo de un OB1. El autmata programable almacena el resultado lgico de la operacin U en la marca de flancos M 1.0
y lo compara con el RLO del ciclo precedente. (En el ejemplo de la figura 5-7, el
RLO de la instruccin U E 1.0 coincide casualmente con el estado de seal de la
entrada E 1.0, cosa que no ocurre en todos los programas). Si el RLO actual es 1 y
el RLO del ciclo precedente almacenado en el bit de marcas M 1.0 es 0, entonces
la operacin FP pone el RLO a 1. La operacin FP detecta un flanco positivo en el
contacto (p. ej, el estado de seal del RLO cambi de 0 a 1). Si no se produce
ningn cambio en el RLO (el RLO actual y el RLO precedente almacenados en la
marca de flancos son ambos igual a 0 1), entonces la operacin FP desactiva
el RLO, es decir, lo pone a 0.

5-16

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Tabla 5-9

Consulta de un cambio de flanco positivo en la entrada E 1.0

OB1,
ciclo n

Estado de seal de
la entrada en el ciclo precedente

Estado de
seal de la
entrada en el
ciclo actual

Cambi el es- Lleva corriente


tado de seal
la bobina en
de 0 a 1? A 4.0?

0
(valor
predeterminado)

No

No

No

No

No

No

No

No

No

No

No

No

La tabla 5-9 hace referencia al programa AWL expuesto en la figura 5-7. Generalmente, los cambios detectados por las operaciones FP y FN deben ser considerados
como cambios que se reflejan en el RLO y no en el estado de seal de los contactos.
Por ejemplo, una cadena lgica puede generar un RLO que no est directamente
relacionado con el estado de seal de un contacto.

Reaccin ante un
flanco negativo

La figura 5-8 muestra una lista de instrucciones que permite al programa reaccionar
ante cambios de flanco negativos. En el prrafo que sigue a la figura se explica el
contenido de la misma.
Lista de instrucciones

Esquema de los estados de seal

U E 1.0

E 1.0

FN M 1.0

M 1.0

= A 4.0

A 4.0

OB1, ciclo no.:


Figura 5-8

1
0
1
0
1
0
1

Reaccin ante un cambio de flanco negativo

Cuando el autmata programable detecta un flanco negativo en el contacto E 1.0,


activa la bobina en A 4.0 durante todo el ciclo de un OB1.
El autmata programable almacena el resultado lgico de la operacin U en la
marca de flancos M 1.0 y lo compara con el RLO del ciclo precedente (v. tabla 5-10). (En el ejemplo de la figura 5-8, el RLO de la instruccin U E 1.0 coincide casualmente con el estado de seal de la entrada E 1.0, lo que no ocurre en todos los programas.) Si el RLO actual es 0 y el RLO del ciclo precedente
almacenado en la marca M 1.0 es 1, entonces la operacin FN pone el RLO a 1.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-17

Operaciones lgicas con bits

La operacin FN detecta un flanco negativo en el contacto (p. ej. el estado de seal


del RLO cambi de 1 a 0). Si no se produce ningn cambio en el RLO (el RLO
actual y el RLO precedente almacenado en la marca de flancos son ambos igual a
0 o igual a 1), entonces la operacin FN vuelve a poner el RLO a 0.
Tabla 5-10

Consulta de un cambio de flanco negativo en la entrada E 1.0

OB1,
ciclo n

Estado de seal de
la entrada en el ciclo precedente

Estado de
seal de la
entrada en el
ciclo actual

Cambi el es- Lleva corriente


tado de seal
la bobina en
de 1 a 0? A 4.0?

0
(valor por defecto)

No

No

No

No

No

No

No

No

No

No

No

No

No

No

La tabla 5-10 hace referencia al programa AWL expuesto en la figura 5-8. Generalmente, los cambios detectados por FP y FN deben ser considerados como cambios
que se reflejan en el RLO y no en el estado de seal de contactos. Por ejemplo, una
cadena lgica puede generar un RLO que no est directamente relacionado con el
estado de seal de un contacto.

Operando
direccionado

El operando direccionado por la operacin FP o FN es un bit. La operacin accede a


la bobina mediante uno de los siguientes tipos de operandos:

S Identificador del operando y direccin en el rea indicada por el identificador


(v. tablas 5-11 y 5-12).

S Bit transferido como parmetro (v. tabla 5-13).

5-18

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Tabla 5-11
Identificador
del operando 1)
E2)
A3)
M
DBX
DIX
L

Operandos de FP y FN: Direccionamiento directo e indirecto


Mx. rea de direccionamiento segn el tipo de direccionamiento
directo

0.0 a
65 535.7

indirecto por
memoria
[DBD]
[DID]
[LD]
[MD]

0a
65 532

indirecto por registro


intrarea

[AR1, P#byte.bit]
[AR2, P#byte.bit]

0.0 a
8 191.7

1)

Obsrvese la advertencia debajo de la tabla.


Puesto que el sistema operativo sobreescribe la imagen del proceso de las entradas al comienzo de cada ciclo, el RLO almacenado por la operacin FP o FN y que utiliza un bit
de entrada queda falsificado. Obsrvese la advertencia debajo de la tabla.
3) No es recomendable utilizar un bit de salida como operando de la operacin FP o FN. Si
se desea influir una salida conviene ms utilizar la operacin S, R o =.
2)

Cuidado
Falsificacin del resultado lgico almacenado.
Puede provocar daos materiales.
En caso de utilizar la operacin FP o FN en el programa, el bit de marcas empleado
como operando ser utilizado por FP o FN exclusivamente para sus propios fines de
almacenamiento. Por consiguiente, no conviene usar operaciones que puedan
modificar dicho bit. De lo contrario podra falsificarse el RLO almacenado. Esta
advertencia rige para todas las reas de memoria listadas en la tabla 5-11.

Tabla 5-12

Operandos de FP y FN: Direccionamiento indirecto por registro e interrea

Identificador del operando1)


E, A, M, DBX, DIX
1)

Area de direccionamiento
[AR 1, P#byte.bit]
[AR 2, P#byte.bit]

0.0 a 8 191.7

El rea de memoria est codificada en AR1 o AR2 (v. apt. 3.6).

Tabla 5-13

Operandos de FP y FN: Bit transferido como parmetro

Operando
Nombre
simblico

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Formato del parmetro de direccionamiento


Bit transferido como parmetro.

5-19

Operaciones lgicas con bits

5.6

Terminar una cadena lgica

Descripcin

Para terminar una cadena lgica se puede utilizar una de las tres operaciones AWL
siguientes. Cada una de estas operaciones puede afectar al bit que representa el fin
de dicha cadena.

S S (Activar): si el RLO de la operacin anterior se puso a 1, S pone a 1 el


estado de seal del contacto direccionado o de la bobina direccionada;

S R (Desactivar): si el RLO de la operacin anterior se puso a 1, R pone a 0 el


estado de seal del contacto direccionado o de la bobina direccionada;

S = (Asignar): independientemente del estado del RLO, el valor del RLO se le


asigna al operando direccionado.

Terminar una
cadena lgica

Al terminar una cadena lgica, el bit de primera consulta (bit /ER) se pone a 0. Si
el valor del bit /ER es 0, significa que la siguiente operacin del programa es la
primera de una nueva cadena lgica (v. apartado 2.2, primera consulta). (Las operaciones de salto condicional tambin ponen el bit /ER a 0, v. aptos 16.3 a 16.5).
Las cadenas lgicas que comenzaron con las operaciones U(, UN(, O(, etc. deben
terminar con la operacin ). Puesto que estas operaciones pueden utilizarse tambin
dentro de una cadena lgica, constituyen en este caso una interrupcin. Ello significa que se comienza una nueva cadena lgica antes de haber terminado la cadena
anterior. Para poder terminar correctamente la cadena lgica anterior una vez terminadas las operaciones ejecutables entre parntesis, se vuelve a restaurar el bit /ER
antiguo que se salv al abrir un parntesis. Por lo tanto, las partes del programa
puestas entre parntesis son una especie de clculo parcial. Una vez terminado
dicho clculo parcial se contina con la antigua cadena lgica.

5-20

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

5.7

Operaciones Activar (S) y Desactivar (R)

Descripcin

La operacin S (Activar) puede utilizarse para activar el estado de seal de un bit


direccionado, es decir, para ponerlo a 1. (En cuanto a la manera de poner un contador direccionado a un valor determinado mediante la operacin S, v. apt. 7.2).
La operacin R (Desactivar) puede utilizarse para desactivar el estado de seal de
un bit direccionado, es decir, para ponerlo a 0. Con R puede desactivarse asimismo un temporizador o un contador direccionados (v. apts. 6.3 y 7.2). S y R finalizan una cadena lgica (v. apt. 5.6).

Activar un bit
estticamente

La operacin S pone a 1 el bit que direcciona si el resultado lgico de la


instruccin precedente es 1 y el Master Control Relay (MCR) est activado (p. ej.,
su estado de seal es 1). Si el MCR no est activado (su estado de seal es 0), el
bit direccionado no cambia (v. apts. 17.4 y 17.5). La operacin S finaliza una
cadena lgica.
La figura 5-9 muestra cmo la operacin S mantiene a 1 el estado de seal de la
bobina E 4.0 que ha direccionado hasta que la operacin R cambia el estado de seal a 0. El que el estado de seal de la bobina direccionada permanezca a 1
hasta que la operacin R lo ponga a 0 pone de manifiesto el carcter esttico de la
operacin S.
En el circuito de rels, cuando se activa el contacto abierto de la entrada E 1.0 (su
estado de seal cambia a 1) se cierra el contacto. La corriente fluye a travs del
contacto de la entrada 1.0 y a travs del contacto normalmente cerrado situado ms
abajo, activando la bobina en la salida A 4.0 (el estado de seal de A 4.0 cambia a
1).
Al activarse la bobina se cierra el contacto abierto en la salida A 4.0 frente a E 1.0.
Despus, independientemente de que el contacto de la entrada E 1.0 est abierto o
cerrado, queda activada la bobina en la salida A 4.0 (con estado de seal 1). La
bobina se mantiene a s misma bajo tensin.

Lista de instrucciones
U
S
U
R

Circuito de rels

E 1.0
A 4.0
E 1.1
A 4.0

Barra
E 1.0
Contacto
abierto

Esquema de los estados de seal

E 1.0

0
1

E 1.1

0
1

A 4.0

Figura 5-9

A 4.0

E 1.1

Contacto
cerrado
A 4.0
Bobina

Activacin y desactivacin estticas de un bit

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-21

Operaciones lgicas con bits

Desactivar bits

La operacin R desactiva el bit que direcciona, es decir, lo pone a 0 cuando el


resultado lgico de la operacin precedente es 1 y cuando el Master Control Relay
(MCR) no est activado (su estado de seal es 1). Si el MCR no est activado (su
estado de seal es 0), el bit direccionado no cambia. La operacin R finaliza una
cadena lgica.
La figura 5-9 muestra cmo la operacin R mantiene a 0 el estado de seal de la
bobina A 4.0 que ha direccionado, independientemente de que cambie el estado de
seal del contacto que impuls la desactivacin (E 1.1). El que el estado de seal de
la bobina direccionada se mantenga a 0 hasta ser desactivado por una operacin S
pone de manifiesto el carcter esttico de la operacin R.
En el esquema de rels, la bobina de la salida A 4.0 activada por la operacin S se
desactiva (su estado de seal cambia a 0) cerrando el contacto normalmenteabierto de la entrada E 1.1. El cierre del contacto E 1.1 permite que fluya la corriente
hasta la bobina situada debajo. Esta bobina abre el contacto normalmente cerrado
que se encuentra directamente encima de la bobina de A 4.0, impidiendo que la corriente alcance la bobina. Cerrando el contacto E 1.1 se activa la operacin R.

Operando
direccionado

El operando direccionado por la operacin S puede ser un bit, mientras que el operando direccionado por la operacin R puede ser un bit, un nmero de temporizador
o un nmero de contador. Los operandos se pueden indicar de las siguientes formas:

S Identificador del operando y direccin del rea de memoria indicada por el identificador (v. tabla 5-14 a 5-16).

S Bit, temporizador o contador transferido como parmetro (v. tabla 5-17).


Tabla 5-14

Mx. rea de direccionamiento segn el tipo de direccionamiento

Identifica
Ident
f ca
dor del
operando

directo

E
A

0.0 a
65 535.7

[DBD]
[DID]
[LD]
[MD]

0a
65 532

0.0 a 255.7

[DBD]
[DID]
[LD]
[MD]

0a
65 532

[DBD]
[DID]
[LD]
[MD]

0a
65 532

DBX
DIX
L

5-22

Operandos de S y R: Direccionamiento directo e indirecto

0.0 a
65 535.7

indirecto por
memoria

intrarea, indirecto por registro


[AR1,P#byte.bit]
[AR2,P#byte.bit]
[AR1,P#byte.bit]
[AR2,P#byte.bit]
[AR1,P#byte.bit]
[AR2,P#byte.bit]

0.0 a
8 191.7

0.0 a
8 191.7

0.0 a
8 191.7

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Tabla 5-15

Operandos de S y R: Direccionamiento indirecto por registro, interrea

Identificador del operando1)

[AR1,P#byte.bit]
[AR2,P#byte.bit]

E, A, M, D, DBX, DIX o L
1)

Operandos de R: Temporizadores y contadores

Ident f cador del


Identificador
operando
T 1)
Z

Mx. rea de direccionamiento segn el tipo de direccionamiento


directo

0 a 65 535

indirecto por memoria


[DW]
[DXW]
[LW]
[MW]

0 a 65 534

La operacin S que pone a 1 un bit direccionado no sirve para temporizadores y contadores. Una operacin S utilizada con un contador pone el contador a un valor determinado. Los
temporizadores se arrancan con operaciones especiales (v. apts. 6.2, 6.3 y 7.2).

Tabla 5-17

Operandos de S y R: Bit, temporizador o contador transferido como parmetro

Operando
Nombre
simblico
1)

0.0 a 8191.7

El rea de memoria est codificada en los bits puntero 24, 25 y 26 (v. apt. 3.6).

Tabla 5-16

1)

Mx. rea de direccionamiento

Formato del parmetro de direccionamiento


Bit, temporizador 1) o contador transferido como parmetro.

La operacin S no sirve para temporizadores. Los temporizadores se arrancan con operaciones especiales para cada tipo de temporizador (v. apts. 6.2 y 6.3).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-23

Operaciones lgicas con bits

5.8

Operacin Asignar (=)

Descripcin

Cada operacin lgica da un resultado denominado resultado lgico (RLO). Este


RLO es siempre 1 0. En relacin con contactos y bobinas, un 1 significa
que circula corriente, mientras que un 0 significa que no circula.
La operacin Asignar (=) puede utilizarse para copiar el RLO de la operacin precedente de una cadena lgica y asignarlo al estado de seal de la bobina direccionada
por la operacin =. La operacin = finaliza una cadena lgica (v. apt. 5.6).

Activar o
desactivar un bit

El valor que la operacin = asigna a la bobina direccionada puede ser 1 0,


dependiendo del RLO de la instruccin precedente. A diferencia de las operaciones
S y R, la operacin = es de carcter dinmico. Asigna el RLO como estado de seal
a la salida direccionada por la operacin =. La figura 5-10 muestra cmo cambia
este valor al cambiar el RLO de la instruccin U E 1.0.
La operacin = representada en la figura 5-10 hace que la seal de entrada en el
contacto (E 1.0) active o desactive la bobina (A 4.0), es decir, la operacin = activa
o desactiva la salida A 4.0 asignando el RLO de la operacin precedente.

Lista de instrucciones

Circuito de rels

U E 1.0
= A 4.0

Barra

E 1.0
Esquema de los estados de seal
E 1.0

0
1

A 4.0

Figura 5-10

5-24

1
A 4.0
Bobina

0
Activacin y desactivacin dinmica de un bit

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Operandos

El operando direccionado por la operacin = puede ser un bit. La operacin accede


a la bobina mediante una de las direcciones siguientes:

S Identificador del operando y direccin del rea de memoria indicada por el identificador (v. tablas 5-18 y 5-19).

S Bit transferido como parmetro (v. tabla 5-20).


Tabla 5-18

Operandos de =: Direccionamiento directo e indirecto


Mx. rea de direccionamiento segn el tipo de direccionamiento

IdentificaIdent
f ca
dor del
operando

directo

E
A

0.0 a
65 535.7

[DBD]
[DID]
[LD]
[MD]

0a
65 532

0.0 a
65 535

[DBD]
[DID]
[LD]
[MD]

0a
65 532

0.0 a
65 535.7

[DBD]
[DID]
[LD]
[MD]

0a
65 532

DBX
DIX
L

Tabla 5-19

indirecto por
memoria

[AR1,P#byte.bit]
[AR2,P#byte.bit]
[AR1,P#byte.bit]
[AR2,P#byte.bit]
[AR1,P#byte.bit]
[AR2,P#byte.bit]

0.0 a
8 191.7

0.0 a
8 191.7

0.0 a
8 191.7

Operandos de =: Direccionamiento indirecto, interrea

Identificador del operando1)


E, A, M, D, DBX, DIX o L
1)

indirecto por registro, intrarea

Area de parmetros de direccionamiento


[AR1,P#byte.bit]
[AR2,P#byte.bit]

0.0 a 8 191.7

El rea de memoria est codificada en los 8 bits ms significativos de AR1 o AR 2

Tabla 5-20

Operandos de =: Bit transferido como parmetro

Operando
Nombre
simblico

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Formato del parmetro de direccionamiento


Bit transferido como parmetro.

5-25

Operaciones lgicas con bits

5.9

Negar, activar, desactivar y salvar el RLO

Descripcin

Las operaciones siguientes permiten modificar el resultado lgico (RLO) almacenado en el bit RLO de la palabra de estado del autmata programable (v. apt. 5.8):
Nemotcnica

Operacin

Significado

NOT

Negar RLO

Negar (invertir) el RLO actual

SET

Activar RLO

Poner el RLO actual a 1

CLR

Desactivar RLO

Poner el RLO actual a 0

SAVE

Salvar RLO en el registro


RB

Salvar el RLO actual en el bit de la palabra de


estado

Puesto que estas operaciones afectan directamente al RLO, no poseen operandos.


Negar RLO

La operacin NOT puede utilizarse en el programa para invertir el RLO actual. Si el


RLO actual es 0, NOT lo cambia a 1; si el RLO es 1, NOT lo cambia a 0,
en caso de no haber activado el bit OR. Si el RLO actual es 1, NOT lo cambia a
0 si el bit OR no est activado. Esta operacin es especialmente til para acortar
el programa cambiando por ejemplo de lgica positiva a lgica negativa (v. el ejemplo del temporizador en el Anexo B.3: Temporizadores).

Activar RLO

La operacin SET puede utilizarse en el programa para poner el RLO incondicionamente a 1. La figura 5-11 muestra cmo funciona la operacin SET en un programa.

Desactivar RLO

La operacin CLR puede utilizarse en el programa para poner el RLO incondicionalmente a 0. CLR pone a 0 tambin los bits /ER y STA. As se finaliza la cadena lgica. La figura 5-11 muestra cmo funciona la operacin CLR en un programa.

Salvar RLO

La operacin SAVE puede utilizarse en el programa para almacenar el RLO para


usarlo posteriormente o para influir en el bit RB de la palabra de estado del autmata programable, por ejemplo en caso de programar bloques de funcin (FB) y
funciones (FC) para cuadros de programacin de KOP.
Operacin

Efecto sobre los bits de la palabra de estado


RB

OR

STA

RLO

/ER

NOT

SET

CLR

SAVE

5-26

A1

A0

OV

OS

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits

Aplicar SET y CLR

El programa representado en la figura 5-11 muestra un ejemplo de aplicacin de las


operaciones SET y CLR para activar y desactivar un bit incondicionalmente.

Lista de instrucciones

Estado de seal

= M 10.0

= M 15.1

= M 16.0
CLR

= M 10.1

= M 10.2

Figura 5-11

Resultado consulta (RLO)


1

SET

Activacin y desactivacin absoluta de un bit con SET y CLR

Las instrucciones del programa de la figura 5-11 pueden utilizarse en un bloque de


organizacin de arranque (OB). Despus de poner el autmata programable en marcha, ste procesa el OB de arranque con todas las instrucciones que contiene. Una
vez que el autmata programable haya ejecutado todas las instrucciones, los siguientes bits de marcas tienen un estado de seal determinado, independientemente de las
condiciones:

S El estado de seal de los bits de marcas M 10.0, M 15.1 y M 16.0 es 1.


S El estado de seal de los bits de marcas M 10.1 y M 10.2 es 0.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

5-27

Operaciones lgicas con bits

5-28

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

Indice del
captulo

Apartado

Tema

Pgina

6.1

Resumen breve

6-2

6.2

Areas de memoria y componentes de un temporizador

6-3

6.3

Cargar, arrancar, desactivar y habilitar un temporizador

6-5

6.4

Ejemplos de temporizadores

6-7

6.5

Operandos y reas de direccionamiento de las operaciones de


temporizacin

6-17

6.6

Elegir el temporizador adecuado

6-18

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-1

Operaciones de temporizacin

6.1

Resumen breve

Definicin

Un temporizador es un elemento funcional del software de programacin STEP 7


que ejecuta y vigila secuencias controladas por tiempo. Las operaciones de
temporizacin permiten al programa ejecutar las funciones siguientes:

S Proveer tiempos de espera. Por ejemplo, despus de un ciclo de inyeccin de


plstico, el molde debe quedar cerrado durante dos segundos. El programa vigila
que se cumpla este lapso de dos segundos antes de que la pieza sea retirada del
molde.

S Proveer tiempos de vigilancia. Por ejemplo, el programa vigila las revoluciones


de un motor durante 30 s despus de pulsar el botn de arranque.

S Generar impulsos. Por ejemplo, el programa emite impulsos que hacen que se
encienda una lmpara y luzca intermitentemente..

S Medir tiempo. Por ejemplo, el programa puede determinar cunto tiempo se requiere para rellenar un recipiente.
Operaciones
disponibles

El lenguaje de programacin Lista de Instrucciones del software STEP 7 permite


ejecutar las siguientes operaciones de temporizacin:

S Arrancar uno de los siguientes tipos de temporizador:


SI: Impulso
SV: Impulso prolongado
SE: Retardo a la conexin
SS: Retardo a la conexin con memoria
SA: Retardo a la desconexin

S R: Poner temporizador a 0
S FR: Habilitar un temporizador para su arranque
S Cargar un temporizador en uno de los formatos siguientes:
L: binario
LC: decimal codificado en binario

S Consultar el estado de seal de un temporizador y combinar el resultado (U, UN,


O, ON, X, XN, v. apt. 5).
La figura 6-1 ilustra las operaciones que utilizan una palabra de temporizacin
como operando.

Arrancar temporizador (SI, SV, SE, SS, SA)

Habilitar
temporizador (FR)

Consultar estado de seal temporizador


(U, O, X, UN, ON, XN)

Figura 6-1

6-2

Palabra de
temporizacin

Poner un temporizador a 0 (R)

Cargar temporizador (L, LC)

Operaciones que pueden utilizar una palabra de temporizacin como operando

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

6.2

Areas de memoria y componentes de un temporizador

Area de memoria

Los temporizadores tienen reservada un rea de memoria de la CPU. Este rea de


memoria reserva una palabra de 16 bits por cada operando de tiempo. La
programacin AWL asiste hasta 256 temporizadores. En los datos tcnicos de su
CPU encontrar la cantidad de palabras de que dispone para los temporizadores.
Al rea de memoria de los temporizadores pueden acceder las funciones siguientes:

S Operaciones de temporizacin
S Actualizar palabras de temporizacin mediante un generador de impulsos de
reloj. Estando la CPU en RUN, esta funcin decrementa un valor de temporizacin dado en el intervalo dictado por la base de tiempo, hasta que el valor es
igual a 0.

Valor de
temporizacin

Los bits 0 a 9 de la palabra de temporizacin contienen el valor de temporizacin en


cdigo binario. Este valor indica un nmero de unidades. La actualizacin del
temporizador decrementa el valor de temporizacin en un intervalo dictado por la
base de tiempo. El temporizador va decrementando hasta ser igual a 0. El valor de
temporizacin puede cargarse en la palabra baja del ACU 1 en formato binario,
hexadecimal o decimal codificado en binario (BCD). El periodo de tiempo va de 0 a
9990 seg.
Para cargar un valor de temporizacin predefinido utilice la sintaxis siguiente:

S L W#16#wxyz
siendo:

w = la base de tiempo (intervalo o resolucin)

xyz = valor de temporizacin en formato BCD

S L S5T#aH_bbM_ccS_dddMS
siendo:

= horas, bb = minutos, cc = segundos y dd = milisegundos

La base de tiempo se selecciona automticamente, redondendose el valor al


prximo valor inferior con la base de tiempo correspondiente.
El valor de temporizacin mximo que puede introducirse es de 9990 segundos o de
2H_46M_30S.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-3

Operaciones de temporizacin

Base de tiempo

Los bits 12 y 13 de la palabra de temporizacin contienen la base de tiempo en


cdigo binario. La base de tiempo define el intervalo en que decrementa el valor de
temporizacin. La base de tiempo ms pequea es de 10 ms; la mxima es de 10 s.
Tabla 6-1

Base de tiempo y cdigo binario


Base de tiempo

Cdigo binario para la base de tiempo

10 ms

00

100 ms

01

1s

10

10 s

11

Debido a que los valores de temporizacin se almacenan en un solo intervalo de


tiempo, los valores que no son exactamente mltiplos de un intervalo quedan truncados. Los valores cuya resolucin es demasiado alta para el margen deseado se
redondean por defecto, alcanzando el margen, pero no la resolucin deseada. La
tabla 6-2 muestra las resoluciones posibles y sus correspondientes mrgenes.
Tabla 6-2

Resolucin y mrgenes de las bases de tiempo


Base de tiempo

Resolucin
0,01 segundo

10MS a 9S_990MS

0,1 segundo

100MS a 1M_39S_900MS

1 segundo

1S a 16M_39S

10 segundos

Configuracin de
los bits del ACU 1

10S a 2HR_46M_30S

Cuando arranca un temporizador, el contenido del ACU 1 se utiliza como valor de


temporizacin. Los bits 0 a 11 de la palabra baja del ACU 1 contienen el valor de
temporizacin en formato decimal codificado en binario (formato BCD: cada grupo
de 4 bits contiene el cdigo binario de un valor decimal). Los bits 12 y 13 contienen
la base de tiempo en cdigo binario (v. tabla 6-1). La figura 6-2 ilustra el contenido
de la palabra baja del ACU 1 tras haber cargado el valor de temporizacin 127 con
una base de tiempo de 1 segundo (v. tambin apt. 8.5).

15...
x

...8
x

0
1

7...
0

...0
0

1
2

Base de tiempo
Valor de temporizacin en BCD (de 0 a 999)
1 segundo
Irrelevante: estos bits se ignoran cuando arranca el temporizador
Figura 6-2

6-4

Contenido de la palabra baja del ACU 1 con el valor de temp. 127 y una base de
tiempo de 1 s.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

6.3

Cargar, arrancar, borrar y habilitar un temporizador

Descripcin

Con tres instrucciones puede iniciar en su programa AWL las siguientes


operaciones:

S Consultar si el estado de seal es 0 1, (p. ej. U E 2.1).


S Cargar un valor de temporizacin con una base de tiempo (p. ej. L EW0)
S Arrancar uno de los siguientes temporizadores como:
Impulso (SI, p. ej. SI T 1)
Impulso prolongado (SV)
Retardo a la conexin (SE)
Retardo a la conexin con memoria (SS)
Retardo a la desconexin (SA)
En el programa AWL, un cambio del resultado lgico arrancar el temporizador si
tiene lugar antes de una operacin de arranque. Un cambio del RLO de 1 a 0
arranca un temporizador con retardo a la desconexin (SA), mientras que un cambio
de 0 a 1 arranca los restantes temporizadores. El tiempo programado y las operaciones de arranque del temporizador tienen que seguir directamente a la operacin
lgica que da la condicin para arrancar el temporizador. En el apartado 6.4 encontrar ejemplos de los cinco distintos tipos de operaciones de arranque de temporizadores.
Carga

La operacin de carga de un valor de temporizacin como nmero entero o como


nmero BCD se describe en los apartados 8.4 y 8.5.

Tiempo de
arranque

Puesto que un temporizador cuenta atrs desde un valor preprogramado hasta llegar
a 0, hay que darle un tiempo de arranque. Cuando se arranca un temporizador en el
programa, la CPU busca el tiempo de arranque en el ACU 1. El margen de temporizacin va de 0 a 9990 segundos.

Ejemplo de
cmo arrancar un
temporizador

La figura 6-3 muestra un ejemplo de cmo arrancar un temporizador como impulso.


El temporizador arranca cuando el estado de seal cambia de 0 a 1 en la entrada
E 2.1. La figura 6-3 ilustra el siguiente programa AWL:
Explicacin

AWL
U
L
SI

E 2.1
S5T#00H02M23S00MS
T1

Consultar el estado de seal de la entrada E 2.1.


Cargar el tiempo de arranque en el ACU 1.
Arrancar el temporizador T1 como impulso.

Esquema de los estados de seal:


1
E 2.1
0
1
Consultar si E 2.1
0
cambia de 0 a 1
El temporizador arranca con el tiempo indicado en ACU 1
Figura 6-3

Arrancar un temporizador como impulso

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-5

Operaciones de temporizacin

Borrar un
temporizador

En temporizador se borra con la operacin R (Poner a 0)). La CPU pone un


temporizador a 0 si el resultado lgico es 1 inmediatamente antes de que el
programa ejecute la operacin R. Si el RLO es 1 antes de la operacin R, las
operaciones U, O o X que consultan el estado de seal de un temporizador darn un
0 como resultado, mientras que las operaciones UN, ON o XN darn como resultado
un 1.
Cuando se borra un temporizador, ste deja de funcionar y el valor de temporizacin
es 0.

Habilitar un
temporizador para
el rearranque

Cuando el resultado lgico cambia de 0 a 1 delante de una operacin Habilitar


temporizador (FR) se habilita el temporizador. Este cambio del estado de seal
siempre es necesario para habilitar un temporizador. La CPU ejecuta la operacin
FR slo en un flanco positivo.
Para arrancar un temporizador y para ejecutar una operacin de temporizacin normal no hace falta habilitarlo. Esta funcin se utiliza solamente para redisparar un
temporizador que est en marcha, es decir, para rearrancarlo. Este rearranque slo
puede efectuarse cuando la operacin de arranque contina procesndose con un
RLO de 1.

6-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

6.4

Ejemplos de temporizadores

Introduccin

La programacin con la lista de instrucciones ofrece cinco distintos tipos de temporizadores para poder resolver las ms diversas tareas de automatizacin. Cada uno
de los cinco ejemplos siguientes ilustra un temporizador distinto.

Temporizador
como impulso: SI

Las figuras 6-4 y 6-5 ilustran ejemplos de un temporizador que se arranca como
impulso. Los nmeros en casillas se refieren a las explicaciones que siguen a la
figura 6-4. Las figuras se refieren al programa AWL siguiente:

Explicacin

AWL
U
FR
U
L
SI
U
R
U
=
L
T
LC
T

E 2.0
T1
E 2.1
S5T#00H02M23S00MS
T1
E 2.2
T1
T1
A 4.0
T1
MW10
T1
MW12

RLO en entrada de
habilitacin

E 2.0

RLO en entrada de
arranque

E 2.1

RLO en entrada de
puesta a 0

Habilitar temporizador T 1.
Arrancar temporizador T 1 como impulso.
Poner temporizador T 1 a 0.
Consultar estado de seal del temporizador T 1.
Cargar temporizador T 1.







E 2.2

Reaccin del temporizador


Consulta del estado de
seal en la salida del
A 4.0
temporizador

t


Cargar temporizador: L, LC
t = tiempo de arranque programado
Figura 6-4

Ejemplo de un temporizador como impulso, parte 1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-7

Operaciones de temporizacin

La lista siguiente describe los elementos de las figuras 6-4 y 6-5:




Un cambio del RLO de 0 a 1 en la entrada de arranque hace que el


temporizador arranque y empiece a contar el tiempo programado t.

Un RLO a 0 en la entrada de arranque pone el temporizador a 0.

El resultado de la consulta del estado de seal en la salida A 4.0 dar 1


mientras el temporizador est en marcha.

Cuando en la entrada de puesta a 0 hay un RLO a 1, el temporizador se


pone a 0. Mientras el estado de seal permanezca a 1 en la entrada de
arranque, el temporizador no se ver afectado por un cambio de seal del
RLO de 1 a 0 en la entrada de puesta a 0.

Si el RLO cambia de 0 a 1 en la entrada de arranque y al mismo


tiempo hay una seal de puesta a 0, el temporizador arrancar brevemente.
Sin embargo, volver a ponerse a 0 inmediatamente debido a la siguiente
operacin de puesta a 0 que se ejecuta en el programa (representada como
lnea de impulsos en la figura 6-4). De este impulso no se obtiene ningn
resultado siempre que se respete la secuencia de operaciones arriba
descrita.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin mientras est


en marcha el temporizador, el temporizador vuelve a arrancar. El tiempo
programado se utiliza como tiempo actual para el rearranque. Un cambio
del RLO de 1 a 0 en la entrada de habilitacin no tiene ningn efecto.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin cuando el temporizador est parado, y en la entrada de arranque an hay un RLO de 1, el
temporizador arrancar como impulso con el tiempo programado.

Un cambio del RLO de 0 a 1 en la entrada de habilitacin no afecta al


temporizador si todava hay un RLO a 0 en la entrada de arranque.

RLO en entrada de
habilitacin

E 2.0

RLO en entrada de
arranque

E 2.1

RLO en entrada de
puesta a 0

E 2.2

Reaccin del temporizador


Consulta del estado de
seal en la salida del
temporizador

A 4.0

Cargar temporizador: L, LC
t = tiempo de arranque programado
Figura 6-5

6-8

Ejemplo de un temporizador como impulso, parte 2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

Temporizador
como impulso
prolongado: SV

Las figuras 6-6 y 6-7 representan ejemplos de un temporizador que arranca como
impulso prolongado. A continuacin de la figura 6-6 se encuentran las explicaciones
correspondientes a los nmeros que aparecen en casillas. Las figuras ilustran el
programa AWL siguiente:

Explicacin

AWL
U
FR
U
L
SV
U
R
U
=
L
T
LC
T

E 2.0
T1
E 2.1
S5T#00H02M23S00MS
T1
E 2.2
T1
T1
A 4.0
T1
MW10
T1
MW12

RLO en entrada de
habilitacin
RLO en entrada de
arranque

Habilitar temporizador T 1.
Arrancar temporizador T 1 como impulso prolongado.
Poner temporizador T 1 a 0.
Consultar estado de seal del temporizador T 1.
Cargar temporizador T1 codificado en binario.
Cargar temporizador T1 en BCD.

E 2.0


E 2.1


RLO en entrada de
puesta a 0

E 2.2

Reaccin del
temporizador
Consulta del estado de
seal en la salida del A 4.0
temporizador

t


Cargar temporizador: L, LC
t = tiempo de arranque programado

Figura 6-6

Ejemplo de un temporizador como impulso prolongado, parte 1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-9

Operaciones de temporizacin

La lista siguiente describe los elementos de las figuras 6-6 y 6-7:




Si el RLO cambia de 0 a 1 en la entrada de arranque, el temporizador


arranca y empieza a contar el tiempo programado t, independientemente de
que el RLO cambie posteriormente de 1 a 0 en la entrada de arranque.

Si el RLO cambia de 0 a 1 en la entrada de arranque antes de que haya


transcurrido el tiempo, entonces se redispara el temporizador con el tiempo
programado inicialmente.

La consulta del estado de seal en la salida A 4.0 da el resultado 1 mientras dure la operacin de temporizacin.

Si en la entrada de puesta a 0 hay un RLO de 1, el temporizador se pone


a 0. Mientras el estado de seal permanezca a 1 en la entrada de arranque, el temporizador no se ver afectado por un cambio de seal del RLO
de 1 a 0 en la entrada de puesta a 0.

Si el RLO cambia de 0 a 1 en la entrada de arranque y al mismo


tiempo hay una seal de puesta a 0, el temporizador arrancar brevemente.
Sin embargo, volver a ponerse a 0 inmediatamente debido a la siguiente
instruccin de puesta a 0 que se ejecuta en el programa (representada como
lnea de impulsos en la figura 6-6). De este impulso no se obtiene ningn
resultado siempre que se respete la secuencia de operaciones arriba
descrita.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin mientras est


en marcha el temporizador, entonces vuelve a arrancar el temporizador. El
tiempo programado se utiliza como tiempo actual para el rearranque. Un
cambio del RLO de 1 a 0 en la entrada de habilitacin no tiene ningn
efecto.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin cuando el temporizador est parado, y en la entrada de arranque an hay un RLO de 1,
el temporizador arrancar como impulso con el tiempo programado.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin habiendo un


RLO de 0 en la entrada de arranque, ello no afecta al temporizador.


RLO en entrada
de habilitacin

E 2.0

RLO en entrada
de arranque

E 2.1

RLO en entrada
de puesta a 0

E 2.2

Reaccin del
temporizador
Consulta del estado de
seal en la salida del
temporizador

A 4.0

Cargar temporizador: L, LC

t = tiempo de arranque programado

Figura 6-7

6-10

Ejemplo de un temporizador como impulso prolongado, parte 2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

Temporizador
como retardo a
la conexin: SE

Las figuras 6-8 y 6-9 representan ejemplos de un temporizador que arranca como
retardo a la conexin. Los nmeros que aparecen dentro de casillas hacen referencia
a las explicaciones que se exponen a continuacin de la figura 6-8. Las dos figuras
corresponden al siguiente programa AWL:

Explicacin

AWL
U
FR
U
L
SE
U
R
U
=
L
T
LC
T

E 2.0
T1
E 2.1
S5T#00H02M23S00MS
T1
E 2.2
T1
T1
A 4.0
T1
MW10
T1
MW12

RLO en entrada
de habilitacin
RLO en entrada
de arranque
RLO en entrada
de puesta a 0

Habilitar temporizador T 1.
Arrancar temporizador T 1 como retardo a la conexin.
Poner temporizador T 1 a 0.
Consultar estado de seal del temporizador T 1.
Cargar temporizador T 1.

E 2.0


E 2.1




E 2.2


Reaccin del
temporizador
Consulta del estado
de seal en la salida
A 4.0
del temporizador

Cargar temporizador: L, LC

t = tiempo de arranque programado


Figura 6-8

Ejemplo de un temporizador como retardo a la conexin, parte 1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-11

Operaciones de temporizacin

La lista siguiente describe los elementos de las figuras 6-8 y 6-9:




Si el RLO cambia de 0 a 1 en la entrada de arranque, el temporizador


arranca y empieza a contar el tiempo programado t.

Si hay un RLO de 0 en la entrada de arranque, el temporizador se pone a


0.

La consulta del estado de seal en la salida A 4.0 da un estado de seal de


1 cuando ha transcurrido el tiempo y la entrada de arranque est a 1.

Si en la entrada de puesta a 0 hay un RLO de 1, el temporizador se pone


a 0. Mientras haya un estado de seal de 1 en la entrada de arranque, el
temporizador no se ver afectado por un cambio de seal del RLO de 1 a
0 en la entrada de puesta a 0.

Si el RLO cambia de 0 a 1 en la entrada de arranque y al mismo


tiempo hay una seal de puesta a 0, el temporizador arrancar brevemente.
Sin embargo, volver a ponerse a 0 inmediatamente debido a la siguiente
operacin de puesta a 0 que se ejecuta en el programa (representada como
lnea de impulsos en la figura 6-8). De este impulso no se obtiene ningn
resultado siempre que se respete la secuencia de operaciones arriba
descrita.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin mientras est


en marcha el temporizador, entonces vuelve a arrancar el temporizador. El
tiempo programado se utiliza como tiempo actual para el rearranque. Un
cambio del RLO de 1 a 0 en la entrada de habilitacin no tiene ningn
efecto.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin y a continuacin sigue una operacin normal de temporizacin, el temporizador no se
ver afectado.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin despus de


poner el temporizador a 0 y habiendo an un RLO a 1 en la entrada de
arranque, entonces arranca el temporizador. El tiempo programado se utiliza como tiempo actual.


RLO en entrada
de habilitacin

E 2.0

RLO en entrada
de arranque

E 2.1

RLO en entrada
de puesta a 0

E 2.2

Reaccin del
temporizador
Consulta del estado
de seal en la salida
del temporizador

t
A 4.0

Cargar temporizador: L, LC

t = tiempo de arranque programado


Figura 6-9

6-12

Ejemplo de un temporizador como retardo a la conexin, parte 2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

Temporizador
como retardo a
la conexin con
memoria: SS

Las figuras 6-10 y 6-11 ilustran ejemplos de un temporizador que arranca como
retardo a la conexin con memoria. Detrs de la figura 6-10 se encuentran las
explicaciones correspondientes a los nmeros que aparecen en casillas. Las figuras
ilustran el programa AWL siguiente:

AWL
U
FR
U
L
SS
U
R
U
=
L
T
LC
T

Explicacin
E 2.0
T 1
E 2.1
S5T#00H02M23S00MS
T 1
E 2.2
T 1
T 1
A 4.0
T 1
MW10
T 1
MW12

RLO en entrada
de habilitacin

E 2.0

RLO en entrada
de arranque

E 2.1

RLO en entrada
de puesta a 0

E 2.2

Habilitar temporizador T 1.

Arrancar temporizador T 1 como retardo a la conexin con


memoria.
Poner temporizador T 1 a 0.
Consultar el estado de seal del temporizador T 1.

Cargar temporizador T 1.







Reaccin del
temporizador
Consulta del estado
de seal en la salida
A 4.0
del temporizador

t


Cargar temporizador: L, LC

t = tiempo de arranque programado


Figura 6-10

Ejemplo de un temporizador como retardo a la conexin con memoria, parte 1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-13

Operaciones de temporizacin

La lista siguiente describe los elementos de las figuras 6-10 y 6-11:




Si el RLO cambia de 0 a 1 en la entrada de arranque, el temporizador


arranca y empieza a contar el tiempo programado t, independientemente de
que vuelva a cambiar el RLO de 1 a 0 en la entrada de arranque.

La consulta del estado de seal en la salida de temporizacin da 1 al


transcurrir el tiempo programado.

El resultado de la consulta del estado de seal en la salida A 4.0 slo


cambia a 0 si el RLO en la entrada de puesta a 0 es 1.

Si el RLO est a 1 en la entrada de puesta a 0, el temporizador se pone a


0. Mientras haya un estado de seal de 1 en la entrada de arranque, el
temporizador no se ver afectado por un cambio de seal del RLO de 1 a
0 en la entrada de puesta a 0.

Si el RLO cambia de 0 a 1 en la entrada de arranque y al mismo


tiempo hay una seal de puesta a 0, el temporizador arrancar brevemente,
pero volver a ponerse a 0 inmediatamente debido a la siguiente operacin
de puesta a 0 que se ejecuta en el programa (representada como lnea de
impulsos en la figura 6-10). De este impulso no se obtiene ningn resultado
siempre que se respete la secuencia de operaciones arriba descrita.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin mientras el


temporizador est en marcha y el RLO est a 1 en la entrada de arranque,
entonces vuelve a arrancar el temporizador. El tiempo programado se
utiliza como tiempo actual para el rearranque. Un cambio del RLO de 1
a 0 en la entrada de habilitacin no afecta al temporizador.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin tras una


operacin de normal temporizacin, el temporizador no se ve afectado,
sino que contina funcionando normalmente.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin mientras el


temporizador est en marcha y el RLO est a 0 en la entrada de arranque,
el temporizador no se ve afectado.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin despus de


ponerse el temporizador a 0, y el RLO en la entrada de arranque sigue
siendo 1 entonces rearranca el temporizador. El tiempo programado se
utiliza como tiempo actual para el rearranque.


RLO en entrada
de habilitacin

E 2.0

RLO en entrada
de arranque

E 2.1

RLO en entrada
de puesta a 0

E 2.2




Reaccin del
temporizador
Consulta del estado
de seal en la salida
del temporizador

A 4.0

Cargar temporizador: L, LC

t = tiempo de arranque programado


Figura 6-11

6-14

Ejemplo de un temporizador como retardo a la conexin con memoria, parte 2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

Temporizador
como retardo a la
desconexin: SA

Las figuras 6-12 y 6-13 ilustran ejemplos de un temporizador que arranca como
retardo a la desconexin. Detrs de la figura 6-12 se encuentran las explicaciones
correspondientes a los nmeros que aparecen en casillas. Las figuras ilustran el
programa AWL siguiente:

AWL
U
FR
U
L
SA
U
R
U
=
L
T
LC
T

Explicacin
E 2.0
T 1
E 2.1
S5T#00H02M23S00MS
T 1
E 2.2
T 1
T 1
A 4.0
T 1
MW10
T 1
MW12

RLO en entrada
de habilitacin

E 2.0

RLO en entrada
de arranque

E 2.1

RLO en entrada
de puesta a 0

E 2.2

Habilitar temporizador T 1.

Arrancar temporizador T 1 como retardo a la desconexin.


Desactivar temporizador T 1.
Consultar el estado de seal del temporizador T 1.

Cargar temporizador T 1.



 

Reaccin del
temporizador
Consulta del estado
de seal en la salida
del temporizador





t

A 4.0

Cargar temporizador: L, LC

t = tiempo de arranque programado


Figura 6-12

Ejemplo de un temporizador como retardo a la desconexin, parte 1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

6-15

Operaciones de temporizacin

La lista siguiente describe los elementos de las figuras 6-12 y 6-13:




Si el RLO cambia de 0 a 1 en la entrada de arranque entonces se


produce un cambio de 0 a 1 en la salida A 4.0. Si el RLO cambia de
1 a 0 en la entrada de arranque, el temporizador arranca y empieza a
contar el tiempo programado t.

Si vuelve a haber un RLO de 1 en la entrada de arranque, el


temporizador se pondr a 0.

La consulta del estado de seal en la salida A 4.0 da un estado de seal de


1 si el RLO est a 1 en la entrada de arranque y el tiempo programado
an no ha transcurrido.

Si el RLO cambia a 1 en la entrada de puesta a 0, el temporizador se


pone a 0. Si se consulta entonces el estado de seal del temporizador, ste
dar 0. Si el RLO cambia de 1 a 0 en la entrada de puesta a 0, el
temporizador no se ve afectado.

Si hay un RLO de 1 en la entrada de puesta a 0 mientras est parado el


temporizador, ello no afecta al temporizador.

Si el RLO cambia de 1 a 0 en la entrada de arranque y al mismo


tiempo hay una seal de puesta a 0, el temporizador arrancar brevemente,
pero volver a ponerse a 0 inmediatamente debido a la siguiente operacin
de puesta a 0 que se ejecuta en el programa (representada como lnea de
impulsos en la figura 6-12). En este caso, la consulta del estado de seal
del temporizador da 0.

El temporizador no se ve afectado por un cambio del RLO de 0 a 1 en


la entrada de habilitacin si el temporizador est parado. El temporizador
no se ve afectado si el RLO cambia de 1 a 0.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin mientras el


temporizador est en marcha, el temporizador vuelve a ponerse en marcha.
El tiempo programado se utiliza como tiempo actual para el rearranque.

RLO en entrada de habilitacin

E 2.0

RLO en entrada de arranque

E 2.1

RLO en entrada de puesta a 0

E 2.2

Reaccin del temporizador


Consulta del estado de seal
en la salida del temporizador

t
A 4.0

Cargar temporizador: L, LC

t = tiempo de arranque programado


Figura 6-13

6-16

Ejemplo de un temporizador como retardo a la desconexin, parte 2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de temporizacin

6.5

Operandos y reas de direccionamiento de las operaciones de temporizacin


Las tablas 6-3 y 6-4 muestran los tipos de direccionamiento, los operandos y las
reas de direccionamiento de las operaciones de temporizacin.
Tabla 6-3

Operandos y tipos de direccionamiento de las operaciones de temporizacin


Area de direccionamiento segn el tipo de direccionamiento
directo

0 a 65 535

Tabla 6-4

indirecto por memoria


[DBW]
[DIW]
[LW]
[MW]

0 a 65 534

Operando del temporizador transferido como parmetro

Operandos
Nombre
simblico

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Formato del parmetro de direccionamiento


Temporizador transferido como parmetro.

6-17

Operaciones de temporizacin

6.6

Elegir el temporizador adecuado


La figura 6-14 permite una visin esquemtica de los cinco distintos tipos de temporizadores descritos en el apartado 6.4. Este esquema pretende ser una ayuda a la
hora de elegir el temporizador ms conveniente para la tarea de temporizacin en
cuestin.

Seal de entrada

E 2.1

Seal de salida
(temporizador
como impulso)

A 4.0

Seal de salida
(temporizador
como impulso
prolongado)

A 4.0

Seal de salida
(temporizador
como retardo a la
conexin)

A 4.0

SI:
t
El tiempo mximo durante el cual la seal de salida
permanece a 1 es idntico al tiempo programado t. La seal
de salida permanece a 1 por un perodo ms breve si la
seal de entrada cambia a 0.
SV:
t
La seal de salida permanece a 1 durante el tiempo
programado, independientemente del tiempo en que la
seal de entrada est a 1.

SE:
t
La seal de salida cambia de 0 a 1 solamente si el tiempo
programado ha transcurrido y la seal de entrada an est a
1.

Seal de salida
A 4.0
(temporizador como
retardo a la conexin
con memoria)

SS:

Seal de salida
(temporizador
como retardo a la
desconexin)

SA:

Figura 6-14

6-18

A 4.0

t
La seal de salida cambia de 0 a 1 solamente si
el tiempo programado ha transcurrido, independientemente
del tiempo en que la seal de entrada est a 1.

t
La seal de salida cambia de 0 a 1 cuando la seal de
entrada cambia de 1 a 0. La seal de salida permanece
a 1 durante el tiempo programado. El temporizador arranca
cuando la seal de entrada cambia de 0 a 1.

Eleccin del temporizador adecuado

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de contaje

Indice del
captulo

Apartado

Tema

Pgina

7.1

Resumen breve

7-2

7.2

Inicializar, borrar y habilitar un contador

7-3

7.3

Incrementar y decrementar un contador

7-5

7.4

Cargar un valor de contaje como entero

7-6

7.5

Cargar un valor de contaje en formato BCD

7-7

7.6

Ejemplo de un contador

7-8

7.7

Operandos y reas de direccionamiento de las operaciones de


contaje

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

7-10

7-1

Operaciones de contaje

7.1

Resumen breve

Definicin

Un contador es un elemento funcional del software de programacin STEP 7.


Los contadores tienen reservada un rea de memoria propia en la CPU. Dicha rea
de memoria reserva una palabra de 16 bits para cada contador. La programacin con
AWL asiste un mximo de 256 contadores. En los datos tcnicos de la CPU encontrar la cantidad de contadores de que puede disponer.
Las operaciones de contaje son las nicas funciones que tienen acceso al rea de
memoria reservada para contadores.

Operaciones
disponibles

El lenguaje de programacin AWL del software STEP 7 permite ejecutar las


siguientes operaciones de contaje:

S S: Ajustar a un valor (inicializar)


S R: Poner a 0 (borrar)
S ZV: Incrementar contador
S ZR: Decrementar contador
S FR: Habilitar contador
S Cargar contador en uno de los formatos siguientes:
L: binario
LC: decimal codificado en binario

S U, UN, O, ON, X, XN: Consultar el estado de seal de un contador y combinar


el resultado. La consulta del estado de seal con la operacin U, O o X dar
como resultado 1 cuando el valor de contaje sea mayor que 0; el resultado
ser 0 si el valor de contaje es 0.
La figura 7-1 da una visin esquemtica de las operaciones que utilizan una palabra
de contaje como operando.

Incrementar contador
(ZV)
Decrementar
contador (ZR)

Poner contador a 0 (R)

Palabra de contaje

Consultar estado de seal de un contador


(U, UN, O, ON, X, XN)

Figura 7-1

7-2

Inicializar contador (S)

Habilitar contador (FR)

Cargar un valor de contaje (L, LC)

Operaciones que pueden utilizar una palabra de contaje como operando

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de contaje

7.2

Inicializar, borrar y habilitar un contador

Descripcin

Para inicializar un contador hay que introducir tres instrucciones en el programa


AWL a fin de iniciar las siguientes operaciones:

S Consultar si el estado de una seal es 1 0 (p. ej. U E 2.3)


S Cargar un valor de contaje (p. ej. L C# 3) en la palabra baja del ACU 1.
S Poner un contador al valor de contaje cargado (p. ej. S Z 1). Esta operacin
transfiere el valor de contaje del ACU 1 a la palabra de contaje.
Si en el programa AWL el resultado lgico cambia de 0 a 1 antes de una operacin Poner a un valor (inicializar) (S), entonces se inicializa un contador con el valor de contaje programado. El valor de contaje programado y la operacin Poner a
un valor tienen que seguir directamente a la operacin lgica que da la condicin
para inicializar el contador.

Valor de arranque

Un contador se pone a un determinado valor, cargando dicho valor en la palabra


baja del ACU 1 y poniendo inmediatamente el contador al valor cargado. Cuando se
inicializa un contador en el programa, la CPU busca el valor de contaje en el
ACU 1. A continuacin, la CPU transfiere el valor de contaje del acumulador a la
palabra de contaje que se haya determinado en la operacin Activar (p. ej. S Z1). El
valor de contaje puede ser un valor comprendido entre 0 y 999. 999.

Ejemplo de
activacin de
un contador

La figura 7-2 muestra un ejemplo de inicializacin de un contador. El contador se


inicializa cuando el estado de seal en la entrada E 2.3 cambia de 0 a 1. La
figura 7-2 ilustra el programa siguiente.

AWL

Explicacin

U
L

E 2.3
C# 3

Z 1

Consultar el estado de seal de la entrada E 2.3.


Si el estado de seal es 1, cargar el valor de contaje 3 en
el ACU 1.
Poner el contador Z 1 al valor de contaje 3. Esta operacin
mueve el valor de contaje 3 del acumulador a la palabra de
contaje 1.

Esquema de los estados de seal:


1
E 2.3
0
1
Consultar si E 2.3
0
cambia de 0 a 1.
El contador se pone al valor indicado por la operacin de carga
Figura 7-2

Inicializar un contador

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

7-3

Operaciones de contaje

Borrar un contador

Para borrar un contador se utiliza la operacin R (Desactivar (Poner a 0)). La CPU


pone un contador a 0 si el resultado lgico es 1 inmediatamente antes de que se
ejecute en el programa la operacin R. Siempre que el RLO anterior a la operacin
R sea 1, las operaciones U, O o X que consulten el estado de seal de un contador
darn 0 como resultado, mientras que las operaciones UN, ON o XN darn 1
como resultado.
Cuando el programa pone un contador a 0 lo que hace es borrarlo, es decir, poner su
valor a 0.
Para borrar un contador con una seal esttica en la entrada de puesta a 0 (R) independientemente del RLO de las otras entradas del contador, hay que escribir la operacin Desactivar inmediatamente despus de la operacin Activar, Incrementar
contador o Decrementar contador (v. apt.7.3) y antes de la consulta del estado de
seal o de la operacin de carga.
La programacin de contadores debe efectuarse en el orden siguiente (vase tambin el ejemplo de programacin en el apartado 7.6).
1. Incrementar contador
2. Decrementar contador
3. Activar (Poner contador a un valor determinado)
4. Desactivar (Poner contador a 0)
5. Consultar estado de seal del contador
6. Cargar valor de contaje

Habilitar un
contador para el
rearranque

Si el RLO de la operacin Desbloquear (FR) cambia de 0 a 1, entonces se desbloquea el contador. Este cambio del estado de seal ha de producirse para que
pueda habilitarse el contador. La CPU ejecuta la operacin FR solamente en los
flancos positivos.
No es necesario habilitar el contador ni para ponerlo a un valor determinado ni para
operaciones de contaje normales. La habilitacin se utiliza solamente para activar
un contador o para contar adelante o atrs sin necesidad de que se produzca un
flanco positivo (cambio de 0 a 1) delante de la instruccin de contaje correspondiente. La habilitacin slo puede efectuarse si el bit RLO delante de la operacin
correspondiente est a 1.

7-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de contaje

7.3

Incrementar y decrementar un contador

Incrementar
contador,
descripcin

Cuando en el programa AWL el resultado lgico cambia de 0 a 1 antes de una


instruccin Incrementar contador (ZV), se incrementa el valor del contador. Cada
vez que el RLO cambia de 0 a 1 inmediatamente antes de una operacin
Incrementar contador, el valor del contador incrementa en 1 unidad.
Cuando el contador alcanza el lmite superior de 999, se detiene y los cambios posteriores del estado de seal no tienen efecto alguno sobre la entrada de contaje adelante. No se han previsto desbordamientos (OV).

AWL

Explicacin

U E 0.1
ZV Z1

Al producirse un cambio del flanco positivo en la entrada


E 0.1, el valor del contador Z 1 incrementa en 1 unidad.

Decrementar
contador,
descripcin

Cuando en el programa AWL el resultado lgico cambia de 0 a 1 antes de una


instruccin Decrementar contador (ZR), decrementa el valor del contador. Cada vez
que el RLO cambia de 0 a 1 inmediatamente antes de una operacin
Decrementar contador, el valor del contador decrementa en 1 unidad.
Cuando el contador alcanza el lmite inferior de 0, se detiene. Los cambios posteriores del estado de seal no tienen efecto alguno sobre la entrada de contaje atrs.
El contador no funciona con valores negativos.

AWL

Explicacin

U E 0.2
ZR Z1

Al producirse un cambio del flanco positivo en la entrada


E 0.2, el valor del contador Z 1 decrementa en 1 unidad.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

7-5

Operaciones de contaje

7.4

Cargar un valor de contaje como entero

Descripcin

En una palabra de contaje se encuentra almacenado un valor en cdigo binario. Para


leer el valor binario de una palabra de contaje hay que cargarla en la palabra baja
del ACU 1 con la siguiente instruccin:
L <palabra de contaje>
Este tipo de carga se denomina carga directa de un valor de contaje.

AWL

Explicacin

Cargar el valor de contaje del contador Z 1 directamente en


formato binario en la palabra baja del ACU 1.

Z 1

15
Palabra de contaje
de Z 1 (binaria)

Figura 7-3

Valor de contaje

X X X X X X
15

Palabra baja de
ACU 1 (binaria)

10 9

10

0 0 0 0 0 0

Carga de un valor de contaje en el ACU 1 con la operacin L

El valor que se encuentra en el ACU 1 como resultado de la operacin L puede utilizarse para su posterior procesamiento. Sin embargo, no es posible transferir un valor
desde el acumulador a la palabra de contaje. Si se desea arrancar un contador con un
valor determinado hay que utilizar la operacin para inicializar el contador.

7-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de contaje

7.5

Cargar un valor de contaje en formato BCD

Descripcin

En una palabra de contaje se encuentra almacenado un valor en cdigo binario. Para


leer este valor en formato BCD en una palabra de contaje hay que cargar sta en la
palabra baja del ACU 1 con la operacin siguiente:
LC <palabra de contaje>
Este tipo de carga se denomina carga de un valor de contaje en formato BCD.
El valor contenido en la palabra baja del ACU 1 como resultado de la operacin LC
tiene el mismo formato que el que se necesita para inicializar un contador.

AWL
LC

Explicacin
Z 1

Cargar el valor de contaje del contador Z 1 directamente en


formato decimal codificado en binario en la palabra baja del
ACU 1.

Palabra de contaje para Z 1


15 14 13 12

11 10 9

Valor de contaje
ACU 1 bajo

en BCD

15 14 13 12
0

11 10 9

0
102
(Centenas)

101

100

(Decenas)

(Unidades)

Valor de contaje en formato BCD


Figura 7-4

Carga de un valor de contaje en el ACU 1 con la operacin LC

El valor que se encuentra en el acumulador como resultado de la operacin LC


puede utilizarse para su posterior procesamiento, por ejemplo para transferirlo a las
salidas y controlar as un display.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

7-7

Operaciones de contaje

7.6

Ejemplo de un contador
La figura 7-5 representa ejemplos de contaje adelante, contaje atrs, inicializacin y
puesta a 0 de un contador, as como consulta del estado de seal de un contador y
carga de un valor de contaje. El ejemplo ilustra la secuencia de programa recomendada en el apartado 7.2. A continuacin de la figura 7-5 se explican los nmeros
representados en casillas. En la lista que le sigue a la figura 7-5 se explican los elementos del programa AWL.

E 2.0 Habilitar

E 2.1 Incrementar
contador
E 2.2 Decrementar
contador

E 2.3 Inicializar

E 2.4 Poner a 0

Reaccin del
contador
Consulta del
estado de
seal en la
salida A 4.0
MW10 Cargar
MW12
Figura 7-5

7-8


3

Ejemplo de las operaciones de contaje

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de contaje

La lista siguiente describe los elementos de la figura 7-5:

AWL
U
FR
U
ZV
U
ZR
U
L
S
U
R
U
=
L
T
LC
T

Si el RLO cambia de 0 a 1 en la entrada Inicializacin, el contador se


pone a 3. Un cambio de 1 a 0 en la entrada de Inicializacin no afecta
al contador.

Si el RLO cambia de 0 a 1 en la entrada Decrementar, el contador decrementa. Un cambio de 1 a 0 en la entrada Decrementar no afecta al
contador.

El resultado de la instruccin de consulta del estado de seal U Z 1 es


0 si el valor de contaje es 0.

Si el RLO cambia de 0 a 1 en la entrada Incrementar, el contador incrementa. Un cambio de 1 a 0 en la entrada Incrementar no afecta al
contador.

Si hay un RLO de 1 en la entrada de puesta a 0, el contador se pone a


0. La consulta del estado de seal da 0. Un cambio del RLO de 1 a
0 en la entrada de puesta a 0 no afecta al contador.

Si el RLO cambia de 0 a 1 en la entrada Incrementar y al mismo


tiempo hay una seal de puesta a 0, entonces el contador incrementa su
valor momentneamente, pero se pone a 0 de inmediato debido a la siguiente instruccin de puesta a 0 en el programa. (El incremento momentneo se indica mediante una lnea de impulsos en el esquema de la figura
7-5). La consulta del estado de seal da 0.

Si el RLO cambia de 0 a 1 en la entrada de habilitacin al aplicar las


operaciones Incrementar contador y Decrementar contador, el contador
incrementa momentneamente, pero decrementa inmediatamente su valor
debido a la siguiente operacin Incrementar contador en el programa. (El
incremento momentneo se indica mediante una lnea de impulsos en el
esquema de la figura 7-5). Un cambio de 1 a 0 en la entrada de habilitacin no afecta al contador.

Explicacin
E 2.0
Z 1
E 2.1
Z 1
E 2.2
Z 1
E 2.3
C# 3
Z 1
E 2.4
Z 1
Z 1
A 4.0
Z 1
MW10
Z 1
MW12

Inicializar el contador Z 1.
Incrementar contador (incrementa en 1).
Decrementar contador (decrementa en 1).
Inicializar el contador Z 1.
Poner el contador Z a 0.
Consultar el estado de seal del contador Z 1.
Cargar contador Z 1 (codificado en binario).
Cargar contador Z 1 (en BCD).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

7-9

Operaciones de contaje

7.7

Operandos y reas de direccionamiento de las operaciones de contaje


La tabla 7-1 muestra los tipos de direccionamiento, los operandos y las reas de direccionamiento de las operaciones de contaje.
Tabla 7-1

Operandos, reas y tipos de direccionamiento de las operaciones de contaje


Area de direccionamiento segn el tipo de direccionamiento
directo

0 a 65 535

7-10

indirecto por memoria


[DBW]
[DIW]
[LW]
[MW]

0 a 65 534

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de carga y transferencia

Indice del
captulo

Apartado

Tema

8
Pgina

8.1

Resumen breve

8-2

8.2

Cargar y transferir

8-3

8.3

Leer o transferir la palabra de estado

8-6

8.4

Cargar valores de temporizacin y de contaje como enteros

8-7

8.5

Cargar valores de temporizacin y contaje en formato BCD

8-9

8.6

Cargar y transferir entre registros de direcciones

8-11

8.7

Cargar informacin de un bloque de datos

8-12

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

8-1

Operaciones de carga y transferencia

8.1

Resumen breve

Definicin

Las operaciones de carga (L) y transferencia (T) permiten programar un intercambio


de informacin entre mdulos de E/S y reas de memoria, o bien entre reas de
memoria. La CPU ejecuta estas operaciones en cada ciclo como operaciones
incondicionales, es decir, independientemente del resultado lgico de la operacin.

Intercambio de
informacin

Las operaciones L y T permiten un intercambio de informacin entre las reas de


memoria y de periferia siguientes:

S Entre mdulos de E/S y las reas de memoria siguientes:


Imagen del proceso de las entradas y de las salidas
Marcas
Temporizadores y contadores
Areas de datos

S Entre las imgenes del proceso de las entradas y de las salidas y las reas de memoria siguientes:
Marcas
Temporizadores y contadores
Areas de datos

S Entre temporizadores, contadores y las reas de memoria siguientes:


Imgenes del proceso de las entradas y de las salidas
Marcas
Areas de datos
Procedimiento

Las operaciones de carga (L) y transferencia (T) intercambian informacin a travs


del acumulador. La operacin L escribe (carga) en el ACU 1 el contenido de la direccin fuente direccionada, desplazando toda la informacin que encuentra en el
ACU 1 al ACU 2. El antiguo contenido del ACU 2 se pierde. La operacin T copia
el contenido del ACU 1 y lo escribe en la memoria del destino direccionado. Ya que
la operacin T solamente copia la informacin que se encuentra en el ACU 1, sta
informacin sigue estando disponible para otras operaciones.
Las operaciones L y T pueden procesar informacin en bytes (8 bits), palabras
(16 bits) y palabras dobles (32 bits).
El acumulador tiene un total de 32 bits. Los datos de menos de 32 bits se justifican a
la derecha y los bits sobrantes se rellenan con ceros.
CARGAR
Fuente

31

16 15

TRANSFERIR

Destino
ACU 1

8-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de carga y transferencia

8.2

Cargar y transferir

Descripcin

Las operaciones Cargar (L) y Transferir (T) sirven para transferir informacin a o
desde el ACU 1. La informacin puede tener el siguiente tamao:

S Byte (B, 8 bits)


S Palabra (W, 16 bits)
S Palabra doble (D, 32 bits)
Un byte se carga en el byte bajo de la palabra baja del ACU 1. Una palabra se carga
en la palabra baja del ACU 1. Los bytes no aprovechados se ponen a 0 al cargarse
en el ACU 1.
Direccionamiento
inmediato

La operacin Cargar (L) puede acceder a constantes de 8, 16 y 32 bits as como a


caracteres ASCII. Este tipo de direccionamiento se denomina direccionamiento
inmediato (v. apt. 3.1 y tabla 8-1).
Tabla 8-1

Operandos de las operaciones de carga: Direccionamiento inmediato


Ejemplo

Operando

Explicacin

..

L +5

Carga una constante entera de 16 bits en el ACU 1.

B#(..,..)

L B#(1,10)

L B#(1,10,5,4)

Carga un contacto en forma de 2 bytes en el ACU 1.


(En este ejemplo, el 10 pasa al byte bajo de la palabra
baja del ACU 1; el 1 pasa al byte alto de la palabra baja
del ACU 1, v. fig. 2-4.)
Carga un contacto en forma de 4 bytes en el ACU 1.
(En este ej., el 4 y el 5 pasan al byte bajo y alto de la
palabra baja del ACU 1, respectivamente; el 10 y el 1
pasan al byte bajo y alto de la palabra alta del ACU 1,
respectivamente, v. fig. 2-4.)

L#

L L#+5

Carga una constante de 32 bits en el ACU 1.

16#..

L B#16#EF
L W#16#FAFB
L DW#16#1FFE_1ABC

Carga una constante hexadecimal de 8 bits en el ACU 1.


Carga una constante hexadecimal de 16 bits en el ACU 1.
Carga una constante hexadecimal de 32 bits en el ACU 1.

2#..

L 2#1111_0000_1111_0000
L 2#1111_0000_1111_0000
_1111_0000_1111_0000

Carga una constante hexadecimal de 16 bits en el


ACU 1.
Carga una constante hexadecimal de 32 bits en el
ACU 1.

..

L AB
L ABCD

Carga 2 caracteres en el ACU 1.


Carga 4 caracteres en el ACU 1.

C#..

L C#1000

Carga una constante de contaje de 16 bits en el ACU 1.

S5TIME#
..

L S5TIME#2S

Carga una constante S5TIME de 16 bits en el ACU 1.

..

L 1.0E+5

Carga un nmero en coma flotante IEEE-FP de 32 bits


en el ACU 1.

P#..

L P#E1.0
L P##Start

Carga un puntero de 32 bits en el ACU 1.


Carga un puntero de 32 bits en una variable local
(Start) en ACU 1.
Carga un puntero en el parmetro indicado del ACU 1.
(Este comando carga el offset relativo de direccin del
parmetro indicado. En el caso de los FBs aptos para
multiinstancia, para poder determinar el offset absoluto
en el bloque de datos de instancia tiene que aadirse a
este valor el contenido del registro AR2.)

L P#ANNA

D#

L D#1994-3-15

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Carga una fecha de 16 bits en el ACU 1.

8-3

Operaciones de carga y transferencia

Tabla 8-1
Operando

Direccionamiento
directo e indirecto

Operandos de las operaciones de carga: Direccionamiento inmediato


Ejemplo

Explicacin

T#

L T#0D_1H_1M_0S_0MS

Carga un valor de tiempo de 32 bits en el ACU 1.

TOD#

L TOD#1:10:3.3

Carga un valor de hora de 32 bits en el ACU 1.

Las operaciones Cargar (L) y Transferir (T) pueden direccionar directa o


indirectamente un byte (B), una palabra (W) o una palabra doble (D) en las reas de
memoria siguientes (vase tambin apartados 3.2, 3.3, 3.5):
S Imagen del proceso de las entradas y salidas (identificadores EB, EW, ED, AB,
AW, AD)
S Entradas y salidas externas (identificadores PEB, PEW, PED, PAB, PAD). Las
entradas externas solamente pueden utilizarse como operandos de las operaciones de carga. Las salidas externas slo pueden utilizarse como operandos de las
operaciones de transferencia.

S Memoria de bit (identificadores MB, MW, MD)


S Mdulo de datos (identificadores DBB, DBW, DBD, DIB, DIW, DID)
S Datos locales (datos locales temporales, identificadores LB, LW, LD)
La tabla 8-2 muestra una lista de los operandos de las operaciones de carga y transferencia que utilizan el direccionamiento directo e indirecto.
Tabla 8-2
Identifi
Ident f
cador de
operando

8-4

Operandos de las operaciones de carga y transferencia:


Direccionamiento directo e indirecto
Mx. rea de direccionamiento segn el tipo de direccionamiento
directo

EB
EW
ED

0 a 65 535
0 a 65 534
0 a 65 532

AB
AW
AD

0 a 65 535
0 a 65 534
0 a 65 532

PEB
PEW
PED
(slo L)

0 a 65 535
0 a 65 534
0 a 65 532

PAB
PAW
PAD
(slo T)

0 a 65 535
0 a 65 534
0 a 65 532

indirecto por
memoria

[DBD]
[DID]
[LD]
[MD]

0a
65 532

[DBD]
[DID]
[LD]
[MD]

0a
65 532

indirecto por registro,


intraarea

[AR 1, P#byte.bit]
0 a 8 191
[AR 2, P#byte.bit]

[AR 1, P#byte.bit]
0 a 8 191
[AR 2, P#byte.bit]

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de carga y transferencia

Tabla 8-2
IdentifiIdent
f
cador de
operando

Direccionamiento
indirecto e
interrea

Operandos de las operaciones de carga y transferencia:


Direccionamiento directo e indirecto
Mx. rea de direccionamiento segn el tipo de direccionamiento
directo

MB
MW
MD

0 a 65 535
0 a 65 534
0 a 65 532

DBB
DBW
DBD

0 a 65 533
0 a 65 532
0 a 65 530

DIB
DIW
DID

0 a 65 535
0 a 65 534
0 a 65 532

LB
LW
LD

0 a 65 535
0 a 65 534
0 a 65 532

indirecto por
memoria
[DBD]
[DID]
[LD]
[MD]

0a
65 532

[DBD]
[DID]
[LD]
[MD]

0a
65 532

[AR 1, P#byte.bit]
0 a 8 191
[AR 2, P#byte.bit]

[AR 1, P#byte.bit]
0 a 8 191
[AR 2, P#byte.bit]

Las operaciones Cargar (L) y Transferir (T) pueden acceder a un byte (B), una
palabra (W) o una palabra doble (D) mediante direccionamiento indirecto por
registro e interrea (v. apt. 3.6).
Tabla 8-3

Operandos de las operaciones de carga y transferencia:


Direccionamiento indirecto e interrea

Identificador de operando 1)
B (byte), W (palabra), D (palabra doble)
1)

Byte, palabra o
palabra doble
como parmetro

indirecto por registro,


intraarea

Area de direccionamiento
[AR 1, P#byte.dir]
[AR2, P#byte.dir]

0 a 8 191

El rea est codificada en los bits 24 a 31 del registro de direcciones AR 1 o AR 2


(v. apt. 3.6).

Las operaciones Cargar (L) y Transferir (T) tambin pueden utilizar como operando
un byte, una palabra o una palabra doble transferidos como parmetros.
Tabla 8-4

Operandos de las operaciones de carga y transferencia:


Byte, palabra o palabra doble transferidos como parmetros

Operando
Nombre
simblico

Formato del parmetro de direccionamiento


Un byte, una palabra o palabra doble transferidos como parmetro

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

8-5

Operaciones de carga y transferencia

8.3

Leer o transferir la palabra de estado

Cargar la palabra
de estado

La operacin Cargar (L) puede utilizarse para cargar los bits 0 a 8 de la palabra de
estado (v. fig. 8-1) en el ACU 1. Los bits 9 a 31 del ACU 1 se ponen a 0. El
fragmento de programa debajo de la figura 8-1 muestra la instruccin
correspondiente.
Nota
En el caso de las CPUs de la serie S7-300, los bits de la palabra de estado /ER, STA
y OR no se cargan mediante la instruccin L STW. Tan slo los bits 1, 4, 5, 6, 7 y 8
se cargan en los bits de la palabra baja contenida en el ACU 1.

215...

...29

28
RB

Figura 8-1

27
A1

26
A0

25
OV

24
OS

23

22

21

20

OR

STA RLO /ER

Estructura de la palabra de estado

AWL

Explicacin

Carga los bits 0 a 8 de la palabra de estado en la palabra


baja del ACU 1.

STW

Transferir la
palabra de estado

La operacin de transferencia sirve para transferir el contenido del ACU 1 a la


palabra de estado (v. fig. 8-1). El siguiente fragmento de programa muestra la
instruccin correspondiente.

AWL

Explicacin

Transfiere el contenido del ACU 1 a la palabra de estado.

8-6

STW

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de carga y transferencia

8.4

Cargar valores de temporizacin y de contaje como enteros

Cargar un valor de
temporizacin

En la palabra de temporizacin se encuentra almacenado un valor de temporizacin


en cdigo binario. La siguiente operacin de carga (L) permite leer este valor binario en la palabra de temporizacin y cargarlo en la palabra baja del ACU 1:
L <palabra de temporizacin>
Este tipo de carga se denomina carga directa de un valor de temporizacin.
Al procesar el programa de usuario en la CPU, el valor de la palabra de temporizacin se va decrementando desde el valor de arranque hasta 0. Utilizando la operacin de cara con una palabra de temporizacin como operando, se obtiene un valor
comprendido entre el tiempo de arranque de la palabra y 0. El tiempo que transcurre
desde el arranque del temporizador resulta de la diferencia entre el tiempo de arranque y el tiempo actual.

AWL

Explicacin

Cargar en la palabra baja del ACU 1 bajo el valor de temporizacin del temporizador T 1 en cdigo binario.

T 1

15
Palabra de
temporizacin
Palabra baja
del ACU 1
Figura 8-2

10 9

Tiempo

X X X X X X
15

10

0 0 0 0 0 0

Carga de un valor de temporizacin en el ACU 1 con la operacin L

El valor que contiene el acumulador puede utilizarse como resultado de la operacin


de carga para su posterior procesamiento. Sin embargo, no es posible transferir un
valor desde el acumulador a la palabra de temporizacin.
Nota
Cuando se utiliza la operacin de carga para leer una palabra de temporizacin se
obtiene un valor comprendido entre 0 y 999, pero no se obtiene la base de tiempo
que fue cargada con este valor.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

8-7

Operaciones de carga y transferencia

Cargar un valor
de contaje

En la palabra de contaje se encuentra almacenado un valor en cdigo binario. Con la


siguiente operacin de carga (L) se puede leer este valor binario en una palabra de
contaje y cargarlo a continuacin en la palabra baja del ACU 1:
L <palabra de contaje>
Este tipo de carga se denomina carga directa de un valor de contaje.

AWL

Explicacin

Cargar el valor de contaje del contador Z 1 en formato binario


en la palabra baja del ACU 1.

Z 1

Valor de contaje
15
Palabra de contaje
para Z 1

Figura 8-3

X X X X X X
15

Palabra baja de
ACU 1

10 9

10

0 0 0 0 0 0

Carga de un valor de contaje en el ACU 1 con la operacin L

El valor que se encuentra en el acumulador como resultado de la operacin L puede


utilizarse para su procesamiento posterior. Sin embargo, no es posible transferir un
valor desde el acumulador a la palabra de contaje. Para arrancar un contador con un
valor determinado hay que utilizar la instruccin para inicializar el contador
(v. apt. 7.2).

8-8

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de carga y transferencia

8.5

Cargar valores de temporizacin y contaje en formato BCD

Cargar un valor de
temporizacin en
formato BCD

En la palabra de temporizacin se encuentra almacenado un valor en cdigo binario.


Con la siguiente operacin de carga (L) se puede leer el valor en formato BCD de
una palabra de temporizacin y cargarlo a continuacin en la palabra baja del
ACU 1:
LC <palabra de temporizacin>
Adems del valor de temporizacin se carga la base de tiempo. El valor contenido
en la palabra baja del ACU 1 como resultado de la operacin LC tiene el mismo
formato que el que se necesita para arrancar un temporizador. Este tipo de carga se
denomina carga directa de un valor de temporizacin en formato BCD.
El valor de la palabra de temporizacin decrementa a partir del valor de arranque
hasta llegar a 0. Utilizando la operacin LC con una palabra de temporizacin como
operando, se obtiene un valor comprendido entre el tiempo de arranque de la palabra y 0. El tiempo que transcurre desde el arranque del temporizador resulta de la
diferencia del tiempo de arranque y el tiempo de lectura actual.

AWL
LC

Explicacin
T 1

Cargar el valor y la base de tiempo del temporizador T 1 en


formato BCD en el ACU 1 bajo.

15 14 13 12 11 10 9

Tiempo

Palabra de
temporizacin
en BCD

15 14 13 12 11
Palabra baja de
ACU 1

0 0
102
101
100
Base de
tiempo (Centenas) (Decenas) (Unidades)

Figura 8-4

Carga de un valor de temporizacin en el ACU 1 con la operacin LC

El valor que se encuentra en el acumulador como resultado de la operacin LC


puede ser utilizado para un procesamiento posterior, por ejemplo para transferirlo a
las salidas y controlar as un display. Sin embargo no es posible transferir un valor
desde el acumulador a la palabra de temporizacin.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

8-9

Operaciones de carga y transferencia

Cargar un valor
de contaje en
formato BCD

En la palabra de contaje se encuentra almacenado un valor en formato BCD. La siguiente operacin de carga (L) permite leer el valor de la palabra de contaje en formato BCD y cargarlo en la palabra baja del ACU 1:
LC <palabra de contaje>
Este tipo de carga se denomina carga directa de un valor de contaje en formato
BCD. El valor contenido en la palabra baja del ACU 1 como resultado de la operacin LC tiene el mismo formato que el que se necesita para inicializar un contador.
En la palabra de contaje se encuentra almacenado un valor en formato BCD. Puede
cargar dicho valor de contaje en la palabra baja del ACU 1 (formato BCD, v. figura 8-5). La operacin LC permite leer un valor de contaje en formato BCD).

AWL
LC

Explicacin
Z 1

Cargar el valor de contaje del contador Z 1 en formato BCD en


la palabra baja del ACU 1.

15 14 13
Palabra de contaje de Z 1

12 11 10 9
X

Valor de contaje
codificacin BCD
15 14 13 12
Palabra baja de
ACU 1

11 10 9

0
102
(Centenas)

101
(Decenas)

100
(Unidades)

Valor en formato BCD


Figura 8-5

Carga de un valor de contaje en el ACU 1 con la operacin LC

El valor que se encuentra en el acumulador como resultado de la operacin de carga


LC puede utilizarse para su procesamiento posterior, por ejemplo para transferirlo a
las salidas y controlar as un display. Sin embargo, no es posible transferir un valor
desde el acumulador a la palabra de contaje.

8-10

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de carga y transferencia

8.6

Cargar y transferir entre registros de direcciones

Descripcin

Las operaciones siguientes permiten a la CPU intercambiar informacin entre registros de direcciones o intercambiar el contenido de dos registros:
Operacin

Direccionamiento
inmediato

Significado

LAR1

Carga el contenido del rea direccionada en el registro de direcciones 1. Si no


se indica ningn operando, LAR 1 carga en el registro de direcciones 1 el
contenido del ACU 1. LAR 1 tambin puede utilizar AR 2 como operando, es
decir, puede cargar el contenido de AR 2 en AR 1.

LAR2

Carga el contenido del rea direccionada en el registro de direcciones 2. Si no


se indica ningn operando, LAR 2 carga en el registro de direcciones 2 el
contenido del ACU 1.

TAR1

Transfiere el contenido del registro de direcciones 1 al destino direccionado


por la operacin. Si no se indica ningn operando, TAR 1 transfiere el contenido del registro de direcciones 1 al ACU 1. TAR1 tambin puede utilizar AR 2
como operando, es decir, TAR1 puede transferir el contenido de AR1 a AR2.

TAR2

Transfiere el contenido del registro de direcciones 2 al destino direccionado


por la operacin. Si no se indica ningn operando, TAR2 transfiere el
contenido del registro de direcciones 2 al ACU 1.

TAR

Intercambia el contenido de AR 1 y AR 2.

Las operaciones LAR 1 y LAR 2 pueden acceder a constantes de 32 bits. Este tipo
de direccionamiento se denomina direccionamiento inmediato (v. apt. 3.1). La
direccin inmediata se utiliza para cargar un puntero de 32 bits directamente en el
registro de direcciones (v. tabla 8-5).
LAR1

P#{rea}, byte{.bit}

con {rea} = {E, A, M, D, DX, L}


byte = 0 a 65 535
{.bit} = 0 a 7
Tabla 8-5

LAR1 Y LAR2: Direccionamiento inmediato


Ejemplo

Descripcin

LAR1

P#10.0

Carga el puntero interrea P#E0.0 en el


registro de direcciones 1.

LAR2

P#0

Carga el puntero intrarea con direccin 0 en


el registro de direcciones 2.

LAR1

P##Start

Carga el puntero interrea en la variable local


(Start) del registro de direcciones 1.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

8-11

Operaciones de carga y transferencia

Direccionamiento
directo

Las operaciones LAR1, LAR2, TAR1 y TAR2 permiten un direccionamiento


directo.
Tabla 8-6
Operacin

LAR1, LAR2, TAR1, TAR2: Direccionamiento directo


Directo

LAR1

{EN BLANCO}1) o AR 2

LAR2

{EN BLANCO}1)

TAR1

{EN BLANCO}2) o AR 2

TAR2

{EN BLANCO}2)

Identificador deloperando
y rea
DBD
DID
LD
MD
DBD
DID
LD
MD

0 a 65 532

0 a 65 532

1) {EN BLANCO} Si no se ha indicado ningn operando, LAR1/LAR2 carga el contenido del


ACU 1 en el registro de direcciones.
2) {EN BLANCO} Si no se ha indicado ningn operando, TAR1/TAR2 transfiere el contenido
del registro de direcciones al ACU 1.

8.7

Cargar informacin de un bloque de datos


Las operaciones de carga permiten cargar la longitud o el nmero de un bloque de
datos en el ACU 1. La tabla 8-7 muestra un resumen de las operaciones de este tipo
de carga. En caso de precisar ms informacin sobre cmo cargar la longitud o el
nmero de un bloque de datos en el ACU 1, consulte el apartado 15.3.
Tabla 8-7
Operando

8-12

Carga de la longitud o del nmero de un bloque de datos en el ACU 1


Explicacin

DBLG

Carga la longitud de un bloque de datos global en el ACU 1.

DILG

Carga la longitud de un bloque de datos de instancia en el ACU 1.

DBNO

Carga el nmero de un bloque de datos global en el ACU 1.

DINO

Carga el nmero de un bloque de datos de instancia en el ACU 1.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma fija

Indice del
captulo

Apartado

Tema

Pgina

9.1

Operaciones aritmticas

9-2

9.2

Sumar un entero al ACU 1

9-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

9-1

Aritmtica de coma fija

9.1

Operaciones aritmticas

Descripcin

La tabla 9-1 muestra las operaciones AWL que permiten sumar, restar, multiplicar y
dividir enteros (16 bits) y enteros dobles (32 bits).
Tabla 9-1
Operacin

Relacin entre
operaciones
aritmticas y
acumuladores

9-2

Operaciones aritmticas con enteros (16 y 32 bits)


Tamao
en bits

Funcin

+I

16

Suma el contenido de la palabra baja de los ACUs 1 y 2 y almacena


el resultado en la palabra baja del ACU 1.

-I

16

Resta el contenido de la palabra baja del ACU 1 del contenido de la


palabra baja del ACU 2, y almacena el resultado en la palabra baja
del ACU 1.

I

16

Multiplica el contenido de las palabras bajas de los ACUs 1 y 2 y


almacena el resultado (32 bits) en el ACU 1.

/I

16

Divide el contenido de la palabra baja del ACU 2 por el contenido


de la palabra baja del ACU 1. El resultado se almacena en la palabra
baja del ACU 1. Si queda un resto se almacena en la palabra alta del
ACU 1.

+D

32

Suma el contenido de los ACUs 1 y 2 y almacena el resultado en el


ACU 1.

-D

32

Resta el contenido del ACU 1 del contenido del ACU 2 y almacena


el resultado en el ACU 1.

D

32

Multiplica el ACU 1 por el contenido del ACU 2 y almacena el


resultado en el ACU 1.

/D

32

Divide el contenido del ACU 2 por el contenido del ACU 1 y


almacena el resultado en el ACU 1.

MOD

32

Divide el contenido del ACU 2 por el contenido del ACU 1 y


almacena el resto como resultado en el ACU 1.

La descripcin de las funciones en la tabla 9-1 muestra cmo las operaciones aritmticas combinan el contenido de los ACUs 1 y 2. El resultado se deposita en el
ACU 1. El contenido del ACU 2 permanece inalterado.
En las CPUs con 4 acumuladores se copia a continuacin el contenido del ACU 3 en
el ACU 2, y el contenido del ACU 4 en el ACU 3. El antiguo contenido del ACU 4
no vara.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma fija

Combinar dos
nmeros enteros
(16 bits) en las
CPUs con 2 ACU

La operacin Sumar ACU 1 y 2 como enteros (+I) le ordena a la CPU que sume el
contenido de la palabra baja del ACU 1 y de la palabra baja del ACU 2, y que
almacene el resultado en la palabra baja del ACU 1. Esta operacin sobreescribe el
antiguo contenido del ACU 1. El antiguo contenido del ACU 2 y la palabra alta del
ACU 1 permanecen inalterados (v. fig. 9-1). Debajo de la figura 9-2 encontrar un
programa de ejemplo.
Contenido del acumulador antes
de la operacin aritmtica
ACU 2
31

ACU 2
16 15

IV

III

IV

ACU 1
31

+I
16 15

II
Figura 9-1

Suma de dos
nmeros enteros
(16 bits) en las
CPU con 4
acumuladores

Contenido del acumulador


despus de la operacin aritmtica

III

ACU 1

II

III + I

Suma de dos enteros

La operacin Sumar ACU 1 y 2 como enteros (+I) le ordena a la CPU que sume el
contenido de la palabra baja del ACU 1 y de la palabra baja del ACU 2, y que almacene el resultado en la palabra baja del ACU 1. Esta operacin sobreescribe el antiguo contenido del ACU 1. A continuacin se copia el contenido del ACU 3 en el
ACU 2, y el contenido del ACU 4 en el ACU 3. El ACU 4 y la palabra alta del
ACU 1 no varan. (v. fig. 9-2).

Contenido del acumulador antes


de la operacin aritmtica

ACCU 4
31

ACCU 4
16 15

VIII

VII

VIII

ACCU 3
31

VI

VIII

ACCU 2
IV

III

VI

ACCU 1

+I
16 15

II
Figura 9-2

VII

ACCU 2
16 15

31

VII

ACCU 3
16 15

31

Contenido del acumulador


despus de la operacin aritmtica

ACCU 1

II

III + I

Suma de dos enteros en las CPU con 4 acumuladores

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

9-3

Aritmtica de coma fija

AWL

Explicacin

MW10

Cargar el valor de la palabra de marcas MW10 en el ACU 1.

DBD12

Cargar el valor de la palabra doble de datos DBD12 en el


ACU 1. El antiguo contenido del ACU 1 se desplaza al ACU 2.

+I

La CPU evala el contenido de la palabra baja de los ACUs 1 y


2 como enteros de 16 bits, los suma y almacena el resultado en
la palabra baja del ACU 1.
DBW14

Transferir el contenido de la palabra baja del ACU 1


(el resultado) a la palabra de datos DBW14.

Evaluar los bits


de la palabra
de estado

Las operaciones aritmticas afectan a los siguientes bits de la palabra de estado:

Resultado vlido

Los guiones () en las columnas de bits significan que el bit en cuestin no se ve


afectado por el resultado de la operacin aritmtica. Las operaciones de la tabla 9-5
le servirn para evaluar estos bits de la palabra de estado.

S A1 y A0
S OV
S OS

Tabla 9-2

Estado de seal de los bits de la palabra de estado: Resultado de la


operacin dentro del margen vlido

Rango
el resultado de enteros (16 y 32 bits)
g vlido para
p

A1

A0

OV

OS

0 (cero)

16 bits: -32 768 v resultado t 0 (nmero negativo)


32 bits: -2 147 483 648 v resultado t 0 (nmero negativo)

16 bits: 32 767 w resultado u0 (nmero positivo)


32 bits: 2 147 483 647 w resultado u0 (nmero positivo)

Tabla 9-3

Resultado no
vlido

Estado de seal de los bits de la palabra de estado: Resultado fuera del margen
vlido

Rango
el resultado de enteros (16 y 32 bits)
g no vlido para
p

Bits de la palabra de estado


A1

A0

OV

OS

32 767 (nmero positivo)


2 147 483 647 (nmero positivo)

16 bit: Resultado t -32 768 (nmero negativo)


32 bit: Resultado t -2 147 483 648 (nmero negativo)

16 bit: Resultado u
32 bit: Resultado u

9-4

Bits de la palabra de estado

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma fija

Tabla 9-4

Estado de seal de los bits de la palabra de estado: Operaciones aritmticas con


enteros dobles (32 bit) +D, /D y MOD
Bits de la palabra de estado
Operacin
Operac
n

A1

A0

OV

OS

+D: Resultado = -4 294 967 296

/D o MOD: divisin por 0

Tabla 9-5

Operaciones que evalan los bits de la palabra de estado A1, A0, OV y OS

Operacin
U,O,X,UN,ON,XN

Referencia al bit de la
palabra de estado o meta
>0, <0, <>0, >=0, <=0,
==0, UO, OV, OS

Bits evaluados de la
palabra de estado
(marcados con una X)
A1, A0, OV, OS

Captulo
5.3

SPO

<meta>

OV

16.4

SPS

<meta>

OS

16.4

SPU

<meta>

A1 y A0

16.5

SPZ

<meta>

A1 y A0

16.5

SPN

<meta>

A1 y A0

16.5

SPP

<meta>

A1 y A0

16.5

SPM

<meta>

A1 y A0

16.5

SPMZ

<meta>

A1 y A0

16.5

SPPZ

<meta>

A1 y A0

16.5

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

9-5

Aritmtica de coma fija

9.2

Sumar un entero al ACU 1

Sumar constantes
enteras (8, 16 y
32 bits)
Tabla 9-6
Operacin

La operacin Sumar constante entera se utiliza para sumar una constante entera al
contenido de la palabra baja del ACU 1. La tabla 9-6 muestra las tres posibilidades.
Estas operaciones no afectan a los bits de estado.

Sumar un entero al ACU 1


Operando

Funcin

+ entero (16 bits)

Suma una constante entera de 16 bits al contenido de la palabra baja


del ACU 1. El resultado se almacena en el ACU 1. Se pierde el antiguo
contenido de la palabra baja del ACU 1. El ACU 2 y la palabra alta del
ACU 1 permanecen inalterados.

+ L# entero (32 bits)

Suma una constante entera de 32 bits al contenido del ACU 1. El


resultado se almacena en el ACU 1. Se pierde el antiguo contenido de
este acumulador. El ACU 2 permanece inalterado.

Ejemplos

A continuacin se representan dos programas con las operaciones Sumar constante


entera.

AWL

Explicacin

MW10

Cargar el valor de MW 10 en el ACU 1.

MW20

Cargar el valor de MW 20 en el ACU 1.

+I

Sumar los valores de 16 bits de los ACUs 1 y 2.

-5

Sumar -5 al resultado de la operacin +I.

MW14

Transferir el nuevo resultado a MW14.

AWL

Explicacin

MD10

Cargar el valor de MD10 en el ACU 1.

MD16

Cargar el valor de MD16 en el ACU 1.

+D

Sumar los valores de 32 bits de los ACUs 1 y 2.

L#-1

Sumar -1 al resultado de la operacin +D.

MD24

Transferir el nuevo resultado a MD24.

9-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10

Aritmtica de coma flotante

Indice del
captulo

Apartado

Tema

Pgina

10.1

Operacionesaritmticas

10-2

10.2

Formar el valor absoluto de un nmero en coma flotante

10-6

10.3

Operaciones aritmticas ampliadas

10-7

10.4

Calcular el cuadrado y la raz cuadrada de un nmero en coma


flotante

10-9

10.5

Calcular el logaritmo natural de un nmero en coma flotante

10-11

10.6

Calcular el valor exponencial de un nmero en coma flotante

10-12

10.7

Calcular funciones trigonomtricas de ngulos como nmeros en


coma flotante

10-13

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-1

Aritmtica de coma flotante

10.1 Operaciones aritmticas

Descripcin

La tabla 10-1 muestra las operaciones AWL que se utilizan para sumar, restar,
multiplicar y dividir nmeros en coma flotante IEEE-FP de 32 bits. Puesto que los
nmeros en coma flotante IEEE-FP de 32 bits pertenecen al tipo de datos
denominado REAL la abreviatura nemotcnica de estas operaciones es R.
Tabla 10-1
Operacin

Relacin entre
operaciones
aritmticas y
acumuladores

10-2

Operaciones aritmticas con nmeros en coma flotante (32 bits, IEEE)


Funcin

+R

Suma los nmeros en coma flotante de 32 bits IEEE-FP de los ACUs 1 y 2, y


almacena el resultado de 32 bits en el ACU 1.

-R

Resta el nmero en coma flotante de 32 bits IEEE-FP que se encuentra en el


ACU 1 del nmero en coma flotante de 32 bits IEEE-FP que se encuentra en el
ACU 2, y almacena el resultado de 32 bits en el ACU 1.

R

Multiplica el nmero en coma flotante de 32 bits IEEE-FP del ACU 1 por el


nmero en coma flotante de 32 bits IEEE-FP del ACU 2, y almacena el
resultado de 32 bits en el ACU 1.

/R

Divide el nmero en coma flotante de 32 bits IEEE-FP del ACU 2 por el


nmero en coma flotante de 32 bits IEEE-FP del ACU 1, y almacena el
resultado de 32 bits en el ACU 1.

En la descripcin de las funciones expuestas en la tabla 10-1 se ve cmo las


operaciones aritmticas combinan el resultado de los ACUs 1 y 2. El resultado se
deposita en el ACU 1. El contenido del ACU 2 permanece inalterado.
En las CPU con 4 acumuladores se copia a continuacin el contenido del ACU 3 en
el ACU 2, y el contenido del ACU 4 en el ACU 3. El antiguo contenido del ACU 4
no vara.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma flotante

Representacin de
los resultados de
combinar dos
nmeros en coma
flotante en las
CPUs con 2 ACUs

La operacin Sumar ACU 1 y 2 como nmero en coma flotante (32 bits, IEEE-FP)
(+R) ordena a la CPU que sume el contenido del ACU 1 y 2 y que almacene el
resultado en el ACU 1. Esta operacin sobreescribe el antiguo contenido del ACU 1.
El antiguo contenido del ACU 2 permanece inalterado (v. fig. 10-1). Debajo de la
figura 10-2 se muestra un programa a modo de ejemplo.

Contenido del acumulador


antes de la operacin

Contenido del acumulador


despus de la operacin

ACU 2

ACU 2

31

16 15

II

II

ACU 1
31

ACU 1

+R
16 15

II + I

I
Figura 10-1

Suma de dos nmeros en coma flotante (IEEE)

Todas las dems operaciones de aritmtica en coma flotante se rigen por el principio
arriba esquematizado.
Tabla 10-2

Resultados de las operaciones con nmeros desnormalizados en las CPU con


2 ACUs

Operacin

Valores de entrada
ACU 1
ACU 2

Resultado
ACU 1

ACU 2

+R

-R

-a

*R

+R

FFFF

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-3

Aritmtica de coma flotante

Representacin de
los resultados de
combinar dos
nmeros en coma
flotante en las
CPUs con 4 ACUs

La operacin sumar ACU 1 y ACU 2 como nmero en coma flotante (32 bits, IEEEFP) (+R) ordena a la CPU que sume el contenido de los ACUs 1 y 2, y que guarde el
resultado en el ACU 1. Esta operacin sobreescribe el antiguo contenido del ACU 1.
A continuacin se copia el contenido del ACU 3 en el ACU 2, y el contenido del
ACU 4 en el ACU 3 (v. fig. 10-2).
Contenido del acumulador
antes de la operacin

Contenido del acumulador


despus de la operacin

ACU 4

ACU 4

31

16 15

IV

IV
ACU 3

ACU 3
31

16 15

IV

III
ACU 2
31

ACU 2
16 15

II

II

ACU 1
31

+R
16 15

I
Figura 10-2

ACU 1

II + I

Suma de dos nmeros en coma flotante (IEEE-FP) en las CPUs con 4 ACUs

Todas las dems operaciones de la aritmtica en coma flotante se rigen por el principio arriba esquematizado.
Ejemplo

AWL

Explicacin

MD100

DBD4

Cargar el valor de la palabra doble de marcas MD100 en


el ACU 1.
Cargar el valor de la palabra doble de datos DBD4 en el ACU 1.
El antiguo contenido del ACU 1 se desplaza al ACU 2. (Los
valores depositados en estas palabras dobles han de estar en
coma flotante).
La CPU evala el contenido de los ACUs 1 y 2 como nmeros en
coma flotante (32 bits IEEE-FP), los suma y almacena el
resultado en el ACU 1.
Transferir el contenido del ACU 1 (el resultado) a la palabra
doble de datos DBD16 (DBD16 = MD100 + DBD4).

+R

DBD16

Evaluar los bits


de la palabra de
estado

Las operaciones aritmticas s afectan a los siguientes bits de la palabra de estado:


S A1 y A0
S OV
S OS
Las operaciones de la tabla 10-5 se utilizan para evaluar estos bits de la palabra de
estado. La tabla 10-3 muestra los estados de seal de los bits de la palabra de estado
cuando los resultados de aritmtica con nmeros en coma flotante estn comprendidos dentro del margen vlido. Los guiones (-) que aparecen en la columna de bits en
la tabla significan que el bit en cuestin no se ve afectado por el resultado de la operacin aritmtica.

10-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma flotante

Tabla 10-3

Estado de seal de los bits de estado: Resultado de la operacin aritmtica


dentro del margen vlido

Margen vlido
vl do para resultados de enteros dobles (32
bits)

Bits de la palabra de estado


A1

A0

OV

OS

+0, -0 (cero)

-3 402 823E+38 < resultado < -1 175 494E-38


(nmero negativo)

+1 175 494E-38 < resultado < 3 402 823E+38


(nmero positivo)

Tabla 10-4

Estado de seal de los bits de la palabra de estado: Resultado de la operacin


aritmtica fuera del margen vlido

Margen no vl
do para resultados de enteros dobles
vlido
(32 bits)

Bits de la palabra de estado


A1

A0

OV

OS

-1 175 494E-38 < resultado < - 1 401 298E-45


(nmero negativo) rebase por defecto

+1 401 298E-45 < resultado < +1 175 494E-38


(nmero positivo) rebase por defecto

Resultado < -3 402 823E+38 (nmero negativo)


desbordamiento

Resultado > -3 402 823E+38 (nmero positivo)


desbordamiento

Tabla 10-5

Operaciones que evalan los bits de la palabra de estado A1, A0, OV y OS

Operacin
U,O,X,UN,ON,XN

Referencia al bit de la
palabra estado o meta
>0, <0, <>0, >=0, <=0,
==0, UO, OV, OS

Bits de la palabra de
estado evaluados
(marcados con una X)
A1, A0, OV, OS

Apartado
5.3

SPO

<meta>

OV

16.4

SPS

<meta>

OS

16.4

SPU

<meta>

A1 y A0

16.4

SPZ

<meta>

A1 y A0

16.5

SPN

<meta>

A1 y A0

16.5

SPP

<meta>

A1 y A0

16.5

SPM

<meta>

A1 y A0

16.5

SPMZ

<meta>

A1 y A0

16.5

SPPZ

<meta>

A1 y A0

16.5

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-5

Aritmtica de coma flotante

10.2 Formar el valor absoluto de un nmero en coma flotante

Descripcin

La operacin ABS (Valor absoluto de un nmero en coma flotante (32 bits, IEEEFP)) se utiliza para formar el valor absoluto de un nmero en coma flotante (32 bits
IEEE-FP) en el ACU 1. Un valor absoluto es un nmero no negativo de igual valor
numrico al nmero en coma flotante dado. Para un valor absoluto, el signo (+ o -)
no es relevante. Por ejemplo, 5 es el valor absoluto de +5 -5.

Ejemplo

El programa de ejemplo siguiente muestra cmo utilizar la operacin ABS:

AWL

Explicacin

L
L

Cargar el valor de la palabra doble de datos DBD0 en el ACU 1.


Cargar el valor +12,3E+00 en el ACU 1.
El antiguo contenido del ACU 1 se desplaza al ACU 2.
La CPU divide el contenido del ACU 2 por el contenido
del ACU 1 y almacena el resultado en el ACU 1.
Transferir el contenido del ACU 1 (el resultado) a la palabra
doble de marcas MD20 (MD20 = DBD0 / 12.3)
Negar el nmero en coma flotante IEEE del ACU 1
(v. apt. 12.4).
Transferir el resultado del ACU 1 a la palabra doble de marcas
MD24. (MD24 = [-1] * MD20)
La CPU forma el valor absoluto del nmero en coma flotante
IEEE en el ACU 1.
Transferir el valor absoluto del ACU 1 a la palabra doble de
marcas MD28. (MD28 = ABS[MD20])

DBD0
+12.3E+00

/R
T

MD20

NEGR
T MD24
ABS
T

MD28

10-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma flotante

10.3 Operaciones aritmticas ampliadas

Descripcin

En la tabla 10-6 se enumeran las operaciones AWL con las que puede aplicar operaciones aritmticas ampliadas con nmeros en coma flotante (32 bits, IEEE-FP).
Tabla 10-6

Operaciones aritmticas ampliadas con nmeros en coma flotante (32 bits,


IEEE-FP)

Relacin entre
operaciones
ampliadas y
acumuladores

Operacin

Funcin

SQRT

Calcula la raz cuadrada del nmero en coma flotante (32 bits, IEEE-FP) en el
ACU 1 y guarda el resultado de 32 bits en el ACU 1.

SQR

Calcula el cuadrado del nmero en coma flotante (32 bits, IEEE-FP) en el


ACU 1 y guarda el resultado de 32 bits en el ACU 1.

LN

Calcula el logaritmo natural del nmero en coma flotante (32 bits, IEEE-FP) en
el ACU 1 y guarda el resultado de 32 bits en el ACU 1.

EXP

Calcula el valor exponencial del nmero en coma flotante (32 bits, IEEE-FP)
con base e, y guarda el resultado de 32 bits en el ACU 1.

SIN

Calcula el seno del nmero en coma flotante (32 bits, IEEE-FP) en el ACU 1 y
guarda el resultado de 32 bits en el ACU 1.

COS

Calcula el coseno del nmero en coma flotante (32 bits, IEEE-FP) en el ACU 1
y guarda el resultado de 32 bits en el ACU 1.

TAN

Calcula la tangente del nmero en coma flotante (32 bits, IEEE-FP) en el


ACU 1 y guarda el resultado de 32 bits en el ACU 1.

ASIN

Calcula el arco seno del nmero en coma flotante (32 bits, IEEE-FP) en el ACU
1 y guarda el resultado de 32 bits en el ACU 1.

ACOS

Calcula el arco coseno del nmero en coma flotante (32 bits, IEEE-FP) en el
ACU 1 y guarda el resultado de 32 bits en el ACU 1.

ATAN

Calcula el arco tangente del nmero en coma flotante (32 bits, IEEE-FP) en el
ACU 1 y guarda el resultado de 32 bits en el ACU 1.

Las operaciones aritmticas ampliadas slo utilizan el ACU 1. El ACU 1 espera el


valor al que se aplica la operacin. El resultado se guarda en el ACU 1; el valor anterior del ACU se sobreescribe. Los contenidos de los ACU 2, 3 y 4 no varan.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-7

Aritmtica de coma flotante

El efecto de las
operaciones
ampliadas sobre
los bits de la
palabra de estado

La CPU realiza las operaciones aritmticas enumeradas en la tabla 10-1 sin tener en
cuenta ni afectar al resultado lgico. Las operaciones de clculo ampliadas afectan a
los siguientes bits:

S A1 y A0
S OV
S OS
Las operaciones AWL de la tabla 10-7 se utilizan para evaluar estos bits (v. apt. 5.3
y Evaluar los bits de la palabra de estado en este captulo).
Tabla 10-7

Operaciones aritmticas ampliadas con nmeros en coma flotante (32 bits,


IEEE-FP)
Referencia a los bits
de la palabra de
estado o meta

Bits de la palabra
de estado evaluados

Apartado

U, O, X, UN, ON, XN

>0, <0, <>0, >=0, <=0,


==0, UO, OV, OS

A1, A0, OV, OS

5.3

SPO

<meta>

OV

16.4

SPS

<meta>

OS

16.4

SPU

<meta>

A1 y A0

16.4

SPZ

<meta>

A1 y A0

16.5

SPN

<meta>

A1 y A0

16.5

SPP

<meta>

A1 y A0

16.5

SPM

<meta>

A1 y A0

16.5

SPMZ

<meta>

A1 y A0

16.5

SPPZ

<meta>

A1 y A0

16.5

Operacin

10-8

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma flotante

10.4 Calcular el cuadrado y la raz cuadrada de un nmero en coma flotante

Descripcin

La operacin SQR (cuadrado) calcula el cuadrado del nmero en coma flotante


(32 bits, IEEE-FP) en el ACU 1 y guarda el resultado de 32 bits en el ACU 1. La
operacin SQR sobreescribe el antiguo contenido del ACU 1; los contenidos de los
ACU 2, ACU 3 y ACU 4 no varan.
La operacin SQRT (raz cuadrada) calcula la raz cuadrada del nmero en coma
flotante (32 bits, IEEE-FP) en el ACU 1 y guarda el resultado de 32 bits en el
ACU 1. El valor de entrada tiene que ser igual a o mayor que cero. La operacin
SQRT sobreescribe el antiguo contenido del ACU 1; los contenidos de los ACU 2,
ACU 3 y ACU 4 no varan.
Esta operacin da un resultado positivo cuando todos los operandos son mayores
que 0. nica excepcin: la raz cuadrada de 0 es - 0.
Tabla 10-8

Efecto sobre los


bits A1, A0, OV y
OS de la palabra
de estado

Ejemplo

Efecto de la operacin SQR sobre los bits A1, A0, OV y OS

Resultado en el ACU 1

A1

A0

OV

OS

+ qNaN

+ infinito (rebase por exceso)

+ normalizado

+ desnormalizado (rebase por defecto)

+ cero

- qNaN

En el siguiente fragmento de programa se muestra un ejemplo de cmo se utiliza la


operacin SQR.

AWL

Explicacin

AUF DB17

Abre el bloque de datos DB 17. (ste contiene el valor de


entrada y sirve tambin para depositar el resultado.)

L DBD0

Carga el valor de la palabra doble de datos DBD0 en el ACU 1.


(Este valor tiene que estar en coma flotante).

SQR

Calcula el cuadrado del nmero en coma flotante (32 bits,


IEEE-FP) en el ACU 1. Deposita el resultado en el ACU 1.

UN OV

Consulta si el bit de estado OV es 0.

SPB OK

Si al realizar la operacin SQR no se han producido errores


salta a la marca OK.

...

(Aqu se reacciona ante la aparicin de un error).

OK: T DBD4

Transfiere el resultado desde el ACU1 a la palabra doble de


datos DBD4.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-9

Aritmtica de coma flotante

Tabla 10-9

Ejemplo

Efecto de la operacin SQRT sobre los bits A0, A1, OS y OV


Resultado en el ACU 1

A1

A0

OV

OS

+ qNaN

+ infinito (rebase por exceso)

+ normalizado

+ desnormalizado (rebase por defecto)

+ cero

- cero

- qNaN

En el siguiente fragmento de programa se muestra un ejemplo de cmo se utiliza la


operacin SQRT.

AWL

Explicacin

L MD10

Carga el valor de la palabra doble de marcas MD10 en el ACU 1.


(Este valor tiene que estar en coma flotante).
Calcula la raz cuadrada del nmero en coma flotante (32 bits,
IEEE-FP) en el ACU 1. Deposita el resultado en el ACU 1.
Consulta si el bit de estado OV es 0.
Si al realizar la operacin SQRT no se han producido errores
salta a la marca OK.
(Aqu se reacciona ante la aparicin de un error).
Transfiere el resultado desde el ACU1 a la palabra doble de
marcas MD20.

SQRT
UN OV
SPB OK
...
OK: T MD20

10-10

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma flotante

10.5 Calcular el logaritmo natural de un nmero en coma flotante

Descripcin

La operacin LN (logaritmo natural) calcula el logaritmo natural del nmero en


coma flotante (32 bits, IEEE-FP) en el ACU 1 y guarda el resultado de 32 bits en el
ACU 1. El valor de entrada tiene que ser mayor que cero. La operacin LN sobreescribe el antiguo contenido del ACU 1; los contenidos de los ACU 2, ACU 3 y
ACU 4 no varan.

Efecto sobre los


bits A1, A0, OV y
OS de la palabra
de estado

En la tabla 10-10 se muestra el efecto que tiene la operacin LN sobre el estado de


seal de los bits A1, A0, OV y OS de la palabra de estado. El signo indica que
el bit correspondiente no resulta afectado.
Tabla 10-10

Ejemplo

Efectos de la operacin LN sobre los bits de estado A1, A0, OV y OS


Resultado en el ACU 1

A1

A0

OV

OS

+ qNaN

+ infinito (rebase por exceso)

+ normalizado

+ desnormalizado (rebase por defecto)

+ cero

- cero

- desnormalizado (rebase por defecto)

- normalizado

- infinito (rebase por exceso)

- qNaN

En el siguiente fragmento de programa se muestra un ejemplo de cmo se utiliza la


operacin LN.

AWL

Explicacin

L MD10

Carga el valor de la palabra doble de marcas MD10 en el ACU 1.


(Este valor tiene que estar en coma flotante).

LN

Calcula el logaritmo natural del nmero en coma flotante (32 bits,


IEEE-FP) en el ACU 1. Deposita el resultado en el ACU 1.

UN OV

Consulta si el bit de estado OV es 0.

SPB OK

Si al realizar la operacin SQRT no se han producido errores salta a


la marca OK.

...

(Aqu se reacciona ante la aparicin de un error).

OK: T MD20

Transfiere el resultado desde el ACU1 a la palabra doble de marcas


MD20.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-11

Aritmtica de coma flotante

10.6 Calcular el valor exponencial de un nmero en coma flotante

Descripcin

La operacin EXP (valor exponencial de la base e) calcula el valor exponencial del


nmero en coma flotante (32 bits, IEEE-FP) en el ACU 1 para la base e
(= 2,71828...), y guarda el resultado de 32 bits en el ACU 1. La operacin EXP sobreescribe el antiguo contenido del ACU 1; los contenidos de los ACU 2, ACU 3 y
ACU 4 no varan.

Efecto sobre los


bits A1, A0, OV y
OS de la palabra
de estado

En la tabla 10-11 se muestra el efecto que tiene la operacin EXP sobre el estado de
seal de los bits A1, A0, OV y OS de la palabra de estado. El signo indica que
el bit correspondiente no resulta afectado.
Tabla 10-11

Ejemplo

Efecto de la operacin EXP sobre los bits de estado A1, A0, OV y OS de la


palabra de estado
Resultado en el ACU 1

A1

A0

OV

OS

+ qNaN

+ infinito (rebase por exceso)

+ normalizado

+ desnormalizado (rebase por defecto)

+ cero

- qNaN

En el siguiente fragmento de programa se muestra un ejemplo de cmo se utiliza la


operacin EXP.

AWL

Explicacin

L MD10

Carga el valor de la palabra doble de marcas MD10 en el ACU 1.


(Este valor tiene que estar en coma flotante).

EXP

Calcula el valor exponencial de la base e del nmero en coma flotante


(32 bits, IEEE-FP) en el ACU 1. Deposita el resultado en el ACU 1.

UN OV

Consulta el bit de estado OV a 0.

SPB OK

Si al realizar la operacin EXP no se han producido errores salta a


la marca OK.

...

(Aqu se reacciona ante la aparicin de un error).

OK: T MD20

Transfiere el resultado desde el ACU1 a la palabra doble de marcas


MD20.

10-12

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma flotante

10.7 Calcular funciones trigonomtricas de ngulos representados mediante


nmeros en coma flotante
Descripcin

Las operaciones que se describen a continuacin sirven para calcular funciones trigonomtricas de ngulos que estn representados mediante nmeros en coma flotante (32 bits, IEEE-FP). El resultado de 32 bits se deposita en el ACU 1; los contenidos de los ACU 2, ACU 3 y ACU 4 no varan.
Operacin

Significado

SIN

Calcula el seno del nmero en coma flotante de un ngulo indicado por la


medida de su arco. El ngulo se guarda como nmero en coma flotante en el
ACU 1.

ASIN

Calcula el arco seno del nmero en coma flotante en el ACU 1. El resultado es


un ngulo indicado por la medida de su arco. El valor queda dentro del
siguiente margen de valores:
p / 2 v arco seno (ACU 1) v + p / 2, siendo p = 3.14...

COS

Calcula el coseno del nmero en coma flotante de un ngulo indicado por la


medida de su arco. El ngulo se guarda como nmero en coma flotante en el
ACU 1.

ACOS

Calcula el arco coseno del nmero en coma flotante en el ACU 1. El resultado


es un ngulo indicado por la medida de su arco. El valor queda dentro del
siguiente margen de valores:
0 v arco coseno (ACU 1) v + p, siendo p = 3.14...

TAN

Calcula la tangente del nmero en coma flotante de un ngulo indicado por la


medida de su arco. El ngulo se guarda como nmero en coma flotante en el
ACU 1.

ATAN

Calcula el arco tangente del nmero en coma flotante en el ACU 1. El resultado


es un ngulo indicado por la medida de su arco. El valor queda dentro del
siguiente margen de valores:
p / 2 v arco tangente (ACU 1) v + p / 2, siendo p = 3.14...

Efectos sobre los


bits A1, A0, OV y
OS de la palabra
de estado

En la tabla 10-12 se muestra el efecto que tienen las operaciones SIN, ASIN, COS,
ACOS y ATAN sobre el estado de seal de los bits A1, A0, OV y OS de la palabra
de estado. En la tabla 10-13 se muestra el efecto de la operacin TAN sobre dichos
bits. El signo indica que el bit correspondiente no resulta afectado.
Tabla 10-12

Efectos de las operaciones SIN, ASIN, COS, ACOS y ATAN


Resultado en el ACU 1

A1

A0

OV

OS

+ qNaN

+ normalizado

+ desnormalizado (rebase por defecto)

+ cero

- cero

- desnormalizado (rebase por defecto)

- normalizado

- qNaN

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-13

Aritmtica de coma flotante

Tabla 10-13

Ejemplo

Efectos de la operacin TAN sobre los bits A1, A0, OV y OS de la palabra de


estado
Resultado en el ACU 1

A1

A0

OV

OS

+ qNaN

+ infinito (rebase por exceso)

+ normalizado

+ desnormalizado (rebase por defecto)

+ cero

- cero

- desnormalizado (rebase por defecto)

- normalizado

- infinito (rebase por exceso)

- qNaN

En el siguiente fragmento de programa se muestra un ejemplo de cmo se utiliza la


operacin SIN.

AWL

Explicacin

L MD10

Carga el valor de la palabra doble de marcas MD10 en el


ACU 1.
(Este valor tiene que estar en coma flotante).

SIN

Calcula el seno del nmero en coma flotante (32 bits,


IEEE-FP) en el ACU 1. Deposita el resultado en el ACU 1.

T MD20

Transfiere el resultado desde el ACU1 a la palabra doble


de marcas MD20.

Ejemplo

En el siguiente fragmento de programa se muestra un ejemplo de cmo se utiliza la


operacin ASIN.

AWL

Explicacin

L MD10

Carga el valor de la palabra doble de marcas MD10 en el ACU 1.


(Este valor tiene que estar en coma flotante).

ASIN

Calcula el arco seno del nmero en coma flotante (32 bits,


IEEE-FP) en el ACU 1. Deposita el resultado en el ACU 1.

UN OV

Consulta el bit de estado OV a 0.

SPB OK

Si al realizar la operacin ASIN no se han producido errores


salta a la marca OK.

...

(Aqu se reacciona ante la aparicin de un error).

OK: T MD20

Transfiere el resultado desde el ACU1 a la palabra doble de


marcas MD20.

10-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Aritmtica de coma flotante

Evaluar los bits


de la palabra de
estado

Las operaciones aritmticas ampliadas afectan a los siguientes bits de la palabra de


estado:

S A1 y A0
S OV
S OS

Valor vlido

Los guiones () que aparecen en las columnas de bits en la tabla significan que el bit
en cuestin no se ve afectado por el resultado de la operacin aritmtica.
Tabla 10-14

Funciones de arco para nmeros en coma flotante (32 bits, IEEE-FP) y


margen de valores vlido para el valor de entrada

Margen vlido
vl do para resultados de enteros dobles
(32 bits)

A1

A0

OV

OS

+0, -0 (cero)

-3 402 823E+38 < resultado < -1 175 494E-38


(nmero negativo)

+1 175 494E-38 < resultado < 3 402 823E+38


(nmero positivo)

Tabla 10-15

Resultado no
vlido

Estado de seal de los bits de la palabra de estado: Resultado de la


operacin aritmtica fuera del margen vlido

Margen no vl
do para resultados de enteros
vlido
dobles (32 bits)

Bits de la palabra de estado


A1

A0

OV

OS

-1 175 494E-38 < resultado < - 1 401 298E-45


(nmero negativo) rebase por defecto

+1 401 298E-45 < resultado < +1 175 494E-38


(nmero positivo) rebase por defecto

Resultado < -3 402 823E+38 (nmero negativo)


rebase por exceso

Resultado > -3 402 823E+38 (nmero positivo)


rebase por exceso

Tabla 10-16

Valor de entrada
no vlido

Bits de la palabra de estado

Estados de seal de los bits de la palabra de estado: El valor de entrada


no es un nmero en coma flotante vlido o queda fuera del margen
vlido

margen de valores no vlido para el valor de


entrada
t d con nmeros

en coma fl
flotante
t t (32 bit
bits))

Bits de la palabra de estado


A1

A0

OV

OS

nmero en coma flotante de 32 bits no vlido


(formato IEEE-FP) en el ACU 1

Operacin no permitida: valor de entrada en el ACU 1


queda fuera del margen de valores vlido

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-15

Aritmtica de coma flotante

10-16

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

11

Operaciones de comparacin

Indice del
captulo

Apartado

Tema

Pgina

11.1

Resumen breve

11-2

11.2

Comparar dos enteros

11-3

11.3

Comparar dos nmeros en coma flotante

11-5

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

11-1

Operaciones de comparacin

11.1 Resumen breve


Las operaciones de comparacin sirven para comparar los siguientes pares de valores numricos:

S Dos enteros de 16 bits


S Dos enteros dobles de 32 bits
S Dos nmeros en coma flotante (32 bits, IEEE-FP)
Los valores numricos se cargan en los ACUs 1 y 2. Las operaciones de comparacin comparan el valor del ACU 2 con el valor depositado en el ACU 1 de acuerdo
con los criterios expuestos en la tabla 11-1.
El resultado de la comparacin es un dgito binario, es decir, un 1 o un 0. Un
1 significa que el resultado de la comparacin es verdadero, mientras que un 0
significa que el resultado de la comparacin es falso (v. tabla 11-2). Este resultado
se encuentra almacenado en el bit de resultado lgico (bit RLO, v. apart. 3.4). Este
resultado puede utilizarse para su posterior procesamiento.
Cuando la CPU ejecuta una operacin de comparacin tambin activa bits de estado. Otras operaciones de la lista de instrucciones (AWL) se encargan de interpretar
los bits de la palabra de estado. La CPU ejecuta operaciones de comparacin independientemente del resultado lgico.
Tabla 11-1

Criterios de comparacin

Tipo de valor numrico


en ACU 2

Criterio de
comparacin
es igual a

==I
==D
==R

no es igual a

<>I
<>D
<>R

es mayor que

>I
>D
>R

Entero (16 bits)


Entero doble (32 bits)

es menor que

Nmero coma flotante (32 bits)

11-2

Smbolo(s) de las
operaciones

<I
<D
<R

es mayor que o igual a

>=I
>=D
>=R

es menor que o igual a

<=I
<=D
<=R

Tipo de valor numrico en


ACU 1

Entero (16 bits)


Entero doble (32 bits)
Nmero coma flotante (32 bits)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de comparacin

11.2 Comparar dos enteros

Descripcin

Tabla 11-2

Las operaciones Comparar enteros comparan dos nmeros enteros de 16 bits y las
operaciones Comparar enteros dobles comparan enteros de 32 bits de acuerdo con
los criterios expuestos en la tabla 11-2. A continuacin de la tabla 11-3 encontrar
un programa de ejemplo.
Operaciones de comparacin (nmeros enteros, 16 y 32 bits)
Explicacin

Operacin
==I

El entero (16 bits) de la palabra baja del ACU 2 es igual al entero (16 bits) de la palabra baja del ACU 1.

==D

El entero doble (32 bits) del ACU 2 es igual al entero doble (32 bits) del ACU 1.

<>I

El entero (16 bits) de la palabra baja del ACU 2 no es igual al entero (16 bits) de la palabra baja del ACU 1.

<>D

El entero doble (32 bits) del ACU 2 no es igual al entero doble (32 bits) del ACU 1.

>I

El entero (16 bits) de la palabra baja del ACU 2 es mayor que el entero (16 bits) de la palabra baja del ACU 1.

>D

El entero doble (32 bits) del ACU 2 es mayor que el entero doble (32 bits) del ACU 1.

<I

El entero (16 bits) de la palabra baja del ACU 2 es menor que el entero (16 bits) de la palabra baja del ACU 1.

<D

El entero doble (32 bits) del ACU 2 es menor que el entero doble (32 bits) del ACU 1.

>=I

El entero (16 bits) de la palabra baja del ACU 2 es mayor o igual al entero (16 bits) de la palabra baja del
ACU 1.
El entero doble (32 bits) del ACU 2 es mayor o igual al entero doble (32 bits) del ACU 1.

>=D
<=I
<=D

El entero (16 bits) de la palabra baja del ACU 2 es menor o igual al entero (16 bits) de la palabra baja del
ACU 1.
El entero doble (32 bits) del ACU 2 es menor o igual al entero doble (32 bits) del ACU 1.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

11-3

Operaciones de comparacin

Activar los bits A1


y A0 de la palabra
de estado

Las operaciones de comparacin de enteros (16 y 32 bits) activan ciertas


combinaciones de los estados de seal de los bits A1 y A0 para indicar qu
condicin se ha cumplido (v. tabla 11-3).
Tabla 11-3

Estados de los bits A1 y A0 tras una operacin de comparacin

Condicin

Ejemplo

Estado de seal de
A1 y A0:

Posible consulta tras las


operaciones

A1

A0

U, O, X, UN, ON, XN

ACU2>ACU1

>0

ACU2<ACU1

<0

ACU2=ACU1

==0

ACU2<>ACU1

<>0

ACU2>=ACU1

>=0

ACU2<=ACU1

<=0

El programa de ejemplo siguiente muestra cmo funcionan las operaciones de comparacin de enteros (16 bits).

AWL

Explicacin

L MW10

Cargar el contenido de la palabra de marcas MW10 en el ACU 1.

Cargar el contenido de la palabra de entrada EW0 en el ACU 1.


El antiguo contenido del ACU 1 se desplaza al ACU 2.

EW0

==I

Comparar el valor de la palabra abaja del ACU 2 con el valor


de la palabra baja del ACU 1 para ver si son iguales.

La salida A 4.0

A 4.0

>I

lleva corriente si MW10 y EW0 son iguales.

Comparar el valor de la palabra baja del ACU 2 con el valor de


la palabra del ACU1 para ver si es mayor que el valor de la
palabra baja del ACU 1.
A 4.1
La salida A 4.1 lleva corriente si MW10 es mayor que EW0.

<I

A 4.2

Comparar el valor de la palabra baja del ACU 2 con el valor de


la palabra baja del ACU1 para ver si es menor que el valor de
la palabra baja del ACU 1.
La salida A 4.2 lleva corriente si MW10 es menor que EW0.

11-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de comparacin

11.3 Comparar dos nmeros en coma flotante

Descripcin

Las operaciones de comparacin de nmeros en coma flotante comparan dos


nmeros en coma flotante (32 bits IEEE-FP) de acuerdo con los criterios expuestos
en la tabla 11-4. Puesto que los nmeros en coma flotante de 32 bits IEEE-FP
pertenecen al tipo de datos denominado REAL, la abreviatura de estas
operaciones es R.
Tabla 11-4

Operaciones de comparacin (nmeros en coma flotante, 32 bits, IEEE-FP)

Operacin

Activar los bits de


la palabra de
estado

Explicacin

==R

El nmero en coma flotante de 32 bits IEEE-FP del ACU 2 es igual al nmero


en coma flotante de 32 bits IEEE-FP del ACU 1.

<>R

El nmero en coma flotante de 32 bits IEEE-FP del ACU 2 no es igual al


nmero en coma flotante de 32 bits IEEE-FP del ACU 1.

>R

El nmero en coma flotante de 32 bits IEEE-FP del ACU 2 es mayor que el


nmero en coma flotante de 32 bits IEEE-FP del ACU 1.

<R

El nmero en coma flotante de 32 bits IEEE-FP del ACU 2 es menor que el


nmero en coma flotante de 32 bits IEEE-FP del ACU 1.

>=R

El nmero en coma flotante de 32 bits IEEE-FP del ACU 2 es mayor o igual al


nmero en coma flotante de 32 bits IEEE-FP del ACU 1.

<=R

El nmero en coma flotante de 32 bits IEEE-FP del ACU 2 es menor o igual al


nmero en coma flotante de 32 bits IEEE-FP del ACU 1.

Las operaciones de comparacin de nmeros en coma flotante (32 bits, IEEE-FP)


activan determinadas combinaciones de los estados de seal de los bits A1, A0, OV
y OS de la palabra de estado para indicar qu condicin se ha cumplido (v. tabla 11-5).
Tabla 11-5

Estados de los bits de la palabra de estado tras una operacin de comparacin


con nmeros en coma flotante (32 bits, IEEEFP)

Condicin

A1

A0

OV

OS

==

no aplicable

<>

no aplicable

>

no aplicable

<

no aplicable

>=

no aplicable

<=

no aplicable

UO

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

11-5

Operaciones de comparacin

Evaluar los bits de


la palabra de estado

Otras operaciones de la lista de instrucciones (AWL) se encargan de evaluar los bits


de la palabra de estado (v. apt. 5.3 y tabla 11-6).
Tabla 11-6

Operaciones que evalan los bits de la palabra de estado A1, A0, OV y OS

Operacin
U,O,X,UN,ON,XN

Ejemplo

Referencia a los bits de estado o meta


>0, <0, <>0, >=0, <=0, ==0, UO, OV, OS

Apartado
5.3

SPU

<meta>

16.4

SPZ

<meta>

16.5

SPN

<meta>

16.5

SPP

<meta>

16.5

SPM

<meta>

16.5

SPMZ

<meta>

16.5

SPPZ

<meta>

16.5

En el siguiente ejemplo se muestra cmo funcionan las operaciones de comparacin


con nmeros en coma flotante (32 bits, IEEEFP).

AWL

Explicacin

L MD24

Cargar el contenido de la palabra doble de marcas MD24 en el


ACU 1.

Cargar el valor 1 como nmero en coma flotante de 32 bits en


el ACU 1.
El antiguo contenido del ACU 1 se desplaza al ACU 2.

+1.00E+00

>R

Comparar el valor del ACU 2 con el valor del ACU 1 para ver si
es mayor que el valor del ACU 1.
A 4.1

<R
=

La salida A 4.1 lleva corriente si MD24 es mayor que 1.


Comparar el valor del ACU 2 con el valor del ACU 1 para ver si
es menor que el ACU 1.

A 4.2
La salida A 4.2 lleva corriente si MD24 es menor que 1.

11-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12

Operaciones de conversin

Indice del
captulo

Apartado

Tema

Pgina

12.1

Convertir nmeros decimales codificados en binario y enteros

12-2

12.2

Convertir nmeros en coma flotante de 32 bits en enteros de 32 bits

12-8

12.3

Invertir el orden de bytes en el ACU 1

12-13

12.4

Formar complementos y cambiar el signo de un nmero en coma


flotante

12-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-1

Operaciones de conversin

12.1 Convertir nmeros decimales codificados en binario y enteros

Descripcin

Las siguientes operaciones se utilizan para convertir nmeros decimales codificados


en binario y enteros a otros tipos de nmeros:
Nemotcnica

12-2

Operacin

Significado

BTI

Convertir de BCD a
entero de 16 bits

Esta operacin convierte el valor BCD depositado en la


palabra baja del ACU 1 en un entero de 16 bits.

BTD

Convertir de BCD a
entero de 32 bits

Esta operacin convierte el valor BCD depositado en el


ACU 1 en un entero doble (32 bits).

ITB

Convertir de entero a
BCD

Esta operacin convierte el entero de 16 bits depositado en


la palabra baja del ACU 1 en un valor BCD.

ITD

Convertir de entero a
entero de 32 bits

Esta operacin convierte el entero de 16 bits depositado en


la palabra baja del ACU 1 en un entero doble (32 bits).

DTB

Convertir de entero
de 32 bits a BCD

Esta operacin convierte el entero doble (32 bits) depositado


en el ACU 1 en un valor BCD.

DTR

Convertir de doble
entero a nmero en
coma flotante

Esta operacin convierte el entero de 32 bits depositado en


el ACU 1 en un nmero en coma flotante de 32 bits
IEEE-FP.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de conversin

Convertir de BCD
a entero (16 bits):
BTI

La operacin BTI convierte el nmero decimal de tres dgitos codificado en binario


(nmero BCD, v. fig. 12-1) depositado en la palabra baja del ACU 1 en un entero de
16 bits. El nmero BCD puede encontrarse en el margen de -999 a +999. El
resultado de la conversin se almacena en la palabra baja del ACU 1.
15 14 13 12
V

11 10 9

V
102

101

Centenas

100

Decenas

Unidades

Valor del nmero BCD


Estos bits no se utilizan en la conversin
Signo: 0 significa positivo, 1 significa negativo
Figura 12-1

Estructura de un nmero BCD a convertir en entero

Si uno de los dgitos del nmero BCD se encuentra en el margen no vlido de 10 a


15, se produce un error BCDF al intentar convertirlo. En este caso, se presenta una
de las siguientes situaciones:

S La CPU pasa a modo STOP. En el bfer de diagnstico se registra un error de


conversin BCD con nmero de evento 2521.

S Si se ha programado el OB121, se llama a este OB.


El siguiente programa de ejemplo contiene la operacin BTI. La figura 12-2 muestra
cmo funciona esta operacin.

AWL

Explicacin

Cargar el valor BCD de la palabra de marcas MW10 en el ACU 1.

MW10

BTI

Convertir el valor BCD en un entero de 16 bits y almacenar el


resultado en el ACU 1.

Transferir el resultado a la palabra de marcas MW20.

MW20

15...
L MW10

MW10

BTI
T MW20

Figura 12-2

1
...8

7...

5
...0

+915 BCD

+915 entero

de BCD a entero
MW20

Conversin de un nmero BCD en un entero de 16 bits con la operacin BTI

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-3

Operaciones de conversin

Convertir de BCD
a entero doble
(32 bits): BTD

La operacin BTD convierte el nmero BCD de siete dgitos (nmero BCD,


v. fig. 12-3) depositado en el ACU 1 en un entero doble (32 bits). El nmero BCD
ha de encontrarse en el margen de -9.999.999 a +9.999.999. El resultado de la
conversin se almacena en el ACU 1.
Si una de las cifras del nmero BCD se encuentra en el margen no vlido de 10 a
15, se produce un error BCDF al intentar convertirlo. En este caso, se presenta una
de las siguientes situaciones:

S La CPU pasa a modo STOP. En el bfer de diagnstico se registra un error de


conversin BCD con nmero de evento 2521.

S Si se ha programado OB121, se llama a dicho OB.

31...

...16 15...

...0

VVVV
106

105

104

103

102

101

100

Valor del nmero BCD


Estos bits no se utilizan en la conversin
Signo: 0 significa positivo, 1 significa negativo
Figura 12-3

Estructura de un nmero BCD de 32 bits a convertir en un entero doble

El siguiente programa de ejemplo contiene la operacin BTD. La figura 12-4 muestra cmo funciona esta operacin.

AWL

Explicacin

Cargar el valor BCD de la palabra doble de marcas MD10 en el


ACU 1.

MD10

BTD

Convertir el valor BCD en un entero doble (32 bits) y


almacenar el resultado en el ACU 1.

Transferir el resultado a la palabra doble de marcas MD20.

MD20

+
31...
L MD10

MD10

BTD
T MD20

Figura 12-4

12-4

...16 15...

...0

0000 0000 0001 0101 0111 1000 0010 0001

157821

de BCD a entero
MD20

0000 0000 0000 0010 0110 1000 0111 1101

+157821

Conversin de un nmero BCD en un entero doble (32 bits) con la operacin BTD

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de conversin

Convertir de
entero (16 bits)
a BCD: ITB

La operacin ITB convierte el entero de 16 bits depositado en la palabra baja del


ACU 1 en un nmero decimal de tres dgitos codificado en binario. El nmero BCD
puede encontrarse en el margen de -999 a +999. El resultado de la conversin se
almacena en la palabra baja del ACU 1.
Si el entero es demasiado grande para poder representarlo en formato BCD, no se
efecta la conversin. En este caso, el bit OV (desbordamiento) y el bit OS (desbordamiento memorizado) de la palabra de estado (v. apartado 3.4) se ponen a 1.
El siguiente programa de ejemplo contiene la operacin ITB. La figura 12-5 muestra
cmo funciona esta operacin.

AWL

Explicacin

Cargar el valor entero de 16 bits de la palabra de marcas MW10


en el ACU 1.

MW10

ITB

Convertir el entero de 16 bits en un valor BCD y almacenar el


resultado en el ACU 1.

Transferir el resultado a la palabra de marcas MW20.

MW20

15...
L MW10

MW10

ITB
T MW20

7...

...0
1

-413 entero

-413 BCD

de entero a BCD
MW20

-
Figura 12-5

...8

Conversin de un entero de 16 bits en un nmero BCD con la operacin ITB

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-5

Operaciones de conversin

Convertir de
entero (16 bits)
a entero doble
(32 bits) : ITD

La operacin ITD convierte el entero de 16 bits depositado en la palabra baja del


ACU 1 en un entero de 32 bits. El resultado de la conversin se almacena en el
ACU 1. El siguiente programa de ejemplo contiene la operacin ITD. La figura 12-6
muestra cmo funciona esta operacin.

AWL

Explicacin

Cargar el valor entero de 16 bits de la palabra de marcas MW10


en el ACU 1.
Convertir el valor entero de 16 bits en un entero doble
(32 bits) y almacenar el resultado en el ACU 1.
Transferir el resultado a la palabra doble de marcas MD20.

MW10

ITD
T

MD20

15...
L MW10

MW10

...0

1111 1111 1111 0110

ITD

de entero (16 Bit) a entero (32 Bit)


...16 15...

31...
T MD20
Figura 12-6

MD20

-10
entero

...0

1111 1111 1111 1111 1111 1111 1111

0 1 1 0 -10
entero

Conversin de un entero de 16 bits en un entero doble (32 bits) con la operacin ITD

Convertir de
entero doble
(32 bits) a BCD :
DTB

La operacin DTB convierte el entero doble (32 bits) depositado en el ACU 1 en un


valor decimal de siete dgitos codificado en binario . El nmero BCD ha de
encontrarse en el margen de -9.999.999 a +9.999.999. El resultado de la conversin
se almacena en el ACU 1.
Si el entero doble (32 bits) es demasiado grande para poder representarlo en formato
BCD, no se efecta la conversin. En este caso, el bit OV (desbordamiento) y el bit
OS (desbordamiento memorizado) de la palabra de estado (v. apt. 3.4) se ponen a
1.
El siguiente programa de ejemplo contiene la operacin DTB. La figura 12-7 muestra cmo funciona esta operacin.

AWL

Explicacin

Cargar el entero doble (32 bits) de la palabra doble de


marcas MD10 en el ACU 1.
Convertir el entero doble (32 bits) en un valor BCD y
almacenar el resultado en el ACU 1.
Transferir el resultado a la palabra doble de marcas MD20.

MD10

DTB
T

MD20

31...
L MD10

MD10

...16 15...

1111 1111 1111 1111 1111 1101 0100 0011

DTB
T MD20

12-6

-701 entero

de entero a BCD
MD20

1111 0000 0000 0000 0000 0111 0000 0001


-

Figura 12-7

...0

-701
BCD

Conversin de un entero doble (32 bits) en un nmero BCD con la operacin DTB

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de conversin

Convertir de
entero doble
(32 bits) a nmero
en coma flotante
(32 bits, IEEE-FP) :
DTR

La operacin Convertir de entero doble a nmero en coma flotante (DTR) convierte


el entero doble (32 bits) depositado en el ACU 1 en un nmero en coma flotante de
32 bits IEEE-FP. Si es necesario se redondea el resultado. El resultado de la
conversin se almacena en el ACU 1. El siguiente programa de ejemplo contiene la
operacin DTR. La figura 12-8 muestra cmo funciona esta operacin.

AWL

Explicacin

Cargar el entero doble (32 bits) de la palabra doble de


marcas MD10 en el ACU 1.

MD10

DTR

Convertir el entero doble (32 bits) en un valor en coma


flotante de 32 bits IEEE-FP y almacenar el resultado en
el ACU 1.

MD20
Transferir el resultado a la palabra doble de marcas MD20.

L MD10

MD10

0000 0000 0000 0000 0000 0001 1111 0100


de entero (32 bits) a coma flotante (IEEE)

DTR
31 30...
T MD20

+500
entero

MD20

...0

22...

0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +500 IEEE
Exponente de 8 bits

Mantisa de 32 bits

1 bit
signo de la mantisa
Figura 12-8

Conversin de un entero doble (32 bits) en un nmero en coma flotante de 32 bits IEEE-FP con la operacin
DTR

La figura 12-13 al final del apartado 12.2 ofrece un esquema de las operaciones de
conversin que se pueden realizar.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-7

Operaciones de conversin

12.2 Convertir nmeros en coma flotante de 32 bits en enteros de 32 bits

Descripcin

Para convertir un nmero en coma flotante de 32 bits IEEE-FP en un entero de


32 bits (entero doble) se utilizan las operaciones descritas a continuacin. Las operaciones difieren en el mtodo de redondeo.
Nemotcnica

Operacin

Significado

RND

Redondear a entero

Esta operacin redondea el nmero convertido al prximo


entero. Si la fraccin del nmero convertido se encuentra
exactamente entre un resultado par y un resultado impar, la
operacin elige el resultado par.

RND+

Redondear al
Esta operacin redondea el nmero convertido al prximo
prximo entero doble entero inferior que sea menor o igual al nmero en coma
superior
flotante convertido.

RND-

Redondear al
Esta operacin redondea el nmero convertido al prximo
prximo entero doble entero superior que sea menor o igual al nmero
inferior
convertido.

TRUNC

Truncar

Esta operacin convierte la parte entera del nmero en


coma flotante.

El resultado de la conversin se almacena en el ACU 1. Si el nmero a convertir no


es un nmero en coma flotante, o bien es un nmero en coma flotante que no se
puede representar como entero doble (32 bits), en lugar de efectuarse la conversin,
se indica un desbordamiento.

12-8

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de conversin

Redondear a
entero: RND

La operacin RND convierte el nmero en coma flotante de 32 bits IEEE-FP


depositado en el ACU 1 en un entero de 32 bits (entero doble) y lo redondea al
nmero entero ms prximo. Si la fraccin del nmero convertido se encuentra
entre un resultado par y un resultado impar, la operacin elige el resultado par. El
siguiente programa de ejemplo contiene la operacin RND. La figura 12-9 muestra
cmo funciona esta operacin.

AWL

Explicacin

Cargar el valor en coma flotante de 32 bits IEEE-FP de


la palabra doble de marcas MD10 en el ACU 1.

MD10

RND

Convertir el nmero en coma flotante de 32 bits en un entero


doble (32 bits), redondearlo al nmero entero ms prximo y
almacenar el resultado en el ACU 1.

Transferir el resultado a la palabra doble de marcas MD20.

MD20

31 30...
L MD10

MD10

0 100 0010 1

100 1001 0000 0000 0000 0000

RND
T MD20

MD20

0000 0000 0000 0000 0000 0000 0110 0100

MD10

Figura 12-9

+100
entero

...0

22...

1 100 0010 1 100 1001 0000 0000 0000 0000

RND
T MD20

+100.5
IEEE

de IEEE a entero (32 bits)

31 30...
L MD10

...0

22...

-100.5
IEEE

de IEEE a entero (32 bits)


MD20

1111 1111 1111 1111 1111 1111

1001 1100

-100
entero

Conversin de un nmero en coma flotante de 32 bits IEEE-FP en un entero doble (32 bits) con la operacin
RND

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-9

Operaciones de conversin

Redondear al
prximo entero
doble superior
(32 bits): RND+

La operacin RND+ convierte el nmero en coma flotante de 32 bits IEEE-FP


depositado en el ACU 1 en un entero de 32 bits (doble entero). La operacin
redondea el nmero convertido al nmero entero inferior, que sea mayor o igual al
nmero en coma flotante convertido. El programa de ejemplo siguiente contiene la
operacin RND+. La figura 12-10 muestra cmo funciona esta operacin.

AWL

Explicacin

Cargar el valor en coma flotante de 32 bits IEEE-FP de


la palabra doble de marcas MD10 en el ACU 1.

MD10

RND+

Convertir el nmero en coma flotante de 32 bits en un entero


doble (32 bits). Redondear al prximo entero inferior, que sea
mayor o igual al nmero en coma flotante convertido y
almacenar el resultado en el ACU 1.

Transferir el resultado a la palabra doble de marcas MD20.

MD20

31 30...
L MD10

MD10

0 100 0010 1

100 1001 0000 0000 0000 0000

RND+
MD20

L MD10

MD10

0000 0000 0000 0000 0000 0000 0110 0101

31 30...

RND+

Figura 12-10

12-10

+100.5
IEEE

de IEEE a entero (32 bits)

T MD20

T MD20

...0

22...

1 100 0010 1

+101
entero

...0

22...

100 1001 0000 0000 0000 0000

-100.5
IEEE

de IEEE a entero (32 bits)


MD20

1111 1111 1111 1111 1111 1111

1001 1100

-100
entero

Conversin de un nmero en coma flotante de 32 bits IEEE-FP en un entero doble (32 bits) con la operacin
RND+

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de conversin

Redondear al
prximo entero
doble inferior
(32 bits): RND

La operacin Redondear al prximo entero doble inferior (RND-) convierte el


nmero en coma flotante de 32 bits IEEE-FP depositado en el ACU 1 en un entero
doble (32 bits). La operacin redondea el nmero convertido al prximo entero
superior, que sea mayor o igual al nmero en coma flotante convertido. El siguiente
programa de ejemplo contiene la operacin RND-. La figura 12-11 muestra cmo
funciona esta operacin.

AWL

Explicacin

Cargar el valor en coma flotante de 32 bits IEEE-FP de


la palabra doble de marcas MD10 en el ACU 1.

MD10

RND-

Convertir el nmero en coma flotante de 32 bits en un entero


doble (32 bits). Redondear al entero ms grande que sea mayor
o igual al nmero en coma flotante convertido y almacenar el
resultado en el ACU 1.

Transferir el resultado a la palabra doble de marcas MD20.

MD20

31 30...
L MD10

MD10

0 100 0010 1

100 1001 0000 0000 0000 0000

RNDT MD20

MD20

0000 0000 0000 0000 0000 0000 0110 0100

MD10

1 100 0010 1

Figura 12-11

+100
entero

...0

22...

100 1001 0000 0000 0000 0000

-100.5
IEEE

de IEEE a entero (32 bits)

RNDT MD20

+100.5
IEEE

de IEEE a entero (32 bits)

31 30...
L MD10

...0

22...

MD20

1111 1111 1111 1111 1111 1111

1001 1011

-101
entero

Conversin de un nmero en coma flotante de 32 bits IEEE-FP en un entero doble (32 bits) con la operacin
RND-

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-11

Operaciones de conversin

Truncar: TRUNC

La operacin TRUNC convierte un nmero en coma flotante de 32 bits IEEE-FP


depositado en el ACU 1 en un entero de 32 bits (entero doble). La operacin convierte
la parte entera del nmero en coma flotante. El siguiente programa de ejemplo contiene
la operacin TRUNC. La figura 12-12 muestra cmo funciona esta operacin.

AWL

Explicacin

Cargar el valor en coma flotante de 32 bits IEEE-FP de la


palabra doble de marcas MD10 en el ACU 1.
Convertir el nmero en coma flotante de 32 bits en un entero
doble (32 bits). Redondear al entero que sea menor o igual
al nmero en coma flotante convertido y almacenar el
resultado en el ACU 1.
Transferir el resultado a la palabra doble de marcas MD20.

MD10

RND-

MD20

31 30...
L MD10

MD10

100 1001 0000 0000 0000 0000

TRUNC
T MD20

MD20

MD10

Figura 12-12

...0

22...

1 100 0010 1

100 1001 0000 0000 0000 0000

-100.5
IEEE

de IEEE a entero (32 bits)


MD20

1111 1111 1111 1111 1111 1111

1001 1100

-100
entero

Conversin de un nmero en coma flotante de 32 bits IEEE-FP en un entero doble (32 bits) con la operacin
TRUNC

Resumen de las
operaciones de
conversin

La figura 12-13 muestra un esquema de las operaciones de conversin y de


redondeo (v. apts. 12.1 y 12.2).

BCD
3 pos.

BTI
ITB

7 pos.

Figura 12-13

Entero
16 bits
32 bits

BTD
DTB

12-12

+100
entero

0000 0000 0000 0000 0000 0000 0110 0100

TRUNC
T MD20

+100.5
IEEE

de IEEE a entero (32 bits)

31 30...
L MD10

...0

22...

0 100 0010 1

Coma flotante
ITD
DTR

32 bits
IEEE

RND, RND+, RND-,


TRUNC

Esquema de las operaciones de conversin y redondeo

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de conversin

12.3 Invertir el orden de los bytes en el ACU 1

Descripcin

Las siguientes operaciones permiten cambiar la secuencia de bytes de la palabra


baja del ACU 1 o de todo el acumulador:

S TAW: Invertir secuencia en ACU 1, 16 bits


S TAD: Invertir secuencia en ACU 1, 32 bits
TAW

La operacin TAW invierte el orden de los bytes de la palabra baja depositado en el


ACU 1 (v. fig. 12-14).

31...
L MD10

...16 15...

...0

MD10

0101 1111 1010 0000 1111 1010 0101 0000

MD20

0101 1111 1010 0000 0101 0000 1111 1010

TAW
T MD20

Figura 12-14

TAD

Inversin del orden de los bytes de la palabra baja del ACU 1 con la operacin TAW

La operacin TAD invierte el orden de los bytes de todo el ACU 1 (v. fig. 12-15).

31...
L MD10

...16 15...

...0

MD10

0101 1111 1010 0000 1111 1010 0101 0000

MD20

0101 0000 1111 1010 1010 0000 0101 1111

TAD

T MD20
Figura 12-15

Inversin del orden de los bytes del ACU 1 con la operacin TAD

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-13

Operaciones de conversin

12.4 Formar complementos de nmeros enteros y cambiar el signo de un nmero en coma flotante

Descripcin

Cuando se forma el complemento a uno de un nmero depositado en el acumulador se invierte el nmero bit por bit, es decir los ceros se convierten en unos y los
unos se convierten en ceros.
Cuando se forma el complemento a dos de un entero depositado en el acumulador tambin se invierte el nmero bit por bit, es decir, los ceros se convierten en uno y los unos
en ceros. Luego se suma un +1 al contenido del acumulador. Formar el complemento a
dos de un entero equivale a multiplicar el nmero por -1. Cuando se cambia el signo de
un nmero en coma flotante, se invierte el bit de signo.
Para formar complementos de nmeros enteros o para cambiar el signo de un nmero en coma flotante se utilizan las siguientes operaciones:
Nemotcnica

12-14

Operacin

Significado

INVI

Complemento a uno
de entero (16 bits)

Esta operacin forma el complemento a uno del valor de


16 bits depositado en la palabra baja del ACU 1. El
resultado se almacena en la palabra baja del ACU 1
(v. fig. 12-16)

INVD

Complemento a uno
de entero doble (32
bits)

Esta operacin forma el complemento a uno del valor de


32 bits depositado en el ACU 1. El resultado se almacena en
el ACU 1.

NEGI

Complemento a dos
de entero (16 bits)

Esta operacin forma el complemento a dos del valor de


16 bits depositado en la palabra baja del ACU 1, es decir, lo
multiplica por -1. El resultado se almacena en la palabra baja
del ACU 1 (v. fig. 12-17). En la palabra de estado (v. apt.
3.4), la operacin NEGI activa los bits A1, A0, OV y OS.

NEGD

Complemento a dos
de entero doble
(32 bits)

Esta operacin forma el complemento a dos del valor de 32


bits depositado en el ACU 1, es decir, lo multiplica por -1.
El resultado se almacena en el ACU 1. En la palabra de estado (v. apt. 3.4), la operacin NEGI activa los bits A1, A0,
OV y OS.

NEGR

Complemento a dos
de nmero en coma
flotante (32 bits,
IEEE-FP)

Esta operacin invierte el bit de signo del valor en coma


flotante de 32 bits IEEE-FP depositado en el ACU 1
(v. fig. 12-18).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de conversin

Programa AWL
L DBW30
INVI
T DBW32

Cargar el valor de la palabra de datos DBW30 en la palabra baja del ACU1.


Formar el complemento a uno del valor depositado en la palabra baja del ACU 1.
Transferir el contenido de la palabra baja del ACU 1 a la palabra de datos DBW32.
Patrn de bits

L DBW30

INVI

Complemento a uno de entero


1

T DBW32

Figura 12-16

Formar el complemento a uno de entero (16 bits)

Programa AWL
L DBW40
NEGI
T DBW42

Cargar el valor de la palabra de datos DBW40 en la palabra baja del ACU1.


Formar el complemento a dos del valor depositado en la palabra baja del ACU 1.
Transferir el contenido de la palabra baja del ACU 1 a la palabra de datos DBW42.
Configuracin binaria

L DBW40

23.864
Entero

-23.864
Entero

Complemento a dos de entero

NEGI
T DBW42

Figura 12-17

Formar el complemento a dos de entero (16 bits)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-15

Operaciones de conversin

Valor decimal 10.0


Valor hexadecimal
4
Bits

31

28 27

2
24 23

0
20 19

0
16 15

0
12 11

0
8 7

0
4 3

0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Signo de la
mantisa: s
(1 bit)

Exponente: e
(8 bits)

Mantisa: f
(23 bits)

e = 27 + 21 = 130
1.f  2e-bias = 1,25  23 = 10,0
[1,25  2(130-127) = 1,25  23 = 10,0]

f = 2-2 = 0,25

Programa AWL
L DBD62
NEGR
T DBD66

L DBD62

Cargar el valor de la palabra doble de datos DBD62 en el ACU1.


Invertir el signo del valor depositado en el ACU 1.
Transferir el contenido del ACU 1 a la palabra doble de datos DBD66.

0 1 0 0 0 0 01 0 0 1 0

NEGR

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Invertir el signo de un nmero en coma flotante

T DBD66 1 1 0 0 0 0 0 1 0 0 1 0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Signo de la mantisa (0 = positivo, 1 = negativo)

Figura 12-18

12-16

Invertir el signo de un nmero en coma flotante

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con palabras

Indice del
captulo

Apartado

Tema

13
Pgina

13.1

Resumen breve

13-2

13.2

Operaciones lgicas con palabras (16 bits)

13-3

13.3

Operaciones lgicas con palabras (32 bits)

13-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

13-1

Operaciones lgicas con palabras

13.1 Resumen breve

Descripcin

Las operaciones lgicas con palabras combinan pares de palabras (16 bits) o
palabras dobles (32 bits) bit por bit de acuerdo con la lgica de Boole. Cada palabra
o palabra doble debe encontrarse en uno de ambos acumuladores.

Gestin de
acumuladores

En las operaciones con palabras se combina el contenido de la palabra baja del


ACU 2 con el contenido de la palabra baja del ACU 1. El resultado lgico se
almacena en la palabra baja del ACU 1, sobreescribiendo el antiguo contenido.
En las operaciones con palabras dobles se combina el contenido del ACU 2 con el
contenido del ACU 1. El resultado lgico se almacena en el ACU 1, sobreescribiendo el antiguo contenido.

Influencia sobre
los bits de la
palabra de estado

Si el resultado lgico es 0, el bit A1 de la palabra de estado se pone a 0. Si el


resultado no es igual a 0, el bit A1 se pone a 1. Los bits A0 y OV de la palabra
de estado se ponen en ambos casos a 0.

Operaciones
disponibles

Para ejecutar operaciones lgicas con palabras se dispone de las siguientes


operaciones:
Nemotcnica

Constantes como
operandos

Operacin

Significado

UW

Y con palabra

Combina dos palabras bit por bit de acuerdo


con la tabla de verdad Y

OW

O con palabra

Combina dos palabras bit por bit de acuerdo


con la tabla de verdad O

XOW

O-exclusiva con palabra

Combina dos palabras bit por bit de acuerdo


con la tabla de verdad O-exclusiva

UD

Y con palabra doble

Combina dos palabras dobles bit por bit de


acuerdo con la tabla de verdad Y

OD

O con palabra doble

Combina dos palabras dobles bit por bit de


acuerdo con la tabla de verdad O

XOD

O-exclusiva con palabra


doble

Combina dos palabras dobles bit por bit de


acuerdo con la tabla de verdad O-exclusiva

Las operaciones UW, OW o XOW pueden utilizar una constante de 16 bits como
operando. Estas operaciones combinan el contenido de la palabra baja del ACU 1
con la constante de 16 bits.
Las operaciones UD, OD o XOD pueden utilizar una constante de 32 bits como operando.

13-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con palabras

13.2 Operaciones lgicas con palabras (16 bits)

Descripcin

Las operaciones Y con palabras (16 bits), O con palabras (16 bits) y O-exclusiva con
palabras (UW, OW, XOW) combinan pares de palabras (16 bits) bit por bit segn la
lgica de Boole.
Nemotcnica
UW

OW

XOW

Relacin con los


acumuladores

Operacin

RLO antes de la
ejecucin

Operando

Resultado
en el RLO

Y con palabra

O con palabra

O exclusiva con palabra

En el caso de las operaciones que combinan palabras de 16 bits se combina el


contenido de la palabra baja del ACU 2 con el contenido de la palabra baja del
ACU 1. El resultado de la combinacin se almacena en la palabra baja del ACU 1
perdindose el antiguo contenido del ACU 1. El contenido de la palabra alta del
ACU 1 y de ambas palabras del ACU 2 permanece inalterado (v. fig. 13-1).

Contenido del acumulador


antes de la operacin lgica

Contenido del acumulador


despus de la operacin lgica

ACU 2
31
16 15
IV
III

ACU 2
0

ACU 1
31
II

16 15
I

Combinacin
UW, OW, XOW

IV

III

ACU 1
II

III c. I
c=combinado con

Figura 13-1

Combinacin del contenido de las palabra bajas de los ACUs 2 y 1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

13-3

Operaciones lgicas con palabras

Ejemplo de la
operacin UW

El siguiente programa de ejemplo contiene la operacin UW.


La figura 13-2 muestra cmo trabaja esta operacin.

AWL

Explicacin

L MW10

Cargar el contenido de la palabra de marcas MW10 en el ACU 1.

Cargar el contenido de la palabra de marcas MW20 en el ACU 1.


El antiguo contenido del ACU 1 se desplaza al ACU 2.

MW20

UW

El contenido de la palabra baja del ACU 2 se combina bit por


bit con el contenido de la palabra baja del ACU 1 de acuerdo
con la tabla de verdad Y. El resultado se almacena en la
palabra baja del ACU 1.
MW24

Transferir el contenido del ACU 1 a la palabra de marcas MW24.

15...

...8

7...

...0

MW10

MW20

Y bit por bit


MW24

Figura 13-2

Combinar
acumuladores y
constantes

Combinacin de dos palabras con la operacin UW

Las operaciones UW, OW o XOW pueden utilizar una constante de 16 bits como
operando. Las operaciones combinan el contenido de la palabra baja del ACU 1 con
la constante de 16 bits indicada en la instruccin. El resultado de la combinacin se
almacena en la palabra baja del ACU 1. El ACU 2 y la palabra alta del ACU 1
permanecen inalterados (v. fig. 13-3).
Contenido del acumulador
despus de la operacin lgica

Contenido del acumulador


antes de la operacin lgica

ACU 2

ACU 2
31
16 15
IV
III

ACU 1
31
II

16 15
I

Combinacin
UW2#, OW2#,
XOW2#

IV

III

ACU 1
II

I v. 2#

c=combinado con

Figura 13-3

13-4

Combinacin de la palabra baja del ACU 1 con una constante de 16 bits

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con palabras

Ejemplo de la
operacin UW con
una costante

El siguiente programa de ejemplo contiene la operacin UW que efecta una


combinacin lgica con la constante de 16 bits indicada en la instruccin. La
figura 13-4 muestra cmo funciona esta operacin.

AWL

Explicacin

L MW10

Cargar el contenido de la palabra de marcas MW10 en


el ACU 1.

UW 2#1010_1010_0101_0101

El contenido de la palabra baja del ACU 1 se combina


bit por bit con 1010_1010_0101_0101 de acuerdo con
la tabla de verdad Y.
El resultado se almacena en la palabra baja del
ACU 1.

Transferir el contenido del ACU 1 a la palabra de


marcas MW24.

MW24

15...

...8

7...

...0

MW10

Valor de la instruccin
UW

Y bit por bit


MW24

Figura 13-4

Operacin UW con una constante de 16 bits

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

13-5

Operaciones lgicas con palabras

13.3 Operaciones lgicas con palabras (32 bits)

Descripcin

Las operaciones Y con palabra doble, O con palabra doble y O-exclusiva con
palabra doble (UW, OW XOD) combinan pares de palabras (32 bits) bit por bit
segn la lgica de Boole.
Nemotcnica
UD

OD

XOD

Relacin con los


acumuladores

Operacin

RLO antes de la
ejecucin

Operando

Resultado
en el RLO

Palabra doble Y

Palabra doble O

Palabra doble O exclusiva

En el caso de las operaciones que combinan palabras de 32 bits, se combina el


contenido del ACU 2 con el contenido del ACU 1. El resultado de la combinacin
se almacena en la palabra baja del ACU 1, sobreescribiendo el antiguo contenido. El
contenido del ACU 2 permanece inalterado (v. fig. 13-5).
Contenido del acumulador
despus de la operacin lgica

Contenido del acumulador


antes de la operacin lgica
ACU 2
31
16 15
IV
III

ACU 1
31
16 15
II
I

ACU 2
Combinacin

IV

III

UD, OD, XOD ACU 1


IV v. II

III v. I

c=combinado con
Figura 13-5

13-6

Combinacin del contenido de los ACUs 2 y 1

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con palabras

Ejemplo de la
operacin UD

El siguiente programa de ejemplo contiene la operacin UD.


La figura 13-6 muestra cmo funciona esta operacin.

AWL

Explicacin

L MD10

Cargar el contenido de la palabra doble de marcas MD10 en el


ACU 1.

Cargar el contenido de la palabra doble de marcas MD20 en el


ACU 1.
El antiguo contenido del ACU 1 se desplaza al ACU 2.

MD20

UD

El contenido del ACU 2 se combina bit por bit con el contenido


del ACU 1 de acuerdo con la tabla de verdad Y. El resultado se
almacena en el ACU 1.
MD24

Transferir el contenido del ACU 1 a la palabra doble de marcas


MD24.

31...

...16 15...

...0

MD10

0110 1001 1000 0001 1000 0000 1010 0111

MD20

1010 1010 1010 1010 0101 0101 0101 0101


Y bit por bit

MD24

Figura 13-6

0010 1000 1000 0000 0000 0000 0000 0101

Operacin UD

Combinar
acumuladores y
constantes

Las operaciones UD, OD o XOD pueden utilizar una constante de 32 bits como
operando. La operacin combina el contenido del ACU 1 con la constante de 32 bits
indicada en la instruccin. El resultado de la combinacin se almacena en la palabra
baja del ACU 1. El ACU 2 permanece inalterado (v. fig. 13-7).
Contenido del acumulador
antes de la operacin lgica

Contenido del acumulador


despus de la operacin lgica

ACU 2
31
16 15

ACU 2

IV

0
Combinacin

III

ACU 1
31
16 15
II
I

UD, OD, XOD


DW#16#

IV

III

ACU 1
II v. DW#16# I v. DW#16#

c=combinado con
Figura 13-7

Combinacin del ACU 1 con una constante de 32 bits

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

13-7

Operaciones lgicas con palabras

Ejemplo de la
operacin UD con
una constante

El siguiente programa de ejemplo contiene la operacin UD que realiza una combinacin lgica con la constante de 32 bits indicada en la instruccin. La figura 13-8
muestra cmo funciona esta operacin.

AWL

Explicacin

L MD10

Cargar el contenido de la palabra doble de marcas MD10 en el


ACU 1.

UD DW16#AAAA_5555

El contenido del ACU 1 se combina bit por bit con


DW#16#AAAA_5555 de acuerdo con la tabla de verdad Y.
El resultado se almacena en el ACU 1.

Transferir el contenido del ACU 1 a la palabra doble de marcas


MD24.

MD24

31...

...16 15...

...0

MD10

0110 1001 1000 0001 1000 0000 1010 0111

Valor de la instruccin UD

1010 1010 1010 1010 0101 0101 0101 0101


Y bit por bit

MD24

Figura 13-8

13-8

0010 1000 1000 0000 0000 0000 0000 0101


Operacin UD con una constante de 32 bits

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de desplazamiento y rotacin

Indice del
captulo

Apartado

Tema

14
Pgina

14.1

Operaciones de desplazamiento

14-2

14.2

Operaciones de rotacin

14-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

14-1

Operaciones de desplazamiento y rotacin

14.1 Operaciones de desplazamiento


Descripcin

Las operaciones de desplazamiento sirven para desplazar el contenido de la palabra


baja del ACU 1 o de todo el acumulador bit por bit a la izquierda o a la derecha. Un
desplazamiento a la izquierda en n bits multiplica el contenido del acumulador por
2n, mientras que un desplazamiento a la derecha en n bits divide el contenido del
acumulador por 2n. Desplazando, por ejemplo, el equivalente binario del valor
decimal 3 tres bits a la izquierda, en el acumulador resulta el equivalente binario
del valor decimal 24. Desplazando el equivalente binario del valor decimal 16 dos
bits a la derecha, resulta el equivalente binario del valor decimal 4 en el
acumulador.
El nmero que sigue a la operacin de desplazamiento o bien el valor depositado en
el byte bajo de la palabra baja del ACU 2 indica el nmero de bits desplazados, es
decir, el nmero de posiciones en que se desplaza a la izquierda o derecha. Las posiciones que quedan vacantes como consecuencia de la operacin de desplazamiento
se rellenan con ceros o con el estado de seal del bit que indica el signo (0 = positivo y 1 = negativo). El ltimo bit desplazado se carga en el bit A1 de la palabra
de estado (v. fig. 2-7). Los bits A0 y OV de la palabra de estado se ponen a 0.
Para evaluar el bit A1 se utilizan las operaciones de salto.
Las operaciones de desplazamiento son absolutas, es decir, que su ejecucin no depende de ninguna condicin especial. Adems no afectan al resultado lgico.

Operaciones de
desplazamiento:
Nmeros sin signo

Las operaciones siguientes desplazan el contenido de la palabra baja del ACU 1 bit
por bit a la izquierda o a la derecha:

S SLW: Desplazar palabra a la izquierda (16 bits)


S SRW: Desplazar palabra a la derecha (16 bits)
Las operaciones siguientes desplazan todo el ACU 1 bit por bit a la izquierda o a la
derecha:

S SLD: Desplazar palabra doble a la izquierda (32 bits)


S SRD: Desplazar palabra doble a la derecha (32 bits)
En todos los casos se rellenan con ceros los bits que hayan quedado libres.

Desplazar palabra
a la izquierda
(16 bits): SLW

El siguiente programa de ejemplo y la figura 14-1 muestra cmo funciona la


operacin SLW. La tabla 14-1 muestra una lista completa de las operaciones de
desplazamiento.

AWL

Explicacin

Cargar el contenido de la palabra de marcas MW10 en la palabra


baja del ACU 1.

MW10

SLW

6
Desplazar los bits de la palabra baja del ACU 1 seis
posiciones hacia la izquierda.

MW20
Transferir el contenido de la palabra baja del ACU 1 a la
palabra de marcas MW20.

14-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de desplazamiento y rotacin

15...
0

0 0

...8

7...

...0
1

6 posiciones
0

Estos 5 bits
se pierden
El ltimo bit desplazado se almacena
en el bit de la palabra de estado A1

Figura 14-1

Las posiciones
vacantes se
rellenan con
ceros

Desplazamiento de los bits de la palabra baja del ACU 1 seis bits a la izquierda

Desplazar palabra
a la derecha
(32 bits): SRD

El siguiente programa de ejemplo y la figura 14-2 muestran cmo funciona la operacin SRD. La tabla 14-1 muestra un resumen de todas las operaciones de desplazamiento.

AWL

Explicacin

+3

Cargar el valor +3 en el ACU 1.

MD10

Cargar el contenido de la palabra doble de marcas MD10 en el


ACU 1. El antiguo contenido del ACU 1 (+3) se desplaza al
ACU 2.

SRD 3

Desplazar los bits del ACU 1 tres posiciones hacia la derecha.

Transferir el contenido del ACU 1 a la palabra doble de marcas


MD20.

MD20

31...

...16 15...

...0

1111 1111 0101 0101 1010 1010 1111 1111


3 posiciones
0001 1111 1110 1010 1011 0101 0101 1111 111
Las posiciones
vacantes se
rellenan con
ceros
Figura 14-2

El ltimo bit desplazado


se almacena en el bit de
la palabra de estado A1

Estos dos bits


se pierden

Desplazamiento de los bits del ACU 1 tres bits a la derecha

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

14-3

Operaciones de desplazamiento y rotacin

Operaciones de
desplazamiento:
Nmeros con
signo

La operacin SSI Desplazar signo de entero (16 bits) desplaza el contenido de la


palabra baja del ACU 1 bit por bit a la derecha, con signo.
La operacin SSD Desplazar signo de entero doble (32 bits) desplaza todo el ACU 1
bit por bit a la derecha, con signo.
El bit de signo se copia a las posiciones de bit vacantes.

Desplazar signo
entero (16 bits):
SSI

El siguiente programa de ejemplo y la figura 14-3 muestran cmo funciona la


operacin SSI. La tabla 14-1 contiene una lista de todas las operaciones de
desplazamiento.

AWL

Explicacin

Cargar el contenido de la palabra de marcas MW10 en la palabra


baja del ACU 1.

MW10

SSI

Desplazar los bits de la palabra baja del ACU 1, incluyendo el


signo, cuatro posiciones hacia la izquierda.

MW20

Transferir el contenido de la palabra baja del ACU 1 a la


palabra de marcas MW20.

15...
1

1 0

Las posiciones vacantes se rellenan con


el estado de seal del
bit de signo.
Figura 14-3

14-4

7...

...0

4 posiciones

Signo
1

...8

El ltimo bit desplazado se


almacena en el bit de la palabra
de estado A1.

Estos tres bits


se pierden

Desplazamiento de los bits de la palabra baja del ACU 1 cuatro bits a la derecha con signo

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de desplazamiento y rotacin

Tabla 14-1
Operacin

1)
2)
3)
4)

5)

Visin de conjunto de las operaciones de desplazamiento


Area afectada

Sentido

Indicacin del nmero de


posiciones a desplazar

Cmo se
rellenan las
posiciones
vacantes

Margen de
desplazamiento 1)

SLW n

Palabra baja del ACU 1

izquierda

en la instruccin

n=0 a 15

SLW

Palabra baja del ACU 1

izquierda

en el byte bajo de la palabra


baja del ACU 2

0 a 255 2)

SLD n

ACU 1

izquierda

en la instruccin

n=0 a 32

SLD

ACU 1

izquierda

en el byte bajo de la palabra


baja del ACU 2

0 a 255 3)

SRW n

Palabra baja del ACU 1

derecha

en la instruccin

n=0 a 15

SRW

Palabra baja del ACU 1

derecha

en el byte bajo de la palabra


baja del ACU 2

0 a 255 2)

SRD n

ACU 1

derecha

en la instruccin

n=0 a 32

SRD

ACU 1

derecha

en el byte bajo de la palabra


baja del ACU 2

0 a 255 3)

SSI n

Palabra baja del ACU 1

derecha

en la instruccin

Bit de signo

n=0 a 15

SSI

Palabra baja del ACU 1

derecha

en el byte bajo de la palabra


baja del ACU 2

Bit de signo

0 a 255 4)

SSD n

ACU 1

derecha

en la instruccin

Bit de signo

n=0 a 32

SSD

ACU 1

derecha

en el byte bajo de la palabra


baja del ACU 2

Bit de signo

0 a 255 5)

Si el nmero de bits desplazados o rotados es 0, la operacin se ejecuta como una operacin nula.
Para los nmeros mayores que 16 el resultado de la operacin de desplazamiento es W#16#0000 y A1 = 0.
Para los nmeros mayores que 32 el resultado de la operacin de desplazamiento es DW#16#0000_0000 y A1 = 0.
Para los nmeros mayores que 15 el resultado de la operacin de desplazamiento es W#16#0000 y A1 = 0 o W#16#FFFF
y A1 = 1, segn el signo (0 1).
Para los nmeros mayores que 31 el resultado de la operacin de desplazamiento es DW#16#0000_0000 (A1 = 0) o
DW#16#FFFF_FFFF (A1 = 1), segn el signo del nmero de bits a desplazar.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

14-5

Operaciones de desplazamiento y rotacin

14.2 Operaciones de rotacin

Descripcin

Las operaciones de rotacin hacen circular todo el contenido del ACU 1 bit por bit a
la izquierda o a la derecha. Las operaciones de rotacin activan funciones similares
a las funciones de desplazamiento descritas en el apartado 14.1. Sin embargo, las
posiciones vacantes se rellenan con los estados de seal de los bits que se desplazan
fuera del acumulador.
El nmero que sigue a la operacin de desplazamiento, o bien un valor del byte bajo
de la palabra baja del ACU 2 indica el nmero de bits que se rotarn.
Dependiendo de la operacin, la rotacin tendr lugar a travs del bit de la palabra
de estado A1 (v. apt. 2.2). El bit de estado A0 se pone a 0.
Las operaciones de rotacin disponibles son:

S RLD: Rotar palabra doble a la izquierda (32 bits)


S RRD: Rotar palabra doble a la derecha (32 bits)
S RLDA: Rotar ACU 1 a la izquierda va A1 (32 bits)
S RRDA: Rotar ACU 1 a la derecha va A1 (32 bits)
Si la cantidad de bits a rotar es 0, la operacin se realizar igual que una operacin
nula.
Tabla 14-2

Vista de conjunto de las operaciones de rotacin


Rotar va A1?

Sentido

RLD n

no

izquierda

en la instruccin

n=0 a 32

RLD

no

izquierda

en el byte bajo de la palabra baja del ACU 2

0 a 255

RRD n

no

derecha

en la instruccin

0 a 32

RRD

no

derecha

en el byte bajo de la palabra baja del ACU 2

0 a 255

RLDA

izquierda

1 (fija)

RRDA

derecha

1 (fija)

Operacin

14-6

Indicacin del nmero de posiciones a


desplazar

Margen de
desplazamiento

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de desplazamiento y rotacin

Rotar palabra
doble a la
izquierda (32 bits):
RLD

La tabla 14-2 muestra una lista completa de las operaciones de rotacin. El siguiente
programa de ejemplo y la figura 14-4 muestran cmo funciona la operacin RLD.

AWL

Explicacin

Cargar el contenido de la palabra doble de marcas MD10 en el


ACU 1.

MD10

RLD
T

Rotar los bits del ACU 1 tres posiciones a la izquierda.

MD20

Transferir el contenido del ACU 1 a la palabra doble de marcas


MD20.

31...

...16 15...

...0

1111 0000 1010 1010 0000 1111 0000 1111


3 posiciones

111

1000 0101 0101 0000 0111 1000 0111 1111


Los tres bits rotados se
insertan en las posiciones
vacantes

Figura 14-4

El ltimo bit rotado tambin se


almacena en A1.

Rotacin de los bits del ACU 1 tres bits a la izquierda

Rotar palabra
doble a la derecha
(32 bits): RRD

El siguiente programa de ejemplo y la figura 14-5 muestran cmo funciona la operacin RRD.

AWL

Explicacin

+3

Cargar el valor +3 en el ACU 1.

MD10

Cargar el contenido de la palabra doble de marcas MD10 en el


ACU 1. El antiguo contenido del ACU 1 (+3) se desplaza al
ACU 2.

RRD

Rotar los bits del ACU 1 tres posiciones a la derecha.

Transferir el contenido del ACU 1 a la palabra doble de marcas


MD20.

MD20

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

14-7

Operaciones de desplazamiento y rotacin

31...

...16 15...

...0

1010 1010 0000 1111 0000 1111 0101 0101


3 posiciones

1011 0101 0100 0001 1110 0001 1110 1010 101

Los tres bits rotados se insertan en


las posiciones vacantes.

El ltimo bit rotado tambin


se almacena en A1.

Figura 14-5

Rotacin de los bits del ACU 1 tres bits a la derecha

Rotar ACU 1 a la
izquierda va A1
(32 bits): RLDA

A1
X

El siguiente programa de ejemplo y la figura 14-6 muestran cmo funciona la


operacin RLDA.

31...

...16 15...

...0

1010 1010 0000 1111 0000 1111 0101 0101


1 posicin

0101 0100 0001 1110 0001 1110 1010 101X

El ltimo bit rotado tambin


se almacena en A1

Figura 14-6

Rotacin del ACU 1 a la izquierda mediante el bit A1 de la palabra de estado

Rotar ACU 1 a la
derecha va A1
(32 bits): RRDA

14-8

El estado de seal del bit A1 se


almacena en la posicin vacante.

La operacin RRDA funciona de forma similar a la operacin RLDA. La nica


diferencia es el sentido de rotacin.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

15

Operaciones con bloques

Indice del
captulo

Apartado

Tema

Pgina

15.1

Abrir bloques de datos

15-2

15.2

Intercambiar registros de bloques de datos

15-2

15.3

Cargar la longitud y el nmero de bloques de datos

15-3

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

15-1

Operaciones con bloques

15.1 Abrir bloques de datos

Descripcin

La operacin AUF (Abrir bloque de datos) sirve para abrir un bloque de datos global
o un bloque de datos de instancia. En el programa pueden estar abiertos simultneamente un bloque de datos global y un bloque de instancia.

Formato de
direccionamiento

Las tablas 15-1 y 15-2 indican los operandos y las reas de operandos de la
operacin AUF.
Tabla 15-1
Area de
bloques de
datos
DB
DI

Tabla 15-2

Operandos de la operacin AUF


Mx. rea de direccionamiento segn tipo de direccionamiento
directo

0 a 65 535

indirecto por memoria


[DBW]
[DIW]
[LW]
[MW]

1 a 65 534

Operandos de la operacin AUF transferidos como parmetros


Tipo del DB abierto

Formato del parmetro de direccionamiento

DBpara

BLOCK_DB

DIpara

15.2 Intercambiar registros de bloques de datos

Descripcin

15-2

La operacin TDB (Intercambiar DB global y DB de instancia) se utiliza para


intercambiar registros de bloques de datos. El bloque de datos global se convierte en
un bloque de datos de instancia y viceversa.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones con bloques

15.3 Cargar la longitud y el nmero de bloques de datos

Descripcin

Las siguientes operaciones se utilizan para cargar la longitud o el nmero de un bloque de datos global o de un bloque de datos de instancia en el ACU 1:

S L DBLG: Cargar longitud de DB global en ACU 1


S L DBNO: Cargar nmero de DB global en ACU 1
S Cargar longitud de DB de instancia en ACU 1
S Cargar nmero de DB de instancia en ACU 1
Ejemplos

El siguiente programa de ejemplo muestra cmo utilizar la operacin L DBLG para


saltar a la marca ERR cuando la longitud de un bloque de datos sea de 50 bytes o
superior. La instruccin en la marca ERR llama a la FC 10 que se habr programado
como reaccin apropiada, en caso de que la longitud del bloque de datos sea de
50 bytes o superior.

AWL

Explicacin
AUF DB40

Abrir el bloque de datos global DB40.

DBLG

Cargar la longitud del bloque de datos abierto en el ACU 1.

+50

Cargar el entero +50 en el ACU 1. El antiguo contenido del ACU 1


(la longitud del bloque de datos abierto) se desplaza al ACU 2.

>=I

Comparar el contenido del ACU 2 (la longitud del bloque de datos


abierto) con el contenido del ACU 1 (+50).

SPB ERR

Si la longitud del bloque de datos es mayor o igual a +50, saltar


a la marca ERROR. Si la longitud del bloque es menor que +50,
pasar a la prxima operacin.

U
=

El programa contina con una operacin Y.

E 0.0
M 1.0

BEA

ERR: CALL FC10

Finalizar el bloque actual, independientemente del resultado


lgico.
FC10 contiene una reaccin para el caso de que la longitud del
bloque actualmente abierto (DB40) sea menor o igual a 50 bytes.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

15-3

Operaciones con bloques

El siguiente programa de ejemplo muestra cmo utilizar la operacin L DBNO para


comprobar el bloque de datos que est actualmente abierto en el programa.
Mediante dicha operacin se puede comprobar si dicho bloque se encuentra en un
margen determinado, como p. ej. en el margen comprendido entre el bloque de datos
DB190 y el bloque de datos DB250.

AWL

Explicacin
L

DBNO

Cargar el nmero del bloque de datos abierto en el ACU 1.

+190

Cargar el entero +190 como lmite inferior en el ACU 1. El


antiguo contenido del ACU 1 (el nmero del bloque de datos
abierto) se desplaza al ACU 2.

<I

Comparar el contenido del ACU 2 (el nmero del bloque de datos


abierto) con el contenido del ACU 1 (+190).

SPB ERR

Si el nmero del bloque de datos es menor que +190, saltar a la


meta ERR. Si el nmero del bloque de datos no es menor que +190,
pasar a la siguiente operacin.

DBNO

Cargar el nmero del bloque de datos abierto en el ACU 1.

+250

Cargar el entero +250 como lmite superior en el ACU 1. El


antiguo contenido del ACU 1 (el nmero del bloque de datos
abierto) se mueve al ACU 2.

>I

Comparar el contenido del ACU 2 (el nmero del bloque de datos


abierto) con el contenido del ACU 1 (+250).

SPB ERR

Si el nmero del bloque de datos es mayor que +250, saltar a la


meta ERR. Si el nmero del bloque de datos no es mayor que +250,
pasar a la siguiente operacin.
Poner el RLO a 1.
Asignar el RLO a la marca M 1.0.

SET
= M 1.0

Finalizar el bloque actual, independientemente del resultado


lgico.

BEA

ERR: CALL FC10

15-4

FC10 contiene una reaccin para el caso de que el nmero del bloque abierto actualmente no se encuentre en el margen comprendido
entre 190 y 250.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

16

Operaciones de salto

Indice del
captulo

Apartado

Tema

Pgina

16.1

Resumen breve

16-2

16.2

Operaciones de salto incondicionado

16-3

16.3

Operaciones de salto en funcin del resultado lgico

16-4

16.4

Operaciones de salto en funcin de los bits de la palabra de estado


RB, OV u OS

16-5

16.5

Operaciones de salto en funcin del contenido de los bits A1 y A0


de la palabra de estado

16-6

16.6

Bucle

16-8

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

16-1

Operaciones de salto

16.1 Resumen breve

Operaciones

Las operaciones de salto descritas a continuacin as como la operacin LOOP sirven para controlar el desarrollo del programa. Estas operaciones permiten al programa interrumpir su desarrollo lineal para continuar el procesamiento en un punto
diferente del programa. El operando de una operacin de salto o LOOP es una meta.
Operacin

Explicacin
Operaciones de sal

SPA

Salto incondicionado

SPL

Salto a meta
Operaciones de salto condicionado, en funcin del RLO

SPB

Salto si RLO = 1

SPBN

Salto si RLO = 0

SPBB

Salto si RLO = 1 con RB

SPBNB

Salto si RLO = 0 con RB


Operaciones de salto condicionado, en funcin de RB u OV/OS

SPBI

Salto si RB = 1 (SPBI)

SPBIN

Salto si RB = 0

SPO

Salto si OV = 1

SPS

Salto si OS = 1
Operaciones de salto condicionado, en funcin del resultado depositado en A1 y A0

SPZ

Salto si resultado = 0

SPN

Salto si no es 0

SPP

Salto si es positivo > 0

SPM

Salto si es negativo

SPMZ

Salto si resultado <=0 (SPMZ)

SPPZ

Salto si resultado >= 0 (SPPZ)

SPU

Salto si no es vlido (SPU)


LOOP (bucle)

LOOP

Salto si contenido de ACU 1 > 0

Si bien las operaciones de Master Control Relay tambin controlan el desarrollo de


un programa, no estn incluidas en este captulo. Para ms informacin sobre las
operaciones MCR, v. apts. 17.4 y 17.5.
Meta como
operando

16-2

Una meta puede ser un operando de una operacin de salto o servir de marca para la
meta de una operacin de salto. Se compone de 4 caracteres como mximo. El
primer carcter debe ser una letra, en tanto que los dems pueden ser letras o
nmeros (p. ej. PRT3). Si es una marca, la meta debe concluirse adems con dos
puntos. En este caso, la meta deber ir seguida de una instruccin (p. ej.
PRT3: NOP 0).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de salto

16.2 Operaciones de salto incondicionado

Descripcin

Las siguientes operaciones de salto se utilizan para interrumpir el desarrollo normal


del programa sin condiciones:

S SPA: Salto incondicionado


S SPL: Salto a meta.
SPA: Salto
incondicionado

Las operaciones SPA interrumpen el desarrollo normal del programa, haciendo que
el programa salte a una meta determinada (al operando de la operacin SPA). La
meta define el punto en que deber continuar el programa. El salto se efecta
independientemente de condiciones.

SPL: Salto a meta

La operacin SPL es un distribuidor de saltos seguido de una serie de saltos incondicionados a metas determinadas (v. fig. 16-1). El acceso a la lista se encuentra en el
ACU 1.

Comienzo

Seleccin segn el n de segmento

(distribuidor de saltos)
=0

=1

=2

=3

MB100

SPL LIST
>3

Cargar destino:
0 = Salto a PRT0
1 = Salto a PRT1
2 = Salto a GEMP
3 = Salto a PRT3
> 3 = Salto a LIST

SPA PRT0
SPA PRT1
Seg. 0

Seg. 1

Distribuidor de saltos

Seg. 3

SPA GEMP
SPA PRT3
LIST:

SPA GEMP

PRT0:
Segmento 0
SPA GEMP
Programa
comn

PRT1:
Segmento 1
SPA GEMP

Fin
PRT3:

Segmento 3
GEMP:
Programa comn

Figura 16-1

Control del desarrollo del programa con la operacin Salto a meta (SPL)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

16-3

Operaciones de salto

16.3 Operaciones de salto en funcin del resultado lgico

Descripcin

Las siguientes operaciones de salto interrumpen el desarrollo del programa dependiendo del resultado lgico (RLO) dado en la instruccin anterior:

S SPB: Salto si RLO = 1.


S SPBN: Salto si RLO = 0.
S SPBB: Salto si RLO = 1: El RLO se almacena en el bit RB de la palabra de estado.

S SPBNB: Salto si RLO = 0 con RB: El RLO se almacena en el bit RB de la palabra de estado.
Independientemente de que se ejecute el salto o no, se describen los siguientes bits
de la palabra de estado:
OR := 0
STA := 1
RLO := 1
/ER := 0

Comienzo

E 1.0 = 1
y E 1.1 = 1
?

No RLO=1

Segmento B
S
RLO=0

Borrar el contenido
de MB10.

S
RLO=0

E 1.0

E 1.1

SPBN GEMP
L

MB10

Seg. B

GEMP:
Programa
comn

Programa
comn

Fin

Figura 16-2

16-4

Control del desarrollo del programa con la operacin SPBN (Salto si RLO = 0)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de salto

16.4 Operaciones de salto en funcin de los bits de la palabra de estado RB,


OV u OS
Descripcin

Las siguientes operaciones de salto interrumpen el desarrollo del programa en funcin del estado de seal de un determinado bit de la palabra estado (v. apt. 2.2).
S SPBI: Salto si RB = 1 o SPBIN: Salto si RB = 0
S SPO: Salto si OV = 1 o SPS: Salto si OS = 1.
Las operaciones Salto si RB = 1 (SPBI) y Salto si RB = 0 (SPBIN) ponen los bits
OR y /ER de la palabra de estado a 0 y el bit STA a 1. La operacin SPS pone
el bit OS a 0.

Comienzo

Desactivar bit
OS

SPS ODEL
ODEL:

Calcular
<MW10>=<MW12>+<MW14>-<MW16>

MW12

MW14

MW16

MW10

Desactivar bit
OS

Calcular.

Desbordamiento memorizado?

SPS PRTC*

Segmento C
No

SPPZ PRTB
Borrar
<MB10>

Resultado
<MW10> 0

+10

MW20

Seg. A

SPA GEMP
PRTB:

+17

MW30

No

Seg. B

Segmento A

Segmento B

<MW20> = 10

<MW30> = 17

SPA GEMP
PRTC:

MW10

Seg. C

GEMP:
Programa
comn
Programa
comn

Fin
Figura 16-3

* En este caso no utilizar la operacin


SPO, puesto que solamente comprobara
la anterior operacin -I si se produjera un
desbordamiento.

Control del desarrollo del programa con la operacin SPS (Salto si OS = 1)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

16-5

Operaciones de salto

16.5 Operaciones de salto en funcin del contenido de los bits A1 y A0 de la


palabra de estado

Descripcin

Las siguientes operaciones de salto interrumpen el desarrollo del programa en funcin del resultado de una operacin anterior:

S SPZ: Salto si resultado = 0


S SPN: Salto si no es 0
S SPP: Salto si es positivo (es decir, mayor que 0)
S SPM: Salto si es negativo (es decir, menor que 0)
S SPMZ: Salto si resultado <=0 (es decir, menor o igual a 0)
S SPPZ: Salto si resultado >= 0 (es decir, mayor o igual a 0, v. fig. 16-4).
S SPU: Salto si no es vlido (es decir, si uno de los nmeros de una operacin aritmtica de coma flotante no es vlido)

A1 y A0 en la
palabra de estado

Los bits de seal A1 y A0 se describen en funcin del resultado de la operacin


anterior. Las operaciones de salto condicionado evalan y activan los estados de
seal de los bits A1 y A0 como muestra la tabla 16-1.
Tabla 16-1

Relacin entre A1 o A0 y las operaciones de salto condicionado

Estado de seal

16-6

Resultado del clculo

Operacin de salto activada

=0

SPZ

<>0

SPN

>0

SPP

<0

SPM

>=0

SPPZ

<=0

SPMZ

UO (no admisible)

SPU

A1

A0

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de salto

Comienzo

Desactivar bit
OS

SPS ODEL
ODEL

Calcular
<MW10>=<MW12>+<MW14>-<MW16>

MW12

MW14

MW16

MW10

Desactivar bit OS

Calcular.

Rebase por
S
exceso memorizado?

SPS PRTC*

Segmento C
No

SPPZ PRTB
Borrar
<MB10>

S
Resultado
<MW10> >= 0

+10

MW20

Seg. A

SPA GEMP
PRTB:

+17

MW30

No

Seg. B

Segmento A

Segmento B

<MW20> = 10

<MW30> = 17

SPA GEMP
PRTC:

MW10

Seg. C

GEMP:
Programa comn
Programa
comn

Fin

Figura 16-4

* En este caso no utilizar la operacin


SPO, puesto que solamente consulta
la operacin -I precedente cuando se
produce un rebase por exceso.

Control del desarrollo del programa con la operacin SPPZ (Salto si resultado > = 0 )

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

16-7

Operaciones de salto

16.6 Bucle

Descripcin

La operacin LOOP (bucle) sirve para llamar varias veces un segmento del
programa (v. figura 16-5). La operacin LOOP decrementa la palabra baja del
ACU 1 en 1. Despus se comprueba el valor depositado en la palabra baja del
ACU 1. Si no es igual a 0, se ejecuta un salto a la meta indicada en la operacin
LOOP. En caso contrario, se ejecuta la siguiente operacin.

Asignar un
operando a
una meta

A la operacin LOOP se le asigna una meta para que conozca la posicin en la que
debe regresar al programa. El operando de la operacin LOOP del programa que se
aprecia en la figura 16-5 es la meta PROX. Dicha meta determina que la operacin
regrese a la instruccin T MB 10 del programa. En esta posicin se procesa el
segmento A del programa. La operacin LOOP regresa a la meta cuantas veces lo
haya indicado el usuario. Dicha informacin se indica en la palabra baja del ACU 1.
Una posibilidad de hacerlo consiste en activar un contador de bucles y cargarlo en el
acumulador.

Comienzo

Inicializar contador de bucles

L
Segmento A

PROX: T

+5
MB10

Inicializar
contador de
bucles

Seg. A

Decrementar el
contador de
bucles
L

MB10

PROXIMO LOOP
S

Contador de
bucles <>0?
No
Fin

Figura 16-5

16-8

Llamada mltiple de un segmento con la operacin LOOP

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de salto

Activar un contador de bucles

A una operacin LOOP se le asigna a travs del ACU 1 un valor que indica cuntas
veces se desea que LOOP llame a un determinado segmento del programa.
La operacin LOOP interpreta el contador de bucles como tipo de datos WORD.
En la tabla 16-2 se describen los dos formatos posibles de un contador de bucles.
Tabla 16-2

Cmo utilizar
eficientemente la
operacin LOOP

Posible formato de un contador de bucles

Valor

Margen del valor

Tipo de datos

Area de memoria

Entero

1 a 65 535
(slo valor positivo)

WORD

E, A, M, D, L

Palabra

W#16#0001 a
W#16#FFFF

WORD

E, A, M, D, L

Para evitar que un bucle se ejecute con ms frecuencia de lo necesario se deben


tener en cuenta las siguientes caractersticas de la operacin LOOP:

S Si el contador de bucles se inicializa con un 0, el bucle se ejecuta 65 535


veces.

S No es recomendable inicializar el contador de bucles con enteros negativos.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

16-9

Operaciones de salto

16-10

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

Indice del
captulo

Apartado

Tema

17
Pgina

17.1

Parametrizar al llamar funciones (FC) y bloques de funcin (FB)

17-2

17.2

Llamar funciones y bloques de funcin con CALL

17-3

17.3

Llamar funciones y bloques de funcin con CC y UC

17-7

17.4

Funciones del Master Control Relay

17-10

17.5

Operaciones con Master Control Relay

17-11

17.6

Finalizar bloques

17-16

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

17-1

Operaciones de control del programa

17.1 Parametrizar al llamar funciones (FC) y bloques de funcin (FB)

Conceptos

Para llamar bloques parametrizables es importante conocer los conceptos Parmetro Formal y Parmetro Actual.
Un Parmetro formal es aquel parmetro cuyo nombre y tipo de datos queda determinado al crear el bloque parametrizable y que, por ejemplo, ha sido declarado INPUT o OUTPUT. Al llamar un bloque (p.ej.: CALL SFC 31) en el Editor Incremental, STEP 7 muestra automticamente la lista de parmetros formales.
A los parmetros formales habr que asignar luego parmetros actuales. Un parmetro actual es aquel parmetro con cuyo valor trabaja la funcin o el bloque de
funcin durante la ejecucin del programa de usuario.
En la siguiente figura se muestra la llamada del SFC 31 RY_TINT (consultar
alarma horaria) en la Lista de Instrucciones AWL.
Representacin AWL

CALL
SFC 31
OB_NR := 10
RET_VAL:= MW 22
STATUS := MW 100

Parmetro actual
Parmetro formal

17-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

17.2 Llamar funciones y bloques de funcin con CALL

Descripcin

La operacin de llamada (CALL) se utiliza para llamar funciones (FC) y bloques de


funcin (FB) creados por el usuario para el programa en cuestin o adquiridos en
Siemens como funciones estndar o bloques de funcin estndar. La operacin
CALL llama a la funcin FC o al bloque FB indicado como operando, independientemente del resultado lgico o de cualquier otra condicin.
Si se desea llamar a un bloque de funcin con la operacin CALL, se le deber asignar un bloque de datos de instancia (DB de instancia) o declararlo como instancia
local. En este bloque de datos de instancia se guardan todas las variables estticas y
parmetros actuales del bloque de funcin.
Para ms informacin sobre cmo programar una funcin o un bloque de funcin o
sobre cmo trabajar con los parmetros, consulte la Ayuda en pantalla de STEP 7.

Parmetros formales y
parmetros
actuales

Al llamar una funcin (FC) o un bloque de funcin (FB) tiene que asignar los
parmetros actuales correspondientes a los parmetros formales definidos al declarar
el bloque.

Especificar
parmetros
actuales

Los parmetros actuales utilizados al llamar una funcin o un bloque de funcin se


suelen indicar con nombres simblicos. El direccionamiento absoluto de parmetros
actuales slo es posible con operandos cuyo tamao mximo no supere una palabra
doble (p. ej. E 1.0, MB2, AW4, ED0).

El parmetro actual que se indica al llamar un bloque de funcin tiene que ser del
mismo tipo de datos que el parmetro formal.

Al llamar las funciones, todos los parmetros formales tienen que tener asignados
parmetros actuales. Cuando efecte llamadas a bloques de funcin debe indicar
solamente aquellos parmetros actuales que tengan que modificarse con respecto a
la ltima llamada (despus de editar el FB los parmetros actuales quedan guardados en el DB de instancia).
Al llamar un bloque de funcin, la operacin CALL copia uno de los siguientes valores en el bloque de datos de instancia del bloque de funcin, dependiendo del tipo
de datos del parmetro actual y de la declaracin del parmetro formal (ON, OFF,
ON-OFF).

S Valor del parmetro actual


S Puntero para el operando del parmetro actual
S Puntero para la pila LSTACK del bloque que llama y que sirve de tampn del
parmetro actual

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

17-3

Operaciones de control del programa

Llamar un FB con
un DB de instancia
y parmetros de
bloque

La llamada se efecta indicando

S el nombre del bloque de funcin,


S el nombre del bloque de datos de instancia, y
S la asignacin de parmetros (si el parmetro actual es un bloque de datos, habr
que indicar siempre la direccin abosluta completa).
La llamada puede efectuarse en el modo absoluto o en el simblico.
Llamada absoluta:
CALL FBx,DBy (asignacin de parmetros);
x = Nmero del bloque
y = Nmero del bloque de datos
Llamada simblica:
CALL fbname,datenbausteinname (asignacin de parmetros);
fbname = Nombre simblico del bloque
datenbausteinname = Nombre simblico del bloque de datos

Ejemplos

El siguiente programa de ejemplo muestra la llamada del bloque de funcin FB40 a


travs del bloque de datos de instancia DB41. En este ejemplo, los parmetros formales pertenecen a los siguientes tipos de datos:
ON1: BOOL
ON2: WORD
OFF1: DWORD

AWL

Explicacin

CALL

FB40,DB41

Llamar FB40 con bloque de datos de instancia DB41.

ON1:=

E1.0

ON1 (parmetro formal) es asignado a E 1.0 (parmetro actual).

ON2:=

MW2

ON2 (parmetro formal) es asignado a MW2 (parmetro


actual).

OFF1:= MD20

OFF1 (parmetro formal) es asignado a MD20 (parmetro actual).

El programa accede con esta operacin al parmetro formal


OFF1.

MD20

El siguiente ejemplo muestra la llamada del bloque de funcin FB50 a travs del
bloque de datos de instancia DB51. En este ejemplo, los parmetros formales pertenecen a los siguientes tipos de datos:
ON10: BOOL
OFF11: STRUCT
V1: BOOL
V2: INT
END_STRUCT

17-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

AWL
CALL

Explicacin
FB50,DB51

Llamar el FB50 con el bloque de datos de instancia DB51.

ON10:= E1.0

ON10 (parmetro formal) se asigna a E 1.0 (parmetro actual).


Aqu no se puede especificar ningn parmetro actual
absoluto (p. ej. MW10) porque el parmetro formal OFF11 estaba
definido como estructura. En su lugar, se especifica el
parmetro actual simblico AKTPA11. Hay que tener en cuenta
que AKTPA11 ha de tener la misma estructura que el parmetro
formal OFF11.

OFF11:= AKTPA11

El acceso a los valores de la estructura OFF11 en FB50 se efecta de la manera siguiente:

AWL

Explicacin

OFF11.V1

Ejecutar una operacin lgica Y con el bit OFF11.V1.

OFF11.V2

Cargar palabra OFF11.V2 en el ACU 1.

Llamar
multiinstancias

La llamada se efecta indicando

S el nombre de instancia ( = nombre de una variable esttica del tipo FB), y


S la asignacin de parmetros.
La llamada se efecta siempre en el modo simblico.
CALL nombre de instancia (asignacin de parmetros);

AWL

Explicacin

FUNCTION_BLOCK FB 11
VAR
loc_inst : FB 10;
END_VAR
BEGIN
NETWORK
CALL #loc_inst (
in_bool := M
0.0);

Archivo fuente
Declaracin de la multiinstancia del tipo de datos FB 10

Llamada de la multiinstancia con sintaxis


Asignacin de parmetros
(siendo in_bool una variable declarada en el FB 10)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

17-5

Operaciones de control del programa

Llamar FC
con parmetros
de bloque

La llamada se efecta indicando

S el nombre del bloque de funcin, y


S la asignacin de parmetros.
S la alimentacin del parmetro (si el parmetro actual es un bloque de datos, se
debe indicar siempre la direccin absoluta completa, p.ej. DB1.DBW2).
La llamada puede efectuarse de forma absoluta o simblica.
Llamada absoluta:
CALL FCx (asignacin de parmetros);
x = nmero del bloque
Llamada simblica:
CALL nombre de fc (asignacin de parmetros);
nombre de fc = Nombre simblico del bloque

Ejemplo

El siguiente programa de ejemplo ilustra la llamada de la funcin FC80 con parmetros de bloque. En el ejemplo, los parmetros formales tienen los siguientes tipos de
datos:
INK1: BOOL
INK2: INT
OFF: WORD

AWL

Explicacin

CALL
FC80
INK1:= M 1.0

Llamar la funcin FC80


INK1 (parmetro formal) es asignado a M 1.0 (parmetro actual).

INK2:= EW2

INK2 (parmetro formal) es asignado EW2 (parmetro actual).

OFF:=

OFF (parmetro formal) es asignado a AW4 (parmetro actual).

AW4

Llamar una FC
que da un valor
de retorno

17-6

Puede crear una funcin que d un valor de retorno (RET_VAL). Si se desea crear
por ejemplo una operacin aritmtica con nmeros en coma flotante, entonces
puede utilizarse este valor de retorno como salida para el resultado de la funcin. Al
llamar despus esta funcin en el programa, se ha de proveer la salida RET_VAL
con una direccin de palabra doble de forma que sta pueda tomar el resultado de
32 bits de la operacin aritmtica.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

17.3 Llamar funciones y bloques de funcin con CC y UC

Descripcin

Las operaciones siguientes se utilizan para llamar funciones (FC) y bloques de


funcin (FB) del mismo modo como se utiliza la operacin CALL. Si embargo, no
es posible transferir parmetros.

S llamada condicionada (CC): Esta operacin llama a la funcin o bloque de funcin indicada como operando. La llamada slo se efecta si el resultado lgico
es 1.

S llamada incondicionada (UC): Esta operacin llama a la funcin o bloque de


funcin indicado como operando, independientemente del resultado lgico o de
cualquier otra condicin.
Al llamar un bloque de funcin (FB) con las operaciones CC o UC no se pueden
asignar bloques de datos al operando.

Formato del
direccionamiento

Las operaciones CC y UC pueden llamar funciones (FC) y a bloques de funcin


(FB) mediante direccionamiento directo o indirecto de memoria, o a travs de
funciones y bloques de funciones transferidas como parmetros (v. tablas 17-1 y
17-2). El operando es la FC o el FB ms el nmero de la funcin o del bloque de
funcin.
Tabla 17-1

Operandos de las operaciones CC y UC: Direccionamiento directo e indirecto

Parte FB o
FC del
operando

Mx. rea de direccionamiento segn el tipo de direccionamiento


directo

FC
FB

indirecto por memoria


[DBW]
[DIW]
[LW]
[MW]

0 a 65 535

Tabla 17-2

0 a 65 534

Operandos de las operaciones CC y UC: FC transferido como parmetro

Operando
Nombre del
parmetro formal o
un nombre simblico

Formato del parmetro de direccionamiento


BLOCK_FC1
BLOCK_FB1

Los parmetros que sean del tipo BLOCK_FC o BLOCK_FB no se pueden utilizar
en funciones ni en bloques de funcin con la operacin CC.

Ejemplo

Para llamar a un FB creado por el usuario y al que se le ha dado el nmero 12 se


utiliza una de las siguientes operaciones, dependiendo de si la llamada ha de ser
condicionada o incondicionada:
CC FB12 (llamar FB12 si RLO = 1)
UC FB12 (llamar FB12 independientemente del RLO)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

17-7

Operaciones de control del programa

Asignacin de
parmetros
actuales
Tabla 17-3

Al llamar a una funcin o a un bloque de funcin hay varias posibilidades de asignar


un parmetro actual a uno formal, que estarn en funcin del tipo de datos de que se
trate. La tabla siguiente est ordenada atendiendo a la longitud del tipo de datos:

Asignacin de parmetros actuales

Parmetro formal del


ti d
tipo
de d
datos...
t

BOOL (bit)

Ejemplos de asignacin de un parmetro actual


Entrada directa (valor)
TRUE

Entrada de un dato
global
M 100.0

Entrada simblica1
#OK_MERKER

E 0.0
A 0.0
DBX 3.0
BYTE (byte)

B#16#1F

MB 100

#TYP_BYTE

EB 0
AB 0
CHAR

DBB 1

#TYP_CHAR

WORD (palabra)

W#16#1F12

MW 100

#TYP_WORT

2#0001_1111_0001_0010

EW 0

C#32

AW 0

B#(5,25)

DBW 2

INT (entero)

27

#TYP_INT

25
S5TIME (temporizador S5)

S5T#10MS

#TYP_S5_TIME

DATE (fecha CEI)

D#19951224

#TYP_DATE

DWORD (palabra doble)

DW#16#FFFF_0F02

MD 100

2#0001_1111_0001_0010_0001_1
111_0001_0010

ED 0

B#(5,4,59,8)

DBD 4

DINT (entero doble)

L#170

#TYP_DWORT

AD 0
#TYP_DINT

L#-350
REAL
(nmero en coma flotante)

1.23

#TYP_REAL

TIME (temporizador CEI)

T#20MS

#TYP_TIME

TIME_OF_DAY
(reloj CEI)

TOD#23:59:12.3

#TYP_TOD

17-8

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

Tabelle 17-3

Asignacin de parmetros actuales, continuacin

Parmetro formal del


ti d
tipo
de d
datos...
t

Ejemplos de asignacin de un parmetro actual


Entrada directa (valor)

DATE_AND_TIME
(fecha y hora CEI)

imposible

ANY (tipo de datos de


cualquier tipo y tamao)

P#M0.0 BYTE20

Entrada de un dato
global

Entrada simblica1
#TYP_8_BYTE

(La variable se debe declarar, p. ej., como variable temporal)

20 bytes 2 ...
... desde marca 0.0 3

E 0.0

#TYP_ANYTYP

MB 5

(declaracin de arrays y
estructuras)

AW 2
(se puede usar cualquier
operando global de
STEP 7)

prefijo del puntero ANY


P#DB58.DBX16.0 BYTE14
14 bytes 2 ...
... en el DB58
desde bit de datos 16.0 3
prefijo del puntero ANY
1

2
3

Requisito: Tratndose de datos globales debe determinar el nombre (= smbolo) en la tabla de smbolos globales para poder
usar ese smbolo como parmetro actual. Si se trata de datos locales debe determinar el nombre (= smbolo) en la tabla de
declaracin del bloque para poder usar ese smbolo como parmetro actual.
En los datos locales tiene que poner el signo # delante del smbolo.
Las indicaciones de las longitudes pueden ser tanto tipos de datos simples, p. ej. BOOL, BYTE, WORD o DWORD, como
compuestos, p. ej. DATE_AND_TIME.
Indique siempre una direccin de bit; en las indicaciones de la longitud indique siempre 0 (excepcin: BOOL).

Llamada
condicionada en
AWL

Para poder efectuar una llamada condicionada de una SFC en el lenguaje de programacin AWL puede usar, por ejemplo, la siguiente secuencia de instrucciones:

AWL

m001:

Explicacin
U
#OK_MERKER
SPBNB
m001
CALL SFC 28
OB_NR
:= 10
SDT
:= #OUT_UHRZEIT_DATUM
PERIOD := W#16#1201
RET_VAL := MW 200
U
BIE
=
M 202.3

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Condicin de la llamada
Si no se cumple la condicin (RLO=0) se salta
la llamada de la SFC y se recupera el RLO en
el bit de estado RB.

Consulta del bit de estado RB.

17-9

Operaciones de control del programa

17.4 Funciones del Master Control Relay

Descripcin

El Master Control Relay (MCR) se utiliza en esquemas de rels para activar y desactivar el flujo de corriente. Un circuito desactivado corresponde a una secuencia de
instrucciones que escribe un cero en lugar del valor calculado, o bien a una secuencia de instrucciones que no modifica el valor de memoria existente. Las operaciones
activadas por las siguientes operaciones lgicas o de transferencia dependen del
MCR:

S =
S S
S R
S T (con bytes, palabras o palabras dobles)
La operacin T con bytes, palabras o palabras dobles y la operacin = escriben un 0
en la memoria si el MCR es 0. Las operaciones S y R no modifican el valor existente.
Tabla 17-4

Operaciones dependientes del MCR y su reaccin ante el estado de seal de


MCR

Estado de
seal del
MCR
0

17-10

SoR

Escribe 0

No escribe

Escribe 0

(Imita un rel que pasa a


un estado inactivo
cuando se produce un
fallo de alimentacin)

(Imita un rel que


permanece en estado
normal cuando se
produce un fallo de
alimentacin)

(Imita un componente
que produce el valor 0
cuando se produce un
fallo de alimentacin)

Ejecucin normal

Ejecucin normal

Ejecucin normal

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

17.5 Operaciones con Master Control Relay

Resumen breve

Descripcin:
MCRA, MCRD

Las siguientes operaciones sirven para implementar un Master Control Relay:

S MCRA:

Activar rea MCR

S MCRD:

Desactivar rea MCR

S MCR(:

Salvar RLO en pila MCR, comienzo rea MCR

S )MCR:

Fin rea MCR

Las operaciones siguientes activan o desactivan un rea MCR, es decir, indican qu


operaciones del programa dependen del MCR (v. figura 17-2):

S Activar rea MCR: MCRA


S Desactivar rea MCR: MCRD
Las operaciones programadas entre las operaciones MCRA y MCRD dependen del
estado de seal del bit MCR. Las operaciones programadas fuera de la secuencia
MCRA-MCRD no dependen del estado de seal del bit MCR. Si falta la operacin
MCRD, las operaciones programadas entre una operacin MCRA y una operacin
BEA dependern del bit MCR (v. figura 17-1).
La dependencia de las funciones (FC) y de los bloques de funcin (FB) respecto al
bit MCR tiene que programarse en el bloque mismo. Es decir, cuando se llama la
funcin o el bloque de funcin desde una secuencia MCRA-MCRD, ello no significa que todas las instrucciones que contiene dicha secuencia dependan automticamente del bit MCR. Para hacer que las operaciones que contiene el bloque llamado
dependan del bit MCR hay que utilizar la operacin MCRA del bloque llamado.

Peligro
No utilizar nunca la operacin MCR como paro de emergencia o como dispositivo
de seguridad del personal.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

17-11

Operaciones de control del programa

OB1

MCRA

FBx

FCy

MCRA

MCRD

CALL FBx

MCRA

MCRA

CALL FCy

MCRD

BEA

BEA

Operaciones que no dependen del bit MCR


Operaciones que dependen del bit MCR

Figura 17-1

17-12

Activacin y desactivacin de un rea de Master Control Relay

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

Descripcin:
MCR(, )MCR

Las siguientes operaciones activan o desactivan la funcin Master Control Relay:

S Salvar RLO en pila MCR, comienzo rea MCR: MCR(


S Fin rea MCR: )MCR
Las operaciones MCR( y )MCR pueden anidarse. La profundidad mxima de anidamiento es de 8, es decir, se pueden programar como mximo ocho operaciones
MCR( seguidas antes de insertar una operacin )MCR. La cantidad de operaciones
MCR( y )MCR ha de ser equivalente (v. figura 17-3).
Cuando se anidan operaciones MCR( se genera el bit MCR del nivel de anidamiento
ms profundo. Para generar este bit MCR, la operacin MCR( combina el RLO actual con el bit MCR actual, de acuerdo con la tabla de verdad Y.
La operacin )MCR finaliza un nivel de anidamiento tomando el bit MCR de un
nivel ms alto. La operacin )MCR del nivel ms alto pone el bit MCR a 1.
Al utilizar las operaciones MCR( y )MCR en el programa, hay que tener en cuenta
que siempre deben ir por pares.

Ejemplo

La figura 17-2 muestra cmo implementar un Master Control Relay.


Si el bit MCR es 1 significa que el contacto est cerrado. Los estados de seal de
las salidas A 4.0 y A 4.1 se calculan segn el estado de seal de las entradas E 1.0 a
E 1.3 y sus combinaciones lgicas.
Si el bit MCR es 0 significa que el contacto est abierto. Las salidas A 4.0 y A 4.1
se ponen a 0, independientemente de los estados de seal de las entradas E 1.0 a
E 1.3.
AWL

MCRA
U E 2.0
MCR(
O E 1.0
O E 1.1
= A 4.0
U E 1.2
U E 1.3
= A 4.1
)MCR
MCRD

Esquema de rels

Conductor

Contacto
MCR

E 1.0

E 2.0

E 1.2
E 1.3

A 4.0

A 4.1

Bobina MCR
Master Control Relay implementado con las operaciones MCR( y ) MCR

Figura 17-2

E 1.1

Area controlada por el MCR (Master Control


Relay), implementada con operaciones
MCRA y MCRD.

Implementacin de un Master Control Relay

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

17-13

Operaciones de control del programa

La figura 17-3 muestra cmo utilizar las operaciones para el anidamiento.


Estado
seal

AWL

MCRA
U E 1.1
MCR (
U E 1.2
MCR (
U E 1.3
MCR (

Resultado
consulta

RLO

Bit MCR del nivel


1
2
3

1
1

1
1

S M 1.0
)MCR

S M 1.1
)MCR

1
0
0
0
0
0

Este bit (M 1.0) permanece inalterado, independientemente de las cadenas lgicas anteriores, ya que el bit
MCR = 0

1
1
1
1

Este bit (M 1.1) se modifica debido a


la cadena lgica anterior y a la funcin
de la operacin S, ya que el bit
MCR = 1

**

1
1
1
1

)MCR
MCRD

* Se genera el bit MCR del nivel ms bajo de anidamiento. Para formar este bit
MCR, la operacin MCR( combina el RLO actual con el bit MCR del nivel de
anidamiento actual, de acuerdo con la tabla de verdad Y.
** Cuando la operacin )MCR finaliza un nivel de anidamiento, la operacin
toma el bit MCR del siguiente nivel ms alto.

Figura 17-3

17-14

Anidamiento de operaciones MCR

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de control del programa

Notas importantes sobre el uso de la funcin MCR


Prestar atencin al usar la funcin en bloques en los que se activ el Master Control
Relay con MCRA:

S Si est desconectado el MCR, en las partes del programa que se encuentran entre
MCR( y )MCR todas las asignaciones (T=) escribirn el valor 0.

S El MCR se desconecta siempre que un RLO=0 preceda a una instruccin MCR(.

Peligro
STOP del PLC o comportamiento no definido del tiempo de ejecucin.
Para calcular direcciones el compilador realiza accesos de escritura a los datos locales detrs de las variables temporales definidas en VAR_TEMP. Por este motivo las
siguientes secuencias de instrucciones conducen al PLC a STOP o producen un
comportamiento no definido del tiempo de ejecucin:
Accesos a parmetros formales
S Accesos a componentes de parmetros FC complejos del tipo STRUCT, UDT,
ARRAY, STRING
S Accesos a componentes de parmetros FB complejos del tipo STRUCT, UDT,
ARRAY, STRING del rea IN_OUT de un bloque de la versin 2.
S Accesos a parmetros de un FB de la versin de bloque 2, si su direccin es superior a 8180.0.
S Un acceso desde el FB de la versin de bloque 2 a un parmetro del tipo
BLOCK_DB abre el DB 0. Los siguientes accesos a datos conducen la CPU a
STOP. Con TIMER, COUNTER, BLOCK_FC, BLOCK_FB se utiliza siempre
T 0, Z 0. FC 0 FB 0.
Entrega de parmetros

S Llamadas en las que se entregan parmetros.


KOP/FUP

S Las ramas T y conectores de KOP o FUP empiezan con RLO=0.


Remedio
Libere las instrucciones mencionadas de la dependencia del MCR:
1. Desactive el Master Control Relay con la instruccin de MCRD que se encuentre delante de la instruccin o del segmento en cuestin.
2. Active el Master Control Relay con la instruccin MCRA que se encuentre detrs de la instruccin o del segmento en cuestin.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

17-15

Operaciones de control del programa

17.6 Finalizar bloques

Descripcin

La operacin Fin de bloque es una instruccin que finaliza la ejecucin de un bloque. Para finalizar un bloque se utiliza una de las siguientes operaciones:

S Fin de bloque incondicionado (BEA): Esta operacin finaliza la ejecucin del


bloque actual y devuelve el control al bloque que a su vez ha llamado el bloque
que acaba de ser ejecutado. Cuando el programa encuentra una operacin BEU
finaliza el bloque actual, independientemente del resultado lgico.

S Fin de bloque condicionado (BEB): Esta operacin finaliza la ejecucin del bloque actual y devuelve el control al bloque que llam al que acaba de ser ejecutado. Cuando el programa encuentra una operacin BEB solamente finaliza el
bloque actual si el resultado lgico es 1 (RLO = 1). Si el RLO es 0, el programa no ejecuta la operacin Fin de bloque. El RLO se pone a 1 y la ejecucin del programa contina dentro del bloque actual.

17-16

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Anexos

Indice alfabtico de las operaciones

Ejemplos de programacin

Archivos fuente Palabras clave reservadas

Bibliografa

Q-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

Indice del anexo

Apartado

Tema

A.1

Indice alfabtico de las abreviaturas nemotcnicas alemanas y de las


abreviaturasinternacionales

A.2

Indice alfabtico de las operaciones AWL en espaol

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

A
Pgina
A-2
A-12

A-1

Indice alfabtico de las operaciones

A.1

Indice alfabtico de las abreviaturas nemotcnicas alemanas y de las


abreviaturas internacionales
La tabla A-1 contiene el ndice alfabtico de las abreviaturas nemotcnicas
alemanas y de las abreviaturas internacionales de las operaciones AWL. Junto a
cada abreviatura figura el nombre completo de la operacin en espaol y la pgina
en que viene explicada la operacin.

Tabla A-1
Nemotcnica
SIMATIC

Indice alfabtico de las abreviaturas nemotcnicas alemanas y sus equivalentes internacionales (en ingls)
Nemotcnica
internacional
(ingls)

Descripcin

Pg. n

Sumar constante entera (8, 16, 32 bits)

9-6

Asignar

5-24

Cerrar parntesis

5-14

+AR1

+AR1

Sumar ACU 1 a registro de direcciones 1

4-7

+AR2

+AR2

Sumar ACU 1 a registro de direcciones 2

4-7

+D

+D

Sumar ACU 1 y 2 como entero doble (32 bits)

15-2

-D

-D

Restar ACU 1 de ACU 2 como entero doble (32 bits)

15-2

*D

*D

Multiplicar ACU 1 por ACU 2 como entero doble (32 bits)

15-2

/D

/D

Dividir ACU 2 entre ACU 1 como entero doble (32 bits)

15-2

==D

==D

Comparar enteros dobles (32 bits) >, <, >=, <=, ==, <>

11-3

+I

+I

Sumar ACU 1 y 2 como entero (16 bits)

15-2

-I

-I

Restar ACU 1 de ACU 2 como entero (16 bits)

15-2

*I

*I

Multiplicar ACU 1 por ACU 2 como entero (16 bits)

15-2

/I

/I

Dividir ACU 2 entre ACU 1 como entero (16 bits)

15-2

==I

==I

Comparar enteros (16 bits) >, <, >=, <=, ==, <>

11-3

+R

+R

Sumar acumulador 1 y 2 como nmero en coma flotante (32 bits, IEEE-FP)

10-2

-R

-R

Restar ACU 1 de ACU 2 como nmero en coma flotante (32 bits, IEEE-FP)

10-2

*R

*R

Multiplicar ACU 1 por ACU 2 como nmero en coma flotante (32 bits, IEEE-FP)

10-2

/R

/R

Dividir ACU 2 entre ACU 1 como nmero en coma flotante (32 bits, IEEEFP)

10-2

==R

==R

Comparar nmeros en coma flotante >, <, >=, <=, ==, <>

11-5

ABS

ABS

Valor absoluto de un nmero en coma flotante (32 bits, IEEE-FP)

10-6

ACOS

ACOS

Arco coseno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

ASIN

ASIN

Arco seno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

ATAN

ATAN

Arco tangente de un nmero en coma flotante(32 bits, IEEEFP)

10-7

AUF

OPN

Abrir bloque de datos

15-2

BEA

BEU

Fin de bloque incondicionado

17-16

BEB

BEC

Fin de bloque condicionado

17-16

BLD

BLD

Instruccin de visualizacin (NOP)

4-2

BTD

BTD

Convertir de BCD a entero doble (32 bits)

12-4

BTI

BTI

Convertir de BCD a entero (16 bits)

12-2

A-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

Tabla A-1
Nemotcnica
SIMATIC

Indice alfabtico de las abreviaturas nemotcnicas alemanas y sus equivalentes internacionales (en ingls)
Nemotcnica
internacional
(ingls)

Descripcin

Pg. n

CALL

CALL

Llamada de bloque

17-3

CC

CC

llamada condicionada

17-7

CLR

CLR

Desactivar RLO (= 0)

5-26

COS

COS

Coseno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

DEC

DEC

Decrementar ACU 1

4-6

DTB

DTB

Convertir de entero doble (32 bits) a BCD

12-6

DTR

DTR

Convertir de entero doble (32 bits) a nmero en coma flotante (32 bits, IEEE-FP)

12-7

ENT

ENT

ACU 3 > ACU 4, ACU 2 > ACU 3

4-3

EXP

EXP

Valor exponencial de un nmero en coma flotante (32 bits, IEEEFP) con base

10-12

FN

FN

Flanco negativo

5-17

FP

FP

Flanco positivo

5-16

FR

FR

Desbloquear contador (libre, FR Z 0 a C 255)

6-5

FR

FR

Desbloquear temporizador (libre, FR T 0 a C 255)

13-3

INC

INC

Incrementar ACU 1

4-6

INVD

INVD

Complemento a uno entero doble (32 bits)

12-14

INVI

INVI

Complemento a uno entero (16 bits)

12-14

ITB

ITB

Convertir de entero (16 bits) a BCD

12-5

ITD

ITD

Convertir de entero (16 bits) a entero doble (32 bits)

12-6

Cargar

8-3

Cargar longitud del bloque de datos global en ACU 1 (L DBLG)

15-2

Cargar nmero del bloque de datos global en ACU 1 (L DBNO)

8-12

Cargar longitud del bloque de datos de instancia en ACU 1 (L DILG)

15-2

Cargar nmero del bloque de datos de instancia en ACU 1 (L DINO)

8-12

Cargar palabra de estado en ACU 1 (L STW)

8-6

Cargar valor actual del temporizador en ACU 1 como entero (pudiendo tener el
temporizador actual un nmero comprendido entre 0 y 255, por ej.: L T 32)

8-7

Cargar valor actual del contador en ACU 1 como entero (pudiendo tener el
contador actual un nmero comprendido entre 0 y 255, por ej.: L Z 15)

8-8

LAR1

LAR1

Cargar contenido de ACU 1 en registro de direcciones 1


(si no se indica operando)

8-11

LAR1

LAR1

Cargar contenido de ... (del operando indicado) en registro de direcciones 1

8-11

LAR1

LAR1

Cargar registro de direcciones 1 en registro de direcciones 2 (LAR 1 AR2)

8-11

LAR1

LAR1

Cargar entero doble (32 bits, LAR1 P#area byte.bit) en registro de direcciones
1

8-11

LAR2

LAR2

Cargar contenido de ACU 1 en registro de direcciones 2


(si no se indica operando)

8-11

LAR2

LAR2

Cargar contenido de ... (del operando indicado) en registro de direcciones 2

8-11

LAR2

LAR2

Cargar entero doble (32 bits, LAR2 P#area byte.bit) en registro de direcciones
2

8-11

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

A-3

Indice alfabtico de las operaciones

Tabla A-1
Nemotcnica
SIMATIC

Indice alfabtico de las abreviaturas nemotcnicas alemanas y sus equivalentes internacionales (en ingls)
Nemotcnica
internacional
(ingls)

Descripcin

Pg. n

LC

LC

Cargar valor actual del contador en ACU 1 como nmero BCD (pudiendo
tener el contador actual un nmero comprendido entre 0 y 255, p. ej.: LC Z 15)

8-9

LC

LC

Cargar valor actual del temporizador en ACU 1 como nmero BCD


(pudiendo tener el temporizador actual un nmero comprendido entre 0 y 255,
p. ej.: LC T 32)

8-10

LEAVE

LEAVE

ACU 3 > ACU 2, ACU 4 > ACU 3

4-3

LN

LN

Logaritmo natural de un nmero en coma flotante (32 bits, IEEEFP)

10-11

LOOP

LOOP

Bucle

16-8

MCR(

MCR(

Salvar RLO en pila MCR, comienzo rea MCR

17-11

)MCR

MCR)

Restablecer RLO de pila MCR, fin rea MCR

17-11

MCRA

MCRA

Activar rea MCR

17-11

MCRD

MCRD

Desactivar rea MCR

17-11

MOD

MOD

Resto de la divisin entero doble (32 bits)

15-5

NEGD

NEGD

Complemento a dos entero doble (32 bits)

12-14

NEGI

NEGI

Complemento a dos entero (16 bits)

12-14

NEGR

NEGR

Cambiar signo de un nmero en coma flotante

12-14

NOP 0

NOP 0

Operacin nula 0

4-2

NOP 1

NOP 1

Operacin nula 1

4-2

NOT

NOT

Negar RLO

5-26

5-10

O(

O(

O con abrir parntesis

5-14

OD

OD

O con palabra doble (32 bits)

13-6

ON

ON

O-No

5-9

ON(

ON(

O-No con abrir parntesis

5-14

OW

OW

O con palabra (16 bits)

13-3

POP

POP

ACU 1 <--- ACU 2, ACU 2 <--- ACU 3, ACU 3 <--- ACU 4

4-2

PUSH

PUSH

ACU 3 ---> ACU 4, ACU 2 ---> ACU 3, ACU 1 ---> ACU 2

4-2

Desactivar

5-22

Desactivar contador (pudiendo tener el contador actual un nmero comprendido entre 0 y 255, p. ej. R Z 15)

6-5

Desactivar temporizador (pudiendo tener el contador actual un nmero


comprendido entre 0 y 255, p. ej. R T 32)

13-4

RLD

RLD

Rotar palabra doble a la izquierda (32 bits)

20-6

RLDA

RLDA

Rotar ACU 1 a la izquierda va A1 (32 bits)

14-6

RND

RND

Redondear a entero

12-9

RND+

RND+

Redondear al prximo entero doble superior

12-10

RND-

RND-

Redondear al prximo entero doble inferior

12-11

RRD

RRD

Rotar palabra doble a la derecha (32 bits)

20-8

RRDA

RRDA

Rotar ACU 1 a la derecha va A1 (32 bits)

20-6

A-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

Tabla A-1
Nemotcnica
SIMATIC

Indice alfabtico de las abreviaturas nemotcnicas alemanas y sus equivalentes internacionales (en ingls)
Nemotcnica
internacional
(ingls)

Descripcin

Pg. n

Activar

5-21

Poner contador al valor de arranque (pudiendo tener el contador actual un


nmero comprendido entre 0 y 255, p. ej.: S Z 15)

13-3

SA

SF

Temporizador retardado a la desconexin

6-15

SAVE

SAVE

Salvar RLO en registro RB

5-26

SE

SD

Temporizador de retardo a la conexin

6-11

SET

SET

Activar RLO (= 1)

5-26

SI

SP

Temporizador de disparo mediante impulso

6-7

SIN

SIN

Seno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

SLD

SLD

Desplazar palabra doble a la izquierda (32 bits)

14-2

SLW

SLW

Desplazar palabra a la izquierda (16 bits)

14-2

SPA

JU

salto incondicionado

16-3

SPB

JC

Salto si RLO = 1

16-4

SPBB

JCB

Salto si RLO = 1 con RB

16-4

SPBI

JBI

Salto si RB = 1

16-4

SPBIN

JNBI

Salto si RB = 0

16-4

SPBN

JCN

Salto si RLO = 0

16-4

SPBNB

JNB

Salto si RLO = 0 con RB

16-4

SPL

JL

Salto a meta

16-3

SPM

JM

Salto si resultado < 0

16-6

SPMZ

JMZ

Salto si resultado < = 0

16-6

SPN

JN

Salto si resultado no es 0

16-6

SPO

JO

Salto si OV = 1

16-5

SPP

JP

Salto si resultado > 0

16-6

SPPZ

JPZ

Salto si resultado > = 0

16-6

SPS

JOS

Salto si OS = 1

16-5

SPU

JUO

Salto si resultado no es vlido

16-6

SPZ

JZ

Salto si resultado = 0

16-6

SQR

SQR

Cuadrado de un nmero en coma flotante (32 bits, IEEEFP)

10-9

SQRT

SQRT

Raz cuadrada de un nmero en coma flotante (32 bits, IEEEFP)

10-9

SRD

SRD

Desplazar palabra doble a la derecha (32 bits)

14-3

SRW

SRW

Desplazar palabra a la derecha (16 bits)

14-2

SS

SS

Temporizador retardado a la conexin con memoria

6-13

SSD

SSD

Desplazar signo entero doble (32 bits)

14-4

SSI

SSI

Desplazar signo entero (16 bits)

14-4

SV

SE

Temporizador de disparo mediante impulso prolongado

6-9

Transferir

8-3

Transferir ACU 1 a la palabra de estado (T STW)

8-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

A-5

Indice alfabtico de las operaciones

Tabla A-1
Nemotcnica
SIMATIC

Indice alfabtico de las abreviaturas nemotcnicas alemanas y sus equivalentes internacionales (en ingls)
Nemotcnica
internacional
(ingls)

Descripcin

Pg. n

TAD

CAD

Cambiar secuencia de bits en ACU 1 (32 bits)

12-13

TAK

TAK

Intercambiar ACU 1 y ACU 2

4-2

TAN

TAN

Tangente de un nmero en coma flotante (32 bits, IEEEFP)

10-7

TAR

CAR

Intercambiar registro de direcciones 1 y registro de direcciones 2

8-11

TAR1

TAR1

Transferir registro de direcciones 1 a ACU 1 (si no se indica operando)

8-11

TAR1

TAR1

Transferir registro de direcciones 1 a ... (al operando indicado)

8-11

TAR1

TAR1

Transferir registro de direcciones 1 a registro de direcciones 2 (T AR1 AR2)

8-11

TAR2

TAR2

Transferir registro de direcciones 2 a ACU 1 (si no se indica operando)

8-11

TAR2

TAR2

Transferir registro de direcciones 2 a ... (al operando indicado)

8-11

TAW

CAW

Cambiar secuencia de bytes en ACU 1 (16 bits)

12-13

TDB

CDB

Intercambiar bloque de datos global y bloque de datos de instancia

15-2

TRUNC

TRUNC

Truncar

12-12

5-10

U(

A(

Y con abrir parntesis

5-14

UC

UC

llamada incondicionada

17-7

UD

AD

Y con palabra doble (32 bits)

13-6

UN

AN

Y-No

5-9

UN(

AN(

Y-No con abrir parntesis

5-14

UW

AW

Y con palabra (16 bits)

13-3

O-exclusiva

5-10

X(

X(

O-exclusiva con abrir parntesis

5-14

XN

XN

O-exclusiva-NO

5-9

XN(

XN(

O-exclusiva-NO con abrir parntesis

5-14

XOD

XOD

O-exclusiva con palabra doble (32 bits)

13-6

XOW

XOW

O-exclusiva con palabra (16 bits)

13-3

ZR

CD

Decrementar contador

13-5

ZV

CU

Incrementar contador

13-5

A-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

La tabla A-2 contiene el ndice alfabtico de las abreviaturas nemotcnicas


internacionales y de las abreviaturas alemanas de las operaciones AWL. Junto a
cada abreviatura figura el nombre completo de la operacin en espaol y la pgina
en que viene explicada la operacin.
Tabla A-2

Indice alfabtico de las abreviaturas nemotcnicas internacionales (ingls) y sus equivalentes alemanes

Nemotcnica
internacional

Nemotcnica
SIMATIC

Descripcin

Pg.
n

Sumar constante entera (8, 16, 32 bits)

9-6

Asignar

5-24

Cerrar parntesis

5-14

+AR1

+AR1

Sumar ACU 1 a registro de direcciones 1

4-7

+AR2

+AR2

Sumar ACU 1 a registro de direcciones 2

4-7

+D

+D

Sumar ACU 1 y 2 como entero doble (32 bits)

15-2

-D

-D

Restar ACU 1 de ACU 2 como entero doble (32 bits)

15-2

*D

*D

Multiplicar ACU 1 por ACU 2 como entero doble (32 bits)

15-2

/D

/D

Dividir ACU 2 entre ACU 1 como entero doble (32 bits)

15-2

==D

==D

Comparar enteros dobles (32 bits) >, <, >=, <=, ==, <>

11-3

+I

+I

Sumar ACU 1 y 2 como entero (16 bits)

15-2

-I

-I

Restar ACU 1 de ACU 2 como entero (16 bits)

15-2

*I

*I

Multiplicar ACU 1 por ACU 2 como entero (16 bits)

15-2

/I

/I

Dividir ACU 2 entre ACU 1 como entero (16 bits)

15-2

==I

==I

Comparar enteros (16 bits) >, <, >=, <=, ==, <>

11-3

+R

+R

Sumar ACU 1 y 2 como nmero en coma flotante (32 bits, IEEE-FP)

10-2

-R

-R

Restar ACU 1 de ACU 2 como nmero en coma flotante (32 bits, IEEE-FP)

10-2

*R

*R

Multiplicar ACU 1 por ACU 2 como nmero en coma flotante (32 bits, IEEEFP)

10-2

/R

/R

Dividir ACU 2 entre ACU 1 como nmero en coma flotante (32 bits, IEEE-FP)

10-2

==R

==R

Comparar nmeros en coma flotante >, <, >=, <=, ==, <>

11-5

5-10

A(

U(

Y con abrir parntesis

5-14

ABS

ABS

Valor absoluto de un nmero en coma flotante (32 bits, IEEE-FP)

10-6

ACOS

ACOS

Arco coseno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

AD

UD

Y con palabra doble (32 bits)

13-6

AN

UN

Y-No

5-9

AN(

UN(

Y-No con abrir parntesis

5-14

ASIN

ASIN

Arco seno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

ATAN

ATAN

Arco tangente de un nmero en coma flotante (32 bits, IEEEFP)

10-7

AW

UW

Y con palabra (16 bits)

13-3

BEC

BEB

Fin de bloque condicionado

17-16

BEU

BEA

Fin de bloque incondicionado

17-16

BLD

BLD

Instruccin de visualizacin (NOP)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

4-2

A-7

Indice alfabtico de las operaciones

Tabla A-2

Indice alfabtico de las abreviaturas nemotcnicas internacionales (ingls) y sus equivalentes alemanes

Nemotcnica
internacional

Nemotcnica
SIMATIC

Descripcin

Pg.
n

BTD

BTD

Convertir de BCD a entero doble (32 bits)

12-4

BTI

BTI

Convertir de BCD a entero (16 bits)

12-2

CAD

TAD

Cambiar secuencia de bytes en ACU 1 (32 bits)

CALL

CALL

Llamada de bloque

17-3

CAR

TAR

Intercambiar registro de direcciones 1 y registro de direcciones 2

8-11

CAW

TAW

Cambiar secuencia de bytes en ACU 1 (16 bits)

CC

CC

llamada de bloque condicionada

17-7

CD

ZR

Decrementar contador

13-5

CDB

TDB

Intercambiar bloque de datos global y bloque de datos de instancia

15-2

CLR

CLR

Desactivar RLO (= 0)

5-26

COS

COS

Coseno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

CU

ZV

Incrementar contador

13-5

DEC

DEC

Decrementar ACU 1

4-6

DTB

DTB

Convertir de entero doble (32 bits) a BCD

12-6

DTR

DTR

Convertir de entero doble (32 bits) a nmero en coma flotante (32 bits, IEEE-FP)

12-7

ENT

ENT

ACU 3 ---> ACU 4, ACU 2 ---> ACU 3

4-3

EXP

EXP

Valor exponencial de un nmero en coma flotante (32 bits, IEEEFP) con base e

FN

FN

Flanco negativo

5-17

FP

FP

Flanco positivo

5-16

FR

FR

Desbloquear contador (libre, FR Z 0 a C 255)

6-5

FR

FR

Desbloquear temporizador (libre, FR T 0 a C 255)

13-3

INC

INC

Incrementar ACU 1

4-6

INVD

INVD

Complemento a uno entero doble (32 bits)

12-14

INVI

INVI

Complemento a uno entero (16 bits)

12-14

ITB

ITB

Convertir de entero (16 bits) a BCD

12-5

ITD

ITD

Convertir de entero (16 bits) a entero doble (32 bits)

12-6

JBI

SPBI

Salto si RB = 1

16-4

JC

SPB

Salto si RLO = 1

16-4

JCB

SPBB

Salto si RLO = 1 con RB

16-4

JCN

SPBN

Salto si RLO = 0

16-4

JL

SPL

Salto a meta

16-3

JM

SPM

Salto si resultado es negativo

16-6

JMZ

SPMZ

Salto si resultado < = 0

16-6

JN

SPN

Salto si resultado no es 0

16-6

JNB

SPBNB

Salto si RLO = 0 con RB

16-4

JNBI

SPBIN

Salto si RB = 0

16-4

JO

SPO

Salto si OV = 1

16-5

JOS

SPS

Salto si OS = 1

16-5

A-8

12-13

12-13

10-12

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

Tabla A-2

Indice alfabtico de las abreviaturas nemotcnicas internacionales (ingls) y sus equivalentes alemanes

Nemotcnica
internacional

Nemotcnica
SIMATIC

Descripcin

Pg.
n

JP

SPP

Salto si es positivo

16-6

JPZ

SPPZ

Salto si resultado > = 0

16-6

JU

SPA

salto incondicionado

16-3

JUO

SPU

Salto si no es vlido

16-6

JZ

SPZ

Salto si resultado = 0

16-6

Cargar

8-3

Cargar longitud del bloque de datos global en ACU 1 (L DBLG)

8-12

Cargar nmero del bloque de datos global en ACU 1 (L DBNO)

8-12

Cargar longitud del bloque de datos de instancia en ACU 1 (DILG)

8-12

Cargar nmero del bloque de datos de instancia en ACU 1 (DINO)

15-2

Cargar palabra de estado en ACU 1 (L STW)

8-6

Cargar valor actual del temporizador en ACU 1 como entero (pudiendo tener el
temporizador actual un nmero comprendido entre 0 y 255, por ej.: L T 32)

8-7

Cargar valor actual del contador en ACU 1 como entero (pudiendo tener el contador actual un nmero comprendido entre 0 y 255, por ej.: L Z 15)

8-8

LAR1

LAR1

Cargar contenido de ACU 1 en registro de direcciones 1


(si no se indica operando)

8-11

LAR1

LAR1

Cargar contenido de ... (del operando indicado) en registro de direcciones 1

8-11

LAR1

LAR1

Cargar contenido de registro de direcciones 2 en registro de direcciones 1


(LAR 1 AR2)

8-11

LAR1

LAR1

Cargar entero doble (32 bits, LAR1 P#area byte.bit) en registro de direcciones 1

8-11

LAR2

LAR2

Cargar contenido de ACU 1 en registro de direcciones 2


(si no se indica operando)

8-11

LAR2

LAR2

Cargar contenido de ... (del operando indicado) en registro de direcciones 2

8-11

LAR2

LAR2

Cargar entero doble (32 bits, LAR2 P#area byte.bit) en registro de direcciones 2

8-11

LC

LC

Cargar valor actual del contador en ACU 1 como nmero BCD (pudiendo tener
el contador actual un nmero comprendido entre 0 y 255, p. ej.: LC Z 15)

8-9

LC

LC

Cargar valor actual del temporizador en ACU 1 como nmero BCD


(pudiendo tener el temporizador actual un nmero comprendido entre 0 y 255,
p. ej.: LC T 32)

8-10
4-3

LEAVE

LEAVE

ACU 3 ---> ACU 2, ACU 4 ---> ACU 3

LN

LN

Logaritmo natural de un nmero en coma flotante (32 bits, IEEEFP)

LOOP

LOOP

Bucle

MCR(

MCR(

Salvar RLO en pila MCR, comienzo rea MCR

17-11

MCR)

)MCR

Restablecer RLO de pila MCR, fin rea MCR

17-11

MCRA

MCRA

Activar rea MCR

17-11

MCRD

MCRD

Desactivar rea MCR

17-11

MOD

MOD

Resto de la divisin entero doble (32 bits)

9-5

NEGD

NEGD

Complemento a dos entero doble (32 bits)

12-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

10-11
16-8

A-9

Indice alfabtico de las operaciones

Tabla A-2

Indice alfabtico de las abreviaturas nemotcnicas internacionales (ingls) y sus equivalentes alemanes

Nemotcnica
internacional

Nemotcnica
SIMATIC

Descripcin

Pg.
n

NEGI

NEGI

Complemento a dos entero (16 bits)

12-14

NEGR

NEGR

Cambiar signo de un nmero en coma flotante

12-14

NOP 0

NOP 0

Operacin nula 0

4-2

NOP 1

NOP 1

Operacin nula 1

4-2

NOT

NOT

Negar RLO

5-26

5-10

O(

O(

O con abrir parntesis

5-14

OD

OD

O con palabra doble (32 bits)

13-6

ON

ON

O-No

5-9

ON(

ON(

O-No con abrir parntesis

5-14

OPN

AUF

Abrir bloque de datos

15-2

OW

OW

O con palabra (16 bits)

13-3

POP

POP

ACU 1 <--- ACU 2, ACU 2 <--- ACU 3, ACU 3 <--- ACU 4

4-2

PUSH

PUSH

ACU 3 ---> ACU 4, ACU 2 ---> ACU 3, ACU 1 ---> ACU 2

4-2

Desactivar

5-22

Desactivar contador (pudiendo tener el contador actual un nmero comprendido


entre 0 y 255, p. ej. R Z 15)

6-5

Desactivar temporizador (pudiendo tener el temporizador actual un nmero


comprendido entre 0 y 255, p. ej. R T 32)

13-4

RLD

RLD

Rotar palabra doble a la izquierda (32 bits)

14-6

RLDA

RLDA

Rotar ACU 1 a la izquierda va A1 (32 bits)

14-8

RND

RND

Redondear a entero

12-9

RND+

RND+

Redondear al prximo entero doble superior

12-10

RND-

RND-

Redondear al prximo entero doble inferior

12-11

RRD

RRD

Rotar palabra doble a la derecha (32 bits)

14-8

RRDA

RRDA

Rotar ACU 1 a la derecha va A1 (32 bits)

14-6

Activar

5-21

Poner contador al valor de arranque (pudiendo tener el contador actual un


nmero comprendido entre 0 y 255, p. ej. : S Z 15)

13-3

SAVE

SAVE

Salvar RLO en registro RB

5-26

SD

SE

Temporizador de retardo a la conexin

6-11

SE

SV

Temporizador de disparo mediante impulso prolongado

6-9

SET

SET

Activar RLO (= 1)

5-26

SF

SA

Temporizador retardado a la desconexin

6-15

SP

SI

Temporizador de disparo mediante impulso

6-7

SIN

SIN

Seno de un nmero en coma flotante (32 bits, IEEEFP)

10-7

SLD

SLD

Desplazar palabra doble a la izquierda (32 bits)

14-2

SLW

SLW

Desplazar palabra a la izquierda (16 bits)

14-2

A-10

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

Tabla A-2

Indice alfabtico de las abreviaturas nemotcnicas internacionales (ingls) y sus equivalentes alemanes

Nemotcnica
internacional

Nemotcnica
SIMATIC

Descripcin

Pg.
n

SQR

SQR

Cuadrado de un nmero en coma flotante (32 bits, IEEEFP)

10-9

SQRT

SQRT

Raz cuadrada de un nmero en coma flotante (32 bits, IEEEFP)

10-9

SRD

SRD

Desplazar palabra doble a la derecha (32 bits)

14-3

SRW

SRW

Desplazar palabra a la derecha (16 bits)

14-2

SS

SS

Temporizador retardado a la conexin con memoria (32 bits)

6-13

SSD

SSD

Desplazar signo entero doble (32 bits)

14-4

SSI

SSI

Desplazar signo entero (16 bits)

14-4

Transferir

8-3

Transferir ACU 1 a la palabra de estado (T STW)

8-6

TAK

TAK

Intercambiar ACU 1 y ACU 2

4-2

TAN

TAN

Tangente de un nmero en coma flotante (32 bits, IEEEFP)

10-7

TAR1

TAR1

Transferir registro de direcciones 1 a ACU 1 (si no se indica operando)

8-11

TAR1

TAR1

Transferir registro de direcciones 1 a ... (al operando indicado)

8-11

TAR1

TAR1

Transferir registro de direcciones 1 a registro de direcciones 2 (T AR1 AR2)

8-11

TAR2

TAR2

Transferir registro de direcciones 2 a ACU 1 (si no se indica operando)

8-11

TAR2

TAR2

Transferir registro de direcciones 2 a ... (al operando indicado)

8-11

TRUNC

TRUNC

Truncar

UC

UC

Llamada de bloque incondicionada

17-7

O-exclusiva

5-10

X(

X(

O-exclusiva con abrir parntesis

5-14

XN

XN

O-exclusiva-NO

5-9

XN(

XN(

O-exclusiva-NO con abrir parntesis

5-14

XOD

XOD

O-exclusiva con palabra doble (32 bits)

13-6

XOW

XOW

O-exclusiva con palabra (16 bits)

13-3

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

12-12

A-11

Indice alfabtico de las operaciones

A.2

Indice alfabtico de las operaciones AWL en espaol


La tabla A-3 contiene el ndice alfabtico de los nombres de las operaciones AWL
en espaol con las abreviaturas alemanas y las pginas correspondientes.

Tabla A-3

Indice alfabtico de las operaciones AWL en espaol


Descripcin

Nemotcnica
alemana

Pgina
n

Abrir bloque de datos

AUF

15-2

Activar

5-21

Activar rea MCR

MCRA

17-11

Activar RLO (= 1)

SET

5-26

ACU 1 <--- ACU 2, ACU 2 <--- ACU 3, ACU 3 <--- ACU 4

POP

4-2

ACU 3 ---> ACU 2, ACU 4 ---> ACU 3

LEAVE

4-3

ACU 3 ---> ACU 4, ACU 2 ---> ACU 3

ENT

4-3

ACU 3 ---> ACU 4, ACU 2 ---> ACU 3, ACU 1 ---> ACU 2

PUSH

4-2

Asignar

5-24

Bucle

LOOP

16-8

Cambiar secuencia de bytes en ACU 1 (16 bits)

TAW

12-13

Cambiar secuencia de bytes en ACU 1 (32 bits)

TAD

12-13

Cargar

8-3

Cargar contenido de ... (del operando indicado) en registro de direcciones 1

LAR1

8-11

Cargar contenido de ACU 1 en registro de direcciones 1


(si no se indica operando)

LAR1

8-11

Cargar contenido de ACU 1 en registro de direcciones 2


(si no se indica operando)

LAR2

8-11

Cargar contenido de ... (del operando indicado) en registro de direcciones 1

LAR1

8-11

Cargar contenido de ... (del operando indicado) en registro de direcciones 2

LAR2

8-11

Cargar entero doble (32 bits, LAR1 P#area byte.bit) en registro de direcciones 1

LAR1

8-11

Cargar entero doble (32 bits, LAR2 P#area byte.bit) en registro de direcciones 2

LAR2

8-11

Cargar longitud del bloque de datos global en ACU 1 (L DBLG)

8-12

Cargar longitud del bloque de datos de instancia en ACU 1 ( L DILG)

8-12

Cargar nmero del bloque de datos global en ACU 1 (L DBNO)

8-12

Cargar nmero del bloque de datos de instancia en ACU 1 (L DINO)

8-12,

Cargar palabra de estado en ACU 1 (L STW)

8-6

Cargar registro de direcciones 1 en registro de direcciones 2 (LAR 1 AR2)

LAR1

8-11

Cargar valor actual del contador en ACU 1 como entero (pudiendo tener el contador actual un
nmero comprendido entre 0 y 255, por ej.: L Z 15)

7-6

Cargar valor actual del contador en ACU 1 como nmero BCD (pudiendo tener el contador
actual un nmero comprendido entre 0 y 255, p. ej.: LC Z 15)

LC

8-9

Cargar valor actual del temporizador en ACU 1 como entero (pudiendo tener el temporizador
actual un nmero comprendido entre 0 y 255, por ej.: L T 32)

8-7

Cargar valor actual del temporizador en ACU 1 como nmero BCD


(pudiendo tener el temporizador actual un nmero comprendido entre 0 y 255, p. ej.: LC T 32)

LC

8-10

A-12

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

Tabla A-3

Indice alfabtico de las operaciones AWL en espaol


Descripcin

Nemotcnica
alemana

Pgina
n

Cerrar parntesis

5-14

Comparar enteros (16 bits) >, <, >=, <=, ==, <>

==I

11-3

Comparar enteros dobles (32 bits) >, <, >=, <=, ==, <>

==D

11-3

Comparar nmeros en coma flotante >, <, >=, <=, ==, <>

==R

11-5

Complemento a dos entero (16 bits)

NEGI

12-14

Complemento a dos entero doble (32 bits)

NEGD

12-14

Cambiar signo de un nmero en coma flotante

NEGR

12-14

Complemento a uno entero (16 bits)

INVI

12-14

Complemento a uno entero doble (32 bits)

INVD

12-14

Convertir de BCD a entero (16 bits)

BTI

12-2

Convertir de BCD a entero doble (32 bits)

BTD

12-4

Convertir de entero (16 bits) a BCD

ITB

12-5

Convertir de entero (16 bits) a entero doble (32 bits)

ITD

12-6

Convertir de entero doble (32 bits) a BCD

DTB

12-6

Convertir de entero doble (32 bits) a nmero en coma flotante (32 bits, IEEE-FP)

DTR

12-7

Decrementar ACU 1

DEC

4-6

Decrementar contador

ZR

7-5

Desactivar

5-22

Desactivar rea MCR

MCRD

17-11

Desactivar contador (pudiendo tener el contador actual un nmero comprendido entre 0 y 255,
p. ej. R Z 15)

6-5

Desactivar RLO (= 0)

CLR

5-26

Desactivar temporizador (pudiendo tener el contador actual un nmero comprendido entre 0 y


255, p. ej. R T 32)

7-4

Desbloquear contador (libre, FR Z 0 a C 255)

FR

6-5

Desbloquear temporizador (libre, FR T 0 a C 255)

FR

7-3

Desplazar palabra a la derecha (16 bits)

SRW

14-2

Desplazar palabra a la izquierda (16 bits)

SLW

14-2

Desplazar palabra doble a la derecha (32 bits)

SRD

14-3

Desplazar palabra doble a la izquierda (32 bits)

SLD

14-2

Desplazar signo entero (16 bits)

SSI

14-4

Desplazar signo entero doble (32 bits)

SSD

14-4

Dividir ACU 2 entre ACU 1 como entero doble (32 bits)

/D

9-2

Dividir ACU 2 entre ACU 1 como entero (16 bits)

/I

9-2

Dividir ACU 2 entre ACU 1 como nmero en coma flotante (32 bits, IEEE-FP)

/R

10-2

Fin de bloque condicionado

BEB

17-16

Fin de bloque incondicionado

BEA

17-16

Flanco negativo

FN

5-17

Flanco positivo

FP

5-16

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

A-13

Indice alfabtico de las operaciones

Tabla A-3

Indice alfabtico de las operaciones AWL en espaol


Descripcin

Nemotcnica
alemana

Pgina
n

Incrementar ACU 1

INC

4-6

Incrementar contador

ZV

7-5

Instruccin de visualizacin (NOP)

BLD

4-2

Intercambiar ACU 1 y ACU 2

TAK

4-2

Intercambiar bloque de datos global y bloque de datos de instancia

TDB

15-2

Intercambiar registro de direcciones 1 y registro de direcciones 2

TAR

8-11

Llamada

CALL

17-3

Llamada condicionada

CC

17-7

Llamada incondicionada

UC

17-7

Multiplicar ACU 1 por ACU 2 como entero (16 bits)

*I

9-2

Multiplicar ACU 1 por ACU 2 como entero doble (32 bits)

*D

9-2

Multiplicar ACU 1 por ACU 2 como nmero en coma flotante (32 bits, IEEE-FP)

*R

10-2

Negar RLO

NOT

5-26

5-10

O con abrir parntesis

O(

5-14

O con palabra (16 bits)

OW

13-3

O con palabra doble (32 bits)

OD

13-6

O-exclusiva

5-10

O-exclusiva con abrir parntesis

X(

5-14

O-exclusiva con palabra (16 bits)

XOW

13-3

O-exclusiva con palabra doble (32 bits)

XOD

13-6

O-No

ON

5-9

O-No con abrir parntesis

ON(

5-14

O-exclusiva-NO

XN

5-9

O-exclusiva-NO con abrir parntesis

XN(

5-14

Operacin nula 0

NOP 0

4-2

Operacin nula 1

NOP 1

4-2

Poner contador al valor de arranque (pudiendo tener el contador actual un nmero comprendido
entre 0 y 255, p. ej. : S Z 15)

7-3

Redondear a entero

RND

12-9

Redondear al prximo entero doble inferior

RND-

12-11

Redondear al prximo entero doble superior

RND+

12-10

Restablecer RLO de pila MCR, fin rea MCR

)MCR

17-11

Restar ACU 1 de ACU 2 como entero (16 bits)

-I

9-2

Restar ACU 1 de ACU 2 como entero doble (32 bits)

-D

9-2

Restar ACU 1 de ACU 2 como nmero en coma flotante (32 bits, IEEE-FP)

-R

10-2

Resto de la divisin entero doble (32 bits)

MOD

9-5

Rotar ACU 1 a la derecha va A1 (32 bits)

RRDA

14-6

A-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico de las operaciones

Tabla A-3

Indice alfabtico de las operaciones AWL en espaol


Descripcin

Nemotcnica
alemana

Pgina
n

Rotar ACU 1 a la izquierda va A1 (32 bits)

RLDA

14-8

Rotar palabra doble a la derecha (32 bits)

RRD

14-8

Rotar palabra doble a la izquierda (32 bits)

RLD

14-6

Salto a meta

SPL

16-3

salto incondicionado

SPA

16-3

Salto si resultado < 0

SPM

16-6

Salto si resultado > 0

SPP

16-6

Salto si resultado no es 0

SPN

16-6

Salto si resultado no es vlido

SPU

16-6

Salto si OS = 1

SPS

16-5

Salto si OV = 1

SPO

16-5

Salto si RB = 0

SPBIN

16-4

Salto si RB = 1

SPBI

16-4

Salto si resultado < = 0

SPMZ

16-6

Salto si resultado = 0

SPZ

16-6

Salto si resultado > = 0

SPPZ

16-6

Salto si RLO = 0

SPBN

16-4

Salto si RLO = 1

SPB

16-4

Salto si RLO = 1 con RB

SPBB

16-4

Salto si RLO = 0 con RB

SPBNB

16-4

Salvar RLO en pila MCR, comienzo rea MCR

MCR(

17-11

Salvar RLO en registro RB

SAVE

5-26

Sumar ACU 1 a registro de direcciones 1

+AR1

4-7

Sumar ACU 1 a registro de direcciones 2

+AR2

4-7

Sumar ACU 1 y 2 como entero (16 bits)

+I

9-2

Sumar ACU 1 y 2 como entero doble (32 bits)

+D

9-2

Sumar acumulador 1 y 2 como nmero en coma flotante (32 bits, IEEE-FP)

+R

10-2

Sumar constante entera (8, 16, 32 bits)

9-6

Temporizador de disparo mediante impulso

SI

6-7

Temporizador de disparo mediante impulso prolongado

SV

6-9

Temporizador de retardo a la conexin

SE

6-11

Temporizador retardado a la conexin con memoria

SS

6-13

Temporizador retardado a la desconexin

SA

6-15

Transferir

8-3

Transferir ACU 1 a la palabra de estado (T STW)

8-6

Transferir registro de direcciones 1 a registro de direcciones 2 (TAR1 AR2)

TAR1

8-11

Transferir registro de direcciones 1 a ACU 1 (si no se indica operando)

TAR1

8-11

Transferir registro de direcciones 1 a ... (al operando indicado)

TAR1

8-11

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

A-15

Indice alfabtico de las operaciones

Tabla A-3

Indice alfabtico de las operaciones AWL en espaol


Descripcin

Nemotcnica
alemana

Pgina
n

Transferir registro de direcciones 2 a ACU 1 (si no se indica operando)

TAR2

8-11

Transferir registro de direcciones 2 a ... (al operando indicado)

TAR2

8-11

Truncar

TRUNC

12-12

Valor absoluto de un nmero en coma flotante (32 bits, IEEE-FP)

ABS

10-6

5-10

Y con abrir parntesis

U(

5-14

Y con palabra (16 bits)

UW

13-3

Y con palabra doble (32 bits)

UD

13-6

Y-No

UN

5-9

Y-No con abrir parntesis

UN(

5-14

Arco coseno de un nmero en coma flotante (32 bits, IEEEFP)

ACOS

10-7

Arco seno de un nmero en coma flotante (32 bits, IEEEFP)

ASIN

10-7

Arco tangente de un nmero en coma flotante (32 bits, IEEEFP)

ATAN

10-7

Coseno de un nmero en coma flotante (32 bits, IEEEFP)

COS

10-7

Valor exponencial de un nmero en coma flotante (32 bits, IEEEFP)

EXP

10-12

Logaritmo natural de un nmero en coma flotante (32 bits, IEEEFP)

LN

10-11

Seno de un nmero en coma flotante (32 bits, IEEEFP)

SIN

10-7

Cuadrado de un nmero en coma flotante (32 bits, IEEEFP)

SQR

10-9

Raz cuadrada de un nmero en coma flotante (32 bits, IEEEFP)

SQRT

10-9

Tangente de un nmero en coma flotante (32 bits, IEEEFP)

TAN

10-7

A-16

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Ejemplos de programacin

Indice del anexo

Apartado

Tema

Pgina

B.1

Resumen breve

B-2

B.2

Operaciones lgicas con bits

B-3

B.3

Operaciones de temporizacin

B-7

B.4

Operaciones de contaje y comparacin

B-10

B.5

Operaciones aritmticas con enteros

B-12

B.6

Operaciones lgicas con palabras

B-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

B-1

Ejemplos de programacin

B.1

Resumen breve

Aplicaciones
prcticas

Cada una de las operaciones AWL descritas en este manual activa una determinada
funcin. Combinando estas operaciones en un programa se puede llevar a cabo una
gran variedad de tareas de automatizacin. En este captulo encontrar algunos
ejemplos prcticos de aplicacin de las operaciones AWL:

S Controlar una cinta transportadora mediante operaciones lgicas de bits


S Detectar el sentido de transporte de una cinta transportadora mediante operaciones lgicas de bits

S Generar un impulso de reloj mediante operaciones de temporizacin


S Vigilar el rea de almacenamiento mediante operaciones de contaje y comparacin

S Realizar clculos mediante operaciones aritmticas con enteros.


S Ajustar la duracin para calentar una caldera.
En caso de crear un archivo de fuente para importarlo en el editor (AWL) es preciso
seguir las convenciones indicadas en el apndice C.

Operaciones
utilizadas

Los ejemplos de este captulo utilizan las operaciones siguientes:

S U (Y) e UN (Y NO)
S = (Asignar)
S BE (Fin de bloque) y BEB (Fin de bloque condicionado)
S 16 bits, <=, >= (Comparar enteros)
S ZR (Decrementar contador) y ZV (Incrementar contador)
S FP (Flanco positivo)
S SV (Arrancar temporizador como impulso prolongado)
S INC (Incrementar ACU 1)
S Operaciones aritmticas con enteros (16 bits)
+I: Sumar ACU 1 y ACU 2 como entero
/I: Dividir ACU 2 por ACU 1 como entero
*I: Multiplicar ACU 1 y 2 como entero

S L (Cargar) y T (Transferir)
S NOT (Negar RLO)
S O (O) y ON (O No)
S S (Activar) y R (Desactivar)
S Y con palabra, O con palabra (Lgica de palabras)

B-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Ejemplos de programacin

B.2

Operaciones lgicas con bits

Controlar una
cinta
transportadora

La figura B-1 muestra una cinta transportadora que puede activarse elctricamente.
Al principio de la cinta se encuentran dos pulsadores: S1 para START y S2 para
STOP. Al final de la cinta se encuentran dos pulsadores ms: S3 para START y S4
para STOP. La cinta puede ponerse en marcha y detenerse desde ambos extremos.
Adems, el sensor S5 detiene la cinta cuando una pieza llega al final de la misma.

Programacin
simblica

Para controlar la cinta transportadora representada en la figura B-1 se puede escribir


un programa representando los distintos componentes del sistema de transporte en
forma de smbolos. En caso de optar por este mtodo, hay que crear una lista de seales para establecer una correspondencia entre los smbolos elegidos y valores absolutos (v. tabla B-1). En la tabla B-3 se compara un programa AWL que utiliza
smbolos como operandos con un programa que utiliza valores absolutos como operandos. Para crear la lista de smbolos hay que utilizar la Tabla de smbolos (v. Manual de usuario /231/).
Tabla B-1

Elementos de programacin simblica para sistemas de transporte

Componente

Designacin
absoluta

Smbolo

Tabla de smbolos

Pulsador start

E 1.1

S1

E 1.1

S1

Pulsador stop

E 1.2

S2

E 1.2

S2

Pulsador start

E 1.3

S3

E 1.3

S3

Pulsador stop

E 1.4

S4

E 1.4

S4

Sensor

E 1.5

S5

E 1.5

S5

Motor

A 4.0

MOTOR_ON

A 4.0

MOTOR_ON

Sensor S5

MOTOR_ON
Figura B-1

S1
S2

` Start
` Stop

S3
S4

` Start
` Stop

Sistemas de transporte

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

B-3

Ejemplos de programacin

Programacin absoluta

Para controlar la cinta transportadora representada en la figura B-1 se puede escribir


un programa representando los distintos componentes del sistema de transporte con
la ayuda de valores absolutos (v. tabla B-2). La tabla B-3 compara un programa
AWL que utiliza valores absolutos con un programa que utiliza smbolos como operandos. A continuacin de las tablas se explica el programa.
Tabla B-2

Elementos de programacin absoluta para sistema de transporte


Componente

Accionar pulsador start

E 1.1

Accionar pulsador start

E 1.2

Accionar pulsador start

E 1.3

Accionar pulsador start

E 1.4

Sensor

E 1.5

Motor

A 4.0

Tabla B-3

Programas simblicos y absolutos para controlar una cinta transportadora


Programa simblico
O
O
S
O
O
ON
R

AWL
O
O
S
O
O
ON
R

B-4

Designacin absoluta

S1
S3
MOTOR_ON
S2
S4
S5
MOTOR_ON

Programa absoluto
O
O
S
O
O
ON
R

E 1.1
E 1.3
A 4.0
E 1.2
E 1.4
E 1.5
A 4.0

Explicacin
E
E
A
E
E
E
A

1.1
1.3
4.0
1.2
1.4
1.5
4.0

Accionando cualquiera de los pulsadores start arranca el motor.

Accionando cualquiera de los pulsadores stop o abriendo


el contacto normalmente cerrado al final de la cinta se
para el motor.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Ejemplos de programacin

Detectar el sentido
de una cinta
transportadora

La figura B-2 muestra una cinta transportadora equipada con dos barreras fotoelctricas (BF 1 y BF 2). Las barreras fotoelctricas debern detectar en qu sentido se
mueve el paquete sobre la cinta. Cada una de las dos barreras fotoelctricas funciona igual que un contacto normalmente cerrado (v. apt. 5.1).

Programacin
simblica

Se puede escribir un programa que active el indicador del sentido de transporte de la


cinta transportadora ilustrada en la figura B-2 representando los distintos
componentes del sistema - incluidas las barreras fotoelctricas para detectar el
sentido de transporte- mediante smbolos. En caso de optar por este mtodo, se
deber crear una lista de seales para establecer una correspondencia entre los
smbolos elegidos y valores absolutos (v. tabla B-4). En la tabla B-6 se compara un
programa AWL que utiliza smbolos como operandos con otro programa que utiliza
valores absolutos como operandos. Para crear la lista de smbolos hay que utilizar la
tabla de smbolos (v. la Ayuda en pantalla de STEP 7).
Tabla B-4

Elementos de programacin simblica para detectar el sentido de transporte

Componente

A 4.0

Figura B-2

Designacin
absoluta

Smbolo

Tabla de smbolos

Barrera fotoelctrica 1

E 0.0

BF1

E 0.0

BF1

Barrera fotoelctrica 2

E 0.1

BF2

E 0.1

BF2

Indicador de movimiento
a la derecha

A 4.0

DER

A 4.0

DER

Indicador de movimiento
a la izquierda

A 4.1

IZQ

A 4.1

IZQ

Pulsar bit de marcas 1

M 0.0

PBM1

M 0.0

PBM1

Pulsar bit de marcas 2

M 0.1

PBM2

M 0.1

PBM2

LS2

LS1

A 4.1

Sistema de transporte con barreras fotoelctricas para detectar el sentido de transporte

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

B-5

Ejemplos de programacin

Programacin absoluta

Se puede escribir un programa que controle el indicador del sentido de transporte de


la cinta transportadora ilustrada en la figura B-2 representando las barreras
fotoelctricas necesarias mediante valores absolutos (v. tabla B-5). En la tabla B-6
se compara un programa AWL que utiliza valores absolutos como operandos con
otro programa que utiliza smbolos como operandos. A continuacin se hace una
explicacin del programa.
Tabla B-5

Elementos de programacin absoluta para detectar el sentido de transporte


Componente

Barrera fotoelctrica 1

E 0.0

Barrera fotoelctrica 2

E 0.1

Indicador de movimiento a la derecha

A 4.0

Indicador de movimiento a la izquierda

A 4.1

Pulsar bit de marcas 1

M 0.0

Pulsar bit de marcas 2

M 0.1

Tabla B-6

Programacin simblica y absoluta para detectar el sentido de transporte


Programacin simblica
U
FP
UN
S
U
FP
UN
S
UN
UN
R
R

AWL

Designacin absoluta

BF 1
PBM1
BF2
IZQ
BF2
PBM2
BF1
DER
BF1
BF2
DER
IZQ

Programacin absoluta
U
FP
UN
S
U
FP
UN
S
UN
UN
R
R

E 0.0
M 0.0
E 0.1
A 4.1
E 0.1
M 0.1
E 0.0
A 4.0
E 0.0
E 0.1
A 4.0
A 4.1

Explicacin

U
FP
UN
S

E
M
E
A

0.0
0.0
0.1
4.1

Si el estado de seal cambia de 0 a 1 (flanco positivo) en la


entrada E 0.0 y, al mismo tiempo, el estado de seal de la
entrada E 0.1 es 0, significa que el paquete que transporta la
cinta se est moviendo a la izquierda.

U
FP
UN
S

E
M
E
A

0.1
0.1
0.0
4.0

Si el estado de seal cambia de 0 a 1 (flanco positivo) en la


entrada E 1.0 y, al mismo tiempo, el estado de seal de la
entrada E 0.0 es 0, significa que el paquete que transporta la
cinta se est moviendo a la derecha. Si una de las barreras
fotoelctricas se interrumpe, significa que hay un paquete
entre las barreras.

UN
UN
R
R

E
E
A
A

0.0
0.1
4.0
4.1

Si ninguna de las barreras fotoelctricas est interrumpida,


significa que no hay ningn paquete entre las barreras. El
puntero del sentido de transporte se desconecta.

B-6

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Ejemplos de programacin

B.3

Operaciones de temporizacin

Generador de
impulsos de reloj

Para producir una seal que se repita peridicamente se utiliza un generador de impulsos de reloj o un rel de intermitencias. El empleo de generadores de impulsos de
reloj es habitual en los sistemas de sealizacin que controlan la intermitencia de las
lmparas de indicacin.
En caso de utilizar la S7-300, es posible implementar la funcin de generador de
impulsos de reloj utilizando un procesamiento controlado por tiempo en bloques de
organizacin especiales. El siguiente programa AWL de ejemplo muestra el empleo
de funciones de temporizacin para generar un impulso de reloj.
El ejemplo siguiente muestra cmo implementar un generador de impulsos utilizando un temporizador (factor de trabajo 1:1). La frecuencia se divide en los valores
listados en la tabla B-7.

AWL
UN
L
SV

Explicacin
T1
S5T#250ms
T1

Si se ha vencido el tiempo T1,


cargar el valor de temporizacin 250 ms en T1 y arrancar T1
como temporizador de impulso prolongado.

NOT
BEB

Negar (invertir) el resultado lgico.


Finalizar el bloque actual cuando el tiempo transcurra.

L
MB100
INC 1
T
MB100

Si se ha terminado el tiempo,
cargar el contenido del byte de marcas MB100, incrementar su
contenido en 1 y
transferir el resultado al byte de marcas MB100.

La consulta del estado de seal del temporizador T1 da el resultado lgico.

1
0
250 ms
Figura B-3

RLO de una instruccin UN T1 en el temporizador de impulso del ejemplo

El temporizador vuelve a arrancar tan pronto como haya transcurrido el tiempo programado. Por este motivo, la consulta efectuada por la instruccin UN T1 produce
el estado de seal 1 slo brevemente.
La figura B4 muestra la estructura del bit RLO negado (invertido).

1
0
250 ms
Figura B-4

Bit RLO negado del temporizador T1 en el temporizador de impulso del ejemplo

Cada 250 ms el bit RLO negado es 0. En este caso la operacin BEB no finaliza el
bloque, sino que se incrementa en 1 el contenido del byte de marcas MB100.
El contenido del byte de marcas MB100 cambia cada 250 de la forma siguiente:
0 !1!2!3! ... !254!255!0!1 ...
Lista de instrucciones (AWL) para S7-300 y S7-400
C79000-G7078-C565-01

B-7

Ejemplos de programacin

Obtener una
frecuencia
determinada

La tabla B-7 muestra las frecuencias que pueden obtenerse de cada uno de los bits
del byte de marcas MB100. El programa AWL que sigue a la tabla muestra cmo
emplear las frecuencias generadas.
Tabla B-7
Bits del
MB100

AWL
U
U
=

B-8

Frecuencias del temporizador de impulsos de reloj del ejemplo


Frecuencia en
hercios

Duracin

M100.0

2,0

0,5 s (250 ms on/250 ms off)

M100.1

1,0

1 s (0.5 s on/0.5 s off)

M100.2

0,5

2 s (1 s on/1 s off

M100.3

0,25

4 s (2 s on/2 s off)

M100.4

0,125

8 s (4 s on/4 s off)

M100.5

0,0625

16 s (8 s on/8 s off)

M100.6

0,03125

32 s (16 s on/16 s off)

M100.7

0,015625

64 s (32 s on/32 s off)

Explicacin
M10.0
M100.1
A 4.0

M10.0 = 1, cuando se produce un fallo.


La lmpara indicadora de fallos luce intermitentemente a una
frecuencia de 1 Hz cuando ocurre un fallo.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Ejemplos de programacin

La tabla B-8 muestra una lista de los estados de seal de los bits del byte de marcas
MB100. La figura B-5 muestra el RLO del bit de marcas M100.1
Tabla B-8

Estados de seal de los bits del byte de marcas MB100


Estado de seal de los bits del byte de marcas MB100
7

T empo
Tiempo
en ms

250

250

250

250

250

250

250

250

250

250

10

250

11

250

12

250

Ciclo

T
M 100.1

1
0
Tiempo
0

250 ms 0.5 s 0.75 s 1 s 1.25 s 1.5 s

Frecuencia + 1 + 1 + 1Hz
1s
T
Figura B-5

Estado de seal del bit 1 de MB100 (M100.1)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

B-9

Ejemplos de programacin

B.4

Operaciones de contaje y comparacin

Area de
almacenamiento
con contador y
comparador

La figura B-6 muestra un sistema de dos cintas transportadoras con un rea de


almacenamiento temporal entre ellas. La cinta 1 lleva paquetes al rea de
almacenamiento. Una barrera fotoelctrica situada al final de la cinta 1, junto al rea
de almacenamiento, se encarga de determinar cuntos paquetes se han suministrado
al rea de almacenamiento. La cinta 2 transporta paquetes desde el rea de
almacenamiento temporal a un cargador donde llegan camiones para recoger los
paquetes y suministrarlos a los clientes. Una barrera fotoelctrica al final de la cinta
transportadora 2, junto al rea de almacenamiento, determina cuntos paquetes salen
del rea hacia el cargador.
Un panel de cinco lmparas indica el nivel de llenado del rea de almacenamiento
temporal. El ejemplo que sigue a la figura B-6 es el programa que activa las lmparas de indicacin del panel.

Panel de indicadores

Area de
almacenamiento
vaca
(A 4.0)

Area de
almacenamiento
no vaca
(A 4.1)

E 0.0

Entrada
paquetes

Area de
almacenamiento
al 50%
(A 4.2)

Almacenamiento
temporal para
100 paquetes

Cinta transportadora 1
Barrera fotoelctrica 1

Figura B-6

B-10

Area de
almacenamiento
al 90%
(A 4.3)

E 0.1

Area de
almacenamiento
llena
(A 4.4)

Salida
paquetes

Cinta transportadora 2
Barrera fotoelctrica 2

Area de almacenamiento con contador y comparador

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Ejemplos de programacin

AWL

Explicacin

U
E 0.0
ZV Z1

Cada impulso generado por la barrera fotoelctrica 1 aumenta


el valor del contador Z1 en una unidad, contando as el nmero
de paquetes transportados al rea de almacenamiento.
Cada impulso generado por la barrera fotoelctrica 2 disminuye
el valor del contador Z1 en una unidad, contando as los
paquetes que salen del rea de almacenamiento.
Si el valor de contaje es 0, se enciende la lmpara indicadora
Area de almacenamiento vaca.
Si el valor de contaje no es 0, se enciende la lmpara
indicadora Area de almacenamiento no vaca.
Si el valor de contaje es menor o igual a 50, se enciende la
lmpara indicadora Area de almacenamiento al 50%.

U
ZR

E 0.1
Z1

UN
=
U
=
L

Z1
A 4.0
Z1
A 4.1
+50

L
<=I
=
L
>=I
=
L
L
>=I
=

Z1
A 4.2
+90
A 4.3
Z1
100
A 4.4

Si el valor de contaje es mayor o igual a 90, se enciende la


lmpara indicadora Area de almacenamiento al 90%.

Si el valor de contaje es mayor o igual a 100, se enciende la


lmpara indicadora Area de almacenamiento llena. (Tambin se
puede utilizar la salida A 4.4 para bloquear la cinta
transportadora 1.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

B-11

Ejemplos de programacin

B.5

Operaciones aritmticas con enteros

Resolver un problema aritmtico

El siguiente programa de ejemplo (slo para S7-300) muestra cmo utilizando tres
operaciones aritmticas de enteros y las operaciones Cargar y Transferir se obtiene
el mismo resultado que en la ecuacin siguiente:
MD4 +

STL
L
L

EW0
DB5.DBW3

+15

MW2

/I

B-12

15

Explicacin

+I

(EW0 ) DB5.DBW3)
MW2

MD4

Cargar el valor de la palabra de entrada EW0 en el ACU 1.


Cargar el valor de la palabra de datos global DBW3 del DB5 en
el ACU 1. El antiguo contenido del ACU 1 se desplaza al ACU 2.
Sumar el contenido de las palabras bajas de los ACUs 1 y 2. El
resultado se deposita en la palabra baja del ACU 1. El
contenido del ACU 2 y la palabra alta del ACU 1 permanecen
inalterados.
Cargar el valor constante +15 en el ACU 1. El antiguo
contenido del ACU 1 se desplaza al ACU 2.
Multiplicar el contenido de la palabra baja del ACU 2 por el
contenido de la palabra baja del ACU 1. El resultado se deposita
en el ACU 1. El contenido del ACU 2 permanece inalterado.
Cargar el valor de la palabra de marcas MW2 en el ACU 1. El
antiguo contenido del ACU 1 se desplaza al ACU 2.
Dividir el contenido de la palabra baja del ACU 2 por el
contenido de la palabra baja del ACU 1. El resultado se deposita
en el ACU 1. El contenido del ACU 2 permanece inalterado.
Transferir el resultado final a la palabra doble de marcas
MD4. El contenido de ambos acumuladores permanece inalterado.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Ejemplos de programacin

La figura B-7 muestra la relacin entre el programa y la ecuacin.

ACU 1

ACU2

EW0

(EW0)

(contenido antiguo)

DBW3

(DBW3)
+

(EW0) + (DBW3)

(EW0)

15

+I

+15

[(EW0) + (DBW3)] 15

MW2

/I

(EW0)

MD4

[(EW0) + (DBW3)] 15

(EW0 ) DBW3)
MW2

15

(EW0 ) DBW3)

15

(EW0 ) DBW3)
MW2

15

(EW0 ) DBW3)

15

MD4 +

Figura B-7

(EW0) + (DBW3)

MW2
/

(EW0) + (DBW3)

(EW0 ) DBW5)
MW2

15

Relacin entre operaciones aritmticas de enteros y una ecuacin (S7-300)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

B-13

Ejemplos de programacin

B.6

Operaciones lgicas con palabras

Calentar una caldera

El operador de la caldera ilustrada en la figura B-8 pone en marcha la calefaccin de la


caldera accionando el pulsador start (de arranque). El operador puede fijar un tiempo
determinado durante el cual funcionar la calefaccin, utilizando los selectores digitales
ilustrados en la figura. El valor fijado por el operador indica los segundos en formato
decimal codificado en binario (BCD). La tabla B-9 muestra una lista de los componentes de un sistema de calefaccin con sus correspondientes direcciones absolutas utilizadas en el programa ejemplo que sigue a la figura B-8.
Tabla B-9

Componentes de un sistema de calefaccin con las direcciones absolutas


Direccin absoluta en programa AWL

Componente
Pulsador de arranque

E 0.7

Selector digital para unidades

E 1.0 a E 1.3

Selector digital para decenas

E 1.4 a E 1.7

Selector digital para centenas

E 0.0 a E 0.3

Arranque de la calefaccin

A 4.0

Selectores para fijar dgitos BCD

Caldera

4
Calefaccin
A 4.0

7....

...0

XXXX

0001
EB0

7...

...0

1001

0001

Bits
EW0

EB1

Pulsador de arranque E 0.7

Figura B-8

Utilizacin de las entradas y salidas para la calefaccin por tiempo limitado

AWL

Explicacin

U
T1
=
A 4.0
BEB

Si el temporizador est en marcha, poner en marcha la


calefaccin.
Si el temporizador est en marcha, finalizar aqu el
procesamiento. Esto impide que el temporizador T1 vuelva a
arrancar al accionar el pulsador.
Enmascarar los bits de entrada E 0.4 a E 0.7 (es decir, volverlos a poner a 0). Este valor de temporizacin en segundos
se encuentra en la palabra baja del ACU 1 en formato decimal
codificado en binario.
Asignar la base de tiempo en segundos en los bits 12 y 13 de
la palabra baja del ACU 1.
Arrancar el temporizador T1 como temporizador de impulso
prolongado cuando se accione el pulsador.
Finalizar el segmento de programa.

L
UW

EW0
16#0FFF

OW

16#3000

U
SV
BE

E 0.7
T1

B-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Archivos fuente: Palabras clave reservadas

Definicin

Una palabra clave es una identificacin reservada que no puede ser utilizada como
identificacin general.
Para que una palabra clave pueda utilizarse como smbolo global tiene que ser identificada como punto de control de sistema (SKP).
Para que una palabra clave pueda utilizarse como smbolo local de bloque tiene que
identificarse con #.

Sinopsis

La tabla C-1 muestra las palabras clave reservadas que hay en STEP 7.
Tabla C-1

Palabras clave
Palabras clave

AB

BEGIN

AD

BIE

ANY

BLOCK_DB

AO

BLOCK_FB

AR1

BLOCK_FC

AR2

BLOCK_SDB

ARRAY

BOOL

AUTHOR

BYTE

AW

DATA_BLOCK

CALL

DATE

CHAR

DATE_AND_TIME

COUNTER

DB
DBB
DBD
DBLG
DBNO
DBW
DBX
DI

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

C-1

Archivos fuentes: Palabras claves reservadas

Tabla C-1

Palabras clave
Palabras clave
DIB
DID
DILG
DINO
DINT
DIW
DIX
DT
DWORD

FALSE

EB

FAMILY

ED

FB

END_Data_Block

FC

END_Function

FUNCTION

END_Function_Block

FUNCTION_BLOCK

END_Organization_Block
END_Struct

END_System_Function

IB

END_System_Function_Block

ID

END_Type

INT

END_VAR

IW

EW

KA

KNOW_HOW_PROTECT

LB

KP

LD
LW

C-2

NAME

MB

NETWORK

MD

NI

MW

NO

OB

PA

OF

PAB

ORGANIZATION_BLOCK

PAD

OS

PAW

OV

PE

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Archivos fuentes: Palabras claves reservadas

Tabla C-1

Palabras clave
Palabras clave
PEB
PED
PEW
PI
PIB
PID
PIW
PQ
PQB
PQD
PQW
POINTER

READ_ONLY

QB

REAL

QD

RET_VAL

QW

S5T

S5TIME

TIME

SDB

TIME_OF_DAY

SFB

TIMER

SFC

TITLE

STANDARD

TOD

STRING

TRUE

STRUCT

TYPE

STW
SYSTEM_FUNCTION
SYSTEM_FUNCTION_BLOCK

UDT

VAR

UNLINKED

VAR_IN_OUT

UO

VAR_INPUT
VAR_OUTPUT
VAR_TEMP
VERSION
VOID

WORD

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

C-3

Archivos fuentes: Palabras claves reservadas

C-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Bibliografa

/30/

ABC de la programacin: Autmata programable S7-300,


Iniciacin a la configuracin y programacin

/70/

Manual: Autmata programable S7-300,


Configuracin, instalacin y datos de las CPU

/71/

Manual de referencia: Sistemas de automatizacin S7-300 y M7-300


Datos de los mdulos

/72/

Lista de operaciones: Autmata programable S7-300

/100/ Manual: Sistemas de automatizacin S7-400, M7-400,


Configuracin e instalacin
/101/ Manual de referencia: Sistemas de automatizacin S7-400, M7-400
Datos de los mdulos
/102/ Lista de operaciones: Autmata programable S7-400,
CPU 414/416
/231/ Manual: Configurar el hardware y la communicacin con
STEP 7 V5.0
/233/ Manual de referencia: Esquema de contactos (KOP),
para SIMATIC S7-300/400
/234/ Manual: Programar con STEP 7 V5.0
/235/ Manual de referencia: Software de sistema para SIMATIC S7-300/400
Funciones estndar y funciones de sistema
/236/ Manual de referencia: Diagrama de funciones (FUP),
para SIMATIC S7-300/400
/237/ Indice general, STEP 7
/250/ Manual: SCL para SIMATIC S7-300/400,
Programacin de bloques
/251/ Manual: GRAPH para SIMATIC S7-300/400,
Programacin de controles secuenciales
/252/ Manual: HiGraph para SIMATIC S7-300/400,
Programacin de grafos de estado
/253/ Manual: C para SIMATIC S7-300/400,
Programacin en C
/254/ Manual: CFC para SIMATIC S7 y M7,
Cableado grfico de funciones tecnolgicas
/270/ Manual: S7-PDIAG para SIMATIC S7-300/400,
Configuracin del diagnstico del proceso para KOP, FUP y AWL

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

D-1

Bibliografa

/271/ Manual: NETPRO,


Configuracin grfica de redes
/800/ DOCPRO,
Confeccin de manuales de circuitos normalizados (slo en CD)
/801/ Teleservicio para S7, C7 y M7,
Asistencia tcnica a distancia para sistemas de automatizacin (slo en CD)
/802/ S7-PLCSIM
Test de programas con CPU S7 simulada (slo en CD)
/803/ Manual de referencia: Software de sistema para S7-300/400,
STEP 7 Funciones estndar, parte 2

D-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario

A
A1 y A0

Los bits A1 y A0 (cdigos de condicin) informan sobre los siguientes resultados o


bits:

S Resultado de una operacin aritmtica


S Resultado de una operacin de comparacin
S Resultado de una operacin digital
S Bits desplazados por una operacin de desplazamiento o de rotacin
Acumulador

Los acumuladores (ACU) son registros de la CPU que sirven de memoria intermedia
al realizar operaciones de carga, transferencia, comparacin, clculo y conversin.

Administrador
SIMATIC

Interface de usuario grfico para usuarios de SIMATIC con Windows 95 o


Windows NT para gestionar proyectos STEP 7.

Area de memoria

En SIMATIC S7, una unidad central de procesamiento tiene tres reas de memoria:

S el rea de carga,
S el rea de trabajo y
S el rea de sistema.
Array

Un array es un tipo de datos compuestos que est constituido por elementos de datos
del mismo tipo. A su vez, estos elementos pueden ser simples o compuestos.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario-1

Glosario

B
Bit de estado

El bit de estado (STA) almacena el valor de un bit direccionado. El estado de una


operacin lgica que tiene acceso de lectura a la memoria (U, UN, O, ON, X o XN)
siempre es igual al valor del bit que est consultando dicha operacin (el bit con el
que est ejecutando la operacin). El estado de una operacin lgica que tiene acceso de escritura a la memoria (S, R, =) siempre es igual al valor del bit donde la
operacin est escribiendo, o bien, si no tiene lugar ningn acceso de escritura, es
igual al valor del bit direccionado. El bit de estado no tiene importancia para las
operaciones lgicas que no accedan a la memoria. Dichas operaciones ponen el bit
de estado a 1 (STA = 1). El bit de estado no es consultado por ninguna operacin,
sino que solamente es interpretado durante el test del programa (estado del programa).

Bit OR

El bit OR (O) se necesita para ejecutar una combinacin Y antes de una combinacin O. El bit OR indica a las operaciones O que una combinacin Y antes ejecutada ha suministrado el valor 1, con lo cual se anticipa el resultado de la combinacin O. El bit OR desactiva todas las dems operaciones que estn procesando bits
(v. apt. 5.4).

Bit OS

El bit de estado OS significa rebase por exceso, guardando. Los rebases por exceso se pueden producir, por ejemplo, tras ejecutar una funcin matemtica.

Bit OV

El bit de estado OV significa rebase por exceso. Los rebases por exceso se pueden
producir, por ejemplo, tras ejecutar una funcin matemtica.

Bit RB

El bit RB (resultado binario) es un enlace entre el procesamiento de bits y el procesamiento de palabras. Permite realizar eficazmente la interpretacin binaria del resultado de una operacin con palabras y su integracin en una cadena lgica binaria.

Bloque
de datos (DB)

Los bloques de datos (DB) son reas de datos localizadas dentro del programa de
usuario. Los bloques de datos contienen datos de usuario. Se distingue entre bloques
de datos globales, a los cuales pueden acceder todos los bloques lgicos, y bloques
de datos de instancia, los cuales estn asignados a una determinada llamada de FB.
A diferencia de todos los otros bloques, los bloques de datos no contienen instrucciones.

Bloque de datos
de instancia (DB)

Los bloques de datos de instancia guardan los parmetros formales y los datos estticos de los bloques de funcin. Pueden estar asignados a una llamada de FB o a una
jerarqua de llamada de bloques de funcin.

Bloque de datos
globales (DB)

Tcnicamente, un bloque de datos globales es un bloque de datos cuyo operando se


carga en el registro de direcciones del DB al abrirlo. El DB global proporciona memoria y datos a todos los bloques lgicos (FC, FB o OB) a ejecutar.
A diferencia de los DB globales, la misin de un DB de instancia consiste en proporcionar memoria y datos slo a aquel bloque de funcin al que haya sido asignado.

Glosario-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario

Bloque
de funcin (FB)

Conforme a la norma IEC 11313, un bloque de funcin (FB) es un bloque lgico


con memoria. Un FB ofrece la posibilidad de transferir parmetros dentro del
programa de usuario. Por esta razn, los bloques de funcin son idneos para
programar funciones complejas que se repitan con frecuencia, como, por ejemplo,
regulaciones o seleccin de modos de operacin. Ya que un FB dispone de una
memoria (bloque de datos de instancia), se puede acceder a sus parmetros
(p.ej., salidas) en cualquier momento y en cualquier punto del programa de usuario.

Bloque de funcin
del sistema (SFB)

Un bloque de funcin del sistema (SFB) es un bloque de funcin (con memoria) que
est integrado dentro del sistema operativo de la CPU S7, y que se puede llamar,
como se llama a un bloque de funcin (FB), en el programa de usuario de STEP 7
cuando se necesite.

Bloque lgico

Dentro del mbito de SIMATIC S7 se entiende por bloque lgico aquel tipo de bloque que contiene una parte del programa de usuario STEP 7. A diferencia de los
bloques lgicos, los bloques de datos contienen exclusivamente datos. Hay cinco
tipos de bloques lgicos: bloques de organizacin (OB), bloques de funcin (FB),
funciones (FC), bloques de funcin del sistema (SFB) y funciones de sistema (SFC).
Los bloques se almacenan en la carpeta Bloques bajo Programa S7.

C
Cadena lgica

Parte de un programa de usuario que comienza con un bit /ER con un estado de seal de 0 y que termina cuando una operacin o evento pone el bit /ER a 0. Una
vez que la CPU haya ejecutado la primera operacin de la cadena, el estado de seal
del bit ser siempre 1. Determinadas operaciones, tales como las operaciones de
salida (p. ej.: S, R =) desactivan el bit /ER, es decir, lo ponen a 0. V. Primera
consulta.

Carpeta

Directorio localizado en el interface de usuario del Administrador SIMATIC; esta


carpeta se puede abrir y puede contener a su vez otros directorios y objetos.

CPU

La CPU (central processing unit) es una unidad central de procesamiento del sistema de automatizacin, que consta de unidad de control y de clculo, memoria,
sistema operativo e interfaces para las unidades de programacin.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario-3

Glosario

D
Datos de
referencia

Los datos de referencia sirven para controlar el programa S7. En los datos de referencia estn englobados la lista de referencias cruzadas, el plano de ocupacin, la
estructura del programa de usuario, la lista de operandos no utilizados y la lista de
operandos sin smbolo.

Datos estticos

Los datos estticos son datos locales de un bloque de funcin; estos datos se guardan
en el bloque de datos de instancia, por lo que se conservan hasta que se vuelve a
ejecutar el bloque de funcin.

Declaracin
de variables

La declaracin de variables abarca la indicacin de un nombre simblico, de un tipo


de datos y, en ciertos casos, de un valor predeterminado,una direccin y un comentario.

Diagrama de
funciones (FUP)

El diagrama de funciones (FUP) es uno de los lenguajes de programacin de STEP 5


y STEP 7. Para la representacin de la lgica, FUP utiliza los cuadros lgicos del
lgebra de Boole.

Direccionamiento
absoluto

En el direccionamiento absoluto se indica la direccin del operando a ejecutar.

Direccionamiento
directo

En el direccionamiento directo el operando contiene la direccin de memoria del


valor con el que la operacin deber trabajar.
Ejemplo:
La direccin A 4.0 representa el bit 0 del byte 4 de la imagen del proceso de las
salidas.

Direccionamiento
indirecto por
memoria

En el direccionamiento indirecto por memoria, el operando de una operacin indica


la direccin del valor que procesar la operacin.

Direccionamiento
indirecto por
registro

En el direccionamiento indirecto por registro, el operando indica indirectamente la


direccin del valor que procesar la operacin a travs de un registro de direcciones
y de un desplazamiento.

Direccionamiento
inmediato

En el direccionamiento inmediato el operando contiene el valor con el que tiene que


trabajar la operacin.
Ejemplo: L27 significa cargar la constante 27 en el ACU.

Direccionamiento
simblico

Glosario-4

En el direccionamiento simblico el operando a ejecutar se indica mediante un nombre simblico, tambin denominado smbolo (en lugar de utilizar una direccin,
como ocurre en el direccionamiento absoluto).

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario

E
Entrada
incremental

Al efectuar una entrada incremental en un bloque se comprueban inmediatamente


todas las lneas o elementos de esta entrada para determinar si se ha cometido algn
error (p. ej., en la sintaxis). En caso de que haya errores, stos se marcan y deben
corregirse antes de concluir la entrada. Se pueden realizar entradas incrementales,
por ejemplo, cuando se est trabajando con los lenguajes de programacin AWL,
KOP o FUP.

Equipo

Aparato que constituye una unidad homognea y que, como tal, puede ser conectada
a una o a varias subredes, por ejemplo: sistema de automatizacin, unidad de programacin, estacin de operador.

Esquema de
contactos (KOP)

El esquema de contactos (KOP) es un lenguaje de programacin grfico de STEP 5


y STEP 7. El modo de representacin est normalizado segn DIN 19239. La representacin del esquema de contactos equivale prcticamente a la representacin de
un esquema de circuitos. A diferencia de la lista de instrucciones (AWL), en KOP
solamente se puede representar una cantidad limitada de operaciones.

Estructura del programa de usuario

La estructura del programa de usuario describe la jerarqua de llamadas dentro de un


programa S7 y permite tener una visin general sobre los bloques utilizados y sus
respectivas dependencias.

F
Fuente

Una fuente (archivo de texto) es una parte de un programa que se crea con un editor
de texto o grfico, a partir de la cual se genera por compilacin el programa de
usuario S7 ejecutable o el cdigo de mquina para M7.
Las fuentes S7 se depositan en la carpeta Fuentes bajo Programa S7.

Fuente AWL

Fuente programada en el lenguaje de programacin AWL; corresponde a un archivo


fuente o de texto.

Funcin (FC)

De acuerdo con la norma IEC 11313, las funciones son bloques lgicos sin memoria. Una funcin ofrece la posibilidad de transferir parmetros dentro del programa
de usuario. Por esta razn, las funciones resultan idneas para programar funciones
complejas que se repitan con frecuencia, como, por ejemplo, los clculos. Importante: como las funciones no disponen de memoria, se deber continuar procesando
los valores calculados inmediatamente despus de haber llamado a la funcin.

Funcin de
sistema (SFC)

Una funcin de sistema (SFC) es una funcin (sin memoria) integrada dentro del
sistema operativo de la CPU S7 que se puede llamar, como se llama a una funcin
(FC), en el programa de usuario de STEP 7 cuando se necesite.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario-5

Glosario

I
Identificacin
del operando

La identificacin del operando es la parte de un operando de una operacin en la


que hay contenidas informaciones como, por ejemplo, el rea de memoria en la que
la operacin encontrar el valor (objeto de datos) con el que ejecutar una combinacin lgica o el tamao de un valor (objeto de datos) con el que ejecutar una combinacin lgica. Ejemplo: en la instruccin L EB10, EB es la identificacin del
operando (E indica el rea de entrada de la memoria; B indica un byte de esta rea).

Instancia

Se denomina instancia a la llamada de un bloque de funcin; a cada una de las


llamadas le est asignado un DB de instancia.

Instruccin

La instruccin es la unidad independiente ms pequea de un programa de usuario


que haya sido creado en un lenguaje de texto. Las instrucciones son normas para que
el procesador opere de un modo determinado.

J
Jerarqua
de llamadas

Los bloques se tienen que llamar antes de ser procesados. El orden y la profundidad
de anidado de estas llamadas dentro de un bloque de organizacin se llama jerarqua de llamadas.

L
Lista de instrucciones (AWL)

La lista de instrucciones (AWL) es un lenguje de programacin de texto diseado


para mquinas. AWL es el lenguaje ensamblador de STEP 5 y STEP 7. Al programar un programa en AWL, las distintas instrucciones corresponden a tantos otros
pasos que la CPU da al ejecutar el programa.

M
Master Control
Relay

Glosario-6

El Master Control Relay (MCR) se utiliza en los esquemas de contactos de rel para
activar y desactivar la circulacin de la corriente (lnea de corriente). Una lnea de
corriente desactivada corresponde a una secuencia de operacin que escribe el valor
cero en vez del valor calculado, o a una secuencia de operacin que no modifica el
valor de memoria existente.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario

N
Nemotcnica

Representacin abreviada de los operandos y de las operaciones de programacin


dentro del programa (ej.: E significa entrada). STEP 7 utiliza la representacin
internacional, basada en el idioma ingls, y la representacin SIMATIC, que se basa
en la representacin alemana de las operaciones y en las convenciones para el
direccionamiento SIMATIC.

O
Operacin

Parte de una instruccin de STEP 7 que especifica lo que tiene que hacer el procesador.

Operando

Parte de una instruccin STEP 7 que especifica con qu debe hacer algo el procesador. El operando se puede direccionar tanto de modo simblico como absoluto.

P
Palabra clave

Las palabras clave se utilizan en la entrada orientada a la fuente para identificar el


comienzo de un bloque al efectuar las entradas del programa, y para marcar las secciones dentro de la tabla de declaracin de bloques, el comienzo de los comentarios
de bloque y el comienzo de los ttulos.

Palabra de estado

La palabra de estado forma parte del registro de la unidad central. En la palabra de


estado hay informacin sobre el estado y los errores que se dan al ejecutar comandos de STEP 7. El usuario puede leer y escribir los bits de estado, pero los bits de
errores slo se pueden leer.

Parmetros
actuales

Los parmetros actuales sustituyen a los parmetros formales cuando se llama un


bloque de funcin (FB) o una funcin (FC).
Ejemplo: El parmetro formal start ser sustituido por el parmetro actual
E 3.6.

Parmetros
formales

Un parmetro formal es un comodn que sustituye el parmetro real (parmetro


actual) que utilicen los bloques lgicos parametrizables. En el caso de los FB y de
las FC es el usuario quien declara los parmetros formales; en el caso de los SFB y
de las SFC los parmetros formales ya han sido establecidos. Al llamar un bloque se
asigna al parmetro formal un parmetro actual, de modo que el bloque llamado
operar con el valor actual de este parmetro.
Los parmetros formales forman parte de los datos locales del bloque y se dividen
en parmetros de entrada, parmetros de salida y parmetros de entrada/salida.

Pila de parntesis

La pila de parntesis es una rea de memoria utilizada por las operaciones lgicas
de expresiones con parntesis U(, O(, X(, UN(, ON( y XN(. La profundidad mxima
de los anidamientos de operaciones lgicas con bits es de ocho.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario-7

Glosario

Primera consulta

Primer ajuste del resultado lgico.

Programa
de usuario

El programa de usuario contiene todas las instrucciones, declaraciones y datos para


realizar el procesamiento de seales con el que se puede controlar una instalacin o
un proceso. El programa de usuario est asignado a un mdulo programable (p.ej.,
CPU, FM), y se puede estructurar en varias unidades menores (bloques).

Programa S7

Carpeta de bloques, fuentes y planos para mdulos S7 programables, que tambin


contiene la tabla de smbolos.

Proyecto

Carpeta para todos los objetos de una solucin de automatizacin,


independientemente de la cantidad de equipos, de mdulos y de la interconexin de
los mismos en una red.

Puntero

El puntero permite identificar la direccin de una variable. Contiene un operando en


lugar de un valor. Al asignar al tipo de parmetro puntero un parmetro actual, se
est asignando la direccin de la memoria. Con STEP 7 se puede indicar el puntero
tanto en formato de puntero como tambin en calidad de operando (p.ej., M 50.0).
En el ejemplo siguiente se muestra el formato de puntero que se utiliza al acceder a
datos a partir de M 50.0.

R
Registros de
direcciones

Los registros de direcciones forman parte del registro, incluido dentro del rea de
comunicaciones de la CPU. Sirven de punteros en el direccionamiento indirecto por
registro, y se pueden utilizar cuando se programa en la lista de instrucciones AWL.

Resultado lgico

El resultado lgico (RLO) es el resultado de una cadena lgica que se utiliza para el
procesamiento binario de seales. En funcin del resultado lgico anterior se ejecutarn unas funciones y otras no.

S
Smbolo

Nombre que el usuario define atendiendo a determinadas normas sintcticas. Una


vez que se ha determinado lo que simboliza este nombre (p.ej.: variable, tipo de
datos, meta del salto, bloque), podr utilizarse tanto en la programacin como en el
manejo y visualizacin. Ejemplo: operando: E 5.0, tipo de datos: BOOL, smbolo:
pulsador Paroemerg.

T
Tabla de
declaracin

Glosario-8

Cuando se crea un programa utilizando un editor de texto, los datos locales de un


bloque lgico se declaran en la tabla de declaracin.
Lista de instrucciones (AWL) para S7-300 y S7-400
C79000-G7078-C565-01

Glosario

Tabla de declaracin de variables

En la tabla de declaracin de variables se declaran los datos locales de un bloque


lgico cuando el programa se crea en el modo de introduccin incremental (entrada
incremental).

Tabla de smbolos

Tabla para asignar smbolos (= nombres) a direcciones de datos globales y bloques.


Ejemplos: paroemerg (smbolo), E 1.7 (direccin); regulador (smbolo), SFB 24
(bloque).

Tabla de variables

En la tabla de variables se recopilan las variables a visualizar y controlar,


incluyndose los respectivos datos de formato.

Tipos de datos

El tipo de datos sirve para determinar la forma en que deber utilizarse el valor de
una variable o de una constante en el programa de usuario.
En SIMATIC S7, el usuario dispone de dos tipos de datos conformes a la norma IEC
11313:

S Tipos de datos simples


S Tipos de datos compuestos
Tipos de datos
compuestos

Los tipos de datos compuestos los define el usuario mediante la declaracin del tipo
de datos. Estos datos no tienen un nombre distintivo, por lo que no tienen uso
mltiple. Se distingue entre arrays y estructuras. Los tipos de datos STRING y
DATE AND TIME tambin pertenecen a los tipos de datos compuestos.

Tipos de datos de
usuario (UDT)

Estructuras de datos creadas por el usuario que se utilizan en todo el programa de la


CPU una vez definidas. Se pueden utilizar como tipos de datos simples o
compuestos en la declaracin de variables de bloques lgicos (FC, FB, OB) o bien
como plantilla para crear bloques de datos con la misma estructura.

Tipos de datos
simples

Los tipos de datos simples son tipos de datos predefinidos conforme a la norma
IEC 11313.
Ejemplos:

S El tipo de datos BOOL define una variable binaria (bit).


S El tipo de datos INT define una variable en coma fija de 16 bits.

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Glosario-9

Glosario

Glosario-10

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico
Smbolo
)MCR. Ver Restablecer RLO, Fin rea MCR
()MCR)
+. Ver operaciones, sumar enteros (+)
+AR1. Ver operaciones, sumar ACU 1 al registro de
direcciones 1
+AR2. Ver operaciones, sumar ACU 1 al registro de
direcciones 2
+I. Ver Aritmtica de enteros, Sumar ACU 1 y 2
como entero (16 bits)
+R. Ver aritmtica de coma flotante, Sumar dos nmeros de coma flotante (+R)
/ER. Ver primera consulta
=. Ver Asignar (=)

A
Abreviaturas nemotcnicas alemanas de las operaciones, A-12
ndice alfabtico, A-2A-11
Abrir bloques de datos (AUF), 15-2
ABS. Ver valor absoluto, formar valor absoluto de
un nmero en coma flotante (32 bits) (nmero
de coma flotante)
ACOS. Ver Arco coseno
Activar (S), 5-20, 5-215-23
contador, 7-3
Activar rea MCR (MCRA), 17-11
Activar el resultado lgico, 5-26, 5-27
Activar RLO (SET), 5-26, 5-27
ACU 1 a ACU 2 (PUSH), 4-2
ACU 2 a ACU 1 (POP), 4-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Acumuladores
cargar la palabra de estado en ACU 1, 8-6
con la aritmtica de enteros, 9-29-11
con las operaciones de carga y transferencia, 8-2
con operaciones aritmticas para nmeros en
coma flotante, 10-210-9
con operaciones de comparacin, 11-2
descripcin, 2-10
funcin, 2-10
ACU 1 a ACU 2 (PUSH), 4-2
ACU 2 a ACU 1 (POP), 4-2
Decrementar ACU 1 (DEC), 4-6
Incrementar ACU 1 (INC), 4-6
Intercambiar ACU 1 con ACU 2 (TAK), 4-2
intercambiar el contenido, 4-2
intercambio de informacin utilizando las operaciones Cargar y Transferir, 8-2
invertir el orden de bytes en el ACU 1, 12-13
Invertir secuencia en ACU 1 (16 bits) (TAW),
12-13
Invertir secuencia en ACU 1 (32 bits) (TAD),
12-13
operaciones lgicas con palabras, 13-2, 13-3,
13-6
procesar el contenido, 4-24-8
sumar un entero al ACU 1, 9-6
transferir la palabra de estado, 8-6
valor de temporizacin, 6-4
ANY, 17-9
Arco coseno (ACOS), 10-1310-15
Arco seno (ASIN), 10-1310-14
Arco tangente (ATAN), 10-13

Indice-1

Indice alfabtico

Areas de memoria
bloque de datos, 2-8
contadores, 2-8
datos locales, 2-8
E/S. Ver reas de memoria, E/S: entradas/salidas
externas
E/S: entradas/salidas externas, 2-8
imagen del proceso de las entradas, 2-8
imagen del proceso de las salidas, 2-8
marcas, 2-8
temporizadores, 2-8
Aritmtica de coma flotante
arco coseno (ACOS), 10-1310-15
arco tangente (ATAN), 10-13
margen vlido para resultados, 10-15
panormica de las cuatro operaciones aritmticas de base, 10-2
relacin con acumuladores, 10-2
Sumar dos nmeros en coma flotante (+R), 10-3
Valor absoluto de un nmero en coma flotante
(32 bits, IEEE-FP) (ABS), 10-6
Aritmtica de coma flotante, operaciones avanzadas, arco seno (ASIN), 10-1310-14
Aritmtica de enteros
aplicaciones prcticas, B-12B-13
evaluar el resto de la divisin entero (32 bits),
9-4
panormica de las cuatro operaciones aritmticas de base, 9-2
relacin a los acumuladores, 9-2
Sumar ACU 1 y 2 como entero (16 bits) (+I),
9-3
sumar un entero al ACU 1, 9-6
sumar una constante al registro de direcciones 1
2, 4-7
Asignar (=), 5-20, 5-24, 5-25
Asignar operandos a una operacin CALL, 17-3
ASIN. Ver Arco seno
ATAN. Ver Arco tangente
AUF. Ver Abrir bloques de datos (AUF)
AWL
Ver tambin Lista de instrucciones
significado, 1-1

B
Base de tiempo para S5 TIME, 6-4
leer, 8-9
BCDF. Ver error durante conversin BCD (BDCF)
BEA. Ver Fin de bloque incondicional (BEA)
BEB. Ver Fin de bloque condicional (BEB)
Bit, tipo de datos, 3-4
Bit OS (desbordamiento memorizado), afectado por
la comparacin de dos nmeros en coma flotante, 11-5

Indice-2

Bit OV (desbordamiento)
afectado por la comparacin de dos nmeros en
coma flotante, 11-5
afectado por operaciones lgicas con palabras,
13-2
Bit RB (resultado binario), bit de estado, 2-16
Bits (A1 y A0), afectados por operaciones de comparacin, 11-5
Bloques de datos (DB)
rea de memoria, 2-8
rea de direccionamiento, 2-9
Cargar el nmero de un bloque de datos de instancia en el ACU 1 (L DINO), 8-12
Cargar el nmero de un bloque de datos global
en el ACU 1 (L DBNO), 8-12
Cargar la longitud de un bloque de datos de instancia en el ACU 1 (L DILG), 8-12
Cargar la longitud de un bloque de datos global
en el ACU 1 (L DBLG), 8-12
Cargar longitud de DB de instancia en ACU 1
(L DILG), 15-3
Cargar longitud de DB global en ACU 1 (L
DBLG), 15-3
Cargar nmero de DB de instancia en ACU 1 (L
DINO), 15-3
Cargar nmero de DB global en ACU 1 (L
DBNO), 15-3
longitudes y nmeros, cargar, 15-315-4
registros, intercambiar, 15-2
Bloques de datos de instancia (DB), para acceder a
datos de parmetros formales, 17-3
Bloques de funcin (FB)
dependencia del Master Control Relay (MCR),
17-11
llamar con la operacin CALL, 17-317-6
llamar con la operacin Llamada condicionada
(CC), 17-7
llamar con la operacin Llamada incondicionada (UC), 17-7
operando de una operacin, 2-5
Bloques de funcin del sistema (SFB), operando de
una operacin, definicin, 2-5
Borrar (R), contador, 7-8
BR. Ver Resultado binario
BTD. Ver Convertir de BCD a entero doble (32
bits) BTD
BTI. Ver Convertir de BCD a entero (16 bits) (BTI)

C
Cadena lgica
definicin, 2-12
fin, 5-20
inicio, 2-12
terminar, 5-20

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico

CALL. Ver Llamada de bloque (CALL)


Cambiar el signo de un nmero en coma flotante,
12-14
Cambio de flanco ascendente (positivo), 5-165-19
Cambio de flanco descendente (negativo),
5-165-19
Cambio de flancos, 5-16
Cargar, base de tiempo, 8-8
Cargar (L) y Transferir (T)
cargar un valor de contaje codificado en binario
en ACU 1, 7-7
cargar un valor de contaje en formato BCD en
ACU 1, 7-7
direccionamiento directo, 8-4
Cargar el nmero de un bloque de datos en ACU 1
bloque de datos de instancia (L DINO), 8-12
bloque de datos global (L DBNO), 8-12
Cargar la longitud de un bloque de datos en ACU 1
bloque de datos de instancia (L DILG), 8-12
bloque de datos global (L DBLG), 8-12
Cargar longitud de DB de instancia en ACU 1 (L
DILG), 15-3
Cargar longitud de DB global en ACU 1 (L
DBLG), 15-3
Cargar nmero de DB de instancia en ACU 1 (L
DINO), 15-3
Cargar nmero de DB global en ACU 1 (L DBNO),
15-3
Cargar un valor actual en ACU 1 como nmero codificado en binario, 7-7
Cargar un valor de contaje
en cdigo binario (L palabra de contaje), 8-8
en formato BCD (LC), 8-10
formato, 7-6
Cargar un valor de contaje en ACU 1 como entero,
7-6
Cargar un valor de contaje en ACU como entero,
8-8
Cargar un valor de temporizacin
rea, 6-5
en cdigo binario (L palabra de temporizacin),
8-9
en formato BCD (LC), 8-9
formato, 6-3
Cargar un valor de temporizacin en cdigo binario
en ACU 1, 8-7
Cargar un valor de temporizacin en formato BCD
en ACU 1 (LC), 8-9
Cargar un valor en ACU como nmero decimal en
cdigo binario, temporizador, 6-2
Cargar y transferir entre registros de direcciones,
8-118-12
CC. Ver Llamada condicional (CC)
CLR. Ver Desactivar RLO (CLR)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Cdigos de condicin (A1 y A0)


afectados por la aritmtica de enteros, 9-4, 10-4
afectados por las operaciones aritmticas, 10-15
afectados por operaciones lgicas con palabras,
13-2
bits de la palabra de estado, 2-14
consultar una operacin aritmtica, 5-11
efecto de las operaciones aritmticas a los cdigos de condicin, 10-4
operaciones para evaluar A1 y A0, 11-5
relacin a operaciones de salto condicionado,
16-6
Comparar dos enteros, 11-311-4
Comparar dos nmeros en coma flotante, 11-5
Complemento a dos de entero (16 bits) (NEGI),
12-14
Complemento a dos de entero doble (32 bits)
(NEGD), 12-14
Complemento a dos de nmero en coma flotante
(32 bits, IEEEFP) (NEGR), 12-14
Complemento a uno de entero (16 bit) (INVI),
12-14
Complemento a uno de entero doble (32 bits)
(INVD), 12-14
Complementos, formar complementos, 12-14
Consultar cdigos de condicin (A1 y A0), 2-14
despus de una operacin aritmtica, 5-11
Contacto normalmente abierto, 5-6
Contacto normalmente cerrado, 5-7
Contadores
rea de memoria, 2-8
rea de direccionamiento, 2-9
cargar un valor de temporizacin en cdigo binario en ACU 1, 8-7
componentes, 7-2
definicin, 7-2
habilitar, 7-4, 7-8
operaciones de contaje, 8-10
aplicaciones prcticas, B-10
operaciones lgicas con bits, 7-2
tipos
Contaje adelante (ZV), 7-8
Contaje atrs (ZR), 7-8
decrementar contador (ZR), 7-2
incrementar contador (ZV), 7-2
Convertir de BCD a entero de16 bits (BTI), 12-2
Convertir de BCD a entero doble de 32 bits (BTD),
12-4
Convertir de entero de 32 bits a BCD (DTB), 12-6
Convertir de entero de 32 bits a nmero en coma
flotante (32 bits, IEEE-FP) (DTR), 12-7
Convertir de entero de16 bits a BCD (ITB), 12-5
Convertir de entero de16 bits a entero doble de 32
bits (ITD), 12-6

Indice-3

Indice alfabtico

Convertir nmeros decimales codificados en binario y enteros, 12-2


Convertir nmeros en coma flotante (32 bits) en
enteros de 32 bits, 12-8
Convertir y redondear nmeros, 12-8
COS. Ver Coseno
Coseno (COS), 10-13
Cuadrado (SQR), 10-9
Cursos, v

D
Datos locales, rea de memoria, 2-8
rea de direccionamiento, 2-9
DBLG. Ver Cargar la longitud de un bloque de datos global en el ACU 1 (L DBLG)
DBNO. Ver Cargar el nmero de un bloque de datos
global en el ACU 1 (L DBNO)
DEC. Ver Decrementar ACU 1 (DEC)
Decrementar ACU 1 (DEC), 4-6
Decrementar contador, 7-5
Desactivar (R), 5-215-23
contador, 7-4
temporizador, 6-6
Desactivar rea MCR (MCRD), 17-11
Desactivar el resultado lgico, 5-26
Desactivar RLO (CLR), 5-26
Desactivar un contador, 7-4
Desactivar un temporizador, 6-6
Desbloquear, temporizador (FR), 6-6
Desbordamiento (OV)
afectado por la aritmtica de coma flotante,
10-4, 10-15
afectado por la aritmtica de enteros, 9-4
bit de estado, 2-14
Desbordamiento memorizado (OS)
afectado por la aritmtica de coma flotante,
10-4, 10-15
afectado por la aritmtica de enteros, 9-4
bit de estado, 2-14
DILG. Ver Cargar la longitud de un bloque de datos
de instancia en el ACU 1 (L DILG)
DINO. Ver Cargar el nmero de un bloque de datos
de instancia en el ACU 1 (L DINO)

Direccionamiento
absoluto, 17-3
programacin absoluta, B-4
reas, 2-9
directo, 3-2
formato del puntero
indirecto del registro e interrea, 3-13
indirecto del registro e intrarea, 3-9
indirecto por memoria, 3-4
intrarea, interno del registro, 3-8
indirecto del registro e interrea, 3-113-14
indirecto del registro e intrarea, 3-7
indirecto por memoria, 3-3
inmediato, 3-2
simblico, 2-4, 17-3
aplicaciones prcticas, B-3
valores constantes, 2-3
Y con palabra doble (UD), 13-613-8
Direccionamiento directo, 3-2
Direccionamiento indirecto del registro e interrea,
3-113-14
Direccionamiento indirecto del registro e intrarea,
3-73-10
Direccionamiento inmediato, 3-2
Direccionamiento simblico, 2-4, B-3
DTB. Ver Convertir de entero doble (32 bits) a
BCD (DTB)
DTR. Ver Convertir de entero doble (32 bits) a nmero de coma flotante (32 bits, IEEE-FP)
(DTR)

E
E/S: entradas/salidas externas, rea de memoria,
2-8
rea de direccionamiento, 2-9
Ejemplos, aplicaciones prcticas de las operaciones, B-2B-18
ENO. Ver Bit RB (resultado binario)
Entero (16 bits), sumar un entero al ACU 1, 9-6
Entero de16 bits
Comparar dos enteros de 16 bits, 11-311-4
convertir, 12-2
Entero doble de 32 bits, Comparar dos enteros dobles de 32 bits, 11-311-4
Error durante conversin BCD (BCDF), 12-3
Estado (STA), bit de estado, 2-13
EXP. Ver Valor exponencial de la base e
Expresiones entre parntesis, 5-14
Y antes de O, 5-14

F
Fin rea MCR ()MCR), 17-11

Indice-4

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico

Fin de bloque
fin de bloque condicionado (BEB), 17-16
Fin de bloque incondicionado (BEA), 17-16
Fin de una cadena lgica, 5-20
Flanco ascendente (positivo) (FP), 5-16
Flanco descendente (negativo) (FN), 5-165-19
FN. Ver Flanco negativo (FN)
Formacin, v
Formar complementos, 12-14
Formato
valor de contaje, 7-6
valor de temporizacin, 6-4
Formato BCD
cargar un valor de contaje en formato BCD,
8-10
cargar un valor de temporizacin en formato
BCD, 8-9
Formato del puntero
direccionamiento indirecto del registro e interrea, 3-13
direccionamiento indirecto del registro e intrarea, 3-9
direccionamiento indirecto por memoria, 3-4
FP. Ver Flanco positivo (FP)
FR. Ver Desbloquear, temporizador (FR)
Funcin MCR, Notas importantes sobre el uso,
17-15
Funciones (FC)
dependencia del Master Control Relay (MCR),
17-11
llamar con la operacin CALL, 17-317-6
llamar con la operacin Llamada condicionada
(CC), 17-7
llamar con la operacin Llamada incondicionada (UC), 17-7
operando de una operacin, 2-5
Funciones de control del programa
asignar operandos a una llamada (CALL), 17-3
Llamada condicionada (CC), 17-7
Llamada incondicionada (UC), 17-7
Funciones del sistema (SFC)
definicin, 2-5
operando de una operacin, 2-5

H
Habilitar, contador, 7-4, 7-8

Imagen del proceso de las salidas, rea de memoria,


2-8
rea de direccionamiento, 2-9
Impulso (SI), 6-5
INC. Ver Incrementar ACU 1 (INC)
Incrementar ACU 1 (INC), 4-6
Incrementar contador, 7-5
Inicializar un contador, 7-3
Inicio de una cadena lgica, 2-12
Instruccin
direccionamiento
nombres simblicos, 2-4
valores constantes, 2-3
estructura, 2-22-9
Intercambiar ACU 1 con ACU 2 (TAK), 4-2
Intercambiar DB global y DB de instancia (TDB),
15-2
Intercambiar los contenidos de los ACU, 4-2
Intercambiar registros de bloques de datos, 15-2
INVD. Ver Complemento a uno de entero doble (32
bits) (INVD)
Invertir el orden de bytes en el ACU 1, 12-13
Invertir nmeros, bit por bit, 12-13
Invertir secuencia en ACU 1 (16 bits) (TAW),
12-13
Invertir secuencia en ACU 1 (32 bits) (TAD), 12-13
INVI. Ver Complemento a uno de entero (16 bits)
(INVI)
ITB. Ver Convertir de entero (16 bits) a BCD (ITB)
ITD. Ver Convertir de entero (16 bits) a entero doble (32 bits) (ITD)

L
LC. Ver cargar un valor de contaje en cdigo binario
Lista de instrucciones (AWL), 1-1
Llamada condicionada (CC), 17-7
Llamada de bloque (CALL), 17-317-6
Llamada incondicionada (UC), 17-7
LLamar varias veces un segmento del programa,
16-8
LN. Ver Logaritmo natural
Logaritmo natural, LN, 10-11
LOOP, 16-8
activar un contador de bucles, 16-9
meta de salto como operando, 16-2
utilizar eficientemente la operacin LOOP, 16-9

I
Imagen del proceso de las entradas, rea de memoria, 2-8
rea de direccionamiento, 2-9

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

M
Marcas, rea de memoria, 2-8
rea de direccionamiento, 2-9

Indice-5

Indice alfabtico

Master Control Relay (MCR)


anidado, 17-1317-15
dependencia, 17-11
efecto a las operaciones Activar (S) y Desactivar (R), 5-21, 17-10
funciones, 17-10
implementar, 17-13
Notas importantes sobre el uso, 17-15
MCR(. Ver Salvar RLO en pila MCR, comienco
rea MCR
MCRA. Ver Activar rea MCR
MCRD. Ver Desactivar rea MCR
Meta de salto, como operando de una operacin de
salto, 16-2
Multiplicar un nmero por 1, 12-14

N
Negar RLO (NOT), 5-26
NEGD. Ver Complemento a dos de entero doble (32
bits) (NEGD)
NEGI. Ver Complemento a dos de entero (16 bits)
(NEGI)
NEGR. Ver Complemento a dos de nmero en
coma flotante (32 bits, IEEE-FP) (NEGR)

Indice-6

NOP. Ver operaciones nulas (NOP)


Nmero en coma flotante, 11-5
comparar dos nmeros en coma flotante,
11-511-6
formar el valor absoluto, 10-6
Nmeros decimales codificados en binario y enteros
estructura de un nmero BCD a convertir en entero de16 bits, 12-3
estructura de un nmero BCD de 32 bits a convertir en un entero de 32 bits, 12-4

O
O (O), utilizar contadores como operando de bit,
7-2
O con palabra (OW), 13-313-8
O con palabra doble (OD), 13-6
O-exclusiva (X), utilizar contadores como operando
booleano, 7-2
O-exclusiva con palabra doble (XOD), 13-613-8
O-exclusiva-NO (XN), utilizar contadores como
operando booleano, 7-2
O-NO (ON), utilizar contadores como operando de
bit, 7-2
Operaciones
aplicaciones prcticas, B-2B-17
aritmtica de coma flotante
margen vlido para resultados, 10-4, 10-15
panormica de las cuatro operaciones aritmticas de base, 10-2
relacin a acumuladores, 10-210-12
aritmtica de enteros
aplicaciones prcticas, B-12B-13
evaluar el resultado de la divisin de dos enteros dobles (32 bits) y almacenar el
resto de la divisin, 9-4
margen vlido para resultados, 9-4
panormica acerca de las cuatro operaciones
aritmticas de base, 9-2
relacin a los acumuladores, 9-29-10
sumar ACU 1 al registro de direcciones 1
(+AR1), 4-74-13
sumar ACU 1 al registro de direcciones 2
(+AR2), 4-74-13
sumar enteros (+), 9-2
Cargar (L) y Transferir (T)
byte, palabra o palabra doble como parmetro, 8-5
cargar bits de estado en ACU 1, 8-6
cargar la palabra de estado en ACU 1, 8-6
cargar y transferir entre registros de direcciones, 8-118-12
definicin, 8-2
direccionamiento indirecto, 8-4
direccionamiento indirecto e interrea, 8-5

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico

direccionamiento inmediato, 8-3


intercambio de informacin, 8-2
transferir el contenido de ACU 1 en la palabra de estado, 8-6
dependencia del Master Control Relay (MCR),
17-10, 17-11
ndice alfabtico
descripcin SIMATIC y nemotcnica SIMATIC, A-12A-16
nemotcnica SIMATIC y descripcin,
A-2A-11
LOOP
activar un contador de bucles, 16-9
utilizar eficientemente la operacin LOOP,
16-9
operaciones de acumuladores e instrucciones de
registro de direcciones, 4-24-8
operaciones de comparacin, aplicaciones prcticas, B-10B-11
operaciones de contaje, aplicaciones prcticas,
B-10B-11
operaciones de control del programa, asignar
operandos a una llamada, 17-3
operaciones de desplazamiento
nmeros con signo, 14-4
nmeros sin signo, 14-214-5
operaciones de rotacin, 14-614-8
operaciones de salto, 16-216-12
incondicionado, 16-3
operaciones de temporizacin, 6-26-22
aplicaciones prcticas, B-7B-9
operaciones lgicas con palabras, 13-213-8
16 bits, 13-3, 13-613-8
aplicaciones prcticas, B-14
constantes como operando, 13-2
efecto a bits de estado, 13-2
gestin de acumuladores, 13-2, 13-3, 13-6
que afectan a los cdigos de condicin (A1 y
A0), 9-4, 10-4, 10-15
que afectan al bit OS (desbordamiento memorizado), 10-4, 10-15
que afectan al bit OV (desbordamiento), 10-4,
10-15
Operaciones de acumuladores e instrucciones de
registro de direcciones, 4-24-7
ACU 1 a ACU 2 (PUSH), 4-2
ACU 2 a ACU 1 (POP), 4-2
Decrementar ACU 1 (DEC), 4-6
Incrementar ACU 1 (INC), 4-6
Intercambiar ACU 1 con ACU 2 (TAK), 4-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones de bloques de datos


Abrir bloques de datos (AUF), 15-2
Cargar longitud de DB de instancia en ACU 1
(L DILG), 15-3
Cargar longitud de DB global en ACU 1 (L
DBLG), 15-3
Cargar nmero de DB de instancia en ACU 1 (L
DINO), 15-3
Cargar nmero de DB global en ACU 1 (L
DBNO), 15-3
Intercambiar DB global y DB de instancia
(TDB), 15-2
Operaciones de carga y transferencia (L) (T),
8-28-14
Ver tambin operaciones, cargar (L) y transferir
(T)
byte, palabra o palabra doble como parmetro,
8-5
cargar el estado en ACU 1, 8-6
Cargar el nmero de un bloque de datos de instancia en el ACU 1 (L DINO), 8-12
Cargar el nmero de un bloque de datos global
en el ACU 1 (L DBNO), 8-12
Cargar la longitud de un bloque de datos de instancia en el ACU 1 (L DILG), 8-12
Cargar la longitud de un bloque de datos global
en el ACU 1 (L DBLG), 8-12
cargar los bits de estado en ACU 1, 8-6
cargar y transferir entre registros de direcciones
(LAR y TAR), 8-118-12
definicin, 8-2
direccionamiento directo, 8-4
direccionamiento indirecto, 8-4
direccionamiento indirecto e interrea, 8-5
intercambio de informacin, 8-2
entre mdulos y reas de memoria, 8-2
sobre el acumulador, 8-2
transferir el contenido de ACU 1 a la palabra de
estado, 8-6
Operaciones de comparacin, 11-211-9
aplicaciones prcticas, B-10
Comparar dos enteros de 16 bits, 11-311-4
Comparar dos enteros de 32 bits, 11-311-4
comparar dos nmeros en coma flotante,
11-511-6
criterios de comparacin, 11-2
funcin de los acumuladores, 11-2

Indice-7

Indice alfabtico

Operaciones de contaje, 7-27-14


Activar (S), 7-27-20
aplicaciones prcticas, B-10
Cargar contador codificado en binario (LC),
7-27-18
Cargar contador codificado en formato BCD
(L), 7-27-19
combinacion lgica, 7-27-14
Decrementar contador (ZR), 7-27-17
Desactivar (R), 7-27-20
Desbloquear contador (FR), 7-27-14
Habilitar contador (FR), 7-47-16
Incrementar contador (ZV), 7-27-17
Operaciones de control del programa
Activar rea MCR (MCRA), 17-11
Desactivar rea MCR (MCRD), 17-11
Fin rea MCR ()MCR), 17-11
Fin de bloque condicionado (BEB), 17-16
Fin de bloque incondicionado (BEA), 17-16
funciones del Master Control Relay (MCR),
17-11
Llamar bloque (CALL), 17-317-6
Salvar RLO en pila MCR, comienzo rea MCR
(MCR(), 17-11

Indice-8

Operaciones de conversin
Complemento a dos de entero (16 bits) (NEGI),
12-14
Complemento a dos de entero doble (32 bits)
(NEGD), 12-14
complemento a dos de nmero en coma flotante
(32 bits, IEEE-FP) (NEGR), 12-14
complemento a uno de entero de16 bits, 12-14
Complemento a uno de entero doble (32 bits)
(INVD), 12-14
Convertir de BDC a entero de16 bits (BTI),
12-2
Convertir de BDC a entero doble de 32 bits
(BTD), 12-4
Convertir de entero de 16 bits a BCD (ITB),
12-5
Convertir de entero de 32 bits a BCD (DTB),
12-6
Convertir de entero de 32 bits a nmero en
coma flotante (32 bits, IEEE-FP) (DTR),
12-7
Convertir de entero de16 bits a entero doble
(ITD), 12-6
Invertir secuencia en ACU 1 (16 bits) (TAW),
12-13
Invertir secuencia en ACU 1 (32 bits) (TAD),
12-13
panormica acerca de la conversin y el redondeo de nmeros, 12-12
Redondar a entero de16 bits (RND), 12-9
Redondear al prximo entero inferior de 32 bits
(RND), 12-11
Redondear al prximo entero superior de 32 bits
(RND+), 12-10
Truncar (TRUNC), 12-12
Operaciones de desplazamiento, 14-214-5
Desplazar palabra (16 bits) a la izquierda
(SLW), 14-2, 14-3
Desplazar signo entero (16 bits) (SSI), 14-4
Desplazar signo entero doble (32 bits) (SSD),
14-4
efecto a los cdigos de condicin (A1 y A0) y al
bit OV (desbordamiento), 14-2
funcin, 14-2
Operaciones de rotacin, 14-614-8
Rotar ACU 1 a la derecha via A1 (32 bits)
(RRDA), 14-8
Rotar ACU 1 a la izquierda via A1 (32 bits)
(RLDA), 14-8
Rotar palabra doble (32 bits) a la derecha
(RRD), 14-7
Rotar palabra doble (32 bits) a la izquierda
(RLD), 14-7

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico

Operaciones de salto, 16-216-12


condicin en funcin de los bits de la palabra de
estado RB, OV u OS, 16-5
condicin en funcin del resultado de los cdigos de condicin A1 y A0, 16-6
condicin en funcin del resultado lgico, 16-4
condicionado
Salto si es negativo (SPM), 16-6
Salto si es positivo (SPP), 16-6
Salto si no es 0 (SPN), 16-6
Salto si no es vlido (SPU), 16-6
Salto si OS = 1, 16-5
Salto si OV = 1 (SPO), 16-5
Salto si RB = 0 (SBBIN), 16-5
Salto si RB = 0 (SPBIN), 16-5
Salto si RB = 1 (SPBI), 16-5
Salto si resultado = 0 (SPZ), 16-6
Salto si resultado es mayor o igual a 0
(SPPZ), 16-6
Salto si resultado es menor o igual a 0
(SPMZ), 16-6
Salto si RLO = 0 (SPBN), 16-4
Salto si RLO = 0 con RB (SPBNB), 16-4
Salto si RLO = 1 (SPB), 16-4
Salto si RLO = 1 con RB (SPBB), 16-4
incondicionado
Salto a meta (SPL), 16-3
Salto incondicionado (SPA), 16-3
meta de salto como operando, 16-2
resumen breve, 16-2
Operaciones de salto condicionadas
Salto si OS = 1 (SPS), 16-5
Salto si OV = 1 (SPO), 16-5
Salto si RB = 1 (SPBI), 16-5
Salto si RLO = 0 (SPBN), 16-4
Salto si RLO = 0 con RB (SPBNB), 16-4
Salto si RLO = 1 (SPB), 16-4
Salto si RLO = 1 con RB (SPBB), 16-4
Operaciones de salto condicionado, Salto si RB = 0
(SPBIN), 16-5
Operaciones de transferencia (T). Ver Operaciones,
Cargar (L) y Transferir (T)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Operaciones lgicas con bits, 5-26


Activar (S), 5-20, 5-21, 5-23
contador, 7-3
contadores, 7-9
Activar RLO (SET), 5-26
aplicaciones, B-3, B-6
Asignar (=), 5-20, 5-24, 5-25
comparacin, 11-2
consultar cdigos de condicin A1 y A0, 5-11
contadores, 7-27-14
criterios de comparacin, 11-2
Desactivar (R), 5-20, 5-21, 5-23, 7-8, 7-9
contador, 7-4
temporizador, 6-6
Desactivar RLO (CLR), 5-26
Flanco ascendente (positivo) (FP), 5-19
flanco ascendente (positivo) (FP), 5-16
Flanco descendente (negativo) (FN), 5-19
flanco descendente (negativo) (FN), 5-16
funcin de acumuladores, 11-2
Inicializar (S), contador, 7-8
Negar RLO (NOT), 5-26
O (O), utilizar contadores como operando booleano, 7-2
O-exclusiva (X), utilizar contadores como operando booleano, 7-2
O-exclusiva-NO (XN), utilizar contadores como
operando booleano, 7-2
O-NO (ON), utilizar contadores como operando
booleano, 7-2
Salvar RLO en el registro RB (SAVE), 5-26
terminar una cadena lgica, 5-20
utilizar contadores como operando de bit, 7-2
Y (U), 5-3
utilizar contadores como operando booleano,
7-2
Y-NO (UN), 5-3
utilizar contadores como operando booleano,
7-2
Operaciones lgicas con bits como operandos,
5-25-5

Indice-9

Indice alfabtico

Operaciones lgicas con operandos bit, consultar


cdigos de condicin (A1 y A0), 2-14
Operaciones lgicas con palabras, 13-2
16 bits, 13-313-5
32 bits, 13-613-8
aplicaciones prcticas, B-14
gestin de acumuladores, 13-2, 13-3, 13-6
O con palabra (OW), 13-3, 13-4
O con palabra doble (OD), 13-6
O-exclusiva con palabra doble (XOD), 13-6
O-exclusiva con palabra (XOW), 13-3
Y con palabra (UW), 13-5
Y con palabra doble (UD), 13-6, 13-7, 13-8
Operaciones nulas (NOP), utilizadas para separar
operaciones de salto consecutivas, 16-2
Operaciones que afectan a la palabra de estado,
5-10
Operando
Abrir bloques de datos (AUF), 15-2
asignar operandos a una operacin CALL, 17-3
bits de la palabra de estado, 5-13
bloque de datos, 2-4
constantes como operando, 13-2
descripcin, 2-2
meta para la operacin de salto, 16-3
meta para la operacin LOOP, 16-3
para operaciones
Cargar (L) y Transferir (T), 8-38-5
contadores, 7-10
Llamada condicionada (CC), 17-7
Llamada incondicionada (UC), 17-7
temporizador, 6-17
simblico, 17-3
tipos
absoluto, 13-2
bit de la palabra de estado, 2-3
bloque de funcin (FB), 2-5
bloque de funcin del sistema (SFB), 2-5
funcin (FC), 2-5
funcin del sistema (SFC), 2-5
simblico, 2-4
valores constantes, 2-3
OR, bit de estado, 2-14
Orden con operaciones Y con O, 5-14
Orden de procesamiento con combinaciones Y con
O, 5-14
OS. Ver Bit OS (desbordamiento memorizado)
OV. Ver Bit OV (desbordamiento)
OW. Ver O con palabra (OW)

Indice-10

P
Palabra de estado
bit de estado (A1 y A0), 2-142-18
bit de estado (STA), 2-13
bit OR, 2-14
bit OS (desbordamiento memorizado), 2-14
despus de una operacin Comparar dos nmeros en coma flotante, 11-5
bit OV (desbordamiento), 2-14
despus de una operacin Comparar dos nmeros en coma flotante, 11-5
bits afectados por la aritmtica de enteros, 9-4
cdigos de condicin (A1 y A0)
bit OV (desbordamiento), afectado por las
operaciones lgicas con palabras, 13-3
condicin en funcin del salto condicionado,
16-6
despus de una operacin de comparacin,
11-4, 11-5
descripcin, 2-12
evaluar los resultados de la operacin aritmtica
de enteros (32 bits), 9-4
indicacin del margen no vlido para la aritmtica de enteros, 9-4
indicacin del margen vlido para la aritmtica
de enteros, 9-4
leer utilizando la operacion Cargar (L), 8-6
operaciones que afectan a la palabra de estado,
5-10
operaciones que evalan el bit de estado, 11-4,
11-5
primera consulta (/ER), 2-12
resultado binario (bit RB), 2-16
resultado lgico (RLO), 2-13
transferir el contenido de ACU 1 en la palabra
de estado, 8-6
Parmetro actual, 17-2
asignacin, 17-8
Parmetro formal, 17-2
Parmetros actuales, 17-3
Pila de parntesis, 2-10
POP, 4-2
Primera consulta (/ER), 2-12
resultado, 2-12
Programar, aplicaciones prcticas, B-2
PUSH, 4-2

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico

R
Raz cuadrada (SQRT), 10-9
Rama paralela, expresiones entre parntesis,
5-145-15
RB. Ver Bit RB (resultado binario)
Redondear a entero de16 bits (RND), 12-8
Redondear al prximo entero de 32 bits inferior
(RND), 12-8
Redondear al prximo entero de 32 bits superior
(RND+), 12-8
Redondear nmeros en coma flotante (32 bits) a
enteros de 32 bits, 12-8
Redondear nmeros en coma flotante en enteros de
32 bits, 12-8
Registro
de la CPU, 2-102-16, 3-6
imagen de las entradas/salidas. Ver Imagen de
las entradas, imagen de las salidas
imagen del proceso de las entradas y de las salidas. Ver Imagen del proceso de las entradas,
imagen del proceso de las salidas
intercambiar DB global y DB de instancia
(TDB), 15-2
intercambiar registros de bloques de datos, 15-2
operando, 2-10, 3-6
Registro de direcciones, 2-10, 3-6
cargar y transferir entre registros de direcciones,
8-118-12
sumar una constante al registro de direcciones,
4-7
Registro de la CPU, 2-102-16, 3-6
acumuladores, funcin, 2-10
palabra de estado, 2-12
pila de parntesis, 2-10
puntero, 3-6
Registro en la CPU, acumuladores, valor de temporizacin en ACU 1, 6-4
Resolucin. Ver base de tiempo para S5 TIME
Resultado lgico (RLO)
Activar, 5-27
activar, 5-26
almacenado en la pila de parntesis, 5-14
bit de estado, 2-13
cambio, 5-16
con la operacin Asignar (=), 5-245-25
desactivar, 5-26
negar, 5-26
operaciones que no afectan al RLO, 4-6
relacin a la operacin Fin de bloque, 17-16
salvar, 5-26
RLD. Ver Rotar palabra doble (32 bits) a la izquierda (RLD)
RLDA. Ver Rotar ACU 1 a la izquierda va A1 (32
bits) (RLDA)
RLO. Ver resultado lgico
RND. Ver Redondear a entero (RND)

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

RND+. Ver Redondear al prximo entero doble superior (RND+)


RND. VerVer Redondear al prximo entero doble
inferior (RND)
RRD. Ver Rotar palabra doble (32 bits) a la derecha
(RRD)
RRDA. Ver Rotar ACU 1 a la derecha va A1 (32
bits) (RRDA)

S
S. Ver Activar (S)
S5 TIME
base de tiempo, 6-4
valor de tiempo, 6-3
SA. Ver Temporizador con retardo a la desconexin
(SA)
Salto a meta (SPL), 16-3
Salto incondicionado (SPA), 16-3
Salto si es negativo (SPM), 16-6
Salto si es positivo (SPP), 16-6
Salto si no es 0 (SPN), 16-6
Salto si no es vlido (SPU), 16-6
Salto si OS = 1 (SPS), 16-5
Salto si OV = 1 (SPO), 16-5
Salto si RB = 0 (SPBIN), 16-5
Salto si RB = 1 (SPBI), 16-5
Salto si resultado <=0 (SPMZ), 16-6
Salto si resultado = 0 (SPZ), 16-6
Salto si resultado >=0 (SPPZ), 16-6
Salto si RLO = 0 (SPBN), 16-4
Salto si RLO = 0 con RB (SPBNB), 16-4
Salto si RLO = 1 (SPB), 16-4
Salto si RLO = 1 con RB (SPBB), 16-4
Salvar RLO del registro RB (SAVE), 5-26
Salvar RLO en pila MCR, comienzo rea MCR,
17-11
SAVE. Ver Salvar RLO en registro RB (SAVE)
SET. Ver Activar RLO (SET)
SI. Ver Impulso; Temporizador de impulso
SLW. Ver Desplazar palabra (16 bits) a la izquierda
(SLW)
SPA. Ver Salto incondicional (SPA)
SPB. Ver Salto si RLO = 1 (SPB)
SPBB. Ver Salto si RLO = 1 con RB
SPBI. Ver Salto si RB = 1 (SPBI)
SPBIN. Ver Salto si RB = 0 (SPBIN)
SPBN. Ver Salto si RLO = 0 (SPBN)
SPBNB. Ver Salto si RLO = 0 con RB (SPBNB)
SPL. Ver Salto a meta (SPL)
SPM. Ver Salto si es negativo (SPM)
SPMZ. Ver Salto si resultado es menor o igual a 0
(SPMZ)
SPN. Ver Salto si no es 0 (SPN)
SPO. Ver Salto si OV = 1 (SPO)
SPP. Ver Salto si es positivo (SPP)

Indice-11

Indice alfabtico

SPPZ. Ver Salto si resultado >=0 (SPPZ)


SPS. Ver Salto si OS = 1 (SPS)
SPU. Ver Salto si no es vlido (SPU)
SPZ. Ver Salto si resultado = 0 (SPZ)
SQR. Ver Cuadrado
SQRT. Ver Raz cuadrada
SRW. Ver Desplazar palabra (16 bits) a la derecha
(SRW)
SS. Ver Temporizador con retardo a la conexin con
memoria (SS)
SSD. Ver Desplazar signo entero doble (32 bits)
(SSD)
SSI. Ver Desplazar signo entero (16 bits) (SSI)
STA. Ver Estado (STA), bit de estado
STW. Ver palabra de estado

T
T. Ver Operaciones de carga y transferencia
TAD. Ver Cambiar secuencia en ACU 1 (32 bits)
(TAD)
TAK. Ver Intercambiar ACU 1 con ACU 2
TAN. Ver Tangente
Tangente (TAN), 10-13
TAR. Ver cargar y transferir entre registro de direcciones
TAW. Ver Cambiar secuencia en ACU (16 bits)
(TAW)
TDB. Ver Intercambiar DB global y DB de instancia (TDB)
Temporizador como impulso (SI), 6-7
Temporizador como retardo a la conexin (SE), 6-5
Temporizador como retardo a la conexin con memoria (SS), 6-5, 6-13
Temporizador como retardo a la desconexin (SA),
6-5, 6-15

Temporizadores
Activar (S), 6-56-6
rea de memoria, 2-8, 6-36-4
rea de direccionamiento, 2-9
base de tiempo para S5 TIME, 6-3
como impulso (SI), 6-7
como impulso prolongado (SV), 6-96-16
como retardo a la conexin con memoria (SS),
6-136-16
como retardo a la desconexin (SA). Ver base de
tiempo para S5 TIME
componentes, 6-36-4
definicin. Ver base de tiempo para S5 TIME
Desactivar (FR), 6-6
Desactivar (R), 6-6
impulso (SI), 6-2
impulso prolongado (SV), 6-2
nmeros soportados, 6-36-4
operaciones de temporizacin, 6-26-22
aplicaciones prcticas, B-10
resolucin. Ver base de tiempo para S5 TIME
retardo a la conexin (SE), 6-2
retardo a la conexin com memoria (SS), 6-2
retardo a la desconexin (SA), 6-2
tipos, 6-2
valor de temporizacin, 6-36-23
rea, 6-36-23
sintaxis, 6-36-23
visin esquemtica, 6-18
Terminar una cadena lgica, 5-20
Tipos de datos
ANY, 17-9
para parmetros formales y actuales, 17-3
Transcripcin de programas, a KOP, FUP, AWL,
1-1
Transferir el contenido de ACU 1 en la palabra de
estado, 8-6
TRUNC. Ver Truncar (TRUNC)
Truncar (TRUNC), 12-12

U
UC. Ver Llamada incondicional (UC)
UD. Ver Y con palabra doble (UD)
UW. Ver Y con palabra (UW)

V
Valor absoluto
definicin, 10-6
Formar el valor absoluto de un nmero en coma
flotante (32 bits), 10-6
Valor de retorno, llamar una funcin que produce
un valor de retorno, 17-6

Indice-12

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Indice alfabtico

Valor de temporizacin
rea, 6-3
formato en ACU 1, 6-4
sintaxis, 6-3
Valor exponencial de la base e, EXP, 10-12
Valores constantes
como operandos para operaciones lgicas con
palabras, 13-213-14
decrementar ACU 1 en la constante de 8 bits,
4-6
incrementar ACU 1 en la constante de 8 bits,
4-6
sumar un entero al ACU 1, 9-6
utilizados como operando, 2-3

X
X. Ver O-exclusiva
XN. Ver O-exclusiva-NO

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

XOD. Ver O-exclusiva con palabra doble (XOD)


XOW. Ver O-exclusiva con palabra (XOW)

Y
Y (U), 5-3
utilizar contadores como operando de bit, 7-2
Y antes de O, 5-14
Y con palabra (UW), 13-313-5
combinacin de acumulador y constante,
13-313-5
Y-NO (UN), 5-3
utilizar contadores como operando de bit, 7-2

Z
ZR. Ver Decrementar contador (ZR)
ZV. Ver Incrementar contador (ZV)

Indice-13

Indice alfabtico

Indice-14

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Siemens AG
A&D AS E 81
Oestliche Rheinbrueckenstr. 50
D-76181 Karlsruhe
R.F.A.

Remitente:
Nombre:
_
Cargo: _ _ _ _
Empresa:
_
Calle: _ _ _ _
Cdigo postal: _
Poblacin:
_
Pas: _ _ _ _
Telfono:
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_

_ _ _
_ _ _ _
_ _ _ _
_ _ _
_ _ __
_ _ _ _
_ _ _ _
_ _ _ _

Indique el ramo de la industria al que pertenece:


r

Industria del automvil

Industria farmacutica

Industria qumica

Industria del plstico

Industria elctrica

Industria papelera

Industria alimentaria

Industria textil

Control e instrumentacin

Transportes

Industria mecnica

Otros _ _ _ _ _ _ _ _ _ _ _

Industria petroqumica

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Observaciones/sugerencias
Sus observaciones y sugerencias nos permiten mejorar la calidad y utilidad de nuestra
documentacin. Por ello le rogamos que rellene el presente formulario y lo envie a
Siemens.

Responda por favor a las siguientes preguntas dando una puntuacin comprendida entre
1 = muy bien y 5 = muy mal
1.

Corresponde el contenido del manual a sus exigencias ?

2.

Resulta fcil localizar las informaciones requeridas ?

3.

Es comprensible el texto ?

4.

Corresponde el nivel de los detalles tcnicos a sus exigencias ?

5.

Qu opina de la calidad de las ilustraciones y tablas ?

En las lneas siguientes puede exponer los problemas concretos que se le hayan planteado
al manejar el manual:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Lista de instrucciones (AWL) para S7-300 y S7-400


C79000-G7078-C565-01

Potrebbero piacerti anche