562
SIEMENS Instrucciones para el uso del manual, lndice Introducción Programa de usuario Procesamiento del programa S5-135U CPU 928B-3UB21 Estados operativos y niveles de procesamiento Tratamiento de interrupciones y errores Funciones especiales integradas Instrucciones de programación Módulo de datos ampliado DX O Ocupación y organización de la memoria Accesos a la memoria a través de direcciones absolutas Comunicación en multiprocesamiento Interfaces y funciones del aparato de programación Anexo Bibliografía Lista de abreviaturas Glosario, lndice alfabético La lista de operaciones CPU 928/CPU 928B/CPU 948, no de re f. 6ES5 997-3UA43 está incluida en este manual.

SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Embed Size (px)

Citation preview

Page 1: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

SIEMENS Instrucciones para el uso del manual, lndice

Introducción

Programa de usuario

Procesamiento del programa

S5-135U CPU 928B-3UB21

Estados operativos y niveles de procesamiento

Tratamiento de interrupciones y errores

Funciones especiales integradas Instrucciones de programación

Módulo de datos ampliado DX O

Ocupación y organización de la memoria

Accesos a la memoria a través de direcciones absolutas

Comunicación en multiprocesamiento

Interfaces y funciones del aparato de programación

Anexo

Bibliografía

Lista de abreviaturas

Glosario, lndice alfabético

La lista de operaciones CPU 928/CPU 928B/CPU 948, no de re f. 6ES5 997-3UA43 está incluida en este manual.

Page 2: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Consignas de Este manual contiene las informaciones necesarias para la seguridad personal así como para la pre- seguridad para el vención de daños materiales. Las informaciones están puestas de relieve mediante señales de pre- usuario caución. Las señales que figuran a continuación representan distintos grados de peligro:

A Peligro

Significa que, si no se adoptan las medidas preventivas adecuadas, se producirá la muerte, o bien lesiones corporales graves o daños materiales considerables.

A Precaución

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

A Cuidado

Significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse lesiones cor- porales o daños materiales.

Nota

Se trata de una información importante, sobre el producto o sobre una parte determinada del manual, sobre la que se desea llamar particularmente la atención.

Personal cualificado La puesta en funcionamiento y el servicio del equipo sólo deben ser llevados a cabo conforme a lo descrito en este manual.

Sólo está autorizado a intervenir en este equipo el personal cualificado. En el sentido del manual se trata de personas que disponen de los conocimientos técnicos necesarios para poner en funciona- miento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas están- dar de seguridad.

Uso conforme Considere lo siguiente:

A Precaución

El equipo o los componentes del sistema sólo se podrán utilizar para los casos de aplicación previstos en el catálogo y en la descripción técnica, y sólo con 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 instalación y un montaje conforme a las prácticas de la buena ingeniería, así como un manejo y un mantenimiento rigurosos.

Marca registrada SIMATIC@ y SINEC@ son marcas registradas por SIEMENS AG

Los restantes nombres y designaciones contenidos en el presente documento pueden ser marcas regis- tradas cuya utilización por terceros para sus propiosfines puede violar los derechos de los proprietarios.

Copyright O Siemens AG 1996 All rights reserved

Ladivulgación y reproducción de este documento, asícomo el uso y lacomunicacióndesu contenido, no están autorizados,anoserque se obtenga el consentimiento expreso para ello. Los infractores quedan obligados a la indemnización de los daños. Se reservan todos los derechos, en particular para el caso de concesión de patentes o de modelos de utilidad.

Siemens AG Grupo Automatización División Sistemas de Automatización Industriales Postfach 4848, D-90327 Nürnberg

Exención de responsabilidad

Hemos probado el contenidodeesta publicación con laconcordan- ciadescrita para el hardware y el software. Sin embargo, es posible que se den algunas desviaciones que nos impiden tomar garantía completa de esta concordancia. El contenido de esta publicación está sometido a revisiones regularmente y en caso necesario se incluyen las correcciones en la siguiente edición. Agradecemos sugerencias.

O Siemens AG 1996 Sujeto a cambios sin previo aviso.

Siemens Aktiengesellschaft 6 ~ ~ 5 9 9 8 - 2 ~ ~ 4 2

Page 3: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnstrucciones para el uso del manual

Campo de aplicación

Estas instrucciones de programación describen las funciones de la CPU 928B-3UB21 así como el software de sistema correspondiente.

lnstrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 4: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnstrucciones Dara el uso del manual

Informaciones El capítulo 1 contiene informaciones acerca de los campos de aplicación del referentes a los autómata programable S5-135U con la CPU 928B. distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU.

Este capítulo da además algunos consejos sobre cómo proceder a la hora de programar y también informa sobre los datos característicos importantes que posee la CPU 928B-3UB21. Si ya ha trabajado anteriormente con la CPU 928B-3UB12 y desea saber en qué aspectos se diferencia la CPU 928B-3UB21, consulte este capítulo.

El capítulo 2 describe los componentes que integran un programa de usuario STEP 5 y el modo en que puede ser estructurado.

El capítulo 3 se dirige a aquellos lectores que no tengan gran experiencia en la aplicación del lenguaje de programación STEP 5. Introduce al lector en los conocimientos básicos de la programación STEP 5 y describe las operaciones STEP 5 más detalladamente (con ejemplos). El apartado 3.5 puede servir de apartado de consulta a aquellos lectores que tengan muy buenos conocimientos del sistema y que no les basten las informaciones que figuran en la lista de operaciones, referentes a una operación STEP 5 concreta.

El capítulo 4 ofrece una visión de conjunto de los distintos estados operativos y niveles de procesamiento del programa de la CPU 928B. Además da informaciones detalladas acerca de los distintos modos de arranque y los consiguientes módulos de organización, en los que se podrá programar el programa en cuestión para los distintos modos de arranque. También se exponen las características en las que se distinguen los niveles de procesamiento: "procesamiento cíclico", "procesamiento controlado por tiempo" y "procesamiento controlado por alarma", así como los módulos disponibles para el programa de usuario.

El capítulo 5 explica cómo pueden evitarse errores a la hora de planificar y programar los programas STEP 5. También informa acerca de las ayudas que ofrece el programa de sistema a fin de diagnosticar errores y de cómo reaccionar ante éstos. Además se indican los módulos en los que se pueden programar reacciones ante determinados errores.

El capítulo 6 expone las funciones especiales integradas del programa de sistema. Asimismo explica en qué campos se pueden aplicar las funciones especiales y cómo se llaman y parametrizan los OBs de funciones especiales. También indica cómo detectar errores durante el procesamiento de una función especial y cómo tratarlos mediante el programa.

lnstrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 5: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnstrucciones Dara el uso del manual

El capítulo 7 explica en qué casos se puede utilizar el módulo de datos DX 0, cómo está estructurado y cuál es el significado de los distintos parámetros DX O. Por medio de ejemplos el usuario aprenderá cómo generar un módulo de datos DX O o cómo parametrizarlo mediante una máscara.

El capítulo 8 sirve de capítulo de consulta a los usuarios expertos en este sistema. En él se encuentran explicaciones acerca de la organización de la memoria de la CPU 928B y de algunas palabras de datos del sistema que contienen informaciones a las que puede acceder el usuario. Además, se indica cómo activar y desactivar la protección del software de la CPU mediante una palabra de datos del sistema.

El capítulo 9 también está dirigido a los usuarios que tengan experiencia en este sistema: aquí podrán consultar cómo acceder mediante direcciones absolutas a datos que se encuentran en determinadas zonas de memoria.

El capítulo 10 explica en primer lugar cuándo utilizar el modo multiprocesador y qué posibilidades de intercambio de datos existen entre las CPUs y los CPs (procesadores de comunicación). También explica lo que se debe hacer y tener en cuenta a la hora de programar en modo multiprocesador. Finalmente da instrucciones detalladas con ejemplos de aplicación para el intercambio de grandes cantidades de datos en modo multiprocesador (comunicación en multiprocesamiento).

El capítulo 11 informa sobre cómo acoplar la CPU a un aparato de programación (PG) y sobre las ayudas que ofrece el software del aparato de programación a fin de comprobar el programa STEP 5.

El anexo A contiene una comparación de los datos técnicos característicos de las CPUs 928A, 928 B y 948.

El anexo B contiene una lista con bibliogra£ía complementaria.

El anexo C es una ayuda para orientarse a través del manual; contiene una lista de las abreviaturas utilizadas así como un índice alfabético.

lnstrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 6: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnstrucciones Dara el uso del manual

Ayudas de Apartados de segundo orden orientación en el manual Los apartados de segundo orden (p.ej. 4.3) se destacan mediante títulos en

negrita al comienzo de una página y aparecen en el índice del capítulo.

Notas maeinales

Las notas marginales que aparecen en negrita del lado izquierdo del texto permiten localizar rápidamente las descripciones técnicas.

Las informaciones importantes se destacan de este modo. l Tablas de consulta

Tabla 1-1 Operaciones binarias de combinación

Ejemplos

Operación

U

O

Los ejemplos, sean largos o cortos -también de varias páginas - están destacados por un margen reticulado. En los ejemplos que abarquen varias páginas, las páginas siguientes a la primera están claramente distinguidas.

Modo de representación AWL

Operando

E 0.0 a 127.7 ......

lnstrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Función

Combinación AND con consulta si el estado lógico es "1"

Combinación OR con consulta si el estado lógico es "1"

de una entrada en el PAE . . . . . . . .

Page 7: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lndice

Introducción .................................................................. 1-1

Campos de aplicación del S5-135U con la CPU 928B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

Funcionamiento típico de una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

Los programas de una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5

Programa de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¿De qué operandos dispone el programa de usuario? 1-9

Accesos a zonas de operandos y de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¿Cómo proceder a la hora de programar? 1-13

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Herramientas de programación 1-16

¿Qué novedades presenta la CPU 928B.3UB21? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17

Programa de usuario ........................................................... 2-1

Lenguaje de programación STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

Modos de representación KOP. FUP y AWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Programación estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Operaciones STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Representación numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 Módulos STEP 5 y su registro en la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10

Módulos de programa. de organización y de pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14

Módulos de organización para interfaces con el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 Módulos de organización de funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19

Módulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21

Estructura de los módulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22 Programación de los módulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24 Llamada y parametrización de módulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-26 Módulos de funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31

Módulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-33

Crear módulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-35 Abrir módulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-36 Módulos de datos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-39

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 8: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa .................................................... 3-1

Principios fundamentales del procesamiento del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

Organización del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3

Almacenamiento de módulos de programa y de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8

Procesamiento del programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10

Definiciones terminológicas en cuanto al procesamiento del programa . . . . . . . . . . . . . . . . . . . 3-11

Operaciones STEP 5 con ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13

Operaciones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17 Ejemplos de programación en los modos de representación AWL. KOP y FUP . . . . . . . . . . . . 3-32 Operaciones complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47 Operaciones de organización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-54 Operaciones semáforo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-67

Estados operativos y niveles de procesamiento ..................................... 4-1

Introducción y resumen sinóptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2

Niveles de procesamiento del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5

Estado operativo STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11

Características e indicadores del estado operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Solicitar y ejecutar un BORRADO TOTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13

Estado operativo ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15

NUEVO ARRANQUE MANUAL Y AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16 REARRANQUE MANUAL Y AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16 Comparativa de los modos de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Interfaces con el usuario para el arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Interrupciones en el ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22

Estado operativo RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24

Procesamiento cíclico del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26 Procesamiento controlado por tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28 Alarma de reguladores: procesamiento de reguladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-35 Alarma de proceso: procesamiento controlado por alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36 Procesamiento anidado de programas controlados por alarma o por tiempo . . . . . . . . . . . . . . . 4-39

Tratamiento de interrupciones y errores ........................................... 5-1

Errores frecuentes en el programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Informaciones sobre errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3

Bits de control y pila de interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7

Bits de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Contenido de la pila de interrupciones (USTACK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Ejemplo de diagnóstico de errores mediante USTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19

Tratamiento de errores mediante módulos de organización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 9: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ErroresenelARRANQUE 5-25

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DBO-FE (error DB O) 5-26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DB1-FE (error DB 1) 5-26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DB2-FE (error DB 2) 5-28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DXO-FE (error DX O ó DX 2) 5-29

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MOD-FE (error de Memory Card) 5-31

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Errores en RUN y en el ARRANQUE 5-32

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCF (error en código de instrucción) 5-34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LZF (error en tiempo de ejecución) 5-37

ADF (error de direccionamiento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . QVZ (retardo en acuse de recibo) 5-46

ZYK (error de tiempo de ciclo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-48 WECK-FE (colisión de alarmas temporizadas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-49

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REG-FE (error de regulador) 5-50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ABBR (aborto) 5-52

FE-3 (errores de comunicación) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-53

.................................................. Funciones especiales integradas 6-1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducción 6-3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 110: Acceso al byte indicador 6-7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 11 1: Borrar AKKU 1.2. 3 y 4 6-9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 1121113: AKKU rol1 up1AKKU rol1 down 6-9

. . . . . . . . . . . . . . . . . . . . . . . . . . OB 120: Activarldesactivar "bloquear alarmas conjuntamente" 6-11

OB 121: Activarldesactivar "bloquear alarmas temporizadas individualmente" . . . . . . . . . . . . . 6-14

. . . . . . . . . . . . . . . . . . . . . . . . . . . OB 122: Activaddesactivar "retardar alarmas conjuntamente" 6-16

. . . . . . . . . . . . . . OB 123: Activarldesactivar "retardar alarmas temporizadas individualmente" 6-19

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 150: Ajustadleer la hora del sistema 6-23

OB 151: Ajustarfleer la hora para la alarma temporizada controlada por reloj . . . . . . . . . . . . . . 6-28

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 152: Estadística de ciclo 6-35

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 153: Ajustadleer la hora para la alarma de retardo 6-42

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 160 a 163: Bucles contadores 6-45

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 170: Leer pila de módulos (BSTACK) 6-47

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 180: Acceso variable a módulos de datos 6-52

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 181: Comprobar módulos de datos (DBPX) 6-56

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 182: Copiar zona de datos 6-58

............................. OB 185 : Activaddesactivar la protección contra escritura 6-61

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 186: Comprimir memoria 6-62

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 1901192: Transferir marcas a un módulo de datos 6-63

. . . . . . . . . . . . . . . . . . . . . . . . . . OB 1911193: Transferir bloques de datos a la zona de marcas 6-65

. . . . . . . . . . . . . . . . . . . . . . . . OB 200 y OB 202 a 205: Comunicación en multiprocesamiento 6-70

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 10: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lndice

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24 OB 216 a 218: Accesos a páginas 6-71

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.1 OB 216: Escritura en página 6-74 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.2 OB 217: Lectura de página 6-76

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.3 OB 218: Ocupación de página 6-78 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.4 Ejemplo de programación 6-80

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.25 OB 220: Ampliación del signo 6-82

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.26 OB 221: Ajustar el tiempo de supervisión de ciclo 6-83

6.27 OB 222: Nuevo arranque del tiempo de supervisión de ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-84

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.28 OB 223: Comparar los modos de arranque 6-84

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.29 OB 224: Transferir marcas de acoplamiento en bloques 6-85

. . . . . . . . . . . . . . . . . . . . 6.31 OB 228: Leer la información de status de un nivel de procesamiento 6-87

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.32 OB 230 a 237: Funciones para FBs estándar 6-89

. . . . . . . . . . . . . . . . . . . 6.33 OB 240 a 242: Funciones especiales para registros de desplazamiento 6-90

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.34 OB 240: Inicializar registro de desplazamiento 6-94

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.35 OB 241: Procesar registro de desplazamiento 6-97

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.36 OB 242: Borrar registro de desplazamiento 6-98

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37 OB 250125 1 : Regulación/Algoritmo PID 6-99

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37.1 Descripción de las funciones del regulador PID 6-99 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37.2 Algoritmo PID 6-101

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.38 OB 250: Inicializar algoritmo PID 6-106

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.39 OB 251: Procesar algoritmo PID 6-107

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.40 OB 2541255. DesplazarJduplicar módulos de datos 6-113

................................................. 7 Módulo de datos ampliado DX O 7-1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Aplicación 7-2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Estructura del DX O 7-3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Parámetros del DX O 7-6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Ejemplos de parametrización 7-10

.......................................... 8 Ocupación y organización de la memoria 8-1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 Estructura de la zona de memoria 8-2

. . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Distribución de la zona de direcciones de la CPU 928B.3UB21 8-3

8.2.1 Distribución de la zona de direcciones de la RAM de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 8.2.2 Distribución de la zona de direcciones de la periferia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5

. . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Organización de la memoria de usuario de la CPU 928B.3UB21 8-7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Cabezas de módulos en la memoria de usuario 8-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.2 Listas de direcciones de módulos en el módulo de datos DB O 8-9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.3 Zona BA/BB 8-12

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.4 Zona BS/BT 8-13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.5 Ocupación de los bits de las palabras de datos de sistema 8-16

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 11: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

.............................. 9 Accesos a la memoria a través de direcciones absolutas 9-1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducción 9-2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria a través de la dirección de AKKU 1 9-6

. . . . . . . . . . . . . . . . . . . . . . . . . . . LIRRIR: Cargaltransferencia indirecta de registros de 16 bits 9-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de aplicación de registros 9-14

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transferir bloques de memoria 9-16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo de transferencia de bloques de memoria 9-19

Operaciones con el registro base de direcciones (registro BR) . . . . . . . . . . . . . . . . . . . . . . . . . . 9-24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operaciones de transferencia entre registros 9-25

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria local 9-27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria global 9-28

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria de páginas 9-31

...................... 10 Modo multiprocesador y comunicación en multiprocesamiento 10-1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Modo multiprocesador 10-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Intercambio de datos a través de marcas de acoplamiento 10-4

10.1.2 Asignación de periferia y marcas de acoplamiento en modo multiprocesador (DB 1) . . . . . . . . 10-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.3 ¿Cómo se crea el módulo de datos DB l ? 10-9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Comunicación en multiprocesamiento 10-13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 ¿Cómo se identifica el emisor y el receptor? 10-15

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.2 ¿Por qué se almacenan datos de forma intermedia? 10-16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.3 ¿Cómo se procesa y administra la memoria intermedia? 10-17

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.4 Aspectos a tener en cuenta durante el arranque del sistema 10-20 . . . . . . . . . . . . . . . . . . . . 10.2.5 Lo que debe tenerse en cuenta al llamar a los OBs de comunicación 10-21

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.6 ¿Cómo se parametrizan los OBs de comunicación? 10-22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.7 ¿Cómo se evalúan los parámetros de salida? 10-24

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3 Tiempos de ejecución de los OBs de comunicación 10-29

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Función INICIALIZAR (OB 200) 10-30

10.4.1 Función 10-30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.2 Parámetros de llamada 10-32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.3 Parámetros de entrada 10-33

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.4 Parámetros de salida 10-36

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5 Función EMITIR (OB 202) 10-38

10.5.1 Función 10-38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.2 Parámetros de llamada 10-38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.3 Parámetros de entrada 10-39

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.4 Parámetros de salida 10-41

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6 Función TEST DE EMISION (OB 203) 10-43

10.6.1 Función 10-43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.2 Parámetros de llamada 10-43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.3 Parámetros de entrada 10-43

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.4 Parámetros de salida 10-44

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7 Función RECIBIR (OB 204) 10-45

10.7.1 Función 10-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.2 Parámetros de llamada 10-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.3 Parámetros de entrada 10-45

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.4 Parámetros de salida 10-46

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 12: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

10.8 Función TEST DE RECEPCION (OB 205) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48

10.8.1 Función 10-48 10.8.2 Parámetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48 10.8.3 Parámetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48 10.8.4 Parámetros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-49

10.9 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-50

10.9.1 Llamada a los OBs de funciones especiales por medio de módulos de funciones . . . . . . . . . . 10-50 10.9.2 Transferencia de módulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-58 10.9.3 Ampliación de la zona de marcas de acoplamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-64

................................ 11 Interfaces y funciones del aparato de programación 11-1

11.1 Panorámica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2

11.2 Funciones del aparato de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3

11.2.1 Información . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 11.2.2 Funciones de memorización y transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 11.2.3 Test del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7

11.3 Actividades en los puntos de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-15

. . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 Acoplamiento PG . AG a través de la 1" ó2" interfaz serie 11-16

11.5 Funcionamiento paralelo de dos interfaces serie de PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-17

11.5.1 Puesta en funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-19 11.5.2 Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-19 11.5.3 Ejecución en determinados modos operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-21

A Anexo ........................................................................ A-1

A.l Comparación de los tiempos de ejecución de las CPUs 928.3UA21. 928B-3UB21 y 948 . . . . . A-2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Identificadores de error A-5

A.3 Operaciones STEP 5 no disponibles en la CPU 928B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-13

A.4 Identificaciones de los niveles de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-14

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.5 Ejemplo de "evaluación de la pila USTACK" A-15

B Bibliografía ................................................................... B-1

C Lista de abreviaturas ........................................................... C-1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 13: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Resumen breve Este capítulo contiene informaciones acerca de los campos de aplicación del autómata programable S5-135U con la CPU 928B y sobre su estructura interna. Explica el funcionamiento típico de una CPU y el modo en que está estructurado un programa de CPU. También ofrece algunos consejos sobre cómo proceder a la hora de programar e informa asimismo sobre los datos característicos importantes que posee la CPU 928B (-3UB21). Si ya ha trabajado anteriormente con la CPU 928B (-3UBll ó -3UB12) y desea saber en qué aspectos se diferencia la CPU 928B (-3UB21), consulte el capítulo 1.8.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

1.1

1.2

1.3

1.3.1

1.3.2

1.4

1.5

1.6

1.7

1.8

Tema

Campos de aplicación del S5-135U con la CPU 928B

Funcionamiento típico de una CPU

Los programas de una CPU

Programa de sistema

Programa de usuario

¿De qué operandos dispone el programa de usuario?

Accesos a zonas de operandos y de memoria

¿Cómo proceder a la hora de programar?

Herramientas de programación

¿Qué novedades presenta la CPU 928B-3UB21?

Página

1-2

1-3

1-5

1-5

1-7

1-9

1-12

1-13

1-16

1-17

Page 14: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.1 Campos de aplicación del S5-135U con la CPU 928B

Clasificación El autómata programable S5-135U pertenece a la familia de los controladores de dentro de la memoria programable SIMATIC S5. Junto con la CPU 928B constituye un familia potente multiprocesador para la automatización de procesos industriales (mando,

avisos, supervisión, regulación, protocolizado). Puede ser utilizado para componer mandos simples con señales binarias así como para solucionar tareas de automatización complejas y de gran envergadura.

Campos de aplicación

El autómata programable S5-135U con la CPU 928B es especialmente apropiado para:

Tareas que requieran un procesamiento ultrarrápido de bits y de palabras, es decir, con mando y regulación muy rápidos. Ejemplos de este tipo de tareas se encuentran en los procesos rápidos de la ingeniería mecánica (instalaciones embotelladoras, empaquetadoras y similares).

Tareas que requieran una comunicación rápida con otras CPUs incorporadas en el autómata programable en modo multiprocesador y con tarjetas CPs (procesadores de comunicación) (por ejemplo, conexiones con sistemas de bus, visualizaciones, etc.).

Tareas de regulación fáciles de resolver con el software de regulación R 64 así como para su mando y observación a través de imágenes estándar con el sistema PMC.

Estructuras de automatización que requieran una comunicación directa con una computadora de control, otros autómatas programables o una impresora, a través de la segunda interfaz integrada o bien a través de una conexión SINEC L1.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 15: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.2 Funcionamiento típico de una CPU

Funcionamiento Una CPU ofrece los siguientes modos de operación: de una CPU

1 .

Procesamiento controlado por alarma Procesamiento cíclico

2.

Procesamiento La mayor parte de los procesos que tienen lugar en una CPU se cíclico efectúan de este modo. Como su propio nombre indica, en un ciclo continuo se

va repitiendo el mismo proceso una y otra vez.

O Procesamiento controlado por tiempo

El procesamiento cíclico se divide en tres fases principales:

CPU Proceso Fase

1

2

3

Leer la imagen de Entrada E 1.3

proceso de las entradas Entrada E 1.4

Ejecución

Todas las tarjetas de entrada asignadas a la CPU son consultadas por el programa de sistema y los valores leídos son memorizados de forma intermedia en la imagen de proceso de entradas (PAE).

Los valores que contiene la PAE son procesados por el programa de usuario y los valores a emitir son registrados en la imagen de proceso de salidas (PAA).

El programa de sistema transfiere los valores que contiene la PAA a las tarjetas de salida asignadas a la CPU.

l I ' Entrada E 1.5

Evaluar las seriales de entrada, definir las seriales de salida

Salida A 2.0 Emitir la imagen de proceso de las salidas Salida A 3.1

Salida A 4.7

Instrucciones d e programación C P U 928B-3UB21

C79000-G8578-C870-01

Page 16: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Procesamiento Para procesos que requieran señales de control en intervalos de tiempo controlado constantes se pueden procesar determinadas tareas de forma controlada por por tiempo tiempo - además de la ejecución cíclica - tales como funciones de supervisión

que no dependen de tiempo, en intervalos de segundos.

Procesamiento A una señal de proceso a la que se deba reaccionar con gran rapidez se le asigna una controlado fase de procesamiento controlada por alarma. Por ejemplo, el usuario puede por alarma activar en su programa una secuencia determinada mediante una alarma de proceso

disparada por una tarjeta que genere alarmas.

Procesamiento Los modos de procesamiento mencionados son tratados por la CPU según su según prioridad grado de importancia. Este grado de importancia se denomina prioridad.

Puesto que es necesario reaccionar con rapidez ante un suceso de tiempo o alarma, la CPU interrumpe el procesamiento cíclico a fin de tratar estos sucesos. De ahí que el procesamiento cíclico tenga una prioridad inferior a las demás.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 17: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.3 Los programas de una CPU

Introducción El programa que contiene cada una de las CPUs se divide en

programa de sistema

Y

programa de usuario.

1.3.1 Programa de sistema

Panorámica El programa de sistema organiza todas las funciones y procesos de la CPU que no estén relacionados con una tarea de mando específica (véase fig. 1-1).

Ejecutar arranque

al programa

A A ..nmmn.:..

in Establecer comunicación Tratar errores

Establecer comunicación con PG

Fig. 1-1 Funciones del programa de sistema

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 18: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Funciones Las funciones son las siguientes :

nuevo arranque y rearranque,

actualización de la imagen de proceso de las entradas y emisión de la imagen de proceso de las salidas,

llamada a los programas cíclico, procesado por tiempo y por alarma,

detección y tratamiento de errores,

administración de la memoria,

comunicación con el aparato de programación,

comunicación a través de la segunda interfaz serie.

lnterfaces con el En determinados estados operativos y casos de error el usuario tiene la usuario posibilidad de modificar el comportamiento de la CPU a través de interfaces

especiales con el programa de sistema.

Ajuste por Los siguientes capítulos, a excepción del capítulo 7, describen el defecto del comportamiento preajustado del sistema en reacciones ante sucesos del comportamiento proceso o errores. De acuerdo con el preajuste, la CPU pasa por ejemplo al del sistema estado STOP cuando en caso de un error de código de instrucción no está

cargado el correspondiente módulo de organización de error.

Modificación del El comportamiento del sistema puede ser modificado parametrizando el módulo ajuste de datos DX O. por defecto ¡En el capítulo 7 se puede consultar cuál es el comportamiento del sistema una

vez modificado el ajuste por defecto!

l) En funcionamiento con varias CPUs (modo multiprocesador) se incorporan otras funciones.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 19: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.3.2 Programa de usuario

Estructura La figura 1-2 muestra la estructura básica de un programa de usuario de STEP 5.

Módulos de organización

OB Operaciones STEP 5

E 1 3 A 3 1

Módulos de Módulos de Módulos de programa funciones pasos

PB FBIFX SB Operaciones Operaciones Operaciones STEP 5 STEP 5 STEP 5

FB 8

SEGMENTO 1 NOMB. :TRANS

E 1 3 0005 :L EB 3 0006 :T MW 200 0007 :A DE 5 0008 :B MW 200 0009 :L DW O OOOA :T AW 6 0006 :BE

Módulos de código

DB 1: KH=0101 ; Datos estáticos o dinámicos 2: KF = 1120: (bits, bytes, palabras, palabras dobles) 3: KC = xy;

4: KY = 4.5; 5: KG = 6: KM = 7:

Módulos de datos

DX 1: KH = FFFF;

Datos estáticos o dinámicos 2: KH = FFFF; 3: KH = FFFF:

(bits, bytes, palabras, palabras dobles) 4: KH = FFFF: 5: KH = FFFF: 6: KH = FFFF: 7:

Fig. 1-2 Estructura de un programa de usuario STEP 5

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 20: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Funciones El programa de usuario contiene todas las funciones necesarias para procesar una tarea de mando específica. Estas funciones - clasificándolas de forma aproximada - pueden ser asignadas directamente a las interfaces que el programa de sistema pone a disposición para los distintos modos de procesamiento:

Almacenamiento En la CPU 928B se dispone de dos zonas para grabar los módulos: del programa de usuario La memoria de usuario: máx. 64 Kbyte

Modo de procesamiento

Nuevo arranque y rearranque

Procesamiento cíclico

Procesamiento controlado por tiempo

Procesamiento controlado por alarma

Reacción ante errores

La memoria de usuario se encuentra en la tarjeta (CPU).

Función

Se crean las condiciones para que en caso de un nuevo arranque del mando o un rearranque, el resto del procesamiento pueda partir de un estado definido (p. ej. prefijar señales con un valor determinado).

Procesamiento reiterativo de señales @. ej. combinación de señales binarias, lectura y evaluación de valores analógicos, definición de señales binanas para la emisión, emisión de valores analógicos)

Procesamientos especiales en función de tiempo bajo las circunstancias que se indican:

- más rápido que el ciclo medio, en una escala de tiempo mayor que el tiempo medio de ciclo,

- en un tiempo regulable determinado

Reacciones especiales y rápidas ante determinadas señales de proceso

Tratamiento de anomalías en el desarrollo habitual del programa

La RAM de módulos de datos (DB-RAM): máx. 46 Kbyte

La DB-RAM es una zona de memoria adicional que sirve para registrar módulos de datos. La DB-RAM se encuentra en la tarjeta (CPU).

lnterfaces con el Como interfaces con el programa de sistema se dispone de módulos de programa organización para los distintos modos de procesamiento. de sistema

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 21: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.4 ¿De qué operandos dispone el programa de usuario?

Panorámica La CPU 928B ofrece las siguientes zonas de operandos para la programación:

Imagen de proceso y periferia

Marcas (marcas M y marcas S)

Temporizadores/contadores

Módulos de datos

Imagen de proceso de las entradas y salidas PAEIPAA

Zona de periferia (zona P)

Características

El programa de usuario puede acceder muy deprisa a la imagen de proceso, es decir, a los siguientes tipos de datos:

- bits, - bytes, - palabras, - palabras dobles.

Tamaño

128 byte para las entradas y salidas respectivamente

Zona de periferia ampliada (zona Q)

Características

El programa de usuario puede acceder directamente a las tarjetas de E/S (periféricas) a través del bus S5. Son válidos los siguientes tipos de datos:

- bytes, - palabras.

Tamaño

256 byte para las entradas y salidas respectivamente

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Características

El programa de usuario puede acceder directamente a las tarjetas E/S @eriféricas) a través del bus S5. Son válidos los siguientes tipos de datos:

- bytes, - palabras.

Tamaño

256 byte para las entradas y salidas respectivamente

Page 22: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Marcas M

Marcas S (zona de marcas ampliada)

Características

La zona de marcas es una zona de memoria a la que el programa de usuario puede acceder con mucha rapidez con operaciones correspondientes. La zona de marcas debe utilizarse preferentemente para datos de trabajo que se requieran frecuentemente.

Se puede acceder a los siguientes tipos de datos: - bits, - bytes, - palabras, - palabras dobles.

Los bytes de marcas pueden ser empleados como marcas de acoplamiento para el intercambio de datos entre las CPUs en modo multiprocesador (véase capítulo 10). Al final del ciclo, el programa de sistema actualiza las marcas de acoplamiento a través de una memoria intermedia del coordinador o CPAP.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Tamaño

2048 bits (256 bytes)

Características

La CPU 928B contiene una zona de marcas adicional, la zona de marcas S. Al igual que a las marcas M, el programa de usuario puede acceder a esta zona a gran velocidad.

Sin embargo, las marcas S no se pueden emplear como operandos actuales en las llamadas a módulos de funciones y tampoco como marcas de acoplamiento para el intercambio de datos entre las CPUs.

Para poder utilizarlas es imprescindible disponer del software de sistema del aparato de programación "SS-DOS" a partir de la versión 3.0 o "SS-DOSIMT "a partir de la versión 1.0.

Tamaño

8192 bits (1024 bytes)

Page 23: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Temporizadores T

Características

Contadores Z

Tamaño

El programa de usuario carga temporizadores con un valor entre 10 ms y 9990 s. Mediante una operación de arranque y a partir del valor indicado, éstas van decrementando en la escala de tiempo establecida hasta alcanzar el valor O.

256 temporizadores

Palabras de datos en el módulo de datos actual

Características

El programa de usuario carga contadores con un valor inicial (máx. 999) siendo incrementados o decrementados a continuación.

Tamaño

256 contadores

l) Si existen módulos de datos de una longitud mayor que 256 palabras sólo se podrá acceder a las palabras de datos con un número > 255 con operaciones para accesos absolutos a la memoria (véase capítulo 9) o con el OB 180 (véase capítulo 6).

Características

Un módulo de datos contiene constantes y10 variables en formato de byte, palabra o palabra doble. Con las operaciones STEP 5 el usuario siempre puede acceder al módulo de datos "actual" (véase capítulo 2.4). Se puede acceder a los siguientes tipos de datos:

- bits, - bytes, - palabras, - palabras dobles.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Tamaño

256 palabras

1)

Page 24: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.5 Accesos a zonas de operandos y de memoria

Introducción Para acceder a estas zonas de operandos y a la totalidad de la memoria, las instrucciones STEP 5 utilizan dos mecanismos diferentes:

direccionamiento relativo,

direccionamiento absoluto.

Direccionamiento La mayor parte de las instrucciones STEP 5 direcciona una célula de memoria de relativo forma relativa al principio de una zona de operandos. Si se opera exclusivamente

con este tipo de instrucciones, las zonas de código y de datos del programa de usuario están protegidas de sobreescrituras accidentales. A la vez, el programa de usuario no depende de la CPU utilizada, siempre que ésta disponga de la zona de operandos correspondiente.

Direccionamiento Algunas instrucciones STEP 5 operan con direccionamiento absoluto. Estas absoluto instrucciones permiten acceder a la totalidad de la zona de memoria. Solamente

pueden ser utilizadas en módulos de funciones. Debido al riesgo de que se destruyan datos sólo deberán utilizarse con la mayor cautela. Estas instrucciones dependen de la CPU utilizada.

Módulo de datos Los módulos de datos son cargados por el programa de sistema en la memoria de actual usuario o en la DB-RAM. Su posición dependerá del espacio de memoria

disponible. La longitud se determina al programar el módulo y puede variar.

El módulo de datos actual es el módulo cuya dirección inicial y longitud están depositadas en registros especiales. El registro se efectúa con una operación STEP 5 especial para llamar o "abrir" módulos de datos (como la página de un libro). El programa de usuario sólo puede acceder al módulo de datos actual, siempre que no se utilicen instrucciones con direccionamiento absoluto. Se admiten los siguientes tipos de datos: bits individuales, bytes, palabras y palabras dobles.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 25: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.6 ¿Cómo proceder a la hora de programar?

Introducción Si Vd. es un usuario experto, seguramente ya habrá desarrollado un método propio para crear programas. Si es así, no necesitará leer este capítulo.

A aquellos lectores que tengan menos experiencia en este tema queremos darles algunos consejos sobre cómo proceder a la hora de esbozar, programar, comprobar y poner en marcha su programa STEP 5.

Fases de realización

La realización de un programa de mando STEP 5 puede ser dividida en tres fases:

1" Establecer el planteamiento tecnológico.

2" Esbozar el programa.

3" Crear, comprobar y poner en marcha el programa.

Procedimiento La practica demostrara que es necesario repetir ciertos pasos ("procedimiento recursivo recursivo"), por ejemplo, cuando al definir con mayor exactitud la tarea a

resolver el usuario se dé cuenta de que precisa mayor número de señales.

Fase 1 Establecer el ~lanteamiento tecnolópico

La primera fase se puede dividir en los pasos siguientes:

1" Crear un diagrama de bloques aproximativo de las tareas de mando que requiera el proceso.

2" Crear una lista de las señales de entradas y salidas que requiera la tarea a resolver.

3" Perfeccionar el diagrama de bloques asignando a cada uno de los bloques las señales y, dado el caso, las circunstancias de tiempo y10 estados de los contadores que sean necesarios.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 26: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Fase 2 - Para la segunda fase se recomienda el siguiente procedimiento:

1" Sirviéndose del diagrama de bloques esbozar los modos de procesamiento necesarios para el programa (procesamiento cíclico, procesamiento controlado por tiempo, etc.) y asignar nombres a los OBs utilizados.

2" Dividir los modos de procesamiento en bloques tecnológicos y10 funcionales.

3" Comprobar si se pueden asignar los bloques a un módulo de programa o de funciones y asignar nombres a los módulos a utilizar (PB x, FB y etc.)

4" Determinar qué temporizadores, contadores y datos o memorias de resultados se requieren.

5" Determinar las tareas para cada módulo de código previsto y los datos para las marcas y módulos de datos que se puedan necesitar. Dibujar organigramas para los módulos de código.

Nota sobre la dimensión del procesamiento cíclico

Es necesario tener en cuenta las siguientes condiciones a la hora de determinar los modos de procesamiento.

El ciclo debe desarrollarse a una velocidad suficiente. Los estados del proceso no deben modificarse más deprisa de lo que pueda reaccionar la CPU. De lo contrario podría perderse el control sobre el proceso.

El tiempo máximo de reacción debe equivaler al doble del tiempo de ciclo.

El tiempo de ciclo está determinado por el procesamiento cíclico del programa de sistema y por la clase y dimensión del programa de usuario. Este tiempo no suele ser constante, ya que, en determinadas circunstancias, el programa de usuario cíclico es interrumpido varias veces por los programas controlados por tiempo y por alarma.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 27: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Fase 3

En la tercera fase se deben ejecutar los pasos siguientes:

1" Determinar el modo de representación para los módulos de código (KOP, FUP o AWL, consultar a este respecto el capítulo 2). Tener en cuenta que los módulos de funciones sólo se pueden crear en el modo de representación AWL.

2" Programar todos los módulos de código y de datos (consultar a este respecto el manual STEP 5).

3" Poner los módulos sucesivamente en funcionamiento (para ello, a veces es necesario programar por cada paso un OB 1 distinto que llame a los módulos de código en cuestión):

- cargar elllos módulo(s),

- comprobar elllos módulo(s).

(Consultar a este respecto el manual del aparato de programación y el capítulo 11.)

4" Si es seguro que todos los módulos de código se están ejecutando correctamente y que todos los datos se están calculando y memorizando de forma correcta, entonces puede ponerse en funcionamiento todo el programa.

Nota sobre la estrategia de comprobación

Cuál es el momento más apropiado para hacer funcionar su programa por primera vez en modo "caliente", es decir, con señales de entrada y sobretodo de salida reales, lo deberá decidir el usuario mismo, o bien un equipo de expertos.

Cuanto más complejo sea el proceso y cuanto más graves los riesgos de seguridad tanto mayor deberá ser la cautela a la hora de poner el programa en funcionamiento.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 28: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.7 Herramientas de programación

Aparatos de Para crear un programa de usuario propio se dispone de los aparatos de programación programación PG 685, PG 710, PG 730, PG 750 y PG 770. En el catálogo ST 59 apropiados (bibliografía 190 puede consultarse la capacidad y las características de estos

aparatos.

Software apropiado

Nota - Para poder utilizar asimismo un PG 615 o un OP 3xx hay que registrar

en el dato de sistema BS 29 (véase capítulo 8) la identificación de la CPU 922 (0010B). En este caso no se podrán utilizar las marcas S. Si no se modifica la identificación, los indicadores visualizados serán erróneos, por ejemplo, activando "SALIDA AG-INFOKJSTACK" (pila de interrupciones). Asimismo, algunas funciones de test no serán posibles.

- En todos los PGs la función de test STATUS puede operar de forma ilimitada solamente con tiempos de ciclo á 2,5 s. En funcionamiento paralelo de 2 interfaces de PG (véase capítulo 11) este valor se reduce a la mitad.

Los programas de usuario para autómatas programables SIMATIC S5 pueden ser creados

con el lenguaje de programación STEP 5 en los modos de representación KOP/FUP/AWL:

Para ello se requiere el paquete de programación STEP 5 junto con el software de sistema STEP 51ST o STEP 51MT (descripción véase 131 en el apartado de bibliografía)

con un lenguaje de programación de alto nivel:

Si el usuario está acostumbrado a escribir programas con un lenguaje de alto nivel puede formular su programa STEP 5 para la CPU 928B también en el lenguaje:

- SCL (véase 1121 en el apartado de bibliografía; el compilador SCL está incluido en el software de PG "SS-DOSIMT" a partir de la versión 6).

Los programas para mandos secuenciales pueden crearse asimismo en representación grafica con el paquete de programación GRAPH 5 (descripción véase 141 en el apartado de bibliografía).

Según la tarea a resolver también se pueden incluir en el programa de usuario módulos de funciones estándar acabados. En el catálogo ST 57 (bibliografía /11/) se puede consultar su capacidad y características.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 29: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

1.8 ¿Qué novedades presenta la CPU 928B-3UB21?

Introducción La versión -3UB21 de la CPU 928B ofrece las siguientes funciones y características nuevas frente a la versión -3UB12:

Ocupación de slots RAM integrada

Memory Card

Estructuración del DB O

Aritmética en coma flotante

Estadística de Las funciones de la estadística de ciclo (OB 152) se han ampliado frente a la ciclo ampliada versión -3UB12, habiendo aumentado p.ej. la resolución de los temporizadores.

CPU 928B (-3UB21)

La CPU requiere sólo un slot.

RAM integrada en la CPU (RAM interna) con una capacidad de 64 KB

Memory Card SIMATIC (Flash EPROM)

Para la ejecución del programa de usuario, éste se copia de la Memory Card en la RAM interna, quedando entonces protegido contra escritura.

Sólo después del borrado total de la CPU

Mantisa de 24 bits

Protección del software

CPU 928B (-3UB12)

La CPU requiere dos slots.

Cartuchos RAM enchufables, de diferente capacidad

Cartuchos RAM enchufables

El programa de usuario permanece en el cartucho EPROM para su ejecución.

Después de la conexión a la red o del borrado total de la CPU

Mantisa de 16 ó 24 bits

Programar la Memory Card

Mediante el BS 139 se puede ajustar una contraseña para evitar que se lea o se modifique el programa de usuario contenido en la CPU.

Para programar las Memory Cards Flash EPROM se requiere un PG 7xx con S5DOS a partir de la versión 6.x. Un programa contenido en un cartucho de memoria antiguo se puede reprogramar en una Memory Card.

Copiar el Si al efectuarse un borrado total está insertada una Memory Card Flash EPROM, contenido de la el sistema operativo copia el contenido de la misma en la RAM interna y Memory Card estructura el DB O. La Memory Card no se necesita más durante el servicio

normal.

Modo EPROM Una vez copiado el contenido de la Memory Card (al efectuarse un borrado total), la memoria de usuario (direcciones OOOOH a 7FFFH) se protege contra accesos de escritura desde el PG y por parte del programa de usuario. Esto equivale al comportamiento de una CPU 928B con cartucho EPROM insertado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 30: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Introducción

Activar/desactivar La protección contra escritura se puede activar o desactivar directamente. A tal la protección efecto existen dos posibilidades: contra escritura (OB 138) Activando/desactivando el BS 138 antes de finalizar el nuevo arranque de la (OB 185) CPU (se evalúa al final del OB 20).

Llamando al OB 185 en el OB 20 (sólo es posible allíj se activa o desactiva inmediatamente la protección contra escritura.

Comprimir Llamando al OB 186 se puede iniciar la función del aparato de programación mediante el (PG) que comprime la memoria mediante el programa de usuario. Puesto que programa de dicha función podría colisionar con peticiones actuales del PG, el OB 186 y las usuario funciones del PG se bloquean mutuamente. (OB 186)

Estadística de ciclo La estadística de ciclo ya no está acoplada al temporizador de vigilancia. Por

consiguiente, no se puede afectar redisparando la vigilancia del ciclo.

Como alternativa a la resolución de 1 ms, mediante un nuevo número de función se puede aumentar ahora la resolución a 10 ms.

Accesos al byte El OB 110 se puede utilizar ahora con mayor frecuencia, puesto que el registro indicador OB 11 0 de indicadores ya no se sobreescribe cuando se llama al bloque (como era el caso

anteriormente).

Comprobación El sistema operativo comprueba ahora siempre la memoria EPROM al de la memoria conectarse la alimentación. Por lo tanto, ya no se requieren ni el OB 226 (Leer EPROM palabra del sistema operativo) ni el OB 227 (Leer suma de verificación). Dichos

módulos existen aún por motivos de compatibilidad, pero retornan sólo el valor O.

Nuevos OBs con La CPU 928B-UB21 dispone de las siguientes funciones especiales nuevas: funciones especiales OB 134 para la instrucción: *D

OB 135 para la instrucción: /D

OB 136 para la instrucción: MOD

OB 139 para la instrucción: PUSH

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 31: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Programa de usuario

Resumen breve El capítulo siguiente explica los componentes que integran un programa de usuario STEP 5 para la CPU 928B y la forma en que puede ser estructurado.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

2.1

2.1.1

2.1.2

2.1.3

2.1.4

2.1.5

2.2

2.2.1

2.2.2

2.3

2.3.1

2.3.2

2.3.3

2.3.4

2.4

2.4.1

2.4.2

2.4.3

Tema

Lenguaje de programación STEP 5

Modos de representación KOP, FUP y AWL

Programación estructurada

Operaciones STEP 5

Representación numérica

Módulos STEP 5 y su registro en la memoria

Módulos de programa, de organización y de pasos

Módulos de organización para interfaces con el usuario

Módulos de organización de funciones especiales

Módulos de funciones

Estructura de los módulos de funciones

Programación de los módulos de funciones

Llamada y parametnzación de módulos de funciones

Módulos de funciones especiales

Módulos de datos

Crear módulos de datos

Abnr módulos de datos

Módulos de datos especiales

Página

2-2

2-2

2-4

2-5

2-6

2-10

2-14

2-16

2-19

2-21

2-22

2-24

2-26

2-31

2-33

2-35

2-36

2-39

Page 32: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.1 Lenguaje de programación STEP 5

Introducción Con el lenguaje de programación STEP 5 se transforman las tareas de automatización en programas ejecutables en autómatas programables SIMATIC S5.

Con STEP 5 se pueden programar tanto funciones binarias simples como funciones digitales complejas y operaciones aritméticas así como las operaciones aritméticas en coma flotante.

Operaciones El conjunto de operaciones del lenguaje de programación STEP 5 se divide en

operaciones básicas:

- aplicables en todos los módulos de código,

- modos de representación: esquema de contactos (KOP), esquema de funciones (FUP) y lista de instrucciones (AWL).

y operaciones complementarias y de sistema:

- aplicables solamente en módulos de funciones,

- modo de representación: solamente lista de instrucciones (AWL),

- operaciones de sistema: sólo para usuarios con muy buenos conocimientos del sistema.

2.1.1 Modos de representación KOP, FUP y AWL

Resumen En la programación con STEP 5 se puede optar, para cada módulo de código, entre los tres modos de representación: esquema de contactos (KOP), esquema de funciones (FUP) y lista de instrucciones (AWL), lo que significa que el método de programación puede ser adaptado a cada tarea en particular.

El código de máquina MC 5 generado por los aparatos de programación (PG) es idéntico en los tres modos de representación.

¡Si se respetan determinadas reglas al programar con el lenguaje STEP 5 (véase bibliografía /3/), el aparato de programación podrá traducir los programas de usuario de una forma de representación a cualquier otra!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 33: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Representación Mientras que en los modos de representación esquema de funciones (FUP) y gráfica o lista de esquema de contactos (KOP) se tiene la posibilidad de apreciar el programa en su instrucciones forma gráfica, en la lista de instrucciones (AWL) es necesario conocer las

instrucciones STEP 5.

Fig. 2-1 Modos de representación del lenguaje de programación STEP 5

ESQUEMA DE CONTACTOS(K0P)

Programación con símbolos gráficos, como diagrama secuencia1

corresponde a la norma DIN 19239

Representación GRAPH 5 es un lenguaje de programación para la representación gráfica de gráfica de mandos secuenciales. Es de orden superior a los modos de representación KOP, mandos FUP y AWL. Los programas escritos en la forma de representación gráfica secuenciales GRAPH 5 son traducidos automáticamente por el aparato de programación a

programas en lenguaje STEP 5.

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

LISTA DE INSTRUCCIONES

(AWL)

Programación con abreviaturas mnemo- técnicas de las funciones

corresponde a la norma DIN 19239

AWL

U E UN E U E ON E O E = A

ESQUEMA DE FUNCIONES (FUP)

Programación con símbolos gráficos

corresponde a las normas ICE 117-15 DIN 40700 DIN 40719 DIN 19239

FUP

Page 34: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.1.2 Programación estructurada

Resumen El lenguaje de programación STEP 5 permite estructurar el programa de usuario. sinóptico Para ello se subdivide el programa de usuario en unidades independientes

(módulos).

De este modo, la misma estructura del programa de usuano aclara a simple vista sus partes esenciales o resalta elementos coherentes de la instalación según la técnica de programación.

Ventajas

¿Qué es un módulo?

El procedimiento de la "programación estructurada" ofrece las siguientes ventajas:

programación simple y ordenada, también para tareas de gran envergadura,

posibilidad de estandanzación de programas parciales,

organización clara y simple de los programas,

facilidad de modificación,

test simple del programa (por partes),

fácil puesta en funcionamiento.

Un módulo es un elemento del programa de usuario que se distingue por su función, estructura o finalidad. Cabe hacer distinción entre los módulos que contienen instrucciones (códigos) tales como: módulos de organización, módulos de programa, módulos de funciones, módulos de pasos, y los módulos que contienen datos (módulos de datos).

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 35: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.1.3 Operaciones STEP 5

Definición Una operación STEP 5 es la menor unidad independiente del programa de usuario. Es la orden de trabajo para la CPU. Una operación STEP 5 se compone de un elemento operante y de un elemento operando.

Ejemplo

Operandos absolutos y simbólicos

Código de operación Parámetro

Elemento Elemento operando operante (¿con qué operandos?)

('qué operación se debe efectuar?)

El elemento operando puede ser introducido de manera absoluta o simbólica (mediante la lista de asignaciones).

Ejemplo de representación absoluta: :U E 1.4

Ejemplo de representación simbólica: :U -motor1

Para más información respecto a la programación absoluta y simbólica, véase el manual del correspondiente aparato de programación.

Aplicación de las El conjunto de operaciones que ofrece STEP 5 permite operaciones STEP 5 combinar, activar o rearmar valores binanos,

cargar y transferir valores,

comparar valores entre sí y procesarlos antméticamente,

definir valores de tiempo y de contaje,

transformar representaciones numéricas,

llamar módulos y efectuar saltos dentro de un módulo, e

influir sobre el procesamiento del programa.

Resultado de El bit central para el mando del programa es el resultado de combinación VKE combinación VKE (resultado lógico). Se genera mediante combinaciones binanas y a veces es

alterado por algunas operaciones.

En el capítulo 3.5 se encuentra una descripción del conjunto total de operaciones STEP 5, así como informaciones más detalladas sobre el modo de generar el VKE.

lnstrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 36: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.1.4 Representación numérica

Resumen Para que la CPU pueda combinar, modificar o comparar valores numéricos, éstos tienen que ser cargados en representación binaria en los acumuladores (registros de trabajo de la CPU).

Dependiendo de la operación a ejecutar, STEP 5 acepta las siguientes representaciones numéricas:

Números duales: 16 bit, coma fija 32 bit, coma fija 32 bit, coma flotante (con mantisa 16 ó 24 bit)

Números decimales: en BCD (signo y 3 dígitos decimales)

Entrada de Para entrar o emitir valores numéricos es necesario ajustar en el aparato de valores programación el formato de datos (por ej. KF para coma fija) en el que se desean numéricos entrar o hacer visualizar los valores numéricos. De esta manera, el aparato de mediante el PG programación se encargará de transformar la representación numérica interna en

el modo de representación deseado.

Operaciones Los números de 16 bit en coma fija y coma flotante, permiten realizar todas las admisibles operaciones aritméticas, como por ejemplo: comparar, sumar, restar,

multiplicar y dividir.

Nota Los números en código BCD no deben utilizarse para operaciones aritméticas, ya que conducen a resultados erróneos.

Con los números en coma fija de 32 bit se ejecutan las operaciones de comparación. Además se requieren como etapa intermedia para la conversión de números BCD en números en coma flotante. Con las ins-trucciones +D y -D, también pueden ser utilizados para adiciones y sustracciones.

El lenguaje de programación STEP 5 incluye operaciones de conversión que permiten convertir números directamente a las representaciones numéricas más importantes.

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 37: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Programa de usuario

Números en Los números en coma fija son números duales enteros provistos de un signo. coma fija de 16 y 32 bit Codificación de números en coma fija

En representación binaria son de 16 bits (= 1 palabra) o de 32 bits (= 2 palabras) de ancho. El bit 15 o el bit 31, según el caso, llevan el signo:

'0' = número positivo

'1' = número negativo

Los números negativos se representan en complemento de 2.

Entrada mediante el PG

Números en coma fija de 16 bits: KF

Números en coma fija de 32 bits: DH

Campo de valores admisible

Números en coma fija de 16 bits: de -32768 a +32767

Números en coma fija de 32 bits: de -2147483648 a +2147483647

Aplicación de los números en coma fija

Los números en coma fija se usan para operaciones aritméticas simples y para la comparación de valores numéricos. Puesto que los números en coma fija siempre son números enteros, hay que tener en cuenta que el resultado de una división de dos números en coma fija también tiene que ser un número entero en coma fija sin dígitos decimales.

Números en coma flotante

Los números en coma flotante son números fraccionarios de valor positivo y negativo. Siempre ocupan una palabra doble (32 bits). Los números en coma flotante se representan de forma exponencial.

La CPU 928B ejecuta las operaciones de adición, sustracción, multiplicación y división con una mantisa de 24 bits de ancho (bits O a 23).

El exponente ocupa 8 bits. Indica la dimensión del número en coma flotante. El signo del exponente indica si el valor absoluto del número en coma flotante es mayor o menor que 0,l.

Aplicación de los ¡Los números en coma flotante deben utilizarse para solucionar operaciones números aritméticas extensas, especialmente para multiplicaciones y divisiones, y también en coma flotante para ejecutar operaciones con números muy altos o muy bajos!

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 38: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Precisión

La mantisa determina la precisión del número en coma flotante:

Precisión en caso de una mantisa de 24 bit:

2-24 = 0,000000059604 (equivale a 7 dígitos a la derecha de la coma)

Si el signo de la mantisa es 'O', el número es positivo; si el signo es '1', es un número negativo en representación de complemento de 2.

El valor en coma flotante 'O' se representa como valor dual80000000H (32 bit, véase "Codificación de números en coma flotante").

Codificación de números en coma flotante

Un número en coma flotante se codifica de la siguiente forma:

Exponente Mantisa

Indicación del formato de datos para números en coma flotante en el aparato de programación: KG

Campo de valores admisible

de I 0,1469368 x a I 0,1701412 x lo3'

Entradaslsalidas por el PG

a) En el módulo de código:

Se ha de cargar el número Z = 12,34567 como constante en coma flotante.

Entrada:

Salida por PG tras confirmar la línea:

1 Mantisa con signo

I I

Exponente (base 10) con signo

Valor del número entrado: +0,1234567 x 10'~ = 12,34567

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 39: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Números en código BCD

"1 En el módulo de datos:

Se ha de definir el número Z = - 0,005 como constante en coma flotante.

Entrada:

Salida por PG tras confirmar la línea:

6: KG,=500000011-02,

1 Mantisa con signo Exponente (base 10)

con signo

Valor del número entrado: - 0,5 x = 0,005

Los números decimales se representan en código BCD. Con signo y 3 cifras ocupan 16 bit en el acumulador (1 palabra):

Las cifras son números dudes positivos de 4 bits entre 0000 y 1001 (O y 9 decimal).

15 12

S S S S

Los bits a la izquierda están reservados para el signo.

Signo para un número positivo: O000 Signo para un número negativo: 1111

11 8

Centenas

Campo de valores admisible

de -999 a +999

lnstrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

7 4

Decenas

3 O

Unidades

Page 40: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.1.5 Módulos STEP 5 y su registro en la memoria

Identificación Un módulo se identifica por:

el tipo de módulo (OB, PB, SB, FB, FX, DB, DX)

Y

el número de módulo (número entre O y 255).

Tipos de módulos El lenguaje de programación STEP 5 distingue los siguientes tipos de módulos:

Módulos de organización (OB)

Los módulos de organización representan la interfaz entre el programa de sistema y el programa de usuario. Pueden ser subdivididos en dos grupos:

- Con los OB 1 a 39 se puede controlar el procesamiento del programa, el comportamiento de arranque de la CPU y el comportamiento en caso de error. Esto se consigue programando los módulos de acuerdo con la tarea de automatización a resolver. Estos OBs son llamados por el programa de sistema.

- Los OB 40 a 255 contienen funciones especiales del programa de sistema. En caso necesario, pueden ser llamados por el programa de usuario.

Módulos de programa (PB)

Los módulos de programa se usan para estructurar el programa de usuario y contienen programas parciales estructurados según puntos de vista tecnológicos o funcionales. Los PBs constituyen el núcleo del programa de usuario.

Módulos de pasos (SB)

Los módulos de pasos eran originariamente módulos de programa especiales que se usaban para la "ejecución paso a paso" de cadenas secuenciales. En el presente, las cadenas secuenciales pueden ser programadas mediante GRAPH 5. Por ello, los módulos de pasos han perdido importancia. Actualmente, los módulos de pasos constituyen una ampliación numérica de los módulos de programa y pueden ser utilizados como éstos.

Módulos de funciones (FBIFX)

Los módulos de funciones se utilizan para programar funciones de uso frecuente o funciones complejas (por ejemplo: funciones digitales, mandos secuenciales, regulaciones, funciones de aviso).

Un módulo de funciones puede ser llamado múltiples veces por módulos de orden superior, pudiéndosele asignar cada vez diferentes operandos ("parametrizar").

Utilizando el tipo de módulo FX se duplica la cantidad máxima posible de módulos de funciones: de 256 a 512.

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 41: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Módulos de datos (DBIDX)

En los módulos de datos se encuentran los datos (fijos o modificables), con los que opera el programa de usuario. Este tipo de módulos no contiene instrucciones STEP 5 y se diferencia fundamentalmente de los demás tipos de módulos. Utilizando el tipo de módulo DX se duplica la cantidad posible de módulos de datos: de 256 a 512.

Estructura de los Todos los tipos de módulos consisten de módulos

una cabeza

uncuerpo.

Cabeza

Cuerpo

Antecabeza

La cabeza, que tiene siempre una longitud de 5 palabras, contiene datos para la administración de los módulos en el aparato de programación y datos para el programa de sistema.

El cuerpo contiene (dependiendo del tipo de módulo):

instrucciones STEP 5 (en el caso de OB, PB, SB, FB, FX),

datos variables o constantes (en el caso de DB, DX)

Y

una lista de operandos formales (en el caso de FB, EX).

En el caso de los módulos de datos del tipo DB, DX, FB y FX, el aparato de programación genera adicionalmente una antecabeza del módulo (DV, DXV, FV, FXV). Estas antecabezas contienen informaciones referentes al formato de datos (en el caso de DB y DX) o a las marcas de salto (FB y FX), las cuales solamente pueden ser evaluadas por el aparato de programación. Por ello no se transfieren a la memoria de la CPU. El usuario no puede modificar el contenido de la antecabeza.

Longitud máxima Un módulo STEP 5 puede ocupar máximo 4096 palabras (1 palabra corresponde a 16 bit) en la memoria de programa de la CPU.

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 42: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Módulos De los diferentes tipos de módulos disponibles, el usuario dispone para la disponibles programación:

EB O a 255 F en total 512 EX O a 255

DB 3 a 255 I en total 506 DX 3 a 255

Los módulos de datos DB O, DB 1, DB 2, DX O, DX 1 y DX 2 contienen parámetros. Estos están reservados para determinadas funciones y, por lo tanto, no pueden ser usados a voluntad.

Almacenamiento El aparato de programación almacena todos los módulos programables en la de módulos memoria de programa según el orden de transferencia (fig. 2-2). Con la función en la memoria del aparato de programación "Módulos iTransferir/Todos módulos" se

transfieren al autómata programable primero los módulos de código y luego los de datos. En modo RAM, después de finalizar la transferencia de los módulos de código, se rellena en primer lugar la memoria de usuario con módulos de datos y después se escriben los módulos de datos restantes en la DB-RAM interna. Las direcciones iniciales de los módulos almacenados se registran en el módulo de datos DB O.

Direcc ión O

Posic ión de los módulos en l a memor ia de usuar io

Fig. 2-2 Ejemplo del registro de módulos en la memona de usuario

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 43: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Carga alternativa Activando el bit O del dato de sistema BS 144 es posible cargar módulos de datos (sólo en la primero en la DB-RAM (mientras haya espacio suficiente) ("carga alternativa" - versión -3UB12) véase capítulo 8/BS 144). Sólo cuando la DB-RAM esté llena se transferirán los

módulos de datos a la memoria de usuario.

Corrección y borrado de módulos

Al corregir módulos en "modo RAM", el módulo "antiguo" se declara no válido y se registra un módulo nuevo en la memoria. Igualmente, al borrar módulos, éstos no se borran realmente, sino que solamente se declaran no válidos. Por lo tanto, los módulos que han sido borrados o corregidos siguen ocupando espacio en la memoria.

Nota Con la función on line "COMPRIMIR MEMORIA" se consigue más espacio para nuevos módulos: esta función optimiza el aprovechamiento de la memoria borrando los módulos declarados no válidos y juntando los módulos válidos. La compresión se efectúa por separado en la memoria de usuario y en la DB-RAM interna (véase capítulo 11.2.2).

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 44: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.2 Módulos de programa, de organización y de pasos

Introducción Los módulos de programa (PB), los módulos de organización (OB) y los módulos de pasos (SB) no se diferencian en cuanto a su programación y iiamada. Los tres pueden ser programados opcionalmente en los modos de representación KOP, FUP y AWL.

Programación Para programar los módulos de programa, de organización y de pasos, se procede de la manera siguiente:

1" Introducir primero el tipo de módulo y luego el número del módulo que se desea programar.

Se dispone de los siguientes números:

- módulos de programa O a 255

- módulos de organización 1 a 39

2" Introducir el programa de usuario deseado en STEP 5.

¡Para la programación de PB, OB y SB solamente se deben usar las operaciones básicas de STEP 5!

Un módulo STEP 5 siempre debe contener un programa parcial independiente. Las combinaciones lógicas tienen que concluir dentro de un mismo módulo.

3" Terminar el programa con la instrucción "BE" (fin de módulo).

Llamada Los módulos - a excepción de los OB 1 a OB 39 - tienen que ser llamados para poderlos procesar. Esto se hace con operaciones especiales de STEP 5, las llamadas a módulos.

Estas llamadas a módulos se pueden programar dentro de módulos de organización, de programa, de funciones o de pasos. Son comparables a los saltos a un subprograma. Cada salto ocasiona un cambio de módulo. El sistema almacena de forma intermedia la dirección de retroceso registrada en el módulo que realiza la llamada.

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 45: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Llamada Las llamadas pueden ser efectuadas tanto de forma condicional como incondicional incondicional: o condicional

Llamada incondicional

La instrucción SPA pertenece a las operaciones incondicionales. Ella misma no tiene efecto sobre el VKE. Este se transfiere con el salto al nuevo módulo, donde puede ser evaluado pero no puede volver a ser combinado.

El módulo llamado se procesa independientemente del resultado de combinación (VKE, véase capítulo 3.4).

Ejemplo: SPA PB 100

Llamada condicional

La instrucción SPB pertenece a las operaciones condicionales, es decir, el módulo llamado solamente será procesado si el resultado de la combinación VKE = 1. Si el VKE = O, no se ejecuta la instrucción de salto.

Ejemplo: SPB PB 100

Nota Tras ejecutar la operación de salto condicional el VKE se pone a 'l' , independientemente de si se efectúa o no el salto al módulo llamado.

Fig. 2-3 Llamadas a módulos que habilitan un módulo de programa para su procesamiento

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 46: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Efecto de la instrucción BE

Después de la instrucción BE (fin de módulo), la CPU continúa el programa de usuario en aquel módulo, en el que se ha programado la llamada: el procesamiento del programa prosigue a partir de la instrucción STEP 5 inmediatamente siguiente a la llamada al módulo.

La instrucción BE se procesa independientemente del resultado de combinación. Después de BE no se puede seguir combinando el resultado. Sin embargo, el resultado de combinación/cálculo existente durante la ejecución de la instrucción BE se transfiere al módulo que efectúa la llamada, donde puede ser evaluado a continuación. Al retornar desde el módulo llamado, no se modifican los contenidos del AKKU 1, AKKU 2, AKKU 3 y AKKU 4, los indicadores ANZ O y ANZ 1 y el resultado de combinación VKE (para más detalles en cuanto a los AKKUs, ANZ O/ANZ 1 y VKE, véase capítulo 3.5).

2.2.1 Módulos de organización para interfaces con el usuario

Introducción Los módulos de organización constituyen las interfaces entre el programa de sistema y el programa de usuario. Los módulos de organización OB 1 hasta OB 39 son partes del programa de usuario que se programan igual que los módulos de programa. Programando estos OBs se puede determinar el comportamiento de la CPU durante el arranque, durante el procesamiento del programa y en caso de error. Los módulos de organización actúan en cuanto se cargan en la memoria del autómata programable. Esto también es posible durante el funciona- miento de la CPU.

Una vez que el programa de sistema ha llamado al módulo de organización correspondiente, se ejecuta el programa de usuario contenido en el módulo.

Nota ¡Los módulos de organización OB 1 a OB 39 para interfaces con el usuario son programados por el usuario y llamados automáticamente por el programa de sistema como reacción ante determinados sucesos!

Para fines de prueba, dichos módulos de organización también pueden ser llamados por el programa de usuario (SPAJSPB OB xxx). ¡Sin embargo, no es posible ejecutar por ej. un NUEVO ARRANQUE llamando al OB 20!

Las tablas que figuran a continuación proporcionan una visión esquemática de las interfaces con el usuario (OBs).

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 47: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

OBs para el procesamiento del programa Tabla 2-1 Cuadro sinóptico de los OBs para el procesamiento del programa

I I

Organización del procesamiento cíclico del programa: primera llamada al terminar uno de los modos de arranque, luego llamada cíclica

Organización del procesamiento controlado por alarma; llamada por señal de interrupción del bus S5 (alarma de proceso)

O B 3 a 5 No existen en la CPU 928B

Módulos de organización para el control del procesamiento

Módulo

Alarma temponzada controlada por reloj

Función y criterio de llamada

OB 6

OB 7, OB 8

Alarma temponzada con escalas de tiempo fijas:

Alarma de retardo (a partir de la versión -3UB12)

No existen en la CPU 928B

Llamada cada 10 ms

Llamada cada 20 ms

Llamada cada 50 ms

Llamada cada 100 ms

Llamada cada 200 ms

Llamada cada 500 ms

Llamada cada 1 s

Llamada cada 2 s

Llamada cada 5 s

OBs para el arranque

Tabla 2-2 Cuadro sinóptico de los OBs para el arranque

l Módulos de organización para el control del arranque l 1 Módulo 1 Función y criterio de llamada 1 1 OB 20 1 Llamada para NUEVO ARRANQUE (manual y automático) 1

Llamada para REARRANQUE MANUAL/NUEVO ARRANQUE CON MEMORIA MANUAL

Llamada para REARRANQUE AUTOMATICO/NUEVO ARRANQUE CON MEMORIA AUTOMATICO

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 48: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

OBs para el tratamiento de errores Tabla 2-3 Cuadro sinóptico de los OBs para el tratamiento de errores

l) Si en caso de error no está programado el OB, la CPU pasa al estado STOP. EXCEPCION: ¡En caso de no existir el OB 23, OB 24 (retardo en acuse de recibo) y OB 35 no se produce reacción!

') El OB 28 se llama antes de pasar al estado STOP. El estado STOP se produce siempre, indiferentemente de cómo o de si está programado el OB 28. EXCEPCION: ¡En caso de DESCONEXION no se llama al OB 28!

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 49: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.2.2 Módulos de organización de funciones especiales

Introducción Los siguientes OBs contienen funciones especiales del programa de sistema. No pueden ser programados por el usuario (¡esto vale para todos los OBs numerados entre 40 y 255!) sino que solamente pueden ser llamados. No contienen programas STEP 5. Los OBs de funciones especiales pueden ser llamados en todos los módulos de código.

Cuadro sinóptico

Tabla 2-4 Cuadro sinóptico de los OBs de funciones especiales

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Módulos

Módulo

OB 110 OB 111 OB 112 OB 113

OB 120 OB 121 OB 122 OB 123

OB 134 OB 135 OB 136 OB 139

OB 150

OB 151

OB 152

OB 153

OB 160 a 163

OB 170

OB 180 OB 181 OB 182

OB 185 OB 186

OB 190,192 OB 191,193

OB 200, 202 a 205

OB 216 a 218

OB 220

OB 221

de organización integrados con funciones especiales

Función

Acceso al byte indicador Borrar AKKUs 1, 2,3 y 4 AKKU rol1 up AKKU rol1 down

Activar/desactivar "bloquear alarmas conjuntamente" Activar/desactivar "bloquear alarmas temponzadas individualmente" Activar/desactivar "retardar alarmas conjuntamente" Activar/desactivar "retardar alarmas temponzadas individualmente"

* D /D MOD PUSH

AjustarPeer hora del sistema

AjustarPeer hora para la alarma temponzada controlada por reloj

Estadística de ciclo

AjustarPeer hora para la alarma de retardo

Bucles contadores

Leer pila de módulos (BSTACK)

Acceso variable a módulo de datos Comprobar el módulo de datos DBPX Copiar zona de datos

Activar/desactivar la protección contra escritura Comprimir mediante el programa de usuario

Transfenr marcas al módulo de datos Transfenr bloques de datos a zona de marcas

Funciones para la comunicación en multiprocesamiento

Accesos a "páginas" (CPs y algunos IPs)

Ampliación del signo

Ajustar tiempo de supervisión de ciclo

Page 50: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

En el capítulo 6 se encuentra una descripción detallada de estas funciones especiales.

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 51: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.3 Módulos de funciones

Introducción Los módulos de funciones (EB/FX) también son partes del programa de usuario, como por ejemplo los módulos de programa. Los módulos EX tienen la misma estructura que los módulos de funciones FB y se programan de la misma manera.

Con los módulos de funciones se ejecutan funciones muy frecuentes o muy complejas. Cada módulo de funciones representa una función independiente dentro del programa de usuario. Los módulos de funciones pueden ser

adquiridos como producto de software de la empresa SIEMENS (módulos de funciones estándar, en disquete -véase bibliografía 1.51); con estos módulos de funciones estándar se puede generar rápida y fiablemente todo tipo de programas de usuario para mando, aviso, regulación y protocolizado

pueden ser programados por el usuario mismo.

Diferencias Los módulos de funciones presentan cuatro diferencias fundamentales respecto a respecto a otros los módulos de organización, de programa y de pasos: módulos

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

1.

2.

3.

4.

OB, PB, SB FB/FX

Conjunto de operaciones

Sólo operaciones básicas - Operaciones básicas - Operaciones complementarias - Operaciones de sistema

Modo de representación

Programar y llamar en AWL, KOP, FUP

Programar sólo en AWL

Nombres

No puede asignarse ningún nombre (sólo un número).

Además del número se puede asignar un nombre de máx. 8 caracteres.

Operandos

Ninguno Operandos formales (parámetros de módulo) Durante la llamada se asignan operandos actuales a los operandos formales.

Page 52: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Programa de usuario

2.3.1 Estructura de los módulos de funciones

Cabeza del La cabeza (5 palabras) de un módulo de funciones tiene la misma estructura que módulo la cabeza de los demás módulos STEP 5.

Cuerpo del El cuerpo se diferencia en su estructura del de los demás tipos de módulos. La módulo función a ejecutar está escrita en forma de lista de instrucciones en lenguaje

STEP 5. Entre la cabeza del módulo y las instrucciones STEP 5, el módulo de funciones requiere espacio adicional de memoria para el nombre y la lista de operandos formales. Ya que esta lista no contiene instrucciones para la CPU, se salta mediante un salto incondicionado generado automáticamente por el aparato de programación. ¡Esta instrucción de salto no se visualiza en el aparato de programación! En las llamadas al módulo de funciones se procesa solamente el cuerpo del módulo.

Operandos Los operandos pueden ser introducidos en un módulo de funciones de manera absolutos O absoluta (por ejemplo, M 2.5) o simbólica (por ejemplo, -MOTORl). La simbólicos asignación de operandos simbólicos debe ser registrada en una lista de

asignaciones (véase bibliografía 131).

Módulo de El módulo de funciones presenta el siguiente aspecto en la memoria del autómata funciones en la programable: memoria

Nombre del FB/FX 4 palabras

Operando formal 1 3 palabras

Salto a trav6s de la l ista de operaciones formales

Lista de operan- dos for- males

I

SPA .........................................................

Operando formal 2

Operando f o r m a n n/ 3 palabras 1 I E O erac . de usuar io STEP 5 +..--.'

1) 3 palabras

L ---------.- -- .______------ <*-- - - - - -____-- -___ ------- I --____---._ ,_---_

Programa -- ________-- ___* ----------______. de usuario STEP 5

cabeza del ) 5 palabras módulo

Fig. 2-4 Estructura del módulo de funciones (FBPX)

J

- 1 palabra \ 4

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

L

Page 53: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

En la memoria se encuentran, por consiguiente, todas las informaciones que requiere el aparato de programación para representar gráficamente el módulo de funciones al efectuar la llamada, y para comprobar los operandos al parametrizar y programar el módulo de funciones. El aparato de programación rechaza las entradas erróneas.

Diferencia entre: En cuanto al tratamiento de los módulos de funciones cabe distinguir entre "programar" Y programar el FB/FX "llamar y parametrizar" Y

llamar y parametrizar el EBFX.

Durante la programación se determina la función del módulo. Para ello, el usuario tiene que analizar qué operandos de entrada requiere la función, y qué resultados ha de entregar la función al programa que efectúa la llamada. Todos los operandos de entrada y resultados de salida se definen a continuación como operandos formales. Estos ejercen la función de comodines.

Llamada y parametrización;

Cuando se llama un módulo desde un módulo de orden superior (OB, PB, SB, FB, EX), los operandos formales (parámetros del módulo) son reemplazados por operandos actuales: se parametriza el módulo de funciones.

Modo de programar

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

SI...

se desea programar un módulo de funciones "directamente", es decir, sin operandos formales,

se desea utilizar operandos formales en un módulo de funciones,

ENTONCES...

hay que proceder de la misma manera que con los módulos de programa o de pasos.

hay que proceder como se describe en las páginas siguientes. Atenerse al siguiente orden de ejecución: 1. Programar el FB/FX con los operandos

formales y mantenerlo en el PG (off line) o en la memoria de la CPU (on line),

2. Programar el módulo/ios módulos que efectúa(n) la llamada con los operandos actuales.

Page 54: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.3.2 Programación de los módulos de funciones

Procedimiento Los módulos de funciones solamente pueden programarse en el modo de representación "lista de instrucciones " . Para entrar un módulo de funciones en el aparato de programación se procede de la manera siguiente:

1" Introducir el tipo (FBPX) y número del módulo de funciones.

Los módulos de funciones de usuario deben ser numerados decrecientemente desde FB 255 para no colisionar con los módulos de funciones estándar, que están numerados de FB 1 a FB 199.

2" Introducir el nombre del módulo de funciones.

Este puede constar de hasta 8 caracteres y tiene que empezar con una letra.

3" Cuando el módulo de funciones deba procesar operandos formales:

Introducir como parámetros del módulo los operandos formales utilizados en el módulo.

Por cada operando formal hay que indicar:

- el nombre del parámetro de módulo (máximo 4 caracteres),

- la clase de parámetro de módulo y,

- dado el caso, el tipo de parámetro de módulo.

Se pueden definir hasta máximo 40 operandos formales.

4" Introducir el programa STEP 5 en el modo de representación AWL.

Los operandos formales se identifican con el signo '=' antepuesto (por ej., U =Xl). Pueden ser llamados múltiples veces desde diferentes lugares del módulo de funciones.

5" Finalizar la introducción del programa con "BE" (fin de módulo).

Nota En caso de modificar el orden o la cantidad de operandos formales en la lista, ¡todas las instrucciones STEP 5 del módulo de funciones que operen con un operando formal, así como la lista de parámetros del módulo, deberán ser actualizadas correspondientemente!

¡Los módulos de funciones deben ser programados y modificados exclusivamente en disquete o disco duro y después se deben transferir a la CPU !

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 55: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Operandos Como operandos formales de un módulo de funciones (también llamados formales parámetro de módulo) se pueden utilizar las siguientes denominaciones de clase

y tipo:

Tabla 2-5 Operandos formales válidos para módulos de funciones I I I

1 Clase de parámetro 1 Tipo de parámetro 1

D = Dato

E = Entrada A = Salida

B = Instrucción T = Temponzador Z = Contador

BI/BY/W/D

ninguno (no se admite indicación de tipo)

E, D, B, T o Z son clases de parámetros que en la representación gráfica son representados a la izquierda del símbolo de la función. Los parámetros marcados con una A en la representación gráfica de una llamada del FB, se representan a la derecha del símbolo de la función.

El tipo de parámetro indica, en el caso de los parámetros E y A, si se trata de bits, bytes, palabras o palabras dobles y qué formato de datos es válido para los parámetros D (por ejemplo, representación binana o hexadecimal).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 56: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.3.3 Llamada y parametrización de módulos de funciones

Introducción Cada módulo de funciones puede ser llamado tantas veces como sea necesario y desde cualquier lugar del programa de usuario STEP 5. Las llamadas a módulos de funciones pueden ejecutarse tanto en una lista de instrucciones como en representación gráfica (FUP o KOP).

Procedimiento Para llamar y parametrizar módulos de funciones se procede de la manera siguiente:

1" Asegurar que el módulo de funciones llamado esté registrado en la memoria del PG (off line) o de la CPU (on line).

2" Introducir en el módulo que efectúa la llamada la instrucción de llamada al módulo de funciones.

La llamada a un módulo de funciones puede programarse dentro de un módulo de organización, de programa o de pasos, o dentro de otro módulo de funciones.

Reacción en el PG

Después de introducir la instrucción de llamada (por ejemplo, SPA FB 200), aparece automáticamente el nombre y la lista de operandos formales del módulo de funciones correspondiente.

3" Asignar a cada operando formal el operando actual válido para la llamada en cuestión. (Así se parametriza el módulo de funciones.)

Los operandos actuales pueden variar en función de la llamada: en la primera llamada al FB 200, por ejemplo, entradas y salidas; en la segunda, marcas. De acuerdo con la lista de operandos formales,en cada llamada a un módulo de funciones hay que asignar los operandos actuales necesarios.

Llamada incondicional/ condicional

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Llamada incondicional

" SPA FBn" para módulos de funciones FB o "BA FXn" para módulos de funciones ampliados FX:

El módulo de funciones llamado se procesa independientemente del resultado de combinación (VKE).

Llamada condicional

" SPB FBn" para módulos de funciones FB o "BAB FXn" para módulos de funciones ampliados FX:

El módulo de funciones llamado solamente se procesa si el resultade de combinación VKE = 1. Si VKE = O no se ejecuta la llamada al módulo. Independientemente de que la llamada se ejecute o no, el VKE siempre se pone a '1'.

Después de la llamada condicional o incondicional no se puede seguir combinando el resultado de combinación. El VKE no se altera al saltar al FB, desde donde podrá ser evaluado.

Page 57: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Operandos De la tabla siguiente se desprende qué operandos actuales se pueden asignar a actuales los módulos de funciones. admisibles

Tabla 2-6 Operandos actuales válidos para módulos de funciones

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Clase de parámetro

E, A

D

Tipo de parámetro

BI para un operando con dirección de bit

BY para un operando con dirección de byte

W para un operando con dirección de palabra

D para un operando con dirección de palabra doble

KM para representación binaria (16 dígitos)

KY para representación de dos valores absolutos en bytes de O a 255 respectivamente

KH para representación hexadecimal de hasta 4 dígitos

KC para dos caracteres alfanuméricos

KT para un valor de tiempo (código BCD) con factor de tiempo de .O a .3 y valores de tiempo de O a 999

KZ para un valor de contaje de O a 999

KF para un número en coma fija entre -32768 y t32767

KG para un número en coma flotante de 10,1469368 x a 10,1701412 x lo3'

Operandos actuales válidos

E n.m Entrada A n.m Salida M n.m Marca

EB n Byte de entrada Al3 n Byte de salida MB n Byte de marcas DL n Byte de datos izquierdo DR n Byte de datos derecho PY n Byte de penfena QY n Byte de la penfena ampliada

EW n Palabra de entrada AW n Palabra de salida MW n Palabra de marcas DW n Palabra de datos PW n Palabra de perifena QW n Palabra de la perifena ampliada

ED n Palabra doble de entrada AD n Palabra doble de salida MD n Palabra doble de marcas DD n Palabra doble de datos

Constante

Page 58: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Nota ;No está permitido el uso de marcas S como operandos actuales para módulos de funciones!

Clase de parámetro

Después del salto al módulo de funciones, en el procesamiento del módulo de funciones, en lugar de los operandos formales, se utilizan los operandos actuales del módulo que efectúa la llamada. Esta característica de los módulos de funciones parametrizables permite aplicarlos en el programa de usuario para los más diversos fines.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Tipo de parámetro Operandos actuales válidos

Tabla 2-6 (continuación):

B

T

Z

no se admite indicación de tipo

no se admite indicación de tipo

no se admite indicación de tipo

DB n Módulo de datos; se ejecuta la instrucción A DB n

FB n Módulo de funciones (solamente válido sin parámetros), se llama de forma incondicional (SPA . .n)

OB n Módulo de organización, se llama de forma incondicional (SPA . .n)

PB n Módulo de programa, se llama de forma incondicional (SPA . .n)

SB n Módulo de pasos, se llama de forma incondicional (SPA . .n)

T O a255 Temponzador

Z O a255 Contador

Page 59: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Programa de usuario

Ejemplos

Se programa el módulo de funciones FB 202:

SEGMENTO 1 NOMB. EJEMPLO BEZ : ANA E/A/D/B/T/Z: E BI/BY/W/D: BI BEZ : EVA E/A/D/B/T/Z: E BI/BY/W/D: BI BEZ : LUIS E/A/D/B/T/Z: A BI/BY/W/D: BI

:U= ANA :U= EVA

programa PB 25:

Representación KOP/FUP

El módulo de funciones FB 202 se llama y parametriza en el módulo de

Representación AWL

SEGMENTO 1

: SPA FB 202 FB 202 NOMB. : EJEMPLO ANA : E 13.5 EVA : M 17.7 M 17.7 LUIS : A 23.0

Después del salto al FB 202 se ejecutan las siguientes operaciones:

: U E 13.5 : U M 17.7

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 60: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Modo de representación AWL

SEGMENTO 1

: A DB5

: SPA FB 201 NOMB. : E-ANTR

E 3 . 5 M 2 . 5

KT 010.1

A 2 . 3

Representación KOP/FUP

SEGMENTO 1 FB 201

E-ANTR

BEA - A 2 . 3 LSL - A 6.0

: BE

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 61: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.3.4 Módulos de funciones especiales

Introducción Aparte de los módulos de funciones que programa el usuario mismo, existen módulos de funciones estándar, que pueden ser adquiridos como producto de software acabado. Contienen funciones estándar (por ejemplo, funciones de aviso, mandos secuenciales, etc.). Los módulos de funciones estándar ocupan los números FB 1 a FB 199.

En caso de adquirir módulos de funciones estándar, obsérvense las ins-trucciones especiales de la descripción correspondiente (zonas de memoria ocupadas, convenciones, etc.).

Los módulos de funciones estándar para el autómata programable S5-135U están descritos en el catálogo ST 57 (bibliografía /11/) .

Ejemplo

Extractor de r a í z de un número en coma f l o t a n t e RAD:GP FB 6

El módulo de funciones RAD:GP extrae la raíz cuadrada de un número en coma flotante (exponente de 8 bit, mantisa de 24 bit). El resultado también es un número en coma flotante (exponente de 8 bit, mantisa de 24 bit). El bit de menor valor de la mantisa no se redondea.

El módulo de funciones coloca en caso necesario la identificación "radicando negativo" para el procesamiento posterior.

Campo numérico:

Radicando - 0,1469368 Exp. -38 a +0,1701412 Exp. +39

+0,3833434 Exp. -19 a +0,1304384 Exp. +20

Y = SQRT; A = RADI

Llamada al módulo de funciones FB 6:

En el ejemplo anterior se extrae la raíz de un número en coma flotante que se encuentra en la DD 5 del DB 17, con exponente de 8 bit y mantisa de 24 bit. El resultado, también un número en coma flotante de 32 bit, es depositado en la DD 10. Previamente debe abrirse el módulo de datos correspondiente. El parámetro VZ (clase de parámetro: A, tipo de parámetro: BI) determina el signo del radicando: VZ = 1 en caso de radicando negativo.

Palabras de marcas ocupadas: MW 238 a 254.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 62: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Modo de representación AWL Modo de representación KOP/FUP

: A DB 17 SEGMENTO 2

: SPA FB 6 FB 6

DD= Palabra doble de datos

Módulo de Si el módulo de funciones OB 1 no está programado, el programa de sistema funciones FB O llama cíclicamente, en vez del OB 1, al FB O, si éste está cargado.

Ya que en un módulo de organización se dispone de la totalidad del conjunto de operaciones del lenguaje STEP 5, la programación del FB O - en vez de la del OB 1 - resulta especialmente ventajosa para procesar programas cortos y en función de tiempo.

Nota ¡El FB O debe emplearse solamente para programas de procesamiento cíclico! (No puede contener parámetros).

Si están cargados tanto el OB 1 como el FB O, el programa de sistema llamará cíclicamente sólo al módulo de organización OB 1.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 63: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.4 Módulos de datos

Introducción En módulos de datos (DB) o módulos de datos ampliados (DX) están registrados los datos fijos o variables con los que opera el programa de usuario. En los módulos de datos no se procesan operaciones STEP 5.

Los datos de un módulo de datos pueden ser:

cualquier representación binaria, por ejemplo, para estados de la instalación,

números (hexadecimales, duales, decimales) para valores de tiempo y resultados de cálculo,

caracteres alfanuméncos, por ejemplo, para textos de avisos.

Estructura de un Un módulo de datos (DBJDX) consta de los siguientes elementos: módulo de datos

antecabeza (DV, DXV),

cabeza,

cuerpo.

Antecabeza La antecabeza se genera automáticamente en el disco duro o disquete del aparato de programación y no se transfiere a la CPU. Contiene los formatos de datos de las palabras de datos introducidas en el cuerpo del módulo.

El usuario no puede crear antecabezas de módulos.

Nota Cuando se transfiere un módulo de datos del autómata programable al disquete o al disco duro, se borra la correspondiente antecabeza. Por esta razón, nunca se debe modificar en el autómata programable un módulo de datos con diferentes formatos de datos y luego volverlo a transferir al disquete, puesto que, de lo contrario, a todas las palabras de datos de este DB se les atribuiría automáticamente el formato de datos seleccionado en la máscara de preajustes.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 64: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Cabeza

Cuerpo

La cabeza ocupa 5 palabras en la memoria y contiene

la identificación del módulo,

la identificación del aparato de programación,

el tipo y número del módulo,

el número de biblioteca y

la longitud del módulo (incluida la longitud de la cabeza).

El cuerpo contiene en orden ascendente y comenzando por la palabra de datos DW O, las palabras de datos con las que opera el programa de usuario. Cada palabra de datos ocupa 1 palabra en la memoria (16 bit).

Longitud máxima Los módulos de datos pueden ocupar en total hasta 4096 palabras (incluida la cabeza) en la memoria de la CPU. ¡Al entrar y transferir módulos de datos con el aparato de programación, se debe tener en cuenta la extensión de memoria de la CPU utilizada!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 65: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.4.1 Crear módulos de datos

Procedimiento Los módulos de datos se crean de la manera siguiente:

1" Introducir el tipo de módulo (DBDX) y un número de módulo entre 3 y 255.

2" Introducir las palabras de datos en el formato deseado.

(¡La entrada de palabras de datos no se finaliza con la instrucción de fin de módulo 'BE'!)

Nota ¡Los módulos de datos DB O, DB 1, DB 2, DX O, DX 1 y DX 2 están reservados para determinadas funciones y, por consiguiente, no pueden ser utilizados libremente (véase "Módulos de datos especiales")!

Formatos de datos válidos

Para los módulos de datos se pueden utilizar los formatos de datos que figuran en la siguiente tabla:

Tabla 2-7 Formatos de datos válidos para módulos de datos

1 Designaci6n 1 Formatos válidos

1 KF 1 Número en coma fija 1 t 09791 1

KM

KH

KY

1 KG 1 Número en coma flotante 1 t1356123t12 1 1 KC 1 Caracteres 1 ?!ABCD123-+.,% 1

Representación binana

Número hexadecimal

Byte

0010011000111111

263F

038,063

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

KT

KZ

Valor de un temporizador

Valor de cómputo

055.2

234

Page 66: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.4.2 Abrir módulos de datos

Introducción Un módulo de datos (DBJDX) solamente puede ser abierto de manera incondicional. Esto se puede hacer dentro de módulos de organización, módulos de programa, módulos de pasos o módulos de funciones. Es posible abrir varias veces un módulo de datos determinado en el programa.

Así se abren los módulos de datos:

Campo de validez Después de abrir el módulo de datos, todas las instrucciones siguientes con la zona de operandos 'D' se refieren al módulo de datos abierto.

SI ... se desea abrir un módulo de datos DB

se desea abrir un módulo de datos DX

El módulo de datos abierto sigue siendo válido, aunque el procesamiento del programa continúe en otro módulo debido a una instrucción de salto.

ENTONCES ... se debe introducir la operación STEP 5 "A DB.. "

se debe introducir la operación STEP 5 "AX DX.. "

Si dentro de este módulo de datos se abre a su vez otro módulo de datos, éste solamente tendrá validez dentro del módulo de datos llamado. Después de retroceder al módulo que efectúa la llamada, vuelve a ser válido el módulo de datos anterior.

Acceso El acceso a los datos almacenados en el módulo de datos abierto se efectúa en el procesamiento del programa con operaciones de carga y transferencia (para más información, véase capítulo 3).

Con una operación de combinación binaria, el bit direccionado de la palabra de datos se utiliza para generar el VKE. El contenido de la palabra de datos no se modifica.

En las operaciones de memorización se asigna el valor del VKE al bit direccionado de la palabra de datos. El contenido de la palabra de datos puede modificarse.

Con una operación de carga se transfiere al AKKU 1 el contenido de la palabra de datos direccionada. El contenido de la palabra de datos no se modifica.

Con una operación de transferencia se transfieren datos del AKKU 1 a la palabra de datos direccionada. Se sobreescribe el contenido anterior de la palabra de datos.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 67: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

Ejemplos

Nota Antes de acceder a una palabra de datos hay que abrir el módulo de datos deseado en el programa de usuario, ya que solamente de esta manera la CPU podrá localizar la palabra de datos correcta.

La palabra de datos direccionada tiene que encontrarse en el módulo de datos abierto, de lo contrario el programa de sistema detectará un error de carga o de tranferencia durante el acceso.

i Con las operaciones de carga o de transferencia solamente se puede acceder hasta la palabra de datos número 255!

Un módulo de datos abierto sigue vigente hasta que

a) se abre otro módulo de datos o

b) el módulo llamado se finaliza con 'BE' o 'BEB'

e ha de transferir el contenido de la palabra de atos DW 1 del módulo de datos DB 10 a la palabra de atos DW 1 del módulo de datos DB 20.

ntroducir las siguientes instrucciones:

:A DB 10 (abrir DB 10) (transferir el contenido de la DW 1 al AKKU 1)

:A DB 20 (abrir DB 20) (transferir el contenido del AKKU 1 a la DW 1)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 68: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

(Fig. 2-5)

n el módulo de programa PB 7 se abre el módulo de atos DB 10 (A DB 10). En el siguiente procesamiento el programa se procesan los datos de este módulo.

espués de la llamada (SPA PB 20) se procesa el módulo e programa PB 20. No obstante, el módulo de datos B 10 sigue siendo valido. La zona de datos cambia olamente al abrir el módulo de datos DB 11 (A DB 11). 1 módulo de datos DB 11 permanece valido hasta el inal del módulo de programa PB 20 (BE).

espués de retroceder al módulo de programa PB 7, uelve a ser valido el módulo de datos DB 10.

m Campo de va l~dez DE 10

m Campo de va l~dez DE 11

Fig. 2-5 Campo de validez de un módulo de datos abierto

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 69: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

2.4.3 Módulos de datos especiales

Introducción Los módulos de datos DB O, DB 1, DX O, DX 1 y DX 2 están reservados en la CPU 928B para determinadas funciones. Son administrados por el programa de sistema y no pueden ser utilizados a voluntad por el usuario.

Módulo de datos DB O (véase capítulo 8.3)

El módulo de datos DB O contiene la lista de las direcciones iniciales de todos los módulos que se encuentran en la memoria de usuario o en la DB-RAM de la CPU. Esta lista de direcciones es generada por el programa de sistema en la inicialización (tras un BORRADO TOTAL) y es actualizada automáticamente cuando se introducen o modifican módulos por medio del aparato de programación.

Módulo de datos DB 1 (véase capítulo 10.1)

El módulo de datos DB 1 contiene la lista de las entradas y salidas di- gitales (periferia P con direcciones relativas de bytes O a 127), así como las entradas y salidas de las marcas de acoplamiento asignadas a la CPU, y, dado el caso, una longitud de bloque de tiempo.

El DB 1 puede ser parametrizado y cargado:

para reducir el tiempo de ciclo en modo monoprocesador, ya que solamente se actualizan las entradas y salidas o tiempos registrados en el DB 1.

El DB 1 tiene que ser parametrizado y cargado:

- en modo multiprocesador,

- cuando se utilizan marcas de acoplamiento con CPs.

Módulo de datos DB 2 (véase capítulo 4.5)

El módulo de datos DB 2 sirve para que el usuario pueda parametrizar la estructura de regulador R64. La función de regulación puede ser adquirida como producto de software. Esta se apoya en el programa de sistema.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 70: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Proarama de usuario

DX O Módulo de datos DX O (véase capítulo 7)

Mediante parametrización y carga del módulo de datos DX O se pueden modificar los ajustes por defecto de determinadas funciones del programa de sistema (por ejemplo, en la ejecución del arranque) y adaptar así las funciones del programa de sistema a los requisitos del usuario.

Módulo de datos DX 1

Reservado

Módulo de datos DX 2

El módulo de datos DX 2 se utiliza para determinar el tipo de acoplamiento para la comunicación a través de la segunda interfaz serie. En el manual "Comunicación CPU 928B" (bibliografía 1140 encontrará informaciones detalladas en cuanto a su parametrización.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 71: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa 3 Resumen breve Este capítulo se dirige a aquellos usuarios que no tengan gran experiencia en la

aplicación del lenguaje de programación. Pretende introducir al usuario en los conocimientos básicos de la programación STEP 5. También presenta una descripción detallada (con ejemplos) de las operaciones STEP 5 de la CPU 928B.

El capítulo 3.5 puede servir de capítulo de consulta a los usuarios que dispongan de mayores conocimientos y que no les sean suficientes las informaciones que figuran en la lista de operaciones (bibliografía /1/), referentes a una operación STEP 5 concreta.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Página

3-2

3-3

3-8

3-10

3-11

3-13

3-17

3-32

3-47

3-54

3-67

Capítulo

3.1

3.2

3.3

3.4

3.4.1

3.5

3.5.1

3.5.2

3.5.3

3.5.4

3.5.5

Tema

Principios fundamentales del procesamiento del programa

Organización del programa

Almacenamiento de módulos de programa y de datos

Procesamiento del programa de usuario

Definiciones terminológicas en cuanto al procesamiento del programa

Operaciones STEP 5 con ejemplos

Operaciones básicas

Ejemplos de programación en los modos de representación AWL, KOP y FUP

Operaciones complementarias

Operaciones de organización

Operaciones semáforo

Page 72: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.1 Principios fundamentales del procesamiento del programa

Resumen El programa de usuario STEP 5 puede ser procesado de diferentes maneras.

Por lo general, en los controladores de memoria programable (SPS), predomina el procesamiento cíclico de programas. El programa de sis-tema se ejecuta en un bucle de programa (el ciclo, véase capítulo 3.4) efectuando cada vez una llamada al módulo de organización OB 1 (véase fig. 3-1).

Programa de sistema Programa de usuario

Desde el arranque

Fig. 3-1 Procesamiento cíclico del programa

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 73: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.2 Organización del programa

Introducción Con la organización del programa se determina en qué condiciones y en qué secuencia se van a ejecutar los módulos creados por el usuario. Para ello se deben programar en los módulos de organización llamadas condicionales o incondicionales a los módulos deseados.

En las partes de programa de los módulos de organización, de programa, de funciones y de pasos, se pueden llamar a otros módulos de programa, de funciones y de pasos combinándolos a voluntad (uno tras otro o uno dentro de otro).

El programa de usuario debiera estar organizado de manera que queden resaltadas las estructuras fundamentales del programa, o bien las partes de la instalación que estén relacionadas entre sí desde el punto de vista de la técnica de programación.

Las figuras 3-2 y 3-3 muestran dos ejemplos de estructuración de un programa.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 74: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Parada de la inst. modos de servicio Parada de

Conducir al estado

Nivel de mando Alimentación de Marcas de ' interfaces de los elementos

m

Alimentación

PB ' D i F B

Salida de avisos Salida de avisos

per i fer ia estándar

SPA PB ' D i

Salida de avisos

per i fer ia estándar

Fig. 3-2 Ejemplo de la organización del programa de usuario según la estructura del programa

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 75: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

P B ' X '

Parte ' X ' de la M a n d o i n d i v i d u a l insta lación

S P A P B ' X '

P B ' Y '

Parte ' Y ' de la M a n d o s e c u e n c i a l Insta lación

S P A P B ' Y '

F B ' Z '

Parte ' Z ' de la insta lación

S P A P B 'Z'

S a l i d a d e p r o t o c o l o

Fig. 3-3 Ejemplo de la organización del programa de usuario según la estructura de la instalación

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 76: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Anidamiento de La figura 3-4 muestra cómo se efectúan las llamadas anidadas. módulos

SPA F B 30 NOMB.: KURV U E 55.0*)

*) Operación a la que se retorna

Fig. 3-4 Llamada anidada a módulos de código

Direcciones de La posición de un módulo en la memoria de usuario (o DB-RAM) está módulos determinada por la dirección inicial del módulo. En el caso de los módulos de

código, es la dirección de la célula de memoria, en la que se encuentra la primera instrucción STEP 5 del módulo (en el caso de EB y EX, es la instrucción SPA que encabeza la lista de operandos formales); en módulos de datos, es la dirección de la primera palabra de datos.

Para que la CPU, en caso de llamar a un módulo de datos, pueda localizar en la memoria el módulo de datos llamado, las direcciones iniciales de todos los módulos válidos se encuentran registradas en la lista de direcciones de módulos del módulo de datos DB O. El DB O es administrado por el programa de sistema. ¡El usuario, por consiguiente, no lo puede abrir!

Una vez procesado el módulo llamado y a fin de poder encontrar el camino de vuelta al módulo que ha efectuado la llamada, la CPU registra la dirección de retroceso cada vez que se llama a un nuevo módulo: la dirección de retroceso es la dirección de la célula de memoria en la que se encuentra la instrucción STEP 5 siguiente a la llamada al módulo. Asimismo, la CPU registra la dirección inicial y la longitud del módulo de datos válido en esta posición.

Profundidad de Se pueden anidar como máximo 62 módulos. Si se llaman a más de 62 módulos, anidamiento la CPU emitirá un aviso de error y se pondrá en STOP.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 77: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Ejemplo

OB 2 + FB 21

OB 13 -b PB 131 + FB 131

OB 1 PB 1 -b F B 1

Profundidad de anidamiento

Fig. 3-5 Ejemplo de la profundidad de anidamiento de módulos

Asi se determina la profundidad de anidamiento del programa:

- Sumar todos los módulos de organización que han sido programados (en el ejemplo: 4 OB).

- Sumar las profundidades de anidamiento de los diferentes módulos de organización (en el ejemplo: 2 + 2 + 1 + O = 5).

- De la suma de ambos valores resulta la profundidad de anidamiento del programa (en el ejemplo: 4 + 5 = profundidad de anidamiento 9). ¡Esta no puede superar el valor 62!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 78: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

3.3 Almacenamiento de módulos de programa y de datos

Introducción Para que la CPU pueda procesar el programa de usuario hay que cargarlo en la memoria de programa, incluyendo los módulos de datos existentes. Como memoria de programa se dispone de la memoria de usuario y de la DB-RAM.

Para cargar módulos de código y de datos en la memoria de programa es posible utilizar los siguientes métodos:

"Modo RAM" Si al efectuarse un BORRADO TOTAL de la CPU no está insertada una Memory Card (Flash EPROM), la CPU pasa a "modo RAM":

Los módulos de código y de datos se cargan del PG en la memoria de usuano o en la DB-RAM de la CPU. En cualquier momento se pueden volver a cargar del PG (reemplazar), modificar o borrar, es decir que la protección contra escritura está desactivada.

"Modo EPROM" El programa de sistema copia los módulos de código y de datos de la Memory Card en la memoria de usuario. Además, dicho programa activa un identificador de protección contra escritura.

Por consiguiente, todos los módulos que se copien no se pueden volver a cargar (reemplazar), modificar ni borrar.

Para poder modificar los datos contenidos en los módulos de datos es necesario depositar éstos últimos en la DB-RAM.

Los módulos de datos programados en la Memory Card se pueden copiar o desplazar (p.ej. en el OB de arranque) a la DB-RAM, mediante los OBs 254 y 255, respectivamente. Los demás módulos de datos se pueden cargar del PG en la DB-RAM.

Una vez depositados los módulos de datos en la DB-RAM se podrán volver a cargar, modificar y borrar.

No obstante, los cambios efectuados en dichos módulos no se adoptan en la Memory Card. Por lo tanto, su contenido se deberá guardar antes de efectuar el siguiente borrado total.

La Memory Card se puede extraer después de efectuar un borrado total. Los datos se encontrarán entonces en la memoria de usuario.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 79: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

DB-RAM

Activarldesactivar la protección contra escritura

Si desea modificar módulos estando en modo EPROM, puede desactivar la protección contra escritura, borrando el correspondiente identificador (v. capítulo 8.3, BS 138).

Activando dicho identificador es posible volver a proteger los módulos contra escritura.

Una CPU sin Memory Card también se puede proteger contra escritura, activando a tal efecto el mencionado identificador.

Visualizar la extensión de la memoria

Si, estando en modo EPROM, desea visualizar informaciones acerca de la memoria mediante la función del PG "Extensión memoria", la longitud de la memoria se indica como valor 'O', en tanto que para la dirección final de la memoria de usuario se visualiza 'OEEEEH'.

Nota La Memory Card sólo se puede programar mediante el aparato de programación (PG). A tal efecto es posible utilizar el software del PG a partir de la versión 6. Para la programación se debe elegir en el PG el modo de operación "WORD" (palabra) (v. la descripción SS-DOS 130.

En la DB-RAM se escriben módulos de datos DB/DX creándolos o copiándolos. Cuando se transfieren módulos de datos del aparato de programación a la CPU, los módulos se depositan en la DB-RAM si el cartucho RAM está lleno o si en el "modo RAM" está ajustada la opción "Carga alternativa" (v. capítulo 8.3 - BS 144).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 80: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

3.4 Procesamiento del programa de usuario

Introducción Todo el software de la CPU (que consiste del programa de sistema y del programa de usuario STEP 5) tiene que ejecutar las siguientes tareas:

ARRANQUE de la CPU,

Control del proceso de automatización por medio de secuencias de operaciones que se repiten cíclicamente (CICLO),

Control del proceso de automatización por reacción ante sucesos que se producen esporádicamente o en determinados tiempos (alarmas), así como por reacción ante errores.

Para las tres tareas existe la posibilidad, por medio de interfaces con el usuario (módulos de organización OB 1 a OB 35, véase capítulo 2.2), de ejecutar ciertas partes especiales del programa de usuario en la CPU.

Arranque

Ciclo

Antes de que la CPU pueda pasar al procesamiento cíclico, puede ser necesario realizar una inicialización a fin de establecer un punto de partida definido que sea adecuado para el procesamiento cíclico del programa, y para indicar, por ejemplo, escalas de tiempo para la ejecución de determinadas funciones. El modo de inicialización depende del suceso que conduzca al ARRANQUE, y de determinados ajustes que se realizan en la CPU. Explicaciones detalladas al respecto se encuentran en el capítulo 4.

Se puede intervenir en el comportamiento de ARRANQUE de la CPU programando los módulos de organización OB 20, OB 21 y OB 22, o parametrizando el módulo de datos DX O (véase capítulo 7).

Después de haber ejecutado un ARRANQUE, el programa de sistema pasa al procesamiento cíclico. Se ocupa de funciones de segundo plano necesarias para las tareas de automatización (véase figura 3-1, al principio del capítulo). Una vez ejecutadas las funciones de sistema al principio de un CICLO, el programa de sistema llama al módulo de organización OB 1 o al módulo de funciones FB O como programa de usuario cíclico. El usuario puede programar en uno de estos módulos las operaciones STEP 5 para el procesamiento cíclico.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 81: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Reacción en Para poder reaccionar especialmente ante una alarma o un error determinados, en caso de alarmas la CPU 928B se dispone de módulos de organización especiales (OB 2, OB 6 y y errores de OB 9 a OB 18 para procesamiento de alarmas, OB 19 y de OB 23 a OB 35

para reacciones en caso de error); en ellos se puede registrar el programa STEP 5 correspondiente.

En el procesamiento de alarmas o de errores, el programa de sistema "anida" (intercala) el correspondiente módulo de organización en el procesamiento cíclico. Esto significa que el procesamiento cíclico es interrumpido por el procesamiento de una alarma o de un error. El anidamiento de los módulos de organización correspondientes se ejecuta según un esquema fijo de pnondades (más informaciones al respecto se encuentran en los capítulos 4 y 5).

En cuanto al procesamiento de alarmas y al tratamiento de errores se puede influir en el comportamiento de la CPU no sólo con los módulos de organización mencionados sino también parametnzando adecuadamente el módulo de datos DX O.

Los módulos de organización OB 1 a OB 39 pueden ser llamados por el programa de sistema tan pronto como hayan sido cargados en la memoria de programa (también durante el funcionamiento).

Si no se cargan, no se produce reacción alguna en la CPU o, como en la mayoría de los casos de error, ésta pasa al estado STOP (véase capítulo 5.4).

Al igual que los módulos de organización, el módulo de datos DX O también puede ser cargado en la memoria de programa durante el funcionamiento. Sin embargo, sólo causará efecto tras el próximo NUEVO ARRANQUE. Si el DX O no está cargado, valen los ajustes estándar (véase capítulo 7).

3.4.1 Definiciones terminológicas en cuanto al procesamiento del programa

Tiempo de ciclo El ciclo comienza con el trigger (disparo) de la supervisión del tiempo de ciclo y termina con el siguiente tngger. El tiempo que requiere la CPU para procesar el programa entre dos triggers se denomina tiempo de ciclo. Se compone de la suma del tiempo de ejecución del programa de sistema y del tiempo de ejecución del programa de usuario.

Por consiguiente, el tiempo de ciclo abarca:

el tiempo de procesamiento del programa cíclico (programa de sistema y programa de usuario),

el tiempo de procesamiento de alarmas (por ejemplo, alarmas controladas por reloj),

el tiempo de procesamiento de interrupciones (errores).

Supervisión del El tiempo de ciclo, que es supervisado por la CPU, no debe sobrepasar un valor tiempo de ciclo máximo. El valor máximo estándar es de 150 ms. El usuario tiene la opción de

reajustar este tiempo de supervisión, o bien, de reiniciarlo durante el procesamiento del programa de usuario (véase DX O/capítulo 7 y OB de funciones especiales OB 221 y OB 222/capítulos 6.23 y 6.24).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 82: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Imagen de Antes de comenzar el procesamiento cíclico del programa de usuario, el proceso de las programa de sistema lee los estados lógicos de las tarjetas penféricas de entrada entradas y y los transfiere a la imagen de proceso de las entradas. El programa de usuario salidas evalúa los estados lógicos en la imagen de proceso de las entradas y, en función (PAE y PAA) del resultado, activa o desactiva las señales de la imagen de proceso de las

salidas. Después de procesar el programa de usuario, el programa de sistema transfiere los estados lógicos de la imagen de proceso de las salidas a las tarjetas periféricas de salida.

Memorizando las señales periféncas de forma intermedia en la imagen de proceso de las entradas y salidas se evita que una modificación del estado lógico de un bit durante un ciclo de programa produzca "vibraciones" en la salida periférica correspondiente.

Por lo tanto, la imagen de proceso es una zona de la memona, cuyo contenido es transferido a la periferia o leído desde ella solamente una vez por ciclo.

Nota jLa imagen de proceso solamente existe para los bytes de entrada o salida de la periferia P con direcciones en bytes de O a 127!

Marcas de Las marcas de acoplamiento sirven para el intercambio de datos entre las diferentes acoplamiento CPUs en modo multiprocesador, o bien, entre la CPU y algunos procesadores de

comunicación.

Antes de comenzar el procesamiento cíclico del programa de usuario, el programa de sistema lee las marcas de acoplamiento de entrada de la CPU y después de procesar el programa de usuario transfiere las marcas de acoplamiento de salida al coordinador o a los procesadores de comunicación.

Las marcas de acoplamiento de entrada y de salida se definen creando el módulo de datos DB 1 (véase capítulo 10.1).

Sucesos de interrupción

El procesamiento cíclico del programa puede ser interrumpido por

un procesamiento controlado por alarmas de proceso,

un procesamiento controlado por tiempo,

una alarma de retardo,

una alarma temporizada controlada por reloj.

Puede ser interrumpido o completamente abortado por

aparición de un error en un aparato o programa,

intervención externa (función del aparato de programación, selector en stop, stop de multiprocesamiento MP-STP),

una operación de stop.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 83: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.5 Operaciones STEP 5 con ejemplos

Introducción Una operación STEP 5 se compone de un elemento operante y un operando. En la parte operante se determina lo que debe ejecutar la CPU (¿qué operación?) y en la de operando se indica con qué medios (¿con qué operando?) se va a ejecutar la operación.

Las operaciones STEP 5 pueden ser subdivididas en diversos grupos:

operaciones básicas (aplicables en todos los módulos de código),

operaciones complementarias (aplicables sólo en los módulos de funciones FB/FX ),

operaciones de organización (aplicables sólo en los módulos de funciones FB/FX ),

operaciones semáforo (aplicables sólo en los módulos de funciones FBFX ).

Acumuladores La CPU 928B dispone de 4 acumuladores, AKKU 1 a AKKU 4. La mayoría como registros de las operaciones STEP 5 utilizan, como fuente para los operandos y como auxiliares destino para los resultados, dos registros (32 bit): AKKU 1 y AKKU 2.

AKKU 1 1)

AKKU-1-LH 1 AKKu-l-L-L

AKKU- 1 -H AKKU-1-L

l) en caso de AKKU 2 a AKKU 4: de forma análoga

Palabra alta

Los acumuladores se alteran según la operación STEP 5 que se ejecute, por ejemplo:

Byte alto

Palabra baja

para operaciones de carga siempre se utiliza el AKKU 1 como des-tino. El contenido anterior del AKKU 1 se desplaza al AKKU 2 (stack lift). Los acumuladores 3 y 4 no se modifican en ninguna de las operaciones de carga,

Byte bajo Byte alto

las operaciones aritméticas combinan el contenido del AKKU 1 y AKKU 2, escriben el resultado en el AKKU 1 y transfieren el contenido del AKKU 3 al AKKU 2 y el contenido del AKKU 4 al AKKU 3 (stack drop). En la aritmética de coma fija de 16 bit, solamente se transfiere la palabra baja del AKKU 3 a la palabra baja del AKKU 2 y la palabra baja del AKKU 4 a la palabra baja del AKKU 3,

Byte bajo

al sumar una constante (ADD BF/KF/DH) al contenido del AKKU 1 no se modifican los acumuladores 2, 3 y 4.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 84: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

lndicadores de Las operaciones STEP 5 pueden crear o consultar indicadores. Los indicadores se resultados depositan en un byte indicador. Cabe distinguir dos grupos de indicadores: por una

parte, los indicadores de operaciones digitales (indicadores de palabras -bit 4 a 7 del byte indicador) y, por otra parte, los indicadores de operaciones binarias y de organización (indicadores de bits - bit O a 3 del byte indicador). La manera en que influyen las operaciones STEP 5 en los diferentes indicadores y el modo en que pueden ser evaluados con éstas se desprende de la lista de operaciones (bibliografía 110.

El byte indicador se visualiza con la función on line "Módulo Status" (véase capítulo 11.2.3) y tiene la siguiente estructura:

Bit 7 6 5 4 3 2 1 O

lndicadores de ERAB Primera consulta bits

Una cadena lógica con combinaciones binanas, comienza siempre con una primera consulta durante la cual se regenera el VKE. Con ella se pone el indicador de bit ERAB = 1. En el curso de las siguientes combinaciones lógicas en la cadena comenzada permanece ERAB = 1 y el VKE puede ser modificado por estas combinaciones lógicas.

Indicadores de palabras

La cadena de combinaciones comenzada termina con una operación binana de memorización (por ejemplo, S A 5.0). Con la operación de memorización se pone ERAB = O; de ahora en adelante, el VKE solamente puede ser evaluado (por ejemplo, por instrucciones que dependan del VKE), pero no puede seguir siendo combinado. La próxima combinación lógica binana después de una operación binaria de memorización vuelve a ser una "primera consulta".

ANZ1

Indicadores de bits

Ejemplo de ERAB

OR

: U E 1.0 s e genera de nuevo por combinación AND

:O E 6 . 3 VKE e s alterado por combinación OR

:UN E 2.1 VKE e s alterado por combinación AND NOT -

:S A 2.4 ERAB s e pone a 'O', l a cadena de combinación acaba

: S P B F B 150 Llamar módulo de funciones en función de l VKE

ANZO

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

STA OV OS VKE ERAB

Page 85: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Otros VKE Resultado de la combinación (resultado lógico) indicadores de bit

Resultado de combinaciones binanas. En caso de instrucciones de comparación indica si es verdadero o falso (véase lista de operaciones, operaciones binanas de combinación u operaciones de comparación).

STA Status (estado)

En caso de instrucciones de bit indica el estado lógico del último bit consultado o activado. El estado se actualiza en operaciones binanas de combinación - a excepción de U(, O(, ), O - y en operaciones de memorización.

Indicador interno de la CPU, para el tratamiento de combinaciones "AND antes de OR".

lndicadores de OV Overflow (desbordamiento) palabras

Indica si se ha sobrepasado el campo numérico admisible durante la operación aritmética que acaba de finalizar.

OS Overflow memorizado

El OS sirve para detectar si ha tenido lugar un desbordamiento (overfiow) en el transcurso de varias operaciones aritméticas.

Indicadores de resultado codificados cuya interpretación se desprende de la tabla 3-1.

Nota Para evaluar directamente los indicadores se pueden utilizar las operaciones de comparación y de salto disponibles (v. capítulos siguientes).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 86: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Tabla 3-1 Indicadores de resultado de operaciones STEP 5

Nota Cuando se cambia de nivel, por ejemplo durante el procesamiento de una alarma temponzada, se salvan todos los acumuladores así como los indicadores de bits y de palabras (VKE etc.); éstos se vuelven a cargar cuando se retorna al nivel interrumpido.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Indicadores de palabras

Operaciones aritméticas

Resultado = O

Resultado < o

Resultado >O

División entre cero

ANz1

O

O

1

1

ANZO

O

1

O

1

Operaciones digitales de

combinación

Resultado = O

-

Resultado 2 O

-

Operaciones de

comparación

AKKU 2 - -

AKKU 1

AKKU 2 <

AKKU 1

AKKU 2 >

AKKU 1

-

Operaciones de desplaza-

miento

Bit desplazado

= O

-

Bit desplazado

= 1

-

En caso de SES, SEF

Semáforo está

activado

-

Semáforo es activado

o habilitado

-

Operaciones de salto

ejecutadas

SPZ

SPM SPN

SPP SPN

SPN

Page 87: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.5.1 Operaciones básicas

Introducción Las operaciones básicas se pueden utilizar en todos los módulos de código así como en todos los modos de representación (KOP, FUP y AWL)

Operaciones de combinación binarias

Tabla 3-2 Operaciones de combinación binanas

Generación del VKE

Operación

U

O

UN

ON

O

U( O( )

Las operaciones binarias de combinación generan el resultado de combinación

(VKE). Al principio de una cadena de combinaciones, la generación del VKE (primera consulta) depende solamente del estado lógico consultado (status), pero no depende del tipo de combinación (O = OR, U = AND).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operando

E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 215.15 T O a 255 Z O a 255

E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 215.15 T O a 255 Z O a 255

-

-

Función

Combinación AND con consulta si el estado lógico = "1"

Combinación OR con consulta si el estado lógico = "1"

de una entrada en PAE de una salida en PAA de un bit de marcas de un bit de marcas S de un bit en la palabra de datos de un temporizador de un contador

Combinación AND con consulta si el estado lógico = "0"

Combinación OR con consulta si el estado lógico = "0"

de una entrada en PAE de una salida en PAA de un bit de marcas de un bit de marcas S de un bit en la palabra de datos de un temporizador de un contador

Combinación OR de funciones AND

Combinación AND de expresiones entre paréntesis Combinación OR de expresiones entre paréntesis Cierre de paréntesis

Se admiten máx. 8 niveles, es decir, 7 paréntesis abiertos.

Page 88: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Dentro de una cadena de combinación se genera el VKE a partir del tipo de combinación, del anterior VKE y del estado lógico consultado. Una cadena de combinación se concluye con una instrucción que limite el VKE (ERAB = O) (por ejemplo, operaciones de memorización). Después, el VKE podrá seguir siendo evaluado, pero ya no podrá ser combinado.

Ejemplo de generación del VKE

O -VKE limitado 1 -Primera consulta

O -VKE limitado, fin de la cadena de combinación

Operaciones de memorización

Tabla 3-3 Operaciones de memorización

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

S R

- -

Operando

E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 255.15

E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 255.15

Función

Si el estado del VKE es '1': activar Si el estado del VKE es '1': reamar

una entrada en PAE una salida en PAA una marca una marca S un bit en la palabra de datos

Asignación del VKE a

una entrada en PAE una salida en PAA una marca una marca S un bit en la palabra de datos

Page 89: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de carga y transferencia

Tabla 3-4 Operaciones de carga y transferencia

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

L T

Operando

EB O a 127 EW O a 126 ED O a 124

AB Oa 127 AW O a 126 AD O a 124

MB O a 255 MW 0 a 254 MD O a 252

SY O a 1023 SW O a 1022 SD Oa 1020

DR O a 255 DL O a 255 DW 0 a 255 DD O a 254

PY O a 127

PY 128 a 255

PW O a 126 PW 128 a 254

QB O a 255 QW 0 a 254

Función

Carga Transferencia

de un byte de entrada dela la PAE de una palabra de entrada dela la PAE de una palabra doble de entrada dela la PAE

de un byte de salida dela la PAA de una palabra de salida dela la PAA de una palabra doble de salida dela la PAA

de un byte de marcas de una palabra de marcas de una palabra doble de marcas

de un byte de marcas S de una palabra de marcas S de una palabra doble de marcas S

del byte derecho de una palabra de datos de o a DB, DX del byte izquierdo de una palabra de datos de o a DB, DX de una palabra de datos de o a DB, DX de una palabra doble de datos de o a DB, DX

de un byte periférico de las entradas o salidas digitales (zona P) de un byte periférico de las entradas o salidas digitales o analógicas (zona P)

de una palabra periférica de las entradas o salidasdigitales (zona P) de una palabra periférica de las entradas o salidas digitales o analógicas (zona P)

de un byte de la periferia ampliada (zona Q) de una palabra de la periferia ampliada (zona Q)

Page 90: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de carga

Operación

Las operaciones de carga escriben el valor direccionado en el AKKU 1, cuyo contenido anterior pasa al AKKU 2 (stack lift).

Operaciones de transferencia

Operando

Las operaciones de transferencia escriben el contenido del AKKU 1 en la célula de memoria direccionada.

Función

Tabla 3-4, continuación:

L

LC

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

KB Oa255 KC 2 caracteres

ASCII

KE -32768 a t32767

KG ')

KH OaFFFF DH Oa

FFFF FFFF KM estructura

de 16 bit KY O a 255 para

cada byte

KT 0.0 a 999.3 KZ Oa999

T O a 255 Z O a 255

T O a 255 Z O a 255

Cargar

una constante, valor de byte una constante de 2 caracteres ASCII

una constante como número en coma fija

una constante como número en coma flotante una constante como número hexadecimal una constante de palabra doble como número hexadecimal

una constante como representación binaria

una constante como número de 2 bytes

una constante como valor de tiempo (código BCD) una constante como valor de contaje

un valor de tiempo, código binario un valor de contaje, código binario

Cargar un

valor de tiempo valor de contaje

en código BCD

Page 91: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Ejemplos de operaciones de carga y transferencia

La figura 3-6 muestra la carga/transferencia de un byte, una palabra o una palabra doble de/a una zona de memoria organizada byte por byte (PAE, PAA, marcas, periferia):

:L EB i se carga el byte i de la PAE en el AKKU-1-LL :L EW j se cargan los bytes j y j+l de la PAE en el AKKU-1-L :L MD k se cargan los bytes de marcas k hasta k+3 en el AKKU 1

l) solamente en operac iones de ca rga

Fig. 3-6 Operaciones de carga y transferencia en una zona de memoria organizada byte por byte

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 92: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

figura 3-7 muestra la carga/transferencia de un byte, una palabra o una labra doble de/a una zona de memoria organizada palabra por palabra.

DR i se carga el byte derecho de la palabra de datos i en el AKKU-1-LL DL j se carga el byte izquierdo de la palabra de datos j en el AKKU-1-LL DW k se carga la palabra de datos k en el AKKU-1-L DD 1 se cargan las palabras de datos 1 y 1+1 en el AKKU 1

solamente en operaciones de carga

Nota Las operaciones de carga no modifican los indicadores. Las operaciones de transferencia borran el bit OS.

Al cargar un byte o una palabra se borran los bytes de valor superior en el AKKU 1.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 93: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Accesos a la A la periferia se puede acceder mediante operaciones de carga y transferencia: periferia

directamente:

con L..R .... PY, ..PW, ..QB, ..QW

a través de la imagen de proceso:

con L..R .... EB, ..EW, ..ED, ..AB, ..AW, ..AD

y con operaciones de combinación.

Nota En las operaciones de transferencia T PY de O a 127 y T PW de O a 126, se actualiza paralelamente la imagen de proceso de las salidas.

En cuanto a la periferia, hay que tener en cuenta los siguientes puntos:

Existe una imagen de proceso de las entradas y salidas por cada 128 bytes de entrada o de salida de la penferia P, con direcciones de bytes de O a 127.

Para la zona de la periferia P, con direcciones relativas de bytes de 128 a 255, y para toda la zona de la periferia Q, jno existe imagen de proceso! (En cuanto a la distribución de la zona de direcciones de la perifena, véase capítulo 8.2.2).

Las tarjetas de E/S con direcciones de la perifena Q, solamente deben ser enchufadas en aparatos de ampliación (no en el aparato central).

En un solo aparato de ampliación solamente se puede utilizar la periferia P o la penferia Q.

Cuidado En caso de que en un aparato de ampliación se utilicen direcciones relativas de la periferia Q, no deberán utilizarse estas mismas direcciones para las tarjetas periféricas (zona P) enchufadas al aparato central (¡doble direccionamiento!).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 94: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de Para cargar un temponzador con una operación de arranque o un contador con una tiempo y contaje operación de activación, primeramente hay que cargar el valor en el AKKU 1.

Se recomiendan las siguientes operaciones de carga:

Para temporizadores: L KT, L EW, L AW, L MW, L DW, L SW. Para contadores: L KZ, L EW, L AW, L MW, L DW, L SW.

Para poder arrancar un temporizador con el valor de tiempo dado, es necesario un cambio de flancos del VKE.

Un contador se activa o cuenta con el valor de contaje dado cuando se detecta un flanco positivo del VKE.

En la tabla siguiente, los cambios de flanco están representados en la columna VKE por medio de flechas.

Tabla 3-5 Operaciones de tiempo y contaje

l) Flanco positivo ( i ): cambio de estado lógico de 'O' a '1' Flanco negativo ( J ): cambio de estado lógico de '1' a 'O'

Operación

SI SV SE SS S A R

S R ZV ZR

Al ejecutar operaciones de tiempo o de contaje SI, SE, SV, SS, SA y S, se pasa el valor que se encuentra en el AKKU 1 al temponzador o contador (corresponde a la instrucción de transferencia) y se activa la operación correspondiente.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operando

T O a 255 T O a 255 T O a 255 T O a 255 T O a 255 T O a 255

Z O a 255 Z O a 255 Z O a 255 Z O a 255

VKE')

i i i i J 1

i 1 i i

Función

Arrancar un temporizador como impulso Arrancar un temporizador como impulso prolongado Arrancar un temporizador como retardo de conexión Arrancar un temporizador como retardo de conexión mem. Arrancar un temporizador como retardo de desconexión Rearmar un temporizador

Activar un contador (valor BCD de O a 999) Rearmar un contador Contar hacia delante Contar hacia atrás

Page 95: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Valor de tiempo Un valor de tiempo puede cargarse directamente en el AKKU 1 con la operación L KT o bien, de forma indirecta, desde una palabra de marcas o de datos mediante las correspondientes operaciones de carga. Tiene que tener la siguiente estructura (la escala de tiempo se indica en L KT después del punto del operando):

Valor de tiempo dado en código BCD O ... 999

Bit nQ

Escala de tiempo dada en código BCD: O: 0.01 S

1: 0.1 S

1 5 1 4 1 3 1 2 1 1 1 0

I 2: 1 S Estos bits no son significativos, 3: es decir, no se tienen en cuenta al arrancar el temporizador

Ejemplo

9

cupación de los bits:

x x 1 0 0 0 0 1 0 0 1 0 0 1 1 1

Valor de tiempo: 127

Escala de tiempo: 1 s

No se tienen en cuenta

Nota i Cada arranque de un temponzador produce una imprecisión de 1 escala de tiempo! Por consiguiente, en caso de utilizar temporizadores se deberá elegir una escala de tiempo lo más breve posible.

8

Ejemplo: Tiempo 4 s no: 1 s x 4 Imprecisión: 1 s

sino: 0,01 s x 400 Imprecisión: 0,01 s

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

7 6 5 4 3 2 1 O

Page 96: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Valores de Un valor de contaje puede cargarse directamente en el AKKU 1 con la contaje operación L KZ o bien, de forma indirecta, desde una palabra de marcas o de

datos mediante las correspondientes operaciones de carga. Tiene que tener la siguiente estructura:

Valor de contaje dado en código BCD O ... 999

Bit nQ

Estos bits no son significativos, es decir, no se tienen en cuenta al arrancar el valor de contaje

1 5 1 4 1 3 1 2 1 1 1 0 9

Ejemplo

cupación de los bits:

x x x x 0 0 0 1 0 0 1 0 0 1 1 1

Valor de contaje: 127

No se tienen en cuenta

8

En el temponzador o contador mismos se encuentra el valor correspondiente en código binario. Para consultar el temponzador o el contador se puede cargar en el AKKU 1 el valor del temponzador o contador directamente o en código BCD.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

7 6 5 4 3 2 1 O

Page 97: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Otros ejemplos de valores de tiempo y contaje

Valor de t iempo

h O Temporizador T 10

.................................................

................................................

O AKKU 1 ................................................

T 10": Carga directa del valor dual del temporizador T 10 en el AKKU 1

escala de tiempo no se carga.

Valor de conta je

................................................ h O Contador Z 10

................................................

................................................

O A K K U 1 ................................................

"L Z 10": Carga directa del valor dual del contador Z 10 en el AKKU 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 98: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

V a l o r d e t i e m p o

v O T e m p o r i z a d o r

E s c a l a d e t i e m p o V a l o r d e t i e m p o

"LC T 10": Carga codificada del valor de tiempo y de la escala de tiempo del temporizador T 10 en el AKKU 1

La escala de tiempo también se carga.

V a l o r d e c o n t a j e

h 0 C o n t a d o r Z 1 0

D u a l - B C D

0 A K K U 1

V a l o r d e c o n t a j e e n c ó d i g o B C D

En la carga codificada no se cargan los bits de estado 14 y 15 de los temporizadores, o de 12 a 15 de los contadores. En su lugar se ponen ceros en el AKKU 1. El valor registrado en el acumulador puede ser procesado a continuación.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 99: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones aritméticas

Tabla 3-6 Operaciones aritméticas

Las operaciones aritméticas combinan los contenidos del AKKU 1 y AKKU 2 (por ejemplo, "AKKU 2 - AKKU 1"). Luego, el resultado queda en el AKKU 1. Los registros de cálculo se modifican mediante una operación aritmética de la manera siguiente (en el caso de operaciones en coma fija, solamente se modifica la palabra baja):

Operación

+ F - F x F : F

+ G - G x G : G

antes: cAKKU 1> cAKKU 2> cAKKU 3> cAKKU 4>

l / A después: c~esul tad& cAKKU 3> cAKKU 4> cAKKU 4>

Operando

-

Nota Dentro de las operaciones complementarias se dispone de operaciones de sustracción y adición de números en coma fija de palabra doble.

Función

Adición de dos números en coma fija (16 bit) Sustracción de dos números en coma fija (16 bit) Multiplicación de dos números en coma fija (16 bit) División de dos números en coma fija (16 bit):

Cociente en AKKU-1-L, resto en AKKU-1-H

Adición de dos números en coma flotante (32 bit) Sustracción de dos números en coma flotante (32 bit) Multiplicación de dos números en coma flotante (32 bit) División de dos números en coma flotante (32 bit)

Además se puede utilizar la operación ENT de las operaciones complementarias para la carga de AKKU 3 y AKKU 4 (véase capítulo 3.5.3).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 100: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de comparación

Tabla 3-7 Operaciones de comparación

Operaciones de módulos

Operación

> = < <=

Tabla 3-8 Operaciones de módulos

Operando

-

¡Solamente para fines de comprobación!

Función

Comparación de igualdad Comparación de desigualdad Comparación de "mayor que" Comparación de "mayor o igual a" Comparación de "menor que" Comparación de "menor o igual a"

...E Comparación de 2 números en coma fija (16 bit)

... D: Comparación de 2 números en coma fija (32 bit)

... G: Comparación de 2 números en coma flotante (32 bit)

Operación

SPA SPB

B A BAB

BE BEB BEA

A AX

E EX

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operando

OB 1 a 39 ')

OB 110 a 255 PB O a 255 EB O a 255 SB O a 255

EX O a 255

-

DB 3 a 255 DX 3 a 255

DB 3 a 255 DX 3 a 255

Función

Salto incondicional Salto condicional (sólo si VKE = 1)

a un módulo de organización a una función especial a un módulo de programa a un módulo de funciones FB a un módulo de pasos

Salto incondicional Salto condicional (sólo si VKE = 1)

a un módulo de funciones FX

Fin de módulo Fin de módulo condicional (sólo si VKE = 1) Fin de módulo absoluto

Apertura de un módulo de datos DB Apertura de un módulo de datos DX

Crear módulo de datos DB Crear módulo de datos DX

(AKKU 1 tiene que contener la cantidad de palabras de datos - máx. 4091- que ha de tener el módulo nuevo)

Page 101: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

E DB/W DX Crear módulo de datos

La operación E DBx crea un módulo de datos DB con el número x (3 á x á 255) en la memoria DB-RAM de la CPU. El contenido del módulo de datos no se rellena con ceros, es decir, las palabras de datos pueden tener contenidos arbitrarios. Antes de programar la instrucción, hay que depositar en el AKKU-1-L la cantidad de palabras de datos que va a tener el nuevo DB. La cabeza de módulo se crea con la operación "E DB" o "EX DX". Un módulo de datos que haya sido creado de este modo no debe superar (sin cabeza) 4091 palabras en la memoria.

Si el correspondiente módulo de datos ya existe, la longitud del DB no es válida o el espacio en la DB-RAM es insuficiente, el programa de sistema llama al OB 31. Si éste no está cargado, la CPU pasa al estado STOP debido a un error en tiempo de ejecución.

La operación EX DX crea en la DB-RAM un módulo de datos DX y funciona del mismo modo que E DB.

Operaciones cero/ de estructuración de imagenlde stop

Tabla 3-9 Operaciones cerolde estructuración de imagenlde stop

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

NOP O NOP 1

BLD

STP

Operando

-

O a 255

-

Función

Operación cero Operación cero

Instrucción de estructuración de imagen para el PG: es tratada por la CPU como una operación cero.

La CPU pasa a STOP.

Page 102: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.5.2 Ejemplos de programación en los modos de representación AWL, KOP y FUP

Operaciones de combinación

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

= A3.5

En la salida A 3.5 se produce la señal "1" si todas las entradas presentan simultáneamente la señal "1 ".

En la salida A 3.5 se produce la señal "O" si por lo menos una de las entradas presenta la señal "O".

La cantidad de consultas y el orden de programación son arbitrarios.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 103: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de combinación (continuación)

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

En la salida A 3.2 se produce la señal "1" si por lo menos una de las entradas presenta la señal "1 ".

En la salida A 3.2 se produce la señal "O" si todas las entradas presentan simultáneamente la señal "O".

Representación STEP 5

Lista de Esquema de contactos Esquema de func. trucciones

E 1.5 E 1.6 E1 .4 E 1.3

= A3.1

En la salida A 3.1 se produce la señal "1" si por lo menos una de las combinaciones AND es verdadera.

En la salida A 3.1 se produce la señal "O" si no se cumple ninguna

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 104: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de combinación (continuación)

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

U E 6.0 E 6 . 0 E 6 . 1 E6 .2E6.3 E6 .0 E6.2 E6.3

= A2.1

En la salida A 2.1 se produce la señal "1" si la entrada E 6.0 ó E 6.1 y una de las entradas E 6.2 o bien E 6.3 llevan la señal "1 ".

al "O" si la entrada E 6.0 lleva la señal "O"

Representación STEP 5

Lista de Esquema de contactos Esquema de func. trucciones

= A3 .0

En la salida A 3.0 se produce la señal "1 " si se cumplen ambas combinaciones OR.

En la salida A 3.0 se produce la señal "O" si no se cumple por lo menos una combinación OR.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 105: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de combinación (continuación)

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

E 1.5 E 1.6

Elemento de memorización RS para salidas de señal memorizadas

Representación STEP 5

Lista de ins- Esquema de contactos Esquema de func. trucciones

U E 1 . 4

El estado lógico "1 " en la entrada E 2.7 provoca la activación del elemento de memorización (señal "1 " en la salida A 3.5). Si el estado lógico de la entrada E 2.7 cambia a "O", este estado se mantiene, es decir, la señal es almacenada.

La señal "1 " en la entrada E 1.4 provoca el rearme del elemento de memorización (señal "O" en la salida A 3.5).

Si el estado lógico de la entrada E 1.4 cambia a "O", se conserva el estado.

Si la señal de activación (entrada E 2.7) y la señal de rearme

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 106: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de memorización

Representación STEP 5

Lista de Esquema de contactos Esquema de func. trucciones

U E 2.6

El estado lógico "1" en la entrada E 2.6 produce la activación del elemento de memorización.

Si el estado lógico de la entrada E 2.6 cambia a "O", no se modifica este estado, es decir, la señal es almacenada.

La señal "1" en la entrada E 1.3 produce el rearme del elemento de memorización.

Si el estado lógico en la entrada E 1.3 cambia a "O", no se modifica este estado.

Si la señal de activación (entrada E 2.6) y la señal de rearme (entrada E 1.3) son simultáneas, la última consulta programada (en este caso U E 1.3) será válida durante el procesamiento del resto

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 107: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de memorización (continuación)

Representación de un relais de paso

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

= M 2.0

E 1.7 nnnnn- M4.0 nnnnn- M2.0 1 1 1 1 1

Con cada flanco creciente de la entrada E 1.7 se cumple la combinación AND (U E 1.7 y UN M 4.0) y con VKE = 1 se activan las marcas M 4.0 ("marca de flanco") y M 2.0 "marca de impulso").

En el siguiente ciclo de procesamiento no se cumple la combinación AND U E 1.7 y UN M 4.0, ya que se ha activado la marca M 4.0.

Se rearma la marca M 2.0.

Representación STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func.

UN M1.O = M 1.1

R M1.O U M 1.1 U A3 .0 = M 2.0 U M 1.1 1.1 A3 .0 M2.0 A3 .0 UN A3.0

S A3.0

A3 .0 U M 2.0 R A3 .0

El divisor binario (salida A 3.0) cambia su estado con cada cambio de señal de "O" a " 1 " (flanco creciente) de

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 108: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Operaciones de tiempo

Representación STEP 5

Lista de Esquema de contactos Esquema de func. trucciones

Si el estado lógico de la entrada E 3.0 cambia de "O" a "1" se arranca el temporizador. Si al repetir el procesamiento el resultado de la combinación es "1 ", el temporizador permanece inalterado.

Si el estado lógico de la entrada E 3.0 es "O", el temporizador se pone a cero (se borra).

Las consultas U T o bien, O T, dan la señal "1 ", mientras corre el tiempo.

El temporizador se carga con el valor indicado (1 0). La cifra a la derecha del punto indica la escala de tiempo: o = 001s 2 = 1 s I = O . l s 3 = 1 0 s

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 109: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de tiempo (continuación)

Representación STEP 5

Lista de Esquema de contactos Esquema de func. trucciones

Si el resultado de combinación es "1" y se trata del primer procesamiento, se arranca el temporizador.

Si el resultado de combinación es "O", el temporizador permanece inalterado.

Las consultas U T y O T dan la señal "1 " mientras Escala de Valor de tiempo

Activar un valor de tiempo con el valor en código BCD existente en los operandos E, A, M o D (en el ejemplo, palabra de entrada 15) A4.1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 110: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de tiempo (continuación)

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

Si el resultado de la combinación es "1" y se trata del primer procesamiento, se arranca el temporizador. Si al repetir el procesamiento el resultado es "1 ", el temporizador permanece inalterado.

Si el estado lógico en la entrada E 3.5 es "O", el temporizador se pone a cero (se borra).

Las consultas U T u O T dan la señal "1 ", cuando ha transcurrido el tiempo y la señal "1 " aún espera en la entrada E 3.5.

El temporizador se carga con el valor indicado (9). La cifra a la derecha del punto indica la escala de tiempo:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 111: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Operaciones de tiempo (continuación)

i el resultado de la combinación es "1 " y se trata del primer procesamiento, se arranca el temporizador.

Si el resultado de la combinación es "O", el temporizador permanece inalterado.

L KT 10.1

el resultado de la combinación es "1 ", el temporizador pone a cero (se borra).

S consultas U T u O T dan el estado de señal "1 " mientras corre

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 112: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Operaciones de contaje

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

U E 4.0

E4.1 KZ 150 Z V Z 1

L KZ 150

S Z 1

Si el resultado de la combinación cambia de "O" a "1" en la entrada del arranque (E 4.1), el contador se carga con el valor indicado (1 50).

La marca necesaria para evaluar los flancos de la entrada de activación (set) está incluida en la palabra de contaje. DU y DE son salidas digitales del contador. En la salida DU el valor del contador está en código binario, en la salida DE,

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

U E 4.0

U E 4.2

U Z 2 = A 2.4

Si el resultado de la combinación es "1" (E 4.2), el contador se pone a cero

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 113: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de contaje (continuación)

El valor del contador direccionado aumenta de 1 en 1, hasta llegar a un valor de contaje máximo de 999. La función ZV se ejecuta solamente si el flanco de la combinación programada antes de ZV es positivo (de "O" a "1 "). Las marcas necesarias para evaluar los flancos de las entradas de contaje están incluidas en la palabra de contaje.

Mediante las dos marcas de flancos separadas para ZV y ZR

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 114: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de contaje (continuación)

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

El valor del contador direccionado disminuye de 1 en 1, hasta llegar al valor de contaje mínimo de O. La función sólo tiene efecto si el flanco de la combinación programada antes de ZR es positivo (de "O" a "1 "). Las marcas necesarias para evaluar los flancos de las entradas de contaje están incluidas en la palabra de contaje.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 115: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de comparación

Representación STEP 5

Lista de Esquema de contactos Esquema de func. trucciones

L EB19

= A3.0

El primer operando indicado se compara con el operando siguiente, de acuerdo con la función de comparación. La comparación da un resultado de combinación binario. VKE = "1 ": La comparación se cumple, si AKKU-1 -L es igual a AKKU-2-L. VKE = "O": La comparación no se cumple, si AKKU-1 -L no es igual a AKKU-2-L. Los indicadores ANZ 1 y ANZ O se activan como se describe en la lista de operaciones. AKKU-2-H y AKKU-1 -H no participan en la operación de comparación de 16 bit en coma fija. En las comparaciones de coma fija de 32 bit (! = D) y en las comparaciones en coma flotante (! = G) de 32 bit se comparan todos los contenidos de AKKU 1 y AKKU 2 (32 bit). En la comparación se considera la representación numérica de los operandos, es decir, los contenidos de AKKU-1 -L y AKKU-2-L, en este caso, se interpretan como números en

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 116: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de comparación (continuación)

Representación STEP 5

Lista de ins- trucciones Esquema de contactos Esquema de func.

L EB21

El primer operando indicado se compara con el operando siguiente de acuerdo con la función de comparación. La comparación da un resultado de combinación binario. VKE = "1 ": La comparación se cumple, si AKKU-1 -L no es igual a AKKU-2-L. VKE = "O": La comparación no se cumple, si AKKU-1 -L es igual a AKKU-2-L. Los indicadores ANZ 1 y ANZ O se activan de acuerdo a lo descrito al principio del capítulo 3.5. AKKU-2-H y AKKU-1 -H no participan en la operación de comparación de 16 bit en coma fija. En la comparación de 32 bit en coma fija y en coma flotante, también participan AKKU-2-H y AKKU-1 -H. Lo mismo vale para las comparaciones: "mayor que", "mayorligual a", "menor que" y "menorligual a" (véase lista de operaciones). En la comparación se considera la representación numérica de los

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 117: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.5.3 Operaciones complementarias

Introducción Las operaciones complementarias solamente se pueden utilizar para módulos de funciones (FB y EX). El conjunto de operaciones para módulos de funciones se compone, por tanto, de las operaciones básicas y de las operaciones complementarias.

A las operaciones complementarias también pertenecen las operaciones de sistema: con las operaciones de sistema, por ejemplo, se puede sobreescribir un espacio de memoria cualquiera o modificar el contenido de los registros de trabajo de la CPU.

Para mayor información sobre las "operaciones de sistema", véase capítulo 9 "accesos a la memoria a través de direcciones absolutas".

Cuidado Las operaciones de sistema solamente deben ser utilizadas con la mayor cautela y sólo por programadores experimentados y con amplios conocimientos del sistema.

En los módulos de funciones, las operaciones solamente se representan en modo AWL. Por consiguiente, los programas de los módulos de funciones no pueden ser programados en modo gráfico (KOP o FUP) . En lo siguiente se describen las operaciones complementarias. Además se indican las posibilidades de combinación de las instrucciones de sustitución con los operandos actuales.

Identificación de ¡Las operaciones de sistema están marcadas con una las operaciones columna de las tablas! de sistema

Combinaciones binarias

Tabla 3-10 Combinaciones binanas con operandos formales

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

U =

UN =

O =

ON =

Operando

1 1 1 1 - Función

Función AND, consulta si el estado lógico de un operando formal es '1'

Función AND, consulta si el estado lógico de un operando formal es 'O'

Función OR, consulta si el estado lógico de un operando formal es '1'

Función OR, consulta si el estado lógico de un operando formal es 'O'

colocar el operando formal Como operandos actuales son válidos: entradas, salidas, datos y marcas con dirección binaria (clase de parámetro: E, A, tipo de parámetro: BI), así como temporizadores y contadores (tipo de parámetro: T, Z).

Page 118: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Combinaciones digitales

Tabla 3-11 Combinaciones digitales

Los AKKUs 2,3 y 4 no se modifican, pero sí los indicadores ANZ 1 y ANZ O (véanse indicadores de resultado de palabras).

Operación

UW

OW

XOW

Operaciones de memorización

Tabla 3-12 Operaciones de memorización con operandos formales

Operando Función

Combinación AND de AKKU-1-L y AKKU-2-L

Combinación OR de AKKU-1-L y AKKU-2-L

Combinación OR exclusivo de AKKLJ-1-L y AKKLJ-2-L

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

S =

RB =

RD =

- - - -

Operando

1 1 1 1

1

Función

Activación (binaria) de un operando formal

Rearme (binario) de un operando formal

Rearme (digital) de un operando formal para temporizadores y contadores

Asignación del resultado de combinación a un operando formal

colocar el operando formal Como operandos actuales son válidos: entradas, salidas y marcas M con dirección binaria (clase de parámetro: E, A, tipo de parámetro: BI).

Page 119: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de tiempo y contaje

Tabla 3-13 Operaciones de tiempo y contaje con operandos formales

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

SI =

SE =

SVZ =

SSV =

SAR =

FR =

FR

Z S I T 1 1 con FR T

Consulta con U T

Operando

1

1

1

1

T 0a255

Z 0a255

Función

Arrancar un temponzador (operando formal) como impulso. El valor de tiempo (clase de parámetro T) tiene que estar depositado en el AKKU-1-L.

Arrancar un temporizador (operando formal) como conexión retardada. El valor de tiempo (clase de parámetro T) tiene que estar depositado en el AKKU-1-L.

Arrancar un temporizador (operando formal) como impulso prolongado, con el valor de tiempo depositado en el AKKLJ-1-U activar un contador (operando formal), con el valor de contaje depositado en el AKKU-1-L; (clase de parámetro: T, 9.

Arrancar un temporizador (operando formal) como conexión retardada y memorizada con el valor depositado en el AKKU-1-L, o bien, activar la cuenta adelante de un contador (operando formal); (clase de parámetro: T, 9.

Arrancar un temporizador (operando formal) como conexión retardada, con el valor depositado en el AKKLJ-1-L, o bien, activar la cuenta atrás de un contador (operando formal); (clase de parámetro: T, 9.

Habilitar los operandos formales (temporizador/contador) para el nuevo arranque (véase "FR Tu, "FR Z"); (clase de parámetro: T, 9.

colocar el operando formal

Habilitar un temporizador para el nuevo arranque: La operación solamente se ejecuta con flanco creciente del VKE (cambio de 'O' y '1'). El temporizador rearranca, cuando durante la operación de arranque el VKE = '1' (véase esquema con diagrama de tiempo debajo de la tabla).

Habilitar un contador para activarlo o para contar: La operación solamente se ejecuta con flanco creciente del VKE (cambio de 'O' y '1'). El contador vuelve a ser procesado, cuando durante la operación de contaje el VKE = '1'.

Page 120: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Ejemplos

Llamada al módulo de Programa en el módulo de Programa ejecutado funciones funciones

:SPA FB203 NOMB.:EJEMl

:U =ANA :U E 10.3 :L KT 010.2 :L KT 010.2 :SSV =PEPE :SS T 17 :U =PEPE :U T 17 := =JUAN := A 18.4

:SPA F B 2 0 4 NOMB.:EJEM2

:U =EDU :U E 10.5 :SSV =DORA :ZV Z 15 :U =LUIS :U E 10.6 :SAR =DORA :ZR Z 15 :U =EVA :U E 10.7 :L KZ 100 :L KZ 100 :SVZ =DORA :S Z 15 :UN =DORA :UN Z 15 := =GEMA := M 58.3

:SPA FB205 NOMB.:EJEM3

:U =JOSE :U E 10.4 :L =PACO :L EW20 :SVZ =TON1 :SV T 18 :U =TON1 :U T 18 := =INMA := M 100.7

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 121: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de carga y transferencia

Tabla 3-14 Operaciones de carga y transferencia con operandos formales

Como operandos actuales son válidos los operandos correspondientes a las operaciones básicas - a excepción de las marcas S. En el caso de 'LW=' se admiten datos en representación binaria (KM) o hexadecimal (KH), valores absolutos en notación de 2 bytes (KY), caracteres (KC), números en coma fija (KF), valor de tiempo (KT) y valor de contaje (KZ). En el caso de 'LD=' se admite como dato un número en coma flotante.

Operación

L =

LC =

LW =

LD =

T =

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operando

1

1

1

Descripción

Carga de un operando formal: El valor del operando indicado como operando formal se carga en el AKKU (clase de parámetro: E, T, Z, A, tipo de parámetro: BY, W, D).

Carga codificada de un operando formal: El valor del temponzador o contador indicado como operando formal se carga en código BCD en el AKKU (tipo de parámetro: T, Z).

Carga de la representación binana de un operando formal: La representación binaria del operando formal se carga en el AKKU (clase de parámetro: D; tipo de parámetro: KF, KH, KM, KY, KC, KT, KZJ.

Carga de de la representación binaria de un operando formal: La representación binaria del operando formal se carga en el AKKU (clase de parámetro: D; tipo de parámetro: KG).

Transferencia a un operando formal: El contenido del AKKU se transfiere al operando indicado como operando formal (clase de parámetro: E, A, tipo de parámetro: BY, W, D).

colocar el operando formal

Page 122: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Tabla 3-15 Operaciones de carga y transferencia con operandos especiales

A diferencia de las zonas BA, BB y BT, el usuario sólo puede utilizar de la zona BS las palabras BS 60 a BS 63 para fines propios. Observar al respecto el capítulo 8.3.4 "zona BSBT".

Operación

L

L

T

T

La zona BT puede ser utilizada en toda su longitud (BT O a BT 255), siempre y cuando no se utilicen módulos de funciones estándar.

Operaciones aritméticas

Operando

BA O a 255

BB O a 255

BS O a 255

BT O a 255

BA O a 255

BB O a 255

BS 60a63

BT O a 255

Tabla 3-16 Operación aritmética ENT

Función

Cargar una palabra de la zona "interfaz" (zona BA) en el AKKU 1

Cargar una palabra de la zona ampliada "interfaz" (zona BB) en el AKKU 1

Cargar una palabra de la zona "datos de sistema" (zona BS) en el AKKU 1

Cargar una palabra de la zona ampliada "datos de sistema" (zona BT) en el AKKU 1

Transferir el contenido del AKKU 1 a una palabra de la zona "interfaz" (zona BA)

Transferir el contenido del AKKU 1 a una palabra de la zona ampliada "interfaz" (zona BB)

Transferir el contenido del AKKU 1 a una palabra de la zona "datos de sistema" (zona BS)

Transferir el contenido del AKKU 1 a una palabra de la zona ampliada "datos de sistema" (zona BT)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

ENT

Operando

-

Función

Se ejecuta un stack-lift en los AKKUs 3 y 4:

<AKKu 4> := <AKKu 3>

<AKKu 3> := <AKKu 2>

<AKKu 2> := <AKKu 2>

<AKKu 1> := <AKKu 1>

Los AKKUs 1 y 2 no se modifican, el contenido anterior del AKKU 4 se pierde.

Page 123: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Ejemplo

A K K U 1 A K K U 2 A K K U 3 A K K U 4

O c u p a c i ó n p o r d e f e c t o d e l o s a c u m u l a d o r e s a n t e s d e l a a b c d c a d e n a d e o p e r . a r i t m é t i c a s

\

L KF + 3 0 3 O a c d -.

L KF +3 3 \ 3 0 c d . . ENT 3 \ 3 0 \ 3 0 c

?-

L KF +4 4 3 3 O c ,

x F 1 2 3 O c c , ,

+ F 4 2 c c c

L KF +6 6 \- 4 2 c c ,

: F 7 c c c

Tabla 3-17 Operaciones aritméticas complementarias

l) La programación dependerá del tipo de aparato de programación y de la versión del software de PG. ') Modificaciones del AKKU 2 y del AKKU 3: véase capítulo 3.5.1 "operaciones básicasloperaciones aritméticast1.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 124: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.5.4 Operaciones de organización

Introducción A las operaciones de organización también pertenecen las operaciones de sistema.

Cuidado Las operaciones de sistema solamente deben ser utilizadas con la mayor cautela posible y sólo por programadores experimentados y con profundos conocimientos del sistema.

¡Las operaciones de sistema están marcadas con en la primera columna de cada tabla!

Operaciones El destino de los saltos condicionales e incondicionales se indica de forma de salto simbólica (máximo 4 caracteres, comenzando por una letra). El parámetro

simbólico de la instrucción de salto es idéntico a la dirección simbólica de la instrucción a la que se salta. A la hora de programar hay que tener en cuenta, que la distancia absoluta de salto no abarque más de I 127 palabras y que una instrucción STEP 5 puede abarcar más de una palabra. Los saltos sólo deben ejecutarse dentro de un módulo; no está permitido saltar fuera de un "segmento" ("segmento" = elemento de estructuración de PB, SB, FB, FX y OB, véase el manual del aparato de programación).

Nota La instrucción y el destino del salto (dirección simbólica) tienen que encontrarse dentro de un mismo segmento. El nombre de una dirección simbólica solamente puede ser otorgado una vez por segmento. Excepción: esto no vale para el salto SPR, en el que se indica una distancia de salto absoluta.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 125: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Tabla 3-18 Operaciones de salto

Atención ¡En caso de utilización incorrecta de SPR se pueden producir estados no definidos en la instalación! Por ello, la operación SPR solamente debe ser utilizada por programadores experimentados y con buenos conocimientos del sistema.

Operación

SPA =

SPB =

SPZ =

SPN =

SPP =

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Salto en caso de resultado e '0': El salto solamente se ejecuta si ANZ 1 = O y ANZ O = 1. El resultado de la combinación no se modifica.

Salto en caso de desbordamiento (overílow): El salto se ejecuta cuando el indicador OV = 1. En caso de no haber desbordamiento (OV = O), no se ejecuta el salto. El resultado de la combinación no se modifica. Se produce un desbordamiento, si en una determinada representación numérica se supera el campo de valores admisible debido a una operación

Salto cuando el indicador OS (overílow memorizado) está activado: El salto se ejecuta si el indicador OS = 1. Si no hay desbordamiento (OS = O), no se ejecuta el salto. El resultado de la combinación no se modifica. Se produce un desbordamiento, si en una determinada representación numérica se supera el campo de valores admisible en el transcurso de

módulo de funciones (por ejemplo para pasar a otro segmento). La operación se ejecuta siempre, sin condiciones. Como operando hay que indicar la diferencia de direcciones "destino del salto - operación actual" (cantidad de palabras). Se ejecuta un salto a una

Operando

adr

(adr =dirección simbólica con un

máximo de 4 caracteres)

adr

(adr =dirección simbólica con un

máximo de 4 caracteres)

Función

Salto incondicional: El salto se ejecuta sin condiciones.

Salto condicional: El salto condicional se ejecuta si el VKE = 1. Si VKE = O no se ejecuta la instrucción y el resultado de la combinación se pone a VKE = 1.

Salto en caso de resultado 'O' : El salto solamente se ejecuta, si ANZ 1 = O y ANZ O = O. El resultado de la combinación no se modifica.

Salto en caso de resultado z '0': El salto solamente se ejecuta si ANZ 1 z ANZ O. El resultado de la combinación no se modifica.

Salto en caso de resultado > '0': E1 salto solamente se ejecuta si ANZ 1 = 1 y ANZ O = 0. El resultado de la combinación no se modifica.

Page 126: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de desplazamiento

Tabla 3-19 Operaciones de desplazamiento

En las funciones de desplazamiento solamente participa el AKKU 1 en la ejecución. La parte de parámetros de estas operaciones indica la cantidad de puestos que se desplaza o rota el contenido del AKKU. En el caso de SLW, SRW y SVW, solamente participa la palabra baja en la operación de desplazamiento, en el caso de SLD, SVD, RLD y RRD participa todo el contenido del AKKU 1 (32 bit).

Operación

SLW

SRW

SLD

SVW

SVD

RLD

RRD

Las funciones de desplazamiento se ejecutan sin condiciones.

El valor del último bit desplazado hacia afuera puede ser consultado por medio de ANZ l/ANZ O con operaciones de salto:

Operando

O a 1 5

Oa15

O a 32

Oa15

O a 32

O a 32

O a 32

Función (operación con AKKU 1)

Desplazar hacia la izquierda (las posiciones libres a la derecha se rellenan con ceros)

Desplazar hacia la derecha (las posiciones libres a la izquierda se rellenan con ceros)

Desplazar una palabra doble hacia la izquierda (ias posiciones libres a la derecha se rellenan con ceros)

Desplazar con signo hacia la derecha (ia posición libre a la izquierda se rellena con el bit 15)

Desplazar una palabra doble con signo hacia la derecha ( la posición libre a la izquierda se rellena con el bit 31)

Rotar hacia la izquierda

Rotar hacia la derecha

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Desplazar: último bit desplazado

o

1

ANZ 1

o

1

ANZ O

o

O

Operación de salto

SPZ=

SPN= SPP=

Page 127: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Ejemplos

Programa STEP 5: Contenido de las palabras de datos:

:L D W 5 2 KH = 14AF

:T D W 5 3 KH = 4AFO

2. La palabra doble de entrada ED O ha de ser leida, y el contenido del AKKU 1 ha de ser desplazado de manera que los bits en negrita de la palabra doble de entrada (desplazados en parte) no se modifiquen, y los demás sean ocupados por valores definidos (O H, o bien, OF H).

Programa STEP 5: Contenido del AKKU 1 (hexadecimal)

AKKU- 1 -H : AKKU- 1-L :

:L E D O :SLW 4 :SRW 4 :SLD 4 :SVW 4 FBCD :SVD 4 :RLD 4 :RRD 4

3. Aplicación: Multiplicación por potencia de 2, por ejemplo, valor nuevo = valor antiguo x 8

:L m 1 0

:T m 1 0 Atención: Ino sobrepasar el limite positivo del campo de valores!

4. Aplicación: División entre potencia de 2, por ejemplo, valor nuevo = valor antiguo : 4

:A D B 5 :L DW O :SRW 2 :T DW O

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 128: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Operaciones de conversión

Tabla 3-20 Operaciones de conversión

DEF

Operación

KEW

KZW

KZD

DEF

DUF

DED

DUD

FDG

GFD

DUF

Función

Generación del complemento de 1 del AKKU-1-L (16 bit)

Generación del complemento de 2 del AKKU-1-L (16 bit)

Generación del complemento de 2 del AKKU 1 (32 bit)

Conversión de coma fija (16 bit) de BCD a dual

Conversión de coma fija (16 bit) de dual a BCD

Conversión de palabra doble (32 bit) de BCD a dual

Conversión de palabra doble (32 bit) de dual a BCD

Conversión de un número en coma fija (32 bit) en un número en coma flotante (32 bit); véase OB 220: ampliación del signo

Conversión de un número en coma flotante en un número en coma fija (32 bit)

El valor que se encuentra en AKKU-1-L (bit O a bit 15) se interpreta como número en código BCD. Después de la conversión, en el AKKU-1-L se encuentra un número en coma fija de 16 bit.

El valor que se encuentra en AKKU-1-L (bit O a bit 15) se interpreta como número en coma fija de 16 bit. Después de la conversión, en el AKKU-1-L se encuentra un número en código BCD.

15 DUF DEF

S (signo): O = positivo 1 = negativo

S S S S

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

10 10 10 O

Page 129: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

DED

DUD

El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como número en código BCD. Después de la conversión, en el AKKU 1 se encuentra un número en coma fija de 32 bit.

El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como número en coma fija de 32 bit. Después de la conversión, en el AKKU 1 se encuentra un número en código BCD.

DUD k DED i o

S (signo): O = positivo 1 = negativo

FDG El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como número en coma fija de 32 bit. Después de la conversión, en el AKKU 1 se encuentra un número en coma flotante (exponente y mantisa).

GFD El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como número en coma flotante. Después de la conversión, en el AKKU 1 se encuentra un número en coma fija de 32 bit.

I FDG k GFD i

Exponente Mantisa

La conversión se efectúa multiplicando la mantisa (dual) con el valor del exponente (dual). Esto se realiza desplazando el valor de la mantisa, partiendo de una coma decimal imaginaria, en el valor del exponente (en base '2') hacia los bits de mayor posición. Al final de la multiplicación quedan restos de la mantisa original a la derecha de la coma decimal imaginaria. Estos bits son cortados, quedando un resultado de número entero.

De este algoritmo de conversión resultan las siguientes clases de resultados:

Los números en coma flotante z O ó S -1 dan el siguiente número entero menor.

Los números en coma flotante O y > -1 dan el valor 'O'.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 130: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Ejemplos de conversión Número en coma Número en coma fija

flotante de 32 bits GFD

Ejemplos de KEW, KZW

invertido bit por bit y depositado en la palabra de

Programa STEP 5: Ocupación de las palabras de datos:

KM = 0011111001011011

KM = 1100000110100100

.El contenido de la palabra de datos 207 ha de ser interpretado como número en coma fija y ha de ser depositado con el signo invertido en la palabra de

Programa STEP 5: Ocupación de las palabras de datos:

KF = +51

Decrementarl incrementar

Tabla 3-21 Operación de decremento/incremento

1) El contenido del byte bajo del AKKU-1-L decrementa o incrementa sin transporte en el valor del número indicado como operando. La operación se ejecuta sin condiciones.

Operación

D

1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operando

1 a 255

1 a 255

Función

Decrementar el byte bajo @its O a 7) del AKKU-1-L en el valor del operando ')

Incrementar el byte bajo (bits O a 7) del AKKU-1-L en el valor del operando ')

Page 131: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Ejemplo

rograma STEP 5: Ocupación de las palabras de datos:

:L DW 7 KH = 1010

:T DW 8 KH = 1 0 2 0

:T DW 9 KH = lOFF

Operaciones de procesamiento

Tabla 3-22 Operaciones de procesamiento

combina y ejecuta con el parámetro indicado en

la marca M direccionada.

instrucciones de

l) El valor que se encuentra en el dato de sistema o en el operando formal se interpreta como código de una operación STEP 5, la cual se ejecuta a continuación.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 132: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Nota Con B DW, B MW, BI o B BS solamente se pueden combinar las siguientes operaciones: - U.. , UN.. , O.. , ON.. , S.. , R.. , =.. con las zonas E, A, M, S, - FRT,RT,SAT,SET,SIT,SST,SVT, - FR Z, R Z, S Z, ZR Z, ZV Z, - L.., T.. con las zonas P, Q, E, A, M, S, D, BA, BB, BS, BT, - LT, L Z, - LCT, LCZ, - SPA=, SPB=, SPZ=, SPN=, SPP=, SPM=, SPO=, - SLW, SRW, - D, 1, SES, SEF, - A DB, SPA.. , SPB.., E DB, EX DX, AX DX, BAB FX, BA FX. ¡El aparato de programación no comprueba si las combinaciones son válidas!

Ejemplos de BDWJBMW operaciones de procesamiento Sustitución de operandos

Con las instrucciones "B DW" y "B MW" se puede acceder a datos de forma sustituida, por ejemplo, en un bucle del programa. El acceso sustituido se compone de la instrucción B DWB MW y la operación STEP 5 siguiente del conjunto de operaciones mencionado. "Sustituido" significa que el operando no viene dado de forma estática durante la programación, sino que se establece durante el procesamiento del programa STEP 5 en cuestión.

Durante la programación se selecciona el tipo de operando del conjunto de operaciones válido, p.ej. PB para la operación "SPA PB nn".

El valor del operando (nn en el ejemplo "SPA PB nn") debe ser cargado antes de un acceso sustituido con B DW/B MW en una palabra de datos o de marcas M (palabra de parámetro).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 133: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

:L KF +120 :T M W 1 4 Cargar MW 14 con el valor "KF +12OW :B M W 1 4 :L E B O

1 . antes de ejecutar la operación "L EB" se sustituye el valor de operando '0' por el valor '120'; ejecución: L EB 120

2.Palabra de datos como registro de indices: Los contenidos de las palabras de datos DW 20 a DW 100 deben ponerse a 'O'. El registro de indices para el parámetro de las palabras de datos es DW 1.

:L KF +20 Alimentación del registro de indices :T DW 1

M001 :L KF +O Rearme :B DW 1 :T DW O :L DW 1 Aumentar el registro de indices : L KF +1

:T DW 1 :L KF +lo0

:SPB =M001 Salto en caso que el indice se encuentre en la zon Otro programa STEP 5

3.Distribuidor de saltos para la técnica de subprogramas:

:B MW 5 :SPA =M001 Contenido de palabra de marcas MW 5: :SPA =M002 :SPA =M003

:SPA =M004 (máx. +127) :SPA =M005

M001 : .

M002 : . Ventaja: Todos los programas parciales se encuentran en un solo módulo.

M003 : .

Contenido de la palabra de marcas MW 10:

- PB 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 134: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Sustitución de operandos con operaciones binarias

Para las sustituciones de operandos con operaciones binarias se pueden utilizar los siguientes tipos de operandos: entradas, salidas, marcas M, marcas S, temporizadores y contadores. En esta sustitución, la estructura de la palabra de marcas M o de datos (palabra de parámetro) dependerá del tipo de operando utilizado.

Palabra de parámetro para entradas y salidas

Bit nQ

Palabra deparámetro para marcas M

Bit nQ

15 11

no significativos

Palabra deparámetro para marcas S

Bit nQ

10

dir. de bit de O a 7

15 11

no significativos

Palabra de parámetro para temporizadores y contadores

Bit nQ

8 7 6

O

10 8

dir. de bit de O a 7

15

O

O

dirección de byte de O a 127

7 O

dirección de byte de O a 255

étodo de sustitución con una operación binaria

14 12

dir. de bit d e O a 7

15 8

no significativos

Ins t rucc ión e j e c u t a d a

11 O

dirección de byte de O a 1023

7 O

número de temponzador o contador de O a 255

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 135: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del programa

Ejemplo de la operación BI

que efecttía una llamada. El módulo que efecttía la llamada deposita en la palabra de marcas MW 16 un número correlativo que indica cuAl de los códigos de operación debe ser

El resultado de la operación ejecutada se encuentra finalmente en AKKU 1 y se transfiere a la palabra de marcas MW 18.

NOMB. :TEST

BEZ : m 1 0 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH BEZ :m12 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH BEZ :m14 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH

:L M W 1 6 NQ correlativo del operando formal con el código de operación deseado Se e jecuta e l código de operación trans fer ido

:T M W 1 6 Resultado de AKKU 1

:L KF +1 :T M W 1 6

:SPA =AUFR

:SPA FB 1 LLamar FB TEST NOMB. :TEST

Código de operación "L EB 9OW, operando formal 1 Otro código de operación, operando formal 2

MW14 : KH yyyy Otro código de operación, operando formal 3

:T M W 1 8 AKKU 1 + MW 18

Lista de operandos actuales en el FB 2 Método de ejecución en el FB 1

(nQorrelativo del operando actual)

NQ correlativo del operando formal con código de operación

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 136: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Bloquear/desbloquear alarmas de proceso

Tabla 3-23 Bloquear/desbloquear alarmas de proceso

"Bloquear/desbloquear alarmas de proceso" puede ser utlizado para suprimir el procesamiento controlado por alarmas de proceso. En el programa parcial que se encuentra entre las instrucciones AS y AF, queda impedido el procesamiento de las alarmas. Obsérvese al respecto las funciones especiales OB 120 "bloquear alarmas conjuntamente", capítulo 6.5.

Operación

AS

AF

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operando Función

Bloquear procesamiento de alarmas de proceso

Desbloquear procesamiento de alarmas de proceso

Page 137: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

3.5.5 Operaciones semáforo

Introducción Si dos o más CPUs en modo multiprocesador (véase capítulo 10) de un autómata programable utilizan en común unas zonas globales determinadas de la memoria (periferia, CPs, IPs), se corre el riesgo de que las CPUs sobreescriban datos unas a otras, o que se lean valores intermedios que no son válidos. Por ello, es necesario coordinar el acceso de las CPUs a las zonas comunes de la memoria.

La coordinación de las CPUs es posible mediante semáforos, es decir, con las instrucciones SES y SEF:

Por ejemplo, se puede programar la siguiente coordinación de dos CPUs: solamente cuando se haya activado satisfactoriamente un semáforo acordado (SES), cada una de las CPUs que intervienen en el modo multiprocesador accederá a una zona común de la memoria. Un semáforo xx solamente puede ser activado por una sola CPU. Si la CPU no consigue activar el semáforo, tampoco podrá acceder a la zona de memoria. De la misma manera, la CPU no podrá acceder nuevamente a la memoria tras haber habilitado el semáforo (SEF).

SESISEF (no son operaciones de sistema) activar/habilitar semáforo

Tabla 3-24 Activar/habilitar semáforo

Nota Las operaciones SES xx y SEF xx tienen que ser programadas en todas las CPUs que deban acceder sincronizadamente a una zona común de la memoria global.

Operación

SES

SEF

Los módulos FB estándar, los módulos de comunicación y los módulos para la comunicación en multiprocesamiento gestionan internamente la coordinación. Para utilizar estos módulos no es necesario programar las funciones SES xx y SEF xx.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operando

O a 31

O a 31

Función

Activar un semáforo

Habilitar un semáforo

Evaluación de los resultados de operación mediante ANZ OIANZ 1

Page 138: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Actuación de La operación SES xx (activar semáforo) ocupa para la CPU que ejecuta las SESISEF operaciones un determinado byte en el coordinador (a condición de que no esté

ya ocupado por otra CPU).

Mientras que la CPU esté registrada allí, las demás CPUs no podrán acceder a la zona de memoria protegida por el semáforo (número O a 31). Con ello, la zona queda bloqueada para todas las demás CPUs.

Para que esta coordinación funcione correctamente, todas las CPUs que tengan que acceder a la misma zona de memoria global tienen que utilizar el mismo semáforo.

La operación SEF xx (habilitar semáforo) rearma el byte del coordinador. Con ello, la zona protegida de la memoria puede volver a ser utilizada por las otras CPUs para activar semáforos. El semáforo solamente puede ser habilitado por la CPU que lo ha activado.

Aplicación de La figura 3-8 muestra el desarrollo esquemático de accesos coordinados por un SESISEF semáforo.

START

Activar semáforo SES

Acceso a l a memoria global protegida por semáforo

Habil itar semáforo:

1

F in

Fig. 3-8 Coordinación del acceso a la memoria global

Antes de activar o habilitar un semáforo determinado, las instrucciones SES y SEF consultan el estado (= status) de este semáforo. En este caso, los indicadores ANZ O y ANZ 1 se modifican de la manera siguiente:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 139: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

El semáforo ha sido activado por otra CPU y no puede ser activadohabilitado.

Nota El proceso de consulta de un semáforo determinado (= proceso de lectura) y el proceso de activación o habilitación de un semáforo (= proceso de escritura) constituyen una unidad. ¡Ninguna de las otras CPUs podrá acceder durante estos procesos a este semáforo!

En cuanto a la aplicación de los semáforos, obsérvense los puntos siguientes:

Un semáforo es una dimensión global, es decir, el semáforo número 16 figurará una sola vez en el sistema aunque se empleen, por ejemplo, tres CPUs.

Las instrucciones SES y SEF tienen que ser utilizadas por todas las CPUs cuyo acceso a una zona común de la memoria deba efectuarse de manera coordinada.

Todas las CPUs que intervengan, deben utilizar el mismo modo de arranque. Cuando se efectúa un NUEVO ARRANQUE se borran todos los semáforos. Sin embargo, no se pierden en caso de efectuar un rearranque manual o automático.

El ARRANQUE en modo multiprocesador tiene que realizarse de manera sincronizada. Por este motivo no está permitido el modo "test" (prueba).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 140: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

Ejemplo de aplicación de semáforos

En un autómata programable S5-135U se han integrado cuatro CPUs que, a través de una zona de memoria comtín de la periferia Q (QW 6), transmiten avisos de estados a un aparato de avisos de estado. Cada aviso de estado debe ser transmitido durante 10 segundos y, sólo entonces, podrá ser sobreescrito por un nuevo aviso de la misma o de otra CPU. La utilización de la palabra de periferia QW 6 (periferia ampliada, no imagen de proceso) es controlada por un semáforo. S610 podrá escribir su aviso en la QW 6 aquella CPU que haya podido ocupar para si esta zona activando con éxito el semáforo asignado. El semáforo queda activado por un tiempo de 10 segundos respectivamente (TIMER T10). S610 cuando haya transcurrido este tiempo, la CPU habilita el semáforo y, con ello, la zona ocupada, dejándola libre para otras CPUs. La QW 6 puede ser sobreescrita con un nuevo aviso. Si una CPU intenta activar el semáforo, y éste ha sido ocupado previamente por otra CPU, en el próximo ciclo la CPU volverá a intentar activar el semáforo y transmitir su mensaje.

Realización:

El siguiente programa se puede ejecutar en las cuatro CPUs - con un aviso distinto respectivamente. Se cargan los siguientes módulos:

PROGRAMA EMITIR AVISO

REARMAR SEMAFORO

Se utilizan 5 marcas:

M 10.0 = 1: Aviso solicitado o en procesamiento.

M 10.1 = 1: Semáforo activado con éxito.

M 10.2 = 1: El temporizador ha arrancado.

M 10.3 = 1: El aviso ha sido transmitido.

M 10.4 = 1: El semáforo ha sido rearmado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 141: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

NOMB. :MAIN

:U M 10.0 :SPB =M001 Si no hay aviso activo

:UN E 0.0

:L KH 2222 generar aviso y :T MW 12 :UN M 10.0 :S M 10.0 activar marca "AVISO".

M001 :SPA FBlO Llamar FB "AVISA" NOMB. :AVISA

NOMB. :AVISA

:UN M 10.1 Si no hay semáforo activado, :SPB FB 100 llamar al FB "activar semáforo (SEMACT)".

NOMB.:SEMACT

:U M 10.1 Si hay semáforo activado :UN M 10.2 y el temporizador no ha arrancado, :S M 10.2 :L KT010.2 arrancar temporizador. :SV T 10

:U M 10.2 Si el temporizador arranca :UN M 10.3 y no se transfiere aviso, :SPB FB 110 llamar FB "emitir aviso (SALAVISO)".

NOMB.:SALAVISO

:U M 10.2 Si el temporizador ha arrancado, :UN M 10.4 el semáforo no está rearmado :UN T 10 y el temporizador ha transcurrido, : SPB FB 101 llamar FB "reamar semáforo (SEMREARM)".

NOMB . : SEMREARM :UN M 10.4 Si el semáforo está rearmado,

:L KHOOOO :T MBlO rearmar todas las marcas.

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 142: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Procesamiento del Droarama

NOMB . : SEMACT Activar el semáforo nQ 10

:SPZ =M001 :UN M 10.1 Si el semáforo ha sido activado con éxito, :S M 10.1 activar marca "SEMAFORO ACTIVADO (SEMACT)"

NOMB. : SALAVISO

:L MW12 Transmitir el aviso a la periferia

:UN M 10.3 :S M 10.3 Activar marca "TRANSMITIR AVISO (SALAVISO)"

NOMB . : SEMREARM Habilitar semáforo nQ 10

:SPZ =M001 :UN M 10.4 :S M 10.4 Activar marca "SEMAFORO REARMADO (SEMREARM)"

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 143: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados operativos y niveles de procesamiento

Resumen breve Este capítulo da una visión de conjunto de los distintos estados operativos y niveles de procesamiento de la CPU 928B-3UB21. Además contiene informaciones detalladas acerca de los distintos modos de arranque y los consiguientes módulos de organización, en los que se puede programar un programa específico para los distintos modos de arranque.

También expone las diferencias entre los niveles de procesamiento: "procesamiento cíclico", "procesamiento controlado por tiempo" y "procesamiento controlado por alarma", así como los módulos disponibles para el programa de usuario.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

4.1

4.2

4.3

4.3.1

4.3.2

4.4

4.4.1

4.4.2

4.4.3

4.4.4

4.4.5

4.5

4.5.1

4.5.2

4.5.3

4.5.4

4.5.5

Tema

Introducción y resumen sinóptico

Niveles de procesamiento del programa

Estado operativo STOP

Caractedsticas e indicadores del estado operativo

Solicitar y ejecutar un BORRADO TOTAL

Estado operativo ARRANQUE

NUEVO ARRANQUE MANUAL Y AUTOMATICO

REARRANQUE MANUAL Y AUTOMATICO

Comparativa de los modos de arranque

Interfaces con el usuario para el arranque

Interrupciones en el ARRANQUE

Estado operativo RUN

Procesamiento cíclico del programa

Procesamiento controlado por tiempo

Alarma de regulador: procesamiento de reguladores

Alarma de proceso: procesamiento controlado por alarmas

Procesamiento anidado de programas controlados por alarma o por tiempo

Página

4-2

4-5

4-11

4-11

4-13

4-15

4-16

4-16

4-18

4-19

4-22

4-24

4-26

4-28

4-35

4-36

4-39

Page 144: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados operativos y niveles de procesamiento

4.1 Introducción y resumen sinóptico

Introducción La CPU 928B dispone de tres estados operativos:

Estado operativo STOP

Estado operativo ARRANQUE

Estado operativo RUN

En los estados operativos ARRANQUE y RUN pueden tener lugar determinados sucesos ante los que tiene que reaccionar el programa de sistema. En muchos casos se llama entonces a un módulo de organización (OB 1 a OB 35) previsto para el suceso en cuestión, el cual servirá de interfaz con el usuario.

Los estados operativos se indican mediante LEDs (diodos luminosos) situados en la placa frontal de la CPU. Algunos estados operativos se activan por accionamiento. Para ello el operario dispone, entre otras posibilidades, de los elementos de mando situados en la placa frontal de la CPU. En la figura 4-1 puede observarse la posición de los LEDs y de los elementos de mando.

LEDs indicadores de error (rojos)

Emplazamiento para Memory Card

LED (verde)

Selector de modo RUNISTOP

LED (rojo)

Selector de modo RESETIOVERALL RESET

LED indicador de error de interfaz (rojo) lnterfaz 1

.lnterfaz para PG, 15 polos Interfaz SI 1

LED indicador de error de interfaz (rojo) lnterfaz 2

N" de referencia y versión

Emplazamiento para módulo de interiaces Interfaz S1 2

Palanca de desencastre Tornillo de cierre

Fig. 4-1 Placa frontal de CPU 928B con indicadores y elementos de mando

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 145: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Indicación de los Los LEDs situados en la placa frontal indican el estado operativo actual de la estados operativos CPU. La tabla que figura a continuación muestra cómo están relacionados los mediante diodos LEDs STOP y RUN con el estado operativo correspondiente. luminosos (LEDs) A estos indicadores se les añaden otros LEDs complementarios (BASP, ADF,

QVZ, ZYK).

Tabla 4-1 Significado de los LEDs "RUN" y "STOP"

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

LED "RUN"

encendido

apagado

apagado

apagado

apagado

encendido

LED "STOP"

apagado

encendido

apagado

intermiten- cia lenta

intermiten- cia rápida

encendido

Estado operativo

La CPU se encuentra en estado operativo RUN.

La CPU se encuentra en estado operativo STOP. El LED STOP luce permanentemente tras una orden de parada del selector o de la función de PG, puesto que el paso al estado operativo STOP ha sido causado por el usuario o por otra CPU en modo multiprocesador, y no por la propia CPU.

La CPU se encuentra en estado operativo ARRANQUE, o

la CPU está en ARRANQUEBUN, el control de procesamiento está activado y se ha alcanzado un punto de parada,

o la CPU está en ARRANQUEBUN, el control de procesamiento está activado y se ha eliminado un punto de parada antes de haberlo alcanzado (estado de espera).

La CPU se encuentra en estado operativo STOP. La CPU ha causado el cambio a STOP (y eventualmente de las otras CPUs). Las causas posibles son por ej.: ADF, QVZ, LZF, BCF, error de regulador, colisión de alarmas temporizadas, error de ciclo, desbordamiento de la pila de módulos (BSTACK), orden de parada.

Accionando el selector STOP-RUN a STOP, el LED deja de parpadear y luce permanentemente.

La CPU se encuentra en estado operativo STOP. Se ha solicitado un BORRADO TOTAL. Esta petición puede provenir de la CPU misma o ser debida a accionamiento externo.

Error de sistema grave Tratamiento: - efectuar un borrado total de la CPU; si sigue habiendo errores: - desconectar y volver a conectar la tensión del autómata programable y efectuar un borrado total; si sigue habiendo errores: - desconectar la tensión del autómata programable, desenchufar y volver a enchufar la CPU y efectuar un borrado total; si sigue habiendo errores: - sustituir la CPU o repararla.

Page 146: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

LEDs de aviso y de error

LED "BASP"

Indica si la señal BASP del bus S5 (bloqueo de salidas) está activada:

En modo monoprocesador, la CPU apaga el LED BASP cuando se pone en RUN y lo enciende cuando pasa a STOP. La señal BASP se activa en el ARRANQUE y en STOP, así como en el primer ciclo tras el REARRANQUE.

En modo multiprocesador el LED BASP se comporta del mismo modo que en modo monoprocesador, siempre que el selector del coordenador se encuentre en posición RUN. (En cuanto al modo de operación "test" consúltese el manual de sistema, bibliografía 124.

Nota Cuando la señal BASP está activada se bloquean todas las salidas digitales.

Si antes de pasar al estado operativo RUN se ha efectuado un REARRANQUE AUTOMATICO o MANUAL, el LED BASP se apaga sólo cuando se haya procesado el resto del ciclo hasta el final.

LED l1 QVZ l1

Retardo en acuse de recibo de una tarjeta de E/S.

LED llADF1l

Error de direccionamiento; el programa de usuario ha llamado a una dirección de la imagen de proceso, en la cual no se encuentra enchufada ninguna tarjeta de E/S.

LED "ZYK"

Error de ciclo; exceso del tiempo de supervisión de ciclo.

Los errores ADF y QVZ pueden tener lugar en el ARRANQUE y en RUN; el error de ciclo ZYK solamente en RUN.

Al final de un nivel de tratamiento de errores ADF, QVZ o ZYK, el programa de sistema borra los LEDs de error si es que no se ha pasado al estado STOP.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 147: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.2 Niveles de procesamiento del programa

Introducción La figura 4-2 muestra esquemáticamente los niveles de procesamiento y estados operativos de la CPU 928B (-3UB21). Las abreviaturas correspondientes a los niveles de error se describen en la página siguiente.

E n m o d o m u l t i - p rocesador : p u n t o d e espera

I D STOP: encendido LED STOP: apagado

Estado Estado operat ivo Estado operat ivo operat ivo C ARRANQUE .-----------------------. STOP ,

N U E V O AMAN- / WECK-FE Q U E MANUAL/ i N . A. CON / BCF STP M E M O R I A / / LZF ZYK REARRANQUE / ADF BAU : -, N U E V O ARRAN- / QVZ

STUEU Q U E AUTOMAT.11 SSF STUEB N . A. CON /

MEMORIA/ / REARRANQUE 1

SSF L ....................... 1

STP NAU PEU

4 BAU

X7 DOPP NAU STUEU

STUEB

ABORTO ( 0 8 28) (se lec to r RUN-STOP, PG-STP O MP-STP)

DESCONEXION NAU

Fig. 4-2 Estados operativos y niveles de procesamiento

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 148: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados operativos y niveles de procesamiento

Niveles de procesamiento del programa en el ARRANQUE:

NUEVO ARRANQUE MANUAL REARRANQUE MANUAL NUEVO ARRANQUE MANUAL CON MEMORIA 1 Niveles de NUEVO ARRANQUE AUTOMATICO CON MEMORIA arranque NUEVO ARRANQUE AUTOMATICO REARRANQUE AUTOMATICO

BCF (Error en código de instrucción) LZF (Error en tiempo de ejecución) Niveles de ADF (Error de direccionamiento) error Qvz (Retardo en acuse de recibo) SSF (Error de interfaz)

Niveles de procesamiento del programa en RUN:

CICLO PETICION DE TIEMPO ALARMA TEMP. 5 s ALARMA TEMP. 2 s ALARMA TEMP. 1 s ALARMA TEMP. 500 ms ALARMA TEMP. 200 ms ALARMA TEMP. 100 ms ALARMA TEMP. 50 ms ALARMA TEMP. 20 ms ALARMA TEMP. 10 ms ALARMA DE REGULADOR ALARMA DE RETARDO ALARMA DE PROCESO

WECK-FE REG-FE ZYK BCF LZF ADF QVZ SSF ABBR

-

(Procesamiento cíclico del programa) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento de reguladores controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por alarma) -

(Colisión de alarmas temporizadas) (Error de regulador) (Error de ciclo) (Error en código de instrucción) (Error en tiempo de ejecución) (Error de direccionamiento) (Retardo en acuse de recibo) (Error de interfaz) (Aborto)

Niveles de error

Niveles básicos

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 149: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Características Un nivel de procesamiento tiene determinadas características, las cuales están de un nivel de descritas en las páginas siguientes. procesamiento

Anidamiento de otros niveles

Cuando tiene lugar un suceso que requiere un procesamiento prioritario, el programa de sistema interrumpe el nivel actual y anida (intercala) a continuación el nivel de prioridad superior.

El anidamiento tiene lugar

- en caso de niveles de tratamiento de errores y de programas en el ARRANQUE: en límites de instrucciones,

- en otros niveles: en límites de módulos o de instrucciones (según el ajuste del DX O - véase capítulo 7)

Programa de sistema específico

A cada nivel de procesamiento le corresponde un programa de sistema específico.

ctualiza la imagen de proceso de las entradas y salidas, ispara (trigger) el tiempo de supervisión de ciclo y lama a la administración de la interfaz del PG (punto de ontrol del sistema).

USTACK (pila de interrupciones)

Cuando el programa de sistema llama a un módulo de organización, la CPU ejecuta las instrucciones STEP 5 que contiene el módulo. En la pila USTACK se almacena previamente el lote de registros y se crea un nuevo lote de registros (registros: AKKU 1 a 4, puntero de la pila de módulos, registro de direcciones de módulos, dirección inicial del módulo de datos, longitud del módulo de datos, contador de direcciones STEP 5 y el registro base de direcciones). Si con motivo del suceso ha sido interrumpido el procesamiento "normal" del programa, una vez que se ha procesado el OB - incluida la totalidad de módulos anidados - la CPU reemprende el procesamiento del programa a partir del lugar en que fue interrumpido, a menos que se haya programado un stop dentro del OB.

USTACK = R e o r e s e n t o c l ó n de l o s

Fig. 4-3 Principio del cambio de niveles y de la pila USTACK

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 150: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Prioridad Los niveles de procesamiento del programa tienen una prioridad fija. Dependiendo de su prioridad pueden interrumpirse unos a otros o anidarse (intercalarse) unos en otros.

Los "niveles de arranque y de error" se diferencian de los "niveles básicos" por el hecho de que siempre se anidan en el siguiente límite de una instrucción en cuanto tiene lugar el correspondiente suceso. Se pueden anidar tanto en los niveles básicos como en otro nivel de arranque o de error. En casos de error siempre tendrá mayor prioridad el último error ocurrido.

Por el contrario, un "nivel básico" sólo puede ser anidado en el siguiente nivel de prioridad inferior en límites de instrucciones, a no ser que se modifique este ajuste parametrizando el DX O (véase capítulo 7).

Prioridad de los "niveles básicos":

CICLO PETICION DE TIEMPO ALARMA TEMP. 5 s ALARMA TEMP. 2 s

prioridad creciente

ALARMA DE REGULADOR ALARMA DE RETARDO ALARMA DE PROCESO

urante el procesamiento de una alarma temporizada parece una alarma de proceso. Ya que la alarma de roceso tiene una prioridad mayor, se interrumpe el rocesamiento del nivel de alarma temporizada en el róximo límite de módulo y se anida el nivel de rocesamiento ALARMA DE PROCESO. i por ej. durante el procesamiento de la alarma de roceso, el programa de sistema detecta un ireccionamniento falso, la alarma de proceso se nterrumpe inmediatamente en el próximo límite de nstrucción para anidar el nivel ADF.

Reacción en Un nivel de error activado (ADF, BCF, LZF, QVZ, REG, ZYK) que no haya caso de error sido procesado por completo no puede ser activado nuevamente ni aunque se doble haya anidado otro nivel de procesamiento del programa. En este caso la CPU se

pone directamente en STOP debido a una doble llamada a un nivel de procesamiento (en la pila de interrupciones USTACK: DOPP). (Excepción: véase bajo colisión de alarmas temporizadas). En la pila USTACK de profundidad '01' aparece marcada con una cruz la identificación DOPP así como el nivel de error que ha sido llamado doblemente.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 151: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Ejemplos de errores dobles

Error de direcciona- miento en e l PB 30 conduce a STOP

Error de direcciona- miento en e l FB 5: llamada OB 251 nivel ADF

Fig. 4-4 Cambio de nivel en caso de error doble

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 152: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

E n caso d e error d e sus t i t uc ibn

E n caso d e error d e parametr izacion

Error d e parametr izacion e n FB 3 l l amada OB 301 n ive l BCF

Descripción de Los distintos niveles de procesamiento con las correspondientes interfaces de los distintos usuario se describen más extensamente en los capítulos siguientes: niveles

Capítulo 4.4 describe los niveles de procesamiento del programa en el ARRANQUE.

Capítulo 4.5 describe los niveles de procesamiento del programa en RUN.

Capítulos 5.5 y 5.6 describe los niveles de tratamiento de errores en el ARRANQUE y en RUN.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 153: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.3 Estado operativo STOP

4.3.1 Características e indicadores del estado operativo

Características El estado operativo STOP se caracteriza por lo siguiente:

Programa de usuario

No se procesa ningún programa de usuario.

Conservación de datos

Si anteriormente se ha procesado un programa, se mantienen los valores de los contadores, temporizadores, marcas e imágenes de proceso al pasar al estado STOP.

Señal BASP

La señal BASP (bloqueo de salidas) se encuentra activada. Con ello están bloqueadas todas las salidas digitales.

Excepción: En el modo "test" en modo multiprocesador no se activa el BASP - consúltese al respecto el manual de sistema (bibliografía 120.

USTACK

Si se ha procesado un programa con anterioridad, al pasar al estado STOP, en la pila de interrupciones (USTACK) se halla registrado un bloque de información por cada nivel de procesamiento que haya sido interrumpido, indicando las causas de interrupción (véase capítulo 5.4).

Indicador El estado operativo STOP se indica en la placa frontal de la CPU mediante un diodo luminoso (LED).

LED RUN apagado LED STOP encendido (luz permanente o intermitente) LED BASP encendido (menos en modo de test)

El LED STOP indica las causas posibles del estado STOP momentáneo. El significado de la luz permanente o intermitente del LED STOP se describe a continuación.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 154: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

El LED STOP luce Se ha activado el estado STOP: permanentemente

en modo monoprocesador:

- por accionar el selector de RUN a STOP,

- con la función de PG AG-STOP,

- a causa de errores de aparatos (BAU, PEU),

- tras un BORRADO TOTAL,

- con la función de PG "Control elaboración OFF".

en modo multiprocesador:

- por accionar el selector del KOR a STOP,

- a causa de un STOP de otra CPU, debido a un fallo (las CPUs que no han causado el error lucen permanentemente).

El LED STOP El parpadeo lento del LED STOP indica los casos expuestos más abajo. En modo parpadea multiprocesador el parpadeo lento indica la CPU que ha causado el stop (debido lentamente a un error). (aprox. 0,5 Hz)

El LED STOP parpadea lentamente

- tras una instrucción de parada en el programa de usuario,

- en caso de manipulación incorrecta (error de DB 1, elección de un modo de arranque no admisible etc.),

- en caso de errores de programación o de aparatos (llamada a un módulo no cargado, error de direccionamiento, retardo en acuse de recibo, error en código de instrucción etc.); como información adicional sobre la causa de error también se encienden los siguientes indicadores:

LED "ADF" LED "QVZ" LED "ZYK"

- debido a la función de PG "Control elaboración OFF" en esta CPU.

El LED STOP El LED STOP indica una advertencia si parapadea rápidamente: jejecutar un parpadea "BORRADO TOTALu! rápidamente (aprox. 2 Hz)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 155: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.3.2 Solicitar y ejecutar un BORRADO TOTAL

Petición por La CPU ejecuta una rutina de inicialización después de cada conexión a la parte del tensión de red y tras ejecutar el borrado total. Si durante la inicialización se programa de detectan errores que impiden el arranque del sistema, la CPU pasa al estado sistema STOP con intermitencia rápida del LED STOP.

Errores posibles: Los datos de la RAM no son correctos. Solución: efectuar un borrado total de la CPU

El contenido de la Memory Card no es correcto Solución: insertar una Memory Card programada correctamente y borrar totalmente la CPU.

Hay que eliminar la causa del error y efectuar después (nuevamente) un BORRADO TOTAL de la CPU. Un BORRADO TOTAL también se solicita cuando se produce un error de CPU o de sistema. Estos errores se detectan porque después de un BORRADO TOTAL vuelve a aparecer el mismo error. En este caso, comuníquelo a la delegación Siemens más cercana.

Solicitud por Para solicitar un BORRADO TOTAL se deben efectuar las siguientes parte del usuario operaciones:

1. Activar el selector de RUN a STOP.

Resultado: la CPU se encuentra en estado STOP. El LED STOP luce permanentemente.

2. Mantener el selector en posición OVERALL RESET; accionar simultáneamente el selector de STOP a RUN y nuevamente a STOP.

Resultado: se ha solicitado el BORRADO TOTAL. El LED STOP parpadea rápidamente.

Nota Si ya no se desea ejecutar el BORRADO TOTAL solicitado, hay que efectuar un NUEVO ARRANQUE o un REARRANQUE MANUAL.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 156: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Ejecutar un BORRADO TOTAL

Suma de verificación

Independientemente de que el borrado total haya sido solicitado por el programa de sistema o por el usuario, el BORRADO TOTAL se ejecuta de la manera siguiente:

Mantener el selector en la posición OVERALL RESET; accionar simultáneamente el selector de STOP a RUN y nuevamente a STOP.

Resultado: se ejecuta el BORRADO TOTAL. El LED STOP luce permanentemente.

Por medio de la función de PG: BORRADO TOTAL. (j Con el PG se puede prescindir de la petición manual de borrado por accionamiento de los selectores! Las posiciones del selector RUN-STOP y del selector RESET-OVERALL RESET carecen de importancia en este caso).

Resultado: se ejecuta el BORRADO TOTAL. EL LED STOP luce permanentemente.

Al efectuarse un borrado total, el programa de sistema crea una suma de verificación que se compara con los datos contenidos en la EEPROM. Si no coincide con éstos, significa que se ha presentado un error grave del sistema (V. pág. 4-3).

Nota jDespués de ejecutar el BORRADO TOTAL solamente se puede realizar un NUEVO ARRANQUE!

Cargar módulos Si durante el BORRADO TOTAL está insertada una Memory Card, todos los de la Memory módulos de código y de datos existentes allí se cargarán en la memoria de Card usuario de la CPU. La CPU se encuentra luego en "modo EPROM", por lo que

los módulos de código no se pueden volver a cargar, modificar ni borrar. En cambio, los módulos de datos sí se pueden recargar, modificar y borrar en la DB-RAM (v. capítulo 3-3).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 157: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.4 Estado operativo ARRANQUE

Características El estado operativo ARRANQUE se caracteriza por lo siguiente:

Paso de STOP a RUN

El ARRANQUE es el paso del estado operativo STOP al estado RUN.

Modos de arranque

La CPU 928B dispone de los siguientes modos de arranque:

- NUEVO ARRANQUE (manual o automático),

- REARRANQUE (manual o automático),

- NUEVO ARRANQUE CON MEMORIA (NSMG, manual o automático).

Después de un NUEVO ARRANQUE se ejecuta el programa de usuario cíclico desde el principio. Después de un REARRANQUE continúa el procesamiento cíclico del programa de usuario a partir del punto de interrupción.

Módulos de organización

Se llama a los siguientes módulos de organización:

En caso de NUEVO ARRANQUE MANUAL o AUTOMATICO: OB 20 En caso de REARRANQUE (o NUEVO ARRANQUE CON MEMORIA) MANUAL: OB 21 En caso de REARRANQUE (o NUEVO ARRANQUE CON MEMORIA) AUTOMATICO: OB 22

La longitud de estos módulos de organización no está limitada; no se supervisa su tiempo de ejecución. En los módulos de organización de arranque se pueden llamar a otros módulos.

Tratamiento de datos

El tratamiento de los valores de los contadores, temporizadores, marcas e imágenes de proceso varía según el modo de arranque.

Señal BASP

La señal BASP (bloqueo de salidas) está activada. De este modo, quedan bloqueadas todas las salidas digitales. Excepción: jen el modo test, no se activa la señal BASP! (En cuanto al modo test, consúltese el manual del sistema, v. bibliografía 124.

LEDs en la placa frontal de la CPU

LED RUN apagado LED STOP apagado LED BASP encendido (menos en modo de test)

Comportamiento del arranque en modo multiprocesador

En el capítulo 10.1.7 encontrará más observaciones referentes al "Comportamiento del arranque en modo multiprocesador".

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 158: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.4.1 NUEVO ARRANQUE MANUAL Y AUTOMATICO

¿Cuándo se Un NUEVO ARRANQUE puede ejecutarse siempre, a menos que el programa puede ejecutar de sistema haya solicitado un BORRADO TOTAL. un NUEVO ARRANQUE?

NUEVO ARRANQUE MANUAL

Para ejecutar un NUEVO ARRANQUE MANUAL:

Mantener el selector en la posición RESET; accionar simultáneamente el se- lector de STOP a RUN.

Activar la función del aparato de programación "Forzado AG/AG-START (NUEVO ARRANQUE).

NUEVO Para ejecutar un NUEVO ARRANQUE AUTOMATICO: ARRANQUE AUTOMATICO Después de un fallo de la tensión de redDESCONEXION durante el

ARRANQUE o en RUN seguido de un restablecimiento de la tensión de red/CONEXION, la CPU efectúa una rutina de inicialización e intenta ejecutar automáticamente un NUEVO ARRANQUE, siempre que el DX O esté parametrizado adecuadamente (véase capítulo 7).

Requisitos:

Los selectores de todas las CPUs y del coordinador siguen en la posición RUN.

Durante la inicialización no han aparecido errores.

La CPU no se encontraba en STOP antes del fallo de la tensión de red/ DESCONEXION.

Si tiene lugar un fallo de la tensión de red en un aparato de ampliación (señal PEU), la CPU pasa a STOP y permanece parada hasta que se desactiva la señal PEU. Después intenta ejecutar un NUEVO ARRANQUE AUTOMATICO o un REARRANQUE AUTOMATICO.

4.4.2 REARRANQUE MANUAL Y AUTOMATICO

¿Cuándo no se Un REARRANQUE no debe ejecutarse, debe ejecutar un REARRANQUE? cuando el programa de sistema solicita un BORRADO TOTAL

después de uno de los siguientes acontecimientos:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 159: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

- llamada doble a un nivel de procesamiento del programa (USTACK: DOPP),

- BORRADO TOTAL (bits de control: URGELOE),

- aborto del arranque (bits de control: ANL-ABB),

- STOP tras activar la función del aparato de programación "Control de ela- boración OFF",

- comprimir durante STOP,

- desbordamiento de pila (stack),

- modificación del programa de usuario en STOP.

REARRANQUE Para ejecutar un REARRANQUE MANUAL: MANUAL

Accionar el selector RUN-STOP de STOP a RUN (el selector RESETJOVERALL RESET encontrándose en la posición intermedia).

Activar la función del aparato de programación "Forzado AG/AG-START" (REARRANQUE).

REARRANQUE Para ejecutar un REARRANQUE AUTOMATICO: AUTOMATICO

Después de un fallo de la tensión de redDESCONEXION durante el ARRANQUE o en RUN seguido de un restablecimiento de la tensión de red/CONEXION, la CPU efectúa una rutina de inicialización e intenta ejecutar automáticamente un REARRANQUE, siempre que el DX O esté parametrizado adecuadamente (véase capítulo 7) o no exista.

Requisitos:

Los selectores de todas las CPUs y del coordinador siguen en la posición RUN.

Durante la inicialización no han aparecido errores.

La CPU no se encontraba en STOP antes del fallo de la tensión de red/ DESCONEXION.

Si tiene lugar un fallo de la tensión de red en un aparato de ampliación (señal PEU), la CPU pasa a STOP y permanece parada hasta que se desactiva la señal PEU. Después intenta ejecutar un REARRANQUE AUTOMATICO o un NUEVO ARRANQUE AUTOMATICO.

NUEVO Si en el módulo de datos DX O se ha registrado el parámetro "nuevo arranque ARRANQUE CON con memoria", el programa de sistema ejecutará el NUEVO ARRANQUE CON MEMORIA MEMORIA en lugar del REARRANQUE. A continuación explicaremos la

diferencia entre el NUEVO ARRANQUE CON MEMORIA y el NUEVO ARRANQUE "normal".

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 160: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.4.3 Comparativa de los modos de arranque

Tabla 4-2 Comparativa de los modos de arranque

l) El DB O solamente se inicializa tras un BORRADO TOTAL.

Operaciones del programa de sistema

Evaluar: - DB 1 - DB2 - DXO - DX2

Inicializar: - DBO - 9"ista - bloquearlretardar

alarmas - estadística de ciclo

Borrar: - Petición de tiempo - Alarma de retardo - USTACWBSTACK - imagen de proceso

de las entradas - imagen de proceso de

salidaslpenferia dig. - Periferia analógica - Marcas de

acoplamiento - Semáforos - Marcas M y S - Temp. y contadores

Procesamiento del ciclo restante si la señal BASP está activada

Modo de arranque detectado por el OB 223

Visualización del modo de arranque en el PG en los bits de control de USTACK

Interfaz con el usuario

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

NUEVO ARRANQUE

manual

sí sí sí sí

no '1 sí sí

sí sí sí sí

(completo) sí

(completo) sí sí

sí sí sí

no

NUEVO ARRANQUE

NEUSTA

OB 20

automát.

sí sí sí sí

no '1 sí sí

sí sí sí sí

(completo) sí

(completo) sí sí

sí sí sí

no

NUEVO ARRANQUE

NEUSTAt AWA

OB 20

REARRANQUE

manual

no no no no

no '1 no no

no

no sí no no

no

no no

no no no

REARR. MANUAL

MWA

OB 21

NUEVO ARRANQUE

automát.

no no no no

no '1 no no

no

no sí no no

no

no no

no no no

REARR. AUT.

AWA

OB 22

CON

manual

no no no no

no '1 no sí

no

no sí sí no

sí (según 9"ista)

no no

no no no

no

REARR. MANUAL

ANL-6 t MWA

OB 21

MEMOFUA

automát.

no no no no

no '1 no sí

no

no sí sí no

sí (según 9"ista)

no no

no no no

no

REARR. AUT.

ANL-6 t AWA

OB 22

Page 161: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Definición de la " 9" pista "

La "9"ista" es una lista de los bytes de entrada y salida de la zona de imagen de proceso que han dado acuse de recibo durante el último NUEVO ARRANQUE. Si el DB 1 ha sido programado y cargado, después de efectuar un NUEVO ARRANQUE la "9"ista" contendrá solamente los bytes de entrada y salida que indique el DB 1.

No es posible acceder a la 9"ista mediante instrucciones de STEP 5.

4.4.4 lnterfaces con el usuario para el arranque

Introducción Como interfaces con el usuario para los distintos modos de arranque se pueden utilizar los módulos de organización OB 20, OB 21 y OB 22. En estos módulos el usuario puede registrar su propio programa STEP 5 para los respectivos modos de arranque.

En los OBs se puede:

activar marcas,

reactivar temporizadores (el arranque es retardado por el programa de sistema hasta pasar al estado RUN),

preparar el tráfico de datos de la CPU con las tarjetas de E/S,

ejecutar la sincronización de los CPs (procesadores de comunicación).

NUEVO ARRANQUE:

Cuando la CPU ejecuta un NUEVO ARRANQUE MANUAL o AUTOMATICO, el programa de sistema llama una sola vez al OB 20. Allí se puede depositar un programa STEP 5 que ejecute determinados pasos preparativos para un reinicio del procesamiento cíclico.

Después de la ejecución del OB 20 comienza el procesamiento cíclico del programa con la llamada al OB 1 al FB O. Si el OB 20 no está cargado, inmediatamente después de un NUEVO ARRANQUE, la CPU comienza con el procesamiento cíclico del programa (después de las operaciones del sistema).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 162: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

REARRANQUE MANUAL o NUEVO ARRANQUE MANUAL CON MEMORIA:

Cuando la CPU ejecuta un REARRANQUE MANUAL o un NUEVO ARRANQUE MANUAL CON MEMORIA, el programa de sistema llama una sola vez al OB 21. El usuario puede depositar en él un programa STEP 5 que ejecute determinadas operaciones antes de reemprender el procesamiento del programa que ha sido interrumpido con anterioridad en RUN.

Una vez procesado el OB 21, en caso de REARRANQUE MANUAL, el procesamiento cíclico del programa continúa con la siguiente instrucción a partir del punto de interrupción. Vale lo siguiente:

La señal BASP (bloqueo de salidas) permanece activada durante el procesamiento del resto del ciclo y se desactiva sólo al principio del siguiente ciclo (completo).

La imagen de proceso de las salidas se rearma al final del resto del ciclo.

Si el OB 21 no está cargado, la CPU reemprende el procesamiento del programa a partir del punto de interrupción al final de un REARRANQUE MANUAL, después de que el programa de sistema haya ejecutado las operaciones necesarias.

Nota La CPU también detecta un fallo de la tensión de red (NAU o PEU) si éste tiene lugar en STOP. Si a continuación el usuario ejecuta un REARRANQUE MANUAL, la CPU llamará al OB 22 antes de llamar al OB 21. Si por el contrario se ejecuta un NUEVO ARRANQUE MANUAL, la CPU ignorará los procesos anteriores y por lo tanto no llamará al OB 22.

Si en el módulo de datos DX O se ha registrado el parámetro "NUEVO ARRANQUE CON MEMORIA", el programa de sistema ejecuta un NUEVO ARRANQUE CON MEMORIA tras procesar el OB 21 (la CPU reemprende el procesamiento del programa a partir de la primera instrucción STEP 5 en el OB 1 o FB O ) . Los estados lógicos de las marcas, marcas de acoplamiento, semáforos así como la lista de direcciones de módulos (DB O) permanecen inalterados.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 163: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

OB 22 REARRANQUE AUTOMATICO o NUEVO ARRANQUE AUTOMATICO CON MEMORZA:

Cuando la CPU ejecuta un REARRANQUE AUTOMATICO o un NUEVO ARRANQUE AUTOMATICO CON MEMORIA el programa de sistema llama una sola vez al OB 22. El usuario puede registrar en él un programa STEP 5 que ejecute determinadas operaciones antes de reanudar el procesamiento del programa que ha sido interrumpido antenomente en RUN.

Una vez restablecida la tensión de red, la CPU ejecuta las funciones de sistema mencionadas e intenta reemprender el programa a partir del lugar en que fue interrumpido.

Previamente se llama al OB 22, si está cargado. Una vez procesado el OB 22 se reemprende el procesamiento del programa interrumpido con la instrucción siguiente al punto de interrupción.

Tras un fallo de la tensión de red y su restablecimiento vale lo siguiente:

La señal BASP (bloqueo de salidas) está activada durante el procesamiento del resto del ciclo. Se desactiva sólo al principio del próximo ciclo completo.

La imagen de proceso de las salidas se rearma al final del resto del ciclo.

CO CON

Si en el módulo de datos DX O se ha registrado el parámetro "Nuevo arranque con memoria" el programa de sistema ejecuta un NUEVO ARRANQUE CON MEMORIA tras procesar el OB 22 (la CPU reemprende el procesamiento del programa a partir de la primera instrucción STEP 5 en el OB 1 o FB O). Los estados lógicos de las marcas, marcas de acoplamiento, semáforos así como la lista de direcciones de módulos permanecen inalterados.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 164: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.4.5 Interrupciones en el ARRANQUE

Introducción Un programa de arranque puede ser interrumpido por:

fallo de la tensión de red en el aparato central (NAU) o en el aparato de am- pliación (PEU),

selector en STOP, instrucción de parada, MP-STP o PG-STP

error de programa y de aparatos (véase capítulo 5.6).

Si el ARRANQUE interrumpido ha de ser continuado con uno de los posibles modos de arranque, cabe observar los siguientes puntos:

Fallo de la En caso de un fallo de la tensión de red en el ARRANQUE y su consiguiente tensión de red restablecimiento cabe distinguir los casos expuestos en la tabla siguiente: durante el ARRANQUE

Modo de operación ajustado: REARRANQUE AUTOMATICO

La CPU está ejecutando un NUEVO ARRANQUE (OB 20):

Tras un fallo de la tensión de red y posterior restablecimiento se anida el módulo de organización OB 22 (REARRANQUE AUTOMATICO) en el punto de interrupción del OB 20.

La CPU está ejecutando un REARRANQUE MANUAL (OB 21):

Tras un fallo de la tensión de red y posterior restablecimiento se anida el módulo de organización OB 22 (REARRANQUE AUTOMATICO) en el punto de interrupción del OB 21.

La CPU está ejecutando un REARRANQUE AUTOMATICO (OB 22):

Tras un fallo de la tensión de red y posterior restablecimiento no se anida un segundo OB 22: el OB 22 interrumpido no se reemprende después de restablecerse la tensión sino que se abandona. En su lugar se procesa el OB 22 que ha sido llamado nuevamente.

Modo de operación ajustado: NUEVO ARRANQUE AUTOMATICO

La CPU está ejecutando un NUEVO ARRANQUE MANUAL o AUTOMATICO, o un REARRANQUE MANUAL:

Tras un fallo de la tensión de red y posterior restablecimiento no se reemprende el OB 20 u OB 21 interrumpido, sino que se abandona. En su lugar se procesa el nuevo OB 20 llamado.

Lo mismo vale para un REARRANQUE AUTOMATICO después de una señal PEU.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 165: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

REARRANQUE MANUAL tras una interrupción del ARRANQUE

NUEVO ARRANQUE MANUAL tras una interrupción del ARRANQUE

Aborto del NUEVO ARRANQUE CON MEMORIA

Cuando la CPU pasa a STOP desde un modo de arranque cualquiera (por ejemplo por accionamiento del selector a la posición STOP o por ADF) y se efectúa un REARRANQUE MANUAL, el ARRANQUE interrumpido vuelve a continuar desde el punto de interrupción. No se anida ningún OB 21.

Cuando la CPU pasa a STOP desde un modo de arranque cualquiera y se efectúa un NUEVO ARRANQUE MANUAL, se abandona el ARRANQUE interrumpido y se vuelve a ejecutar un NUEVO ARRANQUE. Se llama al OB 20 si está cargado.

El NUEVO ARRANQUE CON MEMORIA se abandona debido a

un fallo de la tensión de red en el aparato central (NAU) o en el aparato de ampliación (PEU),

accionamiento del selector a STOP, instrucción de parada, MP-STP o PG-STP

error de programa o de aparatos (véase capítulo 5.6).

Un NUEVO ARRANQUE CON MEMORIA abortado no se reemprende al efectuar un rearranque. En su lugar se vuelve a efectuar un NUEVO ARRANQUE CON MEMORIA.

A la hora de elegir el modo de arranque no se consideran los acontecimientos que hayan tenido lugar con anterioridad. Vale lo siguiente:

Si el NUEVO ARRANQUE MANUAL O AUTOMATICO CON MEMORIA ha sido interrumpido debido a una DESCONEXION o a un fallo de la tensión de red en el aparato de ampliación, después de la CONEXION se ejecutará otro NUEVO ARRANQUE AUTOMATICO CON MEMORIA siempre que se cumplan todas las demás condiciones necesarias para el arranque.

Si el NUEVO ARRANQUE MANUAL o AUTOMATICO CON MEMORIA ha sido abandonado debido a una de las otras causas posibles se ejecutará un nuevo NUEVO ARRANQUE MANUAL CON MEMORIA.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 166: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.5 Estado operativo RUN

Características Cuando la CPU procesa un ARRANQUE hasta el final (y sólo entonces) pasa al estado operativo RUN. Este estado tiene las siguientes características:

Procesamiento del programa de usuario

El programa de usuario que se encuentra en el OB 1 o en el FB O se procesa cíclicamente pudiendo ser anidados además otros programas parciales controlados por alarma.

Temporizadores, contadores, imagen de proceso

Todos los temporizadores y contadores están "en marcha". La imagen de proceso se actualiza cíclicamente.

Señal BASP

La señal BASP @loqueo de salidas) está desactivada. De este modo quedan habilitadas todas las salidas digitales.

Marcas de acoplamiento

Las marcas de acoplamiento - si están programadas en el DB 1 - se actualizan cíclicamente.

LEDs de la placa frontal de la CPU

LED RUN encendido LED STOP apagado LED BASP apagado

Nota Si se ha efectuado un REARRANQUE AUTOMATICO o un REARRANQUE MANUAL antes de pasar al estado operativo RUN, el LED BASP se apaga cuando el ciclo restante se ha terminado de procesar y la imagen de proceso ha sido actualizada. ¡El estado RUN sólo se consigue con el estado operativo ARRANQUE!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 167: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Niveles de En el estado operativo RUN existen 14 niveles básicos de procesamiento: procesamiento del programa CICLO:

El programa de usuario se procesa cíclicamente.

PETICION DE TIEMPO:

El programa se ejecuta en intervalos fijos determinados por el usuario o una sola vez, en un determinado momento (alarma temporizada controlada por reloj).

9 ALARMAS TEMPORIZADAS:

El programa de usuario se ejecuta en intervalos de tiempo fijos predeterminados por el sistema.

ALARMA DE REGULADOR:

Se procesa una cantidad predeterminada de reguladores por control de tiempo.

ALARMA DE RETARDO:

El programa de usuario se procesa una vez al transcurrir un tiempo de retardo prefijado.

ALARMA DE PROCESO:

El programa de usuario se procesa por control de alarma.

Los niveles de procesamiento se diferencian en los puntos siguientes:

Son activados por diferentes acontecimientos.

Por cada nivel de procesamiento del programa existe como interfaz con el usuario un módulo de organización o de funciones diferente.

En una CPU 928B pueden estar programados simultáneamente todos los niveles básicos de procesamiento. La llamada a los correspondientes niveles es ejecutada por el programa de sistema de acuerdo con los eventos actuales y la prioridad fijada (véase capítulo 4.2).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 168: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.5.1 Procesamiento cíclico del programa

Introducción En los controles de memoria programables, por lo general, predomina el procesamiento cíclico (nivel de procesamiento CICLO). En este caso se trata de un "ciclo libre", es decir, en cuanto se alcanza el final del programa se salta automáticamente al principio del programa (véase fig. 4-6).

Activación

Principio

Si la CPU ha ejecutado con éxito el programa de arranque, pasa al procesamiento cíclico del programa.

Principio del procesamiento cíclico del programa (operaciones por parte del sistema):

desde el ar ranque

Act ivar ( t r igger) el t iempo de superv is ión de l c ic lo l Actual izar las ent radas de marcas d e acoplamiento

Al imentar l a imagen de proceso de las ent radas (PAE)

Llamar a l programa d e usuar io cícl ico (OB 1 o FB O ) :

l Programa de usuar io l inclusive an idamiento de los demás

niveles d e procesamiento

Emit i r l a imagen de proceso de las sal idas (PAA)

l Actual izar las sal idas de las marcas d e acoplamiento

Procesos cont ro lados por PG, por ej cargar o borrar módulos, comprimir módulos . . .

Fig. 4-6 Procesamiento cíclico del programa

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 169: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

lnterfaz con el En el procesamiento cíclico del programa se llama regularmente al módulo de usuario organización OB 1 o al módulo de funciones FB O como interfaz con el usuario. O B l o F B O El programa de usuario STEP 5 del módulo OB 1 o FB O se ejecuta desde el

principio hasta el final, pasando por las llamadas a módulos programadas por el usuario. Después de las operaciones del sistema, la CPU comienza desde el principio, con la primera instrucción STEP 5 del OB 1 (o del FB O).

En el OB 1 se programan las llamadas a los módulos de programa, de funciones y de pasos que deben ser procesados en el programa cíclico.

Si se requiere un programa corto y en función de tiempo, en el que se pueda prescindir de una programación estructurada, se puede programar el FB O. Puesto que dispone de la totalidad del conjunto de operaciones de STEP 5, se pueden ahorrar las llamadas a los módulos, con lo que se acorta el tiempo de ejecución del programa.

Nota Si tanto el OB 1 como el FB O están cargados, el programa de sistema solamente llamará al OB 1. ¡Si se utiliza el FB O como interfaz con el usuano, éste no deberá contener parámetros!

Puntos de interrupción

El procesamiento cíclico del programa puede ser interrumpido en límites de módulos por:

un procesamiento del programa controlado por alarmas de proceso,

un procesamiento de reguladores,

un procesamiento del programa controlado por tiempo.

Nota Estas interrupciones también pueden efectuarse en límites de instrucciones parametrizando adecuademente el DX O - véase capítulo 7.

El procesamiento cíclico del programa puede ser interrumpido en límites de instrucciones o puede ser completamente abortado

cuando se produce un error de aparatos o de programa,

por manipulación externa (función PG, selector en STOP, MP-STP),

por una instrucción STOP.

Acumuladores Los registros de cálculo AKKU 1, 2, 3 y 4 de la CPU 928B pueden ser utilizados como registros como registros de datos superando los límites del ciclo, desde el final de un ciclo de datos de programa hasta el comienzo del ciclo siguiente.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 170: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.5.2 Procesamiento controlado por tiempo

Introducción El procesamiento controlado por tiempo tiene lugar cuando una señal de tiempo proviniente de un reloj o de un impulso interno, obliga a la CPU a interrumpir el procesamiento del programa en curso, para procesar un programa especial. Después de procesar este programa especial, la CPU vuelve al punto de interrupción del programa anterior y continúa su ejecución. Ello permite activar automáticamente determinados elementos del programa, para intercalarlos en el procesamiento cíclico en el instante deseado.

Para el procesamiento del programa controlado por tiempo se dispone de distintos modos de activación:

Activación única tras un tiempo de retardo de milisegundos elegido a voluntad: "alarma de retardo" (nivel de procesamiento ALARMA DE RETARDO). A través de esta alarma se llama al módulo de organización OB 6.

Activación en un período de tiempo elegido a voluntad, o bien una sola vez en un tiempo absoluto: "alarma temporizada controlada por reloj" (nivel de procesamiento PETICION DE TIEMPO). A través de esta alarma se llama al módulo de organización OB 9.

Activación en 9 períodos de tiempo distintos desde 10 ms hasta 5 segundos por medio de "alarmas temporizadas" (nivel de procesamiento ALARMAS TEMPORIZADAS.) A cada alarma temporizada le corresponde un módulo de organización (OB 10 a OB 18). En este caso se trata de ciclos fijos, es decir, la escala de tiempo entre dos arranques de programa es fija.

Alarma de retardo Con la alarma de retardo de la CPU 928B también se pueden definir escalas breves de una resolución de 1 ms. Una vez transcurrido el tiempo ajustado, el programa de sistema llama una vez al OB 6.

Activación La alarma de retardo se genera llamando al módulo de organización de funciones especiales OB 153 (véase capítulo 6.12). En cuanto ha transcurrido el tiempo de retardo parametrizado con el OB 153, el programa de sistema interrumpe el procesamiento del programa y llama al OB 6. Después se reemprende el procesamiento del programa a partir del punto de interrupción.

lnterfaz con el En las alarmas de retardo se llama al OB 6 como interfaz con el usuario. En el OB 6 usuario OB 6 se deposita el programa STEP 5 que debe ser ejecutado en este caso. Si el OB 6 no

está cargado, no se interrumpe el procesamiento del programa.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 171: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Interrupciones El procesamiento de la alarma de retardo puede ser interrumpido en límites de módulos o bien en límites de instrucciones (parametrización del DX 0) por:

el procesamiento de una alarma de proceso.

El procesamiento puede ser interrumpido en límites de instrucciones o bien totalmente abortado:

por aparición de un error de aparatos o de programa,

por manipulación (función de PG, selector en posición STOP, MP-STP),

por una instrucción de parada.

Particularidades Las alarmas de retardo solamente se procesan en el estado operativo RUN.

Una alarma de retardo que haya sido generada una vez (llamada al OB 153 ya procesada) se anula al pasar a STOP o en caso de DESCONEXION.

Las alarmas de retardo pueden ser generadas en el ARRANQUE o en RUN (llamada al OB 153).

Cuando se genera una nueva alarma de retardo, es decir, cuando se llama al OB 153 con nuevos parámetros, se anula la alarma de retardo que ha sido ajustada previamente. Si la alarma ya se encuentra en ejecución (el OB 6 está activado), no será interrumpida. Por consiguiente, siempre será válida una sola alarma de retardo.

Si durante el procesamiento de una alarma de retardo aparece una nueva alarma sin que la anterior haya sido procesada hasta el final, se anulará la nueva. ;Durante el procesamiento de las alarmas de retardo no se comprueba si tienen lugar colisiones con otras alarmas!

Las funciones especiales OB 120 y OB 122 permiten bloquear o retardar el procesamiento de las alarmas de retardo.

Alarma temporizada controlada por reloj

La CPU 928B dispone de un reloj hardware salvaguardado por una batería tampón (tamponaje central a través del suministro de corriente del aparato central) que puede ser ajustado y leído mediante un programa STEP 5. Con este reloj se pueden procesar programas parciales por control de tiempo.

Mientras que las alarmas de retardo se utilizan para procesos rápidos, las alarmas temporizadas son especialmente apropiadas para procesos que se ejecutan una sola vez o procesos que aparecen periódicamente en escalas de tiempo extensas como por ej., cada hora, cada día o cada lunes. Cuando se alcanza el tiempo prefijado, el programa de sistema llama al OB 9.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 172: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Activación Las alarmas temporizadas controladas por reloj (petición de tiempo) se generan llamando al módulo de organización de funciones especiales OB 151 (véase capítulo 6.10). La petición de tiempo se procesa cuando se alcanza el tiempo que ha sido transferido al OB 151 (una hora, una fecha). Esto puede ocurrir una sola vez (tiempo absoluto) o bien repetidas veces (escala de tiempo). En cuanto la petición es recibida, el programa de sistema interrumpe el procesamiento en curso y llama al OB 9 (nivel de procesamiento de programa PETICION DE TIEMPO). Después de ello se reemprende el procesamiento del programa a partir del punto de interrupción.

SEGUNDOS : TIPO DE PETICION 1 (cada minuto)

Llamada OB 9 Llamada OB 9 Llamada OB 9

lnterfaz con el En el caso de las alarmas temponzadas controladas por reloj se llama al OB 9 como usuario OB 9 interfaz con el usuario. En el OB 9 se deposita el programa STEP 5 que deba

procesarse en este caso. Si el OB 9 no está cargado, no se interrumpe el procesamiento del programa.

Interrupciones El procesamiento de las alarmas temporizadas controladas por reloj puede ser interrumpido en límites de módulos o bien en límites de instrucciones (parametnzación del DX 0) por:

el procesamiento de una alarma de proceso,

el procesamiento de una alarma de retardo,

el procesamiento de una alarma de regulador

El procesamiento puede ser interrumpido en límites de instrucciones o bien totalmente abortado:

por aparición de un error de aparato o de programa,

por manipulación (función de PG, selector en posición STOP, MP-STP),

por una instrucción de parada STP.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 173: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Particularidades Las alarmas temporizadas controladas por reloj sólo se procesan en RUN. Las alarmas temporizadas controladas por reloj que aparecen en STOP, en caso de fallo de la tensión de red o durante el ARRANQUE, son anuladas.

Una alarma temporizada controlada por reloj que haya sido generada tras BORRADO TOTAL y NUEVO ARRANQUE (= llamada al OB 151 procesada) seguirá vigente con un REARRANQUE o mediante una DESCONEXION/ CONEXION.

Cuando se genera una nueva alarma temporizada controlada por reloj, es decir, cuando se llama al OB 151 con nuevos parámetros de tiempo, se anula la alarma temporizada que ha sido definida previamente. Si esta alarma ya se encuentra en ejecución, no se interrumpe. Por consiguiente, siempre será válida una sola alarma temporizada controlada por reloj.

Cuando aparece una alarma temporizada controlada por reloj sin que se haya procesado por completo la anterior, se anula la nueva alarma. ;No se comprueba si ha tenido lugar una colisión de alarmas temporizadas controladas por reloj!

Las funciones especiales OB 120 y OB 122 permiten bloquear o retardar el procesamiento de alarmas temponzadas controladas por reloj.

Alarmas temporizadas

Procesamiento del programa en escalas de tiempo fijas:

En la CPU 928B se pueden procesar hasta 9 distintos programas controlados por tiempo, cada uno de los cuales puede ser llamado en escalas de tiempo diferentes.

Activación Una alarma temporizada se activa automáticamente con la escala de tiempos prefijada al cargarse el módulo de organización (OB) correspondiente.

lnterfaces con el Cuando aparece una determinada alarma temponzada se intercala en el siguiente usuario límite de módulo (o de instrucción) el módulo de organización correspondiente como

interfaz con el usuario.

Tiempos de alarma temporizada asignados a los OBs:

Tabla 4-3 Asignación "tiempo de alarma temponzada - OB llamado"

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Escalas de tiempo

10 ms 20 ms 50 ms 100 ms 200 ms 500 ms

1 S

2 S

5 S

OB llamado

OB 10 OB 11 OB 12 OB 13 OB 14 OB 15 OB 16 OB 17 OB 18

prioridad descreciente

v

Page 174: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Se puede programar por ej. en el OB 13 aquella parte del programa que deba ser intercalada cada 100 ms en el procesamiento cíclico del programa.

Nota ¡LOS módulos de organización con escalas de tiempo más breves tienen mayor pnondad y, por lo tanto, pueden interrumpir otros módulos de organización con escalas de tiempo más largas!

Tiempo Cada vez que se efectúa una llamada a un OB de alarma temporizada (OB 10 a transcurrido OB 18) se registra en el AKKU 1 la cantidad de escalas de tiempo que han desde la Última transcurrido desde la última llamada al OB de alarma temporizada. Para ello vale: alarma

AKKU 1 = Cantidad de escalas de tiempo - 1

Si al llamar al OB 11 se encuentra registrado en el AKKU 1 por ejemplo el número "5", significa que han transcurrido 120 ms (6 escalas de tiempo) desde la última llamada al OB 11. Mientras no tenga lugar una colisión de alarmas temporizadas, se transfiere un "O" al AKKU 1.

Interrupciones El procesamiento de una alarma temponzada puede ser interrumpido en límites de módulos (ajuste por defecto) o bien en límites de instrucciones (programación DX 0) por:

el procesamiento de una alarma de proceso,

el procesamiento de una alarma de retardo,

el procesamiento de una alarma de regulador,

volver a procesar una alarma temponzada.

El procesamiento puede ser interrumpido en límites de instrucciones o completamente abortado:

por aparición de un error de aparato o de programa,

por manipulación (función de PG, selector en posición STOP, MP-STP),

por una instrucción de parada STP.

Nota ¡Un procesamiento de programa controlado por tiempo no puede ser interrumpido por el mismo procesamiento controlado por tiempo (colisión de alarmas temponzadas)!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 175: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Colisión de Si un determinado OB de alarma temponzada no ha sido ejecutado alarmas completamente y ha de ser procesado por segunda vez, se produce una colisión. temporizadas También se produce este error cuando se llama por segunda vez a un (WECK-FE) determinado OB, sin que se haya ejecutado la llamada anterior. Esto es posible

con el ajuste "interrumpir alarmas en límites de módulos", especialmente cuando el programa STEP 5 contiene módulos de larga ejecución. Si ocurre una colisión, se activa el nivel de procesamiento de error WECK-FE, y el programa de sistema llama a la interfaz con el usuario OB 33. En el OB 33 se puede programar la reacción deseada para esta situación.

Si el OB 33 no está cargado y se produce un error, la CPU pasa al estado STOP. Activando la función del aparato de programación "Salida AG-INFOLJSTACK", el indicador de error WECK-FE estará marcado con una cruz en los bits de control y la pila de interrupciones (USTACK) indicará la identificación del nivel de error de la alarma temporizada (NIVEL).

Cuando se llama al OB 33, el programa de sistema deposita informaciones adicionales en el AKKU 1 y en el AKKU 2 que definen más detalladamente el error que se ha producido:

Tabla 4-4 Identificadores de colisión

La identificación en el AKKU 2-L es una identificación del nivel de error de la alarma que ha causado el error (véase capítulo 5.4).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

Colisión en el OB 10 ( 10 ms)

Colisión en el OB 11 ( 20 ms)

Colisión en el OB 12 ( 50 ms)

Colisión en el OB 13 (100 ms)

Colisión en el OB 14 (200 ms)

Colisión en el OB 15 (500 ms)

Colisión en el OB 16 ( 1 sec)

Colisión en el OB 17 ( 2 sec)

Colisión en el OB 18 ( 5 sec)

Identificadores de error

AKKU-1-L

1001H

1001H

1001H

1001H

1001H

1001H

1001H

1001H

1001H

AKKU-2-L

0016H

0014H

0012H

OOlOH

OOOEH

OOOCH

OOOAH

0008H

0006H

Page 176: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Continuar el Si el procesamiento del programa ha de continuar en caso de producirse una procesamiento colisión, se programa en el OB 33 la instrucción de fin de módulo 'BE' o se del programa en modifica el ajuste por defecto en el DX O de forma que, en caso de producirse caso de una una colisión sin estar programado el OB 33, el programa continúe de todas colisión maneras en el punto de interrupción.

Después del procesamiento del OB 33 se reemprende el programa en el punto de interrupción.

Nota En cuanto al procesamiento del programa controlado por tiempo cabe tener en cuenta las funciones especiales OB 120, OB 121, OB 122 y OB 123, que permiten bloquear o retardar el procesamiento de alarmas temporizadas para una determinada parte del programa. (Esto puede aplicarse bien a todas las alarmas temporizadas que han sido programadas o solamente a algunas).

Cuanto más "rápido" sea un nivel de procesamiento controlado por tiempo, tanto mayor será el nesgo de que se produzcan colisiones: por lo general, las alarmas temponzadas de escalas de tiempo breves (por ejemplo, la alarma temporizada de 10 ms o de 20 ms) requerirán el ajuste "intempción en límites de instrucciones". Esto obliga a efectuar el mismo ajuste para las alarmas de regulador y de proceso (véase capítulo 7, parametnzación del DX O).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 177: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.5.3 Alarma de reguladores: procesamiento de reguladores

Introducción Además del procesamiento cíclico, controlado por tiempo y por alarmas, la CPU 928B ofrece asimismo la posibilidad de procesar reguladores. Se interrumpe el procesamiento cíclico o controlado por tiempo y se procesa el correspondiente regulador en escalas de tiempo programadas por el usuario (= tiempo de exploración). A continuación, la CPU vuelve al punto de interrupción del programa cíclico o controlado por tiempo y continúa con el procesamiento del programa.

Activación Las alarmas de reguladores se activan una vez transcurrido el tiempo de exploración deseado.

Operaciones por parte del programa de sistema:

Administra la interfaz con el usuario para el procesamiento de reguladores.

Actualiza la imagen de proceso de reguladores.

lnterfaz con el Para el procesamiento de reguladores se llama al módulo de funciones estándar usuario: módulo R64 como interfaz con el usuario. Este permite procesar hasta 64 reguladores con de funciones ayuda del módulo de parametrización de reguladores DB 2. estándar "estructura de Por cada regulador se parametriza un módulo de datos determinado. En el módulo de reguladores R64" datos DB 2, denominado "lista de reguladores", se determina qué reguladores deben

ser procesados por el programa de sistema y en qué momento. El DB 2 está reservado para esta tarea.

(El paquete de programación especial "COMREG" ayudará al usuario a parametrizar, poner en funcionamiento y comprobar el FB estándar R64, véase catálogo ST 59 191.)

Interrupciones El procesamiento de reguladores puede ser interrumpido en límites de módulos (ajuste por defecto) o en límites de instrucciones (programación del DX 0) por

el procesamiento de una alarma de proceso,

el procesamiento de una alarma de retardo.

El procesamiento puede ser interrumpido en límites de instrucciones o completamente abortado:

por aparición de un error de aparatos o de programa,

por manipulación (función de PG, selector en posición STOP, MP-STP),

por una instrucción de parada STP.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 178: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.5.4 Alarma de proceso: procesamiento controlado por alarmas

Introducción El procesamiento controlado por alarmas tiene lugar cuando una señal del bus S5 de una tarjeta de entrada digital con posibilidad de interrupción (p. ej. 6ES5 432-4UAxx) o bien de una tarjeta IP que funcione de modo similar obliga a la CPU a interrumpir el procesamiento del programa para procesar un programa específico. Después de procesar este programa, la CPU vuelve al punto de interrupción y reemprende el procesamiento del programa interrumpido.

La evaluación de la alarma de proceso puede ser activada por nivel o por flancos. Puede ser bloqueada, retardada o desbloqueada por programa. El OB 2 puede interrumpir el procesamiento del programa en curso, opcionalmente, en límites de instrucciones o de módulos (programación del DX O).

Activación El estado activo de una línea de interrupción en el bus S5 dispara la alarma de proceso. Cada CPU tiene asignada una línea de interrupción de acuerdo con el slot que ocupe (véase el manual de sistema).

lnterfaz con el Cuando aparece una alarma de proceso se llama al OB 2 como interfaz con el usuario OB 2 usuario. En el OB 2 hay que programar el programa específico que se procesará

cuando aparezca la alarma de proceso.

Si no está cargado el OB 2, no se interrumpe el procesamiento del programa y no se procesa ningún programa por control de alarma.

Interrupciones El procesamiento del programa controlado por alarma solamente puede ser interrumpido

por aparición de un error de aparatos o de programa,

por manipulación (función de PG, selector en posición STOP, MP-STP),

por una instrucción de parada STP.

Nota ¡El procesamiento controlado por alarma no puede ser interrumpido por el procesamiento controlado por tiempo ni por otro procesamiento contrado por alarma!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 179: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Alarmas múltiples

Si durante el procesamiento de un programa controlado por alarma vuelven a aparecer alarmas de proceso, estás serán ignoradas hasta que acabe de procesarse el OB 2 (incluidos todos los módulos llamados en el OB 2). A continuación, la CPU retorna al punto de interrupción y procesa el programa hasta el siguiente límite de módulo o instrucción. Sólo entonces se aceptará otra alarma de proceso, volviéndose a llamar al OB 2. Así es posible procesar el programa cíclico aunque aparezca una alarma constante.

Nota No se detectan alarmas múltiples.

El OB 2 también será llamado si al alcanzar el límite de módulo en el programa interrumpido, el estado lógico de la línea de interrupción ya es pasivo.

Tampoco se detectarán las alarmas de proceso que aparezcan mientras se esté procesando el OB 2 y cuyo tiempo de espera sea inferior a lo que dure el procesamiento del OB 2 (en caso de activación por flancos). No se considera el estado lógico de la señal de interrupción desde que se activa por primera vez hasta que finaliza el OB 2 (instrucción BE).

Señales de alarmas de proceso activadas por nivel

En la CPU 928B el ajuste por defecto (DX O) de la señal de alarma de proceso es de activación por nivel, es decir, el estado activo de la línea de interrupción hace una petición para que se procese el OB 2 en el próximo límite de módulo o instrucción (según ajuste en el DX O).

I desactivad, Interrupción 7

activada

Alarma de proceso (en í m t e s d e módulos)

C ic lo A A A

A = Límites de módulos

Fig. 4-7 Señales de alarma de proceso, activadas por nivel

El OB 2 llamado se procesa hasta el final. Si la señal de interrupción sigue estando activada o se vuelve a activar al finalizar el OB 2, entonces en el programa cíclico se procesará un módulo (sólo en caso de interrupción en límites de módulos) y finalmente se volverá a llamar al OB 2. Si el nivel desaparece, el OB 2 será llamado sólo cuando cambie el estado lógico de la señal (de desactivado a activado).

No se consideran los estados activos de la señal de interrupción antes de la instrucción de fin de módulo (BE) del OB 2.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 180: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Señales de alarmas de proceso activadas por flancos

Bloqueo del procesamiento controlado por alarmas de proceso

Este ajuste se efectúa parametrizando el DX O. Después de procesar el OB 2, solamente se puede activar otra alarma de proceso por un cambio del estado lógico de la señal (de desactivada a activada). Tras ejecutarse la instrucción de fin de módulo (BE) del OB 2 deberá tener lugar "un cambio del estado lógico desactivada-activada" de la señal de interrupción, a fin de poder generar una alarma de proceso.

In ter rupc ión 1 desact ivad act ivada

Alarma de proceso (en límites de mbduos)

C ic lo

A = Límites de módulos

Fig. 4-8 Señales de alarma de proceso, activadas por flancos

Un programa controlado por alarma se intercala en el programa cíclico en un límite de módulo o de una instrucción STEP 5. Esta interrupción puede tener consecuencias negativas cuando se deba procesar un programa parcial cíclico en un tiempo determinado (por ejemplo, para conseguir un tiempo de reacción determinado), o bien cuando no se deba interrumpir una secuencia de instrucciones determinada (por ejemplo, al leer o escribir valores relacionados entre sí).

Cuando el programa parcial no deba ser interrumpido por un procesamiento controlado por alarma, se puede optar por las siguientes posibilidades de programación:

Programar este programa parcial de manera que no contenga cambios de módulo y mantener el ajuste por defecto del DX O ("Alarmas de proceso en límites de módulos"). Los programas parciales que no contengan cambios de módulo tampoco pueden ser interrumpidos.

Programar la instrucción STEP 5 'AS' (bloquear alarmas de proceso). Con la instrucción 'M' (desbloquear alarmas de proceso) se vuelve a habilitar el procesamiento de alarmas. Entre estas dos instrucciones no se procesan programas controlados por alarmas; el programa parcial que se encuentra entre estas dos instrucciones no puede ser interrumpido por alarmas de proceso. ¡'AS' y 'M' solamente pueden utilizarse en los módulos de funciones (conjunto de operaciones complementarias)!

Utilizar los módulos de funciones especiales OB 120 y OB 122 que permiten bloquear o retardar el procesamiento de las alarmas de proceso para poder procesar un programa parcial determinado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 181: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

4.5.5 Procesamiento anidado de programas controlados por alarma o por tiempo

Priorización del Si durante el procesamiento de un programa controlado por tiempo aparece una procesamiento alarma de proceso, el programa se interrumpe en el siguiente punto de controlado interrupción (límite de módulo o de instrucción) y se procesa la alarma de por alarma o por proceso. Después se termina el procesamiento del programa controlado por tiempo tiempo.

Si durante el procesamiento controlado por alarma aparece una alarma temporizada, primero se termina el procesamiento controlado por alarma. Sólo entonces se procesa el programa controlado por tiempo.

Si aparecen a la vez una alarma de proceso y una alarma temponzada, en el siguiente punto de interrupción se procesará primero la alarma de proceso. Sólo cuando esta alarma se haya terminado de procesar, se procesará la alarma temponzada.

La fig. 4-9 muestra esquemáticamente cómo se produce la interrupción del procesamiento del programa en los límites de módulos por el procesamiento de alarmas controladas por tiempo y por programas.

@ Punto de interrupción en el que puede intercalarse de manera estándar un programa de mayor pr ior idad en e l procesamiento cícl ico, controlado por alarma o por t iempo.

El procesamiento de , procesamiento un programa controlado

cícl ico por t iempo solamente puede ser interrumpido por un procesamiento controlado por alarma, y no a l contrar io.

procesamiento con- trolado por t iempo

procesamiento con- trolado por alarma

Fig. 4-9 Procesamiento controlado por interrupciones, en límites de módulos

Instrucciones d e programación C P U 928B-3UB21

C79000-G8578-C870-01

Page 182: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Estados o~erativos v niveles de ~rocesamiento

Tiempo de El tiempo de reacción a una petición de una alarma temponzada corresponde al reacción tiempo de procesamiento de un módulo o de una instrucción STEP 5 (según el

preajuste seleccionado). Sin embargo, si en el momento en que tiene lugar la interrupción todavía existen alarmas de proceso por ejecutar, entonces el programa controlado por tiempo se ejecutará solamente cuando hayan sido procesadas hasta el final todas las alarmas de proceso pendientes.

El tiempo máximo de reacción entre la aparición de una alarma temporizada y su procesamiento aumenta en este caso en el tiempo de procesamiento de las alarmas de proceso. Para evitar colisiones de alarmas temporizadas, obsérvese la siguiente regla:

A + B + C e D siendo A = La suma de los tiempos de procesamiento de todos los niveles de procesamiento de mayor prioridad (OBs de proceso, de regualdores y de alarmas temponzadas)

B = Tiempo de procesamiento del OB xy de alarma temponzada

C = Tiempo de ejecución del módulo más largo de todos los niveles de procesamiento de inferior prioridad

D = Escala de tiempo del OB xy de alarma temporizada

Nota Si se desea procesar el programa de usuario no sólo cíclicamente sino también de forma controlada por tiempo y10 por alarma, existe el peligro de que se sobreescnben las marcas. Esto puede ocurrir, por ejemplo, en caso de utilizarlas como marcas intermedias, tanto en el programa cíclico como en el anidado, y en caso de que el procesamiento cíclico del programa sea interrumpido por anidamiento de un programa controlado por tiempo o por alarma.

Por este motivo, al iniciar el procesamiento de un programa controlado por tiempo o por alarmas hay que "salvaguardar" los estados lógicos de las marcas (doblemente ocupadas) en un módulo de datos y volverlas a escribir una vez finalizado el procesamiento que ha causado la interrupción.

Para este fin se dispone de cuatro módulos de organización de funciones especiales: OB 190 y OB 192 "Transferir marcas a módulos de datos" y OB 191 y OB 193 "Transferir bloques de datos a la zona de marcas" (véase allí).

Para evitar una doble ocupación de las marcas, en la mayoría de los casos también se pueden utilizar marcas S. De este modo no será necesario tomar "medidas de salvaguarda" especiales (la cantidad de marcas S disponible es suficiente).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 183: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interrupciones y errores

Resumen breve Este capítulo explica cómo evitar errores en la planificación y programación de programas STEP 5. También indica las ayudas que ofrece el programa de sistema para el diagnóstico y reacción en caso de error y los módulos en que pueden programarse reacciones ante determinados errores.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Página

5-2

5-3

5-7

5-8

5-13

5-19

5-22

5-25

5-26

5-26

5-28

5-29

5-31

5-32

5-34

5-37

5-45

5-46

5-48

5-49

5-50

5-52

5-53

Capítulo

5.1

5.2

5.3

5.3.1

5.3.2

5.3.3

5.4

5.5

5.5.1

5.5.2

5.5.3

5.5.4

5.5.5

5.6

5.6.1

5.6.2

5.6.3

5.6.4

5.6.5

5.6.6

5.6.7

5.6.8

5.6.9

Tema

Errores frecuentes en el programa de usuano

Informaciones sobre errores

Bits de control y pila de interrupciones

Bits de control

Contenido de la pila de interrupciones (USTACK)

Ejemplo de diagnóstico de errores mediante USTACK

Tratamiento de errores mediante módulos de organización

Errores en el ARRANQUE

DBO-FE (error DB O)

DB1-FE (error DB 1)

DB2-FE (error DB 2)

DXO-FE (error DX O ó DX 2)

MOD-FE (error de Memory Card)

Errores en RUN y en el ARRANQUE

BCF (error en código de instrucción)

LZF (error en tiempo de ejecución)

ADF (error de direccionamiento)

QVZ (retardo en acuse de recibo)

ZYK (error de tiempo de ciclo)

WECK-FE (colisión de alarmas temponzadas)

REG-FE (error de regulador)

ABBR (aborto)

FE-3 (errores de comunicación)

Page 184: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.1 Errores frecuentes en el programa de usuario

Introducción El programa de sistema es capaz de detectar un funcionamiento defectuoso de la CPU, errores en el procesamiento del programa de sistema, así como las consecuencias de una programación errónea por parte del usuario.

Resumen La lista siguiente indica los errores que aparecen con mayor frecuencia durante la puesta en funcionamiento del programa de usuario, los cuales pueden ser fácilmente evitados al crear el programa.

Por este motivo, recomendamos prestar atención a las siguientes indicaciones, especialmente a la hora de esbozar, implementar y poner en funcionamiento el programa STEP 5:

Al indicar las direcciones de byte de entradas y salidas es preciso que las tarjetas correspondientes a estas direcciones estén enchufadas en el aparato central o en el aparato de ampliación.

Hay que asegurarse de que los operandos obtengan los parámetros correctos.

Las modificaciones de los módulos de funciones deben efectuarse con cautela. Debe comprobarse que los FB/FX estén parametrizados con los operandos correctos y que todos los operandos actuales estén indicados.

Las salidas, marcas, temporizadores y contadores no deben ser procesados en distintos puntos del programa con operaciones contradictorias.

Los temporizadores deben ser consultados solamente una vez por ciclo (por ej. U TI).

Hay que verificar que todos los módulos de datos llamados estén disponibles y tengan una longitud suficiente.

Hay que comprobar que todos los módulos llamados existan efectivamente en la memoria.

Las marcas de trabajo deben protegerse de los programas controlados por alarma y por tiempo y deben cargarse nuevamente una vez concluido el procesamiento, cuando sean requeridas por otros módulos (por ej.: FB estándar).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 185: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.2 Informaciones sobre errores

Resumen Cuando aparece un error durante el arranque o durante el procesamiento cíclico del programa de usuario, se dispone de diferentes fuentes de información para identificarlo. Estas son:

LEDs de la placa frontal de la CPU

Pila de interrupciones USTACK y bits de control

Dato de sistema BS 3, BS 4 y BS 80

Identificaciones de error en AKKU 1 y AKKU 2

Pila de módulos BSTACK

A continuación se indican los recursos disponibles para evaluar dichas fuentes de información y el modo de emplearlas para analizar el error en cuestión.

LEDs de la placa En caso de una parada inoportuna, los LEDs situados en la placa frontal dan una frontal de la CPU primera información sobre la causa del error:

Función on line A través de la función on line del aparato de programación "Salida del PG "Salida AG-INFOIUSTACK" se obtiene información sobre el estado de los bits de AG-INFOI control internos y el contenido de la pila de interrupciones (USTACK). USTACK"

Al pasar al estado STOP, el programa de sistema registra en la pila USTACK todas las informaciones necesarias para un rearranque. Estas informaciones son:

Indicador LED

El LED STOP luce de forma permanente

El LED STOP parpadea de forma lenta

El LED STOP parpadea de forma rápida

El LED ADF luce de forma permanente

El LED QVZ luce de forma permanente

El LED ZYK luce de forma permanente

contenidos de los registros,

Significado

Las diferentes formas en que luce el LED STOP indican determinadas causas de intempción o de error. Hay que consultarlas explicaciones al respecto en el capítulo 4.1.

Error de direccionamiento

Retardo en acuse de recibo

Error en tiempo de ciclo

contenidos de los acumuladores,

contador de direcciones STEP SAZ

indicadores de resultado.

Estas informaciones son de gran ayuda a la hora de diagnosticar un error.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 186: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Antes de visualizarse el contenido de la pila USTACK se visualizan en primer lugar los estados de los bits de control. Estos indican el estado operativo actual, determinadas características de la CPU o del programa de usuario y dan informaciones adicionales sobre la causa del error.

La función "Salida AG-INFOIUSTACK" puede utilizarse en los estados operativos STOP, ARRANQUE y RUN; sin embargo, en el ARRANQUE y en RUN solamente se obtiene información sobre los bits de control y no sobre el contenido de la pila de interrupciones.

En el capítulo 5.3 se explica más exhaustivamente el significado de los bits de control y la estructura de la pila de interrupciones.

Datos de sistema Si debido a un error la CPU pasa al estado STOP ya durante el ARRANQUE, la B S 3 y B S 4 causa del error se encontrará definida más detalladamente en las palabras de datos de

sistema BS 3 y BS 4 (véase capítulo 5.5). En este caso se trata de errores que encuentra el programa de sistema al estructurar las listas de direcciones en el DB O o al evaluar el DB 1, DB 2, DX O o DX 2.

Ambas palabras de datos están registradas en las siguientes direcciones de memoria absolutas:

Palabra de datos de sistema BS 3: KH = EA03

Palabra de datos de sistema BS 4: KH = EA04

Mediante el identificador de error que contiene la palabra de datos BS 3 se puede determinar de qué error se trata. La palabra de datos BS 4 indica dónde se ha verificado el error.

Los identificadores de error están registrados en formato de datos KH.

Evaluación de la La función on line INFORMACION DIRECCION (KH = EA03 o EA04) palabra de datos permite leer directamente el contenido de ambas palabras de datos para averiguar de sistema BS 3 la causa del error. y BS 4 con el aparato de programación

Dato de sistema Cuando el programa de sistema detecta un error grave en el sistema, activa el bit BS 80 de control INF en la pila de interrupciones (véase capítulo 5.3) y deposita en la

palabra de datos de sistema BS 80 un identificador de error adicional en formato de datos KH.

La dirección absoluta de la palabra de datos BS 80 es KH = EA50. Se lee del mismo modo que las palabras de datos BS 3 y BS 4.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 187: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Identificadores de error en AKKU 1 y AKKU

Si durante el procesamiento de un programa STEP 5 aparecen errores en el ARRANQUE o en el CICLO, para los que existe un módulo de organización

2 como interfaz con el usuario, entonces el programa de sistema deposita automáticamente, en cada llamada al módulo de organización correspondiente, informaciones adicionales en los acumuladores AKKU 1 y AKKU 2, los cuales especifican más detalladamente la causa del error (véase capítulo 5.6).

El identificador de error en el AKKU 1 permite determinar de qué tipo de error se trata.

El identificador de error en el AKKU 2 (si es que ha sido registrado) indica dónde se ha verificado el error.

Los identificadores de error están registrados en formato de datos KH.

Evaluación del Con la función on line "Salida AG-INFO/USTACK" se puede leer directamente en AKKU 1 y AKKU el USTACK el contenido de los dos acumuladores, para así determinar la causa 2 con el aparato exacta del error. de programación

Evaluación del Puesto que los identificadores de error se depositan automáticamente en los AKKU 1 AKKU 1 y AKKU y AKKU 2 cuando se llama a uno de los módulos de organización de error, estos 2 con STEP 5 identificadores pueden ser considerados para la programación del OB de error.

Así es posible programar en un solo módulo de organización, diferentes reacciones para las distintas clases de errores, en dependencia del identificador de error que haya sido registrado.

Función on line La función on line del aparato de programación "Salida AG-INFO/ BSTACK" "Salida AG-INFO/ permite obtener en el STOP informaciones sobre el contenido de la pila de BSTACK" módulos (BSTACK - véase capítulo 3.2 "Anidamiento de módulos").

En el BSTACK están registrados, a partir del OB 1 o FB O, todos los módulos que han sido llamados sucesivamente hasta pasar a STOP y que hasta ese momento no han sido procesados por completo. La línea superior del BSTACK contiene el último módulo que ha sido llamado en el momento en que se produjo el error.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 188: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Informaciones en Al evaluar la línea superior se obtienen las siguientes informaciones: BSTACK

Ejemplo

Información

MODULO-NR.

MODULO-DIR.

DIREC.-RETORNO

D1R.-REL

DB-NR.

DB-DIR

MODULO-NR. MODULO-DIR. DIREC.-RETORNO D1R.-REL. DB-NR DB-DIR.

OB 23 0063 0064 O001 13 0078

FB 5 006A 0072 0008 13 0078

FB 6 008A 0091 0007 100 0098

OB 1 009D 009E O001

Significado

Clase y número del módulo que ha llamado al módulo defectuoso

Dirección inicial absoluta de este módulo en la memoria de usuario

Dirección absoluta de la siguiente operación STEP 5 a procesar en este módulo en la memoria de usuario

Dirección relativa (= diferencia "DIREC.- RETORNO - MODULO-DIR.") de la operación siguiente a ejecutar en este módulo (las direcciones relativas pueden ser visualiza- das en el aparato de programación en el modo de operación "bloqueo de entradas"/interruptor de llave y con SS-DOS a partir de la versión IV mediante la tecla de función "direcciones ")

Número del Último módulo de datos abierto en este módulo

Dirección inicial absoluta de este módulo de datos (dirección de la palabra de datos DW O) en la memoria del programa

Evaluación de la "Salida AG-INFO/BSTACKM:

El ejemplo indica que se ha producido el estado STOP en el OB 23 al procesarse la instrucción STEP 5 registrada en la dirección absoluta "0064 - 1 = 0063".

El OB 23 (OB de error QVZ) ha sido llamado en el FB 5 en la dirección relativa "0008 - 1 = 0007".

En el FB 6 se ha abierto el módulo de datos DB 100. El módulo de datos válido al pasar la CPU al estado STOP era el DB 13.

El módulo de datos DB 13 ha sido llamado en el FB 5.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 189: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.3 Bits de control y pila de interrupciones

Introducción Las funciones on line del aparato de programación "Salida AG-INFOI USTACK" permiten analizar el estado operativo, las características de la CPU y del programa de usuario, así como las causas posibles de los errores e interrupciones.

Nota Los bits de control se visualizan en todos los estados operativos; el contenido de la pila de interrupciones sólo puede visualizarse en STOP.

Resumen Los datos de diagnóstico se representan de la siguiente forma en la pantalla:

Bits de control:

Los bits de control indican el estado operativo actual o precedente y la causa de la anomalía. Si se producen varios errores, todos éstos estarán representados en los bits de control.

Pila de interrupciones:

En la pila de interrupciones se indica el lugar de la interrupción (direcciones) con el estado actual de los indicadores y el contenido de los acumuladores, así como las causas del error. Cuando se producen varias interrupciones, se crea una pila de interrupciones de varios niveles (máximo 13) constituída por:

Profundidad 01 = última causa de interrupción,

Profundidad 02 = penúltima causa de interrupción, etc ...

Un desbordamiento de la pila de interrupciones provoca el paso inmediato al estado STOP (¡STOP TOTAL!). En este caso hay que efectuar una DESCONEXION/CONEXION de la tensión de red y un NUEVO ARRANQUE.

El significado de las abreviaturas de los bits de control y de la pila de interrupciones se indica a continuación.

Nota El texto visualizado en la pantalla del aparato de programación dependerá del software del aparato utilizado. De ahí que su representación pueda diferir de la aquí impresa, ¡lo que no significa que no sea válida esta última!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 190: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los
Page 191: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Significado de los En las tablas siguientes se explica el significado de los distintos bits. bits de control

Tabla 5-1 Significado de los bits de control en la línea >>STP<<

ión 'STP' de STEP 5

Tabla 5-2 Significado de los bits de control en la línea >>ANL<<

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

&ea >>ANL<< (BITS DE CONTROL)

Bit de control

>>ANL<<

ANL-6 t

M W A

ANL-6 t

A W A

NEUSTA

M W A

A W A

Significado

CPU en estado operativo ARRANQUE

NUEVO ARRANQUE MANUAL CON MEMORIA

NUEVO ARRANQUE AUTOMATICO CON MEMORIA

Se ha solicitado un NUEVO ARRANQUE MANUAL (STOP) o éste fue el último ARRANQUE ejecutado (ARRANQUEBUN).

Se ha solicitado un FEARRANQUE MANUAL (STOP) o éste fue el último ARRANQUE ejecutado (ARRANQUEBUN).

Se ha solicitado un FEARRANQUE AUTOMATICO tras un fallo de la tensión de red (STOP) o éste fue el Último ARRANQUE ejecutado (ARRANQUE/RUN).

Page 192: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Tabla 5-3 Significado de los bits de control en la línea >>RUN<<

&ea >>ANL<< (BITS DE CONTROL)

Significado

Bit de control

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

Tabla 5-2 (continuación):

M W A t

A W A

ANL-2

NEUZU

MWA-ZUL

Se ha solicitado un NUEVO ARRANQUE AUTOMATICO (STOP) o el último arranque ejecutado fue NUEVO ARRANQUE AUTOMATICO (ARRANQUEDUN).

Función doble: - se activa después de llamar "Control elaboración OFF" (a diferencia

de BARBEND en la primera línea de la máscara, también se activa cuando se llama "Control elaboración OFF" en STOP; impide un REARRANQUE),

- se activa después de "Comprimir en STOP"; impide un REARRANQUE.

El NUEVO ARRANQUE (STOP) es admisible o lo era en el último ARRANQUE (ARRANQUEIRUN).

El REARRANQUE MANUAL es admisible (STOP) o en el último ARRANQUE era admisible un REARRANQUE MANUAL (ARRANQUEIRUN).

Page 193: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Tabla 5-4 Significado de los bits de control en la líneas 4 y 5

Los bits de control de las líneas 6 a 8 (véase tabla siguiente) señalan los errores que se pueden producir en los estados operativos ARRANQUE (por ejemplo, durante el primer NUEVO ARRANQUE) y en RUN (por ejemplo, en el procesamiento controlado por tiempo). Si se han producido vanos errores, en las últimas tres líneas de los bits de control se representan todas las causas de interrupción (jaún no procesadas!) que han tenido lugar hasta el momento. Observar al respecto el dato de sistema BS 2: contiene la UAMK (palabra colectora de indicadores de interrupción, 16 bit), en la que también se encuentran registrados todos los errores que aún no han sido procesados (capítulo 8.3.5).

Bit de control

32KWRAM

16KWRAM

8KWRAM

EPROM

KM-AUS

KM-EIN

DIG-EIN

DIG-AUS

URGELOE

URLIA

STP-VER

ANL-ABB

UA-PG

UA-SYS

UA-PRFE

UA-SCH

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

&eas 4 y 5 (BITS DE CONTROL)

Significado

Tarjeta en modo RAM (32 x 21°palabras)

Carece de importancia en la versión -3UB21

Carece de importancia en la versión -3UB21

Tarjeta en modo EPROM (32 x 21°palabras)

La lista de direcciones para salidas de marcas de acoplamiento del DB 1 existe.

La lista de direcciones para entradas de marcas de acoplamiento del DB 1 existe.

La lista de direcciones de entradas digitales existe.

La lista de direcciones de salidas digitales existe.

Se ha ejecutado un borrado total de la CPU (se requiere NUEVO ARRANQUE).

Se está ejecutando un borrado total de la CPU.

La CPU ha causado el stop del autómata programable.

El ARRANQUE ha sido abortado (se requiere un NUEVO ARRANQUE).

El aparato de programación ha solicitado un BORRADO TOTAL.

El programa de sistema ha solicitado un BORRADO TOTAL (imposible ejecutar un ARRANQUE); hay que ejecutar un BORRADO TOTAL.

Petición de borrado total por error de la CPU

Petición previa de borrado total por accionamiento del selector: ejecutar un BORRADO TOTAL o elegir un modo de arranque si no se desea ejecutar el BORRADO TOTAL solicitado.

Page 194: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Tabla 5-5 Significado de los bits de control en las líneas 6 a 8

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Bit de control

DXO-FE

FE-22

MOD-FE

RAM-FE

DBO-FE

DB1-FE

DB2-FE

KOR-FE

N A U

P E U

B A U

STUE-FE

Z Y K

Q V Z

A D F

WECK-FE

B C F

&eas 6 a 8 (BITS DE CONTROL)

Significado

Error de parametnzación en el DX O o DX 2

No ocupado

El contenido de la Memory Card es erróneo (se requiere un BORRADO TOTAL).

El contenido de la memoria de usuario o de la DB-RAM es erróneo (se requiere un BORRADO TOTAL).

La estructura de las listas de direcciones de módulos del DB O es errónea.

La estructura de las listas de direcciones del DB 1 para la actualización de la imagen de proceso es errónea: - el DB 1 no está programado estando el coordenador enchufado o

en modo multiprocesador, - la estructura o el contenido del DB 1 son erróneos.

Error de evaluación del módulo de datos de parame- tnzación DB 2 de la estructura de regulador R64

Error en intercambio de datos con el coordinador

Fallo de la tensión de red en el aparato central

Periferia no disponible = fallo de la tensión de red en el aparato de ampliación

Batería defectuosa = fallo de la batería tampón del aparato central

Desbordamiento de la pila de interrupciones o de módulos (la profundidad de anidamiento es demasiado elevada; se requiere un NLJEVO ARRANQUE)

Exceso del tiempo de supervisión de ciclo

Retardo en acuse de recibo al intercambiar datos con la penfena

Error de direccionamiento de las entradas o salidas: error debido a un acceso a la imagen de proceso, habiéndose llamado a tarjetas de EIS que durante el último NUEVO ARRANQUE no estaban conectadas o eran defectuosas, o bien no estaban indicadas en el DB 1.

Colisión de alarmas temponzadas: antes de procesar un determinado OB de alarma temponzada, o bien durante su procesamiento ha sido activada otra alarma temporizada para el mismo OB.

Error en código de instrucción: - error de sustitución: instrucción STEP 5 ejecutada no sustituible - error de código de operación: instrucción STEP 5 ejecutada errónea - error en parametrización: el parámetro de la instrucción STEP 5

ejecutada erróneo

Page 195: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.3.2 Contenido de la pila de interrupciones (USTACK)

Introducción Cuando la CPU está en STOP, después de aparecer en pantalla los bits de control y de confirmar mediante la tecla de aceptación, se visualiza el contenido de la pila de interrupciones. Al pasar la CPU a stop, el programa de sistema registra en la pila de interrupciones todas las informaciones necesarias para un rearranque.

Las informaciones de USTACK indican de qué tipo de error se trata y dónde ha tenido lugar.

Si la causa del STOP ha sido un solo error, entonces se visualiza un solo nivel de información de USTACK. Si han aparecido varios errores, entonces se visualizan tantos niveles de información USTACK como hayan aparecido errores (PROFUND. 01, PROFUND. 02, etc.). En todos los niveles está marcado con una cruz un solo error bajo CAUSA DE ERROR.

Si la causa del STOP han sido varios errores, en el nivel PROFUND. 01 estará marcado el error que ha sido detectado inmediatamente antes de la parada de la CPU.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 196: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Representación La figura 5-2 muestra un ejemplo de la visualización de la pila de interrupciones en la pantalla en el aparato de programación.

/ PILA DE INTERRUPCIONES \ PROFUND. 02

BEF-REG: C70A SAZ: 00F3 DB-ADR: 0000 BA-ADR: O000

BST-STP: 0002 FB-NR.: 226 DB-NR.: OB-NR.: REL-SAZ: 0006 DBL-REG.: O000

NIVEL: 0004 UAMK: 0200 UALW: O000

AKKUI: 0000 C464 AKKU2: 0000 OOFF AKKU3: 0000 0000 AKKU4: 0000 0000 l 1 PARENT.: KEI 111 KE2 100 KE3 111 l - INFO. RESULTADO: ANZI ANZO OVFL OVFLS ODER ERAB

X STATUS VKE

X X CAUSA DE ERROR: N AU PEU BAU MPSTP ZYK QVZ

ADF STP BCF S-6 LZF REG-FE X

STUEB STUEU WECK DOPP i

Fig. 5-2 Ejemplo de la primera página del indicador "USTACK": contenido

Explicación de PROFUND. los indicadores USTACK Nivel de información de la pila USTACK en caso de anidamiento de errores:

PROFUND. 01 = última causa de error PROFUND. 02 = penúltima causa de error ...... PROFUND. 13 = ...... (profundidad máxima)

. ., sobre la localizacion del eniar

La tabla siguiente contiene datos (identificaciones de USTACK) sobre el lugar en que se ha producido el error. Estos datos permiten localizar en el programa de usuario la instrucción que ha causado el STOP de la CPU.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 197: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Tabla 5-6 Significado de las identificaciones de USTACK sobre la localización del error

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Identific. USTACK

BEF-REG

BST-STP

NIVEL Z

Datos sobre la localización del error

Significado

Registro de instrucciones:

contiene el código máquina (lvalabra de la Última instrucción procesada en un nivel de procesamiento interrumpido), véase lista de operaciones, bajo la lista del código máquina.

Puntero de la pila de módulos:

contiene la cantidad de elementos registrados en la pila de módulos (BSTACK) en el instante en que se produjo 1 interrupción de este nivel de procesamiento.

Indica el nivel de procesamiento que ha sido interrumpido: Z: 0002: NUEVO ARRANQUE

0004: CICLO 0006: AL. TEMP.15 S (OB 18) 0008: AL. TEMP.12 S (OB 17) 000A: AL. TEMP.11 S (OB 16) 000C: AL. TEMP.1500 ms (OB 15) 000E: AL. TEMP.1200 ms (OB 14) 0010: AL. TEMP.1100 ms (OB 13) 0012: AL. TEMP.150 ms (OB 12) 0014: AL. TEMP.120 ms (OB 11) 0016: AL. TEMP.110 ms (OB 10) 0018: PETICION DE TIEMPO 001A: No ocupado 001C: ALARMA DE REGULADOR 001E: No ocupado 0020: ALARMA DE RETARDO 0022: No ocupado 0024: ALARMA DE PROCESO 0026: No ocupado 0028: NUEVO ARRANQUE MANUAL CON MEMORIA 002A: NUEVO ARRANQUE AUTOMATICO CON

MEMORIA 002C: Paso al estado STOP por STOP en modo

multiprocesador, selector en STOP o PG-STOP 002E: Error de interfaz 0030: Colisión de alarmas temporizadas 0032: Error de regulador 0034: Error de ciclo 0036: No ocupado 0038: Error en código de instrucción 003A: Error en tiempo de ejecución 003C: Error de direccionamiento 003E: Retardo en acuse de recibo 0040: No ocupado 0042: No ocupado 0044: REARRANQUE MANUAL 0046: REARRANQUE AUTOMATICO

Page 198: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Datos sobre la localización del error

Identific. USTACK Significado

Tabla 5-6 (continuación):

SAZ

... NR.

REL-SAZ

UAMK

UALW

DB-ADR

DB-NR

DBLREG

BA-ADR

... NR.

AKKUl a AKKU4

PARENT.

Contador de direcciones STEP: - Contiene la dirección absoluta de la Última instrucción procesada

en un nivel de procesamiento interrumpido en la memoria de pr"gra-.

- ¡En caso de error indica exactamente la instrucción que ha causado el error!

- Antes de ejecutar la primera instrucción de un nivel de procesamiento, el SAZ está a 'O'.

Tipo y número del Último módulo procesado

Contador STEP de direcciones relativas: Contiene la dirección relativa (a la dirección inicial del módulo) de la última instrucción ejecutada en el último módulo procesado (ias direcciones relativas pueden visualizarse en el aparato de programación en estado operativo "bloqueo de entradasu/ interruptor de llave o con SS-DOS a partir de la versión IV mediante tecla de función, o bien imprimiendo el módulo).

Palabra colectara de indicadores de interrupción: UAMK indica los errores aparecidos hasta el momento y cuyo tratamiento aún no ha concluido (véase capítulo 8.3.5).

Palabra borradora de indicadores de interrupción (véase capítulo 8.3.5)

Dirección inicial absoluta (DW O) del Último módulo de datos abierto en la memoria de programa (= 0000, si no se ha abierto ningún módulo de datos)

Número del último módulo de datos abierto

Longitud del Último módulo de datos abierto

Dirección absoluta en la memoria de programa de la próxima instrucción a ejecutar en el último módulo que ha efectuado una llamada

Tipo y número del Último módulo que ha efectuado una llamada

Contenido del registro de cálculo al producirse la interrupción: En determinados casos de error el programa de sistema deposita identificadores de error en AKKU 1 y AKKU 2 que indican más detalladamente la causa del error.

Cantidad de niveles de paréntesis: "KEx abc" con x = 1 a 7 niveles a = 'OR' (o, véase indicadores de bit) b = 'VKE' (resultado de combinación, véase indicadores de bit) C = 1: 'U(' C = o: 'O('

Page 199: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

INDICADOR DE RESULTADO

véase capítulo 3.5

CAUSAS DE ERROR

Las siguientes abreviaturas (identificaciones de USTACK) representan las causas de error más importantes. Solamente estarán marcadas con una cruz las causas de interrupción que hayan tenido efecto en el nivel de procesamiento visualizado (¡véase NIVEL!).

Las causas de error indicadas reflejan el contenido de la palabra colectora de los indicadores de interrupción (UAMK, 16 bit; véase capítulo 8.3.5). En parte son idénticas a las indicaciones de los bits de control.

Tabla 5-7 Identificaciones de USTACK: CAUSAS DE ERROR

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. USTACK

NAU

PEU

BAU

MPSTP

ZYK

Qvz

ADF

STP

BCF

S-6

CAUSAS DE ERROR

Significado (OB de error iiamado)

Fallo de la tensión de red en el aparato central

Penfena no disponible = fallo de la tensión de red en el aparato de ampliación

Bateda defectuosa = fallo de la batería tampón (aparato central)

STOP en modo multiprocesador: - Selector del coordinador en STOP o - STOP en otra CPU en modo multiprocesador

Exceso del tiempo de supervisión de ciclo

Retardo en acuse de recibo al intercambiar datos con la periferia.

Error de direccionamiento en las entradas y salidas digitales con imagen de proceso

- Estado STOP por posición del selector en STOP - Estado STOP por instrucción del PG - Estado STOP tras ejecutar la operación de 'STP' de STEP 5 - Estado STOP por instrucción STOP del programa de

sistema, si no está programado el módulo de organización de error

Errores en código de instrucción: errores detectados al decodificar las instrucciones: - error de sustitución: la instrucción STEP 5 ejecutada no es

sustituible. - error de código de operación: la instrucción STEP 5 ejecutada

es errónea. Error de parámetro: el parámetro de la instrucción STEP 5 ejecutada no es válido.

Error de interfaz

Page 200: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

CAUSAS DE ERROR

Ident. USTACK Significado (OB de error iiamado)

Tabla 5-7 (continuación):

LZF

REG- FE

STUEB

STUEU

WECK

DOPP

Errores en tiempo de ejecución: errores detectados al ejecutar las instrucciones: - el módulo llamado no está cargado. - error de carga/transferencia de módulos de datos - otros errores en tiempo de ejecución

Error en procesamiento de la estructura de regulador R64 en el CICLO

Desbordamiento de la pila de módulos: la profundidad de anidamiento es demasiado elevada; solución: NUEVO ARRANQUE

Desbordamiento de la pila de interrupciones: La profundidad de anidamiento es demasiado elevada; solución: NUEVO ARRANQUE

Colisión de alarmas temporizadas: antes de procesar un determinado OB de alarma temporizada, o bien durante su procesamiento, ha sido activada otra alarma temponzada para el mismo OB.

Error doble: se activa por segunda vez un nivel de procesamiento todavía activado (ADF, BCF, LZF, QVZ, REG-FE, 9. Se requiere NUEVO ARRANQUE.

Page 201: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.3.3 Ejemplo de diagnóstico de errores mediante USTACK

ra 5-3 muestra la estructura de la pila de interrupciones (USTACK) en n con las interrupciones ocasionadas.

ALARMA TEMP~RIZADA y se procesa el OB 13. - Debido a la aparición de una alarma de proceso se abandona el nivel ALARMA

TEMPORIZADA, se activa el nivel ALARMA DE PROCESO y se procesa el O B 2. - A causa de una instrucción de direccionamiento errónea se activa el nivel

ADF y en éste se procesa el OB 25. E1 usuario ha programado una instrucción de parada (STP) en su programa de tratamiento de errores: la CPU aborta por consiguiente el procesamiento del programa.

Profundidad 01

Profundidad 02

Profundidad 03

TEMPORIZADA

Profundidad 04

USTACK

Fig. 5-3 Ejemplo 1 de evaluación de la pila de interrupciones (USTACK)

Antes de pasar definitivamente al estado STOP, han sido interrumpidos en total 4 diferentes niveles de procesamiento. Visualizando la pila USTACK en el PG aparece una pila de interrupciones de cuatro niveles, de los cuales el primero será el de profundidad 01, en el cual está registrada la identificación del 6ltim0 nivel de procesamiento interrumpido (=ADF). A continuación, se puede acceder a los demás niveles hasta llegar a la pila de interrupciones de profundidad 04, la cual representa el nivel de procesamiento CICLO, el cual ha sido interrumpido en primer lugar.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 202: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

En este ejemplo, la CPU detecta un error de direccionamiento en el OB 1 al ejecutar la instrucción U Ex.y. Esto conduce al procesamiento del OB 25. A causa de una operación STP en el PB 5, la CPU pasa al estado STOP (véase

Fig. 5-4 Ejemplo 2 de evaluación de la pila de interrupciones (USTACK)

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 203: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

USTACK contiene 2 n i v e l e s (véanse f iguras 5-5 y 5 -6 ) :

PlLA DE INTERRUPCION

PROFUND. 01

BEF-REG: STP SAZ: 1007 DB-ADR:

0003 PB-NR.: 5 DB-NR.: 16 08-NR.: REL-SAZ: 0007 DBL-REG.:

003C UAMK: 0300 UALW: O000

INFO RESULTADO: ...

CAUSA DE ERROR:

Fig. 5-5 Ejemplo 2 de evaluación de la pila USTACK: 1"ivel de USTACK

PlLA DE INTERRUPCION

PROFUND. 02

IBEF-REG: U EX.Y SAZ: OOIA DB-ADR: 0001 08-NR.: 1 DB-NR.:

REL-SAZ: OOOA DBL-REG.:

0004 UAMK: 0200 UALW: O000

INFO RESULTADO: ...

CAUSA DE ERROR:

Fig. 5-6 Ejemplo 2 de evaluación de la pila USTACK: 2"ivel de USTACK

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 204: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.4 Tratamiento de errores mediante módulos de organización

Introducción Cuando el programa de sistema detecta un determinado error, llama al módulo de organización previsto para ese caso. Es posible definir el comportamiento de la CPU programando dicho módulo de organización de forma apropiada. Dependiendo de cómo se haya programado el módulo de organización es posible

continuar el procesamiento normal,

poner la CPU en STOP

procesar un "programa de error" específico.

Asignación Existen módulos de organización para los siguientes tipos de error: "Causa del error - OB de error"

Tabla 5-8 Módulos de organización llamados en caso de error

l) con ajuste por defecto del DX O

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 205: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Reacción cuando el módulo de organización

Si el módulo de organización no está cargado la reacción dependerá del error que se ha producido.

no está cargado No se interrumpe el procesamiento cíclico del programa

Si por ejemplo tiene lugar un retardo en acuse de recibo y el OB 23, el OB 24 y el OB 35 no están cargados, el procesamiento cíclico del programa no se interrumpe. No hay reacción de la CPU.

Si la CPU ha de pasar a STOP en caso de QVZ, el módulo de organización deberá contener una instrucción de stop y terminar con la instrucción 'BE', o bien se deberá parametrizar el DX O adecuadamente.

Programa para STOP:

: STP :BE

Estado STOP

En los demás casos de error, la CPU se pone inmediatamente en STOP si los módulos de organización correspondientes no han sido programados por el usuario.

Si de forma excepcional (por ej., durante la puesta en funcionamiento) uno u otro error no debe interrumpir el procesamiento cíclico del programa, basta una instrucción de "fin de módulo" en el módulo de organización correspondiente, o bien parametrizar el DX O de forma adecuada.

Programa para funcionamiento ininterrumpido:

Nota El módulo de organización OB 28 constituye una excepción. En este caso siempre se pasa al estado STOP, independientemente de que el OB 28 esté o no esté cargado, y de cómo esté programado.

Si no se desea programar el módulo de organización correspondiente, existe la posibilidad de impedir que la CPU pase al estado STOP parametrizando adecuadamente el módulo de datos DX O.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 206: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Interrupciones en el procesamiento de módulos de organización de error

Una vez que el programa de sistema ha llamado al correspondiente módulo de organización, se procesa el programa de usuario allí contenido. Si durante el procesamiento de un módulo de organización vuelve a producirse un error, al igual que en el procesamiento cíclico, se interrumpe el programa en el próximo límite de instrucción y se llama al correspondiente módulo de organización.

Los módulos de organización se procesan en el orden que han sido llamados. La cantidad de módulos de organización de error que pueden ser anidados, depende de:

- la clase de erroc

No se pueden anidar módulos de organización que correspondan al mismo nivel de procesamiento. (En cuanto a la asignación de los OBs de error a los niveles de procesamiento de programa, véase el capítulo siguiente).

Cuando se procesa el OB 27 (nivel de procesamiento de programa BCF) se puede anidar, por ejemplo, un OB 32 (nivel de procesamiento LZF), pero no se puede anidar un OB 29 u OB 30 (también BCF).

En caso de llamada doble a un nivel de procesamiento de programa, la CPU pasa inmediatamente al estado STOP.

- la cantidad de niveles de procesamiento de proprama activados en s t e momento;

En caso de interrupción, el programa de sistema requiere un espacio de memoria determinado por cada nivel de procesamiento activado, a fin de poder generar la pila USTACK. Si el espacio no es suficiente se produce un desbordamiento de la pila.

En caso de desbordamiento de la pila USTACK, la CPU pasa inmediatamente al estado STOP.

- la cantidad de módulos llamados en este momento;

En caso de desbordamiento de la pila BSTACK, la CPU pasa inmediatamente al estado STOP.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 207: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.5 Errores en el ARRANQUE

Introducción Las anomalías y errores que se producen durante la inicialización y el arranque pueden conducir a que el programa de usuario sea interrumpido y la CPU pase al estado STOP. Las causas de interrupción que tienen lugar en el programa de arranque (módulos de organización OB 20,21 y 22) son tratadas como en el CICLO.

Excepción: En caso de un STOP en el arranque no se llama al módulo de organización OB 28.

Causas de interrupción y error

Ante las causas de interrupción y error expuestas en la tabla siguiente no se puede reaccionar con interfaces con el usuario (OB de error).

Tabla 5-9 Causas de error e interrupción en el ARRANQUE

l) Para mayor información, véanse las páginas siguientes.

Bit de control o ident. en USTACK

STP

BAU

NAU

PEU

STUEU

STUEB

DOPP-FE

RAM-FE

MOD-FE

DBO-FE ')

DB1-FE ')

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

Instrucción de stop del programa de sistema (en caso de FE-STP) o en el programa de usuario

Fallo de la batería tampón en el aparato central

Fallo de la tensión de red en el aparato central

Fallo de la tensión de red en un aparato de ampliación

Desbordamiento de la pila de interrupciones (USTACK)

Desbordamiento de la pila de módulos (BSTACK)

Llamada doble a un nivel de tratamiento de errores

Error de inicialización: el contenido de la RAM de sistema o de la DB-RAM es defectuoso.

Error en inicialización: el contenido de la Memory Card no es correcto.

Error de estructuración de la lista de direcciones de módulos (DB O)

Error de evaluación del DB 1 para estructurar la lista de direcciones para la actualización de la imagen de proceso

Page 208: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.5.1 DBO-FE (error DB O)

Introducción Error de estructuración de la lista de direcciones de módulos (módulo de datos DB O)

El DB O es estructurado por el programa de sistema después de un borrado total. En caso de producirse un error de DB O, en las palabras de datos de sistema BS 3 y BS 4 se encuentran identificadores de error que definen más detalladamente los errores ocurridos.

Identificadores En la tabla siguiente figuran los identificadores de error del DB O. de errores

Tabla 5-10 Identificadores de errores de DB O

5.5.2 DBI-FE (error DB 1)

Ident. de error BS3 BS4

8001H yyyyH

8002H yyyyH

8003H yyyyH

8004H yyyyH

8005H yyyyH

Introducción Error de evaluación del DB 1 para estructurar la lista de direcciones para la actualización de la imagen de proceso

Significado

Longitud de módulo errónea yyyy = dirección del módulo cuya longitud es errónea

Dirección final calculada del módulo que se encuentra en la memoria es errónea yyyy = dirección del módulo

Identificación de módulo no válida yyyy = dirección del módulo cuya identificación es errónea

Número del módulo de organización demasiado elevado (válidos: OB 1 a OB39) yyyy = dirección del módulo cuyo número es erróneo

Número del módulo de datos O (válidos: DB 1 a DB 255) yyyy = dirección del módulo cuyo número es erróneo

falta DB 1 en modo multiprocesador

lista de direcciones del DB 1 errónea durante un NUEVO ARRANQUE.

Nota En modo multiprocesador se comprueba en todos los modos de arranque si el DB 1 existe. ¡Sin embargo, la evaluación de los parámetros del DB 1 solamente se efectúa durante un NUEVO ARRANQUE!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 209: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Identificadores En la tabla siguiente figuran los identificadores de error del DB 1. de errores

Tabla 5-11 Identificadores de errores de DB 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error BS3 BS4

0410H yyyyH

0411H yyyyH

0412H yyyyH

0413H yyyyH

0414H yyyyH

0415H yyyyH

0419H yyyyH

041AH yyyyH

041BH yyyyH

041CH yyyyH

Significado

Identificación no válida: - identificación de la cabeza falta o es errónea

(correcta es KC MASKO1) - identificación no válida (válidas KH DEOO, DAOO, CEOO,

CAOO, BBOO) - identificación final falta o es errónea (correcta es KH EEEE) yyyy = identificación no válida

"Entradas digitales", la cantidad de direcciones no es válida (válidas 0...128) yyyy = cantidad de direcciones no válida

"Salidas digitales", la cantidad de direcciones no es válida (válidas 0...128) yyyy = cantidad de direcciones no válida

"Entradas de marcas de acoplamiento", la cantidad de direcciones no es válida (válidas 0...256) yyyy = cantidad de direcciones no válida

"Salidas de marcas de acoplamiento", la cantidad de direcciones no es válida (válidas 0...256) yyyy = cantidad de direcciones no válida

Cantidad de temporizadores no válida (válidos: 256) yyyy = cantidad de temporizadores no válida

Retardo en acuse de recibo de entradas digitales yyyy = dirección del byte de entrada no acusado

Retardo en acuse de recibo de salidas digitales yyyy = dirección del byte de salida no acusado

Retardo en acuse de recibo de entradas de marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

Retardo en acuse de recibo de salidas de marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

Page 210: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.5.3 DB2-FE (error DB 2)

Introducción Error al evaluar el módulo de datos de parametrización DB 2 de la estructura de regulador R64 (inicialización del regulador).

En caso de un error DB 2, en las palabras de datos de sistema BS 3 y BS 4 se encuentran identificadores de error que definen más exactamente el error ocurrido.

Identificadores En la tabla siguiente figuran los identificadores de error del DB 2. de errores

Tabla 5-12 Identificadores de errores de DB 2

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error BS3 BS4

0421H DByyH

0422H FByyH

0423H FByyH

0424H FByyH

0425H DByyH

0426H -

Significado

El módulo de datos no está cargado yy = número del módulo de datos no cargado

El módulo de funciones no está cargado yy = número del módulo de funciones no cargado

El módulo de funciones no ha sido detectado yy = número del módulo de funciones no detectado

Módulo de funciones cargado con software de PG erróneo yy = número del módulo de funciones

Longitud errónea del módulo de datos de regulador yy = número del módulo de datos

Para desplazar los DBs de regulador del EPROM de usuario a la DB-RAM no basta el espacio de memoria de la DB-RAM.

Page 211: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.5.4 DXO-FE (error DX O ó DX 2)

Errores de evaluación del módulo de datos DX O

Errores de evaluación del módulo de datos DX 2

Nota Los errores DX O y DX 2 tienen un bit de control común (DXO-FE) en la máscara de bits de control.

En caso de un error DX O, las palabras de datos de sistema BS 3 y BS 4 contienen identificadores de error que definen más detalladamente el error que se ha producido.

Tabla 5-13 Identificadores de errores de DX O

Parametrización de la 2Vnterfaz serie: El módulo de datos DX 2 es controlado por el programa de sistema durante el NUEVO ARRANQUE. En caso de un error DX 2, en las palabras de datos de sistema BS 3 y BS 4 se encuentran identificadores de error que explican más detallamente el error que se ha producido.

Ident. de error BS3 BS4

0431H yyyyH

0432H yyyyH

0433H yyyyH

0434H yyyyH

Tabla 5-14 Identificadores de errores de DX 2

Significado

Identificación no admisible: - La identificación de la cabeza falta o es incorrecta

(correcta es KC MASKXO) - Identificación de bloque no válida - La identificación final falta o es incorrecta

(correcta es KH EEEE) yyyy = identificación no admisible

Parámetro no admisible yyyy = parámetro no admisible

Cantidad de temporizadores no admisible (válidas: 0...256) yyyy = cantidad errónea de temporizadores

Tiempo de supervisión de ciclo no admisible (válido: 1 ms a 13000 ms) yyyy = tiempo erróneo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error BS3 BS4

0451H -

0452H yyyyH

0453H yyyyH

Significado

Longitud DX 2 (sin cabeza de módulo) < 4 palabras no es admisible.

Longitud DX 2 (sin cabeza de módulo) es demasiado corta para el tipo de acoplamiento yyyy = longitud DX 2

Tipo de acoplamiento no válido yyyy = tipo de acoplamiento

Page 212: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error BS3 BS4

Significado

Tabla 5-14 (continuación):

0454H xxOOH

0455H xxyyH

0456H xxyyH

0457H yyyyH

0458H xxOOH

0459H xxyyH

045AH xxOOH

045BH xxyyH

045CH xxOOH

045DH xxyyH

045EH xxOOH

045FH xxyyH

0460H xxyyH

0461H yyyyH

Identificación de datos no válida para lote de parámetros estático (no es igual a 44H, 58H) xx = identificación de datos

Módulo no válido para el lote de parámetros estático xx = identificación / yy = número de DB

Lote de parámetros estático no existe. xx = identificación / yy = número de DB

Lote de parámetros estático demasiado corto yyyy = número de la DW que falta

Identificación de datos no válida para lote de parámetros dinámico (no es igual a 44H, 58H, OOH) xx = identificación de datos

Módulo no válido para el lote de parámetros dinámico xx = identificación / yy = número de DB

Identificación de datos no válida para buzón de emisión/peticiones (no es igual a 44H, 58H, OOH) xx = identificación de datos

Módulo no válido para buzón de emisión/ peticiones xx = identificación / yy = número de DB

Identificación de datos no válida para buzón de recepción (no es igual a 44H, 58H, OOH) xx = identificación de datos

Módulo no válido para buzón de recepción xx = identificación / yy = número de DB

Identificación de datos no válida para bytes de coordinación (no es igual a 44H, 58H, 4DH) xx = identificación de datos

Módulo no válido para bytes de coordinación xx = identificación / yy = número de DB

Módulo para bytes de coordinación no existe . xx = identificación / yy = número de DB

Palabra de datos para bytes de coordinación no existe. yyyy = número de la DW que falta

Page 213: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.5.5 MOD-FE (error de Memory Card)

Introducción Al evaluar una Memory Card y copiar los módulos de la misma se realizan diversas comprobaciones. Si se presenta un error, se activa el bit de control MOD-FE en la pantalla de bits de control y se introduce un identificador adicional en la palabra de datos del sistema BS 3.

Identificadores Si se detecta un error en dichas comprobaciones, aparecerá un identificador de de error en BS 3 error en la palabra de datos del sistema BS 3 que describe el fallo (el contenido

de BS 4 carece de importancia).

Tabla 5-15 Identificadores de error en la Memory Card y de errores detectados al copiar módulos

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 214: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6 Errores en RUN y en el ARRANQUE

Introducción En el estado operativo RUN, el procesamiento cíclico, controlado por tiempo o por alarmas, o el procesamiento de reguladores puede ser interrumpido en límites de instrucciones por errores como por ejemplo, fallo de la tensión de red en el aparato central o desbordamiento de la pila de módulos.

Cuando se producen errores durante la inicialización o el ARRANQUE, el programa de arranque se interrumpe y la CPU pasa al estado STOP o llama al módulo de organización previsto para el tipo de error en cuestión. Las interrupciones que se producen en el programa de arranque tienen el mismo tratamiento que en el CICLO.

Cabe diferenciar entre los fallos que conducen inmediatamente al estado STOP de la CPU (por ej. STUEU) y los fallos que conducen a que el programa de sistema, en vez de pasar al estado STOP, llame a determinados módulos de organización (por ej. ADF), que pueden ser programados por el usuario.

Ante las causas de error e interrupción indicadas en las dos tablas siguientes no se puede reaccionar mediante interfaces de usuario (OBs de error).

Errores que Cuando se produce uno de estos errores se forma una pila de interrupciones conducen (USTACK) que visualiza el error que ha tenido lugar. directamente a un STOP Tabla 5-16 Causas de error e interrupción en el ARRANQUE y en RUN que conducen

directamente al estado STOP

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Bit de control o ident. en USTACK

STP

BAU

NAU

PEU

STUEU

STUEB

DOPP-FE

Significado

STOP por el programa de sistema (en caso de errores de máquina), cuando un OB de error no está cargado, o instrucción de STOP en el programa de usuario

Fallo de la batería tampón en el aparato central

Fallo de la tensión de red en el aparato central

Fallo de la tensión de red en un aparato de ampliación

Desbordamiento de la pila de interrupciones (USTACK) por excesiva profundidad de anidamiento

Desbordamiento de la pila de módulos (BSTACK) por excesiva profundidad de anidamiento

Llamada doble a un nivel de tratamiento de errores

Page 215: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Errores que Esos errores provocan la llamada a un OB de error. provocan la llamada a un OB de error

Tabla 5-17 Causas de error e interrupción en el ARRANQUE y en RUN que provocan la llamada a un OB de error

Las páginas siguientes describen más detalladamente las causas de estos errores.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 216: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6.1 BCF (error en código de instrucción)

Introducción Un error en código de instrucción se produce cuando la CPU no puede interpretar o ejecutar una instrucción STEP 5 del programa de usuario. Todos los códigos válidos están indicados en la lista de operaciones.

La instrucción causante del correspondiente error en código de instrucción no se ejecuta. Si el correspondiente módulo de organización de BCF está cargado, se llama y se ejecuta y luego se continúa la ejecución del programa de usuario desde el punto de interrupción. Si el OB de BCF no está cargado, la CPU pasa al estado STOP.

Cabe diferenciar los siguientes errores en código de instrucción, para los que se llama al OB de error indicado:

Error de sustitución (OB 27)

Si en un módulo de funciones se ha de ejecutar una operación con un operando formal, en el procesamiento del programa de usuario, la CPU sustituye el operando formal por el operando actual de la llamada al módulo de funciones.

Si una CPU detecta una sustitución no válida, el programa de sistema interrumpe el procesamiento del programa de usuario y llama al módulo de organización OB 27, si es que ha sido cargado.

El AKKU 1 contiene informaciones adicionales que explican más detalladamente el error que se ha producido:

Tabla 5-18 BCF - Errores de sustitución

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1801H -

1802H -

1803H -

1804H -

1805H -

1806H -

Significado

Error de sustitución en la instrucción BBS

Error de sustitución en las instrucciones DW, BMW

Error de sustitución en las instrucciones B=, BI

Error de sustitución en las instrucciones L=, T=

Error de sustitución en las instrucciones U=, UN=, O=, ON=, ==, S= y RB=

Error de sustitución en las instrucciones RD=, LC=, FR=, SAR=, SE=, SSV= y SVZ=

Page 217: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Error en código La CPU detecta un error en código de operación en el procesamiento de un de operación programa STEP 5 cuando se ha programado una instrucción que no pertenece al (OB 29) conjunto de instrucciones STEP 5 de la CPU 928B (por ej., se pueden programar

instrucciones RU y SU con el aparato de programación, sin embargo éstas no pueden ser interpretadas por las CPUs 928B, 928,922 (procesador R) y 921 (procesador S) en el S5-135U).

Cuando se detecta un código de operación no válido, se interrumpe el procesamiento del programa de usuario y se llama el módulo de organización OB 29, si ha sido cargado.

Al llamar al OB 29, en el AKKU 1 se encuentran informaciones adicionales que explican más exactamente el error que se ha producido:

Tabla 5-19 BCF - Errores en código de operación

Error de parámetro (OB 30)

Ident. de error AKKU-1-L AKKU-2-L

1811H -

1812H -

1813H -

1814H -

1815H -

Cuidado Un error en código de operación no debe ser acusado: la CPU no detecta si la instrucción errónea es una instrucción de una o de varias palabras. Cuando la CPU ha procesado el OB 29, trata de continuar el programa con la siguiente palabra de la instrucción. Si se trata de la segunda palabra de una instrucción de varias palabras, la CPU, o vuelve a detectar un error en código de instrucción, o ejecuta esta palabra como instrucción válida, lo que puede conducir a errores de programa arbitrarios.

Significado

Instrucción cuyo código de operación no es válido

Código de operación no válido en una instrucción, en la que el byte alto de la la palabra de la instrucción contiene el valor 68H

Código de operación no válido en una instrucción, en la que el byte alto de la la palabra de la instrucción contiene el valor 78H

Código de operación no válido en una instrucción, en la que el byte alto de la la palabra de la instrucción contiene el valor 70H

Código de operación no válido en una instrucción, en la que el byte alto de la la palabra de la instrucción contiene el valor 60H

Un parámetro no será válido cuando se haya programado una instrucción con un parámetro que no vale para la CPU en cuestión (por ej. llamada a un módulo de datos reservado) o cuando se ha llamado a una función especial no existente.

Cuando la CPU detecta un parámetro no válido, el programa de sistema interrumpe el procesamiento del programa de usuario y llama al módulo de organización OB 30, si ha sido cargado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 218: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Al llamar al OB 30, en el AKKU 1 se encuentran informaciones adicionales que explican más detalladamente el error que se ha producido:

Tabla 5-20 BCF - Errores de parámetro

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1821H -

182BH -

182CH -

182DH -

182EH -

182FH -

1830H -

1831H -

1832H -

1833H -

1834H -

1835H -

1836H -

1837H -

1838H -

1839H -

183AH -

183BH -

183CH -

Significado @arámetro no valido en caso de ..)

A DB O, 1 , 2

SPAQ3) OB O

SPAQ3) OB > 39: función especial no existe

AXDXO,AXDXl,AXDX2

L MW/T MW/L PW/T PW/L QW/T QW/L DD/T DD/B MW 255

L EW/T EW/L AW/T AW 127

L MD/T MD 253,254,255

L ED/T ED/L ADtT AD 125,126,127

RLDIRRDISVDISLD 33-255

SLW/SRW/LIR/TIR 16-255

SESISEF 32-255

U = / U N = / O = / O N = / S = / R B = / = = / RD=/FR=/SI=/SE=/SVZ=/SSV=/ SAR=/L=/LC=/LW=/T= O, 127-255

B=/LD= 0, 126-255

U S/O S/S S/= S/UN S/ON S/R S número de byte > 1023

U S/O S/S S/= S/UN S/ON S/R S número de bit > 7

L SY/T SY parámetro >lo23

L SW/T SW parámetro > 1022

L SD/T SD parámetro >lo20

E DB/EX DX parámetro 0, 1 ó 2 (no se puede crear DB o DX O, 1, 2)

Page 219: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Llamada a un módulo no cargado (OB 19)

5.6.2 LZF (error en tiempo de ejecución)

Introducción Un error en tiempo de ejecución se produce cuando la CPU detecta un error durante el procesamiento de una instrucción STEP 5. La instrucción que ha causado el error en tiempo de ejecución no se ejecuta. Si se dispone de un módulo de organización de error en tiempo de ejecución LFZ, éste es llamado. Después se continúa la ejecución del programa de usuario con la instrucción siguiente a la que ha causado el error. Si no se ha cargado el OB de LZF, la CPU pasa al estado STOP.

Se distinguen los siguientes errores en tiempo de ejecución que producen una llamada al OB de error incicado:

Cuando en el programa de usuario se llama o abre un módulo que no existe, el programa de sistema detecta un error. Esto vale para todos los tipos de módulos y tanto para instrucciones de llamada condicional o incondicional.

Cuando se detecta una llamada o apertura de un módulo que no ha sido cargado, el programa de sistema llama al módulo de organización OB 19, si ha sido cargado. En el OB 19 se puede determinar el comportamiento de la CPU.

Si se ha programado un OB 19, éste es llamado y luego se continúa el procesamiento del programa STEP 5 interrumpido a partir de la siguiente instrucción, a no ser que el OB 19 esté programado con una instrucción de stop. Por el contrario, si el OB 19 no está programado, la CPU pasa al estado STOP en caso de llamar o abrir un módulo que no ha sido cargado.

Al llamar al OB 19, en el AKKU 1 se encuentran informaciones adicionales que explican más exactamente el error que se ha producido:

Tabla 5-21 LZF - Llamada a un módulo no cargado

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

lAOlH -

1A02H -

1A03H -

1A04H -

1A05H -

1A06H -

1A07H -

Significado

Módulo de datos no cargado en caso de A DB

Módulo de datos no cargado en caso de AX DX

Módulo de datos no cargado en caso de SPA(B) FB, OB 1 a OB 39, PB, SB

Módulo de datos no cargado en caso de BA(B) FX

Módulo de datos no cargado en caso de OB 254 u OB 255

Módulo de datos no cargado en caso de OB 182

Módulo de datos no cargado en caso de OB 15010B 15110B 153

Page 220: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Error de carga/ transferencia (OB 32)

Nota Cuando se intenta abrir un módulo de datos no cargado se altera el registro DBA (véase capítulo 9). En este caso hay que volver a abrir otro módulo de datos antes de acceder a datos de D B P X .

Cuando se transfieren datos a módulos de datos (DB, DX), la CPU compara la longitud del módulo de datos que ha sido abierto con los operandos que se encuentran en la instrucción de transferencia. Si con el parámetro indicado se supera la longitud del módulo de datos, la instrucción de transferencia no se ejecuta para evitar una sobreescritura errónea de datos en la memoria.

También se detecta un error de cargaltransferencia cuando se trata de consultar o modificar un solo bit en una palabra de datos inexistente.

Asimismo se detecta un error de carga /transferencia cuando se trata de acceder a una palabra de datos antes de haber abierto el módulo de datos (con A DBn o AX DXn).

Cuando se detecta un error de cargaltransferencia, el programa de sistema llama al módulo de organización OB 32, si ha sido cargado. La instrucción causante del error de transferencia ya no se procesa. Al llamar al OB 32, en el AKKU 1 se encuentran informaciones adicionales que explican más exactamente el error que se ha producido:

Tabla 5-22 LZF - Errores de cargaltransferencia (TRAF)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

l A l l H -

1A12H -

1A13H -

1A14H -

1A15H -

1A16H -

1A17H -

1A18H -

1A19H -

lAlAH -

Significado

Acceso con UIUN D, OION D, SIR D, =D a una palabra de datos no definida

Error de transferencia con T DR en una palabra de datos (byte de derecha) no definida

Error de transferencia con T DL en una palabra de datos (byte de izquierda) no definida

Error de transferencia con T DW en una palabra de datos no definida

Error de transferencia con T DD en una palabra doble de datos no definida

Error de carga con L DR de un byte no definido

Error de carga con L DL de un byte no definido

Error de carga con L DW de una palabra de datos no definida

Error de carga con L DD de una palabra doble de datos no definida

Acceso con BDW a una palabra de datos no definida

Page 221: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Otros errores A este grupo de errores pertenecen todos los errores que no pueden ser en tiempo de identificados como uno de los errores en tiempo de ejecución descritos ejecución (OB 31) anteriormente (errores de transferencia o llamada a módulos no cargados).

Cuando se detecta uno de estos errores, el programa de sistema llama al módulo de organización OB 31. La instrucción (o la función especial) causante del error ya no se procesa. Si el OB 31 no está cargado, la CPU pasa al estado STOP. Si se desea que continúe el procesamiento del programa al producirse uno de los errores de la lista siguiente, basta programar la instrucción BE en el OB 31.

Al llamar al OB 31, en los AKKU 1 y AKKU 2 se encuentran informaciones adicionales que explican más exactamente el error que se ha producido:

. . ores de error de d-s. OB 2541255 v OB 250

Tabla 5-23 LZF - Otros errores en tiempo de ejecución (indicadores de OB 2541255 y OB 250)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1A21H -

1A22H -

1A23H -

1A25H -

1A29H -

1A2AH -

1A2BH -

1A2CH -

1A31H -

1A32H -

1A33H -

Significado

E DB, EX DX: Módulo de datos ya existe

E DB, EX DX: Cantidad de palabras de datos no válida (< 1 o > 4091)

E DB, EX DX: Espacio de memoria RAM no suficiente

BI: Parámetro no válido en AKKU 1 (< 1 o >125)

Pila de paréntesis desbordada por uno de ambos límites después de 'U(', 'O(', ')'

A DB, AX DX: Longitud del módulo de datos en la cabeza del módulo demasiado pequeña (longitud <5 palabras)

Módulo de funciones cargado con software de PG erróneo

ACR: Número de página no válido en el AKKU 1-L (> 255)

OB 254 u OB 255 (desplazar) u OB 250: Módulo de datos destino ya existe en DB-RAM

OB 254 u OB 255 (duplicar): Módulo de datos destino ya existe en DB-RAM

OB 254 u OB 255 u OB 250: Espacio de memoria insuficiente en DB-RAM

Page 222: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

ores de error del OB 182

Tabla 5-24 LZF - Otros errores en tiempo de ejecución (indicadores del OB 182)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1A34H OOOlH

1A34H OlOOH

1A34H OlOlH

1A34H 0102H

1A34H 0200H

1A34H 0201H

1A34H 0202H

1A34H 0203H

1A34H 0210H

1A34H 0211H

1A34H 0212H

1A34H 0213H

1A34H 0220H

1A34H 0221H

1A34H 0222H

1A34H 0223H

Significado

No se admite escribir en el campo de datos

Tipo de zona de direcciones no válido

Número de módulo de datos no válido

"Número de la primera palabra del parámetro" no válido

"Tipo de módulo de datos fuente" no válido

"Número del módulo de datos fuente" no válido

"Número de la primera palabra de datos a transferir en la fuente" no válido

Como longitud del módulo de datos fuente se ha registrado en la cabeza del módulo un valor < 5 palabras

"Tipo de módulo de datos destino" no válido

"Número del módulo de datos destino" no válido

"Número de la primera palabra de datos a transferir en el destino" no válido

Como longitud del módulo de datos destino se ha registrado en la cabeza del módulo un valor < 5 palabras

"Cantidad de palabras de datos a transferir" no válida (= O o > 4091)

Módulo de datos fuente demasiado corto

Módulo de datos destino demasiado corto

Módulo de datos destino registrado en EPROM

Page 223: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

. . ores de error de distintos OBs de

Tabla 5-25 LZF - Otros errores en tiempo de ejecución (indicadores de distintos OBs de funciones especiales)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1A35H -

1A36H -

1A3AH -

1A3BH -

1A41H -

1A42H -

1A43H -

1A44H -

1A45H -

1A46H -

1A47H -

1A48H -

1A49H -

1A4AH -

1A4BH -

Significado

OB 250: Número no válido del módulo de transferencia

OB 250: Longitudes distintas en DB x y DB x t 1 o DXx y DX x t l

OB 221: Valor del nuevo tiempo de ciclo no admisible (tiempo de ciclo < 1 ms ó > 13000 ms)

OB 223: Diferentes modos de arranque de las CPUs en modo multiprocesador

OB 240, OB 241 u OB 242: Número del registro de desplazamiento o número del módulo de datos no válido (nQ < 192 ó > 255)

OB 241: Registro de desplazamiento no inicializado

OB 240: Espacio de memoria insuficiente en DB-RAM

OB 240: Palabra de datos DW O del módulo de datos no contiene 'O'

OB 240: Longitud del registro de desplazamiento en DW 1 no válida (no está entre 2 y 256)

OB 240: Posición del indicador no válida o cantidad de indicadores > 5

OB 120: Valor en AKKU 1 o AKKU-2-L no admisible

OB 122: Valor en AKKU 1 o AKKU-2-L no admisible

OB 110: Valor en AKKU 1 o AKKU-2-L no admisible

OB 121: Valor en AKKU 1 o AKKU-2-L no admisible

OB 123: Valor en AKKU 1 no admisible

Page 224: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Tabla 5-26 LZF - Otros errores de tiempo de ejecución (indicadores del OB 150)

ores de error del OB 151. OB 152 v OB 153

Ident. de error AKKU-1-L AKKU-2-L

1A4CH OOOlH

1A4CH OlOOH

1A4CH OlOlH

1A4CH 0102H

1A4CH 0103H

1A4CH 0201H

1A4CH 0202H

1A4CH 0203H

1A4CH 0204H

1A4CH 0205H

1A4CH 0206H

1A4CH 0207H

1A4CH 0208H

1A4CH 0209H

1A4CH 020AH

Tabla 5-27 LZF - Otros errores en tiempo de ejecución (indicadores del OB 151, OB 152 y OB 153)

Significado

Número de función no válido (= O ó > 2)

Tipo de zona de direcciones no válido

NQ de módulo de datos no válido

"Número de la primera palabra del campo de datos" no válido

Como longitud del módulo de datos se ha registrado en la cabeza del módulo un valor < 5 palabras

Año indicado en el campo de datos no válido

Mes indicado en el campo de datos no válido

Día del mes indicado en el campo de datos no válido

Día de la semana indicado en el campo de datos no válido

Hora indicada en el campo de datos no válida

Minutos indicados en el campo de datos no válidos

Segundos indicados en el campo de datos no válidos

Valor "1/100 de segundos" indicado en el campo de datos no es igual a O

Palabra del campo de datos 3bi t O a 3 no es igual a O

Formato de hora no coincide con el ajuste en el OB 151

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

Significado

Indicadores del OB 151

1A4DH OOOlH

1A4DH OlOOH

1A4DH OlOlH

1A4DH 0102H

Número de función no válido (= O o > 2)

Tipo de zona de direcciones no válido

Número de módulo de datos no válido

"Número de la primera palabra del campo de datos" no válido

Page 225: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Identificadores de error de distintas operaciones de sistema

abeza del módulo un valor < 5 palabras

Tabla 5-28 LZF - Otros errores en tiempo de ejecución (indicadores de distintas operaciones de sistema)

1A4FH OOOlH

1A4FH 0002H

Número de función no válido (= O o < 0)

Tiempo de retardo no válido

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1A50H -

1A51H -

1A52H -

1A53H -

Significado

LRW, TRW: la dirección de memoria calculada <BR+constante> no está en la zona "O .. EDFFH" ')

LRD, TRD: la dirección de memoria calculada <BR+constante> no está en la zona "O .. EDFEH" ')

TSG, LB GB, LW GW, TB GB, TW GW: la dirección lineal calculada <BR+constante> no está en la zona "O .. EFFFH"

LB GW, LW GD, TB GW, TW GD: la dirección lineal calculada <BR+constante> no está en la zona "O .. EFFEH"

Page 226: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

véase capítulo 9

Ident. de error AKKU-1-L AKKU-2-L

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

Tabla 5-28 (continuación):

1A54H -

1A55H -

1A56H -

1A57H -

1A58H -

1A59H -

LB GD, TB GD: la dirección lineal calculada <BR+constante> no está en la zona "O .. EFFCH"

TSC, LB CB, LW CW, TB CB, TW CW: la dirección de página calculada <BR+constante> no está en la zona "F400H .. FBFFH"

LB CW, LW CD, TB CW,TW CD: la dirección de página calculada <BR+constante> no está en la zona "F400H .. FBFEH"

LB CD, TB CD: la dirección de página calculada <BR+constante> no está en la zona "F400H .. FBFCH"

TNW, TNB: el bloque fuente no está completo en una de las zonas siguientes: 0000 .. 7FFF memoria de usuario l) 8000 .. DD7F RAM de módulos de datos DD80 .. E3FF DB O E400 .. E7FF marcas S E800 .. EDFF datos de sistema (BA, BB, BS, BT, Z, T ) EEOO .. EFFF marcas, imagen de proceso FOOO .. FFFF periferia

TNW, TNB:

0000 .. 7FFF memoria de usuario l) 8000 .. DD7F RAM de módulos de datos DD80 .. E3FF DB O E400 .. E7FF marcas S E800 .. EDFF datos de sistema (BA, BB, BS, BT, Z, T ) EEOO .. EFFF marcas, imagen de proceso FOOO .. FFFF periferia

Page 227: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6.3 ADF (error de direccionamiento)

Introducción Un error de direccionamiento se produce cuando se llama con una instrucción STEP 5 a una entrada o salida de la imagen de proceso, a la que no se le ha asignado ninguna tarjeta de E/S en el último NUEVO ARRANQUE (la tarjeta no estaba enchufada, era defectuosa o no estaba indicada en el módulo de datos DB 1 de la CPU).

El programa de sistema interrumpe el procesamiento del programa de usuario y llama al módulo de organización OB 25. Después del procesamiento del programa contenido en el OB 25 se continúa el procesamiento con la instrucción siguiente del programa interrumpido. ¡La instrucción STEP 5 que ha causado el ADF ya ha sido ejecutada, pero con un valor de entrada o de salida no definido! Si el OB 25 no está programado, la CPU pasa al estado STOP debido a un error de direccionarniento, a no ser que para este caso se haya determinado en el DX O que continúe el procesamiento del programa. La supervisión de errores de direccionarniento también puede ser eliminada por completo programando el DX O de forma adecuada.

Identificadores El programa de sistema emite los siguientes indicadores de error: de error

Tabla 5-29 ADF - Identificadores de errores de direccionarniento

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1E40H YYYYH

Significado

Error de direccionamiento yyyy = dirección ADF

Page 228: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6.4 QVZ (retardo en acuse de recibo)

Introducción Un retardo en acuse de recibo se produce cuando una tarjeta de E/S, después de un direccionamiento, no confirma dentro de un tiempo determinado con la señal RDY (ready). La causa del retardo en acuse de recibo puede ser un defecto en la tarjeta de E/S o el haber extraido la tarjeta del autómata programable durante su funcionamiento.

Los siguientes errores de retardo en acuse de recibo interrumpen el procesamiento del programa de usuario y llaman al correspondiente módulo de organización.

Nota Si los módulos de organización llamados no han sido programados se continúa con el procesamiento del programa de usuario.

Si tiene lugar un retardo en acuse de recibo, la CPU lee "por defecto" el valor "OOH" y sigue trabajando con este valor en caso de que se acuse el QVZ.

Un retardo en acuse de recibo alarga el tiempo de ejecución del programa de usuario STEP 5.

STOP en caso de Para que el retardo en acuse de recibo conduzca al estado STOP, en el OB QVZ llamado (OB 23 u OB 24) tiene que estar programada la instrucción STP.

Programando adecuadamente el DX O puede determinarse que en caso de QVZ se pare el sistema aunque los OB 23 y 24 no estén programados.

QVZ en acceso Retardo en acuse de recibo en el programa de usuario en caso de acceso directo por directo vía bus S5 medio del bus S5 a CP, IP, KOR o a una tarjeta de E/S (por ej., con las

instrucciones de carga y transferencia L/T P...o Q...):

OB 23 El programa de sistema llama al módulo de organización OB 23, si está cargado.

Identificadores de En los AKKUs 1 y 2 se encuentran informaciones adicionales que explican más error exactamente el error que se ha producido.

Tabla 5-30 QVZ - Identificadores de retardo en acuse de recibo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1E23H YYYYH

Significado

Retardo en acuse de recibo y y y y = dirección QVZ

Page 229: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Dirección QVZ La dirección QVZ indica el byte de periferia que ha sido el primero en causar el QVZ. Generalmente se trata del byte que tiene la dirección más baja en caso de instrucciones para periferia.

Una excepción son las direcciones QVZ que se dan en las instrucciones TNBRNW en caso de retardo en acuse de recibo: puesto que estas instrucciones se ejecutan en orden decreciente, en este caso, la dirección QVZ indica el byte con la dirección más alta que ha causado el QVZ en una transferencia en bloque.

QVZ al actualizar Retardo en acuse de recibo al producirse accesos del programa de sistema para PAEIPAA y actualizar la imagen del proceso o transferir las marcas de acoplamiento transferir marcas de acoplamiento

OB 24 El programa de sistema llama al módulo de organización OB 24, si está cargado.

Identificadores En los AKKUs 1 y 2 se encuentran informaciones adicionales que explican más de error detalladamente el error que se ha producido:

Tabla 5-31 QVZ - Identificadores de llamadas al OB 24

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident. de error AKKU-1-L AKKU-2-L

1E25H yyyyH

1E26H yyyyH

1E27H yyyyH

1E28H yyyyH

Significado

Retardo en acuse de recibo al emitir la imagen de proceso de las salidas digitales yyyy = dirección del byte de salida no acusado

Retardo en acuse de recibo al actualizar la imagen de proceso de las entradas digitales yyyy = dirección del byte de entrada no acusado

Retardo en acuse de recibo al actualizar las salidas de las marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

Retardo en acuse de recibo al actualizar las entradas de las marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

Page 230: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6.5 ZYK (error de tiempo de ciclo)

Introducción El tiempo de ciclo abarca todo el tiempo del procesamiento de un programa cíclico. Un exceso del tiempo de supervisión de ciclo ajustado en la CPU puede ser causado, por ejemplo, por programación errónea, por un bucle de programa en un módulo de funciones, por un fallo de un generador de impulsos o por operaciones del sistema, como por ejemplo, actualización de la imagen de proceso en relación con programas largos.

Tiempo de supervisión de ciclo

Si se excede el tiempo de ciclo, el programa de sistema interrumpe el procesamiento del programa de usuario y llama al módulo de organización OB 26, si está cargado. El tiempo de supervisión de ciclo vuelve a ser activado (trigger). Si el tiempo de supervisión vuelve a excederse antes de que el OB 26 haya sido procesado hasta el final, la CPU pasa con error doble (DOPP-FE) al estado STOP.

El tiempo de supervisión de ciclo es variable (1 a 13000 ms) y el trigger puede ser reajustado (véase más arriba). Indepedientemente del tiempo de ciclo, transcurridos 100 ms después de finalizar el tiempo de ciclo, se activa la señal BASP si en ese momento aún no se ha terminado de procesar el OB 26.

El tiempo de supervisión de ciclo puede ser determinado individualmente ajustando el DX O o llamando al módulo de organización de funciones especiales OB 221.

En el programa cíclico se puede "reajustar el trigger" del tiempo de supervisión de ciclo llamando al módulo de funciones OB 222 .

STOP si el OB 26 Si el OB 26 no ha sido programado, la CPU pasa al estado STOP. Para que esto no está cargado no ocurra es necesario modificar el ajuste por defecto del DX O.

Identificadores ¡Cuando se produce un error de ciclo no se depositan identificadores de error en de error el AKKU 1 o en el AKKU 2!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 231: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6.6 WECK-FE (colisión de alarmas temporizadas)

Introducción Si para un determinado módulo de organización de alarma temporizada vuelve a aparecer una petición antes de que se haya ejecutado completamente la petición anterior, el programa de sistema detecta una colisión de alarmas temporizadas.

Si tiene lugar una colisión de alarmas temporizada, el programa de sistema llama al módulo de organización OB 33, si está cargado. En caso contrario, la CPU pasa al estado STOP. Para más información al respecto, véase capítulo 4.5.

Identificadores de E1 programa de sistema deposita en los AKKUs 1 y 2 informaciones adicionales error que explican más detalladamente el error ocurrido:

Tabla 5-32 Indicadores WECK-FE

lOOlH 0012H olisión en OB 12

lOOlH OOOEH olisión en OB 14

lOOlH OOOAH olisión en OB 16

Nota La identificación en el AKKU 2 es la identificación de nivel de la alarma temporizada que ha causado el error.

Si el OB 33 no está programado, la CPU pasa al estado STOP. Programando adecuadamente el DX O se puede continuar la ejecución del programa a pesar de la colisión y de no estar programado el OB 33.

¡Una segunda llamada al nivel de tratamiento de errores "colisión", no lleva a un error doble (DOPP)!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 232: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6.7 REG-FE (error de regulador)

Introducción Un error de regulador (REG-FE) se detecta cuando aparece un error en el procesamiento de los módulos de funciones estándar de la estructura de regulador R64, soportados por el programa de sistema.

Nota El programa de sistema detecta una colisión de alarmas temporizadas cuando no se ha procesado de principio a fin un determinado OB de alarma temporizada dentro de la propia escala de tiempo (por ejemplo, 100 ms en el caso de OB 13). Sin embargo, solamente se detecta un procesamiento erróneo del programa de regulación cuando se llama al nivel de procesamiento REGULACION, siendo visualizado el error en la pila de interrupciones (USTACK).

Al producirse un error de regulador se abandona el nivel de procesamiento de programa REGULACION y se llama al nivel ERROR DE REGULADOR (NIVEL: 001CH) con el módulo de organización OB 34. La siguiente reacción de la CPU depende de la programación del OB 34:

Si el OB 34 no está programado, la CPU pasa al estado STOP. La información de la pila USTACK indica la causa del error.

Si el OB 34 está programado se procesa el programa allí contenido (por ejemplo, evaluación del AKKU 1 y AKKU 2 y tratamiento de error, en función de esta evaluación). Luego se continúa el procesamiento del regulador a partir del punto de interrupción.

Reacción ante Si los errores de regulador han de ser ignorados siempre, basta programar la errores de instrucción de fin de módulo BE en el OB 34. regulador

Para que el procesamiento del regulador continúe aunque no se haya programado el OB 34, hay que modificar el ajuste por defecto del DX O de forma correspondiente.

Identificadores Llamando al OB 34, en los AKKUs 1 y 2 se encuentran informaciones de error adicionales que explican más detalladamente el error ocurrido.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 233: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Tabla 5-33 Indicadores REG-FE

Registro en la En todos los 7 casos de error, en los bits de control del aparato de programación máscara "Bits de se marca la indentificación del error REG-FE. Si se utiliza un aparato de control" programación sin el sistema operativo SS-DOS, la penúltima posición de la línea

inferior de la máscara no tiene nombre pero aparece igualmente marcada. En la máscara de la pila USTACK del nivel REGULACION está marcado REG con una cruz como causa del error.

Ident. de error AKKU-1-L AKKU-2-L

0801H DByyH

0802H DByyH

0803H FByyH

0804H FByyH

0805H FByyH

0806H DByyH

0880H OOyyH

Error de tiempo Transcurrido el tiempo de exploración establecido se interrumpe el programa de exploración cíclico en el próximo límite de módulo y se anida el procesamiento del

regulador. Es posible que el procesamiento de módulos "largos" demore demasiado y que el procesamiento del regulador "pierda el ritmo": se produce un error de tiempo de exploración.

Significado

Error de tiempo de exploración yy = número del correspondiente módulo de datos de

regulador

Módulo de datos de regulador no cargado yy = número del módulo de datos que no está cargado

Módulo de funciones de regulador no cargado yy = número del módulo de funciones de regulador que

no está cargado

Módulo de funciones de regulador no detectado yy = número del módulo de funciones de regulador que

no ha sido detectado

Módulo de funciones de regulador cargado con un software de PG erróneo yy = número del módulo de funciones

Longitud errónea del módulo de datos de regulador yy = número del módulo de datos

Retardo en acuse de recibo (QVZ) durante el procesamiento del regulador yy = número del byte E/S que ha causado el retardo en

acuse de recibo

Los errores de tiempo de exploración pueden ser tratados como los demás errores de regulador (como se ha descrito en la página anterior) o pueden ser oprimidos con una máscara. En este caso, al producirse un error de exploración, no se interrumpe el procesamiento del programa.

Véase al respecto la descripción "Regulación compacta en el procesador R del S5-135U" (bibliografía 1134

Un error de exploración puede eventualmente evitarse modificando el ajuste por defecto en el DX O "procesamiento de la alarma de regulador y de proceso en

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 234: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

límites de módulos" por "procesamiento de la alarma de regulador y de proceso en límites de instrucciones".

5.6.8 ABBR (aborto)

Activación y Si se solicita el estado STOP en el estado operativo RUN, por reacción

accionamiento del selector de la CPU de RUN a STOP,

la función PG on line "AG STOP",

posición del selector del coordinador en STOP (en modo multiprocesador),

el programa de sistema llama al OB 28 si está cargado. Al final del procesamiento del OB 28 la CPU pasa al estado STOP.

Nota El paso al estado STOP se produce independientemente de si el OB 28 está o no programado y de cómo haya sido programado.

1 ¡NO se transfieren identificadores de error al AKKU 1 o al AKKU 2!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 235: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

5.6.9 FE-3 (errores de comunicación)

Introducción Cuando se producen fallos en la segunda interfaz serie con acoplamiento RK 512, transferencia de datos con procedimiento 3964/3964R, transferencia de datos con "driver abierto", o con transferencia de datos vía SINEC L1, el programa de sistema llama al módulo de organización OB 35 y deposita en el AKKU 1 informaciones adicionales que describen con mayor exactitud los fallos ocasionados.

Si no se ha programado ningún OB 35 no hay reacción alguna por parte del programa de sistema y la CPU no pasa al estado STOP. Este es el ajuste por defecto.

Si al producirse un error de interfaz la CPU debe pasar al estado STOP aunque no exista el OB 35, hay que modificar correspondientemente el ajuste por defecto del DX O.

Información de El programa de sistema comprueba cada 100 ms si se han producido errores de errores en comunicación en la segunda interfaz serie. En dicho caso, el programa de sistema AKKU 1 deposita informaciones sobre el error en el AKKU 1. Si el OB 35 existe, éste es

llamado por el programa de sistema y la información es transferida al AKKU 1.

Durante la llamada al OB 35 se pueden transferir números de error de máximo tres causas de error. Si se presentan más de tres causas de error a la vez, esto lo indica una marca especial de desbordamiento.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 236: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Tratamiento de interru~ciones v errores

Estructuración de la información sobre errores en AKKU 1

3 1

AKKU 1

BREAK

E = 'O', si no hay registro de error en la zona de errores - - ' l ' , si hay errores registrados en la zona de errores

O O O O E D B O

D - - 'O', si no hay desbordamiento de errores (máximo 3 entradas) = ' l ' , si hay desbordamiento de errores (más de 3 entradas)

B - - 'O', si no hay BREAK en la interfaz = ' l ' , si hay BREAK en la interfaz

Error nQ 1

Si hay un BREAK en la interfaz, el OB 35 solamente se llama al principio del estado BREAK.

Error número 1 a Aquí se registran máximo 3 números de error correspondientes a los fallos de error número 3 interfaz, en el orden en que han sido detectados por el programa de sistema.

Error nQ 2

Significado de El significado de los números de error y las informaciones respecto al los números tratamiento de errores de interfaz se encuentran explicados en el manual de error "Comunicación" (bibliografía 1141).

Error nQ 3

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 237: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas 6 Resumen breve Este capítulo describe las funciones especiales integradas que contiene el

programa de sistema. También explica los campos de aplicación de estas funciones y cómo se deben llamar y parametrizar los OBs de funciones especiales. Por último, explica cómo detectar errores durante el procesamiento de una función especial y cómo tratarlos con un programa.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

6.1

6.2

6.3

6.4

6.5

6.6

6.7

6.8

6.9

6.10

6.11

6.12

6.13

6.14

6.15

6.16

6.17

6.18

6.19

Tema

Introducción

OB 110: Acceso al byte indicador

OB 111: Borrar AKKU 1, 2, 3 y 4

OB 11211 13: AKKU rol1 up/AKKU rol1 down

OB 120: Activarldesactivar "bloquear alarmas conjuntamente"

OB 121: Activarldesactivar "bloquear alarmas temporizadas individualmente"

OB 122: Activarldesactivar "retardar alarmas conjuntamente"

OB 123: Activarldesactivar "retardar alarmas temponzadas individualmente"

OB 134, OB 135, OB 136 y OB 139

OB 150: AjustarPeer la hora del sistema

OB 151: AjustarPeer la hora para la alarma temporizada controlada por reloj

OB 152: Estadística de ciclo

OB 153: AjustarPeer la hora para la alarma de retardo

OB 160 a 163: Bucles contadores

OB 170: Leer pila de módulos (BSTACK)

OB 180: Acceso variable a módulos de datos

OB 181: Comprobar módulos de datos (DBPX)

OB 182: Copiar zona de datos

OB 185: Activarldesactivar la protección contra escritura

Página

6-3

6-7

6-9

6-9

6-11

6-14

6-16

6-19

6-22

6-23

6-28

6-35

6-42

6-45

6-47

6-52

6-56

6-58

6-61

Page 238: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

6.20

6.21

6.22

6.23

6.24

6.24.1

6.24.2

6.24.3

6.24.4

6.25

6.26

6.27

6.28

6.29

6.30

6.31

6.32

6.33

6.34

6.35

6.36

6.37

6.37.1

6.37.2

6.38

6.39

6.40

Tema

OB 186: Comprimir memoria

OB 1901192: Transferir marcas a un módulo de datos

OB 1911193: Transferir bloques de datos a la zona de marcas

OB 200 y OB 202 a 205: Comunicación en multiprocesamiento

OB 216 a 218: Accesos a páginas

OB 216: Escritura en página

OB 217: Lectura de página

OB 218: Ocupación de página

Ejemplo de programación

OB 220: Ampliación del signo

OB 221: Ajustar el tiempo de supervisión de ciclo

OB 222: Nuevo arranque del tiempo de supervisión de ciclo

OB 223: Comparar los modos de arranque

OB 224: Transferir marcas de acoplamiento en bloques

OB 226, OB 227

OB 228: Leer la información de status de un nivel de procesamiento

OB 230 a 237: Funciones para FBs estándar

OB 240 a 242: Funciones especiales para registros de desplazamiento

OB 240: Inicializar registro de desplazamiento

OB 241: Procesar registro de desplazamiento

OB 242: Borrar registro de desplazamiento

OB 2501251: Regulación/Algoritmo PID

Descripción de las funciones del regulador PID

Algoritmo PID

OB 250: Inicializar algoritmo PID

OB 251: Procesar algoritmo PID

OB 2541255: Desplazar/duplicar módulos de datos

Página

6-62

6-63

6-65

6-70

6-71

6-74

6-76

6-78

6-80

6-82

6-83

6-84

6-84

6-85

6-86

6-87

6-89

6-90

6-94

6-97

6-98

6-99

6-99

6-101

6-106

6-107

6- 113

Page 239: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.1 Introducción

Introducción El sistema operativo de la CPU 928B ofrece una serie de funciones especiales que pueden ser llamadas por el usuario, siempre que éste lo requiera, mediante una llamada condicional (SPB OB x) o incondicional (SPA OB x). Para estas funciones especiales están reservados los módulos de organización OB 100 a 255.

Estas funciones se denominan funciones especiales integradas, ya que constituyen una parte integrante del programa de sistema. El usuario puede activar estas funciones especiales, pero no puede leer o modificar el programa correspondiente.

Panorámica La tabla siguiente ofrece una panorámica de las funciones especiales disponibles.

Tabla 6-1 Panorámica de las funciones especiales disponibles

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Módulo

OB 110 OB 111 OB 112 OB 113

OB 120 OB 121 OB 122 OB 123

OB 134 OB 135 OB 136 OB 139

OB 150 OB 151

OB 152

OB 153

OB 160 2 163

OB 170

OB 180 OB 181 OB 182

OB 185 OB 186

OB 190,192 OB 191,193

OB 200')' 202') OB 203,204'), 205

OB 216 to 218

Función

Acceso al byte indicador Borrar AKKU 1,2, 3 y 4 AKKU rol1 up AKKU rol1 down

Activarldesactivar "bloquear alarmas conjuntamente" Activarldesact. "bloquear alarmas temp. individualmente" Activarldesactivar "bloquear alarmas conjuntamente" Activarldesact. "bloquear alarmas temp. individualmente"

* D /D MOD PUSH

Ajustarlleer hora del sistema Ajustarlleer hora para alarma temp. controlada por reloj

Estadística de ciclo

Ajustarlleer la hora para alarma de retardo (a partir de la versión -3UB12)

Bucles contadores

Leer pila de módulos PSTACK)

Acceso variable a módulos de datos Comprobar módulo de datos @X/DX) Copiar zona de datos

Activarldesactivar la protección contra escritura Comprimir memoria mediante el programa de usuario

Transferir marcas a un módulo de datos Transferir bloques de datos a la zona de marcas

Comunicación en multiprocesamiento

Accesos a páginas

Véase capítulolpágina

6.2 6-7 6.3 6-9 6.4 6-9 6.4 6-9

6.5 6-11 6.6 6-14 6.7 6-16 6.8 6-19

6.9 6-22 6.9 6-22 6.9 6-22 6.9 6-22

6.10 6-23 6.11 6-28

6.12 6-35

6.13 6-42

6.14 6-45

6.15 6-47

6.16 6-52 6.17 6-56 6.18 6-58

6.19 6-61 6.20 6-62

6.21 6-63 6.22 6-65

6.23 6-70

6.24 6-71

Page 240: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

') Funciones especiales con pseudolímites de instrucciones (larga duración) ') En lugar de utilizar este módulo de organización de funciones especiales es preferible parametrizar el módulo de datos DX O

(véase capítulo 7).

lnterfaces

Módulo

Para la programación se dispone de las siguientes interfaces para las funciones especiales:

Llamada al módulo

Función

Llamada al módulo, condicional o incondicional SPB .. / SPA ..

Véase capítulolpágina

Tabla 6-1 (continuación):

Parámetros

OB 220

OB 221 2,

0 B 222

0 B 223 OB 224 2,

OB 226 0 B 227 OB 228

OB 230 to 237')

OB 240 OB 241 OB 242

OB 250') OB 251')

OB 254,255')

Parámetros para efectuar ajustes a través de AKKU 1 y eventualmente AKKU 2 y10 células de memoria.

En la siguiente descripción de las distintas funciones especiales encontrará bajo el concepto parámetros una lista de todos los datos que requiere la CPU para poder ejecutar correctamente las funciones especiales. Antes de llamar una función especial en el programa STEP 5, es necesario cargar estos datos en los acumuladores o en las células de memoria indicadas en cada caso.

Ampliación del signo

Ajustar el tiempo de supervisión de ciclo Nuevo arranque del tiempo de supervisión de ciclo Comparar los modos de arranque Transferir marcas de acoplamiento en bloques Leer la palabra del programa de sistema Leer la suma horizontal del programa de sistema Leer información de status de un nivel de procesamiento

Funciones para FBs estándar

Inicializar registro de desplazamiento Procesar registro de desplazamiento Borrar registro de desplazamiento

Regulación: inicializar algoritmo PID Regulación: procesar algoritmo PID

Desplazar/duplicar un módulo de datos

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

6.25 6-82

6.26 6-83 6.27 6-84

6.28 6-84 6.29 6-85 6.30 6-86 6.30 6-86 6.31 6-87

6.32 6-89

6.34 6-94 6.35 6-97 6.36 6-98

6.38 6-106 6.39 6-107

6.40 6-113

Page 241: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Nomenclatura de Para indicar los parámetros de los distintos módulos de organización de los acumuladores funciones especiales hay que respetar la siguiente nomenclatura:

AKKU 1: AKKU 1, 32 bit

AKKU-1-L: AKKU 1, palabra baja, 16 bit

AKKU-1-LL: AKKU 1, palabra baja, byte bajo, 8 bit

AKKU-1-LH: AKKU 1, palabra baja, byte alto, 8 bit

Tratamiento de Cuando se produce un error al procesar la función especial llamada, el programa de errores sistema responde con una reacción especial.

En lo que respecta a esta reacción especial cabe diferenciar entre dos grupos de funciones especiales.

Palabra alta

OBs de error, indicadores de los acumuladores

Byte alto

31 24

Palabra baja

Existen funciones especiales que, en caso de error, llaman a un módulo de organización de error (OB de error), en el que se determina el posterior comportamiento de la CPU. Estos OBs de error son el OB 19, el OB 30 y el OB 31. En el AKKU 1, y en el caso de algunas funciones especiales también en el AKKU 2, (véase capítulo 5.6), se transfieren identificaciones al OB de error que explican con mayor detalle el error.

Byte bajo

23 16

Byte alto

15 8

Si durante el procesamiento de una de estas funciones especiales, la CPU observa, por ejemplo, un parámetro falso, detecta un error en tiempo de ejecución y llama al OB 31. Si, por ejemplo, la función especial no existe, la CPU detecta un error en código de instrucción y trata de llamar al OB 30. Si en alguna función especial se indica un módulo de datos que no está cargado, entonces la CPU trata de llamar al OB 19.

Byte bajo

7 O

Si los OBs de error OB 30 u OB 31 no están cargados o contienen una instrucción STP, la CPU pasa al estado STOP. En los bits de control y en la pila USTACK se encuentra marcado con una cruz LZF o BCF. En los acumuladores del nivel de procesamiento de error se encuentran identificaciones de error que describen más detalladamente el error que se ha producido. Si el OB 19, el OB 30 o el OB 31 están cargados (y no contienen ninguna instrucción STP), el procesamiento del programa de usuario continúa con la siguiente instrucción tras ejecutar el OB correspondiente. En este caso, los acumuladores permanecen inalterados.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 242: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

VKE , ANZ OIANZ 1

En el caso de algunas funciones especiales, para indicar errores específicos de funciones especiales se altera el VKE o los indicadores ANZ OIANZ1. Cuando aparece un error durante el procesamiento de una función especial de este tipo, en la mayoría de los casos se activa el VKE (VKE = 1). En este caso, en el programa STEP 5 se puede evaluar el VKE mediante una operación SPB (salto condicional) y reaccionar entonces ante un error determinado.

En el caso de ciertas funciones especiales, los indicadores de resultados ANZ O y ANZ 1 son alterados por el procesamiento de la función especial. En el programa STEP 5 se pueden consultar estos indicadores mediante operaciones de comparación y reaccionar entonces ante un determinado error.

En los siguientes subcapítulos referentes a los OBs de funciones especiales se describe cuál de las reacciones descritas se ejecuta en cada uno de los distintos OBs de funciones especiales.

Nota La llamada a un OB de funciones especiales mediante la operación "SPB OB" o "SPA OB" no actúa como un "verdadero" cambio de módulo, sino que actúa como una operación STEP 5. ¡NO se anidan alarmas (con ajuste por defecto "Interrupción en límites de módulos")!

Funciones Algunas de las funciones especiales son funciones de larga duración, las cuales especiales contienen los así llamados pseudolímites de módulos. con pseudolímites Esto significa que la ejecución de la función se realiza por etapas. Si durante la de instrucciones ejecución de una etapa se produce una interrupción (por ejemplo, alarma

temporizada o de proceso en límites de instrucciones), al final de esta etapa se anida el correspondiente módulo de organización.

Las funciones especiales que contienen pseudolímites de instrucciones están señaladas en la tabla de funciones especiales integradas.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 243: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.2 OB 11 0: Acceso al byte indicador

Función Con el módulo de organización de funciones especiales OB 110 se puede sobreescribir el registro de indicadores con el contenido del AKKU 1 o enmascararlo con '1'0 con '0'.

Ocupación del AKKU 1 para el acceso al registro de indicadores:

7 6 5 4 3 2 1 O

*) Los bits 8 a 31 están reservados para ampliaciones y tienen que ser igual a 'O' para sobreescnbir el registro de indicadores. Tienen que ser ignorados al leer el registro de indicadores.

*>

Parámetros 1. AKKU-2-L

N q e función, valores admisibles: 1, 2 ó 3

ANZl

2. AKKU 2

Nuevo byte indicador o máscara

ANZO

Indicadores de palabras

Resultado

OV

Indicadores de bits

N V e función en el

AKKU-2-L

1

2

3

Una vez ejecutado el OB 110, el byte indicador quedará modificado de acuerdo con la función y el contenido del AKKU-1.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

OS

Función

El contenido del AKKU 1 se carga en el registro de indicadores.

Todos los bits de la máscara marcados con un '1' en el AKKU 1 se ponen a '1' en el registro de indicadores. El nuevo byte indicador se carga en el AKKU 1.

Todos los bits de la máscara marcados con un '1' en el AKKU 1 se ponen a 'O' en el registro de indicadores. El nuevo byte indicador se carga en el AKKU 1.

Contenido del AKKU-1-L

OR

antes

Nuevo byte indicador

Máscara

Máscara

después

Nuevo byte indicador

Nuevo byte indicador

Nuevo byte indicador

STA VKE E

Page 244: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Errores Pueden presentarse los siguientes errores:

N q e función en AKKU-2-L no es igual a 1 , 2 ó 3.

En el AKKU 1 está activado uno de los bits de n" a nn" 31.

En caso de error se llama al OB 31 (otros errores en tiempo de ejecución). Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos se deposita en el AKKU-1-L la identificación de error 1A49H.

Ejemplo El OB 110 es un medio auxiliar para comprobar las instrucciones que evalúan o modifican el registro de indicadores. Sin embargo, su aplicación no se limita a ello. El próximo ejemplo muestra otra posibilidad de aplicación.

Dependiendo del contenido del byte de marcas Mñ O se ha de llamar a uno de los cuatro programas parciales. A los cuatro programas parciales se les han asignado los bits M 0.0 a M 0.3. Solamente puede estar activado uno de estos

:SLW 4 Desplazar M 0.0 a M 0.3 cuatro bits a la izquierda Cargar número de función

:SPA OB 110 :SPS =M000 Salto si OS = 1 :SPO =M001 Salto si OV = 1 :SPM =M002 Salto si ANZ O = 1 :SPP =M003 Salto si ANZ 1 = 1

si no está activado ningún bit

Si M 0.0 = 1

Si M 0.1 = 1

Si M 0.2 = 1

Si M 0.3 = 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 245: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Función Una sola llamada al módulo de organización de funciones especiales OB 11 1 permite borrar fácilmente los contenidos de los AKKUs 1 a 4: el OB 111 sobreescribe los cuatro registros con un 'O'.

Parámetros

Resultado

Errores

ninguno

Los AKKUs 1 a 4 (32 bit cada uno) han sido borrados.

ninguno

6.4 OB 11 211 13: AKKU rol1 up/AKKU rol1 down

Función El OB 112 y el OB 113 hacen avanzar los contenidos de los AKKUs 1 a 4 en dirección ascendente o descendente:

El OB 112 (roll up) desplaza el contenido del AKKU 1 al AKKU 2, el contenido del AKKU 2 al AKKU 3, etc.

El OB 113 (roll down) desplaza los contenidos de los acumuladores en dirección opuesta: contenido del AKKU 1 al AKKU 4, AKKU 4 a AKKU 3, etc.

Parámetros

Resultado

Errores

ninguno

Las figuras 6-1 y 6-2 muestran los contenidos de los acumuladores antes y después de llamar al OB 112 y 113.

Nota Las operaciones ENT (conjunto de operaciones complementarias) y TAK (operación de sistema) de STEP 5 también permiten desplazar los contenidos de los acumuladores (véase capítulo 3.4).

ninguno

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 246: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Desplazar contenidos de AKKUs .. . . . . . . . . . . .

AKKU 4 1 <AKKU 4>

AKKU 3 <AKKU 3> 1

AKKU 2 <AKKU 2, 1

antes

Fig. 6-1 Efecto de la función "roll up"

después

Desplazar contenidos de AKKUs

3 1

AKKU 4

AKKU 3 1 <AKKU 3> 1

AKKU 2 1 cAKKU 2, 1

AKKU 1 1 <AKKU 1>

antes

Fig. 6-2 Efecto de la función "roll down"

después

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 247: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.5 OB 120: Activar/desactivar "bloquear alarmas conjuntamente"

Introducción Un programa STEP 5 puede ser interrumpido por programas de mayor prioridad en límites de módulos o de instrucciones. A estos niveles de procesamiento de mayor prioridad pertenecen las alarmas de proceso así como todas las alarmas temporizadas (alarmas temporizadas cíclicas, alarma temporizada controlada por reloj y alarma de retardo). En estos casos, el tiempo de ejecución del programa interrumpido se prolonga en el tiempo de ejecución de los programas anidados.

Con el OB 120 puede impedirse el anidamiento de niveles de procesamiento de mayor prioridad en uno o varios límites consecutivos de módulos o de instrucciones (según ajuste en DX O).

Función

Parámetros

El OB 120 altera la reacción ante alarmas:

Activar "bloquear alarmas" significa que a partir de ahora no se registran más alarmas y se borran las ya registradas (alarmas que p. ej. "esperan" a un límite de módulo). Solamente cuando ya ha comenzado a procesarse el OB 2 (alarma de proceso) o bien un OB que procese alarmas temponzadas, éste se procesará hasta el final.

Desactivar "bloquear alarmas" significa que a partir de ahora se vuelven a registrar, anidar y procesar todas las alarmas pendientes en el próximo límite de módulo o de instrucción.

1. Palabra doble de control

El OB 120 registra las alarmas que deben ser bloqueadas en una palabra doble de control del sistema.

Los bits de la palabra doble de control tienen el significado siguiente:

1 O = '1' 1 se bloquean todas las alarmas temporizadas cíclicas 1

N q e bit en la palabra doble

de control

reservados; ¡estos bits tienen que estar a 'O'!

Función

Mientras un bit esté a '1' quedará bloqueada la alarma correspondiente.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 248: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

2. Acumuladores

Resultado

Errores

N V e función, valores admisibles: 1, 2 ó 3 con:

1: El contenido del AKKU 1 se carga en la palabra de control.

2: Todos los bits de la máscara del AKKU 1 que estén marcados con un '1' se ponen a '1' en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

3: Todos los bits de la máscara del AKKU 1 que estén marcados con un '1' se ponen a 'O'en en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

AKKU 1

Nueva palabra de control o máscara, depende de la función deseada

La llamada al OB 120 da los siguientes resultados:

Pueden presentarse los siguientes errores:

N V e función en AKKU-2-L

1

2

3

N V e función no es válido en AKKU-2-L.

Uno de los bits reservados en AKKU 1 (n" a 31) es igual a '1'.

Contenido del AKKU 1

En caso de error se llama al OB 31 (otros errores en tiempo de ejecución). Si el OB 31 no está cargado la CPU pasa al estado STOP. En ambos casos se registra la identificación de error 1A47H en el AKKU-1-L.

antes

palabra de control

máscara

máscara

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

después

palabra de control

nueva palabra de control

nueva palabra de control

Page 249: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente:

1. Cargar n v e función 2 ó 3 en el AKKU-2-L

2. Cargar el valor 'O' en el AKKU 1

3. Llamar al OB 120 de funciones especiales

4. Leer el AKKU 1

El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 131.

- BS 131 Palabra indicadora "bloquear alarmas conjuntamente"

Para bloquear y desbloquear la alarma de proceso pueden utilizarse las instrucciones AS y AF en lugar del OB 120:

AS equivale a :L KB 2 :L KM 00000000 00000100 :SPA OB 120

AF equivale a :L KB 3 :L KM 00000000 00000100 :SPA OB 120

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 250: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.6 OB 121 : Activar/desactivar "bloquear alarmas temporizadas individualmente"

Introducción Con el OB 121 se puede impedir el anidamiento de determinados OBs de alarma temporizada (alarmas temporizadas con escala de tiempo fija) en uno o más límites consecutivos de módulos o instrucciones. Por ejemplo, puede determinarse que una parte del programa no pueda ser interrumpida por un OB 18 (5 S) ni por un OB 17 (2 S). Las demás alarmas temporizadas programadas se procesan como es habitual.

Función

Parámetros

El OB 121 tiene consecuencias sobre la reacción ante alarmas temporizadas cíclicas :

Activar "bloquear alarmas temporizadas individualmente" significa que, a partir de este instante, ya no se registra ninguna de las alarmas temporizadas cíclicas indicadas y que, además, se borran las alarmas que ya han sido registradas (por ejemplo, las que "esperan" a un límite de módulo). Solamente cuando ya haya comenzado un OB de alarma temporizada (para procesar una alarma temponzada con escala de tiempo fija), éste se procesará hasta el final.

Desactivar "bloquear alarmas temporizadas individualmente" significa que, a partir de este instante, vuelven a ser registradas, anidadas y procesadas todas las alarmas temporizadas cíclicas que aparezcan en el próximo límite de módulo o instrucción (según el ajuste en el DX O).

1. Palabra de control

El OB 121 registra las alarmas temporizadas que deben ser bloqueadas en una palabra de control interna del sistema:

Los bits de la palabra de control tienen el siguiente significado:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

N%it

Oa2

3 = '1' 4 = '1' 5 = '1' 6 = '1' 7 = '1' 8 = '1' 9 = '1'

10 = '1' 11 = '1'

12 a 15

Alarma

reservados, ¡estos bits tienen que estar a 'O'!

Alarmas temporizadas cíclicas con escala de tiempo fija: 10 ms (OB 10) 20 ms (OB 11) 50 ms (OB 12)

100 ms (OB 13) 200 ms (OB 14) 500 ms (OB 15)

1 S (OB 16) 2 S (OB 17) 5 S (OB 18)

reservados; ¡estos bits tienen que estar a 'O'!

Page 251: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

2. Acumuladores

Errores

N V e función, valores admisibles: 1, 2 ó 3 con:

1: El contenido del AKKU 1 se carga en la palabra de control.

2: Todos los bits de la máscara del AKKU 1 que estén marcados con un '1' se ponen a '1' en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

3: Todos los bits de la máscara del AKKU 1 que estén marcados con un '1' se ponen a 'O' en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

AKKU 1

Nueva palabra de control o máscara, depende de la función deseada.

Pueden presentarse los siguientes errores:

Número de función no es válido en AKKU-2-L.

Uno de los bits reservados en AKKU 1 es igual a '1'.

En caso de error se llama al OB 31 (otros errores en tiempo de ejecución). Si el OB 31 no está cargado la CPU pasa al estado STOP. En ambos casos se registra la identificación de error 1A4AH en el AKKU-1-L.

Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente:

1. Cargar n v e función 2 ó 3 en el AKKU-2-L

2. Cargar el valor 'O' en el AKKU 1

3. Llamar al OB 121 de funciones especiales

4. Leer el AKKU 1

El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 135.

- BS 135 Palabra indicadora "bloquear alarmas temporizadas individualmente"

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 252: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.7 OB 122: Activar/desactivar "retardar alarmas conjuntamente"

Introducción Un programa STEP 5 puede ser interrumpido en límites de módulos o instrucciones por programas que tengan una prioridad mayor. A estos niveles de procesamiento de prioridad superior pertenecen las alarmas de proceso y las alarmas temporizadas (alarmas temporizadas cíclicas, alarma temporizada controlada por reloj y alarma de retardo). El tiempo de ejecución del programa interrumpido aumenta en el tiempo de ejecución de los programas anidados.

Con el OB 122 se puede impedir el anidamiento de niveles de procesamiento de prioridad superior en uno o más límites consecutivos de módulos o instrucciones (según el ajuste en el DX O).

Función

Parámetros

El OB 122 tiene consecuencias sobre la reacción ante alarmas:

Activar "retardar alarmas" significa que se siguen registrando todas las alarmas que aparezcan, y que quedan registradas las alarmas que ya se encuentran en cola de espera. Sin embargo, no se procesan por el momento las alarmas registradas. Se anulan provisionalmente todos los límites de instrucciones o de módulos para el procesamiento de alarmas. Solamente cuando el OB 2 (alarmas de proceso) o un OB de procesamiento de alarmas temponzadas ya ha iniciado, se procesa hasta el final.

Desactivar "retardar alarmas" significa que se procesan todas las alarmas registradas en el próximo límite de módulo o de instrucción.

Nota Si durante la fase "retardar alarmas" se llama por segunda vez a un determinado OB de alarma temporizada se produce una colisión.

1. Palabra doble de control

El OB 122 registra las alarmas que deben ser retardadas en una palabra doble de control interna del sistema.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 253: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Los bits de la palabra doble de control tienen el siguiente significado:

Mientras un bit esté a '1', la alarma correspondiente se retardará.

N%it en la palabra doble de control

0 = '1'

1 = '1'

2 = '1'

3 = '1'

4 a 3 1

2. Acumuladores

Función

se retardan todas las alarmas temponzadas cíclicas

se retarda la alarma temporizada controlada por reloj

se retardan todas las alarmas de proceso

se retarda la alarma de retardo

reservados; ¡estos bits tienen que estar a 'O'!

N V e función, valores admisibles: 1, 2 ó 3 con :

1: El contenido del AKKU 1 se carga en la palabra de control.

2: Todos los bits de la máscara del AKKU 1 que estén marcados con un '1' se ponen a '1' en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

3: Todos los bits de de la máscara del AKKU 1 que estén marcados con un '1' se ponen a 'O' en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

AKKU 1

Nueva palabra de control o máscara, depende de la función deseada.

Resultado La llamada al OB 122 da los siguientes resultados:

N q e función en AKKU-2-L

1 3 1 máscara 1 nueva palabra de control 1

1

2

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Contenido del AKKU 1

antes

palabra de control

máscara

después

palabra de control

nueva palabra de control

Page 254: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Errores Pueden presentarse los siguientes errores:

N V e función no es válido en AKKU-2-L.

Uno de los bits reservados en AKKU 1 (n" a 31) es igual a '1'.

En caso de error se llama al OB 31 (otros errores en tiempo de ejecución). Si el OB 31 no está cargado la CPU pasa al estado STOP. En ambos casos se registra la identificación de error 1A48H en el AKKU 1-L.

Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente:

1. Cargar n v e función 2 ó 3 en el AKKU-2-L

2. Cargar el valor 'O' en el AKKU 1

3. Llamar al OB 122 de funciones especiales

4. Leer el AKKU 1

El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 132.

- BS 132 Palabra indicadora "retardar alarmas conjuntamente"

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 255: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.8 OB 123: Activar/desactivar "retardar alarmas temporizadas individualmente"

Introducción Con el OB 123 se puede impedir el anidamiento de determinados OBs de alarma temporizada (alarmas temporizadas con escala de tiempo fija) en uno o más límites consecutivos de módulos o instrucciones.

Función

Parámetros

El OB 123 repercute en la reacción ante alarmas temponzadas:

Activar "retardar alarmas temporizadas individualmente" significa que se siguen registrando todas las alarmas que aparecen y que quedan registradas las alarmas temporizadas que ya están en cola de espera. Sin embargo, no se procesan por el momento las alarmas registradas. Se anulan provisionalmente todos los límites de instrucciones o de módulos para el procesamiento de estas alarmas. Solamente cuando un OB de alarma temponzada (para el procesamiento de una alarma temporizada con escala de tiempo fija) ya ha iniciado, se procesa hasta el final.

Desactivar "retardar alarmas temporizadas individualmente" significa que se procesan todas las alarmas registradas en el próximo límite de módulo o de instrucción (según el ajuste en el DX O).

Nota Si durante la fase "retardar alarmas" se llama por segunda vez a un OB de alarma temporizada, se produce una colisión.

1. Palabra de control

El OB 123 registra las alarmas temporizadas que deben ser retardadas en una palabra de control interna del sistema.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 256: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Los bits de la palabra de control tienen el siguiente significado:

2. Acumuladores

Bit nQ

Oa2

3 = '1' 4 = '1' 5 = '1' 6 = '1' 7 = '1' 8 = '1' 9 = '1'

10 = '1' 11 = '1'

12 a 15

N V e función, valores admisibles: 1, 2 ó 3 con:

Alarma

reservados, ¡estos bits tienen que estar a 'O'!

Alarmas temporizadas cíclicas con escala de tiempo fija: 10 ms (OB 10) 20 ms (OB 11) 50 ms (OB 12)

100 ms (OB 13) 200 ms (OB 14) 500 ms (OB 15)

1 S (OB 16) 2 S (OB 17) 5 S (OB 18)

reservados; ¡estos bits tienen que estar a 'O'!

1: El contenido del AKKU 1 se carga en la palabra de control.

2: Todos los bits de la máscara del AKKU 1 que estén marcados con un '1' se ponen a '1' en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

3: Todos los bits de la máscara del AKKU 1 que estén marcados con un '1' se ponen a 'O' en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

AKKU 1

Nueva palabra de control o máscara, depende de la función deseada.

Errores Pueden presentarse los siguientes errores:

N V e función no es válido en AKKU-2-L.

Uno de los bits reservados en AKKU 1 es igual a '1'.

En caso de error se llama al OB 31 (otros errores en tiempo de ejecución). Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos se registra la identificación de error 1A4BH en el AKKU 1.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 257: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente:

1. Cargar n v e función 2 ó 3 en el AKKU-2-L

2. Cargar el valor 'O' en el AKKU 1

3. Llamar al OB 123 de funciones especiales

4. Leer el AKKU 1

El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 137.

- BS 137 Palabra indicadora "retardar alarmas temponzadas individualmente"

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 258: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Registros de Los registros de cálculo se modifican mediante una operación aritmética cálculo (OB 134, 135, 136) de la manera siguiente (en el caso de operaciones en coma

fija, solamente se modifica la palabra baja):

AKKU1 AKKU2 AKKU3 AKKU4

antes: cAKKU 1> cAKKU 2> cAKKU 3> cAKKU 4>

l / / A después: c~esultado> cAKKU 3> cAKKU 4> cAKKU 4>

*D (Multiplicar números en coma fija de 32 bits) multiplica AKKU 2 por AKKU 1 y carga el resultado en AKKU 1. Si el resultado es superior al mayor número representable en coma fija de 32 bits o inferior al menor número representable en coma fija de 32 bits, se indica mediante OV = 1 y OS = 1. AKKU 3 y AKKU 4 se transfieren entonces a AKKU 2 y AKKU 3.

lndicadores

:D (Dividir números en coma fija de 32 bits) divide AKKU 2 por AKKU 1 y carga el resultado en AKKU 1. AKKU 3 y AKKU 4 se transfieren luego a AKKU 2 y AKKU 3.

Depende de

Activa

lndicadores

ANZ 1

x

OB 136: MOD MOD (Módulo de la división de dos números en coma fija de 32 bits) divide AKKU 2 por AKKU 1 y carga el módulo (resto de la división) en AKKU 1. AKKU 3 y AKKU 4 se transfieren luego a AKKU 2 y AKKU 3.

Depende de

Activa

lndicadores

ANZ O

x

ANZ 1

x

OB 139: PUSH PUSH (Empujar la pila de acumuladores) empuja el AKKU 1 hacia abajo en la pila de acumuladores. PUSH se puede utilizar para introducir vanas veces un mismo valor en dicha pila.

lndicadores

OV

x

Depende de

Activa

ANZ O

x

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

OS

x

ANZ 1

x

Depende de

Activa

OV

x

OR

ANZ O

x

ANZ 1

OS

x

STA

OV

x

ANZ O

OR

VKE

OS

x

OV

/ER

STA

OR

OS

VKE /ER

STA

OR

VKE

STA

/ER

VKE /ER

Page 259: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.10 OB 150: Ajustarlleer la hora del sistema

Características Las características de la hora del sistema son: de la hora (y fecha) del La resolución es de 10 ms en la lectura y de 1 s en el ajuste. sistema

Se consideran los años bisiestos.

Ajuste horario a elegir entre formato 24 horas o 12 horas "am" (ante meridium) y "pm" (post meridium)

Indicación del día de la semana

Las entradas y salidas se efectúan en código BCD.

El reloj hardware integrado es salvaguardado por una batería tampón en el bastidor del autómata programable. De este modo, una vez ajustada la hora, siempre se dispondrá de la hora actual, incluso tras un fallo de la tensión de red y un REARRANQUE.

Función

Parámetros

Bit nQ

1"alab.

2"alab.

3"alab.

4"alab.

El OB 150 permite ajustar o leer la hora y fecha (hora del sistema) en el programa de usuario de la CPU 928B.

Antes de poder leer la hora del sistema es necesario ajustarla. l 1. Campo de datos para los parámetros de tiempo

Al ajustar la hora del sistema, el OB 150 toma los valores que deben ser ajustados de un campo de datos; al leer la hora, el OB 150 transfiere los valores actuales al campo de datos. Este campo de datos puede ser generado en un módulo de datos o en una de ambas zonas de marcas (marcas M o S).

El campo de datos consta de cuatro palabras.

la) Formato del campo de datos durante el ajuste del reloj hardware

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

15 12 11

Segundos

Formato

O

Minutos

8

Horas

Día de la semana Día del mes

Año

O

7

Mes

4 3 O

Page 260: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

lb) Formato del campo de datos durante la lectura del reloj hardware

Bit 11-15

1"alab.

12

2"alab.

Los parámetros de tiempo tienen el significado, las zonas de valores admisibles y la representación siguientes:

Segundos

3"alab.

4"alab.

1

11

11100 segundos

Formato

l) Después de llamar al OB 150 se comprueba si la fecha del valor indicado es lógicamente correcta considerando los años bisiestos.

I I

Día del mes

Año

Parámetros

Segundos 11100 segundos Minutos Horas

Día de semana Díademes ')

Mes Año

Formato

C a m ~ o de datos en la zona de marcas

8

I I

Horas

Día de la semana 1 O

Mes

Cuando se crea el campo de datos en una zona de marcas (marcas S o M) se debe tener en cuenta la siguiente asignación de las palabras del campo de datos a los bytes de marcas. El parámetro 'x' es el parámetro " n q e la primera palabra del campo de datos", que debe ser depositado en el AKKU-1-L al llamar al OB 150:

Minutos

Campo de valores admisible

00 a 59 00 a 99 00 a 59 00 a 23 ó 01 a 12, según la indicación de "formato" O a 6 de lunes a domingo 01 a 31 O l a 1 2 00 a 99

Indicación del formato para el campo de la hora: Bit 15 = O: Formato de 12 horas

(selección de "am" o "pm" en bit 14) Bit 15 = 1: Formato de 24 horas (bit 14 = 0) Bit 14 = 0: "am" Bit 14 = 1: "pm"

Bit nQ

1"al. campo dat.

29a l . campo dat.

3"al. campo dat.

4"al. campo dat.

7

Represent.

Formato BCD

-

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

4

15 8

Byte de marcas x

Byte de marcas x+2

Byte de marcas x+4

Byte de marcas x+6

7 O

Byte de marcas x+l

Byte de marcas x+3

Byte de marcas x+5

Byte de marcas x+7

3 O

Page 261: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

2. Acumuladores

Bit nQ

El AKKU-2-L contiene informaciones referentes a la función deseada y al campo de datos utilizado. Debe tener la siguiente estructura:

Resultado

15

Errores

Parámetros en el AKKU-2-L

12

N V e función, valores admisibles: 1 = ajustar la hora del sistema

2 = leer la hora del sistema

N V e función

Tipo de zona de direc., valores admisibles: 1 = Módulo de datos DB

2 = Módulo de datos DX 3 = Zona de marcas M 4 = Zona de marcas S

11

NVel módulo de datos, valores admisibles: 3 a 255 (solamente si el tipo de zona de direcciones

es '1' ó '2'; si el tipo es '3' ó '4', el n v e módulo no es significativo)

Tipo de zona de direcciones

Número de la primera palabra del campo de datos, valores admisibles (en función del tipo de zona de direcciones):

DB, DX: O a 2044 Marcas M: O a 248

(= n v e byte de marcas 'x ') Marcas S O a 1016

(= n v e byte de marcas 'x ')

NVel módulo de datos

8

Si el OB 150 ha sido procesado correctamente, los bits indicadores OR, ERAB y OS = O. Los restantes bits indicadores así como AKKU 1 y AKKU 2 permanecen inalterados.

En caso de error se llama al OB 19 o al OB 31. Si no están cargados, la CPU pasa al estado STOP. En ambos casos se registran identificaciones de error en el AKKU 1 (véase tabla a continuación).

7

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

4 3 O

Page 262: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Tabla 6-2 Identificaciones de error del OB 150

Nota Si en la función "Ajustar hora del sistema" se introducen parámetros incorrectos y la hora ha sido ajustada de forma correcta por lo menos una vez con anterioridad, entonces se transfieren dichas identificaciones de error, pero el reloj del sistema sigue funcionando.

AKKU-1-L

1A07H

1A4CH

Ejemplos

Hay que ajustar la hora del sistema como sigue:

"Ju, 21.10.1993, 11:30 horas O segundos, formato 24 horas"

Se supone que los parámetros de tiempo se registran en el módulo de datos DB 10 a partir de la palabra DW O. El ajuste de la hora del sistema con los valores indicados debe ser iniciado con una precisión al segundo mediante un bit de entrada (bit de activación, por ej. E 1.0 - pulsador cerca del autómata programable) . Programar en primer lugar el módulo de datos DB 10 con los valores expuestos a continuación y cargarlo en el autómata programable. Las operaciones STEP 5 para llamar al OB 150 se programan en el OB 1 de forma que las operaciones de llamada al OB 151 sólamente se ejecuten con el siguiente flanco del bit de activación:

Cont inúa e n l a página s i g u i e n t e

AKKU-2-L

-

OOOlH OlOOH OlOlH 0102H 0103H

0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H I3209H 020AH

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

Módulo de datos no cargado

N V e función = O ó > 2 Tipo de zona de direcciones no válido N V e módulo de datos no válido "Número de la lvalabra del campo de datos" no válido Longitud de módulo de datos en cabeza de módulo < 5 palabras Año indicado en campo de datos no válido Mes indicado en campo de datos no válido Día del mes indicado en campo de datos no válido Día de semana indicado en campo de datos no válido Hora indicada en campo de datos no válida Minutos indicados en campo de datos no válidos Segundos indicados en campo de datos no válidos 1/100 seg. en campo de datos 3 O Palabra de campo de datos 3 /bit n" a 3 3 O Formato de hora no corresponde al ajuste en OB 151

OB llamado

OB 19

OB 31

Page 263: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

O : K H = O O O O by te i zq . = segundos (BCD), byte derecho = O

1 : K H = 9 1 3 O 91 = formato (=80H) + hora (=11 BCD) 30 = minutos (BCD)

2: KH = 2 1 3 O 21 = d í a d e l mes (BCD) 30 = d í a de l a semana (3 = ju . ) + b i t O a 3 = O

3:KH= 9 3 1 O 93 = año (BCD) 10 = mes (BCD)

Operaciones STEP 5 deposi tadas en e l OB 1 para llamar a l OB 150:

Se r e c i b i ó f l anco de seña l de l a en t rada pa ra a j u s t a r l a hora d e l s is tema:

STELL:L KH 1 1 O A Valores para AKKU-2-L: -NQ DB = 10

Tipo zona de d i r . = 1 para "campo de da tos en DB" NQ de función = 1 para " a j u s t a r "

:L KF O AKKU- 1 -L : NQ de l a l a pa labra d e l campo de da tos = O

:SPA OB 150 Llamar a l OB 150

La hora ac tua l d e l sistema ha de s e r e s c r i t a en e l módulo de datos DB 10 a p a r t i r de l a palabra de datos DW 4. Para e l l o s e debe llamar a l OB 150 con l o s s iguientes parámetros:

Valores para AKKU-2-L:

i KH 1 ' Tipo zona de d i . = 1 para "campo de datos en DBq' NQ de función = 2 para " l ee r "

:L KF 4 AKKU-1-L : NQ de l a l a palabra de l campo de datos = 4

:SPA OB 150 Llamar OB 150 :A DB10 Abrir DB 10

Evaluar DB 10

Después de l lamar a l OB 150, l a hora a c t u a l d e l s is tema e s t á r e g i s t r a d a en e l módulo de da tos DB 10 con e l formato s igu ien te : ( " Ju , 21.10.93, 11:30 horas 20 segundos, 13 centésimas de segundo, formato 24 horas") :

DW 4: KH = 2 O 1 3 segundos = 20 (BCD) 1/100 segundos = 13 (BCD)

DW 5:KH= 9 1 3 O formato = 24 horas ( b i t 14/15 = O l ) , horas = 11(BCD) minutos = 30 (BCD)

DW6:KH= 2 1 3 O d í a d e l m e s = 2 1 (BCD) d í a de l a semana = 3 = jueves

DW 7: KH = 9 3 1 O año = 93 (BCD) mes = 10 (BCD)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 264: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.1 1 OB 151 : Ajustarlleer la hora para la alarma temporizada controlada por reloj

Función Llamando al OB 151 se puede:

ordenar que la CPU 928B active en un tiempo determinado la alarma temporizada controlada por reloj ("petición de tiempo" - OB 9, véase capítulo 4.5): - cada minuto - cada hora - cada día - cada semana - cada mes - cada año - unavez,

leer el estado momentáneo de una petición de tiempo,

anular una petición de tiempo ya generada.

El OB 151 puede ser llamado en los estados operativos ARRANQUE y RUN. Una alarma temponzada controlada por reloj ya generada se mantiene en caso de un REARRANQUE (automático o manual). En caso de NUEVO ARRANQUE se borra la petición de tiempo existente.

Si se genera otra petición de tiempo, se anula automáticamente la petición en curso. Por consiguiente, solamente puede estar activada una única alarma temporizada controlada por reloj.

Parámetros

Bit nQ

1"alab.

2"alab.

3"alab.

4"alab.

1. Campo de datos para parámetros de peticiones

Al generar o anular una petición de tiempo, el OB 151 toma los parámetros de peticiones necesarios de un campo de datos. Al leer el estado actual de la administración de las peticiones, el OB 151 transfiere los parámetros actuales a un campo de datos.

Este campo de datos se puede generar en un módulo de datos o en una de ambas zonas de marcas (marcas M o S).

El campo de datos consta de cuatro palabras y tiene el siguiente formato al generar y leer la petición de tiempo:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

15 12 11

Segundos

Formato

O

Minutos

8

Horas

Día de semana Día del mes

Año

Tipo de petición

7

Mes

4 3 O

Page 265: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

El significado de los parámetros, sus zonas de valores admisibles y su representación son los siguientes:

Después de llamar al OB 150 se comprueba si la fecha indicada es lógicamente correcta considerando los años bisiestos.

') Significado de "am" y "pm": véase OB 150 en el capítulo 6.9. ¡El "formato" tiene que coincidir con el formato indicado al ajustar la hora del sistema mediante el OB 150!

Parámetros

Tipo de petición

Segundos 11100 segundos Minutos Horas Día de semana Día del mes ')

Mes Año

Formato ')

C a m ~ o de datos en la zona de marcas

Si se crea el campo de datos en una zona de marcas, se debe tener en cuenta la siguiente asignación de las palabras del campo de datos a los bytes de marcas. El parámetro 'x' es el parámetro " n v e la lvalabra del campo de datos", el cual debe ser depositado en el AKKU-1-L al llamar al OB 151:

significado: Bit 15 = O: formato de 12 horas

(seleccionar "am" o "pm" en bit 14) Bit 15 = 1: formato de 24 horas (bit 14 = 0) Bit 14 = 0: "am"

Campo de valores admisible

O a 7 con: O: anular petición o

no hay petición 1: cada minuto 2: cada hora 3: cada día 4: cada semana 5: cada mes 6: cada año 7: unavez

00 a 59 00 a 99 00 a 59 00 a 23 ó 01 a 12, según indicado bajo "formato" O a 6 de lunes a domingo 01 a 31 01 a 12 00 a 99

Indicación del formato para el campo de la hora,

Representación

Formato BCD

Formato BCD

Bit

1"al. campo dat.

29a l . campo dat.

4"al. campo dat. 1 Byte de marcas x+6 Byte de marcas x+7

n V 5 8

3"al. campo dat.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

7 O

Byte de marcas x

Byte de marcas x+2

Byte de marcas x+l

Byte de marcas x+3

Byte de marcas x+4 Byte de marcas x+5

Page 266: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

2. Acumuladores

Bit nQ

El AKKU-2-L contiene informaciones referentes a la función deseada y al campo de datos utilizado. Debe tener la siguiente estructura:

Resultado

15

Parámetros en el AKKU-2-L

N q e función, valores admisibles: 1 = generar la petición

2 = leer el estado de la petición

12

Tipo de zona de direc., valores admisibles: 1 = módulo de datos DB

2 = módulo de datos DX 3 = zona de marcas M 4 = zona de marcas S

NQ de función

N q e módulo de datos, valores admisibles: 3 a 255 (solamente si el tipo de zona de direcciones

es '1' ó '2'; si el tipo es '3' ó '4', el n q e módulo no es significativo)

11

Número de la lvalabra del campo de datos, valores admisibles (en función del tipo de zona de direcciones):

DB, DX: O a 2044 Marcas M: O a 248

(= n q e byte de marcas 'x') Marcas S O a 1016

(= n q e byte de marcas 'x')

Tipo de zona de direcciones

Si el OB 151 ha sido procesado correctamente, los bits indicadores OR, ERAB y OS = O. Los restantes bits indicadores así como AKKU 1 y AKKU 2 permanencen inalterados.

NQ de módulo de datos

8

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

7 4 3 O

Page 267: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Errores

Nota Si durante la lectura de la petición de tiempo en el campo de datos, el tipo de petición es 'O' y los restantes parámetros son 'F' o 'FF' (hexadecimal), no estará activada ninguna petición. Esto puede ocurrir - cuando se ha ejecutado un NUEVO ARRANQUE sin generar una

petición de tiempo, - cuando ha vencido una petición de tiempo única

O

- cuando se ha anulado una petición.

En caso de error se llama al OB 19 u OB 31. Si éstos no están cargados la CPU pasa al estado STOP. En ambos casos se depositan identificaciones de error en AKKU 1 y AKKU 2 (véase tabla siguiente).

Tabla 6-3 Identificaciones de error del OB 151

Nota Si se efectúa una parametrización incorrecta y anteriormente ya se ha generado una petición de tiempo válida, entonces se transfieren dichas identificaciones de error, pero la petición de tiempo generada con anterioridad sigue en vigor.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

OB llamado

OB 19

OB 31

Significado

Módulo de datos no cargado

NQ de función = O ó > 2 Tipo de zona de direcciones no válido NQ de módulo de datos no válido "NQ de la lvalabra del campo de datos" no válido Longitud del módulo de datos en la cabeza < 5 palabras Año indicado en campo de datos no válido Mes indicado en campo de datos no válido Día del mes indicado en campo de datos no válido Día de semana indicado en campo de datos no válido Hora indicada en campo de datos no válida Minutos indicados en campo de datos no válidos Segundos indicados en campo de datos no válidos 1/100 de seg. indicadas en campo de datos z O Tipo de petición en campo de datos > 7 Formato de la hora no corresponde al ajuste en OB 150

AKKU-1-L

1A07H

1A4DH

AKU-2-L

-

OOOlH OlOOH OlOlH 0102H 0103H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH

Page 268: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Aspectos a tener Dependiendo de cuándo se deba activar una alarma temporizada controlada por en cuenta reloj (petición de tiempo), es necesario predefinir cada uno de los parámetros en respecto a los determinadas combinaciones. Para ello es absolutamente necesario indicar parámetros de ciertos parámetros - dependiendo del momento elegido para la alarma tiempo temporizada controlada por reloj - mientras que otros no son evaluados por el

programa de sistema y por lo tanto pueden ser suprimidos.

La tabla siguiente indica qué parámetros de tiempo deben ser indicados con qué peticiones de tiempo (XXX = indicación necesaria, --- = no significativa).

Tabla 6-4 Asignación "petición de tiempo - parámetro de tiempo"

Particularidades Si para el tipo de petición "cada año" (= 6) se elige como día del mes y mes el "29 de febrero", entonces el OB 9 sólo será llamado cada año bisiesto.

Tiempo de alarma

cada minuto cada hora cada día cada semana cada mes cada año una vez

Si para el tipo de petición "cada mes" (= 5) se elige como día del mes el valor "29", "30" ó "31", el OB 9 sólo será llamado en los meses en los que exista el día elegido.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Segundos

XXX XXX XXX XXX XXX XXX XXX

Minutos

---

XXX XXX XXX XXX XXX XXX

Horas

--- ---

XXX XXX XXX XXX XXX

Día de la semana

--- --- ---

XXX --- --- ---

Día del mes

--- --- --- ---

XXX XXX XXX

Mes

--- --- --- --- ---

XXX XXX

Año

--- --- --- --- --- ---

XXX

Page 269: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Ejemplos

1. "Petición cada minuto en el segundo 29" (12:44:29, 12:45:29, etc.):

Se debe indicar:Tipo de petición = 1 (No de función en AKKU-2-L = 1) Segundos = 29

2. "Petición cada hora, a las xx:14:15":

Se debe indicar:Tipo de petición = 2 (No de función en AKKU-2-L = 1) Segundos = 15 Minutos = 14

3. "Petición cada día a las 5:32:47":

Se debe indicar:Tipo de petición = 3 (No de función en AKKU-2-L = 1) Segundos = 47 Minutos = 32 Horas = 05

4. "Petición cada semana, los martes a las 10:50:0OW:

Se debe indicar:Tipo de petición = 4 (No de función en AKKU-2-L = 1) Segundos = O0 Minutos = 50 Horas = 10 Día semana = O1

5. "Petición cada mes, el 14. a las 7:30:15":

Se debe indicar:Tipo de petición = 5 (No de función en AKKU-2-L = 1) Segundos = 15 Minutos = 30 Horas = 07 Día del mes = 14

6. "Petición cada año, el 1.5. a las 00:01:45":

Se debe indicar:Tipo de petición = 6 (No de función en AKKU-2-L = 1) Segundos = 45 Minutos = O1 Horas = O0 Día del mes = O1

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 270: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

7 . "Pe t i c ión una s o l a vez, e l 31.12.1999 a l a s 23:55:0OW:

Se debe indicar :Tipo de p e t i c i ó n = 7 (No de función en AKKU-2-L = 1) Segundos = O0 Minutos = 55 Horas = 23 Día d e l mes = 31

8. "Anular pe t i c ión" :

Se debe indicar :Tipo de p e t i c i ó n = O (No de función en AKKU-2-L = 1)

9. "Leer pe t i c ión" :

Se debe indicar:NQ de función en AKKU-2-L = 2

S i no e s t á ac t ivada ninguna p e t i c i ó n , en e l campo de da tos aparece e l r e su l t ado s igu ien te :

Palabra d e l campo de da tos O: FFFF H Palabra d e l campo de da tos 1: FFFF H Palabra d e l campo de da tos 2: FFFO H Palabra d e l campo de da tos 3: FFFF H

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 271: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.12 OB 152: Estadística de ciclo

Introducción La CPU 928B permite recopilar una serie de datos estadísticos referentes a la duración del ciclo (estadística de ciclo). Mediante el OB 152 se puede inicializar la estadística de ciclo, leer los datos de estadística así como activar y desactivar la recopilación de los datos estadísticos.

Generalidades Los datos estadísticos comprenden

la duración del ciclo precedente,

el tiempo transcurrido en el ciclo actual desde el último límite de ciclo,

el tiempo de ciclo mínimo y máximo desde que se inicializó por última vez la estadística de ciclo,

la cantidad de ciclos registrados en la estadística desde que se inicializó por última vez la estadística de ciclo,

el tiempo medio de ciclo: para evaluar el tiempo medio de ciclo se utilizan como máximo los últimos 256 ciclos registrados estadísticamente.

Nota En la estadística de ciclo solamente se registran ciclos "normales". No se registran cuando el tiempo de ciclo actual ha sido falsificado, por ejemplo, por un NUEVO ARRANQUE. Así se evita que estos acontecimientos inoportunos falsifiquen la estadística de ciclo. Los tiempos de ciclo superiores a 167 segundos ocasionan entradas erróneas.

Activar/desactivar Después de un NUEVO ARRANQUE (automático o manual) la función de la estadística estadística siempre estará desactivada y los datos estadísticos estarán borrados

(la estadística de ciclo está inicializada). Un REARRANQUE (automático o manual) no modifica ni el estado de la estadística ni los datos estadísticos.

La función de estadística puede activarse en el estado operativo ARRANQUE o RUN mediante el OB 152.

Una vez activada la función de estadística mediante el OB 152 se actualizan los datos estadísticos en cada límite de ciclo. A partir de entonces pueden leerse llamando al OB 152.

Si ya no se requiere la función de estadística puede desactivarse en el estado operativo ARRANQUE o RUN mediante el OB 152. De este modo se evita una sobrecarga del tiempo de ciclo debida a la actualización de los datos estadísticos en cada límite de ciclo.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 272: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Datos estadísticos

La estadística de ciclo puede inicializarse asimismo a través del OB 152 en el ARRANQUE y en RUN. Es conveniente inicializar la estadística por ej. tras evaluar los datos estadísticos (y en ocasiones en función del estado del contador de ciclos).

Los datos estadísticos se leen de forma directa como magnitudes individuales o bien se calculan durante la llamada al OB 152. Se transfieren al AKKU-1-L o al AKKU-2-L desde el OB 152.

Llamando al OB 152 se pueden averiguar los siguientes valores estadísticos:

Tabla 6-5 Valores estadísticos del ciclo - OB 152

') véase "Cálculo del valor medio" ') - La unidad de los números de función 1 , 2 y 3 es milisegundos y el margen abarca de O a OFFFFH

(en la palabra baja de los acumuladores). - La unidad de los números de función 5 ,6 y 7 es 10 ms y el margen abarca de O a OFF FFFFH

(en las palabras alta y baja de los acumuladores).

Valor estadístico

AKTZYK

LASTZYK

MINZYK

MAXCYC

MmTEL WERT

ZYKLUS- ZAHLER

10- ps- ZAHLER

3, El contador de lOps (10-ps- Z m L E R ) se representa como valor hexadecimal de 8 cifras en las palabras alta y baja del AKKU 1.

Cálculo del valor El valor medio se calcula mediante el OB 152 según el algoritmo siguiente: medio

En una memoria intermedia y circulatoria del sistema se registra el valor de LASTZYK (último ciclo) cada vez que se actualizan los datos estadísticos. Esta memoria puede almacenar como máximo 256 valores. Una vez llena se pierde el primer valor registrado quedando almacenado el último. Cada vez que se actualizan los datos se genera asimismo la suma de los valores LASTZYK registrados en la memoria intermedia, de manera que contenga siempre los valores LASTZYK más recientes (máximo 256).

Significado

Tiempo transcurrido en el ciclo actual

Duración del último ciclo procesado

Duración del ciclo más corto desde la última inicialización de la estadística

Duración del ciclo más largo desde la última inicialización de la estadística

Valor medio de los tiempos de ciclo de los últimos ciclos procesados - máximo 256 ')

Cantidad de ciclos registrados desde la última inicialización de la estadística.

Contador permanente

Al llamar al OB 152 se genera el valor medio dividiendo la suma entre la cantidad de valores registrados en la memoria intermedia. Esto significa que el valor medio se genera casi siempre a partir de los valores LASTZYK de los últimos 256 ciclos.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Formato

Número en coma

fija

Unidad

2)

Cantidad de ciclos

10 ps

Margen

2)

O a OFFEEH

3

Page 273: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Funciones Al llamar al OB 152 se pueden activar las siguientes funciones individuales mediante el n q e función correspondiente:

Tabla 6-6 Funciones del OB 152

Parámetros

Resultado

AKKU-1-L

El AKKU-1-L contiene el n q e función; debe tener la siguiente estructura:

Bit nQ

N q e función, valores admisibles: véase tabla 6-5

15 4

O

¡LOS bits 4 a 15 deben estar a 'O'!

3 O

nQ de función

Después de llamar al OB 152 los indicadores OS, OR y ERAB = 'O', el VKE (resultado lógico o de combinación) también = 'O', exceptuando los casos expuestos a continuación. Además se transfieren a AKKU-1-L y AKKU-2-L los valores estadísticos que requieren algunas funciones (véase tabla siguiente).

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 274: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Tabla 6-7 Resultados de las funciones del OB 152

l) Debido a NUEVO ARRANQUE

Función

Desactivar estadística de ciclo

Leer AKTZYK / LASTZYK

Leer MINZYK / MAXZYK

Leer MllTELWERT (valor medio) / ZYKLUS-&LER (contador de ciclos)

Inicializar estadística de ciclo

10-ps-Zahler (contador de 10 ps)

Activar estadística de ciclo

') Si al leer el contador de ciclos el VKE = 'l', al mismo tiempo que se transmite el indicador se borra una marca del sistema para el desbordamiento del ciclo. Esta marca se activará nuevamente cuando se vuelva a desbordar el contador.

3, En las funciones 1, 2 y 3, en la palabra baja de los acumuladores. En las funciones 5, 6, 7 y 9, en las palabras alta y baja de los acumuladores.

Resultados

Errores

AKKU-1-L

Se produce un error cuando se transmite un n q e función incorrecto al AKKU-1-L (sólo valen los números de O a 3 , 8 y 15).

En caso de error se llama al OB 31 (otros errores en tiempo de ejecución). Si el OB 31 no está cargado la CPU pasa al estado STOP.

AKKU-2-L

En ambos casos se registra en el AKKU-1-L la identificación de error 1A4EH y en el AKKU-2-L la identificación de error 0001H.

Significado de " VKE = 1 "

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

-

AKTZYK incorrecto, los datos del ciclo actual no se recogen en la estadística. ')

o bien

Resultado demasiado grande para la función 1 (> FFFFH); FFFFH se suministra como valor de sustitución.

Resultado demasiado grande para la función 2 (> FFFFH); FFFFH se suministra como valor de sustitución.

Desbordamiento ZYKLUS-z~LER 2,

O bien

Resultado demasiado grande para la función 3 (> FFFFH); FFFFH se suministra como valor de sustitución.

-

-

-

inalterados

AKTZYK. 3)

MINZYK 3)

Ml'ITEL WERT

3)

LASTZYK 3,

MAXZYK 3,

ZYKLUS- Z&LER

3,

inalterados

10-ys-Zahler -

inalterados

Page 275: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Particularidades A continuación se indican algunas particularidades a tener en cuenta, referentes al comportamiento del OB 152 en caso de NUEVO ARRANQUE, ARRANQUE o bien cuando tienen lugar determinados acontecimientos.

Comportamiento tras NUEVO ARRANQUE

Al efectuar un NUEVO ARRANQUE se inicializan los datos estadísticos. Llamando al OB 152 durante el ciclo posterior al NUEVO ARRANQUE se vuelven a obtener los datos de inicialización. La siguiente tabla muestra cómo el programa de sistema

- inicializa los datos estadísticos tras un NUEVO ARRANQUE

- los actualiza durante los primeros tres ciclos.

NUEVO ARRANQUE

programa de sistema inicia-

programa de sistema actua-

liza datos esta- liza datos esta- OB 20 le' ciclo dísticos dísticos

OB 152: "activar

estadística" estadística"

porgrama de sistema actua- liza datos esta-

2"iclo dísticos 3er ciclo - - 1

OB 152: "leer

estadística"

i OB 152:

"leer estadística"

l) El valor de AKTZYK se toma del temporizador de supervisión de ciclo a través del OB 152. Por ello, ya se dispone de este valor a partir del primer ciclo.

AKTZYK l)

LASTZYK

MINZYK

MAXZYK

Ml'ITELW.

ZYKL.-Z.

') Valor de inicialización (= OWWH ms ó OFF WWH * 10 ps)

Durante la inicialización de los datos estadísticos, además de los valores por defecto que muestra la tabla, se borra la memoria intermedia y circulatoria del sistema (que sirve para generar el valor medio) y se rearma una marca interna para el desbordamiento del contador de ciclos.

O

2)

O

O

O

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

O

2)

O

O

O

AKTzyK (1.)

O

2,

O

O

O

Tiempo cic.(i,)

Tiempo cic.(i,)

Tiempo cic.(i,)

Tiempo cic.(i,)

1

AKTZYK (2.1

Tiempo cic.(i,)

Tiempo cic.(i,)

Tiempo cic.(i,)

Tiempo cic.(i,)

1

Tiempo cic.(2.)

T. cic. min.

T. cic. máx.

T. cic. med.

2

AKTZYK (3,)

Tiempo cic.(2.)

T. cic. min.

T. cic. máx.

T. cic. med.

2

Page 276: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Llamada al OB 152 desde un OB de arranque

Llamando al OB 152 para leer los datos estadísticos se obtienen en AKKU-1-L y AKKU-2-L los siguientes valores (columnas grises), dependiendo del tipo de arranque:

NUEVO programa de ARRANQUE sistema inicia- liza datos esta- OB 20 dísticos

OB 152:

estadística" estadística"

AKTZYK

LASTZYK

MINZYK

O

MAXZYK

REARRANQUE en ciclo n

OB 21/22

I I I

1)

Ml'ITELW.

ZYKL.-Z.

4 OB 152:

"leer estadística"

1

O

I I I

o

O

O

1)

O

O

Valor de inicialización (= OWWH ms ó OFF WWH * 10 ps)

AKTZYK

LASTZYK

MINZYK

MAXZYK

Ml'ITELW.

ZYKL.-Z.

1)

o

Inicializar los datos estadísticos mediante llamada al OB 152

O

Tiempo cic.(,.i)

incl. cic.(,.l)

incl. cic.(,.l)

incl. cic.(,-l)

n - 1

o

O

O

La siguiente tabla muestra cómo quedan modificados los datos estadísticos al inicializarlos y llamar al OB 152 en el CICLO. Las columnas grises contienen los valores transferidos al leer los datos estadísticos.

O

O

ciclo 1- (n-1) -1 Actualizar Actualizar

AKTZYK

LASTZYK

MINZYK

- r T 7 1 m T

AKTZYK (,.i)

Tiempo cic.(,.2)

MAXZYK

Valor de inicialización (= OWWH ms ó OFF WWH * 10 ps)

OB 152: "leer

estadística"

I I I I I I I

incl. cic.fn.2)

Ml'ITELW.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Tiempo cic.(n-1)

I I I I I I I

incl. cic.(,.z)

OB 152: OB 152: OB 152: "leer "inicializar "leer

estadística" estadística" estadística"

incl. cic.(n-1)

l I l I I I I

incl. cit.(,-2)

OB 152: "leer

estadística"

AKTZY K (n)

Tiempo cic.(,.i)

incl. cic.(n-1)

incl. cic.(,.l)

incl. cic.(n-1)

O

incl. cit.(,-1)

1)

incl. cic.(,-l)

T

O

O

1)

O

no

O

AKTZYK

(n+l)

O

no

O

1)

no O

no O

Page 277: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Durante la inicialización de los datos estadísticos, además de los valores por defecto que muestra la tabla, se borra la memoria intermedia y circulatoria del sistema (que sirve para generar el valor medio) y se rearma una marca interna para el desbordamiento del contador de ciclos.

Tras inicializar los datos estadísticos mediante llamada al OB 152 el programa de sistema actualiza los datos sólo al final del ciclo siguiente a la inicialización!

Llamada al OB 152 y estadística de ciclo desactivada

Si la estadística de ciclo se desactiva debido a una llamada al OB 152, se mantienen los datos estadísticos de la última actualización. Llamando después al OB 152 para leer los datos se obtienen los datos de la última actualización efectuada antes de la desconexión.

Si se leen los datos estadísticos después de efectuar un NUEVO ARRANQUE sin haber activado la estadística de ciclo llamando al OB 152, el OB 152 mostrará los datos de inicialización.

Falsificación de Cuando tiene lugar un NUEVO ARRANQUE, el tiempo de ciclo actual no puede los datos ser registrado con normalidad, lo que conduce a valores erróneos. En tal caso no estadísticos se actualizan los datos estadísticos del ciclo en cuestión.

l) El valor de AKTZYK corresponde al tiempo T que ha transcurrido en el ciclo actual desde que tuvo lugar el "fallo". A fin de identificar este caso, además de los valores que se transfieren al AKKU-1-L y al AKKU-2-L, se pone el VKE = '1'.

Ciclo

Intermpción

ARRANQUE

"leer estadística"

1

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

AKTZYK

LASTZYK

M INZYK

MAXZYK

MlTíELW.

ZYKL.-Z.

AKTZYK (n.1)

Tiempo cic.(,g

incl. cic.(,.z)

incl. cic.(,.g

incl. cic.(,.2)

n-2

Tiempo cic.(n-1)

incl. cic.(n-1)

incl. cic.(n-1)

incl. cic.(n-1)

n-1

1)

Tiempo cic. (u-1)

Tiempo cic. (,i)

Tiempo cic. (-1)

Tiempo cic. (u-1)

n-1

no

no

no

no

no

AKTZYK (,ti)

mempo cic.(n-1)

inci. cic.(n-1)

inci. cic.(n-1)

inci. cic.(n-1)

n-1

Page 278: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.13 OB 153: Ajustarlleer la hora para la alarma de retardo

Introducción Mediante el OB 153 se pueden transferir al programa de sistema las así llamadas "peticiones de retardo". El efecto que producen estas peticiones es que, una vez transcurrido un tiempo de retardo establecido, se procesa una "alarma de retardo" (véase OB 6, capítulo 4.5).

Función Mediante una llamada al OB 153 se puede

definir y arrancar un tiempo de retardo,

detener un tiempo de retardo activado (anular una petición de retardo),

leer el tiempo restante actual de un tiempo de retardo activado.

Las peticiones de retardo se pueden dictar en los estados operativos ARRANQUE y RUN mediante el OB 153.

Vigencia de una Sin embargo, una alarma de retardo que ha sido activada mediante una petición petición de de retardo sólo es activada por el programa de sistema en el modo RUN retardo (llamada al OB 6).

Las peticiones cuyo vencimiento no tenga lugar en modo RUN, son rechazadas por el programa de sistema sin aviso previo. También se rechaza una petición en curso (aún no vencida) cuando la CPU pasa a STOP y en caso de DESCONEXION.

Parámetros Acumuladores

Tiempo de retardo en milisegundos (máx. 65535) valores admisibles: OOOlH a FFFFH

El AKKU-2-L solamente deberá ser alimentado al llamar al OB 153 para la función "definir tiempo de retardo" ( n q e función 1). En las restantes funciones del OB 153 no se evalúa el contenido del AKKU-2-L.

N q e función, valores admisibles: 1 = definir y arrancar el tiempo de retardo

2 = detener el tiempo de retardo (= anular petición) 3 = leer el tiempo restante actual

Nota Si al definir un tiempo de retardo aún no ha transcurrido un tiempo de retardo definido con anterioridad, entonces éste último es "olvidado" y se arranca el nuevo tiempo de retardo.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 279: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Resultado Si el OB 153 ha sido correctamente procesado, los bits indicadores OR, ERAB y OS = o.

Si se llama al OB 153 con el n v e función '3', el AKKU-1-L contiene el tiempo restante en milisegundos.

Si al llamar al OB 153 con el n q e función '2' ó '3' no hay ninguna petición de retardo activada, entonces el AKKU-1-L contiene el valor 'O'.

Errores Pueden ocurrir los errores indicados en la siguiente tabla. Se llama al OB 31 (otros errores en tiempo de ejecución). Si el OB 31 no está cargado, la CPU pasa al estado STOP.

En ambos casos se depositan identificaciones de error en AKKU-1-L y AKKU-2-L (véase tabla siguiente).

Tabla 6-8 Identificaciones de error del OB 153

Significado 1 ~ A ~ E H OOOlH NQ de función = O ó > 3 1 1 O002H 1 Tiempo de retardo no válido

Ejemplos

En el REARRANQUE AUTOMATICO debe ejecutarse una sola vez y transcurridos 5 segundos, una secuencia de operaciones STEP 5. El tiempo de retardo se define y arranca en el módulo de organización de arranque OB 22.

Operaciones STEP 5 depositadas en el OB 22 para llamar al OB 153:

:L KF +5000 Valor para AKKU-2-L: 5000 ms :L KF +1 Valor para AKKU-1-L: nQ de función = 1 para

"definir y arrancar tiempo de retardo" :SPA OB 153 Llamar al OB 153

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 280: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Operaciones STEP 5 para llamar al OB 153:

:L KF +2

:SPA OB 153

Valor para AKKU-1-L: nQ de función = 2 para "detener el tiempo de retardo" Llamar al OB 153

Operaciones STEP 5 para llamar al OB 153:

:L KF +3 Valor para AKKU-1-L: nQ de función = 3 para "leer el tiempo restante"

:SPA OB 153 Llamar al OB 153

El AKKU-1-L contiene el tiempo restante de la petición de retardo

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 281: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.1 4 OB 160 a 163: Bucles contadores

Introducción Estos módulos de organización de funciones especiales permiten realizar bucles de programa con tiempos de ejecución muy favorables.

Función Los cuatro módulos de organización OB 160, OB 161, OB 162 y OB 163 permiten anidar hasta cuatro bucles. De este modo pueden utilizarse cuatro distintos bucles contadores en las palabras de datos de sistema BS 60 a 63.

A cada uno de los cuatro OBs se le ha asignado una determinada palabra de datos de sistema:

Programar el bucle

Parámetros

Resultado

Hay que transferir a una de las palabras de datos de sistema la cantidad de veces que deba ejecutarse el bucle. Si a continuación se llama al correspondiente OB de funciones especiales, el contador de bucles de la palabra de datos de sistema disminuye en 1. El bucle se ejecuta tantas veces hasta que el contador de bucles contenga el valor cero.

Nota Si el contador de bucles ya contiene el valor cero antes de llamar al OB de funciones especiales también disminuirá en uno: jse ejecutarán 65 536 bucles!

Palabras de datos de sistema BS 60 a 63

Contador de bucles, valores admisibles: O a 65 535 decimal ( 0 a FFFFH)

Contador de bucles en la palabra de datos de sistema > O: se activa el VKE (VKE = 1).

Contador de bucles en la palabra de datos de sistema = 0: se borra el VKE (VKE = 0).

Los restantes indicadores de bit y de palabra siempre se borran.

No se modifican ni evalúan los acumuladores. De este modo quedan disponibles al comenzar el siguiente bucle y no hará falta cargarlos.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 282: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Errores ninguno

Ejemplo

La palabra de marcas x contiene la cantidad deseada de bucles a ejecutar.

Inicializar bucle :L K B O :L MW x Contador de bucles

:SPB =M002 :T BS 62 Transferir contador

de bucles a la palabra de datos de sistema

"Programa bucle":

Administrar bucle: :SPA OB 162 Bucle contador :SPB =M001

En el capítulo 9.2 "TNW y TNB: transferir bloques de memoria" encontrará otro ejemplo.

Instrucciones de programción CPU 928B-3UB21

C79000-G8578-C870-01

Page 283: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.15 OB 170: Leer pila de módulos (BSTACK)

Introducción En la pila de módulos se encuentran registrados, partiendo del OB 1 o FB O, todos los módulos que han sido llamados sucesivamente y cuya ejecución aún no ha finalizado.

Función

Parámetros

Con el módulo de organización de funciones especiales OB 170 se pueden leer en un módulo de datos los datos registrados en la pila BSTACK. De este modo se averigua la cantidad de datos existentes en BSTACK y, por consiguiente, la reserva que queda disponible para otros datos. Por cada registro se obtiene la dirección de retroceso correspondiente (contador de direcciones STEP = SAZ), la dirección inicial absoluta (DBA) del módulo de datos válido en este módulo, así como su longitud (cantidad de palabras de datos = DBL).

Nota ¡Antes de llamar al OB 170 hay que abrir un módulo de datos que tenga una longitud suficiente @B o DX). Por cada dato registrado en la pila BSTACK se requieren cuatro palabras de datos.

Acumuladores

Número de la palabra de datos (DW n) a partir de la cual se van a depositar los datos en el DB abierto (offset)

cantidad deseada de elementos BSTACK, valores admisibles: 1 a 62

Ejemplo: Si el AKKU-1-L contiene el valor '1', se obtiene el último dato registrado de la pila BSTACK; si contiene un '2' se obtiene el último y el penúltimo, etc.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 284: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Resultado Después del procesamiento correcto del OB 170

en el AKKU-2-L sigue encontrándose el offset en el módulo de datos,

en el AKKU-1-L se encuentra la cantidad efectiva de elementos BSTACK representados l),

se borra el VKE,

pueden evaluarse los indicadores de resultados ANZ O y ANZ 1,

estarán borrados los restantes indicadores de bit y de palabra.

valores posibles: O a 62, siendo la cantidad representada S la cantidad deseada O = "no hay datos registrados BSTACK" o "error" (imultiplicando el contenido del AKKU-1-L por 4 se obtiene la cantidad de palabras de datos escritas en el DB llamado!)

Alteración de los indicadores de resultado VKE, ANZ1 yANZO

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

cantidad existente de elementos BSTACK c cantidad deseada

cantidad existente de elementos BSTACK = cantidad deseada

cantidad existente de elementos BSTACK > cantidad deseada

error

Consulta con

SPM

SPZ

SPP

SPB

ANZ O

1

O

O

1

VKE

O

O

O

1

ANZ 1

O

O

1

1

Page 285: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Registrar los elementos BSTACK en el

En caso de llamar al OB 170 el contenido del BSTACK se deposita en el módulo de datos llamado de la siguiente manera (véase también fig. 6-3) :

módulo de datos A = número del elemento BSTACK (62 a 1) abierto

(al visualizar el último elemento BSTACK ya se puede averiguar la reserva como se indica: A = 17Reserva = A - 1 = 16)

B = profundidad del elemento BSTACK (1 a 62)

Cabeza de módulo F l

j f Registros anter iores del BSTACK

Fig. 6-3 Almacenamiento de los registros BSTACK en un módulo de datos

Offset + DW n

DW n t l

DW n t 2

DW n t 3

DW n t 4

DW n t 5

DW n t 6

DW n t 7

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

A B 7

1

J

) Ultimo registro BSTACK (B = 1)

> Penúlt imo registro BSTACK (B = 2)

SAZ

D BA

Longi tud

A B

SAZ

D BA

Longi tud

Page 286: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Errores Pueden presentarse los siguientes errores:

ningún módulo de datos abierto,

módulo de datos abierto no existe o no es lo suficientemente largo para acoger la cantidad deseada de datos registrados BSTACK,

parámetros no válidos en AKKU 1 y AKKU 2.

En caso de error se activa el VKE así como los indicadores de resultados ANZ O y ANZ 1 (VKE, ANZ O y ANZ 1 = 1); se borran los restantes indicadores de bit y de palabra. El contenido del AKKU-1-L se pone a 'O'.

Ejemplo

:AX DX 10 Abrir DX 10 :L KY 0,16 Depositar registros BSTACK a partir de DW 16 :L KY 0,3 Se desean los 3 tíltimos registros de BSTACK :SPAOB 170

En el BSTACK se han registrado 6 módulos:

BSTACK

Profundidad 1 (último registro BSTACK)

(primer registro BSTACK)

Fig. 6-4 Ocupación del BSTACK, ejemplo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 287: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Después de la llamada al OB 170, la ocupación del DX 10 es la siguiente:

Offset +DW 16 Profundidad 1

Profundidad 2

Profundidad 3

AKKU-2-L = 16 (offset)

AKKU-1-L = 3 (cant idad de e lementos en DX 10)

( la cant idad de e lementos de l BSTACK es mayor que la cant idad

de e lementos deseados)

Fig. 6-5 Ocupación del DX 10 después de llamar al OB 170, ejemplo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 288: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.1 6 OB 180: Acceso variable a módulos de datos

Función Con el OB 180 se desplaza la dirección inicial del módulo de datos actual en un valor preestablecido, teniéndose en cuenta que la longitud aún disponible del módulo de datos queda reducida (los valores de los registros DBA y DBL cambian conforme al desplazamiento).

Nota Antes de llamar al OB 180 tiene que estar abierto un módulo de datos que sea suficientemente largo (DB o DX).

Registros DBA- DBL

Al abrir un módulo de datos con las operaciones A DB y AX DX se carga el registro 'DBA'(dirección inicial del módulo de datos) con la dirección de la palabra de datos DW O que está depositada en el DB O.

Los accesos a módulos de datos, con operaciones como L DR 60 o B DW 240 etc., siempre se ejecutan de manera relativa a la dirección inicial del módulo.

Además del registro DBA, cada vez que se llama a un módulo de datos se carga el registro 'DBL'(1ongitud de módulo de datos): contiene la longitud (en palabras) del módulo de datos DB o DX que ha sido abierto, sin contar la cabeza del módulo.

Nota ¡En el registro DBL puede estar registrada una longitud máxima de 4091 palabras de datos! Los accesos STEP 5 a palabras de datos solamente se pueden efectuar hasta el número de palabra de datos 255.

1 registro DBA contiene la dirección de la palabra de emoria en la que se encuentra depositada la DW O del B 17: DBA = 151BH.

n el registro DBL se encuentra la cantidad de palabras e datos: DBL = 8 (DW O a DW 7).

a que el acceso a palabras de datos por medio de las peraciones STEP 5 L DW, U D, B DW, etc. siempre es elativo al DBA, para acceder por ejemplo a la DW 3, se una 3 a 151BH. Con la dirección 151EH se accede a la alabra de datos DW 3. ediante el registro DBL se comprueba si se ha presentado n error de transferencia o de carga. Asi por ejemplo, DW 7 está permitida, pero T DW 8 o L DW 8 son erróneas.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 289: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Aplicación del El OB 180 de funciones especiales permite acceder a datos estructurados en un OB 180 módulo de datos abierto. Esto se consigue desplazando la dirección inicial del

módulo de datos, depositada en el registro DBA, hacia el final del módulo mediante el OB 180. Al mismo tiempo que se desplaza la dirección inicial, el OB reduce de forma correspondiente la longitud depositada en el registro DBL. Esto ocurre para que la CPU, en accesos posteriores al módulo de datos, pueda efectuar la supervisión en caso de operaciones de carga y transferencia.

Operaciones con módulos de datos de una longitud superior a 261 palabras (5 palabras de cabeza): el OB 180 permite desplazar a discreción una "ventana de acceso" de 256 palabras de datos a través de un módulo de datos.

Aplicación en caso de estructuras de datos:

Un módulo de datos puede estar dividido en varios lotes de datos de igual longitud y disposición que los datos contenidos en él. En este caso se habla de una estructuración del módulo de datos. Un módulo de datos así estructurado puede contener, por ejemplo, los datos de varios procesos parciales, siendo la primera palabra de datos un valor de temperatura, la segunda uno de presión, y en las demás palabras de datos, otros valores de medición del proceso parcial. El OB 180 permite acceder con las mismas operaciones (p. ej.: L DD, S D, T DR etc.) a los datos de cada uno de estos procesos parciales, cargando cada vez el registro DBA con la dirección inicial para los datos del proceso parcial.

Al contrario que en otros mecanismos de sustitución (sustitución = parametrización con índices), con este procedimiento se obtienen programas STEP 5 más simples y con tiempos de ejecución más favorables.

Parámetros

Resultado

Corrimiento (cantidad de palabras de datos en que debe correrse la dirección inicial del módulo), valores admisibles: O á AKKU-1-L e DBL

Después de llamar con éxito al OB 180

el valor del registro DBA (= dirección de la DW O) aumenta en el valor del AKKU-1-L,

el valor del registro DBL disminuye en el valor del AKKU-1-L,

se borra el VKE (VKE = O),

se borran los restantes indicadores de bit y de palabra.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 290: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Errores Pueden presentarse los siguientes errores:

longitud negativa,

ningún módulo de datos abierto,

contenido del AKKU-1-L z DBL.

En caso de error (contenido del AKKU-1-L 6 DBL) no se alteran los registros DBA y DBL. Se activa el VKE (VKE = 1) y se borran los restantes indicadores de bit y de palabra.

Si el registro DBL contiene el valor 'O' el OB 180 detecta que no hay ningún módulo de datos abierto. Se activa el VKE (VKE = 1) señalizando un error.

Rearmar DBA y Abriendo nuevamente el módulo de datos con las operaciones A DB o AX DX se DBL al valor recupera el estado inicial. inicial

Ejemplo

dos palabras de datos en el DB 17 (DBL = 8).

:A DB 17 DB 17 abierto :L KB 2 Desplazamiento / corrimiento como constante :SPA OB 180 Llamar al OB 180: se adaptan DBA y DBL

Después de llamar al OB 180 ya no se puede, por ejemplo, llamar a la palabra de datos registrada en la dirección 1520H con DW 5, sino con DW 3, etc. (véase fig. 6-6).

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 291: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Fig. 6-6 Desplazamiento de la dirección inicial DB

Gracias a la modificación simultánea de los registros DBL, queda garantizada la supervisión de errores: la operación T DW 5 está permitida, mientras que T DW 6/ L DW 6 son erróneas.

Mediante reiteradas llamadas al OB 180, el DBA puede volver a ser aumentado (el DBL sigue disminuyendo): la operación A DB 17 recupera el estado inicial (DBA = 151BH, DBL = 8). Si, por ejemplo, el DB 17 tuviera una longitud de 258 palabras de datos, con las operaciones STEP 5 ya no se podria acceder a las DW 256 y DW 257. Desplazando el DBA dos valores se puede acceder a las palabras de datos 256 y 257 con "DW 254" y "DW 255".

(En cuanto al registro DBA/DBL, véase también capitulo 9)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 292: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.17 OB 181: Comprobar módulos de datos (DBIDX)

Introducción El módulo de organización de funciones especiales OB 181 permite comprobar,

si existe un determinado módulo de datos DB o DX,

en qué dirección está registrada la primera palabra del módulo de datos,

cuántas palabras de datos contiene el módulo de datos en cuestión,

el tipo y la zona de memoria utilizados.

Aplicación del Conviene utilizar la función "comprobar DBDX" antes de las instrucciones OB 181 TNBITNW, E DB/EX DX y antes de llamar a los módulos de organización de

funciones especiales OB 182, OB 254 y OB 255.

Así, por ejemplo, se puede llamar al OB 181 antes de una transferencia en bloque de palabras de datos, para cerciorarse de que el módulo de datos de destino sea válido y lo suficientemente largo para acoger todas las palabras de datos que han de ser copiadas.

Función

Parámetros

Resultado

El OB 181 comprueba si existe el módulo de datos indicado y da como resultado los parámetros característicos del módulo de datos.

número de módulo, valores admisibles: 1 a 255

identificación del módulo, valores admisibles: 1 = D B

2 = DX

El módulo comprobado se encuentra en la CPU:

- AKKU-1-L: dirección de la lvalabra de datos (DW O),

- AKKU-2-L: longitud del módulo de datos en palabras (sin cabeza) Ejemplo: el AKKU-2-L contiene el valor '7': el módulo de datos consta de las palabras de datos D W O a D W 6 ,

- VKE: = O,

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 293: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

- ANZ l/ANZO: se alteran conforme a la posición del módulo (véase tabla siguiente),

- demás indicadores de bit y de palabra: se borran.

El módulo comprobado no se encuentra en la CPU o ha ocurrido un error:

- AKKU l y 2 : no se modifican,

- VKE: = 1,

- ANZ l/ANZO: = 1,

- demás indicadores de bit y de palabra: se borran.

VKE, ANZ 1, De acuerdo con el resultado de la comprobación se activan los siguientes ANZ O indicadores, los cuales pueden ser evaluados mediante las operaciones que

figuran en la columna "consulta":

Errores

VKE

O

O

O

1

Ejemplos

Pueden presentarse los siguientes errores:

ANZ 1

O

O

1

1

número de módulo erróneo (no válido: O - DB O o DX O),

identificación de módulo errónea (válida: 1 = DB, 2 = DX; no válida: 0, entre 3 y 255),

ANZ O

1

O

O

1

error de memoria.

V. capítulos 8.3, 9.2 y 9.3

Consulta

SPM

SPZ

SPP

SPB

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

DB/DX en la memoria de usuario

DB/DX en DB-FMM

DB/DX no existe o error

DB/DX en modo EPROM (sólo lectura)

DB/DX en modo FMM (lectura y escritura)

DB/DX existe

Page 294: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.18 OB 182: Copiar zona de datos

Función El OB 182 copia un bloque de datos de longitud variable de un módulo de datos a otro. Como módulos fuente y destino pueden utilizarse módulos DB y DX. El inicio del bloque puede ser seleccionado a voluntad, tanto en el módulo de datos fuente como destino. El OB 182 puede copiar un máximo de 4091 palabras de datos. Contiene pseudolímites de instrucciones.

Parámetros

Bit nQ

1"alab.

2"alab.

3"alab.

4"alab.

5"alab.

Nota Los módulos fuente y destino pueden ser idénticos. Las zonas de datos fuente y destino pueden solaparse. Los datos originales de la zona fuente se copian en la zona destino sin ser modificados, incluso en caso de solaparse. Después del proceso de copia, la zona de intersección de la fuente (zona solapada) queda sobreescrita. Esta característica de la función puede utilizarse para desplazar una zona de datos dentro de un módulo.

1. Campo de datos con parámetros de copia

Antes de llamar al OB 182 hay que darle a un campo de datos los parámetros necesarios para el proceso de copia deseado. Este campo de datos puede crearse en un módulo de datos DB o DX, en la zona de marcas M o S.

El campo de datos define los módulo de datos fuente y destino, la dirección inicial del bloque de ambos módulos así como la cantidad de palabras de datos a transferir. El campo consta de cinco palabras:

Significado de los parámetros y campos admisibles:

15 8

Tipo de DB fuente

7 O

N V e DB fuente

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Parámetros

Tipo de módulo de datos (fuente y destino)

N V e módulo de datos (fuente y destino)

N V e la lvalabra de datos (fuente y destino)

Cantidad de palabras de datos

N V e la lvalabra de datos a transferir en el DB fuente

Campo de datos admisible

1 = D B , 2 = D X

3 a 255

O a 4090

1 a 4091

Tipo de DB destino N V e DB destino

N V e la lvalabra de datos a transferir en el DB destino

Cantidad de palabras de datos

Page 295: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

C a m ~ o de datos en la zona de marcas;

Si se crea el campo de datos en una zona de marcas hay que tener en cuenta la siguiente asignación de las palabras de datos a los bytes de marcas. X es el parámetro " N V e la lvalabra del campo de datos" que debe ser depositado en el AKKU-1-L al llamar de OB 182:

Bit nQ

1"al. campo dat.

2 9 a l . campo dat.

3"al. campo dat.

4"al. campo dat.

5"al. campo dat.

2. Acumuladores

AKKU-2-L

15 8

byte de marcas x

byte de marcas xt2

byte de marcas xt4

byte de marcas xt6

byte de marcas xt8

El AKKU-2-L contiene indicaciones sobre el campo de datos utilizado. Debe tener la siguiente estructura:

7 O

byte de marcas x t l

byte de marcas xt3

byte de marcas xt5

byte de marcas xt7

byte de marcas xt9

Bit nQ

Parámetros en el AKKU-2-L

15 8

Tipo de zona de direcciones

Tipo de zona de direcciones, valores admisibles: 1 = módulo de datos DB

2 = módulo de datos DX 3 = zona de marcas M 4 = zona de marcas S

7 O

NVel módulo de datos

NVel módulo de datos, valores admisibles: 3 a 255 (sólo si el tipo de zona de direcciones

es '1' ó '2'; si el tipo de zona de direcciones es '3' ó '4' no es significativo)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 296: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Resultado

Errores

N V e la lvalabra del campo de datos, valores admisibles (dependiendo del tipo de zona de direcciones):

DB, DX: O a 2043 Marcas M: O a 246

(= n v e byte marcas 'x') Marcas S O a 1014

(= n v e byte marcas 'x')

Después de procesar correctamente el OB 182, los bits indicadores OR, ERAB y OS = O. Todos los demás bits indicadores, así como AKKU 1 y AKKU 2 permanecen inalterados.

En caso de error se llama al OB 19 u OB 31. Si los OB 19 y OB 31 no están cargados, la CPU pasa al estado STOP. En ambos casos de depositan identificadores de error en AKKU-1-L y AKKU-2-L (véase la siguiente tabla).

Tabla 6-9 Identificadores de error del OB 182

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

AKKU-1-L

1A06H

1A34H

AKU-2-L

-

OOOlH

OlOOH

OlOlH

0102H

0200H

0201H

0202H

0203H

0210H

0211H

0212H

0213H

0220H

0221H

0222H

0223H

Significado

Módulo no cargado

Definición errónea del campo de datos

Tipo de zona de direcciones no valido

NVel módulo de datos no válido

"Número de la lvalabra del campo de datos" no válido

"Tipo del módulo de datos fuente" no válido

"NWel módulo de datos fuente" no válido

"NWe la 1"alabra de datos a transferir en el DB fuente" no válido

Longitud del módulo de datos fuente en la cabeza < 5 palabras

"Tipo del módulo de datos destino" no válido

"NWel módulo de datos destino" no válido

"NWe la 1"alabra de datos a escribir en el DB destino" no válido

Longitud del módulo de datos destino en la cabeza e 5 palabras

"Cantidad de palabras a transferir" no válida (= O ó > 4091)

Módulo de datos fuente demasiado corto

Módulo de datos destino demasiado corto

Módulo de datos destino protegido contra escritura (modo EPROM)

OB llamado

OB 19

OB 31

Page 297: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.19 OB 185 : Activar/desactivar la protección contra escritura

Función Si utiliza una Memory Card y debe acceder ya en el OB 20 a los módulos de datos, puede desactivar la protección contra escntura llamando al OB 185 en el OB 20.

Aplicación El OB 185 evalúa el bit O del AKKU 1 L y ajusta la protección contra escritura según corresponda. Posteriormente transfiere el valor del bit O del AKKU 1 L al bit O del dato de sistema BS 138. Los demás bits del AKKU 1 L no se evalúan.

El OB 185 sólo se ejecuta durante un nuevo arranque, es decir, en el OB 20. En los demás estados operativos, su llamada no tiene efecto alguno, por lo que tampoco causa ni un error ni una reacción a un error.

Parámetros

Activar/desactivar la protección contra escritura Valores admisibles: Bit 0=0: Desactivar la protección contra escritura

Bit 0=1: Activar la protección contra escritura

Resultado EL OB 185 se pone a O en los indicadores de bit OR y /ERAB, así como en los indicadores de palabra OS.

Estado de la Puesto que el OB 185 modifica al dato BS que es consultado al final del OB 20 protección nuevamente por el sistema, si el usuario cambia dicho dato directamente es contra escritura posible que la protección contra escritura se modifique también de forma

accidental.

Resumen CPU 928B en modo RAM sinóptico

Protección contra escritura desactivada: bit O del BS 138 = O

Pila USTACK del PG: identificador de cartucho: RAM 32 KW

Capacidad de memoria del PG: RAM hasta 07FFEH

Dirección final de la memoria de usuario del PG: 08000H

Todos los módulos: "válidos en la RAM" -> se pueden cargar, borrar y sobreescribir

CPU928B en modo EPROM

Protección contra escritura activada: bit O del BS 138 = 1

Pila USTACK del PG: identificador de cartucho: EPROM

Capacidad de memoria del PG: RAM hasta OOOOOH

Dirección final de la memoria de usuario del PG: OEEEEH

Módulos de código y módulos de datos no copiados en la DB-RAM: "válidos en la EPROM" -> no se pueden cargar, borrar ni sobreescribir

Módulos de datos copiados en la DB-RAM: "válidos en la RAM" -> se pueden cargar, borrar y sobreescribir

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 298: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.20 OB 186: Comprimir memoria

Función Con el módulo de organización OB 186 se puede comprimir la memoria y consultar o comprobar el estado de la función de compresión. La función del OB 186 equivale a la función del PG "Comprimir memoriau (v. capítulo 11.2).

Parámetros

Resultado

Nota Mientras la memoria se comprime mediante el OB 186, se rechaza la función del aparato de programación "Comprimir memoria". Otras funciones del aparato de programación sólo se pueden ejecutar entonces de forma limitada. Al estar activadas las funciones del aparato de programación se rechazará el OB 186.

La función "Comprimir memoria" mediante el OB 186 toma bastante tiempo, por lo que el programa de sistema la reparte en varios ciclos. No se visualizan mensajes explícitos. No obstante, éstos se pueden emitir llamando cíclicamente al OB con el número de función 2.

El OB 186 no llama a ningún OB de error.

AKKU-1-L

El AKKU 1 L contiene el número de función.

Valores admisibles: 0001H: Iniciar la compresión 0002H: Consultar/comprobar el estado de la función de compresión

EL OB 186 se pone a O en los indicadores de bit OS y /ERAB, así como en los indicadores de palabra OR.

Si se llama al OB 186 se obtienen los siguientes resultados:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 299: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.21 OB 1901192: Transferir marcas a un módulo de datos

Aplicación Los módulos de organización OB 190 y OB 192 transfieren una cantidad de bytes de marcas determinada por el usuario en un módulo de datos previsto para ello. Esto puede ser ventajoso, por ejemplo, antes de llamadas a módulos, en módulos de organización de errores o en caso de interrumpirse el procesamiento cíclico del programa debido a un procesamiento controlado por tiempos o por alarmas. A continuación, estos bytes de marcas pueden volver a ser escritos desde el módulo de datos mediante los módulos de organización OB 191 y OB 193.

Nota Utilizar los OB 190 y OB 191 para rescatar y releer fácilmente los bytes de marcas, puesto que resulta muy ventajoso en cuanto al tiempo de ejecución. ¡Antes de llamar al OB 190/192 hay que abrir un módulo de datos (DBDX)! Los OB 1901192 transfieren a un módulo de datos solamente desde la zona de marcas M, y no desde la zona de marcas S.

Función Después de llamar al OB 1901192 se registran los bytes de marcas en el módulo de datos abierto a partir de la dirección de la palabra de datos indicada. Los OB 1901192 extraen del AKKU 2 la zona de las marcas a rescatar. Los OB 190 y 192 son idénticos a excepción de la forma en que transfieren los bytes de marcas:

El OB 190 transfiere las marcas byte por byte.

El OB 192 transfiere las marcas palabra por palabra.

Esto es importante cuando los datos transferidos al módulo de datos hayan de ser procesados posteriormente y cuando el módulo de datos se use no solamente como memoria intermedia. La siguiente figura aclara esta diferencia:

Copiar marcas con OB 190:

Marcas - Módulo de datos Módulo de datos

Fig. 6-7 Tranferencia byte por byte (OB 190) y palabra por palabra (OB 192)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 300: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Parámetros

Resultado

Errores

Nota Si se transfiere una cantidad impar de bytes de marcas, solamente se usa la mitad de la última palabra de datos del módulo utilizada . En el OB de destino queda inalterado el dato de la izquierda en el caso del OB 190 y el dato de la derecha en el caso del OB 192.

1. Indicaciones sobre la fuente de datos:

AKKU-2-LH

Primer byte de marcas a transferir, valores admisibles: O a 255

Ultimo byte de marcas a transferir, valores admisibles: O a 255

(;Ultimo byte de marcas z primer byte de marcas!)

2. Indicaciones sobre el destino

AKKU-1-L

Número de la primera palabra de datos a escribir en el módulo de datos abierto:

Los valores admisibles se basan en la longitud del módulo de datos en la memoria: pueden aparecer números > 255.

Si se procesa correctamente el OB de funciones especiales 190/192 se borra el resultado lógico VKE (VKE = O). Los acumuladores permanecen inalterados.

En caso de error se activa el VKE (VKE = l) , los acumuladores no se modifican.

Pueden presentarse los siguientes errores:

ningún módulo de datos DB o DX abierto

zona de marcas errónea (último byte de marcas e primer byte de marcas)

número de palabra de datos no existe.

longitud del módulo de datos DB o DX insuficiente

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 301: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.22 OB 1911193: Transferir bloques de datos a la zona de marcas

Aplicación Con los módulos de organización OB 191 y OB 193 se transfieren datos de un módulo de datos a la zona de marcas. Así, por ejemplo, se pueden reescribir en la zona de marcas los bytes de marcas anteriormente "rescatados" en un módulo de datos.

Los OBs 1911193 se diferencian de los OBs 1901192 solamente por el hecho de que la fuente y el destino de datos están intercambiados:

OB 1901192: Zona de marcas + Módulo de datos

OB 1911193: Zona de marcas Módulo de datos

Nota ¡Antes de llamar a los OBs 1911193 hay que abrir un módulo de datos lo suficientemente largo (DBDX)!

Los OBs 1911193 transfieren desde el módulo de datos solamente a la zona de marcas M, y no a la zona de marcas S.

Función Después de llamar al OB 1911193 se leen palabras de datos del módulo de datos abierto a partir de la dirección indicada y se transfieren a la zona de marcas. Los OBs 191 y OB 193 son idénticos, a excepción de la forma en que transfieren los datos:

El OB 191 transfiere las palabras de datos byte por byte.

El OB 193 transfiere las palabras de datos palabra por palabra.

La figura ilustrada en la página siguiente aclara esta diferencia.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 302: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Módulo de datos O 6 191 k Marcas

D L DR

Módulo de datos O 6 193 Marcas

Fig. 6-8 Tranferencia byte por byte (OB 191) y palabra por palabra (OB 193)

Parámetros 1. Indicaciones sobre la fuente

Número de la primera palabra de datos a transferir en el módulo de datos abierto

2. Indicaciones sobre el destino

Primer byte de marcas a escribir, valores admisibles: O a 255

Ultimo byte de marcas a escribir, valores admisibles: O a 255

(;Ultimo byte de marcas z primer byte de marcas!)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 303: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Resultado Si se ha procesado correctamente el OB 191 ó 193 de funciones especiales, se borra el VKE (VKE = O). Los acumuladores permanecen inalterados.

En caso de error se activa el VKE (VKE = l), los acumuladores permanecen inalterados.

Errores Pueden presentarse los siguientes errores:

ningún módulo de datos DB o DX abierto,

zona de marcas errónea (último byte de marcas e primer byte de marcas),

número de palabra de datos no existe,

longitud del módulo de datos DB o DX insuficiente.

Ejemplos

Antes de llamar a l módulo de programa PB 12 hay que resca ta r todas l a s marcas (MB O a MB 255) en e l módulo de datos DX 37 a p a r t i r de l a dirección 100 y, seguidamente, r e e s c r i b i r l o s .

:AX DX 37 Llamar a l módulo de datos :L KY 0,255 ZonademarcasMBOaMB255 :L KB 100 NQ de l a palabra de datos en des t ino :SPAOB 190 Rescatar marcas

Cambio de módulo:

: SPA PB 12

Reescribir :

(Módulo de datos ya llamado) :L KB 100 NQ de l a l a palabra de datos en l a fuente :L KY 0,255 ZonademarcasMBOaMB255 :SPA OB 191 Reescribir marcas

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 304: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

as marcas utilizadas por el programa de usuario ciclico no pueden ser tilizadas adicionalmente por un programa de usuario controlado por tiempo por alarma. A cada nivel de procesamiento tiene que asignársele una parte eterminada de la zona de marcas. or ej.:programa de usuario ciclico: M B O ... . ... M B 9 9

programa de usuario controlado por tiempo: MB 100 ... . ... MB 199 programa de usuario controlado por alarma: MB 200 ... . ... MB 255

o obstante, si el programa de usuario ciclico ya está utilizando los 256 ytes de marcas y el programa de usuario controlado por tiempo, por ej., ambién necesita los 256 bytes de marcas, hay que intercambiarlos y lmacenarlos de forma intermedia al efectuar el cambio de nivel de

procesamiento. Las marcas se rescatan y cargan más deprisa utilizando las funciones especiales OB 190 y OB 191. La figura 6-9 muestra como se almacena de forma intermedia en un módulo de datos DB z una zona de marcas MB x a MB y, utilizada conjuntamente por el OB 1 y el OB 13 (alarma temporizada 100 ms):

- -

Fig. 6-9 Rescate de las zonas de marcas en el cambio de nivel de procesamiento

P r o g r a m a STEP 5 en e l OB 13:

:A DB 100 :L KY 0,255 :L KB O :SPA OB 190 :L KB 128 :L KY 0,255 :SPAOB 191

:A DB 100 :L KY 0,255 :L KB 128 :SPA OB 190 :L KB O :L KY 0,255 :SPA OB 191

Instrucciones de programación CPU 9288-311821

C79000-G8578-C870-01

Page 305: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

- En la CPU 928B, se procesan mucho más deprisa las operaciones de procesamiento de bits uno por uno (U, O, ON, UN, S, R, =) que acceden a la zona de marcas, que otras operaciones comparables de accesos a módulos (compárese por ej. ¡con las operaciones 'U M' . 'U D' o

Por este motivo, el tiempo de ejecución disminuirá si se copian y procesan los datos en la zona de marcas, y se vuelven a transferir posteriormente al módulo.

- El byte alto y el byte bajo pueden ser intercambiados sin gran esfuerzo transferiendo las palabras de datos a la zona de marcas y volviendo a transferirlas al módulo de datos con los OBs necesarios, como muestra la

Módulo de datos Marca Módulo de datos

Fig. 6-10 Intercambio del byte alto con el byte bajo en un DB con los OB 19310B190

- Se pueden "desplazar" bloques de datos dentro de un módulo de datos indicando, al retransferir desde la zona de marcas, el mismo número de DB pero con otra palabra de datos.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 306: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.23 OB 200 y OB 202 a 205: Comunicación en multiprocesamiento

Resumen En el capítulo 10 se encuentran instrucciones detalladas sobre estos módulos de organización de funciones especiales.

Los módulos de organización de funciones especiales OB 200 y OB 202 a OB 205 permiten transferir datos en modo multiprocesador entre las distintas CPUs utilizando el coordinador KOR 923C.

OB 200: Inicializar

Este módulo de organización de funciones especiales instala en el coordinador KOR 923C la memoria intermedia, en la que se almacenan temporalmente los bloques de datos a transferir.

OB 202: Emitir

Esta función transfiere un bloque de datos a la memoria intermedia del coordinador KOR 923C e indica la cantidad de bloques de datos que todavía pueden ser transmitidos.

OB 203: Test de emisión

El OB 203 de funciones especiales avengua la cantidad de bloques de memoria libres existentes en la memoria intermedia del coordinador KOR 923C.

OB 204: Recibir

Esta función recoge un bloque de datos de la memoria intermedia del coordinador KOR 923C e indica la cantidad de bloques de datos que todavía pueden ser recibidos.

OB 205: Test de recepción

El módulo de organización de funciones especiales OB 205 avengua la cantidad de bloques de memoria ocupados en la memoria intermedia del coordinador KOR 923C.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 307: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.24 OB 21 6 a 21 8: Accesos a páginas

¿Qué son Para poder alojar una gran cantidad de memorias de comunicación en la zona de páginas? direcciones del bus S5, se dispone de una zona de direcciones de una longitud de

1024 bytes (2048 bytes reservados) registrada 256 veces en la memoria. Estas zonas de memoria (páginas) se encuentran dispuestas una al lado de la otra, o bien una detrás de la otras (como las páginas de un libro).

En modo multiprocesador, las tarjetas que intervienen sólo pueden acceder a una sola página de esta memoria. Las demás páginas deben estar protegidas contra lectura y escritura. Esto se efectúa de la siguiente manera:

Para seleccionar las páginas necesarias se utiliza un "registro de direcciones de páginas" que se encuentra en todas las tarjetas que operan con páginas y que tiene una dirección fija en el bus S5. En cada una de estas tarjetas el usuario puede ajustar mediante el interruptor DIL los números (direcciones) de las páginas, de manera que cada página no aparezca más de una vez en el autómata programable.

Antes de cada lectura o escritura de una página, la CPU indica el número de página escribiéndolo en el registro de direcciones de páginas. Todas las tarjetas que operan de este modo en el bus S5 reciben simultáneamente ("broadcast") este número y lo depositan en su memoria. Solamente podrá ser escrita o leída a través del bus S5 la página que tenga esta dirección ; las demás páginas estarán bloqueadas.

¿Cómo acceder Los módulos de organización OB 216 hasta OB 218 así como algunas operaciones a las páginas? STEP 5 (véase capítulo 9) permiten acceder a las "páginas".

Los módulos de organización contienen las siguientes funciones:

Escritura de un bytelpalabralpalabra doble en una página

OB 217:

Lectura de un bytelpalabralpalabra doble de una página

Ocupación de una página por la CPU (sirve para la coordinación en modo multiprocesador)

Estas funciones sirven para fines de comprobación y permiten programar módulos de comunicación o funciones similares.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 308: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Nota Por lo general se pueden ejecutar todas las funciones con los módulos de funciones estándar "Módulos de comunicación" y con los módulos de organización integrados de funciones especiales "Comunicación en multiprocesamiento" (OB 200, OB 202 a OB 205), los cuales permiten acceder "automáticamente" a las páginas.

Los accesos a las páginas deben ser programados, a ser posible, solamente mediante llamadas a los OB 216 a OB 218. Por el contrario, las operaciones STEP 5 que también están previstas para ello, solamente deberán ser utilizadas si se dispone de amplios conocimientos del sistema.

Zonas de direcciones para periferia en el bus S5

Bit FOOO

FCOO

FEFF

FFOO . .

FFFF

Fig. 6-11 Posición de la zona de direcciones de páginas en el bus S5

Tamaño de página

1024 direcciones (direcciones de bytes o de palabras)

2048 direcciones (direcciones de bytes o de palabras)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Zona de direcciones ocupada

F400H - WFFH

F400H - FBFFH

7 o

Zona P

Zona Q

Marcas d e acoplamiento

Zona d e s is tema (semáforos)

en el coord inador

Zona de direcc. d e una página

Per i fer ia decent ra l

(o l ibre)

Registro de direcc. de p k g i n a a

No ocupado

Zona d e memor ia múl t ip le Tamaño: 1024 Ó 2048 byte

., ''. Página nQ255.,."'

Página n"

Page 309: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Parametrizando los módulos de organización de funciones especiales OB 216, OB 217 y OB 218 se determina cuál de las 256 páginas se va a utilizar. El número de la página actual se registra automáticamente en una célula con la dirección OFEFFH (véase figura 6-11). Todos los direccionamientos se refieren entonces a la página cuyo número ha sido registrado.

Nota El registro de direcciones de páginas con la dirección OFEFF H no puede ser leido. Sin embargo, con esta dirección se puede leer, en la tarjeta del coordinador 923C, el registro de errores de bus (véase manual de sistema S5 135Ul155U).

Observaciones Para la escritura (OB 216) y lectura (OB 217) de un bytelpalabralpalabra doble en una página, se accede a los bytes en el siguiente orden:

Direcc ión n Representac ión byte

D i recc ión n Byte a l to

Representac ión pa labra Di recc ión n t l By te ba jo

D i recc ión n

D i recc ión n t l

D i recc ión n t 2

Byte al to en pa l . a l t a

Byte bajo en pal . a l ta

Byte al to en pa l . ba ja

Byte ba jo en pa l . ba ja r Representac ión pa labra dob le

Fig. 6-12 Posición de los bytes durante la escritura (OB 216) /lectura (OB 217) como palabra o palabra doble en una página

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 310: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.24.1 OB 216: Escritura en página

Función El módulo de organización de funciones especiales transfiere un byte, una palabra o una palabra doble del AKKU 1 ('justificado a la derecha) a una página determinada. El direccionamiento de la página en modo mono o multiprocesador así como la transferencia del dato completo (1 ,2 ó 4 bytes) constituyen una unidad de programa inseparable que no puede ser interrumpida.

Parámetros Acumuladores

Identificación del dato a transferir, valores admisibles: O = byte

1 = palabra 2 = palabra doble

Número de la página actual, valores admisibles: O a 255

Dirección de destino en la página, valores admisibles: O a 2047

AKKU 1

Dato a escribir (byte, palabra, palabra doble: justificado a la derecha)

Ocupación del AKKU antes de escribir y antes de llamar al OB 216:

AKKU 3

e Palabra a l ta Palabra baja +

AKKU 2

AKKU 4 Byte alto Byte bajo

x x

X X

Byte alto Byte bajo x x

Ident i f . de longi tud N q e página O: byte (8 bit) 0 hasta 255

1 : pa lab ra ( l 6 bit)

2: palabra doble (32 bit)

X X

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Di recc ión ( re la t iva a l comienzo de la página) O 2047 con identif de longitud O (byte)

O . 2046 con identi f . de longitud 1 (palabra)

O . 2044 con identi f . de longitud 2 (palabra doble)

AKKU 1

4 x + Dato (8 bit) -b

4 x r7 Dato (16 bit) b L : A

4 Dato (32 bit)

31 24 2 3 16 ' 15 8 l7 O

Page 311: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Resultado La escritura en la página es satisfactoria:

- AKKU 1 y AKKU 3: no se modifican,

- AKKU-2-L: contiene un valor aumentado en 1 , 2 ó 4 (según la longitud del dato transferido),

- VKE: = 1,

- restantes indicadores de bit y de palabra: se borran.

No es posible escribir en la página:

- los acumuladores: no se modifican,

- VKE: = o,

- restantes indicadores de bit y de palabra: se borran.

Errores Pueden presentarse los siguientes errores:

identificación de longitud errónea en el AKKU-3-LH,

dirección de destino en la página: errónea o no existe,

número de página indicado no existe.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 312: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.24.2 OB 217: Lectura de página

Función El módulo de organización de funciones especiales transfiere un byte, una palabra o una palabra doble desde una página determinada al AKKU 1 (justificado a la derecha). El direccionamiento de la página en modo mono o multiprocesador así como la transferencia del dato completo (1 ,2 ó 4 bytes) constituyen una unidad de programa inseparable que no puede ser interrumpida.

Parámetros Acumuladores

Identificación del dato a transferir, valores admisibles:

Número de página actual, valores admisibles:

O = byte 1 = palabra 2 = palabra doble

Dirección fuente en la página, valores admisibles: O a 2047

Ocupación del AKKU antes de leer y antes de llamar al OB 217:

P a l a b r a a l t a P a l a b r a b a j a B v t e a l t o B v t e b a i o -)tt B v t e a l t o B v t e b a i o 7

AKKU 4 1 x x 1 x x 1

AKKU 3

AKKU 2

X X

k x L D a t o (8 b i t )

I d e n t i f . d e l o n g i t u d N q e p á g i n a O: byte (8 bit) O h a s t a 255

1: palabra(16 bit) 2: palabra doble (32 bit)

X X

AKKU 1 - x D a t o (16 b i t ) -4

D i r e c c i ó n ( r e l a t i v a a l c o m i e n z o d e l a p á g i n a ) O t 1 . 2047 t 1 con identif de longitud O (byte) O t 2 . 2046 t 2 con identif de longitud 1 (palabra)

O t 4 . 2044 t 4 con identif de longitud 2 (pal. doble)

1) D a t o (32 b i t ) 24 2 3 16 ' 15 8 l 7 O

' ) Almacenamiento de los datos después de llamar al OB 217

I n s t r u c c i o n e s de p r o g r a m a c i ó n CPU 9 2 8 B - 3 U B 2 1

C 7 9 0 0 0 - G 8 5 7 8 - C 8 7 0 - 0 1

Page 313: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Resultado La lectura de la página es satisfactoria:

contiene (justificado a la derecha) el valor leído (el posible resto de los 32 bits se borra),

- AKKU3: no se modifica,

- AKKU-2-L: contiene un valor aumentado en 1 , 2 ó 4 (según la longitud del dato transferido),

- VKE: = 1,

- restantes indicadores de bit y de palabra: se borran.

No es posible leer la página:

- los acumuladores: no se modifican,

- VKE: = o,

- restantes indicadores de bit y de palabra: se borran.

Errores Pueden presentarse los errores siguientes:

identificación errónea de longitud en AKKU-3-LH,

dirección fuente en la página: errónea o no existe,

número de página indicado no existe.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 314: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.24.3 OB 218: Ocupación de página

Función El módulo de organización de funciones especiales transfiere el número de la CPU a una página determinada en caso de que el contenido de la célula direccionada en esta página sea igual a cero. Mientras el nWe la CPU esté registrado en la célula, la página quedará reservada para esta CPU y no podrá ser ocupada por otras CPUs. El módulo de organización OB 218 sirve para sincronizar la transferencia de datos y tiene especial importancia cuando se deban enviar o transferir bloques de mayores dimensiones que estén relacionados entre sí. En modo multiprocesador, por cada asignación de bus no se transfieren más de 4 bytes. Por este motivo conviene efectuar un bloqueo.

El direccionamiento de la página, la lectura y, en ocasiones, la escritura de la identificación del slot constituyen una unidad de programa que no puede ser interrumpida.

Parámetros

AKKU 2

AKKU 1

Acumuladores

Número de la página a ocupar, valores admisibles: O a 255

Dirección de destino en la página, valores admisibles: O a 2047

(Los contenidos de AKKU 3 y AKKU 4 no son significativos.)

Ocupación de la página antes de llamar al OB 218:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

r. Palabra ba ja h L A

Byte alto Byte ba jo

x N q e página : O hasta 255

4 Palabra a l ta

X X

Byte alto

Dir. ( re la t iva a l comienzo de la página) O hasta 2047

Byte bajo

31 24 2 3 16 15 8 ' 7 O

x x

Page 315: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Resultado La ocupación de la página es satisfactoria:

- los acumuladores: no se modifican,

- VKE: = 1,

- restantes indicadores de bit y de palabra: se borran.

No es posible ocupar la página:

- los acumuladores: no se modifican,

- VKE:

- restantes indicadores de bit y de palabra: se borran.

Errores Puede ocurrir el error siguiente:

n v e página indicado no existe.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 316: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.24.4 Ejemplo de programación

Del DB 45 de una CPU 928B hay que transferir las palabras de datos 4 a 11 por medio del KOR 923C al DX 45 (palabras de datos O a 7) de una segunda CPU 928B. La sincronización entre emisor y receptor (¡en modo multiprocesador!) se realiza mediante el OB 218.

Página actual en el coordinador:

Célula de coordinación en la página (ocupar):

Zona de transferencia de datos en la página (leer y escribir): dir. 54-69

Operaciones STEP 5 en el EMISOR:

:L KB 255 Número de página :L KB 53 Dirección de célula de coordinación : SPA OB 218 Transferir identificación de slot a

célula en página :SPB =M001 Si VKE = 1 (tranferencia satisfactoria),

salto a marca De lo contrario fin de módulo

M001 :A DB 45 Abrir módulo de datos fuente :L KY 2,255 2 = ident. de longitud palabra doble, nQ de página :L KB 54 Dirección inicial en página

Escribir el AKKU 3 :L DD 4 Palabras de datos 4 y 5 (= 4 byte) : SPA OB 2 16 Transferir la palabra doble

Aumentar en 4 la dirección (AKKU-2-L = 58) Rescatar dirección de destino

:L DD 6 :SPAOB 216 Transferencia de la 2a palabra doble

:L DD 8 :SPAOB 216 Transferencia de la 3a palabra doble

:L DD 10 :SPAOB 216 Transferencia de la 4a palabra doble

Dirección con identificación de slot

AKKU 1 = 0 :SPAOB 216 Borrar identificación de slot, habilitar

zona de transferencia de datos

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 317: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Operaciones STEP 5 en el RECEPTOR:

:L KB 255 Número de página :L KB 53 Célula de coordinación : SPA OB 218 Ocupación de la página por 2a CPU :SPB =M002 Si VKE = 1, salto a marca

M002 :AX DX 45 Módulo de datos destino :L KY 2,255 :L KB 54

Escribir AKKU 3 :L KB O Escribir AKKU 2

: SPA OB 217 Leer la palabra doble Aumentar en 4 la dirección (AKKU-2-L = 58)

:T DD O Transferencia AKKU 1 a la palabra de datos O y 1

:SPAOB 217 Leer 2a palabra doble :T DD 2

:SPAOB 217 Leer 3a palabra doble :T DD 4

:SPAOB 217 Leer 4a palabra doble :T DD 6

:L KY 0,255 :L KB 53 Dirección con identificación de slot

:L KB O AKKU 1 = 0 :SPAOB 216 Borrar identifiación de slot, habilitar

zona de transferencia de datos

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 318: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.25 OB 220: Ampliación del signo

Aplicación Una ampliación del signo es necesaria para ampliar un número negativo en coma fija de 16 bit a un número en coma fija de 32 bit, antes de una conversión de coma fija a coma flotante (32 bit, operación FDG).

Función

Parámetros

Resultado

Errores

Esta función especial amplía el signo de un número en coma fija de 16 bit en el AKKU-1-L a la palabra alta (AKKU-1-H):

Si el bit 215 = O (número positivo), la palabra alta se carga con KH = 0000.

Si el bit 215 = 1 (número negativo), la palabra alta se carga con KH = FFFF.

AKKU-1-L

Número en coma fija de 16 bit

El AKKU-1-H se carga de acuerdo con el signo del número en coma fija en AKKU-1-L (véase arriba).

Ninguno

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 319: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.26 OB 221 : Ajustar el tiempo de supervisión de ciclo

Función La llamada a esta función especial permite modificar el tiempo de supervisión de ciclo y determinar nuevamente el tiempo máximo de ciclo. El tiempo estándar es de 150 ms. Con esta llamada simultáneamente se arranca de nuevo el temporizador para la supervisión: el tiempo de ciclo máximo admisible para el ciclo en el que se llama al OB 221 se prolonga por el nuevo valor ajustado, contando a partir del momento en que se efectúa la llamada a la función especial. El tiempo de supervisión de todos los ciclos restantes corresponde al nuevo valor ajustado (= valor de tiempo que el usuario transfiere al AKKU 1).

Parámetros

Resultado

Errores

AKKU 1

Nuevo tiempo de ciclo (en milisegundos), valores admisibles: 1 ms -13000 ms,

número en coma fija positivo (KF)

AKKU-1-H

El AKKU-1-H tiene que contener el valor 'O'

Tras un procesamiento correcto del OB 221 quedará ajustado el nuevo tiempo de supervisión de ciclo.

El tiempo de supervisión indicado no se encuentra en la zona de 1 ms a 13000 ms.

La función no se ejecuta. El programa de sistema detecta un error en tiempo de ejecución y llama al OB 31. Las siguientes reacciones dependen de cómo esté programado el OB 31 (véase capítulo 5.6). Si el OB 31 no está cargado, la CPU pasa al estado STOP.

En ambos casos se registra la identificación 1A3AH en el AKKU-1-L.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 320: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.27 OB 222: Nuevo arranque del tiempo de supervisión de ciclo

Función La función especial OB 222 produce una reactivación del tiempo de supervisión de ciclo. Es decir, el temporizador de supervisión arranca de nuevo. Al llamar a esta función se prolonga el tiempo máximo del ciclo actual por el valor ajustado, a partir del momento en que se efectuó la llamada.

Parámetros

Errores

Ninguno

Ninguno

6.28 OB 223: Comparar los modos de arranque

Función Llamando al OB 223 se comprueba si los modos de arranque de todas las CPUs que intervienen en modo multiprocesador son idénticos.

Parámetros

Resultado

Errores

lndicadores

Nota El OB 223 solamente deberá ser llamado cuando todas las CPUs hayan finalizado el arranque. Si la sincronización del arranque está activada @X) esto quedará garantizado llamando al OB 223 en estado operativo RUN. Si la sincronización del arranque está desactivada habrá que tomar otras medidas de seguridad (por ejemplo, llamada retardada al OB 223).

Ninguno

Indicadores de error si difieren los modos de arranque

Si los tipos de arranque de todas las CPUs que intervienen en modo multiprocesador difieren, la CPU en la que se procesó el OB 223 detectará un error en tiempo de ejecución. Se llama al OB 31.

Si el OB 31 no está cargado la CPU pasa al estado STOP indicando el error LZF. Su LED STOP parpadea de forma lenta. Las restantes CPUs pasan a STOP y lucen de forma permanente.

Durante la llamada al OB 31 y en el estado STOP, el AKKU 1 contiene la identificación de error 1A3BH.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 321: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.29 OB 224: Transferir marcas de acoplamiento en bloques

Función Las marcas de acoplamiento se transfieren al final de cada ciclo de programa. En modo monoprocesador, las marcas de acoplamiento se transfieren completas, en forma de bloque de datos, a la memoria del coordinador (KOR) o del CP y10 desde esta memoria a las marcas de la CPU.

Por el contrario, en modo multiprocesador cada una de las CPU solamente puede utilizar el bus mientras el coordinador (KOR) habilita su acceso al bus. Por este motivo sólo se transfiere un byte cada vez que se habilita el bus. A continuación acceden las restantes CPUs al bus S5. Los datos que guarden relación entre sí y que estén repartidos entre varios bytes de marcas serán separados.

Llamando al módulo de organización OB 224 se consigue una transferencia en bloque de todas las marcas indicadas en el DB 1 de la CPU en cuestión. Mientras una CPU esté transferiendo las marcas de acoplamiento no podrá ser interrumpida por otra CPU. Puesto que la CPU siguiente debe esperar a poder transferir sus marcas, se retarda el procesamiento cíclico del programa hasta que termine el tiempo de espera (itiempo de ciclo!).

Por consiguiente el OB 224 garantiza una consistencia de datos de toda la información de las marcas de acoplamiento. Hay que llamarlo en el programa de arranque

en todas las CPUs que intervienen en la transferencia de las marcas de acoplamiento

en todos los modos de arranque utilizados.

Parámetros

Errores

Ninguno

Ninguno

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 322: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Función Los OBs 226 y 227 existen aún en el sistema operativo por motivos de compatibilidad. La función original de los mismos (es decir, crear una suma de verificación mediante el programa de sistema) se ha integrado entretanto en el programa de sistema. Al llamar cualquiera de dichos dos OBs se obtiene el valor "O".

Los programas de usuario que utilicen los OBs para crear una suma de verificación se pueden seguir utilizando sin necesidad de modificarlos.

Nota El programa de sistema comprueba automáticamente la suma de verificación después de conectarse la alimentación o antes de efectuar un borrado total.

Suma de verificación

Las EPROMS del firmware de la CPU 928B contienen una suma de verificación. Cuando se conecta la alimentación o al efectuarse un borrado total, el software del sistema calcula por su parte una suma de verificación y la compara con el valor almacenado.

Si la suma de verificación calculada no es igual al valor almacenado, se presenta un error grave de sistema (los LEDs RUN y STOP se encienden, ROJONERDE-STOP). La CPU no funciona.

Una vez desconectada y conectada de nuevo la alimentación, la CPU exige (si es aún posible) un BORRADO TOTAL. El dato BS EA80H contiene el valor 1170H. El BORRADO TOTAL causa nuevamente un ROJONERDE-STOP.

Los OBs 226 y 227, que se podían utilizar hasta ahora para recalcular la suma de verificación, dan siempre como resultado una "suma de verificación correcta".

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 323: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.31 OB 228: Leer la información de status de un nivel de procesamiento

Función Cuando tienen lugar determinados acontecimientos, el programa de sistema llama al nivel de procesamiento correspondiente. De este modo queda "activado" el nivel de procesamiento de programa. Con el módulo de organización OB 228 se puede comprobar si un nivel de procesamiento determinado está activado o desactivado en un determinado momento. El usuario deberá transferir al AKKU 1 el número del nivel de procesamiento de programa cuyo estado (status) desee consultar. Los números corresponden a los registrados en la pila USTACK bajo el concepto "NIVEL".

Cuando se efectúa la llamada al módulo, éste deposita en el AKKU-1-L la información sobre el estado del nivel de procesamiento indicado. Evaluando esta información se puede hacer procesar el programa en función del estado de otro nivel de procesamiento.

Parámetros

Número del nivel de procesamiento (véase USTACK, NIVEL), valores admisibles (hexadecimal): véase tabla siguiente

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

N V e nivel en

AKKU-1-L

02 04 06 08 OA OC OE 10 12 14 16 18 1A 1C 1E 20

22

Nombre del nivel

NUEVO ARRANQUE CICLO ALARMA TEMPORIZADA 5 s ALARMA TEMPORIZADA 2 s ALARMA TEMPORIZADA 1 s ALARMA TEMPORIZADA 500 ms ALARMA TEMPORIZADA 200 ms ALARMA TEMPORIZADA 100 ms ALARMA TEMPORIZADA 50 ms ALARMA TEMPORIZADA 20 ms ALARMA TEMPORIZADA 10 ms PETICION DE TIEMPO no ocupado ALARMA DE REGULADOR no ocupado ALARMA TEMPORIZADA CONTROLADA POR RELOJ no ocupado

N q e nivel en

AKKU-1-L

24 26 28 2A 2C 2E 30 32 34 36 38 3A 3C 3E 40 42 44 46

Nombre del nivel

ALARMA DE PROCESO no ocupado no ocupado no ocupado Aborto Error de interfaz Colisión de alarmas temporizadas Error de regulador Error de ciclo no ocupado Error de código de instrucción Error en tiempo de ejecución Error de direccionamiento Retardo en acuse de recibo no ocupado no ocupado REARRANQUE MANUAL REARRANQUE AUTOMATICO

Page 324: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Resultado - AKKU-1-L: contiene información sobre el estado: = O += el nivel de programa no ha sido llamado z O += el nivel de programa está activado

- AKKU-2-L: en él se encuentra el contenido anterior del AKKU-1-L; se pierde el contenido anterior del AKKU-2-L.

Errores Ninguno

Ejemplo

Se ha de ignorar un retardo en acuse de recibo durante el NUEVO ARRANQUE, pero sin hacerlo en los restantes niveles de programa.

Al comenzar con el tratamiento de errores hay que llamar al OB 228 desde el OB 23 (QVZ) para comprobar si cuando tuvo lugar el QVZ estaba activado el nivel de programa NUEVO ARRANQUE (número 02). La forma en que deba continuar el tratamiento de errores se hará depender de la información sobre el estado que se obtenga:

AKKU-1-L = O: NUEVO ARRANQUE pasivo -, QVZ no tuvo lugar en el NUEVO ARRANQUE, sino en otro nivel de procesamiento de programa.

Hay que procesar programa de error.

AKKU-1-L * O: NUEVO ARRANQUE activado -, QVZ tuvo lugar en el NUEVO ARRANQUE y por lo tanto, puede ser ignorado.

Por consiguiente, el OB 228 permite tratar errores de forma especifica.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 325: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.32 OB 230 a 237: Funciones para FBs estándar

Introducción Los módulos de organización de funciones especiales OB 230 a OB 237 están reservados para funciones de comunicación y solamente pueden ser llamados dentro de los módulos de funciones estándar FB 120 a FB 127.

Módulos de Estos módulos de funciones estándar - los así llamados "módulos de comunicación comunicación" - controlan en modo mono y multiprocesador el tráfico de datos a

través de la zona de páginas. Se utilizan cuando los procesadores de comunicación (CPs) deban recibir datos o parámetros así como informaciones de control, o bien cuando se deban transferir éstos a los CPs.

Asignación De la tabla siguiente se desprende desde qué módulos de comunicación se llaman a los módulos de organización de funciones especiales OB 230 a OB 237.

Aplicación de los Para la aplicación de los módulos de comunicación, que pueden ser adquiridos como módulos de producto de software en disquete, encontrará informaciones más detalladas en el comunicación manual correspondiente (v. bibliografía 184.

Módulo de funciones estándar

FB 120

FB 121

FB 122

FB 123

FB 124

FB 125

FB 126

FB 127

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

OB de funciones especiales

OB 230

OB 231

OB 232

OB 233

OB 234

OB 235

OB 236

OB 237

Módulo de comunicación

SEND

RECEIVE

EETCH

CONTROL

RESET

SYNCHRON

SEND ALL

RECEIVE ALL

Page 326: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.33 OB 240 a 242: Funciones especiales para registros de desplazamiento

Introducción A continuación se explican los campos de aplicación de los registros de desplazamiento así como los aspectos a tener en cuenta.

Aplicación Los registros de deplazamiento pueden ser utilizados, por ejemplo, en una instalación de producción para programar con el autómata programable la transformación sucesiva del material. La CPU 928B ofrece máximo 64 registros software de desplazamiento.

En dichos registros se pueden escribir datos y leerlos. Esto se efectúa mediante los así llamados "indicadores": los indicadores son bytes de marcas que contienen los datos de células individuales de un registro de desplazamiento.

Estructura Un registro software de desplazamiento consta de células de 8 bits de ancho dispuestas una al lado de la otra. Puede tener una longitud de entre 2 y máximo 256 células de memoria.

Posición en la Los datos de un registro de deplazamiento se encuentran en la RAM de módulos DB-RAM de datos de la CPU. Cada registro está asignado de forma fija a un módulo de

datos determinado y, por consiguiente, tiene el mismo número que el módulo de datos (n% válidos: 192 a 255). En caso de haber instalado por ejemplo un registro de desplazamiento con el número 210, los datos correspondientes se encontrarán en el módulo de datos 210.

La DB-RAM abarca aproximadamente 46 Kbytes (dirección KH 8000 a KH DD7F). En esta zona se encuentran los módulos de datos copiados con los OB 254 y 255 (desde KH 8000 hacia arriba) así como los registros instalados por el usuario (desde KH DD7F hacia abajo). Si al copiar DBs o instalar registros de desplazamiento la zona de memoria de la DB-RAM no es suficiente, la CPU detecta un error en tiempo de ejecución y llama al OB 31. Las siguientes reacciones dependerán de cómo esté programado el OB 31 (véase capítulo 5.6).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 327: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Principio Las siguientes figuras ilustran el concepto de un registro software de desplazamiento con 3 indicadores y 12 células de memoria:

Indicador 1 Indicador 2 Indicador 3

i t de marcas O i t de marcas 1 i t de marcas 2 i t de marcas 3 i t de marcas 4 i t de marcas 5 i t de marcas 6 i t de marcas 7

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2

Fig. 6-13 Esquema básico de un registro de desplazamiento de 3 indicadores y 12 células de memoria

Inicializar

Desplazar

Al inicializar un registro de desplazamiento (véase capítulo 6.34) hay que indicar el número del byte de marca para el indicador 1 (= indicador básico). Este queda ajustado de forma fija en la primera célula de memoria del registro de desplazamiento. Los demás indicadores deben ser posicionados de forma relativa al indicador básico, pudiéndose utilizar por cada registro de desplazamiento entre 1 y máximo 6 indicadores.

Al desplazar un registro de desplazamiento - del mismo modo que en el caso de un registro hardware de desplazamiento - se transfiere byte por byte el contenido de todas las células de registro de una célula a la siguiente (véase fig. 6-14). Cada llamada a la función de desplazamiento produce un desplazamiento de la información de exactamente 1 célula de memoria (1 impulso). En este caso los indicadores obtienen nuevos datos. De forma correspondiente a las flechas arriba dibujadas la información se desplaza a lo largo de todo el registro de desplazamiento, hasta llegar a la última célula de memoria, desde donde vuelve a la célula 1 (en el registro ilustrado en la figura 6-16 ocurre después de 12 impulsos).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 328: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Ejemplo

Las figuras 6-14 y 6-15 muestran el desplazamiento de la información dentro de un registro de desplazamiento con 3 indicadores y 12 células de memoria.

Antes de llamar a la función especial, se activan determinados bits en los indicadores (marcas) para caracterizar la información del indicador:

Activar el bit de marcas O del indicador 1 :S M 0.0

Activar el bit de marcas 3 del indicador 2

Activar el bit de marcas 2 del indicador 3

Después se llama a la función de desplazamiento

I n d i c a d o r 1 I n d i c a d o r 2 I n d i c a d o r 3

Fig. 6-14 Esquema de un registro de desplazamiento de 3 indicadores y 12 células de memoria antes del primer impulso

Bit d e marcas O Bit d e marcas 1 Bit d e marcas 2 Bit d e marcas 3 Bit d e marcas 4

it d e marcas 5

Después de la llamada a la función especial, la información de 8 bits de ancho de las células de memoria se ha desplazado en el valor de una célula:

O 1 0 0 1 O 1 0 0 1 O 1 0 0 1 O 1 0 0 1

Ind i cado r 1 I nd i cado r 2 I nd i cado r 3

1

, 3 1 , ,

Fig. 6-15 Esquema de un registro de desplazamiento de 3 indicadores y 12 células de memoria después del primer impulso

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2

O 1 O 1

Bit d e marcas C Bit d e marcas 1 Bit d e marcas 2 Bit d e marcas 2 Bit d e marcas L

Bit d e marcas E Bit d e marcas E Bit d e marcas i

I Cont inúa e n l a página s i g u i e n t e

0 0 1 0 0 O 0 1 0 0 O 0 1 0 0 O 0 1 0 0

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

O O O O

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2

O O O O

O O O O

O 1 O 1

1 O 1 O

Bi t 4 Bit 5 Bit 6 Bi t 7

O O O O

O O O O

Bit 4 Bit 5 Bit 6 Bit 7

Page 329: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

La información que ahora se encuentra en los indicadores puede evaluarse con

Los bits de marcas 0, 3 y 2 pueden ser consultados en el indicador base: de este modo puede evaluarse toda la información que proviene de las entradas efectuadas en todos los indicadores.

Módulos de organización

Para utilizar un registro de desplazamiento se dispone de 3 módulos de organización de funciones especiales:

Esta función inicializa un registro de desplazamiento.

OB 241:

Esta función procesa un registro de desplazamiento.

0 B 242:

Esta función borra un registro de desplazamiento.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 330: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.34 OB 240: Inicializar registro de desplazamiento

Aplicación Antes de poder procesar un registro de desplazamiento, hay que inicializarlo. Para ello hay que llamar al OB 240 una sola vez, preferiblemente en un módulo de organización de arranque. Los parámetros que requiere el OB 240 para la instalación de un determinado registro de desplazamiento se encuentran en un módulo de datos con el mismo número que el registro de desplazamiento que se va a inicializar. Por lo tanto son válidos los números de DB entre 192 y 255.

Función

Parámetros

Con las informaciones del módulo de datos abierto se reserva e inicializa una determinada zona de memoria al final de la DB-RAM.

Módulo de datos abierto

valores admisibles: nWB: de 192 a 255

El módulo de datos está estructurado de acuerdo con un esquema fijo, que tiene que ser respetado. Puede tener una longitud máxima de 9 palabras de datos (DW O a DW 8).

1 Long. de registro de despl. (bytes) L DW 1

1 NP del I Q byte de marcasiindicador bisico DW 2

Distancia n D W ~

l Distancia n DW 4

l Distancia n DW 5

Distancia n 5

1 DW 6

l Distancia n DW 7

O 1 DW 8 o Iíltima palabra de datos

Fig. 6-16 Estructura del módulo de datos para la inicialización de un registro de despla- zamiento

Instrucciones de programación CPU 928B-3UB21 C79000-G8578-C870-01

Page 331: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Ocupación de las Cada una de las palabras de datos ha de estar ocupada de la manera siguiente: palabras de datos

Palabra de datos O

Siempre debe contener O.

Palabra de datos 1

La longitud L del registro de desplazamiento equivale a la cantidad (en bytes) de células de memona del registro. Puede encontrarse entre 2 S L S 256.

Palabra de datos 2

El número del primer byte de marcas determina el indicador básico y también el bloque de marcas que se le asigna a los indicadores. El bloque de marcas abarca la totalidad de los indicadores definidos por el usuario. Los demás indicadores se determinan efectuando entradas en las palabras de datos DW 3 hasta máximo DW 7, siendo utilizada una palabra de datos por indicador. Si, por ejemplo, se desean instalar otros dos indicadores, significa que, junto con el indicador básico, serán tres indicadores. Hasta el final del bloque de marcas deberán quedar suficientes marcas a disposición para todos los indicadores parametrizados.

Palabra de datos 3 hasta máximo 7

Los demás indicadores se indican de manera indirecta: Se definen según la distancia entre ellos y el indicador básico (células del registro de desplazamiento = cantidad de bytes).

n2 = distancia entre el indicador 2 y el indicador básico

n3 = distancia entre el indicador 3 y el indicador básico

n4 = distancia entre el indicador 4 y el indicador básico

etc. (1 hasta máximo 5 entradas)

Ultima palabra de datos (DW 4 hasta máximo DW 8)

(En el ejemplo DW 8) Siempre tiene que contener O. Si adicionalmente al indicador básico se parametnzan solamente dos indicadores, entonces en la DW 5 hay un 0, etc.

Todas las indicaciones se efectúan con números en coma fija.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 332: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Espacio de memoria

Errores

Nota jLa cantidad de indicadores (máximo 6 con el indicador básico) no puede ser supenor a la longitud del registro de desplazamiento!

La distancia entre un indicador y el indicador básico no debe ser supenor a la longitud del registro de desplazamiento.

La palabra de datos DW O y la palabra de datos después de la última distancia de indicador siempre tienen que contener O.

¡El módulo de datos tiene que ser abierto antes de llamar al OB 240!

El módulo de datos llamado tiene que tener un número entre DB 192 y DB 255.

Por cada registro de desplazamiento se requieren

n = longitud de registro de desplazamiento/2 + 8 palabras de datos,

es decir, la longitud de la DB-RAM desminuye en n palabras de datos, desplazándose la dirección final de la RAM de módulos de datos hacia una dirección menor. Si un registro de desplazamiento que ha de ser inicializado ya existe, y la longitud del registro de desplazamiento nuevo y del registro de desplazamiento ya existente son iguales, se vuelve a inicializar el espacio ya ocupado. De lo contrario, la zona anterior se declara no válida y se abre una nueva zona.

Número de módulo de datos no válido (<192),

espacio insuficiente en la DB-RAM,

error formal en la esctructuración del módulo de datos,

longitud para registro de desplazamiento no válida,

error de parametnzación en los indicadores.

En caso de error la CPU detecta un error en tiempo de ejecución y llama al OB 31. La reacción siguiente dependerá de cómo esté programado el OB 31 (véase capítulo 5.6). Si el OB 31 no está cargado la CPU pasa al estado STOP.

En ambos casos el AKKU-1-L contiene identificadores de error que describen más detalladamente el error que se ha producido.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 333: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.35 OB 241 : Procesar registro de desplazamiento

Introducción El módulo de organización de funciones especiales OB 241 procesa un registro de despazamiento que previamente tiene que haber sido inicializado por el OB 240. En la CPU 928B se pueden llamar máximo 64 registros de desplazamiento.

Aplicación

Función

Parámetros

Resultado

Errores

Antes de llamar al OB 241, normalmente se activan o rearman determinados bits de marcas en los indicadores. Con cada llamada al OB 241 se desplaza la información byte por byte de una célula de memoria a la célula superior. Correspondientemente, los indicadores son alimentados con nuevas informaciones. Llamando nuevamente al OB 241 se puede "empujar" toda la información por todo el registro de desplazamiento hasta la última célula de memoria, desde donde vuelve a pasar a la célula 1.

Cada vez que se procesa el OB 241, el registro de desplazamiento direccionado por el AKKU-1-L se desplaza una posición hacia la derecha.

Número del registro de desplazamiento a procesar, valores admisibles: 192 a 255

Después de llamar al OB 241, los indicadores (máximo 6 por registro de desplazamiento, posicionables a voluntad exceptuando el indicador básico) contienen los datos de la célula de memoria anterior. A continuación pueden evaluarse los datos.

Número de registro de desplazamiento no válido en AKKU 1,

Registro de desplazamiento no inicializado.

En caso de error, la CPU detecta un error en tiempo de ejecución y llama al OB 31. La reacción siguiente dependerá de cómo esté programado el OB 31 (véase capítulo 5.6). Si el OB 31 no está cargado la CPU pasa al estado STOP.

En ambos casos el AKKU-1-L contiene identificadores de error que describen más detalladamente el error que se ha producido.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 334: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.36 OB 242: Borrar registro de desplazamiento

Función Con esta función se "borra" un registro de desplazamiento en la RAM de módulos de datos: se borra la entrada de la lista de direcciones DB O y se declara no válido el correspondiente registro de desplazamiento en la DB-RAM ( jatención! : los registros de desplazamiento borrados siguen ocupando espacio en la memoria).

Parámetros

Resultado

Errores

Número del registro de desplazamiento a borrar, valores admisibles: 192 a 255

Después de llamar al OB 242 se borra el registro de desplazamiento y no puede volver a ser utilizado: para procesarlo nuevamente debe volver a ser inicializado.

número de registro de desplazamiento no válido en AKKU 1,

registro de desplazamiento no inicializado.

En caso de error, la CPU detecta un error en tiempo de ejecución y llama al OB 31. La reacción siguiente dependerá de cómo esté programado el OB 31 (véase capítulo 5.6.2). Si el OB 31 no está cargado la CPU pasa al estado STOP.

En ambos casos el AKKU-1-L contiene identificadores de error que describen más detalladamente el error que se ha producido.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 335: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.37 OB 2501251 : Regulación/Algoritmo PID

Introducción En la CPU 928B del S5-135U se pueden llamar uno o varios reguladores PID. Cada regulador tiene que ser inicializado en el módulo de organización de arranque. Para la transferencia de parámetros se utiliza un módulo de datos.

El algoritmo de regulación en sí está integrado en el programa de sistema y solamente puede ser llamado por el usuario como módulo de organización. Como interfaz de datos entre el algortimo de regulación y el programa de usuario se debe utilizar un módulo de datos.

6.37.1 Descripción de las funciones del regulador PID

Fig. 6-17 Esquema modular del regulador PID

Z Entrada manual: Entrada de YH, si S3 está a O Entrada de dYH, si S3 está a 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 336: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

lndice k Exploración número k

Palabra de control STEU

Conmutador

S 1 STEU-BR 1

S2 STEU-BR O

S3 STEU-BR 3

S4 STEU-BR 5

Algoritmo PID

Diferenciador

Posición

O 1

O 1

O 1

O 1

Compensación de perturba- ciones

Efecto

Al diferenciador se le asigna la diferencia de regulación XWk. Al diferenciador se le puede asignar otra señal a través de XZ.

Funcionamiento manual Funcionamiento automático

Algoritmo de consigna Algoritmo de velocidad (de respuesta)

Añadiendo magnitudes perturbadoras Sin añadir magnitudes perturbadoras

Sentido invertido del regulador

Limitación de la información de consigna

Para conseguir una función que corresponda a la posición de los conmutadores de dicho esquema modular al parametrizar el regulador PID, hay que activar adecuadamente los bits de la palabra de control STEU. El regulador continuo ha sido concebido para líneas de control rápidas, que se observan, por ejemplo, en la ingeniería de procesos, tales como regulaciones de presión, de temperatura o de flujo.

El regulador en sí está basado en un algoritmo PID. Su señal de salida puede ser emitida a voluntad, bien como magnitud de consigna (algoritmo de consigna) o bien como modificación de la magnitud de consigna (algoritmo de velocidad). Los distintos componentes P, 1 y D pueden desconectarse con sus propios parámetros R, TI y TD prefijando las células en cuestión con ceros. De este modo es posible realizar fácilmente todas las estructuras de regulación que se deseen, como por ejemplo reguladores PI, PID o PD.

Al diferenciador se le puede asignar opcionalmente la diferencia de regulación XW o - a través de la entrada XZ - una magnitud perturbadora arbitraria, o bien el valor efectivo invertido -x.

En caso de que para la compensación de una magnitud perturbadora se desee un control anticipativo del actuador de regulación sin considerar tiempos se le puede añadir una magnitud perturbadora medible al algoritmo de consigna. En funcionamiento manual se toma la magnitud de consigna seleccionada con anterioridad YN.

Cuando se requiera un sentido invertido del regulador se deberá indicar un valor K negativo.

Cuando la información de consigna (dY o Y) se encuentra en un límite se desconecta automáticamente la parte 1 para evitar que empeore el comportamiento del regulador.

El programa de regulador puede ser alimentado definiendo valores fijos o bien por definición adaptiva (dinámica) de parámetros (K, R, TI, TD). La entrada se efectúa a través de las células de memoria asignadas a los distintos parámetros.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 337: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.37.2 Algoritmo PID

Introducción El regulador PID está basado en un algoritmo de velocidad según el cual se calcula en un tiempo determinado t = k TA el incremento de consigna correspondiente dYk de acuerdo con la fórmula siguiente:

= K ( dPWkR + dIk + dDk ) Componente P + componente 1 + componente D

dXXXk: Modificación de la magnitud XXX en el tiempo t

U puede ser W o Z, según se le asigne XW o XZ al diferenciador. De forma análoga vale:

En caso de XWk: En caso de XZ:

QWk = PWk - PWk-1 QZk = PZk - PZk-1

TA dIk =TI XWk TI=-

TN

1 TV dDk = - (TD QUk + d&-1) TD = - 2 TA

Si en el tiempo tk se desea la magnitud de consigna Yk como salida del regulador, ésta se calcula con la fórmula siguiente:

En la mayoría de los procesos de planificación de reguladores se presupone que R = 1 para obtener un comportamiento P.

Con la magnitud R se puede regular el componente proporcional del regulador PID.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 338: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Módulos de datos para el regulador

Los datos específicos del regulador se introducen por medio de un módulo de datos de transferencia (inicialización y procesamiento del regulador PID, véase capítulos

PID 6.38 y 6.39).

En el módulo de datos de transferencia x deben indicarse los datos siguientes:

K, R, TI, TD, W, STEU, YH, BGOG, BGUG

El módulo de datos de transferencia tiene que constar de 49 palabras de datos con los números O a 48. La ocupación de los datos de estas palabras se describe en la tabla siguiente.

Estructuración del módulo de datos de transferencia

Tabla 6-10 Módulo de datos de transferencia para regulación PID

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Dir. en el DB

DWO

DD 1

DD 3

DD5

DD7

DD9

DW 11

DD12

DD14

DD16

DW18

DW 19

Nombre

-

K

R

TI

TD

Wk

STEU

YHk

BGOG

BGUG

l"Hk

Wk

E/S

-

E

E

E

E

E

E

E

E

E

E

E

Formato num. 2)

-

GP

GP

GP

GP

GP

BM

GP

GP

GP

LP

LP

Formato PG 3)

-

KG

KG

KG

KG

KG

KM

KG

KG

KG

KF

KF

Observación

Reserva

Coeficiente proporcional K >O: Sentido positivo de regulación, es decir, modificación en

sentido idéntico del valor nominal y magnitud de consigna K <O: Sentido negativo de regulación; zona de números en coma

flotante

Parámetro R, normalmente = 1 en caso de reguladores con componente P

TI=TA/TN

TD=TV/TA

Introducir aquí el valor nominal, si bit 6 de STEU = 1, de lo contrario en la palabra n"9 (-1 sWk <1)

Palabra de control

Introducir aquí el valor manualmente, si bit 6 de STEU = 1, de lo contrario en la palabra n q 8 (-1 sYHk 4 ) . En caso de algoritmo de velocidad, hay que indicar aquí incrementos del valor de consigna

Valor superior del límite 4, -1 sBGOG 51 (YAkmáx); !! BGUG<BGOG!!

Valor inferior del límite 4, -1 sBGUG 51 (YAkmi, )

Introducir aquí el valor manual, si bit 6 de STEU = O (-1 sYH 4 ) . En caso de algoritmo de velocidad, hay que indicar aquí incrementos del valor de consigna

Introducir aquí el valor nominal, si bit 6 de STEU = O (-1 s w k <1)

Page 339: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

l) E = entrada, S = salida

') GP = número en coma flotante, LP = número de coma a la izquierda, BM = patrón de bits

3, Formato propuesto (KH, KM también son válidos)

Dir. en el DB

4, En caso de formato de coma a la izquierda hay que introducir el valor del límite superior e inferior según las fórmulas siguientes:

DD 14 = BGOG: BGOG Valor como número de coma flotante= - 32767

Nombre

DD 16 = BGUG: BGUG

Valor como número de coma flotante= - 32767

Tabla 6-10

DW20

DW21

DD 22

DW 24

DD 25

DD 27

DW29

DD30

DD 32

DD 34

DD 36

DD38

DD40

DW42

DD44

DD46

DW 48

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

E/S

(continuación):

MERK

Xk

Xk

Zk

Zk

Zk-1

XZk

XZk

XZk.1

PZk.1

dDk-1

XWk-1

PWk.1

-

Yk-1

YAk

YAk

Formato num. 2)

-

E

E

E

E

-

E

E

-

-

-

-

-

-

-

S

S

Formato PG 3)

Observación

BM

LP

GP

LP

GP

GP

LP

GP

GP

GP

GP

GP

GP

-

GP

GP

LP

KF

KF

KG

KF

KG

KG

KF

KG

KG

KG

KG

KG

KG

-

KG

KG

KF

Bit O = 1: sobrepasa el límite positivo; Bit 1 = 1: sobrepasa el límite negativo

Entrada valor efectivo para bit 7 de STEU = O (-1 5 Xk < 1)

Entrada valor efectivo para bit 7 de STEU = 1 (-1 5 Xk < 1)

Magnitud perturbadora (-1 5 Zk <1)

Aquí entrada de la magnitud perturbadora, si bit 7 de STEU = 1 (-1 5 Zk < l )

Valor anterior de la magnitud perturbadora

Magnitud asignada al diferenciador por medio de la entrada XZ (-1 5 XZk 4 ) ; entrada aquí si bit 7 de STEU = O

Aquí entrada XZ si bit 7 de STEU = 1 (-1 5 XZk <1)

Valor anterior de XZk

XZk.1 - XZk-2

Componente diferencial

Valor anterior de la diferencia de regulación

XWk-1 - XWk-2

Reserva

Valor anterior del valor de consigna Yk-1 o dYk-1 antes del limitador

Magnitud de salida

Magnitud de salida BGUG S YA S BGOG

Page 340: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Ejemplo de valores límite

- Valores limite

valor del l ímite superior = 0 , l

valor del l ímite inferior = - 0 , l

- Entradas en los DBs: DD 14: +lo00 000 +O0

DD 16: -1000 000 +O0

- El valor de partida se limita: DW 48: 13276

DD 15: 1 0 , l

Observación:

Para l o s valores l ímite fuera de 1 s e l imita e l valor de partida en formato de coma flotante (DD 4 6 ) .

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 341: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Ocupación de la palabra de control STEU (palabra de datos DW 11 en DB de transferencia)

Tabla 6-11 Palabra de control en el DB de transferencia para regulaciones PID

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

DW 11 Bit nQ

11.0

11.1

11.2

11.3

11.4

11.5

11.6

11.7

11.8

11.9

Nombre

AUTO

X Z E I N

REG-AUS

GESCHW

HANDART

NO-Z

PGDG

VAR-GP

STOS

a 11.15

Significado

= 1: Funcionamiento automático = O: Funcionamiento manual

= 1: Al diferenciador se le asigna otra magnitud a través de la entrada XZ, la cual no puede ser XWk.

= O: Al diferenciador se le asigna XWk. No se considera la entrada XZ.

= 1: Al llamar al regulador (OB 251), a excepción de K, R, TI, TD, BGOG, BGUG, STEU, YHk, Wk, Zk y Zk-1, se borran una vez todas las magnitudes (DW 20 a DW 48) del DB de regulador. El regulador está desconectado. Se actualiza el valor anterior de la magnitud perturbadora.

= O: Regular

= 1: Algoritmo de velocidad = O: Algoritmo de consigna

= 1: En caso de GESCHW (velocidad) = O (algoritmo de consigna) se conserva la última magnitud de consigna emitida. En caso de GESCHW = 1 (algoritmo de velocidad) se pone el incremento dYk = 0.

= O: En caso de GESCHW = 0, después de cambiar a funcionamiento manual, el valor de consigna emitido YA es conducido en 4 pasos de exploración exponenciales al valor ajustado manualmente. Después los valores manuales son recogigos inmediatamente a la salida del regulador. En caso de GESCHW = 1, los valores manuales se transmiten directamente a la salida del regulador. En funcionamiento manual, los límites son efectivos. En funcionamiento manual se actualizan las siguientes magnitudes: Xk, m k - 1 Y PWk-1 XZk, XZk.1 y PZk.1, si bit 1 de STEU = 1 Zk und Zk-1, si bit 5 de STEU = O La magnitud dDk-1 se pone a O. El algoritmo no se calcula.

= 1: Sin añadir magnitudes perturbadoras = O: Añadiendo magnitudes perturbadoras

= 1: Entrada de Wk, YHk como número en coma flotante = O: Entrada como número de coma a la izquierda

= 1: Las variables Xk, XZk y Zk se introducen como número en coma flotante = O: Entrada de las vanables como número de coma a la izquierda

= 1: Sin conmutación "manual-automático" suave = O: Con conmutación "manual-automático'' suave

No significativos

Page 342: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.38 OB 250: Inicializar algoritmo PID

Función El OB 250 inicializa el algoritmo PID. Se llama en los OBs de arranque OB 20/21/22.

Parámetros Los parámetros necesarios para la inicialización se encuentran en el módulo de datos de transferencia (DB x).

1 !Lm6dulo de transferencia debe ser abierto antes de llamar al OB 250.

Por cada regulador hay que utilizar para la transferencia de los datos un DB x propio (x 2 254). Partiendo de éste, el programa de sistema genera automáticamente otro DB x + 1 en la RAM de módulos de datos, el cual es utilizado como campo de datos por el regulador en el funcionamiento cíclico; los correspondientes números de módulos de datos deberán estar libres. Los módulos de datos DB x + 1 forman la interfaz de datos entre los reguladores y el usuario o la periferia.

Errores El OB 250 utiliza internamente el OB 254 u OB 255 (duplicar módulos de datos). En caso de error, la CPU detecta un error en tiempo de ejecución y llama al OB 31. Si éste no está programado la CPU pasa al estado STOP. Los identificadores de error depositados en el AKKU 1 se referirán entonces al OB 250.

Nota Si durante la inicialización no estaba libre el DB x + 1, éste será utilizado por el programa de sistema como campo de datos de regulador sin dar aviso previo y siempre que tenga la misma longitud que un regulador de módulos de datos (48 palabras de datos); en tal caso se borran las palabras de datos 20 a 48. De lo contrario la CPU pasa al estado STOP.

En lugar de módulos de datos DB también se pueden utilizar módulos de datos ampliados DX. Su inicialización es análoga a la de los módulos de datos DB.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 343: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

6.39 OB 251: Procesar algoritmo PID

Aplicación El OB 251 es llamado durante el procesamiento cíclico de programa y se encarga de procesar el algortimo PID.

Llamada Una vez transcurrido el tiempo de exploración se ha de llamar al regulador. Hay que respetar la siguiente secuencia:

1" Abrir el módulo de datos DB x + 1

2" Cargar los datos de entrada Xk, XZk, Zk y YHk o un subconjunto de ellos

3" Convertir al formato correcto los datos de entrada y transferirlos al DB x + 1

4" Llamar al OB 251 (procesamiento de regulador PID)

5" Cargar el dato de salida YAk del DB x + 1

6" Convertir el dato y transferirlo a la periferia de proceso

Formato de las Para la representación interna de números, el algoritmo de regulación PID utiliza el entradas y formato de coma flotante pudiendo ser alimentado con números en coma flotante. salidas de También es posible alimentar el algoritmo de regulación PID con números de coma a reguladores la izquierda (véase al respecto bit 6 y 7 de la palabra de control STEU). En este caso,

en cada llamada, el regulador convierte por sí solo las palabras al formato de coma flotante.

La conversión de las palabras de las tarjetas de entrada y de salida en el programa STEP 5 será más favorable en cuanto al tiempo de ejecución si se utiliza el formato de coma a la izquierda (véase table al final de este capítulo).

Entradas W, YH, X, Z y XZ pueden ser introducidos opcionalmente como número en coma flotante o de coma a la izquierda. En el módulo de transferencia de datos se dispone de diferentes espacios de memoria para cada magnitud.

Entrada como (Más informaciones sobre el número de coma a la izquierda: véase tabla al final número de coma de este capítulo) a la izquierda

Nota Si se respetan las zonas nominales de entrada de las tarjetas de entrada analógica hay que tener en cuenta que la notación binaria de un determinado valor de entrada será otra que en caso de aprovechar toda la zona de entrada. Esto tiene especial importancia a la hora de ajustar el valor nominal, puesto que puede ocurrir que no pueda alcanzarse un valor nominal introducido por el aparato de programación, aunque el valor efectivo esté muy por encima del valor deseado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 344: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Salida

Si el conversor analógico-digital da los valores negativos como valor absoluto y signo, entonces se deberá formar el complemento de dos antes de que sean transferidos al módulo de datos de regulador. A continuación se deberá poner la posición binaria 15 = 1.

Si el número -O es posible como valor absoluto y antesigno en forma de

en el conversor analógico-digital utilizado, no se deberá formar con él ningún complemento de dos, sino que el número deberá pasar en forma de +O al módulo de datos de regulador:

La salida del regulador YA se encuentra en el DB en forma de número de coma a la izquierda y de número en coma flotante. El formato de las entradas y salidas de coma a la izquierda debe ser convertido antes y después de llamar al regulador en el programa STEP 5 - teniendo siempre en cuenta las tarjetas de entrada y salida utilizadas (conversor analógico-digital, conversor digital-analógico) - antes de transferirlas al o desde el DB regulador.

Observaciones Utilización del STOS generales

Si STOS (bit 8 de STEU) está a cero, la conmutación de funcionamiento manual a automático se realiza suavemente, es decir, una diferencia de regulación pendiente y de cualquier dimensión sólo se regula a través de la componente 1. Pero si se selecciona TI = TA/TN = O (regulador P o PD), la diferencia de regulación no modifica la magnitud de consigna al conmutar.

Esto puede evitarse poniendo STOS = 1. Entonces, la diferencia de regulación se regula rápidamente al conmutar de "manual-automático", independientemente de que TI = O o no. El salto de magnitud de consigna que se produce en este caso corresponde a la magnitud de la diferencia de regulación, por lo que no es arbitrario en el sentido de un fallo del funcionamiento del regulador.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 345: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Indicación de MERK, bits O y 1

Los bits O y 1 de MERK pueden ser utilizados para indicar que la magnitud de consigna (el incremento de consigna en el algoritmo de velocidad) se encuentra dentro del límite superior o inferior. Ya que el algoritmo evalúa estos bits para desconectar la componente 1, no deben ser sobreescritos.

Nota Los módulos de datos de regulador de DB x+ 1 no deben volver a ser cargados durante el funcionamiento cíclico.

Regulación en cascada

Si se ha estructurado una regulación en cascada basada en dos o más reguladores, hay que tener en cuenta lo siguiente:

- Si se subdivide una cascada, todos los reguladores tienen que pasar simultáneamente al funcionamiento manual para que ningún regulador se pueda desviar a consecuencia de su componente 1, o , por lo menos el regulador del circuito exterior tiene que operar en funcionamiento manual, para que la última magnitud de consigna que corresponde al valor nominal del circuito interior, pueda ser conservada o llevada a un valor de seguridad.

- Si la cascada ha de ser cerrada, ambos circuitos a la vez o por lo menos el circuito interior tienen que estar operando en funcionamiento automático para que el valor de consigna del circuito exterior pueda ser tomado como valor nominal.

Conmutación a funcionamiento manual

Si al conmutar a funcionamiento manual, el tramo de regulación es separado del regulador y se reposiciona en el actuador directamente, la magnitud de consigna obtenida de esta manera tiene que ser asignada manualmente al regulador. Esto hace que al conmutar de funcionamiento manual a automático, la salida del regulador concuerde con la magnitud de consigna ajustada en funcionamiento manual. En el caso del algoritmo de velocidad se trata de la modificación de la magnitud de consigna.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 346: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Valores característicos de reguladores

Regulador P

El valor característico de un regulador P es K. Se trata del cociente de la magnitud de salida y entrada: K = XaiXe.

Regulador PI

Los valores característicos de un regulador PI son el coeficiente proporcional K y el tiempo de reajuste TN. El coeficiente proporcional K es el cociente de la magnitud de salida y entrada, el cual determina el comportamiento P. El tiempo de reajuste TN es el tiempo que se requiere en la respuesta, para conseguir a consecuencia del efecto 1, una modificación de magnitud de consigna igual a la que corresponde a la componente P.

Regulador PD

Los valores característicos de un regulador PD son el coeficiente proporcional K (véase arriba) y el tiempo de acción derivada TV. El tiempo de acción derivada es el tiempo que necesitada un regulador P, a una velocidad constante de modificación de la magnitud de entrada, para producir una modificación igual al valor de la magnitud de salida, que un regulador PD produce inmediatemente debido a su componente D. Para determinar el tiempo de acción derivada TV, no se parte de una función de salto, sino de una modificación lineal de la magnitud de entrada.

Regulador PID

Los valores característicos del regulador PID son el coeficiente proporcional K, el tiempo de reajuste TN y el tiempo de acción derivada TV. Estos determinan el comportamiento P, 1 y D.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 347: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones especiales integradas

Modificación de La componente P de la magnitud de consigna se calcula según la siguiente parámetros fórmula:

Componente P = KP (XWk - XWk-1)

Si se modifica KP o R en funcionamiento automático, esta alteración solamente tiene efecto sobre las modificaciones posteriores de la diferencia de regulación XWk. El valor momentáneo de la magnitud de consigna no se altera al modificar los parámetros. Esta característica permite modificar parámetros suavemente. Si este comportamiento es indeseado, puede ser eliminado mediante el siguiente cálculo, el cual ha de ser efectuado una sola vez en cada modificación de parámetros (ejemplo de la modificación KP):

Si para modificar parámetros se utiliza el siguiente programa, el regulador se comporta como un regulador analógico:

:L KPnuevo cargar KPnuevo

:L manterior cargar KPanterior : -G :L DD38 XWk-i :xG :L DD44 Yk-1 :+G :T DD44 = Yk-1

Abreviaturas dYk para el regulador dZk PID GP

k K LP OG R TA TD TI t TN TV UG Wk Xk XWk Yk YAk Zk

Incremento de consigna calculado Incremento perturbador Representación en coma flotante Exploración n% Coeficiente proporcional Representación en coma a la izquierda Limite superior (limitador) Parámetro R Tiempo de exploración TVITA TAlTN Instante de exploración = k TA Tiempo de reajuste Tiempo de acción derivada Límite inferior (limitador) Valor nominal Valor efectivo Diferencia de regulación Magnitud de consigna calculada Valor de consigna (incremento o magnitud de consigna) Magnitud perturbadora

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 348: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Número de coma Para representar un número de coma a la izquierda en un módulo de datos se a la izquierda requiere una palabra de datos. La asignación entre números de coma a la

izquierda en notación decimal, números en coma a la izquierda en notación dual y la visualización en formato KF en el aparato de programación se muestra en el siguiente ejemplo.

Tabla 6-12 Números de coma a la izquierda

Los números negativos de coma a la izquierda resultan en la notación dual formando el complemento de dos de números positivos de coma a la izquierda.

Los números de coma a la izquierda (LE) pueden ser convertidos al formato (KF) utilizado en el aparato de programación según la siguiente relación:

Número en coma fija

-32767

-24576

-16384

-8192

o

t 8192

t16384

t24576

t32767

Número de coma a la izquierda en

con -1 e LP e+1 y -32767 S KF S + 32767

notación decimal

-0.999... .

-0.75

-0.5

-0.25

o

t0.25

t0.5

t0.75

t0.999 ... .

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

notación dual

1000000000000001

1010000000000000

1100000000000000

11 10000000000000

0000000000000000

0010000000000000

0100000000000000

0110000000000000

O111111111111111

Page 349: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

6.40 OB 2541255: Desplazarlduplicar módulos de datos

Introducción Con las funciones especiales OB 2541255 se transfieren módulos de datos individuales desde la memoria de usuario a la RAM de módulos de datos de la CPU. Las funciones especiales OB 254 y OB 255 se ejecutan de la misma manera, sólo que el OB 254 opera exclusivamente con módulos de datos DX y el OB 255 con módulos de datos DB.

Aplicación

Función

Desplazar o duplicar un módulo de datos

Desplazar

El módulo de datos es desplazado desde la memoria de usuario a la RAM de módulos de datos.

El módulo de datos se desplaza desde la memoria de usuario a la DB-RAM manteniendo su número de módulo original. La nueva dirección inicial se registra en la lista de direcciones del DB O.

Duplicar

Se copia un módulo de datos de la memoria de usuario o de la DB-RAM con otro nWe módulo en la RAM de módulos de datos. La dirección inicial del nuevo módulo de datos se registra en la lista de direcciones del DB O. La direccion inicial del módulo anterior se mantiene en el DB O, es decir, el módulo de datos original sigue siendo válido. La dirección inicial se registra en el DB O sólo cuando haya concluido toda la transferencia y todas los identificadores estén registrados correctamente en la cabeza del módulo. Por consiguiente, el programa de sistema solamente considerará válido el módulo duplicado cuando la transferencia haya finalizado por completo.

Nota No es posible desplazar el DB O a la DB-RAM puesto que éste ya se encuentra en ella. Sin embargo, es posible duplicar el DB O.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 350: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Funciones es~eciales intearadas

Parámetros 1. AKKU-1-L-L

Errores

Número del módulo a copiar, valores admisibles: O a 255

(O sólo para DX o para duplicar un DB)

Con el valor del AKKU-1-H-L se indica si se desea desplazar o duplicar un módulo:

AKKU-1-H-L = 0:

El módulo de datos DB (llamada OB 255) o DX (llamada (OB 254) que corresponde al número indicado en el AKKU-1-L-L se desplaza a la DB-RAM.

AKKU-1-H-L = n v e l módulo nuevo, valores admisibles: 1 a 255

El módulo de datos DB (llamada OB 255) o DX (llamada OB 254) que corresponde al número indicado en el AKKU-1-LL se duplica en la DB-RAM y se registra en el DB O con el número depositado en el AKKU-1-H-L.

Los valores de AKKU-1-L-H y AKKU-1-H-H no son considerados por los OB 254 y OB 255, y por lo tanto, no son significativos a la hora de parametrizar los OBs.

El módulo de datos que va ser desplazado no existe (OB19).

El módulo ya se encuentra en la DB-RAM (OB 31) (por ello la función sólo se deberá ejecutar una vez y preferentemente durante el arranque).

El espacio de memoria de la DB-RAM es insuficiente (OB 31).

En caso de error no se ejecuta la función. El programa de sistema detecta un error en tiempo de ejecución y llama al OB 19 u OB 31. La siguiente reacción dependerá de cómo se haya programado el OB 19 ó 31 (véase capítulo 5.6). Si el OB 19 ó 31 no está cargado la CPU pasa al estado STOP. En ambos casos el AKKU-1-L contiene una identificación de error que explica más detalladamente el error que se ha producido.

Ejemplo

DB. La tabla siguiente muestra la ocupación de la memoria después de llamar repetidas veces al OB 255 con los parámetros expuestos en la tabla.

Orden de Función A K K U - 1 - DB en memoria tras llamada

-H-H -H-L -L-H -L-L Mem.deusuario DB-RAM

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 351: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos ampliado DX O 7 Resumen breve Este capítulo explica en qué casos se puede utilizar el módulo de datos DX O y

cómo está estructurado. Le informa asimismo del significado de los distintos parámetros DX O. Por medio de ejemplos aprenderá cómo crear un módulo de datos DX O o cómo parametrizarlo a través una máscara.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

7.1

7.2

7.3

7.4

Tema

Aplicación

Estructura del DX O

Parámetros del DX O

Ejemplos de parametnzación

Página

7-2

7-3

7-6

7- 10

Page 352: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

7.1 Aplicación

Introducción El usuario puede adaptar a sus necesidades determinadas funciones del programa de sistema cambiando los parámetros estándar en el DX O (marcados con una "E" en la tabla de parámetros).

Los ajustes estándar del programa de sistema (E) se activan automáticamente cada vez que se ejecuta un NUEVO ARRANQUE. Después se evalúa el DX O. Si el usuario no ha parametrizado ni cargado el módulo DX O, entonces seguirán siendo válidos los ajustes estándar; en caso contrario, valen los ajustes parametrizados por el usuario.

Los ajustes del DX O se efectúan programando los valores con instrucciones STEP 5, de la misma manera como se programan en un módulo de datos cualquiera (véase capítulo 7.2) o bien - con el software de sistema para el aparato de programación SS-DOS a partir de la versión 3.0 - introduciendo los valores a modo de parámetros a través de una máscara especial del aparato de programación (véase capítulo 7.4.2).

Nota DX O sólo se evalúa cuando se ejecuta un NUEVO ARRANQUE. Para los parámetros que no se hayan introducido en el DX O se adoptan los ajustes predeterminados en el programa de sistema.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 353: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

7.2 Estructura del DX O

Introducción El DX O se divide en tres partes:

la identificación inicial del DX O (DW O, 1 y 2)

varios bloques de distinta longitud (según la cantidad de parámetros)

Y

la identificación final EEEE.

Identificación inicial

Bloque

Identificación del bloque

Longitud del bloque

Parámetros

Identificación final

Caracteres ASCII MASKXO en DW O hasta DW 2

Un bloque del DX O consta de 1 hasta n palabras de datos. Estas contienen:

la identificación del bloque,

la longitud del bloque

Y

los parámetros del bloque.

La identificación del bloque indica el significado de los parámetros que le siguen. Cada bloque está asignado a una parte determinada del programa de sistema o a una determinada función del sistema (por ejemplo, la identificación de bloque '04' indica el bloque de parámetros para el procesamiento cíclico del programa).

La longitud del bloque indica la cantidad de palabras de datos que ocupan los siguientes parámetros.

Los parámetros válidos están descritos en el capítulo 7.3. Los valores numéricos indicados están en formato hexadecimal (KH).

Indica el final del DX O con EEEEH en la última palabra de datos.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 354: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

Estructura

Bit nQ 15 8 7 O

Caracteres M A ASCII: S K

X o

1 Ident i f . de bloque 1 1 Long. de bloque 1 1 Parámetro

Parámetro

Parámetro

Bloque 1

Parámetro / /

-

Identi f . de bloque 2

Bloque 2

Long. de bloque 2

1 Ident i f . de bloque n 1 Long. de bloque n 1 Parámetro

Parámetro

Parámetro

Bloque n

Fig. 7-1 Estructura del DX O

DW m

Instrucciones de programación CPU 928B-3UB21 C79000-G8578-C870-01

E E E E Ident i f . f ina l

Page 355: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

Ejemplo de introducción del DX O

Identificación inicial DW O: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830

Ident./longitud de bloque DW 3: KH = O101 Parámetro (ocupa 1 DW) DW 4: KH = 1001

Ident./longitud de bloque DW 5: KH = 0402 Parámetro (ocupa 2 DW) DW 6: KH = 1000

DW 7: KH = 0400

Identificación final DW 10: KH = EEEE

Bloque 2

Observar las siguientes indicaciones al parametrizar el DX O:

El orden de entrada de los bloques es arbitrario.

No hace falta indicar los bloques que no se requieran.

Si se repite un bloque determinado valdrá el último bloque entrado.

El orden de entrada de los parámetros es arbitrario.

No hace falta indicar los parámetros que no se requieran.

Si se repite un parámetro determinado valdrá el último parámetro entrado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 356: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

7.3 Parámetros del DX O

Significado de los parámetros

Tabla 7-1 Parámetros DX O y su significado

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ident~longitud de bloque

Parámetro 1' pa1.12"al.

Significado E = ajuste por defecto en caso de que el DX O no esté cargado

o falte el bloqueiparámetro

ARRANQUE y RUN

O ~ X X l) 1000 1001

2000 2001

3000 3001

4000 4001

6000

6001

BBOO yyyy

E REARRANQUE AUTOMATICO tras CONEXION NUEVO ARRANQUE AUTOMATICO tras CONEXION

E Sincronización del ARRANQUE en modo multiprocesador Sin sincronización del ARRANQUE en modo multiprocesador

E Supervisión de errores de direccionamiento Sin supervisión de errores de direccionamiento

E REARRANQUE NUEVO ARRANQUE CON MEMORIA

E Aritmética de coma flotante con mantisa 16 bit (ia CPU ejecuta las operaciones con un mantisa de 24 bit de ancho) Aritmética de coma flotante con mantisa 24 bit

Cantidad de temporizadores a actualizar ')

Preajuste: yyyy = 256 temporizadores, es decir, temporizador O hasta 255

válidos: 0...256

Procesamiento cíclico del programa

04xx ') 1000 yyyy

4000

4001

Tiempo de supervisión de ciclo en milisegundos; Preajuste: yyyy = 150 ms, válido: 1s yyyy s 32C8 @ex)

1 ms hasta 13000 ms (dec)

E Actualización de la imagen de proceso y de las marcas de acoplamiento sin protección de semáforos Actualización de la imagen de proceso y de las marcas de acoplamiento con protección de semáforos (en bloque, véase capítulo 10.1.3)

Procesamiento de alarmas: alarmas temporizadas

06xx ') 3)

2000 2001

Selección del modo de procesamiento 3,

E Señal de alarma de proceso, activación por nivel Señal de alarma de proceso, activación por flancos

Tratamiento de errores

1Oxx l) 1000

1001

Tratamiento de colisiones de alarmas temporizadas: E Stop de sistema cuando tiene lugar el suceso y el OB 33 no está cargado.

No se produce stop de sistema cuando tiene lugar el suceso y el OB 33 no está cargado.

Page 357: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

l) xx = longitud de bloque (cantidad de palabras de datos ocupadas por los parámetros)

3, Para más información respecto a la actualización de los temporizadores consulte las explicaciones en la página siguiente

4, Los parámetros y su significado se desprenden de la tabla ilustrada en la página 7 - 9

Ident~longitud de bloque

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Parámetro 1' pa1.12"al.

Significado E = ajuste por defecto en caso de que el DX O no esté cargado

o falte el bloqueiparámetro

Tabla 7-1 (continuación):

1 Oxx

EEEE

1200 1201

1400 1401

1800

1801

1AOO

1AO1

1COO 1CO1

1E00 1E01

2000 2001

Tratamiento de errores de regulador: E Stop de sistema cuando tiene lugar el suceso y el OB 34 no está cargado.

No se produce stop de sistema cuando tiene lugar el suceso y el OB 34 no está cargado.

Tratamiento de errores de ciclo: E Stop de sistema cuando tiene lugar el suceso y el OB 26 no está cargado.

No se produce stop de sistema cuando tiene lugar el suceso y el OB 26 no está cargado.

Tratamiento de errores en código de instrucción: E Stop de sistema cuando tiene lugar el suceso y el OB 27/29/30 no está

cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 27/29/30 no está cargado.

Tratamiento de errores en tiempo de ejecución: E Stop de sistema cuando tiene lugar el suceso y el OB 19/31/32 no está

cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 19/31/32 no está cargado.

Tratamiento de errores de direccionamiento: E Stop de sistema cuando tiene lugar el suceso y el OB 25 no está cargado.

No se produce stop de sistema cuando tiene lugar el suceso y el OB 25 no está cargado.

Tratamiento de errores de retardo en acuse de recibo: Stop de sistema cuando tiene lugar el suceso y el OB 23/24 no está cargado.

E No se produce stop de sistema cuando tiene lugar el suceso y el OB 23/24 no está cargado.

Tratamiento de errores de interfaces: Stop de sistema cuando tiene lugar el suceso y el OB 35 no está cargado.

E No se produce stop de sistema cuando tiene lugar el suceso y el OB 35 no está cargado.

Identificación final

Page 358: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

Nota El software actual del aparato de programación (STEP 5/ST versión 6 o STEP 5/MT versión 2) para crear el DX O por medio de una máscara no coloca los parámetros para el tratamiento de errores de interfaces (ident. de bloque lOxx, parámetro 2001) ni tampoco los parámetros para seleccionar "Rearranque o nuevo arranque con memoria" (ident. de bloque 02xx, parámetro 4000 ó 4001). Estos parámetros pueden ser introducidos, por ejemplo, con la función del aparato de programación "Salida módulo" (¡téngase en cuenta que hay que modificar la longitud de bloque!). Un DX O que haya sido modificado de esta manera ya no podrá ser editado con la función "Salida máscara".

Actualización de los temporizadores De forma estándar se actualizan los temporizadores T O hasta T 255.

Si en el DX O se registra la cantidad 'O' no se actualizan los temporizadores ni aunque se encuentren en el programa. Tampoco se emite ningún mensaje de error.

Nota La cantidad de temponzadores también se puede parametrizar en el módulo de datos DB 1 (véase capítulo 10.1.6). Sin embargo, recomendamos indicar este parámetro solamente en el DX O. Si, no obstante, se desea ajustar la cantidad de temponzadores tanto en el DX O como en el DB 1 valdrá el valor que se haya indicado en el DB l !

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 359: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

Parámetros para De la tabla siguientes se desprende el parámetro correspondiente al el procesamiento procesamiento de alarma deseado, con el que se programa el DX O. Dependiendo de alarmas del parámetro elegido tendrán efecto determinadas alarmas (o todas) en límites

de módulos, correspondiendo a los símbolos, y otras alarmas (o todas) en límites de instrucciones:

E = Ajuste estandar 0 Interrupción en l ími tes de módulos

In ter rupc ión en l ími tes d e instrucciones

Para- metro (ante- rior) ' )

(1 OOC)

1224 (1 00A)

1220

121C (1 008)

1216

1214

1212

1210

120E

120C

120A

1208

1206

1204 (1 006)

l) El software de PG utiliza los parámetros "anteriores" para crear el nuevo DX O. Si se desea visualizar en un PG un DX O que ha sido programado con nuevos parámetros mediante STEP 5, esto conduce a un aviso de error.

Nota Si el tratamiento de alarmas está ajustado para activarse en límites de instrucciones, en caso de interrupción pueden interrumpirse también las operaciones 'TNB' o 'TNW'. Esto vale igualmente para algunos módulos de organización de funciones especiales, módulos de funciones estándar y módulos de funciones de reguladores.

Alarma de

tiempo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

A l a r m a t e m p o r i z a d a

5 s 2 s 1 s 500 200 100 50 20 10 ms ms ms ms ms ms

1 2 2 C E n n n n n n n n n n n

n o n n o n n n n n n 0 I 1 0 0 0 0 1 1 1 n

n n n n n n n n n n m

~ ~ ~ ~ o ~ ~ ~ ~ m m

O O n n o n n n m m m

o o n n o o n m m m m O I 1 o O o m m m m m

n n n n n m m m m m m

n n n o m m m m m m m

n n n m m m m m m m m

o o m m m m m m m m m n m m m m m

m m m m m m m m m m m

Alarma de re- gula- dar

Alarma de re- tardo

n

0

m

m

m

m

m

m

m

m

m

m m m

Alarma de pro-

ceso

n

m

m

m

m

m

m

m

m

m

m

m m m

Page 360: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

7.4 Ejemplos de parametrización

Programación STEP 5

procesa un programa breve en función de tiempo. De forma estándar, todas las CPUs comenzan simultáneamente con el procesamiento cíclico del programa en modo multiprocesador, es decir, cada una de las CPUs espera a que las demás hayan finalizado su arranque y sólo entonces pasan simultáneamente al procesamiento cíclico del programa. Puesto que la CPU C ejecuta su programa independientemente de las demás CPUs y además está procesando un programa de arranque muy breve, no es necesario sincronizar su arranque. Mediante pararnetrización del DX O se consigue que la CPU C, una vez finalizado el arranque, pase al procesamiento cíclico sin esperar a que las CPUs A y B hayan terminado su arranque.

Programación del DX O para la CPU C:

DX 0 Ident. incial "MASKXO" DW O: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830

18 ident./long. de bloque DW 3: KH = 0201 Parámetro 1 DW 4: KH = 2001 Ident. final DW 5: KH = EEEE

Con la siguiente parametrización del DX O se - desactiva la supervisión de errores de direccionamiento, - desactiva la actualización de los temporizadores, - ajusta el tiempo de ciclo a 4 s.

DX 0 Ident. inicial "MASKXO" DW O: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830

18 ident./long. de bloque DW 3: KH = 0203 Parámetro DW 4: KH = 3001 ~arámetro l) DW 5: KH = BBOO

DW 6: KH = 0000 28 ident./long. de bloque DW 7: KH = 0402 ~arámetro l) DW 8: KH = 1000

DW 9: KF = +4000 Ident. final DW 10: KH = EEEE

Esta pararnetrización del DX O tiene las siguientes repercusiones sobre el procesamiento del programa:

- Aquella parte de la imagen de proceso que no tenga asignada ninguna tarjeta de E/S puede ser utilizada como "zona de marcas" adicional.

- El tiempo de ejecución del programa de sistema disminuye, puesto que no se actualizan temporizadores. - S610 se detecta un error de ciclo cuando el tiempo de ejecución del programa de usuario y del programa de sistema juntos superen los 4 s.

l) ¡Para los parámetros que ocupen dos palabras de datos se deberá indicar ' 2 ' a la hora de introducir la longitud del bloque1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 361: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

Parametrización El software de sistema SS-DOS para el aparato de programación (a partir de la mediante la versión 3) dispone de pantallas que permiten parametrizar el DX O. El software pantalla del para PG crea automáticamente el módulo de datos DX O de acuerdo con los aparato de ajustes estándar y los parámetros que haya introducido el usuario. Para poder programación efectuar estas parametnzaciones se requieren dos pantallas.

El manual del aparato de programación respectivo describe las operaciones básicas para seleccionar y rellenar las pantallas del aparato de programación.

Modo de rellenar La pantalla del aparato de programación prevista para rellenar el DX O consta de las pantallas DX O dos partes:

La primera pantalla parcial (fig. 7-2) contiene los grupos de parámetros

ARRANQUE TRAS DE CONEXION A RED, SINCRONIZAR EL ARRANQUE EN MODO MULTIPROCES., TRANSFERENCIA EN BLOQUE DE MARCAS DE ACOPL., SUPERVISION DE ERRORES DE DIRECCIONAMIENTO, SUPERVISION DE TIEMPO DE CICLO, CANTIDAD DE TEMPORIZADORES, PRECISION DE LA ARITMETICA DE COMA FLOTANTE (sin efecto, la CPU ejecuta las operaciones aritméticas con un mantisa de 24 bits de ancho)

/ DXO PARAMETRIZACION (S5 135U: CPU 928, PROCESADOR) DX O

ARRANQUE DE TENSION:

SINCRONIZAR ARRANQUE MULTIPROCESO

TRANSFERIR MARCAS DE ACOPLAMIENTO

VIGILANCIA ERROR DIRECC.

VIGILANCIA T. CICLO (X 10 MS):

NUMERO TEMPORIZADORES

PRECISION ARITMETICA COMA FLOTANTE #24 BIT MANTISA SOLO EN CPU 928#

1 (1 = REARRANQUE 2 = NUEVO ARRANQUE)

SI

15 (PROC. R: 1 - 400

CPU 928: 1 - 600)

256 (PROC. R: 0 - 128 CPU 928: O - 256)

16 BIT MANTISA

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

7ig. 7-2 Pantalla del aparato de programación para parametrizar el DX O / 1"arte

F7 F1 F3 ELEGIR

F8 F2 F4 F5 F6 SEGUIR

Page 362: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

Una vez introducidos los parámetros necesarios en la lvantalla, o si los parámetros a modificar no se encuentran allí, se puede llamar a la segunda pantalla parcial (figura 7-3), la cual contiene el siguiente grupo de parámetros:

ERROR DE DIRECCIONAMIENTO, ERROR DE CICLO, ERROR DE ACUSE DE RECIBO, COLISION DE ALARMAS TEMPORIZADORAS,

ERROR EN CODIGO DE INSTRUCCION, ERROR DE REGULADOR, ERRON EN TIEMPO DE EJECUCION, PROCESAMIENTO DE ALARMAS DE PROCESO, INTERRUPCION DEL PROGRAMA DE USUARIO POR ALARMAS.

/ DXO PARAMETRIZACION (S5 135U: CPU 928, PROCESADOR) DX O ) STOP SISTEMA POR SUCESO Y 0 B ERROR NO EXISTENTE:

ERROR DE DlRECClON (OB 25) SI ERROR CICLO (08 26) SI

ERROR DE ACUSE (OB 23, 24) NO ERROR RELOJ (OB 33) SI

ERROR INSTRUCCION (OB 27, 29, 30) SI ERROR REGUL. ( 08 34) SI

ERROR EJECUCION (OB 19, 31, 32) SI

ELABORACION DE ALARMAS NIVEL - TRIGGER

INTERRUPCION DEL PROGRAMA DE USUARIO POR ALARMAS: MODO 1 1: TODAS ALARMAS ENTRE MODULOS 2: TODAS ALARMAS ENTRE INSTRUC. 3: SOLO ALARMAS PROCESO ENTRE INSTRUC. 4: SOLA ALARMAS PROCESO Y REGUL. ENTRE INSTRUC. X: (X = 10, ... 17) ALARMA TIEMPO 0810 - OBX Y REGUL./PROCESO

ENTRE INSTRUCCIONES #SOLO PARA LA CPU 92%'

ig. 7-3 Pantalla del aparato de programación para parametrizar el DX O / 2"arte

El siguiente diagrama secuencia1 explica cómo rellenar pantallas parciales y sus respectivos campos de entrada, cómo almacenar los parámetros y cómo cargar el módulo de datos DX O creado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

F7 F1 \

F3 ELEGIR

F8 F2 F4 F5 F6 SEGUIR

Page 363: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Módulo de datos am~liado DX O

Diagrama secuencia1 para rellenar la pantalla DX O

SI

Repetir el siguiente proceso hasta haber realizado todas las modif icaciones necesarias en la 1 @ máscara:

- Seleccionar el campo de entrada: Posicionar el cursor delante del campo de parámetros. El campo indicador F3 en el margen inferior de la pantal la indica si existen dist intas opciones a elegir ( ' 'ELEGIR'') o si se puede modif icar el valor del parámetro ( ' 'ENTRADA'').

- ELEGIR: Pulsar repetidamente la tecla de función F3 hasta que se visualice la opción deseada.

- 'ENTRADA: Pulsar una vez la tecla F3; el cursor salta al principio del campo. A continuación se puede sobreescribir el campo con un valor numérico admisible.

Pulsar la tec la F6 ( "SEGUIR") ; se visualiza la 2 @ máscara.

Modif icar los parámetros como descrito para la 1 @ máscara.

Pulsar l a tecla de aceptación: el software del aparato de programación acepta todos los ajustes efectuados en ambas máscaras y genera con el los el módulo de datos DX O .

El DX O queda registrado en el aparato de programación. Puede ser cargado en la CPU o en un cartucho EPROM mediante el aparato de programación.

El ejemplo de la página siguiente muestra cómo se rellenan las pantallas.

Ejemplo de cómo rellenar la pantalla DX O

Se desea parametrizar el DX O para obtener un comportamiento del programa de sistema distinto al estándar:

- En modo multiprocesador, la CPU para la que ha sido programado el DX O no deberá esperar en el arranque a que las demás CPUs finalicen su arranque.

- El tiempo de supervisión de ciclo ha de ser de 100 ms. - Las operaciones aritméticas deben ejecutarse con una mantisa de coma

flotante de 24 bits. - Si se producen errores de ciclo, la CPU no debe pasar a STOP si el OB 26

no está cargado. - El programa de usuario debe ser interrumpido por todas las alarmas en

límites de instrucciones. Para efectuar estos ajustes, rellenar la pantalla como se indica:

Primera ~antalla DX O: - En el campo del parámetro "SINCRONIZAR ARRANQUE MULTIPROCESO": seleccionar

NO con la tecla de función F3. - En el campo del parámetro "VIGILANCIA T. CICLO": pulsar primero la tecla

de función F3 y después introducir la cifra 10 (= 100 ms). - En el campo del parámetro "PRECISION ARITMETICA COMO FLOTANTE": seleccio-

nar la "mantisa 24 bit" con la tecla de función F3. - A continuación pulsar la tecla de función F6 (SEGUIR). Así se visualizará la

segunda pantalla DX O.

Seounda p a n a l a Dx O: - En el campo del parámetro "ERROR CICLO": seleccionar NO con la tecla de función ~ 3 . - En el campo MODO y con el parámetro "INTERRUPCION DEL PROGRAMA DE USUARIO POR ALARMAS": introducir la cifra '2' (= activar todas las alarmas en límites de instrucciones)

- Confirmar todas las entradas con la tecla de aceptación. A continuación, el software del aparato de programación creará el módulo de datos DX O.

Transferir finalmente el DX O a la memoria de la CPU o a un cartucho EPROM.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 364: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

Resumen breve Este capítulo explica cómo está organizada la memoria de la CPU 928B, versión -3UB21. En él se encuentran informaciones importantes a las que puede acceder el usuario y que han sido depositadas en algunas palabras de datos del sistema.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

8.1

8.2

8.2.1

8.2.2

8.3

8.3.1

8.3.2

8.3.3

8.3.4

8.3.5

Tema

Estructura de la zona de memoria

Distribución de la zona de direcciones de la CPU 928B-3UB21

Distribución de la zona de direcciones de la RAM de sistema

Distribución de la zona de direcciones de la periferia

Organización de la memoria de usuario de la CPU 928B-3UB21

Cabezas de módulos en la memoria de usuario

Listas de direcciones de módulos en el módulo de datos DB O

Zona BA/BB

Zona BS/BT

Ocupación de los bits de las palabras de datos de sistema

Página

8-2

8-3

8-4

8-5

8-7

8-8

8-9

8-12

8-13

8-16

Page 365: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

8.1 Estructura de la zona de memoria

Cuadro sinóptico La zona de memoria de la CPU 928B se divide básicamente en las siguientes zonas:

Tabla 8-1 Estructura de la zona de memoria

Las direcciones exactas de estas zonas están indicadas en los esquemas de ocupación de memoria indicados en las páginas siguientes.

Zona de memoria

Memoria de usuario para: OB, FB, FX, PB, SB, DB, DX

DB-RAM para: módulos de datos, registros de desplazamiento

Marcas: S

Zona de interfaz: BA, BB Zona de sistema: BS, BT Contadores: Z Temporizadores: T

Marcas: M

Imagen de proceso (PA) de las entradas y salidas: PAE, PAA

Zona de periferia, se divide en:

Periferia P Periferia Q IM 3 IM 4 Marcas de acoplamiento Coordinador (tarjeta KOR) Páginas (CP, IP, KOR 923C) Periferia decentral

Nota El acceso STEP 5 a una célula de memoria que se encuentre en el interior de una zona de operandos (por ejemplo: marcas) no debe ser efectuado jamás directamente a través de la dirección absoluta de esta célula sino exclusivamente con la dirección relativa de la zona de operandos respectiva. Las direcciones básicas de todas las zonas de operandos están registradas en la zona de datos de sistema (zona BS) (véase "Ocupación de la memoria").

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Longitud

máx. 32 .21° pal.

23 .21° pal.

1024 byte

256 pal. respec. 256 pal. respec.

256 pal. 256 pal.

256 byte

128 byte respec.

256 byte 256 byte 256 byte 256 byte 256 byte 256 byte

2048 byte 768 byte

Anchura

16 bit

16 bit

8 bit

16 bit 16 bit 16 bit 16 bit

8 bit

8 bit

8 bit

Page 366: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

8.2 Distribución de la zona de direcciones de la CPU 928B-3UB21

B i t n Q 1 5 8 7 O

l Memoria de usuario l l máx. 32 x 2" palabras

DB-RAM

23 x 2' palabras

DB O (lista de direcciones de módulos)

Marcas S

E 8 0 0 0 Datos de transferencia del sistema (zona BAIBB),

datos del sistema (zonas BS/BT),

E E F F EFOO

E D F F

E F F F F O O O

contadores, temporizadores

F F F F

1 5 E E O O

Marcas

Zona PA

periferia o ~ (digital/analógica

CPII P)

RAM de sistema, interna en la CPU

(véase también fig. 8-2)

Bus S5 (véase también fig. 8-3)

l

Fig. 8-1 Distribución de la zona de direcciones en la CPU 928B-3UB21lesquema

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 367: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

8.2.1 Distribución de la zona de direcciones de la RAM de sistema

Bit nQ

8000

EAFF EBOO

EBFF ECO0

ECFF EDOO

EDFF

Fig. 8-2

DB-RAM

Marcas S

BA: zona de inter faz

BB: zona ampl iada de interfaz

BS: zona de datos de s istema

BT: zona ampl iada de datos de s istema

Contadores (256)

Temporizadores (256)

EEOO

Marcas

Zona PA

EFFF

7 o

Distribución de la zona de direcciones de la RAM de sistema

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 368: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

8.2.2 Distribución de la zona de direcciones de la periferia

Bit n" O

FOOO

F07F F080

FOFF F1 O0

F1 FF F200

F2FF F300

F3FF F400

Per i fer ia digi ta l (con PA), 1024 bits de entrada / 1024 bits de sal ida

Per i fer ia digi ta l o analógica (sin PA), 1024 bi ts de entrada / 1024 bi ts de sal ida

Per i fer ia ampl iada 2048 bits de entrada12048 bi ts de sal ida

FBFF FCOO

Peri fer ia decentral , volumen ampl iado de direcciones

7 Zona P

1 Zona Q

l

2048 bi ts de marcas de acoplamiento (en la tar jeta del coordinador/CP)

32 semáforos (en la tar jeta del coordinador)

Zona de transferencia de datos para CP (páginas)

FCFF FDOO ;, FFOO

f

t Zona de páginas

I

Zona IM 3

Zona IM 4

A

Fig. 8-3 Distribución de la zona de direcciones de la periferia (8 bit) en el bus S5

FFFF

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ocupado

Page 369: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Zonas de direcciones para la periferia y su programación

Con las operaciones STEP 5 se puede acceder a la perifena directamente o por medio de la imagen de proceso. ¡Hay que tener en cuenta que la imagen de proceso sólo existe para los byte de las entradas y salidas de la perifena P, cuyas direcciones byte sean de O a 127!

Zona (dirección absoluta)

Periferia P con imagen de proceso

(imagen de proceso

(imagen de proceso

Periferia P

Penfena digital entradasisalidas

F07F

analógica

Periferia Q

Periferia ampliada entradasisalidas

FlFF

Nota El usuario puede acceder con su programa a zonas de direccio- nes decentrales a través de las interfaces IM 304, IM 307 e IM 308. De este modo se obtienen dos nuevas zonas de memoria equivalentes a la zona Q. Sin embargo, al contrario que en el caso de la zona Q, sólo puede accederse a estas zonas mediante direccionamiento absoluto, o también con el módulo FB 196 del paquete de software "funciones básicas" (véase catálogo ST 59, bibliografía 190.

Se accede con Parámetro

Cuando se procesan las operaciones sólo se modifica la imagen de proceso. Sólo al final del ciclo se transfiere el nuevo estado de la imagen de proceso a la periferia.

LEB / T E B O a 127 L E W / T E W O a 126 LED / T E D U E / U N E / O E / O N E S E / R E / = E

LAB / T A B O a 127 L A W / T A W O a 126 LAD / T A D

1 O a 124

U A / U N A / O A / O N A - 0 . 0 a 127.7 S A / R A / = A

A las entradas y salidas se accede directamente byte por byte o palabra por palabra.

L P Y / T P Y O a 127 L P W / T P W O a 126

L P Y / T P Y 128 a 255 L P W / T P W 128 a 254

A las entradas y salidas se accede directamente byte por byte o palabra por palabra.

L Q B / T Q B O a 255 L Q W I T Q W O a 254

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 370: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

8.3 Organización de la memoria de usuario de la CPU 928B-3UB21

Introducción La memoria de usuario comprende la zona de memoria desde OOOOH hasta 7FFFH. Al cargar los diferentes módulos del programa de usuario, éstos se almacenan en orden arbitrario (direcciones ascendentes).

"Carga Los módulos de datos DB/DX se pueden cargar de diversa manera, según el alternativa" de ajuste registrado en la palabra de datos de sistema BS 144: módulos de datos De acuerdo con el ajuste estándar los módulos de datos se cargan en primer lugar

en la memoria de usuario. Solamente cuando ésta esté llena se depositan los módulos de datos en la DB-RAM interna (8000H a DD7FH). Activando el bit O en BS 144 puede invertirse el orden (= "carga alternativa").

Información Con la función del aparato de programación on line SPAUS (extensión de la sobre la memoria memoria) se obtiene la dirección (hexadecimal) de la célula de memoria que

contiene la instrucción de fin de módulo del último módulo de la memoria de usuario, así como el tamaño de la misma.

Administración Al corregir los módulos, el módulo "antiguo" se declara no válido y se registra de los módulos un nuevo módulo en la memoria y en la lista de direcciones. Del mismo modo,

cuando se borran los módulos, éstos no son realmente borrados sino declarados no válidos. Los huecos que se producen al borrar los módulos se administran como espacios libres de memoria y se vuelven a utilizar cuando se cargan nuevos módulos.

Los huecos que se hayan creado al borrar módulos no se pueden reutilizar inmediatamente (v. "Comprimir memoria).

En modo EPROM no es posible corregir ni borrar módulos.

Comprimir memoria

Con la función on line COMPRIMIR MEMORIA se crea espacio de memoria para nuevos módulos: esta función optimiza la ocupación del espacio de memoria borrando los módulos declarados no válidos y agrupando los módulos válidos. Esta compresión se efectúa por separado, en la memoria de usuario y en la DB-RAM (véase capítulo 11.2).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 371: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

8.3.1 Cabezas de módulos en la memoria de usuario

Estructura Cada módulo en la memoria comienza con una cabeza de módulo de 5 palabras de longitud.

lvalabra: Identificación inicial del módulo: 7070H

2"alabra: Byte alto = tipo de módulo

Bit ng 15 14 13 1 12 1 11 1 10 9 1 8 1

0 1 ~ Módulo de datos DB 02H Módulo de pasos SB 04H Módulo de programa PB 05H Módulo de funciones FX 08H Módulo de funciones FB OCH Módulo de datos DX 10H Módulo de organización OB

O O Módulo no vál ido, no registrado en la l is ta de direcciones DB O.

O 1 Módulo en la RAM es vál ido, registrado en la l is ta de direcciones DB O .

Módulo no vál ido y protegido contra escr i tura (vál ido en "EPROM")

Byte bajo = número de módulo El número de módulo (O a 255) se encuentra en el byte bajo de la 2"alabra de la cabeza y está codificado como número dual: 00 a FFH.

3"alabra: El byte alto de la 3"alabra contiene las identificaciones del aparato de programación; el byte bajo contiene una parte del número de biblioteca.

4"alabra: La 4"alabra contiene el resto del número de biblioteca.

5"alabra: En la 5"alabra (byte bajo y alto) se encuentra la longitud del módulo, incluida la cabeza del módulo. La longitud se indica en palabras.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 372: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

8.3.2 Listas de direcciones de módulos en el módulo de datos DB O

Introducción El módulo de datos DB O contiene la lista de direcciones iniciales de todos los módulos de usuario que se encuentran en el cartucho de memoria o en la DB-RAM de la CPU. Esta lista de direcciones se genera tras un BORRADO TOTAL y se actualiza automáticamente al transferir o modificar módulos de datos con el aparato de programación.

Direcciones iniciales de las listas de direcciones

Por cada tipo de módulo existe en el DB O una lista de direcciones de 256 palabras de longitud reservada especialmente, es decir, por cada módulo de datos hay 1 palabra reservada. Los módulos de datos no cargados o borrados tienen la dirección inicial 'O'.

Las direcciones iniciales de las distintas listas de direcciones de módulos están registradas asimismo en los datos de sistema BS 32 a BS 38:

BS 32: Dirección inicial de la lista de direcciones DX

BS 33: Dirección inicial de la lista de direcciones FX

BS 34: Dirección inicial de la lista de direcciones DB

BS 35: Dirección inicial de la lista de direcciones SB

BS 36: Dirección inicial de la lista de direcciones PB

BS 37: Dirección inicial de la lista de direcciones FB

BS 38: Dirección inicial de la lista de direcciones OB (sólo 48 palabras de longitud)

Direcciones Las direcciones iniciales de los módulos que figuran en las listas de direcciones iniciales de los indican siempre la primera palabra que sigue a la cabeza del módulo: módulos

en módulos de datos indican la palabra de datos DW O.

en módulos de código indican la primera instrucción STEP 5 (en los FBs indi- can la instrucción 'SPA' antes del nombre y de la lista de parámetros).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 373: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Almacenamiento de las direcciones de módulos en el DB O

DBO n = direcc. inicial de la l ista de direcciones PB (= contenido de BS 36)

Dirección PB 1

Dirección PB 2 Si como dirección se ha registrado el valor 'O', el módulo de datos no está cargado.

n t 178 Dirección PB 178 ~ n t 179 Dirección PB 179 ~ Fig. 8-4 Direcciones de módulos en el DB O

Ejemplos de cómo averiguar una dirección de módulo

:L BS 37 D i r . b á s i ca l i s t a de d i r . FB :L KB 40 + número FB

= d i recc ión de l a c é l u l a de memo- r i a que cont iene l a d i r . i n i c i a l d e l FB 40 Cargar l a d i r ecc ión i n i c i a l d e l FB 40 en e l AKKU 1. (El módulo no e x i s t e s i l a d i r ecc ión i n i c i a l = 0)

:L BS 37 D i r . b á s i ca l i s t a de d i r . FB Cargar r e g i s t r o BR con d i r . bás ica Cargar e l contenido de l a c é l u l a de memoria " d i r . bás i ca + 40" en e l AKKU 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 374: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

:L B S 3 4 Cargar dirección básica de la lista de dir. DB :L KB 50 Calcular la dirección del registro para el DB 50

y cargar la dirección inicial en el AKKU 1

:L K B O Saltar a la marca NIVO si el módulo no existe

:SPB =NIVO Cargar la dirección inicial del DB 50

en el AKKU 3 y AKKU 1 Disminuir en 1 la dirección inicial y

cargar la longitud del módulo en el AKKU 1

NIVO : ....... Reacción en caso de no existir el módulo

DB O Memoria de usuario

Fig. 8-5 Dirección inicial del DB 50

Resultado: AKKU-1-L: Longitud del DB 50 AKKU-2-L: Dirección inicial del DB 50

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 375: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

b) -robar módulos de datos !DB/DXjW con el módulo de or-ación de funciones esneciales OB 181:

El OB 181 (véase capítulo 6.16) ejecuta la misma función que se ha descrito en el ejemplo a). Además comprueba si el módulo de datos se encuentra en la memoria de usuario (cartucho RñM o EPROM) o si se encuentra en la DB-RñM.

:L KY1,50 Módulo de datos DB 50 :SPA OB 181 "Comprobar módulos de datos (DB/DX)" :SPB =NIVO Salto, si no existe :SPM =PROM Salto, si existe en el cartucho EPROM :SPZ =ANWE Salto, si existe en el cartucho RAM :SPP =DBRA Salto, si existe en el cartucho DB :SPA =FEHL Salto al tratamiento de errores

Módulo de datos no existe

Módulo de datos se encuentra en la memoria de usuario protegido contra escritura/en modo EPROM

Módulo de datos se encuentra en la memoria de usuario no protegido contra escritura/en modo RAM

Módulo de datos se encuentra en la DB RAM

Tratamiento de errores

Resultado: AKKU-1-L: longitud del DB 50 AKKU-2-L: dirección inicial del DB 50 VKE = 1, si no existe el DB 50

8.3.3 Zona BA/BB

Resumen La zona BA, que tiene una longitud de 256 palabras, está situada en la RAM interna del sistema de la CPU. Esta ocupa las direcciones E800H a E8FFH.

La zona BB, que tiene una longitud de 256 palabras, está situada en la RAM interna del sistema de la CPU. Esta ocupa las direcciones E900H a E9FFH.

El total de las zonas BA (BA O a BA 255) y BB (BB O a BB 255) puede ser utilizado por el usuario para sus propias necesidades.

jLa zona BAJBB se borra, es decir, se rellena con ceros solamente con un BORRADO TOTAL!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 376: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

8.3.4 Zona BS/BT

Zona BS

Zona BT

La zona BS contiene tanto informaciones para el programador del sistema como datos internos del sistema.

La zona BS con una longitud de 256 palabras se encuentra en la RAM interna del sistema de la CPU. Esta ocupa las direcciones EAOOH a EAFFH.

Precaución Solamente pueden escribirse las palabras de datos de sistema BS 1, BS 60 a BS 63, BS 133, BS 140 y BS 144:

- BS 60 a BS 63 están a disposición del usuario. - BS 1 y BS 133 tienen una función definida y repercuten en el

procesamiento del programa. !Sólo deben ser escritas con las identificaciones válidas!

Los restantes datos de sistema sólo pueden ser leídos:

Si se efectúa un acceso de escritura en uno de estos datos de sistema puede tener consecuencias en el funcionamiento del autómata programable así como en el aparato de programación conectado: pueden tener lugar averías graves que pueden poner en peligro a personas y máquinas.

Las informaciones de algunos datos de sistema (sobre la estructura interna de la CPU, la versión de software, la identificación de la CPU etc.) se obtienen asimismo con la función on line PARAMETROS SISTEMA.

A continuación se indican, de forma complementaria a las figuras 8-6 y 8-7, las ocupaciones de los bits de algunos datos de sistema, las cuales pueden ser evaluadas por el usuario con operaciones STEP 5 o con el aparato de programación (las abreviaturas se explican en el capítulo 5.3).

La zona BS se borra solamente con un BORRADO TOTAL.

La zona BT, que tiene una longitud de 256 palabras, se encuentra en la RAM interna del sistema de la CPU. Esta ocupa las direcciones EBOOH a EBFFH.

La zona BT (BT O a BT 255) puede ser utilizada por el usuario para sus propias necesidades.

La zona BT se borra solamente con un BORRADO TOTAL.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 377: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Ocupación de la zona BS

7 : reservado

Fig. 8-6 Ocupación de la zona BS, 1"arte

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 378: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

3 0 3 1 3 2

1 3 9 1 1 1

1 EA27

5 4 EA36 1 5 5 1 Contador de 1 hora (has ta 3599 seci, hex.) 1 EA37

33 34 35 3 6 3 7 3 8

1 5 6 1 I - 1

1 EA38 Reservado para módulo de comunicación

1 59 I EA3B ' 6 0 1 I I

1 EA3C 63 ' Reservado pa ra e l usuar io

I ' EA3F 1 6 4 1 Reservado para el programa de sistema 1 EA40

! 7 9 ! i EA4E

EA1 E EA1 F EA20

Longi tud de las informaciones de la cabeza de módulo

Dirección básica de la l ista de direcciones FX Dirección básica de la l ista de direcciones DB Dirección básica de la l ista de direcciones SB Dirección básica de la l ista de direcciones PB Dirección básica de la l ista de direcciones FB Dirección básica de la l ista de direcciones OB

80 1 Identificación adicional de error si bit FE-5 en BS 8 está activado 1 EA50 : 81 1 1 EA51

Identificación de la CPU 1

EA2 1 EA22 EA23 EA24 EA25 EA26

Reservado pa ra e l p rograma d e s i s tema

Estado SW interfaz PG Dirección básica de la l ista de direcciones DX

1 133 1 Identificación "Actualización de imagen de proceso" 1 EA85

130

131 132

134 1 1 EA86 135 1 Palabra de indicadores "Bloquear alarmas temporizadas individualmente" 1 EA87

Ident i f icación "Regulación" Palabra de indicadores "Bloquear alarmas conjuntamente" Palabra de indicadores "Retardar alarmas conjuntamente"

139 ; Protección del software EA8B 1 140 1 Palabra de indicadores "Escribir v borrar módulos" 1 EA8C

EA82 EA83 EA84

136 137

1 141 1 ' EA8D

1 4 3 , E A 8 F 1 1 4 4 1 Carcia a l t e rna t i va d e módu los d e da tos 1 EA90

138 Protección contra escritura Dara la memoria de usuario en modo EPROM EA8A Palabra de indicadores "Retardar alarmas individualmente"

Fig. 8-7 Ocupación de la zona BS, 29ar te

EA88 EA89

' 1 4 5 ' -

I E A 9 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

255 EAFF

Page 379: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

8.3.5 Ocupación de los bits de las palabras de datos de sistema

Palabra de indicadores de interrupción

Dirección: EAOOH

Tabla 8-2 Ocupación del BS O @alabra de indicadores de interrupción)

El dato de sistema BS O corresponde a la CAUSA DE INTERRUPCION en la pila USTACK. Si durante el procesamiento del programa se produce, por ejemplo, un error en tiempo de ejecución se activa el bit n". Al finalizar el nivel de procesamiento se rearma el bit n".

O

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

DOPP

Page 380: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

BS 1 Palabra borradora de indicadores de interrupción UALW

Dirección: EAOlH

BS 1: interfaz activa, ¡habilitada para el usuario!

Activando el bit n 9 o el bit n"0 de la palabra UALW se ignora el siguiente ADF o QVZ y no se altera el programa que está siendo procesado. Cuando se produce un QVZ o ADF el programa de sistema rearma el bit respectivo.

Tabla 8-3 Ocupación del BS 1 @alabra borradora de indic. de interrupción)

¡Cada nivel de procesamiento tiene su propia palabra UALW!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 381: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

Ejemplo de la UALW

con UALW que se produzca un retardo en acuse de recibo y se procesa un programa especial previsto para este caso. Con UALW se comprueba asimismo si está registrada en el DB 1 una determinada dirección de periferia. Si no lo está, se impide con la UALW un error de direccionamiento y se procesa un programa especial.

:SPA FB 10 NOMB . : PERITEST Comprobar si se puede acceder a una tarjeta PADR : PB 128 con la dirección de periferia 128 MASK : KM 00000100 00000000

:SPN =M001 Si la dirección de periferia no está registrada

se procesa esta parte de programa.

:SPA FB 10 NOMB . : PERITEST Comprobar si en el DB 1 hay una tarjeta registrada PADR : AB 4 con la dirección de periferia 4 MASK : KM 00000010 00000000

:SPN =M002 Si la dirección de periferia no está registrada,

se procesa esta parte de programa.

NOMB . : PERITEST BE2 :PADRE/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :MASKE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KM

:L B S 1 Cargar y grabar UALW :T BS 60 :LW =MASK Activar bit QVZ o ADF

:T B S 1 Reescribir UALW :L =PADR Acceso tínico a periferia o acceso

a la imagen de proceso :L B S 1 :LW =MASK Enmascarar bit QVZ o ADF

:L BS 60 Volver a escribir la UALW anterior para que :T B S 1 pueda ser detectado el próximo QVZ o ADF

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 382: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Palabra colectora de indicadores de interrupción UAMK

Dirección: EA02H

Los 16 bits de la palabra colectora de indicadores de interrupción corresponden a las causas posibles expuestas bajo CAUSA DE ERROR en la pila USTACK.

Cuando se produce un error determinado se activa el bit correspondiente.

Tabla 8-4 Ocupación del BS 2 @alabra colectora de indic. de interrupción)

¡La palabra colectora de indicadores de interrupción (UAMK en la pila USTACK) sólo puede ser leida!

Byte alto

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Bit nQ

15

14

13

12

11

10

9

8

Ocupación

NAU

PEU

BAU

MP-STP

ZYK

QVZ

ADF

STP

Byte bajo

7

6

5

4

3

2

1

O

BCF

FE-3

LZF

REG

STUEB

STUEU

WECK

DOPP

Page 383: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

Ejemplo de la UAMK

código de instrucción (BCF) se activa además el bit nQ 7 de la UAMK.

Contenido de la UAMK (binario): 00000010 10000000

Notación (hexadecimal) en la pila USTACK:

Mientras que en el campo CAUSA DE INTERRUPCION de la pila USTACK sólo se encuentra marcado con una cruz el tíltimo error que ha tenido lugar, en la UAMK se suman todos los errores ocurridos hasta el momento (USTACK, profundidad 5: en la UAMK hay 5 bits activados). El contenido de la UAMK se puede evaluar convirtiendo el código hexadecimal a código binario. De este modo se comprueba qué errores han causado el estado STOP.

Los bits de error se rearman en cuanto se finaliza y abandona el procesamiento del correspondiente nivel de programa de tratamiento de errores.

Los indicadores de interrupción de errores que no tienen asignado ningtín nivel de procesamiento (por ej. NAU, PEU, STUEB, etc.) se borran en el

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 384: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Identificaciones de STOP y de ARRANQUE

Dirección: EAOSH

Las identificaciones corresponden a los bits de control de la primera y segunda línea de la pila USTACK.Ocupación del BS

Tabla 8-5 Ocupación del BS 5 (identif. de STOP y de ARRANQUE)

O 1 MWA-ZUL

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 385: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Identificaciones de CICLO, de cartucho y MPL

Dirección: EA06H

Las identificaciones corresponden a los bits de control de la tercera y cuarta línea de la pila USTACK.

Tabla 8-6 Ocupación del BS 6 (identific. de CICLO y de cartucho/MPL)

O 1 DIG-AUS

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 386: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Identificaciones de BORRADO TOTALIinicializar identificaciones de error

Las identificaciones corresponden a los bits de control de la quinta y sexta línea de la pila USTACK.

Tabla 8-7 Ocupación del BS 7 (identificaciones de BORRADO TOTAL e inicializar identificaciones de error)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 387: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Identificaciones de error HWISW

Dirección: EAOSH

Las identificaciones corresponden a los bits de control de la séptima y octava línea de la pila USTACK.

Tabla 8-8 Ocupación del BS 8 (identificaciones de error HWISW)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

O DOPP-FE

Page 388: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

BS 29 Identificación de slotltipo de CPU y autómata programable (AG)

Dirección: EAlDH

Tabla 8-9 Ocupación del BS 29 (identificación de slotltipo CPU y AG)

Tipo de autómata programable (AG)

o

BS 29 (alto)

BS 29 (bajo)

Interfaz activa, es utilizada por los módulos de comunicación y en la comunicación en modo multiprocesador, así como por el OB 218 y las operaciones SES y SEF.

Tipo de CPU: 1011 CPU 928B

Tipo de AG: O 1 1 1 S5-135U

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 389: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Dirección: EASOH (alto y bajo)

Aquí se encuentra información adicional que especifica el error que se ha producido cuando el bit n" en BS 8 es activado por el sistema, o bien cuando el bit de control FE-5 aparece marcado con una cruz en la pantalla de la pila USTACK:

Dirección: EA82H (low)

Identificación en BS 80

2460H

El dato de sistema BS 130 indica los siguientes estados del nivel de procesamiento "regulación":

Causa del error

Señal "ready" en bus S5 pendiente

Bit nW = O : nivel de procesamiento "regulación" activado

Bit nW = 1 : nivel de procesamiento "regulación" suprimido

Antes de llamar a un módulo de organización de arranque (OB 20,21 ó 22) el programa de sistema evalúa el módulo de datos DB 2 (si es que existe). Según el resultado de la evaluación el programa de sistema activa o rearma el BS 130. Después llama a un OB de arranque. Si el BS 130 (bajo) está rearmado, se ejecuta el procesamiento del regulador en modo cíclico de acuerdo con la lista de reguladores del DB 2.

Palabra de indicadores "bloquear alarmas conjuntamente": véase OB 120 (capítulo 6.5) Dirección: EA83H (bajo)

El dato de sistema BS 131 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas":

Tabla 8-10 Ocupación del BS 131 (bloquear alarmas conjuntamente)

Bit = '1' significa: alarma(s) bloqueada(s).

Bit nQ

7

6

5

4

3

2

1

O

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Byte bajo: bloquear alarmas coqjuntamente

o O

o o Alarma de retardo

Alarma de proceso

Alarma temporizada controlada por reloj

Alarmas temporizadas con escalas de tiempo fijas

Page 390: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

BS 132 Palabra de indicadores "retardar alarmas conjuntamente": véase OB 122 (capítulo 6.7) Dirección: EA84H (bajo)

El dato de sistema BS 131 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas":

Tabla 8-11 Ocupación del BS 132 (retardar alarmas conjuntamente)

Bit = '1' significa: alarma(s) retardada(s).

Bit nQ

7

6

5

4

3

2

1

O

Actualización de la imagen de proceso

Dirección: EA8SH (bajo)

Byte bajo: retardar alarmas coqjuntamente

o O

o o Alarma de retardo

Alarma de proceso

Alarma temporizada controlada por reloj

Alarmas temporizadas con escalas de tiempo fijas

Tabla 8-12 Ocupación del BS 133 (actualización de la imagen de proceso)

Bit = '1' significa: Cada bit impide una sola vez la actualización de la imagen de proceso. Inmediatamente después vuelve a ser puesto a 'O'.

Bit nQ

7

6

5

4

3

2

1

O

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Byte bajo: actualización de la imagen de proceso

no ocupados

KM-AUS

KM-EIN

DIG-EIN

DIG-AUS

Page 391: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Palabra de indicadores "bloquear alarmas temporizadas individualmente": véase OB 121 (capítulo 6.6) Dirección: EA87H

El dato de sistema BS 135 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas temporizadas":

Tabla 8-13 Ocupación del BS 135 (bloquear alarmas temporizadas individualmente) I I

Byte alto: bloquar alarmas temporizadas individualmente

Bit nQ

1 Alarma temporizada 500 ms (OB 15)

11

10

9

Alarma temporizada 5 s (OB 18)

Alarma temporizada 2 s (OB 17)

Alarma temporizada 1 s (OB 16)

Byte bajo: bloquear alarmas temporizadas individualmente

1 Alarma temporizada 10 ms (OB 10)

7

6

5

4

Bit = '1' significa: alarma temporizada bloqueada

Alarma temporizada 200 ms (OB 14)

Alarma temporizada 100 ms (OB 13)

Alarma temporizada 50 ms (OB 12)

Alarma temporizada 20 ms (OB 11)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 392: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Palabra de indicadores "retardar alarmas temporizadas individualmente " : véase OB 123 (capítulo 6.8) Dirección: EA89H

El dato de sistema BS 137 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas temporizadas":

Tabla 8-14 Ocupación del BS 137 (retardar alarmas temporizadas individualmente) I I

Byte alto: retardar alarmas temporizadas individualmente

Bit nQ

1 Alarma temporizada 500 ms (OB 15) 1

11

10

9

Alarma temporizada 5 s (OB 18)

Alarma temporizada 2 s (OB 17)

Alarma temporizada 1 s (OB 16)

Byte bajo: retardar alarmas temporizadas individualmente

1 Alarma temporizada 10 ms (OB 10) 1

7

6

5

4

Bit = '1' significa: alarma temporizada retardada

Alarma temporizada 200 ms (OB 14)

Alarma temporizada 100 ms (OB 13)

Alarma temporizada 50 ms (OB 12)

Alarma temporizada 20 ms (OB 11)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 393: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

Protección contra escritura para la memoria de usuario en modo EPROM

Dirección: EASAH

Cuando los módulos se copian de una Memory Card (modo EPROM), la memoria de usuario está protegida contra escritura.

Borrando o activando el identificador de protección contra escritura (bit O de BS 138) mediante el PG y efectuando luego un NUEVO ARRANQUE, se puede desactivar o reactivar directamente la protección contra escritura. (Los bits 1 a 15 de BS 138 carecen de importancia).

Para activar o desactivar la protección contra escritura:

1Visualice en el PG el contenido de la dirección EA8AH.

2"ctive o borre el bit O de BS 138, sobreescribiendo el contenido de la dirección EA8AH con la configuración binaria OOOxH (x = 1 para activar el identificador de protección contra escritura; x = O para borrarlo).

3Wfectúe un NUEVO ARRANQUE. Una vez ejecutado el OB 20, se evalúa el bit O de la palabra de datos del sistema BS 138 y la protección contra escritura se activa o se desactiva según corresponda.

BS 138 se puede activar no sólo mediante el PG (l), sino también a través del OB 20.

El estado de la protección contra escritura se conserva hasta el siguiente BORRADO TOTAL de la CPU.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 394: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

BS 139 Protección del software

El dato de sistema BS 139 controla la función "Protección del software". Con dicha función es posible evitar que se lean, sobreescriban y borren módulos mediante el aparato de programación @.ej. por personal no autorizado), ajustando a tal efecto una contraseña.

Contraseña La función "Protección del software" se encuentra vinculada a una contraseña que se le comunica al programa de sistema a través de BS 139.

Ajustar una Al ajustar una contraseña en BS 139 se activa automáticamente la protección del contraseña/activar software. la protección del software Sólo se puede ajustar una (nueva) contraseña si se ha borrado la antigua.

Borrar la Una vez borrada la contraseña se desactiva automáticamente la protección del contraseña/desact software. ivar la protección Al borrar la contraseña es preciso comunicárselo al programa de sistema del software mediante BS 139.

5 intentos de borrado como máximo:

Si desea borrar la contraseña e indica una contraseña errónea, el programa de sistema rechaza los intentos y los cuenta. Una vez realizados 5 intentos erróneos (como máximo), el sistema de programa suspende la edición de la contraseña. Entonces sólo será posible reintentar borrar la contraseña después de un NUEVO ARRANQUE.

Una vez borrada la contraseña y al realizarse un NUEVO ARRANQUE se borra el "contador de intentos erróneos".

¿Cómo se ajusta La contraseña se ajustaborra (y la protección del software se activaldesactiva) o se borra la escribiendo en el dato de sistema BS 139 una determinada configuración binaria contraseña? (v. "Ocupación al escribir") mediante

el programa STEP 5

una petición del PG "Salida dirección".

Nota La CPU se suministra de fábrica con la contraseña borrada y con la protección del software desactivada. Ese mismo estado se obtiene después de un BORRADO TOTAL.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 395: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

¿Cuándo se Una contraseña se puede ajustar en cualquier momento. No obstante, después de activa o se ajustar la contraseña, la protección del software se activa sólo en determinados desactiva la momentos: protección del software? en estado operativo STOP:

periódicamente en el punto de control de sistema "Stop",

en estado operativo ARRANQUE: una vez después de llamar a los OBs de arranque (OB 20, OB 21 y OB 22),

en estado operativo RUN: cíclicamente antes de llamar al OB 1.

Ocupación del Para llamar a la protección del software es preciso escribir en el dato de sistema dato de sistema BS 139 una configuración binaria conforme a la función a ejecutar. En la tabla al escribir siguiente se muestra cómo se debe estructurar dicha configuración binaria.

Dirección: EASBH

Tabla 8-15 Ocupación del BS 139 (protección del software) al escribir

Bits 8 a 13 de una contraseña de 14 bits

Bits O a 17 de una contraseña de 14 bits

o

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 396: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Leer el dato de Al leer el dato de sistema BS 139 es posible determinar si se ejecutó una sistema BS 139 "petición" de escribir en dicho dato. El programa de sistema deposita un mensaje

allí.

Ocupación del dato de sistema al leer:

Una vez llamada la función de protección del software se puede evaluar (leer) el mensaje para determinar si la petición tuvo éxito.

Dirección: EASBH

Tabla 8-16 Ocupación del BS 139 (protección del software) al leer

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Contador binario

O 1 = desbordamiento del contador de intentos

Page 397: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocupación y organización de la memoria

Mensajes válidos

Cuándo activar Se recomienda activar la protección del software inmediatamente después del la protección del borrado total mediante el PG. Desde el programa de usuario, se puede activar por software temprano en el OB 20.

Visualización

OOOOH

4xOlH

4xO2H

4xO4H

4x08H

4xlOH

Reacciones al Si se ha activado la protección del software, el sistema reacciona a las violarse la violaciones por peticiones del PG. En la tabla siguiente se muestran las protección del reacciones a las diversas peticiones del PG. software

Explicación

Sin error

Se ha desbordado el contador de los intentos de borrado. Para poner a "O" el contador es preciso efectuar un NUEVO ARRANQUE.

Contraseña no admisible (0000H ó 3FFFH)

Estando activada la protección del software se intentó ajustar una nueva contraseña (x = número de intentos de borrado).

Se intentó borrar la contraseña existente (desactivar la protección del software) con una contraseña errónea. El contador de los intentos de borrado se ha incrementado y el estado del contador "x" se indica en el mensaje (número binario en los bits 8 a 10).

Se intentó borrar una contraseña no existente.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

PG-Funktion

Borrar módulo

Leer módulo

Sobreescribir módulo (el módulo no existe todavía)

Sobreescribir módulo (el módulo ya existe)

Emisión en el PG

Mensaje "Tipo y número de módulo no admisible"

Módulo comodín ("dummy"): FBIFX:

NQ de FB NAME :DUMMY

:BE

DBDX: DWO 6500 OPIPBISB:

:BE

El módulo se introduce.

Mensaje "Módulo existente"; una vez pulsada la tecla de aceptación, aparece el mensaje "Tipo y número de módulo erróneo"

Page 398: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Ejemplos de escritura y lectura del BS 139

(Es recomendable activar la protección del software desde el programa en uno de los OBs de arranque: OB 20, OB 21, OB 22)

:L KH COAF KH = Configuración binaria "Ajustar contraseña" (Contraseña = OOAFH

:T BS139

Mediante la siguiente secuencia de operaciones de STEP 5 en el OB 1 se puede reaccionar a un error registrado al ajustar la contraseña, evaluando a tal efecto el mensaje que se emite entonces.

Tenga en cuenta que el mensaje sólo se puede evaluar después de determinadas acciones del programa de sistema.

:L BS139 :L K B O

Llamar al módulo de función para procesar errores NAME : PW-FEHLER

Estado: la CPU se encuentra en estado operativo RUN o STOP.

Para borrar y modificar la contraseña:

lQVisualice el contenido de la dirección EA8BH.

20 Borre la contraseña antigua sobreescribiendo el contenido con el número hexadecimal 80AFH ("OOAFH" = contraseña antigua).

30 Permita que transcurra el tiempo de ciclo del OB 1 como minimo.

40 Visualice nuevamente el contenido de la dirección EA8BH.

50 Introduzca la nueva contraseña "1234HW, sobreescribiendo el contenido con el número hexadecimal D234H.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 399: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

Palabra indicadora "escritura y lectura de módulos"

Dirección: EASCH

El dato de sistema BS 140 indica si se han sobreescrito, cargado o borrado módulos desde que se borró por útlima vez el dato de sistema BS 140. Por cada módulo se combinan con una función OR los bits de modificación y tipo de módulo. Antes de comenzar una nueva fase de supervisión hay que borrar el dato de sitema BS 140. El BS 140 también se borra al efectuar el BORRADO TOTAL.

Tabla 8-17 Ocupación del BS 140 (identificaciones de lectura y escritura)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 400: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Ocu~ación v oraanización de la memoria

"Carga alternativa de módulos de datos en la DB-RAM"

Dirección: EA90H

En la CPU 928B se cargan todos los módulos del aparato de programación de forma estándar primero en el cartucho de memoria de usuario. Sólo cuando allí ya no quede más espacio libre se depositan módulos de datos (DB, DX) en la DB-RAM y solamente éstos.

Con el bit nW del dato de sistema BS 144 se puede alterar el orden de carga de los módulos de datos:

Bit O = O: Ajuste "comportamiento estándar": Los módulos de datos se cargan primero en el cartucho de memoria de usuario. Sólo cuando en ésta ya no quede más espacio libre éstos serán cargados en la DB-RAM.

Bit O = 1: Los módulos de datos se cargan primero en la DB-RAM. Sólo cuando en ésta ya no quede más espacio libre, éstos serán cargados en la memoria de usuario.

Los restantes bits del BS 144 no están ocupados.

Nota Los módulos de código se cargan sólo en la memoria de usuario, independientemente del ajuste del BS 144.

El ajuste del BS 144 no influye en operaciones y OBs de funciones especiales para crear módulos y cargarlos en otro lugar. Dicho ajuste tampoco afecta el copiado de módulos de la Memory Card.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 401: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Resumen breve El presente capítulo explica cómo acceder a través de direcciones absolutas a los datos que se encuentran en determinadas zonas de la memoria, utilizando operaciones y registros especiales del programa STEP 5.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

9.1

9.2

9.2.1

9.2.2

9.3

9.3.1

9.4

9.4.1

9.4.2

9.4.3

9.4.4

Tema

Introducción

Accesos a la memoria a través de la dirección de AKKU 1

LIRITIR: Cargaltransferencia indirecta de registros de 16 bits

Ejemplos de aplicación de registros

Transferir bloques de memoria

Ejemplo de transferencia de bloques de memoria

Operaciones con el registro base de direcciones (registro BR)

Operaciones de transferencia entre registros

Accesos a la memoria local

Accesos a la memoria global

Accesos a la memoria de páginas

Página

9-2

9-6

9-7

9-14

9-16

9-19

9-24

9-25

9-27

9-28

9-31

Page 402: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.1 Introducción

Resumen El lenguaje de programación STEP 5 contiene operaciones que permiten acceder a toda la zona de direcciones. Estas operaciones forman parte de las "operaciones de sistema".

Precaución En caso de utilizar inadecuadamente estas operaciones, pueden ser sobreescritos los módulos STEP 5 y los datos de sistema. Esto puede producir estados operativos inoportunos. Por este motivo, las operaciones que operan con direcciones absolutas sólo deben ser utilizadas por usuarios que tengan muy buenos conocimientos del sistema.

Memoria local La memoria local es la zona de memoria que existe en todas las CPUs (memoria de usuario, DB-RAM, zonas BA, BB, BS y BT, contadores, temporizadores, marcas, imagen de proceso).

Memoria global Sólo existe una memoria global para todas las CPUs en modo multiprocesador y se direcciona a través del bus S5.

Organización de Las zonas de memoria están organizadas byte por byte o palabra por palabra. la memoria

Organización byte por byte: cada dirección direcciona un byte.

Organización palabra por palabra: cada dirección direcciona una palabra de 16 bits (= 2 bytes).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 403: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

OOOOH

EDFFH EEOOH

EFFFH

interna, local, múlt iple (correspondiendo a l número de CPUs enchufadas) externa, global, a través

del bus S5, única

Registro de direcciones de páginas (registro de selección)

Fig. 9-1 Memoria global y local

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 404: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Accesos a la Las siguientes operaciones permiten acceder a zonas de memoria locales y memoria globales a través de direcciones absolutas (véase también fig. 9-2).

Accesos a la Es posible acceder tanto a la zona local como a la global: zona local y global a la zona local (direcciones OOOOH a EFFFH) y a la zona global organizada

byte por byte (direcciones FOOOH a F3FFH, FCOOH a FFFFH) se accede con:

LIR, TIR, TNB, TNW,

a la parte de la zona local organizada palabra por palabra (direcciones OOOOH a E3FFH y E800H a EDFFH) se accede con:

LRW, TRW, LRD, TRD.

Accesos Es posible acceder a las siguientes partes de la zona global: solamente a la zona global a la parte de la zona global organizada byte por byte (direcciones OOOOH a

EFFFH) se accede con:

LB GB, LB GW, LB GD, TI3 GB, TB GW, TB GD, TSG,

a la parte de la zona global organizada palabra por palabra (direcciones OOOOH a EFFFH) se accede con:

LW GW, LW GD, TW GW, TW GD, TSG .

Accesos a la Es posible acceder a las siguientes partes de la zona de páginas: zona de páginas

a la parte de la zona global organizada byte por byte (direcciones F400H a FBFFH, = zona de páginas):

LB CB, LB CW, LB CD, TB CB, TB CW, TB CD, TSC,

a la parte de la zona global organizada palabra por palabra (direcciones F400H a FBFFH, = zona de páginas):

LW CW, LW CD, TW CW, TW CD, TSC

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 405: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

0 Acceso no posible 0 Acceso posible

a) LIR, TIR, TNB, TNW

c) LB GB, LB GW, LB GD TB GB, TB GW, TB GD, (TSG)

u

b) LRW, TRW, LRD, TRD

d) LW GW, LW GD TW GW, TW GD, (TSG)

e) LB CB, LB CW, LB CD TB CB, TB CW, TB CD, (TSC)

f) LW CW, LW CD, TW CW, TW CD, (TSC)

Fig. 9-2 Accesos a zonas de memoria locales o globales a través de direcciones absolutas (véase también fig. 9-1)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 406: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.2 Accesos a la memoria a través de la dirección de AKKU 1

Aplicación Los registros son recursos de la CPU que sirven para procesar el programa STEP 5. Cada registro tiene 16 bits de ancho. Las operaciones LIR (carga indirecta del registro) y TIR (transferencia indirecta del registro) permiten acceder al contenido de los registros.

Operaciones

Tabla 9-1 Operaciones para accesos indirectos a la memoria mediante registros

La palabra de memoria se encuentra en la zona local (direcciones OOOOH a EFFFH) o bien en la parte de la zona global organizada byte por byte (direcciones FOOOH a F3FFH, FCOOH a FFFFH).

Operación

LIR

TIR

En las páginas siguientes se explica qué registros se pueden utilizar en las operaciones.

También encontrará algunos ejemplos que muestran cómo aplicar las operaciones.

Operando

NQ de registro O a 15

NQ de registro O a 15

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Función

Cargar el registro indicado con el contenido de una palabra de memoria direccionada por AKKU 1

Cargar el contenido del registro indicado en la palabra de memoria direccionada por AKKU 1-L

Page 407: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.2.1 LIR/TIR: Cargaltransferencia indirecta de registros de 16 bits

La tabla siguiente indica los números de los registros que pueden utilizarse en la CPU 928B para las operaciones LIR y TIR así como su ocupación.

Tabla 9-2 Registro de 16 bits para LIRiTIR

l) Cuando el contenido de la célula de memoria direccionada deba ser cargado en el registro ' l ' , la dirección registrada en el AKKU-1-L será sobreescrita.

La CPU 928B no dispone de los registros 4 ,5 ,7 , 13 y 14. Por consiguiente, las operaciones LIR/TIR que tengan estos números de registro serán tratadas como una operación cero (NOP).

Acceso LIR/TIR Las instrucciones LIR y TIR no deben ser utilizadas para acceder a la zona de a la zona páginas (E400H a FBFFH) en el autómata programable multiprocesador de páginas S5-135U. Utilizar las instrucciones expuestas en el capítulo 9.4.4 "Acceso a la

memoria de páginas", o bien las funciones especiales indicadas en el capítulo 6.21 "OB 216 a OB 218: Accesos a páginas".

Acceso LIR/TIR Si se accede con LIR/TIR a zonas de memoria de solamente 8 bits de ancho a zonas de (direcciones de memoria de E400H a E7FFH así como z EEOOH), hay que tener memoria de 8 bits en cuenta que

con TIR sólo se transfiere el byte bajo del registro (el byte alto se pierde)

con LIR, se sobreescribe el byte alto del registro con FFH.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 408: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Las figuras 9-3 y 9-4 muestran la diferencia que radica entre los accesos LIRITIR a las zonas de memoria organizadas palabra por palabra y byte por byte:

1 TIR n

15 o Célu la de memor ia d i recc ionada

AKKU 1

Fig. 9-3 Acceso LIR/TIR a zonas de memoria de 16 bits (organizadas palabra por palabra)

\ \-

1 LIR n

15 o Registro n

LIR n

15 o Célu la de memor ia direccionadaC

AKKU 1

o Célu la de m direccionadaC memor ia ----..- Regist ro n AKKU 1

15 o Regist ro n .

1 TIR n

Fig. 9-4 Acceso LIR/TIR a zonas de memoria de 8 bits (organizadas byte por byte)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 409: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Registros O a 3 y Durante el procesamiento del programa, la CPU utiliza los acumuladores como 9 a 12: AKKU 1, memoria intermedia. Con las instrucciones LIR y TIR se puede transferir el 2 , 3 ~ 4 contenido de los acumuladores a las células de memoria de direccionamiento

absoluto o cargar el contenido de las células de memoria de direccionamiento absoluto en los AKKUs. La dirección absoluta de la célula de memoria se encuentra en el AKKU 1-L.

Ejemplos

palabra de marcas MW 100.

:L KH A000 Cargar la dir. A000 de la célula de memoria en el AKKU 1 Cargar el contenido de la célula de memoria direccio- nada por el AKKU 1 en el registro 1 = AKKU-1-L

:T MW 100 Depositar la dirección A000 en la palabra de marcas MW 100

memoria de dirección A000.

:L m 2 0 0 Cargar la palabra de marcas MW 200 en el AKKU 1 :L KH A000 Cargar la dirección A000, a la que se debe transferir,

en el AKKU 1 (palabra de marcas MW 200 a AKKU 2) Transferir el contenido del registro 3 = AKKU-2-L a la célula direccionada por el AKKU 1

Registro 6: DBA Cuando se abre un módulo de datos con las instrucciones A DB y AX DX, el (dirección inicial registro 6 se carga con la dirección de la DW O del módulo de datos abierto. Esta del módulo de dirección se encuentra en la lista de direcciones de módulos del DB O . datos) El registro DBA se pone a 'O' antes de cada llamada al OB 1 o FB O.

El registro DBA permanece inalterado si

el procesamiento del programa continúa en otro módulo debido a una instrucción de salto (SPNSPB)

cuando se anida otro nivel de procesamiento del programa.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 410: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Este se modifica cuando

se abre otro módulo de datos

se retrocede a un módulo de orden superior después de haber abierto un nuevo módulo de datos en el módulo llamado (véase también capítulo 2.4.2).

Nota En la pila USTACK se encuentra indicada bajo DB-ADR la dirección registrada en el registro DBA.

Los accesos a las palabras de datos se efectúan por lo general con las operaciones STEP 5 L/T DW, L/T DR, L/T DL, L/T DD, U/O/UN/ON/=/S/R Dx.y. Sin embargo estas operaciones sólo se pueden utilizar hasta la palabra de datos DW 255. Manipulando adecuadamente el registro DBA se puede incluso acceder a las palabras de datos > 255. Esto también se puede realizar con el módulo de organización de funciones especiales OB 180 (véase capítulo 6.15)

Ejemplos

Direcciones DX 17

151 6H

151 7H 5 palabras

-

151 8H Cabeza de módulo -

151 9H

151AH

DBA- 151BH KH = 0000 DW O

151 CH KH = 0001 DW 1

Fig. 9-5 Utilización del registro DBA

Cuando se llama al DX 17, la dirección de la palabra de memoria, en la que se encuentra la DW O se deposita en el registro DBA; en el ejemplo: DBA = 151BH.

Nota: En la pila USTACK se encuentra indicada bajo 'DB-ADR' la dirección registrada en el DBA.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 411: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

del módulo de datos DB 100.

NOMB. : LIR/TIR6

:L BS 34 De la dirección inicial de la lista de direcciones + 100 :ADD BF +lo0 resulta el registro de la lista de direcc. del DB 100

Transferir dirección inicial del DB 100 (DW O) a AKKU 1 :ADD KF +200 Depositar dirección de la DW 200 en el DB 100, :T BS 62 en la palabra de datos de sistema BS 62 :L BS 20 Cargar dirección base datos de sistema :ADD KF +62 Cargar dirección de la BS 62 en AKKU 1

Cargar registro DBA con el contenido de la dirección de la BS 62, es decir, el principio del módulo de datos se pone en la DW 200

:L DW 100 DW (200 + 100) = cargar DW 300 :T MW 100 Depositar DW 300 en la palabra de marcas MW 100

NOMB. :OB18O

:A DB 100 Cargar los registros DBA y DBL con los valores del :L KF 200 DB 100 y aumentar con el OB 180 :SPA OB 180 el registro DBA en 200 y disminuir el registro DBL

en 200 :SPB =FEHL Salida de error, si el DB 100 contiene

200 o menos palabras de datos :L DW 100 Cargar DW 300 y :T MW 100 depositar en MW 100

Programa parcial para tratamiento de errores

Nota Si se cambia el registro DBA como muestra el ejemplo 2 no se modifica el registro DBL. ¡De este modo ya no estará garantizada la supervisión de errores de transferencia! Utilizando el OB de funciones especiales 180 "acceso variable a módulos de datos" también se puede desplazar el registro DBA una cantidad determinada de palabras de datos. Puesto que el OB 180 modifica a la vez el registro DBL se siguen supervisando posibles errores de transferencia.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 412: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Registro 8: DBL Además del registro DBA, cada vez que se llama a un módulo de datos se carga (longitud del el registro DBL. Este registro contiene la longitud (en palabras) del módulo de módulo de datos) datos llamado, sin contar la cabeza del módulo. Cada vez que se llama al OB 1 o

al FB O el registro DBL se pone a 'O'.

El registro DBL permanece inalterado

cuando el procesamiento del programa continúa en otro módulo debido a una instrucción de salto (SPNSPB)

cuando se anida (intercala) otro nivel de procesamiento.

El registro DBL se modifica

cuando se abre otro módulo de datos

cuando se retrocede a un módulo de orden superior después de haber abierto un nuevo módulo de datos en el módulo llamado (véase también capítulo 2.4.2).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 413: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Ejemplo

D X 1 7 Di recc iones

1 5 1 6 H

151 7 H

1 5 1 8 H

1 5 1 9 H

151AH

DBA - 1 5 1 B H

1 5 1 C H

151 D H

151EH

151 F H

1 5 2 0 H

1 5 2 1 H

1 5 2 2 H

Fig. 9-6 Utilización del registro DBL

" DBL-REO" .

Cuando se llama al DX 17, el número de palabras de datos existentes se deposita en el registro DBL; en el ejemplo: DBL = 8 (DW O a DW 7)

Nota:El número depositado en el registro DBL se indica en USTACK bajo

5 pa lab ras

C a b e z a de módu lo

aaaa

bbbb

C C C C

dddd

eeee

f f f f

9999

h h h h

Registro 15: SAZ Durante el procesamiento del programa STEP 5, el registro 15 contiene en la (contador de memoria de programa la dirección absoluta de la siguiente operación a procesar. direcciones STEP)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 414: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.2.2 Ejemplos de aplicación de registros

El programa abajo expuesto escribe la constante KH = A5A5 en todas las palabras de datos del DB 50. Modificando las instrucciones STEP 5 escritas en negrita también se puede utilizar para escribir valores arbitrarios en otros módulos de datos (DB o DX). Si se detectan módulos de datos que no existen o módulos de datos que contienen cero palabras de datos, se produce un salto a la marca NIVO. La dirección inicial (DBA) y la longitud (DBL) del módulo de datos se averigua mediante la función especial OB 181 "Comprobar módulo de datos (DB/DX)".

El programa utiliza los cuatro acumuladores. La figura siguiente muestra la ocupación de los acumuladores durante la ejecución del programa hasta la marca SCHL. Dentro del bucle no se modifica la ocupación de los acumuladores. El AKKU 1 contiene primero la dirección de la 6 1 t h palabra de datos (DBA + DBL - 1) y disminuye en 1 cada vez que se ejecuta el bucle. El AKKU 2 contiene la dirección de la primera palabra de datos (DBA). El bucle se abandona cuando el contenido del AKKU 1 sea menor que el del AKKU 2.

Para escribir en las palabras de datos se utiliza la instrucción TIR 10, la cual almacena el contenido del AKKU-3-L (la constante) en la dirección depositada en el AKKU-1-L.

:L KHA5A5 Constante que debe escribirse en todas las palabras de datos

:L KY 1,50 Tipo y número del módulo de datos

:SPA OB 181 OB de funciones especiales "Comprobar módulo de datos" :SPB =NIVO Aborto, si DB 50 no existe

AKKU 1 := dirección de la tíltima palabra de datos + 1 AKKU 2 := dirección de la primera palabra de datos AKKU 3 := Constante Aborto, si DB 50 contiene cero

:SPB =NIVO palabras de datos

SCHL :ADD BF-1 Escribir la constante registrada en el AKKU-3-L en todas las palabras de datos, comenzando con la tíltima palabra de datos

Consulta si se ha alcanzado la la palabra de datos

:SPB =SCHL Retorno al bucle si la la palabra de datos atín no ha sido alcanzada

Continuación del programa...

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 415: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

después de rellenar todas las palabras de datos

si el DB 50 no existe o contiene cero palabras de datos.

Nota: E1 programa parcial a partir de la marca "SCHL" puede ser utilizado para escribir una constante en zonas de memoria arbitrarias (por ej. marcas, temporizadores, contadores).

Orden de ejecución

SPA OB181 SPB =NIVO

AKKU 2 0 4- AKKU 1 @ b/ DBA

:L K B O Constante a escribir en todos los bytes de marcas

:L BS 14 Dirección base de la zona de marcas (=dirección del primer byte de marcas MB O)

:L KF+256 + longitud de la zona de marcas = (dirección del tíltimo byte de marcas MB 255) + 1

SCHL :ADD BF -1 Escribir la constante registrada en AKKU-3-LL en los 256 bytes de marcas, comenzando por el byte de marcas MB 255

:SPB =SCHL

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 416: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.3 Transferir bloques de memoria

Aplicación Las operaciones de sistema TNB y TNW permiten transferir bloques de memoria (máx. 255 byte con TNB, máx. 255 palabras con TNW). Con estas operaciones puede accederse tanto a la zona de meoria local como a la parte de memoria global organizada byte por byte (direcciones FOOOH a F3FFH, FCOOH a FFFFH).

Operaciones

Tabla 9-3 Operaciones para la transferencia de bloques

Parámetros

Operación

TNB

TNW

Longitud de bloque

Operando = cantidad de bytes (TNB) o cantidad de palabras (TNW)

Dirección final de la zona fuente

AKKU-2-L = dirección final de la zona fuente

Operando

O a 255

O a 255

Dirección final de la zona destino

AKKU-1-L = dirección final de la zona destino

Función

Transferencia en bloque O a 255 byte

Transferencia en bloque O a 255 palabras

La zona fuente y la zona destino deben encontrarse completas en una de las zonas indicadas en la tabla 9-4 y no deben solaparse.

Zonas de memoria admisibles

Tabla 9-4 Zonas de memoria admisibles para TNB y TNW

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Direcciones

OOOOH a 1FEEH OOOOH a 3FEEH OOOOH a 7FEEH

8000H a DD7EH DD80H a E3FEH E400H a E7EEH E800H a EDFFH

EEOOH a EFEEH FOOOH a FFEEH

Zona de memoria

Memoria de usuario: Cartucho memoria usuario (16 bit) 8 Kpalabras Cartucho memoria usuario (16 bit) 16 Kpalabras Cartucho memoria usuario (16 bit) 32 Kpalabras

RAM de sistema: DB-RAM (16 bit) DB O (16 bit) Marcas S (8 bit) Datos de sistema (16 bit: BA, BB, BS, BT, contadores y temporizadores) RAM (8 bit: marcas, imagen de proceso) Periferia (8 bit)/bus S5

Page 417: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Ejecución La transferencia en bloques se efectúa de forma decreciente, es decir, comienza con la dirección más alta de la zona fuente (= dirección final) y finaliza con la más baja.

Aplicación en la En caso de utilizar un autómata programable multiprocesador S5-135U, las zona de páginas operaciones TNB y TNW no son apropiadas para acceder a la zona de páginas

(direcciones F400H - FBFFH). Utilizar en su lugar las operaciones indicadas en el capítulo 9.4.4 "Acceso a la memoria de páginas", o bien las funciones especiales descritas en el capítulo 6.24 "OB 216 a OB 218: Accesos a páginas".

Particularidades

Pseudolímites de Las operaciones TNB y TNW son operaciones STEP 5 de larga duración que instrucciones contienen "pseudolímites de instrucciones": es decir, la transferencia de datos se con TNB y TNW efectúa, dependiendo de cuáles sean la zona fuente y destino, en bloques

parciales de distinto tamaño. Si durante la transferencia de un bloque parcial tiene lugar un error (por ej. error de ciclo) o una interrupción (por ej. por una alarma temporizada o de proceso), entonces se anida el módulo de organización correspondiente al final de este bloque parcial, en el pseudolímite de instrucción. Para llamar al OB de alarma de proceso o de una alarma temporizada en un pseudolímite de instrucción es imprescindible que esté ajustado en el DX O "interrupción en límites de instrucciones".

Si durante la transferencia tienen lugar uno o varios retardos en acuse de recibo y10 un error de direccionamiento, entonces se transfieren primero todos los bloques parciales y antes de ejecutar la siguiente operación se llama una vez al módulo de organización de error previsto para este caso (en caso de QVZ y ADF a la vez, se llama sólo al OB de QVZ). Como dirección de error siempre se indicará la primera dirección, en la que se haya producido un error. Puesto que TNB y TNW operan de forma decreciente, en caso de direcciones de error múltiples, será la dirección de error más alta de la zona en la que ha ocurrido el primer error.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 418: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

TNB y TNW entre zonas de memoria de 8 y 16 bits

Direcciones Direcciones crecientes crecientes

Dirección -w fuenteldest ino I

- Dirección fuenteldest ino

Transferencia de los bytes 1 a 5: :L <dirección fuente> :L <dirección dest ino> :TNB 5

Transferencia de los bytes 1 a 4: :L <dirección fuente> :L <dirección dest ino> :TNW 2

Fig. 9-8 Transferencia de bloques de memoria

Instrucciones de programación CPU 928B-3UB21 C79000-G8578-C870-01

Page 419: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.3.1 Ejemplo de transferencia de bloques de memoria

Hay que copiar un bloque de máx. 4095 palabras de un módulo de datos DB o DX a otro módulo de datos DB o DX. El principio del bloque se determina dentro del módulo de datos fuente y destino mediante un valor offset entre O y 4095.

El programa se deposita en el módulo FB 10 .

STAT -Status

Fig. 9-9 Módulo de funciones para el tráfico de bloques de datos

Antes de copiar se comprueban los parámetros de entrada. En caso de error, en el parámetro de salida STAT se activa el bit nQ 7 y los bits nQ O a 2 indican el tipo de error:

1=DB fuente=DB destino 2.offset o longitud > 4095 3=DB fuente no existe o no es vál ido 4=DB fuente demasiado cor to 5=DB destino no existe o no es vál ido 6=DB destino en memoria de só lo lectura (cartucho EPROM) 7=DB destino demaisado corto

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 420: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

b) Estructura d e l programa:

El FB 10 se divide en cinco partes cuyas tareas son las siguientes:

- Parámetros de entrada:

a) Comprobar que el módulo de datos fuente y destino no sean del mismo tipo y no lleven el mismo número.

b) Comprobar que los parámetros de entrada "offset fuente", "offset destino" y "longitud de bloque" sean menores que 4096 .

- Módulo de datos fuente:

a) Comprobar que el módulo de datos fuente exista y sea suficientemente

b) Calcular la dirección absoluta de la tíltima palabra de datos en el bloque

- Módulo de datos destino:

a) Comprobar que el módulo de datos destino exista, que su longitud sea suficiente y si se encuentra en la memoria de lectura-escritura (cartucho de memoria RAM o DB-RAM) .

b) Calcular la dirección absoluta de la tíltima palabra de datos en el bloque de destino.

- Transferencia:

Ejecutar la copia con la instrucción TNW. Los bloques que superen 255 palabras se transfieren en bloques parciales de 128 palabras cada uno (instrucción TNW 128). Los restos se transfieren mediante una instrucción TNW adicional.

Alimentar el parámetro de salida "Status" de acuerdo con el resultado de las comprobaciones efectuadas.

c ) Células de memoria ocupadas:

MW 242 Dirección final del destino de los datos MW 244 Dirección final de la fuente de los datos MW 246 Longitud de bloque

MW 248 Offset en el módulo de datos destino MW 250 Tipo y número del módulo de datos destino

MW 252 Offset en el módulo de datos fuente MW 254 Tipo y número del módulo de datos fuente

BS 60 Contador de bloques parciales

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 421: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

b) Programación del m6dulo de funciones FB 10:

Nota: Para copiar a partir de la palabra de datos DW 0, hay que suprimir las partes de programa impresas en negrita y cursiva. No se indica ningiín valor offset.

SEGMENTO 1 NOMB : : DB-DB-TR TRANSFERENCIA MODULO DE DATOS

- MODULO DE DATOS BE2 :QTNRE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG:

: QOFFE/A/D/B /T /Z: KM/KH/KY/KC/KF/KT/KZ/KG: KF BE2 :ZTNRE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG:

: ZOFFE/A/D/B /T /Z : KM/KH/KY/KC/KF/KT/KZ/KG: KF BE2 :LAENE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: BE2 : STATE/A/D/B/T/Z : A BI/BY/W/D:BY

COMIENZO PARAMETROS DE ENTRADA :LW =QTNR TIPO (DB/DX) Y NUMERO DEL :T m 2 5 4 MODULO DE DATOS FUENTE :LW =ZTNR TIPO (DB/DX) Y NUMERO DEL :T m 2 5 0 MODULO DE DATOS DESTINO

CDB FUENTE = DB DESTINO? :SPB =F001 SALTO EN CASO AFIRMATIVO

:LW = QOFF OFFSET EN EL MODULO : T MW 252 DE DATOS FUENTE :LW = ZOFF OFFSET EN EL MODULO : T M W 248 DE DATOS DESTINO

:LW =LAEN LONGITUD (CANTIDAD DE PALABRAS DE DATOS) DEL :T MW 246 BLOQUE A TRANSFERIR

(LONGITUD DE BLOQUE) O (OFFSET FUENTE/OFFSET DESTINO)

: L KH FOOO LONGITUD >= 4096 ? SALTO EN CASO AFIRMATIVO

:SPP =F002 FIN PARAMETROS DE ENTRADA

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 422: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

COMIENZO DEL MODULO DE DATOS FUENTE :L m 2 5 4 TIPO Y NUMERO DEL MODULO DE DATOS FUENTE :SPA OB 181 COMPROBAR MODULO DE DATOS :SPB =F003 SALTO EN CASO DE TEST DE MODULO NEGATIVO

Al: CANTIDAD DW , A2: DIRECCION A3: DIRECCION

: L MW 252 OFFSET DEL MODULO DE DATOS FUENTE A 3 : CANTIDAD DW, A 4 : D I R E C C I ~ N

:L m 2 4 6 LONGITUD DE BLOQUE OFFSET + LONGITUD DE BLOQUE ¿CANTIDAD DW < OFFSET + LONGITUD DE BLOQUE ?

:SPB =F004 SALTO EN CASO AFIRMATIVO :L K B 1 A2: OFFSET + LONGITUD DE BLOQUE, A3: DIRECCION

OFFSET + LONGITUD DE BLOQUE - 1 OFFSET + LONGITUD DE BLOQUE. - 1 + DIRECCION

:T m 2 4 4 DIRECCION FINAL DE DATOS FUENTE FIN DEL MODULO DE DATOS FUENTE

COMIENZO DEL MODULO DE DATOS DESTINO :L m 2 5 0 TIPO Y NUMERO DEL MODULO DE DATOS DESTINO :SPA OB 181 COMPROBAR MODULO DE DATOS :SPB =F005 SALTO EN CASO DE TEST DE MODULO NEGATIVO :SPM =F006 SALTO EN CASO DE MODULO EN EPROM

Al: CANTIDAD DW, A2: DIRECCION A3: DIRECCION

: L M 2 4 8 OFFSET EN EL MODULO DE DATOS DESTINO A 3 : CANTIDAD DW, A 4 : DIRECCION

:L m 2 4 6 LONGITUD DE BLOQUE OFFSET + LONGITUD DE BLOQUE

¿CANTIDAD DW < OFFSET + LONGITUD DE BLOQUE? :SPB =F007 SALTO EN CASO AFIRMATIVO :L K B 1 A2: OFFSET + LONGITUD DE BLOQUE, A3: DIRECCION

OFFSET + LONGITUD DE BLOQUE - 1 OFFSET + LONGITUD DE BLOQUE - 1 + DIRECCION

:T m 2 4 2 DIRECCION FINAL DE DATOS DESTINO FIN DEL MODULO DE DATOS DESTINO

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 423: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

COMIENZO DE LA TRANFERENCIA :L K B O VALOR DE COMPARACION :L MB 246 LONGITUD DE BLOQUE, BYTE ALTO

¿LONGITUD DE BLOQUE >= 256 PALABRAS? MULTIPLICACION POR 2, CANTIDAD DE

:T BS 60 BLOQUES PARCIALES CON 128 PALABRAS CADA UNO :L MW244 DIRECCION FINAL DE DATOS FUENTE :L MW242 DIRECCION FINAL DE DATOS DESTINO :SPB =REST SALTO SI LONGITUD DE BLOQUE e256 PALABRAS

SCHL :TNW 128 TRANSFERENCIA DE UN BLOQUE PARCIAL :ADD KF -128 REDUCIR LA DIRECCION FINAL DE LA FUENTE

EN EL VALOR DE LA LONGITUD DEL BLOQUE PARCIAL :ADD KF -128 REDUCIR LA DIRECCION FINAL DEL DESTINO

EN EL VALOR DE LA LONGITUD DEL BLOQUE PARCIAL :SPA OB 160 BUCLE CONTADOR :SPB =SCHL SALTO SI NO SE HAN TRANSFERIDO TODOS

LOS BLOQUES PARCIALES REST :B MW 246 LONGITUD DE BLOQUE, BYTE BAJO

TRANSFERIR EL RESTO DE BLOQUE FIN DE TRANSFERENCIA

COMIENZO DEL AVISO :L K B O IDENTIFICACION 00 (HEX.): SIN ERROR

ENDE :T =STAT PARAMETROS DE SALIDA STATUS/ERROR

FOOl :L KB 129 IDENTIFICACION DE ERROR 81 (HEX.): :SPA =ENDE DB FUENTE = DB DESTINO

F002 :L KB 130 IDENTIFICACION DE ERROR 82 (HEX.): :SPA =ENDE OFFSET O LONGITUD >= 4096

F003 :L KB 131 IDENTIFICACION DE ERROR 83 (HEX.): :SPA =ENDE DB FUENTE NO VALIDO

F004 :L KB 132 IDENTIFICACION DE ERROR 84 (HEX.): :SPA =ENDE DB FUENTE DEMASIADO CORTO

F005 :L KB 133 IDENTIFICACION DE ERROR 85 (HEX.): :SPA =ENDE DB DESTINO NO VALIDO

F006 :L KB 134 IDENTIFICACION DE ERROR 86 (HEX.): :SPA =ENDE DB DESTINO EN LA MEMORIA DE SOLO LECTURA

F007 :L KB 135 IDENTIFICACION DE ERROR 87 (HEX.): :SPA =ENDE DB DESTINO DEMASIADO CORTO

FIN DE AVISO

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 424: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.4 Operaciones con el registro base de direcciones (registro BR)

Aplicación El registro base (32 bit) permite el cálculo de direcciones así como operaciones indirectas de carga y transferencia de registros, sin necesidad de utilizar los acumuladores para el direccionamiento. Se accede a la célula de memoria cuya dirección absoluta se calcula sumando el contenido del registro BR y una constante:

Dirección absoluta = contenido del registro BR + constante

Operaciones

Tabla 9-5 Operaciones de cargaltransferencia con el registro BR

1) Los bits 2" a Z3' del registro BR se ponen a 'O'.

Operación

MBR

ABR

MBR O a FFFFF ABR -32767 a 132767

Constante 20 bit

31

o. . . . . . . . .o B R

Operando

Constante (OH a F FFFFH)

Constante (-32 768 a t32 767)

Constante 16 bit (no en coma fija)

Función

Cargar el registro BR con una constante de 20 bit1)

Sumar una constante de 16 bits al contenido del registro BR

Fig. 9-10 Carga del registro BR

Modificación del El registro BR no se modifica si el procesamiento continúa en otro módulo registro BR que pertenezca al mismo nivel de procesamiento a consecuencia de una

instrucción de salto ('SPA FB'/'SPB FB').

El registro BR no se modifica en caso de anidar otro nivel de procesamiento de programa .

El registro BR se pone a 'O' cuando el programa de sistema efectúa una llamada a otro nivel de procesamiento de programa.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 425: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.4.1 Operaciones de transferencia entre registros

Aplicación Las operaciones expuestas a continuación pueden ser utilizadas para intercambiar de forma rápida valores entre los registros AKKU 1, el contador de direcciones STEP (SAZ) y el registro base de direcciones (BR).

Operaciones

Tabla 9-6 Operaciones de registro a registro

l) LOS bits 2'' a Z3' se ponen a '0'.

La figura siguiente muestra cómo se modifican los registros con dichas operaciones.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 426: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

x , , , , , , , , , , , , , , X X

MAS,

14 y O

3 1 1 6 1 5 O

AKKU 1, BR

MBS

SAZ

1 MSA, MSB

AKKU 1 , BR m m m m m m m m m m m m m m O 0

1 AKKU 1

Fig. 9-11 Operaciones de transferencia de registro a registro

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 427: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.4.2 Accesos a la memoria local

Aplicación Con las operaciones siguientes se puede acceder a la memoria local organizada byte por byte a través de una dirección de memoria absoluta. La dirección absoluta es la suma del contenido del registro BR y la constante de 16 bits contenida en la instrucción (-32768 a +32767).

Operaciones

Tabla 9-7 Operaciones para accesos a la memoria local

l) A K K U 2 nuevo = A K K U lantigUo

Operación

LRW

LRD

TRW

TRD

Campo de direcciones admisible

Reacción ante error

Operando

Constante (-32768 a t32767)

Constante (-32768 a t32767)

Constante (-32768 a t32767)

Constante (-32768 a t32767)

La dirección absoluta debe encontrarse

Descripción

Sumar la constante indicada al ')

contenido del registro BR y cargar la palabra así direccionada en el AKKU-1-L

Sumar la constante indicada al ')

contenido del registro BR y cargar la palabra doble así direccionada en el AKKU 1

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-L a la palabra así direccionada

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU 1 a la palabra doble así direccionada

en caso de LRW, TRW: entre OOOOH y E3FFH o E800H y EDFFH,

en caso de LRD, TRD: entre OOOOH y E3FEH o E800H y EDFEH.

Si la dirección calculada de la célula de memoria no se encuentra en el campo de direcciones admisible, entonces la CPU detecta un error en tiempo de ejecución y llama al OB 31, si está cargado. Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que explican más detalladamente el error que se ha producido (véase capítulo 5.7.2).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 428: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.4.3 Accesos a la memoria global

Aplicación Con las siguientes operaciones se puede acceder a la memoria global organizada byte por byte o palabra por palabra a través de una dirección de memoria absoluta. La dirección absoluta es la suma del contenido del registro BR y la constante contenida en la instrucción (-32768 a 32767).

Comprobación y El acceso de cada una de las CPUs a zonas de memorias utilizadas conjuntamente se forzado puede controlar a través de una célula ocupada. A cada zona de memoria utilizada de de una célula forma conjunta se le asigna una célula ocupada que debe ser verificada antes de cada ocupada acceso por todas las CPUs que intervengan. Esta célula contiene bien el valor 'O' o en la zona global la identificación de slot de la CPU que en ese momento está utilizando la zona de

memoria y que debe habilitarla de nuevo escribiendo un 'O' en la célula ocupada. Véanse las explicaciones referentes a las operaciones "activar semáforo1SES" y "habilitar semáforo1SEF" en el capítulo 3.5.5.

La operación TSG se encarga de comprobar y activar una célula ocupada.

Ejecución

Operación

TSG

Resultado

La célula utilizada es el byte bajo de la palabra direccionada por la suma del registro BR + la constante. Si el contenido del byte bajo es 'O', la instrucción TSG registra la identificación del slot (de la BS 29) en la célula ocupada.

Operando

-32768 a t32767

La comprobación (= lectura) y ocupación eventual (= escritura) constituyen una unidad de programa que no puede ser interrumpida.

Descripción

Sumar la constante indicada al contenido del registro BR y comprobar y activar la célula ocupada así direccionada

El resultado de la comprobación se puede evaluar por medio de los indicadores A N Z O y A N Z l :

Nota La operación TSG debe ser utilizada por todas las CPUs que tengan que acceder de forma sincronizada a una zona de memoria global conjunta.

ANZ1

O

1

O

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

ANZO

O

O

1

Significado

El contenido de la célula es 'O'; la CPU registra su propia identificación de slot.

La identificación del slot ya ha sido registrada en la célula ocupada.

La célula ocupada contiene otra identificación de slot.

Page 429: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Campo de La dirección absoluta debe encontrarse entre OOOOH y EFFFH. direcciones abmisible

Reacción ante Si la dirección calculada de la célula de memoria no se encuentra dentro del error campo de direcciones admisible, la CPU detecta un error en tiempo de ejecución

y llama al OB 31, si está cargado. Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen más detalladamente el error que se ha producido (véase capítulo 5.7.2).

Operaciones de carga y transferencia para la memoria global organizada Tabla 9-8 Operaciones para accesos a la memoria global organizada byte por byte b-yte por b-yte

l) AKKU-1-LH y AKKU-1-H se ponen a '0'. ') AKKU-1-H se pone a '0'. 3, AKKU 2 nuevo : = AKKU lantiguo

Campo de direcciones admisible

La dirección absoluta debe encontrarse

en caso de LB GB, TB GB: entre OOOOH y EFFFH,

en caso de LB GW, TI3 GW: entre OOOOH y EFFEH,

en caso de LB GD, TI3 GD: entre OOOOH y EFFCH.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 430: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Reacción ante Si la dirección calculada de la célula de memoria no se encuentra dentro del error campo de direcciones admisible, la CPU detecta un error en tiempo de ejecución

y llama al OB 31, si está cargado. Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen más detalladamente el error que se ha producido (véase capítulo 5.7.2).

Operaciones de carga y transferencia para la memoria global Tabla 9-9 Operaciones para accesos a la memoria global organizada palabra por organizada palabra palabra por palabra

AKKU-1-H se pone a '0'. ') AKKU 2 nuevo : = AKKU lmtiguo

Operación

LW GW

LW GD

TW GW

TW GD

Campo de direcciones admisible

La dirección absoluta debe encontrarse

Operando

-32768 a t32767

-32768 a t32767

-32768 a t32767

-32768 a t32767

en caso de LW GW, TW GW: entre OOOOH y EFFFH,

Descripción

Sumar la constante indicada al contenido del registro BR y cargar la alabra así direccionada en el AKKU- 1-L . 1) 8 Sumar la constante indicada al contenido del registro BR y cargar la palabra doble así direccionada en el AKKU 1. ')

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-L a la palabra así direccionada.

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU 1 a la palabra doble así direccionada.

en caso de LW GD, TW GD: entre OOOOH y EFFEH.

Reacción ante Si la dirección calculada de la célula de memoria no se encuentra dentro del error campo de direcciones admisible, la CPU detecta un error en tiempo de ejecución

y llama al OB 31, si está cargado. Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen más detalladamente el error que se ha producido (véase capítulo 5.7.2).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 431: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

9.4.4 Accesos a la memoria de páginas

Aplicación Con las siguientes operaciones se puede acceder a páginas organizadas byte por byte o palabra por palabra, a través de una dirección de memoria absoluta. La dirección absoluta es la suma del contenido del registro BR y la constante contenida en la instrucción (-32768 a 32767).

Ejecución del La zona global contiene una "ventana" entre las direcciones F400H a FBFFH acceso a páginas para la inserción de una de máx. 256 zonas de memoria (= páginas). Una página

ocupa un campo de direcciones de máx. 2 Kbytes y puede estar organizada byte por byte o palabra por palabra. Antes de cada acceso a una zona de páginas se tiene que seleccionar una de las 256 páginas, registrando su número en el registro de selección (registro de direcciones de páginas). El proceso de "escritura del registro de selección y consecutivo acceso a la zona de páginas" no puede ser interrumpido.

Antes de cada acceso (cargaltransferencia) a la zona de páginas debe abrirse una de las 256 páginas. Para ello hay que transferir al AKKU-1-L el número de la página que va a ser abierta; éste número se registra en el registro de páginas interno de la CPU por medio de la instrucción ACR. Antes de acceder a las páginas, todas las operaciones siguientes de páginas escriben el contenido del registro de páginas en el registro de selección de las tarjetas correspondientes en el bus S5.

Modificación del registro de páginas El registro de páginas permanece inalterado cuando se efectúa una llamada

a otro módulo del mismo nivel de procesamiento.

Si el registro de páginas es modificado en un módulo, su valor permanece i- nalterado si al final del módulo se retrocede al módulo que ha efectuado la llamada.

Tras anidar otro nivel de procesamiento, el programa de sistema carga el registro de páginas con el mismo valor que tenía antes del anidamiento.

El registro de páginas se pone a 'O' cuando el programa de sistema llama a otro nivel de procesamiento.

Apertura de una página

1 Operación 1 Parárnetro 1 Descripción 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

ACR Activar la página cuyo número se encuentra en AKKU-1-L valores admisibles: O a 255

Page 432: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Reacción ante El número de página debe encontrarse entre O y 255. En caso contario, la CPU error detecta un error en tiempo de ejecución y llama al OB 31, si está cargado. Si el

OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen más detalladamente el error que se ha producido (véase capítulo 5.7.2).

Comprobación y El acceso de cada una de las CPUs a zonas de memorias utilizadas conjuntamente se activación de puede controlar a través de una célula ocupada. A cada zona de memoria utilizada de una célula forma conjunta se le asigna una célula ocupada que debe ser verificada antes de cada ocupada en la acceso por todas las CPUs que intervengan. Esta célula contiene bien el valor 'O' o zona de páginas la identificación de slot de la CPU que en ese momento está utilizando la zona de

memoria y que debe habilitarla de nuevo escribiendo un 'O' en la célula ocupada. (Véanse las explicaciones referentes a las operaciones "activar semáforo1SES" y "habilitar semáforo1SEF" en el capítulo 3.5.5.)

La instrucción TSC se encarga de comprobar y activar una célula ocupada en la página abierta.

Ejecución

Operación

TSC

Resultado

La célula utilizada es el byte bajo de la palabra direccionada por la suma del registro BR + la constante. Si el contenido del byte bajo es 'O', la instrucción TSC registra la identificación del slot en la célula.

Operando

-32 768 a t32 767

La comprobación (= lectura) y ocupación eventual (= escritura) forman una unidad de programa que no puede ser interrumpida.

Descripción

Sumar la constante indicada al contenido del registro BR y comprobar y activar la célula ocupada así direccionada en la página abierta.

El resultado de la operación TSC se puede evaluar por medio de los indicadores A N Z O y A N Z l :

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

ANZ1

O

1

O

ANZO

O

O

1

Significado

El contenido de la célula es 'O'; la CPU registra su propia identificación de slot.

La identificación del slot ya ha sido registrada en la célula ocupada.

La célula ocupada contiene otra identificación de slot.

Page 433: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

R e a c c i ó n ante error

Nota La operación TSC debe ser utilizada por todas las CPUs que tengan que acceder de forma sincronizada a una zona de memoria global conjunta (zona de páginas).

La célula ocupada también se debe encontrar en la tarjeta correspondiente y en la página utilizada conjuntamente entre F400H y FBFFH. En caso contrario, la CPU detecta un error en tiempo de ejecución y llama al OB 31, si está cargado. Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen más detalladamente el error que se ha producido (véase capítulo 5.7.2).

Operaciones de carga y transferenc ia para páginas Organizadas~abla 9-10 Operaciones para accesos a ventanas organizadas byte por byte bvte rior bvte

l) AKKU-1-LH y AKKU-1-H se ponen a '0' ') AKKU-1-H se pone a '0'. 3, AKKU 2 nuevo: = AKKU lantiguo

- ~

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación

LB CB

LB CW

LB CD

TB CB

TB CW

TB CD

Operando

-32768 a t32767

-32768 a t32767

-32768 a t32767

-32768 a t32767

-32768 a t32767

-32768 a t32767

Descripción

Sumar la constante indicada al contenido del registro BR y cargar el byte así direccionado en la página abierta en el AKKU-1-LL. ') 3,

Sumar la constante indicada al contenido del registro BR y cargar la palabra así direccionada en la página abierta en el AKKU-1-L. ') 3,

Sumar la constante indicada al contenido del registro BR y cargar la palabra doble así direccionada en la página abierta en el AKKU 1. 3)

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-LL al byte así direccionado en la página abierta.

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-L a la palabra así direccionada en la página abierta.

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1 a la palabra doble así direccionada en la página abierta.

Page 434: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Accesos a la memoria a través de direcciones absolutas

Campo de La dirección absoluta debe encontrarse direcciones admisible en caso de LB CB, TB CB: entre F400H y FBFFH,

en caso de LB CW, TB CW: entre F400H y FBFEH,

en caso de LB CD, TB CD: entre F400H y FBFCH.

Reacción ante Si la dirección del byte calculada no se encuentra en el campo de direcciones error admisible, la CPU detecta un error en tiempo de ejecución y llama al OB 31, si

está cargado. Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen más detalladamente el error que se ha producido (véase capítulo 5.6.2).

Operaciones de carga y transferencia para páginas organizadas Tabla 9-11 Operaciones para accesos a páginas organizadas palabra por palabra palabra por palabra

AKKU-1-H se pone a '0'. ') AKKU 2 nuevo: = AKKU lantiguo

Operación

LW CW

LW CD

TW CW

TW CD

Campo de direcciones admisible

La dirección absoluta debe encontrarse

Operando

-32768 a t32767

-32768 a t32767

-32768 a t32767

-32768 a t32767

en caso de LW CW, TW CW: entre F400H y FBFFH,

Descripción

Sumar la constante indicada al contenido del registro BR y cargar la palabra así direccionada en la página abierta en el AKKU-1-L. ')

Sumar la constante indicada al contenido del registro BR y cargar la palabra doble así direccionada en la página abierta en el AKKU 1. 2)

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-L a la palabra así direccionada en la página abierta.

Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1 a la palabra doble así direccionada en la página abierta.

en caso de LW CD, TW CD: entre F400H y FBFEH.

Reacción ante Si la dirección calculada no se encuentra en el campo de direcciones admisible, error la CPU detecta un error en tiempo de ejecución y llama al OB 31, si está

cargado. Si el OB 31 no está cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen más detalladamente el error que se ha producido (véase capítulo 5.7.2).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 435: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Resumen breve Este capítulo explica en primer lugar cuándo utilizar el modo multiprocesador y cómo intercambiar datos entre las CPUs. También explica qué debe hacer y tener en cuenta el programador a la hora de operar en modo multiprocesador (véase capítulo 10.1). Finalmente se encuentran instrucciones detalladas con ejemplos de aplicación referentes al intercambio de grandes cantidades de datos en modo multiprocesador (comunicación en multiprocesamiento, capítulos 10.2 a 10.9).

lndice del capftulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Página

10-3

10-4

10-8

10-9

10-13

10-15

10-16

10-17

10-20

10-21

10-22

10-24

10-29

10-30

10-30

10-32

10-33

Capítulo

10.1

10.1.1

10.1.2

10.1.3

10.2

10.2.1

10.2.2

10.2.3

10.2.4

10.2.5

10.2.6

10.2.7

10.3

10.4

10.4.1

10.4.2

10.4.3

Tema

Modo multiprocesador

Intercambio de datos a través de marcas de acoplamiento

Asignación de periferia y marcas de acoplamiento en modo rnultiprocesador (DB 1)

¿Cómo se crea el módulo de datos DB l?

Comunicación en multiprocesamiento

¿Cómo se identifica el emisor y el receptor?

¿Por qué se almacenan datos de forma intermedia?

¿Cómo se procesa y administra la memona intermedia?

Aspectos a tener en cuenta durante el arranque del sistema

Lo que debe tenerse en cuenta al llamar a los OBs de comunicación

¿Cómo se parametnzan los OBs de comunicación?

¿Cómo se evalúan los parámetros de salida?

Tiempos de ejecución de los OBs de comunicación

Función INICIALIZAR (OB 200)

Función

Parámetros de llamada

Parámetros de entrada

Page 436: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

10.4.4

10.5

10.5.1

10.5.2

10.5.3

10.5.4

10.6

10.6.1

10.6.2

10.6.3

10.6.4

10.7

10.7.1

10.7.2

10.7.3

10.7.4

10.8

10.8.1

10.8.2

10.8.3

10.8.4

10.9

10.9.1

10.9.2

10.9.3

Tema

Parámetros de salida

Función EMITIR (OB 202)

Función

Parámetros de llamada

Parámetros de entrada

Parámetros de salida

Función TEST DE EMISION (OB 203)

Función

Parámetros de llamada

Parámetros de entrada

Parámetros de salida

Función RECIBIR (OB 204)

Función

Parámetros de llamada

Parámetros de entrada

Parámetros de salida

Función TEST DE RECEPCION (OB 205)

Función

Parámetros de llamada

Parámetros de entrada

Parámetros de salida

Aplicaciones

Llamada a los OBs de funciones especiales por medio de módulos de funciones

Transferencia de módulos de datos

Ampliación de la zona de marcas de acoplamiento

Página

10-36

10-38

10-38

10-38

10-39

10-41

10-43

10-43

10-43

10-43

10-44

10-45

10-45

10-45

10-45

10-46

10-48

10-48

10-48

10-48

10-49

10-50

10-50

10-58

10-64

Page 437: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.1 Modo multiprocesador

Definición del El modo multiprocesador tiene lugar desde el momento en que se enchufa un concepto coordinador al aparato central, independientemente del número de CPUs que

estén funcionando.

¿Cuándo se Cuando el programa de usuario sea demiasado extenso para una sola CPU y debe operar el espacio de memoria sea insuficiente, habrá que repartir el programa entre en modo multi- varias CPUs. procesador?

Cuando una determinada parte de la instalación deba ser procesada de forma especialmente rápida, habrá que separar el correspondiente programa parcial y hacerlo procesar por una CPU "rápida".

Si la instalación se compone de varias partes que pueden ser fácilmente delimitadas y comandadas o reguladas de forma relativamente independiente, se puede procesar la parte 1 por la CPU 1, la parte 2 por la CPU 2 y así sucesivamente.

En lo referente al modo multiprocesador es imprescindible consultar las informaciones correspondientes en el manual del sistema. Estas pueden ser de utilidad a la hora de decidir qué CPUs son más apropiadas para la tarea a resolver.

¿De qué Para el intercambio cíclico de pequeñas cantidades de datos binarios entre las mecanismos de CPUs o entre las CPUs y algunos procesadores de comunicación se dispone de comunicación se las "marcas de acoplamiento". dispone?

Para el intercambio de grandes cantidades de datos (por ej. módulos de datos completos) entre las CPU 948, CPU 9461947, CPU 928B, CPU 928 y CPU 922 se pueden utilizar las "funciones especiales para comunicación en multiprocesamiento" OB 200 y OB 202 a OB 205 @ara más información véase el capítulo 10.2 y siguientes).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 438: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.1.1 Intercambio de datos a través de marcas de acoplamiento

Introducción Para el intercambio cíclico de datos binarios se dispone de las "marcas de acoplamiento". Estas sirven sobre todo para transferir informaciones byte por byte.

Esta transferencia de datos puede ser efectuada entre

CPU(s) y procesador(es) de comunicación

El programa de sistema transfiere las marcas de acoplamiento una vez por ciclo. En caso de transferir datos entre varias CPUs, las marcas se almacenan físicamente y de forma intermedia en el coordinador.

Las marcas de acoplamiento son bytes de marcas que se tranfieren. Estas se definen en el módulo DB 1 de cada CPU como marcas de acoplamiento de entrada o salida. Si, por ejemplo, se ha definido el byte de marcas 50 en la CPU 1 como marca de acoplamiento de salida, entonces se transfiere cíclicamente su estado de señal a través del coordenador a aquella CPU, en la que se haya definido el byte de marcas 50 como marca de acoplamiento de entrada (véase capítulo 10.1.5).

Nota No se emitirán avisos de error en caso de que el byte de entrada exista físicamente pero sólo sea escrito por un lado y no sea leido nunca o viceversa.

Zona de memoria En el coordinador y los procesadores de comunicación, la zona de memoria reservada para las marcas de acoplamiento abarca las direcciones F200H a F2FFH. Cada CPU o procesador de comunicación dispone de 256 bytes de marcas de acoplamiento.

Ajuste de los Para evitar ocupaciones dobles, es necesario asignar prioridades a las tarjetas puentes KOR o CP. Se pueden activar o desactivar bloques de 32 bytes cada uno. El

manual del sistema le informará cómo ajustar los puentes.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 439: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Ejemplo

Coordinador

Salidas de marcas de acopl.: MB 96 a MB 119

Escri tura

Entradas de marcas de acopl.:d MB 120 a MB 125 Lectura

Zonas habi l i tadas mediante puentes:

Bytes de marcas de acoplamiento MB 96 a MB 127

Salidas de marcas de acopl.: MB 120 a MB 125 Escri tura

Entradas de marcas de acopl.:.+ MB 96 a MB 119 Lectura

Fig. 10-1 Transferencia de marcas de acoplamiento en modo multiprocesador

Nota - Como marcas de acoplamiento sólo pueden ser utilizados aquellos bytes

de marcas que han sido habilitados en el coordinador o en el (los) procesadore(s) de comunicación (CP) correspondiente(s).

- Si en una o varias CPUs se ha definido un determinado byte de marcas como marca de acoplamiento de entrada, este byte deberá estar definido en otra CPU o en otro CP como marca de acoplamiento de salida. Y: un byte de marcas no debe definirse como marca de acoplamiento de salida más que en una sola CPU. ¡Sin embargo, este byte se puede definir como marca de acoplamiento de entrada, por ejemplo, en otras tres CPUs!

- ¡Los byte de marcas que no hayan sido definidos en una CPU como marcas de acoplamiento pueden ser utilizados como marcas "normales"!

;No utilizar las marcas S como marcas de acoplamiento!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 440: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Intercambio de Para transferir datos entre una CPU y un procesador de comunicación, se tiene datos entre que habilitar la cantidad necesaria de marcas de acoplamiento en el procesador CPUS y de comunicación (CP). Ahí se dispone también de 256 bytes divisibles en zonas procesadores de de 32 bytes. comunicación

Para transferir datos de una CPU a varios procesadores de comunicación, las zonas habilitadas en los procesadores de comunicación y en el coordinador no deben solaparse, a fin de evitar que las direcciones estén doblemente ocupadas.

Para utilizar simultáneamente marcas de acoplamiento en el coordinador y en uno o varios procesadores de comunicación también habrá que evitar un doble direccionamiento: Las marcas de acoplamiento en el coordinador y en las CPs deben ser divididas en zonas de 32 byte. Los bytes de marcas de acoplamiento utilizados en el procesador de comunicación deben ser enmascarados en el coordinador, retirando los puentes correspondientes (véase manual del sistema).

También en este caso vale: un byte de marcas sólo deberá ser definido como salida de marcas de acoplamiento en una sola CPU. Por el contrario, un byte de marcas puede ser definido como marca de acoplamiento de entrada en varias CPUs.

Ejemplo

Zona habi l i tada: Salidas de marcas de acopl.: CP 1: MB 96 a MB 119 CP 2: MB 201 a MB 205

Zona habi l i tada:

Entradas de marcas de acopl.: 4 CP 1: MB 120 a MB125 CP 2: MB 195 a MB 200

Fig. 10-2 Ejemplo de zonas de marcas de acoplamiento en CPs

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 441: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Transferencia Las marcas de acoplamiento indicadas en el DB 1 se transfieren al final del ciclo de marcas de junto con la actualización de la imagen de proceso. acoplamiento en modo multi- El coordinador envía sucesivamente a cada CPU la señal de acceso libre al bus. procesador En este caso, cada CPU sólo deberá transferir un byte. Debido a este tipo de

transmisión encadenada puede ocurrir que se descompongan informaciones homogéneas de marcas de acoplamiento superiores a 1 byte.

Si se desean transferir informaciones que comprendan más de un byte, parametrizando correspondientemente el módulo de datos DX O se puede conseguir que todas las marcas de acoplamiento del DB 1 sean transferidas en bloque (véase capítulo 7). Una CPU que esté transfiriendo marcas de acoplamiento no puede ser interrumpida por otra CPU mientras dure la transferencia. Puesto que la siguiente CPU tiene que esperar a poder realizar su transferencia, se retrasa en este tiempo el procesamiento cíclico del programa.

Comunicación en multipro- cesamiento

Para transferir módulos de datos o, más preciso, bloques de datos de máx. 64 byte (= 32 palabras de datos) se dispone de las siguientes funciones especiales - integradas en la CPU:

OB 200: INICIALIZAR: Prefijar

OB 202: EMITIR: Emitir un bloque de datos

OB 203: TEST DE EMISION: Comprobar posibilidad de emisión

OB 204: RECIBIR: Recibir un bloque de datos

OB 205: TEST DE RECEPCION: Comprobar posibilidad de recepción

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 442: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.1.2 Asignación de periferia y marcas de acoplamiento en modo multiprocesador (DB 1)

Introducción La zona de periferia del autómata programable sólo existe una vez en el bus S5. La zona de periferia abarca las direcciones FOOOH a FFFFH.

En modo multiprocesador todas las CPUs acceden "simultáneamente" a esta zona de periferia. Para que no se sobreescriban datos es necesario repartir la zona de periferia entre las distintas CPUs. Para ello hay que programar el DB 1 en toda CPU que intervenga en el proceso. En el DB 1 se definen las entradas y salidas (direcciones de byte 0-127) y las entradas y salidas de marcas de acoplamiento con las que deberá operar cada una de las CPUs.

En modo multiprocesador siempre deberá existir un DB 1 (vacío) aunque la CPU no utilice periferia ni marcas de acoplamiento.

Nota ¡Durante la actualización de la imagen de proceso cada una de las CPUs solamente tendrá en cuenta los bytes de entrada y salida definidos en el DB l!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 443: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.1.3 ¿Cómo se crea el módulo de datos DB 1?

Entradal creando/modificando el DB 1 en el aparato de programación a través de la modificación máscara DB 1 del DB 1

o

editando el DB 1 como módulo de datos en el aparato de programación y transfiriéndolo después a la CPU.

Nota ¡Solamente se aceptará el DB 1 introducido o modificado cuando se efectúe un NUEVO ARRANQUE de la CPU!

Crear con la máscara DB 1

1" Seleccionar en el aparato de programación el editor correspondiente a la máscara DB 1 (véase figura 10-3).

2" Introducir los valores deseados para las "entradas digitales" etc. como números decimales.

3" Confirmar los valores entrados pulsando la tecla de aceptación del aparato de programación. A continuación, el aparato de programación creará el DB 1.

4" Transferir el DB 1 a la CPU, o cargarlo en un cartucho de memoria EPROM.

Nota La longitud de bloque de los temporizadores puede indicarse en la máscara DX O y/o DB 1. No obstante, recomendamos indicar este parámetro sólo en la máscara DX O (véase capítulo 7).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 444: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Ejemplo de la máscara DB 1

Asignación periferia:

Entradas digitales: 0 , 1 , 2 , 3 , 7 , 1 0 , , , , , ) ) ) ) ,

! 0 , 2 , 4 , 1 2 , 1 I I I I !

Marcas acopl. entrada: 5 0 , 5 1 , 6 0 , , ) , , , ) ) , ,

Marcas acopl. salida: 7 0 , 7 2 , 1 0 0 , , ) , , , ) , , ,

Long. bloq. temp.: , )

Fig. 10-3 Máscara del aparato de programación para generar el DB 1

Editar el DB 1 1" Escribir la identificación inicial del DB 1 en las palabras de datos O, 1 y 2: como módulo de datos DW O: KH = 4D41 ('M' 'A')

DW 1: KH = 534B ('S' 'K') DW 2: KH=3031 ('O' '1')

2" Introducir a continuación (a partir de la palabra de datos 3) las distintas zonas de operandos. Antes de cada zona de operandos se debe introducir una identificación determinada. Las palabras de identificación posibles son:

Palabra de identificación para entradas digitales KH = DE00 Palabra de identificación para salidas digitales KH = DA00 Palabra de ident. para marcas de acoplamiento entradas KH = CEO0 Palabra de ident. para marcas de acoplamiento salida KH = CAOO

Después de la palabra de identificación se deben introducir los números de las entradas y salidas utilizadas, en formato de coma fija.

3" Concluir las entradas con la identificación final del DB 1 "KH = EEEE" y transferir el DB 1 a la CPU.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 445: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Nota El orden de introducción de los datos es arbitrario. Obsérvese que la imagen de proceso de las entradas y salidas se actualiza en orden inverso al orden en que se han registrado las direcciones en el DB 1 (es decir, en primer lugar se actualiza la última entrada). Es posible introducir un mismo byte repetidas veces, p. ej. para fines de test. Hay que tener presente que la imagen de proceso de los bytes repetidos será actualizada repetidamente.

Ejemplo de edición del DB 1

identificación inicial del DB 1 Palabra de ident. de entradas dig.

KF = +00001; Byte de entrada 1 KF = +00002; Byte de entrada 2 KF = +00003; Byte de entrada 3 KF = +00007; KF = +00010; Byte de entrada 10

Palabra de ident. de salidas dig. KF = +00000; Byte de salida O KF = +00002; Byte de salida 2 KF = +00004; KF = +00012; Byte de salida 12

Palab. ident. de entradas marcas acopl.

KF = +00051; KF = +00060; Byte de marcas 60

Palab. ident. de salidas marcas acopl.

KF = +00072; KF = +00100; Byte de marcas 100 KH = EEEE; Identificación final

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 446: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Aceptación del El DB 1 es aceptado por el programa de sistema en el NUEVO ARRANQUE. DB 1 Este verifica entonces si las entradas y salidas o marcas de acoplamiento

indicadas en DB 1 dan el acuse de recibo de las tarjetas correspondientes. En caso contrario, la CPU pasa a STOP indicando un error de DB 1; el LED STOP parpadea lentamente. En este caso no se procesa el programa de usuario.

Desde el momento en que el DB 1 ha sido programado y aceptado por la CPU mediante un NUEVO ARRANQUE, valen las siguientes reglas:

Los accesos a las tarjetas de E/S a través de la imagen de proceso sólo son posibles para las entradas y salidas definidas en el DB 1 (operaciones L.../T... ... EB, ... EW, ... ED, ... AB, ... AW, ... AD y operaciones de combinación con entradas y salidas). Los accesos a direcciones de la imagen de proceso que no estén registradas en el DB 1 causan un error de direccionamiento.

La carga directa de bytes de periferia, sin pasar por la imagen de proceso, con las operaciones L PY, L PW, L QB, L QW es posible para todas las entradas que acusen recibo, independientemente de que estén registradas en el DB 1.

La transferencia directa (T PY, T PW) a los bytes O a 127 sólo es posible para las salidas indicadas en el DB 1, puesto que la transferencia directa va acompañada siempre de la actualización de la imagen de proceso. Los accesos de escritura a direcciones de la periferia que no estén registradas en el DB 1 causan un error de direccionamiento.

Transferencia sin imagen de proceso: La transferencia directa a direcciones de byte > 127 es posible, independientemente de que estén registradas en el DB 1. Asimismo es posible la transferencia directa para direcciones de byte de la zona de periferia ampliada (T QB, T QW), independiente-mente de que estén registradas en el DB 1.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 447: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2 Comunicación en multiprocesamiento

Definición del Por comunicación en multiprocesamiento se entiende el intercambio de concepto cantidades de datos extensas (módulos de datos) entre CPUs que operan en modo

multiprocesador. Para este tipo de comunicación se requiere un coordinador KOR 923C.

Introducción Para la transferencia de módulos de datos, más exactamente: de bloques de datos de máximo 64 bytes (= 32 palabras de datos), se dispone de las siguientes funciones especiales integradas en la CPU:

OB 200: INICIALIZAR: Prefijar

OB 202: EMITIR: Emitir un bloque de datos

OB 203: TEST DE EMISION: Comprobar posibilidad de emisión

OB 204: RECIBIR: Recibir un bloque de datos

OB 205: TEST DE RECEPCION: Comprobar posibilidad de recepción

En adelante, los OBs de funciones especiales OB 200 y de OB 202 a OB 205 se denominan " OBs de comunicación".

Conocimientos Para la utilización de estas funciones bastan conocimientos básicos del lenguaje necesarios de programación STEP 5 y del funcionamiento de los autómatas programables

SIMATIC S5. Estos conocimientos básicos se obtienen consultando las obras listadas en el capítulo de bibliogra£ía.

Ejecución Para transferir datos, en la CPU emisora se deberá activar la función EMITIR y en la CPU receptora la función RECIBIR. En este caso, las palabras de datos correlativas de un módulo de datos DB o DX que se encuentran en la CPU emisora, se transportan mediante el coordinador KOR 923C a la CPU receptora, donde se almacenan en un módulo de datos DB o DX con el mismo número y en la misma dirección de palabra de datos; es decir, se trata de una copia " 1 : 1 ".

Unidad de transferencia

La cantidad de datos que puede ser transferida por medio de las funciones EMITIR o RECIBIR, se remonta normalmente a 32 palabras. En caso de que la longitud del módulo de datos (sin cabeza) no sea un múltiplo de 32 palabras, en el último bloque se transfieren excepcionalmente menos de 32 palabras.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 448: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

El módulo de datos de la CPU receptora puede ser más largo o más corto que el módulo de datos de emisión. Lo importante es que las palabras de datos transferidas por la función EMlTIR existan en el módulo de datos de recepción; de lo contrario, la función RECIBIR detecta un error.

Ejemplo

Datos de Datos de emisión en la recepción en la CPU emisora: CPU receptora:

ódulo de datos: DB 17

irección de la alabra de datos: DW 32 a DW 63 DW 32 a DW 63

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 449: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2.1 ¿Cómo se identifica el emisor y el receptor?

Cada bloque de datos intercambiado entre las CPUs se identifica por un número de la CPU emisora y un número de la CPU receptora. Las CPUs se numeran de forma que la CPU enchufada en el extremo izquierdo recibe el número 1 y las siguientes hacia la derecha reciben un número ascendente, aumentando de uno en uno.

Ejemplo

K C C C O P P P P P E E E R U U U

C 1 2 3

Fig. 10-4 Identificación emisor/receptor

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 450: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2.2 ¿Por qué se almacenan datos de forma intermedia?

Generalmente se utiliza el modo multiprocesador para repartir las tareas a ejecutar entre distintas CPUs. Puesto que estas tareas no son idénticas y, puesto que además pueden variar las características de las CPUs que intervienen en el proceso, el procesamiento del programa en modo multiprocesador se ejecuta siempre de forma asincrónica. Esto significa que los datos de una CPU emisora no pueden ser recibidos inmediatamente por la CPU receptora.

Por este motivo, los datos a transferir son almacenados de forma intermedia en el coordenador KOR 923C. La fuente o destino de un bloque de datos queda determinado por el número de la "propia" CPU así como por el número del receptor durante la emisión, o viceversa, por el número del emisor durante la recepción.

Ejemplo

K C C C O P P P R U U U

C 1 2 3

La CPU 3 registra sus datos en la memoria intermedia del coordinador.

K C C C O P P P R U U U

C 1 2 3

Cuando la CPU 2 está lista para recibir, copia los datos de la memoria intermedia del coordinador en el DB de destino.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 451: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2.3 ¿Cómo se procesa y administra la memoria intermedia?

Procesamiento La memoria intermedia se basa en el principio FIFO (primera entrada - primera salida, principio de cola de espera). Con ello se determina que la secuencia de recepción sea igual a la secuencia de emisión. Esto vale para cada una de las líneas de comunicación (caracterizadas por la CPU emisora y la CPU receptora) y es completamente independiente de las demás líneas.

Salvaguarda de La memoria intermedia es salvaguardada por una batería tampón; gracias a ello datos se puede efectuar ilimitadamente un "rearranque automático tras un fallo de la

tensión de red". Si tiene lugar un fallo de la tensión de red durante una transferencia, no se pierden los datos del autómata programable.

Administración La capacidad máxima de memoria del coordinador KOR 923C se remonta a 48 bloques con una longitud fija de 32 palabras cada uno. La función INICIALIZAR asigna estos bloques de memoria a cada una de las líneas de comunicación. Cada bloque de memoria almacena exactamente un bloque de datos. Su longitud puede ser de 1 a 32 palabras. Un bloque de datos es registrado por una función EMITIR en un bloque de memoria y es extraído de ello por una función RECIBIR. La cantidad de bloques de memoria asignados a una línea de comunicación está en relación directa con los parámetros "capacidad de emisión" (función EMITIR, TEST DE EMISION) y "capacidad de recepción" (función RECIBIR, TEST DE RECEPCION).

La capacidad de emisión indica cuántos de los bloques de memoria reservados para una línea de comunicación están libres en un determinado momento.

La capacidad de recepción indica cuántos de los bloques de memoria reservados para una línea de comunicación están ocupados en un determinado momento.

La suma de la capacidad de emisión y de recepción siempre es igual a la cantidad de bloques de memoria asignados a una línea de comunicación.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 452: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Ejemplo

Se inicializa la línea "de la CPU 3 a la CPU 2". Se le asignan siete bloques de memoria en la memoria intermedia del coordinador. A continuación, se puede realizar por ejemplo la siguiente transmisión:

Capacidad de emisión (cantidad de bloques de memorla Ilbres)

Fig. 10-5 Ejemplo de la ocupación de la memoria intermedia del KOR

La emisión y recepción de n bloques de datos significa que las correspondientes funciones son llamadas n veces consecutivas.

Para conseguir una representación más simplificada, en este ejemplo se realiza primero la emisión o la recepción. Sin embargo, la emisión (CPU 3) y la recepción (CPU 2) simultánea es posible y conveniente ("procesamiento paralelo en el autómata programable multiprocesador"). En el ejemplo, durante la emisión de los bloques de datos K y L se reciben los bloques de datos H e 1.

El ejemplo aclara la organización de la cola de espera de la memoria intermedia: los bloques de datos transferidos en primer lugar (A,B,C...) también son los primeros en ser recibidos (A,B,C...).

1 Receptor: CPU 2 1

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 453: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Resumen La memoria intermedia del coordinador KOR 923C sirve para equiparar los procesos asíncronos de las CPUs de emisión y recepción y sus diferentes velocidades de procesamiento.

Ya que la capacidad de la memoria intermedia es limitada, el receptor debiera controlar a menudo y regularmente si se han almacenado datos (función TEST DE RECEPCION, capacidad de recepción > O), o debiera intentar retirar los datos almacenados (función RECEPCION). Conviene repetir la función RECEPCION tantas veces como sea necesario hasta alcanzar la capacidad de recepción 0. Este procedimiento hace que los datos emitidos no queden almacenados en la memoria intermedia demasiado tiempo, sino que estén a disposición del receptor. Además así se habilitan bloques de memoria (la capacidad de emisión aumenta) y se evita el bloqueo del emisor (es decir, capacidad de emisión "agotada", o sea = 0).

Nota Mientras la capacidad de recepción O representa el estado ideal (todos los datos emitidos han sido retirados por el receptor), la capacidad de emision O indica errores de planificación de la instalación: - la función EMITIR se llama con demasiada frecuencia - la función RECIBIR no se llama con la frecuencia necesaria

o - a la línea de comunicación no se le han asignado suficientes bloques de

memoria. La capacidad de la memoria intermedia no es suficiente para compensar un desequilibrio transitorio entre la frecuencia de emisión y de recepción.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 454: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2.4 Aspectos a tener en cuenta durante el arranque del sistema

La comunicación en multiprocesamiento exige que en todas las CPUs el paso de STOP a RUN (= ARRANQUE) se ejecute idénticamente, es decir, que se ejecute de forma uniforme en todas las CPUs un NUEVO ARRANQUE, o bien un REARRANQUE.

Con los correspondientes

mando (selector frontal, aparato de programación),

parametrización (DX O)

programación (con el módulo de organización de funciones especiales OB 223 "Stop en caso de arranque no uniforme en modo multiprocesador"

debe quedar garantizado un arranque uniforme por lo menos en todas las CPUs que intervengan en el proceso de comunicación.

NUEVO ARRANQUE

La memoria intermedia debe ser instalada en el módulo de organización OB 20 (NUEVO ARRANQUE) por una sola CPU mediante la función INICIALIZAR (en el KOR 923C). En este caso se destruyen los datos eventualmente existentes. A continuación, es decir, aún en el ARRANQUE, en las CPUs se puede llamar a las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION. Mediante una programación adecuada hay que asegurar que esto ocurra sólo cuando la inicialización de la memoria intermedia en el coordinador haya sido ejecutada correctamente. Una vez terminado el ARRANQUE, es decir, en RUN, el programa de usuario se ejecuta desde el principio, es decir, desde la primera instrucción del OB 1 o del FB O.

REARRANQUE En los módulos de organización OB 21 (REARRANQUE MANUAL) y OB 22 (REARRANQUE AUTOMATICO) no se debe utilizar la función INICIALIZAR. La llamada a las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION puede ocasionar problemas; véanse abajo las observaciones al respecto.

Una vez terminado el REARRANQUE, es decir, en RUN, el programa de usuario no se procesa desde el principio, sino que continúa a partir del punto de interrupción. El punto de interrupción se puede encontrar por ejemplo dentro de la función EMITIR.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 455: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2.5 Lo que debe tenerse en cuenta al llamar a los OBs de comunicación

Proceder del siguiente modo:

1" Llamar a la función INICIALIZAR sólo en el módulo de organización OB 20 de nuevo arranque en una CPU.

2" Llamar a la función EMITIR, TEST DE EMISION, RECIBIR y TEST DE RECEPCION solamente durante el procesamiento cíclico del programa o solamente en el procesamiento controlado por tiempo.

Llamada doble Dependiendo de la parametrización del DX O ("interrupción en límites de instrucciones") y del tipo de procesamiento (REARRANQUE, tratamiento de interrupciones, por ej. OB 26 en caso de error de tiempo de ciclo), es posible que una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION sea interrumpida. Si una interfaz con el usuario anidada en el punto de interrupción contiene asimismo una de las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION, éstas detectan una llamada no admisible (llamada doble) y señalizan el error con el correspondiente indicador (error n"7, capítulo 10.2.8).

Procesamiento Una vez prefijada la memoria intermedia (función INICIALIZAR), en todas las paralelo CPUs se pueden procesar paralela y simultáneamente las funciones EMITIR,

TEST DE EMISION, RECIBIR, TEST DE RECEPCION en cualquier combinación y con cualquier parametrización.

Si se observa una sola línea de comunicación (por ej. de la CPU 2 a la CPU 3), se puede procesar simultáneamente la función EMITIR (CPU 2) y la función RECIBIR (CPU 3): mientras que la CPU 2 sigue emitiendo bloques de datos al coordinador, la CPU 3 ya puede empezar a retirar bloques de datos de la memoria intermedia del coordinador.

Zonas ocupadas Los OBs de comunicación no requieren ninguna zona de trabajo (por ej. para el almacenamiento intermedio de variables) y tampoco abren módulos de datos. Por supuesto que acceden a zonas que contienen parámetros, pero sólo se modifican aquellos definidos como parámetros de salida.

lndicadores de Los indicadores de resultado (ANZ l/ANZ O, VKE, etc.) son alterados por los resultado OBs de comunicación. Para más información consultar el capítulo 10.2.8.

Modificación de CPU 922, CPU 928, Los contenidos de los AKKU 1 a AKKU 4 los acumuladores CPU 928B: y los contenidos de los registros no son modificados

por los OBs de comunicación.

CPU 9461947, Todos los contenidos de los registros y AKKU 1, 2 y 3 CPU 948: permanecen inalterados; sólo se modifica el AKKU 4.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 456: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2.6 ¿Cómo se parametrizan los OBs de comunicación?

Los OBs de comunicación presentan las siguientes clases de parámetros:

parámetros de entrada,

parámetros de salida

parámetros de llamada.

Los parámetros de entrada y de salida se encuentran en un campo de datos de máx. 10 bytes en la zona de marcas M. El campo de datos se divide en una zona para parámetros de entrada y una para parámetros de salida.

Parámetros de Los parámetros de entrada determinan el modo en que se debe ejecutar una entrada función. Estos son leidos y evaluados parcial o completamente por los OBs de

funciones especiales. No se ejecutan accesos de escritura.

Parámetros de Los parámetros de salida contienen todas las informaciones requeridas por el salida programa que efectúa la llamada (por ej.: indicadores de error) referentes al

resultado de una petición. Estos son leidos y evaluados parcial o completamente por los OBs de comunicación. No se ejecutan accesos de lectura.

Nota Se puede preveer una zona de marcas de 10 bytes de marcas para todas las funciones de comunicación. Sin embargo, cada una de las funciones requiere una cantidad diferente de bytes. Estas están indicadas en las funciones individuales (capítulo 10.4 y siguientes).

Parámetro de En todos los OBs de comunicación se transfiere como parámetro de llamada el llamada número del primer byte de marcas del campo de datos (= indicador del campo de

datos) al AKKU-1-L. Valores admisibles: de O a 246.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 457: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Ejemplo

Campo de datos con parametros de la función RECIBIR (OB 204)

MB x + O: CPU emisora Parámetro de entrada MB x + 1: no ocupado

MB x + 2: Byte indicador Parámetro de salida MB x + 3: Capacidad de recepción Parámetro de salida

MB x + 4: Identificación de módulo Parámetro de salida MB x + 5: Número de módulo Parámetro de salida

MB x + 6: Dirección de la primera Parámetro de salida MB x + 7: palabra de datos recibida Parámetro de salida

MB x + 8: Dirección de la última Parámetro de salida MB x + 9: palabra de datos recibida Parámetro de salida

Este ejemplo muestra que el número del primer byte de marcas M en el campo de datos no puede ni debe ser mayor que (MB) 246, ya que de lo contrario el campo de parámetros de hasta 10 bytes superaría los límites de la zona de marcas (MB 255).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 458: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.2.7 ¿Cómo se evalúan los parámetros de salida?

Los parámetros de salida indican entre otras cosas si una función ha podido ser procesada. De lo contrario, indican por qué se ha abortado la función.

Indicadores de Las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR, TEST resultado DE RECEPCION puedan modificar los indicadores de resultado (véanse

instrucciones de programación de las correspondientes CPUs, observaciones generales referentes a las operaciones STEP 5):

los bits OV y OS (indicadores de palabras) siempre se borran,

los bits OR, STA, ERAB (indicadores de bits) siempre se borran,

VKE, ANZ 1 y ANZ O indican si una función ha sido ejecutada completa y correctamente.

Tabla 10-1 Indicadores de los OBs de comunicación

unción abortada por un conflicto de

En lo sucesivo se presupone que el indicador que señala el campo de datos contiene un valor correcto. En este caso, la causa del aborto estará registrada de forma detallada en el primer byte de los parámetros de salida.

Bit nQ

A = 1: Advertencia E = 1: Error I = l : Conflicto de inicialización Número: - de una advertencia

- de un error - de un conflicto de inicialización

7

A

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

6

E

5

1

4

O

3

Número

2 1 O

Page 459: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

El primer byte del campo de parámetros de salida (byte indicador) también indica si una función ha sido procesada correcta y completamente. La causa del aborto de una función se representa más detalladamente que en los indicadores de resultados. Partiendo de la condición mencionada anteriormente, según la cual por lo menos el indicador del campo de datos debe contener un valor correcto, este byte siempre será significativo.

Si la función ha sido ejecutada correcta y completamente, se borran todos los bits (= O), y todos los demás parámetros de salida también son significativos.

Si la función es abortada por una advertencia (bit n V = 1), sólo sigue siendo significativo el indicador de la capacidad de emisión/recepción. Otros parámetros de salida (en caso de existir) permanecen inalterados.

Si la función ha sido abortada con un error (bit n% = 1) o con un conflicto de inicialización (bit n" = 1), todos los demás parámetros de salida permanecen inalterados.

Evaluación del Las identificaciones 'A', 'E' e '1' indican entre otras cosas el significado de la byte indicador información "número".

Aparte de esta evaluación bit por bit, también es posible interpretar todo el byte indicador como número en coma fija sin signo. En el caso de una interpretación global del byte indicador, resultan grupos numéricos que significan lo siguiente:

Tabla 10-2 Byte indicador de los OBs de comunicación/grupos numéricos

Los errores son detectados y visualizados conforme al orden ascendente de los números de error. Esto significa que pueden haberse producido varios errores aunque (en este instante) sólo se visualice un error. Los demás errores se irán visualizando a medida que se efectúen más llamadas.

Campo de valores

O

33 a 42

65 a 73

129 a 130

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

Función ejecutada correcta y completamente

Función abortada por conflicto de inicialización

Función abortada a causa de un error

Función abortada a causa de una advertencia

Page 460: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Ejemplo

uevamente un error con un número mayor que el anterior, no de los errores se ha eliminado.

Conflicto de El conflicto de inicialización sólo puede producirse con la función inicialización INICIALIZAR. Este exige una modificación de la programación/parametrización.

Números de conflictos de inicialización (evaluación global del byte indicador):

Tabla 10-3 Byte indicador: números de conflictos de inicialización

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Byte ind.

33

34

35

36

37

38

39

40

41

42

Significado

Las páginas utilizadas para la comunicación en multiprocesamiento (119.52 a 255) no existen o no están completas.

Las páginas requeridas para la comunicación en multiprocesamiento (119.52 a 255) son defectuosas.

El parámetro "automático/manual" no es válido. Hay que diferenciar los siguientes casos: - la identificación "automático/manual" es menor que 1, - la identificación "automático/manual" es mayor que 2.

El parámetro "cantidad de CPUs" no es válido. Hay que diferenciar los siguientes casos: - la cantidad de CPUs es menor que 2, - la cantidad de CPUs es mayor que 4.

El parámetro "identificación de módulo" no es válido. Hay que diferenciar los siguientes casos: - la identificación de módulo es menor que 1, - la identificación de módulo es mayor que 2.

El parámetro "número de módulo" no es válido, ya que se trata de un módulo de datos de significado especial. Hay que diferenciar los siguientes casos: - en caso de ident. de módulo = 1 : DB O, DB 1, DB 2 - en caso de ident. de módulo = 2 : DX O, DX 1, DX 2

El parámetro "número de módulo" es erróneo, ya que el módulo de datos parametnzado no existe.

El parámetro "dirección inicial de la lista de asignaciones" es demasiado grande o el módulo de datos es demasiado corto.

La lista de asignaciones en el módulo de datos no está estructurada correctamente.

La suma de los bloques de memoria asignados es mayor que 48.

Page 461: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Errores En caso de error se deberá modificar la programación o la parametnzación.

Números de errores (evaluación global del byte indicador):

Tabla 10-4 Byte indicador: números de errores

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Byte ind.

65

66

67

68

69

70

71

Significado

El parámetro "CPU receptora" (EMiTIR, TEST DE EMISION) no es válido. Hay que diferenciar los siguientes casos: - el número de la "CPU receptora" es mayor que 4, - el número de la "CPU receptora" es menor que 1, - el número de la "CPU receptora" es igual al nW'propio".

El parámetro "CPU emisora" (RECIBIR, TEST DE RECEPCION) no es válido. Hay que diferenciar los siguientes casos: - el número de la "CPU emisora" es mayor que 4, - el número de la "CPU emisora" es menor que 1, - el número de la "CPU emisora" es igual al nN'propio".

La llamada al módulo de organización de funciones especiales es errónea (EMITIR, RECIBIR, TEST DE EMISION, TEST DE RECEPCION). Hay que diferenciar los siguientes casos: - Error consecutivo, ya que la función INICIALIZAR no ha sido llamada y

se ha finalizado con un conflicto de inicialización, - Llamada doble: la llamada a esta función (EMITIR, TEST DE EMISION,

RECIBIR o TEST DE RECEPCION) no es válida, puesto que en esta CPU ya ha sido llamada una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION en un nivel de programa subordinado (por ej. procesamiento cíclico),

- El número "propio" de CPU es erróneo (se han destruido datos del sistema); después de DESCONEXION / CONEXION, el número de CPU vuelve a ser generado por el programa de sistema.

Los datos de administración (administración de cola de espera) de las líneas de comunicación seleccionadas son erróneos; hay que volver a instalar la memona intermedia del coordinador KOR 923C con la función INICIALIZAR (EMITIR, RECIBIR, TEST DE EMISION, TEST DE RECEPCION).

El parámetro "identificación de módulo" (EMITIR) o la identificación de módulo suministrada por el emisor PECIBIR) no es válida. Hay que diferenciar los siguientes casos: - la identificación del módulo es menor que 1, - la identificación del módulo es mayor que 2.

El parámetro "número de módulo" (EMITIR) o el número de módulo suministrado por el emisor PECIBIR) no es válido, ya que se trata de un módulo de datos de significado especial. Hay que diferenciar los siguientes casos: - en caso de ident. del módulo = 1 : DB O, DB 1, DB 2 - en caso de ident. del módulo = 2 : DX O, DX 1, DX 2

El parámetro "número de módulo" (EMITIR) o el número de módulo suministrado por el emisor PECIBIR) es erróneo. El módulo de datos parametnzado no existe.

Page 462: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Advertencia

Byte ind.

La función no ha podido ser ejecutada; hay que repetir la llamada a la función, por ejemplo, en el ciclo siguiente.

Significado

Números de advertencia (evaluación global del byte indicador):

Tabla 10-5 Byte indicador: números de advertencias

Tabla 10-4 (continuaci6n):

72

73

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

El parámetro "número de bloque" (EMITIR) es erróneo. El módulo de datos es demasiado corto o el número de bloque es demasiado elevado.

El módulo de datos es demasiado pequeño para recibir al bloque de datos suministrado por el emisor PECIBIR).

Byte ind.

129

130

Significado

La función EMiTIR no puede transferir datos, puesto que la capacidad de emisión al llamar la función ya era igual a cero.

La función RECIBIR no puede aceptar datos, puesto que la capacidad de recepción al llamar la función ya era igual a cero.

Page 463: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.3 Tiempos de ejecución de los OBs de comunicación

El "tiempo de ejecución" es el tiempo de procesamiento de los módulos de organización de funciones especiales.

Tabla 10-6 Tiempos de ejecución de los OBs de comunicación

El tiempo que transcurre entre la llamada a un módulo y su terminación puede aumentar considerablemente si es interrumpido por actividades de prioridad superior (por ej ., actualización de temporizadores, etc.).

OB de funciones especiales

Los tiempos de ejecución indicados en la tabla 10-6 resultan a condición de que, de las cuatro CPUs enchufadas, acceda al bus S5 sólo aquella CPU, cuyos tiempos de ejecución sean medidos. Si las otras CPUs también utilizan el bus de forma intensiva, aumenta el tiempo de ejecución, especialmente durante la emisión/recepción.

Nombre del módulo

OB 200/Inicializar

OB 202/Emitir

OB 203/Test de emisión

OB 204/Recibir

OB 205/Test de recepción

Tiempo de transferencia

Una caractenstica importante de una línea de comunicación (por ej. de la CPU 1 a la CPU 2) es el tiempo total de transferencia de datos. Este se compone de los siguientes tiempos:

CPU 928

104 ms

533 ps (200 ps carga básica t 10,5 pslpal.);

92 ps en caso de advertencia

40 ys

528 ps (195 ps carga básica t 10,5 pslpal.);

79 ps en caso de advertencia

39 ys

tiempo de emisión (véase tiempo de ejecución),

tiempo de almacenamiento intermedio (en el coordinador KOR 923C)

Y tiempo de recepción (véase tiempo de ejecución).

CPU 928B

104 ms

533 p (200 p carga básica

+ 103 plpal.); 92 ps en caso de

advertencia

40 ps

528 P (195 ps carga básica + 103 plpal.);

79 ps en caso de advertencia

39 ps

El tiempo durante el cual los datos se encuentran "de camino" depende primordialmente del tiempo de almacenamiento intermedio y, por consiguiente, de la estructura del programa de usuario (comparar "almacenamiento intermedio de datos").

CPU 948

90 ms

542 p (220 p carga básica t 19 pslpal. doble); 110 ps en caso de

advertencia

115 ps

506 p (218 p carga básica t 18 pslpal. doble); 132 ps en caso de

advertencia

120 ps

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 464: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.4 Función INICIALIZAR (OB 200)

10.4.1 Función

Para poder transmitir datos de una CPU a otra, los datos tienen que ser almacenados transitoriamente. Para ello, la función INICIALIZAR instala una memoria intermedia en el coordinador KOR 923C. La capacidad de memoria se instala (inicializa) en bloques de una longitud fija de 32 palabras.

Cada bloque de memoria almacena exactamente un bloque de datos de una longitud entre 1 y 32 palabras de datos. Un bloque de datos se registra en un bloque de memoria con una función EMITIR y se retira con una función RECIBIR.

En caso de haber dos CPUs enchufadas, resultan dos líneas de comunicación (direcciones de transferencia, "canales"):

l c p u 1 1 CPU 2 l

En caso de haber tres CPUs enchufadas, resultan seis líneas de comunicación:

CPU 1 1 , CPU 2 ~

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 465: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

En caso de haber cuatro CPUs enchufadas, resultan doce líneas de comunicación:

Con la función INICIALIZAR se determina la forma de asignar los 48 bloques de memoria disponibles a las 12 líneas de comunicación posibles. Es decir, cada una de las posibles líneas de comunicación identificada por los parámetros "CPU emisora" y "CPU receptora", dispone de una determinada capacidad de memoria.

CPU 1 b

Nota Antes de que en las CPUs se puedan llamar a las funciones EMITIR/ RECIBIRJTEST DE EMISIONREST DE RECEPCION, es necesario llamar en una CPU a la función INICIALIZAR, la cual tiene que haber sido procesada completamente y sin errores.

CPU 2

En caso de que la función INICIALIZAR sea llamada varias veces consecutivas, vale la última asignación parametrizada. Mientras que la función INICIALIZAR es procesada por una CPU, en las otras CPUs no se pueden llamar a otras funciones de comunicación en multiprocesamiento, es decir, tampoco se puede llamar a la función INICIALIZAR.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

A A

Y

A A

CPU 4 CPU 3 b

Page 466: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.4.2 Parámetros de llamada

Estructura del Antes de llamar al OB 200 hay que poner a disposición en el campo de datos los campo de datos parámetros de entrada. El OB 200 requiere en el campo de datos 8 bytes de (de parámetros) marcas M para los parámetros de entrada y de salida:

M B x + O : Modo de operación Parámetro de entrada (automático/manual)

M B x + l : Cantidad de CPUs Parámetro de entrada MB x + 2: Identificación de módulo Parámetro de entrada M B x + 3 : Número de módulo Parámetro de entrada

Dirección inicial de la Parámetro de entrada M B x + 5 : M + 4 K lista de asignaciones

MB x + 6: Byte indicador Parámetro de salida M B x + 7 : Capacidad total Parámetro de salida

Al llamar al OB 200 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parámetros:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 467: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.4.3 Parámetros de entrada

Modo de Modo de operación = 1: Automático operación Modo de operación = 2: Manual (automático/ Modo de operación = O ó 3 a 255: No válido, conduce a un conflicto manual) de inicialización

Cantidad de Este parámetro sólo es significativo si se ha seleccionado el modo de operación CPUs "automático". Seleccionando el modo de operación "automático", los bloques de

memoria disponibles se distribuirán por partes iguales, según la cantidad de CPUs:

Identificación de Estos parámetros sólo son significativos si se ha seleccionado el modo de módulo, número operación "manual". Posteriormente se deberá preparar en un módulo de datos de módulo, una lista de asignaciones en la que, según un esquema establecido, se asignan los dirección de 48 (o menos) bloques de memoria a las máx. 12 líneas de comunicación. Esta la lista de función es especialmente conveniente si las CPUs intercambian volúmenes de asignaciones datos distintos.

Cantidad de CPUs

2

3

4

0; 1; 5 a 255

No es necesario ni conveniente asignar bloques de memoria a las CPUs que no intervengan en la comunicación en multiprocesamiento. Con los parámetros

identificación de módulo,

número de módulo

Cantidad de líneas de comunicación

2

6

12

Y dirección inicial de la lista de asignaciones

Bloques de memoria por línea de comunicación

24

8

4

se determina dónde se registra la lista de asignaciones.

No válido, conduce a conflicto de inicialización

Identificación de Identificación = 1: Módulo de datos DB módulo Identificación = 2: Módulo de datos DX

Identificación = de O ó 3 a 255 : No válida, conduce a un conflicto de inicialización

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 468: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Número de Como número de módulo se debe indicar el número del módulo de datos DB o módulo DX, en el que se encuentra la lista de asignaciones.

Dirección inicial Esta determina, junto con la identificación y el número de módulo, la zona (más de la lista de exactamente: la dirección inicial de la zona) del módulo de datos, en el que está asignaciones depositada la lista de asignaciones.

Indíquese como dirección de la lista de asignaciones en los bytes de marcas MB x+4 (byte alto) y MB x+5 (byte bajo) el número de la palabra de datos con el que comienza la lista de asignaciones.

Lista de Con la lista de asignaciones se determina cuántos de los 48 bloques de memoria asignaciones existentes deben ser asignados a las distintas líneas de comunicación.

El programa de sistema no modifica la lista. Su estructura es la siguiente:

Tabla 10-7 Lista de asignaciones para el OB 200 (inicializar)

En vez de las letras minúsculas de "a" hasta "m" (aquí en negrita) se deben poner números entre O y 48 de acuerdo con los bloques de memoria asignados; su suma no deberá superar el valor 48.

Nota La estructura representada en la tabla 10-7 tiene que respetarse aunque estén enchufadas menos de cuatro CPUs.

Palabra de datos

DW n t O DW n t 1 DW n t 2 DW n t 3

DW n t 4 DW n t 5 DW n t 6 DW n t 7

DW n t 8 DW n t 9 DW n t 10 DW n t 11

DW n t 12 DW n t 13 DW n t 14 DW n t 15

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Formato

KC KY KY KY

KC KY KY KY

KC KY KY KY

KC KY KY KY

Valor

S 1 2 , a 3 , b 4 , c

S2 l , d 3 , e 4 , f

S3 l , g 2 , h 4 , i

S4 l , k 2 , 1 3 , m

Significado

Emisor = CPU 1 Receptor = CPU 2 Receptor = CPU 3 Receptor = CPU 4

Emisor = CPU 2 Receptor = CPU 1 Receptor = CPU 3 Receptor = CPU 4

Emisor = CPU 3 Receptor = CPU 1 Receptor = CPU 2 Receptor = CPU 4

Emisor = CPU 4 Receptor = CPU 1 Receptor = CPU 2 Receptor = CPU 3

Page 469: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Ejemplo

pocos da tos a l a CPU 2 como acuse de rec ibo , en un t r á f i c o lóg ico de acuses. Ent re l a s CPU 1 y CPU 3 no s e r equ ie re ningiín intercambio de da tos .

La l i s t a de asignaciones s e depos i ta en e l módulo de da tos DB 40, a p a r t i r de l a DW O y t i e n e l o s s i g u i e n t e s parámetros:

DB 40 FD: CPU928ST.S5D

CPU 2/2 bloques CPU 3/ningiín bloque CPU 4 (no exis te ) /n ingi ín bloque

CPU 1/22 bloques CPU 3/22 bloques CPU 4 (no exis te ) /n ingi ín bloque

CPU l/ningiín bloque CPU 2/2 bloques CPU 4 (no exis te ) /n ingi ín bloque CPU 4 (no e x i s t e ) CPU l/ningiín bloque CPU 2/ningiín bloque CPU 3/ningiín bloque

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 470: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.4.4 Parámetros de salida

Byte indicador Este byte indica si la función INICIALIZAR ha sido procesada correcta y completamente.

Conflicto de La función detecta e indica los conflictos de inicialización representados según el inicialización orden ascendente de sus números.

Cuando se produce un conflicto de inicialización es necesario modificar la programación/parametrización.

En el byte indicador pueden aparecer todos los números repesentados en la tabla siguiente.

Tabla 10-7 Byte indicador: números de advertencia

Errores

Byte ind.

33

34

35

36

37

38

39

40

41

42

En la función INICIALIZAR no puede aparecer un indicador del grupo de números "error".

Significado

Las páginas necesarias para la comunicación en multiprocesamiento (nQ 252 a 255) no existen o no están completas.

Las páginas necesarias para la comunicación en multiprocesamiento (nQ 252 a 255) son defectuosas.

El parámetro "automático/manual" no es válido. Hay que diferenciar los casos siguientes: - la identificación "automático/manual" es menor que 1, - la identificación "automático/manual" es mayor que 2.

El parámetro "cantidad de CPUs" no es válido. Hay que diferenciar los casos siguientes: - la cantidad de CPUs es menor que 2, - la cantidad de CPUs es mayor que 4.

El parámetro "identificación de módulo" no es válido. Hay que diferenciar los siguientes casos:

- la identificación del módulo es menor que 1, - la identificación del módulo es mayor que 2.

El parámetro "número de módulo" no es válido, ya que se trata de un módulo de datos de significado especial. Hay que diferenciar los casos siguientes: - en caso de identific. de módulo = 1 : DB O, DB 1 , DB 2 - en caso de identific. de módulo = 2 : DX O, DX 1, DX 2

El parámetro "número de módulo" es erróneo, ya que el módulo de datos parametrizado no existe.

El parámetro "dirección inicial de la lista de asignaciones" es demasiado grande o el módulo de datos es demasiado corto.

La lista de asignaciones en el módulo de datos no está estructurada correctamente.

La suma de los bloques de memoria asignados es mayor que 48.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 471: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Advertencia En la función INICIALIZAR no puede aparecer un indicador del grupo de números "advertencia".

Capacidad total Este parámetro indica cuántos de los 48 bloques de memoria disponibles se han asignado a las líneas de comunicación. En el modo de operación "automático", este parámetro contendrá en todo caso el valor 48. En el modo de operación "manual", este valor puede ser menor que 48, lo que significa que la capacidad de memoria no es aprovechada en su totalidad.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 472: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.5 Función EMITIR (OB 202)

10.5.1 Función

La función EMlTIR transfiere un bloque de datos a la memoria intermedia del coordinador KOR 923C. Adicionalmente indica cuántos bloques de datos aún pueden ser emitidos y almacenados de forma intermedia.

10.5.2 Parámetros de llamada

Estructura del Antes de llamar al OB 202 se tienen que poner a disposición los parámetros de campo de datos entrada en el campo de datos. El OB 202 requiere en el campo de datos 6 bytes de (de parámetros) marcas M para los parámetros de entrada y de salida:

M B x + O : CPU receptora Parámetro de entrada M B x + l : Identificación de módulo Parámetro de entrada MB x + 2: Número de módulo Parámetro de entrada M B x + 3 : Número de bloque Parámetro de entrada

M B x + 4 : Byte indicador Parámetro de salida M B x + 5 : Capacidad de emisión Parámetro de salida

Al llamar al OB 202 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parámetros:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 473: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.5.3 Parámetros de entrada

CPU receptora Número de la CPU receptora (destino); el valor admisible se encuentra entre 1 y 4, pero no debe ser igual a su "propio" número.

Identificación Identificación = 1: Módulo de datos DB de módulo Identificación = 2: Módulo de datos DX

Identificación = O o de 3 a 255: No válido, conduce a un aviso de error

Número de El número de módulo, junto con la identificación de módulo y el número de módulo bloque da como resultado la zona de la que se extraen los datos de emisión (y la

zona en la que son depositados en la CPU receptora).

Aquí se debe tener en cuenta que determinados módulos de datos tienen un significado especial, por ejemplo: DB O, DB 1 o DX O (véanse las instrucciones de programación de las correspondientes CPUs). ¡Estos módulos de datos no deben ser utilizados para la tranferencia de datos aquí descrita! En caso de utilizar estos números de módulo se aborta la función, dando el correspondiente aviso de error.

Número de bloque

El número de bloque identifica la zona de datos fuente.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Número de bloque

O 1

2 3

4 5

6 7

8 9

Zona de datos

Primera palabra de datos

DW O DW 32

DW 64 DW 96

DW 128 DW 160

DW 192 DW 224

DW 256 DW 288

Ultima palabra de datos

DW 31 DW 63

DW 95 DW 127

DW 159 DW 191

DW 223 DW 255

DW 287 DW 319

Page 474: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Ejemplo

Cabe diferenciar los siguientes casos:

El DB es más largo que la zona fuente: Si el módulo de datos es suficientemente largo, resulta una zona de 32 palabras de acuerdo con la tabla expuesta.

El DB es demasiado corto: Si el final del módulo de datos se encuentra dentro del bloque parametrizado, se transfiere una zona de una longitud entre 1 y 31 pala- bras en el último bloque.

El bloque se encuentra fuera del DB: Si la primera dirección de palabra de datos averiguada de un bloque se encuentra fuera de la longitud del módulo, la función EMITIR detecta e indica un error.

palabras constituyen la cabeza del módulo.

primera pal. última pal. de datos:

mayor Parametrización errónea

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 475: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.5.4 Parámetros de salida

Byte de salida Este byte indica si la función EMITIR ha sido procesada completa y correctamente.

Conflicto de No es significativo en relación con la función EMITIR. inicialización

Errores Al llamar a la función EMITIR pueden aparecer los siguientes números de error (evaluación global del byte indicador):

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Byte indicador

65

67

68

69

70

71

72

Significado

El parámetro "CPU receptora" no es válido. Hay que diferenciar los casos siguientes: - el número de la "CPU receptora" es mayor que 4, - el número de la "CPU receptora" es menor que 1, - el número de la "CPU receptora" es igual al número "propio".

La llamada al módulo de organización de funciones especiales es errónea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la función INICIALIZAR no ha sido

llamada o ha sido finalizada con un conflicto de inicialización. - Llamada doble: la llamada a la función EMITIR, TEST DE

EMISION, RECIBIR o TEST DE RECEPCION no es válida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cíclico de programa).

- El número "propio" de la CPU es erróneo (datos de sistema destruidos); después de DESCONEXIONJCONEXION, el número de la CPU es generado nuevamente por el programa de sistema.

Los datos de administración (administración de cola de espera) de las líneas de comunicación seleccionadas son erróneos; la memoria intermedia del coordinador KOR 923C tiene que volver a ser instalada por medio de la función INICIALIZAR.

El parámetro "identificación de módulo" no es válido. Hay que diferenciar los casos siguientes: - la identificación de módulo es menor que 1, - la identificación de módulo es mayor que 2.

El parámetro "número de módulo" no es válido, ya que se trata de un módulo de datos de significado especial. Hay que diferenciar los casos siguientes: - en caso de identific. de módulo = 1 : DB O, DB 1, DB 2 - en caso de identific. de módulo = 2 : DX O, DX 1, DX 2

El parámetro "número de módulo" es erróneo. El módulo de datos parametrizado no existe.

El parámetro "número de bloque" es erróneo. El módulo de datos es demasiado corto o el número de bloque es demasiado elevado.

Page 476: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Advertencia La función no ha podido ser ejecutada; hay que repetir la llamada, por ejemplo en el ciclo siguiente.

Puede aparecer el siguiente número de advertencia (evaluación global del byte indicador):

Capacidad de El parámetro "capacidad de emisión" indica cuántos bloques de datos pueden ser emisión emitidos y almacenados de forma intermedia.

Byte indicador

129

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Significado

La función EMITIR no puede transferir datos, ya que la capacidad de emisión (véase abajo) era igual a cero durante la llamada a la función.

Page 477: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.6 Función TEST DE EMlSlON (OB 203)

10.6.1 Función

La función TEST DE EMISION averigua la cantidad de bloques de memoria libres en la memoria intermedia del coordinador KOR 923C. De acuerdo con este valor m, la función EMITIR puede ser llamada m veces para tranferir m bloques de datos.

10.6.2 Parámetros de llamada

Estructura del Antes de llamar al OB 203 se tienen que poner a disposición los parámetros de campo de datos entrada en el campo de datos . El OB 203 requiere en el campo de datos 4 bytes de (de parámetros) marcas M para los parámetros de entrada y de salida:

M B x + O : CPU receptora Parámetro de entrada M B x + l : - no ocupado

MB x + 2: Byte indicador Parámetro de salida M B x + 3 : Capacidad de emisión Parámetro de salida

Al llamar al OB 203 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parámetros:

10.6.3 Parámetros de entrada

CPU receptora El número de la CPU "propia", así como el número de la CPU receptora caracterizan la línea de comunicación, de la cual se va a averiguar la capacidad de emisión.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 478: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.6.4 Parámetros de salida

Byte indicador Este byte indica si la función TEST DE EMISION ha sido ejecutada completa y correctamente.

Conflicto de No es significativo en relación con la función TEST DE EMISION. inicialización

Errores Al llamar a la función TEST DE EMISION pueden aparecer los si- guientes números de error (evaluación global del byte indicador):

Advertencia

Byte indicador

65

67

68

En la función TEST DE EMISION no puede aparecer un indicador del grupo de números "advertencia".

Significado

El parámetro "CPU receptora" no es válido. Hay que diferenciar los casos siguientes: - el número de la "CPU receptora" es mayor que 4, - el número de la "CPU receptora" es menor que 1, - el número de la "CPU receptora" es igual al número "propio".

La llamada al módulo de organización de funciones especiales es errónea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la función INICIALIZAR no ha sido

llamada o ha sido finalizada con un conflicto de inicialización. - Llamada doble: la llamada a la función EMITIR, TEST DE

EMISION, RECIBIR o TEST DE RECEPCION no es válida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cíclico de programa).

- El número "propio" de la CPU es erróneo (datos de sistema destruidos); después de DESCONEXIONJCONEXION, el número de la CPU es generado nuevamente por el programa de sistema.

Los datos de administración (administración de cola de espera) de las líneas de comunicación seleccionadas son erróneos; con la función INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador KOR 923 C.

Capacidad de El parámetro "capacidad de emisión" indica cuántos bloques de datos pueden ser emisión emitidos y almacenados de forma intermedia.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 479: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.7 Función RECIBIR (OB 204)

10.7.1 Función

La función RECIBIR acepta un bloque de datos de la memoria intermedia del coordinador KOR 923C. Adicionalmente indica cuántos bloques de datos están almacenados de forma intermedia y aún pueden ser recibidos. La función RECIBIR debe ser llamada en un bucle tantas veces como sea necesario, hasta que hayan sido recibidos todos los bloques de datos almacenados de forma intermedia.

10.7.2 Parámetros de llamada

Estructura del Antes de llamar al OB 204 se tienen que poner a disposición los parámetros de campo de datos entrada en el campo de datos. El OB 204 requiere en el campo de datos 10 bytes (de parámetros) de marcas M para los parámetros de entrada y de salida:

M B x + O : CPU emisora M B x + l : -

Parámetro de entrada no ocupado

MB x + 2: Byte indicador Parámetro de salida M B x + 3 : Capacidad de recepción Parámetro de salida M B x + 4 : Identificación de módulo Parámetro de salida M B x + 5 : Número de módulo Parámetro de salida

Dirección de la primera Parámetro de salida M B x + 7 : M B x + 6 : H palabra de datos recibida Parámetro de salida

Dirección de la última Parámetro de salida MB x + 9: H palabra de datos recibida

Al llamar al OB 204 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parámetros:

10.7.3 Parámetros de entrada

CPU emisora El módulo de recepción recibe datos suministrados por la CPU emisora. Hay que indicar el n u e la CPU emisora. El valor admisible se encuentra entre 1 y 4, pero tiene que ser diferente al número "propio".

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 480: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.7.4 Parámetros de salida

Byte indicador Este byte indica si la función RECIBIR ha sido ejecutada correcta y completamente.

Conflicto de No es significativo en relación con la función RECIBIR. inicialización

Errores Al llamar a la función RECIBIR pueden aparecer los siguientes números de error (evaluación global del byte indicador):

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Byte indicador

66

67

68

69

70

71

73

Significado

El parámetro "CPU emisora" no es válido. Hay que diferenciar los casos siguientes: - el número de la "CPU emisora" es mayor que 4, - el número de la "CPU emisora" es menor que 1, - el número de la "CPU emisora" es igual al número "propio".

La llamada al módulo de organización de funciones especiales es errónea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la función INICIALIZAR no ha sido

llamada o ha sido finalizada con un conflicto de inicialización. - Llamada doble: la llamada a la función EMITIR, TEST DE

EMISION, RECIBIR o TEST DE RECEPCION no es válida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cíclico de programa).

- El número "propio" de la CPU es erróneo (datos de sistema destruidos); después de DESCONEXIONJCONEXION, el número de la CPU es generado nuevamente por el programa de sistema.

Los datos de administración (administración de cola de espera) de las líneas de comunicación seleccionados son erróneos; con la función INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador KOR 923 C.

La identificación de módulo suministrada por el emisor no es válida. Hay que diferenciar los casos siguientes: - la identificación de módulo es menor que 1, - la identificación de módulo es mayor que 2.

El número de módulo suministrado por el emisor no es válido, ya que se trata de un módulo de datos de significa-do especial. Hay que diferenciar los casos siguientes: - en caso de identific. de módulo = 1 : DB O, DB 1, DB 2 - en caso de identific. de módulo = 2 : DX O, DX 1, DX 2

El número de módulo suministrado por el emisor es erróneo. El módulo de datos parametrizado no existe.

El módulo de datos es demasiado pequeño para recibir el bloque de datos suministrado por el emisor.

Page 481: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

Advertencia La función no ha podido ser ejecutada; hay que repetir la llamada a la función, por ejemplo en el ciclo siguiente.

Puede aparecer el siguiente número de advertencia (evaluación global del byte indicador):

Capacidad de El parámetro "capacidad de recepción" indica cuántos bloques de datos aún están recepción almacenados de forma intermedia y pueden ser recibidos.

Byte indicador

130

Identificación de Identificación = 1: Módulo de datos DB módulo: Identificación = 2: Módulo de datos DX

Identificación = O o de 3 a 255: No válido, conduce a un aviso de error

Significado

La función RECIBIR no puede recibir datos, ya que la capacidad de recepción durante la llamada a la función era igual a cero.

Número de módulo

Número de módulo del D B P X en el que han sido recibidos y depositados los datos (y del cual han sido recogidos en la CPU emisora con la función EMITIR).

Cabe observar que los módulos de datos de recepción deben encontrarse en una memoria de escrituraPectura (RAM); la utilización de memorias de sólo lectura (EPROM) únicamente es conveniente en caso de módulos de datos de emisión.

Dirección de la Número de la palabra de datos dentro del DBIDX en el que ha sido depositada la primera palabra primera palabra de datos emitidalrecibida. de datos recibida

Dirección de la Número de la palabra de datos dentro del DBIDX en el que ha sido depositada la última palabra de última palabra de datos emitidalrecibida. datos recibida

Nota La diferencia entre las direcciones de la primera y última palabra de datos transmitida se remonta máximo a 31, ya que por cada llamada a la función se transmiten como máximo 32 palabras.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 482: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.8 Función TEST DE RECEPCION (OB 205)

10.8.1 Función

La función TEST DE RECEPCION determina la cantidad de bloques ocupados en la memoria intermedia del coordinador KOR 923C. Según esta cantidad m, la función RECIBIR puede ser llamada m veces para recibir m bloques de datos.

10.8.2 Parámetros de llamada

Estructura del Antes de llamar al OB 205 se tienen que poner a disposición los parámetros de campo de datos entrada en el campo de datos . El OB 205 requiere en el campo de datos 4 bytes de (de parámetros) marcas M para los parámetros de entrada y de salida:

M B x + O : CPU emisora M B x + l : -

Parámetro de entrada no ocupado

MB x + 2: Byte indicador Parámetro de salida M B x + 3 : Capacidad de recepción Parámetro de salida

Al llamar al OB 205 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parámetros:

10.8.3 Parámetros de entrada

CPU emisora El número de la CPU "propia" así como el número de la CPU emisora, caracterizan la línea de comunicación de la cual se está averiguando la capacidad de recepción.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 483: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.8.4 Parámetros de salida

Byte indicador Este byte indica si la función TEST DE RECEPCION ha sido ejecutada por completo y sin errores.

Conflicto de No es significativo en relación con la función TEST DE RECEPCION. inicialización

Errores Al llamar a la función TEST DE RECEPCION pueden aparecer los si- guiente números de error (evaluación global del byte indicador):

Advertencia

Byte indicador

66

67

68

Capacidad de recepción

Significado

El parámetro "CPU emisora" no es válido. Hay que diferenciar los casos siguientes: - el número de la "CPU emisora" es mayor que 4, - el número de la "CPU emisora" es menor que 1, - el número de la "CPU emisora" es igual al número "propio".

La llamada al módulo de organización de funciones especiales es errónea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la función INICIALIZAR no ha sido

llamada o ha sido finalizada con un conflicto de inicialización. - Llamada doble: la llamada a la función EMITIR, TEST DE

EMISION, RECIBIR o TEST DE RECEPCION no es válida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cíclico de programa).

- El número "propio" de la CPU es erróneo (datos de sistema destruidos); después de DESCONEXIONJCONEXION, el número de la CPU es generado nuevamente por el programa de sistema.

Los datos de administración (administración de cola de espera) de las líneas de comunicación seleccionados son erróneos; con la función INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador KOR 923 C.

En la función TEST DE RECEPCION no puede aparecer un indicador del grupo de números "advertencia".

El parámetro "capacidad de recepción" indica cuántos bloques de datos están almacenados de forma intermedia y pueden ser recibidos.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 484: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multi~rocesador v comunicación en multi~rocesamiento

10.9 Aplicaciones

A continuación se explica mediante algunos ejemplos cómo programar la comunicación en multiprocesamiento.

Nota En caso de utilizar los módulos de funciones indicados a continuación y simultáneamente se están procesando alarmas (por ej. mediante el OB 2) hay que salvar las "marcas de trabajo" al principio del tratamiento de una interrupción y volver a escribirlas posteriormente. Esto también vale para el ajuste "interrupción en límites de módulos", ya que la llamada a los módulos de organización de funciones especiales representa un límite de módulo.

10.9.1 Llamada a los OBs de funciones especiales por medio de módulos de funciones

Los cinco módulos de funciones que se indican a continuación (FB 200 y FB 202 a FB 205) contienen la llamada al correspondiente módulo de organización de funciones especiales para la comunicación en multiprocesamiento (OB 200 y OB 202 a OB 205). Los números de los módulos de funciones han sido seleccionados a discreción y pueden ser modificados. Los parámetros de los OBs de funciones especiales se transfieren como parámetros actuales durante la llamada a los módulos de funciones. Si bien la llamada directa a los módulos de organización de funciones especiales resulta más conveniente en cuanto al tiempo de ejecución, no obstante, y debido a la falta de parámetros formales, también resulta más difícil de leer.

La zona de marcas de MB 246 hasta máx. MB 255 es utilizada por los módulos de funciones como campo de parámetros para los módulos de organización de funciones especiales.

N V e FB

FB 200

FB 202

FB 203

FB 204

FB 205

El significado exacto de los parámetros de entrada y salida se encuentra en la descripción del módulo de organización de funciones especiales utilizado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Nombre de FB

INITIAL

SENDEN

SEND-TST

EMPFANG

EMPF-TST

Función

Prefijar

Emitir un bloque de datos

Comprobar posibilidad de emisión

Recibir un bloque de datos

Comprobar posibilidad de recepción

Page 485: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Nota Los siguientes ejemplos son aplicaciones acabadas que el usuario puede transcribir directamente a su propio programa.

Programación de los módulos de funciones

FB 200

INITIAL

(1) - AUMA INIK -

(2) - ANZC GKAP -

(4) - ANFZ

Automático/manual

Cantidad de CPUs

Tipo (byte alto) y número (byte bajo) del módulo de datos que contiene la lista de asignaciones

Dirección inicial de la lista de

Conflicto de inicialización

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 486: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

SEGMENTO 1 NOMB. : INITIAL BE2 :AUMA E/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :ANZC E/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :TNZU E/A/D/B/T/Z: E BI/BY/W/D: W BE2 :ANFZ E/A/D/B/T/Z: E BI/BY/W/D: W BE2 :INIK E/A/D/B/T/Z: A BI/BY/W/D: BY BE2 :GKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

Automático/manual

Cantidad de CPUs

Tipo DB, NQ DB

Dirección inicial de la lista de asignaciones

OB de funciones especiales: :SPA OB 200 "Inicializar"

Conflicto de inicialización

Capacidad total

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 487: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

FB 2 0 2

SENDEN

(1) - ECPU FEWA

( 2 ) TNDB SKAP

( 3 ) BLNR

Tipo (byte alto) y número (byte bajo) del módulo de datos fuente

Número de bloque

Errorladvertencia

Capacidad de emisión

LON=40

SEGMENTO 1 NOMB . : SENDEN BEZ :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY BEZ : TNDB E/A/D/B/T/Z : E BI/BY/W/D: w BEZ :BLNR E/A/D/B/T/Z: E BI/BY/W/D: BY BEZ :FEWA E/A/D/B/T/Z: A BI/BY/W/D: BY BEZ : SKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

CPU receptora

T i p o DB, NQ DB

N ú m e r o de bloque

OB de funciones especiales: :SPA OB 202 " E m i t i r un bloque d e d a t o s "

E r r o r / a d v e r t e n c i a

C a p a c i d a d de e m i s i ó n

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 488: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

FB 203

SEND-TST

(1) ECPU FEHL

SKAP (3)

Capacidad de emisión

LON=30

SEGMENTO 1 NOMB . : SEND-TST BEZ :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY BEZ :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY BEZ : SKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

CPU receptora

OB de funciones especiales: :SPA OB 203 "Comprobar posibilidad

de emisión"

Capacidad de emisión

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 489: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

FB 204

EMPFANG

(1 ) SCPU FEWA -

EKAP ( 3 )

TNDB -

ANFA -

ENDA -

Clase Tipo

CPU emisora

Errorladvertencia

Capacidad de recepción

Tipo (byte alto) y número (byte bajo) del módulo de datos destino

Dirección de la primera palabra de datos recibida (dirección inicial)

Dirección de la última palabra de datos recibida (dirección final)

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 490: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

SEGMENTO 1 NOMB . : EMPFANG BEZ :SCPU E/A/D/B/T/Z: E BI/BY/W/D: BY BEZ :FEWA E/A/D/B/T/Z: A BI/BY/W/D: BY BEZ :EKAP E/A/D/B/T/Z: A BI/BY/W/D: BY BEZ : TNDB E/A/D/B/T/Z : A BI/BY/W/D: W BEZ :=FA E/A/D/B/T/Z: A BI/BY/W/D: W BEZ :ENDA E/A/D/B/T/Z: A BI/BY/W/D: W

CPU e m i s o r a

OB de f u n c i i o n e s especiales: :SPA OB 204 " R e c i b i r un bloque de datos"

E r r o r / a d v e r t e n c i a

C a p a c i d a d de r e c e p c i ó n

T i p o DB, NQ DB

D i r e c c i ó n i n i c i a l

D i r e c c i ó n f i n a l

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 491: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

FB 2 0 5

EMPF-TST

( 1 ) SCPU FEHL -

EKAP ( 3 )

Clase Tipo

CPU emisora

Capacidad de recepción

LON=30

SEGMENTO 1 NOMB . : EMPF-TST BEZ :SCPU E/A/D/B/T/Z: E BI/BY/W/D: BY BEZ :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY BEZ : EKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

CPU e m i s o r a

OB d e funciones especiales: : S P A OB 205 " C o m p r o b a r pos ib i l idad

de r e c e p c i ó n " E r r o r

C a p a c i d a d d e recepción

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 492: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

10.9.2 Transferencia de módulos de datos

Con el módulo de funciones UEBT-DAT (FB 110) se transfiere en el ejemplo una cantidad parametrizable de bloques de datos desde un módulo de datos de una CPU a un módulo de datos del mismo tipo y mismo número de otra CPU. El número FB (FB 110) es arbitrario y puede ser modificado.

En primer lugar se describe cómo programar el FB 110 y después su aplicación.

Programación del FB 110

La zona de datos a transferir se determina mediante los parámetros de entrada ERSB (= número del primer bloque de datos a tranferir) y ANZB (= cantidad de bloques de datos a transferir). Un bloque de datos normalmente está formado por 32 palabras. Según la longitud del módulo de datos, se transfieren menos de 32 palabras en el último bloque de datos.

La transferencia se inicia con un flanco positivo en la entrada STAR. Si luego el parámetro de salida REST es igual a cero, esto significa que el módulo de funciones UEBT-DAT ha podido emitir todos los bloques de datos (según parámetro ANZB).

Si el parámetro de salida REST contiene un valor mayor que cero, hay que ejecutar, por ejemplo en el ciclo siguiente, llamadas consecutivas. En este caso, la totalidad del lote de parámetros (es decir, los valores de todos los parámetros) deberá ser modificada por el (programa de) usuario sólo cuando el parámetro de salida REST haya alcanzado el valor cero, es decir, cuando haya finalizado la transferencia.

Es posible llamar repetidamente al módulo de funciones UEBT DAT utilizando cada vez lotes de parámetros distintos. En este caso se transfieren simultáneamente diferentes zonas de datos ("intercaladas entre sí"). Además se pueden utilizar "directamente" los módulos de organización de funciones especiales para la cmunicación en multiprocesamiento, OB 202 a OB 205. En el ejemplo de aplicación se ha hecho uso de esta posibilidad.

Si en el módulo de funciones UEBT-DAT no se ha podido procesar correctamente la función EMITIR (OB 202), se transfiere el correspondiente número de error al parámetro de salida FEHL, el VKE = '1' y el parámetro de salida REST = 'O'.

El módulo de funciones UEBT-DAT utiliza los bytes de marcas MB 246 a MB 251 como marcas de trabajo. Todas las demás variables cuyo valor continúa siendo significativo hasta que, tras múltiple ejecución del módulo de funciones UEBT-DAT el parámetro de salida REST = 'O', obtienen la asignación de espacios de memoria mediante el mecanismo de los parámetros formales/actuales. Este procedimiento es necesario para poder transferir simultáneamente módulos de datos distintos.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 493: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

R e a l i z a c i ó n

FB 110

UEBT-DAT

(1) - STAR FEHL - ( 6 )

REST -- ( 7 )

( 3 ) T N D B AKBN -

( 4 ) - ANZB FLAM - ( 9 )

(5 ) ERSB

Significado

Iniciar transferencia del módulo de datos después del flanco positivo E

CPU receptora

Tipo (byte alto) y número (byte bajo) del módulo de datos a transfenr

Cantidad de bloques de datos a transferir

Número del primer bloque de datos a transfenr

Cantidad de bloques de datos que quedan por transferir

Número actual de bloque

AKBN ') Marca de flanco

l) Marcas intermedias internas, no están previstas para su evaluación.

SEGMENTO 1 NOMB . : UEBT-DAT BE2 :STAR E/A/D/B/T/Z: E BI/BY/W/D: B I BE2 :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :TNDB E/A/D/B/T/Z: E BI/BY/W/D: W BE2 :ANZB E/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :ERSB E/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY BE2 :REST E/A/D/B/T/Z: A BI/BY/W/D: BY BE2 :AKBN E/A/D/B/T/Z: A BI/BY/W/D: BY BE2 :FLAM E/A/D/B/T/Z: A BI/BY/W/D: B I

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 494: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Prefijar campo de parámetros para OB 202

Emitir primeramente los bloques de datos eventualmente existentes

:SPB =UEBT

:UN =STAR :RB =FLAM :ON =STAR

:SPB =OUT

Inicializar las marcas globales tras un flanco positivo en la entrada START

Mientras REST sea ><O, 0038 SCHL:L seguir intentando emitir

bloques de datos :SPB =OUT

003B UEBT:L =AKBN

OB de funciones especiales: :SPA OB 202 "Emitir un bloque de datos"

:SPM =FEHL Abortar en caso de error :SPP =OUT Abortar si cap. de emisión = O

Incrementar número de bloque

Decrementar cantidad de bloques restantes

:SPA =SCHL

004A OUT :U :UN M 0.0

0050 FEHL :T =FEHL Fin de programa en caso de error:

VKE = 1, FEHL contiene número de error

¿Flanco positivo en la entrada START?

Fin regular del programa:

VKE = O, FEHL = O

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 495: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Aplicación del FB 110

En el programa de usuario ciclico, la CPU 1 ha de transmitir los módulos de datos DB 3 (bloques de datos 2 a 5) y DB 4 (bloques de datos 1 a 3) a la CPU 2. En la CPU 2 también se ha de llamar en el programa de usuario ciclico la función RECIBIR (OB 04) .

llamada en: llamada en:

Inicializar (OB 200) OB 20

Organización de emisión (FB 1)

Organización de recep. (FB 2) -

existente:

DB de emisión DB 3; DB 4

El programa de usuario que se encuentra en el módulo de funciones FB 1 de la C W 1, contiene dos veces la llamada al módulo de funciones UEBT-DAT, con dos lotes diferentes de parámetros. Después de un flanco positivo en la entrada E 2.0 comienza la tranferencia del primer módulo de datos DB 3. Un flanco positivo en la entrada E 2.1 inicia la tranferencia del segundo módulo de datos DB 4.

SEGMENTO 1 NOMB.:S-ORO

emitir a la CPU 2 .. .. del módulo de datos DB 3 .. cuatro bloques de datos .. a partir del bloque de datos 2

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 496: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

:SPA FB 110 OOOA NOMB.:UEBT-DAT OOOB STAR : E 2.0 OOOC ECPU : OOOD TNDB : OOOE ANZB : OOOF ERSB : O010 FEHL : O011 REST : 0012 AKBN : 0013 FLAM : M 8.0

:SPB =HALT Abortar después de error

emitir a la CPU 2 .. .. del módulo de datos DB 4 .. tres bloques de datos .. a partir de bloque de datos 1

:SPA FB 110 0023 NOMB.:UEBT-DAT 0024 STAR : E 2.1 0025 ECPU : MB 10 0026 TNDB : MW 11 0027 ANZB : MB 13 0028 ERSB : MB 14 0029 FEHL : 002A REST : 002B AKBN : 002C FLAM : M 8.1

:SPB =HALT Abortar después de error

0032 HALT : Aqui se efectda el tratamiento de errores (por ej. stop, salida de avisos por la impresora, ...)

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 497: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

En la CPU 2, la función RECIBIR (OB 204) llamada por el FB 2 transfiere cada bloque de datos emitido al correspondiente módulo de datos. La recepción de todos los módulos de datos puede repartirse entre varios ciclos.

SEGMENTO 1 NOMB.:E-ORO

:L K B 1 Recibir datos de la CPU 1 :T MB 246

0003 SCHL :L KB 246 OB de funciones especiales: :SPAOB 204 "Recibir" :SPM =FEHL Abortar en caso de error :L MB 249 La función "recibir" :L K B O se llama hasta que

la memoria intermedia :SPB =SCHL no contenga más bloques

de datos, es decir, la capacidad de recepción = 0.

OOOC FEHL : Aqui se efectda el tratamiento de errores (por ej. stop, salida de avisos por impresora, ...)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 498: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

10.9.3 Ampliación de la zona de marcas de acoplamiento

Tarea

Solución

En el autómata programable S5-135U/155U, cada uno de los 256 bytes de marcas puede convertirse en una marca de acoplamiento de entradalsalida registrándolo en el módulo de datos DB 1. De este modo queda reducida no obstante, la cantidad de bytes de marcas que pueden ser utilizados "normalmente". Además, para la transferencia de un lote de datos (varios bytes) se requieren medidas adicionales (variable de semáforo o parametrización del DX O "transferencia de marcas de acoplamiento en bloque") para evitar que el receptor evalúe un lote de datos transmitido sólo parcialmente.

Las palabras correlativas de un módulo de datos DB o DX, a partir de la DW O, se definen como "palabras de datos de acoplamiento". Cada línea de comunicación recibe "su propio" módulo de datos y es completamente independiente de las demás líneas de comunicación.

Al principio del módulo de ciclo se reciben las palabras de datos de acoplamiento por medio de los módulos de organización de funciones especiales para comunicación en multiprocesamiento. Luego sigue el programa cíclico "regular", el cual evalúa los datos recibidos y genera los datos de emisión. Por su parte, éstos se emiten al final del ciclo mediante los módulos de organización de funciones especiales para la comunicación en multiprocesamiento. De este modo, pueden ser recibidos por las demás CPUs al comienzo del ciclo.

Para cada una de las máx. 12 líneas de comunicación posibles e independientemente de las demás vale:

la CPU emisora sólo entra en actividad cuando la CPU receptora ha retirado todos los datos "antiguos" de la memoria intermedia del KOR 923C.

la CPU receptora sólo entra en actividad cuando la CPU emisora ha depositado todos los datos "nuevos" en la memoria intermedia del KOR 923C.

Así pues, la CPU receptora dispone de un lote de datos completamente nuevo o bien el lote de datos antiguos permanece inalterado: ;los datos "antiguos" y los "nuevos " no se mezclan!

Estructura de los La lista de comunicaciones describe qué palabras de datos (denominadas en lo datos sucesivo zona de palabras de datos) deben transferirse de qué CPU a qué CPU (véase

tabla en la página siguiente). La lista se encuentra en un módulo de datos adicional, el cual tiene que existir en todas las CPUs que intervengan en el proceso.

Las zonas de palabras de datos siempre comienzan a partir de la palabra de datos DW O; su longitud se indica en bloques. Cabe observar lo siguiente:

Un bloque completo consta de 32 palabras de datos.

Si el último bloque de un módulo de datos de emisión está "cortado", es decir, si abarca entre una y 31 palabras de datos, se transfieren, por consiguiente, menos palabras de datos.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 499: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Si un módulo de datos de emisión es más largo que la cantidad de bloques indicada en la lista de comunicaciones, las palabras de datos sobrantes pueden ser utilizadas en la CPU correspondiente.

Si un módulo de datos de recepción tiene una longitud mayor que la zona de datos recibida, las palabras de datos sobrantes pueden ser utilizadas en la CPU correspondiente.

Estructura de la lista de comunicaciones

Tabla 10-8 Lista de comunicaciones para la ampliación de la zona de marcas de acoplamiento

l) Véase ejemplo en la página siguiente

... CPU 3

... CPU 4

deCPU3 a ...

... CPU 1

... CPU 2

... CPU 4

deCPU4 a ...

... CPU 1

... CPU 2

... CPU 3

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

DW6

DW7

DW8

DW9

DW 10

DW 11

DW 12

DW 13

DW 14

DW 15

2 l5 2 O

1 l)

...

2 l5 2 O

10 l)

...

DW 22

DW 23

S 3 DW 24

DW 25

DW 26

DW 27

DW 28

DW 29

DW 30

DW 31

...

...

...

3

4

...

...

...

2 l)

...

S 3

1

2

4

S 4

...

...

...

...

...

...

...

...

...

S 4

1

2

3

...

...

...

Page 500: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

La lista de comunicaciones consta de dos listas parciales de estructura similar: 16 palabras de datos cada una. Partiendo de cada una de las cuatro CPUs emisoras (SI, S2, S3, S4), para la descripción de cada línea de comunicación se han previsto 3 entradas:

Cantidad de bloques

La cantidad de bloques determina el tamaño (= la cantidad de palabras de datos) de la zona de palabras de datos a transferir. (Las líneas no existentes o no utilizadas se definen por la cantidad de bloques = O; lo mismo vale para el tipo y el número de DB).

Tipo de DB

Tipo de módulo de datos que contiene la zona de palabras de datos a transferir.

Número del módulo de datos que contiene la zona de palabras de datos a transferir.

Estas entradas pueden ser leidas y rellenadas línea por línea en la representación anterior. Por ejemplo, para transferir los dos primeros bloques de datos del módulo de datos DB 10 de la CPU 2 (S2) a la CPU 3, es necesario efectuar la siguiente entrada:

CPU 2 (S 2) emite ...

... a CPU 3 2 bloques de datos del DB 10

La lista parcial 2 es idéntica a la lista de asignaciones (modo de operación "manual") requerida para la función INICIALIZAR (OB 200). Dentro del módulo de datos, la lista parcial 1 tiene que ocupar las palabras de datos O a 15, y la lista parcial 2 tiene que ocupar las palabras de datos 16 a 31. Las entradas destacadas en negrita no deben ser modificadas.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 501: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Estructura programa

del Durante el arranque provocado por la llamada a la función INICIALIZAR (OB 200) una CPU reserva en el coordinador por cada línea de comunicación una cantidad de bloques de memoria equivalente a la cantidad de bloques de datos que va a ser transferida en esta línea.

Para la emisión y recepción de zonas de palabras de datos, en cada CPU se reservan dos módulos de funciones:

Los números FB son arbitrarios y pueden ser modificados.

NQ FB

FB 100

FB 101

Los módulos de funciones SEND-DAT y EMPF-DAT leen en la lista de comunicaciones qué zonas de palabras de datos de qué módulos de datos deben ser emitidas o recibidas. Siempre se emite o recibe la zona de datos completa. En caso de que no se puedan efectuar estas operaciones por falta de capacidad de emisión o recepción, se prescinde de la emisión o recepción.

Nota Este ejemplo (ampliación de las marcas de acomplamiento mediante los módulos de funciones SEND-DAT y EMPF-DAT) solamente se ejecutará correctamente si en ninguna de las CPUs se llamen adicionalmente a los módulos de organización de funciones especiales para la comunicación en multiprocesamiento OB 202 a OB 205.

Nombre

SEND-DAT

EMPF-DAT

Los módulos de funciones SEND-DAT y EMPF-DAT contienen los módulos de organización de funciones especiales para la comunicación en multiprocesamiento OB 202 a OB 205. ¡NO está permitido llamar adicionalmente a estos módulos de organización fuera de SEND-DAT / EMPF-DAT!

Función

Emisión de zonas de palabras de datos a las demás CPUs

Recepción de zonas de palabras de datos de las demás CPUs

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 502: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

O B de nuevo ar ranque para ocupar por defecto l a memor ia in termedia en el coordinador KOR 923C

Programa de usuario cícl ico ampl iado con la l lamada a los módulos de func iones EMPF-DAT y SEND-DAT

SPA FB 101

SPA FB 100 BE

1 ) El OB 200 sólo puede ser l lamado en una CPU.

FB 100 Módulo d e func iones: SEND-DAT Emit i r módulos d e datos

Módulo d e func iones: EMPF-DAT Recibir módulos d e datos

Módulo d e datos que cont iene l a l is ta de comunicac iones

Máximo t res módulos d e ent rada y t res de sa l ida

Fig. 10-6 Esquema de los módulos necesarios

DB xxx

E a - J luado por . . .

Instrucciones de programación CPU 928B-3UB21 C79000-G8578-C870-01

Page 503: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Programación de los módulos de funciones

Antes de llamar al FB 100 tiene que abrirse el módulo de datos que contiene la lista de comunicaciones. El módulo de funciones SEND-DAT requiere para evaluar las informaciones contenidas en la lista de comunicaciones, el número de la CPU desde la que ha sido llamado. Si dentro de un módulo de funciones no ha podido ser ejecutada correctamente la función EMITIR (OB 202), el número de error o de advertencia correspondiente se transfiere al parámetro de salida FEWA y el VKE se

de CPU), FEWA contiene el valor 16 (bit nQ 4 = 1). El módulo de funciones SEND-DAT utiliza los bytes de marcas MB 239 a MB 251 como marcas de trabajo.

FB 100

SEND-DAT

Significado

Número de la CPU en la que se llama al FB 100. Son válidos los números 1 a 4.

FEWA Errorladvertencia (véase función EMiTIR / OB 202)

LON=90

SEGMENTO 1 NOMB . : SEND-DAT BEZ : CPUN E/A/D/B/T/Z : D KM/KH/KY/KC/KF/KT/KZ/KG:KF BEZ : FEWA E/A/D/B/T/Z : A BI/BY/W/D:

:LW =CPUN CPUN = CPUN - 1 Error en caso:

:SPM =FEWA NQ CPU <1

:SPB =FEWA NQ CPU >4

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 504: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

CPUN = CPUN * 4 Dirección base

Contador de cmunicaciones

OOlA SCHL:L MB 245 Dirección base + contador

:ADD BF+16 + offset

¿Cantidad de bloques reservados = O ?

:SPB =LEER

NQ de la CPU receptora

OB de funciones especiales: :SPA OB 203 "Comprobar posibilidad de emisi6nt

Aborto en caso de error :SPB =OBFE

¿Capacidad de emisión >< cantidad de bloques reservados?

:SPB =LEER

Contador de bloques

Tipo y número del DB fuente

003C UEBT:L KB 246 OB de funciones especiales: :SPA OB 202 Emitir un bloque de datos

Aborto en caso de :SPB =OBFE error/advertencia

NQ de bloque = NQ de bloque + 1

¿Transferir todos los bloques?

:SPB =UEBT

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 505: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

0048 LEER :L ME 244 Incrementar contador de cmunicaciones

¿Se han procesado todas las líneas de cmunicación?

:SPM =SCHL Fin regular de programa: VKE = O, FEWA = O

0052 FEWA :L Fin de programa en caso de error: 0053 OBFE :T =FEWA VKE = 1, FEWA contiene

número de error/advertencia

Antes de llamar al FB 101 tiene que abrirse el módulo de datos que contiene la lista de comunicaciones. El módulo de funciones EMPF-DAT requiere el número de la CPU en la que ha sido llamado para evaluar las informaciones contenidas en las lista de cmunicaciones.

Si dentro de un módulo de funciones no ha podido ser ejecutada correctamente la función RECIBIR (OB 204), se transfiere el número de error o de advertencia correspondiente al parámetro de salida FEWA y el VKE se pone a 1. Además, si el parámetro de entrada CPUN no es válido, FEWA recibe el valor 16 (bit nQ 4 = 1).

El módulo de funciones EMPF-DAT utiliza los bytes de marcas ME 242 a MB 255 como marcas de trabajo.

FB 101

EMPF-DAT

Significado

Número de la CPU en la que se llama al FB 101. Son válidos los números 1 a 4.

FEWA Errorladvertencia (veáse función RECIBIR / OB 204)

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 506: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

LON=88

SEGMENTO 1 N-. : EMPF-DAT BEZ :CPUN E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG:KF BEZ :FEWA E/A/D/B/T/Z: A BI/BY/W/D:

:LW =CPUN E r r o r si:

:SPB =FEWA NQ CPU < 1 :LW =CPUN

:SPB =FEWA NQ CPU >4

C o n t a d o r de cmunicaciones

Indicador s e ñ a l a l i s t a parcial 2

OOlA BUSC:L MW 244 R a s t r e a r l a l i s t a parcial 2 hasta encont rar l a s i g u i e n t e ent rada para l a CPU receptora con e l n ú m e r o 'CPUNr.

:LW =CPUN

:SPB =BUSC

:SPB =LEER

D e f i n i r e l nQ de l a CPU KM 00000000 00001100 e m i s o r a de l indicador a l a

l i s t a parcial 2.

OB de funciones especiales: :SPA OB 205 " C o m p r o b a r posibi l idad

de recepción" :SPB = OBFE A b o r t o en caso de error

Cont inúa e n l a página s i g u i e n t e

¿ C a n t i d a d de bloques de m e m o r i a reservados = O ?

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 507: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

¿Capacidad de recepción = cantidad de bloques de memoria reservados?

:SPB =LEER

003C EMPF:L KB 246 OB de funciones especiales: :SPA OB 204 "Recibir un bloque de datos"

:SPM =OBFE Abortar si hay error/advertencia Si capacidad de recep. = O procesar la siguiente línea de comunicación

:SPB =EMPF

0045 LEER:L MB 242 Incrementar contador de cmunicaciones

¿Se han procesado todas las líneas de cmunicación?

:SPM =SUCH Fin regular de programa: VKE = O, FEWA = O

004F FEWA :L KB 16 Fin de programa en caso de error: 0050 OBFE :T =FEWA

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 508: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Ejemplo de aplicación

Se han de intercambiar datos entre tres CPUs:

- de CPU 1 a CPU 2: módulo de datos DB 3, DW O a DW 127 (= 4 bloques)

- de CPU 1 a CPU 3: módulo de datos DX 4, DW O a DW 63 (= 2 bloques)

- de CPU 2 a CPU 1 módulo de datos DB 5, DW O a DW 95 (= 3 bloques)

DX 4, 2 bloques

DB 5 , 3 bloques t CPU 3

Fig. 10-7 Intercambio de datos entre 3 CPUs

En las tres CPUs, el módulo de funciones FB 1 ha de constituir la interfaz con el programa de usuario cíclico. En caso de NUEVO ARRANQUE, la CPU 1 ha de llamar a la función INICIALIZAR (OB 200). La lista de cmunicaciones ha de encontrarse en el módulo de datos DB 100.

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 509: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

1 . Cargar módulos

Hay que cargar los siguientes módulos además del OB 1 en las distintas CPUs:

Programa de usuario FB: SEND-DAT FB: EMPF-DAT Lista de comunicaciones

DB 5; DX 4

2 . Generar lista de comunicaciones

Primeramente se ha de generar la lista de comunicaciones y luego debe ser registrada en el DB 100:

LON=3 7 HOJA 1

Lista parcial 1 - -

KC = ' S l ' ; emitir de CPU 1 a .. KY = 001,003; .. CPU 2, el DB 3 KY = 002,004; . . CPU 3, el DX 4 KY = 000,000; K C = S 2 ; emitir de CPU 2 a .. KY = 001,005; .. CPU 1 , el DB 5 KY = 001,005; .. CPU 3, el DB 5 KY = 000,000; KC = '53'; KY = 000,000; KY = 000,000; KY = 000,000; KC = '54'; KY = 000,000; KY = 000,000; KY = 000,000;

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 510: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

Lista parcial 2 - -

KC = 'Sl'; emitir de CPU 1 a .. KY = 002,004; .. CPU 2, 4 bloques de datos KY = 003,002; .. CPU 3, 2 bloques de datos KY = 004,000;

emitir de CPU 2 a .. .. CPU 1, 3 bloques de datos KY = 003,003; .. CPU 3, 3 bloques de datos KY = 004,000; KC = '53'; KY = 001,000; KY = 002,000; KY = 004,000; KC = '54'; KY = 001,000; KY = 002,000; KY = 003,000;

Las palabras de datos DW 16 a DW 31 contienen la lista de asignaciones necesaria para la función INICIALIZAR manualmente (OB 200).

3. Programar la llamada al OB 200 en el módulo de arranque OB 20 para la CPU 1

El OB 200 es llamado durante el arranque por el OB 20 listado a continuación de la CPU 1.

LON=y yABS

SEGMENTO 1 inicialización manual de las páginas de memoria

En el DB 100 está registrada la lista de asignaciones a partir de la palabra de datos DW 16

OB de funciones especiales: :SPA OB 200 "Inicializar"

:UN M252.5 Fin de módulo si no se produce conflicto de inicialización

Aquí se intercala el tratamiento de errores en caso de conflicto de inicialización (por ej. stop, salida de aviso por impresora, o ...)

Cont inúa e n l a página s i g u i e n t e

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 511: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Modo multiprocesador y comunicación en multiprocesamiento

4. Programar las llamadas a los módulos de funciones en el FB 1 de las CPUs

En cada una de las CPUs se amplía el programa de usuario con la llamada a los módulos de funciones EMPF-DAT y SEND-DAT. El módulo de funciones FB 1, listado a continuación, está destinado para la CPU 1. Para la ejecución en las otras CPUs simplemente se tiene que modificar el parámetro de entrada CPUN (número de CPU) .

SEGMENTO 1 0000 NOMB . : EM-SE

Lista de comunicaciones DB 100 :SPA FBlOl Recibir los módulos de

datos de entrada 0003 NOMB.:EMPF-DAT 0004 CPUN : 0005 FEWA :

:SPB =FEWA Abortar si hay error/advertencia

Aquí se intercala el programa de usuario cíclico que lee datos de los módulos de entrada y registra datos en los módulos de datos de salida.

Lista de comunicaciones DB 100 :SPA FBlOO Emitir los módulos de datos

de salida 0012 NOMB.:SEND-DAT 0013 CPUN : 0014 FEWA :

:SPB =FEWA Abortar si hay error/advertencia

0018 FEWA : Después de error/advertencia ejecutar tratamiento de errores (aquí se intercala el tratamiento de errores, por ej. stop, salida de aviso de error por impresora o monitor, o...)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 512: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces y funciones del aparato de programación

Resumen breve El presente capítulo explica cómo acoplar el aparato de programación (PG) a una CPU 928B así como las ayudas que ofrece el software del aparato de programación para comprobar el programa STEP 5. En caso de utilizar únicamente la interfaz estándar del aparato de programación (lvnterfaz serie) no es necesario leer el capítulo 11.4. Este capítulo explica cómo acoplar un PG a una CPU a través de otras interfaces. Expone asimismo los aspectos a tener en cuenta en caso de utilizar las funciones del aparato de programación en ambas interfaces.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

11.1

11.2

11.2.1

11.2.2

11.2.3

11.3

11.4

11.5

11.5.1

11.5.2

11.5.3

Tema

Panorámica

Funciones del aparato de programación

Informaciones

Funciones de memorización y transferencia

Test del programa

Actividades en los puntos de control

Acoplamiento PG - AG a través de la 1" ó2" interfaz serie

Funcionamiento paralelo de dos interfaces serie de PG

Puesta en funcionamiento

Funcionamiento

Ejecución en determinados modos operativos

Página

11-2

11-3

11-5

11-5

11-7

11-15

11-16

11-17

11-19

11-19

11-21

Page 513: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces v funciones del a~arato de ~roaramación

11.1 Panorámica

Acoplamiento El programa de usuario se carga y comprueba mediante las funciones on line del al aparato de software STEP 5. programación

Para ello es necesario acoplar la CPU al aparato de programación. Se dispone de las siguientes interfaces:

acoplamiento a través de la interfaz serie estándar "PG - AG",

acoplamiento a través de la 2Vnterfaz serie de la CPU 928B.

Las funciones del aparato de programación se ejecutan paralelamente en ambas interfaces serie.

Cuadro sinóptico Las funciones del aparato de programación ofrecen las siguientes ayudas para de las funciones poner en funcionamiento y comprobar el programa STEP 5:

Tabla 11-1 Ayudas para la puesta en funcionamiento y test

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Ayuda Apartado

Información

Dirección más alta utilizable del cartucho RAM y última dirección ocupada del cartucho de memoria

Lista de módulos cargados

Visualizar contenido de palabrasi bytes de memoria y bytes de periferia

"Extensión de memoria"

"Lista de módulos"

"Salida dirección"

Administración de la memoria

Borrar toda la memoria

Comprimir espacio de mem. libre

Administrar módulos

"Borrado total"

"Comprimir memoria"

"Transferir/borrar módulos"

Test del programa

Arrancaridetener CPU

Comprobar secuencia de instrucciones en un módulo

Comprobar pasos del programa individualmente

Visulizar el estado lógico de las variables de proceso

Emitir señales de salida en stop

Visualizar/modificar variable de proceso

"AG-StartiAG-Stop"

"Status"

"Control de elaboración"

"Status variables"

"Forzado"

"Forzado variables"

Page 514: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces y funciones del aparato de programación

11.2 Funciones del aparato de programación

Conceptos Los conceptos usados a continuación para las funciones del aparato de usados programación pueden diferir de los conceptos empleados en el software del

aparato de programación utilizado.

Llamada y manejo

Ejecución

Puntos de control del sistema

Puntos de control del usuario

En el manual correspondiente al aparato de programación utilizado se explica cómo llamar y operar con las funciones del aparato de programación.

Nota Mientras la memoria se comprime mediante el OB 186, se rechaza la función del aparato de programación "Comprimir memoria". Otras funciones del aparato de programación sólo se pueden ejecutar entonces de forma limitada. Al estar activadas las funciones del aparato de programación se rechazará el OB 186.

En el autómata programable se ejecutan las funciones del aparato de programación en puntos de control definidos. Existen puntos de control en el programa de sistema (= puntos de control del sistema) y puntos de control en el programa de usuario (= puntos de control del usuario).

En el estado operativo STOP existe el punto de control de sistema "stop", el cual es llamado con regularidad.

En el estado operativo RUN se llama al punto de control del sistema "ciclo" al finalizar el nivel de programa CICLO, antes de la actualización de la imagen de proceso.

Si la CPU está en ESTADO DE ESPERA se llama con regularidad al punto de control del sistema "estado de espera".

Además existe un punto de control del sistema en función de tiempo "asíncrono". Este punto de control se anida de forma asíncrona durante el procesamiento del programa.

En las funciones de test "Status módulo" y "Control elaboración" se utilizan puntos de control del usuario. Se llama a un punto de control cuando se ha ejecutado una instrucción marcada por el aparato de programación.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 515: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces y funciones del aparato de programación

Estado operativo Hasta ahora el usuario conocía los estados operativos STOP, ARRANQUE y ESTADO DE RUN. En la función del aparato de programación "Control elaboración ONU la ESPERA CPU adopta un estado operativo adicional: el ESTADO DE ESPERA.

Cuando la CPU se encuentra en ESTADO DE ESPERA se pueden llamar a otras funciones del aparato de programación.

Características En el estado de espera no se procesa el programa de usuario.

LEDs de la placa frontal: LED RUN: apagado LED STOP: apagado LED BASP: encendido

Todas las células de tiempo están "congeladas", es decir, los temporizadores no están en marcha (y no se modifican). También se detienen todos los tiempos del sistema como por ejemplo los de regulación y los de procesamiento controlado por tiempo. Los temporizadores vuelven a funcionar una vez abandonado el ESTADO DE ESPERA.

En el ESTADO DE ESPERA se registran causas de interrupción tales como PEU, BAU, MPSTP o selector en posición STOP, pero no se produce ninguna reacción.

Interrupciones Si en el ESTADO DE ESPERA se han registrado causas de interrupción, inmediatamente después de abandonar dicho estado se llaman a los niveles de procesamiento correspondientes.

Cuando tiene lugar un NAU se abandona el ESTADO DE ESPERA y se interrumpe la función on line "Control elaboración". Después de la CONEXION en los bits de control estará marcado con una cruz BARBEND. El estado STOP sólo puede ser abandonado con un NUEVO ARRANQUE.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 516: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces y funciones del aparato de programación

11.2.1 Información

Extensión de memoria

La función de PG "Extensión memoria" visualiza en pantalla la dirección más alta utilizable en el cartucho de memoria RAM (en caso de EPROM se indica un 'O') y la última dirección del cartucho de memoria ocupada por módulos del programa de usuario.

Lista de módulos La función "Lista de módulos" visualiza en el aparato de programación la lista de todos los módulos programados. Se puede llamar a esta función mientras esté activada la función "Control de elaboración".

Salida dirección Con la función "Salida dirección (SAL. DIR)" puede hacerse visualizar en el aparato de programación el contenido de las direcciones de memoria y de periferia en formato hexadecimal. Se puede acceder a todas las direcciones. En la zona de la imagen de proceso no se activa ningún ADF si el correspondiente byte no tiene asignada ninguna tarjeta de EIS; y en la zona de periferia no se genera ningún QVZ.

En la zona direccionable por bytes (marcas, imagen de proceso) se representa el byte alto como 'FE'.

En la zona de periferia se indica el byte alto en forma de '00' para las direcciones que acusan recibo. Cuando una dirección de periferia no da el acuse, el byte alto se indica como 'FE'.

11.2.2 Funciones de memorización y transferencia

Borrado total Con la función "Módulos/Borrar/Todos módulos" se puede efectuar un borrado total de una CPU desde el aparato de programación. El borrado total se efectúa de forma incondicional (véase capítulo 4.3.2).

Si al llamar la función "Módulos/Borrar/Todos módulos" la CPU se encuentra en el estado ARRANQUE o RUN, en primer lugar pasa al estado STOP y después llama al OB 28 en caso de estar cargado.

Nota ¡NO se deberá efectuar un "borrado total" mientras esté activada la función "Control elaboración" !

Comprimir memoria

Esta función optimiza la ocupación de la memoria por parte de los módulos: el espacio que ocupan los módulos marcados como no válidos es sobreescrito por los módulos válidos y existentes en el programa de usuario (el módulo se carga en otro espacio de la memoria) de forma que se encuentren ordenados uno detrás del otro desde el principio de la memoria. Esto se hace por separado en el cartucho de memoria RAM y en la DB-RAM y puede efectuarse en los puntos de control del sistema "ciclo" y "stop".

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 517: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces y funciones del aparato de programación

En la CPU 928B siempre se puede ejecutar la función "Comprimir memoria" en STOP, incluso cuando la pila BSTACK no esté vacía.

Cuidado Después de "Comprimir memoria" en STOP sólo se podrá utilizar el modo de arranque NUEVO ARRANQUE. No se actualizan las pilas USTACK y BSTACK.

Fallo de la Si durante la compresión de la memoria tiene lugar un fallo de la tensión de red, tensión de red una vez restablecida la tensión habrá finalizado el proceso de compresión y no se durante la desplazarán más módulos. Llamando nuevamente a la función "Comprimir compresión memoria" continuará la compresión.

Errores en la La función "Comprimir memoria" detecta los siguientes errores en la memoria de memoria de módulos: módulos

longitud de módulo errónea,

patrón '7070' falsificado en la cabeza del módulo,

Tipo de módulo no válido (en caso de OBs: n v e módulo no válido).

Cuando se produce uno de estos errores se abandona la función y en el PG se visualiza el correspondiente aviso. En este caso hay que efectuar primero un "Borrado total"; la memoria quedará vacía.

Nota ¡NO se deberá utilizar la función "Comprimir memoria" mientras esté activada la función "Control elaboración" !

"Módulos/ Transferir"

Con esta función se transfieren los módulos de código y de datos nuevos o ya existentes a la memoria de usuario de la CPU o a la DB-RAM interna.

Si uno de los módulos ya se encuentra en la memoria de usuario de la CPU o en la DB-RAM, a éste se le asigna una marca que lo declara no válido. El módulo nuevo recibe a su vez una marca que lo declara válido. Los módulos sólo se declaran no válidos cuando no están siendo procesados.

"Módulos/Borrar" Esta función permite declarar no válidos a los módulos de código y de datos de la memoria de usuario de la CPU. Los módulos sólo se declaran no válidos cuando no están siendo procesados.

El espacio de memoria en el que estaban almacenados dichos módulos queda libre y, por tanto, puede ser aprovechado por otros módulos activando la función "Comprimir memoria".

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 518: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces y funciones del aparato de programación

11.2.3 Test del programa

AG-Startl El mando del aparato de programación corresponde al accionamiento manual. AG-Stop

Llamando a la función del aparato de programación "AG-Stop" en el estado operativo RUN el autómata programable se pone en STOP.

El estado de los LEDs en la CPU conectada al aparato de programación es el siguiente:

LED STOP: encendido

LED BASP: encendido

En los bits de control está marcado con una cruz el campo PG-STP. En modo multiprocesador se activa el bit de control MP-STP en las restantes CPUs.

Se puede arrancar una CPU mediante NUEVO ARRANQUE o REARRANQUE. En modo monoprocesador la CPU abandona el estado STOP, mientras que en modo multiprocesador se prefija en primer lugar el modo de arranque (bit de control NEUST o MWA activado), quedando la CPU en STOP. Activando a continuación la función "AG-Start" se arranca el autómata programable, lo que corresponde al mando del coordinador (selector en posición RUN).

En modo multiprocesador, la función "AG-Start" permite ejecutar sucesivamente el arranque deseado en todas las CPUs y arrancar el autómata programable cuando lo haya hecho la última CPU.

Función de PG NUEVO ARRANQUE: Se ejecuta un NUEVO ARRANQUE MANUAL de la CPU.

Función de PG REARRANQUE: Dependiendo de cómo esté ajustado el DX O se ejecuta un REARRANQUE MANUAL o un NUEVO ARRANQUE MANUAL CON MEMORIA.

Status módulo La función "Status" (estado) permite comprobar en cualquier lugar del programa de usuario determinadas secuencias de instrucciones (operaciones STEP 5) de un módulo. Por cada instrucción ejecutada en el módulo se visualizan en el aparato de programación los estados lógicos de los operandos, el contenido de los acumuladores, el VKE, etc. (paso a paso). Del mismo modo también se puede verificar la parametrización de módulos de funciones: se visualizan los estados lógicos de los operandos actuales.

Llamar función e El llamado "punto de parada" se prefija activando la función "Status" del aparato indicar el punto de programación e introduciendo el tipo y número del módulo (indicando de parada eventualmente el orden de anidamiento y el criterio de búsqueda) que debe ser

comprobado.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 519: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces y funciones del aparato de programación

Si se activa esta función durante el procesamiento del programa en RUN, el procesamiento continuará hasta alcanzar la instrucción marcada con el punto de parada prefijado, en el orden de anidamiento correcto. A continuación se ejecutan las instrucciones supervisadas hasta el límite de la instrucción. El resultado del procesamiento de las instrucciones se visualiza en el aparato de programación.

Llamada en STOP La función "Status" también puede ser llamada en STOP. Después se puede efectuar un NUEVO ARRANQUE o un REARRANQUE MANUAL. La CPU procesa entonces el programa de usuario hasta el punto de parada establecido. Luego se emiten los datos correspondientes a la secuencia de instrucciones deseada. Por consiguiente, la función "Status" también será adecuada para comprobar el programa de usuario en el arranque o en el primer ciclo.

Nota El resultado del procesamiento de las instrucciones no se visualiza en cada ciclo.

Anidamientos e Una secuencia de instrucciones marcada por un punto de parada prefijado se interrupciones ejecuta de forma completa, aunque entretanto se haya anidado y procesado otro

nivel de procesamiento (por ej. un OB de error, una alarma de proceso o temporizada) en un límite de instrucción. Si la CPU se pone en STOP a causa de una interrupción en el nivel de programa anidado, entonces se visualizan en el estado STOP los datos procesados hasta la última instrucción ejecutada antes del anidamiento. Los datos de las instrucciones restantes se rellenan con '0' (también SAZ = 0).

Cuando la CPU cambia de un modo operativo a otro (por ej. RUN += STOP +=

REARRANQUE MANUAL), la función queda activada. Para finalizar la función "Status" hay que pulsar la tecla de interrupción en el aparato de programación.

Control de elaboración

Con la función "Control de elaboración" se pueden comprobar en cualquier parte del programa de usuario pasos del programa de forma independiente. Para ello es necesario detener el procesamiento del programa y dejar que la CPU procese una instrucción detrás de la otra. Por cada instrucción procesada se visualizan en el aparato de programación los estados lógicos actuales de los operandos, el contenido de los acumuladores, el VKE, etc.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 520: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces y funciones del aparato de programación

Llamar función e Para llamar a la función "Control de elaboración" hay que indicar el tipo y indicar el primer número del módulo a comprobar (en caso necesario indicar el orden de punto de parada anidamiento) y marcar en el aparato de programación la primera instrucción

cuyos datos se desean visualizar. Así se indica un primer punto de parada. En los bits de control estará marcado con una cruz BARB. Se bloquean las salidas (el LED BASP luce).

Llamada en el ARRANQUE y en RUN

Cuidado Si se ajusta el modo test en el coordinador no se bloquean las salidas (LED BASP = apagado). Si entonces se procesan instrucciones que modifiquen la periferia digital, o si la CPU ejecuta la actualización de la imagen de proceso, los generadores de señales emitirán las correspondientes señales.

Si se ha prefijado el primer punto de parada durante el procesamiento del programa en el ARRANQUE o en RUN, la CPU continúa el procesamiento hasta alcanzar la instrucción marcada como punto de parada. La instrucción se ejecuta hasta su límite (las instrucciones BMW y BDW se procesan incluida la instrucción de sustitución). Después la CPU pasa al ESTADO DE ESPERA donde se emiten los datos de la instrucción que ha sido marcada y procesada por último.

Llamada en STOP También se puede llamar la función "Control de elaboración" en STOP y prefijar un primer punto de parada. La CPU permanece en STOP. A continuación se puede realizar tanto un NUEVO ARRANQUE como un REARRANQUE MANUAL. La CPU ejecuta el procesamiento del programa hasta la instrucción marcada y se comporta como se indica.

Continuar la Punto de partida: La CPU se encuentra en ESTADO DE ESPERA. función y prefijar otro punto de Para continuar la función, existen dos posibilidades. parada

lo Prefijar un punto siguiente de parada:

El punto de parada prefijado se desplaza una instrucción. A partir de ahí, la CPU abandona el ESTADO DE ESPERA y continúa el procesamiento del programa hasta esta instrucción. Cuando la instrucción ha sido procesada hasta su límite, la CPU vuelve al ESTADO DE ESPERA y emite los datos desde ahí.

Si la instrucción es alcanzada en un nivel de programa anidado, la CPU continúa el procesamiento. El punto siguiente de parada permanece prefijado como antes.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 521: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces y funciones del aparato de programación

1 ::seStado STOP no se puede prefijar ningún punto siguiente de parada!

2" Prefijar un nuevo punto de parada:

Prefijar en el aparato de programación una instrucción cualquiera en el mismo módulo o en otro. La CPU continúa el procesamiento del programa hasta alcanzar el nuevo punto de parada. La instrucción se procesa hasta su límite. A continuación la CPU visualiza los datos.

Con la función "Control elaboración" también puede conseguirse que la CPU recorra todo un ciclo adicional (comprobar por ciclos). Para ello en el ESTADO DE ESPERA se deberá colocar el punto de parada en la misma instrucción que antes. Sin embargo, la instrucción no debe encontrarse en un bucle de programa. En este caso se ejecuta una vez el bucle; no se procesa el programa más allá del límite del ciclo.

Nota En el ESTADO DE ESPERA pueden llamarse otras funciones como "Directorio", "Status variables" o "Forzado variables". En cuanto se reemprende el procesamiento del programa tras abandonar el ESTADO DE ESPERA, los temporizadores y los tiempos de sistema vuelven a funcionar hasta que se alcance otro punto de parada.

Anular el punto Si aún no se ha alcanzado un punto de parada prefijado se tiene la posibilidad de de parada anularlo posteriormente, accionando en el aparato de programación la tecla de

interrupción. La CPU pasa al ESTADO DE ESPERA. Luego se puede prefijar un nuevo punto de parada o llamar a la función "Control elaboración OFF".

Abortar la función

Llamando a la función "Control elaboración OFF" se puede abortar la función durante el procesamiento del programa y en el ESTADO DE ESPERA y en STOP. La CPU pasa a STOP (o permanece en STOP). EL LED STOP parpadea de forma lenta. En los bits de control hay una cruz en BARBEND. Después hay que efectuar un NUEVO ARRANQUE. Si durante la función "Control de elaboración" se produce un error de interfaz (interrupción en el cable del aparato de programación) se aborta la función tal como se indica arriba.

Anidamientos Si se ha activado la función "Control de elaboración" se pueden anidar otros niveles de procesamiento una vez abandonado el ESTADO DE ESPERA.

Si la instrucción ha sido procesada en el punto de parada y en este punto se ha llamado a otro nivel de procesamiento (por ej. un OB de error o de alarma), entonces se anidará y procesará este nivel hasta el final, sólo cuando se vuelva a abandonar el ESTADO DE ESPERA.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 522: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces v funciones del a~arato de ~roaramación

Nota Los datos se leen y emiten en el límite de la instrucción. Los posi- bles anidamientos restantes aún no han sido procesados.

La figura 11-1 muestra cómo se ejecuta la función "Control de elaboración.

ler punto de -, Ejecutar instrucc. parada

l leer datos I y I ESTADO DE ESPERA (emitir datos)

Punto de Alarma de proceso,

parada c alarma temporizada,

siguiente OB de error

1 Yier datos 1 ~ ESTADO DE ESPERA (emitir datos)

+ 1 Alarma de proceso, N alarma temporizada,

OB de error I

1

Fig. 11-1 Ejecución del test en "Control de elaboración"

Las peticiones como PEU, MP-STP, selector en posición STOP etc., efectuadas durante el ESTADO DE ESPERA sólo se registran pero no se ejecutan. Sin embargo, tienen efecto tan pronto como se abandone el ESTADO DE ESPERA: se anidará un nivel de procesamiento de programa o una interrupción hará que la CPU pase a STOP. Rige el orden en que tengan lugar los sucesos. Las peticiones simultáneas se efectuarán según su prioridad.

Nota Si la CPU se encuentra en el ESTADO DE ESPERA y hay una petición de anidamiento, se tiene la posibilidad de colocar el punto de parada en una instrucción del anidamiento. Así, por ejemplo, se puede observar un OB de error de QVZ cuando se ejecuta una instrucción que produce un retardo en acuse de recibo.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 523: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces v funciones del a~arato de ~roaramación

Interrupciones Procesamiento del programa (ARRANQUEIRUN) += estado STOP:

Si durante el procesamiento del programa tiene lugar una interrupción (por ej. STOP en modo multiprocesador, periferia no disponible, selector en STOP, OB de error no programado, etc.) y el punto de parada prefijado aún no ha sido alcanzado, la CPU se pone inmediatamente en STOP. Si ahora se realiza un arranque (NUEVO ARRANQUE o REARRANQUE MANUAL) la función "Control de elaboración" permanece activada y el punto de parada sigue estando prefijado.

Procesamiento de la instrucción en el punto de parada (ARRANQUEIRUN) += estado STOP:

Si durante el procesamiento de la instrucción en el punto de parada o en el punto siguiente de parada aparecen peticiones de STOP (selector en STOP, instrucción STEP 5 STS, OB de error no programado), la CPU se pone inmediatamente en STOP tras procesar la instrucción. Si no se prefija ningún otro punto de parada en STOP, la CPU pasa al ESTADO DE ESPERA tras ejecutar el ARRANQUE. La función "Control de elaboración" queda activada.

Estado de espera += STOP

Las causas de interrupción que tienen lugar durante el ESTADO DE ESPERA (por ej. stop multiprocesador, periferia no disponible, selector en posición STOP) o que provienen de la instrucción anterior (error que conduce a STOP) son registradas, pero la CPU sigue en ESTADO DE ESPERA. Sólo cuando se vuelva a indicar otro punto de parada durante el ESTADO DE ESPERA y la CPU abandone dicho estado, las causas de interrupción producirán un cambio al estado STOP. El nuevo punto de parada quedará prefijado si se ejecuta un ARRANQUE (NUEVO ARRANQUE o REARRANQUE MANUAL).

Nota Si en el ESTADO DE ESPERA se acciona el selector de RUN a STOP la CPU sólo se pondrá en STOP tras abandonar el ESTADO DE ESPERA.

Si durante el "Control de elaboración" la CPU pasa al estado STOP a causa de ciertas interrupciones, ¡después del ARRANQUE seguirá activada la función "Control de elaboración" (y eventualmente el punto de parada prefijado)!

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 524: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces y funciones del aparato de programación

Status variables Con la función de PG "Status variables" se pueden visualizar los estados lógicos actuales de determinados operandos (variables de proceso).

Esta función activa puntos de control de sistema en el CICLO, en STOP y en el ESTADO DE ESPERA.

Cuando se alcanza un punto de control se visualiza el estado lógico actual de las variables de proceso deseadas. Se pueden indicar todas las variables de proceso (entradas, salidas, marcas, temporizadores, contadores y palabras de datos). En la zona de imagen de proceso no se activa ningún ADF en caso de acceder a una dirección a la que no se le haya asignado periferia alguna.

Ejecución Si se ejecuta la función en el estado operativo RUN o ARRANQUE, el durante el procesamiento del programa continúa hasta alcanzar el punto de control de procesamiento sistema "ciclo". Al final del ciclo se consultan y visualizan los estados lógicos de del programa los operandos. Las entradas se leen de la imagen de proceso. Mientras no se

interrumpa la función, los estados lógicos se actualizarán cíclicamente durante el procesamiento del programa. Sin embargo, no se consultan en todos los puntos de control de sistema. ¡Si no se alcanza el punto de control "ciclo" no se visualizan los estados lógicos (por ej. en un bucle continuo del programa de usuario)!

Ejecución de la Cuando se ejecuta la función "Status variables" en STOP se visualizan los función en STOP estados lógicos de los operandos tal y como se encuentran en el punto de control

"stop". Lo importante es que las entradas se consultan y emiten directamente desde la tarjeta de EIS. De este modo se puede comprobar, por ejemplo, si una señal de entrada periférica logra llegar a la CPU. En modo multiprocesador también se pueden indicar todas las entradas, independientemente de la asignación establecida en el DB 1. Las salidas se leen en la imagen de proceso.

Ejecución de la También se puede llamar a la función "Status variables" cuando la CPU se función en encuentra en ESTADO DE ESPERA con la función "Control de elaboración". ESTADO DE En el punto de control "estado de espera" se consultan y emiten los estados ESPERA lógicos de los operandos. Al igual que en el estado STOP las entradas se leen

directamente, mientras que las salidas se leen de la imagen de proceso.

Cambio de Cuando la CPU cambia de un estado operativo a otro (por ej. RUN += STOP +=

estado operativo/ REARRANQUE MANUAL), la función "Status variables" permanece activada. finalizar la Se finaliza pulsando la tecla de interrupción en el aparato de programación. función

Las variables no se emiten en todos los ciclos de programa. l

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 525: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces y funciones del aparato de programación

Forzado Con la función "Forzado" se pueden ajustar directamente a un estado lógico determinado los bytes de salida del autómata programable (sin necesidad de la imagen de proceso) y detectar generadores de señales que no acusen recibo (periferia digital O a 127) (aviso en el aparato de programación). También se pueden comprobar y comandar directamente los aparatos de proceso alimentados por las salidas ("actuadores" como por ej. motor, válvula).

¡La función "Forzado" sólo es admisible en STOP! l Ejecución de la Cuando se llama a la función en STOP se suprime el bloqueo de salidas función (BASP = desactivado). Toda la periferia digital (FOOOH a F07FH) se borra,

siendo sobreescritas todas las direcciones con el valor 'O'. Esta función no puede ser interrumpida durante el borrado de la periferia. ¡Las salidas periferícas se fuerzan directamente, de byte en byte y sin alterar la imagen de proceso de las salidas! En modo multiprocesador pueden forzarse todas las salidas periféricas (independientemente de la asignación de periferia en el DB 1).

Si la función está activada (aviso "Forzado finalizado" en el aparato de programación) se puede ejecutar un NUEVO ARRANQUE o un REARRANQUE MANUAL. Si se retorna a STOP se puede volver a forzar. En este caso no se borran los generadores de señales de salida.

Finalizar la función

Forzado de variables

La función se finaliza pulsando la tecla de interrupción en el aparato de programación. El bloqueo de las salidas se activa nuevamente (diodo luminoso BASP = encendido).

Con la función del aparato de programación "Forzado variables" pueden modificarse una vez los valores de operandos (variables de proceso). Esto es posible en cualquier estado operativo de la CPU. Se pueden indicar todas las variables de proceso. En la zona de la imagen de proceso no se activa ningún ADF en caso de acceder a una dirección que no tenga asignada periferia alguna. La modificación actúa en los puntos de control del sistema de forma "asíncrona", es decir, sólo al final del ciclo. Cabe tener en cuenta que los valores forzados pueden ser sobreescritos posteriormente (por ej. por el programa de usuario o la actualización de la imagen de proceso).

Nota El aparato de programación fuerza las variables de proceso E, A, M byte por byte y DW, T, Z palabra por palabra.

En caso de forzar varios operandos, los bytes modificados (en caso de DW, T, Z las palabras) se modificarán sucesivamente en la memoria, llamando varias veces a la función.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 526: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces v funciones del a~arato de ~roaramación

11.3 Actividades en los puntos de control

Cuadro sinóptico La tabla siguiente muestra las tareas que ejecutan las funciones de PG en los puntos de control de sistema.

Tabla 11-2 Actividades en los puntos de control

l) Actividades que pueden ser distribuidas a lo largo de varios puntos de control del sistema ') Máximo un módulo por cada punto de control de sistema 3, Después de "Comprimir en STOP" se requiere un NUEVO ARRANQUE

Actividades de las funciones on line

Entrar la dirección: escribir datos ')

Entrar el módulo: declarar válido el módulo

Borrar módulo

Comprimir memoria: desplazar módulo 1) 2)

STARTISTOP

BORRAR

STATUS: leer datos y emitirlos

STATUS VARMLES: leer datos y emitirlos

CONTROL DE ELABORACION: predeterminar puntos de parada leer datos y emitirlos

FORZADO (generador de señal) ')

FORZADO VARIABLES 1)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Punto de control de Usuario "Stop"

* 3)

Punto de

"Ciclo"

control de sistema

"Estado de espera "

"Asincróno"

Page 527: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces v funciones del a~arato de ~roaramación

11.4 Acoplamiento PG - AG a través de la 1" ó2" interfaz serie

Posibilidades de E1 acoplamiento "aparato de programación - autómata programable" puede acoplamiento realizarse de distintas maneras:

Conexión directa con la CPU - a través del cable de conexión estándar

Conexión con el aparato de programación a través del coordinador KOR C; el aparato de programación se conecta al coordenador mediante el cable de conexión. De este modo ya no puede utilizarse la lqnterfaz serie.

Conexión con el aparato de programación a través de un multiplexor del aparato de programación 757. En el manual del sistema S5-135U1155U (bibliografía 120 pueden consultarse los cables de conexión válidos.

Conexión con el aparato de programación a través de SINEC H1/ L21L1 y "puente"; es posible interconectar un KOR C o un multiplexor del aparato de programación.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 528: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces v funciones del a~arato de ~roaramación

11.5 Funcionamiento paralelo de dos interfaces serie de PG

Introducción La segunda interfaz de la CPU 928B (SI 2) puede ser utilizada como interfaz con el aparato de programación del mismo modo que la primera.

Para poder acoplar el aparato de programación a través de esta interfaz se deberá pedir adicionalmente el módulo de interfaces del aparato de programación (el nQ de referencia está indicado en el manual del sistema 135U/155U, bibliografía 124.

Fig. 11-2 Utilización de la segunda interfaz como interfaz de PG

Todas las funciones del aparato de programación pueden ser utilizadas con ambas interfaces. A continuación se exponen todas las informaciones necesarias para poder operar con aparatos de programación u OPs utilizando simultáneamente ambas interfaces.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 529: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces v funciones del a~arato de ~roaramación

Ejemplos de configuración

CPU 928B CP 143 - SI1 PG conectado v ía SINEC H1 y KOF

- S12 PG conectado directamente

Fig. 11-3 Ejemplo de configuración 1

SS 1 OP conectado directamente (para mando y observación

- SS 2 PG conectado directamente (para programación)

Fig. 11-4 Ejemplo de configuración 2

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 530: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces v funciones del a~arato de ~roaramación

11.5.1 Puesta en funcionamiento

Procedimiento Para poder utilizar la segunda interfaz de la CPU 928B como interfaz del aparato de programación se debe proceder de la siguiente manera:

1" Montar el módulo de interfaces del PG en la CPU 928B.

2" Conectar el aparato de programación a la interfaz serie SI2.

11.5.2 Funcionamiento

Funciones En caso de emplear la segunda interfaz serie como interfaz del aparato de integradas en programación, se dispondrá en cada interfaz del total de funciones de la interfaz el aparato de estándar del aparato de programación, a menos que las funciones no se programación interfieran unas a otras, es decir, que deben ser llamadas una tras otra.

Es conveniente dividir las funciones del aparato de programación en tres grupos para entender mejor las excepciones:

Cuidado En el caso de las funciones cíclicas y de larga duración es necesario coordinar su llamada en ambos aparatos de programación.

Grupo

Funciones de corta duración

Funciones de larga duración

Funciones cíclicas

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Características

Funciones que acaban después de ejecutar una petición (por ej. "transferir", "borrar", etc.)

Funciones que ejecutan una cantidad fija de peticiones: - "Forzado", - "Control de elaboración".

Funciones que repiten una petición hasta que son finalizadas por el usuario: - "Status módulo", - "Status variables",, - "Forzado variables".

Page 531: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces v funciones del a~arato de ~roaramación

Funciones que La siguiente tabla muestra las funciones que no pueden ser ejecutadas no pueden ser paralelamente. ejecutadas paralelamente

Tabla 11-3 Funciones que no se ejecutan paralelamente en dos PGs

En caso de no respetar lo indicado, el segundo aparato de programación dará un aviso de error, por ej.: "Función AS bloqueada ".

En el primer PG se ejecuta la función:

"Forzado"

"Control de procesamiento"

una función "Status"

una función "Status"

una función "Status"

"Status" en módulos no procesados o de larga duración

Se visualiza el mismo aviso o bien "exceso de tiempo en intercambio de datos conAG" cuando la CPU 928B esté procesando funciones del otro aparato de programación que impiden el acceso del aparato durante la supervisión del tiempo. En este caso no se aceptará la entrada efectuada y habrá que repetirla una vez hayan acabado las funciones del otro aparato de programación.

Esta función no es válida en el segundo PG:

toda función

toda función

"Forzado"

"Control de elaboración"

"Borrado total"

toda función

Nota En caso de que difiera el volumen de funciones de los aparatos de programación y OPs, la supervisión del tiempo y los avisos de error no serán iguales.

Si en ambos aparatos de programación se activa simultáneamente la función "extensión de memoria" pueden aparecer indicadores erróneos.

Cuidado En caso de introducir, corregir o borrar a la vez, módulos en ambos aparatos de programación de forma on line, hay que tener presente que los módulos no están protegidos del acceso por parte del otro aparato de programación. Si se efectúa "Status" en un módulo no arrancado o "Status" en STOP, la otra interfaz quedará bloqueada para todas las funciones.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 532: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces y funciones del aparato de programación

11.5.3 Ejecución en determinados modos operativos

Funcionamiento En caso de estar operando con aparatos de programación en ambas interfaces a la paralelo con vez, ambos aparatos de programación intentarán ejecutar las funciones uno funciones de independientemente del otro. Mientras envíen sus peticiones de forma alternada a corta duración la CPU éstas serán ejecutadas en el orden en que sean recibidas.

Sin embargo puede ocurrir que la CPU 928B reciba dos peticiones simultáneas, o bien que reciba una petición del segundo aparato de programación mientras se esté ejecutando todavía una petición del primero. Puesto que el procesamiento simultáneo no es posible, ambas peticiones serán ejecutadas una tras otra. No obstante, los tiempos de espera entre ambas peticiones suelen ser tan breves que el usuario apenas puede percibirlos.

Por consiguiente, en el caso de peticiones simultáneas, las operaciones se ejecutarán en el siguiente orden:

Usuario de l PG 1 CPU 9288 Usuario de l PG 2

Entrada en PG 1 por teclado 7 r Entrada en PG 2 por teclado Procesar entrada 1 en PG 1 Procesar entrada 2 en PG 2

Transferir ~ e t i c i ó n 1 a la CPU k ! El PG 2 debe esperar aquí a

Procesar petición 1 en la CPU que la CPU haya terminado de procesar la petición 1.

Transferir resultado 1 al PG 1 Transferir petición 2 a la CPU

Procesar datos resultado 1 Procesar petición 2 en la CPU

Visualizar resultado 1 en PG 1 Transferir resultado 2 al PG 2

1 Procesar resultado 2 en PG 2

b Visualizar resultado 2 en PG 2

Fig. 11-5 Ejecución en caso de peticiones simultáneas

El esquema muestra que es posible operar en ambos PGs de forma independiente sin que haya interferencias. Por lo tanto, puede ocurrir que ambos aparatos de programación estén procesando simultáneamente el mismo módulo, o también que un aparato de programación borre el módulo que está procesando el otro. Por consiguiente, siempre se deberá tener en cuenta en qué medida puede ser alterado el comportamiento del otro aparato de programación.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 533: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces v funciones del a~arato de ~roaramación

Funcionamiento Las funciones de larga duración "Forzado" y "Control de elaboración" no pueden paralelo con interrumpir ninguna otra función y tampoco pueden ser interrumpidas por otra funciones de función. Por lo tanto, tampoco pueden ser ejecutadas de forma paralela, es decir, larga duración que son tratadas en forma de bloque como una petición estándar.

Funcionamiento Las funciones cíclicas pueden ser ejecutadas paralelamente a funcio- paralelo con nes cíclicas o de corta duración. El ejemplo siguiente muestra el orden de funciones ejecución estándar de la función "Status variables". cíclicas

Usuar io de l PG 1 CPU 928B Usuar io de l PG 2

El PG 1 comunica a la CPU las var iables que deben ser v isual izadas.

El PG 1 sol ic i ta los datos actuales.

El PG 1 sol ic i ta los datos actuales. PG 2 efectúa la petición.

El PG 2 debe esperar a que la CPU esté l ibre.

El PG 1 sol ic i ta los datos actuales.

11 Se procesa la pet ic ión del PG 2.

El PG 1 debe esperar a que la CPU esté l ibre.

/ Ha final izado la pet ic ión del PG 2

El PG 1 sol ic i ta 4

los datos actuales. 7

Fig. 11-6 Tipica ejecución paralela de una función cíclica y una función de corta duración

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 534: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lntertaces v funciones del a~arato de ~roaramación

A fin de posibilitar que un segundo aparato de programación pueda en-viar su petición a la CPU, se interrumpe la función "Status" entre dos peticiones y se reanuda después de haberse intercalado la petición. Puesto que la función interrumpida necesita del rendimiento del sistema de la CPU, es necesario repartirlo entre las dos funciones, por ej. en el caso de la función "Status variables", los datos a visualizar se actualizan a menor velocidad.

La figura 11-7 ilustra el caso que ocurre cuando en ambos aparatos de programación se ejecutan funciones cíclicas; ambos aparatos de programación se reparten el acceso a la CPU.

Usuario d e l PG 1 CPU 9288 Usuario d e l PG 2

El PG 1 comunica a l a CPU las var iab les que deben ser v isual izadas.

4 El PG 1 so l ic i ta l os datos actua les. 1

El PG 1 so l ic i ta l os datos actua les. PG 2 efectúa l a la pet ic ión.

E l PG 2 debe esperar a que l a CPU esté l ibre.

E l PG 1 so l ic i ta l os datos actua les.

Se procesa l a 1Qet ic ión de l PG 2.

E l PG 1 debe esperar a que l a CPU esté l ibre.

H a f ina l izado l a IQe t i c i ón de l PG 2.

[C PG 2 ent rega l a 2 a pet ic ión

El PG 1 so l ic i ta l os datos actua les. -f

' l Se procesa l a Z a pet ic ión de l PG 2.

E l PG 1 debe esperar a que l a CPU esté l ibre

7 H a f ina l izado l a 2 a pet ic ión de l PG 2.

t

Fig. 11-7 Ejecución paralela de dos funciones cíclicas

I n s t r u c c i o n e s de p r o g r a m a c i ó n CPU 9 2 8 B - 3 U B 2 1

C 7 9 0 0 0 - G 8 5 7 8 - C 8 7 0 - 0 1

Page 535: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lnterfaces v funciones del a~arato de ~roaramación

Particularidad en Si la función que provoca la interrupción bloquea a la CPU 928B ("Status" en un caso de ejecutar módulo que no es ejecutado), la función interrumpida también quedará funciones cíclicas bloqueada hasta que finalice la función causante de la interrupción. en ambos aparatos de programación En caso de utilizar ambos aparatos de programación a la vez, la ejecución será la

siguiente:

U s u a r i o d e l PG 1 CPU 928B U s u a r i o d e l PG 2

El PG 1 comunica a l a CPU las var iab les que 7 deben ser v isual izadas. 1

4 El PG 1 so l ic i ta los datos actuales (el PG ind ica: ' 'se e jecuta status' l). 3 El PG 1 so l ic i ta los datos actuales ? El PG 2 entreaa la aet ic ión

1 (por e j . ' 'statu; PB 9" ) I El PG 2 debe esperar

a que la CPU esté l ibre.

1 El PG 1 so l ic i ta Se procesa l a pet ic ión del PG 2

los datos actuales. l (El PG ind ica: 'se e jecuta

s ta tus ' )

El PG 1 debe esperar a que la CPU esté l ibre

(El PG ind ica: no se e jecuta esta inst rucc ión) .

El PG 2 in terrumpe ' S t a t u s ' , la CPU procesa l a pet ic ion de t runcamiento.

1 Ha f ina l izado l a pet ic ión del PG 2

El PG 1 rec ibe nuevos datos. 7 Fig. 11-8 Ejecución cuando una función bloquea la CPU 928B

Indicaciones Si por una interfaz se emite "Status variables", "Forzado variables" generales (visualización de status) o "Status" y por la otra interfaz se ejecuta "Comprimir

memoria", "Borrar módulo" o "Transferir módulo" los indicadores de status pueden resultar erróneos.

instrucciones de p r o g r a m a c i ó n CPU 928B-3UB21

C79000-G8578-C870-01

Page 536: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Resumen breve Este anexo contiene informaciones adicionales sobre algunas CPUs para autómatas programables S3-135U y S5-155U, tales como una comparativa de los tiempos de ejecución respectivos.

lndice del capítulo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Capítulo

A. 1

A.2

A.3

A.4

A.5

Tema

Comparación de los tiempos de ejecución de las CPUs 928-3UA21,928B-3UB21 y 948

Identificadores de error

Operaciones STEP 5 no disponibles en la CPU 928B

Identificaciones de los niveles de procesamiento

Ejemplo de "evaluación de la pila USTACK"

Página

A-2

A-5

A-13

A-14

A-15

Page 537: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

A.l Comparación de los tiempos de ejecución de las CPUs 928-3UA21,928B-3U B21 y 948

Definición de los conceptos

Carga base

La carga base es el tiempo de ejecución del sistema sin contar los tiempos de actualización de la imagen de proceso, de transferencia de marcas de acoplamiento y de interrupciones debidas a alarmas o errores.

Tiempo de reacción

El tiempo de reacción es el tiempo que transcurre desde que se activa el nivel de procesamiento ALARMA DE PROCESO hasta que se elabora la primera operación en el OB 2, suponiendo que el OB 2 pueda ser llamado inmediatamente después de que se detecte la alarma de proceso. Si, por el contrario, hay que esperar al próximo límite de instrucción o de módulo, el tiempo de reacción se prolongará en el tiempo de espera.

Comparación de los tiempos de ejecución

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación 1 procesamiento CPU 928-3UA21

Tiempos de ejecución típicos para instrucciones de bits:

CPU928B-3UB21

con M, E, A D Operando formal

CPU 948

09 Ys 23 ys 23 ys

Tiempos de ejecución típicos para instrucciones de palabras:

0,57 ys

3,4 ys 2,4 YS

- Operaciones de carga L (byte) L MW @alabra) L MD @alabra doble)

- Aritmética de coma flotante - Aritmética de coma fija

0,18 ys

0,7 y~ 0,91 ys

11 ys 11 ys 11 ys

11 ... 23 ys 25 ys

Procesamiento cíclico (modo monoprocesador)

0,81 ys

09 ys 1,6 YS

0,9 ... 10,4 ys 9,l ... 15,6 ys

Carga base al llamar OB 1IFB O:

Tiempo añadido en caso de actualización de la imagen de proceso, en función de la cantidad de bytes E/S (n)

siendo O c n 5 128

0,18 ys

OS ys 0,71 ys

0,55 ... 3,8 ys 3,3 ... 6,3 ys

1041106 ys

E: 14 ps + n * 1,1 ps S: 5 ys + * 4,1 ys

651- ys

11564: 64 ys t n * 2,3 ps

ns64: 92 ys t n * 2,3 ps

Page 538: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación / procesamiento

Tiempo añadido en caso de transferencia de marcas de acoplamiento, en función de la cantidad de marcas de acoplamiento (n)

siendo O e n 5 256

Tiempo añadido en caso de procesar temponza- dores, en función de la longitud de los bloques de tiempo (ZBL)

ZBL =O ZBLgO n = cantidad de temporizadores en ejecución (escala de tiempo: 10 ms)

CPU 928-3UA21

Procesamiento controlado por alarma

CPU928B-3UB21

Prolongación del tiempo de ciclo por anidamiento de un OB 2 vacío (sin operaciones STEP 5) en un límite de módulo

Tiempo de reacción

CPU 948

E: 14 ys + n * 1,l ys S: 5 ys + n * 4,l ys

cada 10 ms 10 ys

16 ys + ZBL * 0,2 ys (no hay diferencia entre los

temporizadores en ejecución y los temponzadores sin ejecutar)

11564: 64 ys + n * 2,l ps

n s 6 4 : 92 ys + n * 2,l ps

cada 10 ms 11,6 ys 16 ys +

ZBL * 0,2 ys

300 ys

270 ys

Procesamiento

Prolongación del tiempo de ciclo por anidamiento de un OB 13 vacío (sin operaciones STEP 5) en un límite de instrucción

Base de tiempo de llamada al programa controlado por tiempo (alarmas temporizadas OB 10 a OB 18)

Tiempos de resolución para alarma temponzada controlada por reloj (OB 9)

Tiempo de resolución para alarma de retardo (0'3 6)

300 ys

270 ys

262 ys

175 ys

controlado por

310 ys para el pnmer OB de

alarma temponzada

170 ys por cada OB adicional

que deba ejecutarse al mismo tiempo

10,20,50,100, 200,500 ms,

1 ,2 ,5 S

-

-

tiempo

310 ys para el primer OB de

alarma temponzada

170 ys por cada OB adicional

que deba ejecutarse al mismo tiempo

10,20,50,100, 200,500 ms,

1 ,2 ,5 S

cada minuto, cada hora, cada día,

cada semana, cada mes, cada año, una vez

-

287 ys

vanabler Grundtakt von 1 ... 255 ms;

Angabe bezogen auf 10 ms:

10,20,50,100,200, 500ms; 1,2,5 S

oder 10,20,40,80, 160,

320,640 ms ; 1,28 S, 2,56 S

cada minuto, cada hora, cada día,

cada semana, cada mes, cada año, una vez

1 ms

Page 539: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Operación / procesamiento CPU 928-3UA21

Supervisión del tiempo de ciclo

CPU928B-3UB21

Ajuste por defecto regulable entre

Disparable (tngger)

CPU 948

150 ms 1 ... 13000 ms

Capacidades de memoria

150 ms 1 ... 13000 ms

Capacidad del cartucho de memoria de usuario (en Kb yte)

Capacidad de la memona de módulos de datos (DB-RAM, en Kbyte)

200 ms 1 ... 2550 ms

64

46,6 aprox.

Temponzadores y contadores, marcas

64

46,6 aprox.

Cantidad de temporizadores y contadores

Cantidad de marcas

640 ó 1664

-

256 respectivamente

2048 marcas

256 respectivamente

2048 marcas t 8192 marcas S

256 respectivamente

2048 marcas t 32768 marcas S

Page 540: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

A.2 ldentificadores de error

ldentificadores de error en los datos de sistema B S 3 y B S 4

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

BS 3 BS 4 Significado

Estructura de las listas de direcciones de módulos (evaluación del DB O)

8001H

8002H

8003H

8004H

8005H

yyyyH

yyyyH

yy yyH

yyyyH

yyyyH

Longitud de módulo errónea yyyy = dirección del módulo cuya longitud es errónea

Dirección final calculada del módulo en la memoria es errónea yyyy = dirección del módulo

Identificación de módulo errónea yyyy = dirección del módulo cuya identificación es errónea

Número del módulo de organización demasiado elevado (válido: OB 1 a OB 39) yyyy = dirección del módulo cuyo número es erróneo

Número del módulo de datos O (válido: DB 1 a DB 255) yyyy = dirección del módulo cuyo número es erróneo

Estructura

0410H

0411H

0412H

0413H

0414H

0415H

0419H

041AH

041BH

041CH

de las

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

listas de direcciones para la actualización de la imagen de proceso (evaluación del DB 1)

Identificación no válida: - Falta la identificación de la cabeza o es errónea (correcta KC MASKO1) - Identifición no válida (válida KH DEOO, DAOO, CEOO, CAOO, BBOO) - Falta la identificación final o es errónea (correcta KH EEEE) yyyy = identificación no válida

"Entradas digitales", cantidad de direcciones no admisible (admisibles O ... 128) yyyy = cantidad de direcciones no admisible

"Salidas digitales", cantidad de direcciones no admisible (admisibles O ... 128) yyyy = cantidad de direcciones no admisible

"Entradas de marcas de acoplamiento", cantidad de direcciones no admisible (admisibles O ... 256) yyyy = cantidad de direcciones no admisible

"Salidas de marcas de acoplamiento", cantidad de direcciones no admisible (admisibles O ... 256) yyyy = cantidad de direcciones no admisible

Cantidad de temporizadores no admisible (admisibles 256) yyyy = cantidad de temporizadores no admisible

Retardo en acuse de recibo de entradas digitales yyyy = dirección del byte de entrada no acusado

Retardo en acuse de recibo de salidas digitales yyyy = dirección del byte de salida no acusado

Retardo en acuse de recibo de una entrada de marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

Retardo en acuse de recibo de una salida de marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

Evaluación del DB 2

0421H

0422H

0423H

0424H

0425H

0426H

DByyH

FByyH

FByyH

FByyH

DByyH

-

Módulo de datos no cargado yy = número del módulo de datos no cargado

Módulo de funciones no cargado yy = número del módulo de funciones no cargado

Módulo de datos no reconocido yy = número del módulo de datos no reconocido

Módulo de funciones cargado con software de PG erróneo yy = número del módulo de funciones

Longitud errónea del módulo de datos de regulador yy = número del módulo de datos

La memoria del DB-RAM no es suficiente para desplazar el DB regulador del EPROM a la DB-RAM

Page 541: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

BS 3 BS 4 Significado

Evaluación del DX O

043 1H

0432H

0434H

0435H

yyyyH

yyyyH

yyyyH

yyyyH

Identificación no válida -Falta la identificación de la cabeza o es errónea (correcta KC MASKXO) -Identificación de bloque no válida -Falta la identificación final o es errónea (correcta KH EEEE) yyyy = identificación no válida

Parámetro no válido yyyy = parámetro no válido

Cantidad de temporizadores no admisible (admisibles 0...256) yyyy = cantidad de temporizadores errónea

Tiempo de supervisión de ciclo no admisible (admisible lms a 13000ms) yyyy = dimensión de tiempo errónea

Evaluación del DX 2

0451H 0452H

0453H

0454H

0455H

0456H

0457H

0458H

0459H

0045AH

- yyyyH

yyyyH

xxOOH

xxyyH

xxyyH

yyyyH

xxOOH

xxyyH

xxOOH

Longitud del DX 2 (sin cabeza) < 4 palabras no válida Longitud del DX 2 (sin cabeza) demasiado corta para el tipo de acoplamiento

yyyy = longitud del DX 2 Tipo de acoplamiento no admisible

yyyy = tipo de acoplamiento Identificación del lote de parámetros estático no válida (no igual a 44H, 58H)

xx = identificación de los datos Módulo no admisible para lote de parámetros estático

xx = identificación / yy = número de DB Lote de parámetros estático no existe

xx = identificación / yy = número de DB Lote de parámetros estático demasiado corto

yyyy = número de la DW no existente Identific. de los datos para el lote de parámetros din. (no igual a 44H, 58H, OOH)

xx = identificación de los datos Módulo no admisible para el lote de parámetros dinámico

xx = identificación / yy = número de DB Identificacion de los datos no admisible para el buzón de emisión y petición

(no igual a 44H, 58H, OOH) xx = identificación de los datos

Evaluación del DX 2 (continuación)

045BH

045CH

045DH

045EH

045FH

0460H

0461H

xxyyH

xxOOH

xxyyH

xxOOH

xxyyH

xxyyH

yyyyH

Módulo no admisible para buzón de emisión y petición xx = identificación / yy = número de DB

Identificaciones de datos no admisible para buzón de recepción (no igual a 44H, 58H, OOH) xx = identificación de los datos

Módulo no admisible para buzón de recepción xx = identificación / yy = número de DB

Identificación de datos no admisible para los bytes de coordinación (no igual a 44H, 58H, 4DH) xx = identificación

Módulo no admisible para los bytes de coordinación xx = identificación / yy = número de DB

Módulo para bytes de coordinación no existe xx = identificación / yy = número de DB

Palabra de datos para bytes de coordinación no existe yyyy = n V e la DW no existente

Page 542: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Identificaciones de error en AKKU 1 y AKKU 2

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

AKKU- 1-L

AKKU- 2-L

REG-FE (error de regulador)

Significado

0801H

0802H

0803H

0804H

0805H

0806H

0880H

OB llamado

DByyH

DByyH

FByyH

FByyH

FByyH

DByyH

OOyyH

WECK-FE (colisión de alarmas temporizadas)

Error en tiempo de exploración yy = número del correspondiente módulo de datos regulador

Módulo de datos de regulador no cargado yy = número del módulo de datos no cargado

Módulo de funciones de regulador no cargado yy = número del módulo de funciones no cargado

Módulo de funciones de regulador no reconocido yy = número del módulo de funciones no reconocido

Módulo de funciones de regulador cargado con software de PG erróneo yy = número del módulo de funciones

Longitud errónea del módulo de datos de regulador yy = número del módulo de datos

QVZ durante el procesamiento del regulador yy = nVel byte EIS que ha causado el QVZ

1001H

OB 34

0016H 0014H 0012H OOlOH OOOEH OOOCH OOOAH 0008H 0006H

BCF (error en código de instrucción)/error de sustitución

Colisión en OB 10 ( 10 ms) Colisión en OB 11 ( 20 ms) Colisión en OB 12 ( 50 ms) Colisión en OB 13 (100 ms) Colisión en OB 14 (200 ms) Colisión en OB 15 (500 ms) Colisión en OB 16 ( 1 S) Colisión en OB 17 ( 2 S) Colisión en OB 18 ( 5 S)

1801H 1802H 1803H 1804H 1805H 1806H

OB 33

- - - - - -

BCF (error en código de instrucción)/error en código de operación

Error de sustitución en la instrucción BBS Error de sustitución en BDW, BMW Error de sustitución en las instrucciones B= , BI= Error de sustitución en las instrucciones L= , T= Error de sustitución en las instrucciones U=, UN=, O=, ON=, ==, S= y RB= Error de sustitución en las instrucciones RD=, LC=, FR=, SAR=,

SE=, SI=, SSV= y SVZ=

1811H 1812H

1813H

1814H

1815H

OB 27

- -

-

-

-

Código de operación de la instrucción no válido Código de operación no válido en una instrucción en la que el byte alto

de la 1"alabra contiene el valor 68H Código de operación no válido en una instrucción en la que el byte alto

de la 1"alabra contiene el valor 78H Código de operación no válido en una instrucción en la que el byte alto

de la 1"alabra contiene el valor 70H Código de operación no válido en una instrucción en la que el byte alto

de la 1"alabra contiene el valor 60H

OB 29

Page 543: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

AKKU- 1-L

AKKU- 2-L

BCF (error en código de instrucción)/error de parámetro

Significado

1821H 182BH 182CH 182DH 182EH 182FH 1830H 1831H 1832H 1833H 1834H 1835H

1836H 1837H 1838H 1839H 183AH 183BH 183CH

OB llamado

- - - - - - - - - - - -

- - - - - - -

LZF (error en tiempo de ejecución)/módulo no cargado

Parámetro no válido en:

ADBO,1,2 SPA(B) OB O SPA(B) OB > 39: función especial no existe A X D X O , A X D X l y A X D X 2 LMW/rMW/LPW/rPW/LQW/TQW/LDD/TDD/BMW:255 L EW/T EW/L AW/T AW 127 L MD / T MD 253,254,255 L ED/T EDIL AD/T AD 125, 126, 127 RLDIRRDISVDISLD 33 a 255 SLW/SRW/LIR/TIR 16 a 255 SES/SEF 32 a 255 U=/UN=/O=/ON=/S=/RB=/==/RD=IFR=/SI=/SE=/

SVZ=/SSV=/SAR=/L=/LC=/LW=/T= 0,127 a 255 B=/LD= 0,126 a 255 U S/O S/S S/= S/UN S/ON S/R S número de byte > 1023 U S/O S/S S/= S/UN S/ON S/R S número de bit > 7 L SY/T SY Parámetro > 1023 L SW/T SW Parámetro > 1022 L SD/T SD Parámetro >lo20 E DB/EX DX Parámetro O, 1 ó 2 (DB o DX O, 1 , 2 no pueden ser generados)

1AOlH 1A02H 1A03H 1A04H 1A05H 1A06H 1A07H

OB 30

- - - - - - -

LZF (error en tiempo de ejecución)/error de carga o transferencia

Módulo de datos no cargado en A DB Módulo de datos no cargado en AX DX Módulo no cargado en SPA(B) FB, OB 1 a OB 39, PB, SB Módulo no cargado en BA(B) EX Módulo no cargado en OB 254 ó 255 Módulo no cargado en OB 182 Módulo no cargado en OB 150, OB 151 ó <OB 153

1A11H

1A12H 1A13H 1A14H 1A15H 1A16H 1A17H 1A18H 1A19H

OB 19

-

- - - - - - - -

Acceso con U/UN D, O/ON D, S/R D, = D a una palabra de datos no definida

Error de transferencia con TDR en una palabra de datos no definida Error de transferencia con TDL en una palabra de datos no definida Error de transferencia con TDW en una palabra de datos no definida Error de transferencia con TDD en una palabra doble de datos no definida Error de carga con LDR de un byte no definido Error de carga con LDL de un byte no definido Error de carga con LDW de una palabra de datos no definida Error de carga con LDD de una palabra doble de datos no definida

OB 32

Page 544: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

AKKU- 1-L

1A21H 1A22H

1A23H 1A25H 1A29H 1A2AH

1A2BH 1A2CH 1A3 1H

1A32H

1A33H

1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H

1A34H 1A34H 1A34H 1A34H

AKKU- 2-L

- -

- - - -

- - -

-

-

OOOlH OlOOH OlOlH 0102H 0200H 0201H 0202H 0203H

0210H 0211H 0212H 0213H

Significado

LZF (error en tiempo de ejecución)/otros errores en tiempo de ejecución

Indicador de error de ... /por ... : E DB, EX DX: El módulo de datos ya existe E DB, EX DX: Cantidad no admisible de palabras de datos

(< 1 ó > 4091) E DB, EX DX: Espacio de memoria insuficiente en RAM BI: Parámetro no admisible en AKKU 1 (< 1 ó > 125) Desbordamiento de la pila de paréntesis tras 'U(', 'O(, ')' A DB, AX DX: Longitud de módulo demasiado corta en la cabeza del

módulo de datos (longitud e 5 palabras) Módulo de funciones cargado con software de PG erróneo ACR: Número de página en AKKU-1-L no válido (> 255) OB 254 u OB 255 (desplazar) u OB 250:

El módulo de datos destino ya se encuentra en la DB-RAM OB 254 u OB 255 (duplicar):

El módulo de datos destino ya se encuentra en la DB-RAM OB 254 u OB 255 u OB 250:

Espacio de memoria insuficiente en DB-RAM OB 182: Descripción del campo de datos no válida OB 182: Tipo de zona de direcciones no válido OB 182: NVel módulo de datos no válido OB 182: N V e la primera palabra de parámetro no válido OB 182: Tipo del módulo de datos fuente no válido OB 182: NVel módulo de datos fuente no válido OB 182: N V e la lvalabra de datos a transfenr en la fuente no válido OB 182: En la cabeza del módulo se ha registrado un valor < 5

como longitud del módulo de datos fuente OB 182: Tipo del módulo de datos destino no válido OB 182: NVel módulo de datos destino no válido OB 182: N V e la lvalabra de datos a transfenr en el destino no válido OB 182: En la cabeza del módulo se ha registrado un valor < 5

como longitud del módulo de datos destino

OB llamado

OB 31

Page 545: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

AKKU- 1-L

1A34H 1A34H 1A34H 1A34H 1A35H 1A36H

1A3AH

1A3BH

1A41H

1A42H 1A43H 1A44H 1A45H

1A46H 1A47H 1A48H 1A49H 1A4AH 1A4BH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH

1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4DH 1A4DH 1A4DH

AKKU- 2-L

0220H 0221H 0222H 0223H - -

-

-

-

- - - -

- - - - - -

OOOlH OlOOH OlOlH 0102H 0103H

0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH OOOlH OlOOH OlOlH

Significado

LZF (error en tiempo de ejecución)/otros errores en tiempo de ejecución (continuación):

Indicador de error de ... /por ... : OB 182: Cantidad de palabras de datos a transferir no válida (= O ó > 4091) OB 182: Módulo de datos fuente demasiado corto OB 182: Módulo de datos destino demasiado corto OB 182: Módulo de datos fuente almacenado en el EPROM OB 250: Número del módulo de transferencia no válido OB 250: Longitud difiere en DB x y DB x t l

oenDXxyDXx+l OB 221: Valor no admisible para el nuevo tiempo de ciclo (< 1 ms

ó > 13 000 ms) OB 223: Modos de arranque difieren en las CPUs que intervienen en

modo multiprocesador OB 240, OB 241 U OB 242:

NVel registro de desplazamiento o del módulo de datos no válido (< 192 ó > 255)

OB 241: Registro de desplazamiento no inicializado OB 240: Espacio de memoria insuficiente en DB-RAM OB 240: Palabra de datos DW O del módulo de datos no contiene 'O' OB 240: Longitud del registro de desplazamiento en DW 1 no válida

(no está entre 2 y 256) OB 240: Posición del indicador no válida o cantidad de indicadores > 5 OB 120: Valor no admisible en AKKü 1 o AKKU-2-L OB 122: Valor no admisible en AKKü 1 o AKKU-2-L OB 110: Valor no admisible en AKKü 1 o AKKU-2-L OB 121: Valor no admisible en AKKü 1 o AKKU-2-L OB 123: Valor no admisible en AKKü 1 OB 150: Número de función no válido (= O ó > 2) OB 150: Tipo de zona de direcciones no válido OB 150: N" de módulo de datos no válido OB 150: NVe la lvalabra de campo de datos no válido OB 150: En la cabeza del módulo se ha registrado como longitud del módulo

de datos un valor e 5 palabras OB 150: Año indicado en campo de datos no válido OB 150: Mes indicado en campo de datos no válido OB 150: Día de mes indicado en campo de datos no válido OB 150: Día de semana indicado en campo de datos no válido OB 150: Hora indicada en campo de datos no válida OB 150: Minutos indicados en campo de datos no válidos OB 150: Segundos indicados en campo de datos no válidos OB 150: Centésimas seg. indicadas en campo de datos no igual a O OB 150: Palabra de campo de datos 3bit O a 3 no es igual a O OB 150: Formato de la hora no corresponde al ajustado en OB 151 OB 151: Número de función no válido (= O ó > 2) OB 151: Tipo de zona de direcciones no válido OB 151: N" de módulo de datos no válido

OB llamado

OB 31

Page 546: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

AKKU- 1-L

1A4DH 1A4DH

1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH

1A4EH

1A4FH 1A4FH

1A50H

1A51H

1A52H

1A53H

1A54H

1A55H

1A56H

1A57H

AKKU- 2-L

0102H 0103H

0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH

OOOlH

OOOlH 0002H

-

-

-

-

-

-

-

-

Significado

LZF (error en tiempo de ejecución)/otros errores en tiempo de ejecución (continuación):

Indicador de error de ... /por ... : OB 151: N V e la lvalabra del campo de datos no válido OB 151: En la cabeza del módulo se ha registrado como longitud del

módulo de datos un valor e 5 palabras OB 151: Año indicado en el campo de datos no válido OB 151: Mes indicado en el campo de datos no válido OB 151: Día de mes indicado en el campo de datos no válido OB 151: Día de semana indicado en el campo de datos no válido OB 151: Hora indicada en el campo de datos no válida OB 151: Minutos indicados en el campo de datos no válidos OB 151: Segundos indicados en el campo de datos no válidos OB 151: Centésimas seg. indicadas en campo de datos no igual a O OB 151: Tipo de petición en campo de datos no válido ( > 7) OB 151: Formato de la hora no corresponde al ajustado en OB 150

OB 152: N" de función no válido (no es igual a O, 1,2,3,8,15)

OB 153: N" de función no válido ( = O o < 0) OB 153: Tiempo de retardo no válido

LRW, TRW: La dirección de memoria calculada < BR + constante > no se encuentra en la zona "O .. EDFFH" (v. cap. 9)

LRD, TRD: La dirección de memoria calculada < BR + constante > no se encuentra en la zona "O .. EDFEH" (v. cap. 9)

TSG, LB GB, LW GW, TB GB, TW GW: La dirección lineal calculada < BR + constante > no se encuentra en la zona "O .. EFFFH"

LB GW, LW GD, TB GW, TW GD: La dirección lineal calculada < BR + constante > no se encuentra en la zona "O .. EFFEH"

LBGD,TBGD: La dirección lineal calculada < BR + constante > no se encuentra en la zona "O .. EFFCH"

TSC, LB CB, LW CW, TB CB, TW CD: La dirección de página calculada < BR + constante > no se encuentra en la zona "F400H .. FBFFH"

LB CW, LW CD, TB CW, TW CD: La dirección de página calculada < BR + constante > no se encuentra en la zona "F400H .. FFFEH"

LBCD,TB CD: La dirección de página calculada < BR + constante > no se encuentra en la zona "F400H .. FBFCH"

OB llamado

OB 31

Page 547: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

AKKU- 1-L

1A58H

1A59H

AKKU- 2-L

-

-

QVZ (retardo en acuse de recibo)

Significado

LZF (error en tiempo de ejecución)/otros errores en tiempo de ejecución (continuación):

Indicador de error de ... /por ... : TNW/TNB: El bloque fuente no está completo en una de las zonas

siguientes: 0000 .. 7FFF Memoria de usuario (v. capítulo 9) 8000 .. DD7F RAM de módulos de datos DD80.. E3FF DB O E400 .. E7FF Marcas S E800 .. EDFF Datos de sistema (BA, BB, BS, BT, Z, T) EEOO .. EFFF Marcas, imagen de proceso FOOO .. FFFF Periferia

TNW/TNB: El bloque destino no está completo en una de las zonas siguientes: 0000 .. 7FFF Memoria de usuario (v. capítulo 9) 8000 .. DD7F RAM de módulos de datos DD80.. E3FF DB O E400 .. E7FF Marcas S E800 .. EDFF Datos de sistema (BA, BB, BS, BT, & T) EEOO .. EFFF Marcas, imagen de proceso FOOO .. FFFF Periferia

1E23H

1E25H

1E26H

1E27H

1E28H

OB llamado

OB 31

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

ADF (error de direccionamiento)

Retardo en acuse de recibo (QVZ) en el programa de usuario al acceder a la periferia yyyy = dirección QVZ

Retardo en acuse de recibo al emitir la imagen de proceso de las salidas digitales yyyy = dirección del byte de salida no acusado

Retardo en acuse de recibo al actualizar la imagen de proceso de las entradas digitales yyyy = dirección del byte de entrada no acusado

Retardo en acuse de recibo al actualizar las salidas de marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

Retardo en acuse de recibo al actualizar las entradas de marcas de acoplamiento yyyy = dirección del byte de marcas de acoplamiento no acusado

1E4OH

OB 23

OB 24

yyyyH Error de direccionamiento (AüF) en el programa de usuario yyyy = dirección AüF

OB 25

Page 548: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

A.3 Operaciones STEP 5 no disponibles en la CPU 928B

Las operaciones STEP 5 de la CPU 9461947 y CPU 948 indicadas a continuación no son ejecutables en la CPU 928B:

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

Instrucción

BAS BAF

P E, A, M, Z, T, D, BA, BB, BS, BT

PN E, A, M, Z, T, D, BA, BB, BS, BT

SU E, A, M, Z, T, D, BA, BB, BS, BT

RU E, A, M, Z, T, D, BA, BB, BS, BT

LIM

SIM

UBE

STW

AFS

AFF

AAF

AAS

Función

Bloquear salidas Habilitar salidas

Comprobar si bit es '1'

Comprobar si bit es 'O'

Activar bit de forma incondicional

Rearmar bit de forma incondicional

Cargar máscara de interrupciones

Activar máscara de interrupciones

Fin del módulo de interrupción

Instrucción de parada del procesamiento de alarmas temporizadas

Bloquear interrupción de error de direccionamiento

Habilitar interrupción de error de direccionamiento

Habilitar procesamiento de alarma de petición

Bloquear procesamiento de alarma de petición

Page 549: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

A.4 Identificaciones de los niveles de procesamiento

Las identificaciones corresponden a las registradas en el campo NIVEL de la pila USTACK (hexadecimal).

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

Identificación

0002H 0004H 0006H 0008H OOOAH OOOCH OOOEH

OOlOH 0012H 0014H 0016H 0018H OOlAH OOlCH OOlEH

0020H 0022H 0024H

0026H 0028H 002AH 002CH 002EH

0030H 0032H 0034H 0036H 0038H 003AH 003CH 003EH

0040H 0042H 0044H 0046H

Nivel

Nuevo arranque Ciclo Alarma temporizada 5 s Alarma temporizada 2 s Alarma temporizada 1 s Alarma temporizada 500 ms Alarma temporizada 200 ms

Alarma temporizada 100 ms Alarma temporizada 50 ms Alarma temporizada 20 ms Alarma temporizada 10 ms Petición de tiempo No ocupada Regulación No ocupada

Alarma de retardo No ocupada Alarma de proceso

No ocupada Nuevo arranque manual con memoria Nuevo arranque automático con memoria Aborto Error de interfaz

Colisión de alarmas temporizadas Error de regulador Error de ciclo No ocupada Error en código de instrucción Error en tiempo de ejecución Error de direccionamiento Retardo en acuse de recibo

No ocupada No ocupada Rearranque manual Rearranque automático

Page 550: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

A.5 Ejemplo de "evaluación de la pila USTACK"

Este ejemplo (muy simplificado) ilustra cómo proceder a la hora de evaluar el USTACK.

¡Léase a este respecto el capítulo 5.3 "Bits de control y pila de interrupciones"!

Punto de partida La CPU ha abortado el procesamiento cíclico del programa y ha pasado al estado STOP.

Análisis de errores Para averiguar la causa del error, activar la función on line del aparato de programación "Salida/USTACKU .

En el PG se visualizan primero los bits de control:

>>STP<< STP-6 FE-STP X

>>ANL<< ANL-6 NEUSTA X

>>RUN<< RUN-6 EINPROZ X

32KWRAM I6KWRAM 8KWRAM X

URGELOE URL-IA STP-VER

BARBEND PG-STP STP-SCH STP-BEF MP-STP X

M W A A W A ANL-2 NEUZU MWA-ZUL X X

BARB OB1 GEL FBOGEL OBPROZA OBWECKA X

EPROM KM-AUS KM-EIN DIG-EIN DIG-AUS X X

ANL-ABB UA-PG UA-SYS UA-PRFE UA-SCH

l DXO-FE FE-22

MOF-FE RAM-FE DBO-FE DBI -FE DB2-FE KOR-FE l l N A U P E U

B A U STUE-FE Z Y K Q V Z A D F WECK-FE I

B C F FE-6 FE-5 FE-4 FE-3 L Z F REG-FE X DOPP-FE

En los bits de control se indica el estado operativo actual de la CPU (>>STP<<). También están marcadas ciertas características de la CPU (OB 1 cargado, modo monoprocesador, 16KW de memoria de usuario etc.). En la línea superior de la pantalla está marcado con una cruz STP-BEF como causa del estado STOP. Se supone que en el programa de usuario STEP 5 no se ha programado ninguna instrucción STP. Por consiguiente, la causa del STOP sólo puede haber sido una instrucción de parada por parte del programa de sistema, debida a un OB de error no cargado. En la línea inferior está marcada la identificación LZF.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

Page 551: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Al producirse un error en tiempo de ejecución el programa de sistema posiblemente ha detectado que el correspondiente módulo de organización de error no está programado. Puesto que existen distintos errores en tiempo de ejecución y el usuario no sabe de cuál se trata en este caso, las informaciones de los bits de control no son suficientes.

Por lo tanto hay que visualizar la pila de interrupciones USTACK:

PROFUND. 01

BEF-REG: 0000 SAZ: 0000 DB-ADR: 0000 BA-ADR: O000

BST-STP: 0001 SAZ-NR.: 226 DB-NR.: -NR.: REL-SAZ: 0006 DBL-REG.: O000

NIVEL: 003A UAMK: 0120 UALW: O000

AKKUI: 0000 OA01 AKKU2: 0000 0000 AKKU3: 0000 0000 AKKU4: 0000 0000

- INFO RESULTADO: ANZI ANZO OVFL OVFLS ODER ERAB

STATUS VKE

CAUSA DE ERROR: NAU PEU BAU MPSTP ZYK QVZ

ADF STP BCF S-6 LZF REG-FE

X STUEB STUEU WECK DOPP

La pila USTACK de profundidad 01 representa el nivel de procesamiento que estaba activado antes de que la CPU pasara al estado STOP. La identificación 003A (detrás de NIVEL) indica que se trata de la pila USTACK del nivel de procesamiento ERRORES EN TIEMPO DE EJECUCION. En el AKKU 1 está depositada la identificación de error 00001A01, lo que significa que se ha producido un error en tiempo de ejecución debido a un módulo no cargado al ejecutar la instrucción 'A DB'. Puesto que el correspondiente OB 19 de error no existe en el programa de usuario, el programa de sistema ha abortado el procesamiento del programa (STP). En la palabra de la máscara de indicadores de interrupción UAMK también están indicadas las causas de la interrupción: la identificación 0120 corresponde a la configuración binaria "0000 O001 O010 0000". Los bits 25 (LZF) y 28 (STP) están activados.

Ahora queda por averiguar en qué módulo y por medio de qué instrucción ha tenido lugar el error en tiempo de ejecución.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

Page 552: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

Pulsando nuevamente la tecla de validación se visualiza en pantalla la PILA DE INTERRUPCION de profundidad 02:

P l lA DE INTERRUPCION

PROFUND. 02

BEF-REG: 2006 SAZ: 0037 DB-ADR: 0000 BA-ADR: O000

BST-STP: 0001 OB-NR.: 1 DB-NR.: -NR.: REL-SAZ: 0004 DBL-REG.: O000

NIVEL: 0004 UAMK: 0020 UALW: O000

AKKUI: O001 1001 AKKU2: 0000 0101 AKKU3: 0000 0000 AKKU4: 0000 0000

- INFO RESULTADO: ANZI ANZO OVFL OVFLS ODER ERAB l

l STATUS VKE l 1 CAUSA DE ERROR: NAU PEU BAU MPSTP ZYK QVZ l ADF STP BCF S-6 LZF REG-FE

X l \ STUEB STUEU WECK DOPP )

La identificación 0004 (detrás de nivel) indica que se trata de la pila de interrupción del nivel de procesamiento CICLO, el cual ha sido interrumpido. El contador de direcciones STEP (SAZ) indica la dirección 0037H. La instrucción que ha causado el error está depositada en esta dirección absoluta en el programa de usuario. El código indicado es 2006 (BEF-REG). Consultando la lista "Listado del código máquina" de la lista de operaciones puede descifrarse el código como operación STEP 5 'ADB 6'.

La interrupción ha tenido lugar en el módulo de organización OB 1. En el OB 1 se encuentra la instrucción que ha causado el error en la dirección relativa 0004 (REL-SAZ). Esta instrucción causó un error en tiempo de ejecución como se ha podido comprobar anteriormente (véase UAMK, bit 25 y CAUSA DE ERROR).

Hacer visualizar ahora en el aparato de programación la instrucción errónea con la función on line "Salida/Módulo/RASTREO". Indicar el módulo correspondiente (OB 1) y la dirección relativa de la instrucción.

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

Page 553: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Anexo

SALIDA APARATO: AG MODULO: OB1 BUSQUEDA : 4H

SAZ-REL

Después del rastreo el aparato de programación muestra en pantalla la instrucción "A DB 6" que ha causado la interrupción debido a que falta un módulo de datos con el número 6 en la memoria de usuario.

SEGMENTO 1 0000 0004 :A DB 6 instrucción que causa el error 0005 : 0006 : 0007 : 0008 :BE

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870,Ol

Page 554: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Bibliografía

111 s5-135u/155u CPU 922lCPU 928lCPU 928B/CPU 948 Lista de operaciones

N q e ref.: 6ES5 997-3UA41

121 s5-135u/155u Manual del sistema

N q e ref.: 6ES5 998-OSH41

131 STEP 5 Manual

N q e ref.: C79000-G8578-C140

141 GRAPH5 Manual

N q e ref.: C79000-G8576-C161 (en inglés)

151 Módulos de funciones estándar Módulos de comunicación CPU 922, CPU 928, CPU 928B Autómata programable S5-135U, S5-155U

161 SINEC CP 143 with COM 143 Manual

N q e ref.: 6GK1970-1AB43-OABO (en inglés)

171 Hans Berger: Automating with the SIMATIC S5-135U (Automatización con SIMATIC S5-135U)

SIEMENS AG ISBN 3-8009-1561-8 N q e ref.: A19100-L531-F505-x-7600 (en inglés)

Instrucciones de programación CPU 928B-3UB21-3UB21

C79000-G8578-C870-01

Page 555: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Biblioara fía

181 Programmable Controllers Basic Concepts (autómatas programables - conceptos generales)

SIEMENS AG N q e ref.: A19100-L531-F914-X-7600 (en inglés)

191 Catálogo ST 59: Aparatos de programación SIMATIC S5

1101 Catálogo ST 54.1: Autómatas programables S5-135U, S5-155U y S5-155H

1111 Catálogo ST 57: Standard Function Blocks and Driver Software for Programmable Controllers of the U-Range

(Módulos de funciones estándar y programas drivers para autómatas programables SIMATIC S5 de la serie U)

1121 SCL Manual

N q e ref.: C79000-G8576-C162 (en inglés)

1131 R64 Compact Closed-Loop Control (Estructura de reguladores R64)

1141 S5-135U Comunicación CPU 928B Manual

N q e ref.: 6ES5 998-OCN41

Asimismo pueden consultarse otras obras estándar en castellanno referentes al tema de la automatización.

Instrucciones de programación CPU 928B-3UB21-3UB21

C79000-G8578-C870-01

Page 556: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Lista de abreviaturas

(El significado de las abreviaturas correspondientes a la PILA DE INTERRUPCIONES (USTACK) se explica en el capítulo 5.4)

ADF AG AKKU-1 (2,3,4)-L AKKU-1 (2,3,4)-H AKKU-1 (2,3,4)-LL AKKU-1 (2,3,4)-LH ANZ 1, ANZ o ANZW AWL

BASP BCD BR BSTACK

CP CPU

DB DBA DBL DX

EG EPROM

ERAB

FB FUP EX

Error de direccionamiento Autómata programable Palabra baja del acumulador 1 (2,3,4), 16 bit Palabra alta del acumulador 1 (2,3,4), 16 bit Byte bajo de la palabra baja del acumulador 1 (2,3,4), 8 bit Byte alto de la palabra baja del acumulador 1 (2,3,4), 8 bit Indicadores de palabra, codificados ("Flags") Palabra indicadora Lista de instrucciones

Bloqueo de salidas (señal a bus S5) Número decimal en código binario Registro base de direcciones Pila de módulos

Procesador de comunicación Central Processing Unit, procesador central, tarjeta central (ZBG)

Módulo de datos Dirección inicial del módulo de datos (en registro 6) Longitud del módulo de datos (en registro 8) Módulo de datos ampliado

Aparato de ampliación erasable progammable read only memory (memoria de sólo lectura programable, borrable con ultravioleta) Primera consulta (indicador bit)

Módulo de funciones Esquema de funciones Módulo de funciones ampliado

Interface Modul (módulo de interfaces) Tarjeta de E/S inteligente

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 557: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

Lista de abreviaturas

KOP KOR

LED

NAU

PA PAA PAE PAFE PARE PB PEU PG

QVZ

RAM

SAZ SB SPU STA STS STUEB STUEU SUF

TRAF

USTACK

VKE

ZG ZYK

Esquema de contactos Tarjeta coordinadora

light-emitting diode (diodo luminoso)

Fallo de la tensión de red

Módulo de organización O (indicador bit) Overflow (desbordamiento) memorizado (indicador palabra) Overflow (desbordamiento) (indicador palabra)

Imagen de proceso Imagen de proceso de las salidas Imagen de proceso de las entradas Byte de error de parametrización Error de paridad Módulo de programa Fallo de la tensión de red en el aparato de ampliación Aparato de programación

Retardo en acuse de recibo

random-accesss memory (memoria de lectura/escritura)

Contador de direcciones STEP Módulo de pasos Procesador del sistema operativo Status (estado) (indicador bit) Instrucción de parada (stop) Desbordamiento de la pila de módulos BSTACK Desbordamiento de la pila de interrupciones USTACK Error de sustitución

Error de transferencia o carga

Pila de interrupciones

Resultado de combinación (=lógico)

Aparato central Error de ciclo

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 558: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lndice alfabético

Accesos a la memoria a través del registro BR 9-24 generalidades 9-2

Acoplamiento PG-AG a través de interfaz serie 11-16 Acumuladores 3-13,6-1,6-9 ADF (error de direccionamiento) 5-22,5-45 ALARMA DE PROCESO 4-6,4-8,4-25,4-36 ALARMA DE REGULADOR 4-6,4-8,

4-25,4-35 interrupciones 4-35

ALARMA DE RETARDO 4-8,4-25,4-28 interrupciones 4-29 particularidades 4-29

ALARMA TEMPORIZADA 4-6,4-8,4-25 Alarma temporizada controlada por reloj 4-28 - 4-29

interrupciones 4-30 particularidades 4-31

Alarmas bloquear 6-11 retardar 6-16

Alarmas de proceso activadas por flancos 4-38 bloquear 3-66,4-38 habilitar 3-66,4-38 interrupciones 4-36 procesamiento 4-36

Alarmas temporizadas 4-31 con escalas de tiempo fijas 4-25 controladas por reloj 4-28 interrupciones 4-32 puntos de interrupción 4-32

ALRMA DE RETARDO 4-6 Ampliación de signo 6-82 Anidamiento

de niveles de procesamiento 4-7 ARRANQUE 4-2

ejecutar 4-16 errores en el arranque 5-25,5-32

generalidades 3-10,4-15 interrupciones 4-22 modos de arranque 6-84

BCF (error en código de instrucción) error de parámetro 5-22,5-33,5-35 error de sustitución 5-22,5-33 - 5-34 error en código de operación 5-22,5-33,5-35

Bits de control 5-3,5-7 - 5-8 BORRADO TOTAL 4-14 BSTACK (pila de módulos) 5-3

evaluar 5-6 leer 6-47 salida 5-5

Campo de validez de un módulo de datos abierto 2-38

Campos de aplicación de la CPU 928B 1-2 CICLO 4-25

interfaz con el usuario OB 1 4-27 nivel 4-6, 4-8,4-26 procesamiento cíclico 3-2,3-10 puntos de interrupción 4-27

Código de operación 2-5 Combinaciones 3-47

binarias 3-17 digitales 3-48

COMPRIMIR MEMORIA 2-13 Comunicación en multiprocesamiento

almacenamiento intermedio de datos 10-16 ejecución 10-13 ejemplos de aplicación 10-50 emitir datos 10-38 identificación de emisorlreceptor 10-15 inicializar 10-30 lista de asignaciones 10-34

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01 lndice - 1

Page 559: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lndice alfabético

modos de operación 10-33 recibir datos 10-45 G unidad de transferencia 10-13

Conjunto de operaciones 2-2 GRAPH5 Contadores Z 1-11 Corregir módulos 2-13

H

Datos del sistema 8-13 DBA (dirección inicial del módulo de datos) 9-9 DBL (longitud del módulo de datos) 9-12 Decrementar 3-60 Definición de la "9"ista" 4-19 Direccionamiento 1-12

Elemento operando 2-5 Elemento operante 2-5 ERAE3 (primera consulta)

Ver Indicadores de resultado Estadística de ciclo 6-35 ESTADO DE ESPERA 11-4 Estados operativos 4-2, 11-4 Estructura de la zona de memoria 8-1 - 8-2,8-4 Estructura de reguladores R64 4-35 Evitar errores 5-2 Exponente

Ver Número de coma flotante

FE-3 (error de comunicación) 5-22,5-53 Fecha 6-23 Función

cíclica 11-24 Funcionamiento de la CPU 1-3 Funcionamiento paralelo de interfaces serie del PG

funciones cíclicas 11-19, 11-22 funciones de corta duración 11-19, 11-21 funciones de larga duración 11-19, 11-22

Funciones de PG generalidades 11-2

Funciones especiales error en el procesamiento 6-5 generalidades 6-3 interfaces 6-4

FUP (esquema de funciones) 2-2

Herramientas de programación Hora del sistema

Identificaciones de error Imagen de proceso

actualizar de entradas (PAE) de salidas (PAA) generalidades

Incrementar Indicador LED indicadores de resultado

VerANZlyANZ2 Indicadores de resultados

ERAE3 ANZlyANZO 3-15,3-56 generalidades 3-14

OR (0) 3-15 OS 3-15 OV 3-15 STA 3-15,3-18 VKE 2-5,3-15,3-18

Informaciones sobre errores 5-3 Interfaces con el usuario

para alarma de reguladores 4-35 para alarma de retardo 4-28 para alarma temporizada controlada por reloj 4-30 para alarmas de proceso 4-36 para alarmas temporizadas 4-31 para el arranque 4-19 para procesamiento cíclico 4-27

Interfaz con el programa de sistema 1-8,2-16 con el programa de usuario 1-6 segunda interfaz serie 5-29

LED BASP LED RUN LED STOP

lndice - 2 Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 560: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lndice alfabético

Lenguaje de programación GRAPH 5 1-16 SCL 1-16 STEP 5 1-16

Lenguaje de programación SCL 1-16 Lenguaje de programación STEP 5 2-2 LFZ (error en tiempo de ejecución) 5-37,5-39 Lista de asignaciones 2-5,2-22

Mantisa Ver Número en coma flotante

Marcas de acoplamiento ajuste/manipulación de los puentes 10-4 generalidades 3-12,lO-4 intercambio de datos a través de las marcas 10-4 transferir en bloque 6-85 transferir marcas de acoplamiento 10-7

Marcas de trabajo 10-50 Marcas M 1-10,lO-22 Marcas S 1-10 Máscara de PG

para generar el DB 1 10-10 Memoria de usuario 1-8

organización 8-7 Memoria global

acceso 9-28 generalidades 9-2

Memoria local acceso 9-27 generalidades 9-2

Modificar preajuste 1-6 Modo multiprocesador

acceso a páginas 6-72 asignación de periferia 10-8 intercambio de datos entre CPUs y CPS 10-6 mecanismos de comunicación 10-3 modos de arranque 6-84

Módulo anidamiento 3-3 antecabeza de módulo 2-11,2-33 cabeza de módulo 2-11,2-22,8-8 cuerpo de módulo 2-11, 2-22,2-34 generalidades 2-4 handling 6-52 identificación de módulo 2-34 lista de direcciones 3-6,8-9 llamadas a módulo 2-14,3-6 número de módulo 2-10, 2-24,2-34 operandos formales

(parámetros del módulo) 2-25 tipo de módulo 2-24 tipos de módulo 2-10,2-24

Módulo de datos actual 1-12 Módulo de datos DB O 2-39,3-6,5-26 Módulo de datos DB 1 2-39,5-26

crear 10-9 Módulo de datos DB 2 2-39,5-28 Módulo de datos DX O 2-40,7-2 Módulo de datos DX 1 2-40 Módulo de datos DX 2 2-40,5-29 Módulo de funciones FB O 2-32 Módulo de PG 11-17 Módulos de comunicación 6-89 Módulos de datos

generalidades 1-11 Módulos de datos (DBJDX)

abrir 1-12,2-36 acceso a módulos de datos 6-52 comprobar 6-56 crear 3-31 estructura 2-33 generalidades 2-11,2-33 programar 2-35

Módulos de funciones (FBPX) estructura 2-22 generalidades 2-10,2-21 llamar y parametrizar 2-23,2-26 módulos de funciones estándar 2-21,

2-31,6-89 programar 2-23

Módulos de organización (OBs) generalidades 2-10,2-14 OBs de funciones especiales 2-19,6-3 para el control del arranque 2-17 para el tratamiento de errores 2-18 para interfaces con el usuario 2-16

Módulos de pasos (SB) 2-10,2-14 Módulos de programa (PB) 2-10,2-14

NAU4-16 - 4-17 Niveles básicos 4-6,4-8 Niveles de error 4-6,4-8 Niveles de procesamiento del programa

generalidades 6-11,6-16 número de nivel 6-87

NUEVO ARRANQUE 4-6,4-22 NUEVO ARRANQUE AUTOMATICO

Ver NUEVO ARRANQUE NUEVO ARRANQUE MANUAL

Ver NUEVO ARRANQUE

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01 lndice - 3

Page 561: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lndice alfabético

Número de biblioteca 2-34 Número de coma a la izquierda 6-107,6-112 Números binarios 2-6 Números decimales 2-6 Números duales 2-6 Números en código BCD 2-9 Números en coma fija 2-7 Números en coma flotante 2-7

OBs de comunicación 10-21 parámetros 10-22 tiempos de ejecución 10-29

Operación cero 3-31 Operación de estructuración de imagen 3-31 Operación de parada (stop) 3-31 Operaciones aritméticas 3-29 Operaciones básicas 2-2,3-17 Operaciones complementarias 2-2,3-47 Operaciones de cálculo 3-52 Operaciones de carga 3-19,3-51 Operaciones de comparación 3-30 Operaciones de conversión 3-58 Operaciones de desplazamiento 3-56 Operaciones de memorización 3-18,3-48 Operaciones de organización 3-54 Operaciones de procesamiento 3-61 Operaciones de salto 3-54 Operaciones de sistema 2-2, 3-54,9-2 Operaciones de tiempo y contaje 3-24,3-49 Operaciones de transferencia 3-19 Operaciones STEP 5 3-13 Operandos actuales

de módulos de funciones 2-23,2-27 Operandos formales

de módulos de funciones 2-23,3-48

OR (0) Ver Indicadores de resultados

Organización de la memoria 9-2 OS (Overflow memorizado)

Ver Indicadores de resultados

Páginas acceso a páginas 6-71,9-31 generalidades 6-71

Palabra de datos 1-11, 2-33 - 2-34,2-37 Palabra de indicadores de interrupción 8-16 Palabras de datos de sistema

ocupación de los bits 8-16

Palabras de datos de sistema BS 3 y BS 4 5-4,5-26 Parametrizar DX O 1-6,4-27, 7-2 Parámetros 2-5 Periferia

distribución de la zona de direcciones 8-1,8-4 - 8-5 tarjetas 1-9 zona P 1-9 zona Q 1-9

PETICION DE TIEMPO 4-6,4-8,4-25, 4-30,6-28

Preajuste del comportamiento de sistema 1-6

Prioridad 1-4, 4-8 Priorización 4-39 Procedimiento en la programación 1-13 Procesadores de comunicación (CPs) 6-89,lO-6 Procesamiento cíclico del programa 1-3, 1-14,

4-26 Procesamiento controlado por alarma 1-4 Procesamiento controlado por tiempo 1-4

alarma de retardo 4-28 alarma temporizada controlada por reloj 4-28 alarmas temporizadas 4-28 con escalas de tiempo fijas (alarma 4-25 con escalas de tiempo fijas (alarmas 4-31 generalidades 4-28

Profundidad de anidamiento 3-6 Programa 4-38

organización del programa 3-3 programa de sistema 1-5

Programa de sistema 1-5 Programa de usuario 1-5, 1-7

almacenamiento 1-8 funciones 1-8

Programación estructurada 2-4 Pseudolímites de instrucciones 6-6 Punto de control del sistema 11-3 Punto de control del usuario 11-3

QVZ (retardo en acuse de recibo) 5-22,5-46

RAM de módulos de datos (DB-RAM)3-8,6-90 RAM de sistema 8-4 Reacciones

ante alarmas 3-11

lndice - 4 Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01

Page 562: SIEMENS · distintos Explica el funcionamiento típico de una CPU y el modo en que está estructurado capítulos un programa de CPU. ... El capítulo 9 también está dirigido a los

lndice alfabético

ante errores 2-18,3-11 ante OBs (de error) no cargados 5-23

REARRANQUE 4-6,4-22 REARRANQUE AUTOMATICO

Ver REARRANQUE REARRANQUE MANUAL

Ver REARRANQUE REG-FE (error de regulador) 5-22,5-50 Registro BR 9-24 Registro de desplazamiento 6-90 Regulación 6-99 Regulador

procesamiento de alarmas de regulador 4-35

Regulador PID 6-99 Representación numérica 2-6 RUN

errores en RUN 5-32 generalidades 4-2,4-24

UALW UAMK USTACK (pila de interrupciones)

indicadores información de error informaciones en la USTACK informaciones en USTACK salida

Valor de contaje Valor de tiempo VKE (resultado de combinación)

Ver Indicadores de resultado

Semáforos 3-67 Señal BASP 4-21,4-24 Señal de alarma de proceso

activada por nivel 4-37 STA (estado)

Ver Indicadores de resultado STOP 4-2,4-23 Sucesos de interrupción 3-12 Supervisión del tiempo de ciclo 3-11 Sustitución de operandos 3-62

Temporizadores T 1-11 Tiempo de ciclo 3-11,6-35 Tiempo de reacción 4-38,4-40 Tiempo de retardo 4-25 Tiempo de supervisión de ciclo 6-83 - 6-84 TRAF (errores de cargaltransferencia de módulos de datos) 5-22,5-38 Transferencia en bloques de memoria 9-16 Tratamiento de errores

mediante módulos de organización 5-22

WECK-FE (colisión de alarmas temporizadas)

Zona BSIBT ocupación de la zona BS

Zona de marcas M Zona P

Ver Periferia Zona Q

Ver Periferia Zonalmemoria de páginas

célula ocupada Zonas de operandos ZYK (exceso del tiempo de ciclo) ZYK-FE (exceso de tiempo de ciclo)

Instrucciones de programación CPU 928B-3UB21

C79000-G8578-C870-01 lndice - 5