Upload
danglien
View
220
Download
0
Embed Size (px)
Citation preview
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.
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
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
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
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
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 . . . . . . . .
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
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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
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
.............................. 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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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)
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
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
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
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
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
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
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
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
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
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
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)
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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).
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).
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'.
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
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
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.
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
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
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.
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=
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
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
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
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 ')
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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í 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í 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
sí
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
sí
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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).
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).
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.
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
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
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
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
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('
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
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.
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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=
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
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)
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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'!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
...
...
...
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
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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".
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
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
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
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
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
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
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
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
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
sí
Capacidades de memoria
150 ms 1 ... 13000 ms
sí
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
sí
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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